0 txs
49 calls
constructor
constructor()
functions
A_precise
viewfunction A_precise() view returns (uint256)
A
viewfunction A() view returns (uint256)
admin_balances
viewfunction admin_balances(uint256 arg0) view returns (uint256)
admin_fee
viewfunction admin_fee() view returns (uint256)
allowance
viewfunction allowance(address arg0, address arg1) view returns (uint256)
balanceOf
viewfunction balanceOf(address arg0) view returns (uint256)
balances
viewfunction balances(uint256 i) view returns (uint256)
calc_token_amount
viewfunction calc_token_amount(uint256[2] _amounts, bool _is_deposit) view returns (uint256)
calc_withdraw_one_coin
viewfunction calc_withdraw_one_coin(uint256 _burn_amount, int128 i) view returns (uint256)
coins
viewfunction coins(uint256 arg0) view returns (address)
decimals
viewfunction decimals() view returns (uint256)
DOMAIN_SEPARATOR
viewfunction DOMAIN_SEPARATOR() view returns (bytes32)
fee
viewfunction fee() view returns (uint256)
future_A_time
viewfunction future_A_time() view returns (uint256)
future_A
viewfunction future_A() view returns (uint256)
get_balances
viewfunction get_balances() view returns (uint256[2])
get_dy_underlying
viewfunction get_dy_underlying(int128 i, int128 j, uint256 dx) view returns (uint256)
get_dy
viewfunction get_dy(int128 i, int128 j, uint256 dx) view returns (uint256)
get_virtual_price
viewfunction get_virtual_price() view returns (uint256)
initial_A_time
viewfunction initial_A_time() view returns (uint256)
initial_A
viewfunction initial_A() view returns (uint256)
name
viewfunction name() view returns (string)
nonces
viewfunction nonces(address arg0) view returns (uint256)
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
version
viewfunction version() view returns (string)
add_liquidity
nonpayablefunction add_liquidity(uint256[2] _amounts, uint256 _min_mint_amount, address _receiver) returns (uint256)
add_liquidity
nonpayablefunction add_liquidity(uint256[2] _amounts, uint256 _min_mint_amount) returns (uint256)
approve
nonpayablefunction approve(address _spender, uint256 _value) returns (bool)
exchange_underlying
nonpayablefunction exchange_underlying(int128 i, int128 j, uint256 _dx, uint256 _min_dy, address _receiver) returns (uint256)
exchange_underlying
nonpayablefunction exchange_underlying(int128 i, int128 j, uint256 _dx, uint256 _min_dy) returns (uint256)
exchange
nonpayablefunction exchange(int128 i, int128 j, uint256 _dx, uint256 _min_dy, address _receiver) returns (uint256)
exchange
nonpayablefunction exchange(int128 i, int128 j, uint256 _dx, uint256 _min_dy) returns (uint256)
initialize
nonpayablefunction initialize(string _name, string _symbol, address _coin, uint256 _rate_multiplier, uint256 _A, uint256 _fee)
permit
nonpayablefunction permit(address _owner, address _spender, uint256 _value, uint256 _deadline, uint8 _v, bytes32 _r, bytes32 _s) returns (bool)
ramp_A
nonpayablefunction ramp_A(uint256 _future_A, uint256 _future_time)
remove_liquidity_imbalance
nonpayablefunction remove_liquidity_imbalance(uint256[2] _amounts, uint256 _max_burn_amount, address _receiver) returns (uint256)
remove_liquidity_imbalance
nonpayablefunction remove_liquidity_imbalance(uint256[2] _amounts, uint256 _max_burn_amount) returns (uint256)
remove_liquidity_one_coin
nonpayablefunction remove_liquidity_one_coin(uint256 _burn_amount, int128 i, uint256 _min_received, address _receiver) returns (uint256)
remove_liquidity_one_coin
nonpayablefunction remove_liquidity_one_coin(uint256 _burn_amount, int128 i, uint256 _min_received) returns (uint256)
remove_liquidity
nonpayablefunction remove_liquidity(uint256 _burn_amount, uint256[2] _min_amounts, address _receiver) returns (uint256[2])
remove_liquidity
nonpayablefunction remove_liquidity(uint256 _burn_amount, uint256[2] _min_amounts) returns (uint256[2])
stop_ramp_A
nonpayablefunction stop_ramp_A()
transfer
nonpayablefunction transfer(address _to, uint256 _value) returns (bool)
transferFrom
nonpayablefunction transferFrom(address _from, address _to, uint256 _value) returns (bool)
withdraw_admin_fees
nonpayablefunction withdraw_admin_fees()
events
AddLiquidity
event AddLiquidity(address indexed provider, uint256[2] token_amounts, uint256[2] fees, uint256 invariant, uint256 token_supply)
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
RampA
event RampA(uint256 old_A, uint256 new_A, uint256 initial_time, uint256 future_time)
RemoveLiquidity
event RemoveLiquidity(address indexed provider, uint256[2] token_amounts, uint256[2] fees, uint256 token_supply)
RemoveLiquidityImbalance
event RemoveLiquidityImbalance(address indexed provider, uint256[2] token_amounts, uint256[2] fees, uint256 invariant, uint256 token_supply)
RemoveLiquidityOne
event RemoveLiquidityOne(address indexed provider, uint256 token_amount, uint256 coin_amount, uint256 token_supply)
StopRampA
event StopRampA(uint256 A, uint256 t)
TokenExchange
event TokenExchange(address indexed buyer, int128 sold_id, uint256 tokens_sold, int128 bought_id, uint256 tokens_bought)
TokenExchangeUnderlying
event TokenExchangeUnderlying(address indexed buyer, int128 sold_id, uint256 tokens_sold, int128 bought_id, uint256 tokens_bought)
Transfer
event Transfer(address indexed sender, address indexed receiver, uint256 value)
errors
No errors.
creation bytecode
0x617a69600655614cc556600436101561000d57613cda565b60046000601c3760005134614cb6576398094be081186103fd576004356004016020813511614cb657808035602001808260e037505050602435600401600a813511614cb6578080356020018082610120375050506044358060a01c614cb65761016052600654614cb6576084356064808202821582848304141715614cb657905090506101805261016051600255731337bedc9d22ecbe766df105c9623922a27963ec600355606435600b55610180516007556101805160085560a435600655336001556000601f610200527f43757276652e666920466163746f727920555344204d657461706f6f6c3a200061022052610200601f806020846102400101826020850160045afa50508051820191505060e06020806020846102400101826020850160045afa505080518201915050806102405261024090508051602001806101a0828460045afa905050506101a080600c602082510160c060006003818352015b8260c0516020021115610183576101a2565b60c05160200285015160c0518501558151600101808352811415610171575b5050505050506000610120600a806020846102400101826020850160045afa5050805182019150506006610200527f334352562d660000000000000000000000000000000000000000000000000000610220526102006006806020846102400101826020850160045afa5050805182019150508061024052610240905080600f602082510160c060006002818352015b8260c051602002111561024457610263565b60c05160200285015160c0518501558151600101808352811415610232575b50505050505073da10009cbd5d07dd0cecc66161fc93d7c9000da161024052737f5c764cbc14f9669b88837ca1490cca17c31607610260527394b008aa00579c1307b0ef2c499ad98a8ce58e586102805261022060006003818352015b6020610220510261024001516102005263095ea7b36102a052731337bedc9d22ecbe766df105c9623922a27963ec6102c0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6102e052610200513b15614cb6576000600060446102bc6000610200515af1610341573d600060003e3d6000fd5b81516001018083528114156102c05750507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6102e0526101a0805160208201209050610300527f572f01d824885a118d5d21c74542f263b131d2897955c62a721594f1d7c3b2e2610320524661034052306103605260a06102c0526102c08051602082012090506014553060007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000610200526020610200a3005b63313ce567811861041357601260e052602060e0f35b63a9059cbb8118610455576004358060a01c614cb657610160523360e052610160516101005260243561012052610448613ce0565b6001610180526020610180f35b6323b872dd8118610529576004358060a01c614cb657610160526024358060a01c614cb657610180526101605160e05261018051610100526044356101205261049c613ce0565b60126101605160a05260805260406080203360a0526080526040608020546101a0527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101a0511461051c576101a051604435808210614cb6578082039050905060126101605160a05260805260406080203360a0526080526040608020555b60016101c05260206101c0f35b63095ea7b381186105a1576004358060a01c614cb65760e05260243560123360a052608052604060802060e05160a05260805260406080205560e051337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602435610100526020610100a36001610100526020610100f35b63d505accf811861090e576004358060a01c614cb65760e0526024358060a01c614cb657610100526084358060081c614cb65761012052600060e05114614cb6576064354211614cb657601560e05160a0526080526040608020546101405260006002610400527f1901000000000000000000000000000000000000000000000000000000000000610420526104006002806020846106000101826020850160045afa5050805182019150506014546020826106000101526020810190507f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c96105405260e0516105605261010051610580526044356105a052610140516105c0526064356105e05260c0610520526105208051602082012090506020826106000101526020810190508061060052610600905080516020820120905061016052600060e0513b116107225760e0516101605161018052610120516101a052604060a46101c03760206080608061018060015afa5060805118614cb657610882565b600060a4356102205260c435610240526040610200526102006040806020846102c00101826020850160045afa505080518201915050601f60016020820661026001602082840111614cb6576020806102808261012060045afa5050818152905090506001806020846102c00101826020850160045afa505080518201915050806102c0526102c09050805160200180610180828460045afa905050507f1626ba7e00000000000000000000000000000000000000000000000000000000631626ba7e610200526102208060406101605182526020820191508082528083018061018080516020018083828460045afa905050508051806020830101818260206001820306601f8201039050033682375050805160200160206001820306601f820103905090509050810150505050602061020060c461021c60e0515afa61086f573d600060003e3d6000fd5b601f3d1115614cb6576102005118614cb6575b604435601260e05160a05260805260406080206101005160a0526080526040608020556101405160018181830110614cb65780820190509050601560e05160a0526080526040608020556101005160e0517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925604435610180526020610180a36001610180526020610180f35b634903b0d1811861094357610924610180613d69565b6101806004356002811015614cb65760200201516101c05260206101c0f35b6314f05979811861097357610959610180613d69565b61018080516101c05280602001516101e0525060406101c0f35b63fee3f7f9811861098d5764012a05f20060e052602060e0f35b63f446c1d081186109bb576109a3610160613e1d565b61016051606480820490509050610180526020610180f35b6376a2f0f081186109e0576109d1610160613e1d565b61016051610180526020610180f35b63bb7b8b808118610b10576109f6610260613e1d565b6102605161024052610a096102a0613d69565b6102a080516102605280602001516102805250600b546102a05263bb7b8b806102e05260206102e060046102fc731337bedc9d22ecbe766df105c9623922a27963ec5afa610a5c573d600060003e3d6000fd5b601f3d1115614cb6576102e0516102c0526102a05160e0526102c0516101005261026051610120526102805161014052610a97610320613f58565b61032080516102e052806020015161030052506102e05160e05261030051610100526102405161012052610acc610340613ff0565b610340516103205261032051670de0b6b3a7640000808202821582848304141715614cb65790509050601354808015614cb657820490509050610340526020610340f35b63ed8e84f38118610d33576044358060011c614cb65761036052610b356103a0613e1d565b6103a05161038052610b486103e0613d69565b6103e080516103a05280602001516103c05250600b546103e05263bb7b8b80610420526020610420600461043c731337bedc9d22ecbe766df105c9623922a27963ec5afa610b9b573d600060003e3d6000fd5b601f3d1115614cb65761042051610400526103e0516102405261040051610260526103a051610280526103c0516102a052610380516102c052610bdf61044061425d565b610440516104205261044060006002818352015b60206104405102600401356104605261036051610c3a576103a0610440516002811015614cb65760200201805161046051808210614cb65780820390509050815250610c68565b6103a0610440516002811015614cb657602002018051610460518181830110614cb657808201905090508152505b8151600101808352811415610bf35750506103e0516102405261040051610260526103a051610280526103c0516102a052610380516102c052610cac61046061425d565b610460516104405260006104605261036051610ce1576104205161044051808210614cb6578082039050905061046052610cfc565b6104405161042051808210614cb65780820390509050610460525b61046051601354808202821582848304141715614cb6579050905061042051808015614cb657820490509050610480526020610480f35b630b4c7e4d8118610d48573361036052610d63565b630c3e4b54811861139d576064358060a01c614cb657610360525b600054614cb6576001600055610d7a6103a0613e1d565b6103a05161038052610d8d6103e0613d69565b6103e080516103a05280602001516103c05250600b546103e05263bb7b8b80610420526020610420600461043c731337bedc9d22ecbe766df105c9623922a27963ec5afa610de0573d600060003e3d6000fd5b601f3d1115614cb65761042051610400526103e0516102405261040051610260526103a051610280526103c0516102a052610380516102c052610e2461044061425d565b61044051610420526103a051610440526103c05161046052601354610480526104a060006002818352015b60206104a05102600401356104c0526104c05115610fd75760016104a0516002811015614cb65702600201546104e0526370a082316105205230610540526020610520602461053c6104e0515afa610eac573d600060003e3d6000fd5b601f3d1115614cb65761052051610500526323b872dd6105645260043361058452306105a4526104c0516105c452606001610560526105605060206106206105605161058060006104e0515af1610f08573d600060003e3d6000fd5b61060060203d808211610f1b5781610f1d565b805b905090508152805160200180610520828460045afa905050506000610520511115610f5d57610540516105205181816020036008021c9050905015614cb6575b6104406104a0516002811015614cb6576020020180516370a082316105605230610580526020610560602461057c6104e0515afa610fa0573d600060003e3d6000fd5b601f3d1115614cb6576105605161050051808210614cb657808203905090508181830110614cb65780820190509050815250610fe4565b6000610480511115614cb6575b8151600101808352811415610e4f5750506103e0516102405261040051610260526104405161028052610460516102a052610380516102c0526110286104c061425d565b6104c0516104a052610420516104a0511115614cb6576060366104c0376000610480511161105d576104a051610500526112a5565b6006546002808202821582848304141715614cb657905090506004808204905090506105205261054060006002818352015b6104a0516103a0610540516002811015614cb6576020020151808202821582848304141715614cb6579050905061042051808015614cb65782049050905061056052600061058052610440610540516002811015614cb65760200201516105a0526105a051610560511161111c576105a05161056051808210614cb6578082039050905061058052611137565b610560516105a051808210614cb65780820390509050610580525b6105205161058051808202821582848304141715614cb657905090506402540be400808204905090506104c0610540516002811015614cb65760200201526001610540516002811015614cb6570260040180546104c0610540516002811015614cb657602002015164012a05f200808202821582848304141715614cb657905090506402540be400808204905090508181830110614cb65780820190509050815550610440610540516002811015614cb6576020020180516104c0610540516002811015614cb6576020020151808210614cb65780820390509050815250815160010180835281141561108f5750506103e0516102405261040051610260526104405161028052610460516102a052610380516102c05261125961056061425d565b6105605161054052610480516105405161042051808210614cb65780820390509050808202821582848304141715614cb6579050905061042051808015614cb657820490509050610500525b6044356105005110614cb6576104808051610500518181830110614cb6578082019050905081525060116103605160a05260805260406080208054610500518181830110614cb65780820190509050815550610480516013556103605160007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61050051610520526020610520a3337f26f55a85081d24974e85c6c00045d0f0453991e95873f52bff0d21af4079a76860043561052052602435610540526104c051610560526104e051610580526104a0516105a052610480516105c05260c0610520a2610500516105205260206105206000600055f35b635e0d443f81186115f3576004358060801d81607f1d18614cb657610420526024358060801d81607f1d18614cb65761044052600b546104605263bb7b8b806104a05260206104a060046104bc731337bedc9d22ecbe766df105c9623922a27963ec5afa611410573d600060003e3d6000fd5b601f3d1115614cb6576104a051610480526104605161056052610480516105805261143c6104e0613d69565b6104e080516105a05280602001516105c052506105605160e05261058051610100526105a051610120526105c05161014052611479610520613f58565b61052080516104a05280602001516104c052506104a0610420516002811015614cb6576020020151604435610460610420516002811015614cb6576020020151808202821582848304141715614cb65790509050670de0b6b3a7640000808204905090508181830110614cb657808201905090506104e052610420516102405261044051610260526104e051610280526104a0516102a0526104c0516102c0526115246105206142c5565b61052051610500526104a0610440516002811015614cb657602002015161050051808210614cb657808203905090506001808210614cb657808203905090506105205260065461052051808202821582848304141715614cb657905090506402540be40080820490509050610540526105205161054051808210614cb65780820390509050670de0b6b3a7640000808202821582848304141715614cb65790509050610460610440516002811015614cb6576020020151808015614cb657820490509050610560526020610560f35b6307211ef78118611af4576004358060801d81607f1d18614cb657610420526024358060801d81607f1d18614cb65761044052600b546104605263bb7b8b806104a05260206104a060046104bc731337bedc9d22ecbe766df105c9623922a27963ec5afa611666573d600060003e3d6000fd5b601f3d1115614cb6576104a05161048052610460516105605261048051610580526116926104e0613d69565b6104e080516105a05280602001516105c052506105605160e05261058051610100526105a051610120526105c051610140526116cf610520613f58565b61052080516104a05280602001516104c0525060a0366104e03760006104205114611719576104205160018082038060801d81607f1d18614cb65790509050610500526001610540525b60006104405114611749576104405160018082038060801d81607f1d18614cb65790509050610520526001610560525b610420511561191b5761044051156117ca57635e0d443f61058052610500516105a052610520516105c0526044356105e0526020610580606461059c731337bedc9d22ecbe766df105c9623922a27963ec5afa6117ab573d600060003e3d6000fd5b601f3d1115614cb65761058051610600526020610600611af256611970565b60603661058037604435610580610500516003811015614cb6576020020152633883e1196105e05261058051610600526105a051610620526105c0516106405260016106605260206105e060846105fc731337bedc9d22ecbe766df105c9623922a27963ec5afa611840573d600060003e3d6000fd5b601f3d1115614cb6576105e05161048051808202821582848304141715614cb65790509050670de0b6b3a7640000808204905090506104e0526104e080516104e05163ddca3f436105e05260206105e060046105fc731337bedc9d22ecbe766df105c9623922a27963ec5afa6118bb573d600060003e3d6000fd5b601f3d1115614cb6576105e051808202821582848304141715614cb657905090506404a817c80080820490509050808210614cb657808203905090508152506104e080516104c0518181830110614cb65780820190509050815250611970565b6104a0610420516002811015614cb657602002015160443561046051670de0b6b3a764000080820490509050808202821582848304141715614cb657905090508181830110614cb657808201905090506104e0525b610540516102405261056051610260526104e051610280526104a0516102a0526104c0516102c0526119a36105a06142c5565b6105a051610580526104a0610560516002811015614cb657602002015161058051808210614cb657808203905090506001808210614cb657808203905090506105a0526105a0516006546105a051808202821582848304141715614cb657905090506402540be40080820490509050808210614cb657808203905090506105a0526104405115611aba5763cc2b27d76105c0526105a051670de0b6b3a7640000808202821582848304141715614cb6579050905061048051808015614cb6578204905090506105e052610520516106005260206105c060446105dc731337bedc9d22ecbe766df105c9623922a27963ec5afa611aa4573d600060003e3d6000fd5b601f3d1115614cb6576105c0516105a052611ae4565b6105a0805161046051670de0b6b3a764000080820490509050808015614cb6578204905090508152505b6105a0516105c05260206105c05bf35b633df021248118611b09573361046052611b24565b63ddc1f59d811861204a576084358060a01c614cb657610460525b6004358060801d81607f1d18614cb657610420526024358060801d81607f1d18614cb65761044052600054614cb6576001600055611b636104c0613d69565b6104c080516104805280602001516104a05250600b546104c05263bb7b8b80610500526020610500600461051c731337bedc9d22ecbe766df105c9623922a27963ec5afa611bb6573d600060003e3d6000fd5b601f3d1115614cb657610500516104e0526104c05160e0526104e0516101005261048051610120526104a05161014052611bf1610540613f58565b610540805161050052806020015161052052506001610420516002811015614cb6570260020154610540526370a0823161058052306105a0526020610580602461059c610540515afa611c49573d600060003e3d6000fd5b601f3d1115614cb65761058051610560526323b872dd6105c4526004336105e4523061060452604435610624526060016105c0526105c05060206106806105c0516105e06000610540515af1611ca4573d600060003e3d6000fd5b61066060203d808211611cb75781611cb9565b805b905090508152805160200180610580828460045afa905050506000610580511115611cf9576105a0516105805181816020036008021c9050905015614cb6575b6370a082316105c052306105e05260206105c060246105dc610540515afa611d26573d600060003e3d6000fd5b601f3d1115614cb6576105c05161056051808210614cb6578082039050905061056052610500610420516002811015614cb6576020020151610560516104c0610420516002811015614cb6576020020151808202821582848304141715614cb65790509050670de0b6b3a7640000808204905090508181830110614cb657808201905090506105c052610500610440516002811015614cb6576020020151610420516102405261044051610260526105c05161028052610500516102a052610520516102c052611df76106006142c5565b61060051808210614cb657808203905090506001808210614cb657808203905090506105e0526105e051600654808202821582848304141715614cb657905090506402540be40080820490509050610600526105e05161060051808210614cb65780820390509050670de0b6b3a7640000808202821582848304141715614cb657905090506104c0610440516002811015614cb6576020020151808015614cb6578204905090506105e0526064356105e05110614cb6576001610440516002811015614cb6570260040180546106005164012a05f200808202821582848304141715614cb657905090506402540be40080820490509050670de0b6b3a7640000808202821582848304141715614cb657905090506104c0610440516002811015614cb6576020020151808015614cb6578204905090508181830110614cb6578082019050905081555063a9059cbb61062452600461046051610644526105e05161066452604001610620526106205060206106c06106205161064060006001610440516002811015614cb65702600201545af1611f99573d600060003e3d6000fd5b6106a060203d808211611fac5781611fae565b805b905090508152805160200180610580828460045afa905050506000610580511115611fee576105a0516105805181816020036008021c9050905015614cb6575b337f8b3e96f2b889fa771c53c981b40daf005f63f637f1869f707052d15a3dd971406104205161062052610560516106405261044051610660526105e051610680526080610620a26105e0516106205260206106206000600055f35b63a6417ed6811861205f57336104605261207a565b6344ee19868118612a33576084358060a01c614cb657610460525b6004358060801d81607f1d18614cb657610420526024358060801d81607f1d18614cb65761044052600054614cb65760016000556120b96104c0613d69565b6104c080516104805280602001516104a05250600b546104c05263bb7b8b80610500526020610500600461051c731337bedc9d22ecbe766df105c9623922a27963ec5afa61210c573d600060003e3d6000fd5b601f3d1115614cb657610500516104e0526104c05160e0526104e0516101005261048051610120526104a05161014052612147610540613f58565b6105408051610500528060200151610520525073da10009cbd5d07dd0cecc66161fc93d7c9000da161054052737f5c764cbc14f9669b88837ca1490cca17c31607610560527394b008aa00579c1307b0ef2c499ad98a8ce58e5861058052610100366105a03761042051156121f8576104205160018082038060801d81607f1d18614cb657905090506105c0526001610600526105406105c0516003811015614cb657602002015161066052612200565b600254610660525b610440511561224b576104405160018082038060801d81607f1d18614cb657905090506105e0526001610620526105406105e0516003811015614cb657602002015161068052612253565b600254610680525b6370a082316106c052306106e05260206106c060246106dc610660515afa612280573d600060003e3d6000fd5b601f3d1115614cb6576106c0516106a0526323b872dd6107045260043361072452306107445260443561076452606001610700526107005060206107c0610700516107206000610660515af16122db573d600060003e3d6000fd5b6107a060203d8082116122ee57816122f0565b805b9050905081528051602001806106c0828460045afa9050505060006106c0511115612330576106e0516106c05181816020036008021c9050905015614cb6575b6370a082316107005230610720526020610700602461071c610660515afa61235d573d600060003e3d6000fd5b601f3d1115614cb657610700516106a051808210614cb657808203905090506106a0526104205115612393576104405115612396565b60015b6124a1576370a082316107005230610720526020610700602461071c610680515afa6123c7573d600060003e3d6000fd5b601f3d1115614cb657610700516105a052633df02124610700526105c051610720526105e051610740526106a0516107605260643561078052731337bedc9d22ecbe766df105c9623922a27963ec3b15614cb65760006000608461071c6000731337bedc9d22ecbe766df105c9623922a27963ec5af161244c573d600060003e3d6000fd5b6370a082316107005230610720526020610700602461071c610680515afa612479573d600060003e3d6000fd5b601f3d1115614cb657610700516105a051808210614cb657808203905090506105a05261293a565b610420511561262357606036610700376106a0516107006105c0516003811015614cb6576020020152600354610760526370a0823161078052306107a0526020610780602461079c610760515afa6124fe573d600060003e3d6000fd5b601f3d1115614cb6576107805161064052634515cef361078052610700516107a052610720516107c052610740516107e052600061080052731337bedc9d22ecbe766df105c9623922a27963ec3b15614cb65760006000608461079c6000731337bedc9d22ecbe766df105c9623922a27963ec5af1612582573d600060003e3d6000fd5b6370a0823161078052306107a0526020610780602461079c610760515afa6125af573d600060003e3d6000fd5b601f3d1115614cb6576107805161064051808210614cb657808203905090506106a0526106a0516104e051808202821582848304141715614cb65790509050670de0b6b3a764000080820490509050610640526106408051610520518181830110614cb6578082019050905081525061268a565b610500610420516002811015614cb65760200201516106a0516104c0610420516002811015614cb6576020020151808202821582848304141715614cb65790509050670de0b6b3a7640000808204905090508181830110614cb65780820190509050610640525b610600516102405261062051610260526106405161028052610500516102a052610520516102c0526126bd6107206142c5565b6107205161070052610500610620516002811015614cb657602002015161070051808210614cb657808203905090506001808210614cb657808203905090506105a0526105a051600654808202821582848304141715614cb657905090506402540be40080820490509050610720526105a05161072051808210614cb65780820390509050670de0b6b3a7640000808202821582848304141715614cb657905090506104c0610620516002811015614cb6576020020151808015614cb6578204905090506105a0526107205164012a05f200808202821582848304141715614cb657905090506402540be400808204905090506107405261074051670de0b6b3a7640000808202821582848304141715614cb657905090506104c0610620516002811015614cb6576020020151808015614cb657820490509050610740526001610620516002811015614cb657026004018054610740518181830110614cb65780820190509050815550600061044051131561292d576370a0823161078052306107a0526020610780602461079c610680515afa612860573d600060003e3d6000fd5b601f3d1115614cb6576107805161076052631a4d01d2610780526105a0516107a0526105e0516107c05260006107e052731337bedc9d22ecbe766df105c9623922a27963ec3b15614cb65760006000606461079c6000731337bedc9d22ecbe766df105c9623922a27963ec5af16128dc573d600060003e3d6000fd5b6370a0823161078052306107a0526020610780602461079c610680515afa612909573d600060003e3d6000fd5b601f3d1115614cb6576107805161076051808210614cb657808203905090506105a0525b6064356105a05110614cb6575b63a9059cbb61070452600461046051610724526105a05161074452604001610700526107005060206107a0610700516107206000610680515af1612983573d600060003e3d6000fd5b61078060203d8082116129965781612998565b805b9050905081528051602001806106c0828460045afa9050505060006106c05111156129d8576106e0516106c05181816020036008021c9050905015614cb6575b337fd013ca23e77a65003c2c659c5442c00c805371b7fc1ebd4c206c41d1536bd90b61042051610700526044356107205261044051610740526105a051610760526080610700a26105a0516107005260206107006000600055f35b635b36389c8118612a48573361018052612a63565b633eb1719f8118612cac576064358060a01c614cb657610180525b600054614cb65760016000556013546101a0526040366101c037612a88610240613d69565b6102408051610200528060200151610220525061024060006002818352015b610200610240516002811015614cb6576020020151600435808202821582848304141715614cb657905090506101a051808015614cb6578204905090506102605260206102405102602401356102605110614cb657610260516101c0610240516002811015614cb657602002015263a9059cbb6102c4526004610180516102e45261026051610304526040016102c0526102c05060206103606102c0516102e060006001610240516002811015614cb65702600201545af1612b6e573d600060003e3d6000fd5b61034060203d808211612b815781612b83565b805b905090508152805160200180610280828460045afa905050506000610280511115612bc3576102a0516102805181816020036008021c9050905015614cb6575b8151600101808352811415612aa75750506101a08051600435808210614cb6578082039050905081525060113360a05260805260406080208054600435808210614cb657808203905090508155506101a0516013556000337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600435610240526020610240a3337f7c363854ccf79623411f8995b362bce5eddff18c927edc6f5dbbb5e05819a82c6101c051610240526101e05161026052604036610280376101a0516102c05260a0610240a26101c051610240526101e0516102605260406102406000600055f35b63e31032738118612cc1573361036052612cdc565b6352d2cfdd8118613261576064358060a01c614cb657610360525b600054614cb6576001600055612cf36103a0613e1d565b6103a05161038052612d066103e0613d69565b6103e080516103a05280602001516103c05250600b546103e05263bb7b8b80610420526020610420600461043c731337bedc9d22ecbe766df105c9623922a27963ec5afa612d59573d600060003e3d6000fd5b601f3d1115614cb65761042051610400526103e0516102405261040051610260526103a051610280526103c0516102a052610380516102c052612d9d61044061425d565b61044051610420526103a051610440526103c0516104605261048060006002818352015b60206104805102600401356104a05260006104a05114612eb457610440610480516002811015614cb6576020020180516104a051808210614cb6578082039050905081525063a9059cbb61050452600461036051610524526104a05161054452604001610500526105005060206105a06105005161052060006001610480516002811015614cb65702600201545af1612e5f573d600060003e3d6000fd5b61058060203d808211612e725781612e74565b805b9050905081528051602001806104c0828460045afa9050505060006104c0511115612eb4576104e0516104c05181816020036008021c9050905015614cb6575b8151600101808352811415612dc15750506103e0516102405261040051610260526104405161028052610460516102a052610380516102c052612ef86104a061425d565b6104a051610480526040366104a0376006546002808202821582848304141715614cb657905090506004808204905090506104e05261050060006002818352015b610480516103a0610500516002811015614cb6576020020151808202821582848304141715614cb6579050905061042051808015614cb65782049050905061052052600061054052610440610500516002811015614cb657602002015161056052610560516105205111612fc6576105605161052051808210614cb6578082039050905061054052612fe1565b6105205161056051808210614cb65780820390509050610540525b6104e05161054051808202821582848304141715614cb657905090506402540be400808204905090506104a0610500516002811015614cb65760200201526001610500516002811015614cb6570260040180546104a0610500516002811015614cb657602002015164012a05f200808202821582848304141715614cb657905090506402540be400808204905090508181830110614cb65780820190509050815550610440610500516002811015614cb6576020020180516104a0610500516002811015614cb6576020020151808210614cb657808203905090508152508151600101808352811415612f395750506103e0516102405261040051610260526104405161028052610460516102a052610380516102c05261310361052061425d565b6105205161050052601354610520526104205161050051808210614cb6578082039050905061052051808202821582848304141715614cb6579050905061042051808015614cb65782049050905060018181830110614cb65780820190509050610540526001610540511115614cb6576044356105405111614cb657610520805161054051808210614cb657808203905090508152506105205160135560113360a0526080526040608020805461054051808210614cb657808203905090508155506000337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61054051610560526020610560a3337f2b5508378d7e19e0d5fa338419034731416c4f5b219a10379956f764317fd47e60043561056052602435610580526104a0516105a0526104c0516105c052610480516105e052610520516106005260c0610560a2610540516105605260206105606000600055f35b63cc2b27d781186132a9576024358060801d81607f1d18614cb6576104a052600435610280526104a0516102a05261329a6104c06148a5565b6104c051610500526020610500f35b631a4d01d281186132be57336104c0526132d9565b63081579a581186134fa576064358060a01c614cb6576104c0525b6024358060801d81607f1d18614cb6576104a052600054614cb6576001600055600435610280526104a0516102a0526133136105206148a5565b61052080516104e052806020015161050052506044356104e05110614cb65760016104a0516002811015614cb6570260040180546105005164012a05f200808202821582848304141715614cb657905090506402540be400808204905090508181830110614cb65780820190509050815550601354600435808210614cb65780820390509050610520526105205160135560113360a05260805260406080208054600435808210614cb657808203905090508155506000337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600435610540526020610540a363a9059cbb6105845260046104c0516105a4526104e0516105c45260400161058052610580506020610620610580516105a0600060016104a0516002811015614cb65702600201545af1613452573d600060003e3d6000fd5b61060060203d8082116134655781613467565b805b905090508152805160200180610540828460045afa9050505060006105405111156134a757610560516105405181816020036008021c9050905015614cb6575b337f5ad056f2e28a8cec232015406b843668c1e36cda598127ec3b8c59b8c72773a0600435610580526104e0516105a052610520516105c0526060610580a26104e0516105805260206105806000600055f35b633c157e64811861367e5763f851a440610160526020610160600461017c6001545afa61352c573d600060003e3d6000fd5b601f3d1115614cb657610160513318614cb657600954620151808181830110614cb657808201905090504210614cb65742620151808181830110614cb6578082019050905060243510614cb657613584610180613e1d565b61018051610160526004356064808202821582848304141715614cb65790509050610180526000600435116135ba5760006135c3565b620f4240600435105b15614cb6576101605161018051106135fd5761016051600a808202821582848304141715614cb657905090506101805111614cb657613621565b6101605161018051600a808202821582848304141715614cb6579050905010614cb6575b610160516007556101805160085542600955602435600a557fa2b71ec6df949300b59aab36b55e189697b750119dd349fcfa8c0f779e83c254610160516101a052610180516101c052426101e0526024356102005260806101a0a1005b63551a658881186137225763f851a440610160526020610160600461017c6001545afa6136b0573d600060003e3d6000fd5b601f3d1115614cb657610160513318614cb6576136ce610180613e1d565b610180516101605261016051600755610160516008554260095542600a557f46e22fb3709ad289f62ce63d469248536dbc78d82b84a3d7e74ad606dc2019386101605161018052426101a0526040610180a1005b6330c54085811861394c576137386101c0613d69565b6101c080516101805280602001516101a052506001546101c0526004546101e05260006101e05111156138475760006004556002546102005263a9059cbb6102645260046101c051610284526101e0516102a45260400161026052610260506020610300610260516102806000610200515af16137ba573d600060003e3d6000fd5b6102e060203d8082116137cd57816137cf565b805b905090508152805160200180610220828460045afa90505050600061022051111561380f57610240516102205181816020036008021c9050905015614cb6575b63bcc981d2610260526020610260600461027c60006101c0515af1613839573d600060003e3d6000fd5b601f3d1115614cb657610260505b6005546101e05260006101e051111561394a5760006005556003546102005263154aa8f56102405230610260526020610240602461025c6101c0515afa613893573d600060003e3d6000fd5b601f3d1115614cb657610240518060a01c614cb6576102205263a9059cbb610284526004610220516102a4526101e0516102c45260400161028052610280506020610320610280516102a06000610200515af16138f5573d600060003e3d6000fd5b61030060203d808211613908578161390a565b805b905090508152805160200180610240828460045afa90505050600061024051111561394a57610260516102405181816020036008021c9050905015614cb6575b005b6354fd4d5081186139e657610120806020808252600660e0527f76352e302e3000000000000000000000000000000000000000000000000000006101005260e0818401808280516020018083828460045afa905050508051806020830101818260206001820306601f8201039050033682375050805160200160206001820306601f82010390509050905090508101905090509050610120f35b63c66106578118613a0d5760016004356002811015614cb657026002015460e052602060e0f35b63e2e7d2648118613a345760016004356002811015614cb657026004015460e052602060e0f35b63ddca3f438118613a4b5760065460e052602060e0f35b635409491a8118613a625760075460e052602060e0f35b63b4b577ad8118613a795760085460e052602060e0f35b632081066c8118613a905760095460e052602060e0f35b63140522888118613aa757600a5460e052602060e0f35b6306fdde038118613b4a5760e080602080825280830180600c8082602082540160c060006003818352015b8260c0516020021115613ae457613b03565b60c05185015460c0516020028501528151600101808352811415613ad2575b5050505050508051806020830101818260206001820306601f8201039050033682375050805160200160206001820306601f820103905090509050810190509050905060e0f35b6395d89b418118613bed5760e080602080825280830180600f8082602082540160c060006002818352015b8260c0516020021115613b8757613ba6565b60c05185015460c0516020028501528151600101808352811415613b75575b5050505050508051806020830101818260206001820306601f8201039050033682375050805160200160206001820306601f820103905090509050810190509050905060e0f35b6370a082318118613c22576004358060a01c614cb65760e052601160e05160a052608052604060802054610100526020610100f35b63dd62ed3e8118613c75576004358060a01c614cb65760e0526024358060a01c614cb65761010052601260e05160a05260805260406080206101005160a052608052604060802054610120526020610120f35b6318160ddd8118613c8c5760135460e052602060e0f35b633644e5158118613ca35760145460e052602060e0f35b637ecebe008118613cd8576004358060a01c614cb65760e052601560e05160a052608052604060802054610100526020610100f35b505b60006000fd5b601160e05160a0526080526040608020805461012051808210614cb6578082039050905081555060116101005160a05260805260406080208054610120518181830110614cb657808201905090508155506101005160e0517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61012051610140526020610140a3565b60403660e03761012060006002818352015b6370a082316101405230610160526020610140602461015c6001610120516002811015614cb65702600201545afa613db8573d600060003e3d6000fd5b601f3d1115614cb657610140516001610120516002811015614cb6570260040154808210614cb6578082039050905060e0610120516002811015614cb65760200201528151600101808352811415613d7b57505060e051815261010051816020015250565b600a5460e0526008546101005260e0514210613e435761010051815250613f5656613f56565b6007546101205260095461014052610120516101005111613edb57610120516101205161010051808210614cb657808203905090504261014051808210614cb65780820390509050808202821582848304141715614cb6579050905060e05161014051808210614cb65780820390509050808015614cb657820490509050808210614cb65780820390509050815250613f5656613f56565b610120516101005161012051808210614cb657808203905090504261014051808210614cb65780820390509050808202821582848304141715614cb6579050905060e05161014051808210614cb65780820390509050808015614cb6578204905090508181830110614cb65780820190509050815250613f56565b565b604036610160376101a060006002818352015b60e06101a0516002811015614cb65760200201516101206101a0516002811015614cb6576020020151808202821582848304141715614cb65790509050670de0b6b3a7640000808204905090506101606101a0516002811015614cb65760200201528151600101808352811415613f6b57505061016051815261018051816020015250565b604036610140376101a060006002818352015b60206101a0510260e00151610180526101408051610180518181830110614cb6578082019050905081525081516001018083528114156140035750506101405161405157600081525061425b565b6101405161018052610120516002808202821582848304141715614cb657905090506101a0526101c0600060ff818352015b610180516101e05261022060006002818352015b6020610220510260e00151610200526101e05161018051808202821582848304141715614cb65790509050610200516002808202821582848304141715614cb65790509050808015614cb6578204905090506101e052815160010180835281141561409757505061018051610160526101a05161014051808202821582848304141715614cb657905090506064808204905090506101e0516002808202821582848304141715614cb657905090508181830110614cb6578082019050905061018051808202821582848304141715614cb657905090506101a0516064808210614cb6578082039050905061018051808202821582848304141715614cb6579050905060648082049050905060036101e051808202821582848304141715614cb657905090508181830110614cb65780820190509050808015614cb657820490509050610180526101605161018051116142195760016101605161018051808210614cb65780820390509050116142445750506101805181525061425b56614244565b60016101805161016051808210614cb65780820390509050116142445750506101805181525061425b565b815160010180835281141561408357505060006000fd5b565b6102405160e052610260516101005261028051610120526102a05161014052614287610320613f58565b61032080516102e052806020015161030052506102e05160e05261030051610100526102c051610120526142bc610320613ff0565b61032051815250565b610260516102405114614cb65760006102605112614cb6576002610260511215614cb65760006102405112614cb6576002610240511215614cb65761430b610300613e1d565b610300516102e0526102a05160e0526102c051610100526102e05161012052614335610320613ff0565b61032051610300526060366103203761030051610380526102e0516002808202821582848304141715614cb657905090506103a0526103c060006002818352015b610240516103c051186143905761028051610340526143c1565b610260516103c05114156143a757614425566143c1565b6102a06103c0516002811015614cb6576020020151610340525b6103208051610340518181830110614cb657808201905090508152506103805161030051808202821582848304141715614cb65790509050610340516002808202821582848304141715614cb65790509050808015614cb657820490509050610380525b81516001018083528114156143765750506103805161030051808202821582848304141715614cb657905090506064808202821582848304141715614cb657905090506103a0516002808202821582848304141715614cb65790509050808015614cb6578204905090506103805261032051610300516064808202821582848304141715614cb657905090506103a051808015614cb6578204905090508181830110614cb657808201905090506103c052610300516103e052610400600060ff818352015b6103e051610360526103e0516103e051808202821582848304141715614cb65790509050610380518181830110614cb6578082019050905060026103e051808202821582848304141715614cb657905090506103c0518181830110614cb6578082019050905061030051808210614cb65780820390509050808015614cb6578204905090506103e052610360516103e051116145af576001610360516103e051808210614cb65780820390509050116145da5750506103e0518152506145f1566145da565b60016103e05161036051808210614cb65780820390509050116145da5750506103e0518152506145f1565b81516001018083528114156144ea57505060006000fd5b565b60006101005112614cb6576002610100511215614cb65760603661018037610160516101e05260e0516002808202821582848304141715614cb657905090506102005261022060006002818352015b61010051610220511415614659576146d756614673565b610120610220516002811015614cb65760200201516101a0525b61018080516101a0518181830110614cb657808201905090508152506101e05161016051808202821582848304141715614cb657905090506101a0516002808202821582848304141715614cb65790509050808015614cb6578204905090506101e0525b81516001018083528114156146425750506101e05161016051808202821582848304141715614cb657905090506064808202821582848304141715614cb65790509050610200516002808202821582848304141715614cb65790509050808015614cb6578204905090506101e05261018051610160516064808202821582848304141715614cb6579050905061020051808015614cb6578204905090508181830110614cb65780820190509050610220526101605161024052610260600060ff818352015b610240516101c0526102405161024051808202821582848304141715614cb657905090506101e0518181830110614cb65780820190509050600261024051808202821582848304141715614cb65790509050610220518181830110614cb6578082019050905061016051808210614cb65780820390509050808015614cb657820490509050610240526101c05161024051116148615760016101c05161024051808210614cb657808203905090501161488c575050610240518152506148a35661488c565b6001610240516101c051808210614cb657808203905090501161488c575050610240518152506148a3565b815160010180835281141561479c57505060006000fd5b565b6148b06102e0613e1d565b6102e0516102c052600b546102e05263bb7b8b80610320526020610320600461033c731337bedc9d22ecbe766df105c9623922a27963ec5afa6148f8573d600060003e3d6000fd5b601f3d1115614cb65761032051610300526102e0516103e0526103005161040052614924610360613d69565b610360805161042052806020015161044052506103e05160e0526104005161010052610420516101205261044051610140526149616103a0613f58565b6103a0805161032052806020015161034052506103205160e05261034051610100526102c05161012052614996610380613ff0565b610380516103605260135461038052610360516102805161036051808202821582848304141715614cb6579050905061038051808015614cb657820490509050808210614cb657808203905090506103a0526102c05160e0526102a05161010052610320516101205261034051610140526103a05161016052614a1a6103e06145f3565b6103e0516103c0526006546002808202821582848304141715614cb657905090506004808204905090506103e0526040366104003761044060006002818352015b600061046052610320610440516002811015614cb6576020020151610480526102a0516104405118614acf57610480516103a051808202821582848304141715614cb6579050905061036051808015614cb6578204905090506103c051808210614cb6578082039050905061046052614b13565b61048051610480516103a051808202821582848304141715614cb6579050905061036051808015614cb657820490509050808210614cb65780820390509050610460525b610480516103e05161046051808202821582848304141715614cb657905090506402540be40080820490509050808210614cb65780820390509050610400610440516002811015614cb65760200201528151600101808352811415614a5b5750506104006102a0516002811015614cb65760200201516102c05160e0526102a05161010052610400516101205261042051610140526103a05161016052614bbb6104606145f3565b61046051808210614cb65780820390509050610440526103206102a0516002811015614cb65760200201516103c051808210614cb65780820390509050670de0b6b3a7640000808202821582848304141715614cb657905090506102e06102a0516002811015614cb6576020020151808015614cb65782049050905061046052610440516001808210614cb65780820390509050670de0b6b3a7640000808202821582848304141715614cb657905090506102e06102a0516002811015614cb6576020020151808015614cb657820490509050610440526104405181526104605161044051808210614cb65780820390509050816020015250565b600080fd5b61000a614cc50361000a60003961000a614cc5036000f3