[ { "inputs": [ { "internalType": "contract IGAC", "name": "_globalAccessControl", "type": "address" }, { "internalType": "contract IFEYFactory", "name": "_feyProductFactory", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "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": "address", "name": "newFactory", "type": "address" } ], "name": "FEYProductFactoryUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [ { "internalType": "contract IGAC", "name": "_globalAccessControl", "type": "address" } ], "name": "__GACManaged_init", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "owners", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "balances", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "name": "burnBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "gac", "outputs": [ { "internalType": "contract IGAC", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "mintBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "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": "contract IFEYFactory", "name": "_feyProductFactory", "type": "address" } ], "name": "setFeyProductFactory", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newuri", "type": "string" } ], "name": "setURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
60806040523480156200001157600080fd5b50604051620029e1380380620029e1833981016040819052620000349162000109565b6003805460ff19169055620000498262000070565b600580546001600160a01b0319166001600160a01b039290921691909117905550620001a0565b600354604080518082019091526002815261333360f01b602082015290600160a81b900460ff1615620000c15760405162461bcd60e51b8152600401620000b8919062000148565b60405180910390fd5b50600380546001600160a01b0390921661010002610100600160b01b031990921691909117600160a81b179055565b6001600160a01b03811681146200010657600080fd5b50565b600080604083850312156200011d57600080fd5b82516200012a81620000f0565b60208401519092506200013d81620000f0565b809150509250929050565b600060208083528351808285015260005b81811015620001775785810183015185820160400152820162000159565b818111156200018a576000604083870101525b50601f01601f1916929092016040019392505050565b61283180620001b06000396000f3fe608060405234801561001057600080fd5b50600436106100fb5760003560e01c8062fdd58e1461010057806301ffc9a71461013b57806302fe53051461015e5780630e89341c146101735780631f7fdffa146101935780632eb2c2d6146101a65780633f4ba83a146101b9578063498c414b146101c15780634e1273f4146101d45780635c975abb146101f45780636b20c454146101ff578063731133e9146102125780638456cb5914610225578063a22cb4651461022d578063bd85b03914610240578063ceff10f314610260578063e985e9c514610273578063f242432a146102a1578063f4e79fc3146102b4578063f5298aca146102d9575b600080fd5b61012861010e366004611d9a565b600060208181529281526040808220909352908152205481565b6040519081526020015b60405180910390f35b61014e610149366004611ddc565b6102ec565b6040519015158152602001610132565b61017161016c366004611e9d565b6102fd565b005b610186610181366004611eed565b6103d3565b6040516101329190611f53565b6101716101a1366004612014565b610467565b6101716101b436600461213a565b610542565b6101716105f7565b6101716101cf3660046121f8565b6106c2565b6101e76101e2366004612215565b610736565b6040516101329190612311565b60035460ff1661014e565b61017161020d366004612324565b610841565b610171610220366004612399565b610970565b610171610a44565b61017161023b3660046123fd565b610b0c565b61012861024e366004611eed565b60026020526000908152604090205481565b61017161026e3660046121f8565b610b78565b61014e610281366004612436565b600160209081526000928352604080842090915290825290205460ff1681565b6101716102af366004612464565b610c83565b6003546102cc9061010090046001600160a01b031681565b60405161013291906124df565b6101716102e73660046124f3565b610cd6565b60006102f782610dff565b92915050565b600354604051632474521560e21b815260008051602061279c8339815191529161010090046001600160a01b0316906391d14854906103429084903390600401612528565b602060405180830381865afa15801561035f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610383919061253f565b60405180604001604052806002815260200161323960f01b815250906103c55760405162461bcd60e51b81526004016103bc9190611f53565b60405180910390fd5b506103cf82610e4d565b5050565b6060600480546103e29061255c565b80601f016020809104026020016040519081016040528092919081815260200182805461040e9061255c565b801561045b5780601f106104305761010080835404028352916020019161045b565b820191906000526020600020905b81548152906001019060200180831161043e57829003601f168201915b50505050509050919050565b61046f610e60565b600354604051632474521560e21b81526000805160206127bc8339815191529161010090046001600160a01b0316906391d14854906104b49084903390600401612528565b602060405180830381865afa1580156104d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f5919061253f565b60405180604001604052806002815260200161323960f01b8152509061052e5760405162461bcd60e51b81526004016103bc9190611f53565b5061053b85858585610f52565b5050505050565b61054a610e60565b6105ed888888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808c0282810182019093528b82529093508b92508a91829185019084908082843760009201919091525050604080516020601f8b01819004810282018101909252898152925089915088908190840183828082843760009201919091525061117892505050565b5050505050505050565b600354604051632474521560e21b81526000805160206127dc8339815191529161010090046001600160a01b0316906391d148549061063c9084903390600401612528565b602060405180830381865afa158015610659573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067d919061253f565b60405180604001604052806002815260200161323960f01b815250906106b65760405162461bcd60e51b81526004016103bc9190611f53565b506106bf6113db565b50565b600354604080518082019091526002815261333360f01b602082015290600160a81b900460ff16156107075760405162461bcd60e51b81526004016103bc9190611f53565b50600380546001600160a01b0390921661010002610100600160b01b031990921691909117600160a81b179055565b8151815160609190811461075c5760405162461bcd60e51b81526004016103bc90612597565b83516001600160401b0381111561077557610775611e00565b60405190808252806020026020018201604052801561079e578160200160208202803683370190505b50915060005b81811015610839576000808683815181106107c1576107c16125c0565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008583815181106107fd576107fd6125c0565b6020026020010151815260200190815260200160002054838281518110610826576108266125c0565b60209081029190910101526001016107a4565b505092915050565b600354604051632474521560e21b81526000805160206127bc8339815191529161010090046001600160a01b0316906391d14854906108869084903390600401612528565b602060405180830381865afa1580156108a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c7919061253f565b60405180604001604052806002815260200161323960f01b815250906109005760405162461bcd60e51b81526004016103bc9190611f53565b50610909610e60565b336001600160a01b038516148061094357506001600160a01b038416600090815260016020908152604080832033845290915290205460ff165b61095f5760405162461bcd60e51b81526004016103bc906125d6565b61096a848484611427565b50505050565b610978610e60565b600354604051632474521560e21b81526000805160206127bc8339815191529161010090046001600160a01b0316906391d14854906109bd9084903390600401612528565b602060405180830381865afa1580156109da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fe919061253f565b60405180604001604052806002815260200161323960f01b81525090610a375760405162461bcd60e51b81526004016103bc9190611f53565b5061053b8585858561159f565b600354604051632474521560e21b81526000805160206127dc8339815191529161010090046001600160a01b0316906391d1485490610a899084903390600401612528565b602060405180830381865afa158015610aa6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aca919061253f565b60405180604001604052806002815260200161323960f01b81525090610b035760405162461bcd60e51b81526004016103bc9190611f53565b506106bf611725565b3360008181526001602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b600354604051632474521560e21b815260008051602061279c8339815191529161010090046001600160a01b0316906391d1485490610bbd9084903390600401612528565b602060405180830381865afa158015610bda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfe919061253f565b60405180604001604052806002815260200161323960f01b81525090610c375760405162461bcd60e51b81526004016103bc9190611f53565b50600580546001600160a01b0319166001600160a01b0384169081179091556040517fb1ea44e393e2bc5aefa40b4ead76bf806e0b87c0be7de7a3934fe0cc327efa4590600090a25050565b610c8b610e60565b610cce8686868686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061176292505050565b505050505050565b600354604051632474521560e21b81526000805160206127bc8339815191529161010090046001600160a01b0316906391d1485490610d1b9084903390600401612528565b602060405180830381865afa158015610d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5c919061253f565b60405180604001604052806002815260200161323960f01b81525090610d955760405162461bcd60e51b81526004016103bc9190611f53565b50610d9e610e60565b336001600160a01b0385161480610dd857506001600160a01b038416600090815260016020908152604080832033845290915290205460ff165b610df45760405162461bcd60e51b81526004016103bc906125d6565b61096a848484611948565b60006301ffc9a760e01b6001600160e01b031983161480610e305750636cdb3d1360e11b6001600160e01b03198316145b806102f75750506001600160e01b0319166303a24d0760e21b1490565b80516103cf906004906020840190611cec565b600360019054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed7919061253f565b1560405180604001604052806002815260200161333160f01b81525090610f115760405162461bcd60e51b81526004016103bc9190611f53565b5060035460ff161560405180604001604052806002815260200161199960f11b815250906106bf5760405162461bcd60e51b81526004016103bc9190611f53565b825182518114610f745760405162461bcd60e51b81526004016103bc90612597565b610f8333600087878787611a19565b60005b8181101561106e57838181518110610fa057610fa06125c0565b6020026020010151600080886001600160a01b03166001600160a01b031681526020019081526020016000206000878481518110610fe057610fe06125c0565b6020026020010151815260200190815260200160002060008282546110059190612614565b9250508190555083818151811061101e5761101e6125c0565b60200260200101516002600087848151811061103c5761103c6125c0565b6020026020010151815260200190815260200160002060008282546110619190612614565b9091555050600101610f86565b50846001600160a01b031660006001600160a01b0316336001600160a01b031660008051602061275c83398151915287876040516110ad92919061262c565b60405180910390a46001600160a01b0385163b1561114f5760405163bc197c8160e01b808252906001600160a01b0387169063bc197c81906110fc9033906000908a908a908a9060040161265a565b6020604051808303816000875af115801561111b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113f91906126b8565b6001600160e01b0319161461115c565b6001600160a01b03851615155b61053b5760405162461bcd60e51b81526004016103bc906126d5565b82518251811461119a5760405162461bcd60e51b81526004016103bc90612597565b336001600160a01b03871614806111d457506001600160a01b038616600090815260016020908152604080832033845290915290205460ff165b6111f05760405162461bcd60e51b81526004016103bc906125d6565b6111fe338787878787611a19565b60005b818110156112d357600085828151811061121d5761121d6125c0565b60200260200101519050600085838151811061123b5761123b6125c0565b60200260200101519050806000808b6001600160a01b03166001600160a01b031681526020019081526020016000206000848152602001908152602001600020600082825461128a91906126ff565b90915550506001600160a01b038816600090815260208181526040808320858452909152812080548392906112c0908490612614565b9091555050600190920191506112019050565b50846001600160a01b0316866001600160a01b0316336001600160a01b031660008051602061275c833981519152878760405161131192919061262c565b60405180910390a46001600160a01b0385163b156113b25760405163bc197c8160e01b808252906001600160a01b0387169063bc197c819061135f9033908b908a908a908a9060040161265a565b6020604051808303816000875af115801561137e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a291906126b8565b6001600160e01b031916146113bf565b6001600160a01b03851615155b610cce5760405162461bcd60e51b81526004016103bc906126d5565b6113e3611c10565b6003805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405161141d91906124df565b60405180910390a1565b8151815181146114495760405162461bcd60e51b81526004016103bc90612597565b61146733856000868660405180602001604052806000815250611a19565b60005b8181101561155257828181518110611484576114846125c0565b6020026020010151600080876001600160a01b03166001600160a01b0316815260200190815260200160002060008684815181106114c4576114c46125c0565b6020026020010151815260200190815260200160002060008282546114e991906126ff565b92505081905550828181518110611502576115026125c0565b602002602001015160026000868481518110611520576115206125c0565b60200260200101518152602001908152602001600020600082825461154591906126ff565b909155505060010161146a565b5060006001600160a01b0316846001600160a01b0316336001600160a01b031660008051602061275c833981519152868660405161159192919061262c565b60405180910390a450505050565b3360006115ab85611c5b565b905060006115b885611c5b565b90506115c983600089858589611a19565b6001600160a01b038716600090815260208181526040808320898452909152812080548792906115fa908490612614565b90915550506000868152600260205260408120805487929061161d908490612614565b909155505060408051878152602081018790526001600160a01b03891691600091339160008051602061277c833981519152910160405180910390a46001600160a01b0387163b156116f35760405163f23a6e6160e01b808252906001600160a01b0389169063f23a6e61906116a09033906000908c908c908c90600401612716565b6020604051808303816000875af11580156116bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e391906126b8565b6001600160e01b03191614611700565b6001600160a01b03871615155b61171c5760405162461bcd60e51b81526004016103bc906126d5565b50505050505050565b61172d611ca6565b6003805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586114103390565b336001600160a01b038616148061179c57506001600160a01b038516600090815260016020908152604080832033845290915290205460ff165b6117b85760405162461bcd60e51b81526004016103bc906125d6565b3360006117c485611c5b565b905060006117d185611c5b565b90506117e1838989858589611a19565b6001600160a01b038816600090815260208181526040808320898452909152812080548792906118129084906126ff565b90915550506001600160a01b03871660009081526020818152604080832089845290915281208054879290611848908490612614565b909155505060408051878152602081018790526001600160a01b03808a1692908b1691339160008051602061277c833981519152910160405180910390a46001600160a01b0387163b1561191f5760405163f23a6e6160e01b808252906001600160a01b0389169063f23a6e61906118cc9033908d908c908c908c90600401612716565b6020604051808303816000875af11580156118eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190f91906126b8565b6001600160e01b0319161461192c565b6001600160a01b03871615155b6105ed5760405162461bcd60e51b81526004016103bc906126d5565b33600061195484611c5b565b9050600061196184611c5b565b905061198183876000858560405180602001604052806000815250611a19565b6001600160a01b038616600090815260208181526040808320888452909152812080548692906119b29084906126ff565b9091555050600085815260026020526040812080548692906119d59084906126ff565b909155505060408051868152602081018690526000916001600160a01b03891691339160008051602061277c833981519152910160405180910390a4505050505050565b611a21610e60565b6001600160a01b038516611b1757825160005b81811015611b105760055485516001600160a01b03909116906369fa064790879084908110611a6557611a656125c0565b60200260200101516040518263ffffffff1660e01b8152600401611a8b91815260200190565b602060405180830381865afa158015611aa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611acc919061253f565b611b085760405162461bcd60e51b815260206004820152600d60248201526c1352539517d11254d050931151609a1b60448201526064016103bc565b600101611a34565b5050610cce565b6001600160a01b03841615611c0b57825160005b81811015611b105760055485516001600160a01b0390911690635fd1a72790879084908110611b5c57611b5c6125c0565b6020026020010151896040518363ffffffff1660e01b8152600401611b82929190612528565b602060405180830381865afa158015611b9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc3919061253f565b611c035760405162461bcd60e51b81526020600482015260116024820152701514905394d1915497d11254d050931151607a1b60448201526064016103bc565b600101611b2b565b610cce565b60035460ff16611c595760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016103bc565b565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110611c9557611c956125c0565b602090810291909101015292915050565b60035460ff1615611c595760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016103bc565b828054611cf89061255c565b90600052602060002090601f016020900481019282611d1a5760008555611d60565b82601f10611d3357805160ff1916838001178555611d60565b82800160010185558215611d60579182015b82811115611d60578251825591602001919060010190611d45565b50611d6c929150611d70565b5090565b5b80821115611d6c5760008155600101611d71565b6001600160a01b03811681146106bf57600080fd5b60008060408385031215611dad57600080fd5b8235611db881611d85565b946020939093013593505050565b6001600160e01b0319811681146106bf57600080fd5b600060208284031215611dee57600080fd5b8135611df981611dc6565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611e3e57611e3e611e00565b604052919050565b60006001600160401b03831115611e5f57611e5f611e00565b611e72601f8401601f1916602001611e16565b9050828152838383011115611e8657600080fd5b828260208301376000602084830101529392505050565b600060208284031215611eaf57600080fd5b81356001600160401b03811115611ec557600080fd5b8201601f81018413611ed657600080fd5b611ee584823560208401611e46565b949350505050565b600060208284031215611eff57600080fd5b5035919050565b6000815180845260005b81811015611f2c57602081850181015186830182015201611f10565b81811115611f3e576000602083870101525b50601f01601f19169290920160200192915050565b602081526000611df96020830184611f06565b60006001600160401b03821115611f7f57611f7f611e00565b5060051b60200190565b600082601f830112611f9a57600080fd5b81356020611faf611faa83611f66565b611e16565b82815260059290921b84018101918181019086841115611fce57600080fd5b8286015b84811015611fe95780358352918301918301611fd2565b509695505050505050565b600082601f83011261200557600080fd5b611df983833560208501611e46565b6000806000806080858703121561202a57600080fd5b843561203581611d85565b935060208501356001600160401b038082111561205157600080fd5b61205d88838901611f89565b9450604087013591508082111561207357600080fd5b61207f88838901611f89565b9350606087013591508082111561209557600080fd5b506120a287828801611ff4565b91505092959194509250565b60008083601f8401126120c057600080fd5b5081356001600160401b038111156120d757600080fd5b6020830191508360208260051b85010111156120f257600080fd5b9250929050565b60008083601f84011261210b57600080fd5b5081356001600160401b0381111561212257600080fd5b6020830191508360208285010111156120f257600080fd5b60008060008060008060008060a0898b03121561215657600080fd5b883561216181611d85565b9750602089013561217181611d85565b965060408901356001600160401b038082111561218d57600080fd5b6121998c838d016120ae565b909850965060608b01359150808211156121b257600080fd5b6121be8c838d016120ae565b909650945060808b01359150808211156121d757600080fd5b506121e48b828c016120f9565b999c989b5096995094979396929594505050565b60006020828403121561220a57600080fd5b8135611df981611d85565b6000806040838503121561222857600080fd5b82356001600160401b038082111561223f57600080fd5b818501915085601f83011261225357600080fd5b81356020612263611faa83611f66565b82815260059290921b8401810191818101908984111561228257600080fd5b948201945b838610156122a957853561229a81611d85565b82529482019490820190612287565b965050860135925050808211156122bf57600080fd5b506122cc85828601611f89565b9150509250929050565b600081518084526020808501945080840160005b83811015612306578151875295820195908201906001016122ea565b509495945050505050565b602081526000611df960208301846122d6565b60008060006060848603121561233957600080fd5b833561234481611d85565b925060208401356001600160401b038082111561236057600080fd5b61236c87838801611f89565b9350604086013591508082111561238257600080fd5b5061238f86828701611f89565b9150509250925092565b600080600080608085870312156123af57600080fd5b84356123ba81611d85565b9350602085013592506040850135915060608501356001600160401b038111156123e357600080fd5b6120a287828801611ff4565b80151581146106bf57600080fd5b6000806040838503121561241057600080fd5b823561241b81611d85565b9150602083013561242b816123ef565b809150509250929050565b6000806040838503121561244957600080fd5b823561245481611d85565b9150602083013561242b81611d85565b60008060008060008060a0878903121561247d57600080fd5b863561248881611d85565b9550602087013561249881611d85565b9450604087013593506060870135925060808701356001600160401b038111156124c157600080fd5b6124cd89828a016120f9565b979a9699509497509295939492505050565b6001600160a01b0391909116815260200190565b60008060006060848603121561250857600080fd5b833561251381611d85565b95602085013595506040909401359392505050565b9182526001600160a01b0316602082015260400190565b60006020828403121561255157600080fd5b8151611df9816123ef565b600181811c9082168061257057607f821691505b6020821081141561259157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600f908201526e0988a9c8ea890be9a92a69a82a8869608b1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6020808252600e908201526d1393d517d055551213d49256915160921b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115612627576126276125fe565b500190565b60408152600061263f60408301856122d6565b828103602084015261265181856122d6565b95945050505050565b6001600160a01b0386811682528516602082015260a060408201819052600090612686908301866122d6565b828103606084015261269881866122d6565b905082810360808401526126ac8185611f06565b98975050505050505050565b6000602082840312156126ca57600080fd5b8151611df981611dc6565b60208082526010908201526f155394d0519157d49150d2541251539560821b604082015260600190565b600082821015612711576127116125fe565b500390565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061275090830184611f06565b97965050505050505056fe4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fbc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6235a7846a2a701fff6f9d61a46ebff5da578c5dcee8bdf361c569f9ea4ee647710dbbbe77c52669e70ab8a121d20163e8103e7ccbc8f0c265d1448638e5f223c4539440820030c4994db4e31b6b800deafd503688728f932addfe7a410515c14ca2646970667358221220ab03fa8ecf4119687d38b88377c7cb64db52313c17c8e4752ff5dc55d66a6cef64736f6c634300080b0033000000000000000000000000e08e5dd026ca39067ae648708cf25b27a76a7f9d0000000000000000000000000000000000000000000000000000000000000000