Loading
[ { "inputs": [ { "internalType": "address", "name": "wallet1", "type": "address" }, { "internalType": "address", "name": "wallet2", "type": "address" }, { "internalType": "address", "name": "wallet3", "type": "address" }, { "internalType": "address", "name": "token_sale", "type": "address" }, { "internalType": "address", "name": "public_sale", "type": "address" }, { "internalType": "address", "name": "admin_addr", "type": "address" }, { "internalType": "address", "name": "fee_addr", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Airdrop", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Buy", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "stateMutability": "nonpayable", "type": "fallback" }, { "inputs": [], "name": "_admin_addr", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_admin_cut", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_airdrop", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_airdropToken", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_allowed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_cap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "_directs", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_fee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_fee_addr", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_ico_max_cap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isExcluded", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_minimumBuy", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_public_sale", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_saleEnd", "outputs": [ { "internalType": "uint40", "name": "", "type": "uint40" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_salePrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_token_sale", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_total_airdrop", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_total_sold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_wallet1", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_wallet1_cut", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_wallet2", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_wallet2_cut", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_wallet3", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_wallet3_cut", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "airdrop", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner_", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_refer", "type": "address" } ], "name": "buy", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "cap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "clear1", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "_token", "type": "address" } ], "name": "clear2", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint40", "name": "_extend", "type": "uint40" } ], "name": "extendSale", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "_tag", "type": "uint8" }, { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "set", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "_tag", "type": "uint8" }, { "internalType": "address", "name": "_addr", "type": "address" } ], "name": "setAddresses", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_addr", "type": "address" }, { "internalType": "bool", "name": "_status", "type": "bool" } ], "name": "setExluded", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_addrs", "type": "address[]" }, { "internalType": "uint256[]", "name": "_types", "type": "uint256[]" } ], "name": "setTypes", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "user_types", "outputs": [ { "internalType": "string", "name": "user_type", "type": "string" }, { "internalType": "uint256", "name": "direct_matic", "type": "uint256" }, { "internalType": "uint256", "name": "direct_token", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "users", "outputs": [ { "internalType": "address", "name": "upline", "type": "address" }, { "internalType": "uint256", "name": "type_id", "type": "uint256" }, { "internalType": "uint256", "name": "total_bought", "type": "uint256" }, { "internalType": "uint256", "name": "direct_referrals", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040523480156200001157600080fd5b5060405162005e2738038062005e27833981810160405281019062000037919062000a54565b6b204fce5e3e250261100000006000819055506040518060400160405280600981526020017f436f54692042697473000000000000000000000000000000000000000000000081525060019080519060200190620000979291906200098d565b506040518060400160405280600481526020017f426974730000000000000000000000000000000000000000000000000000000081525060029080519060200190620000e59291906200098d565b506012600360006101000a81548160ff021916908360ff16021790555033600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555086600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600f819055506b1027e72f1f128130880000006011819055506000601281905550670de0b6b3a764000060138190555061fde8601481905550683635c9adc5dea0000060158190555066470de4df8200006016819055506001602060006101000a81548160ff021916908315150217905550600160196000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160196000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506103e8600b819055506103e8600c819055506103e8600d81905550610320600e8190555060405180606001604052806040518060400160405280600481526020017f557365720000000000000000000000000000000000000000000000000000000081525081526020016105dc81526020016102ee815250601c60008081526020019081526020016000206000820151816000019080519060200190620006239291906200098d565b50602082015181600101556040820151816002015590505060405180606001604052806040518060400160405280600781526020017f4d616e616765720000000000000000000000000000000000000000000000000081525081526020016109c481526020016104e2815250601c6000600181526020019081526020016000206000820151816000019080519060200190620006c19291906200098d565b5060208201518160010155604082015181600201559050506283d60042620006ea919062000c7e565b601760006101000a81548164ffffffffff021916908364ffffffffff1602179055506200072f620007206200073c60201b60201c565b6000546200074460201b60201c565b5050505050505062000e3d565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620007b7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007ae9062000bd1565b60405180910390fd5b620007d3816012546200092a60201b620032311790919060201c565b601281905550600054601254111562000823576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200081a9062000baf565b60405180910390fd5b6200087c81601e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200092a60201b620032311790919060201c565b601e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200091e919062000bf3565b60405180910390a35050565b60008082846200093b919062000c21565b90508381101562000983576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200097a9062000b8d565b60405180910390fd5b8091505092915050565b8280546200099b9062000d0f565b90600052602060002090601f016020900481019282620009bf576000855562000a0b565b82601f10620009da57805160ff191683800117855562000a0b565b8280016001018555821562000a0b579182015b8281111562000a0a578251825591602001919060010190620009ed565b5b50905062000a1a919062000a1e565b5090565b5b8082111562000a3957600081600090555060010162000a1f565b5090565b60008151905062000a4e8162000e23565b92915050565b600080600080600080600060e0888a03121562000a765762000a7562000da3565b5b600062000a868a828b0162000a3d565b975050602062000a998a828b0162000a3d565b965050604062000aac8a828b0162000a3d565b955050606062000abf8a828b0162000a3d565b945050608062000ad28a828b0162000a3d565b93505060a062000ae58a828b0162000a3d565b92505060c062000af88a828b0162000a3d565b91505092959891949750929550565b600062000b16601b8362000c10565b915062000b238262000da8565b602082019050919050565b600062000b3d601b8362000c10565b915062000b4a8262000dd1565b602082019050919050565b600062000b64601f8362000c10565b915062000b718262000dfa565b602082019050919050565b62000b878162000cf4565b82525050565b6000602082019050818103600083015262000ba88162000b07565b9050919050565b6000602082019050818103600083015262000bca8162000b2e565b9050919050565b6000602082019050818103600083015262000bec8162000b55565b9050919050565b600060208201905062000c0a600083018462000b7c565b92915050565b600082825260208201905092915050565b600062000c2e8262000cf4565b915062000c3b8362000cf4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000c735762000c7262000d45565b5b828201905092915050565b600062000c8b8262000cfe565b915062000c988362000cfe565b92508264ffffffffff0382111562000cb55762000cb462000d45565b5b828201905092915050565b600062000ccd8262000cd4565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600064ffffffffff82169050919050565b6000600282049050600182168062000d2857607f821691505b6020821081141562000d3f5762000d3e62000d74565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f42455032303a204361707065643a206361702065786365656465640000000000600082015250565b7f42455032303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b62000e2e8162000cc0565b811462000e3a57600080fd5b50565b614fda8062000e4d6000396000f3fe60806040526004361061037a5760003560e01c8063715018a6116101d1578063b2bdfa7b11610102578063dbd99cab116100a0578063ee79c79e1161006f578063ee79c79e14610cc5578063f088d54714610cf0578063f2fde38b14610d0c578063ff45db7014610d3557610381565b8063dbd99cab14610c1b578063dd62ed3e14610c32578063ea21318614610c6f578063ec40217514610c9a57610381565b8063c060d6d8116100dc578063c060d6d814610b71578063c5b37c2214610b9a578063c6e3a9b314610bc5578063d28d885214610bf057610381565b8063b2bdfa7b14610af0578063b7446c2314610b1b578063b956bb4514610b4657610381565b80639818308c1161016f578063a7fc634211610149578063a7fc634214610a09578063a87430ba14610a48578063a9059cbb14610a88578063b09f126614610ac557610381565b80639818308c1461098a5780639ba48424146109b55780639e9fd649146109e057610381565b80638456cb59116101ab5780638456cb59146108f25780638da5cb5b146109095780638de647751461093457806395d89b411461095f57610381565b8063715018a61461088557806371aa96b61461089c57806371ffe797146108c757610381565b8063313ce567116102ab57806354bd707611610249578063672961831161022357806367296183146107b55780636b342eb8146107e05780636e21fc871461080b57806370a082311461084857610381565b806354bd7076146107245780635b045d271461074d5780635c975abb1461078a57610381565b80633884d635116102855780633884d635146106af5780633eaaf86b146106b95780633f4ba83a146106e457806348ab5e6c146106fb57610381565b8063313ce5671461062e57806332424aa314610659578063355274ea1461068457610381565b806316c61ccc116103185780631896617e116102f25780631896617e146105745780631e3299de1461059d57806323b872dd146105c65780632abb8c471461060357610381565b806316c61ccc146104e157806318160ddd1461050c5780631836c11b1461053757610381565b806306fdde031161035457806306fdde0314610411578063095ea7b31461043c5780630978e093146104795780630b285b1f146104a457610381565b8063041c51fd1461039057806304f68493146103bb578063060cf4e8146103e657610381565b3661038157005b34801561038d57600080fd5b50005b34801561039c57600080fd5b506103a5610d60565b6040516103b2919061452e565b60405180910390f35b3480156103c757600080fd5b506103d0610d66565b6040516103dd919061452e565b60405180910390f35b3480156103f257600080fd5b506103fb610d6c565b604051610408919061452e565b60405180910390f35b34801561041d57600080fd5b50610426610d72565b604051610433919061420e565b60405180910390f35b34801561044857600080fd5b50610463600480360381019061045e9190613ba1565b610e04565b60405161047091906141f3565b60405180910390f35b34801561048557600080fd5b5061048e610e22565b60405161049b919061452e565b60405180910390f35b3480156104b057600080fd5b506104cb60048036038101906104c69190613aa1565b610e28565b6040516104d891906141f3565b60405180910390f35b3480156104ed57600080fd5b506104f6610e48565b60405161050391906141f3565b60405180910390f35b34801561051857600080fd5b50610521610e5b565b60405161052e919061452e565b60405180910390f35b34801561054357600080fd5b5061055e60048036038101906105599190613ba1565b610e64565b60405161056b919061414f565b60405180910390f35b34801561058057600080fd5b5061059b60048036038101906105969190613b61565b610eb2565b005b3480156105a957600080fd5b506105c460048036038101906105bf9190613d3a565b610f89565b005b3480156105d257600080fd5b506105ed60048036038101906105e89190613b0e565b61106e565b6040516105fa91906141f3565b60405180910390f35b34801561060f57600080fd5b50610618611147565b604051610625919061452e565b60405180910390f35b34801561063a57600080fd5b5061064361114d565b6040516106509190614564565b60405180910390f35b34801561066557600080fd5b5061066e611164565b60405161067b9190614564565b60405180910390f35b34801561069057600080fd5b50610699611177565b6040516106a6919061452e565b60405180910390f35b6106b7611181565b005b3480156106c557600080fd5b506106ce6115e6565b6040516106db919061452e565b60405180910390f35b3480156106f057600080fd5b506106f96115ec565b005b34801561070757600080fd5b50610722600480360381019061071d9190613d7a565b61170a565b005b34801561073057600080fd5b5061074b60048036038101906107469190613c86565b611864565b005b34801561075957600080fd5b50610774600480360381019061076f9190613aa1565b611a4e565b60405161078191906141f3565b60405180910390f35b34801561079657600080fd5b5061079f611a6e565b6040516107ac91906141f3565b60405180910390f35b3480156107c157600080fd5b506107ca611a85565b6040516107d7919061414f565b60405180910390f35b3480156107ec57600080fd5b506107f5611aab565b604051610802919061452e565b60405180910390f35b34801561081757600080fd5b50610832600480360381019061082d9190613aa1565b611ab1565b60405161083f91906141f3565b60405180910390f35b34801561085457600080fd5b5061086f600480360381019061086a9190613aa1565b611ad1565b60405161087c919061452e565b60405180910390f35b34801561089157600080fd5b5061089a611b1a565b005b3480156108a857600080fd5b506108b1611bda565b6040516108be919061452e565b60405180910390f35b3480156108d357600080fd5b506108dc611be0565b6040516108e9919061452e565b60405180910390f35b3480156108fe57600080fd5b50610907611be6565b005b34801561091557600080fd5b5061091e611d42565b60405161092b919061414f565b60405180910390f35b34801561094057600080fd5b50610949611d6c565b604051610956919061414f565b60405180910390f35b34801561096b57600080fd5b50610974611d92565b604051610981919061420e565b60405180910390f35b34801561099657600080fd5b5061099f611e24565b6040516109ac919061414f565b60405180910390f35b3480156109c157600080fd5b506109ca611e4a565b6040516109d7919061452e565b60405180910390f35b3480156109ec57600080fd5b50610a076004803603810190610a029190613be1565b611e50565b005b348015610a1557600080fd5b50610a306004803603810190610a2b9190613cb3565b611f6b565b604051610a3f93929190614230565b60405180910390f35b348015610a5457600080fd5b50610a6f6004803603810190610a6a9190613aa1565b61201d565b604051610a7f94939291906141ae565b60405180910390f35b348015610a9457600080fd5b50610aaf6004803603810190610aaa9190613ba1565b61206d565b604051610abc91906141f3565b60405180910390f35b348015610ad157600080fd5b50610ada61208b565b604051610ae7919061420e565b60405180910390f35b348015610afc57600080fd5b50610b05612119565b604051610b12919061414f565b60405180910390f35b348015610b2757600080fd5b50610b3061213f565b604051610b3d919061414f565b60405180910390f35b348015610b5257600080fd5b50610b5b612165565b604051610b689190614549565b60405180910390f35b348015610b7d57600080fd5b50610b986004803603810190610b939190613d0d565b61217c565b005b348015610ba657600080fd5b50610baf61221e565b604051610bbc919061452e565b60405180910390f35b348015610bd157600080fd5b50610bda612224565b604051610be7919061452e565b60405180910390f35b348015610bfc57600080fd5b50610c0561222a565b604051610c12919061420e565b60405180910390f35b348015610c2757600080fd5b50610c306122b8565b005b348015610c3e57600080fd5b50610c596004803603810190610c549190613ace565b612394565b604051610c66919061452e565b60405180910390f35b348015610c7b57600080fd5b50610c8461241b565b604051610c91919061414f565b60405180910390f35b348015610ca657600080fd5b50610caf612441565b604051610cbc919061452e565b60405180910390f35b348015610cd157600080fd5b50610cda612447565b604051610ce7919061414f565b60405180910390f35b610d0a6004803603810190610d059190613aa1565b61246d565b005b348015610d1857600080fd5b50610d336004803603810190610d2e9190613aa1565b6130db565b005b348015610d4157600080fd5b50610d4a61320b565b604051610d57919061414f565b60405180910390f35b600c5481565b60105481565b60125481565b606060018054610d819061480e565b80601f0160208091040260200160405190810160405280929190818152602001828054610dad9061480e565b8015610dfa5780601f10610dcf57610100808354040283529160200191610dfa565b820191906000526020600020905b815481529060010190602001808311610ddd57829003601f168201915b5050505050905090565b6000610e18610e1161328f565b8484613297565b6001905092915050565b600e5481565b60196020528060005260406000206000915054906101000a900460ff1681565b602060009054906101000a900460ff1681565b60008054905090565b60186020528160005260406000208181548110610e8057600080fd5b906000526020600020016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610eba61328f565b73ffffffffffffffffffffffffffffffffffffffff16610ed8611d42565b73ffffffffffffffffffffffffffffffffffffffff1614610f2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f259061432e565b60405180910390fd5b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601a6000610f9561328f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661101c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110139061446e565b60405180910390fd5b60008260ff16141561106a5780600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5050565b600061107b848484613462565b61113c8461108761328f565b61113785604051806060016040528060288152602001614f7d60289139601f60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006110ed61328f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461378c9092919063ffffffff16565b613297565b600190509392505050565b60155481565b6000600360009054906101000a900460ff16905090565b600360009054906101000a900460ff1681565b6000601254905090565b601154601554600f546111949190614618565b11156111d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cc9061444e565b60405180910390fd5b601760009054906101000a900464ffffffffff1664ffffffffff164264ffffffffff161115611239576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611230906144ee565b60405180910390fd5b60165434101561127e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112759061440e565b60405180910390fd5b60001515601d600061128e61328f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611318576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130f906144ae565b60405180910390fd5b6000601654111561138f57600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6016549081150290604051600060405180830381858888f1935050505015801561138d573d6000803e3d6000fd5b505b6001601d600061139d61328f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601554601060008282546114029190614618565b92505081905550601554600f600082825461141d9190614618565b92505081905550601554601e6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461149791906146f9565b92505081905550601554601e60006114ad61328f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114f69190614618565b9250508190555061150561328f565b73ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601554604051611585919061452e565b60405180910390a361159561328f565b73ffffffffffffffffffffffffffffffffffffffff167f8c32c568416fcf97be35ce5b27844cfddcd63a67a1a602c3595ba5dac38f303a6015546040516115dc919061452e565b60405180910390a2565b60005481565b6115f4611a6e565b611633576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162a9061428e565b60405180910390fd5b61163b61328f565b73ffffffffffffffffffffffffffffffffffffffff16611659611d42565b73ffffffffffffffffffffffffffffffffffffffff16146116af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a69061432e565b60405180910390fd5b6000602060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6116f361328f565b604051611700919061416a565b60405180910390a1565b601a600061171661328f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661179d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117949061446e565b60405180910390fd5b60018260ff1614156117b55780601481905550611860565b60028260ff1614156117cd578060118190555061185f565b60038260ff1614156117e5578060168190555061185e565b60048260ff1614156117fd578060138190555061185d565b60058260ff1614156118155780600b8190555061185c565b60068260ff16141561182d5780600c8190555061185b565b60078260ff1614156118455780600d8190555061185a565b60088260ff1614156118595780600e819055505b5b5b5b5b5b5b5b5050565b601a600061187061328f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166118f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ee9061446e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161194d919061414f565b60206040518083038186803b15801561196557600080fd5b505afa158015611979573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199d9190613ce0565b6040518363ffffffff1660e01b81526004016119ba929190614185565b602060405180830381600087803b1580156119d457600080fd5b505af11580156119e8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0c9190613c59565b611a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a429061436e565b60405180910390fd5b50565b601a6020528060005260406000206000915054906101000a900460ff1681565b6000602060009054906101000a900460ff16905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135481565b601d6020528060005260406000206000915054906101000a900460ff1681565b6000601e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611b2261328f565b73ffffffffffffffffffffffffffffffffffffffff16611b40611d42565b73ffffffffffffffffffffffffffffffffffffffff1614611b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8d9061432e565b60405180910390fd5b6000600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b5481565b60115481565b611bee611a6e565b1580611c2c5750611bfd611d42565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c629061442e565b60405180910390fd5b611c7361328f565b73ffffffffffffffffffffffffffffffffffffffff16611c91611d42565b73ffffffffffffffffffffffffffffffffffffffff1614611ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cde9061432e565b60405180910390fd5b6001602060006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611d2b61328f565b604051611d38919061416a565b60405180910390a1565b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060028054611da19061480e565b80601f0160208091040260200160405190810160405280929190818152602001828054611dcd9061480e565b8015611e1a5780601f10611def57610100808354040283529160200191611e1a565b820191906000526020600020905b815481529060010190602001808311611dfd57829003601f168201915b5050505050905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b611e5861328f565b73ffffffffffffffffffffffffffffffffffffffff16611e76611d42565b73ffffffffffffffffffffffffffffffffffffffff1614611ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec39061432e565b60405180910390fd5b60005b8251811015611f6657818181518110611eeb57611eea614947565b5b6020026020010151601b6000858481518110611f0a57611f09614947565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055508080611f5e90614871565b915050611ecf565b505050565b601c602052806000526040600020600091509050806000018054611f8e9061480e565b80601f0160208091040260200160405190810160405280929190818152602001828054611fba9061480e565b80156120075780601f10611fdc57610100808354040283529160200191612007565b820191906000526020600020905b815481529060010190602001808311611fea57829003601f168201915b5050505050908060010154908060020154905083565b601b6020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154905084565b600061208161207a61328f565b8484613462565b6001905092915050565b600280546120989061480e565b80601f01602080910402602001604051908101604052809291908181526020018280546120c49061480e565b80156121115780601f106120e657610100808354040283529160200191612111565b820191906000526020600020905b8154815290600101906020018083116120f457829003601f168201915b505050505081565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601760009054906101000a900464ffffffffff1681565b61218461328f565b73ffffffffffffffffffffffffffffffffffffffff166121a2611d42565b73ffffffffffffffffffffffffffffffffffffffff16146121f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ef9061432e565b60405180910390fd5b80601760006101000a81548164ffffffffff021916908364ffffffffff16021790555050565b60165481565b600f5481565b600180546122379061480e565b80601f01602080910402602001604051908101604052809291908181526020018280546122639061480e565b80156122b05780601f10612285576101008083540402835291602001916122b0565b820191906000526020600020905b81548152906001019060200180831161229357829003601f168201915b505050505081565b601a60006122c461328f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661234b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123429061446e565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015612391573d6000803e3d6000fd5b50565b6000601f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8073ffffffffffffffffffffffffffffffffffffffff1661248c61328f565b73ffffffffffffffffffffffffffffffffffffffff16141580156124dd5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561252857506000601e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b612567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255e9061434e565b60405180910390fd5b60003490506000612583601454836137ea90919063ffffffff16565b905080600f60008282546125979190614618565b9250508190555060115481600f546125af9190614618565b11156125f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e7906142ce565b60405180910390fd5b601760009054906101000a900464ffffffffff1664ffffffffff164264ffffffffff161115612654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264b9061426e565b60405180910390fd5b601354341015612699576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612690906142ae565b60405180910390fd5b80601e6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461270a91906146f9565b9250508190555080601e600061271e61328f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127679190614618565b9250508190555061277661328f565b73ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127f4919061452e565b60405180910390a381601b600061280961328f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008282546128559190614618565b9250508190555082601b600061286961328f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301600081548092919061293790614871565b9190505550601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061298361328f565b9080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601c60008081526020019081526020016000206001015490506001601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541415612a6457601c6000600181526020019081526020016000206001015490505b6000601c60008081526020019081526020016000206002015490506001601b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541415612ae557601c6000600181526020019081526020016000206002015490505b612b0c612710612afe83866137ea90919063ffffffff16565b61386590919063ffffffff16565b601e6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b7c91906146f9565b92505081905550612baa612710612b9c83866137ea90919063ffffffff16565b61386590919063ffffffff16565b601e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612bf89190614618565b925050819055508473ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612c97612710612c8986896137ea90919063ffffffff16565b61386590919063ffffffff16565b604051612ca4919061452e565b60405180910390a36000600e54600d54600c5485612cc29190614618565b612ccc9190614618565b612cd69190614618565b90508573ffffffffffffffffffffffffffffffffffffffff166108fc612d19612710612d0b878a6137ea90919063ffffffff16565b61386590919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612d44573d6000803e3d6000fd5b50600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612daa612710612d9c600c548a6137ea90919063ffffffff16565b61386590919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612dd5573d6000803e3d6000fd5b50600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612e3b612710612e2d600d548a6137ea90919063ffffffff16565b61386590919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612e66573d6000803e3d6000fd5b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612ecc612710612ebe600e548a6137ea90919063ffffffff16565b61386590919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612ef7573d6000803e3d6000fd5b506000601b6000612f0661328f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541415612fec57600b5481612f589190614618565b9050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612fbf612710612fb1600b548a6137ea90919063ffffffff16565b61386590919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612fea573d6000803e3d6000fd5b505b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61305c61271061304e8561271061303f91906146f9565b8a6137ea90919063ffffffff16565b61386590919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015613087573d6000803e3d6000fd5b508361309161328f565b73ffffffffffffffffffffffffffffffffffffffff167fe3d4187f6ca4248660cc0ac8b8056515bac4a8132be2eca31d6d0cc170722a7e60405160405180910390a3505050505050565b6130e361328f565b73ffffffffffffffffffffffffffffffffffffffff16613101611d42565b73ffffffffffffffffffffffffffffffffffffffff1614613157576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161314e9061432e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156131c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131be9061438e565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008082846132409190614618565b905083811015613285576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161327c906143ae565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132fe9061430e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161336e9061450e565b60405180910390fd5b80601f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051613455919061452e565b60405180910390a3505050565b61346a611a6e565b15806134bf5750601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6134fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134f5906143ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561356e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613565906144ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156135de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135d5906142ee565b60405180910390fd5b61364a81604051806060016040528060268152602001614f5760269139601e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461378c9092919063ffffffff16565b601e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506136df81601e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461323190919063ffffffff16565b601e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161377f919061452e565b60405180910390a3505050565b60008383111582906137d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137cb919061420e565b60405180910390fd5b5082846137e191906146f9565b90509392505050565b6000808314156137fd576000905061385f565b6000828461380b919061469f565b905082848261381a919061466e565b1461385a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138519061448e565b60405180910390fd5b809150505b92915050565b60008082116138a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138a0906143ee565b60405180910390fd5b81836138b5919061466e565b905092915050565b60006138d06138cb846145a4565b61457f565b905080838252602082019050828560208602820111156138f3576138f26149aa565b5b60005b858110156139235781613909888261399d565b8452602084019350602083019250506001810190506138f6565b5050509392505050565b600061394061393b846145d0565b61457f565b90508083825260208201905082856020860282011115613963576139626149aa565b5b60005b8581101561399357816139798882613a4d565b845260208401935060208301925050600181019050613966565b5050509392505050565b6000813590506139ac81614ecc565b92915050565b600082601f8301126139c7576139c66149a5565b5b81356139d78482602086016138bd565b91505092915050565b600082601f8301126139f5576139f46149a5565b5b8135613a0584826020860161392d565b91505092915050565b600081359050613a1d81614ee3565b92915050565b600081519050613a3281614ee3565b92915050565b600081359050613a4781614efa565b92915050565b600081359050613a5c81614f11565b92915050565b600081519050613a7181614f11565b92915050565b600081359050613a8681614f28565b92915050565b600081359050613a9b81614f3f565b92915050565b600060208284031215613ab757613ab66149b4565b5b6000613ac58482850161399d565b91505092915050565b60008060408385031215613ae557613ae46149b4565b5b6000613af38582860161399d565b9250506020613b048582860161399d565b9150509250929050565b600080600060608486031215613b2757613b266149b4565b5b6000613b358682870161399d565b9350506020613b468682870161399d565b9250506040613b5786828701613a4d565b9150509250925092565b60008060408385031215613b7857613b776149b4565b5b6000613b868582860161399d565b9250506020613b9785828601613a0e565b9150509250929050565b60008060408385031215613bb857613bb76149b4565b5b6000613bc68582860161399d565b9250506020613bd785828601613a4d565b9150509250929050565b60008060408385031215613bf857613bf76149b4565b5b600083013567ffffffffffffffff811115613c1657613c156149af565b5b613c22858286016139b2565b925050602083013567ffffffffffffffff811115613c4357613c426149af565b5b613c4f858286016139e0565b9150509250929050565b600060208284031215613c6f57613c6e6149b4565b5b6000613c7d84828501613a23565b91505092915050565b600060208284031215613c9c57613c9b6149b4565b5b6000613caa84828501613a38565b91505092915050565b600060208284031215613cc957613cc86149b4565b5b6000613cd784828501613a4d565b91505092915050565b600060208284031215613cf657613cf56149b4565b5b6000613d0484828501613a62565b91505092915050565b600060208284031215613d2357613d226149b4565b5b6000613d3184828501613a77565b91505092915050565b60008060408385031215613d5157613d506149b4565b5b6000613d5f85828601613a8c565b9250506020613d708582860161399d565b9150509250929050565b60008060408385031215613d9157613d906149b4565b5b6000613d9f85828601613a8c565b9250506020613db085828601613a4d565b9150509250929050565b613dc3816147a5565b82525050565b613dd28161472d565b82525050565b613de18161473f565b82525050565b6000613df2826145fc565b613dfc8185614607565b9350613e0c8185602086016147db565b613e15816149b9565b840191505092915050565b6000613e2d601783614607565b9150613e38826149ca565b602082019050919050565b6000613e50601483614607565b9150613e5b826149f3565b602082019050919050565b6000613e73602283614607565b9150613e7e82614a1c565b604082019050919050565b6000613e96602383614607565b9150613ea182614a6b565b604082019050919050565b6000613eb9602383614607565b9150613ec482614aba565b604082019050919050565b6000613edc602483614607565b9150613ee782614b09565b604082019050919050565b6000613eff601783614607565b9150613f0a82614b58565b602082019050919050565b6000613f22601883614607565b9150613f2d82614b81565b602082019050919050565b6000613f45601683614607565b9150613f5082614baa565b602082019050919050565b6000613f68602683614607565b9150613f7382614bd3565b604082019050919050565b6000613f8b601b83614607565b9150613f9682614c22565b602082019050919050565b6000613fae601683614607565b9150613fb982614c4b565b602082019050919050565b6000613fd1601a83614607565b9150613fdc82614c74565b602082019050919050565b6000613ff4601c83614607565b9150613fff82614c9d565b602082019050919050565b6000614017601083614607565b915061402282614cc6565b602082019050919050565b600061403a602583614607565b915061404582614cef565b604082019050919050565b600061405d601983614607565b915061406882614d3e565b602082019050919050565b6000614080602183614607565b915061408b82614d67565b604082019050919050565b60006140a3601f83614607565b91506140ae82614db6565b602082019050919050565b60006140c6602583614607565b91506140d182614ddf565b604082019050919050565b60006140e9602483614607565b91506140f482614e2e565b604082019050919050565b600061410c602283614607565b915061411782614e7d565b604082019050919050565b61412b8161477d565b82525050565b61413a81614787565b82525050565b61414981614798565b82525050565b60006020820190506141646000830184613dc9565b92915050565b600060208201905061417f6000830184613dba565b92915050565b600060408201905061419a6000830185613dc9565b6141a76020830184614122565b9392505050565b60006080820190506141c36000830187613dc9565b6141d06020830186614122565b6141dd6040830185614122565b6141ea6060830184614122565b95945050505050565b60006020820190506142086000830184613dd8565b92915050565b600060208201905081810360008301526142288184613de7565b905092915050565b6000606082019050818103600083015261424a8186613de7565b90506142596020830185614122565b6142666040830184614122565b949350505050565b6000602082019050818103600083015261428781613e20565b9050919050565b600060208201905081810360008301526142a781613e43565b9050919050565b600060208201905081810360008301526142c781613e66565b9050919050565b600060208201905081810360008301526142e781613e89565b9050919050565b6000602082019050818103600083015261430781613eac565b9050919050565b6000602082019050818103600083015261432781613ecf565b9050919050565b6000602082019050818103600083015261434781613ef2565b9050919050565b6000602082019050818103600083015261436781613f15565b9050919050565b6000602082019050818103600083015261438781613f38565b9050919050565b600060208201905081810360008301526143a781613f5b565b9050919050565b600060208201905081810360008301526143c781613f7e565b9050919050565b600060208201905081810360008301526143e781613fa1565b9050919050565b6000602082019050818103600083015261440781613fc4565b9050919050565b6000602082019050818103600083015261442781613fe7565b9050919050565b600060208201905081810360008301526144478161400a565b9050919050565b600060208201905081810360008301526144678161402d565b9050919050565b6000602082019050818103600083015261448781614050565b9050919050565b600060208201905081810360008301526144a781614073565b9050919050565b600060208201905081810360008301526144c781614096565b9050919050565b600060208201905081810360008301526144e7816140b9565b9050919050565b60006020820190508181036000830152614507816140dc565b9050919050565b60006020820190508181036000830152614527816140ff565b9050919050565b60006020820190506145436000830184614122565b92915050565b600060208201905061455e6000830184614131565b92915050565b60006020820190506145796000830184614140565b92915050565b600061458961459a565b90506145958282614840565b919050565b6000604051905090565b600067ffffffffffffffff8211156145bf576145be614976565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156145eb576145ea614976565b5b602082029050602081019050919050565b600081519050919050565b600082825260208201905092915050565b60006146238261477d565b915061462e8361477d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614663576146626148ba565b5b828201905092915050565b60006146798261477d565b91506146848361477d565b925082614694576146936148e9565b5b828204905092915050565b60006146aa8261477d565b91506146b58361477d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156146ee576146ed6148ba565b5b828202905092915050565b60006147048261477d565b915061470f8361477d565b925082821015614722576147216148ba565b5b828203905092915050565b60006147388261475d565b9050919050565b60008115159050919050565b60006147568261472d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600064ffffffffff82169050919050565b600060ff82169050919050565b60006147b0826147b7565b9050919050565b60006147c2826147c9565b9050919050565b60006147d48261475d565b9050919050565b60005b838110156147f95780820151818401526020810190506147de565b83811115614808576000848401525b50505050565b6000600282049050600182168061482657607f821691505b6020821081141561483a57614839614918565b5b50919050565b614849826149b9565b810181811067ffffffffffffffff8211171561486857614867614976565b5b80604052505050565b600061487c8261477d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156148af576148ae6148ba565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4572726f723a2049434f2069732066696e69736865642e000000000000000000600082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f4572726f723a20496e73756666696369656e7420616d6f756e7420746f20627560008201527f792e000000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a204d617820616c6c6f636174656420746f6b656e20726561636860008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f42455032303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000600082015250565b7f4572726f723a20496e76616c6964207265666572726f722e0000000000000000600082015250565b7f4572726f723a205472616e73666572206661696c656400000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4572726f723a20746f6b656e2069732070617573656400000000000000000000600082015250565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000600082015250565b7f4572726f723a20496e73756666696369656e742062616c616e63652e00000000600082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f4572726f723a204d617820616c6c6f63617465642061697264726f702072656160008201527f636865642e000000000000000000000000000000000000000000000000000000602082015250565b7f43616c6c6572206973206e6f742074686520616c6c6f77656400000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a20416c726561647920636c61696d65642061697264726f702e00600082015250565b7f4572726f723a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4572726f723a20436c61696d696e672061697264726f702069732066696e697360008201527f6865642e00000000000000000000000000000000000000000000000000000000602082015250565b7f42455032303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b614ed58161472d565b8114614ee057600080fd5b50565b614eec8161473f565b8114614ef757600080fd5b50565b614f038161474b565b8114614f0e57600080fd5b50565b614f1a8161477d565b8114614f2557600080fd5b50565b614f3181614787565b8114614f3c57600080fd5b50565b614f4881614798565b8114614f5357600080fd5b5056fe4572726f723a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e58d0dbdd4ac1d4bb392346fe60c98718eea07828884074b7d7d758cebc2ecf264736f6c63430008070033000000000000000000000000b1de50e6a0f6d2eb300839ff25783db01aacaca8000000000000000000000000b1de50e6a0f6d2eb300839ff25783db01aacaca8000000000000000000000000b1de50e6a0f6d2eb300839ff25783db01aacaca8000000000000000000000000b1de50e6a0f6d2eb300839ff25783db01aacaca8000000000000000000000000b1de50e6a0f6d2eb300839ff25783db01aacaca8000000000000000000000000b1de50e6a0f6d2eb300839ff25783db01aacaca8000000000000000000000000b1de50e6a0f6d2eb300839ff25783db01aacaca8