[ { "inputs": [ { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "string", "name": "website", "type": "string" }, { "internalType": "string", "name": "social", "type": "string" }, { "internalType": "uint256", "name": "supply", "type": "uint256" } ], "internalType": "struct CheezburgerStructs.TokenCustomization", "name": "_customization", "type": "tuple" }, { "internalType": "address", "name": "_factory", "type": "address" }, { "internalType": "address", "name": "_router", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AllowanceOverflow", "type": "error" }, { "inputs": [], "name": "AllowanceUnderflow", "type": "error" }, { "inputs": [], "name": "AlreadyInitialized", "type": "error" }, { "inputs": [], "name": "CannotReceiveEtherDirectly", "type": "error" }, { "inputs": [], "name": "CannotUseCHZBNamespace", "type": "error" }, { "inputs": [], "name": "EmptyAddressNotAllowed", "type": "error" }, { "inputs": [], "name": "EmptyNumericUserId", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "expected", "type": "uint256" } ], "name": "IncorrectPoolOpeningFee", "type": "error" }, { "inputs": [], "name": "InsufficientAllowance", "type": "error" }, { "inputs": [], "name": "InsufficientBalance", "type": "error" }, { "inputs": [], "name": "InvalidPermit", "type": "error" }, { "inputs": [], "name": "NewOwnerIsZeroAddress", "type": "error" }, { "inputs": [], "name": "NoHandoverRequest", "type": "error" }, { "inputs": [], "name": "PermitExpired", "type": "error" }, { "inputs": [], "name": "ReentrancyDetected", "type": "error" }, { "inputs": [], "name": "SocialNotOpened", "type": "error" }, { "inputs": [], "name": "SupplyAllocationExceeded", "type": "error" }, { "inputs": [], "name": "SupplyOverflow", "type": "error" }, { "inputs": [], "name": "TotalSupplyOverflow", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "TransferToToken", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" } ], "name": "TransferToZeroAddress", "type": "error" }, { "inputs": [], "name": "Unauthorized", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "userId", "type": "uint256" } ], "name": "UserIdAlreadyExist", "type": "error" }, { "inputs": [], "name": "UserIdNotFound", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [], "name": "GlobalSettingsChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "token", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "creationAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "currentOutOfCirculationSupply", "type": "uint256" } ], "name": "LiquidityLessTokenDeployed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "OwnershipHandoverCanceled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "OwnershipHandoverRequested", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "oldOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [], "name": "PairingAmountsChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "roles", "type": "uint256" } ], "name": "RolesUpdated", "type": "event" }, { "anonymous": false, "inputs": [], "name": "SettingsChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "userId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "token", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "creationAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "currentOutOfCirculationSupply", "type": "uint256" } ], "name": "SocialTokenDeployed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "pair", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "SocialTokenFeeWithdrawal", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "result", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "result", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "result", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "cancelOwnershipHandover", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "contract ICheezburgerFactory", "name": "factory", "type": "address" }, { "internalType": "address", "name": "router", "type": "address" } ], "internalType": "struct CheezburgerDeployerKit.GlobalSettings", "name": "_globalSettings", "type": "tuple" } ], "name": "changeGlobalSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_socialPairingAmount", "type": "uint256" }, { "internalType": "uint256", "name": "_tokenPairingAmount", "type": "uint256" } ], "name": "changePairingAmounts", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint256", "name": "pairingAmount", "type": "uint256" }, { "internalType": "uint256", "name": "leftSideSupply", "type": "uint256" }, { "internalType": "uint256", "name": "openFeeWei", "type": "uint256" }, { "internalType": "uint8", "name": "poolCreatorFeePercentage", "type": "uint8" }, { "components": [ { "internalType": "uint256", "name": "duration", "type": "uint256" }, { "internalType": "uint16", "name": "percentStart", "type": "uint16" }, { "internalType": "uint16", "name": "percentEnd", "type": "uint16" } ], "internalType": "struct CheezburgerStructs.DynamicSettings", "name": "walletSettings", "type": "tuple" }, { "components": [ { "internalType": "uint256", "name": "duration", "type": "uint256" }, { "internalType": "uint16", "name": "percentStart", "type": "uint16" }, { "internalType": "uint16", "name": "percentEnd", "type": "uint16" } ], "internalType": "struct CheezburgerStructs.DynamicSettings", "name": "feeSettings", "type": "tuple" } ], "internalType": "struct CheezburgerDeployerKit.SocialSettings", "name": "_socialSettings", "type": "tuple" }, { "components": [ { "internalType": "uint256", "name": "pairingAmount", "type": "uint256" }, { "internalType": "uint256", "name": "openFeeWei", "type": "uint256" } ], "internalType": "struct CheezburgerDeployerKit.TokenSettings", "name": "_tokenSettings", "type": "tuple" } ], "name": "changeSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "completeOwnershipHandover", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "userId", "type": "uint256" } ], "name": "deploySocialTokenWithCHZB", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "string", "name": "website", "type": "string" }, { "internalType": "string", "name": "social", "type": "string" }, { "internalType": "uint256", "name": "supply", "type": "uint256" } ], "internalType": "struct CheezburgerStructs.TokenCustomization", "name": "_customization", "type": "tuple" }, { "components": [ { "internalType": "uint8", "name": "feeThresholdPercent", "type": "uint8" }, { "internalType": "address[]", "name": "feeAddresses", "type": "address[]" }, { "internalType": "uint8[]", "name": "feePercentages", "type": "uint8[]" } ], "internalType": "struct CheezburgerStructs.LiquiditySettings", "name": "_liquidity", "type": "tuple" }, { "components": [ { "internalType": "uint256", "name": "duration", "type": "uint256" }, { "internalType": "uint16", "name": "percentStart", "type": "uint16" }, { "internalType": "uint16", "name": "percentEnd", "type": "uint16" } ], "internalType": "struct CheezburgerStructs.DynamicSettings", "name": "_fee", "type": "tuple" }, { "components": [ { "internalType": "uint256", "name": "duration", "type": "uint256" }, { "internalType": "uint16", "name": "percentStart", "type": "uint16" }, { "internalType": "uint16", "name": "percentEnd", "type": "uint16" } ], "internalType": "struct CheezburgerStructs.DynamicSettings", "name": "_wallet", "type": "tuple" }, { "components": [ { "internalType": "address", "name": "feeReceiver", "type": "address" }, { "internalType": "uint8", "name": "feePercentage", "type": "uint8" } ], "internalType": "struct CheezburgerStructs.ReferralSettings", "name": "_referral", "type": "tuple" } ], "name": "deployTokenWithCHZB", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "globalSettings", "outputs": [ { "internalType": "contract ICheezburgerFactory", "name": "factory", "type": "address" }, { "internalType": "address", "name": "router", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "roles", "type": "uint256" } ], "name": "grantRoles", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "roles", "type": "uint256" } ], "name": "hasAllRoles", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "roles", "type": "uint256" } ], "name": "hasAnyRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "result", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "outOfCirculationTokens", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "result", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pendingOwner", "type": "address" } ], "name": "ownershipHandoverExpiresAt", "outputs": [ { "internalType": "uint256", "name": "result", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "roles", "type": "uint256" } ], "name": "renounceRoles", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "requestOwnershipHandover", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "roles", "type": "uint256" } ], "name": "revokeRoles", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "rolesOf", "outputs": [ { "internalType": "uint256", "name": "roles", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "social", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "socialIds", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "socialSettings", "outputs": [ { "internalType": "uint256", "name": "pairingAmount", "type": "uint256" }, { "internalType": "uint256", "name": "leftSideSupply", "type": "uint256" }, { "internalType": "uint256", "name": "openFeeWei", "type": "uint256" }, { "internalType": "uint8", "name": "poolCreatorFeePercentage", "type": "uint8" }, { "components": [ { "internalType": "uint256", "name": "duration", "type": "uint256" }, { "internalType": "uint16", "name": "percentStart", "type": "uint16" }, { "internalType": "uint16", "name": "percentEnd", "type": "uint16" } ], "internalType": "struct CheezburgerStructs.DynamicSettings", "name": "walletSettings", "type": "tuple" }, { "components": [ { "internalType": "uint256", "name": "duration", "type": "uint256" }, { "internalType": "uint16", "name": "percentStart", "type": "uint16" }, { "internalType": "uint16", "name": "percentEnd", "type": "uint16" } ], "internalType": "struct CheezburgerStructs.DynamicSettings", "name": "feeSettings", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "socialTokens", "outputs": [ { "internalType": "address", "name": "factory", "type": "address" }, { "internalType": "address", "name": "router", "type": "address" }, { "internalType": "address", "name": "pair", "type": "address" }, { "internalType": "address", "name": "creator", "type": "address" }, { "internalType": "address", "name": "leftSide", "type": "address" }, { "internalType": "address", "name": "rightSide", "type": "address" }, { "components": [ { "internalType": "uint8", "name": "feeThresholdPercent", "type": "uint8" }, { "internalType": "address[]", "name": "feeAddresses", "type": "address[]" }, { "internalType": "uint8[]", "name": "feePercentages", "type": "uint8[]" } ], "internalType": "struct CheezburgerStructs.LiquiditySettings", "name": "liquidity", "type": "tuple" }, { "components": [ { "internalType": "uint256", "name": "duration", "type": "uint256" }, { "internalType": "uint16", "name": "percentStart", "type": "uint16" }, { "internalType": "uint16", "name": "percentEnd", "type": "uint16" } ], "internalType": "struct CheezburgerStructs.DynamicSettings", "name": "fee", "type": "tuple" }, { "components": [ { "internalType": "uint256", "name": "duration", "type": "uint256" }, { "internalType": "uint16", "name": "percentStart", "type": "uint16" }, { "internalType": "uint16", "name": "percentEnd", "type": "uint16" } ], "internalType": "struct CheezburgerStructs.DynamicSettings", "name": "wallet", "type": "tuple" }, { "components": [ { "internalType": "address", "name": "feeReceiver", "type": "address" }, { "internalType": "uint8", "name": "feePercentage", "type": "uint8" } ], "internalType": "struct CheezburgerStructs.ReferralSettings", "name": "referral", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenSettings", "outputs": [ { "internalType": "uint256", "name": "pairingAmount", "type": "uint256" }, { "internalType": "uint256", "name": "openFeeWei", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "website", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdrawCreationFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_userId", "type": "uint256" }, { "internalType": "address", "name": "_to", "type": "address" } ], "name": "withdrawFeesOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040525f805460ff191660011790553480156200001c575f80fd5b5060405162003ae538038062003ae58339810160408190526200003f91620005cc565b6001600160a01b03821615806200005d57506001600160a01b038116155b156200007c576040516387e5f21360e01b815260040160405180910390fd5b82516012906200008d908262000766565b506020830151601390620000a2908262000766565b506040830151600190620000b7908262000766565b506060830151600290620000cc908262000766565b50620000d833620001b8565b6200010233620000eb6012600a62000941565b8560800151620000fc919062000958565b620001f4565b6040805160c0810182525f808252620f424060208084019190915282840182905260046060808501919091528451808201865262127500815261012c81840152611324818701526080850152845190810185526201518081526101f48183015260c88186015260a0840152835180850190945281845283015262000186916200028b565b604080518082019091526001600160a01b03808416825282166020820152620001af906200034e565b50505062000972565b6001600160a01b0316638b78c6d819819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a35b50565b620002015f8383620003b6565b6805345cdf77eb68f44c5481810181811015620002255763e5cfe9575f526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52815f526020600c208181540181555080602052600c5160601c5f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3620002875f83836200040b565b5050565b6010620002988162000466565b60208381015160075560408085015160085560608501516009805460ff191660ff90921691909117905560808501518051600a5580830151600b80549284015161ffff92831663ffffffff19948516176201000091841682021790915560a08801518051600c5580860151600d805492870151918516929095169190911792160217905590830151600f55517f85a52584e2a604db198ab2f447cba2fc038a972048381c24b40219ef7a83df70905f90a1505050565b6200035862000499565b8051600480546001600160a01b039283166001600160a01b0319918216179091556020830151600580549190931691161790556040517fe8b17a7524058d1a342afefcf40dad4efc8d3d505c865b90ba810c43cff793e6905f90a150565b6001600160a01b03831615801590620003d757506001600160a01b03821630145b156200040657604051634ae889f760e01b81526001600160a01b03831660048201526024015b60405180910390fd5b505050565b6001600160a01b0382161580156200043357506387a211a2600c9081525f8052602090205415155b15620004065760405163281a1b1360e01b81526001600160a01b03808516600483015283166024820152604401620003fd565b638b78c6d819543314620001f157638b78c6d8600c52335f52806020600c205416620001f1576382b429005f526004601cfd5b638b78c6d819543314620004b4576382b429005f526004601cfd5b565b634e487b7160e01b5f52604160045260245ffd5b60405160a081016001600160401b0381118282101715620004ef57620004ef620004b6565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620005205762000520620004b6565b604052919050565b5f82601f83011262000538575f80fd5b81516001600160401b03811115620005545762000554620004b6565b60206200056a601f8301601f19168201620004f5565b82815285828487010111156200057e575f80fd5b5f5b838110156200059d57858101830151828201840152820162000580565b505f928101909101919091529392505050565b80516001600160a01b0381168114620005c7575f80fd5b919050565b5f805f60608486031215620005df575f80fd5b83516001600160401b0380821115620005f6575f80fd5b9085019060a082880312156200060a575f80fd5b62000614620004ca565b82518281111562000623575f80fd5b620006318982860162000528565b82525060208301518281111562000646575f80fd5b620006548982860162000528565b6020830152506040830151828111156200066c575f80fd5b6200067a8982860162000528565b60408301525060608301518281111562000692575f80fd5b620006a08982860162000528565b60608301525060808301516080820152809550505050620006c460208501620005b0565b9150620006d460408501620005b0565b90509250925092565b600181811c90821680620006f257607f821691505b6020821081036200071157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200040657805f5260205f20601f840160051c810160208510156200073e5750805b601f840160051c820191505b818110156200075f575f81556001016200074a565b5050505050565b81516001600160401b03811115620007825762000782620004b6565b6200079a81620007938454620006dd565b8462000717565b602080601f831160018114620007d0575f8415620007b85750858301515b5f19600386901b1c1916600185901b1785556200082a565b5f85815260208120601f198616915b828110156200080057888601518255948401946001909101908401620007df565b50858210156200081e57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200088657815f19048211156200086a576200086a62000832565b808516156200087857918102915b93841c93908002906200084b565b509250929050565b5f826200089e575060016200093b565b81620008ac57505f6200093b565b8160018114620008c55760028114620008d057620008f0565b60019150506200093b565b60ff841115620008e457620008e462000832565b50506001821b6200093b565b5060208310610133831016604e8410600b841016171562000915575081810a6200093b565b62000921838362000846565b805f190482111562000937576200093762000832565b0290505b92915050565b5f6200095160ff8416836200088e565b9392505050565b80820281158282048414176200093b576200093b62000832565b61316580620009805f395ff3fe6080604052600436106102c4575f3560e01c806370a0823111610170578063cfcd8b76116100d1578063de3c3e2c11610087578063f04e283e11610062578063f04e283e14610844578063f2fde38b14610857578063fee81cf41461086a575f80fd5b8063de3c3e2c146107e7578063e29c24fd14610812578063e2cc88a714610825575f80fd5b8063d505accf116100b7578063d505accf14610781578063dbcae73f146107a0578063dd62ed3e146107b3575f80fd5b8063cfcd8b761461072d578063d324657214610762575f80fd5b8063876ad4471161012657806395d89b411161010c57806395d89b41146106e6578063a9059cbb146106fa578063beb0a41614610719575f80fd5b8063876ad4471461068b5780638da5cb5b146106ba575f80fd5b80637233f2be116101565780637233f2be1461062757806379cc67901461063b5780637ecebe001461065a575f80fd5b806370a08231146105ee578063715018a61461061f575f80fd5b8063307770611161022557806342966c68116101db5780635224b55d116101b65780635224b55d146105b257806354d1f13d146105d15780636ca2826b146105d9575f80fd5b806342966c681461054b5780634a4ee7b11461056a578063514e62fc1461057d575f80fd5b806334d1c00a1161020b57806334d1c00a1461048b578063359ecf10146105185780633644e51514610537575f80fd5b8063307770611461045c578063313ce56714610470575f80fd5b80631cd64df41161027a57806323b872dd1161026057806323b872dd1461040457806325692962146104235780632de948071461042b575f80fd5b80631cd64df4146103895780631dcf615e146103be575f80fd5b806318160ddd116102aa57806318160ddd1461033f578063183a4f6e146103615780631c10893f14610376575f80fd5b806306fdde03146102e6578063095ea7b314610310575f80fd5b366102e25760405163668a64f760e11b815260040160405180910390fd5b5f80fd5b3480156102f1575f80fd5b506102fa61089b565b60405161030791906123b5565b60405180910390f35b34801561031b575f80fd5b5061032f61032a3660046123e2565b61092b565b6040519015158152602001610307565b34801561034a575f80fd5b5061035361097a565b604051908152602001610307565b61037461036f36600461240c565b610995565b005b6103746103843660046123e2565b6109a2565b348015610394575f80fd5b5061032f6103a33660046123e2565b638b78c6d8600c9081525f9290925260209091205481161490565b3480156103c9575f80fd5b506004546005546103e4916001600160a01b03908116911682565b604080516001600160a01b03938416815292909116602083015201610307565b34801561040f575f80fd5b5061032f61041e366004612423565b6109b8565b610374610a88565b348015610436575f80fd5b50610353610445366004612461565b638b78c6d8600c9081525f91909152602090205490565b348015610467575f80fd5b50610374610ad5565b34801561047b575f80fd5b5060405160128152602001610307565b348015610496575f80fd5b506006546007546008546009546040805160608082018352600a548252600b5461ffff808216602080860191909152620100009283900482168587015285519384018652600c548452600d54808316918501919091529190910416928101929092526105069594939260ff169186565b6040516103079695949392919061247c565b348015610523575f80fd5b506103536105323660046124e0565b610ae9565b348015610542575f80fd5b50610353610b07565b348015610556575f80fd5b5061037461056536600461240c565b610b83565b6103746105783660046123e2565b610b8d565b348015610588575f80fd5b5061032f6105973660046123e2565b638b78c6d8600c9081525f9290925260209091205416151590565b3480156105bd575f80fd5b506103746105cc366004612657565b610b9f565b610374610c60565b3480156105e4575f80fd5b5061035360035481565b3480156105f9575f80fd5b50610353610608366004612461565b6387a211a2600c9081525f91909152602090205490565b610374610c99565b348015610632575f80fd5b506102fa610cac565b348015610646575f80fd5b506103746106553660046123e2565b610cbb565b348015610665575f80fd5b50610353610674366004612461565b6338377508600c9081525f91909152602090205490565b348015610696575f80fd5b50600e54600f546106a5919082565b60408051928352602083019190915201610307565b3480156106c5575f80fd5b50638b78c6d819545b6040516001600160a01b039091168152602001610307565b3480156106f1575f80fd5b506102fa610cd0565b348015610705575f80fd5b5061032f6107143660046123e2565b610cdf565b348015610724575f80fd5b506102fa610d6c565b348015610738575f80fd5b5061074c61074736600461240c565b610d7b565b6040516103079a999897969594939291906127b5565b34801561076d575f80fd5b5061037461077c366004612881565b610f34565b34801561078c575f80fd5b5061037461079b3660046128a1565b610fb9565b6106ce6107ae36600461240c565b61114c565b3480156107be575f80fd5b506103536107cd36600461290d565b602052637f5e9f20600c9081525f91909152603490205490565b3480156107f2575f80fd5b50610353610801366004612461565b60116020525f908152604090205481565b6106ce610820366004612b5a565b611758565b348015610830575f80fd5b5061037461083f366004612c90565b6118b8565b610374610852366004612461565b61192b565b610374610865366004612461565b611965565b348015610875575f80fd5b50610353610884366004612461565b63389a75e1600c9081525f91909152602090205490565b6060601280546108aa90612ccf565b80601f01602080910402602001604051908101604052809291908181526020018280546108d690612ccf565b80156109215780601f106108f857610100808354040283529160200191610921565b820191905f5260205f20905b81548152906001019060200180831161090457829003601f168201915b5050505050905090565b5f82602052637f5e9f20600c52335f52816034600c2055815f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa350600192915050565b5f60035461098f6805345cdf77eb68f44c5490565b03905090565b61099f338261198b565b50565b6109aa611996565b6109b482826119b0565b5050565b5f6109c48484846119bc565b8360601b33602052637f5e9f208117600c526034600c2080546001810115610a0157808511156109fb576313be252b5f526004601cfd5b84810382555b50506387a211a28117600c526020600c20805480851115610a295763f4d678b85f526004601cfd5b84810382555050835f526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350610a7e848484611a0a565b5060019392505050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b6004610ae081611a62565b61099f33611a86565b5f6002610af581611a62565b610aff8484611ab0565b949350505050565b5f80610b1161089b565b8051906020012090506040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81528160208201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a081209250505090565b61099f3382611b3e565b610b95611996565b6109b4828261198b565b6010610baa81611bc4565b60208381015160075560408085015160085560608501516009805460ff191660ff90921691909117905560808501518051600a5580830151600b80549284015161ffff92831663ffffffff19948516176201000091841682021790915560a08801518051600c5580860151600d805492870151918516929095169190911792160217905590830151600f55517f85a52584e2a604db198ab2f447cba2fc038a972048381c24b40219ef7a83df70905f90a1505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610ca1611996565b610caa5f611bf5565b565b6060600280546108aa90612ccf565b610cc6823383611c32565b6109b48282611b3e565b6060601380546108aa90612ccf565b5f610ceb3384846119bc565b6387a211a2600c52335f526020600c20805480841115610d125763f4d678b85f526004601cfd5b83810382555050825f526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3610d63338484611a0a565b50600192915050565b6060600180546108aa90612ccf565b601060209081525f9182526040918290208054600182015460028301546003840154600485015460058601548851606081018a5260068801805460ff1682526007890180548c51818d0281018d01909d52808d526001600160a01b03998a169c988a169b978a169a968a16999586169895909416969294919385840193830182828015610e2f57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610e11575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610ea257602002820191905f5260205f20905f905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610e735790505b505050919092525050604080516060808201835260098601548252600a86015461ffff808216602080860191909152620100009283900482168587015285519384018652600b8901548452600c890154808316858301529290920416828501528351808501909452600d909601546001600160a01b0381168452600160a01b900460ff1695830195909552929391508a565b6008610f3f81611bc4565b5f6019610f4a61097a565b610f549190612d07565b905080841180610f6357508083115b15610f8157604051630b1af1c560e01b815260040160405180910390fd5b6006849055600e8390556040517f5e61ef6a89edc7c475a1c786c7687a2c66ab5a996d29f9601a78281bf9580a08905f90a150505050565b5f610fc261089b565b80519060200120905084421115610fe057631a15a3cc5f526004601cfd5b6040518860601b60601c98508760601b60601c975065383775081901600e52885f526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f83528360208401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a60208401528960408401528860608401528060808401528760a084015260c08320604e526042602c205f528660ff16602052856040528460605260208060805f60015afa8b3d51146110e85763ddafbaef5f526004601cfd5b019055777f5e9f20000000000000000000000000000000000000000088176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250505f606052505050505050565b5f805460ff166002036111725760405163c5f2be5160e01b815260040160405180910390fd5b5f805460ff1916600217815582900361119e5760405163aef4e71760e01b815260040160405180910390fd5b5f828152601060205260409020600401546001600160a01b0316156111de576040516310ca6e0960e01b8152600481018390526024015b60405180910390fd5b6040805160028082526060820183525f926020830190803683370190505090505f815f8151811061121157611211612d26565b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061124557611245612d26565b6001600160a01b0392909216602092830291909101909101526040805160018082528183019092525f918160200160208202803683370190505090506032815f8151811061129557611295612d26565b602002602001019060ff16908160ff16815250505f6112b385611c73565b90505f6115206040518060a00160405280611303856040518060400160405280600981526020017f2028536f6369616c290000000000000000000000000000000000000000000000815250611cb5565b81526020016113476040518060400160405280600781526020017f43485a422d582d0000000000000000000000000000000000000000000000000081525086611cb5565b81526020016001805461135990612ccf565b80601f016020809104026020016040519081016040528092919081815260200182805461138590612ccf565b80156113d05780601f106113a7576101008083540402835291602001916113d0565b820191905f5260205f20905b8154815290600101906020018083116113b357829003601f168201915b50505050508152602001600280546113e790612ccf565b80601f016020809104026020016040519081016040528092919081815260200182805461141390612ccf565b801561145e5780601f106114355761010080835404028352916020019161145e565b820191905f5260205f20905b81548152906001019060200180831161144157829003601f168201915b50505091835250506007546020918201526040805160608082018352600282528184018a905281830189905282518082018452600c548152600d5461ffff80821683880152620100009182900481168387015285519384018652600a548452600b54808216978501979097529504909416928101929092526009549092919060ff166114fc57604080518082019091525f8082526020820152611515565b6040805180820190915233815260095460ff1660208201525b600654600854611d0f565b5f878152601060209081526040918290208351815473ffffffffffffffffffffffffffffffffffffffff199081166001600160a01b03928316178355858401516001840180548316918416919091179055938501516002830180548616918316919091179055606085015160038301805486169183169190911790556080850151600483018054861691831691909117905560a085015160058301805490951691161790925560c0830151805160068401805460ff191660ff9092169190911781558183015180519596508695929391926116019260078701920190612256565b506040820151805161161d9160028401916020909101906122c6565b50505060e082015180516009830155602080820151600a8401805460409485015161ffff9081166201000090810263ffffffff1993841695831695909517949094179092556101008701518051600b88015580850151600c88018054928801518516909502919092169190921617179055610120909301518051600d90930180549185015160ff16600160a01b027fffffffffffffffffffffff0000000000000000000000000000000000000000009092166001600160a01b039485161791909117905560808401805183165f9081526011909452928190208990556006549251600354915192169189917fcc3e9264e04b0c3e95caab810e2b79dcf92ad5a919096173776c77ae4f32db119161173691815260200190565b60405180910390a46080015193505050505f805460ff19166001179055919050565b5f805460ff1660020361177e5760405163c5f2be5160e01b815260040160405180910390fd5b5f805460ff191660021790556020868101516040805180820190915260058082527f43485a422d000000000000000000000000000000000000000000000000000000918401919091529181018290209051909111157f779f6a5034e01e3f8c94a4dd8ce33ae89e62528ef26eb9bb20ca5c37a9596fd69091141680156118165750638b78c6d8600c908152335f526020908190205416155b156118345760405163361cb83960e11b815260040160405180910390fd5b5f61184d8787878787600e5f0154600e60010154611d0f565b9050600e5f015481608001516001600160a01b03167fffbb7fa028a13c99395f25007a703011e59272cbf40f7a02823f34629c27ef2760035460405161189591815260200190565b60405180910390a36080015190505f805460ff1916600117905595945050505050565b6118c0611996565b8051600480546001600160a01b0392831673ffffffffffffffffffffffffffffffffffffffff19918216179091556020830151600580549190931691161790556040517fe8b17a7524058d1a342afefcf40dad4efc8d3d505c865b90ba810c43cff793e6905f90a150565b611933611996565b63389a75e1600c52805f526020600c20805442111561195957636f5e88185f526004601cfd5b5f905561099f81611bf5565b61196d611996565b8060601b61198257637448fbae5f526004601cfd5b61099f81611bf5565b6109b482825f611f16565b638b78c6d819543314610caa576382b429005f526004601cfd5b6109b482826001611f16565b6001600160a01b038316158015906119dc57506001600160a01b03821630145b15611a0557604051634ae889f760e01b81526001600160a01b03831660048201526024016111d5565b505050565b6001600160a01b038216158015611a3157506387a211a2600c9081525f8052602090205415155b15611a055760405163281a1b1360e01b81526001600160a01b038085166004830152831660248201526044016111d5565b638b78c6d8600c52335f52806020600c20541661099f576382b429005f526004601cfd5b5f385f384785620186a0f161099f57805f526073600b5360ff6020536016600b47f061099f573838fd5b5f828152601060205260408120600201546001600160a01b031680611ae85760405163252fe3c560e01b815260040160405180910390fd5b5f611af38285611f6d565b905080846001600160a01b0316836001600160a01b03167f0d3436d46d19d0f7b8fe80eef1d937706e673070d9099df32fd119aa611736d260405160405180910390a4949350505050565b611b49825f836119bc565b6387a211a2600c52815f526020600c20805480831115611b705763f4d678b85f526004601cfd5b82900390556805345cdf77eb68f44c805482900390555f8181526001600160a01b0383167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a36109b4825f83611a0a565b638b78c6d81954331461099f57638b78c6d8600c52335f52806020600c20541661099f576382b429005f526004601cfd5b638b78c6d81980546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b81602052637f5e9f20600c52825f526034600c2080546001810115611c6c5780831115611c66576313be252b5f526004601cfd5b82810382555b5050505050565b60606080604051019050602081016040525f8152805f19835b928101926030600a8206018453600a900480611c8c575050819003601f19909101908152919050565b6040518251601f19906020810182165b8581015184820152820180611cc5575083518184018360208301165b8681015182820152840180611ce15750505f910183810160208101929092528352603f011660405292915050565b611daf60408051610140810182525f808252602080830182905282840182905260608084018390526080840183905260a084018390528451808201865283815280830182905280860182905260c08501528451808201865283815280830184905280860184905260e08501528451908101855282815280820183905280850183905261010084015283518085019094528184528301529061012082015290565b813414611dd857604051633c0ef5cb60e11b8152346004820152602481018390526044016111d5565b611de23084611fe5565b600454611dfa9030906001600160a01b031685612073565b5f60045f015f9054906101000a90046001600160a01b03166001600160a01b031663bec8acc88a60046001015f9054906101000a90046001600160a01b031630888d8d8d8d6040518963ffffffff1660e01b8152600401611e62989796959493929190612d3a565b6020604051808303815f875af1158015611e7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ea29190612e8b565b6004549091505f90611ebd906001600160a01b0316836120bc565b9050611ecd81604001515f611f6d565b5084611ed761097a565b01611ee061097a565b1115611eff57604051637ebdee1b60e01b815260040160405180910390fd5b60038054860190559150505b979650505050505050565b638b78c6d8600c52825f526020600c20805483811783611f37575080841681185b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f6370a082315f5230602052602060346024601c865afa601f3d1116611f9a576390b8ec185f526004601cfd5b8160145260345190506fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716611fdb576390b8ec185f526004601cfd5b5f60345292915050565b611ff05f83836119bc565b6805345cdf77eb68f44c54818101818110156120135763e5cfe9575f526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52815f526020600c208181540181555080602052600c5160601c5f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a36109b45f8383611a0a565b81601452806034526f095ea7b30000000000000000000000005f5260205f604460105f875af13d1560015f511417166120b357633e3f8f735f526004601cfd5b5f603452505050565b61215c60408051610140810182525f808252602080830182905282840182905260608084018390526080840183905260a084018390528451808201865283815280830182905280860182905260c08501528451808201865283815280830184905280860184905260e08501528451908101855282815280820183905280850183905261010084015283518085019094528184528301529061012082015290565b5f805f805f805f805f808c6001600160a01b03166301b7cc648d6040518263ffffffff1660e01b81526004016121a191906001600160a01b0391909116815260200190565b5f60405180830381865afa1580156121bb573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526121e29190810190613050565b60408051610140810182526001600160a01b039b8c168152998b1660208b0152978a169789019790975294881660608801529287166080870152951660a085015260c084019490945260e08301939093526101008201929092526101208101919091529d9c50505050505050505050505050565b828054828255905f5260205f209081019282156122b6579160200282015b828111156122b6578251825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116178255602090920191600190910190612274565b506122c292915061235e565b5090565b828054828255905f5260205f2090601f016020900481019282156122b6579160200282015f5b8382111561232957835183826101000a81548160ff021916908360ff16021790555092602001926001016020815f010492830192600103026122ec565b80156123555782816101000a81549060ff02191690556001016020815f01049283019260010302612329565b50506122c29291505b5b808211156122c2575f815560010161235f565b5f81518084525f5b818110156123965760208185018101518683018201520161237a565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f6123c76020830184612372565b9392505050565b6001600160a01b038116811461099f575f80fd5b5f80604083850312156123f3575f80fd5b82356123fe816123ce565b946020939093013593505050565b5f6020828403121561241c575f80fd5b5035919050565b5f805f60608486031215612435575f80fd5b8335612440816123ce565b92506020840135612450816123ce565b929592945050506040919091013590565b5f60208284031215612471575f80fd5b81356123c7816123ce565b8681526020808201879052604080830187905260ff86166060840152845160808401528482015161ffff90811660a085015285820151811660c0850152845160e0850152918401518216610100840152830151166101208201526101408101611f0b565b5f80604083850312156124f1575f80fd5b823591506020830135612503816123ce565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156125455761254561250e565b60405290565b6040805190810167ffffffffffffffff811182821017156125455761254561250e565b60405160a0810167ffffffffffffffff811182821017156125455761254561250e565b604051601f8201601f1916810167ffffffffffffffff811182821017156125ba576125ba61250e565b604052919050565b60ff8116811461099f575f80fd5b61ffff8116811461099f575f80fd5b5f606082840312156125ef575f80fd5b6125f7612522565b905081358152602082013561260b816125d0565b6020820152604082013561261e816125d0565b604082015292915050565b5f60408284031215612639575f80fd5b61264161254b565b9050813581526020820135602082015292915050565b5f8082840361018081121561266a575f80fd5b61014080821215612679575f80fd5b604051915060c0820182811067ffffffffffffffff8211171561269e5761269e61250e565b806040525084358252602085013560208301526040850135604083015260608501356126c9816125c2565b60608301526126db86608087016125df565b60808301526126ed8660e087016125df565b60a083015281935061270186828701612629565b925050509250929050565b5f6060830160ff80845116855260208085015160608288015283815180865260808901915083830195505f92505b808310156127635785516001600160a01b0316825294830194600192909201919083019061273a565b50604087810151898303918a01919091528051808352908401955090830191505f905b808210156127a857855185168352948301949183019160019190910190612786565b5090979650505050505050565b5f6101e06001600160a01b03808e168452808d166020850152808c166040850152808b166060850152808a16608085015280891660a0850152508060c08401526128018184018861270c565b865160e0850152602087015161ffff908116610100860152604088015116610120850152915061282e9050565b8351610140830152602084015161ffff90811661016084015260408501511661018083015282516001600160a01b03166101a0830152602083015160ff166101c08301529b9a5050505050505050505050565b5f8060408385031215612892575f80fd5b50508035926020909101359150565b5f805f805f805f60e0888a0312156128b7575f80fd5b87356128c2816123ce565b965060208801356128d2816123ce565b9550604088013594506060880135935060808801356128f0816125c2565b9699959850939692959460a0840135945060c09093013592915050565b5f806040838503121561291e575f80fd5b8235612929816123ce565b91506020830135612503816123ce565b5f82601f830112612948575f80fd5b813567ffffffffffffffff8111156129625761296261250e565b612975601f8201601f1916602001612591565b818152846020838601011115612989575f80fd5b816020850160208301375f918101602001919091529392505050565b5f67ffffffffffffffff8211156129be576129be61250e565b5060051b60200190565b5f82601f8301126129d7575f80fd5b813560206129ec6129e7836129a5565b612591565b8083825260208201915060208460051b870101935086841115612a0d575f80fd5b602086015b84811015612a32578035612a25816125c2565b8352918301918301612a12565b509695505050505050565b5f60608284031215612a4d575f80fd5b612a55612522565b90508135612a62816125c2565b815260208281013567ffffffffffffffff80821115612a7f575f80fd5b818501915085601f830112612a92575f80fd5b8135612aa06129e7826129a5565b81815260059190911b83018401908481019088831115612abe575f80fd5b938501935b82851015612ae5578435612ad6816123ce565b82529385019390850190612ac3565b80868801525050506040850135925080831115612b00575f80fd5b5050612b0e848285016129c8565b60408301525092915050565b5f60408284031215612b2a575f80fd5b612b3261254b565b90508135612b3f816123ce565b81526020820135612b4f816125c2565b602082015292915050565b5f805f805f6101408688031215612b6f575f80fd5b853567ffffffffffffffff80821115612b86575f80fd5b9087019060a0828a031215612b99575f80fd5b612ba161256e565b823582811115612baf575f80fd5b612bbb8b828601612939565b825250602083013582811115612bcf575f80fd5b612bdb8b828601612939565b602083015250604083013582811115612bf2575f80fd5b612bfe8b828601612939565b604083015250606083013582811115612c15575f80fd5b612c218b828601612939565b60608301525060808301356080820152809750506020880135915080821115612c48575f80fd5b50612c5588828901612a3d565b945050612c6587604088016125df565b9250612c748760a088016125df565b9150612c84876101008801612b1a565b90509295509295909350565b5f60408284031215612ca0575f80fd5b612ca861254b565b8235612cb3816123ce565b81526020830135612cc3816123ce565b60208201529392505050565b600181811c90821680612ce357607f821691505b602082108103612d0157634e487b7160e01b5f52602260045260245ffd5b50919050565b5f82612d2157634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f6101a08083528a5160a082850152612d57610240850182612372565b91505060208b015161019f1980858403016101c0860152612d788383612372565b925060408d0151915080858403016101e0860152612d968383612372565b925060608d01519150808584030161020086015250612db58282612372565b91505060808b0151610220840152612dd8602084018b6001600160a01b03169052565b6001600160a01b03891660408401528760608401528281036080840152612dff818861270c565b865160a0850152602087015161ffff90811660c086015260408801511660e08501529150612e2a9050565b8351610100830152602084015161ffff90811661012084015260408501511661014083015282516001600160a01b0316610160830152602083015160ff166101808301529998505050505050505050565b8051612e86816123ce565b919050565b5f60208284031215612e9b575f80fd5b81516123c7816123ce565b5f82601f830112612eb5575f80fd5b81516020612ec56129e7836129a5565b8083825260208201915060208460051b870101935086841115612ee6575f80fd5b602086015b84811015612a32578051612efe816125c2565b8352918301918301612eeb565b5f60608284031215612f1b575f80fd5b612f23612522565b90508151612f30816125c2565b815260208281015167ffffffffffffffff80821115612f4d575f80fd5b818501915085601f830112612f60575f80fd5b8151612f6e6129e7826129a5565b81815260059190911b83018401908481019088831115612f8c575f80fd5b938501935b82851015612fb3578451612fa4816123ce565b82529385019390850190612f91565b80868801525050506040850151925080831115612fce575f80fd5b5050612b0e84828501612ea6565b5f60608284031215612fec575f80fd5b612ff4612522565b9050815181526020820151613008816125d0565b6020820152604082015161261e816125d0565b5f6040828403121561302b575f80fd5b61303361254b565b90508151613040816123ce565b81526020820151612b4f816125c2565b5f805f805f805f805f806101e08b8d03121561306a575f80fd5b8a51613075816123ce565b60208c0151909a50613086816123ce565b60408c0151909950613097816123ce565b60608c01519098506130a8816123ce565b60808c01519097506130b9816123ce565b95506130c760a08c01612e7b565b945060c08b015167ffffffffffffffff8111156130e2575f80fd5b6130ee8d828e01612f0b565b9450506130fe8c60e08d01612fdc565b925061310e8c6101408d01612fdc565b915061311e8c6101a08d0161301b565b90509295989b9194979a509295985056fea2646970667358221220794159239f1deb143ed3a080e0bb6e618d2d7f7775a71578db816f68d6c56c5164736f6c634300081600330000000000000000000000000000000000000000000000000000000000000060000000000000000000000000b51b7d01c94ceff686e6463ce1ea461c2bb8276b0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000003b2e0f44000000000000000000000000000000000000000000000000000000000000000b436865657a627572676572000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000443485a4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001768747470733a2f2f636865657a6275726765722e6c6f6c000000000000000000000000000000000000000000000000000000000000000000000000000000001768747470733a2f2f636865657a6275726765722e6c6f6c000000000000000000
0xa2646970667358221220794159239f1deb143ed3a080e0bb6e618d2d7f7775a71578db816f68d6c56c5164736f6c634300081600330000000000000000000000000000000000000000000000000000000000000060000000000000000000000000b51b7d01c94ceff686e6463ce1ea461c2bb8276b0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000003b2e0f44000000000000000000000000000000000000000000000000000000000000000b436865657a627572676572000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000443485a4200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001768747470733a2f2f636865657a6275726765722e6c6f6c000000000000000000000000000000000000000000000000000000000000000000000000000000001768747470733a2f2f636865657a6275726765722e6c6f6c000000000000000000