ETH Price: $1,897.43 (-1.21%)

Token

Sav3Token (SAV3)
 

Overview

Max Total Supply

26,734,226.10353016286835325 SAV3

Holders

984 (0.00%)

Transfers

-
0

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

SAV3 is a DAO (forked from Compound), all expenses and governance decisions are voted on by SAV3 holders.

UI Multiplier changes (based on UIMultiplierUpdated event). Displayed token amounts are scaled by the active multiplier.
Transaction Hash Block
Age
Multiplier Status
# Exchange Pair Price  24H Volume % Volume
Source Code Verified Exact Match

Contract Name

Sav3Token

Compiler Version
v0.5.17+commit.d19bba13
Optimization Enabled
No with 200 runs
Other Settings
default evmVersion
License
None
Contract Source Code (Solidity)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"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":false,"internalType":"uint256","name":"lpTokenAmount","type":"uint256"}],"name":"BurnLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethAmount","type":"uint256"}],"name":"LockLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"MinterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"MinterRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"RewardLiquidityProviders","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":"account","type":"address"}],"name":"WhitelistAdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"WhitelistAdminRemoved","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"DELEGATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addWhitelistAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"burnLiquidity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"burnableLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"burnedLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"burnedSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"name":"checkpoints","outputs":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint256","name":"votes","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"delegator","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isWhitelistAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"liquidityLockDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"liquidityRewardsDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_lockableSupply","type":"uint256"}],"name":"lockLiquidity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"lockableSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockedLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockedSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceWhitelistAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"rewardLiquidityProviders","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_liquidityLockDivisor","type":"uint256"}],"name":"setLiquidityLockDivisor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_liquidityRewardsDivisor","type":"uint256"}],"name":"setLiquidityRewardsDivisor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_uniswapV2Pair","type":"address"}],"name":"setUniswapV2Pair","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_uniswapV2Router","type":"address"}],"name":"setUniswapV2Router","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"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"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]
60806040526040518060400160405280600981526020017f53617633546f6b656e00000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f5341563300000000000000000000000000000000000000000000000000000000815250601282600390805190602001906200008a92919062000396565b508160049080519060200190620000a392919062000396565b5080600560006101000a81548160ff021916908360ff160217905550505050620000e2620000d66200010860201b60201c565b6200011060201b60201c565b62000102620000f66200010860201b60201c565b6200017160201b60201c565b62000445565b600033905090565b6200012b816006620001d260201b620046521790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b6200018c81600f620001d260201b620046521790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b620001e48282620002b660201b60201c565b1562000258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200033f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180620056eb6022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003d957805160ff19168380011785556200040a565b828001600101855582156200040a579182015b8281111562000409578251825591602001919060010190620003ec565b5b5090506200041991906200041d565b5090565b6200044291905b808211156200043e57600081600090555060010162000424565b5090565b90565b61529680620004556000396000f3fe6080604052600436106102885760003560e01c8063782d6fe11161015a578063aa271e1a116100c1578063da942cbf1161007a578063da942cbf14610fe0578063db647b7614610ff7578063dc654a731461100e578063dd62ed3e14611039578063e7a324dc146110be578063f1127ed8146110e957610288565b8063aa271e1a14610dcd578063b439824414610e36578063b4b5ea5714610e61578063bb5f747b14610ec6578063c3cda52014610f2f578063ca5c7b9114610fb557610288565b806398650275116101135780639865027514610c19578063a29a608914610c30578063a457c2d714610c81578063a56c95b814610cf4578063a8a5550e14610d2f578063a9059cbb14610d5a57610288565b8063782d6fe1146109de57806379cc679014610a4d5780637ecebe0014610aa8578063858750ab14610b0d57806395d89b4114610b38578063983b2d5614610bc857610288565b806339509351116101fe578063587cde1e116101b7578063587cde1e1461079a5780635c19a95c1461082b57806367a9fca61461087c5780636fcfff45146108b757806370a08231146109285780637362d9c81461098d57610288565b806339509351146105e057806340c10f191461065357806342966c68146106c657806349bd5a5e146107015780634c5a628c1461075857806355d0a1d01461076f57610288565b806320606b701161025057806320606b701461046057806323b872dd1461048b5780632898cafa1461051e5780632bfbd9cf146105495780632f5c461514610584578063313ce567146105af57610288565b806306fdde031461028a578063095ea7b31461031a5780631419841d1461038d5780631694505e146103de57806318160ddd14610435575b005b34801561029657600080fd5b5061029f611171565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102df5780820151818401526020810190506102c4565b50505050905090810190601f16801561030c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561032657600080fd5b506103736004803603604081101561033d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611213565b604051808215151515815260200191505060405180910390f35b34801561039957600080fd5b506103dc600480360360208110156103b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611231565b005b3480156103ea57600080fd5b506103f3611381565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561044157600080fd5b5061044a6113a7565b6040518082815260200191505060405180910390f35b34801561046c57600080fd5b506104756113b1565b6040518082815260200191505060405180910390f35b34801561049757600080fd5b50610504600480360360608110156104ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113cd565b604051808215151515815260200191505060405180910390f35b34801561052a57600080fd5b506105336114a6565b6040518082815260200191505060405180910390f35b34801561055557600080fd5b506105826004803603602081101561056c57600080fd5b8101908080359060200190929190505050611588565b005b34801561059057600080fd5b50610599611744565b6040518082815260200191505060405180910390f35b3480156105bb57600080fd5b506105c461174a565b604051808260ff1660ff16815260200191505060405180910390f35b3480156105ec57600080fd5b506106396004803603604081101561060357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611761565b604051808215151515815260200191505060405180910390f35b34801561065f57600080fd5b506106ac6004803603604081101561067657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611814565b604051808215151515815260200191505060405180910390f35b3480156106d257600080fd5b506106ff600480360360208110156106e957600080fd5b810190808035906020019092919050505061188f565b005b34801561070d57600080fd5b506107166118a3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561076457600080fd5b5061076d6118c9565b005b34801561077b57600080fd5b506107846118db565b6040518082815260200191505060405180910390f35b3480156107a657600080fd5b506107e9600480360360208110156107bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a25565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561083757600080fd5b5061087a6004803603602081101561084e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a8e565b005b34801561088857600080fd5b506108b56004803603602081101561089f57600080fd5b8101908080359060200190929190505050611a9b565b005b3480156108c357600080fd5b50610906600480360360208110156108da57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b6d565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b34801561093457600080fd5b506109776004803603602081101561094b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b90565b6040518082815260200191505060405180910390f35b34801561099957600080fd5b506109dc600480360360208110156109b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bd8565b005b3480156109ea57600080fd5b50610a3760048036036040811015610a0157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c49565b6040518082815260200191505060405180910390f35b348015610a5957600080fd5b50610aa660048036036040811015610a7057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061200e565b005b348015610ab457600080fd5b50610af760048036036020811015610acb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061201c565b6040518082815260200191505060405180910390f35b348015610b1957600080fd5b50610b22612034565b6040518082815260200191505060405180910390f35b348015610b4457600080fd5b50610b4d612115565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b8d578082015181840152602081019050610b72565b50505050905090810190601f168015610bba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610bd457600080fd5b50610c1760048036036020811015610beb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121b7565b005b348015610c2557600080fd5b50610c2e612228565b005b348015610c3c57600080fd5b50610c7f60048036036020811015610c5357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061223a565b005b348015610c8d57600080fd5b50610cda60048036036040811015610ca457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061238a565b604051808215151515815260200191505060405180910390f35b348015610d0057600080fd5b50610d2d60048036036020811015610d1757600080fd5b8101908080359060200190929190505050612457565b005b348015610d3b57600080fd5b50610d446124c6565b6040518082815260200191505060405180910390f35b348015610d6657600080fd5b50610db360048036036040811015610d7d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506124d6565b604051808215151515815260200191505060405180910390f35b348015610dd957600080fd5b50610e1c60048036036020811015610df057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124f4565b604051808215151515815260200191505060405180910390f35b348015610e4257600080fd5b50610e4b612511565b6040518082815260200191505060405180910390f35b348015610e6d57600080fd5b50610eb060048036036020811015610e8457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612539565b6040518082815260200191505060405180910390f35b348015610ed257600080fd5b50610f1560048036036020811015610ee957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061260f565b604051808215151515815260200191505060405180910390f35b348015610f3b57600080fd5b50610fb3600480360360c0811015610f5257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff169060200190929190803590602001909291908035906020019092919050505061262c565b005b348015610fc157600080fd5b50610fca6129af565b6040518082815260200191505060405180910390f35b348015610fec57600080fd5b50610ff5612af9565b005b34801561100357600080fd5b5061100c612d51565b005b34801561101a57600080fd5b50611023612d64565b6040518082815260200191505060405180910390f35b34801561104557600080fd5b506110a86004803603604081101561105c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d6a565b6040518082815260200191505060405180910390f35b3480156110ca57600080fd5b506110d3612df1565b6040518082815260200191505060405180910390f35b3480156110f557600080fd5b506111486004803603604081101561110c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803563ffffffff169060200190929190505050612e0d565b604051808363ffffffff1663ffffffff1681526020018281526020019250505060405180910390f35b606060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112095780601f106111de57610100808354040283529160200191611209565b820191906000526020600020905b8154815290600101906020018083116111ec57829003601f168201915b5050505050905090565b6000611227611220612e4e565b8484612e56565b6001905092915050565b61124161123c612e4e565b61260f565b611296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604081526020018061500e6040913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461133d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614e53602a913960400191505060405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b6040518080614f0d604391396043019050604051809103902081565b60006113da84848461304d565b61149b846113e6612e4e565b61149685604051806060016040528060288152602001614fc460289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061144c612e4e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e99092919063ffffffff16565b612e56565b600190509392505050565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160006040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561154857600080fd5b505afa15801561155c573d6000803e3d6000fd5b505050506040513d602081101561157257600080fd5b8101908080519060200190929190505050905090565b61159130611b90565b8111156115e9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526053815260200180614f716053913960600191505060405180910390fd5b6000811415611643576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526042815260200180614deb6042913960600191505060405180910390fd5b6000600e541461169f576001600e54141561166657611661816131a9565b611741565b600061167d600e548361329290919063ffffffff16565b905061169281836132dc90919063ffffffff16565b915061169d816131a9565b505b60006116b560028361329290919063ffffffff16565b905060006116cc82846132dc90919063ffffffff16565b905060004790506116dc83613326565b60006116f182476132dc90919063ffffffff16565b90506116fd83826135d9565b7f1ac88120e7cb0c1102895c679e94394ce3fb63f5fc8ff9519213798ec483fbc08382604051808381526020018281526020019250505060405180910390a1505050505b50565b600e5481565b6000600560009054906101000a900460ff16905090565b600061180a61176e612e4e565b84611805856001600061177f612e4e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461375390919063ffffffff16565b612e56565b6001905092915050565b6000611826611821612e4e565b6124f4565b61187b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180614e7d6030913960400191505060405180910390fd5b61188583836137db565b6001905092915050565b6118a061189a612e4e565b82613854565b50565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6118d96118d4612e4e565b6138cd565b565b600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561194657600080fd5b505afa15801561195a573d6000803e3d6000fd5b505050506040513d602081101561197057600080fd5b81019080805190602001909291905050509050600061198d6114a6565b905060006119bb836119ad64e8d4a510008561392790919063ffffffff16565b61329290919063ffffffff16565b905060006119ea600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b90565b90506000611a1864e8d4a51000611a0a858561392790919063ffffffff16565b61329290919063ffffffff16565b9050809550505050505090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b611a9833826139ad565b50565b611aab611aa6612e4e565b61260f565b611b00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604081526020018061500e6040913960400191505060405180910390fd5b60008114611b6357600a811015611b62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180615072602d913960400191505060405180910390fd5b5b80600d8190555050565b60096020528060005260406000206000915054906101000a900463ffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611be8611be3612e4e565b61260f565b611c3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604081526020018061500e6040913960400191505060405180910390fd5b611c4681613b1e565b50565b6000438210611ca3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061513e6032913960400191505060405180910390fd5b6000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161415611d10576000915050612008565b82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611611dfa57600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060010154915050612008565b82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161115611e7b576000915050612008565b600080905060006001830390505b8163ffffffff168163ffffffff161115611fa2576000600283830363ffffffff1681611eb157fe5b0482039050611ebe614d32565b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600182015481525050905086816000015163ffffffff161415611f7a57806020015195505050505050612008565b86816000015163ffffffff161015611f9457819350611f9b565b6001820392505b5050611e89565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206001015493505050505b92915050565b6120188282613b78565b5050565b600a6020528060005260406000206000915090505481565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156120d557600080fd5b505afa1580156120e9573d6000803e3d6000fd5b505050506040513d60208110156120ff57600080fd5b8101908080519060200190929190505050905090565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121ad5780601f10612182576101008083540402835291602001916121ad565b820191906000526020600020905b81548152906001019060200180831161219057829003601f168201915b5050505050905090565b6121c76121c2612e4e565b6124f4565b61221c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180614e7d6030913960400191505060405180910390fd5b61222581613c47565b50565b612238612233612e4e565b613ca1565b565b61224a612245612e4e565b61260f565b61229f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604081526020018061500e6040913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612346576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806150f16028913960400191505060405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061244d612397612e4e565b846124488560405180606001604052806025815260200161523d60259139600160006123c1612e4e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e99092919063ffffffff16565b612e56565b6001905092915050565b612467612462612e4e565b61260f565b6124bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604081526020018061500e6040913960400191505060405180910390fd5b80600e8190555050565b60006124d130611b90565b905090565b60006124ea6124e3612e4e565b848461304d565b6001905092915050565b600061250a826006613cfb90919063ffffffff16565b9050919050565b600061253461251e6114a6565b612526612034565b61375390919063ffffffff16565b905090565b600080600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff16116125a3576000612607565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff168152602001908152602001600020600101545b915050919050565b600061262582600f613cfb90919063ffffffff16565b9050919050565b60006040518080614f0d604391396043019050604051809103902061264f611171565b8051906020012061265e613dd9565b30604051602001808581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405160208183030381529060405280519060200120905060006040518080615203603a9139603a0190506040518091039020888888604051602001808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019450505050506040516020818303038152906040528051906020012090506000828260405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612809573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561289b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180614d986031913960400191505060405180910390fd5b600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558914612940576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180615194602d913960400191505060405180910390fd5b87421115612999576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603181526020018061509f6031913960400191505060405180910390fd5b6129a3818b6139ad565b50505050505050505050565b600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015612a1a57600080fd5b505afa158015612a2e573d6000803e3d6000fd5b505050506040513d6020811015612a4457600080fd5b810190808051906020019092919050505090506000612a61612511565b90506000612a8f83612a8164e8d4a510008561392790919063ffffffff16565b61329290919063ffffffff16565b90506000612abe600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b90565b90506000612aec64e8d4a51000612ade858561392790919063ffffffff16565b61329290919063ffffffff16565b9050809550505050505090565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612b9a57600080fd5b505afa158015612bae573d6000803e3d6000fd5b505050506040513d6020811015612bc457600080fd5b810190808051906020019092919050505090506000811415612c31576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001806151c16042913960600191505060405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612cdb57600080fd5b505af1158015612cef573d6000803e3d6000fd5b505050506040513d6020811015612d0557600080fd5b8101908080519060200190929190505050507f5ad60a3809edf57c6c3e72fca26945b0cbce9e4a2d6aea167e35fc04c043bb9e816040518082815260200191505060405180910390a150565b612d62612d5d30611b90565b611588565b565b600d5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6040518080615203603a9139603a019050604051809103902081565b6008602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060010154905082565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612edc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806151706024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180614dc96022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000600d541415801561308c57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156130d85760006130a8600d548361329290919063ffffffff16565b90506130b5843083613de6565b6130d284846130cd84866132dc90919063ffffffff16565b613de6565b506130e4565b6130e3838383613de6565b5b505050565b6000838311158290613196576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561315b578082015181840152602081019050613140565b50505050905090810190601f1680156131885780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6131d630600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613de6565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561324057600080fd5b505af1158015613254573d6000803e3d6000fd5b505050507f8765d2bb982ed6ee74d2b03c76c9c129aa4a4e3e6b17bd7cf7830088e9d49054816040518082815260200191505060405180910390a150565b60006132d483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613ebf565b905092915050565b600061331e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506130e9565b905092915050565b606060026040519080825280602002602001820160405280156133585781602001602082028038833980820191505090505b509050308160008151811061336957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561340b57600080fd5b505afa15801561341f573d6000803e3d6000fd5b505050506040513d602081101561343557600080fd5b81019080805190602001909291905050508160018151811061345357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506134ba30600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612e56565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015613594578082015181840152602081019050613579565b505050509050019650505050505050600060405180830381600087803b1580156135bd57600080fd5b505af11580156135d1573d6000803e3d6000fd5b505050505050565b61360630600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612e56565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b1580156136fc57600080fd5b505af1158015613710573d6000803e3d6000fd5b50505050506040513d606081101561372757600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050505050565b6000808284019050838110156137d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6138466000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613f85565b6138508282614222565b5050565b6138bf600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600083613f85565b6138c982826143dd565b5050565b6138e181600f61459590919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16560405160405180910390a250565b60008083141561393a57600090506139a7565b600082840290508284828161394b57fe5b04146139a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180614f506021913960400191505060405180910390fd5b809150505b92915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000613a1c84611b90565b905082600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4613b18828483613f85565b50505050565b613b3281600f61465290919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b613b828282613854565b613c4382613b8e612e4e565b613c3e8460405180606001604052806024815260200161504e60249139600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000613bf4612e4e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e99092919063ffffffff16565b612e56565b5050565b613c5b81600661465290919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b613cb581600661459590919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613d82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180614fec6022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000804690508091505090565b613eaf600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613f85565b613eba83838361472d565b505050565b60008083118290613f6b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613f30578082015181840152602081019050613f15565b50505050905090810190601f168015613f5d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613f7757fe5b049050809150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015613fc15750600081115b1561421d57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146140f1576000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116140645760006140c8565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff168152602001908152602001600020600101545b905060006140df84836132dc90919063ffffffff16565b90506140ed868484846149e3565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461421c576000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff161161418f5760006141f3565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff168152602001908152602001600020600101545b9050600061420a848361375390919063ffffffff16565b9050614218858484846149e3565b5050505b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156142c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6142da8160025461375390919063ffffffff16565b600281905550614331816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461375390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614463576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806150d06021913960400191505060405180910390fd5b6144ce81604051806060016040528060228152602001614d76602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e99092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614525816002546132dc90919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b61459f8282613cfb565b6145f4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180614ead6021913960400191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61465c8282613cfb565b156146cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156147b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151196025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614839576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180614d536023913960400191505060405180910390fd5b6148a481604051806060016040528060268152602001614e2d602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e99092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614937816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461375390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000614a07436040518060600160405280603f8152602001614ece603f9139614c77565b905060008463ffffffff16118015614a9c57508063ffffffff16600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b15614b0d5781600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060010181905550614c1a565b60405180604001604052808263ffffffff16815260200183815250600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff1602179055506020820151816001015590505060018401600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248484604051808381526020018281526020019250505060405180910390a25050505050565b600064010000000083108290614d28576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614ced578082015181840152602081019050614cd2565b50505050905090810190601f168015614d1a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082905092915050565b6040518060400160405280600063ffffffff16815260200160008152509056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654552433230476f7665726e616e63653a3a64656c656761746542795369673a20696e76616c6964207369676e617475726545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332305472616e736665724c69717569646974794c6f636b3a3a6c6f636b4c69717569646974793a206c6f636b20616d6f756e742063616e6e6f74206265203045524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636553617633546f6b656e3a3a736574556e69737761705632526f757465723a20616c7265616479207365744d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654552433230476f7665726e616e63653a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332305472616e736665724c69717569646974794c6f636b3a3a6c6f636b4c69717569646974793a206c6f636b20616d6f756e7420686967686572207468616e206c6f636b61626c652062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365526f6c65733a206163636f756e7420697320746865207a65726f206164647265737357686974656c69737441646d696e526f6c653a2063616c6c657220646f6573206e6f742068617665207468652057686974656c69737441646d696e20726f6c6545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636553617633546f6b656e3a3a7365744c69717569646974794c6f636b44697669736f723a20746f6f20736d616c6c4552433230476f7665726e616e63653a3a64656c656761746542795369673a207369676e6174757265206578706972656445524332303a206275726e2066726f6d20746865207a65726f206164647265737353617633546f6b656e3a3a736574556e69737761705632506169723a20616c72656164792073657445524332303a207472616e736665722066726f6d20746865207a65726f20616464726573734552433230476f7665726e616e63653a3a6765745072696f72566f7465733a206e6f74207965742064657465726d696e656445524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734552433230476f7665726e616e63653a3a64656c656761746542795369673a20696e76616c6964206e6f6e636545524332305472616e736665724c69717569646974794c6f636b3a3a6275726e4c69717569646974793a206275726e20616d6f756e742063616e6e6f74206265203044656c65676174696f6e28616464726573732064656c6567617465652c75696e74323536206e6f6e63652c75696e74323536206578706972792945524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a723158201c0d365f304fcb671c98917198cdeb4bc5a77a5f7ea2a5534be46c9169fab1bd64736f6c63430005110032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373
Deployed Bytecode
0x6080604052600436106102885760003560e01c8063782d6fe11161015a578063aa271e1a116100c1578063da942cbf1161007a578063da942cbf14610fe0578063db647b7614610ff7578063dc654a731461100e578063dd62ed3e14611039578063e7a324dc146110be578063f1127ed8146110e957610288565b8063aa271e1a14610dcd578063b439824414610e36578063b4b5ea5714610e61578063bb5f747b14610ec6578063c3cda52014610f2f578063ca5c7b9114610fb557610288565b806398650275116101135780639865027514610c19578063a29a608914610c30578063a457c2d714610c81578063a56c95b814610cf4578063a8a5550e14610d2f578063a9059cbb14610d5a57610288565b8063782d6fe1146109de57806379cc679014610a4d5780637ecebe0014610aa8578063858750ab14610b0d57806395d89b4114610b38578063983b2d5614610bc857610288565b806339509351116101fe578063587cde1e116101b7578063587cde1e1461079a5780635c19a95c1461082b57806367a9fca61461087c5780636fcfff45146108b757806370a08231146109285780637362d9c81461098d57610288565b806339509351146105e057806340c10f191461065357806342966c68146106c657806349bd5a5e146107015780634c5a628c1461075857806355d0a1d01461076f57610288565b806320606b701161025057806320606b701461046057806323b872dd1461048b5780632898cafa1461051e5780632bfbd9cf146105495780632f5c461514610584578063313ce567146105af57610288565b806306fdde031461028a578063095ea7b31461031a5780631419841d1461038d5780631694505e146103de57806318160ddd14610435575b005b34801561029657600080fd5b5061029f611171565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102df5780820151818401526020810190506102c4565b50505050905090810190601f16801561030c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561032657600080fd5b506103736004803603604081101561033d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611213565b604051808215151515815260200191505060405180910390f35b34801561039957600080fd5b506103dc600480360360208110156103b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611231565b005b3480156103ea57600080fd5b506103f3611381565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561044157600080fd5b5061044a6113a7565b6040518082815260200191505060405180910390f35b34801561046c57600080fd5b506104756113b1565b6040518082815260200191505060405180910390f35b34801561049757600080fd5b50610504600480360360608110156104ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113cd565b604051808215151515815260200191505060405180910390f35b34801561052a57600080fd5b506105336114a6565b6040518082815260200191505060405180910390f35b34801561055557600080fd5b506105826004803603602081101561056c57600080fd5b8101908080359060200190929190505050611588565b005b34801561059057600080fd5b50610599611744565b6040518082815260200191505060405180910390f35b3480156105bb57600080fd5b506105c461174a565b604051808260ff1660ff16815260200191505060405180910390f35b3480156105ec57600080fd5b506106396004803603604081101561060357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611761565b604051808215151515815260200191505060405180910390f35b34801561065f57600080fd5b506106ac6004803603604081101561067657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611814565b604051808215151515815260200191505060405180910390f35b3480156106d257600080fd5b506106ff600480360360208110156106e957600080fd5b810190808035906020019092919050505061188f565b005b34801561070d57600080fd5b506107166118a3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561076457600080fd5b5061076d6118c9565b005b34801561077b57600080fd5b506107846118db565b6040518082815260200191505060405180910390f35b3480156107a657600080fd5b506107e9600480360360208110156107bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a25565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561083757600080fd5b5061087a6004803603602081101561084e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a8e565b005b34801561088857600080fd5b506108b56004803603602081101561089f57600080fd5b8101908080359060200190929190505050611a9b565b005b3480156108c357600080fd5b50610906600480360360208110156108da57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b6d565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b34801561093457600080fd5b506109776004803603602081101561094b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b90565b6040518082815260200191505060405180910390f35b34801561099957600080fd5b506109dc600480360360208110156109b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bd8565b005b3480156109ea57600080fd5b50610a3760048036036040811015610a0157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c49565b6040518082815260200191505060405180910390f35b348015610a5957600080fd5b50610aa660048036036040811015610a7057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061200e565b005b348015610ab457600080fd5b50610af760048036036020811015610acb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061201c565b6040518082815260200191505060405180910390f35b348015610b1957600080fd5b50610b22612034565b6040518082815260200191505060405180910390f35b348015610b4457600080fd5b50610b4d612115565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b8d578082015181840152602081019050610b72565b50505050905090810190601f168015610bba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610bd457600080fd5b50610c1760048036036020811015610beb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121b7565b005b348015610c2557600080fd5b50610c2e612228565b005b348015610c3c57600080fd5b50610c7f60048036036020811015610c5357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061223a565b005b348015610c8d57600080fd5b50610cda60048036036040811015610ca457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061238a565b604051808215151515815260200191505060405180910390f35b348015610d0057600080fd5b50610d2d60048036036020811015610d1757600080fd5b8101908080359060200190929190505050612457565b005b348015610d3b57600080fd5b50610d446124c6565b6040518082815260200191505060405180910390f35b348015610d6657600080fd5b50610db360048036036040811015610d7d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506124d6565b604051808215151515815260200191505060405180910390f35b348015610dd957600080fd5b50610e1c60048036036020811015610df057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124f4565b604051808215151515815260200191505060405180910390f35b348015610e4257600080fd5b50610e4b612511565b6040518082815260200191505060405180910390f35b348015610e6d57600080fd5b50610eb060048036036020811015610e8457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612539565b6040518082815260200191505060405180910390f35b348015610ed257600080fd5b50610f1560048036036020811015610ee957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061260f565b604051808215151515815260200191505060405180910390f35b348015610f3b57600080fd5b50610fb3600480360360c0811015610f5257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff169060200190929190803590602001909291908035906020019092919050505061262c565b005b348015610fc157600080fd5b50610fca6129af565b6040518082815260200191505060405180910390f35b348015610fec57600080fd5b50610ff5612af9565b005b34801561100357600080fd5b5061100c612d51565b005b34801561101a57600080fd5b50611023612d64565b6040518082815260200191505060405180910390f35b34801561104557600080fd5b506110a86004803603604081101561105c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d6a565b6040518082815260200191505060405180910390f35b3480156110ca57600080fd5b506110d3612df1565b6040518082815260200191505060405180910390f35b3480156110f557600080fd5b506111486004803603604081101561110c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803563ffffffff169060200190929190505050612e0d565b604051808363ffffffff1663ffffffff1681526020018281526020019250505060405180910390f35b606060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112095780601f106111de57610100808354040283529160200191611209565b820191906000526020600020905b8154815290600101906020018083116111ec57829003601f168201915b5050505050905090565b6000611227611220612e4e565b8484612e56565b6001905092915050565b61124161123c612e4e565b61260f565b611296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604081526020018061500e6040913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461133d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614e53602a913960400191505060405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b6040518080614f0d604391396043019050604051809103902081565b60006113da84848461304d565b61149b846113e6612e4e565b61149685604051806060016040528060288152602001614fc460289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061144c612e4e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e99092919063ffffffff16565b612e56565b600190509392505050565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160006040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561154857600080fd5b505afa15801561155c573d6000803e3d6000fd5b505050506040513d602081101561157257600080fd5b8101908080519060200190929190505050905090565b61159130611b90565b8111156115e9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526053815260200180614f716053913960600191505060405180910390fd5b6000811415611643576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526042815260200180614deb6042913960600191505060405180910390fd5b6000600e541461169f576001600e54141561166657611661816131a9565b611741565b600061167d600e548361329290919063ffffffff16565b905061169281836132dc90919063ffffffff16565b915061169d816131a9565b505b60006116b560028361329290919063ffffffff16565b905060006116cc82846132dc90919063ffffffff16565b905060004790506116dc83613326565b60006116f182476132dc90919063ffffffff16565b90506116fd83826135d9565b7f1ac88120e7cb0c1102895c679e94394ce3fb63f5fc8ff9519213798ec483fbc08382604051808381526020018281526020019250505060405180910390a1505050505b50565b600e5481565b6000600560009054906101000a900460ff16905090565b600061180a61176e612e4e565b84611805856001600061177f612e4e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461375390919063ffffffff16565b612e56565b6001905092915050565b6000611826611821612e4e565b6124f4565b61187b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180614e7d6030913960400191505060405180910390fd5b61188583836137db565b6001905092915050565b6118a061189a612e4e565b82613854565b50565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6118d96118d4612e4e565b6138cd565b565b600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561194657600080fd5b505afa15801561195a573d6000803e3d6000fd5b505050506040513d602081101561197057600080fd5b81019080805190602001909291905050509050600061198d6114a6565b905060006119bb836119ad64e8d4a510008561392790919063ffffffff16565b61329290919063ffffffff16565b905060006119ea600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b90565b90506000611a1864e8d4a51000611a0a858561392790919063ffffffff16565b61329290919063ffffffff16565b9050809550505050505090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b611a9833826139ad565b50565b611aab611aa6612e4e565b61260f565b611b00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604081526020018061500e6040913960400191505060405180910390fd5b60008114611b6357600a811015611b62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180615072602d913960400191505060405180910390fd5b5b80600d8190555050565b60096020528060005260406000206000915054906101000a900463ffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611be8611be3612e4e565b61260f565b611c3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604081526020018061500e6040913960400191505060405180910390fd5b611c4681613b1e565b50565b6000438210611ca3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061513e6032913960400191505060405180910390fd5b6000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161415611d10576000915050612008565b82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611611dfa57600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060010154915050612008565b82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161115611e7b576000915050612008565b600080905060006001830390505b8163ffffffff168163ffffffff161115611fa2576000600283830363ffffffff1681611eb157fe5b0482039050611ebe614d32565b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600182015481525050905086816000015163ffffffff161415611f7a57806020015195505050505050612008565b86816000015163ffffffff161015611f9457819350611f9b565b6001820392505b5050611e89565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206001015493505050505b92915050565b6120188282613b78565b5050565b600a6020528060005260406000206000915090505481565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156120d557600080fd5b505afa1580156120e9573d6000803e3d6000fd5b505050506040513d60208110156120ff57600080fd5b8101908080519060200190929190505050905090565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121ad5780601f10612182576101008083540402835291602001916121ad565b820191906000526020600020905b81548152906001019060200180831161219057829003601f168201915b5050505050905090565b6121c76121c2612e4e565b6124f4565b61221c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180614e7d6030913960400191505060405180910390fd5b61222581613c47565b50565b612238612233612e4e565b613ca1565b565b61224a612245612e4e565b61260f565b61229f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604081526020018061500e6040913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612346576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806150f16028913960400191505060405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061244d612397612e4e565b846124488560405180606001604052806025815260200161523d60259139600160006123c1612e4e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e99092919063ffffffff16565b612e56565b6001905092915050565b612467612462612e4e565b61260f565b6124bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604081526020018061500e6040913960400191505060405180910390fd5b80600e8190555050565b60006124d130611b90565b905090565b60006124ea6124e3612e4e565b848461304d565b6001905092915050565b600061250a826006613cfb90919063ffffffff16565b9050919050565b600061253461251e6114a6565b612526612034565b61375390919063ffffffff16565b905090565b600080600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff16116125a3576000612607565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff168152602001908152602001600020600101545b915050919050565b600061262582600f613cfb90919063ffffffff16565b9050919050565b60006040518080614f0d604391396043019050604051809103902061264f611171565b8051906020012061265e613dd9565b30604051602001808581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405160208183030381529060405280519060200120905060006040518080615203603a9139603a0190506040518091039020888888604051602001808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019450505050506040516020818303038152906040528051906020012090506000828260405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612809573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561289b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180614d986031913960400191505060405180910390fd5b600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558914612940576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180615194602d913960400191505060405180910390fd5b87421115612999576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603181526020018061509f6031913960400191505060405180910390fd5b6129a3818b6139ad565b50505050505050505050565b600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015612a1a57600080fd5b505afa158015612a2e573d6000803e3d6000fd5b505050506040513d6020811015612a4457600080fd5b810190808051906020019092919050505090506000612a61612511565b90506000612a8f83612a8164e8d4a510008561392790919063ffffffff16565b61329290919063ffffffff16565b90506000612abe600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611b90565b90506000612aec64e8d4a51000612ade858561392790919063ffffffff16565b61329290919063ffffffff16565b9050809550505050505090565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612b9a57600080fd5b505afa158015612bae573d6000803e3d6000fd5b505050506040513d6020811015612bc457600080fd5b810190808051906020019092919050505090506000811415612c31576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260428152602001806151c16042913960600191505060405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612cdb57600080fd5b505af1158015612cef573d6000803e3d6000fd5b505050506040513d6020811015612d0557600080fd5b8101908080519060200190929190505050507f5ad60a3809edf57c6c3e72fca26945b0cbce9e4a2d6aea167e35fc04c043bb9e816040518082815260200191505060405180910390a150565b612d62612d5d30611b90565b611588565b565b600d5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6040518080615203603a9139603a019050604051809103902081565b6008602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060010154905082565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612edc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806151706024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180614dc96022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000600d541415801561308c57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156130d85760006130a8600d548361329290919063ffffffff16565b90506130b5843083613de6565b6130d284846130cd84866132dc90919063ffffffff16565b613de6565b506130e4565b6130e3838383613de6565b5b505050565b6000838311158290613196576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561315b578082015181840152602081019050613140565b50505050905090810190601f1680156131885780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6131d630600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613de6565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561324057600080fd5b505af1158015613254573d6000803e3d6000fd5b505050507f8765d2bb982ed6ee74d2b03c76c9c129aa4a4e3e6b17bd7cf7830088e9d49054816040518082815260200191505060405180910390a150565b60006132d483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613ebf565b905092915050565b600061331e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506130e9565b905092915050565b606060026040519080825280602002602001820160405280156133585781602001602082028038833980820191505090505b509050308160008151811061336957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561340b57600080fd5b505afa15801561341f573d6000803e3d6000fd5b505050506040513d602081101561343557600080fd5b81019080805190602001909291905050508160018151811061345357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506134ba30600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612e56565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015613594578082015181840152602081019050613579565b505050509050019650505050505050600060405180830381600087803b1580156135bd57600080fd5b505af11580156135d1573d6000803e3d6000fd5b505050505050565b61360630600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612e56565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b1580156136fc57600080fd5b505af1158015613710573d6000803e3d6000fd5b50505050506040513d606081101561372757600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050505050565b6000808284019050838110156137d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6138466000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613f85565b6138508282614222565b5050565b6138bf600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600083613f85565b6138c982826143dd565b5050565b6138e181600f61459590919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16560405160405180910390a250565b60008083141561393a57600090506139a7565b600082840290508284828161394b57fe5b04146139a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180614f506021913960400191505060405180910390fd5b809150505b92915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000613a1c84611b90565b905082600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4613b18828483613f85565b50505050565b613b3281600f61465290919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b613b828282613854565b613c4382613b8e612e4e565b613c3e8460405180606001604052806024815260200161504e60249139600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000613bf4612e4e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e99092919063ffffffff16565b612e56565b5050565b613c5b81600661465290919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b613cb581600661459590919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613d82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180614fec6022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000804690508091505090565b613eaf600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683613f85565b613eba83838361472d565b505050565b60008083118290613f6b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613f30578082015181840152602081019050613f15565b50505050905090810190601f168015613f5d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613f7757fe5b049050809150509392505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015613fc15750600081115b1561421d57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146140f1576000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116140645760006140c8565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff168152602001908152602001600020600101545b905060006140df84836132dc90919063ffffffff16565b90506140ed868484846149e3565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461421c576000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff161161418f5760006141f3565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff168152602001908152602001600020600101545b9050600061420a848361375390919063ffffffff16565b9050614218858484846149e3565b5050505b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156142c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6142da8160025461375390919063ffffffff16565b600281905550614331816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461375390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614463576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806150d06021913960400191505060405180910390fd5b6144ce81604051806060016040528060228152602001614d76602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e99092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614525816002546132dc90919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b61459f8282613cfb565b6145f4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180614ead6021913960400191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61465c8282613cfb565b156146cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156147b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806151196025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614839576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180614d536023913960400191505060405180910390fd5b6148a481604051806060016040528060268152602001614e2d602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130e99092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614937816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461375390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000614a07436040518060600160405280603f8152602001614ece603f9139614c77565b905060008463ffffffff16118015614a9c57508063ffffffff16600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b15614b0d5781600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060010181905550614c1a565b60405180604001604052808263ffffffff16815260200183815250600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff1602179055506020820151816001015590505060018401600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248484604051808381526020018281526020019250505060405180910390a25050505050565b600064010000000083108290614d28576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614ced578082015181840152602081019050614cd2565b50505050905090810190601f168015614d1a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082905092915050565b6040518060400160405280600063ffffffff16815260200160008152509056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654552433230476f7665726e616e63653a3a64656c656761746542795369673a20696e76616c6964207369676e617475726545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332305472616e736665724c69717569646974794c6f636b3a3a6c6f636b4c69717569646974793a206c6f636b20616d6f756e742063616e6e6f74206265203045524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636553617633546f6b656e3a3a736574556e69737761705632526f757465723a20616c7265616479207365744d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654552433230476f7665726e616e63653a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332305472616e736665724c69717569646974794c6f636b3a3a6c6f636b4c69717569646974793a206c6f636b20616d6f756e7420686967686572207468616e206c6f636b61626c652062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365526f6c65733a206163636f756e7420697320746865207a65726f206164647265737357686974656c69737441646d696e526f6c653a2063616c6c657220646f6573206e6f742068617665207468652057686974656c69737441646d696e20726f6c6545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636553617633546f6b656e3a3a7365744c69717569646974794c6f636b44697669736f723a20746f6f20736d616c6c4552433230476f7665726e616e63653a3a64656c656761746542795369673a207369676e6174757265206578706972656445524332303a206275726e2066726f6d20746865207a65726f206164647265737353617633546f6b656e3a3a736574556e69737761705632506169723a20616c72656164792073657445524332303a207472616e736665722066726f6d20746865207a65726f20616464726573734552433230476f7665726e616e63653a3a6765745072696f72566f7465733a206e6f74207965742064657465726d696e656445524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734552433230476f7665726e616e63653a3a64656c656761746542795369673a20696e76616c6964206e6f6e636545524332305472616e736665724c69717569646974794c6f636b3a3a6275726e4c69717569646974793a206275726e20616d6f756e742063616e6e6f74206265203044656c65676174696f6e28616464726573732064656c6567617465652c75696e74323536206e6f6e63652c75696e74323536206578706972792945524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a723158201c0d365f304fcb671c98917198cdeb4bc5a77a5f7ea2a5534be46c9169fab1bd64736f6c63430005110032
Deployed Bytecode Sourcemap
42328:1259:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23511:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23511:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;23511:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13507:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13507:152:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13507:152:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;42644:228;;8:9:-1;5:2;;;30:1;27;20:12;5:2;42644:228:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;42644:228:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;26208:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26208:30:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12528:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12528:91:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;34616:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34616:122:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14131:304;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14131:304:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14131:304:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;31934:125;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31934:125:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;27162:1431;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27162:1431:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;27162:1431:0;;;;;;;;;;;;;;;;;:::i;:::-;;26432:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26432:38:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;24363:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24363:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14844:210;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14844:210:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14844:210:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;22651:143;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22651:143:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22651:143:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19714:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19714:83:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19714:83:0;;;;;;;;;;;;;;;;;:::i;:::-;;26245:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26245:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;25441:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25441:95:0;;;:::i;:::-;;31257:443;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31257:443:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;35599:149;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35599:149:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;35599:149:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;35892:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35892:104:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;35892:104:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;43104:307;;8:9:-1;5:2;;;30:1;27;20:12;5:2;43104:307:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;43104:307:0;;;;;;;;;;;;;;;;;:::i;:::-;;34494:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34494:49:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;34494:49:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12682:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12682:110:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12682:110:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25317:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25317:116:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;25317:116:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;38528:1264;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38528:1264:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;38528:1264:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19859:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19859:103:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19859:103:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;35030:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35030:39:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;35030:39:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;31752:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31752:130:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23713:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23713:87:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;23713:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21680:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21680:92:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21680:92:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;21780:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21780:79:0;;;:::i;:::-;;42880:216;;8:9:-1;5:2;;;30:1;27;20:12;5:2;42880:216:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;42880:216:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;15557:261;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15557:261:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15557:261:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;43419:165;;8:9:-1;5:2;;;30:1;27;20:12;5:2;43419:165:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;43419:165:0;;;;;;;;;;;;;;;;;:::i;:::-;;30632:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30632:108:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13005:158;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13005:158:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13005:158:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;21563:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21563:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21563:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;32111:125;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32111:125:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;37842:255;;8:9:-1;5:2;;;30:1;27;20:12;5:2;37842:255:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;37842:255:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25184:125;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25184:125:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;25184:125:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;36430:1211;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36430:1211:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;36430:1211:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;30777:443;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30777:443:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;29240:317;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29240:317:0;;;:::i;:::-;;28761:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28761:148:0;;;:::i;:::-;;26390:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26390:35:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13226:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13226:134:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13226:134:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;34832:117;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34832:117:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;34355:70;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34355:70:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;34355:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23511:83;23548:13;23581:5;23574:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23511:83;:::o;13507:152::-;13573:4;13590:39;13599:12;:10;:12::i;:::-;13613:7;13622:6;13590:8;:39::i;:::-;13647:4;13640:11;;13507:152;;;;:::o;42644:228::-;25057:30;25074:12;:10;:12::i;:::-;25057:16;:30::i;:::-;25049:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;42770:1;42743:29;;:15;;;;;;;;;;;:29;;;42735:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;42848:16;42830:15;;:34;;;;;;;;;;;;;;;;;;42644:228;:::o;26208:30::-;;;;;;;;;;;;;:::o;12528:91::-;12572:7;12599:12;;12592:19;;12528:91;:::o;34616:122::-;34658:80;;;;;;;;;;;;;;;;;;;34616:122;:::o;14131:304::-;14220:4;14237:36;14247:6;14255:9;14266:6;14237:9;:36::i;:::-;14284:121;14293:6;14301:12;:10;:12::i;:::-;14315:89;14353:6;14315:89;;;;;;;;;;;;;;;;;:11;:19;14327:6;14315:19;;;;;;;;;;;;;;;:33;14335:12;:10;:12::i;:::-;14315:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;14284:8;:121::i;:::-;14423:4;14416:11;;14131:304;;;;;:::o;31934:125::-;31982:7;32015:13;;;;;;;;;;;32009:30;;;32048:1;32009:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32009:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32009:42:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;32009:42:0;;;;;;;;;;;;;;;;32002:49;;31934:125;:::o;27162:1431::-;27321:24;27339:4;27321:9;:24::i;:::-;27302:15;:43;;27294:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27471:1;27452:15;:20;;27444:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27636:1;27609:23;;:28;27605:467;;27740:1;27713:23;;:28;27709:136;;;27762:42;27788:15;27762:25;:42::i;:::-;27823:7;;27709:136;27861:24;27888:44;27908:23;;27888:15;:19;;:44;;;;:::i;:::-;27861:71;;27965:37;27985:16;27965:15;:19;;:37;;;;:::i;:::-;27947:55;;28017:43;28043:16;28017:25;:43::i;:::-;27605:467;;28084:26;28113:22;28133:1;28113:15;:19;;:22;;;;:::i;:::-;28084:51;;28146:28;28177:39;28197:18;28177:15;:19;;:39;;;;:::i;:::-;28146:70;;28282:28;28313:21;28282:52;;28345:36;28362:18;28345:16;:36::i;:::-;28392:19;28414:47;28440:20;28414:21;:25;;:47;;;;:::i;:::-;28392:69;;28474:47;28487:20;28509:11;28474:12;:47::i;:::-;28537:48;28551:20;28573:11;28537:48;;;;;;;;;;;;;;;;;;;;;;;;27162:1431;;;;;;:::o;26432:38::-;;;;:::o;24363:83::-;24404:5;24429:9;;;;;;;;;;;24422:16;;24363:83;:::o;14844:210::-;14924:4;14941:83;14950:12;:10;:12::i;:::-;14964:7;14973:50;15012:10;14973:11;:25;14985:12;:10;:12::i;:::-;14973:25;;;;;;;;;;;;;;;:34;14999:7;14973:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;14941:8;:83::i;:::-;15042:4;15035:11;;14844:210;;;;:::o;22651:143::-;22725:4;21460:22;21469:12;:10;:12::i;:::-;21460:8;:22::i;:::-;21452:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22742:22;22748:7;22757:6;22742:5;:22::i;:::-;22782:4;22775:11;;22651:143;;;;:::o;19714:83::-;19762:27;19768:12;:10;:12::i;:::-;19782:6;19762:5;:27::i;:::-;19714:83;:::o;26245:28::-;;;;;;;;;;;;;:::o;25441:95::-;25493:35;25515:12;:10;:12::i;:::-;25493:21;:35::i;:::-;25441:95::o;31257:443::-;31304:7;31324:21;31354:13;;;;;;;;;;;31348:32;;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31348:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;31348:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;31348:34:0;;;;;;;;;;;;;;;;31324:58;;31393:17;31413;:15;:17::i;:::-;31393:37;;31441:30;31474:38;31498:13;31474:19;31488:4;31474:9;:13;;:19;;;;:::i;:::-;:23;;:38;;;;:::i;:::-;31441:71;;31525:22;31550:24;31560:13;;;;;;;;;;;31550:9;:24::i;:::-;31525:49;;31585:21;31609:52;31656:4;31609:42;31628:22;31609:14;:18;;:42;;;;:::i;:::-;:46;;:52;;;;:::i;:::-;31585:76;;31679:13;31672:20;;;;;;;31257:443;:::o;35599:149::-;35687:7;35719:10;:21;35730:9;35719:21;;;;;;;;;;;;;;;;;;;;;;;;;35712:28;;35599:149;;;:::o;35892:104::-;35956:32;35966:10;35978:9;35956;:32::i;:::-;35892:104;:::o;43104:307::-;25057:30;25074:12;:10;:12::i;:::-;25057:16;:30::i;:::-;25049:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;43234:1;43209:21;:26;43205:144;;43285:2;43260:21;:27;;43252:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;43205:144;43382:21;43359:20;:44;;;;43104:307;:::o;34494:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;12682:110::-;12739:7;12766:9;:18;12776:7;12766:18;;;;;;;;;;;;;;;;12759:25;;12682:110;;;:::o;25317:116::-;25057:30;25074:12;:10;:12::i;:::-;25057:16;:30::i;:::-;25049:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25398:27;25417:7;25398:18;:27::i;:::-;25317:116;:::o;38528:1264::-;38636:7;38683:12;38669:11;:26;38661:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;38763:19;38785:14;:23;38800:7;38785:23;;;;;;;;;;;;;;;;;;;;;;;;;38763:45;;38839:1;38823:12;:17;;;38819:58;;;38864:1;38857:8;;;;;38819:58;38989:11;38937;:20;38949:7;38937:20;;;;;;;;;;;;;;;:38;38973:1;38958:12;:16;38937:38;;;;;;;;;;;;;;;:48;;;;;;;;;;;;:63;;;38933:147;;39024:11;:20;39036:7;39024:20;;;;;;;;;;;;;;;:38;39060:1;39045:12;:16;39024:38;;;;;;;;;;;;;;;:44;;;39017:51;;;;;38933:147;39177:11;39141;:20;39153:7;39141:20;;;;;;;;;;;;;;;:23;39162:1;39141:23;;;;;;;;;;;;;:33;;;;;;;;;;;;:47;;;39137:88;;;39212:1;39205:8;;;;;39137:88;39237:12;39252:1;39237:16;;39264:12;39294:1;39279:12;:16;39264:31;;39306:428;39321:5;39313:13;;:5;:13;;;39306:428;;;39343:13;39385:1;39376:5;39368;:13;39367:19;;;;;;;;39359:5;:27;39343:43;;39428:20;;:::i;:::-;39451:11;:20;39463:7;39451:20;;;;;;;;;;;;;;;:28;39472:6;39451:28;;;;;;;;;;;;;;;39428:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39514:11;39498:2;:12;;;:27;;;39494:229;;;39553:2;:8;;;39546:15;;;;;;;;;39494:229;39602:11;39587:2;:12;;;:26;;;39583:140;;;39642:6;39634:14;;39583:140;;;39706:1;39697:6;:10;39689:18;;39583:140;39306:428;;;;;39751:11;:20;39763:7;39751:20;;;;;;;;;;;;;;;:27;39772:5;39751:27;;;;;;;;;;;;;;;:33;;;39744:40;;;;;38528:1264;;;;;:::o;19859:103::-;19928:26;19938:7;19947:6;19928:9;:26::i;:::-;19859:103;;:::o;35030:39::-;;;;;;;;;;;;;;;;;:::o;31752:130::-;31802:7;31835:13;;;;;;;;;;;31829:30;;;31868:4;31829:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31829:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;31829:45:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;31829:45:0;;;;;;;;;;;;;;;;31822:52;;31752:130;:::o;23713:87::-;23752:13;23785:7;23778:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23713:87;:::o;21680:92::-;21460:22;21469:12;:10;:12::i;:::-;21460:8;:22::i;:::-;21452:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21745:19;21756:7;21745:10;:19::i;:::-;21680:92;:::o;21780:79::-;21824:27;21838:12;:10;:12::i;:::-;21824:13;:27::i;:::-;21780:79::o;42880:216::-;25057:30;25074:12;:10;:12::i;:::-;25057:16;:30::i;:::-;25049:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;43000:1;42975:27;;:13;;;;;;;;;;;:27;;;42967:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;43074:14;43058:13;;:30;;;;;;;;;;;;;;;;;;42880:216;:::o;15557:261::-;15642:4;15659:129;15668:12;:10;:12::i;:::-;15682:7;15691:96;15730:15;15691:96;;;;;;;;;;;;;;;;;:11;:25;15703:12;:10;:12::i;:::-;15691:25;;;;;;;;;;;;;;;:34;15717:7;15691:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;15659:8;:129::i;:::-;15806:4;15799:11;;15557:261;;;;:::o;43419:165::-;25057:30;25074:12;:10;:12::i;:::-;25057:16;:30::i;:::-;25049:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;43552:24;43526:23;:50;;;;43419:165;:::o;30632:108::-;30681:7;30708:24;30726:4;30708:9;:24::i;:::-;30701:31;;30632:108;:::o;13005:158::-;13074:4;13091:42;13101:12;:10;:12::i;:::-;13115:9;13126:6;13091:9;:42::i;:::-;13151:4;13144:11;;13005:158;;;;:::o;21563:109::-;21619:4;21643:21;21656:7;21643:8;:12;;:21;;;;:::i;:::-;21636:28;;21563:109;;;:::o;32111:125::-;32159:7;32186:42;32210:17;:15;:17::i;:::-;32186:19;:17;:19::i;:::-;:23;;:42;;;;:::i;:::-;32179:49;;32111:125;:::o;37842:255::-;37934:7;37959:19;37981:14;:23;37996:7;37981:23;;;;;;;;;;;;;;;;;;;;;;;;;37959:45;;38037:1;38022:12;:16;;;:67;;38088:1;38022:67;;;38041:11;:20;38053:7;38041:20;;;;;;;;;;;;;;;:38;38077:1;38062:12;:16;38041:38;;;;;;;;;;;;;;;:44;;;38022:67;38015:74;;;37842:255;;;:::o;25184:125::-;25248:4;25272:29;25293:7;25272:16;:20;;:29;;;;:::i;:::-;25265:36;;25184:125;;;:::o;36430:1211::-;36623:23;34658:80;;;;;;;;;;;;;;;;;;;36752:6;:4;:6::i;:::-;36736:24;;;;;;36779:12;:10;:12::i;:::-;36818:4;36673:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;36673:165:0;;;36649:200;;;;;;36623:226;;36862:18;34878:71;;;;;;;;;;;;;;;;;;;36974:9;37002:5;37026:6;36907:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;36907:140:0;;;36883:175;;;;;;36862:196;;37071:14;37176:15;37210:10;37112:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;37112:123:0;;;37088:158;;;;;;37071:175;;37259:17;37279:26;37289:6;37297:1;37300;37303;37279:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;37279:26:0;;;;;;;;37259:46;;37345:1;37324:23;;:9;:23;;;;37316:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37429:6;:17;37436:9;37429:17;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;37420:5;:28;37412:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37524:6;37517:3;:13;;37509:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37602:31;37612:9;37623;37602;:31::i;:::-;37595:38;;;;36430:1211;;;;;;:::o;30777:443::-;30824:7;30844:21;30874:13;;;;;;;;;;;30868:32;;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30868:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30868:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;30868:34:0;;;;;;;;;;;;;;;;30844:58;;30913:17;30933;:15;:17::i;:::-;30913:37;;30961:30;30994:38;31018:13;30994:19;31008:4;30994:9;:13;;:19;;;;:::i;:::-;:23;;:38;;;;:::i;:::-;30961:71;;31045:22;31070:24;31080:13;;;;;;;;;;;31070:9;:24::i;:::-;31045:49;;31105:21;31129:52;31176:4;31129:42;31148:22;31129:14;:18;;:42;;;;:::i;:::-;:46;;:52;;;;:::i;:::-;31105:76;;31199:13;31192:20;;;;;;;30777:443;:::o;29240:317::-;29285:15;29309:13;;;;;;;;;;;29303:30;;;29342:4;29303:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29303:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;29303:45:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;29303:45:0;;;;;;;;;;;;;;;;29285:63;;29378:1;29367:7;:12;;29359:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29467:13;;;;;;;;;;;29461:29;;;29499:1;29503:7;29461:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29461:50:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;29461:50:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;29461:50:0;;;;;;;;;;;;;;;;;29527:22;29541:7;29527:22;;;;;;;;;;;;;;;;;;29240:317;:::o;28761:148::-;28862:39;28876:24;28894:4;28876:9;:24::i;:::-;28862:13;:39::i;:::-;28761:148::o;26390:35::-;;;;:::o;13226:134::-;13298:7;13325:11;:18;13337:5;13325:18;;;;;;;;;;;;;;;:27;13344:7;13325:27;;;;;;;;;;;;;;;;13318:34;;13226:134;;;;:::o;34832:117::-;34878:71;;;;;;;;;;;;;;;;;;;34832:117;:::o;34355:70::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2235:98::-;2280:15;2315:10;2308:17;;2235:98;:::o;18488:338::-;18599:1;18582:19;;:5;:19;;;;18574:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18680:1;18661:21;;:7;:21;;;;18653:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18764:6;18734:11;:18;18746:5;18734:18;;;;;;;;;;;;;;;:27;18753:7;18734:27;;;;;;;;;;;;;;;:36;;;;18802:7;18786:32;;18795:5;18786:32;;;18811:6;18786:32;;;;;;;;;;;;;;;;;;18488:338;;;:::o;26479:598::-;26733:1;26709:20;;:25;;:50;;;;;26754:4;26738:21;;:4;:21;;;;26709:50;26705:365;;;26776:27;26806:32;26817:20;;26806:6;:10;;:32;;;;:::i;:::-;26776:62;;26853:57;26869:4;26883;26890:19;26853:15;:57::i;:::-;26925:58;26941:4;26947:2;26951:31;26962:19;26951:6;:10;;:31;;;;:::i;:::-;26925:15;:58::i;:::-;26705:365;;;;27025:33;27041:4;27047:2;27051:6;27025:15;:33::i;:::-;26705:365;26479:598;;;:::o;7295:192::-;7381:7;7414:1;7409;:6;;7417:12;7401:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7401:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7441:9;7457:1;7453;:5;7441:17;;7478:1;7471:8;;;7295:192;;;;;:::o;28917:315::-;29056:63;29080:4;29087:13;;;;;;;;;;;29102:16;29056:15;:63::i;:::-;29145:13;;;;;;;;;;;29130:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29130:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;29130:36:0;;;;29182:42;29207:16;29182:42;;;;;;;;;;;;;;;;;;28917:315;:::o;8677:132::-;8735:7;8762:39;8766:1;8769;8762:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;8755:46;;8677:132;;;;:::o;6822:136::-;6880:7;6907:43;6911:1;6914;6907:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;6900:50;;6822:136;;;;:::o;29565:588::-;29631:32;29680:1;29666:16;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;29666:16:0;;;;29631:51;;29722:4;29693:15;29709:1;29693:18;;;;;;;;;;;;;:34;;;;;;;;;;;29778:15;;;;;;;;;;;29759:40;;;:42;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29759:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;29759:42:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;29759:42:0;;;;;;;;;;;;;;;;29738:15;29754:1;29738:18;;;;;;;;;;;;;:63;;;;;;;;;;;29814:53;29831:4;29838:15;;;;;;;;;;;29855:11;29814:8;:53::i;:::-;29899:15;;;;;;;;;;;29880:100;;;29999:11;30029:1;30049:15;30091:4;30115:15;29880:265;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;29880:265:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29880:265:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;29880:265:0;;;;29565:588;;:::o;30161:434::-;30242:53;30259:4;30266:15;;;;;;;;;;;30283:11;30242:8;:53::i;:::-;30327:15;;;;;;;;;;;30308:65;;;30394:9;30431:4;30455:11;30485:1;30505;30533:4;30557:15;30308:279;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30308:279:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30308:279:0;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;30308:279:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30161:434;;:::o;6366:181::-;6424:7;6444:9;6460:1;6456;:5;6444:17;;6485:1;6480;:6;;6472:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6538:1;6531:8;;;6366:181;;;;:::o;33250:170::-;33318:55;33341:1;33345:10;:19;33356:7;33345:19;;;;;;;;;;;;;;;;;;;;;;;;;33366:6;33318:14;:55::i;:::-;33384:28;33396:7;33405:6;33384:11;:28::i;:::-;33250:170;;:::o;33428:::-;33496:55;33511:10;:19;33522:7;33511:19;;;;;;;;;;;;;;;;;;;;;;;;;33540:1;33544:6;33496:14;:55::i;:::-;33562:28;33574:7;33583:6;33562:11;:28::i;:::-;33428:170;;:::o;25698:154::-;25766:32;25790:7;25766:16;:23;;:32;;;;:::i;:::-;25836:7;25814:30;;;;;;;;;;;;25698:154;:::o;7738:471::-;7796:7;8046:1;8041;:6;8037:47;;;8071:1;8064:8;;;;8037:47;8096:9;8112:1;8108;:5;8096:17;;8141:1;8136;8132;:5;;;;;;:10;8124:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8200:1;8193:8;;;7738:471;;;;;:::o;39800:449::-;39891:23;39917:10;:21;39928:9;39917:21;;;;;;;;;;;;;;;;;;;;;;;;;39891:47;;39949:24;39976:20;39986:9;39976;:20::i;:::-;39949:47;;40087:9;40063:10;:21;40074:9;40063:21;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;40158:9;40114:54;;40141:15;40114:54;;40130:9;40114:54;;;;;;;;;;;;40181:60;40196:15;40213:9;40224:16;40181:14;:60::i;:::-;39800:449;;;;:::o;25544:146::-;25609:29;25630:7;25609:16;:20;;:29;;;;:::i;:::-;25674:7;25654:28;;;;;;;;;;;;25544:146;:::o;19012:232::-;19084:22;19090:7;19099:6;19084:5;:22::i;:::-;19117:119;19126:7;19135:12;:10;:12::i;:::-;19149:86;19188:6;19149:86;;;;;;;;;;;;;;;;;:11;:20;19161:7;19149:20;;;;;;;;;;;;;;;:34;19170:12;:10;:12::i;:::-;19149:34;;;;;;;;;;;;;;;;:38;;:86;;;;;:::i;:::-;19117:8;:119::i;:::-;19012:232;;:::o;21867:122::-;21924:21;21937:7;21924:8;:12;;:21;;;;:::i;:::-;21973:7;21961:20;;;;;;;;;;;;21867:122;:::o;21997:130::-;22057:24;22073:7;22057:8;:15;;:24;;;;:::i;:::-;22111:7;22097:22;;;;;;;;;;;;21997:130;:::o;20832:203::-;20904:4;20948:1;20929:21;;:7;:21;;;;20921:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21007:4;:11;;:20;21019:7;21007:20;;;;;;;;;;;;;;;;;;;;;;;;;21000:27;;20832:203;;;;:::o;42104:153::-;42149:4;42166:15;42214:9;42203:20;;42242:7;42235:14;;;42104:153;:::o;33053:189::-;33134:56;33149:10;:16;33160:4;33149:16;;;;;;;;;;;;;;;;;;;;;;;;;33167:10;:14;33178:2;33167:14;;;;;;;;;;;;;;;;;;;;;;;;;33183:6;33134:14;:56::i;:::-;33201:33;33217:4;33223:2;33227:6;33201:15;:33::i;:::-;33053:189;;;:::o;9339:345::-;9425:7;9524:1;9520;:5;9527:12;9512:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;9512:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9551:9;9567:1;9563;:5;;;;;;9551:17;;9675:1;9668:8;;;9339:345;;;;;:::o;40257:947::-;40363:6;40353:16;;:6;:16;;;;:30;;;;;40382:1;40373:6;:10;40353:30;40349:848;;;40422:1;40404:20;;:6;:20;;;40400:385;;40493:16;40512:14;:22;40527:6;40512:22;;;;;;;;;;;;;;;;;;;;;;;;;40493:41;;40553:17;40585:1;40573:9;:13;;;:60;;40632:1;40573:60;;;40589:11;:19;40601:6;40589:19;;;;;;;;;;;;;;;:34;40621:1;40609:9;:13;40589:34;;;;;;;;;;;;;;;:40;;;40573:60;40553:80;;40652:17;40672:21;40686:6;40672:9;:13;;:21;;;;:::i;:::-;40652:41;;40712:57;40729:6;40737:9;40748;40759;40712:16;:57::i;:::-;40400:385;;;;40823:1;40805:20;;:6;:20;;;40801:385;;40894:16;40913:14;:22;40928:6;40913:22;;;;;;;;;;;;;;;;;;;;;;;;;40894:41;;40954:17;40986:1;40974:9;:13;;;:60;;41033:1;40974:60;;;40990:11;:19;41002:6;40990:19;;;;;;;;;;;;;;;:34;41022:1;41010:9;:13;40990:34;;;;;;;;;;;;;;;:40;;;40974:60;40954:80;;41053:17;41073:21;41087:6;41073:9;:13;;:21;;;;:::i;:::-;41053:41;;41113:57;41130:6;41138:9;41149;41160;41113:16;:57::i;:::-;40801:385;;;;40349:848;40257:947;;;:::o;17060:308::-;17155:1;17136:21;;:7;:21;;;;17128:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17221:24;17238:6;17221:12;;:16;;:24;;;;:::i;:::-;17206:12;:39;;;;17277:30;17300:6;17277:9;:18;17287:7;17277:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;17256:9;:18;17266:7;17256:18;;;;;;;;;;;;;;;:51;;;;17344:7;17323:37;;17340:1;17323:37;;;17353:6;17323:37;;;;;;;;;;;;;;;;;;17060:308;;:::o;17700:348::-;17795:1;17776:21;;:7;:21;;;;17768:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17869:68;17892:6;17869:68;;;;;;;;;;;;;;;;;:9;:18;17879:7;17869:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;17848:9;:18;17858:7;17848:18;;;;;;;;;;;;;;;:89;;;;17963:24;17980:6;17963:12;;:16;;:24;;;;:::i;:::-;17948:12;:39;;;;18029:1;18003:37;;18012:7;18003:37;;;18033:6;18003:37;;;;;;;;;;;;;;;;;;17700:348;;:::o;20554:183::-;20634:18;20638:4;20644:7;20634:3;:18::i;:::-;20626:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20724:5;20701:4;:11;;:20;20713:7;20701:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;20554:183;;:::o;20296:178::-;20374:18;20378:4;20384:7;20374:3;:18::i;:::-;20373:19;20365:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20462:4;20439;:11;;:20;20451:7;20439:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;20296:178;;:::o;16308:471::-;16424:1;16406:20;;:6;:20;;;;16398:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16508:1;16487:23;;:9;:23;;;;16479:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16583;16605:6;16583:71;;;;;;;;;;;;;;;;;:9;:17;16593:6;16583:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;16563:9;:17;16573:6;16563:17;;;;;;;;;;;;;;;:91;;;;16688:32;16713:6;16688:9;:20;16698:9;16688:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;16665:9;:20;16675:9;16665:20;;;;;;;;;;;;;;;:55;;;;16753:9;16736:35;;16745:6;16736:35;;;16764:6;16736:35;;;;;;;;;;;;;;;;;;16308:471;;;:::o;41212:715::-;41391:18;41412:87;41419:12;41412:87;;;;;;;;;;;;;;;;;:6;:87::i;:::-;41391:108;;41531:1;41516:12;:16;;;:85;;;;;41590:11;41536:65;;:11;:22;41548:9;41536:22;;;;;;;;;;;;;;;:40;41574:1;41559:12;:16;41536:40;;;;;;;;;;;;;;;:50;;;;;;;;;;;;:65;;;41516:85;41512:339;;;41667:8;41618:11;:22;41630:9;41618:22;;;;;;;;;;;;;;;:40;41656:1;41641:12;:16;41618:40;;;;;;;;;;;;;;;:46;;:57;;;;41512:339;;;41747:33;;;;;;;;41758:11;41747:33;;;;;;41771:8;41747:33;;;41708:11;:22;41720:9;41708:22;;;;;;;;;;;;;;;:36;41731:12;41708:36;;;;;;;;;;;;;;;:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;41838:1;41823:12;:16;41795:14;:25;41810:9;41795:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;41512:339;41889:9;41868:51;;;41900:8;41910;41868:51;;;;;;;;;;;;;;;;;;;;;;;;41212:715;;;;;:::o;41935:161::-;42010:6;42041:5;42037:1;:9;42048:12;42029:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;42029:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;42086:1;42072:16;;41935:161;;;;:::o;42328:1259::-;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
bzzr://1c0d365f304fcb671c98917198cdeb4bc5a77a5f7ea2a5534be46c9169fab1bd
🤖 Code Reader

Generate instant answers for your smart contract questions using AI Models. Read more.

Custom Contract ABI

                                
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.