{
  "_format": "hh-sol-artifact-1",
  "contractName": "PangolinBridgeMigrationRouter",
  "sourceName": "contracts/pangolin-periphery/PangolinBridgeMigrationRouter.sol",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "addAdmin",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "migratorAddress",
          "type": "address"
        }
      ],
      "name": "addMigrator",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "bridgeMigrator",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "liquidityPairFrom",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "liquidityPairTo",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "calculateChargeBack",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "amount0",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount1",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "isAdmin",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "liquidityPairFrom",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "liquidityPairTo",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "migrateLiquidity",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "liquidityPairFrom",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "liquidityPairTo",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "v",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "r",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "s",
          "type": "bytes32"
        }
      ],
      "name": "migrateLiquidityWithPermit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "migrateToken",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "removeAdmin",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040523480156200001157600080fd5b506200002d3360006200003360201b62000b471790919060201c565b62000120565b6200003f8282620000b7565b1562000092576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216620001005760405162461bcd60e51b8152600401808060200182810382526022815260200180620028e16022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6127b180620001306000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80637048027511610076578063b032fff71161005b578063b032fff7146101ef578063f057d23714610247578063ffc5059414610283576100a3565b8063704802751461017a57806399a0df82146101a0576100a3565b80631785f53c146100a857806324d7806c146100d0578063495952f51461010a5780634c389d261461014c575b600080fd5b6100ce600480360360208110156100be57600080fd5b50356001600160a01b03166102c5565b005b6100f6600480360360208110156100e657600080fd5b50356001600160a01b0316610361565b604080519115158252519081900360200190f35b6100ce600480360360a081101561012057600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060800135610373565b6100ce6004803603604081101561016257600080fd5b506001600160a01b03813581169160200135166103c7565b6100ce6004803603602081101561019057600080fd5b50356001600160a01b03166105a1565b6101d6600480360360608110156101b657600080fd5b506001600160a01b03813581169160208101359091169060400135610637565b6040805192835260208301919091528051918290030190f35b6100ce600480360361010081101561020657600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060808101359060ff60a0820135169060c08101359060e00135610972565b6100ce6004803603608081101561025d57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135610a53565b6102a96004803603602081101561029957600080fd5b50356001600160a01b0316610b2c565b604080516001600160a01b039092168252519081900360200190f35b6102d0600033610bc8565b61030b5760405162461bcd60e51b815260040180806020018281038252602b81526020018061260e602b913960400191505060405180910390fd5b336001600160a01b03821614156103535760405162461bcd60e51b81526004018080602001828103825260388152602001806123656038913960400191505060405180910390fd5b61035e600082610c2f565b50565b600061036d8183610bc8565b92915050565b80428110156103b35760405162461bcd60e51b81526004018080602001828103825260268152602001806124076026913960400191505060405180910390fd5b6103bf86868686610c96565b505050505050565b6103d2600033610bc8565b61040d5760405162461bcd60e51b815260040180806020018281038252602b81526020018061260e602b913960400191505060405180910390fd5b6001600160a01b0382166104525760405162461bcd60e51b815260040180806020018281038252603b815260200180612539603b913960400191505060405180910390fd5b6001600160a01b0381166104975760405162461bcd60e51b815260040180806020018281038252603e815260200180612461603e913960400191505060405180910390fd5b6000816001600160a01b031663ab32dbb7846040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156104e657600080fd5b505afa1580156104fa573d6000803e3d6000fd5b505050506040513d602081101561051057600080fd5b50519050806105505760405162461bcd60e51b815260040180806020018281038252603481526020018061242d6034913960400191505060405180910390fd5b61055a8383611509565b506001600160a01b03918216600090815260016020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909216179055565b6105ac600033610bc8565b6105e75760405162461bcd60e51b815260040180806020018281038252602b81526020018061260e602b913960400191505060405180910390fd5b6001600160a01b03811661062c5760405162461bcd60e51b81526004018080602001828103825260348152602001806126816034913960400191505060405180910390fd5b61035e600082610b47565b6000806001600160a01b03851661067f5760405162461bcd60e51b81526004018080602001828103825260488152602001806126396048913960600191505060405180910390fd5b6001600160a01b0384166106c45760405162461bcd60e51b81526004018080602001828103825260468152602001806123c16046913960600191505060405180910390fd5b6000806106d18786611592565b91509150856001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561070e57600080fd5b505afa158015610722573d6000803e3d6000fd5b505050506040513d602081101561073857600080fd5b505160408051630dfe168160e01b815290516001600160a01b03928316928a1691630dfe1681916004808301926020929190829003018186803b15801561077e57600080fd5b505afa158015610792573d6000803e3d6000fd5b505050506040513d60208110156107a857600080fd5b50516001600160a01b03161480159061089d5750856001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156107f557600080fd5b505afa158015610809573d6000803e3d6000fd5b505050506040513d602081101561081f57600080fd5b50516040805163d21220a760e01b815290516001600160a01b03928316928a169163d21220a7916004808301926020929190829003018186803b15801561086557600080fd5b505afa158015610879573d6000803e3d6000fd5b505050506040513d602081101561088f57600080fd5b50516001600160a01b031614155b156108a457905b600080876001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156108e057600080fd5b505afa1580156108f4573d6000803e3d6000fd5b505050506040513d606081101561090a57600080fd5b5080516020909101519092509050836000610932826001600160701b038087169086166116be565b90508481111561095f5784905061095c85846001600160701b0316866001600160701b03166116be565b91505b9403999390920397509195505050505050565b83428110156109b25760405162461bcd60e51b81526004018080602001828103825260268152602001806124076026913960400191505060405180910390fd5b6040805163d505accf60e01b8152336004820152306024820152604481018890526064810187905260ff8616608482015260a4810185905260c4810184905290516001600160a01b038b169163d505accf9160e480830192600092919082900301818387803b158015610a2457600080fd5b505af1158015610a38573d6000803e3d6000fd5b50505050610a4889898989610c96565b505050505050505050565b8042811015610a935760405162461bcd60e51b81526004018080602001828103825260268152602001806124076026913960400191505060405180910390fd5b6001600160a01b0385811660009081526001602052604090205416610ae95760405162461bcd60e51b815260040180806020018281038252603681526020018061249f6036913960400191505060405180910390fd5b610af585333086611764565b610aff85846118cd565b6001600160a01b03808616600090815260016020526040902054610b2591168585611a4d565b5050505050565b6001602052600090815260409020546001600160a01b031681565b610b518282610bc8565b15610ba3576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216610c0f5760405162461bcd60e51b81526004018080602001828103825260228152602001806125746022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610c398282610bc8565b610c745760405162461bcd60e51b81526004018080602001828103825260218152602001806124d56021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b610ca08484611bc4565b6000846001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015610cdb57600080fd5b505afa158015610cef573d6000803e3d6000fd5b505050506040513d6020811015610d0557600080fd5b505160408051630dfe168160e01b815290519192506001600160a01b03861691630dfe168191600480820192602092909190829003018186803b158015610d4b57600080fd5b505afa158015610d5f573d6000803e3d6000fd5b505050506040513d6020811015610d7557600080fd5b505160408051630dfe168160e01b815290516001600160a01b0392831692881691630dfe1681916004808301926020929190829003018186803b158015610dbb57600080fd5b505afa158015610dcf573d6000803e3d6000fd5b505050506040513d6020811015610de557600080fd5b50516001600160a01b03161480610ed75750836001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015610e3057600080fd5b505afa158015610e44573d6000803e3d6000fd5b505050506040513d6020811015610e5a57600080fd5b505160408051630dfe168160e01b815290516001600160a01b0392831692881691630dfe1681916004808301926020929190829003018186803b158015610ea057600080fd5b505afa158015610eb4573d6000803e3d6000fd5b505050506040513d6020811015610eca57600080fd5b50516001600160a01b0316145b15610f4457846001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015610f1557600080fd5b505afa158015610f29573d6000803e3d6000fd5b505050506040513d6020811015610f3f57600080fd5b505190505b6001600160a01b038082166000908152600160205260409020541680610f9b5760405162461bcd60e51b81526004018080602001828103825260438152602001806124f66043913960600191505060405180910390fd5b846001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015610fd457600080fd5b505afa158015610fe8573d6000803e3d6000fd5b505050506040513d6020811015610ffe57600080fd5b50516001600160a01b03828116911614806110885750846001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561104d57600080fd5b505afa158015611061573d6000803e3d6000fd5b505050506040513d602081101561107757600080fd5b50516001600160a01b038281169116145b6110c35760405162461bcd60e51b81526004018080602001828103825260458152602001806122d96045913960600191505060405180910390fd5b6000806110d0888661206b565b915091506000829050886001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561111257600080fd5b505afa158015611126573d6000803e3d6000fd5b505050506040513d602081101561113c57600080fd5b50516001600160a01b038681169116146111535750805b61115d85826118cd565b50866001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561119757600080fd5b505afa1580156111ab573d6000803e3d6000fd5b505050506040513d60208110156111c157600080fd5b505160408051630dfe168160e01b815290516001600160a01b03928316928b1691630dfe1681916004808301926020929190829003018186803b15801561120757600080fd5b505afa15801561121b573d6000803e3d6000fd5b505050506040513d602081101561123157600080fd5b50516001600160a01b0316148015906113265750866001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561127e57600080fd5b505afa158015611292573d6000803e3d6000fd5b505050506040513d60208110156112a857600080fd5b50516040805163d21220a760e01b815290516001600160a01b03928316928b169163d21220a7916004808301926020929190829003018186803b1580156112ee57600080fd5b505afa158015611302573d6000803e3d6000fd5b505050506040513d602081101561131857600080fd5b50516001600160a01b031614155b1561132d57905b60008061140d898a6001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561136d57600080fd5b505afa158015611381573d6000803e3d6000fd5b505050506040513d602081101561139757600080fd5b50516040805163d21220a760e01b815290516001600160a01b038e169163d21220a7916004808301926020929190829003018186803b1580156113d957600080fd5b505afa1580156113ed573d6000803e3d6000fd5b505050506040513d602081101561140357600080fd5b505187878d6120fc565b509092509050811561148857611488896001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561145557600080fd5b505afa158015611469573d6000803e3d6000fd5b505050506040513d602081101561147f57600080fd5b50518984611a4d565b80156114fd576114fd896001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156114ca57600080fd5b505afa1580156114de573d6000803e3d6000fd5b505050506040513d60208110156114f457600080fd5b50518983611a4d565b50505050505050505050565b816001600160a01b031663095ea7b3826000196040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561156257600080fd5b505af1158015611576573d6000803e3d6000fd5b505050506040513d602081101561158c57600080fd5b50505050565b600080600080856001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156115d157600080fd5b505afa1580156115e5573d6000803e3d6000fd5b505050506040513d60608110156115fb57600080fd5b508051602091820151604080516318160ddd60e01b815290519295509093506000926001600160a01b038a16926318160ddd926004808201939291829003018186803b15801561164a57600080fd5b505afa15801561165e573d6000803e3d6000fd5b505050506040513d602081101561167457600080fd5b505190508061168c876001600160701b03861661226c565b8161169357fe5b049450806116aa876001600160701b03851661226c565b816116b157fe5b0493505050509250929050565b60008084116116fe5760405162461bcd60e51b815260040180806020018281038252602481526020018061239d6024913960400191505060405180910390fd5b60008311801561170e5750600082115b6117495760405162461bcd60e51b81526004018080602001828103825260278152602001806127556027913960400191505060405180910390fd5b82611754858461226c565b8161175b57fe5b04949350505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166323b872dd60e01b178152925182516000948594938a169392918291908083835b602083106117fd5780518252601f1990920191602091820191016117de565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461185f576040519150601f19603f3d011682016040523d82523d6000602084013e611864565b606091505b5091509150818015611892575080511580611892575080806020019051602081101561188f57600080fd5b50515b6103bf5760405162461bcd60e51b81526004018080602001828103825260248152602001806127316024913960400191505060405180910390fd5b6001600160a01b0382166119125760405162461bcd60e51b815260040180806020018281038252603b815260200180612539603b913960400191505060405180910390fd5b6001600160a01b0380831660008181526001602052604080822054815163d004f0f760e01b8152600481019490945260248401869052905193169263d004f0f792604480820193929182900301818387803b15801561197057600080fd5b505af1158015611984573d6000803e3d6000fd5b5050506001600160a01b038084166000908152600160209081526040918290205482516370a0823160e01b815230600482015292518695509316926370a08231926024808201939291829003018186803b1580156119e157600080fd5b505afa1580156119f5573d6000803e3d6000fd5b505050506040513d6020811015611a0b57600080fd5b505114611a495760405162461bcd60e51b815260040180806020018281038252603e8152602001806125d0603e913960400191505060405180910390fd5b5050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663a9059cbb60e01b1781529251825160009485949389169392918291908083835b60208310611ade5780518252601f199092019160209182019101611abf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611b40576040519150601f19603f3d011682016040523d82523d6000602084013e611b45565b606091505b5091509150818015611b73575080511580611b735750808060200190516020811015611b7057600080fd5b50515b610b25576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b6001600160a01b038216611c095760405162461bcd60e51b815260040180806020018281038252603a815260200180612596603a913960400191505060405180910390fd5b6001600160a01b038216611c4e5760405162461bcd60e51b81526004018080602001828103825260388152602001806126b56038913960400191505060405180910390fd5b806001600160a01b0316826001600160a01b03161415611c9f5760405162461bcd60e51b815260040180806020018281038252604781526020018061231e6047913960600191505060405180910390fd5b806001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015611cd857600080fd5b505afa158015611cec573d6000803e3d6000fd5b505050506040513d6020811015611d0257600080fd5b505160408051630dfe168160e01b815290516001600160a01b0392831692851691630dfe1681916004808301926020929190829003018186803b158015611d4857600080fd5b505afa158015611d5c573d6000803e3d6000fd5b505050506040513d6020811015611d7257600080fd5b50516001600160a01b03161480611e645750806001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015611dbd57600080fd5b505afa158015611dd1573d6000803e3d6000fd5b505050506040513d6020811015611de757600080fd5b505160408051630dfe168160e01b815290516001600160a01b0392831692851691630dfe1681916004808301926020929190829003018186803b158015611e2d57600080fd5b505afa158015611e41573d6000803e3d6000fd5b505050506040513d6020811015611e5757600080fd5b50516001600160a01b0316145b80611f4a5750806001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015611ea357600080fd5b505afa158015611eb7573d6000803e3d6000fd5b505050506040513d6020811015611ecd57600080fd5b50516040805163d21220a760e01b815290516001600160a01b039283169285169163d21220a7916004808301926020929190829003018186803b158015611f1357600080fd5b505afa158015611f27573d6000803e3d6000fd5b505050506040513d6020811015611f3d57600080fd5b50516001600160a01b0316145b806120305750806001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015611f8957600080fd5b505afa158015611f9d573d6000803e3d6000fd5b505050506040513d6020811015611fb357600080fd5b50516040805163d21220a760e01b815290516001600160a01b039283169285169163d21220a7916004808301926020929190829003018186803b158015611ff957600080fd5b505afa15801561200d573d6000803e3d6000fd5b505050506040513d602081101561202357600080fd5b50516001600160a01b0316145b611a495760405162461bcd60e51b81526004018080602001828103825260448152602001806126ed6044913960600191505060405180910390fd5b60008061207a84338686611764565b6040805163226bf2d160e21b815230600482015281516001600160a01b038716926389afcb4492602480820193918290030181600087803b1580156120be57600080fd5b505af11580156120d2573d6000803e3d6000fd5b505050506040513d60408110156120e857600080fd5b508051602090910151909590945092505050565b60008060008060008a6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561213d57600080fd5b505afa158015612151573d6000803e3d6000fd5b505050506040513d606081101561216757600080fd5b508051602090910151909250905087600061218f826001600160701b038087169086166116be565b9050888111156121bc578890506121b989846001600160701b0316866001600160701b03166116be565b91505b6121c78c8e84611a4d565b6121d28b8e83611a4d565b818a03965080890395508c6001600160a01b0316636a627842896040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b15801561222b57600080fd5b505af115801561223f573d6000803e3d6000fd5b505050506040513d602081101561225557600080fd5b5051969d959c50959a509398505050505050505050565b60008115806122875750508082028282828161228457fe5b04145b61036d576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe50616e676f6c696e4272696467654d6967726174696f6e526f757465723a205061697220646f65736e2774206d6174636820746865206d6967726174696f6e20746f6b656e50616e676f6c696e4272696467654d6967726174696f6e526f757465723a2043616e7420636f6e7665727420746f207468652073616d65206c697175696469747920706169727350616e676f6c696e4272696467654d6967726174696f6e526f757465723a20596f752063616e27742064656d6f746520796f757273656c6650616e676f6c696e4c6962726172793a20494e53554646494349454e545f414d4f554e5450616e676f6c696e4272696467654d6967726174696f6e526f757465723a206c697175696469747950616972546f20616464726573732030206e6f7420737570706f7274656450616e676f6c696e4272696467654d6967726174696f6e526f757465723a2045585049524544546865206d69677261746f7220646f65736e27742068617665207377617020737570706c7920666f72207468697320746f6b656e50616e676f6c696e4272696467654d6967726174696f6e526f757465723a206d69677261746f72416464726573732030206e6f7420737570706f7274656450616e676f6c696e4272696467654d6967726174696f6e526f757465723a206d69677261746f72206e6f742072656769737465726564526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6550616e676f6c696e4272696467654d6967726174696f6e526f757465723a204d69677261746f72206e6f74207265676973746572656420666f7220746865207061697250616e676f6c696e4272696467654d6967726174696f6e526f757465723a20746f6b656e416464726573732030206e6f7420737570706f72746564526f6c65733a206163636f756e7420697320746865207a65726f206164647265737350616e676f6c696e4272696467654d6967726174696f6e526f757465723a206c69717569646974795061697246726f6d2061646472657373203050616e676f6c696e4272696467654d6967726174696f6e526f757465723a204469646e2774207969656c642074686520636f727265637420616d6f756e7450616e676f6c696e4272696467654d6967726174696f6e526f757465723a20556e617574686f72697a656450616e676f6c696e4272696467654d6967726174696f6e526f757465723a206c69717569646974795061697246726f6d20616464726573732030206e6f7420737570706f7274656450616e676f6c696e4272696467654d6967726174696f6e526f757465723a20416464726573732030206e6f7420616c6c6f77656450616e676f6c696e4272696467654d6967726174696f6e526f757465723a206c697175696469747950616972546f2061646472657373203050616e676f6c696e4272696467654d6967726174696f6e526f757465723a205061697220646f6573206e6f742068617665206f6e6520746f6b656e206d61746368696e675472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c454450616e676f6c696e4c6962726172793a20494e53554646494349454e545f4c4951554944495459a26469706673582212209115ed6d3895bb5381b3d4882fd70745e42603a90002fa7e94c6c6837bac324f64736f6c63430007060033526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a35760003560e01c80637048027511610076578063b032fff71161005b578063b032fff7146101ef578063f057d23714610247578063ffc5059414610283576100a3565b8063704802751461017a57806399a0df82146101a0576100a3565b80631785f53c146100a857806324d7806c146100d0578063495952f51461010a5780634c389d261461014c575b600080fd5b6100ce600480360360208110156100be57600080fd5b50356001600160a01b03166102c5565b005b6100f6600480360360208110156100e657600080fd5b50356001600160a01b0316610361565b604080519115158252519081900360200190f35b6100ce600480360360a081101561012057600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060800135610373565b6100ce6004803603604081101561016257600080fd5b506001600160a01b03813581169160200135166103c7565b6100ce6004803603602081101561019057600080fd5b50356001600160a01b03166105a1565b6101d6600480360360608110156101b657600080fd5b506001600160a01b03813581169160208101359091169060400135610637565b6040805192835260208301919091528051918290030190f35b6100ce600480360361010081101561020657600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060808101359060ff60a0820135169060c08101359060e00135610972565b6100ce6004803603608081101561025d57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135610a53565b6102a96004803603602081101561029957600080fd5b50356001600160a01b0316610b2c565b604080516001600160a01b039092168252519081900360200190f35b6102d0600033610bc8565b61030b5760405162461bcd60e51b815260040180806020018281038252602b81526020018061260e602b913960400191505060405180910390fd5b336001600160a01b03821614156103535760405162461bcd60e51b81526004018080602001828103825260388152602001806123656038913960400191505060405180910390fd5b61035e600082610c2f565b50565b600061036d8183610bc8565b92915050565b80428110156103b35760405162461bcd60e51b81526004018080602001828103825260268152602001806124076026913960400191505060405180910390fd5b6103bf86868686610c96565b505050505050565b6103d2600033610bc8565b61040d5760405162461bcd60e51b815260040180806020018281038252602b81526020018061260e602b913960400191505060405180910390fd5b6001600160a01b0382166104525760405162461bcd60e51b815260040180806020018281038252603b815260200180612539603b913960400191505060405180910390fd5b6001600160a01b0381166104975760405162461bcd60e51b815260040180806020018281038252603e815260200180612461603e913960400191505060405180910390fd5b6000816001600160a01b031663ab32dbb7846040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156104e657600080fd5b505afa1580156104fa573d6000803e3d6000fd5b505050506040513d602081101561051057600080fd5b50519050806105505760405162461bcd60e51b815260040180806020018281038252603481526020018061242d6034913960400191505060405180910390fd5b61055a8383611509565b506001600160a01b03918216600090815260016020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001691909216179055565b6105ac600033610bc8565b6105e75760405162461bcd60e51b815260040180806020018281038252602b81526020018061260e602b913960400191505060405180910390fd5b6001600160a01b03811661062c5760405162461bcd60e51b81526004018080602001828103825260348152602001806126816034913960400191505060405180910390fd5b61035e600082610b47565b6000806001600160a01b03851661067f5760405162461bcd60e51b81526004018080602001828103825260488152602001806126396048913960600191505060405180910390fd5b6001600160a01b0384166106c45760405162461bcd60e51b81526004018080602001828103825260468152602001806123c16046913960600191505060405180910390fd5b6000806106d18786611592565b91509150856001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561070e57600080fd5b505afa158015610722573d6000803e3d6000fd5b505050506040513d602081101561073857600080fd5b505160408051630dfe168160e01b815290516001600160a01b03928316928a1691630dfe1681916004808301926020929190829003018186803b15801561077e57600080fd5b505afa158015610792573d6000803e3d6000fd5b505050506040513d60208110156107a857600080fd5b50516001600160a01b03161480159061089d5750856001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156107f557600080fd5b505afa158015610809573d6000803e3d6000fd5b505050506040513d602081101561081f57600080fd5b50516040805163d21220a760e01b815290516001600160a01b03928316928a169163d21220a7916004808301926020929190829003018186803b15801561086557600080fd5b505afa158015610879573d6000803e3d6000fd5b505050506040513d602081101561088f57600080fd5b50516001600160a01b031614155b156108a457905b600080876001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156108e057600080fd5b505afa1580156108f4573d6000803e3d6000fd5b505050506040513d606081101561090a57600080fd5b5080516020909101519092509050836000610932826001600160701b038087169086166116be565b90508481111561095f5784905061095c85846001600160701b0316866001600160701b03166116be565b91505b9403999390920397509195505050505050565b83428110156109b25760405162461bcd60e51b81526004018080602001828103825260268152602001806124076026913960400191505060405180910390fd5b6040805163d505accf60e01b8152336004820152306024820152604481018890526064810187905260ff8616608482015260a4810185905260c4810184905290516001600160a01b038b169163d505accf9160e480830192600092919082900301818387803b158015610a2457600080fd5b505af1158015610a38573d6000803e3d6000fd5b50505050610a4889898989610c96565b505050505050505050565b8042811015610a935760405162461bcd60e51b81526004018080602001828103825260268152602001806124076026913960400191505060405180910390fd5b6001600160a01b0385811660009081526001602052604090205416610ae95760405162461bcd60e51b815260040180806020018281038252603681526020018061249f6036913960400191505060405180910390fd5b610af585333086611764565b610aff85846118cd565b6001600160a01b03808616600090815260016020526040902054610b2591168585611a4d565b5050505050565b6001602052600090815260409020546001600160a01b031681565b610b518282610bc8565b15610ba3576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216610c0f5760405162461bcd60e51b81526004018080602001828103825260228152602001806125746022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610c398282610bc8565b610c745760405162461bcd60e51b81526004018080602001828103825260218152602001806124d56021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b610ca08484611bc4565b6000846001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015610cdb57600080fd5b505afa158015610cef573d6000803e3d6000fd5b505050506040513d6020811015610d0557600080fd5b505160408051630dfe168160e01b815290519192506001600160a01b03861691630dfe168191600480820192602092909190829003018186803b158015610d4b57600080fd5b505afa158015610d5f573d6000803e3d6000fd5b505050506040513d6020811015610d7557600080fd5b505160408051630dfe168160e01b815290516001600160a01b0392831692881691630dfe1681916004808301926020929190829003018186803b158015610dbb57600080fd5b505afa158015610dcf573d6000803e3d6000fd5b505050506040513d6020811015610de557600080fd5b50516001600160a01b03161480610ed75750836001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015610e3057600080fd5b505afa158015610e44573d6000803e3d6000fd5b505050506040513d6020811015610e5a57600080fd5b505160408051630dfe168160e01b815290516001600160a01b0392831692881691630dfe1681916004808301926020929190829003018186803b158015610ea057600080fd5b505afa158015610eb4573d6000803e3d6000fd5b505050506040513d6020811015610eca57600080fd5b50516001600160a01b0316145b15610f4457846001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015610f1557600080fd5b505afa158015610f29573d6000803e3d6000fd5b505050506040513d6020811015610f3f57600080fd5b505190505b6001600160a01b038082166000908152600160205260409020541680610f9b5760405162461bcd60e51b81526004018080602001828103825260438152602001806124f66043913960600191505060405180910390fd5b846001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015610fd457600080fd5b505afa158015610fe8573d6000803e3d6000fd5b505050506040513d6020811015610ffe57600080fd5b50516001600160a01b03828116911614806110885750846001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561104d57600080fd5b505afa158015611061573d6000803e3d6000fd5b505050506040513d602081101561107757600080fd5b50516001600160a01b038281169116145b6110c35760405162461bcd60e51b81526004018080602001828103825260458152602001806122d96045913960600191505060405180910390fd5b6000806110d0888661206b565b915091506000829050886001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561111257600080fd5b505afa158015611126573d6000803e3d6000fd5b505050506040513d602081101561113c57600080fd5b50516001600160a01b038681169116146111535750805b61115d85826118cd565b50866001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561119757600080fd5b505afa1580156111ab573d6000803e3d6000fd5b505050506040513d60208110156111c157600080fd5b505160408051630dfe168160e01b815290516001600160a01b03928316928b1691630dfe1681916004808301926020929190829003018186803b15801561120757600080fd5b505afa15801561121b573d6000803e3d6000fd5b505050506040513d602081101561123157600080fd5b50516001600160a01b0316148015906113265750866001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561127e57600080fd5b505afa158015611292573d6000803e3d6000fd5b505050506040513d60208110156112a857600080fd5b50516040805163d21220a760e01b815290516001600160a01b03928316928b169163d21220a7916004808301926020929190829003018186803b1580156112ee57600080fd5b505afa158015611302573d6000803e3d6000fd5b505050506040513d602081101561131857600080fd5b50516001600160a01b031614155b1561132d57905b60008061140d898a6001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561136d57600080fd5b505afa158015611381573d6000803e3d6000fd5b505050506040513d602081101561139757600080fd5b50516040805163d21220a760e01b815290516001600160a01b038e169163d21220a7916004808301926020929190829003018186803b1580156113d957600080fd5b505afa1580156113ed573d6000803e3d6000fd5b505050506040513d602081101561140357600080fd5b505187878d6120fc565b509092509050811561148857611488896001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561145557600080fd5b505afa158015611469573d6000803e3d6000fd5b505050506040513d602081101561147f57600080fd5b50518984611a4d565b80156114fd576114fd896001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156114ca57600080fd5b505afa1580156114de573d6000803e3d6000fd5b505050506040513d60208110156114f457600080fd5b50518983611a4d565b50505050505050505050565b816001600160a01b031663095ea7b3826000196040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561156257600080fd5b505af1158015611576573d6000803e3d6000fd5b505050506040513d602081101561158c57600080fd5b50505050565b600080600080856001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b1580156115d157600080fd5b505afa1580156115e5573d6000803e3d6000fd5b505050506040513d60608110156115fb57600080fd5b508051602091820151604080516318160ddd60e01b815290519295509093506000926001600160a01b038a16926318160ddd926004808201939291829003018186803b15801561164a57600080fd5b505afa15801561165e573d6000803e3d6000fd5b505050506040513d602081101561167457600080fd5b505190508061168c876001600160701b03861661226c565b8161169357fe5b049450806116aa876001600160701b03851661226c565b816116b157fe5b0493505050509250929050565b60008084116116fe5760405162461bcd60e51b815260040180806020018281038252602481526020018061239d6024913960400191505060405180910390fd5b60008311801561170e5750600082115b6117495760405162461bcd60e51b81526004018080602001828103825260278152602001806127556027913960400191505060405180910390fd5b82611754858461226c565b8161175b57fe5b04949350505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166323b872dd60e01b178152925182516000948594938a169392918291908083835b602083106117fd5780518252601f1990920191602091820191016117de565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461185f576040519150601f19603f3d011682016040523d82523d6000602084013e611864565b606091505b5091509150818015611892575080511580611892575080806020019051602081101561188f57600080fd5b50515b6103bf5760405162461bcd60e51b81526004018080602001828103825260248152602001806127316024913960400191505060405180910390fd5b6001600160a01b0382166119125760405162461bcd60e51b815260040180806020018281038252603b815260200180612539603b913960400191505060405180910390fd5b6001600160a01b0380831660008181526001602052604080822054815163d004f0f760e01b8152600481019490945260248401869052905193169263d004f0f792604480820193929182900301818387803b15801561197057600080fd5b505af1158015611984573d6000803e3d6000fd5b5050506001600160a01b038084166000908152600160209081526040918290205482516370a0823160e01b815230600482015292518695509316926370a08231926024808201939291829003018186803b1580156119e157600080fd5b505afa1580156119f5573d6000803e3d6000fd5b505050506040513d6020811015611a0b57600080fd5b505114611a495760405162461bcd60e51b815260040180806020018281038252603e8152602001806125d0603e913960400191505060405180910390fd5b5050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663a9059cbb60e01b1781529251825160009485949389169392918291908083835b60208310611ade5780518252601f199092019160209182019101611abf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611b40576040519150601f19603f3d011682016040523d82523d6000602084013e611b45565b606091505b5091509150818015611b73575080511580611b735750808060200190516020811015611b7057600080fd5b50515b610b25576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b6001600160a01b038216611c095760405162461bcd60e51b815260040180806020018281038252603a815260200180612596603a913960400191505060405180910390fd5b6001600160a01b038216611c4e5760405162461bcd60e51b81526004018080602001828103825260388152602001806126b56038913960400191505060405180910390fd5b806001600160a01b0316826001600160a01b03161415611c9f5760405162461bcd60e51b815260040180806020018281038252604781526020018061231e6047913960600191505060405180910390fd5b806001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015611cd857600080fd5b505afa158015611cec573d6000803e3d6000fd5b505050506040513d6020811015611d0257600080fd5b505160408051630dfe168160e01b815290516001600160a01b0392831692851691630dfe1681916004808301926020929190829003018186803b158015611d4857600080fd5b505afa158015611d5c573d6000803e3d6000fd5b505050506040513d6020811015611d7257600080fd5b50516001600160a01b03161480611e645750806001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015611dbd57600080fd5b505afa158015611dd1573d6000803e3d6000fd5b505050506040513d6020811015611de757600080fd5b505160408051630dfe168160e01b815290516001600160a01b0392831692851691630dfe1681916004808301926020929190829003018186803b158015611e2d57600080fd5b505afa158015611e41573d6000803e3d6000fd5b505050506040513d6020811015611e5757600080fd5b50516001600160a01b0316145b80611f4a5750806001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b158015611ea357600080fd5b505afa158015611eb7573d6000803e3d6000fd5b505050506040513d6020811015611ecd57600080fd5b50516040805163d21220a760e01b815290516001600160a01b039283169285169163d21220a7916004808301926020929190829003018186803b158015611f1357600080fd5b505afa158015611f27573d6000803e3d6000fd5b505050506040513d6020811015611f3d57600080fd5b50516001600160a01b0316145b806120305750806001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015611f8957600080fd5b505afa158015611f9d573d6000803e3d6000fd5b505050506040513d6020811015611fb357600080fd5b50516040805163d21220a760e01b815290516001600160a01b039283169285169163d21220a7916004808301926020929190829003018186803b158015611ff957600080fd5b505afa15801561200d573d6000803e3d6000fd5b505050506040513d602081101561202357600080fd5b50516001600160a01b0316145b611a495760405162461bcd60e51b81526004018080602001828103825260448152602001806126ed6044913960600191505060405180910390fd5b60008061207a84338686611764565b6040805163226bf2d160e21b815230600482015281516001600160a01b038716926389afcb4492602480820193918290030181600087803b1580156120be57600080fd5b505af11580156120d2573d6000803e3d6000fd5b505050506040513d60408110156120e857600080fd5b508051602090910151909590945092505050565b60008060008060008a6001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561213d57600080fd5b505afa158015612151573d6000803e3d6000fd5b505050506040513d606081101561216757600080fd5b508051602090910151909250905087600061218f826001600160701b038087169086166116be565b9050888111156121bc578890506121b989846001600160701b0316866001600160701b03166116be565b91505b6121c78c8e84611a4d565b6121d28b8e83611a4d565b818a03965080890395508c6001600160a01b0316636a627842896040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381600087803b15801561222b57600080fd5b505af115801561223f573d6000803e3d6000fd5b505050506040513d602081101561225557600080fd5b5051969d959c50959a509398505050505050505050565b60008115806122875750508082028282828161228457fe5b04145b61036d576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe50616e676f6c696e4272696467654d6967726174696f6e526f757465723a205061697220646f65736e2774206d6174636820746865206d6967726174696f6e20746f6b656e50616e676f6c696e4272696467654d6967726174696f6e526f757465723a2043616e7420636f6e7665727420746f207468652073616d65206c697175696469747920706169727350616e676f6c696e4272696467654d6967726174696f6e526f757465723a20596f752063616e27742064656d6f746520796f757273656c6650616e676f6c696e4c6962726172793a20494e53554646494349454e545f414d4f554e5450616e676f6c696e4272696467654d6967726174696f6e526f757465723a206c697175696469747950616972546f20616464726573732030206e6f7420737570706f7274656450616e676f6c696e4272696467654d6967726174696f6e526f757465723a2045585049524544546865206d69677261746f7220646f65736e27742068617665207377617020737570706c7920666f72207468697320746f6b656e50616e676f6c696e4272696467654d6967726174696f6e526f757465723a206d69677261746f72416464726573732030206e6f7420737570706f7274656450616e676f6c696e4272696467654d6967726174696f6e526f757465723a206d69677261746f72206e6f742072656769737465726564526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6550616e676f6c696e4272696467654d6967726174696f6e526f757465723a204d69677261746f72206e6f74207265676973746572656420666f7220746865207061697250616e676f6c696e4272696467654d6967726174696f6e526f757465723a20746f6b656e416464726573732030206e6f7420737570706f72746564526f6c65733a206163636f756e7420697320746865207a65726f206164647265737350616e676f6c696e4272696467654d6967726174696f6e526f757465723a206c69717569646974795061697246726f6d2061646472657373203050616e676f6c696e4272696467654d6967726174696f6e526f757465723a204469646e2774207969656c642074686520636f727265637420616d6f756e7450616e676f6c696e4272696467654d6967726174696f6e526f757465723a20556e617574686f72697a656450616e676f6c696e4272696467654d6967726174696f6e526f757465723a206c69717569646974795061697246726f6d20616464726573732030206e6f7420737570706f7274656450616e676f6c696e4272696467654d6967726174696f6e526f757465723a20416464726573732030206e6f7420616c6c6f77656450616e676f6c696e4272696467654d6967726174696f6e526f757465723a206c697175696469747950616972546f2061646472657373203050616e676f6c696e4272696467654d6967726174696f6e526f757465723a205061697220646f6573206e6f742068617665206f6e6520746f6b656e206d61746368696e675472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c454450616e676f6c696e4c6962726172793a20494e53554646494349454e545f4c4951554944495459a26469706673582212209115ed6d3895bb5381b3d4882fd70745e42603a90002fa7e94c6c6837bac324f64736f6c63430007060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
