[ { "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": [ { "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": [ { "internalType": "uint256", "name": "_tokenID", "type": "uint256" }, { "internalType": "uint256", "name": "_variationID", "type": "uint256" } ], "name": "changeVariation", "outputs": [], "stateMutability": "payable", "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": [], "name": "minSpots", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_tokenURI", "type": "string" }, { "internalType": "uint256[]", "name": "_variations", "type": "uint256[]" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "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": "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": "uint256", "name": "newCost", "type": "uint256" } ], "name": "setCost", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newNum", "type": "uint256" } ], "name": "setMinSpots", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_spot1Address", "type": "address" } ], "name": "setSpot1Address", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_spot2Address", "type": "address" } ], "name": "setSpot2Address", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_spot3Address", "type": "address" } ], "name": "setSpot3Address", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_spot4Address", "type": "address" } ], "name": "setSpot4Address", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_spot5Address", "type": "address" } ], "name": "setSpot5Address", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_spotAddress", "type": "address" } ], "name": "setSpotAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "_tokenURI", "type": "string" } ], "name": "setTokenURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_treasuryWallet", "type": "address" } ], "name": "setTreasuryWalletAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenID", "type": "uint256" }, { "internalType": "uint256[]", "name": "_validVariations", "type": "uint256[]" } ], "name": "setValidVariations", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "spot1Address", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "spot2Address", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "spot3Address", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "spot4Address", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "spot5Address", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "spotAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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": "tokenID", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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": "treasuryWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "validVariations", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "variation", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ]
60806040526040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250601290805190602001906200005192919062000457565b50600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550670de0b6b3a7640000601955600a601a55348015620002c257600080fd5b506040518060400160405280600681526020017f416e616c6f6700000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f414e414c4f47000000000000000000000000000000000000000000000000000081525081600090805190602001906200034792919062000457565b5080600190805190602001906200036092919062000457565b50505062000383620003776200038960201b60201c565b6200039160201b60201c565b6200056c565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620004659062000536565b90600052602060002090601f016020900481019282620004895760008555620004d5565b82601f10620004a457805160ff1916838001178555620004d5565b82800160010185558215620004d5579182015b82811115620004d4578251825591602001919060010190620004b7565b5b509050620004e49190620004e8565b5090565b5b8082111562000503576000816000905550600101620004e9565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200054f57607f821691505b6020821081141562000566576200056562000507565b5b50919050565b615340806200057c6000396000f3fe60806040526004361061023b5760003560e01c8063632694a41161012e578063a24030ca116100ab578063d423653f1161006f578063d423653f14610871578063e8834a13146108ae578063e985e9c5146108d9578063f2fde38b14610916578063fa87ca291461093f5761023b565b8063a24030ca14610790578063a6a156b4146107b9578063b88d4fde146107e2578063c0f862581461080b578063c87b56dd146108345761023b565b80638da5cb5b116100f25780638da5cb5b146106bf57806393195630146106ea57806395d89b4114610713578063965103f91461073e578063a22cb465146107675761023b565b8063632694a4146105c65780636352211e146105f1578063648d12aa1461062e57806366c2ef731461065757806370a08231146106825761023b565b806323b872dd116101bc57806344a0d68a1161018057806344a0d68a146105025780634626402b1461052b57806353f5bdd5146105565780635cb0e06d146105815780635efd930b1461059d5761023b565b806323b872dd1461041e57806324abe62e146104475780632a55205a146104725780632f79274f146104b057806342842e0e146104d95761023b565b8063095ea7b311610203578063095ea7b31461034b57806313faede614610374578063162094c41461039f5780632246128b146103c85780632312c4fb146103f35761023b565b80630180c8941461024057806301ffc9a71461027d57806304956e61146102ba57806306fdde03146102e3578063081812fc1461030e575b600080fd5b34801561024c57600080fd5b50610267600480360381019061026291906137dc565b610968565b6040516102749190613837565b60405180910390f35b34801561028957600080fd5b506102a4600480360381019061029f91906138aa565b610997565b6040516102b19190613837565b60405180910390f35b3480156102c657600080fd5b506102e160048036038101906102dc9190613992565b610a11565b005b3480156102ef57600080fd5b506102f8610b95565b6040516103059190613aac565b60405180910390f35b34801561031a57600080fd5b5061033560048036038101906103309190613ace565b610c27565b6040516103429190613b3c565b60405180910390f35b34801561035757600080fd5b50610372600480360381019061036d9190613b83565b610cac565b005b34801561038057600080fd5b50610389610dc4565b6040516103969190613bd2565b60405180910390f35b3480156103ab57600080fd5b506103c660048036038101906103c19190613d1d565b610dca565b005b3480156103d457600080fd5b506103dd610e9c565b6040516103ea9190613b3c565b60405180910390f35b3480156103ff57600080fd5b50610408610ec2565b6040516104159190613b3c565b60405180910390f35b34801561042a57600080fd5b5061044560048036038101906104409190613d79565b610ee8565b005b34801561045357600080fd5b5061045c610f48565b6040516104699190613b3c565b60405180910390f35b34801561047e57600080fd5b50610499600480360381019061049491906137dc565b610f6e565b6040516104a7929190613dcc565b60405180910390f35b3480156104bc57600080fd5b506104d760048036038101906104d29190613df5565b610fba565b005b3480156104e557600080fd5b5061050060048036038101906104fb9190613d79565b6110dd565b005b34801561050e57600080fd5b5061052960048036038101906105249190613ace565b6110fd565b005b34801561053757600080fd5b50610540611183565b60405161054d9190613b3c565b60405180910390f35b34801561056257600080fd5b5061056b6111a9565b6040516105789190613b3c565b60405180910390f35b61059b600480360381019061059691906137dc565b6111cf565b005b3480156105a957600080fd5b506105c460048036038101906105bf9190613df5565b611978565b005b3480156105d257600080fd5b506105db611a38565b6040516105e89190613b3c565b60405180910390f35b3480156105fd57600080fd5b5061061860048036038101906106139190613ace565b611a5e565b6040516106259190613b3c565b60405180910390f35b34801561063a57600080fd5b5061065560048036038101906106509190613df5565b611b10565b005b34801561066357600080fd5b5061066c611c33565b6040516106799190613b3c565b60405180910390f35b34801561068e57600080fd5b506106a960048036038101906106a49190613df5565b611c59565b6040516106b69190613bd2565b60405180910390f35b3480156106cb57600080fd5b506106d4611d11565b6040516106e19190613b3c565b60405180910390f35b3480156106f657600080fd5b50610711600480360381019061070c9190613ee5565b611d3b565b005b34801561071f57600080fd5b50610728611e32565b6040516107359190613aac565b60405180910390f35b34801561074a57600080fd5b5061076560048036038101906107609190613df5565b611ec4565b005b34801561077357600080fd5b5061078e60048036038101906107899190613f6d565b611fe7565b005b34801561079c57600080fd5b506107b760048036038101906107b29190613ace565b611ffd565b005b3480156107c557600080fd5b506107e060048036038101906107db9190613df5565b612083565b005b3480156107ee57600080fd5b506108096004803603810190610804919061404e565b6121a6565b005b34801561081757600080fd5b50610832600480360381019061082d9190613df5565b612208565b005b34801561084057600080fd5b5061085b60048036038101906108569190613ace565b61232b565b6040516108689190613aac565b60405180910390f35b34801561087d57600080fd5b5061089860048036038101906108939190613ace565b6123c4565b6040516108a59190613bd2565b60405180910390f35b3480156108ba57600080fd5b506108c36123dc565b6040516108d09190613bd2565b60405180910390f35b3480156108e557600080fd5b5061090060048036038101906108fb91906140d1565b6123e2565b60405161090d9190613837565b60405180910390f35b34801561092257600080fd5b5061093d60048036038101906109389190613df5565b612476565b005b34801561094b57600080fd5b5061096660048036038101906109619190613df5565b61256e565b005b60096020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610a0a5750610a0982612691565b5b9050919050565b610a19612773565b73ffffffffffffffffffffffffffffffffffffffff16610a37611d11565b73ffffffffffffffffffffffffffffffffffffffff1614610a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a849061415d565b60405180910390fd5b610a97601161277b565b6000610aa36011612791565b9050610aaf338261279f565b610afd8186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506127bd565b6001600860008381526020019081526020016000208190555060005b83839050811015610b8d576001600960008481526020019081526020016000206000868685818110610b4e57610b4d61417d565b5b90506020020135815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610b85906141db565b915050610b19565b505050505050565b606060008054610ba490614253565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd090614253565b8015610c1d5780601f10610bf257610100808354040283529160200191610c1d565b820191906000526020600020905b815481529060010190602001808311610c0057829003601f168201915b5050505050905090565b6000610c3282612831565b610c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c68906142f7565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610cb782611a5e565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1f90614389565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610d47612773565b73ffffffffffffffffffffffffffffffffffffffff161480610d765750610d7581610d70612773565b6123e2565b5b610db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dac9061441b565b60405180910390fd5b610dbf838361289d565b505050565b60195481565b610dd2612773565b73ffffffffffffffffffffffffffffffffffffffff16610df0611d11565b73ffffffffffffffffffffffffffffffffffffffff1614610e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3d9061415d565b60405180910390fd5b610e4f82612831565b610e8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e85906144ad565b60405180910390fd5b610e9882826127bd565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ef9610ef3612773565b82612956565b610f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2f9061453f565b60405180910390fd5b610f43838383612a34565b505050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166127106101f485610fa5919061455f565b610faf91906145e8565b915091509250929050565b610fc2612773565b73ffffffffffffffffffffffffffffffffffffffff16610fe0611d11565b73ffffffffffffffffffffffffffffffffffffffff1614611036576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102d9061415d565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6110f8838383604051806020016040528060008152506121a6565b505050565b611105612773565b73ffffffffffffffffffffffffffffffffffffffff16611123611d11565b73ffffffffffffffffffffffffffffffffffffffff1614611179576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111709061415d565b60405180910390fd5b8060198190555050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111d882611a5e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611245576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123c90614665565b60405180910390fd5b60195434101561128a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611281906146d1565b60405180910390fd5b80600860008481526020019081526020016000205414156112e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d790614763565b60405180910390fd5b60098114156113d557601a54601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231611332612773565b6040518263ffffffff1660e01b815260040161134e9190613b3c565b602060405180830381865afa15801561136b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138f9190614798565b10156113d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c790614811565b60405180910390fd5b61188d565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823161141d612773565b6040518263ffffffff1660e01b81526004016114399190613b3c565b602060405180830381865afa158015611456573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147a9190614798565b118061152857506000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a082316114c9612773565b6040518263ffffffff1660e01b81526004016114e59190613b3c565b602060405180830381865afa158015611502573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115269190614798565b115b806115d557506000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231611576612773565b6040518263ffffffff1660e01b81526004016115929190613b3c565b602060405180830381865afa1580156115af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d39190614798565b115b8061168257506000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231611623612773565b6040518263ffffffff1660e01b815260040161163f9190613b3c565b602060405180830381865afa15801561165c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116809190614798565b115b8061172f57506000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a082316116d0612773565b6040518263ffffffff1660e01b81526004016116ec9190613b3c565b602060405180830381865afa158015611709573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172d9190614798565b115b806117dc57506000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823161177d612773565b6040518263ffffffff1660e01b81526004016117999190613b3c565b602060405180830381865afa1580156117b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117da9190614798565b115b61181b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118129061487d565b60405180910390fd5b60096000838152602001908152602001600020600082815260200190815260200160002060009054906101000a900460ff1661188c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611883906148e9565b60405180910390fd5b5b8060086000848152602001908152602001600020819055506000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16346040516118ed9061493a565b60006040518083038185875af1925050503d806000811461192a576040519150601f19603f3d011682016040523d82523d6000602084013e61192f565b606091505b5050905080611973576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196a906149c1565b60405180910390fd5b505050565b611980612773565b73ffffffffffffffffffffffffffffffffffffffff1661199e611d11565b73ffffffffffffffffffffffffffffffffffffffff16146119f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119eb9061415d565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afe90614a53565b60405180910390fd5b80915050919050565b611b18612773565b73ffffffffffffffffffffffffffffffffffffffff16611b36611d11565b73ffffffffffffffffffffffffffffffffffffffff1614611b8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b839061415d565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc190614ae5565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611d43612773565b73ffffffffffffffffffffffffffffffffffffffff16611d61611d11565b73ffffffffffffffffffffffffffffffffffffffff1614611db7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dae9061415d565b60405180910390fd5b60005b8151811015611e2d576001600960008581526020019081526020016000206000848481518110611ded57611dec61417d565b5b6020026020010151815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611e25906141db565b915050611dba565b505050565b606060018054611e4190614253565b80601f0160208091040260200160405190810160405280929190818152602001828054611e6d90614253565b8015611eba5780601f10611e8f57610100808354040283529160200191611eba565b820191906000526020600020905b815481529060010190602001808311611e9d57829003601f168201915b5050505050905090565b611ecc612773565b73ffffffffffffffffffffffffffffffffffffffff16611eea611d11565b73ffffffffffffffffffffffffffffffffffffffff1614611f40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f379061415d565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611ff9611ff2612773565b8383612c9b565b5050565b612005612773565b73ffffffffffffffffffffffffffffffffffffffff16612023611d11565b73ffffffffffffffffffffffffffffffffffffffff1614612079576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120709061415d565b60405180910390fd5b80601a8190555050565b61208b612773565b73ffffffffffffffffffffffffffffffffffffffff166120a9611d11565b73ffffffffffffffffffffffffffffffffffffffff16146120ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f69061415d565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6121b76121b1612773565b83612956565b6121f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ed9061453f565b60405180910390fd5b61220284848484612e08565b50505050565b612210612773565b73ffffffffffffffffffffffffffffffffffffffff1661222e611d11565b73ffffffffffffffffffffffffffffffffffffffff1614612284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227b9061415d565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606061233682612831565b612375576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236c90614b77565b60405180910390fd5b61237e82612e64565b61239a6008600085815260200190815260200160002054612fb6565b60126040516020016123ae93929190614c67565b6040516020818303038152906040529050919050565b60086020528060005260406000206000915090505481565b601a5481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61247e612773565b73ffffffffffffffffffffffffffffffffffffffff1661249c611d11565b73ffffffffffffffffffffffffffffffffffffffff16146124f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e99061415d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612562576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255990614d0a565b60405180910390fd5b61256b81613117565b50565b612576612773565b73ffffffffffffffffffffffffffffffffffffffff16612594611d11565b73ffffffffffffffffffffffffffffffffffffffff16146125ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e19061415d565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061275c57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061276c575061276b826131dd565b5b9050919050565b600033905090565b6001816000016000828254019250508190555050565b600081600001549050919050565b6127b9828260405180602001604052806000815250613247565b5050565b6127c682612831565b612805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127fc906144ad565b60405180910390fd5b8060066000848152602001908152602001600020908051906020019061282c9291906136ef565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661291083611a5e565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061296182612831565b6129a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299790614d9c565b60405180910390fd5b60006129ab83611a5e565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612a1a57508373ffffffffffffffffffffffffffffffffffffffff16612a0284610c27565b73ffffffffffffffffffffffffffffffffffffffff16145b80612a2b5750612a2a81856123e2565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16612a5482611a5e565b73ffffffffffffffffffffffffffffffffffffffff1614612aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aa190614e2e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612b1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b1190614ec0565b60405180910390fd5b612b258383836132a2565b612b3060008261289d565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b809190614ee0565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612bd79190614f14565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612c968383836132a7565b505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d0190614fb6565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612dfb9190613837565b60405180910390a3505050565b612e13848484612a34565b612e1f848484846132ac565b612e5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5590615048565b60405180910390fd5b50505050565b6060612e6f82612831565b612eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ea5906150da565b60405180910390fd5b6000600660008481526020019081526020016000208054612ece90614253565b80601f0160208091040260200160405190810160405280929190818152602001828054612efa90614253565b8015612f475780601f10612f1c57610100808354040283529160200191612f47565b820191906000526020600020905b815481529060010190602001808311612f2a57829003601f168201915b505050505090506000612f58613434565b9050600081511415612f6e578192505050612fb1565b600082511115612fa3578082604051602001612f8b9291906150fa565b60405160208183030381529060405292505050612fb1565b612fac8461344b565b925050505b919050565b60606000821415612ffe576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050613112565b600082905060005b60008214613030578080613019906141db565b915050600a8261302991906145e8565b9150613006565b60008167ffffffffffffffff81111561304c5761304b613bf2565b5b6040519080825280601f01601f19166020018201604052801561307e5781602001600182028036833780820191505090505b5090505b6000851461310b576001826130979190614ee0565b9150600a856130a6919061511e565b60306130b29190614f14565b60f81b8183815181106130c8576130c761417d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8561310491906145e8565b9450613082565b8093505050505b919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61325183836134f2565b61325e60008484846132ac565b61329d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161329490615048565b60405180910390fd5b505050565b505050565b505050565b60006132cd8473ffffffffffffffffffffffffffffffffffffffff166136cc565b15613427578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026132f6612773565b8786866040518563ffffffff1660e01b815260040161331894939291906151a4565b6020604051808303816000875af192505050801561335457506040513d601f19601f820116820180604052508101906133519190615205565b60015b6133d7573d8060008114613384576040519150601f19603f3d011682016040523d82523d6000602084013e613389565b606091505b506000815114156133cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133c690615048565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061342c565b600190505b949350505050565b606060405180602001604052806000815250905090565b606061345682612831565b613495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161348c90614b77565b60405180910390fd5b600061349f613434565b905060008151116134bf57604051806020016040528060008152506134ea565b806134c984612fb6565b6040516020016134da9291906150fa565b6040516020818303038152906040525b915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613562576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135599061527e565b60405180910390fd5b61356b81612831565b156135ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135a2906152ea565b60405180910390fd5b6135b7600083836132a2565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546136079190614f14565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46136c8600083836132a7565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b8280546136fb90614253565b90600052602060002090601f01602090048101928261371d5760008555613764565b82601f1061373657805160ff1916838001178555613764565b82800160010185558215613764579182015b82811115613763578251825591602001919060010190613748565b5b5090506137719190613775565b5090565b5b8082111561378e576000816000905550600101613776565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6137b9816137a6565b81146137c457600080fd5b50565b6000813590506137d6816137b0565b92915050565b600080604083850312156137f3576137f261379c565b5b6000613801858286016137c7565b9250506020613812858286016137c7565b9150509250929050565b60008115159050919050565b6138318161381c565b82525050565b600060208201905061384c6000830184613828565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61388781613852565b811461389257600080fd5b50565b6000813590506138a48161387e565b92915050565b6000602082840312156138c0576138bf61379c565b5b60006138ce84828501613895565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126138fc576138fb6138d7565b5b8235905067ffffffffffffffff811115613919576139186138dc565b5b602083019150836001820283011115613935576139346138e1565b5b9250929050565b60008083601f840112613952576139516138d7565b5b8235905067ffffffffffffffff81111561396f5761396e6138dc565b5b60208301915083602082028301111561398b5761398a6138e1565b5b9250929050565b600080600080604085870312156139ac576139ab61379c565b5b600085013567ffffffffffffffff8111156139ca576139c96137a1565b5b6139d6878288016138e6565b9450945050602085013567ffffffffffffffff8111156139f9576139f86137a1565b5b613a058782880161393c565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b60005b83811015613a4d578082015181840152602081019050613a32565b83811115613a5c576000848401525b50505050565b6000601f19601f8301169050919050565b6000613a7e82613a13565b613a888185613a1e565b9350613a98818560208601613a2f565b613aa181613a62565b840191505092915050565b60006020820190508181036000830152613ac68184613a73565b905092915050565b600060208284031215613ae457613ae361379c565b5b6000613af2848285016137c7565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613b2682613afb565b9050919050565b613b3681613b1b565b82525050565b6000602082019050613b516000830184613b2d565b92915050565b613b6081613b1b565b8114613b6b57600080fd5b50565b600081359050613b7d81613b57565b92915050565b60008060408385031215613b9a57613b9961379c565b5b6000613ba885828601613b6e565b9250506020613bb9858286016137c7565b9150509250929050565b613bcc816137a6565b82525050565b6000602082019050613be76000830184613bc3565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613c2a82613a62565b810181811067ffffffffffffffff82111715613c4957613c48613bf2565b5b80604052505050565b6000613c5c613792565b9050613c688282613c21565b919050565b600067ffffffffffffffff821115613c8857613c87613bf2565b5b613c9182613a62565b9050602081019050919050565b82818337600083830152505050565b6000613cc0613cbb84613c6d565b613c52565b905082815260208101848484011115613cdc57613cdb613bed565b5b613ce7848285613c9e565b509392505050565b600082601f830112613d0457613d036138d7565b5b8135613d14848260208601613cad565b91505092915050565b60008060408385031215613d3457613d3361379c565b5b6000613d42858286016137c7565b925050602083013567ffffffffffffffff811115613d6357613d626137a1565b5b613d6f85828601613cef565b9150509250929050565b600080600060608486031215613d9257613d9161379c565b5b6000613da086828701613b6e565b9350506020613db186828701613b6e565b9250506040613dc2868287016137c7565b9150509250925092565b6000604082019050613de16000830185613b2d565b613dee6020830184613bc3565b9392505050565b600060208284031215613e0b57613e0a61379c565b5b6000613e1984828501613b6e565b91505092915050565b600067ffffffffffffffff821115613e3d57613e3c613bf2565b5b602082029050602081019050919050565b6000613e61613e5c84613e22565b613c52565b90508083825260208201905060208402830185811115613e8457613e836138e1565b5b835b81811015613ead5780613e9988826137c7565b845260208401935050602081019050613e86565b5050509392505050565b600082601f830112613ecc57613ecb6138d7565b5b8135613edc848260208601613e4e565b91505092915050565b60008060408385031215613efc57613efb61379c565b5b6000613f0a858286016137c7565b925050602083013567ffffffffffffffff811115613f2b57613f2a6137a1565b5b613f3785828601613eb7565b9150509250929050565b613f4a8161381c565b8114613f5557600080fd5b50565b600081359050613f6781613f41565b92915050565b60008060408385031215613f8457613f8361379c565b5b6000613f9285828601613b6e565b9250506020613fa385828601613f58565b9150509250929050565b600067ffffffffffffffff821115613fc857613fc7613bf2565b5b613fd182613a62565b9050602081019050919050565b6000613ff1613fec84613fad565b613c52565b90508281526020810184848401111561400d5761400c613bed565b5b614018848285613c9e565b509392505050565b600082601f830112614035576140346138d7565b5b8135614045848260208601613fde565b91505092915050565b600080600080608085870312156140685761406761379c565b5b600061407687828801613b6e565b945050602061408787828801613b6e565b9350506040614098878288016137c7565b925050606085013567ffffffffffffffff8111156140b9576140b86137a1565b5b6140c587828801614020565b91505092959194509250565b600080604083850312156140e8576140e761379c565b5b60006140f685828601613b6e565b925050602061410785828601613b6e565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614147602083613a1e565b915061415282614111565b602082019050919050565b600060208201905081810360008301526141768161413a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006141e6826137a6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614219576142186141ac565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061426b57607f821691505b6020821081141561427f5761427e614224565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b60006142e1602c83613a1e565b91506142ec82614285565b604082019050919050565b60006020820190508181036000830152614310816142d4565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000614373602183613a1e565b915061437e82614317565b604082019050919050565b600060208201905081810360008301526143a281614366565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b6000614405603883613a1e565b9150614410826143a9565b604082019050919050565b60006020820190508181036000830152614434816143f8565b9050919050565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b6000614497602e83613a1e565b91506144a28261443b565b604082019050919050565b600060208201905081810360008301526144c68161448a565b9050919050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b6000614529603183613a1e565b9150614534826144cd565b604082019050919050565b600060208201905081810360008301526145588161451c565b9050919050565b600061456a826137a6565b9150614575836137a6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156145ae576145ad6141ac565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006145f3826137a6565b91506145fe836137a6565b92508261460e5761460d6145b9565b5b828204905092915050565b7f596f7520646f6e2774206f776e2074686973204e465400000000000000000000600082015250565b600061464f601683613a1e565b915061465a82614619565b602082019050919050565b6000602082019050818103600083015261467e81614642565b9050919050565b7f496e73756666696369656e742066756e64730000000000000000000000000000600082015250565b60006146bb601283613a1e565b91506146c682614685565b602082019050919050565b600060208201905081810360008301526146ea816146ae565b9050919050565b7f4e465420616c7265616479207573696e67207468617420766172696174696f6e60008201527f2100000000000000000000000000000000000000000000000000000000000000602082015250565b600061474d602183613a1e565b9150614758826146f1565b604082019050919050565b6000602082019050818103600083015261477c81614740565b9050919050565b600081519050614792816137b0565b92915050565b6000602082840312156147ae576147ad61379c565b5b60006147bc84828501614783565b91505092915050565b7f6e6f7420656e6f7567682073706f747320000000000000000000000000000000600082015250565b60006147fb601183613a1e565b9150614806826147c5565b602082019050919050565b6000602082019050818103600083015261482a816147ee565b9050919050565b7f416e616c6f673a20596f7520646f6e2774206f776e20612073706f7421000000600082015250565b6000614867601d83613a1e565b915061487282614831565b602082019050919050565b600060208201905081810360008301526148968161485a565b9050919050565b7f496e76616c696420566172696174696f6e210000000000000000000000000000600082015250565b60006148d3601283613a1e565b91506148de8261489d565b602082019050919050565b60006020820190508181036000830152614902816148c6565b9050919050565b600081905092915050565b50565b6000614924600083614909565b915061492f82614914565b600082019050919050565b600061494582614917565b9150819050919050565b7f41564158205472616e73616374696f6e3a204661696c656420746f207472616e60008201527f736665722066756e647320746f2074726561737572792077616c6c6574210000602082015250565b60006149ab603e83613a1e565b91506149b68261494f565b604082019050919050565b600060208201905081810360008301526149da8161499e565b9050919050565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b6000614a3d602983613a1e565b9150614a48826149e1565b604082019050919050565b60006020820190508181036000830152614a6c81614a30565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b6000614acf602a83613a1e565b9150614ada82614a73565b604082019050919050565b60006020820190508181036000830152614afe81614ac2565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000614b61602f83613a1e565b9150614b6c82614b05565b604082019050919050565b60006020820190508181036000830152614b9081614b54565b9050919050565b600081905092915050565b6000614bad82613a13565b614bb78185614b97565b9350614bc7818560208601613a2f565b80840191505092915050565b60008190508160005260206000209050919050565b60008154614bf581614253565b614bff8186614b97565b94506001821660008114614c1a5760018114614c2b57614c5e565b60ff19831686528186019350614c5e565b614c3485614bd3565b60005b83811015614c5657815481890152600182019150602081019050614c37565b838801955050505b50505092915050565b6000614c738286614ba2565b9150614c7f8285614ba2565b9150614c8b8284614be8565b9150819050949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614cf4602683613a1e565b9150614cff82614c98565b604082019050919050565b60006020820190508181036000830152614d2381614ce7565b9050919050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000614d86602c83613a1e565b9150614d9182614d2a565b604082019050919050565b60006020820190508181036000830152614db581614d79565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000614e18602583613a1e565b9150614e2382614dbc565b604082019050919050565b60006020820190508181036000830152614e4781614e0b565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614eaa602483613a1e565b9150614eb582614e4e565b604082019050919050565b60006020820190508181036000830152614ed981614e9d565b9050919050565b6000614eeb826137a6565b9150614ef6836137a6565b925082821015614f0957614f086141ac565b5b828203905092915050565b6000614f1f826137a6565b9150614f2a836137a6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614f5f57614f5e6141ac565b5b828201905092915050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000614fa0601983613a1e565b9150614fab82614f6a565b602082019050919050565b60006020820190508181036000830152614fcf81614f93565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000615032603283613a1e565b915061503d82614fd6565b604082019050919050565b6000602082019050818103600083015261506181615025565b9050919050565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b60006150c4603183613a1e565b91506150cf82615068565b604082019050919050565b600060208201905081810360008301526150f3816150b7565b9050919050565b60006151068285614ba2565b91506151128284614ba2565b91508190509392505050565b6000615129826137a6565b9150615134836137a6565b925082615144576151436145b9565b5b828206905092915050565b600081519050919050565b600082825260208201905092915050565b60006151768261514f565b615180818561515a565b9350615190818560208601613a2f565b61519981613a62565b840191505092915050565b60006080820190506151b96000830187613b2d565b6151c66020830186613b2d565b6151d36040830185613bc3565b81810360608301526151e5818461516b565b905095945050505050565b6000815190506151ff8161387e565b92915050565b60006020828403121561521b5761521a61379c565b5b6000615229848285016151f0565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000615268602083613a1e565b915061527382615232565b602082019050919050565b600060208201905081810360008301526152978161525b565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b60006152d4601c83613a1e565b91506152df8261529e565b602082019050919050565b60006020820190508181036000830152615303816152c7565b905091905056fea26469706673582212204d2174b8397dd2962ba6490f41a7b895c0a605b65c270988dab8ae7080241b7f64736f6c634300080b0033