UNPKG

@astonic-io/astonic-bindings-ts

Version:

Astonic type generation and npm package deployment repo

1,534 lines 80.6 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.Reserve__factory = void 0; /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ var ethers_1 = require("ethers"); var _abi = [ { type: "constructor", inputs: [ { name: "test", type: "bool", internalType: "bool", }, ], stateMutability: "nonpayable", }, { type: "fallback", stateMutability: "payable", }, { type: "function", name: "addCollateralAsset", inputs: [ { name: "collateralAsset", type: "address", internalType: "address", }, ], outputs: [ { name: "", type: "bool", internalType: "bool", }, ], stateMutability: "nonpayable", }, { type: "function", name: "addExchangeSpender", inputs: [ { name: "spender", type: "address", internalType: "address", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "addOtherReserveAddress", inputs: [ { name: "reserveAddress", type: "address", internalType: "address", }, ], outputs: [ { name: "", type: "bool", internalType: "bool", }, ], stateMutability: "nonpayable", }, { type: "function", name: "addSpender", inputs: [ { name: "spender", type: "address", internalType: "address", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "addToken", inputs: [ { name: "token", type: "address", internalType: "address", }, ], outputs: [ { name: "", type: "bool", internalType: "bool", }, ], stateMutability: "nonpayable", }, { type: "function", name: "assetAllocationSymbols", inputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], outputs: [ { name: "", type: "bytes32", internalType: "bytes32", }, ], stateMutability: "view", }, { type: "function", name: "assetAllocationWeights", inputs: [ { name: "", type: "bytes32", internalType: "bytes32", }, ], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "checkIsCollateralAsset", inputs: [ { name: "collateralAsset", type: "address", internalType: "address", }, ], outputs: [ { name: "", type: "bool", internalType: "bool", }, ], stateMutability: "view", }, { type: "function", name: "collateralAssetLastSpendingDay", inputs: [ { name: "", type: "address", internalType: "address", }, ], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "collateralAssetSpendingLimit", inputs: [ { name: "", type: "address", internalType: "address", }, ], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "collateralAssets", inputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], outputs: [ { name: "", type: "address", internalType: "address", }, ], stateMutability: "view", }, { type: "function", name: "exchangeSpenderAddresses", inputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], outputs: [ { name: "", type: "address", internalType: "address", }, ], stateMutability: "view", }, { type: "function", name: "frozenReservePlanqDays", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "frozenReservePlanqStartBalance", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "frozenReservePlanqStartDay", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "getAssetAllocationSymbols", inputs: [], outputs: [ { name: "", type: "bytes32[]", internalType: "bytes32[]", }, ], stateMutability: "view", }, { type: "function", name: "getAssetAllocationWeights", inputs: [], outputs: [ { name: "", type: "uint256[]", internalType: "uint256[]", }, ], stateMutability: "view", }, { type: "function", name: "getDailySpendingRatio", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "getDailySpendingRatioForCollateralAsset", inputs: [ { name: "collateralAsset", type: "address", internalType: "address", }, ], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "getExchangeSpenders", inputs: [], outputs: [ { name: "", type: "address[]", internalType: "address[]", }, ], stateMutability: "view", }, { type: "function", name: "getFrozenReservePlanqBalance", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "getOrComputeTobinTax", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "nonpayable", }, { type: "function", name: "getOtherReserveAddresses", inputs: [], outputs: [ { name: "", type: "address[]", internalType: "address[]", }, ], stateMutability: "view", }, { type: "function", name: "getOtherReserveAddressesPlanqBalance", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "getReserveAddressesCollateralAssetBalance", inputs: [ { name: "collateralAsset", type: "address", internalType: "address", }, ], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "getReservePlanqBalance", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "getReserveRatio", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "getTokens", inputs: [], outputs: [ { name: "", type: "address[]", internalType: "address[]", }, ], stateMutability: "view", }, { type: "function", name: "getUnfrozenBalance", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "getUnfrozenReservePlanqBalance", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "getVersionNumber", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, { name: "", type: "uint256", internalType: "uint256", }, { name: "", type: "uint256", internalType: "uint256", }, { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "pure", }, { type: "function", name: "initialize", inputs: [ { name: "registryAddress", type: "address", internalType: "address", }, { name: "_tobinTaxStalenessThreshold", type: "uint256", internalType: "uint256", }, { name: "_spendingRatioForPlanq", type: "uint256", internalType: "uint256", }, { name: "_frozenPlanq", type: "uint256", internalType: "uint256", }, { name: "_frozenDays", type: "uint256", internalType: "uint256", }, { name: "_assetAllocationSymbols", type: "bytes32[]", internalType: "bytes32[]", }, { name: "_assetAllocationWeights", type: "uint256[]", internalType: "uint256[]", }, { name: "_tobinTax", type: "uint256", internalType: "uint256", }, { name: "_tobinTaxReserveRatio", type: "uint256", internalType: "uint256", }, { name: "_collateralAssets", type: "address[]", internalType: "address[]", }, { name: "_collateralAssetDailySpendingRatios", type: "uint256[]", internalType: "uint256[]", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "initialized", inputs: [], outputs: [ { name: "", type: "bool", internalType: "bool", }, ], stateMutability: "view", }, { type: "function", name: "isCollateralAsset", inputs: [ { name: "", type: "address", internalType: "address", }, ], outputs: [ { name: "", type: "bool", internalType: "bool", }, ], stateMutability: "view", }, { type: "function", name: "isExchangeSpender", inputs: [ { name: "", type: "address", internalType: "address", }, ], outputs: [ { name: "", type: "bool", internalType: "bool", }, ], stateMutability: "view", }, { type: "function", name: "isOtherReserveAddress", inputs: [ { name: "", type: "address", internalType: "address", }, ], outputs: [ { name: "", type: "bool", internalType: "bool", }, ], stateMutability: "view", }, { type: "function", name: "isOwner", inputs: [], outputs: [ { name: "", type: "bool", internalType: "bool", }, ], stateMutability: "view", }, { type: "function", name: "isSpender", inputs: [ { name: "", type: "address", internalType: "address", }, ], outputs: [ { name: "", type: "bool", internalType: "bool", }, ], stateMutability: "view", }, { type: "function", name: "isStableAsset", inputs: [ { name: "token", type: "address", internalType: "address", }, ], outputs: [ { name: "", type: "bool", internalType: "bool", }, ], stateMutability: "view", }, { type: "function", name: "isToken", inputs: [ { name: "", type: "address", internalType: "address", }, ], outputs: [ { name: "", type: "bool", internalType: "bool", }, ], stateMutability: "view", }, { type: "function", name: "lastSpendingDay", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "otherReserveAddresses", inputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], outputs: [ { name: "", type: "address", internalType: "address", }, ], stateMutability: "view", }, { type: "function", name: "owner", inputs: [], outputs: [ { name: "", type: "address", internalType: "address", }, ], stateMutability: "view", }, { type: "function", name: "registry", inputs: [], outputs: [ { name: "", type: "address", internalType: "contract IRegistry", }, ], stateMutability: "view", }, { type: "function", name: "removeCollateralAsset", inputs: [ { name: "collateralAsset", type: "address", internalType: "address", }, { name: "index", type: "uint256", internalType: "uint256", }, ], outputs: [ { name: "", type: "bool", internalType: "bool", }, ], stateMutability: "nonpayable", }, { type: "function", name: "removeExchangeSpender", inputs: [ { name: "spender", type: "address", internalType: "address", }, { name: "index", type: "uint256", internalType: "uint256", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "removeOtherReserveAddress", inputs: [ { name: "reserveAddress", type: "address", internalType: "address", }, { name: "index", type: "uint256", internalType: "uint256", }, ], outputs: [ { name: "", type: "bool", internalType: "bool", }, ], stateMutability: "nonpayable", }, { type: "function", name: "removeSpender", inputs: [ { name: "spender", type: "address", internalType: "address", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "removeToken", inputs: [ { name: "token", type: "address", internalType: "address", }, { name: "index", type: "uint256", internalType: "uint256", }, ], outputs: [ { name: "", type: "bool", internalType: "bool", }, ], stateMutability: "nonpayable", }, { type: "function", name: "renounceOwnership", inputs: [], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "setAssetAllocations", inputs: [ { name: "symbols", type: "bytes32[]", internalType: "bytes32[]", }, { name: "weights", type: "uint256[]", internalType: "uint256[]", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "setDailySpendingRatio", inputs: [ { name: "ratio", type: "uint256", internalType: "uint256", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "setDailySpendingRatioForCollateralAssets", inputs: [ { name: "_collateralAssets", type: "address[]", internalType: "address[]", }, { name: "collateralAssetDailySpendingRatios", type: "uint256[]", internalType: "uint256[]", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "setFrozenPlanq", inputs: [ { name: "frozenPlanq", type: "uint256", internalType: "uint256", }, { name: "frozenDays", type: "uint256", internalType: "uint256", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "setRegistry", inputs: [ { name: "registryAddress", type: "address", internalType: "address", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "setTobinTax", inputs: [ { name: "value", type: "uint256", internalType: "uint256", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "setTobinTaxReserveRatio", inputs: [ { name: "value", type: "uint256", internalType: "uint256", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "setTobinTaxStalenessThreshold", inputs: [ { name: "value", type: "uint256", internalType: "uint256", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "spendingLimit", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "tobinTax", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "tobinTaxCache", inputs: [], outputs: [ { name: "numerator", type: "uint128", internalType: "uint128", }, { name: "timestamp", type: "uint128", internalType: "uint128", }, ], stateMutability: "view", }, { type: "function", name: "tobinTaxReserveRatio", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "tobinTaxStalenessThreshold", inputs: [], outputs: [ { name: "", type: "uint256", internalType: "uint256", }, ], stateMutability: "view", }, { type: "function", name: "transferCollateralAsset", inputs: [ { name: "collateralAsset", type: "address", internalType: "address", }, { name: "to", type: "address", internalType: "address payable", }, { name: "value", type: "uint256", internalType: "uint256", }, ], outputs: [ { name: "", type: "bool", internalType: "bool", }, ], stateMutability: "nonpayable", }, { type: "function", name: "transferExchangeCollateralAsset", inputs: [ { name: "collateralAsset", type: "address", internalType: "address", }, { name: "to", type: "address", internalType: "address payable", }, { name: "value", type: "uint256", internalType: "uint256", }, ], outputs: [ { name: "", type: "bool", internalType: "bool", }, ], stateMutability: "nonpayable", }, { type: "function", name: "transferExchangePlanq", inputs: [ { name: "to", type: "address", internalType: "address payable", }, { name: "value", type: "uint256", internalType: "uint256", }, ], outputs: [ { name: "", type: "bool", internalType: "bool", }, ], stateMutability: "nonpayable", }, { type: "function", name: "transferOwnership", inputs: [ { name: "newOwner", type: "address", internalType: "address", }, ], outputs: [], stateMutability: "nonpayable", }, { type: "function", name: "transferPlanq", inputs: [ { name: "to", type: "address", internalType: "address payable", }, { name: "value", type: "uint256", internalType: "uint256", }, ], outputs: [ { name: "", type: "bool", internalType: "bool", }, ], stateMutability: "nonpayable", }, { type: "event", name: "AssetAllocationSet", inputs: [ { name: "symbols", type: "bytes32[]", indexed: false, internalType: "bytes32[]", }, { name: "weights", type: "uint256[]", indexed: false, internalType: "uint256[]", }, ], anonymous: false, }, { type: "event", name: "CollateralAssetAdded", inputs: [ { name: "collateralAsset", type: "address", indexed: false, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "CollateralAssetRemoved", inputs: [ { name: "collateralAsset", type: "address", indexed: false, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "DailySpendingRatioForCollateralAssetSet", inputs: [ { name: "collateralAsset", type: "address", indexed: false, internalType: "address", }, { name: "collateralAssetDailySpendingRatios", type: "uint256", indexed: false, internalType: "uint256", }, ], anonymous: false, }, { type: "event", name: "DailySpendingRatioSet", inputs: [ { name: "ratio", type: "uint256", indexed: false, internalType: "uint256", }, ], anonymous: false, }, { type: "event", name: "ExchangeSpenderAdded", inputs: [ { name: "exchangeSpender", type: "address", indexed: true, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "ExchangeSpenderRemoved", inputs: [ { name: "exchangeSpender", type: "address", indexed: true, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "OtherReserveAddressAdded", inputs: [ { name: "otherReserveAddress", type: "address", indexed: true, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "OtherReserveAddressRemoved", inputs: [ { name: "otherReserveAddress", type: "address", indexed: true, internalType: "address", }, { name: "index", type: "uint256", indexed: false, internalType: "uint256", }, ], anonymous: false, }, { type: "event", name: "OwnershipTransferred", inputs: [ { name: "previousOwner", type: "address", indexed: true, internalType: "address", }, { name: "newOwner", type: "address", indexed: true, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "RegistrySet", inputs: [ { name: "registryAddress", type: "address", indexed: true, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "ReserveCollateralAssetsTransferred", inputs: [ { name: "spender", type: "address", indexed: true, internalType: "address", }, { name: "to", type: "address", indexed: true, internalType: "address", }, { name: "value", type: "uint256", indexed: false, internalType: "uint256", }, { name: "token", type: "address", indexed: false, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "ReservePlanqTransferred", inputs: [ { name: "spender", type: "address", indexed: true, internalType: "address", }, { name: "to", type: "address", indexed: true, internalType: "address", }, { name: "value", type: "uint256", indexed: false, internalType: "uint256", }, ], anonymous: false, }, { type: "event", name: "SpenderAdded", inputs: [ { name: "spender", type: "address", indexed: true, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "SpenderRemoved", inputs: [ { name: "spender", type: "address", indexed: true, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "TobinTaxReserveRatioSet", inputs: [ { name: "value", type: "uint256", indexed: false, internalType: "uint256", }, ], anonymous: false, }, { type: "event", name: "TobinTaxSet", inputs: [ { name: "value", type: "uint256", indexed: false, internalType: "uint256", }, ], anonymous: false, }, { type: "event", name: "TobinTaxStalenessThresholdSet", inputs: [ { name: "value", type: "uint256", indexed: false, internalType: "uint256", }, ], anonymous: false, }, { type: "event", name: "TokenAdded", inputs: [ { name: "token", type: "address", indexed: true, internalType: "address", }, ], anonymous: false, }, { type: "event", name: "TokenRemoved", inputs: [ { name: "token", type: "address", indexed: true, internalType: "address", }, { name: "index", type: "uint256", indexed: false, internalType: "uint256", }, ], anonymous: false, }, ]; var _bytecode = "0x60806040523480156200001157600080fd5b506040516200532e3803806200532e833981810160405260208110156200003757600080fd5b50518060006200004f6001600160e01b03620000c016565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35080620000b3576000805460ff60a01b1916600160a01b1790555b50506001600255620000c4565b3390565b61525a80620000d46000396000f3fe6080604052600436106103ef5760003560e01c8063894098d611610208578063b1c40da411610118578063e6b76e9c116100ab578063f0b7182b1161007a578063f0b7182b146111ab578063f240dae3146111de578063f2fde38b14611211578063f7165fee14611244578063fa9ed95a1461126e576103ef565b8063e6b76e9c146110f4578063e7e31e7a1461111e578063eae6011e14611151578063ec4f797b14611181576103ef565b8063e2511535116100e7578063e25115351461107c578063e30f579d146110b5578063e33a88e7146110ca578063e50a6c1e146110df576103ef565b8063b1c40da414610ed1578063ca56d33b14610ee6578063cae182fe14611016578063d48bfca714611049576103ef565b80639a206ece1161019b578063a8b94b8d1161016a578063a8b94b8d14610df3578063a91ee0dc14610e26578063aa6ca80814610e59578063ad62ad1014610e6e578063b003dcf114610e98576103ef565b80639a206ece14610d6c5780639c3e2f0f14610d9f578063a1ab55b314610db4578063a712af4614610dde576103ef565b8063919a1fbe116101d7578063919a1fbe14610cb85780639512f46414610ceb57806395130e5814610d24578063965366f314610d39576103ef565b8063894098d614610c465780638ce5877c14610c5b5780638da5cb5b14610c8e5780638f32d59b14610ca3576103ef565b80634f8e6e231161030357806370022cb41161029657806376769a601161026557806376769a6014610bbf5780637897a78e14610bd45780637b10399914610be95780637b52207514610bfe5780638438796a14610c31576103ef565b806370022cb4146109bc57806370d9a267146109f5578063715018a614610a0a57806372a6b8b014610a1f576103ef565b80635827ff8f116102d25780635827ff8f146109015780635a18b08b146109165780635c4a3145146109405780636be383fc14610979576103ef565b80634f8e6e231461084b57806350614ba01461087e57806354255be0146108b157806356b6d0d5146108ec576103ef565b8063172b45f71161038657806322796e831161035557806322796e831461074f57806338345dec1461078a57806339d7f76e146107bd57806340899365146107d25780634cea8ded14610818576103ef565b8063172b45f7146106a657806317f9a6f7146106bb57806319f37361146106e9578063220159681461071c576103ef565b80631218f982116103c25780631218f982146105de57806313baf1e614610643578063156d45991461067c578063158ef93e14610691576103ef565b806301da32bd146103f1578063042b7a541461041b5780630db279be1461047257806311bb0dcd146104ae575b005b3480156103fd57600080fd5b506103ef6004803603602081101561041457600080fd5b5035611283565b34801561042757600080fd5b5061045e6004803603606081101561043e57600080fd5b506001600160a01b0381358116916020810135909116906040013561136f565b604080519115158252519081900360200190f35b34801561047e57600080fd5b5061049c6004803603602081101561049557600080fd5b50356115b4565b60408051918252519081900360200190f35b3480156104ba57600080fd5b506103ef600480360360408110156104d157600080fd5b810190602081018135600160201b8111156104eb57600080fd5b8201836020820111156104fd57600080fd5b803590602001918460208302840111600160201b8311171561051e57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561056d57600080fd5b82018360208201111561057f57600080fd5b803590602001918460208302840111600160201b831117156105a057600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506115d2945050505050565b3480156105ea57600080fd5b506105f3611846565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561062f578181015183820152602001610617565b505050509050019250505060405180910390f35b34801561064f57600080fd5b5061045e6004803603604081101561066657600080fd5b506001600160a01b0381351690602001356118a9565b34801561068857600080fd5b5061049c611acb565b34801561069d57600080fd5b5061045e611af1565b3480156106b257600080fd5b5061049c611b01565b3480156106c757600080fd5b506106d0611b63565b6040805192835260208301919091528051918290030190f35b3480156106f557600080fd5b5061045e6004803603602081101561070c57600080fd5b50356001600160a01b0316611c4d565b34801561072857600080fd5b5061045e6004803603602081101561073f57600080fd5b50356001600160a01b0316611c62565b34801561075b57600080fd5b50610764611daa565b604080516001600160801b03938416815291909216602082015281519081900390910190f35b34801561079657600080fd5b5061049c600480360360208110156107ad57600080fd5b50356001600160a01b0316611dc4565b3480156107c957600080fd5b5061049c611f54565b3480156107de57600080fd5b506107fc600480360360208110156107f557600080fd5b5035611f5a565b604080516001600160a01b039092168252519081900360200190f35b34801561082457600080fd5b5061045e6004803603602081101561083b57600080fd5b50356001600160a01b0316611f81565b34801561085757600080fd5b5061045e6004803603602081101561086e57600080fd5b50356001600160a01b0316611f96565b34801561088a57600080fd5b5061049c600480360360208110156108a157600080fd5b50356001600160a01b0316611fb4565b3480156108bd57600080fd5b506108c6611fc6565b604080519485526020850193909352838301919091526060830152519081900360800190f35b3480156108f857600080fd5b5061049c611fd3565b34801561090d57600080fd5b5061049c612297565b34801561092257600080fd5b506107fc6004803603602081101561093957600080fd5b5035612301565b34801561094c57600080fd5b5061045e6004803603604081101561096357600080fd5b506001600160a01b03813516906020013561230e565b34801561098557600080fd5b5061045e6004803603606081101561099c57600080fd5b506001600160a01b0381358116916020810135909116906040013561252f565b3480156109c857600080fd5b5061045e600480360360408110156109df57600080fd5b506001600160a01b0381351690602001356125a6565b348015610a0157600080fd5b5061049c6127a5565b348015610a1657600080fd5b506103ef6127ab565b348015610a2b57600080fd5b506103ef6004803603610160811015610a4357600080fd5b6001600160a01b03823516916020810135916040820135916060810135916080820135919081019060c0810160a0820135600160201b811115610a8557600080fd5b820183602082011115610a9757600080fd5b803590602001918460208302840111600160201b83111715610ab857600080fd5b919390929091602081019035600160201b811115610ad557600080fd5b820183602082011115610ae757600080fd5b803590602001918460208302840111600160201b83111715610b0857600080fd5b919390928235926020810135929190606081019060400135600160201b811115610b3157600080fd5b820183602082011115610b4357600080fd5b803590602001918460208302840111600160201b83111715610b6457600080fd5b919390929091602081019035600160201b811115610b8157600080fd5b820183602082011115610b9357600080fd5b803590602001918460208302840111600160201b83111715610bb457600080fd5b50909250905061283c565b348015610bcb57600080fd5b5061049c612a12565b348015610be057600080fd5b5061049c612a18565b348015610bf557600080fd5b506107fc612a34565b348015610c0a57600080fd5b5061045e60048036036020811015610c2157600080fd5b50356001600160a01b0316612a43565b348015610c3d57600080fd5b506105f3612a58565b348015610c5257600080fd5b5061049c612aaf565b348015610c6757600080fd5b506103ef60048036036020811015610c7e57600080fd5b50356001600160a01b0316612ab5565b348015610c9a57600080fd5b506107fc612bb2565b348015610caf57600080fd5b5061045e612bc1565b348015610cc457600080fd5b5061049c60048036036020811015610cdb57600080fd5b50356001600160a01b0316612be5565b348015610cf757600080fd5b5061045e60048036036040811015610d0e57600080fd5b506001600160a01b038135169060200135612bf7565b348015610d3057600080fd5b5061049c612d1c565b348015610d4557600080fd5b5061045e60048036036020811015610d5c57600080fd5b50356001600160a01b0316612d22565b348015610d7857600080fd5b5061045e60048036036020811015610d8f57600080fd5b50356001600160a01b0316612ead565b348015610dab57600080fd5b506105f3612ec2565b348015610dc057600080fd5b506103ef60048036036020811015610dd757600080fd5b5035612f22565b348015610dea57600080fd5b5061049c612fea565b348015610dff57600080fd5b5061049c60048036036020811015610e1657600080fd5b50356001600160a01b0316612ff0565b348015610e3257600080fd5b506103ef60048036036020811015610e4957600080fd5b50356001600160a01b031661301f565b348015610e6557600080fd5b506105f361310b565b348015610e7a57600080fd5b506103ef60048036036020811015610e9157600080fd5b503561316b565b348015610ea457600080fd5b506103ef60048036036040811015610ebb57600080fd5b506001600160a01b0381351690602001356131ed565b348015610edd57600080fd5b5061049c613413565b348015610ef257600080fd5b506103ef60048036036040811015610f0957600080fd5b810190602081018135600160201b811115610f2357600080fd5b820183602082011115610f3557600080fd5b803590602001918460208302840111600160201b83111715610f5657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610fa557600080fd5b820183602082011115610fb757600080fd5b803590602001918460208302840111600160201b83111715610fd857600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061342d945050505050565b34801561102257600080fd5b5061045e6004803603602081101561103957600080fd5b50356001600160a01b03166137fd565b34801561105557600080fd5b5061045e6004803603602081101561106c57600080fd5b50356001600160a01b0316613812565b34801561108857600080fd5b5061045e6004803603604081101561109f57600080fd5b506001600160a01b03813516906020013561395a565b3480156110c157600080fd5b5061049c613ac3565b3480156110d657600080fd5b5061049c613aef565b3480156110eb57600080fd5b506105f3613af5565b34801561110057600080fd5b506103ef6004803603602081101561111757600080fd5b5035613b91565b34801561112a57600080fd5b506103ef6004803603602081101561114157600080fd5b50356001600160a01b0316613c62565b34801561115d57600080fd5b506103ef6004803603604081101561117457600080fd5b5080359060200135613d48565b34801561118d57600080fd5b5061049c600480360360208110156111a457600080fd5b5035613df8565b3480156111b757600080fd5b506103ef600480360360208110156111ce57600080fd5b50356001600160a01b0316613e0a565b3480156111ea57600080fd5b5061045e6004803603602081101561120157600080fd5b50356001600160a01b0316613f88565b34801561121d57600080fd5b506103ef6004803603602081101561123457600080fd5b50356001600160a01b0316613fa6565b34801561125057600080fd5b506107fc6004803603602081101561126757600080fd5b5035613ff9565b34801561127a57600080fd5b5061049c614006565b61128b612bc1565b6112ca576040805162461bcd60e51b8152602060048201819052602482015260008051602061505f833981519152604482015290519081900360640190fd5b6112d38161400c565b516010556112fe6112e2614026565b604080516020810190915260105481529063ffffffff61404a16565b6113395760405162461bcd60e51b81526004018080602001828103825260268152602001806150b76026913960400191505060405180910390fd5b6040805182815290517fb08f0607338ad77f5b08ccf831e533cefcc2d373c173e87a8f61144f1d82be1e9181900360200190a150565b3360009081526009602052604081205460ff166113bd5760405162461bcd60e51b815260040180806020018281038252602c8152602001806151cf602c913960400191505060405180910390fd5b6001600160a01b0383166000908152600a602052604090205460ff166114145760405162461bcd60e51b815260040180806020018281038252602a8152602001806151a5602a913960400191505060405180910390fd5b600061141f85612ff0565b1161145b5760405162461bcd60e51b81526004018080602001828103825260408152602001806151116040913960400191505060405180910390fd5b6001600160a01b0384166000908152601760205260409020546201518042049081111561150d57600061148d86611dc4565b6001600160a01b038716600090815260176020526040902083905590506114f26114ed6114b983614052565b6001600160a01b0389166000908152601660209081526040918290208251918201909252905481529063ffffffff6140c016565b614416565b6001600160a01b0387166000908152601a6020526040902055505b6001600160a01b0385166000908152601a602052604090205483811015611576576040805162461bcd60e51b8152602060048201526018602482015277115e18d959591a5b99c81cdc195b991a5b99c81b1a5b5a5d60421b604482015290519081900360640190fd5b611586818563ffffffff61442716565b6001600160a01b0387166000908152601a60205260409020556115aa868686614469565b9695505050505050565b600c81815481106115c157fe5b600091825260209091200154905081565b6115da612bc1565b611619576040805162461bcd60e51b8152602060048201819052602482015260008051602061505f833981519152604482015290519081900360640190fd5b80518251146116595760405162461bcd60e51b815260040180806020018281038252603e815260200180614ec6603e913960400191505060405180910390fd5b60005b82518110156118415760006001600160a01b031683828151811061167c57fe5b60200260200101516001600160a01b0316141580156116af57508181815181106116a257fe5b6020026020010151600014155b15611839576116d08382815181106116c357fe5b6020026020010151613f88565b61170b5760405162461bcd60e51b8152600401808060200182810382526037815260200180614f046037913960400191505060405180910390fd5b61173e611716614026565b61173284848151811061172557fe5b602002602001015161400c565b9063ffffffff61404a16565b6117795760405162461bcd60e51b81526004018080602001828103825260268152602001806150b76026913960400191505060405180910390fd5b61178882828151811061172557fe5b6016600085848151811061179857fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600082015181600001559050507f15ff5079dfbf448e4bb45ac83498c2ecb0833ad35916946bb683ccb49f8013a38382815181106117fa57fe5b602002602001015183838151811061180e57fe5b602090810291909101810151604080516001600160a01b039094168452918301528051918290030190a15b60010161165c565b505050565b6060601580548060200260200160405190810160405280929190818152602001828054801561189e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611880575b505050505090505b90565b60006118b3612bc1565b6118f2576040805162461bcd60e51b8152602060048201819052602482015260008051602061505f833981519152604482015290519081900360640190fd5b6001600160a01b038316600090815260036020526040902054839060ff16611961576040805162461bcd60e51b815260206004820152601f60248201527f746f6b656e206164647220776173206e65766572207265676973746572656400604482015290519081900360640190fd5b6004548310801561199b5750836001600160a01b03166004848154811061198457fe5b6000918252602090912001546001600160a01b0316145b6119d6576040516