[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "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": "newWallet", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldWallet", "type": "address" } ], "name": "CharityWalletUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "ExcludeFromFees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pair", "type": "address" }, { "indexed": true, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "SetAutomatedMarketMakerPair", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokensSwapped", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "ethReceived", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "tokensIntoLiquidity", "type": "uint256" } ], "name": "SwapAndLiquify", "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": true, "internalType": "address", "name": "newAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldAddress", "type": "address" } ], "name": "UpdateUniswapV2Router", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newWallet", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldWallet", "type": "address" } ], "name": "devWalletUpdated", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isExcludedMaxTransactionAmount", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": "", "type": "address" } ], "name": "automatedMarketMakerPairs", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyCharityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyDevFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyTotalFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "charityWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "deadAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "devWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "excluded", "type": "bool" } ], "name": "excludeFromFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "updAds", "type": "address" }, { "internalType": "bool", "name": "isEx", "type": "bool" } ], "name": "excludeFromMaxTransaction", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isExcludedFromFees", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "launchedAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launchedAtTimestamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "limitsInEffect", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxTransactionAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxWallet", "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": "removeLimits", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sellCharityFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sellDevFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sellTotalFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pair", "type": "address" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "setAutomatedMarketMakerPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapTokensAtAmount", "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": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tradingActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "uniswapV2Pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uniswapV2Router", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_charityFee", "type": "uint256" }, { "internalType": "uint256", "name": "_devFee", "type": "uint256" } ], "name": "updateBuyFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newCharityWallet", "type": "address" } ], "name": "updateCharityWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newWallet", "type": "address" } ], "name": "updateDevWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newNum", "type": "uint256" } ], "name": "updateMaxTxnAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newNum", "type": "uint256" } ], "name": "updateMaxWalletAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_charityFee", "type": "uint256" }, { "internalType": "uint256", "name": "_devFee", "type": "uint256" } ], "name": "updateSellFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "updateSwapEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "updateSwapTokensAtAmount", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "withdrawETH", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IERC20", "name": "_token", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "withdrawToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60c06040526001600b5f6101000a81548160ff0219169083151502179055505f600b60016101000a81548160ff0219169083151502179055505f600b60026101000a81548160ff021916908315150217905550600a600e556005600f556005601055600a601155600560125560056013553480156200007c575f80fd5b506040518060400160405280600e81526020017f4e696e6a657720547572746c65730000000000000000000000000000000000008152506040518060400160405280600481526020017f544d4e4a000000000000000000000000000000000000000000000000000000008152508160039081620000fa919062000c57565b5080600490816200010c919062000c57565b5050506200012f62000123620004cb60201b60201c565b620004d260201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90506200015a8160016200059560201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001fe919062000da0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000264573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200028a919062000da0565b6040518363ffffffff1660e01b8152600401620002a992919062000de1565b6020604051808303815f875af1158015620002c6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ec919062000da0565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200033460a05160016200059560201b60201c565b6200034960a05160016200067c60201b60201c565b5f6b033b2e3c9fd0803ce800000090506a108b2a2c280290940000006008819055506a108b2a2c28029094000000600a8190555069d3c21bcecceda10000006009819055503360065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000430620004226200071a60201b60201c565b60016200074260201b60201c565b620004433060016200074260201b60201c565b6200045861dead60016200074260201b60201c565b6200047a6200046c6200071a60201b60201c565b60016200059560201b60201c565b6200048d3060016200059560201b60201c565b620004a261dead60016200059560201b60201c565b620004c3620004b66200071a60201b60201c565b826200087960201b60201c565b505062000fc2565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620005a5620004cb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620005cb6200071a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000624576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200061b9062000e6a565b60405180910390fd5b8060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b8060185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b62000752620004cb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620007786200071a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620007d1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007c89062000e6a565b60405180910390fd5b8060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516200086d919062000ea6565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008ea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008e19062000f0f565b60405180910390fd5b620008fd5f8383620009e960201b60201c565b8060025f82825462000910919062000f5c565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825462000964919062000f5c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620009ca919062000fa7565b60405180910390a3620009e55f8383620009ee60201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000a6f57607f821691505b60208210810362000a855762000a8462000a2a565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000ae97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000aac565b62000af5868362000aac565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000b3f62000b3962000b338462000b0d565b62000b16565b62000b0d565b9050919050565b5f819050919050565b62000b5a8362000b1f565b62000b7262000b698262000b46565b84845462000ab8565b825550505050565b5f90565b62000b8862000b7a565b62000b9581848462000b4f565b505050565b5b8181101562000bbc5762000bb05f8262000b7e565b60018101905062000b9b565b5050565b601f82111562000c0b5762000bd58162000a8b565b62000be08462000a9d565b8101602085101562000bf0578190505b62000c0862000bff8562000a9d565b83018262000b9a565b50505b505050565b5f82821c905092915050565b5f62000c2d5f198460080262000c10565b1980831691505092915050565b5f62000c47838362000c1c565b9150826002028217905092915050565b62000c6282620009f3565b67ffffffffffffffff81111562000c7e5762000c7d620009fd565b5b62000c8a825462000a57565b62000c9782828562000bc0565b5f60209050601f83116001811462000ccd575f841562000cb8578287015190505b62000cc4858262000c3a565b86555062000d33565b601f19841662000cdd8662000a8b565b5f5b8281101562000d065784890151825560018201915060208501945060208101905062000cdf565b8683101562000d26578489015162000d22601f89168262000c1c565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000d6a8262000d3f565b9050919050565b62000d7c8162000d5e565b811462000d87575f80fd5b50565b5f8151905062000d9a8162000d71565b92915050565b5f6020828403121562000db85762000db762000d3b565b5b5f62000dc78482850162000d8a565b91505092915050565b62000ddb8162000d5e565b82525050565b5f60408201905062000df65f83018562000dd0565b62000e05602083018462000dd0565b9392505050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62000e5260208362000e0c565b915062000e5f8262000e1c565b602082019050919050565b5f6020820190508181035f83015262000e838162000e44565b9050919050565b5f8115159050919050565b62000ea08162000e8a565b82525050565b5f60208201905062000ebb5f83018462000e95565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000ef7601f8362000e0c565b915062000f048262000ec1565b602082019050919050565b5f6020820190508181035f83015262000f288162000ee9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000f688262000b0d565b915062000f758362000b0d565b925082820190508082111562000f905762000f8f62000f2f565b5b92915050565b62000fa18162000b0d565b82525050565b5f60208201905062000fbc5f83018462000f96565b92915050565b60805160a05161464f620010005f395f818161133101526118ca01525f8181610e500152818161333a015281816134190152613440015261464f5ff3fe6080604052600436106102e7575f3560e01c80637b2087691161018f578063bbc0c742116100db578063d257b34f11610094578063e2f456051161006e578063e2f4560514610b30578063f14210a614610b5a578063f2fde38b14610b82578063f8b45b0514610baa576102ee565b8063d257b34f14610a8e578063d85ba06314610aca578063dd62ed3e14610af4576102ee565b8063bbc0c74214610996578063bf56b371146109c0578063c0246668146109ea578063c18bc19514610a12578063c6d2577d14610a3a578063c8c8ebe414610a64576102ee565b80639c3b4fdc11610148578063a1dc92bc11610122578063a1dc92bc146108b8578063a457c2d7146108e2578063a9059cbb1461091e578063b62496f51461095a576102ee565b80639c3b4fdc1461083c5780639e281a9814610866578063a0d82dc51461088e576102ee565b80637b208769146107445780638da5cb5b1461076e5780638ea5220f14610798578063924de9b7146107c257806395d89b41146107ea5780639a7a23d614610814576102ee565b8063313ce5671161024e57806366ca9b831161020757806370a08231116101e157806370a08231146106a0578063715018a6146106dc578063751039fc146106f25780637571336a1461071c576102ee565b806366ca9b83146106245780636a486a8e1461064c5780636ddd171314610676576102ee565b8063313ce5671461050657806339509351146105305780633e65d4aa1461056c57806349bd5a5e146105945780634a62bb65146105be5780634fbee193146105e8576102ee565b80631694505e116102a05780631694505e146103fc57806318160ddd146104265780631816467f14610450578063203e727e1461047857806323b872dd146104a057806327c8f835146104dc576102ee565b806301339c21146102f257806302dbd8f81461030857806306fdde0314610330578063095ea7b31461035a5780630d7f14411461039657806310d5de53146103c0576102ee565b366102ee57005b5f80fd5b3480156102fd575f80fd5b50610306610bd4565b005b348015610313575f80fd5b5061032e60048036038101906103299190613507565b610cda565b005b34801561033b575f80fd5b50610344610d7e565b60405161035191906135cf565b60405180910390f35b348015610365575f80fd5b50610380600480360381019061037b9190613649565b610e0e565b60405161038d91906136a1565b60405180910390f35b3480156103a1575f80fd5b506103aa610e2b565b6040516103b791906136c9565b60405180910390f35b3480156103cb575f80fd5b506103e660048036038101906103e191906136e2565b610e31565b6040516103f391906136a1565b60405180910390f35b348015610407575f80fd5b50610410610e4e565b60405161041d9190613768565b60405180910390f35b348015610431575f80fd5b5061043a610e72565b60405161044791906136c9565b60405180910390f35b34801561045b575f80fd5b50610476600480360381019061047191906136e2565b610e7b565b005b348015610483575f80fd5b5061049e60048036038101906104999190613781565b610fb5565b005b3480156104ab575f80fd5b506104c660048036038101906104c191906137ac565b61104e565b6040516104d391906136a1565b60405180910390f35b3480156104e7575f80fd5b506104f0611140565b6040516104fd919061380b565b60405180910390f35b348015610511575f80fd5b5061051a611146565b604051610527919061383f565b60405180910390f35b34801561053b575f80fd5b5061055660048036038101906105519190613649565b61114e565b60405161056391906136a1565b60405180910390f35b348015610577575f80fd5b50610592600480360381019061058d91906136e2565b6111f5565b005b34801561059f575f80fd5b506105a861132f565b6040516105b5919061380b565b60405180910390f35b3480156105c9575f80fd5b506105d2611353565b6040516105df91906136a1565b60405180910390f35b3480156105f3575f80fd5b5061060e600480360381019061060991906136e2565b611365565b60405161061b91906136a1565b60405180910390f35b34801561062f575f80fd5b5061064a60048036038101906106459190613507565b6113b7565b005b348015610657575f80fd5b5061066061145b565b60405161066d91906136c9565b60405180910390f35b348015610681575f80fd5b5061068a611461565b60405161069791906136a1565b60405180910390f35b3480156106ab575f80fd5b506106c660048036038101906106c191906136e2565b611474565b6040516106d391906136c9565b60405180910390f35b3480156106e7575f80fd5b506106f06114b9565b005b3480156106fd575f80fd5b50610706611540565b60405161071391906136a1565b60405180910390f35b348015610727575f80fd5b50610742600480360381019061073d9190613882565b6115dd565b005b34801561074f575f80fd5b506107586116b1565b604051610765919061380b565b60405180910390f35b348015610779575f80fd5b506107826116d6565b60405161078f919061380b565b60405180910390f35b3480156107a3575f80fd5b506107ac6116fe565b6040516107b9919061380b565b60405180910390f35b3480156107cd575f80fd5b506107e860048036038101906107e391906138c0565b611723565b005b3480156107f5575f80fd5b506107fe6117bc565b60405161080b91906135cf565b60405180910390f35b34801561081f575f80fd5b5061083a60048036038101906108359190613882565b61184c565b005b348015610847575f80fd5b50610850611964565b60405161085d91906136c9565b60405180910390f35b348015610871575f80fd5b5061088c60048036038101906108879190613926565b61196a565b005b348015610899575f80fd5b506108a2611b20565b6040516108af91906136c9565b60405180910390f35b3480156108c3575f80fd5b506108cc611b26565b6040516108d991906136c9565b60405180910390f35b3480156108ed575f80fd5b5061090860048036038101906109039190613649565b611b2c565b60405161091591906136a1565b60405180910390f35b348015610929575f80fd5b50610944600480360381019061093f9190613649565b611c12565b60405161095191906136a1565b60405180910390f35b348015610965575f80fd5b50610980600480360381019061097b91906136e2565b611c2f565b60405161098d91906136a1565b60405180910390f35b3480156109a1575f80fd5b506109aa611c4c565b6040516109b791906136a1565b60405180910390f35b3480156109cb575f80fd5b506109d4611c5f565b6040516109e191906136c9565b60405180910390f35b3480156109f5575f80fd5b50610a106004803603810190610a0b9190613882565b611c65565b005b348015610a1d575f80fd5b50610a386004803603810190610a339190613781565b611d87565b005b348015610a45575f80fd5b50610a4e611e20565b604051610a5b91906136c9565b60405180910390f35b348015610a6f575f80fd5b50610a78611e26565b604051610a8591906136c9565b60405180910390f35b348015610a99575f80fd5b50610ab46004803603810190610aaf9190613781565b611e2c565b604051610ac191906136a1565b60405180910390f35b348015610ad5575f80fd5b50610ade611ecc565b604051610aeb91906136c9565b60405180910390f35b348015610aff575f80fd5b50610b1a6004803603810190610b159190613964565b611ed2565b604051610b2791906136c9565b60405180910390f35b348015610b3b575f80fd5b50610b44611f54565b604051610b5191906136c9565b60405180910390f35b348015610b65575f80fd5b50610b806004803603810190610b7b9190613781565b611f5a565b005b348015610b8d575f80fd5b50610ba86004803603810190610ba391906136e2565b612060565b005b348015610bb5575f80fd5b50610bbe612156565b604051610bcb91906136c9565b60405180910390f35b610bdc61215c565b73ffffffffffffffffffffffffffffffffffffffff16610bfa6116d6565b73ffffffffffffffffffffffffffffffffffffffff1614610c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c47906139ec565b60405180910390fd5b5f600c5414610c94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8b90613a54565b60405180910390fd5b43600c8190555042600d819055506001600b60026101000a81548160ff0219169083151502179055506001600b60016101000a81548160ff021916908315150217905550565b610ce261215c565b73ffffffffffffffffffffffffffffffffffffffff16610d006116d6565b73ffffffffffffffffffffffffffffffffffffffff1614610d56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4d906139ec565b60405180910390fd5b8160128190555080601381905550601354601254610d749190613a9f565b6011819055505050565b606060038054610d8d90613aff565b80601f0160208091040260200160405190810160405280929190818152602001828054610db990613aff565b8015610e045780601f10610ddb57610100808354040283529160200191610e04565b820191905f5260205f20905b815481529060010190602001808311610de757829003601f168201915b5050505050905090565b5f610e21610e1a61215c565b8484612163565b6001905092915050565b60125481565b6017602052805f5260405f205f915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600254905090565b610e8361215c565b73ffffffffffffffffffffffffffffffffffffffff16610ea16116d6565b73ffffffffffffffffffffffffffffffffffffffff1614610ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eee906139ec565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a38060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610fbd61215c565b73ffffffffffffffffffffffffffffffffffffffff16610fdb6116d6565b73ffffffffffffffffffffffffffffffffffffffff1614611031576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611028906139ec565b60405180910390fd5b670de0b6b3a7640000816110459190613b2f565b60088190555050565b5f61105a848484612326565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6110a161215c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611120576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111790613be0565b60405180910390fd5b6111348561112c61215c565b858403612163565b60019150509392505050565b61dead81565b5f6012905090565b5f6111eb61115a61215c565b848460015f61116761215c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546111e69190613a9f565b612163565b6001905092915050565b6111fd61215c565b73ffffffffffffffffffffffffffffffffffffffff1661121b6116d6565b73ffffffffffffffffffffffffffffffffffffffff1614611271576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611268906139ec565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fc20073d1c4443096c55d22a3812db7261aa6911634e1a0850f068d0c9923402d60405160405180910390a38060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600b5f9054906101000a900460ff1681565b5f60165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b6113bf61215c565b73ffffffffffffffffffffffffffffffffffffffff166113dd6116d6565b73ffffffffffffffffffffffffffffffffffffffff1614611433576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142a906139ec565b60405180910390fd5b81600f8190555080601081905550601054600f546114519190613a9f565b600e819055505050565b60115481565b600b60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6114c161215c565b73ffffffffffffffffffffffffffffffffffffffff166114df6116d6565b73ffffffffffffffffffffffffffffffffffffffff1614611535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152c906139ec565b60405180910390fd5b61153e5f612d36565b565b5f61154961215c565b73ffffffffffffffffffffffffffffffffffffffff166115676116d6565b73ffffffffffffffffffffffffffffffffffffffff16146115bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b4906139ec565b60405180910390fd5b5f600b5f6101000a81548160ff0219169083151502179055506001905090565b6115e561215c565b73ffffffffffffffffffffffffffffffffffffffff166116036116d6565b73ffffffffffffffffffffffffffffffffffffffff1614611659576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611650906139ec565b60405180910390fd5b8060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61172b61215c565b73ffffffffffffffffffffffffffffffffffffffff166117496116d6565b73ffffffffffffffffffffffffffffffffffffffff161461179f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611796906139ec565b60405180910390fd5b80600b60016101000a81548160ff02191690831515021790555050565b6060600480546117cb90613aff565b80601f01602080910402602001604051908101604052809291908181526020018280546117f790613aff565b80156118425780601f1061181957610100808354040283529160200191611842565b820191905f5260205f20905b81548152906001019060200180831161182557829003601f168201915b5050505050905090565b61185461215c565b73ffffffffffffffffffffffffffffffffffffffff166118726116d6565b73ffffffffffffffffffffffffffffffffffffffff16146118c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bf906139ec565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194d90613c6e565b60405180910390fd5b6119608282612df9565b5050565b60105481565b61197261215c565b73ffffffffffffffffffffffffffffffffffffffff166119906116d6565b73ffffffffffffffffffffffffffffffffffffffff16146119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd906139ec565b60405180910390fd5b808273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611a20919061380b565b602060405180830381865afa158015611a3b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a5f9190613ca0565b1015611aa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9790613d15565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611adb929190613d33565b6020604051808303815f875af1158015611af7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b1b9190613d6e565b505050565b60135481565b600f5481565b5f8060015f611b3961215c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611bf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bea90613e09565b60405180910390fd5b611c07611bfe61215c565b85858403612163565b600191505092915050565b5f611c25611c1e61215c565b8484612326565b6001905092915050565b6018602052805f5260405f205f915054906101000a900460ff1681565b600b60029054906101000a900460ff1681565b600c5481565b611c6d61215c565b73ffffffffffffffffffffffffffffffffffffffff16611c8b6116d6565b73ffffffffffffffffffffffffffffffffffffffff1614611ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd8906139ec565b60405180910390fd5b8060165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611d7b91906136a1565b60405180910390a25050565b611d8f61215c565b73ffffffffffffffffffffffffffffffffffffffff16611dad6116d6565b73ffffffffffffffffffffffffffffffffffffffff1614611e03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfa906139ec565b60405180910390fd5b670de0b6b3a764000081611e179190613b2f565b600a8190555050565b600d5481565b60085481565b5f611e3561215c565b73ffffffffffffffffffffffffffffffffffffffff16611e536116d6565b73ffffffffffffffffffffffffffffffffffffffff1614611ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea0906139ec565b60405180910390fd5b670de0b6b3a764000082611ebd9190613b2f565b60098190555060019050919050565b600e5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60095481565b611f6261215c565b73ffffffffffffffffffffffffffffffffffffffff16611f806116d6565b73ffffffffffffffffffffffffffffffffffffffff1614611fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcd906139ec565b60405180910390fd5b80471015612019576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201090613d15565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561205c573d5f803e3d5ffd5b5050565b61206861215c565b73ffffffffffffffffffffffffffffffffffffffff166120866116d6565b73ffffffffffffffffffffffffffffffffffffffff16146120dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d3906139ec565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361214a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214190613e97565b60405180910390fd5b61215381612d36565b50565b600a5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c890613f25565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361223f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223690613fb3565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161231991906136c9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238b90614041565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f9906140cf565b60405180910390fd5b5f81036124195761241483835f612e97565b612d31565b600b5f9054906101000a900460ff16156128fd576124356116d6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156124a357506124736116d6565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156124db57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612515575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561252e5750600560149054906101000a900460ff16155b156128fc57600b60029054906101000a900460ff166126225760165f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806125e2575060165f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612621576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261890614137565b60405180910390fd5b5b60185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156126bf575060175f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561276657600854811115612709576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612700906141c5565b60405180910390fd5b600a5461271583611474565b826127209190613a9f565b1115612761576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127589061422d565b60405180910390fd5b6128fb565b60185f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612803575060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156128525760085481111561284d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612844906142bb565b60405180910390fd5b6128fa565b60175f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166128f957600a546128ac83611474565b826128b79190613a9f565b11156128f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ef9061422d565b60405180910390fd5b5b5b5b5b5b5f61290730611474565b90505f600954821015905080801561292b5750600b60019054906101000a900460ff165b80156129445750600560149054906101000a900460ff16155b8015612997575060185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156129ea575060165f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612a3d575060165f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612a80576001600560146101000a81548160ff021916908315150217905550612a6561310c565b5f600560146101000a81548160ff0219169083151502179055505b5f600560149054906101000a900460ff1615905060165f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612b2f575060165f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612b38575f90505b5f8115612d215760185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612b9657505f601154115b15612c2057606460115486612bab9190613b2f565b612bb59190614306565b905060115460125482612bc89190613b2f565b612bd29190614306565b60145f828254612be29190613a9f565b9250508190555060115460135482612bfa9190613b2f565b612c049190614306565b60155f828254612c149190613a9f565b92505081905550612cfe565b60185f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c7757505f600e54115b15612cfd576064600e5486612c8c9190613b2f565b612c969190614306565b9050600e54600f5482612ca99190613b2f565b612cb39190614306565b60145f828254612cc39190613a9f565b92505081905550600e5460105482612cdb9190613b2f565b612ce59190614306565b60155f828254612cf59190613a9f565b925050819055505b5b5f811115612d1257612d11873083612e97565b5b8085612d1e9190614336565b94505b612d2c878787612e97565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612f05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612efc90614041565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612f73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f6a906140cf565b60405180910390fd5b612f7e838383613293565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015613001576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff8906143d9565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461308f9190613a9f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516130f391906136c9565b60405180910390a3613106848484613298565b50505050565b5f61311630611474565b90505f6015546014546131299190613a9f565b90505f60095483111561313c5760095492505b5f8390506131498161329d565b5f4790505f846015548361315d9190613b2f565b6131679190614306565b90505f6014819055505f60158190555060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516131bc90614424565b5f6040518083038185875af1925050503d805f81146131f6576040519150601f19603f3d011682016040523d82523d5f602084013e6131fb565b606091505b50508094505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161324690614424565b5f6040518083038185875af1925050503d805f8114613280576040519150601f19603f3d011682016040523d82523d5f602084013e613285565b606091505b505080945050505050505050565b505050565b505050565b5f600267ffffffffffffffff8111156132b9576132b8614438565b5b6040519080825280602002602001820160405280156132e75781602001602082028036833780820191505090505b50905030815f815181106132fe576132fd614465565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133c591906144a6565b816001815181106133d9576133d8614465565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061343e307f000000000000000000000000000000000000000000000000000000000000000084612163565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161349f9594939291906145c1565b5f604051808303815f87803b1580156134b6575f80fd5b505af11580156134c8573d5f803e3d5ffd5b505050505050565b5f80fd5b5f819050919050565b6134e6816134d4565b81146134f0575f80fd5b50565b5f81359050613501816134dd565b92915050565b5f806040838503121561351d5761351c6134d0565b5b5f61352a858286016134f3565b925050602061353b858286016134f3565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561357c578082015181840152602081019050613561565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6135a182613545565b6135ab818561354f565b93506135bb81856020860161355f565b6135c481613587565b840191505092915050565b5f6020820190508181035f8301526135e78184613597565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613618826135ef565b9050919050565b6136288161360e565b8114613632575f80fd5b50565b5f813590506136438161361f565b92915050565b5f806040838503121561365f5761365e6134d0565b5b5f61366c85828601613635565b925050602061367d858286016134f3565b9150509250929050565b5f8115159050919050565b61369b81613687565b82525050565b5f6020820190506136b45f830184613692565b92915050565b6136c3816134d4565b82525050565b5f6020820190506136dc5f8301846136ba565b92915050565b5f602082840312156136f7576136f66134d0565b5b5f61370484828501613635565b91505092915050565b5f819050919050565b5f61373061372b613726846135ef565b61370d565b6135ef565b9050919050565b5f61374182613716565b9050919050565b5f61375282613737565b9050919050565b61376281613748565b82525050565b5f60208201905061377b5f830184613759565b92915050565b5f60208284031215613796576137956134d0565b5b5f6137a3848285016134f3565b91505092915050565b5f805f606084860312156137c3576137c26134d0565b5b5f6137d086828701613635565b93505060206137e186828701613635565b92505060406137f2868287016134f3565b9150509250925092565b6138058161360e565b82525050565b5f60208201905061381e5f8301846137fc565b92915050565b5f60ff82169050919050565b61383981613824565b82525050565b5f6020820190506138525f830184613830565b92915050565b61386181613687565b811461386b575f80fd5b50565b5f8135905061387c81613858565b92915050565b5f8060408385031215613898576138976134d0565b5b5f6138a585828601613635565b92505060206138b68582860161386e565b9150509250929050565b5f602082840312156138d5576138d46134d0565b5b5f6138e28482850161386e565b91505092915050565b5f6138f58261360e565b9050919050565b613905816138eb565b811461390f575f80fd5b50565b5f81359050613920816138fc565b92915050565b5f806040838503121561393c5761393b6134d0565b5b5f61394985828601613912565b925050602061395a858286016134f3565b9150509250929050565b5f806040838503121561397a576139796134d0565b5b5f61398785828601613635565b925050602061399885828601613635565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6139d660208361354f565b91506139e1826139a2565b602082019050919050565b5f6020820190508181035f830152613a03816139ca565b9050919050565b7f416c7265616479206c61756e6368656420626f690000000000000000000000005f82015250565b5f613a3e60148361354f565b9150613a4982613a0a565b602082019050919050565b5f6020820190508181035f830152613a6b81613a32565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613aa9826134d4565b9150613ab4836134d4565b9250828201905080821115613acc57613acb613a72565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613b1657607f821691505b602082108103613b2957613b28613ad2565b5b50919050565b5f613b39826134d4565b9150613b44836134d4565b9250828202613b52816134d4565b91508282048414831517613b6957613b68613a72565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613bca60288361354f565b9150613bd582613b70565b604082019050919050565b5f6020820190508181035f830152613bf781613bbe565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f613c5860398361354f565b9150613c6382613bfe565b604082019050919050565b5f6020820190508181035f830152613c8581613c4c565b9050919050565b5f81519050613c9a816134dd565b92915050565b5f60208284031215613cb557613cb46134d0565b5b5f613cc284828501613c8c565b91505092915050565b7f496e76616c696420416d6f756e740000000000000000000000000000000000005f82015250565b5f613cff600e8361354f565b9150613d0a82613ccb565b602082019050919050565b5f6020820190508181035f830152613d2c81613cf3565b9050919050565b5f604082019050613d465f8301856137fc565b613d5360208301846136ba565b9392505050565b5f81519050613d6881613858565b92915050565b5f60208284031215613d8357613d826134d0565b5b5f613d9084828501613d5a565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613df360258361354f565b9150613dfe82613d99565b604082019050919050565b5f6020820190508181035f830152613e2081613de7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613e8160268361354f565b9150613e8c82613e27565b604082019050919050565b5f6020820190508181035f830152613eae81613e75565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613f0f60248361354f565b9150613f1a82613eb5565b604082019050919050565b5f6020820190508181035f830152613f3c81613f03565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613f9d60228361354f565b9150613fa882613f43565b604082019050919050565b5f6020820190508181035f830152613fca81613f91565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61402b60258361354f565b915061403682613fd1565b604082019050919050565b5f6020820190508181035f8301526140588161401f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6140b960238361354f565b91506140c48261405f565b604082019050919050565b5f6020820190508181035f8301526140e6816140ad565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f61412160168361354f565b915061412c826140ed565b602082019050919050565b5f6020820190508181035f83015261414e81614115565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f6141af60358361354f565b91506141ba82614155565b604082019050919050565b5f6020820190508181035f8301526141dc816141a3565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f61421760138361354f565b9150614222826141e3565b602082019050919050565b5f6020820190508181035f8301526142448161420b565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f6142a560368361354f565b91506142b08261424b565b604082019050919050565b5f6020820190508181035f8301526142d281614299565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f614310826134d4565b915061431b836134d4565b92508261432b5761432a6142d9565b5b828204905092915050565b5f614340826134d4565b915061434b836134d4565b925082820390508181111561436357614362613a72565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6143c360268361354f565b91506143ce82614369565b604082019050919050565b5f6020820190508181035f8301526143f0816143b7565b9050919050565b5f81905092915050565b50565b5f61440f5f836143f7565b915061441a82614401565b5f82019050919050565b5f61442e82614404565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506144a08161361f565b92915050565b5f602082840312156144bb576144ba6134d0565b5b5f6144c884828501614492565b91505092915050565b5f819050919050565b5f6144f46144ef6144ea846144d1565b61370d565b6134d4565b9050919050565b614504816144da565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61453c8161360e565b82525050565b5f61454d8383614533565b60208301905092915050565b5f602082019050919050565b5f61456f8261450a565b6145798185614514565b935061458483614524565b805f5b838110156145b457815161459b8882614542565b97506145a683614559565b925050600181019050614587565b5085935050505092915050565b5f60a0820190506145d45f8301886136ba565b6145e160208301876144fb565b81810360408301526145f38186614565565b905061460260608301856137fc565b61460f60808301846136ba565b969550505050505056fea26469706673582212204e2a06e61c941966f39b04e93e966dd046c968569523797bdf22e21f42130a6c64736f6c63430008160033