[ { "inputs": [ { "internalType": "string", "name": "_initBaseURI", "type": "string" }, { "internalType": "string", "name": "_initNotRevealedUri", "type": "string" } ], "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": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "addressMintedBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "baseExtension", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "cost", "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": "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": "address", "name": "_user", "type": "address" } ], "name": "isWhitelisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nftPerAddressLimit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "notRevealedUri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "onlyWhitelisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": [ { "internalType": "bool", "name": "_state", "type": "bool" } ], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_mod", "type": "uint256" }, { "internalType": "uint256", "name": "_seed", "type": "uint256" }, { "internalType": "uint256", "name": "_salt", "type": "uint256" } ], "name": "randomNum", "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": "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": "_newBaseExtension", "type": "string" } ], "name": "setBaseExtension", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_newBaseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newCost", "type": "uint256" } ], "name": "setCost", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_limit", "type": "uint256" } ], "name": "setNftPerAddressLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_notRevealedURI", "type": "string" } ], "name": "setNotRevealedURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_state", "type": "bool" } ], "name": "setOnlyWhitelisted", "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": [ { "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": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "walletOfOwner", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_users", "type": "address[]" } ], "name": "whitelistUsers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "whitelistedAddresses", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
60806040526040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250600c90805190602001906200005192919062000425565b506002600d55670a688906bd8b0000600e556103e8600f556000601060006101000a81548160ff0219169083151502179055506000601060016101000a81548160ff0219169083151502179055506001601060026101000a81548160ff021916908315150217905550348015620000c757600080fd5b506040516200586e3803806200586e8339818101604052810190620000ed919062000553565b6040518060400160405280600481526020017f47414c53000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f47414c530000000000000000000000000000000000000000000000000000000081525081600090805190602001906200017192919062000425565b5080600190805190602001906200018a92919062000425565b505050620001ad620001a1620001d760201b60201c565b620001df60201b60201c565b620001be82620002a560201b60201c565b620001cf816200035060201b60201c565b5050620007df565b600033905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620002b5620001d760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620002db620003fb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000334576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200032b90620005ff565b60405180910390fd5b80600b90805190602001906200034c92919062000425565b5050565b62000360620001d760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000386620003fb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620003df576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003d690620005ff565b60405180910390fd5b8060119080519060200190620003f792919062000425565b5050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8280546200043390620006c7565b90600052602060002090601f016020900481019282620004575760008555620004a3565b82601f106200047257805160ff1916838001178555620004a3565b82800160010185558215620004a3579182015b82811115620004a257825182559160200191906001019062000485565b5b509050620004b29190620004b6565b5090565b5b80821115620004d1576000816000905550600101620004b7565b5090565b6000620004ec620004e6846200064a565b62000621565b9050828152602081018484840111156200050b576200050a62000796565b5b6200051884828562000691565b509392505050565b600082601f83011262000538576200053762000791565b5b81516200054a848260208601620004d5565b91505092915050565b600080604083850312156200056d576200056c620007a0565b5b600083015167ffffffffffffffff8111156200058e576200058d6200079b565b5b6200059c8582860162000520565b925050602083015167ffffffffffffffff811115620005c057620005bf6200079b565b5b620005ce8582860162000520565b9150509250929050565b6000620005e760208362000680565b9150620005f482620007b6565b602082019050919050565b600060208201905081810360008301526200061a81620005d8565b9050919050565b60006200062d62000640565b90506200063b8282620006fd565b919050565b6000604051905090565b600067ffffffffffffffff82111562000668576200066762000762565b5b6200067382620007a5565b9050602081019050919050565b600082825260208201905092915050565b60005b83811015620006b157808201518184015260208101905062000694565b83811115620006c1576000848401525b50505050565b60006002820490506001821680620006e057607f821691505b60208210811415620006f757620006f662000733565b5b50919050565b6200070882620007a5565b810181811067ffffffffffffffff821117156200072a576200072962000762565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b61507f80620007ef6000396000f3fe6080604052600436106102515760003560e01c80635c975abb11610139578063ba4e5c49116100b6578063d5abeb011161007a578063d5abeb01146108dd578063da3ef23f14610908578063e985e9c514610931578063edec5f271461096e578063f2c4ce1e14610997578063f2fde38b146109c057610251565b8063ba4e5c49146107e4578063ba7d2c7614610821578063c66828621461084c578063c87b56dd14610877578063d0eb26b0146108b457610251565b806395d89b41116100fd57806395d89b41146107255780639c70b51214610750578063a22cb4651461077b578063a475b5dd146107a4578063b88d4fde146107bb57610251565b80635c975abb1461063e5780636352211e1461066957806370a08231146106a6578063715018a6146106e35780638da5cb5b146106fa57610251565b806323b872dd116101d257806342842e0e1161019657806342842e0e1461051e578063438b63001461054757806344a0d68a146105845780634f6ccce7146105ad57806351830227146105ea57806355f804b31461061557610251565b806323b872dd14610415578063282946401461043e5780632f745c591461047b5780633af32abf146104b85780633c952764146104f557610251565b8063095ea7b311610219578063095ea7b31461034f5780631249c58b1461037857806313faede61461038257806318160ddd146103ad57806318cae269146103d857610251565b806301ffc9a71461025657806302329a291461029357806306fdde03146102bc578063081812fc146102e7578063081c8c4414610324575b600080fd5b34801561026257600080fd5b5061027d6004803603810190610278919061393e565b6109e9565b60405161028a919061410e565b60405180910390f35b34801561029f57600080fd5b506102ba60048036038101906102b59190613911565b610a63565b005b3480156102c857600080fd5b506102d1610afc565b6040516102de9190614129565b60405180910390f35b3480156102f357600080fd5b5061030e600480360381019061030991906139e1565b610b8e565b60405161031b9190614085565b60405180910390f35b34801561033057600080fd5b50610339610c13565b6040516103469190614129565b60405180910390f35b34801561035b57600080fd5b5061037660048036038101906103719190613884565b610ca1565b005b610380610db9565b005b34801561038e57600080fd5b50610397611295565b6040516103a4919061446b565b60405180910390f35b3480156103b957600080fd5b506103c261129b565b6040516103cf919061446b565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa9190613701565b6112a8565b60405161040c919061446b565b60405180910390f35b34801561042157600080fd5b5061043c6004803603810190610437919061376e565b6112c0565b005b34801561044a57600080fd5b5061046560048036038101906104609190613a0e565b611320565b604051610472919061446b565b60405180910390f35b34801561048757600080fd5b506104a2600480360381019061049d9190613884565b61136b565b6040516104af919061446b565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da9190613701565b611410565b6040516104ec919061410e565b60405180910390f35b34801561050157600080fd5b5061051c60048036038101906105179190613911565b6114bf565b005b34801561052a57600080fd5b506105456004803603810190610540919061376e565b611558565b005b34801561055357600080fd5b5061056e60048036038101906105699190613701565b611578565b60405161057b91906140ec565b60405180910390f35b34801561059057600080fd5b506105ab60048036038101906105a691906139e1565b611626565b005b3480156105b957600080fd5b506105d460048036038101906105cf91906139e1565b6116ac565b6040516105e1919061446b565b60405180910390f35b3480156105f657600080fd5b506105ff61171d565b60405161060c919061410e565b60405180910390f35b34801561062157600080fd5b5061063c60048036038101906106379190613998565b611730565b005b34801561064a57600080fd5b506106536117c6565b604051610660919061410e565b60405180910390f35b34801561067557600080fd5b50610690600480360381019061068b91906139e1565b6117d9565b60405161069d9190614085565b60405180910390f35b3480156106b257600080fd5b506106cd60048036038101906106c89190613701565b61188b565b6040516106da919061446b565b60405180910390f35b3480156106ef57600080fd5b506106f8611943565b005b34801561070657600080fd5b5061070f6119cb565b60405161071c9190614085565b60405180910390f35b34801561073157600080fd5b5061073a6119f5565b6040516107479190614129565b60405180910390f35b34801561075c57600080fd5b50610765611a87565b604051610772919061410e565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d9190613844565b611a9a565b005b3480156107b057600080fd5b506107b9611c1b565b005b3480156107c757600080fd5b506107e260048036038101906107dd91906137c1565b611cb4565b005b3480156107f057600080fd5b5061080b600480360381019061080691906139e1565b611d16565b6040516108189190614085565b60405180910390f35b34801561082d57600080fd5b50610836611d55565b604051610843919061446b565b60405180910390f35b34801561085857600080fd5b50610861611d5b565b60405161086e9190614129565b60405180910390f35b34801561088357600080fd5b5061089e600480360381019061089991906139e1565b611de9565b6040516108ab9190614129565b60405180910390f35b3480156108c057600080fd5b506108db60048036038101906108d691906139e1565b611f42565b005b3480156108e957600080fd5b506108f2611fc8565b6040516108ff919061446b565b60405180910390f35b34801561091457600080fd5b5061092f600480360381019061092a9190613998565b611fce565b005b34801561093d57600080fd5b506109586004803603810190610953919061372e565b612064565b604051610965919061410e565b60405180910390f35b34801561097a57600080fd5b50610995600480360381019061099091906138c4565b6120f8565b005b3480156109a357600080fd5b506109be60048036038101906109b99190613998565b612198565b005b3480156109cc57600080fd5b506109e760048036038101906109e29190613701565b61222e565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610a5c5750610a5b82612326565b5b9050919050565b610a6b612408565b73ffffffffffffffffffffffffffffffffffffffff16610a896119cb565b73ffffffffffffffffffffffffffffffffffffffff1614610adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad69061432b565b60405180910390fd5b80601060006101000a81548160ff02191690831515021790555050565b606060008054610b0b90614774565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3790614774565b8015610b845780601f10610b5957610100808354040283529160200191610b84565b820191906000526020600020905b815481529060010190602001808311610b6757829003601f168201915b5050505050905090565b6000610b9982612410565b610bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcf9061430b565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60118054610c2090614774565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4c90614774565b8015610c995780601f10610c6e57610100808354040283529160200191610c99565b820191906000526020600020905b815481529060010190602001808311610c7c57829003601f168201915b505050505081565b6000610cac826117d9565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d14906143ab565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610d3c612408565b73ffffffffffffffffffffffffffffffffffffffff161480610d6b5750610d6a81610d65612408565b612064565b5b610daa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da19061426b565b60405180910390fd5b610db4838361247c565b505050565b6000610dc361129b565b9050601060009054906101000a900460ff1615610e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0c906141eb565b60405180910390fd5b600f54600182610e2591906145a9565b1115610e66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5d906143eb565b60405180910390fd5b610e6e6119cb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610edc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed3906142cb565b60405180910390fd5b600e54341015610f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f189061438b565b60405180910390fd5b610f296119cb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110135760011515601060029054906101000a900460ff161515141561101257610f8033611410565b610fbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb69061444b565b60405180910390fd5b6000610fca3361188b565b9050600d548110611010576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110079061440b565b60405180910390fd5b505b5b600033905060008033905060008085111561110a576110536001611044874260018a61103f91906145a9565b611320565b61104e91906145a9565b6117d9565b9350600f5460018661106591906145a9565b14611088576064600a346110799190614630565b61108391906145ff565b6110a1565b606480476110969190614630565b6110a091906145ff565b5b925073339d698c970abda9d5024d7f070e97ea3641b7499150600f546001866110ca91906145a9565b146110ed5760646050346110de9190614630565b6110e891906145ff565b611107565b60646000476110fc9190614630565b61110691906145ff565b5b90505b6111203360018761111b91906145a9565b612535565b60008511156111d75760008473ffffffffffffffffffffffffffffffffffffffff168460405161114f90614022565b60006040518083038185875af1925050503d806000811461118c576040519150601f19603f3d011682016040523d82523d6000602084013e611191565b606091505b50509050806111d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cc9061414b565b60405180910390fd5b505b600085111561128e5760008273ffffffffffffffffffffffffffffffffffffffff168260405161120690614022565b60006040518083038185875af1925050503d8060008114611243576040519150601f19603f3d011682016040523d82523d6000602084013e611248565b606091505b505090508061128c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112839061414b565b60405180910390fd5b505b5050505050565b600e5481565b6000600880549050905090565b60136020528060005260406000206000915090505481565b6112d16112cb612408565b82612553565b611310576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611307906143cb565b60405180910390fd5b61131b838383612631565b505050565b600080844233868660405160200161133b9493929190614037565b6040516020818303038152906040528051906020012060001c61135e919061484e565b9050809150509392505050565b60006113768361188b565b82106113b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ae9061416b565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b600080600090505b6012805490508110156114b4578273ffffffffffffffffffffffffffffffffffffffff16601282815481106114505761144f61493b565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156114a15760019150506114ba565b80806114ac906147d7565b915050611418565b50600090505b919050565b6114c7612408565b73ffffffffffffffffffffffffffffffffffffffff166114e56119cb565b73ffffffffffffffffffffffffffffffffffffffff161461153b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115329061432b565b60405180910390fd5b80601060026101000a81548160ff02191690831515021790555050565b61157383838360405180602001604052806000815250611cb4565b505050565b606060006115858361188b565b905060008167ffffffffffffffff8111156115a3576115a261496a565b5b6040519080825280602002602001820160405280156115d15781602001602082028036833780820191505090505b50905060005b8281101561161b576115e9858261136b565b8282815181106115fc576115fb61493b565b5b6020026020010181815250508080611613906147d7565b9150506115d7565b508092505050919050565b61162e612408565b73ffffffffffffffffffffffffffffffffffffffff1661164c6119cb565b73ffffffffffffffffffffffffffffffffffffffff16146116a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116999061432b565b60405180910390fd5b80600e8190555050565b60006116b661129b565b82106116f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ee9061442b565b60405180910390fd5b6008828154811061170b5761170a61493b565b5b90600052602060002001549050919050565b601060019054906101000a900460ff1681565b611738612408565b73ffffffffffffffffffffffffffffffffffffffff166117566119cb565b73ffffffffffffffffffffffffffffffffffffffff16146117ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a39061432b565b60405180910390fd5b80600b90805190602001906117c29291906133fe565b5050565b601060009054906101000a900460ff1681565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611882576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611879906142ab565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f39061428b565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61194b612408565b73ffffffffffffffffffffffffffffffffffffffff166119696119cb565b73ffffffffffffffffffffffffffffffffffffffff16146119bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b69061432b565b60405180910390fd5b6119c9600061288d565b565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054611a0490614774565b80601f0160208091040260200160405190810160405280929190818152602001828054611a3090614774565b8015611a7d5780601f10611a5257610100808354040283529160200191611a7d565b820191906000526020600020905b815481529060010190602001808311611a6057829003601f168201915b5050505050905090565b601060029054906101000a900460ff1681565b611aa2612408565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b079061422b565b60405180910390fd5b8060056000611b1d612408565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611bca612408565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611c0f919061410e565b60405180910390a35050565b611c23612408565b73ffffffffffffffffffffffffffffffffffffffff16611c416119cb565b73ffffffffffffffffffffffffffffffffffffffff1614611c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8e9061432b565b60405180910390fd5b6001601060016101000a81548160ff021916908315150217905550565b611cc5611cbf612408565b83612553565b611d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfb906143cb565b60405180910390fd5b611d1084848484612953565b50505050565b60128181548110611d2657600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b600c8054611d6890614774565b80601f0160208091040260200160405190810160405280929190818152602001828054611d9490614774565b8015611de15780601f10611db657610100808354040283529160200191611de1565b820191906000526020600020905b815481529060010190602001808311611dc457829003601f168201915b505050505081565b6060611df482612410565b611e33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2a9061436b565b60405180910390fd5b60001515601060019054906101000a900460ff1615151415611ee15760118054611e5c90614774565b80601f0160208091040260200160405190810160405280929190818152602001828054611e8890614774565b8015611ed55780601f10611eaa57610100808354040283529160200191611ed5565b820191906000526020600020905b815481529060010190602001808311611eb857829003601f168201915b50505050509050611f3d565b6000611eeb6129af565b90506000815111611f0b5760405180602001604052806000815250611f39565b80611f1584612a41565b600c604051602001611f2993929190613ff1565b6040516020818303038152906040525b9150505b919050565b611f4a612408565b73ffffffffffffffffffffffffffffffffffffffff16611f686119cb565b73ffffffffffffffffffffffffffffffffffffffff1614611fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb59061432b565b60405180910390fd5b80600d8190555050565b600f5481565b611fd6612408565b73ffffffffffffffffffffffffffffffffffffffff16611ff46119cb565b73ffffffffffffffffffffffffffffffffffffffff161461204a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120419061432b565b60405180910390fd5b80600c90805190602001906120609291906133fe565b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b612100612408565b73ffffffffffffffffffffffffffffffffffffffff1661211e6119cb565b73ffffffffffffffffffffffffffffffffffffffff1614612174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216b9061432b565b60405180910390fd5b601260006121829190613484565b8181601291906121939291906134a5565b505050565b6121a0612408565b73ffffffffffffffffffffffffffffffffffffffff166121be6119cb565b73ffffffffffffffffffffffffffffffffffffffff1614612214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220b9061432b565b60405180910390fd5b806011908051906020019061222a9291906133fe565b5050565b612236612408565b73ffffffffffffffffffffffffffffffffffffffff166122546119cb565b73ffffffffffffffffffffffffffffffffffffffff16146122aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a19061432b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561231a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612311906141ab565b60405180910390fd5b6123238161288d565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806123f157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80612401575061240082612ba2565b5b9050919050565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166124ef836117d9565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b61254f828260405180602001604052806000815250612c0c565b5050565b600061255e82612410565b61259d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125949061424b565b60405180910390fd5b60006125a8836117d9565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061261757508373ffffffffffffffffffffffffffffffffffffffff166125ff84610b8e565b73ffffffffffffffffffffffffffffffffffffffff16145b8061262857506126278185612064565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16612651826117d9565b73ffffffffffffffffffffffffffffffffffffffff16146126a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269e9061434b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270e9061420b565b60405180910390fd5b612722838383612c67565b61272d60008261247c565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461277d919061468a565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127d491906145a9565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61295e848484612631565b61296a84848484612d7b565b6129a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a09061418b565b60405180910390fd5b50505050565b6060600b80546129be90614774565b80601f01602080910402602001604051908101604052809291908181526020018280546129ea90614774565b8015612a375780601f10612a0c57610100808354040283529160200191612a37565b820191906000526020600020905b815481529060010190602001808311612a1a57829003601f168201915b5050505050905090565b60606000821415612a89576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612b9d565b600082905060005b60008214612abb578080612aa4906147d7565b915050600a82612ab491906145ff565b9150612a91565b60008167ffffffffffffffff811115612ad757612ad661496a565b5b6040519080825280601f01601f191660200182016040528015612b095781602001600182028036833780820191505090505b5090505b60008514612b9657600182612b22919061468a565b9150600a85612b31919061484e565b6030612b3d91906145a9565b60f81b818381518110612b5357612b5261493b565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612b8f91906145ff565b9450612b0d565b8093505050505b919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b612c168383612f12565b612c236000848484612d7b565b612c62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c599061418b565b60405180910390fd5b505050565b612c728383836130e0565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612cb557612cb0816130e5565b612cf4565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612cf357612cf2838261312e565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d3757612d328161329b565b612d76565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612d7557612d74828261336c565b5b5b505050565b6000612d9c8473ffffffffffffffffffffffffffffffffffffffff166133eb565b15612f05578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612dc5612408565b8786866040518563ffffffff1660e01b8152600401612de794939291906140a0565b602060405180830381600087803b158015612e0157600080fd5b505af1925050508015612e3257506040513d601f19601f82011682018060405250810190612e2f919061396b565b60015b612eb5573d8060008114612e62576040519150601f19603f3d011682016040523d82523d6000602084013e612e67565b606091505b50600081511415612ead576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ea49061418b565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612f0a565b600190505b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f79906142eb565b60405180910390fd5b612f8b81612410565b15612fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fc2906141cb565b60405180910390fd5b612fd760008383612c67565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461302791906145a9565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600161313b8461188b565b613145919061468a565b905060006007600084815260200190815260200160002054905081811461322a576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b600060016008805490506132af919061468a565b90506000600960008481526020019081526020016000205490506000600883815481106132df576132de61493b565b5b9060005260206000200154905080600883815481106133015761330061493b565b5b9060005260206000200181905550816009600083815260200190815260200160002081905550600960008581526020019081526020016000206000905560088054806133505761334f61490c565b5b6001900381819060005260206000200160009055905550505050565b60006133778361188b565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b600080823b905060008111915050919050565b82805461340a90614774565b90600052602060002090601f01602090048101928261342c5760008555613473565b82601f1061344557805160ff1916838001178555613473565b82800160010185558215613473579182015b82811115613472578251825591602001919060010190613457565b5b5090506134809190613545565b5090565b50805460008255906000526020600020908101906134a29190613545565b50565b828054828255906000526020600020908101928215613534579160200282015b8281111561353357823573ffffffffffffffffffffffffffffffffffffffff168260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906134c5565b5b5090506135419190613545565b5090565b5b8082111561355e576000816000905550600101613546565b5090565b6000613575613570846144ab565b614486565b905082815260208101848484011115613591576135906149a8565b5b61359c848285614732565b509392505050565b60006135b76135b2846144dc565b614486565b9050828152602081018484840111156135d3576135d26149a8565b5b6135de848285614732565b509392505050565b6000813590506135f581614fed565b92915050565b60008083601f8401126136115761361061499e565b5b8235905067ffffffffffffffff81111561362e5761362d614999565b5b60208301915083602082028301111561364a576136496149a3565b5b9250929050565b60008135905061366081615004565b92915050565b6000813590506136758161501b565b92915050565b60008151905061368a8161501b565b92915050565b600082601f8301126136a5576136a461499e565b5b81356136b5848260208601613562565b91505092915050565b600082601f8301126136d3576136d261499e565b5b81356136e38482602086016135a4565b91505092915050565b6000813590506136fb81615032565b92915050565b600060208284031215613717576137166149b2565b5b6000613725848285016135e6565b91505092915050565b60008060408385031215613745576137446149b2565b5b6000613753858286016135e6565b9250506020613764858286016135e6565b9150509250929050565b600080600060608486031215613787576137866149b2565b5b6000613795868287016135e6565b93505060206137a6868287016135e6565b92505060406137b7868287016136ec565b9150509250925092565b600080600080608085870312156137db576137da6149b2565b5b60006137e9878288016135e6565b94505060206137fa878288016135e6565b935050604061380b878288016136ec565b925050606085013567ffffffffffffffff81111561382c5761382b6149ad565b5b61383887828801613690565b91505092959194509250565b6000806040838503121561385b5761385a6149b2565b5b6000613869858286016135e6565b925050602061387a85828601613651565b9150509250929050565b6000806040838503121561389b5761389a6149b2565b5b60006138a9858286016135e6565b92505060206138ba858286016136ec565b9150509250929050565b600080602083850312156138db576138da6149b2565b5b600083013567ffffffffffffffff8111156138f9576138f86149ad565b5b613905858286016135fb565b92509250509250929050565b600060208284031215613927576139266149b2565b5b600061393584828501613651565b91505092915050565b600060208284031215613954576139536149b2565b5b600061396284828501613666565b91505092915050565b600060208284031215613981576139806149b2565b5b600061398f8482850161367b565b91505092915050565b6000602082840312156139ae576139ad6149b2565b5b600082013567ffffffffffffffff8111156139cc576139cb6149ad565b5b6139d8848285016136be565b91505092915050565b6000602082840312156139f7576139f66149b2565b5b6000613a05848285016136ec565b91505092915050565b600080600060608486031215613a2757613a266149b2565b5b6000613a35868287016136ec565b9350506020613a46868287016136ec565b9250506040613a57868287016136ec565b9150509250925092565b6000613a6d8383613fbc565b60208301905092915050565b613a82816146be565b82525050565b613a99613a94826146be565b614820565b82525050565b6000613aaa82614532565b613ab48185614560565b9350613abf8361450d565b8060005b83811015613af0578151613ad78882613a61565b9750613ae283614553565b925050600181019050613ac3565b5085935050505092915050565b613b06816146d0565b82525050565b6000613b178261453d565b613b218185614571565b9350613b31818560208601614741565b613b3a816149b7565b840191505092915050565b6000613b5082614548565b613b5a818561458d565b9350613b6a818560208601614741565b613b73816149b7565b840191505092915050565b6000613b8982614548565b613b93818561459e565b9350613ba3818560208601614741565b80840191505092915050565b60008154613bbc81614774565b613bc6818661459e565b94506001821660008114613be15760018114613bf257613c25565b60ff19831686528186019350613c25565b613bfb8561451d565b60005b83811015613c1d57815481890152600182019150602081019050613bfe565b838801955050505b50505092915050565b6000613c3b60158361458d565b9150613c46826149d5565b602082019050919050565b6000613c5e602b8361458d565b9150613c69826149fe565b604082019050919050565b6000613c8160328361458d565b9150613c8c82614a4d565b604082019050919050565b6000613ca460268361458d565b9150613caf82614a9c565b604082019050919050565b6000613cc7601c8361458d565b9150613cd282614aeb565b602082019050919050565b6000613cea60138361458d565b9150613cf582614b14565b602082019050919050565b6000613d0d60248361458d565b9150613d1882614b3d565b604082019050919050565b6000613d3060198361458d565b9150613d3b82614b8c565b602082019050919050565b6000613d53602c8361458d565b9150613d5e82614bb5565b604082019050919050565b6000613d7660388361458d565b9150613d8182614c04565b604082019050919050565b6000613d99602a8361458d565b9150613da482614c53565b604082019050919050565b6000613dbc60298361458d565b9150613dc782614ca2565b604082019050919050565b6000613ddf60138361458d565b9150613dea82614cf1565b602082019050919050565b6000613e0260208361458d565b9150613e0d82614d1a565b602082019050919050565b6000613e25602c8361458d565b9150613e3082614d43565b604082019050919050565b6000613e4860208361458d565b9150613e5382614d92565b602082019050919050565b6000613e6b60298361458d565b9150613e7682614dbb565b604082019050919050565b6000613e8e602f8361458d565b9150613e9982614e0a565b604082019050919050565b6000613eb160118361458d565b9150613ebc82614e59565b602082019050919050565b6000613ed460218361458d565b9150613edf82614e82565b604082019050919050565b6000613ef7600083614582565b9150613f0282614ed1565b600082019050919050565b6000613f1a60318361458d565b9150613f2582614ed4565b604082019050919050565b6000613f3d60138361458d565b9150613f4882614f23565b602082019050919050565b6000613f60601b8361458d565b9150613f6b82614f4c565b602082019050919050565b6000613f83602c8361458d565b9150613f8e82614f75565b604082019050919050565b6000613fa660178361458d565b9150613fb182614fc4565b602082019050919050565b613fc581614728565b82525050565b613fd481614728565b82525050565b613feb613fe682614728565b614844565b82525050565b6000613ffd8286613b7e565b91506140098285613b7e565b91506140158284613baf565b9150819050949350505050565b600061402d82613eea565b9150819050919050565b60006140438287613fda565b6020820191506140538286613a88565b6014820191506140638285613fda565b6020820191506140738284613fda565b60208201915081905095945050505050565b600060208201905061409a6000830184613a79565b92915050565b60006080820190506140b56000830187613a79565b6140c26020830186613a79565b6140cf6040830185613fcb565b81810360608301526140e18184613b0c565b905095945050505050565b600060208201905081810360008301526141068184613a9f565b905092915050565b60006020820190506141236000830184613afd565b92915050565b600060208201905081810360008301526141438184613b45565b905092915050565b6000602082019050818103600083015261416481613c2e565b9050919050565b6000602082019050818103600083015261418481613c51565b9050919050565b600060208201905081810360008301526141a481613c74565b9050919050565b600060208201905081810360008301526141c481613c97565b9050919050565b600060208201905081810360008301526141e481613cba565b9050919050565b6000602082019050818103600083015261420481613cdd565b9050919050565b6000602082019050818103600083015261422481613d00565b9050919050565b6000602082019050818103600083015261424481613d23565b9050919050565b6000602082019050818103600083015261426481613d46565b9050919050565b6000602082019050818103600083015261428481613d69565b9050919050565b600060208201905081810360008301526142a481613d8c565b9050919050565b600060208201905081810360008301526142c481613daf565b9050919050565b600060208201905081810360008301526142e481613dd2565b9050919050565b6000602082019050818103600083015261430481613df5565b9050919050565b6000602082019050818103600083015261432481613e18565b9050919050565b6000602082019050818103600083015261434481613e3b565b9050919050565b6000602082019050818103600083015261436481613e5e565b9050919050565b6000602082019050818103600083015261438481613e81565b9050919050565b600060208201905081810360008301526143a481613ea4565b9050919050565b600060208201905081810360008301526143c481613ec7565b9050919050565b600060208201905081810360008301526143e481613f0d565b9050919050565b6000602082019050818103600083015261440481613f30565b9050919050565b6000602082019050818103600083015261442481613f53565b9050919050565b6000602082019050818103600083015261444481613f76565b9050919050565b6000602082019050818103600083015261446481613f99565b9050919050565b60006020820190506144806000830184613fcb565b92915050565b60006144906144a1565b905061449c82826147a6565b919050565b6000604051905090565b600067ffffffffffffffff8211156144c6576144c561496a565b5b6144cf826149b7565b9050602081019050919050565b600067ffffffffffffffff8211156144f7576144f661496a565b5b614500826149b7565b9050602081019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b60006145b482614728565b91506145bf83614728565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156145f4576145f361487f565b5b828201905092915050565b600061460a82614728565b915061461583614728565b925082614625576146246148ae565b5b828204905092915050565b600061463b82614728565b915061464683614728565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561467f5761467e61487f565b5b828202905092915050565b600061469582614728565b91506146a083614728565b9250828210156146b3576146b261487f565b5b828203905092915050565b60006146c982614708565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561475f578082015181840152602081019050614744565b8381111561476e576000848401525b50505050565b6000600282049050600182168061478c57607f821691505b602082108114156147a05761479f6148dd565b5b50919050565b6147af826149b7565b810181811067ffffffffffffffff821117156147ce576147cd61496a565b5b80604052505050565b60006147e282614728565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156148155761481461487f565b5b600182019050919050565b600061482b82614832565b9050919050565b600061483d826149c8565b9050919050565b6000819050919050565b600061485982614728565b915061486483614728565b925082614874576148736148ae565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f436f756c64206e6f742073656e642076616c7565210000000000000000000000600082015250565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f436f6e7472616374206973207061757365642100000000000000000000000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4f776e65722063616e206e6f74206d696e742100000000000000000000000000600082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4e6f7420656e6f7567682066756e647321000000000000000000000000000000600082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b50565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f4d617820737570706c7920726561636865642100000000000000000000000000600082015250565b7f6d6178204e465420706572206164647265737320726561636865640000000000600082015250565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b7f75736572206973206e6f742077686974656c6973746564000000000000000000600082015250565b614ff6816146be565b811461500157600080fd5b50565b61500d816146d0565b811461501857600080fd5b50565b615024816146dc565b811461502f57600080fd5b50565b61503b81614728565b811461504657600080fd5b5056fea264697066735822122002cdd87ab5aeb74f43c48fbe20f053b45b30873ef50e0018a5f42679492d8b3364736f6c63430008070033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d615933767352334d484d4b7841346b6942754e6b5a726e34414741584b346a6f7a7046685472427165776f542f00000000000000000000000000000000000000000000000000000000000000000000000000000000003a516d523278684a354d33716b366e6d45434a36434e594c6d574737367659463156387848536f374c39575a5a36442f68696464656e2e6a736f6e000000000000