[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "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": "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": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "_cid", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_nonRevealedURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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": "closeSale", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "extension", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "count", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "mintOpen", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "openSale", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "price", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "reveal", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "revealed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "royaltyPayout", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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": "_uri", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_extension", "type": "string" } ], "name": "setExtension", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_uri", "type": "string" } ], "name": "setNotRevealedURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_payoutAddress", "type": "address" } ], "name": "setRoyaltyPayoutAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint96", "name": "_royalties", "type": "uint96" } ], "name": "setTokenRoyalties", "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": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenRoyalties", "outputs": [ { "internalType": "uint96", "name": "", "type": "uint96" } ], "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" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
608060405260405180608001604052806051815260200162005e8360519139601090805190602001906200003592919062001004565b506040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250601290805190602001906200008392919062001004565b506000601360006101000a81548160ff0219169083151502179055506000601360016101000a81548160ff0219169083151502179055506101fc6014556000601555610384601660006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055507377414036afb728b7346cd2c37a689e8c2269fcef6016600c6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200015a57600080fd5b506040518060400160405280600981526020017f47756420476565736500000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4745455a000000000000000000000000000000000000000000000000000000008152508160009080519060200190620001df92919062001004565b508060019080519060200190620001f892919062001004565b5050506001600a8190555062000223620002176200030b60201b60201c565b6200031360201b60201c565b620002487377414036afb728b7346cd2c37a689e8c2269fcef620003d960201b60201c565b6200026d7385e6cc88f3055b589eb1d4030863be2cfcc0763e620003d960201b60201c565b6200029273b8cf11b8de281560884b4a23efd69d9aacbf3f4d620003d960201b60201c565b620002b773a3d5ada94bb423f7c7cbf83403d63aab8278f8cf620003d960201b60201c565b620003056016600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a90046bffffffffffffffffffffffff166200042160201b60201c565b62001759565b600033905090565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620003f0600e620005c560201b6200186f1760201c565b600062000409600e620005db60201b620018851760201c565b90506200041d8282620005e960201b60201c565b5050565b620004316200060f60201b60201c565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff16111562000492576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004899062001326565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000505576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004fc9062001348565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600c60008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b6001816000016000828254019250508190555050565b600081600001549050919050565b6200060b8282604051806020016040528060008152506200061960201b60201c565b5050565b6000612710905090565b6200062b83836200068760201b60201c565b6200064060008484846200088160201b60201c565b62000682576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000679906200129e565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620006fa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006f19062001304565b60405180910390fd5b6200070b8162000a3b60201b60201c565b156200074e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200074590620012c0565b60405180910390fd5b620007626000838362000aa760201b60201c565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620007b4919062001397565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46200087d6000838362000bee60201b60201c565b5050565b6000620008af8473ffffffffffffffffffffffffffffffffffffffff1662000bf360201b620018931760201c565b1562000a2e578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02620008e16200030b60201b60201c565b8786866040518563ffffffff1660e01b81526004016200090594939291906200124a565b602060405180830381600087803b1580156200092057600080fd5b505af19250505080156200095457506040513d601f19601f82011682018060405250810190620009519190620010cb565b60015b620009dd573d806000811462000987576040519150601f19603f3d011682016040523d82523d6000602084013e6200098c565b606091505b50600081511415620009d5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009cc906200129e565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505062000a33565b600190505b949350505050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b62000abf83838362000c1660201b620018b61760201c565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562000b0c5762000b068162000c1b60201b60201c565b62000b54565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161462000b535762000b52838262000c6460201b60201c565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000ba15762000b9b8162000de160201b60201c565b62000be9565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161462000be85762000be7828262000ebd60201b60201c565b5b5b505050565b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600162000c7e8462000f4960201b62000ffb1760201c565b62000c8a9190620013f4565b905060006007600084815260200190815260200160002054905081811462000d70576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b6000600160088054905062000df79190620013f4565b905060006009600084815260200190815260200160002054905060006008838154811062000e2a5762000e2962001592565b5b90600052602060002001549050806008838154811062000e4f5762000e4e62001592565b5b90600052602060002001819055508160096000838152602001908152602001600020819055506009600085815260200190815260200160002060009055600880548062000ea15762000ea062001563565b5b6001900381819060005260206000200160009055905550505050565b600062000ed58362000f4960201b62000ffb1760201c565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000fbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000fb490620012e2565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b8280546200101290620014cf565b90600052602060002090601f01602090048101928262001036576000855562001082565b82601f106200105157805160ff191683800117855562001082565b8280016001018555821562001082579182015b828111156200108157825182559160200191906001019062001064565b5b50905062001091919062001095565b5090565b5b80821115620010b057600081600090555060010162001096565b5090565b600081519050620010c5816200173f565b92915050565b600060208284031215620010e457620010e3620015c1565b5b6000620010f484828501620010b4565b91505092915050565b62001108816200142f565b82525050565b60006200111b826200136a565b62001127818562001375565b93506200113981856020860162001499565b6200114481620015c6565b840191505092915050565b60006200115e60328362001386565b91506200116b82620015d7565b604082019050919050565b600062001185601c8362001386565b9150620011928262001626565b602082019050919050565b6000620011ac60298362001386565b9150620011b9826200164f565b604082019050919050565b6000620011d360208362001386565b9150620011e0826200169e565b602082019050919050565b6000620011fa602a8362001386565b91506200120782620016c7565b604082019050919050565b60006200122160198362001386565b91506200122e8262001716565b602082019050919050565b62001244816200148f565b82525050565b6000608082019050620012616000830187620010fd565b620012706020830186620010fd565b6200127f604083018562001239565b81810360608301526200129381846200110e565b905095945050505050565b60006020820190508181036000830152620012b9816200114f565b9050919050565b60006020820190508181036000830152620012db8162001176565b9050919050565b60006020820190508181036000830152620012fd816200119d565b9050919050565b600060208201905081810360008301526200131f81620011c4565b9050919050565b600060208201905081810360008301526200134181620011eb565b9050919050565b60006020820190508181036000830152620013638162001212565b9050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000620013a4826200148f565b9150620013b1836200148f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620013e957620013e862001505565b5b828201905092915050565b600062001401826200148f565b91506200140e836200148f565b92508282101562001424576200142362001505565b5b828203905092915050565b60006200143c826200146f565b9050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015620014b95780820151818401526020810190506200149c565b83811115620014c9576000848401525b50505050565b60006002820490506001821680620014e857607f821691505b60208210811415620014ff57620014fe62001534565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b6200174a8162001443565b81146200175657600080fd5b50565b61471a80620017696000396000f3fe608060405234801561001057600080fd5b506004361061023d5760003560e01c80636352211e1161013b578063a22cb465116100b8578063d5abeb011161007c578063d5abeb011461066b578063e985e9c514610689578063ee55efee146106b9578063f2c4ce1e146106c3578063f2fde38b146106df5761023d565b8063a22cb465146105db578063a475b5dd146105f7578063b88d4fde14610601578063c299e9d01461061d578063c87b56dd1461063b5761023d565b80638da5cb5b116100ff5780638da5cb5b14610547578063932d42c91461056557806395d89b4114610583578063a035b1fe146105a1578063a0712d68146105bf5761023d565b80636352211e146104a357806370a08231146104d3578063715018a6146105035780637e2285aa1461050d5780638b584eeb146105295761023d565b80632a55205a116101c957806342842e0e1161018d57806342842e0e1461040157806345aeefde1461041d5780634f6ccce714610439578063518302271461046957806355f804b3146104875761023d565b80632a55205a1461035a5780632d5537b01461038b5780632dff8423146103a95780632f745c59146103c75780633ccfd60b146103f75761023d565b8063167ff46f11610210578063167ff46f146102dc57806318160ddd146102e65780631ebdcaae1461030457806323b872dd1461032057806324bbd0491461033c5761023d565b806301ffc9a71461024257806306fdde0314610272578063081812fc14610290578063095ea7b3146102c0575b600080fd5b61025c60048036038101906102579190613202565b6106fb565b60405161026991906138a6565b60405180910390f35b61027a61070d565b60405161028791906138c1565b60405180910390f35b6102aa60048036038101906102a591906132a5565b61079f565b6040516102b79190613816565b60405180910390f35b6102da60048036038101906102d591906131c2565b6107e5565b005b6102e46108fd565b005b6102ee610922565b6040516102fb9190613be3565b60405180910390f35b61031e60048036038101906103199190613312565b61092f565b005b61033a600480360381019061033591906130ac565b6109b1565b005b610344610a11565b60405161035191906138a6565b60405180910390f35b610374600480360381019061036f91906132d2565b610a24565b60405161038292919061387d565b60405180910390f35b610393610c0f565b6040516103a091906138c1565b60405180910390f35b6103b1610c9d565b6040516103be9190613bfe565b60405180910390f35b6103e160048036038101906103dc91906131c2565b610cbb565b6040516103ee9190613be3565b60405180910390f35b6103ff610d60565b005b61041b600480360381019061041691906130ac565b610df1565b005b6104376004803603810190610432919061303f565b610e11565b005b610453600480360381019061044e91906132a5565b610ea3565b6040516104609190613be3565b60405180910390f35b610471610f14565b60405161047e91906138a6565b60405180910390f35b6104a1600480360381019061049c919061325c565b610f27565b005b6104bd60048036038101906104b891906132a5565b610f49565b6040516104ca9190613816565b60405180910390f35b6104ed60048036038101906104e8919061303f565b610ffb565b6040516104fa9190613be3565b60405180910390f35b61050b6110b3565b005b6105276004803603810190610522919061325c565b6110c7565b005b6105316110e9565b60405161053e9190613816565b60405180910390f35b61054f61110f565b60405161055c9190613816565b60405180910390f35b61056d611139565b60405161057a91906138c1565b60405180910390f35b61058b6111c7565b60405161059891906138c1565b60405180910390f35b6105a9611259565b6040516105b69190613be3565b60405180910390f35b6105d960048036038101906105d491906132a5565b61125f565b005b6105f560048036038101906105f09190613182565b611486565b005b6105ff61149c565b005b61061b600480360381019061061691906130ff565b6114c1565b005b610625611523565b60405161063291906138c1565b60405180910390f35b610655600480360381019061065091906132a5565b6115b1565b60405161066291906138c1565b60405180910390f35b61067361170a565b6040516106809190613be3565b60405180910390f35b6106a3600480360381019061069e919061306c565b611710565b6040516106b091906138a6565b60405180910390f35b6106c16117a4565b005b6106dd60048036038101906106d8919061325c565b6117c9565b005b6106f960048036038101906106f4919061303f565b6117eb565b005b6000610706826118bb565b9050919050565b60606000805461071c90613edb565b80601f016020809104026020016040519081016040528092919081815260200182805461074890613edb565b80156107955780601f1061076a57610100808354040283529160200191610795565b820191906000526020600020905b81548152906001019060200180831161077857829003601f168201915b5050505050905090565b60006107aa82611935565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006107f082610f49565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610861576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085890613b23565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610880611980565b73ffffffffffffffffffffffffffffffffffffffff1614806108af57506108ae816108a9611980565b611710565b5b6108ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e590613a63565b60405180910390fd5b6108f88383611988565b505050565b610905611a41565b6001601360016101000a81548160ff021916908315150217905550565b6000600880549050905090565b610937611a41565b80601660006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506109ae6016600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a90046bffffffffffffffffffffffff16611abf565b50565b6109c26109bc611980565b82611c55565b610a01576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f890613b83565b60405180910390fd5b610a0c838383611cea565b505050565b601360019054906101000a900460ff1681565b6000806000600d60008681526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff161415610bba57600c6040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b6000610bc4611f51565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff1686610bf09190613d7f565b610bfa9190613d4e565b90508160000151819350935050509250929050565b60128054610c1c90613edb565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4890613edb565b8015610c955780601f10610c6a57610100808354040283529160200191610c95565b820191906000526020600020905b815481529060010190602001808311610c7857829003601f168201915b505050505081565b601660009054906101000a90046bffffffffffffffffffffffff1681565b6000610cc683610ffb565b8210610d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfe90613903565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610d68611a41565b600047905060008111610db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da7906138e3565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050610dee57600080fd5b50565b610e0c838383604051806020016040528060008152506114c1565b505050565b610e19611a41565b806016600c6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ea06016600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a90046bffffffffffffffffffffffff16611abf565b50565b6000610ead610922565b8210610eee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee590613b43565b60405180910390fd5b60088281548110610f0257610f01614074565b5b90600052602060002001549050919050565b601360009054906101000a900460ff1681565b610f2f611a41565b80600f9080519060200190610f45929190612e3e565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ff2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe990613b03565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561106c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106390613a43565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110bb611a41565b6110c56000611f5b565b565b6110cf611a41565b80601290805190602001906110e5929190612e3e565b5050565b6016600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6010805461114690613edb565b80601f016020809104026020016040519081016040528092919081815260200182805461117290613edb565b80156111bf5780601f10611194576101008083540402835291602001916111bf565b820191906000526020600020905b8154815290600101906020018083116111a257829003601f168201915b505050505081565b6060600180546111d690613edb565b80601f016020809104026020016040519081016040528092919081815260200182805461120290613edb565b801561124f5780601f106112245761010080835404028352916020019161124f565b820191906000526020600020905b81548152906001019060200180831161123257829003601f168201915b5050505050905090565b60155481565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c490613a23565b60405180910390fd5b6002600a541415611313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130a90613ba3565b60405180910390fd5b6002600a81905550600f8161132733610ffb565b6113319190613cf8565b11158015611340575060058111155b61137f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137690613943565b60405180910390fd5b601360019054906101000a900460ff166113ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c590613ac3565b60405180910390fd5b6014546113d9610922565b111561141a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141190613ae3565b60405180910390fd5b61142333612021565b6001601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a8190555050565b611498611491611980565b8383612047565b5050565b6114a4611a41565b6001601360006101000a81548160ff021916908315150217905550565b6114d26114cc611980565b83611c55565b611511576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150890613b83565b60405180910390fd5b61151d848484846121b4565b50505050565b600f805461153090613edb565b80601f016020809104026020016040519081016040528092919081815260200182805461155c90613edb565b80156115a95780601f1061157e576101008083540402835291602001916115a9565b820191906000526020600020905b81548152906001019060200180831161158c57829003601f168201915b505050505081565b60606115bc82612210565b6115fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f290613a03565b60405180910390fd5b60001515601360009054906101000a900460ff16151514156116a9576010805461162490613edb565b80601f016020809104026020016040519081016040528092919081815260200182805461165090613edb565b801561169d5780601f106116725761010080835404028352916020019161169d565b820191906000526020600020905b81548152906001019060200180831161168057829003601f168201915b50505050509050611705565b60006116b361227c565b905060008151116116d35760405180602001604052806000815250611701565b806116dd8461230e565b60126040516020016116f1939291906137e5565b6040516020818303038152906040525b9150505b919050565b60145481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6117ac611a41565b6000601360016101000a81548160ff021916908315150217905550565b6117d1611a41565b80601090805190602001906117e7929190612e3e565b5050565b6117f3611a41565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185a90613963565b60405180910390fd5b61186c81611f5b565b50565b6001816000016000828254019250508190555050565b600081600001549050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b505050565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061192e575061192d8261246f565b5b9050919050565b61193e81612210565b61197d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197490613b03565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166119fb83610f49565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b611a49611980565b73ffffffffffffffffffffffffffffffffffffffff16611a6761110f565b73ffffffffffffffffffffffffffffffffffffffff1614611abd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab490613aa3565b60405180910390fd5b565b611ac7611f51565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff161115611b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1c90613b63565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8c90613bc3565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600c60008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b600080611c6183610f49565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611ca35750611ca28185611710565b5b80611ce157508373ffffffffffffffffffffffffffffffffffffffff16611cc98461079f565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611d0a82610f49565b73ffffffffffffffffffffffffffffffffffffffff1614611d60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5790613983565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc7906139c3565b60405180910390fd5b611ddb8383836124e9565b611de6600082611988565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e369190613dd9565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e8d9190613cf8565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611f4c8383836125fd565b505050565b6000612710905090565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61202b600e61186f565b6000612037600e611885565b90506120438282612602565b5050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156120b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ad906139e3565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516121a791906138a6565b60405180910390a3505050565b6121bf848484611cea565b6121cb84848484612620565b61220a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220190613923565b60405180910390fd5b50505050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6060600f805461228b90613edb565b80601f01602080910402602001604051908101604052809291908181526020018280546122b790613edb565b80156123045780601f106122d957610100808354040283529160200191612304565b820191906000526020600020905b8154815290600101906020018083116122e757829003601f168201915b5050505050905090565b60606000821415612356576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061246a565b600082905060005b6000821461238857808061237190613f3e565b915050600a826123819190613d4e565b915061235e565b60008167ffffffffffffffff8111156123a4576123a36140a3565b5b6040519080825280601f01601f1916602001820160405280156123d65781602001600182028036833780820191505090505b5090505b60008514612463576001826123ef9190613dd9565b9150600a856123fe9190613f87565b603061240a9190613cf8565b60f81b8183815181106124205761241f614074565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8561245c9190613d4e565b94506123da565b8093505050505b919050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806124e257506124e1826127b7565b5b9050919050565b6124f48383836118b6565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125375761253281612899565b612576565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146125755761257483826128e2565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125b9576125b481612a4f565b6125f8565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146125f7576125f68282612b20565b5b5b505050565b505050565b61261c828260405180602001604052806000815250612b9f565b5050565b60006126418473ffffffffffffffffffffffffffffffffffffffff16611893565b156127aa578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261266a611980565b8786866040518563ffffffff1660e01b815260040161268c9493929190613831565b602060405180830381600087803b1580156126a657600080fd5b505af19250505080156126d757506040513d601f19601f820116820180604052508101906126d4919061322f565b60015b61275a573d8060008114612707576040519150601f19603f3d011682016040523d82523d6000602084013e61270c565b606091505b50600081511415612752576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274990613923565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506127af565b600190505b949350505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061288257507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80612892575061289182612bfa565b5b9050919050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b600060016128ef84610ffb565b6128f99190613dd9565b90506000600760008481526020019081526020016000205490508181146129de576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600880549050612a639190613dd9565b9050600060096000848152602001908152602001600020549050600060088381548110612a9357612a92614074565b5b906000526020600020015490508060088381548110612ab557612ab4614074565b5b906000526020600020018190555081600960008381526020019081526020016000208190555060096000858152602001908152602001600020600090556008805480612b0457612b03614045565b5b6001900381819060005260206000200160009055905550505050565b6000612b2b83610ffb565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b612ba98383612c64565b612bb66000848484612620565b612bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bec90613923565b60405180910390fd5b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ccb90613a83565b60405180910390fd5b612cdd81612210565b15612d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d14906139a3565b60405180910390fd5b612d29600083836124e9565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612d799190613cf8565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612e3a600083836125fd565b5050565b828054612e4a90613edb565b90600052602060002090601f016020900481019282612e6c5760008555612eb3565b82601f10612e8557805160ff1916838001178555612eb3565b82800160010185558215612eb3579182015b82811115612eb2578251825591602001919060010190612e97565b5b509050612ec09190612ec4565b5090565b5b80821115612edd576000816000905550600101612ec5565b5090565b6000612ef4612eef84613c3e565b613c19565b905082815260208101848484011115612f1057612f0f6140d7565b5b612f1b848285613e99565b509392505050565b6000612f36612f3184613c6f565b613c19565b905082815260208101848484011115612f5257612f516140d7565b5b612f5d848285613e99565b509392505050565b600081359050612f7481614671565b92915050565b600081359050612f8981614688565b92915050565b600081359050612f9e8161469f565b92915050565b600081519050612fb38161469f565b92915050565b600082601f830112612fce57612fcd6140d2565b5b8135612fde848260208601612ee1565b91505092915050565b600082601f830112612ffc57612ffb6140d2565b5b813561300c848260208601612f23565b91505092915050565b600081359050613024816146b6565b92915050565b600081359050613039816146cd565b92915050565b600060208284031215613055576130546140e1565b5b600061306384828501612f65565b91505092915050565b60008060408385031215613083576130826140e1565b5b600061309185828601612f65565b92505060206130a285828601612f65565b9150509250929050565b6000806000606084860312156130c5576130c46140e1565b5b60006130d386828701612f65565b93505060206130e486828701612f65565b92505060406130f586828701613015565b9150509250925092565b60008060008060808587031215613119576131186140e1565b5b600061312787828801612f65565b945050602061313887828801612f65565b935050604061314987828801613015565b925050606085013567ffffffffffffffff81111561316a576131696140dc565b5b61317687828801612fb9565b91505092959194509250565b60008060408385031215613199576131986140e1565b5b60006131a785828601612f65565b92505060206131b885828601612f7a565b9150509250929050565b600080604083850312156131d9576131d86140e1565b5b60006131e785828601612f65565b92505060206131f885828601613015565b9150509250929050565b600060208284031215613218576132176140e1565b5b600061322684828501612f8f565b91505092915050565b600060208284031215613245576132446140e1565b5b600061325384828501612fa4565b91505092915050565b600060208284031215613272576132716140e1565b5b600082013567ffffffffffffffff8111156132905761328f6140dc565b5b61329c84828501612fe7565b91505092915050565b6000602082840312156132bb576132ba6140e1565b5b60006132c984828501613015565b91505092915050565b600080604083850312156132e9576132e86140e1565b5b60006132f785828601613015565b925050602061330885828601613015565b9150509250929050565b600060208284031215613328576133276140e1565b5b60006133368482850161302a565b91505092915050565b61334881613e0d565b82525050565b61335781613e1f565b82525050565b600061336882613cb5565b6133728185613ccb565b9350613382818560208601613ea8565b61338b816140e6565b840191505092915050565b60006133a182613cc0565b6133ab8185613cdc565b93506133bb818560208601613ea8565b6133c4816140e6565b840191505092915050565b60006133da82613cc0565b6133e48185613ced565b93506133f4818560208601613ea8565b80840191505092915050565b6000815461340d81613edb565b6134178186613ced565b94506001821660008114613432576001811461344357613476565b60ff19831686528186019350613476565b61344c85613ca0565b60005b8381101561346e5781548189015260018201915060208101905061344f565b838801955050505b50505092915050565b600061348c601383613cdc565b9150613497826140f7565b602082019050919050565b60006134af602b83613cdc565b91506134ba82614120565b604082019050919050565b60006134d2603283613cdc565b91506134dd8261416f565b604082019050919050565b60006134f5601c83613cdc565b9150613500826141be565b602082019050919050565b6000613518602683613cdc565b9150613523826141e7565b604082019050919050565b600061353b602583613cdc565b915061354682614236565b604082019050919050565b600061355e601c83613cdc565b915061356982614285565b602082019050919050565b6000613581602483613cdc565b915061358c826142ae565b604082019050919050565b60006135a4601983613cdc565b91506135af826142fd565b602082019050919050565b60006135c7601483613cdc565b91506135d282614326565b602082019050919050565b60006135ea601e83613cdc565b91506135f58261434f565b602082019050919050565b600061360d602983613cdc565b915061361882614378565b604082019050919050565b6000613630603e83613cdc565b915061363b826143c7565b604082019050919050565b6000613653602083613cdc565b915061365e82614416565b602082019050919050565b6000613676602083613cdc565b91506136818261443f565b602082019050919050565b6000613699601283613cdc565b91506136a482614468565b602082019050919050565b60006136bc601283613cdc565b91506136c782614491565b602082019050919050565b60006136df601883613cdc565b91506136ea826144ba565b602082019050919050565b6000613702602183613cdc565b915061370d826144e3565b604082019050919050565b6000613725602c83613cdc565b915061373082614532565b604082019050919050565b6000613748602a83613cdc565b915061375382614581565b604082019050919050565b600061376b602e83613cdc565b9150613776826145d0565b604082019050919050565b600061378e601f83613cdc565b91506137998261461f565b602082019050919050565b60006137b1601983613cdc565b91506137bc82614648565b602082019050919050565b6137d081613e77565b82525050565b6137df81613e81565b82525050565b60006137f182866133cf565b91506137fd82856133cf565b91506138098284613400565b9150819050949350505050565b600060208201905061382b600083018461333f565b92915050565b6000608082019050613846600083018761333f565b613853602083018661333f565b61386060408301856137c7565b8181036060830152613872818461335d565b905095945050505050565b6000604082019050613892600083018561333f565b61389f60208301846137c7565b9392505050565b60006020820190506138bb600083018461334e565b92915050565b600060208201905081810360008301526138db8184613396565b905092915050565b600060208201905081810360008301526138fc8161347f565b9050919050565b6000602082019050818103600083015261391c816134a2565b9050919050565b6000602082019050818103600083015261393c816134c5565b9050919050565b6000602082019050818103600083015261395c816134e8565b9050919050565b6000602082019050818103600083015261397c8161350b565b9050919050565b6000602082019050818103600083015261399c8161352e565b9050919050565b600060208201905081810360008301526139bc81613551565b9050919050565b600060208201905081810360008301526139dc81613574565b9050919050565b600060208201905081810360008301526139fc81613597565b9050919050565b60006020820190508181036000830152613a1c816135ba565b9050919050565b60006020820190508181036000830152613a3c816135dd565b9050919050565b60006020820190508181036000830152613a5c81613600565b9050919050565b60006020820190508181036000830152613a7c81613623565b9050919050565b60006020820190508181036000830152613a9c81613646565b9050919050565b60006020820190508181036000830152613abc81613669565b9050919050565b60006020820190508181036000830152613adc8161368c565b9050919050565b60006020820190508181036000830152613afc816136af565b9050919050565b60006020820190508181036000830152613b1c816136d2565b9050919050565b60006020820190508181036000830152613b3c816136f5565b9050919050565b60006020820190508181036000830152613b5c81613718565b9050919050565b60006020820190508181036000830152613b7c8161373b565b9050919050565b60006020820190508181036000830152613b9c8161375e565b9050919050565b60006020820190508181036000830152613bbc81613781565b9050919050565b60006020820190508181036000830152613bdc816137a4565b9050919050565b6000602082019050613bf860008301846137c7565b92915050565b6000602082019050613c1360008301846137d6565b92915050565b6000613c23613c34565b9050613c2f8282613f0d565b919050565b6000604051905090565b600067ffffffffffffffff821115613c5957613c586140a3565b5b613c62826140e6565b9050602081019050919050565b600067ffffffffffffffff821115613c8a57613c896140a3565b5b613c93826140e6565b9050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000613d0382613e77565b9150613d0e83613e77565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613d4357613d42613fb8565b5b828201905092915050565b6000613d5982613e77565b9150613d6483613e77565b925082613d7457613d73613fe7565b5b828204905092915050565b6000613d8a82613e77565b9150613d9583613e77565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613dce57613dcd613fb8565b5b828202905092915050565b6000613de482613e77565b9150613def83613e77565b925082821015613e0257613e01613fb8565b5b828203905092915050565b6000613e1882613e57565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006bffffffffffffffffffffffff82169050919050565b82818337600083830152505050565b60005b83811015613ec6578082015181840152602081019050613eab565b83811115613ed5576000848401525b50505050565b60006002820490506001821680613ef357607f821691505b60208210811415613f0757613f06614016565b5b50919050565b613f16826140e6565b810181811067ffffffffffffffff82111715613f3557613f346140a3565b5b80604052505050565b6000613f4982613e77565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613f7c57613f7b613fb8565b5b600182019050919050565b6000613f9282613e77565b9150613f9d83613e77565b925082613fad57613fac613fe7565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e6f7468696e6720746f20776974686472617700000000000000000000000000600082015250565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f3135204d6178205065722057616c6c6574202d20352070657220545800000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f546f6b656e20646f6573206e6f74206578697374000000000000000000000000600082015250565b7f5468652063616c6c657220697320616e6f7468657220636f6e74726163740000600082015250565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4d696e74206973206e6f74206163746976650000000000000000000000000000600082015250565b7f416c6c2047756420476565736520476f6e650000000000000000000000000000600082015250565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b61467a81613e0d565b811461468557600080fd5b50565b61469181613e1f565b811461469c57600080fd5b50565b6146a881613e2b565b81146146b357600080fd5b50565b6146bf81613e77565b81146146ca57600080fd5b50565b6146d681613e81565b81146146e157600080fd5b5056fea2646970667358221220e32b8c3d7dd01879243781b6355a9c05d887add8480a95961be4f96209b94cc864736f6c6343000807003368747470733a2f2f736d6f6c722e6d7970696e6174612e636c6f75642f697066732f516d5174634655636b6a73526d7164767255586b634b434b767272714767566a6f5735716a7a6a7446354a7179732f