[ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "CATEGORY_CHANCE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "ITEM_CHANCE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "LEVEL_CHANCE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MULTIPLIER_SCALE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NFT_FACTORY_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "boostMap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "getBoosting", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "level", "type": "uint256" }, { "internalType": "uint256", "name": "category", "type": "uint256" }, { "internalType": "uint256", "name": "item", "type": "uint256" } ], "name": "getLevelChance", "outputs": [ { "internalType": "uint256", "name": "chance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "getLockTimeReduce", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "level", "type": "uint256" }, { "internalType": "uint256", "name": "category", "type": "uint256" }, { "internalType": "uint256", "name": "item", "type": "uint256" } ], "name": "getNftURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "getRoleMember", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleMemberCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getTokenChance", "outputs": [ { "internalType": "uint256", "name": "chance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "admin", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "itemSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_level", "type": "uint256" }, { "internalType": "uint256", "name": "_category", "type": "uint256" }, { "internalType": "uint256", "name": "_item", "type": "uint256" }, { "internalType": "uint256", "name": "_random", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "nftURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "reduceMap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_baseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "chances", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "boosts", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "reduces", "type": "uint256[]" } ], "name": "setBoostMap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "levels", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "categorys", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "items", "type": "uint256[]" }, { "internalType": "string[]", "name": "URIs", "type": "string[]" } ], "name": "setMultiNftURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_nftFactory", "type": "address" } ], "name": "setNFTFactory", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "level", "type": "uint256" }, { "internalType": "uint256", "name": "category", "type": "uint256" }, { "internalType": "uint256", "name": "item", "type": "uint256" }, { "internalType": "string", "name": "URI", "type": "string" } ], "name": "setNftURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "tokenInfo", "outputs": [ { "internalType": "uint256", "name": "level", "type": "uint256" }, { "internalType": "uint256", "name": "category", "type": "uint256" }, { "internalType": "uint256", "name": "item", "type": "uint256" }, { "internalType": "uint256", "name": "random", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "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": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b5060408051808201825260068082527f5a6f6f4e465400000000000000000000000000000000000000000000000000006020808401829052845180860190955291845290830152906200008d7f01ffc9a7000000000000000000000000000000000000000000000000000000006401000000006200015d810204565b8151620000a290600690602085019062000202565b508051620000b890600790602084019062000202565b50620000ed7f80ac58cd000000000000000000000000000000000000000000000000000000006401000000006200015d810204565b620001217f5b5e139f000000000000000000000000000000000000000000000000000000006401000000006200015d810204565b620001557f780e9d63000000000000000000000000000000000000000000000000000000006401000000006200015d810204565b5050620002d5565b7fffffffff000000000000000000000000000000000000000000000000000000008082161415620001c5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001bc906200029e565b60405180910390fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152602081905260409020805460ff19166001179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200024557805160ff191683800117855562000275565b8280016001018555821562000275579182015b828111156200027557825182559160200191906001019062000258565b506200028392915062000287565b5090565b5b8082111562000283576000815560010162000288565b6020808252601c908201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604082015260600190565b61343780620002e56000396000f3fe60806040526004361061021b5760e060020a600035046301ffc9a78114610220578063050509bd1461025657806306fdde0314610283578063081812fc146102a5578063095ea7b3146102d257806318160ddd146102f457806323b872dd14610309578063248a9ca3146103295780632f2ff15d146103495780632f745c591461036957806330cb529d1461038957806336568abe146103a9578063372c3679146103c957806342842e0e146103e957806342a9111b14610409578063447646d2146104295780634f6ccce71461044957806355f804b31461046957806357314870146104895780635880eca51461049e5780636352211e146104be5780636a28d92b146104de5780636c0360eb146104fe57806370a082311461051357806377410f99146105335780637a45fe831461055357806387426b7a146105685780639010d07c1461058857806391d14854146105a857806392c872d3146105c857806393f6c2c6146105e857806395d89b4114610608578063a1c908d81461061d578063a217fddf1461063d578063a22cb46514610652578063a560090114610672578063ae3dfa2814610692578063b88d4fde146106b2578063c4d66de8146106d2578063c87b56dd146106e5578063ca15c87314610705578063cb2d93ce14610725578063cc33c87514610745578063d547741f14610775578063db69323a14610795578063e985e9c5146107b5578063fff7bb50146107d5575b600080fd5b34801561022c57600080fd5b5061024061023b36600461297b565b6107f5565b60405161024d9190612b47565b60405180910390f35b34801561026257600080fd5b5061027661027136600461291e565b610818565b60405161024d9190612b52565b34801561028f57600080fd5b5061029861082a565b60405161024d9190612b5b565b3480156102b157600080fd5b506102c56102c036600461291e565b6108c0565b60405161024d9190612b00565b3480156102de57600080fd5b506102f26102ed36600461277c565b61090f565b005b34801561030057600080fd5b506102766109ad565b34801561031557600080fd5b506102f261032436600461269a565b6109be565b34801561033557600080fd5b5061027661034436600461291e565b6109f9565b34801561035557600080fd5b506102f2610364366004612936565b610a0e565b34801561037557600080fd5b5061027661038436600461277c565b610a59565b34801561039557600080fd5b506102766103a436600461291e565b610a84565b3480156103b557600080fd5b506102f26103c4366004612936565b610a96565b3480156103d557600080fd5b506102766103e436600461291e565b610adb565b3480156103f557600080fd5b506102f261040436600461269a565b610aed565b34801561041557600080fd5b506102766104243660046129e5565b610b08565b34801561043557600080fd5b5061027661044436600461291e565b610b2b565b34801561045557600080fd5b5061027661046436600461291e565b610b3d565b34801561047557600080fd5b506102f26104843660046129b3565b610b53565b34801561049557600080fd5b50610276610b73565b3480156104aa57600080fd5b506102766104b93660046129e5565b610b7c565b3480156104ca57600080fd5b506102c56104d936600461291e565b610c07565b3480156104ea57600080fd5b506102f26104f9366004612829565b610c2f565b34801561050a57600080fd5b50610298610cf4565b34801561051f57600080fd5b5061027661052e36600461264b565b610d55565b34801561053f57600080fd5b5061027661054e36600461291e565b610da1565b34801561055f57600080fd5b50610276610e02565b34801561057457600080fd5b506102f2610583366004612a10565b610e14565b34801561059457600080fd5b506102c56105a336600461295a565b610e57565b3480156105b457600080fd5b506102406105c3366004612936565b610e6f565b3480156105d457600080fd5b506102766105e336600461291e565b610e87565b3480156105f457600080fd5b506102986106033660046129e5565b610eac565b34801561061457600080fd5b50610298610f5f565b34801561062957600080fd5b5061027661063836600461291e565b610fc0565b34801561064957600080fd5b50610276610fd2565b34801561065e57600080fd5b506102f261066d366004612741565b610fd7565b34801561067e57600080fd5b506102f261068d3660046127a6565b6110a8565b34801561069e57600080fd5b506102f26106ad366004612a4f565b611153565b3480156106be57600080fd5b506102f26106cd3660046126da565b6112ab565b6102f26106e036600461264b565b6112e7565b3480156106f157600080fd5b5061029861070036600461291e565b6115ea565b34801561071157600080fd5b5061027661072036600461291e565b611733565b34801561073157600080fd5b506102f261074036600461264b565b61174a565b34801561075157600080fd5b5061076561076036600461291e565b611762565b60405161024d949392919061328f565b34801561078157600080fd5b506102f2610790366004612936565b611789565b3480156107a157600080fd5b506102986107b03660046129e5565b6117c6565b3480156107c157600080fd5b506102406107d0366004612666565b611872565b3480156107e157600080fd5b506102766107f036600461291e565b6118a0565b600160e060020a0319811660009081526020819052604090205460ff165b919050565b600f6020526000908152604090205481565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108b65780601f1061088b576101008083540402835291602001916108b6565b820191906000526020600020905b81548152906001019060200180831161089957829003601f168201915b5050505050905090565b60006108cb826118f7565b6108f35760405160e560020a62461bcd0281526004016108ea90612fe8565b60405180910390fd5b50600090815260046020526040902054600160a060020a031690565b600061091a82610c07565b905080600160a060020a031683600160a060020a031614156109515760405160e560020a62461bcd0281526004016108ea90613124565b80600160a060020a0316610963611904565b600160a060020a0316148061097f575061097f816107d0611904565b61099e5760405160e560020a62461bcd0281526004016108ea90612e31565b6109a88383611908565b505050565b60006109b96002611976565b905090565b6109cf6109c9611904565b82611981565b6109ee5760405160e560020a62461bcd0281526004016108ea906131b2565b6109a8838383611a09565b6000908152600b602052604090206002015490565b6000828152600b6020526040902060020154610a2c906105c3611904565b610a4b5760405160e560020a62461bcd0281526004016108ea90612bb3565b610a558282611b0b565b5050565b600160a060020a0382166000908152600160205260408120610a7b9083611b74565b90505b92915050565b60116020526000908152604090205481565b610a9e611904565b600160a060020a031681600160a060020a031614610ad15760405160e560020a62461bcd0281526004016108ea9061323d565b610a558282611b80565b60106020526000908152604090205481565b6109a8838383604051806020016040528060008152506112ab565b601360209081526000938452604080852082529284528284209052825290205481565b600e6020526000908152604090205481565b600080610b4b600284611be9565b509392505050565b610b5e600033610e6f565b610b6757600080fd5b610b7081611c05565b50565b64e8d4a5100081565b6000831580610b89575082155b80610b92575081155b15610b9f57506000610c00565b6000198083016000908152601060209081526040808320548785018452600f8352818420549489018452600e90925290912054610bfd9264e8d4a5100092610bf1929091610bf7918591859190611c18565b90611c55565b90611c18565b90505b9392505050565b6000610a7e826040518060600160405280602981526020016133996029913960029190611c8a565b610c3a600033610e6f565b610c4357600080fd5b60005b8451811015610ced57818181518110610c5b57fe5b6020026020010151600d6000878481518110610c7357fe5b602002602001015181526020019081526020016000206000868481518110610c9757fe5b602002602001015181526020019081526020016000206000858481518110610cbb57fe5b602002602001015181526020019081526020016000209080519060200190610ce49291906124cb565b50600101610c46565b5050505050565b60098054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108b65780601f1061088b576101008083540402835291602001916108b6565b6000600160a060020a038216610d805760405160e560020a62461bcd0281526004016108ea90612e8c565b600160a060020a0382166000908152600160205260409020610a7e90611976565b600080610dad83610e87565b600081815260116020908152604080832054878452600c909252909120600301549192509064e8d4a51000610df8610de88362989680611c18565b610df28386611c97565b90611c97565b9695505050505050565b60008051602061337983398151915281565b610e1f600033610e6f565b610e2857600080fd5b6000848152600d60209081526040808320868452825280832085845282529091208251610ced928401906124cb565b6000828152600b60205260408120610a7b9083611b74565b6000828152600b60205260408120610a7b9083611cbf565b6000818152600c6020526040812080546001820154600290920154610a7e9290610b7c565b6000838152600d60209081526040808320858452825280832084845282529182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845260609392830182828015610f515780601f10610f2657610100808354040283529160200191610f51565b820191906000526020600020905b815481529060010190602001808311610f3457829003601f168201915b505050505090509392505050565b60078054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108b65780601f1061088b576101008083540402835291602001916108b6565b60126020526000908152604090205481565b600081565b610fdf611904565b600160a060020a031682600160a060020a031614156110135760405160e560020a62461bcd0281526004016108ea90612cfd565b8060056000611020611904565b600160a060020a03908116825260208083019390935260409182016000908120918716808252919093529120805460ff191692151592909217909155611064611904565b600160a060020a03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161109c9190612b47565b60405180910390a35050565b6110b3600033610e6f565b6110bc57600080fd5b60005b835181101561114d578281815181106110d457fe5b6020026020010151601160008684815181106110ec57fe5b602002602001015181526020019081526020016000208190555081818151811061111257fe5b60200260200101516012600086848151811061112a57fe5b6020908102919091018101518252810191909152604001600020556001016110bf565b50505050565b61116b60008051602061337983398151915233610e6f565b61117457600080fd5b61117e3386611cd4565b60008411801561118e5750600584105b6111ad5760405160e560020a62461bcd0281526004016108ea90613168565b6000858152600c60209081526040808320878155600180820188905560028083018890556003909201869055888552600d84528285208886528452828520878652845293829020805483519581161561010002600019011691909104601f81018490048402850184019092528184526112809389939092908301828280156112765780601f1061124b57610100808354040283529160200191611276565b820191906000526020600020905b81548152906001019060200180831161125957829003601f168201915b5050505050611cee565b5060009283526013602090815260408085209385529281528284209184525290208054600101905550565b6112bc6112b6611904565b83611981565b6112db5760405160e560020a62461bcd0281526004016108ea906131b2565b61114d84848484611d35565b600a54610100900460ff16806113005750611300611d6b565b8061130e5750600a5460ff16155b61132d5760405160e560020a62461bcd0281526004016108ea90612ed9565b600a54610100900460ff1615801561135857600a805460ff1961ff0019909116610100171660011790555b611363600083610a4b565b61137c6000805160206133798339815191526000611d7c565b648bb2c970007fe710864318d4a32f37d6ce54cb3fadbef648dd12d8dbdf53973564d56b7f881c556445d964b8007fa7c5ba7114a813b50159add3a36832908dc83db71d0b9a24c2ad0f83be958207819055640ba43b74007f9adb202b1492743bc00c81d33cdc6423fa8c79109027eb6a845391e8fc1f04818190556402540be4007fe0283e559c29e31ee7f56467acc9dd307779c843a883aeeb3bf5c6128c908144819055645d21dba0007ff4803e074bd026baaf6ed2e288c9515f68c72fb7216eebdd7cae1718a53ec37555644cd58864007f169f97de0d9a84d840042b17d3c6b9638b3d6fd9024c9eb0c7a306a17b49f88f55642794ca24007fa74ba3945261e09fde15ba3db55005b205e61eeb4ad811ac0faa2b315bffeead5564104c533c007f45f76dafbbad695564362934e24d72eedc57f9fc1a65f39bca62176cc8296828556404a817c8007f367ccd2d0ac16bf7110a5dffe0801fdc9452a95a1adb7e1a12fe97dd3e9a4edd557f6bda57492eba051cb4a12a1e19df47c9755d78165341d4009b1d09b3f361620455601060205264517da02c007f6e0956cda88cad152e89927e53611735b61a5c762d1428573c6931b0a5efcb01557f8c6065603763fec3f5742441d3833f3f43b982453612d76adb39a885e3006b5f91909155642e90edd0007f853b2fefe141400fef543280f93d98bd49996069f632d0d20236afeeed8e46a25564174876e8007fb3edd0d534d647cffdae9f1294f11ad21f3fcf2814bea44c92bbb8d384a57d9e5560046000527f1588ac671d87f82adc0e6ae8ab009c0de98f92a20243897597e566bc59b9c126558015610a5557600a805461ff00191690555050565b60606115f5826118f7565b6116145760405160e560020a62461bcd0281526004016108ea906130d2565b60008281526008602090815260409182902080548351601f60026000196101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156116a95780601f1061167e576101008083540402835291602001916116a9565b820191906000526020600020905b81548152906001019060200180831161168c57829003601f168201915b5050505050905060606116ba610cf4565b90508051600014156116ce57509050610813565b8151156117005780826040516020016116e8929190612ad1565b60405160208183030381529060405292505050610813565b8061170a85611dce565b60405160200161171b929190612ad1565b60405160208183030381529060405292505050919050565b6000818152600b60205260408120610a7e90611976565b610b7060008051602061337983398151915282610a0e565b600c6020526000908152604090208054600182015460028301546003909301549192909184565b6000828152600b60205260409020600201546117a7906105c3611904565b610ad15760405160e560020a62461bcd0281526004016108ea90612df0565b600d60209081526000938452604080852082529284528284208152908352918190208054825160026001831615610100026000190190921691909104601f81018590048502820185019093528281529290919083018282801561186a5780601f1061183f5761010080835404028352916020019161186a565b820191906000526020600020905b81548152906001019060200180831161184d57829003601f168201915b505050505081565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000806118ac83610e87565b600081815260126020908152604080832054878452600c909252909120600301549192509064e8d4a51000610df86118e78362989680611c18565b6118f18386611eae565b90611eae565b6000610a7e600283611ed9565b3390565b60008181526004602052604090208054600160a060020a031916600160a060020a038416908117909155819061193d82610c07565b600160a060020a03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610a7e82611ee5565b600061198c826118f7565b6119ab5760405160e560020a62461bcd0281526004016108ea90612d6a565b60006119b683610c07565b905080600160a060020a031684600160a060020a031614806119f1575083600160a060020a03166119e6846108c0565b600160a060020a0316145b80611a015750611a018185611872565b949350505050565b82600160a060020a0316611a1c82610c07565b600160a060020a031614611a455760405160e560020a62461bcd0281526004016108ea90613086565b600160a060020a038216611a6e5760405160e560020a62461bcd0281526004016108ea90612cb6565b611a798383836109a8565b611a84600082611908565b600160a060020a0383166000908152600160205260409020611aa69082611ee9565b50600160a060020a0382166000908152600160205260409020611ac99082611ef5565b50611ad660028284611f01565b508082600160a060020a031684600160a060020a03166000805160206133c283398151915260405160405180910390a4505050565b6000828152600b60205260409020611b239082611f17565b15610a5557611b30611904565b600160a060020a031681600160a060020a0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610a7b8383611f2c565b6000828152600b60205260409020611b989082611f74565b15610a5557611ba5611904565b600160a060020a031681600160a060020a0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000808080611bf88686611f89565b9097909650945050505050565b8051610a559060099060208401906124cb565b600082611c2757506000610a7e565b82820282848281611c3457fe5b0414610a7b5760405160e560020a62461bcd0281526004016108ea90612fa4565b6000808211611c795760405160e560020a62461bcd0281526004016108ea90612db9565b818381611c8257fe5b049392505050565b6000610bfd848484611fe8565b600082820183811015610a7b5760405160e560020a62461bcd0281526004016108ea90612c7f565b6000610a7b83600160a060020a03841661204a565b610a55828260405180602001604052806000815250612062565b611cf7826118f7565b611d165760405160e560020a62461bcd0281526004016108ea90613037565b600082815260086020908152604090912082516109a8928401906124cb565b611d40848484611a09565b611d4c84848484612098565b61114d5760405160e560020a62461bcd0281526004016108ea90612bf3565b6000611d763061217d565b15905090565b6000828152600b6020526040808220600201549051839285917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a46000918252600b602052604090912060020155565b606081611df65750604080518082019091526001815260fc60020a6003026020820152610813565b8160005b8115611e0e57600101600a82049150611dfa565b6060816001604060020a0381118015611e2657600080fd5b506040519080825280601f01601f191660200182016040528015611e51576020820181803683370190505b50859350905060001982015b8315611ea557600a840660300160f860020a0282828060019003935081518110611e8357fe5b6020010190600160f860020a031916908160001a905350600a84049350611e5d565b50949350505050565b600082821115611ed35760405160e560020a62461bcd0281526004016108ea90612d33565b50900390565b6000610a7b838361204a565b5490565b6000610a7b8383612183565b6000610a7b8383612249565b6000610bfd8484600160a060020a038516612293565b6000610a7b83600160a060020a038416612249565b81546000908210611f525760405160e560020a62461bcd0281526004016108ea90612b6e565b826000018281548110611f6157fe5b9060005260206000200154905092915050565b6000610a7b83600160a060020a038416612183565b815460009081908310611fb15760405160e560020a62461bcd0281526004016108ea90612f2a565b6000846000018481548110611fc257fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b6000828152600184016020526040812054828161201b5760405160e560020a62461bcd0281526004016108ea9190612b5b565b5084600001600182038154811061202e57fe5b9060005260206000209060020201600101549150509392505050565b60009081526001919091016020526040902054151590565b61206c838361232a565b6120796000848484612098565b6109a85760405160e560020a62461bcd0281526004016108ea90612bf3565b60006120ac84600160a060020a031661217d565b6120b857506001611a01565b606061214360e160020a630a85bd01026120d0611904565b8887876040516024016120e69493929190612b14565b60405160208183030381529060405290600160e060020a031916602082018051600160e060020a03838183161783525050505060405180606001604052806032815260200161334760329139600160a060020a03881691906123e2565b905060008180602001905181019061215b9190612997565b600160e060020a03191660e160020a630a85bd01021492505050949350505050565b3b151590565b6000818152600183016020526040812054801561223f57835460001980830191908101906000908790839081106121b657fe5b90600052602060002001549050808760000184815481106121d357fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061220357fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610a7e565b6000915050610a7e565b6000612255838361204a565b61228b57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610a7e565b506000610a7e565b6000828152600184016020526040812054806122f8575050604080518082018252838152602080820184815286546001818101895560008981528481209551600290930290950191825591519082015586548684528188019092529290912055610c00565b8285600001600183038154811061230b57fe5b9060005260206000209060020201600101819055506000915050610c00565b600160a060020a0382166123535760405160e560020a62461bcd0281526004016108ea90612f6f565b61235c816118f7565b1561237c5760405160e560020a62461bcd0281526004016108ea90612c48565b612388600083836109a8565b600160a060020a03821660009081526001602052604090206123aa9082611ef5565b506123b760028284611f01565b506040518190600160a060020a038416906000906000805160206133c2833981519152908290a45050565b6060610bfd8484600085856123f68561217d565b6124155760405160e560020a62461bcd0281526004016108ea90613206565b6000606086600160a060020a031685876040516124329190612ab5565b60006040518083038185875af1925050503d806000811461246f576040519150601f19603f3d011682016040523d82523d6000602084013e612474565b606091505b509150915061248482828661248f565b979650505050505050565b6060831561249e575081610c00565b8251156124ae5782518084602001fd5b8160405160e560020a62461bcd0281526004016108ea9190612b5b565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061250c57805160ff1916838001178555612539565b82800160010185558215612539579182015b8281111561253957825182559160200191906001019061251e565b50612545929150612549565b5090565b5b80821115612545576000815560010161254a565b8035600160a060020a0381168114610a7e57600080fd5b600082601f830112612585578081fd5b8135612598612593826132d0565b6132aa565b8181529150602080830190848101818402860182018710156125b957600080fd5b60005b848110156125d8578135845292820192908201906001016125bc565b505050505092915050565b600082601f8301126125f3578081fd5b81356001604060020a03811115612608578182fd5b61261b601f8201601f19166020016132aa565b915080825283602082850101111561263257600080fd5b8060208401602084013760009082016020015292915050565b60006020828403121561265c578081fd5b610a7b838361255e565b60008060408385031215612678578081fd5b612682848461255e565b9150612691846020850161255e565b90509250929050565b6000806000606084860312156126ae578081fd5b83356126b98161331b565b925060208401356126c98161331b565b929592945050506040919091013590565b600080600080608085870312156126ef578081fd5b6126f9868661255e565b9350612708866020870161255e565b92506040850135915060608501356001604060020a03811115612729578182fd5b612735878288016125e3565b91505092959194509250565b60008060408385031215612753578182fd5b61275d848461255e565b915060208301358015158114612771578182fd5b809150509250929050565b6000806040838503121561278e578182fd5b612798848461255e565b946020939093013593505050565b6000806000606084860312156127ba578283fd5b83356001604060020a03808211156127d0578485fd5b6127dc87838801612575565b945060208601359150808211156127f1578384fd5b6127fd87838801612575565b93506040860135915080821115612812578283fd5b5061281f86828701612575565b9150509250925092565b6000806000806080858703121561283e578384fd5b84356001604060020a0380821115612854578586fd5b61286088838901612575565b9550602091508187013581811115612876578586fd5b61288289828a01612575565b955050604087013581811115612896578485fd5b6128a289828a01612575565b9450506060870135818111156128b6578384fd5b87019050601f810188136128c8578283fd5b80356128d6612593826132d0565b81815283810190838501865b8481101561290b576128f98d8884358901016125e3565b845292860192908601906001016128e2565b5050809550505050505092959194509250565b60006020828403121561292f578081fd5b5035919050565b60008060408385031215612948578182fd5b8235915060208301356127718161331b565b6000806040838503121561296c578182fd5b50508035926020909101359150565b60006020828403121561298c578081fd5b8135610a7b81613330565b6000602082840312156129a8578081fd5b8151610a7b81613330565b6000602082840312156129c4578081fd5b81356001604060020a038111156129d9578182fd5b611a01848285016125e3565b6000806000606084860312156129f9578081fd5b505081359360208301359350604090920135919050565b60008060008060808587031215612a25578182fd5b84359350602085013592506040850135915060608501356001604060020a03811115612729578182fd5b600080600080600060a08688031215612a66578283fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008151808452612aa18160208601602086016132ef565b601f01601f19169290920160200192915050565b60008251612ac78184602087016132ef565b9190910192915050565b60008351612ae38184602088016132ef565b835190830190612af78183602088016132ef565b01949350505050565b600160a060020a0391909116815260200190565b600160a060020a0385811682528416602082015260408101839052608060608201819052600090610df890830184612a89565b901515815260200190565b90815260200190565b600060208252610a7b6020830184612a89565b60208082526022908201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604082015260f060020a61647302606082015260800190565b6020808252602f908201526000805160206133e28339815191526040820152608a60020a6e0818591b5a5b881d1bc819dc985b9d02606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e2045524337323152656040820152607160020a7131b2b4bb32b91034b6b83632b6b2b73a32b902606082015260800190565b6020808252601c908201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526024908201527f4552433732313a207472616e7366657220746f20746865207a65726f20616464604082015260e060020a637265737302606082015260800190565b6020808252601990820152603960020a7822a9219b99189d1030b8383937bb32903a379031b0b63632b902604082015260600190565b6020808252601e908201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604082015260600190565b6020808252602c908201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578604082015260a160020a6b34b9ba32b73a103a37b5b2b702606082015260800190565b6020808252601a908201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604082015260600190565b60208082526030908201526000805160206133e28339815191526040820152608060020a6f2061646d696e20746f207265766f6b6502606082015260800190565b60208082526038908201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776040820152604260020a771b995c881b9bdc88185c1c1c9bdd995908199bdc88185b1b02606082015260800190565b6020808252602a908201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604082015260b060020a69726f206164647265737302606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c7265616040820152609260020a6d191e481a5b9a5d1a585b1a5e995902606082015260800190565b60208082526022908201527f456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e604082015260f060020a61647302606082015260800190565b6020808252818101527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f604082015260f860020a607702606082015260800190565b6020808252602c908201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e6578604082015260a160020a6b34b9ba32b73a103a37b5b2b702606082015260800190565b6020808252602c908201527f4552433732314d657461646174613a2055524920736574206f66206e6f6e6578604082015260a160020a6b34b9ba32b73a103a37b5b2b702606082015260800190565b60208082526029908201527f4552433732313a207472616e73666572206f6620746f6b656e20746861742069604082015260b960020a6839903737ba1037bbb702606082015260800190565b6020808252602f908201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f6040820152608960020a6e3732bc34b9ba32b73a103a37b5b2b702606082015260800190565b60208082526021908201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e65604082015260f960020a603902606082015260800190565b60208082526027908201527f6c6576656c206d757374206c6172676572207468616e20302c206c6573736572604082015260c860020a66207468616e203502606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152607a60020a701ddb995c881b9bdc88185c1c1c9bdd995902606082015260800190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e63656040820152608960020a6e103937b632b9903337b91039b2b63302606082015260800190565b93845260208401929092526040830152606082015260800190565b6040518181016001604060020a03811182821017156132c857600080fd5b604052919050565b60006001604060020a038211156132e5578081fd5b5060209081020190565b60005b8381101561330a5781810151838201526020016132f2565b8381111561114d5750506000910152565b600160a060020a0381168114610b7057600080fd5b600160e060020a031981168114610b7057600080fdfe4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465725eef2d0cdce42042b2a1881ea7f51ddbc3df94d471ed2a17f74c02f01f8301e34552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656eddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef416363657373436f6e74726f6c3a2073656e646572206d75737420626520616ea26469706673582212206995562039a7d8205cfd95e232fbf3d6794776b85330c0e2db1b205a0add91b664736f6c634300060c0033