[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "vestId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "CancelVesting", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "Converted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "vestId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ExitVesting", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "InstantExit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "exitRatio", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "veExitRatio", "type": "uint256" } ], "name": "NewExitRatios", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "vestId", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "NewVest", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "min", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "max", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "veMaxVest", "type": "uint256" } ], "name": "NewVestingTimes", "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": "candidate", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "status", "type": "bool" } ], "name": "WhitelistStatus", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "XTokensRedeemed", "type": "event" }, { "inputs": [], "name": "MAXTIME", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PRECISION", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_pool", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_whitelistee", "type": "address" } ], "name": "addWhitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_candidates", "type": "address[]" }, { "internalType": "bool[]", "name": "_status", "type": "bool[]" } ], "name": "adjustWhitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newExitRatio", "type": "uint256" }, { "internalType": "uint256", "name": "_newVeExitRatio", "type": "uint256" } ], "name": "alterExitRatios", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "approveVotingEscrow", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxVest", "type": "uint256" } ], "name": "changeMaximumVestingLength", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_minVest", "type": "uint256" } ], "name": "changeMinimumVestingLength", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_veMax", "type": "uint256" } ], "name": "changeVeMaximumVestingLength", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newOperator", "type": "address" } ], "name": "changeWhitelistOperator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "convertEmissionsToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "createVest", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "duration", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "emissionsToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "exitRatio", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_vestID", "type": "uint256" }, { "internalType": "bool", "name": "_ve", "type": "bool" } ], "name": "exitVest", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getBalanceResiding", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_emissionsToken", "type": "address" }, { "internalType": "address", "name": "_votingEscrow", "type": "address" }, { "internalType": "address", "name": "_voter", "type": "address" }, { "internalType": "address", "name": "_timelock", "type": "address" }, { "internalType": "address", "name": "_multisig", "type": "address" }, { "internalType": "address", "name": "_whitelistOperator", "type": "address" }, { "internalType": "address", "name": "_protocolWhitelist", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "uint256", "name": "maxPayAmount", "type": "uint256" } ], "name": "instantExit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isWhitelisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxVest", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_multisig", "type": "address" } ], "name": "migrateMultisig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_protocolWhitelist", "type": "address" } ], "name": "migrateProtocolWhitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_timelock", "type": "address" } ], "name": "migrateTimelock", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "minVest", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "multisig", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "multisigRedeem", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "optionEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "outToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "protocolWhitelist", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "quotePayment", "outputs": [ { "internalType": "uint256", "name": "payAmount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amountIn", "type": "uint256" } ], "name": "quotePrice", "outputs": [ { "internalType": "uint256", "name": "amountOut", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_min", "type": "uint256" }, { "internalType": "uint256", "name": "_max", "type": "uint256" }, { "internalType": "uint256", "name": "_veMax", "type": "uint256" } ], "name": "reinitializeVestingParameters", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_votingEscrow", "type": "address" } ], "name": "reinitializeVotingEscrow", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "reinitializeWhitelistOperator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_whitelistee", "type": "address" } ], "name": "removeWhitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_tokens", "type": "address[]" }, { "internalType": "uint256[]", "name": "_amounts", "type": "uint256[]" } ], "name": "rescueTrappedTokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "isEnabled", "type": "bool" } ], "name": "setOptionsEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_paused", "type": "bool" } ], "name": "setPaused", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newPool", "type": "address" } ], "name": "setPool", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "_duration", "type": "uint32" } ], "name": "setSecondsAgo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "syncAndCheckIsWhitelisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "timelock", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "legacy", "type": "bool" } ], "name": "useLegacyPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" } ], "name": "usersTotalVests", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "usingLegacyPair", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "veExitRatio", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "veMaxVest", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "vestInfo", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "start", "type": "uint256" }, { "internalType": "uint256", "name": "maxEnd", "type": "uint256" }, { "internalType": "uint256", "name": "vestID", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "voter", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "votingEscrow", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "whitelistOperator", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "xTokenConvertToNft", "outputs": [ { "internalType": "uint256", "name": "veTokenId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "uint256", "name": "_tokenID", "type": "uint256" } ], "name": "xTokenIncreaseNft", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60808060405234620000c6576000549060ff8260081c1662000074575060ff8082160362000038575b6040516145599081620000cc8239f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a13862000028565b62461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816306fdde03146126b15750806308b4bd6314612592578063095ea7b31461256b5780630fb5a6b41461254757806311147bd6146124d357806312e82674146123e457806316c38b3c1461236957806318160ddd1461234b5780631ad7b12714612301578063210ca05d146122d857806323b872dd1461221d57806326997e9e146121f95780632937c8a3146121b25780632cf53bd81461217a5780632db0c52414611dda578063313ce56714611dbe57806333db82fd14611d9757806335876476146116e0578063395093511461168e5780633af32abf14611651578063415bceba146116335780634437152a1461150c57806344c43782146114e557806345420ff7146114bf57806346c96aac146114985780634783c35b146114715780634f2bfe5b1461144a578063536d0e11146113d457806355a595ab1461135a5780635c975abb1461133457806361b51a0e14611225578063636fc28b146111fe5780636743c100146111b75780636b3fbc801461112357806370a08231146110eb57806378c8cda7146110745780637eb80ff31461102c5780637faa440b1461100557806386c2608c14610f565780638d60cd6214610ee25780638e56007b14610e5057806390a5701214610df257806395d89b4114610d0d5780639bd1fbdc14610cc5578063a0cb711c14610be8578063a2add5f514610bca578063a457c2d714610b0c578063a4bf5b3e14610a5d578063a74e16ed14610a36578063a9059cbb14610a04578063aaf5eb68146109e8578063b906bbc3146109a1578063bacbf61b1461090e578063beb7dc341461083c578063c6c6c899146107f5578063cd3e888d1461077e578063d33219b414610757578063dbf1608714610731578063dd62ed3e146106e1578063e252a4dc1461065c578063e9dcc0541461063e578063eb8738f514610416578063ee00ef3a146103f7578063ef8f9595146103d9578063f3980527146103bb578063f80f5dd5146103805763f93b47741461030257600080fd5b3461037d57602036600319011261037d5761031b612827565b6103316001600160a01b03606a54163314612dac565b7fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff76ff0000000000000000000000000000000000000000000060745492151560b01b1691161760745580f35b80fd5b503461037d57602036600319011261037d576103b861039d6127c9565b6103b36001600160a01b03606a54163314612dac565b61426d565b80f35b503461037d578060031936011261037d576020607154604051908152f35b503461037d578060031936011261037d576020607254604051908152f35b503461037d578060031936011261037d576020604051630784ce008152f35b503461037d5761042536612836565b61043760ff60745460a81c16156129d9565b61044282151561296a565b606461045083606e54612cfa565b0461045b8333613d29565b60745460a01c60ff16156106125750606e54606403606481116105fe57606461048761048d9285612cfa565b0461334f565b9081116105b957606c546069546040516323b872dd60e01b81523360048201526001600160a01b0391821660248201526044810193909352602091839160649183918891165af1801561058f5761059a575b506001600160a01b03602061051e835b60655460405163a9059cbb60e01b81523360048201526024810192909252909384928391889183906044820190565b0393861c165af1801561058f57610560575b506040519081527fa8a63b0531e55ae709827fb089d01034e24a200ad14dc710dfa9e962005f629a60203392a280f35b6105819060203d602011610588575b6105798183612948565b810190612a55565b5038610530565b503d61056f565b6040513d85823e3d90fd5b6105b29060203d602011610588576105798183612948565b50386104df565b60405162461bcd60e51b815260206004820152600860248201527f534c4950504147450000000000000000000000000000000000000000000000006044820152606490fd5b634e487b7160e01b84526011600452602484fd5b6001600160a01b03915061051e8161063961062f60209487612d2d565b8560695416613f48565b6104ef565b503461037d578060031936011261037d576020607054604051908152f35b503461037d57606036600319011261037d577f62af4b39fdadd951e167a6f82ba41fb16549cf271ffb69aef3f4717b27c031c8600435602435906106db6044356106b26001600160a01b03606a54163314612dac565b806071558360725582607055604051938493846040919493926060820195825260208201520152565b0390a180f35b503461037d57604036600319011261037d576106fb6127c9565b60406107056127df565b926001600160a01b03809316815260346020522091166000526020526020604060002054604051908152f35b503461037d578060031936011261037d57602060ff60745460b01c166040519015158152f35b503461037d578060031936011261037d5760206001600160a01b0360685416604051908152f35b503461037d57602036600319011261037d577f62af4b39fdadd951e167a6f82ba41fb16549cf271ffb69aef3f4717b27c031c86004356107ca6001600160a01b03606a54163314612dac565b806071556070546106db60725492604051938493846040919493926060820195825260208201520152565b503461037d57602036600319011261037d5761080f6127c9565b6001600160a01b0319606854916001600160a01b03906108328285163314612cae565b1691161760685580f35b503461037d5761084b3661287d565b9290916001600160a01b039161086683606854163314612cae565b855b828110610873578680f35b83610887610882838686612e3d565b612e4d565b16908460695416610899828989612e3d565b60405163a9059cbb60e01b81526001600160a01b03929092166004830152356024820152916020908190849060449082908d905af1928315610903576001936108e5575b505001610868565b816108fb92903d10610588576105798183612948565b5038806108dd565b6040513d8b823e3d90fd5b503461037d578060031936011261037d57606554906001600160a01b03602080936024604051809481936370a0823160e01b8352306004840152851c165afa9182156109955791610963575b50604051908152f35b90508181813d831161098e575b61097a8183612948565b8101031261098957513861095a565b600080fd5b503d610970565b604051903d90823e3d90fd5b503461037d57602036600319011261037d576109bb6127c9565b6001600160a01b03906109d382606a54163314612dac565b166001600160a01b0319607454161760745580f35b503461037d578060031936011261037d57602060405160648152f35b503461037d57604036600319011261037d57610a2b610a216127c9565b6024359033614057565b602060405160018152f35b503461037d57602036600319011261037d576020610a5560043561334f565b604051908152f35b503461037d57602036600319011261037d57806020610ad36004356001600160a01b03610a8f81606954163314612a09565b610a998233613d29565b606554841c169060405194858094819363a9059cbb60e01b83523360048401602090939291936001600160a01b0360408201951681520152565b03925af18015610b0157610ae5575080f35b610afd9060203d602011610588576105798183612948565b5080f35b6040513d84823e3d90fd5b503461037d57604036600319011261037d57610b266127c9565b6040602435923381526034602052206001600160a01b03821660005260205260406000205491808310610b5f57610a2b92039033613e46565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608490fd5b503461037d578060031936011261037d576020606e54604051908152f35b503461037d578060031936011261037d57610103815460ff8160081c161580610cb8575b610c1590612d3a565b61ffff19161781556001600160a01b0360206065546044836066541685604051958694859363095ea7b360e01b855260048501526000196024850152861c165af18015610b0157610c99575b5061ff001981541681557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160038152a180f35b610cb19060203d602011610588576105798183612948565b5038610c61565b50600360ff821610610c0c565b503461037d57604036600319011261037d57602435801515810361098957610d03602091610cfb60ff60745460a81c16156129d9565b600435612e61565b6040519015158152f35b503461037d578060031936011261037d57604051908060375490610d30826128c8565b80855291602091600191828116908115610dc55750600114610d6d575b610d6986610d5d81880382612948565b60405191829182612780565b0390f35b9350603784527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae5b838510610db257505050508101602001610d5d82610d6938610d4d565b8054868601840152938201938101610d95565b9050869550610d6996935060209250610d5d94915060ff191682840152151560051b820101929338610d4d565b503461037d577f5ae868cca8699cff09a2a4e0f91d871766444d92d260cc061e9f5cf8ef7a36656040610e2436612836565b610e3a6001600160a01b03606a54163314612dac565b81606e5580606f5582519182526020820152a180f35b503461037d57602036600319011261037d576002610e6c6127c9565b6001600160a01b0383549160ff8360081c161580610ed6575b610e8e90612d3a565b166001600160a01b0319606654161760665561ffff19161781557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160028152a180f35b5060ff83168411610e85565b503461037d57602036600319011261037d577f62af4b39fdadd951e167a6f82ba41fb16549cf271ffb69aef3f4717b27c031c8600435610f2e6001600160a01b03606a54163314612dac565b60708190556072546071546040805193845260208401929092529082015280606081016106db565b503461037d57610f653661287d565b6001600160a01b039392610f7e85606a54163314612dac565b855b818110610f8b578680f35b610f99610882828488612e3d565b90610fa5818587612e3d565b35801515809103611001577fcb3169c4c60f8a90f7ce39caf59c74a3bbe0b04a7684a8810f86ef8a1b8abef388600194169182600052602090606d8252604060002060ff1981541660ff8316179055604051908152a201610f80565b8880fd5b503461037d578060031936011261037d5760206001600160a01b0360745416604051908152f35b503461037d57602036600319011261037d57606e546064039060648211611060576020610a55606461048785600435612cfa565b634e487b7160e01b81526011600452602490fd5b503461037d57602036600319011261037d5761108e6127c9565b6001600160a01b03906110a682606a54163314612dac565b1680600052606d602052604060002060ff1981541690557fcb3169c4c60f8a90f7ce39caf59c74a3bbe0b04a7684a8810f86ef8a1b8abef3602060405160008152a280f35b503461037d57602036600319011261037d5760406020916001600160a01b036111126127c9565b168152603383522054604051908152f35b503461037d578060031936011261037d576004815460ff8160081c1615806111ab575b61114f90612d3a565b73aaa11500dddb2b67a90d1a154dfb7eabb518eae66001600160a01b0319606a541617606a5561ffff19161781557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160048152a180f35b5060ff81168211611146565b503461037d57602036600319011261037d576111d16127c9565b6001600160a01b03906111e982606854163314612cae565b166001600160a01b0319606a541617606a5580f35b503461037d578060031936011261037d5760206001600160a01b03606b5416604051908152f35b503461037d576020908160031936011261037d5760043561124e60ff60745460a81c16156129d9565b61125981151561296a565b6112638133613d29565b8183606461127384606f54612cfa565b0460646001600160a01b0361129681606954166112908589612d2d565b90613f48565b6066541691604051948593849263ec32e6df60e01b84526004840152630784ce0060248401523360448401525af19283156109955792611305575b506040519081527fc1af970349bc805b72c8d6b943b259baa88e58e11438cd81833301aa4b58455d833392a2604051908152f35b9091508281813d831161132d575b61131d8183612948565b81010312610989575190386112d1565b503d611313565b503461037d578060031936011261037d57602060ff60745460a81c166040519015158152f35b503461037d57602036600319011261037d57611374612827565b61138a6001600160a01b03606954163314612a6d565b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff000000000000000000000000000000000000000060745492151560a01b1691161760745580f35b503461037d57602036600319011261037d577f62af4b39fdadd951e167a6f82ba41fb16549cf271ffb69aef3f4717b27c031c86004356114206001600160a01b03606a54163314612dac565b806072556070546106db607154604051938493846040919493926060820195825260208201520152565b503461037d578060031936011261037d5760206001600160a01b0360665416604051908152f35b503461037d578060031936011261037d5760206001600160a01b0360695416604051908152f35b503461037d578060031936011261037d5760206001600160a01b0360675416604051908152f35b503461037d578060031936011261037d57602060ff60745460a01c166040519015158152f35b503461037d578060031936011261037d5760206001600160a01b03606a5416604051908152f35b503461037d5760208060031936011261162f576115276127c9565b6001600160a01b03809161154082606a54163314612dac565b1691606b5492846001600160a01b0319948286821617606b551617604051630dfe168160e01b81528281600481855afa908115611624578691611607575b5083606554841c16848216146000146115ff5750816004916040519283809263d21220a760e01b82525afa9182156115f45785926115c7575b50505b1690606c541617606c5580f35b6115e69250803d106115ed575b6115de8183612948565b810190612e1e565b38806115b7565b503d6115d4565b6040513d87823e3d90fd5b9150506115ba565b61161e9150833d85116115ed576115de8183612948565b3861157e565b6040513d88823e3d90fd5b5080fd5b503461037d578060031936011261037d576020606f54604051908152f35b503461037d57602036600319011261037d5760ff60406020926001600160a01b0361167a6127c9565b168152606d84522054166040519015158152f35b503461037d57604036600319011261037d57610a2b9060406116ae6127c9565b913381526034602052206001600160a01b0382166000526020526116d96024356040600020546129b6565b9033613e46565b503461037d5760e036600319011261037d576116fa6127c9565b906117036127df565b6044356001600160a01b038116810361098957606435906001600160a01b038216820361098957608435926001600160a01b03841684036109895760a435926001600160a01b03841684036109895760c4356001600160a01b03811681036109895786549560ff8760081c161596878098611d8a575b8015611d73575b61178990612d3a565b60ff198116600117895587611d62575b50604051986117a78a61292c565b60168a527f457363726f7765642050484152414f4820546f6b656e0000000000000000000060208b0152604051996117de8b61292c565b60058b527f785048415200000000000000000000000000000000000000000000000000000060208c015261182160ff8b5460081c1661181c816142bc565b6142bc565b80519067ffffffffffffffff8211611d4e5781906118406036546128c8565b601f8111611ca5575b50602090601f8311600114611c1d578c92611c12575b50508160011b916000199060031b1c1916176036555b895167ffffffffffffffff8111611bfe576118916037546128c8565b9a601f8c11611b61575b8a809c5098999a50602090601f8311600114611ab457946001600160a01b03809b8180978160449c9860209f9e9c988f9c839982918f92611aa9575b50508160011b916000199060031b1c1916176037555b7fffffffffffffffff0000000000000000000000000000000000000000ffffffff77ffffffffffffffffffffffffffffffffffffffff000000006065549260201b169116179889606555169e8f97816066549d8e9a6001600160a01b0319809c16176066551689606754161760675516876068541617606855168560695416176069551683606a541617606a55169060745416176074556032606e556064606f556212750060705562278d00607155629e3400607255604051978896879563095ea7b360e01b8752161760048501526000196024850152861c165af1801561058f57611a8a575b5060008052606d6020526040600020600160ff1982541617905560007fcb3169c4c60f8a90f7ce39caf59c74a3bbe0b04a7684a8810f86ef8a1b8abef3602060405160018152a2611a243061426d565b611a386001600160a01b036067541661426d565b611a4c6001600160a01b036069541661426d565b611a535780f35b61ff001981541681557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160018152a180f35b611aa29060203d602011610588576105798183612948565b50386119d4565b0151905038806118d7565b9060378a9b969798999b527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae918a5b601f1985168110611b4657508a9994966001600160a01b03809d9993978160209e9a60018960449f9a99849d859b99869a601f19811610611b2d575b505050811b016037556118ed565b015160001960f88460031b161c19169055388080611b1f565b8183015184558e9b5060019093019260209283019201611ae3565b60378b52601f820160051c7f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae0160208310611bd7575b601f8d0160051c7f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae018110611bcc575061189b565b8b8155600101611b97565b507f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae611b97565b634e487b7160e01b8a52604160045260248afd5b01519050388061185f565b925060368c527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8908c935b601f1984168510611c8a576001945083601f19811610611c71575b505050811b01603655611875565b015160001960f88460031b161c19169055388080611c63565b81810151835560209485019460019093019290910190611c48565b90915060368c52601f830160051c7f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b80160208410611d27575b908392915b8d601f830160051c7f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8018210611d1a575050611849565b8155849350600101611ce3565b507f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8611cde565b634e487b7160e01b8b52604160045260248bfd5b61ffff191661010117885538611799565b50303b158015611780575060ff8116600114611780565b50600160ff821610611779565b503461037d578060031936011261037d5760206001600160a01b03606c5416604051908152f35b503461037d578060031936011261037d57602060405160128152f35b503461037d57611de936612836565b611dfb60ff60745460a81c16156129d9565b611e0682151561296a565b611e108233613d29565b60665460405163430c208160e01b808252336004830152602482018490526020936001600160a01b0393909290841691908581604481865afa90811561203f57889161215d575b50156120f25760405190815230600482015260248101839052908490829060449082905afa9081156116245786916120d5575b501561205e576064611e9e85606f54612cfa565b0491611eb281606954166112908588612d2d565b630784ce0080420180421161204a5762093a8080910481810291818304149015171561204a5790829188959493606654169060405190635a2d1e0760e11b8252856004830152604082602481865afa91821561203f578892612005575b5011611f9e575b50506066541691823b15611f9a576044849283604051958694859363b2383e5560e01b8552600485015260248401525af18015610b0157611f82575b50507fc1af970349bc805b72c8d6b943b259baa88e58e11438cd81833301aa4b58455d906040519283523392a280f35b611f8b90612902565b611f96578238611f52565b8280fd5b8380fd5b8095929394953b15611f9657604483926040519485938492639d507b8b60e01b845289600485015260248401525af18015611ffa57611fe3575b908187949392611f16565b611ff1909691939296612902565b94909138611fd8565b6040513d89823e3d90fd5b9091506040813d604011612037575b8161202160409383612948565b81010312612033578801519038611f0f565b8780fd5b3d9150612014565b6040513d8a823e3d90fd5b634e487b7160e01b88526011600452602488fd5b60a4836040519062461bcd60e51b82526004820152604460248201527f78546f6b656e3a2054686520636f6e747261637420686173206e6f742062656560448201527f6e20676976656e20617070726f76616c20746f20796f757220766520706f73696064820152633a34b7b760e11b6084820152fd5b6120ec9150843d8611610588576105798183612948565b38611e8a565b60405162461bcd60e51b815260048101869052603760248201527f78546f6b656e3a20596f7520617265206e6f7420617070726f76656420746f2060448201527f657874656e64207468697320766520706f736974696f6e0000000000000000006064820152608490fd5b6121749150863d8811610588576105798183612948565b38611e57565b503461037d57602036600319011261037d5760406020916001600160a01b036121a16127c9565b168152607383522054604051908152f35b503461037d57602036600319011261037d576121cc6127c9565b6001600160a01b03906121e482606854163314612cae565b166001600160a01b0319606954161760695580f35b503461037d57602036600319011261037d576020610d036122186127c9565b612bbd565b503461037d57606036600319011261037d576122376127c9565b906122406127df565b6040604435926001600160a01b038516815260346020528181203382526020522054926000198403612277575b610a2b9350614057565b8284106122935761228e83610a2b95033383613e46565b61226d565b60405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606490fd5b503461037d578060031936011261037d5760206065546001600160a01b0360405191831c168152f35b503461037d57602036600319011261037d5760043563ffffffff811680910361162f5761233a6001600160a01b03606954163314612a6d565b63ffffffff19606554161760655580f35b503461037d578060031936011261037d576020603554604051908152f35b503461037d57602036600319011261037d57612383612827565b6123996001600160a01b03606954163314612a6d565b7fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff75ff00000000000000000000000000000000000000000060745492151560a81b1691161760745580f35b503461037d5760208060031936011261162f576004359061240d60ff60745460a81c16156129d9565b61241e61241933612bbd565b612a09565b61242982151561296a565b6065546040516323b872dd60e01b81523360048201523060248201526044810184905291908190839060649082908890851c6001600160a01b03165af19182156124c8577fa428517b481b65176e7c35a57b564d5cf943c8462468b8a0f025fa689173f901926124ab575b5061249f8333613f48565b6040519283523392a280f35b6124c190823d8411610588576105798183612948565b5038612494565b6040513d86823e3d90fd5b503461037d57604036600319011261037d576124ed6127c9565b6001600160a01b031681526073602052604081208054602435929083101561037d57608061251b84846127f5565b508054906001810154906003600282015491015491604051938452602084015260408301526060820152f35b503461037d578060031936011261037d57602063ffffffff60655416604051908152f35b503461037d57604036600319011261037d57610a2b6125886127c9565b6024359033613e46565b503461037d57602036600319011261037d576004356125b281151561296a565b6125bc8133613d29565b3382526073602052604082208054906125d7607254426129b6565b90604051916080830183811067ffffffffffffffff82111761269d5760405284835260208301428152604084019182526060840192858452680100000000000000008610156126895785612630916001820181556127f5565b9490946126755751845551600184015551600283015551600390910155337f7d9230ebb47980ddc758fe4e69ea83a89dafbceb45bd45934798477baa5776688480a480f35b634e487b7160e01b88526004889052602488fd5b634e487b7160e01b88526041600452602488fd5b634e487b7160e01b87526041600452602487fd5b823461037d578060031936011261037d57603654816126cf826128c8565b8085529160209160019182811690811561275357506001146126fb57610d6986610d5d81880382612948565b9350603684527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b85b83851061274057505050508101602001610d5d82610d6985610d4d565b8054868601840152938201938101612723565b9050869550610d6996935060209250610d5d94915060ff191682840152151560051b820101929385610d4d565b6020808252825181830181905290939260005b8281106127b557505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501612793565b600435906001600160a01b038216820361098957565b602435906001600160a01b038216820361098957565b80548210156128115760005260206000209060021b0190600090565b634e487b7160e01b600052603260045260246000fd5b60043590811515820361098957565b6040906003190112610989576004359060243590565b9181601f840112156109895782359167ffffffffffffffff8311610989576020808501948460051b01011161098957565b60406003198201126109895767ffffffffffffffff9160043583811161098957826128aa9160040161284c565b93909392602435918211610989576128c49160040161284c565b9091565b90600182811c921680156128f8575b60208310146128e257565b634e487b7160e01b600052602260045260246000fd5b91607f16916128d7565b67ffffffffffffffff811161291657604052565b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761291657604052565b90601f8019910116810190811067ffffffffffffffff82111761291657604052565b1561297157565b60405162461bcd60e51b815260206004820152600d60248201527f78546f6b656e3a2021203e2030000000000000000000000000000000000000006044820152606490fd5b919082018092116129c357565b634e487b7160e01b600052601160045260246000fd5b156129e057565b60405162461bcd60e51b81526020600482015260016024820152600560fc1b6044820152606490fd5b15612a1057565b60405162461bcd60e51b815260206004820152600d60248201527f78546f6b656e3a202141555448000000000000000000000000000000000000006044820152606490fd5b90816020910312610989575180151581036109895790565b15612a7457565b60405162461bcd60e51b815260206004820152600560248201527f214d5349470000000000000000000000000000000000000000000000000000006044820152606490fd5b6000808052606d60209081527fda90043ba5b4096ba14704bc227ab0d3167da15b887e62ab2e76e37daa7113565460ff16612bb6576001600160a01b0360248282606754166040519283809263aa79979b60e01b82528860048301525afa9081156124c8578491612b99575b50612b8e578183916074541660246040518094819363134cbf4f60e11b83528160048401525af191821561058f578392612b71575b5050612b635790565b50612b6c614225565b600190565b612b879250803d10610588576105798183612948565b3880612b5a565b505050612b6c614225565b612bb09150833d8511610588576105798183612948565b38612b25565b5050600190565b6001600160a01b039081811691600092808452602091606d835260ff604086205416612ca45760248382606754166040519283809263aa79979b60e01b82528760048301525afa908115611624578691612c87575b50612c7a578491602484926074541691604051948593849263134cbf4f60e11b845260048401525af19182156124c8578492612c5d575b5050612c53575090565b612b6c915061426d565b612c739250803d10610588576105798183612948565b3880612c49565b505050612b6c915061426d565b612c9e9150843d8611610588576105798183612948565b38612c12565b5050505050600190565b15612cb557565b60405162461bcd60e51b815260206004820152600d60248201527f78546f6b656e3a202141757468000000000000000000000000000000000000006044820152606490fd5b818102929181159184041417156129c357565b8115612d17570490565b634e487b7160e01b600052601260045260246000fd5b919082039182116129c357565b15612d4157565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608490fd5b15612db357565b60405162461bcd60e51b815260206004820152603d60248201527f78546f6b656e3a204f6e6c79207468652077686974656c697374696e67206f7060448201527f657261746f722063616e2063616c6c20746869732066756e6374696f6e0000006064820152608490fd5b9081602091031261098957516001600160a01b03811681036109895790565b91908110156128115760051b0190565b356001600160a01b03811681036109895790565b600091338352602060738152604080852054801515908161327f575b501561323c5733855260738252612e96848287206127f5565b50948554938415158061322f575b156131eb576001968781015491838255612ec0607054846129b6565b42106131b05761301f57600201544210612f735750606554825163a9059cbb60e01b815233600482015260248101869052919084908390821c6001600160a01b0316818481604481015b03925af1908115612f685750907f902061c3e3f4d419563154f2c22ef4847f185919d82ff921a64559c1dc83bb76939291612f4b575b50519283523392a390565b612f6190833d8511610588576105798183612948565b5038612f40565b8351903d90823e3d90fd5b606e54906064612f838388612cfa565b0491606403606481116105fe57612fcc84936064612fc5612fbc8a96612fb6612faf612f0a988f612cfa565b9142612d2d565b90612cfa565b60725490612d0d565b04906129b6565b6001600160a01b03612fe68160695416611290848c612d2d565b606554841c1690865195868094819363a9059cbb60e01b83523360048401602090939291936001600160a01b0360408201951681520152565b506071544261302e82846129b6565b116130db57505080836001600160a01b0360665416606485518094819363ec32e6df60e01b83528a6004840152630784ce0060248401523360448401525af180156130d1576130a7575b5050907f902061c3e3f4d419563154f2c22ef4847f185919d82ff921a64559c1dc83bb7691519283523392a390565b8390813d83116130ca575b6130bc8183612948565b8101031261037d5780613078565b503d6130b2565b83513d84823e3d90fd5b606f549160646130eb8489612cfa565b04926064036064811161319c57926064612fc5889461311561311a95612fb6612faf8b9a8f612cfa565b612d0d565b60646001600160a01b036131368160695416611290858c612d2d565b60665416918651948593849263ec32e6df60e01b84526004840152630784ce0060248401523360448401525af180156130d1576130a7575050907f902061c3e3f4d419563154f2c22ef4847f185919d82ff921a64559c1dc83bb7691519283523392a390565b634e487b7160e01b85526011600452602485fd5b50505050907fcda231b62bdbcfdebaec108470aea3eb3fcc5ebe00d79b6e252850d4bf5c60b5916131e18433613f48565b519283523392a390565b825162461bcd60e51b815260048101859052601760248201527f78546f6b656e3a2056657374206e6f74206163746976650000000000000000006044820152606490fd5b5085600388015414612ea4565b60649250519062461bcd60e51b82526004820152601b60248201527f78546f6b656e3a205665737420646f6573206e6f7420657869737400000000006044820152fd5b6000198101915081116132955784111538612e7d565b634e487b7160e01b86526011600452602486fd5b67ffffffffffffffff81116129165760051b60200190565b8051156128115760200190565b8051600110156128115760400190565b9080601f83011215610989578151906020916132f9816132a9565b936133076040519586612948565b81855260208086019260051b82010192831161098957602001905b828210613330575050505090565b81516001600160a01b0381168103610989578152908301908301613322565b60745460b01c60ff16156133e657606b546065546040516328bd9fc160e11b81526001600160a01b03602092831c81166004830152602482019490945292909183916044918391165afa9081156133da576000916133ab575090565b90506020813d6020116133d2575b816133c660209383612948565b81010312610989575190565b3d91506133b9565b6040513d6000823e3d90fd5b604080519067ffffffffffffffff60608301818111848210176129165782526002835260209081840192803685376065549463ffffffff90818716908161342c826132c1565b526000968761343a836132ce565b526001600160a01b039586606b5416898751809263883bdbfd60e01b82526004958c60249889850190828a8701525180915260448501929186905b828210613d05575050505082809103915afa918215613cfb578a92613c25575b50506134aa6134a3826132ce565b51916132c1565b5160060b9060060b03667fffffffffffff1993667fffffffffffff8213858312176137275760030b9060060b8115613c1357600019948114828614166137275781810560020b918a82129182613c04575b5050613bf2575b60020b88811215613bec57600160ff1b8114613bda578089035b620d89e88111613bb457879695949392918a916001811615613b985770ffffffffffffffffffffffffffffffffff6ffffcb933bd6fad37aa2d162d1a5940015b169760028216613b5a575b848216613b1c575b60088216613ade575b60108216613aa0575b8b8216613a62575b8116613a25575b6080908181166139e8575b61010081166139ab575b610200811661396e575b6104008116613931575b61080081166138f4575b61100081166138b7575b612000811661387a575b614000811661383d575b6180008116613800575b6201000081166137c3575b620200008116613787575b620400008116613739575b62080000166136ee575b50136136c0575b5050509061363c918116156000146136b75760ff865b1690851c6129b6565b166fffffffffffffffffffffffffffffffff8111613687578061365e91612cfa565b9381606c5416921c1610905060001461367e579061367b91614507565b90565b61367b9161448b565b806136919161432e565b9381606c5416921c161090506000146136ae579061367b91614446565b61367b916143bd565b60ff6001613633565b909192945083156136dd5750509161363c9184930491388061361d565b634e487b7160e01b88526012905286fd5b915096506b048a170391f7dc42444e8fa29591929394959182810292818404149015171561372757879695949392918a911c9538613616565b634e487b7160e01b8a5260118352838afd5b9850915091929394956d2216e584f5fa1ea926041bedfe989081810291818304149015171561377557889790821c96959493928b92909161360c565b634e487b7160e01b8b5260118452848bfd5b9850915091929394956e5d6af8dedb81196699c329225ee60490818102918183041490151715613775579181899897969594938c931c97613601565b9850915091929394956f09aa508b5b7a84e1c677de54f3e99bc990818102918183041490151715613775579181899897969594938c931c976135f6565b9850915091929394956f31be135f97d08fd981231505542fcfa690818102918183041490151715613775579181899897969594938c931c976135eb565b9850915091929394956f70d869a156d2a1b890bb3df62baf32f790818102918183041490151715613775579181899897969594938c931c976135e1565b9850915091929394956fa9f746462d870fdf8a65dc1f90e061e590818102918183041490151715613775579181899897969594938c931c976135d7565b9850915091929394956fd097f3bdfd2022b8845ad8f792aa582590818102918183041490151715613775579181899897969594938c931c976135cd565b9850915091929394956fe7159475a2c29b7443b29c7fa6e889d990818102918183041490151715613775579181899897969594938c931c976135c3565b9850915091929394956ff3392b0822b70005940c7a398e4b70f390818102918183041490151715613775579181899897969594938c931c976135b9565b9850915091929394956ff987a7253ac413176f2b074cf7815e5490818102918183041490151715613775579181899897969594938c931c976135af565b9850915091929394956ffcbe86c7900a88aedcffc83b479aa3a490818102918183041490151715613775579181899897969594938c931c976135a5565b9850915091929394956ffe5dee046a99a2a811c461f1969c305390818102918183041490151715613775579181899897969594938c931c9761359b565b9750919293949590506fff2ea16466c96a3843ec78b326b528619081810291818304149015171561372757879695949392918a9160801c96613590565b9850915091929394956fff973b41fa98c081472e6896dfb254c09081810291818304149015171561377557918a918998979695949360801c97613589565b9850915091929394956fffcb9843d60f6159c9db58835c9266449081810291818304149015171561377557918a918998979695949360801c97613581565b9850915091929394956fffe5caca7e10e4e61c3624eaa0941cd09081810291818304149015171561377557918a918998979695949360801c97613578565b9850915091929394956ffff2e50f5f656932ef12357cf3c7fdcc9081810291818304149015171561377557918a918998979695949360801c9761356f565b9850915091929394956ffff97272373d413259a46990580e213a9081810291818304149015171561377557918a918998979695949360801c97613567565b70ffffffffffffffffffffffffffffffffff600160801b61355c565b865162461bcd60e51b81528084018a9052600181860152601560fa1b6044820152606490fd5b50634e487b7160e01b88526011905286fd5b8061351c565b627fffff198114613bda578301613502565b0760060b1515905038806134fb565b634e487b7160e01b8a5260128352838afd5b9091503d808b843e613c378184612948565b820190606083830312613cf7578251818111613cce5783019282601f85011215613cce57835193613c67856132a9565b94613c748b519687612948565b8086528c8087019160051b83010191858311613cf3578d01905b828210613cd6575050508a810151828111613cd25783613caf9183016132de565b5088810151918211613cce57613cc69291016132de565b503880613495565b8b80fd5b8c80fd5b81518060060b8103613cef578152908d01908d01613c8e565b8f80fd5b8e80fd5b8a80fd5b87513d8c823e3d90fd5b919496509282955081908d600194511681520194019101908e94928694928f613475565b6001600160a01b03168015613df757613d4a60ff60745460a81c16156129d9565b80600052603360205260406000205491808310613da7576020817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92600095858752603384520360408620558060355403603555604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608490fd5b6001600160a01b03809116918215613ef75716918215613ea75760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260348252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b6001600160a01b03169081158061401257613f6b60ff60745460a81c16156129d9565b15613fc0575b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602082613fa36000946035546129b6565b6035558484526033825260408420818154019055604051908152a3565b613fc8612ab9565b613f71575b60405162461bcd60e51b815260206004820152600b60248201527f78546f6b656e3a2021574c0000000000000000000000000000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b916001600160a01b038084169283156141ba5716928315806141695761408560ff60745460a81c16156129d9565b15614155575b50600082815260336020526040812054918083106140ea57604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95876020965260338652038282205586815220818154019055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608490fd5b61415e90612bbd565b15613fcd573861408b565b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608490fd5b60008052606d6020526040600020600160ff1982541617905560007fcb3169c4c60f8a90f7ce39caf59c74a3bbe0b04a7684a8810f86ef8a1b8abef3602060405160018152a2565b6001600160a01b031680600052606d6020526040600020600160ff198254161790557fcb3169c4c60f8a90f7ce39caf59c74a3bbe0b04a7684a8810f86ef8a1b8abef3602060405160018152a2565b156142c357565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608490fd5b60001982820990828102928380841093039280840393146143b45768010000000000000000918383111561436f570990828211900360c01b910360401c1790565b60405162461bcd60e51b815260206004820152601560248201527f4d6174683a206d756c446976206f766572666c6f7700000000000000000000006044820152606490fd5b50505060401c90565b600160801b91600019828409928260801b92838086109503948086039514614439578483111561436f578291096001821901821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b50509061367b9250612d0d565b600019828209908281029283808410930392808403931461448257600160801b918383111561436f570990828211900360801b910360801c1790565b50505060801c90565b600160c01b91600019828409928260c01b92838086109503948086039514614439578483111561436f578291096001821901821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b600019828209908281029283808410930392808403931461454357600160c01b918383111561436f570990828211900360401b910360c01c1790565b50505060c01c9056fea164736f6c6343000816000a