{
  "_format": "hh-sol-artifact-1",
  "contractName": "Identity",
  "sourceName": "@onchain-id/solidity/contracts/Identity.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "initialManagementKey",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "_isLibrary",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "executionId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "Approved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "claimId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "topic",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "scheme",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "issuer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "signature",
          "type": "bytes"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "ClaimAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "claimId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "topic",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "scheme",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "issuer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "signature",
          "type": "bytes"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "ClaimChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "claimId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "topic",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "scheme",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "issuer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "signature",
          "type": "bytes"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "ClaimRemoved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "executionId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "Executed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "executionId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "ExecutionFailed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "executionId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "ExecutionRequested",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "key",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "purpose",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "keyType",
          "type": "uint256"
        }
      ],
      "name": "KeyAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "key",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "purpose",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "keyType",
          "type": "uint256"
        }
      ],
      "name": "KeyRemoved",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_topic",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_scheme",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_issuer",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "_signature",
          "type": "bytes"
        },
        {
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        },
        {
          "internalType": "string",
          "name": "_uri",
          "type": "string"
        }
      ],
      "name": "addClaim",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "claimRequestId",
          "type": "bytes32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_key",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_purpose",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_type",
          "type": "uint256"
        }
      ],
      "name": "addKey",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_id",
          "type": "uint256"
        },
        {
          "internalType": "bool",
          "name": "_approve",
          "type": "bool"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        }
      ],
      "name": "execute",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "executionId",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_claimId",
          "type": "bytes32"
        }
      ],
      "name": "getClaim",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "topic",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "scheme",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "issuer",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "signature",
          "type": "bytes"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        },
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_topic",
          "type": "uint256"
        }
      ],
      "name": "getClaimIdsByTopic",
      "outputs": [
        {
          "internalType": "bytes32[]",
          "name": "claimIds",
          "type": "bytes32[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_key",
          "type": "bytes32"
        }
      ],
      "name": "getKey",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "purposes",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256",
          "name": "keyType",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "key",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_key",
          "type": "bytes32"
        }
      ],
      "name": "getKeyPurposes",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "_purposes",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_purpose",
          "type": "uint256"
        }
      ],
      "name": "getKeysByPurpose",
      "outputs": [
        {
          "internalType": "bytes32[]",
          "name": "keys",
          "type": "bytes32[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "sig",
          "type": "bytes"
        },
        {
          "internalType": "bytes32",
          "name": "dataHash",
          "type": "bytes32"
        }
      ],
      "name": "getRecoveredAddress",
      "outputs": [
        {
          "internalType": "address",
          "name": "addr",
          "type": "address"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "initialManagementKey",
          "type": "address"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IIdentity",
          "name": "_identity",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "claimTopic",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "sig",
          "type": "bytes"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "isClaimValid",
      "outputs": [
        {
          "internalType": "bool",
          "name": "claimValid",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_key",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_purpose",
          "type": "uint256"
        }
      ],
      "name": "keyHasPurpose",
      "outputs": [
        {
          "internalType": "bool",
          "name": "result",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_claimId",
          "type": "bytes32"
        }
      ],
      "name": "removeClaim",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_key",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_purpose",
          "type": "uint256"
        }
      ],
      "name": "removeKey",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040526006805461ffff191690553480156200001c57600080fd5b5060405162002a4238038062002a428339810160408190526200003f916200029f565b6001600160a01b0382166200009b5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f20616464726573730060448201526064015b60405180910390fd5b80620000b257620000ac82620000c8565b620000c0565b6006805460ff191660011790555b5050620002ed565b60065460ff161580620000da5750303b155b620001285760405162461bcd60e51b815260206004820152601e60248201527f496e697469616c206b65792077617320616c72656164792073657475702e0000604482015260640162000092565b6006805461ffff1916610101179055604080516001600160a01b03831660208201526000910160408051601f19818403018152828252805160209182012060008181526001808452848220600281018490558685019095528086529082905291829052935062000199929062000233565b506000818152600160208181526040808420830183905560029091527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0805480840182559084527f7fef4bf8f63cf9dd467136c679c02b5c17fcf6322d9562512bf5eb952cf7cc5301849055519091829184917f480000bb1edad8ca1470381cc334b1917fbd51c6531f3a623ea8e0ec7e38a6e991a45050565b82805482825590600052602060002090810192821562000276579160200282015b8281111562000276578251829060ff1690559160200191906001019062000254565b506200028492915062000288565b5090565b5b8082111562000284576000815560010162000289565b60008060408385031215620002b357600080fd5b82516001600160a01b0381168114620002cb57600080fd5b60208401519092508015158114620002e257600080fd5b809150509250929050565b61274580620002fd6000396000f3fe6080604052600436106100f35760003560e01c8063b1a34e0d1161008a578063c4d66de811610059578063c4d66de8146102da578063c9100bcb146102fc578063d202158d1461032e578063fb307b341461034e57600080fd5b8063b1a34e0d14610241578063b61d27f61461026f578063c0969a6e14610282578063c3b129e3146102a257600080fd5b806354fd4d50116100c657806354fd4d50146101a0578063747442d3146101d457806380e9e9e1146101f45780639010f7261461022157600080fd5b806312aaac70146100f85780631d381240146101305780634eee424a1461016057806353d413c514610180575b600080fd5b34801561010457600080fd5b50610118610113366004611d67565b61037b565b60405161012793929190611dbb565b60405180910390f35b34801561013c57600080fd5b5061015061014b366004611de0565b6103f4565b6040519015158152602001610127565b34801561016c57600080fd5b5061015061017b366004611d67565b610657565b34801561018c57600080fd5b5061015061019b366004611e0c565b610916565b3480156101ac57600080fd5b506040805180820182526005815264322e322e3160d81b602082015290516101279190611e74565b3480156101e057600080fd5b506101506101ef366004611e9c565b610d06565b34801561020057600080fd5b5061021461020f366004611d67565b6110e3565b6040516101279190611ecc565b34801561022d57600080fd5b5061021461023c366004611d67565b611145565b34801561024d57600080fd5b5061026161025c366004611fd1565b6111a5565b604051908152602001610127565b61026161027d366004612092565b611471565b34801561028e57600080fd5b5061015061029d3660046120eb565b6115a3565b3480156102ae57600080fd5b506102c26102bd36600461216b565b611694565b6040516001600160a01b039091168152602001610127565b3480156102e657600080fd5b506102fa6102f53660046121b0565b611745565b005b34801561030857600080fd5b5061031c610317366004611d67565b6117a7565b604051610127969594939291906121cd565b34801561033a57600080fd5b50610150610349366004611e0c565b6119a8565b34801561035a57600080fd5b5061036e610369366004611d67565b611aa9565b604051610127919061222d565b6000818152600160208181526040808420928301546002840154845483518186028101860190945280845260609695869590949185918301828280156103e057602002820191906000526020600020905b8154815260200190600101908083116103cc575b505050505092509250925092509193909250565b60065460009060ff61010090910416151560011461042d5760405162461bcd60e51b815260040161042490612240565b60405180910390fd5b3330148061046357506040805133602082015261046391015b6040516020818303038152906040528051906020012060016119a8565b61047f5760405162461bcd60e51b815260040161042490612293565b6000848152600160205260409020600201548490036105b2576000848152600160209081526040808320805482518185028101850190935280835291929091908301828280156104ee57602002820191906000526020600020905b8154815260200190600101908083116104da575b5050505050905060005b815181101561058b576000828281518110610515576105156122e3565b602002602001015190508581036105785760405162461bcd60e51b815260206004820152602160248201527f436f6e666c6963743a204b657920616c72656164792068617320707572706f736044820152606560f81b6064820152608401610424565b50806105838161230f565b9150506104f8565b505060008481526001602081815260408320805492830181558352909120018390556105fe565b600084815260016020818152604080842060028101899055815180840190925287825293889052908290526105e79291611c6f565b506000848152600160208190526040909120018290555b60008381526002602090815260408083208054600181018255908452918320909101869055518391859187917f480000bb1edad8ca1470381cc334b1917fbd51c6531f3a623ea8e0ec7e38a6e991a45060019392505050565b60065460009060ff6101009091041615156001146106875760405162461bcd60e51b815260040161042490612240565b333014806106bd5750604080513360208201526106bd91015b6040516020818303038152906040528051906020012060036119a8565b6106d95760405162461bcd60e51b815260040161042490612328565b6000828152600460205260408120549081900361074c5760405162461bcd60e51b815260206004820152602b60248201527f4e6f6e4578697374696e673a205468657265206973206e6f20636c61696d207760448201526a1a5d1a081d1a1a5cc8125160aa1b6064820152608401610424565b6000818152600560205260408120545b600083815260056020526040902080548691908490811061077f5761077f6122e3565b9060005260206000200154146107a457816107998161230f565b92505080821061075c575b60008381526005602052604090206107bd60018361237a565b815481106107cd576107cd6122e3565b90600052602060002001546005600085815260200190815260200160002083815481106107fc576107fc6122e3565b90600052602060002001819055506005600084815260200190815260200160002080548061082c5761082c61238d565b6000828152602080822083016000199081018390559092019092558682526004908190526040918290206002810154600182015493516001600160a01b039091169387938a937f3cf57863a89432c61c4a27073c6ee39e8a764bff5a05aebfbcdcdc80b2e6130a936108ad939260038301929081019160059091019061245a565b60405180910390a46000858152600460205260408120818155600181018290556002810180546001600160a01b0319169055906108ed6003830182611cba565b6108fb600483016000611cba565b610909600583016000611cba565b5060019695505050505050565b60065460009060ff6101009091041615156001146109465760405162461bcd60e51b815260040161042490612240565b333014806109635750604080513360208201526109639101610446565b61097f5760405162461bcd60e51b815260040161042490612293565b60008381526001602052604090206002015483146109e95760405162461bcd60e51b815260206004820152602160248201527f4e6f6e4578697374696e673a204b65792069736e2774207265676973746572656044820152601960fa1b6064820152608401610424565b600083815260016020908152604080832080548251818502810185019093528083529192909190830182828015610a3f57602002820191906000526020600020905b815481526020019060010190808311610a2b575b5050505050905060005b83828281518110610a5c57610a5c6122e3565b602002602001015114610ade5780610a738161230f565b91505081518103610ad95760405162461bcd60e51b815260206004820152602a60248201527f4e6f6e4578697374696e673a204b657920646f65736e27742068617665207375604482015269636820707572706f736560b01b6064820152608401610424565b610a49565b8160018351610aed919061237a565b81518110610afd57610afd6122e3565b6020026020010151828281518110610b1757610b176122e3565b602090810291909101810191909152600086815260018252604090208351610b4192850190611c6f565b506000858152600160205260409020805480610b5f57610b5f61238d565b6000828152602080822083016000199081018390559092019092558582526002905260408120545b6000868152600260205260409020805488919084908110610baa57610baa6122e3565b906000526020600020015414610bcf5781610bc48161230f565b925050808210610b87575b6000868152600260205260409020610be860018361237a565b81548110610bf857610bf86122e3565b9060005260206000200154600260008881526020019081526020016000208381548110610c2757610c276122e3565b906000526020600020018190555060026000878152602001908152602001600020805480610c5757610c5761238d565b6001900381819060005260206000200160009055905560006001600089815260200190815260200160002060010154905060018551610c96919061237a565b600003610cc757600088815260016020526040812090610cb68282611cf4565b506000600182018190556002909101555b8087897f585a4aef50f8267a92b32412b331b20f7f8b96f2245b253b9cc50dcc621d339760405160405180910390a46001955050505050505b92915050565b60065460009060ff610100909104161515600114610d365760405162461bcd60e51b815260040161042490612240565b6000548310610d975760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420617070726f76652061206e6f6e2d6578697374696e6720657860448201526632b1baba34b7b760c91b6064820152608401610424565b60008381526003602081905260409091200154610100900460ff1615610dff5760405162461bcd60e51b815260206004820152601860248201527f5265717565737420616c726561647920657865637574656400000000000000006044820152606401610424565b600083815260036020526040902054306001600160a01b0390911603610e905760408051336020820152610e339101610446565b610e8b5760405162461bcd60e51b815260206004820152602360248201527f53656e64657220646f6573206e6f742068617665206d616e6167656d656e74206044820152626b657960e81b6064820152608401610424565b610f09565b60408051336020820152610ebd91015b6040516020818303038152906040528051906020012060026119a8565b610f095760405162461bcd60e51b815260206004820152601f60248201527f53656e64657220646f6573206e6f74206861766520616374696f6e206b6579006044820152606401610424565b827fb3932da477fe5d6c8ff2eafef050c0f3a1af18fc07121001482600f36f3715d883604051610f3d911515815260200190565b60405180910390a28115156001036110c557600083815260036020819052604091829020908101805460ff1916600190811790915581549082015492516001600160a01b039091169291610f9691600290910190612499565b60006040518083038185875af1925050503d8060008114610fd3576040519150601f19603f3d011682016040523d82523d6000602084013e610fd8565b606091505b5090915050801561105d57600083815260036020819052604091829020908101805461ff00191661010017905560018101548154925190926001600160a01b03169186917f1f920dbda597d7bf95035464170fa58d0a4b57f13a1c315ace6793b9f63688b89161104d9160029091019061250f565b60405180910390a4506001610d00565b6000838152600360205260409081902060018101548154925190926001600160a01b03169186917fe10c49d9f7c71da23262367013434763cfdb2332267641728d25cd712c5c6a68916110b59160029091019061250f565b60405180910390a4506000610d00565b50506000908152600360208190526040822001805460ff1916905590565b60008181526005602090815260409182902080548351818402810184019094528084526060939283018282801561113957602002820191906000526020600020905b815481526020019060010190808311611125575b50505050509050919050565b60008181526002602090815260409182902080548351818402810184019094528084526060939283018282801561113957602002820191906000526020600020908154815260200190600101908083116111255750505050509050919050565b60065460009060ff6101009091041615156001146111d55760405162461bcd60e51b815260040161042490612240565b333014806111f25750604080513360208201526111f291016106a0565b61120e5760405162461bcd60e51b815260040161042490612328565b6001600160a01b03851630146112cd5760405163604b4d3760e11b81526001600160a01b0386169063c0969a6e906112509030908b9089908990600401612522565b602060405180830381865afa15801561126d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611291919061255b565b6112cd5760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420636c61696d60981b6044820152606401610424565b604080516001600160a01b038716602082015290810188905260009060600160408051601f1981840301815291815281516020928301206000818152600490935291208981556001810189905590915060030161132a86826125c7565b5060008181526004602081905260409091200161134785826125c7565b50600081815260046020526040902060050161136384826125c7565b506000818152600460205260409020600201546001600160a01b0387811691161461141c57600088815260056020908152604080832080546001810182559084528284200184905583835260049091529081902060020180546001600160a01b0319166001600160a01b0389169081179091559051899083907f46149b18aa084502c3f12bc75e19eda8bda8d102b82cce8474677a6d0d5f43c59061140f908c908b908b908b90612687565b60405180910390a4611466565b856001600160a01b031688827f3bab293fc00db832d7619a9299914251b8747c036867ec056cbd506f60135b138a89898960405161145d9493929190612687565b60405180910390a45b979650505050505050565b60065460009060ff6101009091041615156001146114a15760405162461bcd60e51b815260040161042490612240565b600080548082526003602052604090912080546001600160a01b0319166001600160a01b038716178155600181018590556002016114df84826125c7565b506000805490806114ef8361230f565b919050555083856001600160a01b0316827f8afcfabcb00e47a53a8fc3e9f23ff47ee1926194bb1350dd007c50b412a6cee88660405161152f9190611e74565b60405180910390a46040805133602082015261154b9101610446565b156115615761155b816001610d06565b5061159b565b6001600160a01b03851630148015906115895750604080513360208201526115899101610ea0565b1561159b57611599816001610d06565b505b949350505050565b6000808585846040516020016115bb939291906126c6565b60405160208183030381529060405280519060200120905060008160405160200161161291907f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b60405160208183030381529060405280519060200120905060006116368683611694565b604080516001600160a01b0383166020820152919250600091016040516020818303038152906040528051906020012090506116738160036119a8565b1561168557600194505050505061159b565b50600098975050505050505050565b60008060008085516041146116af5760009350505050610d00565b50505060208301516040840151606085015160001a601b8110156116db576116d8601b826126f6565b90505b6040805160008082526020820180845288905260ff841692820192909252606081018590526080810184905260019060a0016020604051602081039080840390855afa15801561172f573d6000803e3d6000fd5b5050604051601f19015198975050505050505050565b6001600160a01b03811661179b5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610424565b6117a481611b09565b50565b600081815260046020819052604082208054600182015460028301546003840180548796879660609687968796919590946001600160a01b039092169390929081019160059091019083906117fb906123a3565b80601f0160208091040260200160405190810160405280929190818152602001828054611827906123a3565b80156118745780601f1061184957610100808354040283529160200191611874565b820191906000526020600020905b81548152906001019060200180831161185757829003601f168201915b50505050509250818054611887906123a3565b80601f01602080910402602001604051908101604052809291908181526020018280546118b3906123a3565b80156119005780601f106118d557610100808354040283529160200191611900565b820191906000526020600020905b8154815290600101906020018083116118e357829003601f168201915b50505050509150808054611913906123a3565b80601f016020809104026020016040519081016040528092919081815260200182805461193f906123a3565b801561198c5780601f106119615761010080835404028352916020019161198c565b820191906000526020600020905b81548152906001019060200180831161196f57829003601f168201915b5050505050905095509550955095509550955091939550919395565b60008281526001602090815260408083208151815460809481028201850190935260608101838152859491938492849190840182828015611a0857602002820191906000526020600020905b8154815260200190600101908083116119f4575b505050918352505060018201546020820152600290910154604091820152810151909150600003611a3d576000915050610d00565b60005b815151811015611a9e57600082600001518281518110611a6257611a626122e3565b602002602001015190508060011480611a7a57508481145b15611a8b5760019350505050610d00565b5080611a968161230f565b915050611a40565b506000949350505050565b60008181526001602090815260409182902080548351818402810184019094528084526060939283018282801561113957602002820191906000526020600020908154815260200190600101908083116111255750505050509050919050565b60065460ff161580611b1a5750303b155b611b665760405162461bcd60e51b815260206004820152601e60248201527f496e697469616c206b65792077617320616c72656164792073657475702e00006044820152606401610424565b6006805461ffff1916610101179055604080516001600160a01b03831660208201526000910160408051601f198184030181528282528051602091820120600081815260018084528482206002810184905586850190955280865290829052918290529350611bd59290611d12565b506000818152600160208181526040808420830183905560029091527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0805480840182559084527f7fef4bf8f63cf9dd467136c679c02b5c17fcf6322d9562512bf5eb952cf7cc5301849055519091829184917f480000bb1edad8ca1470381cc334b1917fbd51c6531f3a623ea8e0ec7e38a6e991a45050565b828054828255906000526020600020908101928215611caa579160200282015b82811115611caa578251825591602001919060010190611c8f565b50611cb6929150611d52565b5090565b508054611cc6906123a3565b6000825580601f10611cd6575050565b601f0160209004906000526020600020908101906117a49190611d52565b50805460008255906000526020600020908101906117a49190611d52565b828054828255906000526020600020908101928215611caa579160200282015b82811115611caa578251829060ff16905591602001919060010190611d32565b5b80821115611cb65760008155600101611d53565b600060208284031215611d7957600080fd5b5035919050565b600081518084526020808501945080840160005b83811015611db057815187529582019590820190600101611d94565b509495945050505050565b606081526000611dce6060830186611d80565b60208301949094525060400152919050565b600080600060608486031215611df557600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611e1f57600080fd5b50508035926020909101359150565b6000815180845260005b81811015611e5457602081850181015186830182015201611e38565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000611e876020830184611e2e565b9392505050565b80151581146117a457600080fd5b60008060408385031215611eaf57600080fd5b823591506020830135611ec181611e8e565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b81811015611f0457835183529284019291840191600101611ee8565b50909695505050505050565b6001600160a01b03811681146117a457600080fd5b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115611f5657611f56611f25565b604051601f8501601f19908116603f01168101908282118183101715611f7e57611f7e611f25565b81604052809350858152868686011115611f9757600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112611fc257600080fd5b611e8783833560208501611f3b565b60008060008060008060c08789031215611fea57600080fd5b8635955060208701359450604087013561200381611f10565b9350606087013567ffffffffffffffff8082111561202057600080fd5b61202c8a838b01611fb1565b9450608089013591508082111561204257600080fd5b61204e8a838b01611fb1565b935060a089013591508082111561206457600080fd5b508701601f8101891361207657600080fd5b61208589823560208401611f3b565b9150509295509295509295565b6000806000606084860312156120a757600080fd5b83356120b281611f10565b925060208401359150604084013567ffffffffffffffff8111156120d557600080fd5b6120e186828701611fb1565b9150509250925092565b6000806000806080858703121561210157600080fd5b843561210c81611f10565b935060208501359250604085013567ffffffffffffffff8082111561213057600080fd5b61213c88838901611fb1565b9350606087013591508082111561215257600080fd5b5061215f87828801611fb1565b91505092959194509250565b6000806040838503121561217e57600080fd5b823567ffffffffffffffff81111561219557600080fd5b6121a185828601611fb1565b95602094909401359450505050565b6000602082840312156121c257600080fd5b8135611e8781611f10565b86815285602082015260018060a01b038516604082015260c0606082015260006121fa60c0830186611e2e565b828103608084015261220c8186611e2e565b905082810360a08401526122208185611e2e565b9998505050505050505050565b602081526000611e876020830184611d80565b60208082526033908201527f496e746572616374696e67207769746820746865206c69627261727920636f6e6040820152723a3930b1ba1034b9903337b93134b23232b71760691b606082015260800190565b60208082526030908201527f5065726d697373696f6e733a2053656e64657220646f6573206e6f742068617660408201526f65206d616e6167656d656e74206b657960801b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612321576123216122f9565b5060010190565b60208082526032908201527f5065726d697373696f6e733a2053656e64657220646f6573206e6f74206861766040820152716520636c61696d207369676e6572206b657960701b606082015260800190565b81810381811115610d0057610d006122f9565b634e487b7160e01b600052603160045260246000fd5b600181811c908216806123b757607f821691505b6020821081036123d757634e487b7160e01b600052602260045260246000fd5b50919050565b600081546123ea816123a3565b80855260206001838116801561240757600181146124215761244f565b60ff1985168884015283151560051b88018301955061244f565b866000528260002060005b858110156124475781548a820186015290830190840161242c565b890184019650505b505050505092915050565b84815260806020820152600061247360808301866123dd565b828103604084015261248581866123dd565b9050828103606084015261146681856123dd565b60008083546124a7816123a3565b600182811680156124bf57600181146124d457612503565b60ff1984168752821515830287019450612503565b8760005260208060002060005b858110156124fa5781548a8201529084019082016124e1565b50505082870194505b50929695505050505050565b602081526000611e8760208301846123dd565b60018060a01b03851681528360208201526080604082015260006125496080830185611e2e565b82810360608401526114668185611e2e565b60006020828403121561256d57600080fd5b8151611e8781611e8e565b601f8211156125c257600081815260208120601f850160051c8101602086101561259f5750805b601f850160051c820191505b818110156125be578281556001016125ab565b5050505b505050565b815167ffffffffffffffff8111156125e1576125e1611f25565b6125f5816125ef84546123a3565b84612578565b602080601f83116001811461262a57600084156126125750858301515b600019600386901b1c1916600185901b1785556125be565b600085815260208120601f198616915b828110156126595788860151825594840194600190910190840161263a565b50858210156126775787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8481526080602082015260006126a06080830186611e2e565b82810360408401526126b28186611e2e565b905082810360608401526114668185611e2e565b60018060a01b03841681528260208201526060604082015260006126ed6060830184611e2e565b95945050505050565b60ff8181168382160190811115610d0057610d006122f956fea2646970667358221220800c1fefc3113cb581850f72bd394f020857e354768e72f47d1ebffc832c426264736f6c63430008110033",
  "deployedBytecode": "0x6080604052600436106100f35760003560e01c8063b1a34e0d1161008a578063c4d66de811610059578063c4d66de8146102da578063c9100bcb146102fc578063d202158d1461032e578063fb307b341461034e57600080fd5b8063b1a34e0d14610241578063b61d27f61461026f578063c0969a6e14610282578063c3b129e3146102a257600080fd5b806354fd4d50116100c657806354fd4d50146101a0578063747442d3146101d457806380e9e9e1146101f45780639010f7261461022157600080fd5b806312aaac70146100f85780631d381240146101305780634eee424a1461016057806353d413c514610180575b600080fd5b34801561010457600080fd5b50610118610113366004611d67565b61037b565b60405161012793929190611dbb565b60405180910390f35b34801561013c57600080fd5b5061015061014b366004611de0565b6103f4565b6040519015158152602001610127565b34801561016c57600080fd5b5061015061017b366004611d67565b610657565b34801561018c57600080fd5b5061015061019b366004611e0c565b610916565b3480156101ac57600080fd5b506040805180820182526005815264322e322e3160d81b602082015290516101279190611e74565b3480156101e057600080fd5b506101506101ef366004611e9c565b610d06565b34801561020057600080fd5b5061021461020f366004611d67565b6110e3565b6040516101279190611ecc565b34801561022d57600080fd5b5061021461023c366004611d67565b611145565b34801561024d57600080fd5b5061026161025c366004611fd1565b6111a5565b604051908152602001610127565b61026161027d366004612092565b611471565b34801561028e57600080fd5b5061015061029d3660046120eb565b6115a3565b3480156102ae57600080fd5b506102c26102bd36600461216b565b611694565b6040516001600160a01b039091168152602001610127565b3480156102e657600080fd5b506102fa6102f53660046121b0565b611745565b005b34801561030857600080fd5b5061031c610317366004611d67565b6117a7565b604051610127969594939291906121cd565b34801561033a57600080fd5b50610150610349366004611e0c565b6119a8565b34801561035a57600080fd5b5061036e610369366004611d67565b611aa9565b604051610127919061222d565b6000818152600160208181526040808420928301546002840154845483518186028101860190945280845260609695869590949185918301828280156103e057602002820191906000526020600020905b8154815260200190600101908083116103cc575b505050505092509250925092509193909250565b60065460009060ff61010090910416151560011461042d5760405162461bcd60e51b815260040161042490612240565b60405180910390fd5b3330148061046357506040805133602082015261046391015b6040516020818303038152906040528051906020012060016119a8565b61047f5760405162461bcd60e51b815260040161042490612293565b6000848152600160205260409020600201548490036105b2576000848152600160209081526040808320805482518185028101850190935280835291929091908301828280156104ee57602002820191906000526020600020905b8154815260200190600101908083116104da575b5050505050905060005b815181101561058b576000828281518110610515576105156122e3565b602002602001015190508581036105785760405162461bcd60e51b815260206004820152602160248201527f436f6e666c6963743a204b657920616c72656164792068617320707572706f736044820152606560f81b6064820152608401610424565b50806105838161230f565b9150506104f8565b505060008481526001602081815260408320805492830181558352909120018390556105fe565b600084815260016020818152604080842060028101899055815180840190925287825293889052908290526105e79291611c6f565b506000848152600160208190526040909120018290555b60008381526002602090815260408083208054600181018255908452918320909101869055518391859187917f480000bb1edad8ca1470381cc334b1917fbd51c6531f3a623ea8e0ec7e38a6e991a45060019392505050565b60065460009060ff6101009091041615156001146106875760405162461bcd60e51b815260040161042490612240565b333014806106bd5750604080513360208201526106bd91015b6040516020818303038152906040528051906020012060036119a8565b6106d95760405162461bcd60e51b815260040161042490612328565b6000828152600460205260408120549081900361074c5760405162461bcd60e51b815260206004820152602b60248201527f4e6f6e4578697374696e673a205468657265206973206e6f20636c61696d207760448201526a1a5d1a081d1a1a5cc8125160aa1b6064820152608401610424565b6000818152600560205260408120545b600083815260056020526040902080548691908490811061077f5761077f6122e3565b9060005260206000200154146107a457816107998161230f565b92505080821061075c575b60008381526005602052604090206107bd60018361237a565b815481106107cd576107cd6122e3565b90600052602060002001546005600085815260200190815260200160002083815481106107fc576107fc6122e3565b90600052602060002001819055506005600084815260200190815260200160002080548061082c5761082c61238d565b6000828152602080822083016000199081018390559092019092558682526004908190526040918290206002810154600182015493516001600160a01b039091169387938a937f3cf57863a89432c61c4a27073c6ee39e8a764bff5a05aebfbcdcdc80b2e6130a936108ad939260038301929081019160059091019061245a565b60405180910390a46000858152600460205260408120818155600181018290556002810180546001600160a01b0319169055906108ed6003830182611cba565b6108fb600483016000611cba565b610909600583016000611cba565b5060019695505050505050565b60065460009060ff6101009091041615156001146109465760405162461bcd60e51b815260040161042490612240565b333014806109635750604080513360208201526109639101610446565b61097f5760405162461bcd60e51b815260040161042490612293565b60008381526001602052604090206002015483146109e95760405162461bcd60e51b815260206004820152602160248201527f4e6f6e4578697374696e673a204b65792069736e2774207265676973746572656044820152601960fa1b6064820152608401610424565b600083815260016020908152604080832080548251818502810185019093528083529192909190830182828015610a3f57602002820191906000526020600020905b815481526020019060010190808311610a2b575b5050505050905060005b83828281518110610a5c57610a5c6122e3565b602002602001015114610ade5780610a738161230f565b91505081518103610ad95760405162461bcd60e51b815260206004820152602a60248201527f4e6f6e4578697374696e673a204b657920646f65736e27742068617665207375604482015269636820707572706f736560b01b6064820152608401610424565b610a49565b8160018351610aed919061237a565b81518110610afd57610afd6122e3565b6020026020010151828281518110610b1757610b176122e3565b602090810291909101810191909152600086815260018252604090208351610b4192850190611c6f565b506000858152600160205260409020805480610b5f57610b5f61238d565b6000828152602080822083016000199081018390559092019092558582526002905260408120545b6000868152600260205260409020805488919084908110610baa57610baa6122e3565b906000526020600020015414610bcf5781610bc48161230f565b925050808210610b87575b6000868152600260205260409020610be860018361237a565b81548110610bf857610bf86122e3565b9060005260206000200154600260008881526020019081526020016000208381548110610c2757610c276122e3565b906000526020600020018190555060026000878152602001908152602001600020805480610c5757610c5761238d565b6001900381819060005260206000200160009055905560006001600089815260200190815260200160002060010154905060018551610c96919061237a565b600003610cc757600088815260016020526040812090610cb68282611cf4565b506000600182018190556002909101555b8087897f585a4aef50f8267a92b32412b331b20f7f8b96f2245b253b9cc50dcc621d339760405160405180910390a46001955050505050505b92915050565b60065460009060ff610100909104161515600114610d365760405162461bcd60e51b815260040161042490612240565b6000548310610d975760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420617070726f76652061206e6f6e2d6578697374696e6720657860448201526632b1baba34b7b760c91b6064820152608401610424565b60008381526003602081905260409091200154610100900460ff1615610dff5760405162461bcd60e51b815260206004820152601860248201527f5265717565737420616c726561647920657865637574656400000000000000006044820152606401610424565b600083815260036020526040902054306001600160a01b0390911603610e905760408051336020820152610e339101610446565b610e8b5760405162461bcd60e51b815260206004820152602360248201527f53656e64657220646f6573206e6f742068617665206d616e6167656d656e74206044820152626b657960e81b6064820152608401610424565b610f09565b60408051336020820152610ebd91015b6040516020818303038152906040528051906020012060026119a8565b610f095760405162461bcd60e51b815260206004820152601f60248201527f53656e64657220646f6573206e6f74206861766520616374696f6e206b6579006044820152606401610424565b827fb3932da477fe5d6c8ff2eafef050c0f3a1af18fc07121001482600f36f3715d883604051610f3d911515815260200190565b60405180910390a28115156001036110c557600083815260036020819052604091829020908101805460ff1916600190811790915581549082015492516001600160a01b039091169291610f9691600290910190612499565b60006040518083038185875af1925050503d8060008114610fd3576040519150601f19603f3d011682016040523d82523d6000602084013e610fd8565b606091505b5090915050801561105d57600083815260036020819052604091829020908101805461ff00191661010017905560018101548154925190926001600160a01b03169186917f1f920dbda597d7bf95035464170fa58d0a4b57f13a1c315ace6793b9f63688b89161104d9160029091019061250f565b60405180910390a4506001610d00565b6000838152600360205260409081902060018101548154925190926001600160a01b03169186917fe10c49d9f7c71da23262367013434763cfdb2332267641728d25cd712c5c6a68916110b59160029091019061250f565b60405180910390a4506000610d00565b50506000908152600360208190526040822001805460ff1916905590565b60008181526005602090815260409182902080548351818402810184019094528084526060939283018282801561113957602002820191906000526020600020905b815481526020019060010190808311611125575b50505050509050919050565b60008181526002602090815260409182902080548351818402810184019094528084526060939283018282801561113957602002820191906000526020600020908154815260200190600101908083116111255750505050509050919050565b60065460009060ff6101009091041615156001146111d55760405162461bcd60e51b815260040161042490612240565b333014806111f25750604080513360208201526111f291016106a0565b61120e5760405162461bcd60e51b815260040161042490612328565b6001600160a01b03851630146112cd5760405163604b4d3760e11b81526001600160a01b0386169063c0969a6e906112509030908b9089908990600401612522565b602060405180830381865afa15801561126d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611291919061255b565b6112cd5760405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420636c61696d60981b6044820152606401610424565b604080516001600160a01b038716602082015290810188905260009060600160408051601f1981840301815291815281516020928301206000818152600490935291208981556001810189905590915060030161132a86826125c7565b5060008181526004602081905260409091200161134785826125c7565b50600081815260046020526040902060050161136384826125c7565b506000818152600460205260409020600201546001600160a01b0387811691161461141c57600088815260056020908152604080832080546001810182559084528284200184905583835260049091529081902060020180546001600160a01b0319166001600160a01b0389169081179091559051899083907f46149b18aa084502c3f12bc75e19eda8bda8d102b82cce8474677a6d0d5f43c59061140f908c908b908b908b90612687565b60405180910390a4611466565b856001600160a01b031688827f3bab293fc00db832d7619a9299914251b8747c036867ec056cbd506f60135b138a89898960405161145d9493929190612687565b60405180910390a45b979650505050505050565b60065460009060ff6101009091041615156001146114a15760405162461bcd60e51b815260040161042490612240565b600080548082526003602052604090912080546001600160a01b0319166001600160a01b038716178155600181018590556002016114df84826125c7565b506000805490806114ef8361230f565b919050555083856001600160a01b0316827f8afcfabcb00e47a53a8fc3e9f23ff47ee1926194bb1350dd007c50b412a6cee88660405161152f9190611e74565b60405180910390a46040805133602082015261154b9101610446565b156115615761155b816001610d06565b5061159b565b6001600160a01b03851630148015906115895750604080513360208201526115899101610ea0565b1561159b57611599816001610d06565b505b949350505050565b6000808585846040516020016115bb939291906126c6565b60405160208183030381529060405280519060200120905060008160405160200161161291907f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b60405160208183030381529060405280519060200120905060006116368683611694565b604080516001600160a01b0383166020820152919250600091016040516020818303038152906040528051906020012090506116738160036119a8565b1561168557600194505050505061159b565b50600098975050505050505050565b60008060008085516041146116af5760009350505050610d00565b50505060208301516040840151606085015160001a601b8110156116db576116d8601b826126f6565b90505b6040805160008082526020820180845288905260ff841692820192909252606081018590526080810184905260019060a0016020604051602081039080840390855afa15801561172f573d6000803e3d6000fd5b5050604051601f19015198975050505050505050565b6001600160a01b03811661179b5760405162461bcd60e51b815260206004820152601f60248201527f696e76616c696420617267756d656e74202d207a65726f2061646472657373006044820152606401610424565b6117a481611b09565b50565b600081815260046020819052604082208054600182015460028301546003840180548796879660609687968796919590946001600160a01b039092169390929081019160059091019083906117fb906123a3565b80601f0160208091040260200160405190810160405280929190818152602001828054611827906123a3565b80156118745780601f1061184957610100808354040283529160200191611874565b820191906000526020600020905b81548152906001019060200180831161185757829003601f168201915b50505050509250818054611887906123a3565b80601f01602080910402602001604051908101604052809291908181526020018280546118b3906123a3565b80156119005780601f106118d557610100808354040283529160200191611900565b820191906000526020600020905b8154815290600101906020018083116118e357829003601f168201915b50505050509150808054611913906123a3565b80601f016020809104026020016040519081016040528092919081815260200182805461193f906123a3565b801561198c5780601f106119615761010080835404028352916020019161198c565b820191906000526020600020905b81548152906001019060200180831161196f57829003601f168201915b5050505050905095509550955095509550955091939550919395565b60008281526001602090815260408083208151815460809481028201850190935260608101838152859491938492849190840182828015611a0857602002820191906000526020600020905b8154815260200190600101908083116119f4575b505050918352505060018201546020820152600290910154604091820152810151909150600003611a3d576000915050610d00565b60005b815151811015611a9e57600082600001518281518110611a6257611a626122e3565b602002602001015190508060011480611a7a57508481145b15611a8b5760019350505050610d00565b5080611a968161230f565b915050611a40565b506000949350505050565b60008181526001602090815260409182902080548351818402810184019094528084526060939283018282801561113957602002820191906000526020600020908154815260200190600101908083116111255750505050509050919050565b60065460ff161580611b1a5750303b155b611b665760405162461bcd60e51b815260206004820152601e60248201527f496e697469616c206b65792077617320616c72656164792073657475702e00006044820152606401610424565b6006805461ffff1916610101179055604080516001600160a01b03831660208201526000910160408051601f198184030181528282528051602091820120600081815260018084528482206002810184905586850190955280865290829052918290529350611bd59290611d12565b506000818152600160208181526040808420830183905560029091527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0805480840182559084527f7fef4bf8f63cf9dd467136c679c02b5c17fcf6322d9562512bf5eb952cf7cc5301849055519091829184917f480000bb1edad8ca1470381cc334b1917fbd51c6531f3a623ea8e0ec7e38a6e991a45050565b828054828255906000526020600020908101928215611caa579160200282015b82811115611caa578251825591602001919060010190611c8f565b50611cb6929150611d52565b5090565b508054611cc6906123a3565b6000825580601f10611cd6575050565b601f0160209004906000526020600020908101906117a49190611d52565b50805460008255906000526020600020908101906117a49190611d52565b828054828255906000526020600020908101928215611caa579160200282015b82811115611caa578251829060ff16905591602001919060010190611d32565b5b80821115611cb65760008155600101611d53565b600060208284031215611d7957600080fd5b5035919050565b600081518084526020808501945080840160005b83811015611db057815187529582019590820190600101611d94565b509495945050505050565b606081526000611dce6060830186611d80565b60208301949094525060400152919050565b600080600060608486031215611df557600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611e1f57600080fd5b50508035926020909101359150565b6000815180845260005b81811015611e5457602081850181015186830182015201611e38565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000611e876020830184611e2e565b9392505050565b80151581146117a457600080fd5b60008060408385031215611eaf57600080fd5b823591506020830135611ec181611e8e565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b81811015611f0457835183529284019291840191600101611ee8565b50909695505050505050565b6001600160a01b03811681146117a457600080fd5b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115611f5657611f56611f25565b604051601f8501601f19908116603f01168101908282118183101715611f7e57611f7e611f25565b81604052809350858152868686011115611f9757600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112611fc257600080fd5b611e8783833560208501611f3b565b60008060008060008060c08789031215611fea57600080fd5b8635955060208701359450604087013561200381611f10565b9350606087013567ffffffffffffffff8082111561202057600080fd5b61202c8a838b01611fb1565b9450608089013591508082111561204257600080fd5b61204e8a838b01611fb1565b935060a089013591508082111561206457600080fd5b508701601f8101891361207657600080fd5b61208589823560208401611f3b565b9150509295509295509295565b6000806000606084860312156120a757600080fd5b83356120b281611f10565b925060208401359150604084013567ffffffffffffffff8111156120d557600080fd5b6120e186828701611fb1565b9150509250925092565b6000806000806080858703121561210157600080fd5b843561210c81611f10565b935060208501359250604085013567ffffffffffffffff8082111561213057600080fd5b61213c88838901611fb1565b9350606087013591508082111561215257600080fd5b5061215f87828801611fb1565b91505092959194509250565b6000806040838503121561217e57600080fd5b823567ffffffffffffffff81111561219557600080fd5b6121a185828601611fb1565b95602094909401359450505050565b6000602082840312156121c257600080fd5b8135611e8781611f10565b86815285602082015260018060a01b038516604082015260c0606082015260006121fa60c0830186611e2e565b828103608084015261220c8186611e2e565b905082810360a08401526122208185611e2e565b9998505050505050505050565b602081526000611e876020830184611d80565b60208082526033908201527f496e746572616374696e67207769746820746865206c69627261727920636f6e6040820152723a3930b1ba1034b9903337b93134b23232b71760691b606082015260800190565b60208082526030908201527f5065726d697373696f6e733a2053656e64657220646f6573206e6f742068617660408201526f65206d616e6167656d656e74206b657960801b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612321576123216122f9565b5060010190565b60208082526032908201527f5065726d697373696f6e733a2053656e64657220646f6573206e6f74206861766040820152716520636c61696d207369676e6572206b657960701b606082015260800190565b81810381811115610d0057610d006122f9565b634e487b7160e01b600052603160045260246000fd5b600181811c908216806123b757607f821691505b6020821081036123d757634e487b7160e01b600052602260045260246000fd5b50919050565b600081546123ea816123a3565b80855260206001838116801561240757600181146124215761244f565b60ff1985168884015283151560051b88018301955061244f565b866000528260002060005b858110156124475781548a820186015290830190840161242c565b890184019650505b505050505092915050565b84815260806020820152600061247360808301866123dd565b828103604084015261248581866123dd565b9050828103606084015261146681856123dd565b60008083546124a7816123a3565b600182811680156124bf57600181146124d457612503565b60ff1984168752821515830287019450612503565b8760005260208060002060005b858110156124fa5781548a8201529084019082016124e1565b50505082870194505b50929695505050505050565b602081526000611e8760208301846123dd565b60018060a01b03851681528360208201526080604082015260006125496080830185611e2e565b82810360608401526114668185611e2e565b60006020828403121561256d57600080fd5b8151611e8781611e8e565b601f8211156125c257600081815260208120601f850160051c8101602086101561259f5750805b601f850160051c820191505b818110156125be578281556001016125ab565b5050505b505050565b815167ffffffffffffffff8111156125e1576125e1611f25565b6125f5816125ef84546123a3565b84612578565b602080601f83116001811461262a57600084156126125750858301515b600019600386901b1c1916600185901b1785556125be565b600085815260208120601f198616915b828110156126595788860151825594840194600190910190840161263a565b50858210156126775787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8481526080602082015260006126a06080830186611e2e565b82810360408401526126b28186611e2e565b905082810360608401526114668185611e2e565b60018060a01b03841681528260208201526060604082015260006126ed6060830184611e2e565b95945050505050565b60ff8181168382160190811115610d0057610d006122f956fea2646970667358221220800c1fefc3113cb581850f72bd394f020857e354768e72f47d1ebffc832c426264736f6c63430008110033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
