837 lines
45 KiB
JSON
837 lines
45 KiB
JSON
{
|
|
"_format": "hh-sol-artifact-1",
|
|
"contractName": "BridgeOrchestrator",
|
|
"sourceName": "contracts/bridge/BridgeOrchestrator.sol",
|
|
"abi": [
|
|
{
|
|
"inputs": [],
|
|
"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": "target",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "AddressEmptyCode",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "implementation",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "ERC1967InvalidImplementation",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "ERC1967NonPayable",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "FailedInnerCall",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "InvalidInitialization",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "NotInitializing",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "UUPSUnauthorizedCallContext",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "slot",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "UUPSUnsupportedProxiableUUID",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "assetTypeHash",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "enum UniversalAssetRegistry.AssetType",
|
|
"name": "assetType",
|
|
"type": "uint8"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "address",
|
|
"name": "bridgeContract",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "AssetTypeBridgeRegistered",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "token",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "enum UniversalAssetRegistry.AssetType",
|
|
"name": "assetType",
|
|
"type": "uint8"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "bridgeContract",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "messageId",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "BridgeRouted",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "assetTypeHash",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "address",
|
|
"name": "bridgeContract",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "BridgeUnregistered",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint64",
|
|
"name": "version",
|
|
"type": "uint64"
|
|
}
|
|
],
|
|
"name": "Initialized",
|
|
"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": "implementation",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "Upgraded",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "DEFAULT_ADMIN_ROLE",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "ROUTER_ADMIN_ROLE",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "UPGRADER_ROLE",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "UPGRADE_INTERFACE_VERSION",
|
|
"outputs": [
|
|
{
|
|
"internalType": "string",
|
|
"name": "",
|
|
"type": "string"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "assetRegistry",
|
|
"outputs": [
|
|
{
|
|
"internalType": "contract UniversalAssetRegistry",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "enum UniversalAssetRegistry.AssetType",
|
|
"name": "",
|
|
"type": "uint8"
|
|
}
|
|
],
|
|
"name": "assetTypeStats",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "totalBridges",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "successfulBridges",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "failedBridges",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "lastBridgeTime",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "assetTypeToBridge",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"components": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "token",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amount",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "destinationChain",
|
|
"type": "uint64"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "recipient",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "assetType",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bool",
|
|
"name": "usePMM",
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"internalType": "bool",
|
|
"name": "useVault",
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "complianceProof",
|
|
"type": "bytes"
|
|
},
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "vaultInstructions",
|
|
"type": "bytes"
|
|
}
|
|
],
|
|
"internalType": "struct UniversalCCIPBridge.BridgeOperation",
|
|
"name": "op",
|
|
"type": "tuple"
|
|
}
|
|
],
|
|
"name": "bridge",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "messageId",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "payable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "bridgeStats",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "totalBridges",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "successfulBridges",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "failedBridges",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "lastBridgeTime",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "defaultBridge",
|
|
"outputs": [
|
|
{
|
|
"internalType": "contract UniversalCCIPBridge",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "enum UniversalAssetRegistry.AssetType",
|
|
"name": "assetType",
|
|
"type": "uint8"
|
|
}
|
|
],
|
|
"name": "getAssetTypeStats",
|
|
"outputs": [
|
|
{
|
|
"components": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "totalBridges",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "successfulBridges",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "failedBridges",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "lastBridgeTime",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"internalType": "struct BridgeOrchestrator.RoutingStats",
|
|
"name": "",
|
|
"type": "tuple"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "enum UniversalAssetRegistry.AssetType",
|
|
"name": "assetType",
|
|
"type": "uint8"
|
|
}
|
|
],
|
|
"name": "getBridgeForAssetType",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "bridgeContract",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "getBridgeStats",
|
|
"outputs": [
|
|
{
|
|
"components": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "totalBridges",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "successfulBridges",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "failedBridges",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "lastBridgeTime",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"internalType": "struct BridgeOrchestrator.RoutingStats",
|
|
"name": "",
|
|
"type": "tuple"
|
|
}
|
|
],
|
|
"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": "_assetRegistry",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "_defaultBridge",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "admin",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "initialize",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "isRegisteredBridge",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "proxiableUUID",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "enum UniversalAssetRegistry.AssetType",
|
|
"name": "assetType",
|
|
"type": "uint8"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "bridgeContract",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "registerAssetTypeBridge",
|
|
"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": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "_defaultBridge",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "setDefaultBridge",
|
|
"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": [
|
|
{
|
|
"internalType": "enum UniversalAssetRegistry.AssetType",
|
|
"name": "assetType",
|
|
"type": "uint8"
|
|
}
|
|
],
|
|
"name": "unregisterBridge",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "newImplementation",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "data",
|
|
"type": "bytes"
|
|
}
|
|
],
|
|
"name": "upgradeToAndCall",
|
|
"outputs": [],
|
|
"stateMutability": "payable",
|
|
"type": "function"
|
|
}
|
|
],
|
|
"bytecode": "0x60a080604052346100cc57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c166100bd57506001600160401b036002600160401b031982821601610078575b604051611ad490816100d2823960805181818161093f0152610a1f0152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1388080610059565b63f92ee8a960e01b8152600490fd5b600080fdfe608060408181526004918236101561001657600080fd5b600092833560e01c91826301ffc9a714611329575081630fe3472c14610d8257816310caa03714610d28578163248a9ca314610cf05781632f2ff15d14610cc657816336568abe14610c80578163429c860514610c3d5781634f1ef286146109a357816352d1902d1461092a57816373d511f91461088257816391d148541461082e57816392aa0365146107c75781639572c6b11461072d578163979d7e8614610705578163a217fddf146106ea578163a3c16c2f14610673578163a5ec54731461064a578163a6cecccc146105f9578163a6d50f2d146105c6578163ad3cb1cc14610540578163bced44ad14610451578163c0c53b8b14610249578163d03f078b1461020e578163d547741f146101bd57508063ed6f8c7c146101805763f72c0d8b1461014357600080fd5b3461017c578160031936011261017c57602090517f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e38152f35b5080fd5b503461017c57602036600319011261017c5760209160ff9082906001600160a01b036101aa6113c6565b1681526003855220541690519015158152f35b9190503461020a578060031936011261020a57610206913561020160016101e26113ab565b93838752600080516020611a7f833981519152602052862001546116a7565b611937565b5080f35b8280fd5b50503461017c578160031936011261017c57602090517f56623da34b1ec5cb86498f15a28504a6323a0eedfb150423fe6f418d952826ee8152f35b90503461020a57606036600319011261020a576102646113c6565b61026c6113ab565b6001600160a01b039260443591848316830361044d577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009485549460ff86891c16159567ffffffffffffffff811680159081610445575b600114908161043b575b159081610432575b506104225767ffffffffffffffff198116600117885582919087610403575b506102fd6119ba565b6103056119ba565b169182156103d0571691821561039f57509061035592916bffffffffffffffffffffffff60a01b90818954161788556001541617600155610345816116da565b5061034f81611768565b50611818565b5061035e578280f35b805468ff00000000000000001916905551600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a138808280f35b606490602088519162461bcd60e51b8352820152600b60248201526a5a65726f2062726964676560a81b6044820152fd5b875162461bcd60e51b8152602081860152600d60248201526c5a65726f20726567697374727960981b6044820152606490fd5b68ffffffffffffffffff191668010000000000000001178855386102f4565b885163f92ee8a960e01b81528590fd5b905015386102d5565b303b1591506102cd565b8891506102c3565b8680fd5b9190503461020a578060031936011261020a57813591600a83101561053c576104786113ab565b9061048161162d565b6001600160a01b038216916104978315156115cd565b3b1561050857508284526002602090815282852080546001600160a01b0319168317905581855260039052818420805460ff1916600117905581517f14e5b0da5bf65a19f2df85aae73e2cf856cb70f7e90eaa7dfe75f1e5906838bd92916104ff828661159b565b6020820152a280f35b606490602084519162461bcd60e51b8352820152600e60248201526d139bdd08184818dbdb9d1c9858dd60921b6044820152fd5b8380fd5b8284346105c357806003193601126105c3578151908282019082821067ffffffffffffffff8311176105b057506105a2935082526005815260208101640352e302e360dc1b815282519384926020845251809281602086015285850190611460565b601f01601f19168101030190f35b634e487b7160e01b815260418552602490fd5b80fd5b90503461020a57602036600319011261020a5735825260026020908152918190205490516001600160a01b039091168152f35b90503461020a57602036600319011261020a5735600a81101561020a5782526002602090815291819020546001600160a01b03908116801561063e57915b5191168152f35b50806001541691610637565b50503461017c578160031936011261017c5760015490516001600160a01b039091168152602090f35b90503461020a57602036600319011261020a573590600a82101561020a5760207f0e3300ef1cc7986bc498138670babe9ada6b983c9486fc3707e128e4c27602f3916106bd61162d565b8385526002825280852080546001600160a01b0319811690915590516001600160a01b039091168152a280f35b50503461017c578160031936011261017c5751908152602090f35b50503461017c578160031936011261017c57905490516001600160a01b039091168152602090f35b90503461020a57602036600319011261020a576107c392829161074e6113c6565b6107566115a8565b506001600160a01b031682526020522081519190600390610776846113f0565b805484526001810154602085015260028101548385015201546060830152519182918291909160608060808301948051845260208101516020850152604081015160408501520151910152565b0390f35b90503461020a57602036600319011261020a57909182916001600160a01b036107ee6113c6565b16825260205220906107c3825491600184015493600360028201549101549151948594859094939260609260808301968352602083015260408201520152565b90503461020a578160031936011261020a578160209360ff9261084f6113ab565b90358252600080516020611a7f83398151915286528282206001600160a01b039091168252855220549151911615158152f35b90503461020a57602036600319011261020a5761089d6113c6565b90838052600080516020611a7f83398151915260205282842033855260205260ff83852054161561090d57506001600160a01b03166108dd8115156115cd565b806bffffffffffffffffffffffff60a01b6001541617600155825260036020528120600160ff1982541617905580f35b6044908484519163e2517d3f60e01b835233908301526024820152fd5b8284346105c357806003193601126105c357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316300361099657602090517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b5163703e46dd60e11b8152fd5b9180915060031936011261020a576109b96113c6565b90602493843567ffffffffffffffff811161017c573660238201121561017c5780850135936109e785611444565b6109f385519182611422565b85815260209586820193368a8383010111610bd7578186928b8a93018737830101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114908115610c0f575b50610bff577f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3808652600080516020611a7f8339815191528852868620338752885260ff878720541615610be2575085516352d1902d60e01b81529083169680828a818b5afa9182918793610bae575b5050610ad75750505050505191634c9c8ce360e01b8352820152fd5b86899689927f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90818103610b995750853b15610b845780546001600160a01b0319168317905551869392917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a2825115610b685750506102069382915190845af4610b6261156b565b916119fb565b93509350505034610b7857505080f35b63b398979f60e01b8152fd5b5051634c9c8ce360e01b815291820152859150fd5b848a91845191632a87526960e21b8352820152fd5b9080929350813d8311610bdb575b610bc68183611422565b81010312610bd75751903880610abb565b8580fd5b503d610bbc565b865163e2517d3f60e01b815233818b0152808b0191909152604490fd5b855163703e46dd60e11b81528890fd5b9050817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141538610a4b565b90503461020a57602036600319011261020a573591600a8310156105c35750610c716107c392610c6b6115a8565b5061137c565b906003815192610776846113f0565b83833461017c578060031936011261017c57610c9a6113ab565b90336001600160a01b03831603610cb75750610206919235611937565b5163334bd91960e11b81528390fd5b9190503461020a578060031936011261020a576102069135610ceb60016101e26113ab565b6118c2565b90503461020a57602036600319011261020a5781602093600192358152600080516020611a7f83398151915285522001549051908152f35b8391503461017c57602036600319011261017c573590600a8210156105c35750610d519061137c565b8054600182015460028301546003909301549351918252602082015260408101919091526060810191909152608090f35b91905060209260031992848436011261017c5767ffffffffffffffff91813583811161017c57808301956101208091833603011261020a5782546001600160a01b0393908416918482610dd48b611483565b8a5163185c596360e11b81529216888301526024948290869082905afa90811561131f5783916110f4575b50610220810151156110bf578a01938451600a8110156110ac57835260028b528589842054169182156110a0575b8683169889855260038d5260ff8b862054161561106557918b918d9389610e678e5195878701976303f8d1cb60e21b89528b8801526113dc565b166044850152878301356064850152604483013590811680910361044d5783610f248f94610f118a999795968a99978f610f32976084880152610eac606486016113dc565b1660a4870152608484013560c4870152610ec860a4850161150b565b151560e4870152610f09610ede60c4860161150b565b9161010492151583890152610ef660e4870185611518565b90916101248a015261016489019161154a565b930190611518565b848303604319016101448601529061154a565b03601f198101835282611422565b519134905af1610f4061156b565b901561102e57898180518101031261017c57890151978351600a81101561101c5790610fc291888452878c52610f788a85209161137c565b90610f838154611608565b8155610f8f8254611608565b825560018101610f9f8154611608565b905560018201610faf8154611608565b9055600342910155600342910155611483565b925194600a86101561100c5750505086869493927eeba5e13ae6d6b0ec896bf6de3a0fafdf22aad5e3a91b635c4e4639d9de0bf6926110038851809661159b565b1692a451908152f35b634e487b7160e01b825260219052fd5b5050634e487b7160e01b815260218552fd5b875162461bcd60e51b81528087018b905260128185015271109c9a5919d94818d85b1b0819985a5b195960721b6044820152606490fd5b50895162461bcd60e51b81528089018d905260158187015274109c9a5919d9481b9bdd081c9959da5cdd195c9959605a1b6044820152606490fd5b60015487169250610e2d565b5050634e487b7160e01b82525060218552fd5b885162461bcd60e51b81528088018c90526010818601526f4173736574206e6f742061637469766560801b6044820152606490fd5b90503d8084833e6111058183611422565b8101908b8183031261053c5780519089821161131b570161028091828282031261131b578a519283018381108b821117611309578b5261114482611497565b83528c820151600a811015610bd7578d8401528a8201516005811015610bd7578b84015260608201518a8111610bd757816111809184016114ab565b606084015260808201518a8111610bd7578161119d9184016114ab565b60808401526111ae60a083016114f0565b60a084015260c08201518a8111610bd757816111cb9184016114ab565b60c08401526111dc60e083016114f0565b60e084015261010080830151908401528382015184840152610140808301519084015261016061120d818401611497565b9084015261018061121f8184016114fe565b908401526101a080830151908401526101c061123c8184016114fe565b908401526101e08201518a8111610bd75782019080601f83011215610bd7578151918b83116112f7578c908f8460051b92519461127b82850187611422565b8552808501928201019283116112f357908f809201905b8382106112dc57505050506101e083015261020080820151908301526102206112bc8183016114fe565b908301526102408082015190830152610260809101519082015238610dff565b8280916112e884611497565b815201910190611292565b8780fd5b634e487b7160e01b875260418b528787fd5b634e487b7160e01b865260418a528686fd5b8480fd5b89513d85823e3d90fd5b84913461020a57602036600319011261020a573563ffffffff60e01b811680910361020a5760209250637965db0b60e01b811490811561136b575b5015158152f35b6301ffc9a760e01b14905083611364565b600a811015611395576000526005602052604060002090565b634e487b7160e01b600052602160045260246000fd5b602435906001600160a01b03821682036113c157565b600080fd5b600435906001600160a01b03821682036113c157565b35906001600160a01b03821682036113c157565b6080810190811067ffffffffffffffff82111761140c57604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761140c57604052565b67ffffffffffffffff811161140c57601f01601f191660200190565b60005b8381106114735750506000910152565b8181015183820152602001611463565b356001600160a01b03811681036113c15790565b51906001600160a01b03821682036113c157565b81601f820112156113c15780516114c181611444565b926114cf6040519485611422565b818452602082840101116113c1576114ed9160208085019101611460565b90565b519060ff821682036113c157565b519081151582036113c157565b359081151582036113c157565b9035601e19823603018112156113c157016020813591019167ffffffffffffffff82116113c15781360383136113c157565b908060209392818452848401376000828201840152601f01601f1916010190565b3d15611596573d9061157c82611444565b9161158a6040519384611422565b82523d6000602084013e565b606090565b90600a8210156113955752565b604051906115b5826113f0565b60006060838281528260208201528260408201520152565b156115d457565b60405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b6044820152606490fd5b60001981146116175760010190565b634e487b7160e01b600052601160045260246000fd5b3360009081527f399ad3e799179a57d3df2d110f3fa38d4922903ea50f5ec15a7f2d256a52b62760205260409020547f56623da34b1ec5cb86498f15a28504a6323a0eedfb150423fe6f418d952826ee9060ff16156116895750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b80600052600080516020611a7f83398151915260205260406000203360005260205260ff60406000205416156116895750565b6001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d6020526040812054909190600080516020611a7f8339815191529060ff16611763578280526020526040822081835260205260408220600160ff198254161790553391600080516020611a5f8339815191528180a4600190565b505090565b6001600160a01b031660008181527f399ad3e799179a57d3df2d110f3fa38d4922903ea50f5ec15a7f2d256a52b62760205260408120549091907f56623da34b1ec5cb86498f15a28504a6323a0eedfb150423fe6f418d952826ee90600080516020611a7f8339815191529060ff16611812578184526020526040832082845260205260408320600160ff19825416179055600080516020611a5f833981519152339380a4600190565b50505090565b6001600160a01b031660008181527fab71e3f32666744d246edff3f96e4bdafee2e9867098cdd118a979a7464786a860205260408120549091907f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e390600080516020611a7f8339815191529060ff16611812578184526020526040832082845260205260408320600160ff19825416179055600080516020611a5f833981519152339380a4600190565b90600091808352600080516020611a7f83398151915280602052604084209260018060a01b03169283855260205260ff60408520541615600014611812578184526020526040832082845260205260408320600160ff19825416179055600080516020611a5f833981519152339380a4600190565b90600091808352600080516020611a7f83398151915280602052604084209260018060a01b03169283855260205260ff60408520541660001461181257818452602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156119e957565b604051631afcd79f60e31b8152600490fd5b90611a225750805115611a1057805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580611a55575b611a33575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b15611a2b56fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a2646970667358221220c6cd7731d4ea926dacfcbe44bee6d910f10fab5ec1fc5ce176957e0bb462e61f64736f6c63430008160033",
|
|
"deployedBytecode": "0x608060408181526004918236101561001657600080fd5b600092833560e01c91826301ffc9a714611329575081630fe3472c14610d8257816310caa03714610d28578163248a9ca314610cf05781632f2ff15d14610cc657816336568abe14610c80578163429c860514610c3d5781634f1ef286146109a357816352d1902d1461092a57816373d511f91461088257816391d148541461082e57816392aa0365146107c75781639572c6b11461072d578163979d7e8614610705578163a217fddf146106ea578163a3c16c2f14610673578163a5ec54731461064a578163a6cecccc146105f9578163a6d50f2d146105c6578163ad3cb1cc14610540578163bced44ad14610451578163c0c53b8b14610249578163d03f078b1461020e578163d547741f146101bd57508063ed6f8c7c146101805763f72c0d8b1461014357600080fd5b3461017c578160031936011261017c57602090517f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e38152f35b5080fd5b503461017c57602036600319011261017c5760209160ff9082906001600160a01b036101aa6113c6565b1681526003855220541690519015158152f35b9190503461020a578060031936011261020a57610206913561020160016101e26113ab565b93838752600080516020611a7f833981519152602052862001546116a7565b611937565b5080f35b8280fd5b50503461017c578160031936011261017c57602090517f56623da34b1ec5cb86498f15a28504a6323a0eedfb150423fe6f418d952826ee8152f35b90503461020a57606036600319011261020a576102646113c6565b61026c6113ab565b6001600160a01b039260443591848316830361044d577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009485549460ff86891c16159567ffffffffffffffff811680159081610445575b600114908161043b575b159081610432575b506104225767ffffffffffffffff198116600117885582919087610403575b506102fd6119ba565b6103056119ba565b169182156103d0571691821561039f57509061035592916bffffffffffffffffffffffff60a01b90818954161788556001541617600155610345816116da565b5061034f81611768565b50611818565b5061035e578280f35b805468ff00000000000000001916905551600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a138808280f35b606490602088519162461bcd60e51b8352820152600b60248201526a5a65726f2062726964676560a81b6044820152fd5b875162461bcd60e51b8152602081860152600d60248201526c5a65726f20726567697374727960981b6044820152606490fd5b68ffffffffffffffffff191668010000000000000001178855386102f4565b885163f92ee8a960e01b81528590fd5b905015386102d5565b303b1591506102cd565b8891506102c3565b8680fd5b9190503461020a578060031936011261020a57813591600a83101561053c576104786113ab565b9061048161162d565b6001600160a01b038216916104978315156115cd565b3b1561050857508284526002602090815282852080546001600160a01b0319168317905581855260039052818420805460ff1916600117905581517f14e5b0da5bf65a19f2df85aae73e2cf856cb70f7e90eaa7dfe75f1e5906838bd92916104ff828661159b565b6020820152a280f35b606490602084519162461bcd60e51b8352820152600e60248201526d139bdd08184818dbdb9d1c9858dd60921b6044820152fd5b8380fd5b8284346105c357806003193601126105c3578151908282019082821067ffffffffffffffff8311176105b057506105a2935082526005815260208101640352e302e360dc1b815282519384926020845251809281602086015285850190611460565b601f01601f19168101030190f35b634e487b7160e01b815260418552602490fd5b80fd5b90503461020a57602036600319011261020a5735825260026020908152918190205490516001600160a01b039091168152f35b90503461020a57602036600319011261020a5735600a81101561020a5782526002602090815291819020546001600160a01b03908116801561063e57915b5191168152f35b50806001541691610637565b50503461017c578160031936011261017c5760015490516001600160a01b039091168152602090f35b90503461020a57602036600319011261020a573590600a82101561020a5760207f0e3300ef1cc7986bc498138670babe9ada6b983c9486fc3707e128e4c27602f3916106bd61162d565b8385526002825280852080546001600160a01b0319811690915590516001600160a01b039091168152a280f35b50503461017c578160031936011261017c5751908152602090f35b50503461017c578160031936011261017c57905490516001600160a01b039091168152602090f35b90503461020a57602036600319011261020a576107c392829161074e6113c6565b6107566115a8565b506001600160a01b031682526020522081519190600390610776846113f0565b805484526001810154602085015260028101548385015201546060830152519182918291909160608060808301948051845260208101516020850152604081015160408501520151910152565b0390f35b90503461020a57602036600319011261020a57909182916001600160a01b036107ee6113c6565b16825260205220906107c3825491600184015493600360028201549101549151948594859094939260609260808301968352602083015260408201520152565b90503461020a578160031936011261020a578160209360ff9261084f6113ab565b90358252600080516020611a7f83398151915286528282206001600160a01b039091168252855220549151911615158152f35b90503461020a57602036600319011261020a5761089d6113c6565b90838052600080516020611a7f83398151915260205282842033855260205260ff83852054161561090d57506001600160a01b03166108dd8115156115cd565b806bffffffffffffffffffffffff60a01b6001541617600155825260036020528120600160ff1982541617905580f35b6044908484519163e2517d3f60e01b835233908301526024820152fd5b8284346105c357806003193601126105c357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316300361099657602090517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b5163703e46dd60e11b8152fd5b9180915060031936011261020a576109b96113c6565b90602493843567ffffffffffffffff811161017c573660238201121561017c5780850135936109e785611444565b6109f385519182611422565b85815260209586820193368a8383010111610bd7578186928b8a93018737830101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114908115610c0f575b50610bff577f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3808652600080516020611a7f8339815191528852868620338752885260ff878720541615610be2575085516352d1902d60e01b81529083169680828a818b5afa9182918793610bae575b5050610ad75750505050505191634c9c8ce360e01b8352820152fd5b86899689927f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90818103610b995750853b15610b845780546001600160a01b0319168317905551869392917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a2825115610b685750506102069382915190845af4610b6261156b565b916119fb565b93509350505034610b7857505080f35b63b398979f60e01b8152fd5b5051634c9c8ce360e01b815291820152859150fd5b848a91845191632a87526960e21b8352820152fd5b9080929350813d8311610bdb575b610bc68183611422565b81010312610bd75751903880610abb565b8580fd5b503d610bbc565b865163e2517d3f60e01b815233818b0152808b0191909152604490fd5b855163703e46dd60e11b81528890fd5b9050817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141538610a4b565b90503461020a57602036600319011261020a573591600a8310156105c35750610c716107c392610c6b6115a8565b5061137c565b906003815192610776846113f0565b83833461017c578060031936011261017c57610c9a6113ab565b90336001600160a01b03831603610cb75750610206919235611937565b5163334bd91960e11b81528390fd5b9190503461020a578060031936011261020a576102069135610ceb60016101e26113ab565b6118c2565b90503461020a57602036600319011261020a5781602093600192358152600080516020611a7f83398151915285522001549051908152f35b8391503461017c57602036600319011261017c573590600a8210156105c35750610d519061137c565b8054600182015460028301546003909301549351918252602082015260408101919091526060810191909152608090f35b91905060209260031992848436011261017c5767ffffffffffffffff91813583811161017c57808301956101208091833603011261020a5782546001600160a01b0393908416918482610dd48b611483565b8a5163185c596360e11b81529216888301526024948290869082905afa90811561131f5783916110f4575b50610220810151156110bf578a01938451600a8110156110ac57835260028b528589842054169182156110a0575b8683169889855260038d5260ff8b862054161561106557918b918d9389610e678e5195878701976303f8d1cb60e21b89528b8801526113dc565b166044850152878301356064850152604483013590811680910361044d5783610f248f94610f118a999795968a99978f610f32976084880152610eac606486016113dc565b1660a4870152608484013560c4870152610ec860a4850161150b565b151560e4870152610f09610ede60c4860161150b565b9161010492151583890152610ef660e4870185611518565b90916101248a015261016489019161154a565b930190611518565b848303604319016101448601529061154a565b03601f198101835282611422565b519134905af1610f4061156b565b901561102e57898180518101031261017c57890151978351600a81101561101c5790610fc291888452878c52610f788a85209161137c565b90610f838154611608565b8155610f8f8254611608565b825560018101610f9f8154611608565b905560018201610faf8154611608565b9055600342910155600342910155611483565b925194600a86101561100c5750505086869493927eeba5e13ae6d6b0ec896bf6de3a0fafdf22aad5e3a91b635c4e4639d9de0bf6926110038851809661159b565b1692a451908152f35b634e487b7160e01b825260219052fd5b5050634e487b7160e01b815260218552fd5b875162461bcd60e51b81528087018b905260128185015271109c9a5919d94818d85b1b0819985a5b195960721b6044820152606490fd5b50895162461bcd60e51b81528089018d905260158187015274109c9a5919d9481b9bdd081c9959da5cdd195c9959605a1b6044820152606490fd5b60015487169250610e2d565b5050634e487b7160e01b82525060218552fd5b885162461bcd60e51b81528088018c90526010818601526f4173736574206e6f742061637469766560801b6044820152606490fd5b90503d8084833e6111058183611422565b8101908b8183031261053c5780519089821161131b570161028091828282031261131b578a519283018381108b821117611309578b5261114482611497565b83528c820151600a811015610bd7578d8401528a8201516005811015610bd7578b84015260608201518a8111610bd757816111809184016114ab565b606084015260808201518a8111610bd7578161119d9184016114ab565b60808401526111ae60a083016114f0565b60a084015260c08201518a8111610bd757816111cb9184016114ab565b60c08401526111dc60e083016114f0565b60e084015261010080830151908401528382015184840152610140808301519084015261016061120d818401611497565b9084015261018061121f8184016114fe565b908401526101a080830151908401526101c061123c8184016114fe565b908401526101e08201518a8111610bd75782019080601f83011215610bd7578151918b83116112f7578c908f8460051b92519461127b82850187611422565b8552808501928201019283116112f357908f809201905b8382106112dc57505050506101e083015261020080820151908301526102206112bc8183016114fe565b908301526102408082015190830152610260809101519082015238610dff565b8280916112e884611497565b815201910190611292565b8780fd5b634e487b7160e01b875260418b528787fd5b634e487b7160e01b865260418a528686fd5b8480fd5b89513d85823e3d90fd5b84913461020a57602036600319011261020a573563ffffffff60e01b811680910361020a5760209250637965db0b60e01b811490811561136b575b5015158152f35b6301ffc9a760e01b14905083611364565b600a811015611395576000526005602052604060002090565b634e487b7160e01b600052602160045260246000fd5b602435906001600160a01b03821682036113c157565b600080fd5b600435906001600160a01b03821682036113c157565b35906001600160a01b03821682036113c157565b6080810190811067ffffffffffffffff82111761140c57604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761140c57604052565b67ffffffffffffffff811161140c57601f01601f191660200190565b60005b8381106114735750506000910152565b8181015183820152602001611463565b356001600160a01b03811681036113c15790565b51906001600160a01b03821682036113c157565b81601f820112156113c15780516114c181611444565b926114cf6040519485611422565b818452602082840101116113c1576114ed9160208085019101611460565b90565b519060ff821682036113c157565b519081151582036113c157565b359081151582036113c157565b9035601e19823603018112156113c157016020813591019167ffffffffffffffff82116113c15781360383136113c157565b908060209392818452848401376000828201840152601f01601f1916010190565b3d15611596573d9061157c82611444565b9161158a6040519384611422565b82523d6000602084013e565b606090565b90600a8210156113955752565b604051906115b5826113f0565b60006060838281528260208201528260408201520152565b156115d457565b60405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b6044820152606490fd5b60001981146116175760010190565b634e487b7160e01b600052601160045260246000fd5b3360009081527f399ad3e799179a57d3df2d110f3fa38d4922903ea50f5ec15a7f2d256a52b62760205260409020547f56623da34b1ec5cb86498f15a28504a6323a0eedfb150423fe6f418d952826ee9060ff16156116895750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b80600052600080516020611a7f83398151915260205260406000203360005260205260ff60406000205416156116895750565b6001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d6020526040812054909190600080516020611a7f8339815191529060ff16611763578280526020526040822081835260205260408220600160ff198254161790553391600080516020611a5f8339815191528180a4600190565b505090565b6001600160a01b031660008181527f399ad3e799179a57d3df2d110f3fa38d4922903ea50f5ec15a7f2d256a52b62760205260408120549091907f56623da34b1ec5cb86498f15a28504a6323a0eedfb150423fe6f418d952826ee90600080516020611a7f8339815191529060ff16611812578184526020526040832082845260205260408320600160ff19825416179055600080516020611a5f833981519152339380a4600190565b50505090565b6001600160a01b031660008181527fab71e3f32666744d246edff3f96e4bdafee2e9867098cdd118a979a7464786a860205260408120549091907f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e390600080516020611a7f8339815191529060ff16611812578184526020526040832082845260205260408320600160ff19825416179055600080516020611a5f833981519152339380a4600190565b90600091808352600080516020611a7f83398151915280602052604084209260018060a01b03169283855260205260ff60408520541615600014611812578184526020526040832082845260205260408320600160ff19825416179055600080516020611a5f833981519152339380a4600190565b90600091808352600080516020611a7f83398151915280602052604084209260018060a01b03169283855260205260ff60408520541660001461181257818452602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156119e957565b604051631afcd79f60e31b8152600490fd5b90611a225750805115611a1057805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580611a55575b611a33575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b15611a2b56fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a2646970667358221220c6cd7731d4ea926dacfcbe44bee6d910f10fab5ec1fc5ce176957e0bb462e61f64736f6c63430008160033",
|
|
"linkReferences": {},
|
|
"deployedLinkReferences": {}
|
|
}
|