{
  "_format": "hh-sol-artifact-1",
  "contractName": "XVSBridgeAdmin",
  "sourceName": "contracts/Bridge/XVSBridgeAdmin.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "XVSBridge_",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "calledContract",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "methodSignature",
          "type": "string"
        }
      ],
      "name": "Unauthorized",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ZeroAddressNotAllowed",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "signature",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "active",
          "type": "bool"
        }
      ],
      "name": "FunctionRegistryChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "version",
          "type": "uint8"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "oldAccessControlManager",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "newAccessControlManager",
          "type": "address"
        }
      ],
      "name": "NewAccessControlManager",
      "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"
    },
    {
      "stateMutability": "nonpayable",
      "type": "fallback"
    },
    {
      "inputs": [],
      "name": "XVSBridge",
      "outputs": [
        {
          "internalType": "contract IXVSProxyOFT",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "acceptOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "accessControlManager",
      "outputs": [
        {
          "internalType": "contract IAccessControlManagerV8",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "name": "functionRegistry",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "accessControlManager_",
          "type": "address"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "remoteChainId_",
          "type": "uint16"
        },
        {
          "internalType": "bytes",
          "name": "remoteAddress_",
          "type": "bytes"
        }
      ],
      "name": "isTrustedRemote",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pendingOwner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "accessControlManager_",
          "type": "address"
        }
      ],
      "name": "setAccessControlManager",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "remoteChainId_",
          "type": "uint16"
        },
        {
          "internalType": "bytes",
          "name": "remoteAddress_",
          "type": "bytes"
        }
      ],
      "name": "setTrustedRemoteAddress",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner_",
          "type": "address"
        }
      ],
      "name": "transferBridgeOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string[]",
          "name": "signatures_",
          "type": "string[]"
        },
        {
          "internalType": "bool[]",
          "name": "active_",
          "type": "bool[]"
        }
      ],
      "name": "upsertSignature",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60a060405234801561001057600080fd5b50604051611a10380380611a1083398101604081905261002f91610136565b61003881610053565b6001600160a01b03811660805261004d61007d565b506101b9565b6001600160a01b03811661007a576040516342bcdf7f60e11b815260040160405180910390fd5b50565b600054610100900460ff16156100ae5760405162461bcd60e51b81526004016100a59061015f565b60405180910390fd5b60005460ff90811614610102576000805460ff191660ff9081179091556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498916100f9916101aa565b60405180910390a15b565b60006001600160a01b0382165b92915050565b61012081610104565b811461007a57600080fd5b805161011181610117565b60006020828403121561014b5761014b600080fd5b6000610157848461012b565b949350505050565b6020808252810161011181602781527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469602082015266616c697a696e6760c81b604082015260600190565b60ff8216815260208101610111565b6080516118206101f0600039600081816101400152818161022d01528181610567015281816106420152610a1501526118206000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806379ba50971161008c578063b4a0bdf311610066578063b4a0bdf3146102d7578063c4d66de8146102e8578063e30c3978146102fb578063f2fde38b1461030c576100ea565b806379ba5097146102a25780638da5cb5b146102aa578063a6c3d165146102c4576100ea565b80633d8b38f6116100c85780633d8b38f61461025c5780633f90b5401461027c5780634bb7453e1461028f578063715018a6146101fd576100ea565b80630e32cb86146101ea578063180d295c146101ff57806327a020ef14610228575b600036606060006101066000356001600160e01b03191661031f565b905080516000036101325760405162461bcd60e51b815260040161012990610e4b565b60405180910390fd5b61013b816103cc565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168686604051610178929190610e7a565b6000604051808303816000865af19150503d80600081146101b5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ba565b606091505b5091509150816101dc5760405162461bcd60e51b815260040161012990610eb1565b805195506020019350505050f35b6101fd6101f8366004610ef1565b61046a565b005b61021261020d366004610f2d565b61047e565b60405161021f9190610fa6565b60405180910390f35b61024f7f000000000000000000000000000000000000000000000000000000000000000081565b60405161021f9190610fff565b61026f61026a366004611074565b610518565b60405161021f91906110d8565b6101fd61028a366004610ef1565b6105ed565b6101fd61029d366004611131565b6106ac565b6101fd610977565b6033546001600160a01b03165b60405161021f91906111b3565b6101fd6102d2366004611074565b6109ac565b6097546001600160a01b031661024f565b6101fd6102f6366004610ef1565b610a85565b6065546001600160a01b03166102b7565b6101fd61031a366004610ef1565b610b55565b6001600160e01b03198116600090815260c960205260409020805460609190610347906111d7565b80601f0160208091040260200160405190810160405280929190818152602001828054610373906111d7565b80156103c05780601f10610395576101008083540402835291602001916103c0565b820191906000526020600020905b8154815290600101906020018083116103a357829003601f168201915b50505050509050919050565b6097546040516318c5e8ab60e01b81526000916001600160a01b0316906318c5e8ab906103ff9033908690600401611203565b602060405180830381865afa15801561041c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104409190611236565b90508061046657333083604051634a3fa29360e01b815260040161012993929190611257565b5050565b610472610bc6565b61047b81610bf0565b50565b60c96020526000908152604090208054610497906111d7565b80601f01602080910402602001604051908101604052809291908181526020018280546104c3906111d7565b80156105105780601f106104e557610100808354040283529160200191610510565b820191906000526020600020905b8154815290600101906020018083116104f357829003601f168201915b505050505081565b60008361ffff1660000361053e5760405162461bcd60e51b8152600401610129906112c1565b61055061054b8484610c69565b610c81565b604051631ec59c7b60e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633d8b38f6906105a0908790879087906004016112fe565b6020604051808303816000875af11580156105bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e39190611236565b90505b9392505050565b61062b6040518060400160405280602081526020017f7472616e736665724272696467654f776e6572736869702861646472657373298152506103cc565b60405163f2fde38b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f2fde38b906106779084906004016111b3565b600060405180830381600087803b15801561069157600080fd5b505af11580156106a5573d6000803e3d6000fd5b5050505050565b6106b4610bc6565b828181146106d45760405162461bcd60e51b815260040161012990611365565b60005b8181101561096d5760008686838181106106f3576106f3611375565b9050602002810190610705919061138b565b604051610713929190610e7a565b60408051918290039091206001600160e01b03198116600090815260c9602052918220805491935090610745906111d7565b80601f0160208091040260200160405190810160405280929190818152602001828054610771906111d7565b80156107be5780601f10610793576101008083540402835291602001916107be565b820191906000526020600020905b8154815290600101906020018083116107a157829003601f168201915b505050505090508585848181106107d7576107d7611375565b90506020020160208101906107ec91906113f5565b80156107f757508051155b156108a95787878481811061080e5761080e611375565b9050602002810190610820919061138b565b6001600160e01b03198416600090815260c960205260409020916108459190836114c2565b507f9d424e54f4d851aabd288f6cc4946e5726d6b5c0e66ea4ef159a3c40bcc470fa88888581811061087957610879611375565b905060200281019061088b919061138b565b600160405161089c93929190611585565b60405180910390a1610963565b8585848181106108bb576108bb611375565b90506020020160208101906108d091906113f5565b1580156108dd5750805115155b15610963576001600160e01b03198216600090815260c96020526040812061090491610dd1565b7f9d424e54f4d851aabd288f6cc4946e5726d6b5c0e66ea4ef159a3c40bcc470fa88888581811061093757610937611375565b9050602002810190610949919061138b565b600060405161095a93929190611585565b60405180910390a15b50506001016106d7565b505050505050565b565b60655433906001600160a01b031681146109a35760405162461bcd60e51b8152600401610129906115ec565b61047b81610ca8565b6109cd6040518060600160405280602581526020016117c6602591396103cc565b8261ffff166000036109f15760405162461bcd60e51b8152600401610129906112c1565b6109fe61054b8383610c69565b60405163a6c3d16560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a6c3d16590610a4e908690869086906004016112fe565b600060405180830381600087803b158015610a6857600080fd5b505af1158015610a7c573d6000803e3d6000fd5b50505050505050565b600054610100900460ff1615808015610aa55750600054600160ff909116105b80610abf5750303b158015610abf575060005460ff166001145b610adb5760405162461bcd60e51b815260040161012990611647565b6000805460ff191660011790558015610afe576000805461ff0019166101001790555b610b0782610cc1565b8015610466576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890610b499060019061166b565b60405180910390a15050565b610b5d610bc6565b606580546001600160a01b0383166001600160a01b03199091168117909155610b8e6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6033546001600160a01b031633146109755760405162461bcd60e51b8152600401610129906116ab565b6001600160a01b038116610c165760405162461bcd60e51b8152600401610129906116fd565b609780546001600160a01b038381166001600160a01b03198316179092556040519116907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa090610b49908390859061170d565b6000610c758284611728565b60601c90505b92915050565b6001600160a01b03811661047b576040516342bcdf7f60e11b815260040160405180910390fd5b606580546001600160a01b031916905561047b81610cf9565b600054610100900460ff16610ce85760405162461bcd60e51b8152600401610129906117b5565b610cf0610d4b565b61047b81610d7a565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610d725760405162461bcd60e51b8152600401610129906117b5565b610975610da1565b600054610100900460ff166104725760405162461bcd60e51b8152600401610129906117b5565b600054610100900460ff16610dc85760405162461bcd60e51b8152600401610129906117b5565b61097533610ca8565b508054610ddd906111d7565b6000825580601f10610ded575050565b601f01602090049060005260206000209081019061047b91905b80821115610e1b5760008155600101610e07565b5090565b6012815260006020820171119d5b98dd1a5bdb881b9bdd08199bdd5b9960721b815291505b5060200190565b60208082528101610c7b81610e1f565b82818337506000910152565b6000610e74838584610e5b565b50500190565b6000610e87828486610e67565b949350505050565b600b81526000602082016a18d85b1b0819985a5b195960aa1b81529150610e44565b60208082528101610c7b81610e8f565b60006001600160a01b038216610c7b565b610edb81610ec1565b811461047b57600080fd5b8035610c7b81610ed2565b600060208284031215610f0657610f06600080fd5b6000610e878484610ee6565b6001600160e01b03198116610edb565b8035610c7b81610f12565b600060208284031215610f4257610f42600080fd5b6000610e878484610f22565b60005b83811015610f69578181015183820152602001610f51565b50506000910152565b6000610f7c825190565b808452602084019350610f93818560208601610f4e565b601f19601f8201165b9093019392505050565b602080825281016105e68184610f72565b6000610c7b6001600160a01b038316610fce565b90565b6001600160a01b031690565b6000610c7b82610fb7565b6000610c7b82610fda565b610ff981610fe5565b82525050565b60208101610c7b8284610ff0565b61ffff8116610edb565b8035610c7b8161100d565b60008083601f84011261103757611037600080fd5b50813567ffffffffffffffff81111561105257611052600080fd5b60208301915083600182028301111561106d5761106d600080fd5b9250929050565b60008060006040848603121561108c5761108c600080fd5b60006110988686611017565b935050602084013567ffffffffffffffff8111156110b8576110b8600080fd5b6110c486828701611022565b92509250509250925092565b801515610ff9565b60208101610c7b82846110d0565b60008083601f8401126110fb576110fb600080fd5b50813567ffffffffffffffff81111561111657611116600080fd5b60208301915083602082028301111561106d5761106d600080fd5b6000806000806040858703121561114a5761114a600080fd5b843567ffffffffffffffff81111561116457611164600080fd5b611170878288016110e6565b9450945050602085013567ffffffffffffffff81111561119257611192600080fd5b61119e878288016110e6565b95989497509550505050565b610ff981610ec1565b60208101610c7b82846111aa565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806111eb57607f821691505b6020821081036111fd576111fd6111c1565b50919050565b6040810161121182856111aa565b81810360208301526105e38184610f72565b801515610edb565b8051610c7b81611223565b60006020828403121561124b5761124b600080fd5b6000610e87848461122b565b6060810161126582866111aa565b61127260208301856111aa565b81810360408301526112848184610f72565b95945050505050565b601881526000602082017f436861696e4964206d757374206e6f74206265207a65726f000000000000000081529150610e44565b60208082528101610c7b8161128d565b61ffff8116610ff9565b81835260006020840193506112f1838584610e5b565b601f19601f840116610f9c565b6040810161130c82866112d1565b81810360208301526112848184866112db565b602681526000602082017f496e70757420617272617973206d7573742068617665207468652073616d65208152650d8cadccee8d60d31b602082015291505b5060400190565b60208082528101610c7b8161131f565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19368590030181126113a6576113a6600080fd5b80840192508235915067ffffffffffffffff8211156113c7576113c7600080fd5b6020830192506001820236038313156113e2576113e2600080fd5b509250929050565b8035610c7b81611223565b60006020828403121561140a5761140a600080fd5b6000610e8784846113ea565b634e487b7160e01b600052604160045260246000fd5b6000610c7b610fcb8381565b6114418361142c565b815460001960089490940293841b1916921b91909117905550565b6000611469818484611438565b505050565b818110156104665761148160008261145c565b60010161146e565b601f821115611469576000818152602090206020601f850104810160208510156114b05750805b6106a56020601f86010483018261146e565b8267ffffffffffffffff8111156114db576114db611416565b6114e582546111d7565b6114f0828285611489565b6000601f831160018114611524576000841561150c5750858201355b600019600886021c1981166002860217865550610a7c565b600085815260208120601f198616915b828110156115545788850135825560209485019460019092019101611534565b8683101561157057600019601f88166008021c19858a01351682555b60016002880201885550505050505050505050565b604080825281016115978185876112db565b9050610e8760208301846110d0565b602981526000602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b6020820152915061135e565b60208082528101610c7b816115a6565b602e81526000602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b6020820152915061135e565b60208082528101610c7b816115fc565b600060ff8216610c7b565b610ff981611657565b60208101610c7b8284611662565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081526000610e44565b60208082528101610c7b81611679565b602581526000602082017f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164815264647265737360d81b6020820152915061135e565b60208082528101610c7b816116bb565b6040810161171b82856111aa565b6105e660208301846111aa565b80356bffffffffffffffffffffffff191682826014821015611765576117606bffffffffffffffffffffffff19836014036008021b90565b831692505b505092915050565b602b81526000602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b6020820152915061135e565b60208082528101610c7b8161176d56fe7365745472757374656452656d6f7465416464726573732875696e7431362c627974657329a264697066735822122064478b3481d2baf49002998ce95c0b20c2411f6ef978775825123d11beb2ab1264736f6c63430008190033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c806379ba50971161008c578063b4a0bdf311610066578063b4a0bdf3146102d7578063c4d66de8146102e8578063e30c3978146102fb578063f2fde38b1461030c576100ea565b806379ba5097146102a25780638da5cb5b146102aa578063a6c3d165146102c4576100ea565b80633d8b38f6116100c85780633d8b38f61461025c5780633f90b5401461027c5780634bb7453e1461028f578063715018a6146101fd576100ea565b80630e32cb86146101ea578063180d295c146101ff57806327a020ef14610228575b600036606060006101066000356001600160e01b03191661031f565b905080516000036101325760405162461bcd60e51b815260040161012990610e4b565b60405180910390fd5b61013b816103cc565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168686604051610178929190610e7a565b6000604051808303816000865af19150503d80600081146101b5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ba565b606091505b5091509150816101dc5760405162461bcd60e51b815260040161012990610eb1565b805195506020019350505050f35b6101fd6101f8366004610ef1565b61046a565b005b61021261020d366004610f2d565b61047e565b60405161021f9190610fa6565b60405180910390f35b61024f7f000000000000000000000000000000000000000000000000000000000000000081565b60405161021f9190610fff565b61026f61026a366004611074565b610518565b60405161021f91906110d8565b6101fd61028a366004610ef1565b6105ed565b6101fd61029d366004611131565b6106ac565b6101fd610977565b6033546001600160a01b03165b60405161021f91906111b3565b6101fd6102d2366004611074565b6109ac565b6097546001600160a01b031661024f565b6101fd6102f6366004610ef1565b610a85565b6065546001600160a01b03166102b7565b6101fd61031a366004610ef1565b610b55565b6001600160e01b03198116600090815260c960205260409020805460609190610347906111d7565b80601f0160208091040260200160405190810160405280929190818152602001828054610373906111d7565b80156103c05780601f10610395576101008083540402835291602001916103c0565b820191906000526020600020905b8154815290600101906020018083116103a357829003601f168201915b50505050509050919050565b6097546040516318c5e8ab60e01b81526000916001600160a01b0316906318c5e8ab906103ff9033908690600401611203565b602060405180830381865afa15801561041c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104409190611236565b90508061046657333083604051634a3fa29360e01b815260040161012993929190611257565b5050565b610472610bc6565b61047b81610bf0565b50565b60c96020526000908152604090208054610497906111d7565b80601f01602080910402602001604051908101604052809291908181526020018280546104c3906111d7565b80156105105780601f106104e557610100808354040283529160200191610510565b820191906000526020600020905b8154815290600101906020018083116104f357829003601f168201915b505050505081565b60008361ffff1660000361053e5760405162461bcd60e51b8152600401610129906112c1565b61055061054b8484610c69565b610c81565b604051631ec59c7b60e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633d8b38f6906105a0908790879087906004016112fe565b6020604051808303816000875af11580156105bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e39190611236565b90505b9392505050565b61062b6040518060400160405280602081526020017f7472616e736665724272696467654f776e6572736869702861646472657373298152506103cc565b60405163f2fde38b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f2fde38b906106779084906004016111b3565b600060405180830381600087803b15801561069157600080fd5b505af11580156106a5573d6000803e3d6000fd5b5050505050565b6106b4610bc6565b828181146106d45760405162461bcd60e51b815260040161012990611365565b60005b8181101561096d5760008686838181106106f3576106f3611375565b9050602002810190610705919061138b565b604051610713929190610e7a565b60408051918290039091206001600160e01b03198116600090815260c9602052918220805491935090610745906111d7565b80601f0160208091040260200160405190810160405280929190818152602001828054610771906111d7565b80156107be5780601f10610793576101008083540402835291602001916107be565b820191906000526020600020905b8154815290600101906020018083116107a157829003601f168201915b505050505090508585848181106107d7576107d7611375565b90506020020160208101906107ec91906113f5565b80156107f757508051155b156108a95787878481811061080e5761080e611375565b9050602002810190610820919061138b565b6001600160e01b03198416600090815260c960205260409020916108459190836114c2565b507f9d424e54f4d851aabd288f6cc4946e5726d6b5c0e66ea4ef159a3c40bcc470fa88888581811061087957610879611375565b905060200281019061088b919061138b565b600160405161089c93929190611585565b60405180910390a1610963565b8585848181106108bb576108bb611375565b90506020020160208101906108d091906113f5565b1580156108dd5750805115155b15610963576001600160e01b03198216600090815260c96020526040812061090491610dd1565b7f9d424e54f4d851aabd288f6cc4946e5726d6b5c0e66ea4ef159a3c40bcc470fa88888581811061093757610937611375565b9050602002810190610949919061138b565b600060405161095a93929190611585565b60405180910390a15b50506001016106d7565b505050505050565b565b60655433906001600160a01b031681146109a35760405162461bcd60e51b8152600401610129906115ec565b61047b81610ca8565b6109cd6040518060600160405280602581526020016117c6602591396103cc565b8261ffff166000036109f15760405162461bcd60e51b8152600401610129906112c1565b6109fe61054b8383610c69565b60405163a6c3d16560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a6c3d16590610a4e908690869086906004016112fe565b600060405180830381600087803b158015610a6857600080fd5b505af1158015610a7c573d6000803e3d6000fd5b50505050505050565b600054610100900460ff1615808015610aa55750600054600160ff909116105b80610abf5750303b158015610abf575060005460ff166001145b610adb5760405162461bcd60e51b815260040161012990611647565b6000805460ff191660011790558015610afe576000805461ff0019166101001790555b610b0782610cc1565b8015610466576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890610b499060019061166b565b60405180910390a15050565b610b5d610bc6565b606580546001600160a01b0383166001600160a01b03199091168117909155610b8e6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6033546001600160a01b031633146109755760405162461bcd60e51b8152600401610129906116ab565b6001600160a01b038116610c165760405162461bcd60e51b8152600401610129906116fd565b609780546001600160a01b038381166001600160a01b03198316179092556040519116907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa090610b49908390859061170d565b6000610c758284611728565b60601c90505b92915050565b6001600160a01b03811661047b576040516342bcdf7f60e11b815260040160405180910390fd5b606580546001600160a01b031916905561047b81610cf9565b600054610100900460ff16610ce85760405162461bcd60e51b8152600401610129906117b5565b610cf0610d4b565b61047b81610d7a565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16610d725760405162461bcd60e51b8152600401610129906117b5565b610975610da1565b600054610100900460ff166104725760405162461bcd60e51b8152600401610129906117b5565b600054610100900460ff16610dc85760405162461bcd60e51b8152600401610129906117b5565b61097533610ca8565b508054610ddd906111d7565b6000825580601f10610ded575050565b601f01602090049060005260206000209081019061047b91905b80821115610e1b5760008155600101610e07565b5090565b6012815260006020820171119d5b98dd1a5bdb881b9bdd08199bdd5b9960721b815291505b5060200190565b60208082528101610c7b81610e1f565b82818337506000910152565b6000610e74838584610e5b565b50500190565b6000610e87828486610e67565b949350505050565b600b81526000602082016a18d85b1b0819985a5b195960aa1b81529150610e44565b60208082528101610c7b81610e8f565b60006001600160a01b038216610c7b565b610edb81610ec1565b811461047b57600080fd5b8035610c7b81610ed2565b600060208284031215610f0657610f06600080fd5b6000610e878484610ee6565b6001600160e01b03198116610edb565b8035610c7b81610f12565b600060208284031215610f4257610f42600080fd5b6000610e878484610f22565b60005b83811015610f69578181015183820152602001610f51565b50506000910152565b6000610f7c825190565b808452602084019350610f93818560208601610f4e565b601f19601f8201165b9093019392505050565b602080825281016105e68184610f72565b6000610c7b6001600160a01b038316610fce565b90565b6001600160a01b031690565b6000610c7b82610fb7565b6000610c7b82610fda565b610ff981610fe5565b82525050565b60208101610c7b8284610ff0565b61ffff8116610edb565b8035610c7b8161100d565b60008083601f84011261103757611037600080fd5b50813567ffffffffffffffff81111561105257611052600080fd5b60208301915083600182028301111561106d5761106d600080fd5b9250929050565b60008060006040848603121561108c5761108c600080fd5b60006110988686611017565b935050602084013567ffffffffffffffff8111156110b8576110b8600080fd5b6110c486828701611022565b92509250509250925092565b801515610ff9565b60208101610c7b82846110d0565b60008083601f8401126110fb576110fb600080fd5b50813567ffffffffffffffff81111561111657611116600080fd5b60208301915083602082028301111561106d5761106d600080fd5b6000806000806040858703121561114a5761114a600080fd5b843567ffffffffffffffff81111561116457611164600080fd5b611170878288016110e6565b9450945050602085013567ffffffffffffffff81111561119257611192600080fd5b61119e878288016110e6565b95989497509550505050565b610ff981610ec1565b60208101610c7b82846111aa565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806111eb57607f821691505b6020821081036111fd576111fd6111c1565b50919050565b6040810161121182856111aa565b81810360208301526105e38184610f72565b801515610edb565b8051610c7b81611223565b60006020828403121561124b5761124b600080fd5b6000610e87848461122b565b6060810161126582866111aa565b61127260208301856111aa565b81810360408301526112848184610f72565b95945050505050565b601881526000602082017f436861696e4964206d757374206e6f74206265207a65726f000000000000000081529150610e44565b60208082528101610c7b8161128d565b61ffff8116610ff9565b81835260006020840193506112f1838584610e5b565b601f19601f840116610f9c565b6040810161130c82866112d1565b81810360208301526112848184866112db565b602681526000602082017f496e70757420617272617973206d7573742068617665207468652073616d65208152650d8cadccee8d60d31b602082015291505b5060400190565b60208082528101610c7b8161131f565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19368590030181126113a6576113a6600080fd5b80840192508235915067ffffffffffffffff8211156113c7576113c7600080fd5b6020830192506001820236038313156113e2576113e2600080fd5b509250929050565b8035610c7b81611223565b60006020828403121561140a5761140a600080fd5b6000610e8784846113ea565b634e487b7160e01b600052604160045260246000fd5b6000610c7b610fcb8381565b6114418361142c565b815460001960089490940293841b1916921b91909117905550565b6000611469818484611438565b505050565b818110156104665761148160008261145c565b60010161146e565b601f821115611469576000818152602090206020601f850104810160208510156114b05750805b6106a56020601f86010483018261146e565b8267ffffffffffffffff8111156114db576114db611416565b6114e582546111d7565b6114f0828285611489565b6000601f831160018114611524576000841561150c5750858201355b600019600886021c1981166002860217865550610a7c565b600085815260208120601f198616915b828110156115545788850135825560209485019460019092019101611534565b8683101561157057600019601f88166008021c19858a01351682555b60016002880201885550505050505050505050565b604080825281016115978185876112db565b9050610e8760208301846110d0565b602981526000602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b6020820152915061135e565b60208082528101610c7b816115a6565b602e81526000602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b6020820152915061135e565b60208082528101610c7b816115fc565b600060ff8216610c7b565b610ff981611657565b60208101610c7b8284611662565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081526000610e44565b60208082528101610c7b81611679565b602581526000602082017f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164815264647265737360d81b6020820152915061135e565b60208082528101610c7b816116bb565b6040810161171b82856111aa565b6105e660208301846111aa565b80356bffffffffffffffffffffffff191682826014821015611765576117606bffffffffffffffffffffffff19836014036008021b90565b831692505b505092915050565b602b81526000602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b6020820152915061135e565b60208082528101610c7b8161176d56fe7365745472757374656452656d6f7465416464726573732875696e7431362c627974657329a264697066735822122064478b3481d2baf49002998ce95c0b20c2411f6ef978775825123d11beb2ab1264736f6c63430008190033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
