[ { "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": [], "name": "EIP712DomainChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "executor", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "at", "type": "uint256" } ], "name": "Initialized", "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": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_address", "type": "address" } ], "name": "SetAdminAddress", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_address", "type": "address" } ], "name": "SetAswmAddress", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "_fee", "type": "uint256" } ], "name": "SetDeliveryFee", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "_goldRatio", "type": "uint256" } ], "name": "SetGoldRatio", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "_minBuyAmount", "type": "uint256" } ], "name": "SetMinBuyAmount", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "_minReserveAmount", "type": "uint256" } ], "name": "SetMinReserveAmount", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_address", "type": "address" } ], "name": "SetOracleAddress", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "_duration", "type": "uint256" } ], "name": "SetRollOverEpochDuration", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "_fee", "type": "uint256" } ], "name": "SetRollOverFee", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "string", "name": "_url", "type": "string" } ], "name": "SetStreemURL", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bool", "name": "_status", "type": "bool" } ], "name": "SetToggleStatus", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "_fee", "type": "uint256" } ], "name": "SetTransferFee", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_address", "type": "address" } ], "name": "SetUsdcAddress", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_address", "type": "address" } ], "name": "SetUsdtAddress", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_address", "type": "address" } ], "name": "SetfactoryAddress", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_address", "type": "address" } ], "name": "SetrouterAddress", "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" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "addCommodities", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_holder", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "addReserve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "adminAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "aswmAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "buy", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "buyPercentage", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "buyWithPermit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_holder", "type": "address" } ], "name": "cancelReserve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "claim", "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": "deliveryFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "factoryAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getBuyPercentage", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "getErc20UsdcPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getSellPercentage", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTokenPrice", "outputs": [ { "internalType": "uint256", "name": "price", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "goldRatio", "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": "_aswmAddress", "type": "address" }, { "internalType": "address", "name": "_routerAddress", "type": "address" }, { "internalType": "address", "name": "_factoryAddress", "type": "address" }, { "internalType": "address", "name": "_usdcAddress", "type": "address" }, { "internalType": "address", "name": "_oracleAddress", "type": "address" }, { "internalType": "uint256", "name": "_transferFee", "type": "uint256" }, { "internalType": "uint256", "name": "_deliveryFee", "type": "uint256" }, { "internalType": "uint256", "name": "_rollOverFee", "type": "uint256" }, { "internalType": "uint256", "name": "_rollOverEpochDuration", "type": "uint256" }, { "internalType": "uint256", "name": "_goldRatio", "type": "uint256" }, { "internalType": "uint256", "name": "_minReserveAmount", "type": "uint256" }, { "internalType": "uint256", "name": "_minBuyAmount", "type": "uint256" }, { "internalType": "string", "name": "_streemURL", "type": "string" }, { "internalType": "bool", "name": "_toggleStatus", "type": "bool" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "minBuyAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "minReserveAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "oracleAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_holder", "type": "address" } ], "name": "releaseReserve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "reserves", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rollOverEpochDuration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "rollOverFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "routerAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_gxauAmount", "type": "uint256" }, { "internalType": "address", "name": "token", "type": "address" } ], "name": "sell", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sellPercentage", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "setAdminAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "setAswmAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_buyPercentage", "type": "uint256" } ], "name": "setBuyPercentage", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_fee", "type": "uint256" } ], "name": "setDeliveryFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "setFactoryAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_goldRatio", "type": "uint256" } ], "name": "setGoldRatio", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_minBuyAmount", "type": "uint256" } ], "name": "setMinBuyAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_minReserveAmount", "type": "uint256" } ], "name": "setMinReserveAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "setOracleAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_duration", "type": "uint256" } ], "name": "setRollOverEpochDuration", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_fee", "type": "uint256" } ], "name": "setRollOverFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "setRouterAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_sellPercentage", "type": "uint256" } ], "name": "setSellPercentage", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_streemURL", "type": "string" } ], "name": "setStreemURL", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_status", "type": "bool" } ], "name": "setToggleStatus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_fee", "type": "uint256" } ], "name": "setTransferFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "setUsdcAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "setUsdtAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "streemURL", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "toggleStatus", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": [], "name": "transferFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "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": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "usdcAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "usdtAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
6080806040523461001657614a26908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816302b2988d1461301b5750806302d4545714612ff157806304e9da5a14612b6e57806306fdde0314612f4b578063095ea7b314612f245780630cb46b7514612e9b578063119ccc8e14612e7c57806311b2737814612dc8578063135ec41714611d0757806318160ddd14612daa57806323b872dd14612cdf57806325dfe57714612b8d5780632b16587c14612b6e5780632c1e816d14612ae75780632c5623e214612a72578063313ce56714612a565780633268cc5614612a2c578063359521cf146129c55780633644e515146129aa578063395093511461295a5780633f5c13501461293b57806340c10f19146128f357806340facd24146128b35780634189a68e1461251357806341cb87fc1461248a57806342966c681461246c5780634b94f50e146124495780634c69c00f146123c0578063556a4ffb1461229b5780635601587a14612220578063601deb4f146121b957806363577345146121285780636d9b1ccf146120fe57806370a08231146120c5578063715018a61461206457806379cc6790146120335780637ecebe0014611ffa57806383c17c5514611f7157806384b0196e14611e3c5780638579b6ec14611dd557806387d96cd014611db65780638da5cb5b14611d8d5780638f02bb5b14611d265780639032c0ae14611d0757806395d89b4114611c39578063966dae0e14611c0f5780639ab4a44514611be55780639f838f0b14611ba5578063a457c2d714611b00578063a89ae4ba14611ad6578063a9059cbb14611a13578063aad3ec961461182b578063acb2ad6f1461180c578063b76544eb14610ce3578063b8b9157314610c7c578063c02857bd14610c58578063cce7ec1314610b6d578063d38bcdee14610ae4578063d3f4cd4f14610a9c578063d494c38814610a26578063d505accf1461086e578063d66bd52414610834578063dd62ed3e146107e5578063e1235d421461070b578063f1499eec146106ec578063f29967e3146104b4578063f2fde38b14610421578063f3cc0f1f14610402578063f66bf229146103e3578063f94b447f1461035a5763fc6f94681461032e57600080fd5b34610357578060031936011261035757610130546040516001600160a01b039091168152602090f35b80fd5b50346103575760203660031901126103575761037461310c565b610130546001600160a01b0391908216331480156103d6575b61039690613a51565b16610131816001600160601b0360a01b825416179055604051907fb972fba497dc92b8ab4a4ee83afd5d301925200053943c6d9d0c474a9d1796a88383a2f35b506033548216331461038d565b5034610357578060031936011261035757602061013c54604051908152f35b5034610357578060031936011261035757602061013754604051908152f35b50346103575760203660031901126103575761043b61310c565b610443613359565b6001600160a01b038116156104605761045b906133b1565b604051f35b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b50346103575760c0366003190112610357576104ce61310c565b6024356064359160ff83168093036106d5576104ef60ff61013e5416613b64565b6001600160a01b0381811661050630821415613bc3565b610511841515613c1d565b6040516370a0823160e01b815233600482015260209587918781602481875afa80156106e157879184916106a6575b509061054d911015613c69565b823b156106a2576040519063d505accf60e01b82523360048301523060248301528660448301526044356064830152608482015260843560a482015260a43560c4820152818160e48183875af180156106975761067f575b505081610134541690818114908115610670575b50156105cd57505061045b9250339061412a565b6101335460405163e6a4390560e01b81526001600160a01b038581166004830152929092166024830152909392919085908590604490829085165afa9384156106655761045b958795610630575b505061062a9084161515613cdf565b336144e2565b61062a929550908161065692903d1061065e575b61064e8183613338565b810190613cc0565b93903861061b565b503d610644565b6040513d88823e3d90fd5b905082610140541614386105b9565b6106889061330a565b6106935785386105a5565b8580fd5b6040513d84823e3d90fd5b5080fd5b935050508682813d83116106da575b6106bf8183613338565b810103126106d55761054d868993519091610540565b600080fd5b503d6106b5565b6040513d85823e3d90fd5b5034610357578060031936011261035757602061013954604051908152f35b5034610357578060031936011261035757604051600061013d805461072f816131a5565b808552916001918083169081156107bb5750600114610771575b61076d8561075981870382613338565b604051918291602083526020830190613138565b0390f35b600090815292506000805160206149d18339815191525b8284106107a35750505081016020016107598261076d610749565b80546020858701810191909152909301928101610788565b86955061076d9693506020925061075994915060ff191682840152151560051b8201019293610749565b5034610357576040366003190112610357576107ff61310c565b6040610809613122565b9260018060a01b03809316815260666020522091166000526020526020604060002054604051908152f35b5034610357576020366003190112610357576020906040906001600160a01b0361085c61310c565b16815261013f83522054604051908152f35b50346103575760e03660031901126103575761088861310c565b610890613122565b6044359060843560643560ff821682036106d5578042116109e15760018060a01b03908186169283885260fd60205260408820908154916001830190556040519260208401927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98452866040860152858816606086015288608086015260a085015260c084015260c0835260e08301918383106001600160401b038411176109cb576109779361096f9360405251902061094861386d565b906040519161190160f01b83526002830152602282015260c43591604260a43592206137de565b9190916136c4565b16036109865761045b9261341f565b60405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606490fd5b634e487b7160e01b600052604160045260246000fd5b60405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606490fd5b5034610357576020366003190112610357576101305460043590610a5f90336001600160a01b0391821614908115610a8e575b50613a51565b8061013c55604051907f85263a8dc1b31bb79a9f03ad659e0d8b92850ffe3353db65a88a43623260af458383a2f35b905060335416331438610a59565b50346103575760203660031901126103575761013054610ad090336001600160a01b0391821614908115610a8e5750613a51565b61045b610ade600435613a90565b30613ac0565b503461035757602036600319011261035757610afe61310c565b610130546001600160a01b039190821633148015610b60575b610b2090613a51565b16610134816001600160601b0360a01b825416179055604051907f679d5e7235288f8dd8d20c5bb92b07ce54094ee55527c8f74f863ed4fe411a8b8383a2f35b5060335482163314610b17565b503461035757604036600319011261035757610b8761310c565b602435610b9960ff61013e5416613b64565b6001600160a01b038281169290610bb230851415613bc3565b610bbd831515613c1d565b6040516370a0823160e01b8152336004820152602094908581602481855afa8015610c4d5785908890610c1c575b610bf792501015613c69565b816101345416908181149081156106705750156105cd57505061045b9250339061412a565b50508581813d8311610c46575b610c338183613338565b810103126106d55784610bf79151610beb565b503d610c29565b6040513d89823e3d90fd5b5034610357578060031936011261035757602060ff61013e54166040519015158152f35b5034610357576020366003190112610357576101305460043590610cb490336001600160a01b0391821614908115610a8e5750613a51565b8061013755604051907f655a270a99c30719f890ce05919743c1baed4538c166ad3bdb3d64fefe1de50c8383a2f35b5034610357576101c036600319011261035757610cfe61310c565b90610d07613122565b6044356001600160a01b038181169392918490036106d557606435918183168093036106d5576084358281168091036106d557610184356001600160401b03811161069357610d5a903690600401613178565b9790936101a435958615158097036106d55787549860ff8a60081c1615998a809b6117ff575b80156117e8575b1561178c5760ff1981166001178a558a61177b575b506001600160601b0360a01b95610130338882541617905583610132911687825416179055610133908682541617905561013490858254161790556101319116838254161790556101359182541617905560a4356101365560c4356101375560e4356101385561010435610139556101243561013a5561014494853561013b556101643561013c556001600160401b0381116112a1578061013d92610e4a82610e4586546131a5565b613981565b8590601f831160011461170a5786926116ff575b50508160011b916000199060031b1c19161790555b61013e9060ff80198354169116179055610e8f610145546131a5565b601f81116116b4575b50601a6c11da5b589d5d1a5cc811dbdb19609a1b016101455561014654610ebe906131a5565b601f8111611669575b506002603160f81b016101465560405161014554909390846000610eea836131a5565b808352926001811690811561164a57506001146115e8575b610f0e92500385613338565b8351602094850120610143556040516000908581610f326002603160f81b016131a5565b808252828201949060006115cb565b50610f4e92500382613338565b5190209055805b6032811061156f5750610f7760ff825460081c16610f72816139f1565b6139f1565b610f80336133b1565b610f886139c8565b9260405193610f968561331d565b60048552634758415560e01b82860152610fba60ff845460081c16610f72816139f1565b8051906001600160401b0382116112a1578190610fd86068546131a5565b601f8111611521575b508390601f831160011461149e578592611493575b50508160011b916000199060031b1c1916176068555b83516001600160401b03811161147f576110276069546131a5565b601f8111611431575b508194601f82116001146113b05794839495829394926113a5575b50508160011b916000199060031b1c1916176069555b6110696139c8565b9260ff835460081c169361107c856139f1565b61109e6040519561108c8761331d565b60018752603160f81b858801526139f1565b8051906001600160401b0382116113915781906110bc60cb546131a5565b601f8111611343575b508490601f83116001146112c05786926112b5575b50508160011b916000199060031b1c19161760cb555b83516001600160401b0381116112a15761110b60cc546131a5565b601f8111611248575b508294601f82116001146111c75794849582939495926111bc575b50508160011b916000199060031b1c19161760cc555b8260c9558260ca556040514381527f25ff68dd81b34665b5ba7e553ee5511bf6812e12adb4a7e2c0d9e26b3099ce79833392a2611183575b50604051f35b7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989061ff0019835416835560405160018152a13861117d565b01519050388061112f565b60cc8552601f198216957f47197230e1e4b29fc0bd84d7d78966c0925452aff72a2a121538b102457e9ebe91865b88811061123157508360019596979810611218575b505050811b0160cc55611145565b015160001960f88460031b161c1916905538808061120a565b9192866001819286850151815501940192016111f5565b6112919060cc6000527f47197230e1e4b29fc0bd84d7d78966c0925452aff72a2a121538b102457e9ebe601f840160051c810191868510611297575b601f0160051c019061396a565b38611114565b9091508190611284565b634e487b7160e01b84526041600452602484fd5b0151905038806110da565b60cb87527fa7ce836d032b2bf62b7e2097a8e0a6d8aeb35405ad15271e96d3b0188a1d06fb9250601f198416875b8782821061132d575050908460019594939210611314575b505050811b0160cb556110f0565b015160001960f88460031b161c19169055388080611306565b60018596829396860151815501950193016112ee565b61138b9060cb6000527fa7ce836d032b2bf62b7e2097a8e0a6d8aeb35405ad15271e96d3b0188a1d06fb601f850160051c81019188861061129757601f0160051c019061396a565b386110c5565b634e487b7160e01b85526041600452602485fd5b01519050388061104b565b60698452601f198216957f7fb4302e8e91f9110a6554c2c0a24601252c2a42c2220ca988efcfe39991430891855b88811061141a57508360019596979810611401575b505050811b01606955611061565b015160001960f88460031b161c191690553880806113f3565b9192856001819286850151815501940192016113de565b6114799060696000527f7fb4302e8e91f9110a6554c2c0a24601252c2a42c2220ca988efcfe399914308601f840160051c81019185851061129757601f0160051c019061396a565b38611030565b634e487b7160e01b83526041600452602483fd5b015190503880610ff6565b606886527fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c220977539250601f198416865b8682821061150b5750509084600195949392106114f2575b505050811b0160685561100c565b015160001960f88460031b161c191690553880806114e4565b60018596829396860151815501950193016114cc565b6115699060686000527fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c22097753601f850160051c81019187861061129757601f0160051c019061396a565b38610fe1565b81816101470155600019811461158757600101610f55565b634e487b7160e01b82526011600452602482fd5b8082106115b15750899350820101610f4e610f41565b84548287018401526001909401938593509082019061159b565b50603160f81b8652899390151560051b8301019050610f4e610f41565b50906101456000527fed95984add84c4014c7f9d66a1b73e788e2db64f5763fa861ad52da204f71b2b906000915b81831061162e575050906020610f0e92820101610f02565b6020919350806001915483858b01015201910190918692611616565b60209250610f0e94915060ff191682840152151560051b820101610f02565b610146600052601f7ff865fb3f06685bbcb5a1c6d69424d51a154206a5b27ad97bd5fbd9c0b2a0878a910160051c8101905b8181106116a85750610ec7565b6000815560010161169b565b610145600052601f7fed95984add84c4014c7f9d66a1b73e788e2db64f5763fa861ad52da204f71b2b910160051c8101905b8181106116f35750610e98565b600081556001016116e6565b013590503880610e5e565b8487526000805160206149d1833981519152925090601f198416875b8181106117635750908460019594939210611749575b505050811b019055610e73565b0135600019600384901b60f8161c1916905538808061173c565b91936020600181928787013581550195019201611726565b61ffff191661010117895538610d9c565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b158015610d875750600160ff821614610d87565b50600160ff821610610d80565b5034610357578060031936011261035757602061013654604051908152f35b50346103575760403660031901126103575761184561310c565b9060243560018060a01b03809381610130541633148015611a06575b61186a90613a51565b16604051936370a0823160e01b85523060048601526020948581602481865afa9081156119fb5790849186916119ca575b5010611973579383946101405416821460001461190c5750803b156119085760405163a9059cbb60e01b8152336004820152602481019290925282908290604490829084905af18015610697576118f4575b5050604051f35b6118fd9061330a565b6103575780386118ed565b5050fd5b60405163a9059cbb60e01b8152336004820152602481019390935292839183916044918391905af180156106e157611945575050604051f35b8161196492903d1061196c575b61195c8183613338565b81019061442d565b5038806118ed565b503d611952565b60405162461bcd60e51b815260048101869052602960248201527f475841553a20546f6f20736d616c6c20636f6e74726163742062616c616e636560448201526820746f20636c61696d60b81b6064820152608490fd5b809250878092503d83116119f4575b6119e38183613338565b810103126106d5578390513861189b565b503d6119d9565b6040513d87823e3d90fd5b5060335482163314611861565b503461035757604036600319011261035757611a6a611a3061310c565b60243590611a4360ff61013e5416613b64565b816101365480151580611acd575b80611ab7575b80611aa2575b611a75575b505033613d7b565b602060405160018152f35b611a9a929350611a886127109183613aad565b0490611a95823033613d7b565b613f4e565b908380611a62565b506033546001600160a01b0316331415611a5d565b50610130546001600160a01b0316331415611a57565b50333b15611a51565b5034610357578060031936011261035757610135546040516001600160a01b039091168152602090f35b503461035757604036600319011261035757611b1a61310c565b60406024359233815260666020522060018060a01b03821660005260205260406000205491808310611b5257611a6a9203903361341f565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608490fd5b50346103575760203660031901126103575761013054611bd990336001600160a01b0391821614908115610a8e5750613a51565b60043561014155604051f35b5034610357578060031936011261035757610140546040516001600160a01b039091168152602090f35b5034610357578060031936011261035757610133546040516001600160a01b039091168152602090f35b50346103575780600319360112610357576040516000606954611c5b816131a5565b80845290600190818116908115611ce05750600114611c85575b61076d8461075981860382613338565b6069600090815292507f7fb4302e8e91f9110a6554c2c0a24601252c2a42c2220ca988efcfe3999143085b828410611cc857505050810160200161075982611c75565b80546020858701810191909152909301928101611cb0565b60ff191660208087019190915292151560051b850190920192506107599150839050611c75565b5034610357578060031936011261035757602061014254604051908152f35b5034610357576020366003190112610357576101305460043590611d5e90336001600160a01b0391821614908115610a8e5750613a51565b8061013655604051907f7a85e8a0c3f3d4bafa6ac516212f769dfdb9bbf7c6f058d391aa03b0596212438383a2f35b50346103575780600319360112610357576033546040516001600160a01b039091168152602090f35b5034610357578060031936011261035757602061013b54604051908152f35b5034610357576020366003190112610357576101305460043590611e0d90336001600160a01b0391821614908115610a8e5750613a51565b8061013955604051907f31083e92c203d351f65d06da40f99f6df9f1256568928b61e2a50f74226afbb08383a2f35b503461035757806003193601126103575760c9541580611f67575b15611f2a5760405190611e7482611e6d816131df565b0383613338565b60405190611e8582611e6d81613283565b60405190602090818301938385106001600160401b038611176109cb5792828593611ee08896611ed298604052858552604051988998600f60f81b8a5260e0858b015260e08a0190613138565b9088820360408a0152613138565b924660608801523060808801528460a088015286840360c088015251928381520193925b828110611f1357505050500390f35b835185528695509381019392810192600101611f04565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b5060ca5415611e57565b503461035757602036600319011261035757611f8b61310c565b610130546001600160a01b039190821633148015611fed575b611fad90613a51565b16610133816001600160601b0360a01b825416179055604051907f81d056fd530fde91c5882d09ccc04a5579299f5f4629029a8b5cf0de5d96b8488383a2f35b5060335482163314611fa4565b5034610357576020366003190112610357576020906040906001600160a01b0361202261310c565b16815260fd83522054604051908152f35b50346103575760403660031901126103575761045b61205061310c565b6024359061205f82338361362c565b613521565b503461035757806003193601126103575761207d613359565b603380546001600160a01b03198116909155604051906000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08284a3f35b5034610357576020366003190112610357576020906040906001600160a01b036120ed61310c565b168152606583522054604051908152f35b5034610357578060031936011261035757610131546040516001600160a01b039091168152602090f35b50346103575760203660031901126103575761214261310c565b610131546001600160a01b039061215c9082163314613d3d565b81168083526121a861013f928360205261217b60408620541515613eeb565b828552836020526121a1604086205461271061219a6101375483613aad565b0490613f4e565b9030613d7b565b825260205260006040822055604051f35b50346103575760203660031901126103575761013054600435906121f190336001600160a01b0391821614908115610a8e5750613a51565b8061013b55604051907f40f76756c762791fd506404bf1d7f1690ad43eccba834e44d55d789a721802b58383a2f35b5034610357576020366003190112610357576004358015158091036106d5576101305461226190336001600160a01b0391821614908115610a8e5750613a51565b61013e60ff1981541660ff8316179055604051907fe2cd88ee42799251f30c5b358144de3cb1f49381b01aec42a97db678f667aed58383a2f35b5034610357576040366003190112610357576122b561310c565b60243560018060a01b036122cf8161013154163314613d3d565b82169182845261013f80602052604085205461236757838552606560205282604086205410158061235b575b156123165761045b9385526020528160408520553090613d7b565b60405162461bcd60e51b815260206004820152601f60248201527f475841553a20496e76616c696420616d6f756e7420666f722072656465656d006044820152606490fd5b508261013b54106122fb565b60405162461bcd60e51b815260206004820152602b60248201527f475841553a20616c726561647920686176652072656465656d2077697468207460448201526a686973206164647265737360a81b6064820152608490fd5b5034610357576020366003190112610357576123da61310c565b610130546001600160a01b03919082163314801561243c575b6123fc90613a51565b16610135816001600160601b0360a01b825416179055604051907f0adef86c673dfdb102affe9a454acea4a42a305e1feb982b4b2c97da980454a98383a2f35b50603354821633146123f3565b5034610357578060031936011261035757602061246461403d565b604051908152f35b50346103575760203660031901126103575761045b60043533613521565b5034610357576020366003190112610357576124a461310c565b610130546001600160a01b039190821633148015612506575b6124c690613a51565b16610132816001600160601b0360a01b825416179055604051907f350388f67d472de0974340df28617c64044ca1608d8f116f7fb2c287b185f6c98383a2f35b50603354821633146124bd565b50346103575760403660031901126103575760043590612531613122565b9161254160ff61013e5416613b64565b3382526020606581528160408420541061286f57610134546001600160a01b03948516908516811494858015612861575b1561281e576101355416604051633fabe5a360e21b815260a081600481855afa908115610665576125d36125cd60049387938a916127eb575b506125b78a8213613fd1565b60646125c66101425483613aad565b04906133fc565b87613aad565b926040519283809263313ce56760e01b82525afa90811561066557600c9160ff9188916127be575b50160160ff81116127aa579061261361261992613f74565b90613f2e565b6040516370a0823160e01b81523060048201528381602481865afa908115610665579082918791612779575b50106127225784956000146126bf5760405163a9059cbb60e01b8152336004820152602481019190915293829185916044918391905af19283156126b45761045b93612696575b50505b3033613d7b565b816126ac92903d1061196c5761195c8183613338565b50388061268c565b6040513d86823e3d90fd5b908092509392933b1561271e5760405163a9059cbb60e01b8152336004820152602481019190915291908290604490829084905af180156106e157612709575b5061045b9061268f565b9161271761045b929361330a565b91906126ff565b8280fd5b60405162461bcd60e51b815260048101849052602960248201527f475841553a20546f6f20736d616c6c20636f6e74726163742062616c616e636560448201526808199bdc881cd95b1b60ba1b6064820152608490fd5b809250858092503d83116127a3575b6127928183613338565b810103126106935781905138612645565b503d612788565b634e487b7160e01b86526011600452602486fd5b6127de9150863d88116127e4575b6127d68183613338565b810190613f5b565b386125fb565b503d6127cc565b61280c915060a03d8111612817575b6128048183613338565b810190613f9c565b5050509050386125ab565b503d6127fa565b6064836040519062461bcd60e51b825280600483015260248201527f475841553a2053656c6c20666f722055534443206f722055534454206f6e6c796044820152fd5b508061014054168214612572565b6064906040519062461bcd60e51b82526004820152601c60248201527f475841553a20546f6f20736d616c6c20757365722062616c616e6365000000006044820152fd5b503461035757602036600319011261035757610130546128e790336001600160a01b0391821614908115610a8e5750613a51565b60043561014255604051f35b50346103575760403660031901126103575761045b61291061310c565b6101305461293290336001600160a01b0391821614908115610a8e5750613a51565b60243590613ac0565b5034610357578060031936011261035757602061013854604051908152f35b503461035757604036600319011261035757611a6a906129a361297b61310c565b9133815260666020526040812060018060a01b038416825260205260406024359120546133fc565b903361341f565b5034610357578060031936011261035757602061246461386d565b50346103575760203660031901126103575761013054600435906129fd90336001600160a01b0391821614908115610a8e5750613a51565b8061013855604051907f9fe5988aa614714d05ed1bb5d1426bc00563239ea39f54ec166ed935a919da2a8383a2f35b5034610357578060031936011261035757610132546040516001600160a01b039091168152602090f35b5034610357578060031936011261035757602060405160128152f35b503461035757602036600319011261035757612a8c61310c565b610131546001600160a01b039190612aa79083163314613d3d565b1680825261013f9081602052612ac260408420541515613eeb565b80835281602052612ad7604084205430613521565b8252602052806040812055604051f35b503461035757602036600319011261035757612b0161310c565b6101308054916001600160a01b039033828516148015612b61575b612b2590613a51565b1680926001600160601b0360a01b16179055604051907f030ff471e8e3d5a26cd9ee887eb024f145aaf27e12cd2f7bdcd14aeb40cf33318383a2f35b5060335482163314612b1c565b5034610357578060031936011261035757602061014154604051908152f35b5034610357576020806003193601126106a2576001600160401b03600435818111612cdb57612bc0903690600401613178565b929091612be260018060a01b038061013054163314908115610a8e5750613a51565b83116112a1578261013d91612bfb82610e4585546131a5565b8590601f8311600114612c6a57508591612c5f575b508360011b906000198560031b1c19161790555b8160405192839283378101838152039020604051907ff14e8d34152214315d371aac7d7bfe2804854edb6b15386d5b0f65555ebbf4098383a2f35b905082013538612c10565b91601f1981168488526000805160206149d18339815191529388905b828210612cbe57505010612ca4575b5050600183811b019055612c24565b830135600019600386901b60f8161c191690553880612c95565b80929350600185968293968a013581550195019301879291612c86565b8380fd5b503461035757606036600319011261035757611a6a612cfc61310c565b612d04613122565b60443591612d1760ff61013e5416613b64565b82612d2381338461362c565b6101365480151580612da1575b80612d88575b80612d70575b612d48575b5050613d7b565b612d68929450612d5b6127109183613aad565b0490611a95823087613d7b565b918480612d41565b506033546001600160a01b0384811691161415612d3c565b50610130546001600160a01b0384811691161415612d36565b50823b15612d30565b50346103575780600319360112610357576020606754604051908152f35b5034610357576020366003190112610357576101305460043590612e0090336001600160a01b0391821614908115610a8e5750613a51565b8061013a5560648110612e3757604051907f08513d9bc33791ecc9bb336328fad3f5be09fd32f794a40e2c83d8ae579c718b8383a2f35b60405162461bcd60e51b815260206004820152601e60248201527f475841553a205369766572526174696f206c657373207468616e2031303000006044820152606490fd5b5034610357578060031936011261035757602061013a54604051908152f35b503461035757602036600319011261035757612eb561310c565b610130546001600160a01b039190821633148015612f17575b612ed790613a51565b16610140816001600160601b0360a01b825416179055604051907f1e87f8626f9b89d0b805ce1d575da72ac3b359f5e4797d8f2eecf127f6cd94ab8383a2f35b5060335482163314612ece565b503461035757604036600319011261035757611a6a612f4161310c565b602435903361341f565b50346103575780600319360112610357576040519080606854612f6d816131a5565b808552916001918083169081156107bb5750600114612f965761076d8561075981870382613338565b9250606883527fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c220977535b828410612fd95750505081016020016107598261076d610749565b80546020858701810191909152909301928101612fbe565b5034610357578060031936011261035757610134546040516001600160a01b039091168152602090f35b9050346106a2576020908160031936011261271e5761303861310c565b610133546101345463e6a4390560e01b84526001600160a01b0383811660048601529081166024850152929084908290604490829087165afa9283156119fb57849186946130e8575b50908161309360049386161515613cdf565b60405163313ce56760e01b8152928391829086165afa9081156119fb579394612464946130c5926130cb575b50613f74565b916147ec565b6130e29150863d88116127e4576127d68183613338565b386130bf565b82919450613104906004933d841161065e5761064e8183613338565b939091613081565b600435906001600160a01b03821682036106d557565b602435906001600160a01b03821682036106d557565b919082519283825260005b848110613164575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201613143565b9181601f840112156106d5578235916001600160401b0383116106d557602083818601950101116106d557565b90600182811c921680156131d5575b60208310146131bf57565b634e487b7160e01b600052602260045260246000fd5b91607f16916131b4565b60cb54600092916131ef826131a5565b80825291600190818116908115613266575060011461320d57505050565b9192935060cb6000527fa7ce836d032b2bf62b7e2097a8e0a6d8aeb35405ad15271e96d3b0188a1d06fb916000925b84841061324e57505060209250010190565b8054602085850181019190915290930192810161323c565b915050602093945060ff929192191683830152151560051b010190565b60cc5460009291613293826131a5565b8082529160019081811690811561326657506001146132b157505050565b9192935060cc6000527f47197230e1e4b29fc0bd84d7d78966c0925452aff72a2a121538b102457e9ebe916000925b8484106132f257505060209250010190565b805460208585018101919091529093019281016132e0565b6001600160401b0381116109cb57604052565b604081019081106001600160401b038211176109cb57604052565b90601f801991011681019081106001600160401b038211176109cb57604052565b6033546001600160a01b0316330361336d57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6033549060018060a01b0380911691826001600160601b0360a01b821617603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e06000604051a3565b9190820180921161340957565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b039081169182156134d057169182156134805760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260668252604060002085600052825280604060002055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b6001600160a01b031680156135dd578060005260656020526040600020549180831061358d576020817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92600095858752606584520360408620558060675403606755604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608490fd5b9060018060a01b0380831660005260666020526040600020908216600052602052604060002054926000198403613664575b50505050565b80841061367f5761367693039161341f565b3880808061365e565b60405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606490fd5b60058110156137c857806136d55750565b600181036137225760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606490fd5b6002810361376f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606490fd5b60031461377857565b60405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608490fd5b634e487b7160e01b600052602160045260246000fd5b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083116138615791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa156138545781516001600160a01b0381161561384e579190565b50600190565b50604051903d90823e3d90fd5b50505050600090600390565b6138756138e2565b61387d61393c565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815260c081018181106001600160401b038211176109cb5760405251902090565b6040516138f9816138f2816131df565b0382613338565b8051908115613909576020012090565b505060c95480156139175790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b60405161394c816138f281613283565b805190811561395c576020012090565b505060ca5480156139175790565b818110613975575050565b6000815560010161396a565b90601f821161398e575050565b6139c69161013d6000526000805160206149d1833981519152906020601f840160051c8301931061129757601f0160051c019061396a565b565b604051906139d58261331d565b600d82526c11da5b589d5d1a5cc811dbdb19609a1b6020830152565b156139f857565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b15613a5857565b60405162461bcd60e51b815260206004820152601060248201526f23ac20aa9d1037b7363c9030b236b4b760811b6044820152606490fd5b670de0b6b3a7640000908060001904821181151516613409570290565b8060001904821181151516613409570290565b6001600160a01b0316908115613b1f577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602082613b026000946067546133fc565b6067558484526065825260408420818154019055604051908152a3565b60405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b15613b6b57565b60405162461bcd60e51b815260206004820152602a60248201527f475841553a20636f6e7472616374206973206e6f7420617661696c61626c652060448201526903934b3b43a103737bb960b51b6064820152608490fd5b15613bca57565b60405162461bcd60e51b815260206004820152602560248201527f475841553a20427579204758415520666f7220475841552069732070726f6869604482015264189a5d195960da1b6064820152608490fd5b15613c2457565b60405162461bcd60e51b815260206004820152601860248201527f475841553a2062757920616d6f756e74206973206e756c6c00000000000000006044820152606490fd5b15613c7057565b60405162461bcd60e51b815260206004820152602260248201527f475841553a20496e76616c696420757365722062616c616e636520666f722062604482015261757960f01b6064820152608490fd5b908160209103126106d557516001600160a01b03811681036106d55790565b15613ce657565b60405162461bcd60e51b815260206004820152602960248201527f475841553a205553444320706169722077697468207468697320746f6b656e206044820152681b9bdd08195e1a5cdd60ba1b6064820152608490fd5b15613d4457565b60405162461bcd60e51b815260206004820152600f60248201526e475841553a206f6e6c79206173776d60881b6044820152606490fd5b6001600160a01b03908116918215613e985716918215613e475760008281526065602052604081205491808310613df357604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95876020965260658652038282205586815220818154019055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b15613ef257565b60405162461bcd60e51b815260206004820152601460248201527311d610554e8814995919595b481a5cc81b9d5b1b60621b6044820152606490fd5b8115613f38570490565b634e487b7160e01b600052601260045260246000fd5b9190820391821161340957565b908160209103126106d5575160ff811681036106d55790565b60ff16604d811161340957600a0a90565b519069ffffffffffffffffffff821682036106d557565b908160a09103126106d557613fb081613f85565b91602082015191604081015191613fce608060608401519301613f85565b90565b15613fd857565b60405162461bcd60e51b815260206004820152602660248201527f475841553a2041676772656761746f72207072696365206c657373206f72206560448201526507175616c20360d41b6064820152608490fd5b60ff166012039060ff821161340957565b61013554604051633fabe5a360e21b8152906001600160a01b031660a082600481845afa9182156140f3576000926140ff575b50602060049161408260008513613fd1565b60405163313ce56760e01b815292839182905afa9081156140f3576064926140c16140bc6140d1946140c7946000916140d5575b5061402c565b613f74565b90613aad565b61013a5490613aad565b0490565b6140ed915060203d81116127e4576127d68183613338565b386140b6565b6040513d6000823e3d90fd5b600491925061411d60209160a03d8111612817576128048183613338565b5050509050929150614070565b92919061414761413861403d565b60646125c66101415483613aad565b6c0c9f2c9cd04674edea4000000090836000190482118415151661340957614170918402613f2e565b9161013c54831061426a57600030815260656020528360408220541061422657610134546001600160a01b03968716961686036141bf57506141b9906139c694958330916142c2565b30613d7b565b948591813b1561271e576040516323b872dd60e01b81526001600160a01b0385166004820152306024820152604481019190915291908290606490829084905af180156119fb576139c6949550614217575b506141b9565b6142209061330a565b38614211565b606460405162461bcd60e51b815260206004820152602060248201527f475841553a204e6f7420656e6f7567682047584155206f6e2062616c616e63656044820152fd5b60405162461bcd60e51b815260206004820152602a60248201527f475841553a20546f6f20736d616c6c20616d6f756e7420746f20627579206d696044820152696e696d756d204758415560b01b6064820152608490fd5b6040516323b872dd60e01b60208083019182526001600160a01b039485166024840152949093166044820152606480820195909552938452601f199493919061430c608484613338565b60018060a01b0316604051926143218461331d565b8484527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656485850152600080938192519082855af1903d1561441c573d966001600160401b0388116112a1578596976143866143949760405193601f8401160183613338565b81528093873d92013e614445565b805190828215928315614404575b505050156143ad5750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b614414935082018101910161442d565b3882816143a2565b915061439493949550606091614445565b908160209103126106d5575180151581036106d55790565b919290156144a75750815115614459575090565b3b156144625790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156144ba5750805190602001fd5b60405162461bcd60e51b8152602060048201529081906144de906024830190613138565b0390fd5b9093929161450e6144ff82876144f961413861403d565b966147ec565b9361450985613a90565b613f2e565b9261013c5484106147875760009530875260206065815260409286848a20541061472a576001600160a01b039283169161454a863089866142c2565b6101328054865163095ea7b360e01b81529086166001600160a01b03166004808301919091526024820189905291929081818e81806044810103918a5af1801561472057614703575b50865195606087018781106001600160401b038211176146f05788526002875281870195883688378751156146dd578652806101345416938751946001958610156146ca579082918a8a015254169660644201958642116146b757883b156146b35799969491928e9896949164e8d4a510008b519c8d9a635c11d79560e01b8c5260a48c01958c01520460248a015260a060448a01525180925260c48801959389905b838210614689575050505050508380928692306064840152608483015203925af190811561468057506139c6949550614671575b5030613d7b565b61467a9061330a565b3861466a565b513d87823e3d90fd5b9295979950929584985090808792848297511681520198019201928a979592938f99979592614636565b8e80fd5b634e487b7160e01b8f526011855260248ffd5b634e487b7160e01b8f526032855260248ffd5b634e487b7160e01b8e526032845260248efd5b634e487b7160e01b8e526041845260248efd5b61471990823d841161196c5761195c8183613338565b5038614593565b88513d8f823e3d90fd5b835162461bcd60e51b815260048101839052603060248201527f475841553a204e6f7420656e6f756768204758415520746f6b656e73206f6e2060448201526f636f6e74726163742062616c616e636560801b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f475841553a20546f6f20736d616c6c204758415520616d6f756e7420666f722060448201526262757960e81b6064820152608490fd5b51906001600160701b03821682036106d557565b60408051630240bc6b60e21b81526001600160a01b03928316949293929091606083600481895afa9283156149c557600090819461496e575b506001600160701b0380911693169480610134541691805163313ce56760e01b968782526020918281600481895afa908115614963579160046148756140bc8694899660009161494c575061402c565b9a865194859384928352165afa90811561494157916148a26140bc829360049560009161492a575061402c565b9a845193848092630dfe168160e01b82525afa9283156149205750600092614903575b505016036148ed57612613926148e2613fce96936148e793613aad565b613aad565b92613aad565b612613926148e2613fce9693956148e793613aad565b6149199250803d1061065e5761064e8183613338565b38806148c5565b513d6000823e3d90fd5b6140ed9150843d86116127e4576127d68183613338565b83513d6000823e3d90fd5b6140ed9150863d88116127e4576127d68183613338565b84513d6000823e3d90fd5b93506060843d82116149bd575b8161498860609383613338565b8101031261035757614999846147d8565b90826149a7602087016147d8565b95015163ffffffff811603610357575038614825565b3d915061497b565b50513d6000823e3d90fdfe311617e6f2abe00ca92b0da56c014828817049e78441cf034e4dd4feba529625a2646970667358221220119ba5857964784e117c503089342c4332bacaf2bbb191e0e6638810f7b923d964736f6c63430008100033