[ { "inputs": [ { "internalType": "address", "name": "minter", "type": "address" }, { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "string", "name": "_url", "type": "string" }, { "internalType": "uint256", "name": "_supply", "type": "uint256" }, { "internalType": "uint256", "name": "_mintPrice", "type": "uint256" }, { "internalType": "uint256", "name": "_mintLimit", "type": "uint256" }, { "internalType": "address", "name": "_treasury", "type": "address" }, { "internalType": "address", "name": "_komet", "type": "address" }, { "internalType": "address", "name": "_CollectionWallet", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccessControlBadConfirmation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "AccessControlUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721IncorrectOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721InsufficientApproval", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC721InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC721InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721InvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC721InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC721InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721NonexistentToken", "type": "error" }, { "inputs": [], "name": "EnforcedPause", "type": "error" }, { "inputs": [], "name": "ExpectedPause", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "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": false, "internalType": "uint256", "name": "_fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_toTokenId", "type": "uint256" } ], "name": "BatchMetadataUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "MetadataUpdate", "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": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_user", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "UserPaid", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "KOMET_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "bytes32[]", "name": "proof", "type": "bytes32[]" } ], "name": "OgMint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "Og_minted_address", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PAUSER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "amount_paid", "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": "base_url", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "collectionWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "recipient1", "type": "address" }, { "internalType": "address payable", "name": "recipient2", "type": "address" } ], "name": "distributeFunds", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "feePercent", "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": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "has_paid", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "bytes32[]", "name": "proof", "type": "bytes32[]" }, { "internalType": "bytes32", "name": "leaf", "type": "bytes32" } ], "name": "isValidAddress", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "isWhitelistAddress", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "kometWallet", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mint_Limit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mint_cap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mint_price", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "noOfEntry", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "percentDecimal", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "_user", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "internalType": "struct Komet.automint[]", "name": "_users", "type": "tuple[]" } ], "name": "presaleMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "presale_users", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "publicMint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "public_minted_address", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "callerConfirmation", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "root", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_uri", "type": "string" } ], "name": "setBaseUrl", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_wallet", "type": "address" } ], "name": "setCollectionWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "_root", "type": "bytes32" } ], "name": "setMerkleTree", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_limit", "type": "uint256" } ], "name": "setMintSupply", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_price", "type": "uint256" }, { "internalType": "uint256", "name": "_perWalletLimit", "type": "uint256" }, { "internalType": "uint256", "name": "_mintCap", "type": "uint256" }, { "internalType": "bool", "name": "_og", "type": "bool" }, { "internalType": "bool", "name": "_wl", "type": "bool" }, { "internalType": "bool", "name": "_public", "type": "bool" } ], "name": "setMintType", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_percent", "type": "uint256" }, { "internalType": "uint256", "name": "_decimal", "type": "uint256" } ], "name": "setPlatFormFeeCharges", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "setTreasuryWallet", "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": "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": "_user", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "treasury", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "treasuryMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdrawAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "bytes32[]", "name": "proof", "type": "bytes32[]" } ], "name": "wlMint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "wl_minted_address", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
6080604052600060115560006012556005601355600a60145560405180602001604052806000815250601990816200003891906200084e565b503480156200004657600080fd5b506040516200651e3803806200651e83398181016040528101906200006c919062000b2f565b33898981600090816200008091906200084e565b5080600190816200009291906200084e565b5050506000600760006101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001255760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200011c919062000c93565b60405180910390fd5b62000136816200039760201b60201c565b506200014c6000801b336200045d60201b60201c565b506200017f7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336200045d60201b60201c565b50620001b27f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6336200045d60201b60201c565b50620001e57fc5abefe4aed277fb344652e626c3c4fe5cdab1313b8ac46cdd6da9bbe98161cb8b6200045d60201b60201c565b50620001fb6000801b8b6200045d60201b60201c565b506200022e7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8b6200045d60201b60201c565b50620002617f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a68b6200045d60201b60201c565b50620002947fc5abefe4aed277fb344652e626c3c4fe5cdab1313b8ac46cdd6da9bbe98161cb8b6200045d60201b60201c565b5060016018819055508660199081620002ae91906200084e565b5085601181905550846009819055508360168190555082600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050505062000cb0565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006200047183836200056160201b60201c565b620005565760016008600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004f2620005cc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506200055b565b600090505b92915050565b60006008600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200065657607f821691505b6020821081036200066c576200066b6200060e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620006d67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000697565b620006e2868362000697565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200072f620007296200072384620006fa565b62000704565b620006fa565b9050919050565b6000819050919050565b6200074b836200070e565b620007636200075a8262000736565b848454620006a4565b825550505050565b600090565b6200077a6200076b565b6200078781848462000740565b505050565b5b81811015620007af57620007a360008262000770565b6001810190506200078d565b5050565b601f821115620007fe57620007c88162000672565b620007d38462000687565b81016020851015620007e3578190505b620007fb620007f28562000687565b8301826200078c565b50505b505050565b600082821c905092915050565b6000620008236000198460080262000803565b1980831691505092915050565b60006200083e838362000810565b9150826002028217905092915050565b6200085982620005d4565b67ffffffffffffffff811115620008755762000874620005df565b5b6200088182546200063d565b6200088e828285620007b3565b600060209050601f831160018114620008c65760008415620008b1578287015190505b620008bd858262000830565b8655506200092d565b601f198416620008d68662000672565b60005b828110156200090057848901518255600182019150602085019450602081019050620008d9565b868310156200092057848901516200091c601f89168262000810565b8355505b6001600288020188555050505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009768262000949565b9050919050565b620009888162000969565b81146200099457600080fd5b50565b600081519050620009a8816200097d565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b620009d482620009b8565b810181811067ffffffffffffffff82111715620009f657620009f5620005df565b5b80604052505050565b600062000a0b62000935565b905062000a198282620009c9565b919050565b600067ffffffffffffffff82111562000a3c5762000a3b620005df565b5b62000a4782620009b8565b9050602081019050919050565b60005b8381101562000a7457808201518184015260208101905062000a57565b60008484015250505050565b600062000a9762000a918462000a1e565b620009ff565b90508281526020810184848401111562000ab65762000ab5620009b3565b5b62000ac384828562000a54565b509392505050565b600082601f83011262000ae35762000ae2620009ae565b5b815162000af584826020860162000a80565b91505092915050565b62000b0981620006fa565b811462000b1557600080fd5b50565b60008151905062000b298162000afe565b92915050565b6000806000806000806000806000806101408b8d03121562000b565762000b556200093f565b5b600062000b668d828e0162000997565b9a505060208b015167ffffffffffffffff81111562000b8a5762000b8962000944565b5b62000b988d828e0162000acb565b99505060408b015167ffffffffffffffff81111562000bbc5762000bbb62000944565b5b62000bca8d828e0162000acb565b98505060608b015167ffffffffffffffff81111562000bee5762000bed62000944565b5b62000bfc8d828e0162000acb565b975050608062000c0f8d828e0162000b18565b96505060a062000c228d828e0162000b18565b95505060c062000c358d828e0162000b18565b94505060e062000c488d828e0162000997565b93505061010062000c5c8d828e0162000997565b92505061012062000c708d828e0162000997565b9150509295989b9194979a5092959850565b62000c8d8162000969565b82525050565b600060208201905062000caa600083018462000c82565b92915050565b61585e8062000cc06000396000f3fe6080604052600436106103a65760003560e01c80638f8e1ed2116101e7578063d1d6ff231161010d578063e985e9c5116100a0578063efdc77881161006f578063efdc778814610eaf578063f2fde38b14610ed8578063fccd405914610f01578063fdd46f6014610f2a5761048d565b8063e985e9c514610de1578063ebf0c71714610e1e578063eda1d5e914610e49578063ee78b83314610e865761048d565b8063d7aed245116100dc578063d7aed24514610d32578063d94f44f114610d6f578063e175bd2014610d8b578063e63ab1e914610db65761048d565b8063d1d6ff2314610c78578063d3fc8cdf14610ca1578063d539139314610cde578063d547741f14610d095761048d565b8063a8602fea11610185578063ba1a681f11610154578063ba1a681f14610bbe578063be14b0b714610be9578063c7c3268b14610c12578063c87b56dd14610c3b5761048d565b8063a8602fea14610b06578063abe853e314610b2f578063ac568e8414610b6c578063b88d4fde14610b955761048d565b80639f34c87a116101c15780639f34c87a14610a38578063a10de02214610a75578063a217fddf14610ab2578063a22cb46514610add5761048d565b80638f8e1ed2146109a557806391d14854146109d057806395d89b4114610a0d5761048d565b806336568abe116102cc5780636352211e1161026a578063715018a611610239578063715018a61461090d57806378b9f1a9146109245780637fd6f15c1461094f5780638da5cb5b1461097a5761048d565b80636352211e1461082d578063676f3f5d1461086a5780636d631e661461089357806370a08231146108d05761048d565b806342842e0e116102a657806342842e0e146107925780635b06f47f146107bb5780635c975abb146107d757806361d027b3146108025761048d565b806336568abe146107365780633ccfd60b1461075f5780633ef0d36d146107765761048d565b80631a4231a4116103445780632e129dbb116103135780632e129dbb1461067a5780632f2ff15d146106a557806333190f70146106ce57806333a1bb261461070b5761048d565b80631a4231a4146105cd57806323b872dd146105f8578063248a9ca3146106215780632db115441461065e5761048d565b8063081812fc11610380578063081812fc14610511578063095ea7b31461054e578063144bee421461057757806318160ddd146105a25761048d565b806301ffc9a71461049257806304c76af0146104cf57806306fdde03146104e65761048d565b3661048d576001601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555034601c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550343373ffffffffffffffffffffffffffffffffffffffff167f188c4d19b4fadd1889d9bd9bf0ab7c97e0719434751e6c05feac6339c1c001ec60405160405180910390a3005b600080fd5b34801561049e57600080fd5b506104b960048036038101906104b49190613f2c565b610f55565b6040516104c69190613f74565b60405180910390f35b3480156104db57600080fd5b506104e4610f67565b005b3480156104f257600080fd5b506104fb610ff1565b604051610508919061401f565b60405180910390f35b34801561051d57600080fd5b5061053860048036038101906105339190614077565b611083565b60405161054591906140e5565b60405180910390f35b34801561055a57600080fd5b506105756004803603810190610570919061412c565b61109f565b005b34801561058357600080fd5b5061058c6110b5565b604051610599919061417b565b60405180910390f35b3480156105ae57600080fd5b506105b76110bb565b6040516105c4919061417b565b60405180910390f35b3480156105d957600080fd5b506105e26110c1565b6040516105ef919061417b565b60405180910390f35b34801561060457600080fd5b5061061f600480360381019061061a9190614196565b6110c7565b005b34801561062d57600080fd5b506106486004803603810190610643919061421f565b6111c9565b604051610655919061425b565b60405180910390f35b61067860048036038101906106739190614077565b6111e9565b005b34801561068657600080fd5b5061068f611539565b60405161069c91906140e5565b60405180910390f35b3480156106b157600080fd5b506106cc60048036038101906106c79190614276565b61155f565b005b3480156106da57600080fd5b506106f560048036038101906106f091906142b6565b611581565b604051610702919061417b565b60405180910390f35b34801561071757600080fd5b50610720611599565b60405161072d919061401f565b60405180910390f35b34801561074257600080fd5b5061075d60048036038101906107589190614276565b611627565b005b34801561076b57600080fd5b506107746116a2565b005b610790600480360381019061078b919061442b565b611886565b005b34801561079e57600080fd5b506107b960048036038101906107b49190614196565b611c4a565b005b6107d560048036038101906107d0919061442b565b611c6a565b005b3480156107e357600080fd5b506107ec61202e565b6040516107f99190613f74565b60405180910390f35b34801561080e57600080fd5b50610817612045565b60405161082491906140e5565b60405180910390f35b34801561083957600080fd5b50610854600480360381019061084f9190614077565b61206b565b60405161086191906140e5565b60405180910390f35b34801561087657600080fd5b50610891600480360381019061088c91906144b3565b61207d565b005b34801561089f57600080fd5b506108ba60048036038101906108b59190614540565b6120f6565b6040516108c79190613f74565b60405180910390f35b3480156108dc57600080fd5b506108f760048036038101906108f291906142b6565b61210d565b604051610904919061417b565b60405180910390f35b34801561091957600080fd5b506109226121c7565b005b34801561093057600080fd5b506109396121db565b60405161094691906140e5565b60405180910390f35b34801561095b57600080fd5b50610964612201565b604051610971919061417b565b60405180910390f35b34801561098657600080fd5b5061098f612207565b60405161099c91906140e5565b60405180910390f35b3480156109b157600080fd5b506109ba612231565b6040516109c7919061417b565b60405180910390f35b3480156109dc57600080fd5b506109f760048036038101906109f29190614276565b612237565b604051610a049190613f74565b60405180910390f35b348015610a1957600080fd5b50610a226122a2565b604051610a2f919061401f565b60405180910390f35b348015610a4457600080fd5b50610a5f6004803603810190610a5a91906142b6565b612334565b604051610a6c9190613f74565b60405180910390f35b348015610a8157600080fd5b50610a9c6004803603810190610a9791906142b6565b612354565b604051610aa9919061417b565b60405180910390f35b348015610abe57600080fd5b50610ac761236c565b604051610ad4919061425b565b60405180910390f35b348015610ae957600080fd5b50610b046004803603810190610aff919061459c565b612373565b005b348015610b1257600080fd5b50610b2d6004803603810190610b2891906142b6565b612389565b005b348015610b3b57600080fd5b50610b566004803603810190610b5191906142b6565b6123db565b604051610b63919061417b565b60405180910390f35b348015610b7857600080fd5b50610b936004803603810190610b8e9190614077565b6123f3565b005b348015610ba157600080fd5b50610bbc6004803603810190610bb79190614691565b61240b565b005b348015610bca57600080fd5b50610bd3612428565b604051610be0919061417b565b60405180910390f35b348015610bf557600080fd5b50610c106004803603810190610c0b919061482c565b61242e565b005b348015610c1e57600080fd5b50610c396004803603810190610c349190614916565b612585565b005b348015610c4757600080fd5b50610c626004803603810190610c5d9190614077565b6125a6565b604051610c6f919061401f565b60405180910390f35b348015610c8457600080fd5b50610c9f6004803603810190610c9a919061421f565b6125b8565b005b348015610cad57600080fd5b50610cc86004803603810190610cc391906142b6565b6125d0565b604051610cd59190613f74565b60405180910390f35b348015610cea57600080fd5b50610cf36125f0565b604051610d00919061425b565b60405180910390f35b348015610d1557600080fd5b50610d306004803603810190610d2b9190614276565b612614565b005b348015610d3e57600080fd5b50610d596004803603810190610d5491906142b6565b612636565b604051610d66919061425b565b60405180910390f35b610d896004803603810190610d84919061499d565b612666565b005b348015610d9757600080fd5b50610da0612862565b604051610dad919061417b565b60405180910390f35b348015610dc257600080fd5b50610dcb612868565b604051610dd8919061425b565b60405180910390f35b348015610ded57600080fd5b50610e086004803603810190610e0391906149dd565b61288c565b604051610e159190613f74565b60405180910390f35b348015610e2a57600080fd5b50610e33612920565b604051610e40919061425b565b60405180910390f35b348015610e5557600080fd5b50610e706004803603810190610e6b91906142b6565b612926565b604051610e7d919061417b565b60405180910390f35b348015610e9257600080fd5b50610ead6004803603810190610ea891906142b6565b61293e565b005b348015610ebb57600080fd5b50610ed66004803603810190610ed19190614077565b612990565b005b348015610ee457600080fd5b50610eff6004803603810190610efa91906142b6565b612a72565b005b348015610f0d57600080fd5b50610f286004803603810190610f239190614a1d565b612aa2565b005b348015610f3657600080fd5b50610f3f612adf565b604051610f4c919061425b565b60405180910390f35b6000610f6082612b03565b9050919050565b6000801b610f7481612b7d565b60003373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050905080610fed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe490614aa9565b60405180910390fd5b5050565b60606000805461100090614af8565b80601f016020809104026020016040519081016040528092919081815260200182805461102c90614af8565b80156110795780601f1061104e57610100808354040283529160200191611079565b820191906000526020600020905b81548152906001019060200180831161105c57829003601f168201915b5050505050905090565b600061108e82612b91565b5061109882612c19565b9050919050565b6110b182826110ac612c56565b612c5e565b5050565b60125481565b60185481565b60095481565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111395760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161113091906140e5565b60405180910390fd5b600061114d8383611148612c56565b612c70565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146111c3578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016111ba93929190614b29565b60405180910390fd5b50505050565b600060086000838152602001908152602001600020600101549050919050565b601060029054906101000a900460ff16611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122f90614bac565b60405180910390fd5b601154816018546112499190614bfb565b111561128a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128190614c7b565b60405180910390fd5b34600954826112999190614c9b565b11156112da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d190614d29565b60405180910390fd5b601654600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561135e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135590614d95565b60405180910390fd5b60165481600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113ac9190614bfb565b11156113ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e490614d95565b60405180910390fd5b6017546018541115611434576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142b90614e01565b60405180910390fd5b60005b818110156114e757600060185490506001601860008282546114599190614bfb565b925050819055506001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114b09190614bfb565b925050819055506114c13382612e8a565b6114d3816114ce83612f83565b612fb7565b5080806114df90614e21565b915050611437565b50611536600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612666565b50565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611568826111c9565b61157181612b7d565b61157b8383613013565b50505050565b601c6020528060005260406000206000915090505481565b601980546115a690614af8565b80601f01602080910402602001604051908101604052809291908181526020018280546115d290614af8565b801561161f5780601f106115f45761010080835404028352916020019161161f565b820191906000526020600020905b81548152906001019060200180831161160257829003601f168201915b505050505081565b61162f612c56565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611693576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61169d8282613105565b505050565b601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661172e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172590614eb5565b60405180910390fd5b6000601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000601c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060003373ffffffffffffffffffffffffffffffffffffffff166108fc601c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549081150290604051600060405180830381858888f19350505050905080611883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187a90614aa9565b60405180910390fd5b50565b8181601060019054906101000a900460ff166118d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ce90614f21565b60405180910390fd5b601154826018546118e89190614bfb565b1115611929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192090614c7b565b60405180910390fd5b611959813360405160200161193e9190614f89565b604051602081830303815290604052805190602001206120f6565b611998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198f90614ff0565b60405180910390fd5b601654600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611a1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a139061505c565b60405180910390fd5b60165482600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a6a9190614bfb565b1115611aab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa29061505c565b60405180910390fd5b3460095483611aba9190614c9b565b1115611afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af290614d29565b60405180910390fd5b6017546018541115611b42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3990614e01565b60405180910390fd5b60005b84811015611bf55760006018549050600160186000828254611b679190614bfb565b925050819055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611bbe9190614bfb565b92505081905550611bcf3382612e8a565b611be181611bdc83612f83565b612fb7565b508080611bed90614e21565b915050611b45565b50611c44600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612666565b50505050565b611c658383836040518060200160405280600081525061240b565b505050565b8181601060009054906101000a900460ff16611cbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb2906150c8565b60405180910390fd5b60115482601854611ccc9190614bfb565b1115611d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0490614c7b565b60405180910390fd5b611d3d8133604051602001611d229190614f89565b604051602081830303815290604052805190602001206120f6565b611d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7390614ff0565b60405180910390fd5b601654600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611e00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df79061505c565b60405180910390fd5b60165482600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4e9190614bfb565b1115611e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e869061505c565b60405180910390fd5b3460095483611e9e9190614c9b565b1115611edf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed690614d29565b60405180910390fd5b6017546018541115611f26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1d90614e01565b60405180910390fd5b60005b84811015611fd95760006018549050600160186000828254611f4b9190614bfb565b925050819055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611fa29190614bfb565b92505081905550611fb33382612e8a565b611fc581611fc083612f83565b612fb7565b508080611fd190614e21565b915050611f29565b50612028600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612666565b50505050565b6000600760009054906101000a900460ff16905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061207682612b91565b9050919050565b6000801b61208a81612b7d565b86600981905550856016819055508460178190555083601060006101000a81548160ff02191690831515021790555082601060016101000a81548160ff02191690831515021790555081601060026101000a81548160ff02191690831515021790555050505050505050565b600061210583601554846131f8565b905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121805760006040517f89c62b6400000000000000000000000000000000000000000000000000000000815260040161217791906140e5565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6121cf61320f565b6121d96000613296565b565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135481565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60006008600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6060600180546122b190614af8565b80601f01602080910402602001604051908101604052809291908181526020018280546122dd90614af8565b801561232a5780601f106122ff5761010080835404028352916020019161232a565b820191906000526020600020905b81548152906001019060200180831161230d57829003601f168201915b5050505050905090565b601a6020528060005260406000206000915054906101000a900460ff1681565b600d6020528060005260406000206000915090505481565b6000801b81565b61238561237e612c56565b838361335c565b5050565b6000801b61239681612b7d565b81600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600e6020528060005260406000206000915090505481565b6000801b61240081612b7d565b816011819055505050565b6124168484846110c7565b612422848484846134cb565b50505050565b60145481565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a661245881612b7d565b60005b82518110156125805760005b83828151811061247a576124796150e8565b5b60200260200101516020015181101561256c576011548483815181106124a3576124a26150e8565b5b6020026020010151602001516018546124bc9190614bfb565b11156124fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f490615163565b60405180910390fd5b600060185490506001601860008282546125179190614bfb565b92505081905550612546858481518110612534576125336150e8565b5b60200260200101516000015182612e8a565b6125588161255383612f83565b612fb7565b50808061256490614e21565b915050612467565b50808061257890614e21565b91505061245b565b505050565b6000801b61259281612b7d565b81601990816125a1919061532f565b505050565b60606125b182612f83565b9050919050565b6000801b6125c581612b7d565b816015819055505050565b601b6020528060005260406000206000915054906101000a900460ff1681565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61261d826111c9565b61262681612b7d565b6126308383613105565b50505050565b6000816040516020016126499190614f89565b604051602081830303815290604052805190602001209050919050565b600060095411156127cd576000349050600060145460646013548461268b9190614c9b565b6126959190615430565b61269f9190615430565b9050600081836126af9190615461565b9050804710156126f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126eb90615507565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561273a573d6000803e3d6000fd5b508147101561277e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277590615599565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501580156127c4573d6000803e3d6000fd5b5050505061285e565b600034905080471015612815576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280c90615599565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561285b573d6000803e3d6000fd5b50505b5050565b60165481565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60155481565b600f6020528060005260406000206000915090505481565b6000801b61294b81612b7d565b81600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000801b61299d81612b7d565b601154826018546129ae9190614bfb565b11156129ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e690615163565b60405180910390fd5b60005b82811015612a6d5760006018549050600160186000828254612a149190614bfb565b92505081905550612a47600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682612e8a565b612a5981612a5483612f83565b612fb7565b508080612a6590614e21565b9150506129f2565b505050565b612a7a61320f565b612a876000801b33613105565b50612a956000801b82613013565b50612a9f81613296565b50565b7fc5abefe4aed277fb344652e626c3c4fe5cdab1313b8ac46cdd6da9bbe98161cb612acc81612b7d565b8260138190555081601481905550505050565b7fc5abefe4aed277fb344652e626c3c4fe5cdab1313b8ac46cdd6da9bbe98161cb81565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612b765750612b7582613682565b5b9050919050565b612b8e81612b89612c56565b6136e3565b50565b600080612b9d83613734565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612c1057826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401612c07919061417b565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b612c6b8383836001613771565b505050565b600080612c7c84613734565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612cbe57612cbd818486613936565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612d4f57612d00600085600080613771565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614612dd2576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612efc5760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401612ef391906140e5565b60405180910390fd5b6000612f0a83836000612c70565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612f7e5760006040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401612f7591906140e5565b60405180910390fd5b505050565b60606019612f90836139fa565b604051602001612fa19291906156c4565b6040516020818303038152906040529050919050565b80600660008481526020019081526020016000209081612fd7919061532f565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce782604051613007919061417b565b60405180910390a15050565b600061301f8383612237565b6130fa5760016008600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550613097612c56565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506130ff565b600090505b92915050565b60006131118383612237565b156131ed5760006008600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061318a612c56565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a4600190506131f2565b600090505b92915050565b6000826132058584613ac8565b1490509392505050565b613217612c56565b73ffffffffffffffffffffffffffffffffffffffff16613235612207565b73ffffffffffffffffffffffffffffffffffffffff161461329457613258612c56565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161328b91906140e5565b60405180910390fd5b565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036133cd57816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016133c491906140e5565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516134be9190613f74565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b111561367c578273ffffffffffffffffffffffffffffffffffffffff1663150b7a0261350f612c56565b8685856040518563ffffffff1660e01b81526004016135319493929190615748565b6020604051808303816000875af192505050801561356d57506040513d601f19601f8201168201806040525081019061356a91906157a9565b60015b6135f1573d806000811461359d576040519150601f19603f3d011682016040523d82523d6000602084013e6135a2565b606091505b5060008151036135e957836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016135e091906140e5565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461367a57836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161367191906140e5565b60405180910390fd5b505b50505050565b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806136dc57506136db82613b1e565b5b9050919050565b6136ed8282612237565b6137305780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016137279291906157d6565b60405180910390fd5b5050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b80806137aa5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156138de5760006137ba84612b91565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561382557508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156138385750613836818461288c565b155b1561387a57826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161387191906140e5565b60405180910390fd5b81156138dc57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b613941838383613c00565b6139f557600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036139b657806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016139ad919061417b565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016139ec9291906157ff565b60405180910390fd5b505050565b606060006001613a0984613cc1565b01905060008167ffffffffffffffff811115613a2857613a276142e8565b5b6040519080825280601f01601f191660200182016040528015613a5a5781602001600182028036833780820191505090505b509050600082602001820190505b600115613abd578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581613ab157613ab0615401565b5b04945060008503613a68575b819350505050919050565b60008082905060005b8451811015613b1357613afe82868381518110613af157613af06150e8565b5b6020026020010151613e14565b91508080613b0b90614e21565b915050613ad1565b508091505092915050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480613be957507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80613bf95750613bf882613e3f565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015613cb857508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480613c795750613c78848461288c565b5b80613cb757508273ffffffffffffffffffffffffffffffffffffffff16613c9f83612c19565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310613d1f577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381613d1557613d14615401565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310613d5c576d04ee2d6d415b85acef81000000008381613d5257613d51615401565b5b0492506020810190505b662386f26fc100008310613d8b57662386f26fc100008381613d8157613d80615401565b5b0492506010810190505b6305f5e1008310613db4576305f5e1008381613daa57613da9615401565b5b0492506008810190505b6127108310613dd9576127108381613dcf57613dce615401565b5b0492506004810190505b60648310613dfc5760648381613df257613df1615401565b5b0492506002810190505b600a8310613e0b576001810190505b80915050919050565b6000818310613e2c57613e278284613ea9565b613e37565b613e368383613ea9565b5b905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600082600052816020526040600020905092915050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613f0981613ed4565b8114613f1457600080fd5b50565b600081359050613f2681613f00565b92915050565b600060208284031215613f4257613f41613eca565b5b6000613f5084828501613f17565b91505092915050565b60008115159050919050565b613f6e81613f59565b82525050565b6000602082019050613f896000830184613f65565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613fc9578082015181840152602081019050613fae565b60008484015250505050565b6000601f19601f8301169050919050565b6000613ff182613f8f565b613ffb8185613f9a565b935061400b818560208601613fab565b61401481613fd5565b840191505092915050565b600060208201905081810360008301526140398184613fe6565b905092915050565b6000819050919050565b61405481614041565b811461405f57600080fd5b50565b6000813590506140718161404b565b92915050565b60006020828403121561408d5761408c613eca565b5b600061409b84828501614062565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006140cf826140a4565b9050919050565b6140df816140c4565b82525050565b60006020820190506140fa60008301846140d6565b92915050565b614109816140c4565b811461411457600080fd5b50565b60008135905061412681614100565b92915050565b6000806040838503121561414357614142613eca565b5b600061415185828601614117565b925050602061416285828601614062565b9150509250929050565b61417581614041565b82525050565b6000602082019050614190600083018461416c565b92915050565b6000806000606084860312156141af576141ae613eca565b5b60006141bd86828701614117565b93505060206141ce86828701614117565b92505060406141df86828701614062565b9150509250925092565b6000819050919050565b6141fc816141e9565b811461420757600080fd5b50565b600081359050614219816141f3565b92915050565b60006020828403121561423557614234613eca565b5b60006142438482850161420a565b91505092915050565b614255816141e9565b82525050565b6000602082019050614270600083018461424c565b92915050565b6000806040838503121561428d5761428c613eca565b5b600061429b8582860161420a565b92505060206142ac85828601614117565b9150509250929050565b6000602082840312156142cc576142cb613eca565b5b60006142da84828501614117565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61432082613fd5565b810181811067ffffffffffffffff8211171561433f5761433e6142e8565b5b80604052505050565b6000614352613ec0565b905061435e8282614317565b919050565b600067ffffffffffffffff82111561437e5761437d6142e8565b5b602082029050602081019050919050565b600080fd5b60006143a76143a284614363565b614348565b905080838252602082019050602084028301858111156143ca576143c961438f565b5b835b818110156143f357806143df888261420a565b8452602084019350506020810190506143cc565b5050509392505050565b600082601f830112614412576144116142e3565b5b8135614422848260208601614394565b91505092915050565b6000806040838503121561444257614441613eca565b5b600061445085828601614062565b925050602083013567ffffffffffffffff81111561447157614470613ecf565b5b61447d858286016143fd565b9150509250929050565b61449081613f59565b811461449b57600080fd5b50565b6000813590506144ad81614487565b92915050565b60008060008060008060c087890312156144d0576144cf613eca565b5b60006144de89828a01614062565b96505060206144ef89828a01614062565b955050604061450089828a01614062565b945050606061451189828a0161449e565b935050608061452289828a0161449e565b92505060a061453389828a0161449e565b9150509295509295509295565b6000806040838503121561455757614556613eca565b5b600083013567ffffffffffffffff81111561457557614574613ecf565b5b614581858286016143fd565b92505060206145928582860161420a565b9150509250929050565b600080604083850312156145b3576145b2613eca565b5b60006145c185828601614117565b92505060206145d28582860161449e565b9150509250929050565b600080fd5b600067ffffffffffffffff8211156145fc576145fb6142e8565b5b61460582613fd5565b9050602081019050919050565b82818337600083830152505050565b600061463461462f846145e1565b614348565b9050828152602081018484840111156146505761464f6145dc565b5b61465b848285614612565b509392505050565b600082601f830112614678576146776142e3565b5b8135614688848260208601614621565b91505092915050565b600080600080608085870312156146ab576146aa613eca565b5b60006146b987828801614117565b94505060206146ca87828801614117565b93505060406146db87828801614062565b925050606085013567ffffffffffffffff8111156146fc576146fb613ecf565b5b61470887828801614663565b91505092959194509250565b600067ffffffffffffffff82111561472f5761472e6142e8565b5b602082029050602081019050919050565b600080fd5b60006040828403121561475b5761475a614740565b5b6147656040614348565b9050600061477584828501614117565b600083015250602061478984828501614062565b60208301525092915050565b60006147a86147a384614714565b614348565b905080838252602082019050604084028301858111156147cb576147ca61438f565b5b835b818110156147f457806147e08882614745565b8452602084019350506040810190506147cd565b5050509392505050565b600082601f830112614813576148126142e3565b5b8135614823848260208601614795565b91505092915050565b60006020828403121561484257614841613eca565b5b600082013567ffffffffffffffff8111156148605761485f613ecf565b5b61486c848285016147fe565b91505092915050565b600067ffffffffffffffff8211156148905761488f6142e8565b5b61489982613fd5565b9050602081019050919050565b60006148b96148b484614875565b614348565b9050828152602081018484840111156148d5576148d46145dc565b5b6148e0848285614612565b509392505050565b600082601f8301126148fd576148fc6142e3565b5b813561490d8482602086016148a6565b91505092915050565b60006020828403121561492c5761492b613eca565b5b600082013567ffffffffffffffff81111561494a57614949613ecf565b5b614956848285016148e8565b91505092915050565b600061496a826140a4565b9050919050565b61497a8161495f565b811461498557600080fd5b50565b60008135905061499781614971565b92915050565b600080604083850312156149b4576149b3613eca565b5b60006149c285828601614988565b92505060206149d385828601614988565b9150509250929050565b600080604083850312156149f4576149f3613eca565b5b6000614a0285828601614117565b9250506020614a1385828601614117565b9150509250929050565b60008060408385031215614a3457614a33613eca565b5b6000614a4285828601614062565b9250506020614a5385828601614062565b9150509250929050565b7f4574686572207472616e73666572206661696c65642e00000000000000000000600082015250565b6000614a93601683613f9a565b9150614a9e82614a5d565b602082019050919050565b60006020820190508181036000830152614ac281614a86565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614b1057607f821691505b602082108103614b2357614b22614ac9565b5b50919050565b6000606082019050614b3e60008301866140d6565b614b4b602083018561416c565b614b5860408301846140d6565b949350505050565b7f5075626c6963206d696e74206973206e6f74206f70656e000000000000000000600082015250565b6000614b96601783613f9a565b9150614ba182614b60565b602082019050919050565b60006020820190508181036000830152614bc581614b89565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614c0682614041565b9150614c1183614041565b9250828201905080821115614c2957614c28614bcc565b5b92915050565b7f746f6b656e206973206c65737300000000000000000000000000000000000000600082015250565b6000614c65600d83613f9a565b9150614c7082614c2f565b602082019050919050565b60006020820190508181036000830152614c9481614c58565b9050919050565b6000614ca682614041565b9150614cb183614041565b9250828202614cbf81614041565b91508282048414831517614cd657614cd5614bcc565b5b5092915050565b7f757365722070617373206c6f77657220616d6f756e7400000000000000000000600082015250565b6000614d13601683613f9a565b9150614d1e82614cdd565b602082019050919050565b60006020820190508181036000830152614d4281614d06565b9050919050565b7f7573657220657863656564206d696e74206c696d697400000000000000000000600082015250565b6000614d7f601683613f9a565b9150614d8a82614d49565b602082019050919050565b60006020820190508181036000830152614dae81614d72565b9050919050565b7f6d696e7420636170207265616368656400000000000000000000000000000000600082015250565b6000614deb601083613f9a565b9150614df682614db5565b602082019050919050565b60006020820190508181036000830152614e1a81614dde565b9050919050565b6000614e2c82614041565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614e5e57614e5d614bcc565b5b600182019050919050565b7f5573657220686173206e6f742079657420706169640000000000000000000000600082015250565b6000614e9f601583613f9a565b9150614eaa82614e69565b602082019050919050565b60006020820190508181036000830152614ece81614e92565b9050919050565b7f574c206d696e74206973206e6f74206f70656e00000000000000000000000000600082015250565b6000614f0b601383613f9a565b9150614f1682614ed5565b602082019050919050565b60006020820190508181036000830152614f3a81614efe565b9050919050565b60008160601b9050919050565b6000614f5982614f41565b9050919050565b6000614f6b82614f4e565b9050919050565b614f83614f7e826140c4565b614f60565b82525050565b6000614f958284614f72565b60148201915081905092915050565b7f61646472657373206973206e6f7420616c6c6f77656420666f72206d696e7400600082015250565b6000614fda601f83613f9a565b9150614fe582614fa4565b602082019050919050565b6000602082019050818103600083015261500981614fcd565b9050919050565b7f657865636564206d696e74206c696d6974000000000000000000000000000000600082015250565b6000615046601183613f9a565b915061505182615010565b602082019050919050565b6000602082019050818103600083015261507581615039565b9050919050565b7f4f47206d696e74206973206e6f74206f70656e00000000000000000000000000600082015250565b60006150b2601383613f9a565b91506150bd8261507c565b602082019050919050565b600060208201905081810360008301526150e1816150a5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f737570706c792065786365656400000000000000000000000000000000000000600082015250565b600061514d600d83613f9a565b915061515882615117565b602082019050919050565b6000602082019050818103600083015261517c81615140565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026151e57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826151a8565b6151ef86836151a8565b95508019841693508086168417925050509392505050565b6000819050919050565b600061522c61522761522284614041565b615207565b614041565b9050919050565b6000819050919050565b61524683615211565b61525a61525282615233565b8484546151b5565b825550505050565b600090565b61526f615262565b61527a81848461523d565b505050565b5b8181101561529e57615293600082615267565b600181019050615280565b5050565b601f8211156152e3576152b481615183565b6152bd84615198565b810160208510156152cc578190505b6152e06152d885615198565b83018261527f565b50505b505050565b600082821c905092915050565b6000615306600019846008026152e8565b1980831691505092915050565b600061531f83836152f5565b9150826002028217905092915050565b61533882613f8f565b67ffffffffffffffff811115615351576153506142e8565b5b61535b8254614af8565b6153668282856152a2565b600060209050601f8311600181146153995760008415615387578287015190505b6153918582615313565b8655506153f9565b601f1984166153a786615183565b60005b828110156153cf578489015182556001820191506020850194506020810190506153aa565b868310156153ec57848901516153e8601f8916826152f5565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061543b82614041565b915061544683614041565b92508261545657615455615401565b5b828204905092915050565b600061546c82614041565b915061547783614041565b925082820390508181111561548f5761548e614bcc565b5b92915050565b7f496e73756666696369656e742062616c616e636520746f2073656e642074686560008201527f206669727374207472616e73616374696f6e0000000000000000000000000000602082015250565b60006154f1603283613f9a565b91506154fc82615495565b604082019050919050565b60006020820190508181036000830152615520816154e4565b9050919050565b7f496e73756666696369656e742062616c616e636520746f2073656e642074686560008201527f207365636f6e64207472616e73616374696f6e00000000000000000000000000602082015250565b6000615583603383613f9a565b915061558e82615527565b604082019050919050565b600060208201905081810360008301526155b281615576565b9050919050565b600081905092915050565b600081546155d181614af8565b6155db81866155b9565b945060018216600081146155f6576001811461560b5761563e565b60ff198316865281151582028601935061563e565b61561485615183565b60005b8381101561563657815481890152600182019150602081019050615617565b838801955050505b50505092915050565b600061565282613f8f565b61565c81856155b9565b935061566c818560208601613fab565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b60006156ae6005836155b9565b91506156b982615678565b600582019050919050565b60006156d082856155c4565b91506156dc8284615647565b91506156e7826156a1565b91508190509392505050565b600081519050919050565b600082825260208201905092915050565b600061571a826156f3565b61572481856156fe565b9350615734818560208601613fab565b61573d81613fd5565b840191505092915050565b600060808201905061575d60008301876140d6565b61576a60208301866140d6565b615777604083018561416c565b8181036060830152615789818461570f565b905095945050505050565b6000815190506157a381613f00565b92915050565b6000602082840312156157bf576157be613eca565b5b60006157cd84828501615794565b91505092915050565b60006040820190506157eb60008301856140d6565b6157f8602083018461424c565b9392505050565b600060408201905061581460008301856140d6565b615821602083018461416c565b939250505056fea26469706673582212205f9092f5eeb6eb26d0affd55d52f307b2212f770d1198115ccf187582057592264736f6c63430008140033000000000000000000000000192c3baa95235b84b46e76ea3fbff51b092dc0ed0000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000d050000000000000000000000000000000000000000000000001dd6559bdb170000000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000df580fcb02657f0aad09740a5f2e8c9cdc7b21bc000000000000000000000000ef6070be0954ea67985120eef153802180ec77d8000000000000000000000000df580fcb02657f0aad09740a5f2e8c9cdc7b21bc000000000000000000000000000000000000000000000000000000000000000a53776f6c20426561636800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000553574f4c42000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005168747470733a2f2f697066732e696f2f697066732f62616679626569687776686574626e626173703435666a32636a6a653563617276616b6e32776c623572347a7761617062726c37637868633374612f000000000000000000000000000000