{
  "_format": "hh3-artifact-1",
  "contractName": "WitOracleTrustableExperimental",
  "sourceName": "contracts/core/trustable/WitOracleTrustableExperimental.sol",
  "abi": [
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "reportResultGasBase",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "reportResultWithCallbackGasBase",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "reportResultWithCallbackRevertGasBase",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "sstoreFromZeroGas",
              "type": "uint32"
            }
          ],
          "internalType": "struct WitOracleBaseQueriable.EvmImmutables",
          "name": "_immutables",
          "type": "tuple"
        },
        {
          "internalType": "contract WitOracleRadonRegistry",
          "name": "_registry",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_versionTag",
          "type": "bytes32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "InvalidDataReport",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidInitialization",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NotInitializing",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "OwnableInvalidOwner",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "OwnableUnauthorizedAccount",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ReentrancyGuardReentrantCall",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "queryId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "reason",
          "type": "string"
        }
      ],
      "name": "BatchReportError",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "version",
          "type": "uint64"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferStarted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Received",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address[]",
          "name": "reporters",
          "type": "address[]"
        }
      ],
      "name": "ReportersSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address[]",
          "name": "reporters",
          "type": "address[]"
        }
      ],
      "name": "ReportersUnset",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "baseAddr",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "baseCodehash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "versionTag",
          "type": "string"
        }
      ],
      "name": "Upgraded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "evmRequester",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmGasPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmReward",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "Witnet.QueryId",
          "name": "queryId",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "Witnet.RadonHash",
          "name": "radonHash",
          "type": "bytes32"
        },
        {
          "components": [
            {
              "internalType": "uint16",
              "name": "witResultMaxSize",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "witCommitteeSize",
              "type": "uint16"
            },
            {
              "internalType": "uint64",
              "name": "witUnitaryReward",
              "type": "uint64"
            }
          ],
          "indexed": false,
          "internalType": "struct Witnet.QuerySLA",
          "name": "radonParams",
          "type": "tuple"
        }
      ],
      "name": "WitOracleQuery",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "Witnet.QueryId",
          "name": "queryId",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmGasPrice",
          "type": "uint256"
        }
      ],
      "name": "WitOracleQueryReport",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "Witnet.QueryId",
          "name": "queryId",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "evmConsumer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmGasPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmCallbackGas",
          "type": "uint256"
        }
      ],
      "name": "WitOracleQueryReportDelivery",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "Witnet.QueryId",
          "name": "queryId",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "evmDisputer",
          "type": "address"
        }
      ],
      "name": "WitOracleQueryReportDispute",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "Witnet.QueryId",
          "name": "queryId",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "evmSender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmGasPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmReward",
          "type": "uint256"
        }
      ],
      "name": "WitOracleQueryUpgrade",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "evmOrigin",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "evmConsumer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "evmReporter",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "Witnet.TransactionHash",
          "name": "witDrTxHash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "Witnet.RadonHash",
          "name": "queryRadHash",
          "type": "bytes32"
        },
        {
          "components": [
            {
              "internalType": "uint16",
              "name": "witResultMaxSize",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "witCommitteeSize",
              "type": "uint16"
            },
            {
              "internalType": "uint64",
              "name": "witUnitaryReward",
              "type": "uint64"
            }
          ],
          "indexed": false,
          "internalType": "struct Witnet.QuerySLA",
          "name": "queryParams",
          "type": "tuple"
        },
        {
          "indexed": false,
          "internalType": "Witnet.Timestamp",
          "name": "resultTimestamp",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "resultCborBytes",
          "type": "bytes"
        }
      ],
      "name": "WitOracleReport",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "Witnet.QueryId",
          "name": "queryId",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "evmConsumer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmGasPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmCallbackActualGas",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "evmCallbackRevertReason",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "resultCborBytes",
          "type": "bytes"
        }
      ],
      "name": "WitOracleResportDeliveryFailed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "evmSubscriber",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "witRadHash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "Witnet.ServiceProvider[]",
          "name": "witServiceCommittee",
          "type": "bytes20[]"
        }
      ],
      "name": "WitOracleServiceCommittee",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmReward",
          "type": "uint256"
        },
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "numWitnesses",
              "type": "uint8"
            },
            {
              "internalType": "uint64",
              "name": "witnessReward",
              "type": "uint64"
            }
          ],
          "indexed": false,
          "internalType": "struct IWitOracleLegacy.RadonSLA",
          "name": "witnetSLA",
          "type": "tuple"
        }
      ],
      "name": "WitnetQuery",
      "type": "event"
    },
    {
      "stateMutability": "nonpayable",
      "type": "fallback"
    },
    {
      "inputs": [],
      "name": "acceptOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "base",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "channel",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "class",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "codehash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "_codehash",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "currency",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "name": "deleteQuery",
      "outputs": [
        {
          "internalType": "Witnet.QueryEvmReward",
          "name": "",
          "type": "uint72"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "deployer",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_evmGasPrice",
          "type": "uint256"
        }
      ],
      "name": "estimateBaseFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_gasPrice",
          "type": "uint256"
        },
        {
          "internalType": "uint16",
          "name": "",
          "type": "uint16"
        }
      ],
      "name": "estimateBaseFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "gasPrice",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "radHash",
          "type": "bytes32"
        }
      ],
      "name": "estimateBaseFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_evmGasPrice",
          "type": "uint256"
        },
        {
          "internalType": "uint24",
          "name": "_evmCallbackGasLimit",
          "type": "uint24"
        }
      ],
      "name": "estimateBaseFeeWithCallback",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_evmGasPrice",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_evmWitPrice",
          "type": "uint256"
        },
        {
          "components": [
            {
              "internalType": "uint16",
              "name": "witResultMaxSize",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "witCommitteeSize",
              "type": "uint16"
            },
            {
              "internalType": "uint64",
              "name": "witUnitaryReward",
              "type": "uint64"
            }
          ],
          "internalType": "struct Witnet.QuerySLA",
          "name": "_querySLA",
          "type": "tuple"
        }
      ],
      "name": "estimateExtraFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "_queryIds",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        },
        {
          "internalType": "uint256",
          "name": "_evmGasPrice",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_evmWitPrice",
          "type": "uint256"
        }
      ],
      "name": "estimateReportEarnings",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_revenues",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_expenses",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Witnet.QueryId",
          "name": "_queryId",
          "type": "uint64"
        }
      ],
      "name": "extractDelegatedDataRequest",
      "outputs": [
        {
          "components": [
            {
              "internalType": "Witnet.QueryId",
              "name": "queryId",
              "type": "uint64"
            },
            {
              "internalType": "Witnet.QueryUUID",
              "name": "queryUUID",
              "type": "bytes15"
            },
            {
              "internalType": "Witnet.QueryEvmReward",
              "name": "queryEvmReward",
              "type": "uint72"
            },
            {
              "components": [
                {
                  "internalType": "uint16",
                  "name": "witResultMaxSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "witCommitteeSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint64",
                  "name": "witUnitaryReward",
                  "type": "uint64"
                },
                {
                  "internalType": "Witnet.ServiceProvider[]",
                  "name": "providers",
                  "type": "bytes20[]"
                }
              ],
              "internalType": "struct IWitOracleQueriableExperimental.QueryParams",
              "name": "queryParams",
              "type": "tuple"
            },
            {
              "internalType": "bytes",
              "name": "radonBytecode",
              "type": "bytes"
            }
          ],
          "internalType": "struct IWitOracleQueriableExperimental.DDR",
          "name": "_dr",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Witnet.QueryId[]",
          "name": "_queryIds",
          "type": "uint64[]"
        }
      ],
      "name": "extractDelegatedDataRequestBatch",
      "outputs": [
        {
          "components": [
            {
              "internalType": "Witnet.QueryId",
              "name": "queryId",
              "type": "uint64"
            },
            {
              "internalType": "Witnet.QueryUUID",
              "name": "queryUUID",
              "type": "bytes15"
            },
            {
              "internalType": "Witnet.QueryEvmReward",
              "name": "queryEvmReward",
              "type": "uint72"
            },
            {
              "components": [
                {
                  "internalType": "uint16",
                  "name": "witResultMaxSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "witCommitteeSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint64",
                  "name": "witUnitaryReward",
                  "type": "uint64"
                },
                {
                  "internalType": "Witnet.ServiceProvider[]",
                  "name": "providers",
                  "type": "bytes20[]"
                }
              ],
              "internalType": "struct IWitOracleQueriableExperimental.QueryParams",
              "name": "queryParams",
              "type": "tuple"
            },
            {
              "internalType": "bytes",
              "name": "radonBytecode",
              "type": "bytes"
            }
          ],
          "internalType": "struct IWitOracleQueriableExperimental.DDR[]",
          "name": "_drs",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Witnet.QueryId[]",
          "name": "_queryIds",
          "type": "uint64[]"
        }
      ],
      "name": "extractRadonBytecodes",
      "outputs": [
        {
          "internalType": "bytes[]",
          "name": "_bytecodes",
          "type": "bytes[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "queryIds",
          "type": "uint256[]"
        }
      ],
      "name": "extractWitnetDataRequests",
      "outputs": [
        {
          "internalType": "bytes[]",
          "name": "",
          "type": "bytes[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "queryId",
          "type": "uint256"
        }
      ],
      "name": "fetchQueryResponse",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getNextQueryId",
      "outputs": [
        {
          "internalType": "Witnet.QueryId",
          "name": "",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Witnet.QueryId",
          "name": "_queryId",
          "type": "uint64"
        }
      ],
      "name": "getQuery",
      "outputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "requester",
                  "type": "address"
                },
                {
                  "internalType": "uint24",
                  "name": "callbackGas",
                  "type": "uint24"
                },
                {
                  "internalType": "bytes",
                  "name": "radonBytecode",
                  "type": "bytes"
                },
                {
                  "internalType": "Witnet.RadonHash",
                  "name": "radonHash",
                  "type": "bytes32"
                }
              ],
              "internalType": "struct Witnet.QueryRequest",
              "name": "request",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "reporter",
                  "type": "address"
                },
                {
                  "internalType": "Witnet.Timestamp",
                  "name": "resultTimestamp",
                  "type": "uint64"
                },
                {
                  "internalType": "Witnet.TransactionHash",
                  "name": "resultDrTxHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes",
                  "name": "resultCborBytes",
                  "type": "bytes"
                },
                {
                  "internalType": "address",
                  "name": "disputer",
                  "type": "address"
                }
              ],
              "internalType": "struct Witnet.QueryResponse",
              "name": "response",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "uint16",
                  "name": "witResultMaxSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "witCommitteeSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint64",
                  "name": "witUnitaryReward",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.QuerySLA",
              "name": "slaParams",
              "type": "tuple"
            },
            {
              "internalType": "Witnet.QueryUUID",
              "name": "uuid",
              "type": "bytes15"
            },
            {
              "internalType": "Witnet.QueryEvmReward",
              "name": "reward",
              "type": "uint72"
            },
            {
              "internalType": "Witnet.BlockNumber",
              "name": "checkpoint",
              "type": "uint64"
            }
          ],
          "internalType": "struct Witnet.Query",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "queryId",
          "type": "uint256"
        }
      ],
      "name": "getQuery",
      "outputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "requester",
                  "type": "address"
                },
                {
                  "internalType": "uint24",
                  "name": "callbackGas",
                  "type": "uint24"
                },
                {
                  "internalType": "uint72",
                  "name": "evmReward",
                  "type": "uint72"
                },
                {
                  "internalType": "bytes",
                  "name": "radonBytecode",
                  "type": "bytes"
                },
                {
                  "internalType": "bytes32",
                  "name": "radonHash",
                  "type": "bytes32"
                },
                {
                  "components": [
                    {
                      "internalType": "uint8",
                      "name": "numWitnesses",
                      "type": "uint8"
                    },
                    {
                      "internalType": "uint64",
                      "name": "witnessReward",
                      "type": "uint64"
                    }
                  ],
                  "internalType": "struct IWitOracleLegacy.RadonSLA",
                  "name": "radonParams",
                  "type": "tuple"
                }
              ],
              "internalType": "struct IWitOracleLegacy.QueryRequest",
              "name": "request",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "reporter",
                  "type": "address"
                },
                {
                  "internalType": "uint64",
                  "name": "finality",
                  "type": "uint64"
                },
                {
                  "internalType": "uint32",
                  "name": "timestamp",
                  "type": "uint32"
                },
                {
                  "internalType": "bytes32",
                  "name": "trail",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes",
                  "name": "cborBytes",
                  "type": "bytes"
                }
              ],
              "internalType": "struct IWitOracleLegacy.QueryResponse",
              "name": "response",
              "type": "tuple"
            }
          ],
          "internalType": "struct IWitOracleLegacy.Query",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryEvmReward",
      "outputs": [
        {
          "internalType": "Witnet.QueryEvmReward",
          "name": "",
          "type": "uint72"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "queryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryRequest",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "requester",
              "type": "address"
            },
            {
              "internalType": "uint24",
              "name": "callbackGas",
              "type": "uint24"
            },
            {
              "internalType": "uint72",
              "name": "evmReward",
              "type": "uint72"
            },
            {
              "internalType": "bytes",
              "name": "radonBytecode",
              "type": "bytes"
            },
            {
              "internalType": "bytes32",
              "name": "radonHash",
              "type": "bytes32"
            },
            {
              "components": [
                {
                  "internalType": "uint8",
                  "name": "numWitnesses",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "witnessReward",
                  "type": "uint64"
                }
              ],
              "internalType": "struct IWitOracleLegacy.RadonSLA",
              "name": "radonParams",
              "type": "tuple"
            }
          ],
          "internalType": "struct IWitOracleLegacy.QueryRequest",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Witnet.QueryId",
          "name": "_queryId",
          "type": "uint64"
        }
      ],
      "name": "getQueryRequest",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "requester",
              "type": "address"
            },
            {
              "internalType": "uint24",
              "name": "callbackGas",
              "type": "uint24"
            },
            {
              "internalType": "bytes",
              "name": "radonBytecode",
              "type": "bytes"
            },
            {
              "internalType": "Witnet.RadonHash",
              "name": "radonHash",
              "type": "bytes32"
            }
          ],
          "internalType": "struct Witnet.QueryRequest",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Witnet.QueryId",
          "name": "_queryId",
          "type": "uint64"
        }
      ],
      "name": "getQueryResponse",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "reporter",
              "type": "address"
            },
            {
              "internalType": "Witnet.Timestamp",
              "name": "resultTimestamp",
              "type": "uint64"
            },
            {
              "internalType": "Witnet.TransactionHash",
              "name": "resultDrTxHash",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "resultCborBytes",
              "type": "bytes"
            },
            {
              "internalType": "address",
              "name": "disputer",
              "type": "address"
            }
          ],
          "internalType": "struct Witnet.QueryResponse",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "queryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryResponse",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "reporter",
              "type": "address"
            },
            {
              "internalType": "uint64",
              "name": "finality",
              "type": "uint64"
            },
            {
              "internalType": "uint32",
              "name": "timestamp",
              "type": "uint32"
            },
            {
              "internalType": "bytes32",
              "name": "trail",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "cborBytes",
              "type": "bytes"
            }
          ],
          "internalType": "struct IWitOracleLegacy.QueryResponse",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "queryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryResponseStatus",
      "outputs": [
        {
          "internalType": "enum IWitOracleLegacy.QueryResponseStatus",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryResult",
      "outputs": [
        {
          "components": [
            {
              "internalType": "enum Witnet.ResultStatus",
              "name": "status",
              "type": "uint8"
            },
            {
              "internalType": "enum Witnet.RadonDataTypes",
              "name": "dataType",
              "type": "uint8"
            },
            {
              "internalType": "Witnet.TransactionHash",
              "name": "drTxHash",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "finality",
              "type": "uint256"
            },
            {
              "internalType": "Witnet.Timestamp",
              "name": "timestamp",
              "type": "uint64"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes",
                      "name": "data",
                      "type": "bytes"
                    },
                    {
                      "internalType": "uint256",
                      "name": "cursor",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct WitnetBuffer.Buffer",
                  "name": "buffer",
                  "type": "tuple"
                },
                {
                  "internalType": "uint8",
                  "name": "initialByte",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "majorType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "additionalInformation",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "len",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "tag",
                  "type": "uint64"
                }
              ],
              "internalType": "struct WitnetCBOR.CBOR",
              "name": "value",
              "type": "tuple"
            }
          ],
          "internalType": "struct Witnet.DataResult",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "queryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryResultCborBytes",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "queryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryResultError",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "code",
              "type": "uint8"
            },
            {
              "internalType": "string",
              "name": "reason",
              "type": "string"
            }
          ],
          "internalType": "struct IWitOracleLegacy.ResultError",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryResultStatus",
      "outputs": [
        {
          "internalType": "enum Witnet.ResultStatus",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryResultStatusDescription",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryResultTrails",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "queryUUID",
          "type": "bytes32"
        },
        {
          "internalType": "Witnet.TransactionHash",
          "name": "resultDrTxHash",
          "type": "bytes32"
        },
        {
          "internalType": "Witnet.Timestamp",
          "name": "resultTimestamp",
          "type": "uint64"
        },
        {
          "internalType": "uint256",
          "name": "resultFinalityBlock",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryStatus",
      "outputs": [
        {
          "internalType": "enum Witnet.QueryStatus",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "_queryIds",
          "type": "uint256[]"
        }
      ],
      "name": "getQueryStatusBatch",
      "outputs": [
        {
          "internalType": "enum Witnet.QueryStatus[]",
          "name": "_status",
          "type": "uint8[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "name": "getQueryStatusString",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "_initData",
          "type": "bytes"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_queryResponseReporter",
          "type": "address"
        }
      ],
      "name": "isReporter",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "isUpgradable",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_from",
          "type": "address"
        }
      ],
      "name": "isUpgradableFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "Witnet.TransactionHash",
              "name": "witDrTxHash",
              "type": "bytes32"
            },
            {
              "internalType": "Witnet.RadonHash",
              "name": "queryRadHash",
              "type": "bytes32"
            },
            {
              "components": [
                {
                  "internalType": "uint16",
                  "name": "witResultMaxSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "witCommitteeSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint64",
                  "name": "witUnitaryReward",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.QuerySLA",
              "name": "queryParams",
              "type": "tuple"
            },
            {
              "internalType": "Witnet.Timestamp",
              "name": "resultTimestamp",
              "type": "uint64"
            },
            {
              "internalType": "bytes",
              "name": "resultCborBytes",
              "type": "bytes"
            }
          ],
          "internalType": "struct Witnet.DataPushReport",
          "name": "_report",
          "type": "tuple"
        },
        {
          "internalType": "bytes",
          "name": "_signature",
          "type": "bytes"
        }
      ],
      "name": "parseDataReport",
      "outputs": [
        {
          "components": [
            {
              "internalType": "enum Witnet.ResultStatus",
              "name": "status",
              "type": "uint8"
            },
            {
              "internalType": "enum Witnet.RadonDataTypes",
              "name": "dataType",
              "type": "uint8"
            },
            {
              "internalType": "Witnet.TransactionHash",
              "name": "drTxHash",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "finality",
              "type": "uint256"
            },
            {
              "internalType": "Witnet.Timestamp",
              "name": "timestamp",
              "type": "uint64"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes",
                      "name": "data",
                      "type": "bytes"
                    },
                    {
                      "internalType": "uint256",
                      "name": "cursor",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct WitnetBuffer.Buffer",
                  "name": "buffer",
                  "type": "tuple"
                },
                {
                  "internalType": "uint8",
                  "name": "initialByte",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "majorType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "additionalInformation",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "len",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "tag",
                  "type": "uint64"
                }
              ],
              "internalType": "struct WitnetCBOR.CBOR",
              "name": "value",
              "type": "tuple"
            }
          ],
          "internalType": "struct Witnet.DataResult",
          "name": "_result",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pendingOwner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_queryRadHash",
          "type": "bytes32"
        },
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "numWitnesses",
              "type": "uint8"
            },
            {
              "internalType": "uint64",
              "name": "witnessReward",
              "type": "uint64"
            }
          ],
          "internalType": "struct IWitOracleLegacy.RadonSLA",
          "name": "_querySLA",
          "type": "tuple"
        }
      ],
      "name": "postRequest",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_queryRadHash",
          "type": "bytes32"
        },
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "numWitnesses",
              "type": "uint8"
            },
            {
              "internalType": "uint64",
              "name": "witnessReward",
              "type": "uint64"
            }
          ],
          "internalType": "struct IWitOracleLegacy.RadonSLA",
          "name": "_querySLA",
          "type": "tuple"
        },
        {
          "internalType": "uint24",
          "name": "_queryCallbackGas",
          "type": "uint24"
        }
      ],
      "name": "postRequestWithCallback",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "proxiableUUID",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "Witnet.TransactionHash",
              "name": "witDrTxHash",
              "type": "bytes32"
            },
            {
              "internalType": "Witnet.RadonHash",
              "name": "queryRadHash",
              "type": "bytes32"
            },
            {
              "components": [
                {
                  "internalType": "uint16",
                  "name": "witResultMaxSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "witCommitteeSize",
                  "type": "uint16"
                },
                {
                  "internalType": "uint64",
                  "name": "witUnitaryReward",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.QuerySLA",
              "name": "queryParams",
              "type": "tuple"
            },
            {
              "internalType": "Witnet.Timestamp",
              "name": "resultTimestamp",
              "type": "uint64"
            },
            {
              "internalType": "bytes",
              "name": "resultCborBytes",
              "type": "bytes"
            }
          ],
          "internalType": "struct Witnet.DataPushReport",
          "name": "_report",
          "type": "tuple"
        },
        {
          "internalType": "bytes",
          "name": "_signature",
          "type": "bytes"
        }
      ],
      "name": "pushDataReport",
      "outputs": [
        {
          "components": [
            {
              "internalType": "enum Witnet.ResultStatus",
              "name": "status",
              "type": "uint8"
            },
            {
              "internalType": "enum Witnet.RadonDataTypes",
              "name": "dataType",
              "type": "uint8"
            },
            {
              "internalType": "Witnet.TransactionHash",
              "name": "drTxHash",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "finality",
              "type": "uint256"
            },
            {
              "internalType": "Witnet.Timestamp",
              "name": "timestamp",
              "type": "uint64"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes",
                      "name": "data",
                      "type": "bytes"
                    },
                    {
                      "internalType": "uint256",
                      "name": "cursor",
                      "type": "uint256"
                    }
                  ],
                  "internalType": "struct WitnetBuffer.Buffer",
                  "name": "buffer",
                  "type": "tuple"
                },
                {
                  "internalType": "uint8",
                  "name": "initialByte",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "majorType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "additionalInformation",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "len",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "tag",
                  "type": "uint64"
                }
              ],
              "internalType": "struct WitnetCBOR.CBOR",
              "name": "value",
              "type": "tuple"
            }
          ],
          "internalType": "struct Witnet.DataResult",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Witnet.RadonHash",
          "name": "_queryRAD",
          "type": "bytes32"
        },
        {
          "components": [
            {
              "internalType": "uint16",
              "name": "witResultMaxSize",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "witCommitteeSize",
              "type": "uint16"
            },
            {
              "internalType": "uint64",
              "name": "witUnitaryReward",
              "type": "uint64"
            }
          ],
          "internalType": "struct Witnet.QuerySLA",
          "name": "_querySLA",
          "type": "tuple"
        }
      ],
      "name": "queryData",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Witnet.RadonHash",
          "name": "_queryRAD",
          "type": "bytes32"
        },
        {
          "components": [
            {
              "internalType": "uint16",
              "name": "witResultMaxSize",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "witCommitteeSize",
              "type": "uint16"
            },
            {
              "internalType": "uint64",
              "name": "witUnitaryReward",
              "type": "uint64"
            }
          ],
          "internalType": "struct Witnet.QuerySLA",
          "name": "_querySLA",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "address",
              "name": "consumer",
              "type": "address"
            },
            {
              "internalType": "uint24",
              "name": "gasLimit",
              "type": "uint24"
            }
          ],
          "internalType": "struct Witnet.QueryCallback",
          "name": "_queryCallback",
          "type": "tuple"
        }
      ],
      "name": "queryDataWithCallback",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "registry",
      "outputs": [
        {
          "internalType": "contract IWitOracleRadonRegistry",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Witnet.QueryId",
          "name": "_queryId",
          "type": "uint64"
        },
        {
          "internalType": "Witnet.Timestamp",
          "name": "_resultTimestamp",
          "type": "uint64"
        },
        {
          "internalType": "Witnet.TransactionHash",
          "name": "_witDrTxHash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "_resultCborBytes",
          "type": "bytes"
        }
      ],
      "name": "reportResult",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "queryId",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "drTxHash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "resultCborBytes",
          "type": "bytes"
        }
      ],
      "name": "reportResult",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "Witnet.QueryId",
          "name": "_queryId",
          "type": "uint64"
        },
        {
          "internalType": "Witnet.TransactionHash",
          "name": "_witDrTxHash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "_resultCborBytes",
          "type": "bytes"
        }
      ],
      "name": "reportResult",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "queryId",
          "type": "uint256"
        },
        {
          "internalType": "uint32",
          "name": "resultTimestamp",
          "type": "uint32"
        },
        {
          "internalType": "bytes32",
          "name": "drTxHash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "resultCborBytes",
          "type": "bytes"
        }
      ],
      "name": "reportResult",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "queryId",
              "type": "uint256"
            },
            {
              "internalType": "uint32",
              "name": "resultTimestamp",
              "type": "uint32"
            },
            {
              "internalType": "bytes32",
              "name": "drTxHash",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "resultCborBytes",
              "type": "bytes"
            }
          ],
          "internalType": "struct IWitOracleLegacy.BatchResultLegacy[]",
          "name": "results",
          "type": "tuple[]"
        }
      ],
      "name": "reportResultBatch",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_batchReward",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "Witnet.QueryId",
              "name": "queryId",
              "type": "uint64"
            },
            {
              "internalType": "Witnet.Timestamp",
              "name": "resultTimestamp",
              "type": "uint64"
            },
            {
              "internalType": "Witnet.TransactionHash",
              "name": "drTxHash",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "resultCborBytes",
              "type": "bytes"
            }
          ],
          "internalType": "struct IWitOracleQueriableTrustableReporter.BatchResult[]",
          "name": "_batchResults",
          "type": "tuple[]"
        }
      ],
      "name": "reportResultBatch",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_batchReward",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_queryResponseReporters",
          "type": "address[]"
        }
      ],
      "name": "setReporters",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_radonHash",
          "type": "bytes32"
        },
        {
          "internalType": "Witnet.ServiceProvider[]",
          "name": "_providers",
          "type": "bytes20[]"
        }
      ],
      "name": "settleMyOwnServiceCommittee",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "specs",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_exReporters",
          "type": "address[]"
        }
      ],
      "name": "unsetReporters",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_queryId",
          "type": "uint256"
        }
      ],
      "name": "upgradeQueryEvmReward",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x6102006040523361010052348015610015575f5ffd5b5060405161656d38038061656d83398101604081905261003491610349565b8083835f6001846040518060400160405280601981526020017f696f2e7769746e65742e70726f786961626c652e626f6172640000000000000081525082335f6001600160a01b0316816001600160a01b0316036100ac57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6100b581610232565b5030608052151560c052600160025560e0919091528051602091820120610120526001600160a01b039283166101405260408051808201909152601381527f696e6578697374656e74207265676973747279000000000000000000000000009181019190915261012b9284163b1515915061024e565b6101ec63a614fef760e01b6001600160e01b031916826001600160a01b031663adb7c3f76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561017c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a091906103fa565b6001600160e01b031916146040518060400160405280601481526020017f756e636f6d706c69616e7420726567697374727900000000000000000000000081525061024e60201b60201c565b6001600160a01b031661016052805163ffffffff90811661018052602082015181166101a052604082015181166101c052606090910151166101e0525061049d92505050565b600180546001600160a01b031916905561024b81610260565b50565b8161025c5761025c816102af565b5050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60408051808201909152601e81527f5769744f7261636c65547275737461626c654578706572696d656e74616c00006020820152816040516020016102f592919061043f565b60408051601f198184030181529082905262461bcd60e51b82526100a391600401610468565b805163ffffffff8116811461032e575f5ffd5b919050565b80516001600160a01b038116811461032e575f5ffd5b5f5f5f83850360c081121561035c575f5ffd5b6080811215610369575f5ffd5b50604051608081016001600160401b038111828210171561039857634e487b7160e01b5f52604160045260245ffd5b6040526103a48561031b565b81526103b26020860161031b565b60208201526103c36040860161031b565b60408201526103d46060860161031b565b606082015292506103e760808501610333565b60a0949094015192959394509192915050565b5f6020828403121561040a575f5ffd5b81516001600160e01b031981168114610421575f5ffd5b9392505050565b5f81518060208401855e5f93019283525090919050565b5f61044a8285610428565b6101d160f51b815261045f6002820185610428565b95945050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e051615ffc6105715f395f8181610f200152818161173a01526130d101525f610f4c01525f8181610f8c0152610fd401525f61176601525f818161099b01528181611699015281816120f60152612aec01525f610d2d01525f61076701525f610cdd01525f61216801525f81816107b601526123e901525f50505f818161071e01528181610b7a01528181611aff01528181611b7001528181611bb70152611bd90152615ffc5ff3fe6080604052600436106103cd575f3560e01c806376d0e357116101fc578063adb7c3f711610117578063d0a92a08116100aa578063e900aa3311610079578063e900aa3314610d4f578063ec5946db14610d62578063f2fde38b14610d75578063f61921b214610d94578063fb55e9f314610dc0576103cd565b8063d0a92a0814610cad578063d5f3948814610ccc578063e30c397814610cff578063e5a6b10f14610d1c576103cd565b8063bff852fa116100e6578063bff852fa14610c22578063c258134814610c36578063c805dd0f14610c55578063ca7da98b14610c81576103cd565b8063adb7c3f714610b9f578063aeb2ffc114610bb8578063b207e73014610be4578063b783922b14610c03576103cd565b80638d3d8b381161018f578063a58f68031161015e578063a58f680314610b01578063a667533f14610b14578063a77fc1a414610b40578063a9e954b914610b6c576103cd565b80638d3d8b3814610a735780638da5cb5b14610a9257806393d5185c14610aae5780639cc56e6714610ae2576103cd565b80637bd88218116101cb5780637bd88218146109ea5780637c1fbda314610a09578063838d44e214610a285780638cfcdea214610a47576103cd565b806376d0e3571461095757806379ba5097146109765780637b1039991461098a5780637bbdb96e146109bd576103cd565b80634cddf615116102ec57806359209b391161027f5780636d0d6a7e1161024e5780636d0d6a7e146108a35780636f07abcc146108c25780636fdaab7e146108e1578063715018a614610943576103cd565b806359209b391461081a5780636280bce81461084657806369978d7e146108655780636b58960a14610884576103cd565b80635304bba2116102bb5780635304bba2146107895780635479d940146107a857806354fd4d50146107da578063581f5094146107ee576103cd565b80634cddf615146106c55780634e6c13a1146106f15780635001f3b51461071057806352d1902d14610756576103cd565b8063378f35d9116103645780633fa59576116103335780633fa595761461060d578063439fab911461065b57806345ea6c171461067a5780634c9f72e3146106a6576103cd565b8063378f35d91461059c57806339a8653e146105c85780633b3195b7146105e75780633dc2b7a2146105fa576103cd565b80630aa4112a116103a05780630aa4112a146105045780631aea970b14610530578063234fe6e31461054f57806328a78d9b1461057b576103cd565b8063044ad7be1461045857806305e742ef1461048c57806306eb2c42146104b957806308b7e85e146104d8575b3480156103d8575f5ffd5b506103e65f3560f81c610dec565b6103f660ff5f3560f01c16610dec565b61040660ff5f3560e81c16610dec565b61041660ff5f3560e01c16610dec565b6040516020016104299493929190613ee9565b60408051601f198184030181529082905262461bcd60e51b825261044f91600401613f75565b60405180910390fd5b348015610463575f5ffd5b50610477610472366004613f9b565b610ed8565b60405190151581526020015b60405180910390f35b348015610497575f5ffd5b506104ab6104a6366004613fc6565b610f19565b604051908152602001610483565b3480156104c4575f5ffd5b506104ab6104d336600461403b565b611009565b3480156104e3575f5ffd5b506104f76104f2366004614079565b611228565b6040516104839190613f75565b34801561050f575f5ffd5b5061052361051e366004614079565b611248565b6040516104839190614114565b34801561053b575f5ffd5b506104ab61054a366004614177565b61149c565b34801561055a575f5ffd5b5061056e610569366004614079565b611549565b6040516104839190614208565b348015610586575f5ffd5b5061059a61059536600461403b565b6115be565b005b3480156105a7575f5ffd5b506105bb6105b636600461421b565b61162f565b6040516104839190614328565b3480156105d3575f5ffd5b506104ab6105e2366004614079565b611734565b6104ab6105f5366004614495565b611794565b6104ab610608366004614518565b611980565b348015610618575f5ffd5b5061062c610627366004614079565b6119d8565b604051610483949392919093845260208401929092526001600160401b03166040830152606082015260800190565b348015610666575f5ffd5b5061059a6106753660046145c1565b611a29565b348015610685575f5ffd5b5061069961069436600461403b565b611c5d565b60405161048391906145f2565b3480156106b1575f5ffd5b5061059a6106c036600461403b565b611d04565b3480156106d0575f5ffd5b506106e46106df366004614079565b611d45565b604051610483919061466a565b3480156106fc575f5ffd5b506104ab61070b36600461469a565b611db9565b34801561071b575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610483565b348015610761575f5ffd5b506104ab7f000000000000000000000000000000000000000000000000000000000000000081565b348015610794575f5ffd5b506106996107a33660046147c1565b6120c4565b3480156107b3575f5ffd5b507f0000000000000000000000000000000000000000000000000000000000000000610477565b3480156107e5575f5ffd5b506104f7612161565b3480156107f9575f5ffd5b5061080d61080836600461403b565b612191565b604051610483919061485c565b348015610825575f5ffd5b50610839610834366004614079565b61224b565b60405161048391906148a7565b348015610851575f5ffd5b506104ab610860366004614993565b6122c7565b348015610870575f5ffd5b5061059a61087f3660046149e1565b6122ea565b34801561088f575f5ffd5b5061047761089e366004613f9b565b6123e6565b3480156108ae575f5ffd5b506108396108bd366004614a28565b61243a565b3480156108cd575f5ffd5b5061056e6108dc366004614079565b612535565b3480156108ec575f5ffd5b5061092b6108fb366004614079565b5f9081525f516020615fa75f395f51905f526020526040902060090154600160781b90046001600160481b031690565b6040516001600160481b039091168152602001610483565b34801561094e575f5ffd5b5061059a61256f565b348015610962575f5ffd5b506104ab610971366004614a86565b612582565b348015610981575f5ffd5b5061059a6125e9565b348015610995575f5ffd5b5061073e7f000000000000000000000000000000000000000000000000000000000000000081565b3480156109c8575f5ffd5b506109d1612663565b6040516001600160e01b03199091168152602001610483565b3480156109f5575f5ffd5b506104ab610a04366004614ac5565b61266d565b348015610a14575f5ffd5b5061092b610a23366004614079565b612677565b348015610a33575f5ffd5b506104f7610a42366004614079565b61276c565b348015610a52575f5ffd5b50610a66610a6136600461421b565b6127ee565b6040516104839190614b91565b348015610a7e575f5ffd5b506104f7610a8d366004614079565b612900565b348015610a9d575f5ffd5b505f546001600160a01b031661073e565b348015610ab9575f5ffd5b50610acd610ac8366004614c4d565b612915565b60408051928352602083019190915201610483565b348015610aed575f5ffd5b506104ab610afc366004614cc8565b612ac8565b6104ab610b0f366004614ce8565b612b8e565b348015610b1f575f5ffd5b50610b33610b2e36600461421b565b612c4d565b6040516104839190614d0a565b348015610b4b575f5ffd5b50610b5f610b5a366004614079565b612cff565b6040516104839190614d1c565b348015610b77575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000003f6104ab565b348015610baa575f5ffd5b506304722eaf60e31b6109d1565b348015610bc3575f5ffd5b50610bd7610bd2366004614079565b612de7565b6040516104839190614d96565b348015610bef575f5ffd5b506104ab610bfe366004614de1565b612e19565b348015610c0e575f5ffd5b50610839610c1d366004614a28565b612e43565b348015610c2d575f5ffd5b506104f7612ec7565b348015610c41575f5ffd5b506104f7610c50366004614079565b612efe565b348015610c60575f5ffd5b50610c69612fcf565b6040516001600160401b039091168152602001610483565b348015610c8c575f5ffd5b50610ca0610c9b36600461421b565b612ff3565b6040516104839190614e05565b348015610cb8575f5ffd5b506104ab610cc7366004614e17565b613098565b348015610cd7575f5ffd5b5061073e7f000000000000000000000000000000000000000000000000000000000000000081565b348015610d0a575f5ffd5b506001546001600160a01b031661073e565b348015610d27575f5ffd5b5061073e7f000000000000000000000000000000000000000000000000000000000000000081565b6104ab610d5d366004614e4a565b613122565b61059a610d70366004614079565b613192565b348015610d80575f5ffd5b5061059a610d8f366004613f9b565b6132eb565b348015610d9f575f5ffd5b50610db3610dae366004614079565b61335b565b6040516104839190614e88565b348015610dcb575f5ffd5b50610ddf610dda36600461403b565b61356c565b6040516104839190614e9a565b6040805160028082528183019092526060915f91906020820181803683370190505090505f610e1c601085614f19565b610e27906030614f3a565b90505f610e35601086614f53565b610e40906030614f3a565b905060398260ff161115610e5c57610e59600783614f3a565b91505b60398160ff161115610e7657610e73600782614f3a565b90505b8160f81b835f81518110610e8c57610e8c614f74565b60200101906001600160f81b03191690815f1a9053508060f81b83600181518110610eb957610eb9614f74565b60200101906001600160f81b03191690815f1a90535091949350505050565b6001600160a01b0381165f9081527ff595240b351bc8f951c2f53b26f4e78c32cb62122cf76c19b7fdda7d4968e185602052604081205460ff165b92915050565b5f80610f467f00000000000000000000000000000000000000000000000000000000000000006003614f88565b610f70907f0000000000000000000000000000000000000000000000000000000000000000614f9f565b9050808362ffffff161080610fb2575080610fb062ffffff85167f0000000000000000000000000000000000000000000000000000000000000000614f9f565b105b15610fc957610fc18185614f88565b915050610f13565b610ff862ffffff84167f0000000000000000000000000000000000000000000000000000000000000000614f9f565b610fc19085614f88565b5092915050565b5f6110685f516020615f875f395f51905f525b335f908152600291909101602090815260409182902054825180840190935260158352743ab730baba3437b934bd32b2103932b837b93a32b960591b9183019190915260ff169061361b565b5f826001600160401b038111156110815761108161433a565b6040519080825280602002602001820160405280156110d057816020015b604080516080810182525f80825260208083018290529282015260608082015282525f1990920191018161109f5790505b5090505f5b838110156112165760405180608001604052808686848181106110fa576110fa614f74565b905060200281019061110c9190614fb2565b356001600160401b0316815260200186868481811061112d5761112d614f74565b905060200281019061113f9190614fb2565b611150906040810190602001614fd0565b63ffffffff16815260200186868481811061116d5761116d614f74565b905060200281019061117f9190614fb2565b60400135815260200186868481811061119a5761119a614f74565b90506020028101906111ac9190614fb2565b6111ba906060810190614fe9565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050915250825183908390811061120357611203614f74565b60209081029190910101526001016110d5565b5061122081611db9565b949350505050565b606061123382612677565b505060408051602081019091525f8152919050565b61128b6040805160c0810182525f80825260208083018290528284018290526060808401526080830182905283518085019094528184528301529060a082015290565b5f8281525f516020615fa75f395f51905f526020526040902060018101805461ffff91906112b89061502b565b90501115611313576040805160c0810182525f8082526020808301829052828401829052835180820185528281526060840152600290940154608083015282518084019093528083529282019290925260a082015292915050565b60038101541561143c576040805160c08101825282546001600160a01b0381168252600160a01b810462ffffff166020830152600160b81b90046001600160481b0316918101919091526001820180546060830191906113729061502b565b80601f016020809104026020016040519081016040528092919081815260200182805461139e9061502b565b80156113e95780601f106113c0576101008083540402835291602001916113e9565b820191905f5260205f20905b8154815290600101906020018083116113cc57829003601f168201915b5050509183525050600283015460208083019190915260408051808201825260089095015462010000810460ff16865264010000000090046001600160401b031691850191909152019190915292915050565b6040805160c08101825282546001600160a01b0381168252600160a01b900462ffffff1660208201526009830154600160781b90046001600160481b0316918101919091526001820180546060830191906113729061502b565b50919050565b5f6114b35f516020615f875f395f51905f5261101c565b6114ed6001600160401b03861615156040518060400160405280600d81526020016c06261642074696d657374616d7609c1b81525061361b565b604080518082019091526016815275726573756c742063616e6e6f7420626520656d70747960501b6020820152611527908315159061361b565b61153d866001600160401b03168686868661362d565b90505b95945050505050565b60405163234fe6e360e01b8152600481018290525f9073__$713c4f4487e8756194dbc5b3b091cd4345$__9063234fe6e3906024015b602060405180830381865af415801561159a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f139190615069565b6115c661367b565b6040516328a78d9b60e01b815273__$713c4f4487e8756194dbc5b3b091cd4345$__906328a78d9b906115ff9085908590600401615084565b5f6040518083038186803b158015611615575f5ffd5b505af4158015611627573d5f5f3e3d5ffd5b505050505050565b611637613d89565b5f61164a836001600160401b0316612535565b90506001816006811115611660576116606141e4565b148061167d5750600481600681111561167b5761167b6141e4565b145b1561149657604051630d0843c160e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201526001600160401b038416602482015273__$713c4f4487e8756194dbc5b3b091cd4345$__906368421e08906044015f60405180830381865af4158015611706573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261172d919081019061526f565b9392505050565b5f6117607f00000000000000000000000000000000000000000000000000000000000000006004614f88565b61178a907f0000000000000000000000000000000000000000000000000000000000000000614f9f565b610f139083614f88565b5f346117a43a8460200151610f19565b6117dc81831015604051806040016040528060138152602001721a5b9cdd59999a58da595b9d081c995dd85c99606a1b81525061361b565b61181a6117ea82600a614f88565b8311156040518060400160405280600f81526020016e1d1bdbc81b5d58da081c995dd85c99608a1b81525061361b565b84611850611827826136a7565b6040518060400160405280600b81526020016a696e76616c696420534c4160a81b81525061361b565b846119165f825f01516001600160a01b03163b1180156118d4575081516040516323d0872b60e11b81523060048201526001600160a01b03909116906347a10e5690602401602060405180830381865afa1580156118b0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118d4919061533c565b80156118e857505f826020015162ffffff16115b6040518060400160405280601081526020016f696e76616c69642063616c6c6261636b60801b81525061361b565b8551602087015161192a9190348b8b6136e2565b9450336001600160a01b03167ffbe74eb38ea9de3d74d481a4f701ae121d794895c5797db8260d06d317901d263a34888c8c60405161196d95949392919061535b565b60405180910390a2505050509392505050565b5f61172d836040518060600160405280602061ffff168152602001855f0160208101906119ad91906153c2565b60ff1681526020908101906119c8906040880190880161421b565b6001600160401b03169052612b8e565b5f5f5f5f5f6119e68661375e565b600981015460058201546004909201546001600160881b0319608883901b16999298506001600160401b03600160c01b9182900481169850910416945092505050565b5f546001600160a01b031680611a5f5781806020019051810190611a4d91906153dd565b92509050611a5a8161377a565b611aa7565b336001600160a01b03821614611aa75760405162461bcd60e51b815260206004820152600d60248201526c3737ba103a34329037bbb732b960991b604482015260640161044f565b611ab082613793565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe5415801590611b2157507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe547f00000000000000000000000000000000000000000000000000000000000000003f145b15611b6e5760405162461bcd60e51b815260206004820152601c60248201527f616c726561647920696e697469616c697a656420636f64656861736800000000604482015260640161044f565b7f00000000000000000000000000000000000000000000000000000000000000003f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc600201557f00000000000000000000000000000000000000000000000000000000000000003f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611c125f546001600160a01b031690565b6001600160a01b03167fe73e754121f0bad1327816970101955bfffdf53d270ac509d777c25be070d7f6611c44612161565b604051611c519190613f75565b60405180910390a45050565b60605f826001600160401b03811115611c7857611c7861433a565b604051908082528060200260200182016040528015611ca1578160200160208202803683370190505b5090505f5b8151811015611cfa57848482818110611cc157611cc1614f74565b90506020020135828281518110611cda57611cda614f74565b6001600160401b0390921660209283029190910190910152600101611ca6565b50611220816120c4565b611d0c61367b565b604051634c9f72e360e01b815273__$713c4f4487e8756194dbc5b3b091cd4345$__90634c9f72e3906115ff9085908590600401615084565b604051634cddf61560e01b8152600481018290525f9073__$713c4f4487e8756194dbc5b3b091cd4345$__90634cddf61590602401602060405180830381865af4158015611d95573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f139190615439565b5f611dd05f516020615f875f395f51905f5261101c565b5f5b82518110156120ae575f838281518110611dee57611dee614f74565b6020908102919091010151516001600160401b031690506001611e1082612535565b6006811115611e2157611e216141e4565b14611f1e577f4df64445edc775fba59db44b8001852fb1b777eea88fd54f04572dd114e3ff7f848381518110611e5957611e59614f74565b60200260200101515f0151611e6c612ec7565b604051638f191e5f60e01b815273__$713c4f4487e8756194dbc5b3b091cd4345$__90638f191e5f90611ea490600190600401614208565b5f60405180830381865af4158015611ebe573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611ee59190810190615452565b604051602001611ef6929190615496565b60408051601f1981840301815290829052611f1192916154b6565b60405180910390a16120a5565b426001600160401b0316848381518110611f3a57611f3a614f74565b6020026020010151602001516001600160401b03161180611f8d5750611f8d848381518110611f6b57611f6b614f74565b6020026020010151602001516001600160401b03166001600160401b03161590565b80611fb55750838281518110611fa557611fa5614f74565b602002602001015160600151515f145b15612010577f4df64445edc775fba59db44b8001852fb1b777eea88fd54f04572dd114e3ff7f848381518110611fed57611fed614f74565b60200260200101515f0151612000612ec7565b604051602001611ef691906154d7565b61209884838151811061202557612025614f74565b60200260200101515f01516001600160401b031685848151811061204b5761204b614f74565b60200260200101516020015186858151811061206957612069614f74565b60200260200101516040015187868151811061208757612087614f74565b60200260200101516060015161380c565b6120a29084614f9f565b92505b50600101611dd2565b5080156120bf576120bf338261394a565b919050565b604051633ab5a66d60e11b815260609073__$713c4f4487e8756194dbc5b3b091cd4345$__9063756b4cda90612120907f0000000000000000000000000000000000000000000000000000000000000000908690600401615507565b5f60405180830381865af415801561213a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f139190810190615565565b606061218c7f000000000000000000000000000000000000000000000000000000000000000061397d565b905090565b6060816001600160401b038111156121ab576121ab61433a565b6040519080825280602002602001820160405280156121d4578160200160208202803683370190505b5090505f5b82811015611002576122028484838181106121f6576121f6614f74565b90506020020135612535565b82828151811061221457612214614f74565b6020026020010190600681111561222d5761222d6141e4565b90816006811115612240576122406141e4565b9052506001016121d9565b612253613dd5565b6040516359209b3960e01b81526004810183905273__$713c4f4487e8756194dbc5b3b091cd4345$__906359209b39906024015f60405180830381865af41580156122a0573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f139190810190615792565b5f6122de5f516020615f875f395f51905f5261101c565b61154085858585612582565b335f9081527ff595240b351bc8f951c2f53b26f4e78c32cb62122cf76c19b7fdda7d4968e1866020908152604080832086845290915290819020905163faf9bbed60e01b815273__$713c4f4487e8756194dbc5b3b091cd4345$__9163faf9bbed9161235d9190869086906004016157c3565b602060405180830381865af4158015612378573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061239c919061580d565b5082336001600160a01b03167f23756db25709786dbc09e6af056afb44fb8ed4fb0201b7cbc24aecc8be0a45f684846040516123d9929190615824565b60405180910390a3505050565b5f7f00000000000000000000000000000000000000000000000000000000000000008015610f135750816001600160a01b031661242a5f546001600160a01b031690565b6001600160a01b03161492915050565b612442613dd5565b5f5f73__$713c4f4487e8756194dbc5b3b091cd4345$__631600b78b8787876040518463ffffffff1660e01b815260040161247f939291906158d9565b5f60405180830381865af4158015612499573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526124c09190810190615989565b909250905033327f7a9001dc4425127400f09e4c0b02908ad0e1f642ee9c92932a222c686674648284893560208b013560408c0161250460c08e0160a08f0161421b565b61251160c08f018f614fe9565b60405161252497969594939291906159cc565b60405180910390a395945050505050565b604051631bc1eaf360e21b8152600481018290525f9073__$713c4f4487e8756194dbc5b3b091cd4345$__90636f07abcc9060240161157f565b61257761367b565b6125805f61377a565b565b5f6125995f516020615f875f395f51905f5261101c565b604080518082019091526016815275726573756c742063616e6e6f7420626520656d70747960501b60208201526125d3908315159061361b565b611540856001600160401b03164286868661362d565b60015433906001600160a01b031681146126575760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161044f565b6126608161377a565b50565b5f61218c30613a1e565b5f61172d83611734565b604051637c1fbda360e01b8152600481018290525f9073__$713c4f4487e8756194dbc5b3b091cd4345$__90637c1fbda390602401602060405180830381865af49250505080156126e5575060408051601f3d908101601f191682019092526126e291810190615a27565b60015b612752576126f1615a40565b806308c379a0036127195750612705615a58565b80612710575061271b565b61149681613a5c565b505b3d808015612744576040519150601f19603f3d011682016040523d82523d5f602084013e612749565b606091505b50611496613a76565b6001600160481b038116801561100257611002338261394a565b606073__$713c4f4487e8756194dbc5b3b091cd4345$__634cbc7ff861279184612535565b6040518263ffffffff1660e01b81526004016127ad9190614208565b5f60405180830381865af41580156127c7573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f139190810190615452565b6128846040805161014081019091525f60c0820181815260e083018290526060610100840152610120830191909152819081526040805160a0810182525f808252602082810182905292820181905260608083015260808201529101908152604080516060810182525f80825260208281018290529282015291019081525f602082018190526040820181905260609091015290565b60405163467e6f5160e11b81526001600160401b038316600482015273__$713c4f4487e8756194dbc5b3b091cd4345$__90638cfcdea2906024015f60405180830381865af41580156128d9573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f139190810190615c27565b606061290b82612ff3565b6060015192915050565b5f80805b87811015612abc575f89898381811061293457612934614f74565b602002919091013591506001905061294b82612535565b600681111561295c5761295c6141e4565b03612ab3575f61296b8261375e565b8054909150600160a01b900462ffffff16156129fb57604080516060810182525f8152600883015461ffff62010000820416602083015264010000000090046001600160401b0316918101919091526129c79088908890613098565b81546129e0908990600160a01b900462ffffff16610f19565b6129ea9190614f9f565b6129f49085614f9f565b9350612a63565b60408051606081018252600883015461ffff808216835262010000820416602083015264010000000090046001600160401b031691810191909152612a439088908890613098565b612a4c88611734565b612a569190614f9f565b612a609085614f9f565b93505b6008810154612a839064010000000090046001600160401b031687614f88565b612a8d9085614f9f565b6009820154909450612aaf90600160781b90046001600160481b031686614f9f565b9450505b50600101612919565b50965096945050505050565b604051631a3b01e960e21b8152600481018290525f90612b85906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906368ec07a490602401602060405180830381865afa158015612b31573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b55919061533c565b604051806040016040528060128152602001710eadcd6dcdeeedc40e4c2c8dedc40d0c2e6d60731b81525061361b565b61172d83611734565b5f34612b993a611734565b612bd181831015604051806040016040528060138152602001721a5b9cdd59999a58da595b9d081c995dd85c99606a1b81525061361b565b612bdf6117ea82600a614f88565b83612bec611827826136a7565b612bf9335f3489896136e2565b9350336001600160a01b03167ffbe74eb38ea9de3d74d481a4f701ae121d794895c5797db8260d06d317901d263a34878a8a604051612c3c95949392919061535b565b60405180910390a250505092915050565b612c8360405180608001604052805f6001600160a01b031681526020015f62ffffff168152602001606081526020015f81525090565b60405163a667533f60e01b81526001600160401b038316600482015273__$713c4f4487e8756194dbc5b3b091cd4345$__9063a667533f906024015f60405180830381865af4158015612cd8573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f139190810190615d01565b604080518082019091525f8152606060208201525f612d1d8361224b565b90506040518060400160405280825f015160ff811115612d3f57612d3f6141e4565b60ff16815260200173__$39c1c75f9ff01712a7ae2d1d1d8c462aa1$__6371aad10d84604051602001612d7291906148a7565b6040516020818303038152906040526040518263ffffffff1660e01b8152600401612d9d9190613f75565b5f60405180830381865af4158015612db7573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612dde9190810190615452565b90529392505050565b612def613e50565b6040518060400160405280612e0384611248565b8152602001612e118461335b565b905292915050565b5f612e305f516020615f875f395f51905f5261101c565b61153d868663ffffffff1686868661149c565b612e4b613dd5565b604051631600b78b60e01b815273__$713c4f4487e8756194dbc5b3b091cd4345$__90631600b78b90612e86908790879087906004016158d9565b5f60405180830381865af4158015612ea0573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526115409190810190615989565b60408051808201909152601e81527f5769744f7261636c65547275737461626c654578706572696d656e74616c0000602082015290565b606073__$39c1c75f9ff01712a7ae2d1d1d8c462aa1$__6371aad10d73__$713c4f4487e8756194dbc5b3b091cd4345$__6359209b39856040518263ffffffff1660e01b8152600401612f5391815260200190565b5f60405180830381865af4158015612f6d573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612f949190810190615792565b604051602001612fa491906148a7565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016127ad9190613f75565b5f5f516020615f875f395f51905f525461218c906001600160401b03166001615d32565b6040805160a0810182525f80825260208201819052918101829052606080820152608081019190915260405163ca7da98b60e01b81526001600160401b038316600482015273__$713c4f4487e8756194dbc5b3b091cd4345$__9063ca7da98b906024015f60405180830381865af4158015613071573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f139190810190615d51565b5f6020825f015161ffff16116130ae575f613100565b81516020906130be908290615d82565b6130c89190615d9c565b61ffff166130f67f000000000000000000000000000000000000000000000000000000000000000086614f88565b6131009190614f88565b6040830151613118906001600160401b031685614f88565b6112209190614f9f565b5f611220846040518060600160405280602061ffff168152602001865f01602081019061314f91906153c2565b60ff16815260209081019061316a906040890190890161421b565b6001600160401b031690526040805180820190915233815262ffffff86166020820152611794565b8060018061319f83612535565b60068111156131b0576131b06141e4565b1461323b57604051638f191e5f60e01b81526132369073__$713c4f4487e8756194dbc5b3b091cd4345$__90638f191e5f906131f0908590600401614208565b5f60405180830381865af415801561320a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526132319190810190615452565b613a5c565b505050565b5f6132458461375e565b90505f3460098301546132689190600160781b90046001600160481b0316614f9f565b6009830180546001600160481b038316600160781b0268ffffffffffffffffff60781b19909116179055604080516001600160401b03881681523360208201523a818301526060810183905290519192507f66f95ec285ca572fa1cac40e7019e14ab45a8fc619c6405222e8af55534c2f67919081900360800190a15050505050565b6132f361367b565b600180546001600160a01b0383166001600160a01b031990911681179091556133235f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6133a16040518060a001604052805f6001600160a01b031681526020015f6001600160401b031681526020015f63ffffffff1681526020015f8152602001606081525090565b5f8281525f516020615fa75f395f51905f526020526040902060018101805461ffff91906133ce9061502b565b905011156134125750506040805160a0810182525f808252602080830182905282840182905260608301829052835191825281019092526080810191909152919050565b600381015415613507576040805160a08101825260048301546001600160a01b038116825263ffffffff600160a01b82048116602080850191909152600160c01b90920490911c1691810191909152600582015460608201526006820180546080830191906134809061502b565b80601f01602080910402602001604051908101604052809291908181526020018280546134ac9061502b565b80156134f75780601f106134ce576101008083540402835291602001916134f7565b820191905f5260205f20905b8154815290600101906020018083116134da57829003601f168201915b5050505050815250915050919050565b6040805160a08101825260048301546001600160a01b038116825260098401546001600160401b03600160c01b9182900416602084015263ffffffff91041691810191909152600582015460608201526006820180546080830191906134809061502b565b6060816001600160401b038111156135865761358661433a565b6040519080825280602002602001820160405280156135bf57816020015b6135ac613d89565b8152602001906001900390816135a45790505b5090505f5b82811015611002576135f68484838181106135e1576135e1614f74565b90506020020160208101906105b6919061421b565b82828151811061360857613608614f74565b60209081029190910101526001016135c4565b816136295761362981613a5c565b5050565b5f61366f86868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061380c92505050565b9050611540338261394a565b5f546001600160a01b031633146125805760405163118cdaa760e01b815233600482015260240161044f565b5f5f826020015161ffff161180156136c85750607f826020015161ffff1611155b8015610f13575050604001516001600160401b0316151590565b5f6136f08686868686613a81565b90507ffb94adf28ab7e538d2691d90927f622cbc1100eae6afec58052efdee6c98a61681346040518060400160405280866020015160ff16815260200186604001516001600160401b031681525060405161374d93929190615dbf565b60405180910390a195945050505050565b5f9081525f516020615fa75f395f51905f526020526040902090565b600180546001600160a01b031916905561266081613bec565b73__$713c4f4487e8756194dbc5b3b091cd4345$__634c9f72e3828060200190518101906137c19190615dee565b6040518263ffffffff1660e01b81526004016137dd9190615e89565b5f6040518083038186803b1580156137f3575f5ffd5b505af4158015613805573d5f5f3e3d5ffd5b5050505050565b5f6138c86001604051631bc1eaf360e21b81526004810188905273__$713c4f4487e8756194dbc5b3b091cd4345$__90636f07abcc90602401602060405180830381865af4158015613860573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138849190615069565b6006811115613895576138956141e4565b14604051806040016040528060148152602001736e6f7420696e20506f737465642073746174757360601b81525061361b565b604051637102a0df60e11b815273__$713c4f4487e8756194dbc5b3b091cd4345$__9063e20541be9061390b9033903a9043908b908b908b908b90600401615ec9565b602060405180830381865af4158015613926573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611540919061580d565b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015613236573d5f5f3e3d5ffd5b60605f61398983613c3b565b6001600160401b038111156139a0576139a061433a565b6040519080825280601f01601f1916602001820160405280156139ca576020820181803683370190505b5090505f5b8151811015611002578381602081106139ea576139ea614f74565b1a60f81b828281518110613a0057613a00614f74565b60200101906001600160f81b03191690815f1a9053506001016139cf565b604080516001600160a01b038316602082015246918101919091525f906060015b604051602081830303815290604052805190602001209050919050565b613a64612ec7565b81604051602001610429929190615496565b612580613231613c73565b5f5f516020615f875f395f51905f5280545f90613aa6906001600160401b0316615f19565b91906101000a8154816001600160401b0302191690836001600160401b0316021790556001600160401b031690505f613ade8261375e565b6009810180546001600160c01b0316600160c01b436001600160401b0316021790559050613b158285613b1086613cc2565b613d15565b60098201805460889290921c6001600160c01b031990921691909117600160781b6001600160481b0388160217905580546001600160a01b0319166001600160a01b0388161781556002810184905562ffffff861615613b8a57805462ffffff60a01b1916600160a01b62ffffff8816021781555b82516008909101805460208501516040909501516001600160401b0316640100000000026bffffffffffffffff000000001961ffff968716620100000263ffffffff199093169690941695909517179190911692909217909155949350505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5b60208110156120bf57818160208110613c5857613c58614f74565b1a60f81b6001600160f81b031916156120bf57600101613c3d565b60606040518060400160405260108152806020016f2bb4ba27b930b1b632a230ba30a634b160811b815250604051602001613cae9190615f43565b604051602081830303815290604052905090565b5f815f015182602001518360400151604051602001613a3f9392919060f093841b6001600160f01b031990811682529290931b909116600283015260c01b6001600160c01b0319166004820152600c0190565b5f613d1f30613a1e565b613d2a600143615f73565b604080516001600160e01b031990931660208401529040908201526001600160401b03851660608201526080810184905260a0810183905260c0016040516020818303038152906040528051906020012090509392505050565b905290565b6040805160a0810182525f808252602080830182905282840182905283516080810185528281529081018290529283015260608281018190529091908201908152602001606081525090565b6040805160c08101909152805f81526020015f81526020015f81526020015f81526020015f6001600160401b03168152602001613d84604080516101008101909152606060c082019081525f60e0830152819081525f6020820181905260408201819052606082018190526080820181905260a09091015290565b6040518060400160405280613e9e6040805160c0810182525f80825260208083018290528284018290526060808401526080830182905283518085019094528184528301529060a082015290565b81526040805160a0810182525f80825260208281018290529282018190526060808301919091526080820152910190613d84565b5f81518060208401855e5f93019283525090919050565b7f5769746e657455706772616461626c65426173653a206e6f7420696d706c656d8152680cadce8cac8744060f60bb1b60208201525f61153d613f41613f3b613f35602986018a613ed2565b88613ed2565b86613ed2565b84613ed2565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61172d6020830184613f47565b6001600160a01b0381168114612660575f5ffd5b5f60208284031215613fab575f5ffd5b813561172d81613f87565b62ffffff81168114612660575f5ffd5b5f5f60408385031215613fd7575f5ffd5b823591506020830135613fe981613fb6565b809150509250929050565b5f5f83601f840112614004575f5ffd5b5081356001600160401b0381111561401a575f5ffd5b6020830191508360208260051b8501011115614034575f5ffd5b9250929050565b5f5f6020838503121561404c575f5ffd5b82356001600160401b03811115614061575f5ffd5b61406d85828601613ff4565b90969095509350505050565b5f60208284031215614089575f5ffd5b5035919050565b60018060a01b03815116825262ffffff60208201511660208301526001600160481b0360408201511660408301525f606082015160e060608501526140d860e0850182613f47565b90506080830151608085015260a083015161410c60a0860182805160ff1682526020908101516001600160401b0316910152565b509392505050565b602081525f61172d6020830184614090565b6001600160401b0381168114612660575f5ffd5b5f5f83601f84011261414a575f5ffd5b5081356001600160401b03811115614160575f5ffd5b602083019150836020828501011115614034575f5ffd5b5f5f5f5f5f6080868803121561418b575f5ffd5b853561419681614126565b945060208601356141a681614126565b93506040860135925060608601356001600160401b038111156141c7575f5ffd5b6141d38882890161413a565b969995985093965092949392505050565b634e487b7160e01b5f52602160045260245ffd5b60078110612660576126606141e4565b60208101614215836141f8565b91905290565b5f6020828403121561422b575f5ffd5b813561172d81614126565b6001600160401b03815116825270ffffffffffffffffffffffffffffffffff1960208201511660208301526001600160481b0360408201511660408301525f606082015160a06060850152610120840161ffff82511660a086015261ffff60208301511660c08601526001600160401b0360408301511660e0860152606082015191506080610100860152808251808352610140870191506020840193505f92505b808310156143045783516001600160601b031916825260209384019360019390930192909101906142d8565b5060808501519250858103608087015261431e8184613f47565b9695505050505050565b602081525f61172d6020830184614236565b634e487b7160e01b5f52604160045260245ffd5b606081018181106001600160401b038211171561436d5761436d61433a565b60405250565b604081018181106001600160401b038211171561436d5761436d61433a565b608081018181106001600160401b038211171561436d5761436d61433a565b60a081018181106001600160401b038211171561436d5761436d61433a565b60c081018181106001600160401b038211171561436d5761436d61433a565b601f8201601f191681016001600160401b03811182821017156144145761441461433a565b6040525050565b60405161442960c0826143ef565b90565b61ffff81168114612660575f5ffd5b5f6060828403121561444b575f5ffd5b6040516144578161434e565b80915082356144658161442c565b815260208301356144758161442c565b6020820152604083013561448881614126565b6040919091015292915050565b5f5f5f83850360c08112156144a8575f5ffd5b843593506144b9866020870161443b565b92506040607f19820112156144cc575f5ffd5b506040516144d981614373565b60808501356144e781613f87565b815260a08501356144f781613fb6565b602082015292959194509192509050565b5f60408284031215611496575f5ffd5b5f5f60608385031215614529575f5ffd5b8235915061453a8460208501614508565b90509250929050565b5f6001600160401b0382111561455b5761455b61433a565b50601f01601f191660200190565b5f82601f830112614578575f5ffd5b813561458381614543565b60405161459082826143ef565b8281528560208487010111156145a4575f5ffd5b826020860160208301375f92810160200192909252509392505050565b5f602082840312156145d1575f5ffd5b81356001600160401b038111156145e6575f5ffd5b61122084828501614569565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b8281101561464957603f19878603018452614634858351613f47565b94506020938401939190910190600101614618565b50929695505050505050565b6101008110614666576146666141e4565b9052565b60208101610f138284614655565b5f6001600160401b038211156146905761469061433a565b5060051b60200190565b5f602082840312156146aa575f5ffd5b81356001600160401b038111156146bf575f5ffd5b8201601f810184136146cf575f5ffd5b80356146da81614678565b6040516146e782826143ef565b80915082815260208101915060208360051b85010192508683111561470a575f5ffd5b602084015b838110156147b65780356001600160401b0381111561472c575f5ffd5b85016080818a03601f19011215614741575f5ffd5b60405161474d81614392565b602082013561475b81614126565b8152604082013561476b81614126565b60208201526060820135604082015260808201356001600160401b03811115614792575f5ffd5b6147a18b602083860101614569565b6060830152508452506020928301920161470f565b509695505050505050565b5f602082840312156147d1575f5ffd5b81356001600160401b038111156147e6575f5ffd5b8201601f810184136147f6575f5ffd5b803561480181614678565b60405161480e82826143ef565b80915082815260208101915060208360051b850101925086831115614831575f5ffd5b6020840193505b8284101561431e57833561484b81614126565b825260209384019390910190614838565b602080825282518282018190525f918401906040840190835b8181101561489c578351614888816141f8565b835260209384019390920191600101614875565b509095945050505050565b602081526148b9602082018351614655565b5f6020830151601481106148cf576148cf6141e4565b8060408401525060408301516060830152606083015160808301526001600160401b0360808401511660a083015260a083015160c080840152805160c060e0850152805160406101a08601526149296101e0860182613f47565b6020928301516101c08701529183015160ff166101008601525060408201519061495961012086018360ff169052565b606083015160ff1661014086015260808301516001600160401b0380821661016088015260a0909401519384166101808701529150611540565b5f5f5f5f606085870312156149a6575f5ffd5b843593506020850135925060408501356001600160401b038111156149c9575f5ffd5b6149d58782880161413a565b95989497509550505050565b5f5f5f604084860312156149f3575f5ffd5b8335925060208401356001600160401b03811115614a0f575f5ffd5b614a1b86828701613ff4565b9497909650939450505050565b5f5f5f60408486031215614a3a575f5ffd5b83356001600160401b03811115614a4f575f5ffd5b840160e08187031215614a60575f5ffd5b925060208401356001600160401b03811115614a7a575f5ffd5b614a1b8682870161413a565b5f5f5f5f60608587031215614a99575f5ffd5b8435614aa481614126565b93506020850135925060408501356001600160401b038111156149c9575f5ffd5b5f5f60408385031215614ad6575f5ffd5b823591506020830135613fe98161442c565b60018060a01b03815116825262ffffff60208201511660208301525f604082015160806040850152614b1d6080850182613f47565b606093840151949093019390935250919050565b60018060a01b0381511682526001600160401b036020820151166020830152604081015160408301525f606082015160a06060850152614b7460a0850182613f47565b6080938401516001600160a01b0316949093019390935250919050565b602081525f82516101006020840152614bae610120840182614ae8565b90506020840151601f19848303016040850152614bcb8282614b31565b9150506040840151614c08606085018261ffff815116825261ffff60208201511660208301526001600160401b0360408201511660408301525050565b5060608401516001600160881b03191660c084015260808401516001600160481b031660e084015260a0909301516001600160401b0316610100909201919091525090565b5f5f5f5f5f5f60808789031215614c62575f5ffd5b86356001600160401b03811115614c77575f5ffd5b614c8389828a01613ff4565b90975095505060208701356001600160401b03811115614ca1575f5ffd5b614cad89828a0161413a565b979a9699509760408101359660609091013595509350505050565b5f5f60408385031215614cd9575f5ffd5b50508035926020909101359150565b5f5f60808385031215614cf9575f5ffd5b8235915061453a846020850161443b565b602081525f61172d6020830184614ae8565b6020815260ff82511660208201525f60208301516040808401526112206060840182613f47565b60018060a01b0381511682526001600160401b03602082015116602083015263ffffffff6040820151166040830152606081015160608301525f608082015160a0608085015261122060a0850182613f47565b602081525f825160406020840152614db16060840182614090565b90506020840151601f198483030160408501526115408282614d43565b803563ffffffff811681146120bf575f5ffd5b5f5f5f5f5f60808688031215614df5575f5ffd5b853594506141a660208701614dce565b602081525f61172d6020830184614b31565b5f5f5f60a08486031215614e29575f5ffd5b8335925060208401359150614e41856040860161443b565b90509250925092565b5f5f5f60808486031215614e5c575f5ffd5b83359250614e6d8560208601614508565b91506060840135614e7d81613fb6565b809150509250925092565b602081525f61172d6020830184614d43565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b8281101561464957603f19878603018452614edc858351614236565b94506020938401939190910190600101614ec0565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60ff831680614f2b57614f2b614ef1565b8060ff84160491505092915050565b60ff8181168382160190811115610f1357610f13614f05565b5f60ff831680614f6557614f65614ef1565b8060ff84160691505092915050565b634e487b7160e01b5f52603260045260245ffd5b8082028115828204841417610f1357610f13614f05565b80820180821115610f1357610f13614f05565b5f8235607e19833603018112614fc6575f5ffd5b9190910192915050565b5f60208284031215614fe0575f5ffd5b61172d82614dce565b5f5f8335601e19843603018112614ffe575f5ffd5b8301803591506001600160401b03821115615017575f5ffd5b602001915036819003821315614034575f5ffd5b600181811c9082168061503f57607f821691505b60208210810361149657634e487b7160e01b5f52602260045260245ffd5b60078110612660575f5ffd5b5f60208284031215615079575f5ffd5b815161172d8161505d565b602080825281018290525f8360408301825b858110156150c65782356150a981613f87565b6001600160a01b0316825260209283019290910190600101615096565b5095945050505050565b80516120bf81614126565b80516001600160881b0319811681146120bf575f5ffd5b80516001600160481b03811681146120bf575f5ffd5b6001600160601b031981168114612660575f5ffd5b5f6080828403121561512d575f5ffd5b60405161513981614392565b80915082516151478161442c565b815260208301516151578161442c565b6020820152604083015161516a81614126565b604082015260608301516001600160401b03811115615187575f5ffd5b8301601f81018513615197575f5ffd5b80516151a281614678565b6040516151af82826143ef565b80915082815260208101915060208360051b8501019250878311156151d2575f5ffd5b6020840193505b828410156151fd5783516151ec81615108565b8252602093840193909101906151d9565b806060860152505050505092915050565b5f61521883614543565b60405161522582826143ef565b809250848152858585011115615239575f5ffd5b8484602083015e5f6020868301015250509392505050565b5f82601f830112615260575f5ffd5b61172d8383516020850161520e565b5f6020828403121561527f575f5ffd5b81516001600160401b03811115615294575f5ffd5b820160a081850312156152a5575f5ffd5b6040516152b1816143b1565b81516152bc81614126565b81526152ca602083016150db565b60208201526152db604083016150f2565b604082015260608201516001600160401b038111156152f8575f5ffd5b6153048682850161511d565b60608301525060808201516001600160401b03811115615322575f5ffd5b61532e86828501615251565b608083015250949350505050565b5f6020828403121561534c575f5ffd5b8151801515811461172d575f5ffd5b858152602081018590526001600160401b03841660408201526060810183905260e0810161431e608083018461ffff815116825261ffff60208201511660208301526001600160401b0360408201511660408301525050565b60ff81168114612660575f5ffd5b5f602082840312156153d2575f5ffd5b813561172d816153b4565b5f5f604083850312156153ee575f5ffd5b82516153f981613f87565b60208401519092506001600160401b03811115615414575f5ffd5b61542085828601615251565b9150509250929050565b805161010081106120bf575f5ffd5b5f60208284031215615449575f5ffd5b61172d8261542a565b5f60208284031215615462575f5ffd5b81516001600160401b03811115615477575f5ffd5b8201601f81018413615487575f5ffd5b6112208482516020840161520e565b5f6154a18285613ed2565b6101d160f51b81526115406002820185613ed2565b6001600160401b0383168152604060208201525f6112206040830184613f47565b5f6154e28284613ed2565b743a20696e76616c6964207265706f7274206461746160581b81526015019392505050565b6001600160a01b03831681526040602080830182905283519183018290525f91908401906060840190835b818110156155595783516001600160401b0316835260209384019390920191600101615532565b50909695505050505050565b5f60208284031215615575575f5ffd5b81516001600160401b0381111561558a575f5ffd5b8201601f8101841361559a575f5ffd5b80516155a581614678565b6040516155b282826143ef565b80915082815260208101915060208360051b8501019250868311156155d5575f5ffd5b602084015b838110156147b65780516001600160401b038111156155f7575f5ffd5b61560689602083890101615251565b845250602092830192016155da565b80516120bf816153b4565b5f60c08284031215615630575f5ffd5b60405161563c816143d0565b80915082516001600160401b03811115615654575f5ffd5b830160408186031215615665575f5ffd5b60405161567181614373565b81516001600160401b03811115615686575f5ffd5b61569287828501615251565b8252506020918201518282015282526156ac908401615615565b60208201526156bd60408401615615565b60408201526156ce60608401615615565b60608201526156df608084016150d0565b60808201526156f060a084016150d0565b60a08201525092915050565b5f60c0828403121561570c575f5ffd5b604051615718816143d0565b8091506157248361542a565b8152602083015160148110615737575f5ffd5b6020820152604083810151908201526060808401519082015261575c608084016150d0565b608082015260a08301516001600160401b03811115615779575f5ffd5b61578585828601615620565b60a0830152505092915050565b5f602082840312156157a2575f5ffd5b81516001600160401b038111156157b7575f5ffd5b611220848285016156fc565b83815260406020820181905281018290525f8360608301825b858110156147b65782356157ef81615108565b6001600160601b0319168252602092830192909101906001016157dc565b5f6020828403121561581d575f5ffd5b5051919050565b602080825281018290525f8360408301825b858110156150c657823561584981615108565b6001600160601b031916825260209283019290910190600101615836565b80356158728161442c565b61ffff16825260208101356158868161442c565b61ffff166020830152604081013561589d81614126565b6001600160401b0381166040840152505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6040808252843582820152602085013560608301525f906159009060808401908701615867565b60a085013561590e81614126565b6001600160401b031660e083015260c085013536869003601e19018112615933575f5ffd5b85016020810190356001600160401b0381111561594e575f5ffd5b80360382131561595c575f5ffd5b60e0610100850152615973610120850182846158b1565b915050828103602084015261431e8185876158b1565b5f5f6040838503121561599a575f5ffd5b82516159a581613f87565b60208401519092506001600160401b038111156159c0575f5ffd5b615420858286016156fc565b6001600160a01b038816815260208101879052604081018690526159f36060820186615867565b6001600160401b03841660c082015261010060e08201525f615a1a610100830184866158b1565b9998505050505050505050565b5f60208284031215615a37575f5ffd5b61172d826150f2565b5f60033d11156144295760045f5f3e505f5160e01c90565b5f60443d1015615a655790565b6040513d600319016004823e80513d60248201116001600160401b0382111715615a8e57505090565b80820180516001600160401b03811115615aa9575050505090565b3d8401600319018282016020011115615ac3575050505090565b61410c602082850101856143ef565b5f60808284031215615ae2575f5ffd5b604051615aee81614392565b8091508251615afc81613f87565b81526020830151615b0c81613fb6565b602082015260408301516001600160401b03811115615b29575f5ffd5b615b3585828601615251565b604083015250606092830151920191909152919050565b5f60a08284031215615b5c575f5ffd5b604051615b68816143b1565b8091508251615b7681613f87565b81526020830151615b8681614126565b60208201526040838101519082015260608301516001600160401b03811115615bad575f5ffd5b615bb985828601615251565b6060830152506080830151615bcd81613f87565b6080919091015292915050565b5f60608284031215615bea575f5ffd5b604051615bf68161434e565b8091508251615c048161442c565b81526020830151615c148161442c565b6020820152604083015161448881614126565b5f60208284031215615c37575f5ffd5b81516001600160401b03811115615c4c575f5ffd5b82016101008185031215615c5e575f5ffd5b615c6661441b565b81516001600160401b03811115615c7b575f5ffd5b615c8786828501615ad2565b82525060208201516001600160401b03811115615ca2575f5ffd5b615cae86828501615b4c565b602083015250615cc18560408401615bda565b6040820152615cd260a083016150db565b6060820152615ce360c083016150f2565b6080820152615cf460e083016150d0565b60a0820152949350505050565b5f60208284031215615d11575f5ffd5b81516001600160401b03811115615d26575f5ffd5b61122084828501615ad2565b6001600160401b038181168382160190811115610f1357610f13614f05565b5f60208284031215615d61575f5ffd5b81516001600160401b03811115615d76575f5ffd5b61122084828501615b4c565b61ffff8281168282160390811115610f1357610f13614f05565b5f61ffff831680615daf57615daf614ef1565b8061ffff84160491505092915050565b8381526020808201849052825160ff1660408301528201516001600160401b0316606082015260808101611220565b5f60208284031215615dfe575f5ffd5b81516001600160401b03811115615e13575f5ffd5b8201601f81018413615e23575f5ffd5b8051615e2e81614678565b604051615e3b82826143ef565b80915082815260208101915060208360051b850101925086831115615e5e575f5ffd5b6020840193505b8284101561431e578351615e7881613f87565b825260209384019390910190615e65565b602080825282518282018190525f918401906040840190835b8181101561489c5783516001600160a01b0316835260209384019390920191600101615ea2565b60018060a01b03881681528660208201526001600160401b03861660408201528460608201526001600160401b03841660808201528260a082015260e060c08201525f615a1a60e0830184613f47565b5f6001600160401b0382166001600160401b038103615f3a57615f3a614f05565b60010192915050565b5f615f4e8284613ed2565b741d103ab73430b7323632b21030b9b9b2b93a34b7b760591b81526015019392505050565b81810381811115610f1357610f13614f0556fef595240b351bc8f951c2f53b26f4e78c32cb62122cf76c19b7fdda7d4968e183f595240b351bc8f951c2f53b26f4e78c32cb62122cf76c19b7fdda7d4968e184a2646970667358221220a3b8e42c00a0c50076ca41aeefbb2aa59ec9cf3399c1fb0e5b8e51ae624283f164736f6c634300081e0033",
  "deployedBytecode": "0x6080604052600436106103cd575f3560e01c806376d0e357116101fc578063adb7c3f711610117578063d0a92a08116100aa578063e900aa3311610079578063e900aa3314610d4f578063ec5946db14610d62578063f2fde38b14610d75578063f61921b214610d94578063fb55e9f314610dc0576103cd565b8063d0a92a0814610cad578063d5f3948814610ccc578063e30c397814610cff578063e5a6b10f14610d1c576103cd565b8063bff852fa116100e6578063bff852fa14610c22578063c258134814610c36578063c805dd0f14610c55578063ca7da98b14610c81576103cd565b8063adb7c3f714610b9f578063aeb2ffc114610bb8578063b207e73014610be4578063b783922b14610c03576103cd565b80638d3d8b381161018f578063a58f68031161015e578063a58f680314610b01578063a667533f14610b14578063a77fc1a414610b40578063a9e954b914610b6c576103cd565b80638d3d8b3814610a735780638da5cb5b14610a9257806393d5185c14610aae5780639cc56e6714610ae2576103cd565b80637bd88218116101cb5780637bd88218146109ea5780637c1fbda314610a09578063838d44e214610a285780638cfcdea214610a47576103cd565b806376d0e3571461095757806379ba5097146109765780637b1039991461098a5780637bbdb96e146109bd576103cd565b80634cddf615116102ec57806359209b391161027f5780636d0d6a7e1161024e5780636d0d6a7e146108a35780636f07abcc146108c25780636fdaab7e146108e1578063715018a614610943576103cd565b806359209b391461081a5780636280bce81461084657806369978d7e146108655780636b58960a14610884576103cd565b80635304bba2116102bb5780635304bba2146107895780635479d940146107a857806354fd4d50146107da578063581f5094146107ee576103cd565b80634cddf615146106c55780634e6c13a1146106f15780635001f3b51461071057806352d1902d14610756576103cd565b8063378f35d9116103645780633fa59576116103335780633fa595761461060d578063439fab911461065b57806345ea6c171461067a5780634c9f72e3146106a6576103cd565b8063378f35d91461059c57806339a8653e146105c85780633b3195b7146105e75780633dc2b7a2146105fa576103cd565b80630aa4112a116103a05780630aa4112a146105045780631aea970b14610530578063234fe6e31461054f57806328a78d9b1461057b576103cd565b8063044ad7be1461045857806305e742ef1461048c57806306eb2c42146104b957806308b7e85e146104d8575b3480156103d8575f5ffd5b506103e65f3560f81c610dec565b6103f660ff5f3560f01c16610dec565b61040660ff5f3560e81c16610dec565b61041660ff5f3560e01c16610dec565b6040516020016104299493929190613ee9565b60408051601f198184030181529082905262461bcd60e51b825261044f91600401613f75565b60405180910390fd5b348015610463575f5ffd5b50610477610472366004613f9b565b610ed8565b60405190151581526020015b60405180910390f35b348015610497575f5ffd5b506104ab6104a6366004613fc6565b610f19565b604051908152602001610483565b3480156104c4575f5ffd5b506104ab6104d336600461403b565b611009565b3480156104e3575f5ffd5b506104f76104f2366004614079565b611228565b6040516104839190613f75565b34801561050f575f5ffd5b5061052361051e366004614079565b611248565b6040516104839190614114565b34801561053b575f5ffd5b506104ab61054a366004614177565b61149c565b34801561055a575f5ffd5b5061056e610569366004614079565b611549565b6040516104839190614208565b348015610586575f5ffd5b5061059a61059536600461403b565b6115be565b005b3480156105a7575f5ffd5b506105bb6105b636600461421b565b61162f565b6040516104839190614328565b3480156105d3575f5ffd5b506104ab6105e2366004614079565b611734565b6104ab6105f5366004614495565b611794565b6104ab610608366004614518565b611980565b348015610618575f5ffd5b5061062c610627366004614079565b6119d8565b604051610483949392919093845260208401929092526001600160401b03166040830152606082015260800190565b348015610666575f5ffd5b5061059a6106753660046145c1565b611a29565b348015610685575f5ffd5b5061069961069436600461403b565b611c5d565b60405161048391906145f2565b3480156106b1575f5ffd5b5061059a6106c036600461403b565b611d04565b3480156106d0575f5ffd5b506106e46106df366004614079565b611d45565b604051610483919061466a565b3480156106fc575f5ffd5b506104ab61070b36600461469a565b611db9565b34801561071b575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610483565b348015610761575f5ffd5b506104ab7f000000000000000000000000000000000000000000000000000000000000000081565b348015610794575f5ffd5b506106996107a33660046147c1565b6120c4565b3480156107b3575f5ffd5b507f0000000000000000000000000000000000000000000000000000000000000000610477565b3480156107e5575f5ffd5b506104f7612161565b3480156107f9575f5ffd5b5061080d61080836600461403b565b612191565b604051610483919061485c565b348015610825575f5ffd5b50610839610834366004614079565b61224b565b60405161048391906148a7565b348015610851575f5ffd5b506104ab610860366004614993565b6122c7565b348015610870575f5ffd5b5061059a61087f3660046149e1565b6122ea565b34801561088f575f5ffd5b5061047761089e366004613f9b565b6123e6565b3480156108ae575f5ffd5b506108396108bd366004614a28565b61243a565b3480156108cd575f5ffd5b5061056e6108dc366004614079565b612535565b3480156108ec575f5ffd5b5061092b6108fb366004614079565b5f9081525f516020615fa75f395f51905f526020526040902060090154600160781b90046001600160481b031690565b6040516001600160481b039091168152602001610483565b34801561094e575f5ffd5b5061059a61256f565b348015610962575f5ffd5b506104ab610971366004614a86565b612582565b348015610981575f5ffd5b5061059a6125e9565b348015610995575f5ffd5b5061073e7f000000000000000000000000000000000000000000000000000000000000000081565b3480156109c8575f5ffd5b506109d1612663565b6040516001600160e01b03199091168152602001610483565b3480156109f5575f5ffd5b506104ab610a04366004614ac5565b61266d565b348015610a14575f5ffd5b5061092b610a23366004614079565b612677565b348015610a33575f5ffd5b506104f7610a42366004614079565b61276c565b348015610a52575f5ffd5b50610a66610a6136600461421b565b6127ee565b6040516104839190614b91565b348015610a7e575f5ffd5b506104f7610a8d366004614079565b612900565b348015610a9d575f5ffd5b505f546001600160a01b031661073e565b348015610ab9575f5ffd5b50610acd610ac8366004614c4d565b612915565b60408051928352602083019190915201610483565b348015610aed575f5ffd5b506104ab610afc366004614cc8565b612ac8565b6104ab610b0f366004614ce8565b612b8e565b348015610b1f575f5ffd5b50610b33610b2e36600461421b565b612c4d565b6040516104839190614d0a565b348015610b4b575f5ffd5b50610b5f610b5a366004614079565b612cff565b6040516104839190614d1c565b348015610b77575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000003f6104ab565b348015610baa575f5ffd5b506304722eaf60e31b6109d1565b348015610bc3575f5ffd5b50610bd7610bd2366004614079565b612de7565b6040516104839190614d96565b348015610bef575f5ffd5b506104ab610bfe366004614de1565b612e19565b348015610c0e575f5ffd5b50610839610c1d366004614a28565b612e43565b348015610c2d575f5ffd5b506104f7612ec7565b348015610c41575f5ffd5b506104f7610c50366004614079565b612efe565b348015610c60575f5ffd5b50610c69612fcf565b6040516001600160401b039091168152602001610483565b348015610c8c575f5ffd5b50610ca0610c9b36600461421b565b612ff3565b6040516104839190614e05565b348015610cb8575f5ffd5b506104ab610cc7366004614e17565b613098565b348015610cd7575f5ffd5b5061073e7f000000000000000000000000000000000000000000000000000000000000000081565b348015610d0a575f5ffd5b506001546001600160a01b031661073e565b348015610d27575f5ffd5b5061073e7f000000000000000000000000000000000000000000000000000000000000000081565b6104ab610d5d366004614e4a565b613122565b61059a610d70366004614079565b613192565b348015610d80575f5ffd5b5061059a610d8f366004613f9b565b6132eb565b348015610d9f575f5ffd5b50610db3610dae366004614079565b61335b565b6040516104839190614e88565b348015610dcb575f5ffd5b50610ddf610dda36600461403b565b61356c565b6040516104839190614e9a565b6040805160028082528183019092526060915f91906020820181803683370190505090505f610e1c601085614f19565b610e27906030614f3a565b90505f610e35601086614f53565b610e40906030614f3a565b905060398260ff161115610e5c57610e59600783614f3a565b91505b60398160ff161115610e7657610e73600782614f3a565b90505b8160f81b835f81518110610e8c57610e8c614f74565b60200101906001600160f81b03191690815f1a9053508060f81b83600181518110610eb957610eb9614f74565b60200101906001600160f81b03191690815f1a90535091949350505050565b6001600160a01b0381165f9081527ff595240b351bc8f951c2f53b26f4e78c32cb62122cf76c19b7fdda7d4968e185602052604081205460ff165b92915050565b5f80610f467f00000000000000000000000000000000000000000000000000000000000000006003614f88565b610f70907f0000000000000000000000000000000000000000000000000000000000000000614f9f565b9050808362ffffff161080610fb2575080610fb062ffffff85167f0000000000000000000000000000000000000000000000000000000000000000614f9f565b105b15610fc957610fc18185614f88565b915050610f13565b610ff862ffffff84167f0000000000000000000000000000000000000000000000000000000000000000614f9f565b610fc19085614f88565b5092915050565b5f6110685f516020615f875f395f51905f525b335f908152600291909101602090815260409182902054825180840190935260158352743ab730baba3437b934bd32b2103932b837b93a32b960591b9183019190915260ff169061361b565b5f826001600160401b038111156110815761108161433a565b6040519080825280602002602001820160405280156110d057816020015b604080516080810182525f80825260208083018290529282015260608082015282525f1990920191018161109f5790505b5090505f5b838110156112165760405180608001604052808686848181106110fa576110fa614f74565b905060200281019061110c9190614fb2565b356001600160401b0316815260200186868481811061112d5761112d614f74565b905060200281019061113f9190614fb2565b611150906040810190602001614fd0565b63ffffffff16815260200186868481811061116d5761116d614f74565b905060200281019061117f9190614fb2565b60400135815260200186868481811061119a5761119a614f74565b90506020028101906111ac9190614fb2565b6111ba906060810190614fe9565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050915250825183908390811061120357611203614f74565b60209081029190910101526001016110d5565b5061122081611db9565b949350505050565b606061123382612677565b505060408051602081019091525f8152919050565b61128b6040805160c0810182525f80825260208083018290528284018290526060808401526080830182905283518085019094528184528301529060a082015290565b5f8281525f516020615fa75f395f51905f526020526040902060018101805461ffff91906112b89061502b565b90501115611313576040805160c0810182525f8082526020808301829052828401829052835180820185528281526060840152600290940154608083015282518084019093528083529282019290925260a082015292915050565b60038101541561143c576040805160c08101825282546001600160a01b0381168252600160a01b810462ffffff166020830152600160b81b90046001600160481b0316918101919091526001820180546060830191906113729061502b565b80601f016020809104026020016040519081016040528092919081815260200182805461139e9061502b565b80156113e95780601f106113c0576101008083540402835291602001916113e9565b820191905f5260205f20905b8154815290600101906020018083116113cc57829003601f168201915b5050509183525050600283015460208083019190915260408051808201825260089095015462010000810460ff16865264010000000090046001600160401b031691850191909152019190915292915050565b6040805160c08101825282546001600160a01b0381168252600160a01b900462ffffff1660208201526009830154600160781b90046001600160481b0316918101919091526001820180546060830191906113729061502b565b50919050565b5f6114b35f516020615f875f395f51905f5261101c565b6114ed6001600160401b03861615156040518060400160405280600d81526020016c06261642074696d657374616d7609c1b81525061361b565b604080518082019091526016815275726573756c742063616e6e6f7420626520656d70747960501b6020820152611527908315159061361b565b61153d866001600160401b03168686868661362d565b90505b95945050505050565b60405163234fe6e360e01b8152600481018290525f9073__$713c4f4487e8756194dbc5b3b091cd4345$__9063234fe6e3906024015b602060405180830381865af415801561159a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f139190615069565b6115c661367b565b6040516328a78d9b60e01b815273__$713c4f4487e8756194dbc5b3b091cd4345$__906328a78d9b906115ff9085908590600401615084565b5f6040518083038186803b158015611615575f5ffd5b505af4158015611627573d5f5f3e3d5ffd5b505050505050565b611637613d89565b5f61164a836001600160401b0316612535565b90506001816006811115611660576116606141e4565b148061167d5750600481600681111561167b5761167b6141e4565b145b1561149657604051630d0843c160e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201526001600160401b038416602482015273__$713c4f4487e8756194dbc5b3b091cd4345$__906368421e08906044015f60405180830381865af4158015611706573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261172d919081019061526f565b9392505050565b5f6117607f00000000000000000000000000000000000000000000000000000000000000006004614f88565b61178a907f0000000000000000000000000000000000000000000000000000000000000000614f9f565b610f139083614f88565b5f346117a43a8460200151610f19565b6117dc81831015604051806040016040528060138152602001721a5b9cdd59999a58da595b9d081c995dd85c99606a1b81525061361b565b61181a6117ea82600a614f88565b8311156040518060400160405280600f81526020016e1d1bdbc81b5d58da081c995dd85c99608a1b81525061361b565b84611850611827826136a7565b6040518060400160405280600b81526020016a696e76616c696420534c4160a81b81525061361b565b846119165f825f01516001600160a01b03163b1180156118d4575081516040516323d0872b60e11b81523060048201526001600160a01b03909116906347a10e5690602401602060405180830381865afa1580156118b0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118d4919061533c565b80156118e857505f826020015162ffffff16115b6040518060400160405280601081526020016f696e76616c69642063616c6c6261636b60801b81525061361b565b8551602087015161192a9190348b8b6136e2565b9450336001600160a01b03167ffbe74eb38ea9de3d74d481a4f701ae121d794895c5797db8260d06d317901d263a34888c8c60405161196d95949392919061535b565b60405180910390a2505050509392505050565b5f61172d836040518060600160405280602061ffff168152602001855f0160208101906119ad91906153c2565b60ff1681526020908101906119c8906040880190880161421b565b6001600160401b03169052612b8e565b5f5f5f5f5f6119e68661375e565b600981015460058201546004909201546001600160881b0319608883901b16999298506001600160401b03600160c01b9182900481169850910416945092505050565b5f546001600160a01b031680611a5f5781806020019051810190611a4d91906153dd565b92509050611a5a8161377a565b611aa7565b336001600160a01b03821614611aa75760405162461bcd60e51b815260206004820152600d60248201526c3737ba103a34329037bbb732b960991b604482015260640161044f565b611ab082613793565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe5415801590611b2157507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbe547f00000000000000000000000000000000000000000000000000000000000000003f145b15611b6e5760405162461bcd60e51b815260206004820152601c60248201527f616c726561647920696e697469616c697a656420636f64656861736800000000604482015260640161044f565b7f00000000000000000000000000000000000000000000000000000000000000003f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc600201557f00000000000000000000000000000000000000000000000000000000000000003f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611c125f546001600160a01b031690565b6001600160a01b03167fe73e754121f0bad1327816970101955bfffdf53d270ac509d777c25be070d7f6611c44612161565b604051611c519190613f75565b60405180910390a45050565b60605f826001600160401b03811115611c7857611c7861433a565b604051908082528060200260200182016040528015611ca1578160200160208202803683370190505b5090505f5b8151811015611cfa57848482818110611cc157611cc1614f74565b90506020020135828281518110611cda57611cda614f74565b6001600160401b0390921660209283029190910190910152600101611ca6565b50611220816120c4565b611d0c61367b565b604051634c9f72e360e01b815273__$713c4f4487e8756194dbc5b3b091cd4345$__90634c9f72e3906115ff9085908590600401615084565b604051634cddf61560e01b8152600481018290525f9073__$713c4f4487e8756194dbc5b3b091cd4345$__90634cddf61590602401602060405180830381865af4158015611d95573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f139190615439565b5f611dd05f516020615f875f395f51905f5261101c565b5f5b82518110156120ae575f838281518110611dee57611dee614f74565b6020908102919091010151516001600160401b031690506001611e1082612535565b6006811115611e2157611e216141e4565b14611f1e577f4df64445edc775fba59db44b8001852fb1b777eea88fd54f04572dd114e3ff7f848381518110611e5957611e59614f74565b60200260200101515f0151611e6c612ec7565b604051638f191e5f60e01b815273__$713c4f4487e8756194dbc5b3b091cd4345$__90638f191e5f90611ea490600190600401614208565b5f60405180830381865af4158015611ebe573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611ee59190810190615452565b604051602001611ef6929190615496565b60408051601f1981840301815290829052611f1192916154b6565b60405180910390a16120a5565b426001600160401b0316848381518110611f3a57611f3a614f74565b6020026020010151602001516001600160401b03161180611f8d5750611f8d848381518110611f6b57611f6b614f74565b6020026020010151602001516001600160401b03166001600160401b03161590565b80611fb55750838281518110611fa557611fa5614f74565b602002602001015160600151515f145b15612010577f4df64445edc775fba59db44b8001852fb1b777eea88fd54f04572dd114e3ff7f848381518110611fed57611fed614f74565b60200260200101515f0151612000612ec7565b604051602001611ef691906154d7565b61209884838151811061202557612025614f74565b60200260200101515f01516001600160401b031685848151811061204b5761204b614f74565b60200260200101516020015186858151811061206957612069614f74565b60200260200101516040015187868151811061208757612087614f74565b60200260200101516060015161380c565b6120a29084614f9f565b92505b50600101611dd2565b5080156120bf576120bf338261394a565b919050565b604051633ab5a66d60e11b815260609073__$713c4f4487e8756194dbc5b3b091cd4345$__9063756b4cda90612120907f0000000000000000000000000000000000000000000000000000000000000000908690600401615507565b5f60405180830381865af415801561213a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f139190810190615565565b606061218c7f000000000000000000000000000000000000000000000000000000000000000061397d565b905090565b6060816001600160401b038111156121ab576121ab61433a565b6040519080825280602002602001820160405280156121d4578160200160208202803683370190505b5090505f5b82811015611002576122028484838181106121f6576121f6614f74565b90506020020135612535565b82828151811061221457612214614f74565b6020026020010190600681111561222d5761222d6141e4565b90816006811115612240576122406141e4565b9052506001016121d9565b612253613dd5565b6040516359209b3960e01b81526004810183905273__$713c4f4487e8756194dbc5b3b091cd4345$__906359209b39906024015f60405180830381865af41580156122a0573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f139190810190615792565b5f6122de5f516020615f875f395f51905f5261101c565b61154085858585612582565b335f9081527ff595240b351bc8f951c2f53b26f4e78c32cb62122cf76c19b7fdda7d4968e1866020908152604080832086845290915290819020905163faf9bbed60e01b815273__$713c4f4487e8756194dbc5b3b091cd4345$__9163faf9bbed9161235d9190869086906004016157c3565b602060405180830381865af4158015612378573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061239c919061580d565b5082336001600160a01b03167f23756db25709786dbc09e6af056afb44fb8ed4fb0201b7cbc24aecc8be0a45f684846040516123d9929190615824565b60405180910390a3505050565b5f7f00000000000000000000000000000000000000000000000000000000000000008015610f135750816001600160a01b031661242a5f546001600160a01b031690565b6001600160a01b03161492915050565b612442613dd5565b5f5f73__$713c4f4487e8756194dbc5b3b091cd4345$__631600b78b8787876040518463ffffffff1660e01b815260040161247f939291906158d9565b5f60405180830381865af4158015612499573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526124c09190810190615989565b909250905033327f7a9001dc4425127400f09e4c0b02908ad0e1f642ee9c92932a222c686674648284893560208b013560408c0161250460c08e0160a08f0161421b565b61251160c08f018f614fe9565b60405161252497969594939291906159cc565b60405180910390a395945050505050565b604051631bc1eaf360e21b8152600481018290525f9073__$713c4f4487e8756194dbc5b3b091cd4345$__90636f07abcc9060240161157f565b61257761367b565b6125805f61377a565b565b5f6125995f516020615f875f395f51905f5261101c565b604080518082019091526016815275726573756c742063616e6e6f7420626520656d70747960501b60208201526125d3908315159061361b565b611540856001600160401b03164286868661362d565b60015433906001600160a01b031681146126575760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161044f565b6126608161377a565b50565b5f61218c30613a1e565b5f61172d83611734565b604051637c1fbda360e01b8152600481018290525f9073__$713c4f4487e8756194dbc5b3b091cd4345$__90637c1fbda390602401602060405180830381865af49250505080156126e5575060408051601f3d908101601f191682019092526126e291810190615a27565b60015b612752576126f1615a40565b806308c379a0036127195750612705615a58565b80612710575061271b565b61149681613a5c565b505b3d808015612744576040519150601f19603f3d011682016040523d82523d5f602084013e612749565b606091505b50611496613a76565b6001600160481b038116801561100257611002338261394a565b606073__$713c4f4487e8756194dbc5b3b091cd4345$__634cbc7ff861279184612535565b6040518263ffffffff1660e01b81526004016127ad9190614208565b5f60405180830381865af41580156127c7573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f139190810190615452565b6128846040805161014081019091525f60c0820181815260e083018290526060610100840152610120830191909152819081526040805160a0810182525f808252602082810182905292820181905260608083015260808201529101908152604080516060810182525f80825260208281018290529282015291019081525f602082018190526040820181905260609091015290565b60405163467e6f5160e11b81526001600160401b038316600482015273__$713c4f4487e8756194dbc5b3b091cd4345$__90638cfcdea2906024015f60405180830381865af41580156128d9573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f139190810190615c27565b606061290b82612ff3565b6060015192915050565b5f80805b87811015612abc575f89898381811061293457612934614f74565b602002919091013591506001905061294b82612535565b600681111561295c5761295c6141e4565b03612ab3575f61296b8261375e565b8054909150600160a01b900462ffffff16156129fb57604080516060810182525f8152600883015461ffff62010000820416602083015264010000000090046001600160401b0316918101919091526129c79088908890613098565b81546129e0908990600160a01b900462ffffff16610f19565b6129ea9190614f9f565b6129f49085614f9f565b9350612a63565b60408051606081018252600883015461ffff808216835262010000820416602083015264010000000090046001600160401b031691810191909152612a439088908890613098565b612a4c88611734565b612a569190614f9f565b612a609085614f9f565b93505b6008810154612a839064010000000090046001600160401b031687614f88565b612a8d9085614f9f565b6009820154909450612aaf90600160781b90046001600160481b031686614f9f565b9450505b50600101612919565b50965096945050505050565b604051631a3b01e960e21b8152600481018290525f90612b85906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906368ec07a490602401602060405180830381865afa158015612b31573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b55919061533c565b604051806040016040528060128152602001710eadcd6dcdeeedc40e4c2c8dedc40d0c2e6d60731b81525061361b565b61172d83611734565b5f34612b993a611734565b612bd181831015604051806040016040528060138152602001721a5b9cdd59999a58da595b9d081c995dd85c99606a1b81525061361b565b612bdf6117ea82600a614f88565b83612bec611827826136a7565b612bf9335f3489896136e2565b9350336001600160a01b03167ffbe74eb38ea9de3d74d481a4f701ae121d794895c5797db8260d06d317901d263a34878a8a604051612c3c95949392919061535b565b60405180910390a250505092915050565b612c8360405180608001604052805f6001600160a01b031681526020015f62ffffff168152602001606081526020015f81525090565b60405163a667533f60e01b81526001600160401b038316600482015273__$713c4f4487e8756194dbc5b3b091cd4345$__9063a667533f906024015f60405180830381865af4158015612cd8573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f139190810190615d01565b604080518082019091525f8152606060208201525f612d1d8361224b565b90506040518060400160405280825f015160ff811115612d3f57612d3f6141e4565b60ff16815260200173__$39c1c75f9ff01712a7ae2d1d1d8c462aa1$__6371aad10d84604051602001612d7291906148a7565b6040516020818303038152906040526040518263ffffffff1660e01b8152600401612d9d9190613f75565b5f60405180830381865af4158015612db7573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612dde9190810190615452565b90529392505050565b612def613e50565b6040518060400160405280612e0384611248565b8152602001612e118461335b565b905292915050565b5f612e305f516020615f875f395f51905f5261101c565b61153d868663ffffffff1686868661149c565b612e4b613dd5565b604051631600b78b60e01b815273__$713c4f4487e8756194dbc5b3b091cd4345$__90631600b78b90612e86908790879087906004016158d9565b5f60405180830381865af4158015612ea0573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526115409190810190615989565b60408051808201909152601e81527f5769744f7261636c65547275737461626c654578706572696d656e74616c0000602082015290565b606073__$39c1c75f9ff01712a7ae2d1d1d8c462aa1$__6371aad10d73__$713c4f4487e8756194dbc5b3b091cd4345$__6359209b39856040518263ffffffff1660e01b8152600401612f5391815260200190565b5f60405180830381865af4158015612f6d573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612f949190810190615792565b604051602001612fa491906148a7565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016127ad9190613f75565b5f5f516020615f875f395f51905f525461218c906001600160401b03166001615d32565b6040805160a0810182525f80825260208201819052918101829052606080820152608081019190915260405163ca7da98b60e01b81526001600160401b038316600482015273__$713c4f4487e8756194dbc5b3b091cd4345$__9063ca7da98b906024015f60405180830381865af4158015613071573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f139190810190615d51565b5f6020825f015161ffff16116130ae575f613100565b81516020906130be908290615d82565b6130c89190615d9c565b61ffff166130f67f000000000000000000000000000000000000000000000000000000000000000086614f88565b6131009190614f88565b6040830151613118906001600160401b031685614f88565b6112209190614f9f565b5f611220846040518060600160405280602061ffff168152602001865f01602081019061314f91906153c2565b60ff16815260209081019061316a906040890190890161421b565b6001600160401b031690526040805180820190915233815262ffffff86166020820152611794565b8060018061319f83612535565b60068111156131b0576131b06141e4565b1461323b57604051638f191e5f60e01b81526132369073__$713c4f4487e8756194dbc5b3b091cd4345$__90638f191e5f906131f0908590600401614208565b5f60405180830381865af415801561320a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526132319190810190615452565b613a5c565b505050565b5f6132458461375e565b90505f3460098301546132689190600160781b90046001600160481b0316614f9f565b6009830180546001600160481b038316600160781b0268ffffffffffffffffff60781b19909116179055604080516001600160401b03881681523360208201523a818301526060810183905290519192507f66f95ec285ca572fa1cac40e7019e14ab45a8fc619c6405222e8af55534c2f67919081900360800190a15050505050565b6132f361367b565b600180546001600160a01b0383166001600160a01b031990911681179091556133235f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6133a16040518060a001604052805f6001600160a01b031681526020015f6001600160401b031681526020015f63ffffffff1681526020015f8152602001606081525090565b5f8281525f516020615fa75f395f51905f526020526040902060018101805461ffff91906133ce9061502b565b905011156134125750506040805160a0810182525f808252602080830182905282840182905260608301829052835191825281019092526080810191909152919050565b600381015415613507576040805160a08101825260048301546001600160a01b038116825263ffffffff600160a01b82048116602080850191909152600160c01b90920490911c1691810191909152600582015460608201526006820180546080830191906134809061502b565b80601f01602080910402602001604051908101604052809291908181526020018280546134ac9061502b565b80156134f75780601f106134ce576101008083540402835291602001916134f7565b820191905f5260205f20905b8154815290600101906020018083116134da57829003601f168201915b5050505050815250915050919050565b6040805160a08101825260048301546001600160a01b038116825260098401546001600160401b03600160c01b9182900416602084015263ffffffff91041691810191909152600582015460608201526006820180546080830191906134809061502b565b6060816001600160401b038111156135865761358661433a565b6040519080825280602002602001820160405280156135bf57816020015b6135ac613d89565b8152602001906001900390816135a45790505b5090505f5b82811015611002576135f68484838181106135e1576135e1614f74565b90506020020160208101906105b6919061421b565b82828151811061360857613608614f74565b60209081029190910101526001016135c4565b816136295761362981613a5c565b5050565b5f61366f86868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061380c92505050565b9050611540338261394a565b5f546001600160a01b031633146125805760405163118cdaa760e01b815233600482015260240161044f565b5f5f826020015161ffff161180156136c85750607f826020015161ffff1611155b8015610f13575050604001516001600160401b0316151590565b5f6136f08686868686613a81565b90507ffb94adf28ab7e538d2691d90927f622cbc1100eae6afec58052efdee6c98a61681346040518060400160405280866020015160ff16815260200186604001516001600160401b031681525060405161374d93929190615dbf565b60405180910390a195945050505050565b5f9081525f516020615fa75f395f51905f526020526040902090565b600180546001600160a01b031916905561266081613bec565b73__$713c4f4487e8756194dbc5b3b091cd4345$__634c9f72e3828060200190518101906137c19190615dee565b6040518263ffffffff1660e01b81526004016137dd9190615e89565b5f6040518083038186803b1580156137f3575f5ffd5b505af4158015613805573d5f5f3e3d5ffd5b5050505050565b5f6138c86001604051631bc1eaf360e21b81526004810188905273__$713c4f4487e8756194dbc5b3b091cd4345$__90636f07abcc90602401602060405180830381865af4158015613860573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138849190615069565b6006811115613895576138956141e4565b14604051806040016040528060148152602001736e6f7420696e20506f737465642073746174757360601b81525061361b565b604051637102a0df60e11b815273__$713c4f4487e8756194dbc5b3b091cd4345$__9063e20541be9061390b9033903a9043908b908b908b908b90600401615ec9565b602060405180830381865af4158015613926573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611540919061580d565b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015613236573d5f5f3e3d5ffd5b60605f61398983613c3b565b6001600160401b038111156139a0576139a061433a565b6040519080825280601f01601f1916602001820160405280156139ca576020820181803683370190505b5090505f5b8151811015611002578381602081106139ea576139ea614f74565b1a60f81b828281518110613a0057613a00614f74565b60200101906001600160f81b03191690815f1a9053506001016139cf565b604080516001600160a01b038316602082015246918101919091525f906060015b604051602081830303815290604052805190602001209050919050565b613a64612ec7565b81604051602001610429929190615496565b612580613231613c73565b5f5f516020615f875f395f51905f5280545f90613aa6906001600160401b0316615f19565b91906101000a8154816001600160401b0302191690836001600160401b0316021790556001600160401b031690505f613ade8261375e565b6009810180546001600160c01b0316600160c01b436001600160401b0316021790559050613b158285613b1086613cc2565b613d15565b60098201805460889290921c6001600160c01b031990921691909117600160781b6001600160481b0388160217905580546001600160a01b0319166001600160a01b0388161781556002810184905562ffffff861615613b8a57805462ffffff60a01b1916600160a01b62ffffff8816021781555b82516008909101805460208501516040909501516001600160401b0316640100000000026bffffffffffffffff000000001961ffff968716620100000263ffffffff199093169690941695909517179190911692909217909155949350505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5b60208110156120bf57818160208110613c5857613c58614f74565b1a60f81b6001600160f81b031916156120bf57600101613c3d565b60606040518060400160405260108152806020016f2bb4ba27b930b1b632a230ba30a634b160811b815250604051602001613cae9190615f43565b604051602081830303815290604052905090565b5f815f015182602001518360400151604051602001613a3f9392919060f093841b6001600160f01b031990811682529290931b909116600283015260c01b6001600160c01b0319166004820152600c0190565b5f613d1f30613a1e565b613d2a600143615f73565b604080516001600160e01b031990931660208401529040908201526001600160401b03851660608201526080810184905260a0810183905260c0016040516020818303038152906040528051906020012090509392505050565b905290565b6040805160a0810182525f808252602080830182905282840182905283516080810185528281529081018290529283015260608281018190529091908201908152602001606081525090565b6040805160c08101909152805f81526020015f81526020015f81526020015f81526020015f6001600160401b03168152602001613d84604080516101008101909152606060c082019081525f60e0830152819081525f6020820181905260408201819052606082018190526080820181905260a09091015290565b6040518060400160405280613e9e6040805160c0810182525f80825260208083018290528284018290526060808401526080830182905283518085019094528184528301529060a082015290565b81526040805160a0810182525f80825260208281018290529282018190526060808301919091526080820152910190613d84565b5f81518060208401855e5f93019283525090919050565b7f5769746e657455706772616461626c65426173653a206e6f7420696d706c656d8152680cadce8cac8744060f60bb1b60208201525f61153d613f41613f3b613f35602986018a613ed2565b88613ed2565b86613ed2565b84613ed2565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61172d6020830184613f47565b6001600160a01b0381168114612660575f5ffd5b5f60208284031215613fab575f5ffd5b813561172d81613f87565b62ffffff81168114612660575f5ffd5b5f5f60408385031215613fd7575f5ffd5b823591506020830135613fe981613fb6565b809150509250929050565b5f5f83601f840112614004575f5ffd5b5081356001600160401b0381111561401a575f5ffd5b6020830191508360208260051b8501011115614034575f5ffd5b9250929050565b5f5f6020838503121561404c575f5ffd5b82356001600160401b03811115614061575f5ffd5b61406d85828601613ff4565b90969095509350505050565b5f60208284031215614089575f5ffd5b5035919050565b60018060a01b03815116825262ffffff60208201511660208301526001600160481b0360408201511660408301525f606082015160e060608501526140d860e0850182613f47565b90506080830151608085015260a083015161410c60a0860182805160ff1682526020908101516001600160401b0316910152565b509392505050565b602081525f61172d6020830184614090565b6001600160401b0381168114612660575f5ffd5b5f5f83601f84011261414a575f5ffd5b5081356001600160401b03811115614160575f5ffd5b602083019150836020828501011115614034575f5ffd5b5f5f5f5f5f6080868803121561418b575f5ffd5b853561419681614126565b945060208601356141a681614126565b93506040860135925060608601356001600160401b038111156141c7575f5ffd5b6141d38882890161413a565b969995985093965092949392505050565b634e487b7160e01b5f52602160045260245ffd5b60078110612660576126606141e4565b60208101614215836141f8565b91905290565b5f6020828403121561422b575f5ffd5b813561172d81614126565b6001600160401b03815116825270ffffffffffffffffffffffffffffffffff1960208201511660208301526001600160481b0360408201511660408301525f606082015160a06060850152610120840161ffff82511660a086015261ffff60208301511660c08601526001600160401b0360408301511660e0860152606082015191506080610100860152808251808352610140870191506020840193505f92505b808310156143045783516001600160601b031916825260209384019360019390930192909101906142d8565b5060808501519250858103608087015261431e8184613f47565b9695505050505050565b602081525f61172d6020830184614236565b634e487b7160e01b5f52604160045260245ffd5b606081018181106001600160401b038211171561436d5761436d61433a565b60405250565b604081018181106001600160401b038211171561436d5761436d61433a565b608081018181106001600160401b038211171561436d5761436d61433a565b60a081018181106001600160401b038211171561436d5761436d61433a565b60c081018181106001600160401b038211171561436d5761436d61433a565b601f8201601f191681016001600160401b03811182821017156144145761441461433a565b6040525050565b60405161442960c0826143ef565b90565b61ffff81168114612660575f5ffd5b5f6060828403121561444b575f5ffd5b6040516144578161434e565b80915082356144658161442c565b815260208301356144758161442c565b6020820152604083013561448881614126565b6040919091015292915050565b5f5f5f83850360c08112156144a8575f5ffd5b843593506144b9866020870161443b565b92506040607f19820112156144cc575f5ffd5b506040516144d981614373565b60808501356144e781613f87565b815260a08501356144f781613fb6565b602082015292959194509192509050565b5f60408284031215611496575f5ffd5b5f5f60608385031215614529575f5ffd5b8235915061453a8460208501614508565b90509250929050565b5f6001600160401b0382111561455b5761455b61433a565b50601f01601f191660200190565b5f82601f830112614578575f5ffd5b813561458381614543565b60405161459082826143ef565b8281528560208487010111156145a4575f5ffd5b826020860160208301375f92810160200192909252509392505050565b5f602082840312156145d1575f5ffd5b81356001600160401b038111156145e6575f5ffd5b61122084828501614569565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b8281101561464957603f19878603018452614634858351613f47565b94506020938401939190910190600101614618565b50929695505050505050565b6101008110614666576146666141e4565b9052565b60208101610f138284614655565b5f6001600160401b038211156146905761469061433a565b5060051b60200190565b5f602082840312156146aa575f5ffd5b81356001600160401b038111156146bf575f5ffd5b8201601f810184136146cf575f5ffd5b80356146da81614678565b6040516146e782826143ef565b80915082815260208101915060208360051b85010192508683111561470a575f5ffd5b602084015b838110156147b65780356001600160401b0381111561472c575f5ffd5b85016080818a03601f19011215614741575f5ffd5b60405161474d81614392565b602082013561475b81614126565b8152604082013561476b81614126565b60208201526060820135604082015260808201356001600160401b03811115614792575f5ffd5b6147a18b602083860101614569565b6060830152508452506020928301920161470f565b509695505050505050565b5f602082840312156147d1575f5ffd5b81356001600160401b038111156147e6575f5ffd5b8201601f810184136147f6575f5ffd5b803561480181614678565b60405161480e82826143ef565b80915082815260208101915060208360051b850101925086831115614831575f5ffd5b6020840193505b8284101561431e57833561484b81614126565b825260209384019390910190614838565b602080825282518282018190525f918401906040840190835b8181101561489c578351614888816141f8565b835260209384019390920191600101614875565b509095945050505050565b602081526148b9602082018351614655565b5f6020830151601481106148cf576148cf6141e4565b8060408401525060408301516060830152606083015160808301526001600160401b0360808401511660a083015260a083015160c080840152805160c060e0850152805160406101a08601526149296101e0860182613f47565b6020928301516101c08701529183015160ff166101008601525060408201519061495961012086018360ff169052565b606083015160ff1661014086015260808301516001600160401b0380821661016088015260a0909401519384166101808701529150611540565b5f5f5f5f606085870312156149a6575f5ffd5b843593506020850135925060408501356001600160401b038111156149c9575f5ffd5b6149d58782880161413a565b95989497509550505050565b5f5f5f604084860312156149f3575f5ffd5b8335925060208401356001600160401b03811115614a0f575f5ffd5b614a1b86828701613ff4565b9497909650939450505050565b5f5f5f60408486031215614a3a575f5ffd5b83356001600160401b03811115614a4f575f5ffd5b840160e08187031215614a60575f5ffd5b925060208401356001600160401b03811115614a7a575f5ffd5b614a1b8682870161413a565b5f5f5f5f60608587031215614a99575f5ffd5b8435614aa481614126565b93506020850135925060408501356001600160401b038111156149c9575f5ffd5b5f5f60408385031215614ad6575f5ffd5b823591506020830135613fe98161442c565b60018060a01b03815116825262ffffff60208201511660208301525f604082015160806040850152614b1d6080850182613f47565b606093840151949093019390935250919050565b60018060a01b0381511682526001600160401b036020820151166020830152604081015160408301525f606082015160a06060850152614b7460a0850182613f47565b6080938401516001600160a01b0316949093019390935250919050565b602081525f82516101006020840152614bae610120840182614ae8565b90506020840151601f19848303016040850152614bcb8282614b31565b9150506040840151614c08606085018261ffff815116825261ffff60208201511660208301526001600160401b0360408201511660408301525050565b5060608401516001600160881b03191660c084015260808401516001600160481b031660e084015260a0909301516001600160401b0316610100909201919091525090565b5f5f5f5f5f5f60808789031215614c62575f5ffd5b86356001600160401b03811115614c77575f5ffd5b614c8389828a01613ff4565b90975095505060208701356001600160401b03811115614ca1575f5ffd5b614cad89828a0161413a565b979a9699509760408101359660609091013595509350505050565b5f5f60408385031215614cd9575f5ffd5b50508035926020909101359150565b5f5f60808385031215614cf9575f5ffd5b8235915061453a846020850161443b565b602081525f61172d6020830184614ae8565b6020815260ff82511660208201525f60208301516040808401526112206060840182613f47565b60018060a01b0381511682526001600160401b03602082015116602083015263ffffffff6040820151166040830152606081015160608301525f608082015160a0608085015261122060a0850182613f47565b602081525f825160406020840152614db16060840182614090565b90506020840151601f198483030160408501526115408282614d43565b803563ffffffff811681146120bf575f5ffd5b5f5f5f5f5f60808688031215614df5575f5ffd5b853594506141a660208701614dce565b602081525f61172d6020830184614b31565b5f5f5f60a08486031215614e29575f5ffd5b8335925060208401359150614e41856040860161443b565b90509250925092565b5f5f5f60808486031215614e5c575f5ffd5b83359250614e6d8560208601614508565b91506060840135614e7d81613fb6565b809150509250925092565b602081525f61172d6020830184614d43565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b8281101561464957603f19878603018452614edc858351614236565b94506020938401939190910190600101614ec0565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60ff831680614f2b57614f2b614ef1565b8060ff84160491505092915050565b60ff8181168382160190811115610f1357610f13614f05565b5f60ff831680614f6557614f65614ef1565b8060ff84160691505092915050565b634e487b7160e01b5f52603260045260245ffd5b8082028115828204841417610f1357610f13614f05565b80820180821115610f1357610f13614f05565b5f8235607e19833603018112614fc6575f5ffd5b9190910192915050565b5f60208284031215614fe0575f5ffd5b61172d82614dce565b5f5f8335601e19843603018112614ffe575f5ffd5b8301803591506001600160401b03821115615017575f5ffd5b602001915036819003821315614034575f5ffd5b600181811c9082168061503f57607f821691505b60208210810361149657634e487b7160e01b5f52602260045260245ffd5b60078110612660575f5ffd5b5f60208284031215615079575f5ffd5b815161172d8161505d565b602080825281018290525f8360408301825b858110156150c65782356150a981613f87565b6001600160a01b0316825260209283019290910190600101615096565b5095945050505050565b80516120bf81614126565b80516001600160881b0319811681146120bf575f5ffd5b80516001600160481b03811681146120bf575f5ffd5b6001600160601b031981168114612660575f5ffd5b5f6080828403121561512d575f5ffd5b60405161513981614392565b80915082516151478161442c565b815260208301516151578161442c565b6020820152604083015161516a81614126565b604082015260608301516001600160401b03811115615187575f5ffd5b8301601f81018513615197575f5ffd5b80516151a281614678565b6040516151af82826143ef565b80915082815260208101915060208360051b8501019250878311156151d2575f5ffd5b6020840193505b828410156151fd5783516151ec81615108565b8252602093840193909101906151d9565b806060860152505050505092915050565b5f61521883614543565b60405161522582826143ef565b809250848152858585011115615239575f5ffd5b8484602083015e5f6020868301015250509392505050565b5f82601f830112615260575f5ffd5b61172d8383516020850161520e565b5f6020828403121561527f575f5ffd5b81516001600160401b03811115615294575f5ffd5b820160a081850312156152a5575f5ffd5b6040516152b1816143b1565b81516152bc81614126565b81526152ca602083016150db565b60208201526152db604083016150f2565b604082015260608201516001600160401b038111156152f8575f5ffd5b6153048682850161511d565b60608301525060808201516001600160401b03811115615322575f5ffd5b61532e86828501615251565b608083015250949350505050565b5f6020828403121561534c575f5ffd5b8151801515811461172d575f5ffd5b858152602081018590526001600160401b03841660408201526060810183905260e0810161431e608083018461ffff815116825261ffff60208201511660208301526001600160401b0360408201511660408301525050565b60ff81168114612660575f5ffd5b5f602082840312156153d2575f5ffd5b813561172d816153b4565b5f5f604083850312156153ee575f5ffd5b82516153f981613f87565b60208401519092506001600160401b03811115615414575f5ffd5b61542085828601615251565b9150509250929050565b805161010081106120bf575f5ffd5b5f60208284031215615449575f5ffd5b61172d8261542a565b5f60208284031215615462575f5ffd5b81516001600160401b03811115615477575f5ffd5b8201601f81018413615487575f5ffd5b6112208482516020840161520e565b5f6154a18285613ed2565b6101d160f51b81526115406002820185613ed2565b6001600160401b0383168152604060208201525f6112206040830184613f47565b5f6154e28284613ed2565b743a20696e76616c6964207265706f7274206461746160581b81526015019392505050565b6001600160a01b03831681526040602080830182905283519183018290525f91908401906060840190835b818110156155595783516001600160401b0316835260209384019390920191600101615532565b50909695505050505050565b5f60208284031215615575575f5ffd5b81516001600160401b0381111561558a575f5ffd5b8201601f8101841361559a575f5ffd5b80516155a581614678565b6040516155b282826143ef565b80915082815260208101915060208360051b8501019250868311156155d5575f5ffd5b602084015b838110156147b65780516001600160401b038111156155f7575f5ffd5b61560689602083890101615251565b845250602092830192016155da565b80516120bf816153b4565b5f60c08284031215615630575f5ffd5b60405161563c816143d0565b80915082516001600160401b03811115615654575f5ffd5b830160408186031215615665575f5ffd5b60405161567181614373565b81516001600160401b03811115615686575f5ffd5b61569287828501615251565b8252506020918201518282015282526156ac908401615615565b60208201526156bd60408401615615565b60408201526156ce60608401615615565b60608201526156df608084016150d0565b60808201526156f060a084016150d0565b60a08201525092915050565b5f60c0828403121561570c575f5ffd5b604051615718816143d0565b8091506157248361542a565b8152602083015160148110615737575f5ffd5b6020820152604083810151908201526060808401519082015261575c608084016150d0565b608082015260a08301516001600160401b03811115615779575f5ffd5b61578585828601615620565b60a0830152505092915050565b5f602082840312156157a2575f5ffd5b81516001600160401b038111156157b7575f5ffd5b611220848285016156fc565b83815260406020820181905281018290525f8360608301825b858110156147b65782356157ef81615108565b6001600160601b0319168252602092830192909101906001016157dc565b5f6020828403121561581d575f5ffd5b5051919050565b602080825281018290525f8360408301825b858110156150c657823561584981615108565b6001600160601b031916825260209283019290910190600101615836565b80356158728161442c565b61ffff16825260208101356158868161442c565b61ffff166020830152604081013561589d81614126565b6001600160401b0381166040840152505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6040808252843582820152602085013560608301525f906159009060808401908701615867565b60a085013561590e81614126565b6001600160401b031660e083015260c085013536869003601e19018112615933575f5ffd5b85016020810190356001600160401b0381111561594e575f5ffd5b80360382131561595c575f5ffd5b60e0610100850152615973610120850182846158b1565b915050828103602084015261431e8185876158b1565b5f5f6040838503121561599a575f5ffd5b82516159a581613f87565b60208401519092506001600160401b038111156159c0575f5ffd5b615420858286016156fc565b6001600160a01b038816815260208101879052604081018690526159f36060820186615867565b6001600160401b03841660c082015261010060e08201525f615a1a610100830184866158b1565b9998505050505050505050565b5f60208284031215615a37575f5ffd5b61172d826150f2565b5f60033d11156144295760045f5f3e505f5160e01c90565b5f60443d1015615a655790565b6040513d600319016004823e80513d60248201116001600160401b0382111715615a8e57505090565b80820180516001600160401b03811115615aa9575050505090565b3d8401600319018282016020011115615ac3575050505090565b61410c602082850101856143ef565b5f60808284031215615ae2575f5ffd5b604051615aee81614392565b8091508251615afc81613f87565b81526020830151615b0c81613fb6565b602082015260408301516001600160401b03811115615b29575f5ffd5b615b3585828601615251565b604083015250606092830151920191909152919050565b5f60a08284031215615b5c575f5ffd5b604051615b68816143b1565b8091508251615b7681613f87565b81526020830151615b8681614126565b60208201526040838101519082015260608301516001600160401b03811115615bad575f5ffd5b615bb985828601615251565b6060830152506080830151615bcd81613f87565b6080919091015292915050565b5f60608284031215615bea575f5ffd5b604051615bf68161434e565b8091508251615c048161442c565b81526020830151615c148161442c565b6020820152604083015161448881614126565b5f60208284031215615c37575f5ffd5b81516001600160401b03811115615c4c575f5ffd5b82016101008185031215615c5e575f5ffd5b615c6661441b565b81516001600160401b03811115615c7b575f5ffd5b615c8786828501615ad2565b82525060208201516001600160401b03811115615ca2575f5ffd5b615cae86828501615b4c565b602083015250615cc18560408401615bda565b6040820152615cd260a083016150db565b6060820152615ce360c083016150f2565b6080820152615cf460e083016150d0565b60a0820152949350505050565b5f60208284031215615d11575f5ffd5b81516001600160401b03811115615d26575f5ffd5b61122084828501615ad2565b6001600160401b038181168382160190811115610f1357610f13614f05565b5f60208284031215615d61575f5ffd5b81516001600160401b03811115615d76575f5ffd5b61122084828501615b4c565b61ffff8281168282160390811115610f1357610f13614f05565b5f61ffff831680615daf57615daf614ef1565b8061ffff84160491505092915050565b8381526020808201849052825160ff1660408301528201516001600160401b0316606082015260808101611220565b5f60208284031215615dfe575f5ffd5b81516001600160401b03811115615e13575f5ffd5b8201601f81018413615e23575f5ffd5b8051615e2e81614678565b604051615e3b82826143ef565b80915082815260208101915060208360051b850101925086831115615e5e575f5ffd5b6020840193505b8284101561431e578351615e7881613f87565b825260209384019390910190615e65565b602080825282518282018190525f918401906040840190835b8181101561489c5783516001600160a01b0316835260209384019390920191600101615ea2565b60018060a01b03881681528660208201526001600160401b03861660408201528460608201526001600160401b03841660808201528260a082015260e060c08201525f615a1a60e0830184613f47565b5f6001600160401b0382166001600160401b038103615f3a57615f3a614f05565b60010192915050565b5f615f4e8284613ed2565b741d103ab73430b7323632b21030b9b9b2b93a34b7b760591b81526015019392505050565b81810381811115610f1357610f13614f0556fef595240b351bc8f951c2f53b26f4e78c32cb62122cf76c19b7fdda7d4968e183f595240b351bc8f951c2f53b26f4e78c32cb62122cf76c19b7fdda7d4968e184a2646970667358221220a3b8e42c00a0c50076ca41aeefbb2aa59ec9cf3399c1fb0e5b8e51ae624283f164736f6c634300081e0033",
  "linkReferences": {
    "project/contracts/data/WitOracleDataLib.sol": {
      "WitOracleDataLib": [
        {
          "length": 20,
          "start": 6866
        },
        {
          "length": 20,
          "start": 6982
        },
        {
          "length": 20,
          "start": 7232
        },
        {
          "length": 20,
          "start": 8844
        },
        {
          "length": 20,
          "start": 8910
        },
        {
          "length": 20,
          "start": 9196
        },
        {
          "length": 20,
          "start": 9799
        },
        {
          "length": 20,
          "start": 10202
        },
        {
          "length": 20,
          "start": 10403
        },
        {
          "length": 20,
          "start": 10679
        },
        {
          "length": 20,
          "start": 10942
        },
        {
          "length": 20,
          "start": 11264
        },
        {
          "length": 20,
          "start": 11489
        },
        {
          "length": 20,
          "start": 11795
        },
        {
          "length": 20,
          "start": 12818
        },
        {
          "length": 20,
          "start": 13259
        },
        {
          "length": 20,
          "start": 13453
        },
        {
          "length": 20,
          "start": 13739
        },
        {
          "length": 20,
          "start": 14137
        },
        {
          "length": 20,
          "start": 15622
        },
        {
          "length": 20,
          "start": 15769
        },
        {
          "length": 20,
          "start": 15944
        }
      ]
    },
    "project/contracts/libs/WitOracleResultStatusLib.sol": {
      "WitOracleResultStatusLib": [
        {
          "length": 20,
          "start": 12986
        },
        {
          "length": 20,
          "start": 13427
        }
      ]
    }
  },
  "deployedLinkReferences": {
    "project/contracts/data/WitOracleDataLib.sol": {
      "WitOracleDataLib": [
        {
          "length": 20,
          "start": 5473
        },
        {
          "length": 20,
          "start": 5589
        },
        {
          "length": 20,
          "start": 5839
        },
        {
          "length": 20,
          "start": 7451
        },
        {
          "length": 20,
          "start": 7517
        },
        {
          "length": 20,
          "start": 7803
        },
        {
          "length": 20,
          "start": 8406
        },
        {
          "length": 20,
          "start": 8809
        },
        {
          "length": 20,
          "start": 9010
        },
        {
          "length": 20,
          "start": 9286
        },
        {
          "length": 20,
          "start": 9549
        },
        {
          "length": 20,
          "start": 9871
        },
        {
          "length": 20,
          "start": 10096
        },
        {
          "length": 20,
          "start": 10402
        },
        {
          "length": 20,
          "start": 11425
        },
        {
          "length": 20,
          "start": 11866
        },
        {
          "length": 20,
          "start": 12060
        },
        {
          "length": 20,
          "start": 12346
        },
        {
          "length": 20,
          "start": 12744
        },
        {
          "length": 20,
          "start": 14229
        },
        {
          "length": 20,
          "start": 14376
        },
        {
          "length": 20,
          "start": 14551
        }
      ]
    },
    "project/contracts/libs/WitOracleResultStatusLib.sol": {
      "WitOracleResultStatusLib": [
        {
          "length": 20,
          "start": 11593
        },
        {
          "length": 20,
          "start": 12034
        }
      ]
    }
  },
  "immutableReferences": {
    "9009": [
      {
        "length": 32,
        "start": 8552
      }
    ],
    "9013": [
      {
        "length": 32,
        "start": 3293
      }
    ],
    "9104": [
      {
        "length": 32,
        "start": 1895
      }
    ],
    "10085": [
      {
        "length": 32,
        "start": 2459
      },
      {
        "length": 32,
        "start": 5785
      },
      {
        "length": 32,
        "start": 8438
      },
      {
        "length": 32,
        "start": 10988
      }
    ],
    "10087": [
      {
        "length": 32,
        "start": 5990
      }
    ],
    "10089": [
      {
        "length": 32,
        "start": 3980
      },
      {
        "length": 32,
        "start": 4052
      }
    ],
    "10091": [
      {
        "length": 32,
        "start": 3916
      }
    ],
    "10093": [
      {
        "length": 32,
        "start": 3872
      },
      {
        "length": 32,
        "start": 5946
      },
      {
        "length": 32,
        "start": 12497
      }
    ],
    "45715": [
      {
        "length": 32,
        "start": 3373
      }
    ],
    "45824": [
      {
        "length": 32,
        "start": 1822
      },
      {
        "length": 32,
        "start": 2938
      },
      {
        "length": 32,
        "start": 6911
      },
      {
        "length": 32,
        "start": 7024
      },
      {
        "length": 32,
        "start": 7095
      },
      {
        "length": 32,
        "start": 7129
      }
    ],
    "45828": [
      {
        "length": 32,
        "start": 1974
      },
      {
        "length": 32,
        "start": 9193
      }
    ]
  },
  "inputSourceName": "project/contracts/core/trustable/WitOracleTrustableExperimental.sol",
  "buildInfoId": "solc-0_8_30-47301052af11a5aa5062e9b98ca44d5e142950cf"
}