{
  "_format": "hh-sol-artifact-1",
  "contractName": "PendleSLPLiquidityMining",
  "sourceName": "contracts/core/SushiswapComplex/PendleSLPLiquidityMining.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_governanceManager",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_pausingManager",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_whitelist",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_pendleTokenAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_stakeToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_yieldToken",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_startTime",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_epochDuration",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_vestingEpochs",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_masterChef",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_pid",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "sendTo",
          "type": "address"
        }
      ],
      "name": "EtherWithdraw",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "rewards",
          "type": "uint256[]"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "numberOfEpochs",
          "type": "uint256"
        }
      ],
      "name": "Funded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "PendleRewardsSettled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "epochIds",
          "type": "uint256[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "rewards",
          "type": "uint256[]"
        }
      ],
      "name": "RewardsToppedUp",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "Staked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "contract IERC20",
          "name": "token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "sendTo",
          "type": "address"
        }
      ],
      "name": "TokenWithdraw",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "user",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "Withdrawn",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "MULTIPLIER",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "balances",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "dueInterests",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "epochDuration",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "rewards",
          "type": "uint256[]"
        }
      ],
      "name": "fund",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getCurrentEpochId",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "governanceManager",
      "outputs": [
        {
          "internalType": "contract PendleGovernanceManager",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "lastEpochClaimed",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "lastNYield",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "lastParamL",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "lastTimeUserStakeUpdated",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "masterChef",
      "outputs": [
        {
          "internalType": "contract IMasterChef",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "numberOfEpochs",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "paramL",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pausingManager",
      "outputs": [
        {
          "internalType": "contract IPendlePausingManager",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pendleTokenAddress",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pid",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "epochId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        }
      ],
      "name": "readEpochData",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "totalStakeUnits",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "totalRewards",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "lastUpdated",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "stakeUnitsForUser",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "availableRewardsForUser",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        }
      ],
      "name": "redeemDueInterests",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "amountOut",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        }
      ],
      "name": "redeemRewards",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "rewards",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "useEmergencyWithdraw",
          "type": "bool"
        }
      ],
      "name": "setUpEmergencyMode",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "forAddr",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "stake",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "stakeToken",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "startTime",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "epochIds",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "rewards",
          "type": "uint256[]"
        }
      ],
      "name": "topUpRewards",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalStake",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "epochId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "user",
          "type": "address"
        }
      ],
      "name": "updateAndReadEpochData",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "totalStakeUnits",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "totalRewards",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "lastUpdated",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "stakeUnitsForUser",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "availableRewardsForUser",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "vestingEpochs",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "whitelist",
      "outputs": [
        {
          "internalType": "contract IPendleWhitelist",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "toAddr",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "withdraw",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "address payable",
          "name": "sendTo",
          "type": "address"
        }
      ],
      "name": "withdrawEther",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "sendTo",
          "type": "address"
        }
      ],
      "name": "withdrawToken",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "yieldToken",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x6101e06040523480156200001257600080fd5b5060405162004357380380620043578339810160408190526200003591620007d6565b8a8a8a8a8a8a8a8a8a886001600160a01b0381166200008a576040805162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015290519081900360640190fd5b60008054336001600160a01b031990911617905560601b6001600160601b03191660805260018055428311620000fc576040805162461bcd60e51b8152602060048201526012602482015271494e56414c49445f53544152545f54494d4560701b604482015290519081900360640190fd5b62000112866200031460201b62001e0e1760201c565b62000128856200031460201b62001e0e1760201c565b600081116200017e576040805162461bcd60e51b815260206004820152601660248201527f494e56414c49445f56455354494e475f45504f43485300000000000000000000604482015290519081900360640190fd5b6001600160601b0319606098891b811660c05296881b871660a05294871b861660e05292861b851661010052941b90921661012052610140929092526101605261018052506001600b556001600160a01b038216620001fa5760405162461bcd60e51b8152600401620001f19062000942565b60405180910390fd5b62000210866200031460201b62001e0e1760201c565b866001600160a01b0316826001600160a01b0316631526fe27836040518263ffffffff1660e01b815260040162000248919062000968565b60806040518083038186803b1580156200026157600080fd5b505afa15801562000276573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029c9190620008ab565b516001600160a01b031614620002c65760405162461bcd60e51b8152600401620001f19062000916565b606082901b6001600160601b0319166101a0526101c0819052620003036001600160a01b03881683600019620003c4602090811b62001eba17901c565b505050505050505050505062000987565b6000816001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200035057600080fd5b505afa15801562000365573d6000803e3d6000fd5b505050506040513d60208110156200037c57600080fd5b505111620003c1576040805162461bcd60e51b815260206004820152600d60248201526c0494e56414c49445f455243323609c1b604482015290519081900360640190fd5b50565b8015806200044e575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b1580156200041e57600080fd5b505afa15801562000433573d6000803e3d6000fd5b505050506040513d60208110156200044a57600080fd5b5051155b6200048b5760405162461bcd60e51b8152600401808060200182810382526036815260200180620043216036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0390811663095ea7b360e01b17909152620004e3918591620004e816565b505050565b600062000544826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316620005a460201b62001fd2179092919060201c565b805190915015620004e3578080602001905160208110156200056557600080fd5b5051620004e35760405162461bcd60e51b815260040180806020018281038252602a815260200180620042f7602a913960400191505060405180910390fd5b6060620005b58484600085620005bf565b90505b9392505050565b606082471015620006025760405162461bcd60e51b8152600401808060200182810382526026815260200180620042d16026913960400191505060405180910390fd5b6200060d8562000726565b6200065f576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b602083106200069f5780518252601f1990920191602091820191016200067e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811462000703576040519150601f19603f3d011682016040523d82523d6000602084013e62000708565b606091505b5090925090506200071b8282866200072c565b979650505050505050565b3b151590565b606083156200073d575081620005b8565b8251156200074e5782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200079a57818101518382015260200162000780565b50505050905090810190601f168015620007c85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60008060008060008060008060008060006101608c8e031215620007f8578687fd5b8b51620008058162000971565b60208d0151909b50620008188162000971565b60408d0151909a506200082b8162000971565b60608d01519099506200083e8162000971565b60808d0151909850620008518162000971565b60a08d0151909750620008648162000971565b8096505060c08c0151945060e08c015193506101008c015192506101208c01516200088f8162000971565b809250506101408c015190509295989b509295989b9093969950565b600060808284031215620008bd578081fd5b604051608081016001600160401b0381118282101715620008da57fe5b6040528251620008ea8162000971565b808252506020830151602082015260408301516040820152606083015160608201528091505092915050565b602080825260129082015271494e56414c49445f544f4b454e5f494e464f60701b604082015260600190565b6020808252600c908201526b5a45524f5f4144445245535360a01b604082015260600190565b90815260200190565b6001600160a01b0381168114620003c157600080fd5b60805160601c60a05160601c60c05160601c60e05160601c6101005160601c6101205160601c6101405161016051610180516101a05160601c6101c0516137d362000afe6000398061193952806119d85280611b5f5280612e905280612f3452806132f652508061077e528061190c52806119af5280612e635280612f0752806132c95250806111515280612140528061260d5280612c07525080610730528061277b528061307552806130ca525080610ce7528061274352806127a0528061309b5250806109585280610cc35280611b2e528061233952806123ca528061246752806125185280612c37528061317652806131c55250806107545280611af852806122fb5280612e245280612f9d525080610beb5280610e2d52806110f252806111855280611ac252806122be52508061046452806108105280610f44528061131952806115e1528061178052806118335280611bef52508061111b5280611232525080611744528061223252506137d36000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c806383bbfde11161011a578063a81e457c116100ad578063ce56c4541161007c578063ce56c454146103a5578063d2e6d1c3146103b8578063dd254a6a146103c0578063f1068454146103d3578063f3fef3a3146103db576101fb565b8063a81e457c1461036f578063adc9772e14610377578063b40310c91461038a578063be66c60f1461039d576101fb565b806393e59dc1116100e957806393e59dc11461034457806396b973c01461034c5780639a51d2d11461035f578063a29a839f14610367576101fb565b806383bbfde11461030e5780638b0e9f3f146103215780638f373bf3146103295780639262187b14610331576101fb565b806351ed6a301161019257806370b66cd01161016157806370b66cd0146102d8578063738573f4146102eb57806376d5de85146102fe57806378e9792514610306576101fb565b806351ed6a30146102a0578063541a7ca6146102b5578063575a86b2146102bd5780636304a6bc146102c5576101fb565b806327e235e3116101ce57806327e235e31461025d5780632936ada7146102705780633ccdbb28146102835780634ff0876a14610298576101fb565b806304f917af14610200578063059f8b161461022d57806316676632146102425780631736884114610255575b600080fd5b61021361020e3660046135d4565b6103ee565b604051610224959493929190613690565b60405180910390f35b6102356105d5565b6040516102249190613662565b6102356102503660046133b3565b6105e2565b6102356105f4565b61023561026b3660046133b3565b6105fa565b61023561027e3660046133b3565b61060c565b61029661029136600461354b565b61061e565b005b61023561072e565b6102a8610752565b60405161022491906135f8565b610235610776565b6102a861077c565b6102356102d33660046133b3565b6107a0565b6102966102e63660046134b4565b6109f9565b6102356102f93660046133b3565b610caf565b6102a8610cc1565b610235610ce5565b61029661031c366004613474565b610d09565b610235610ec8565b610235610ece565b61023561033f3660046133b3565b610ed4565b6102a8611119565b61023561035a3660046133b3565b61113d565b61023561114f565b610235611173565b6102a8611183565b610296610385366004613449565b6111a7565b6102136103983660046135d4565b611599565b6102a86115df565b6102966103b33660046135d4565b611603565b6102a8611742565b6102966103ce366004613411565b611766565b610235611b5d565b6102966103e9366004613449565b611b81565b60008060008060006002600154141561043c576040805162461bcd60e51b815260206004820152601f60248201526000805160206136d7833981519152604482015290519081900360640190fd5b600260015560408051636f11e6c160e01b815230600482015281516000926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692636f11e6c1926024808301939282900301818787803b1580156104a757600080fd5b505af11580156104bb573d6000803e3d6000fd5b505050506040513d60408110156104d157600080fd5b50519050801561051c576040805162461bcd60e51b815260206004820152601160248201527013125457d35253925391d7d4105554d151607a1b604482015290519081900360640190fd5b600060025411610560576040805162461bcd60e51b815260206004820152600a6024820152691393d517d1955391115160b21b604482015290519081900360640190fd5b600061056a611173565b116105aa576040805162461bcd60e51b815260206004820152600b60248201526a1393d517d4d5105495115160aa1b604482015290519081900360640190fd5b6105b387611feb565b6105bd8888611599565b60018055939c929b5090995097509095509350505050565b68056bc75e2d6310000081565b60096020526000908152604090205481565b60025481565b60056020526000908152604090205481565b60076020526000908152604090205481565b61062661222e565b6001600160a01b0316336001600160a01b03161461067d576040805162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b604482015290519081900360640190fd5b610686836122ba565b6106cb576040805162461bcd60e51b81526020600482015260116024820152701513d2d15397d393d517d0531313d5d151607a1b604482015290519081900360640190fd5b6106df6001600160a01b0384168284612374565b604080516001600160a01b0380861682526020820185905283168183015290517f72cb8a894ddb372ceec3d2a7648d86f17d5a15caae0e986c53109b8a9a9385e69181900360600190a1505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600b5481565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600260015414156107e8576040805162461bcd60e51b815260206004820152601f60248201526000805160206136d7833981519152604482015290519081900360640190fd5b600260015560408051636f11e6c160e01b815230600482015281516000926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692636f11e6c1926024808301939282900301818787803b15801561085357600080fd5b505af1158015610867573d6000803e3d6000fd5b505050506040513d604081101561087d57600080fd5b5051905080156108c8576040805162461bcd60e51b815260206004820152601160248201527013125457d35253925391d7d4105554d151607a1b604482015290519081900360640190fd5b60006002541161090c576040805162461bcd60e51b815260206004820152600a6024820152691393d517d1955391115160b21b604482015290519081900360640190fd5b6000610916611173565b11610956576040805162461bcd60e51b815260206004820152600b60248201526a1393d517d4d5105495115160aa1b604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661098d57600091506109ef565b6001600160a01b0383166109d7576040805162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015290519081900360640190fd5b6109e0836123c6565b91506109ec838361245f565b91505b5060018055919050565b610a0161222e565b6001600160a01b0316336001600160a01b031614610a58576040805162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b604482015290519081900360640190fd5b828114610a9d576040805162461bcd60e51b815260206004820152600e60248201526d494e56414c49445f41525241595360901b604482015290519081900360640190fd5b6000610aa7611173565b6002549091506000805b86811015610bdd57878782818110610ac557fe5b9050602002013584108015610aec575082888883818110610ae257fe5b9050602002013511155b610b30576040805162461bcd60e51b815260206004820152601060248201526f1253959053125117d15413d0d217d25160821b604482015290519081900360640190fd5b610b55868683818110610b3f57fe5b905060200201358361253f90919063ffffffff16565b9150610ba4868683818110610b6657fe5b90506020020135600460008b8b86818110610b7d57fe5b9050602002013581526020019081526020016000206001015461253f90919063ffffffff16565b600460008a8a85818110610bb457fe5b905060200201358152602001908152602001600020600101819055508080600101915050610ab1565b50610c136001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084612599565b7f44ee104780547f0cb2026486d8f9456b9f11497ce52f217ddac1ba7a5a951696878787876040518080602001806020018381038352878782818152602001925060200280828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b60066020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b610d1161222e565b6001600160a01b0316336001600160a01b031614610d68576040805162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b604482015290519081900360640190fd5b600254610d73611173565b1115610db8576040805162461bcd60e51b815260206004820152600f60248201526e2620a9aa2fa2a827a1a42fa7ab22a960891b604482015290519081900360640190fd5b806000805b82811015610e0f57610dd4858583818110610b3f57fe5b9150848482818110610de257fe5b60025460019085018101600090815260046020908152604090912092029390930135908301555001610dbd565b50600254610e1d908361253f565b600255610e556001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084612599565b7ff05c668e041316911f2707c63743bfaf789a193675ffe04e46d93dbc448e642e848460025460405180806020018381526020018281038252858582818152602001925060200280828437600083820152604051601f909101601f1916909201829003965090945050505050a150505050565b60035481565b600a5481565b600060026001541415610f1c576040805162461bcd60e51b815260206004820152601f60248201526000805160206136d7833981519152604482015290519081900360640190fd5b600260015560408051636f11e6c160e01b815230600482015281516000926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692636f11e6c1926024808301939282900301818787803b158015610f8757600080fd5b505af1158015610f9b573d6000803e3d6000fd5b505050506040513d6040811015610fb157600080fd5b505190508015610ffc576040805162461bcd60e51b815260206004820152601160248201527013125457d35253925391d7d4105554d151607a1b604482015290519081900360640190fd5b600060025411611040576040805162461bcd60e51b815260206004820152600a6024820152691393d517d1955391115160b21b604482015290519081900360640190fd5b600061104a611173565b1161108a576040805162461bcd60e51b815260206004820152600b60248201526a1393d517d4d5105495115160aa1b604482015290519081900360640190fd5b6001600160a01b0383166110d4576040805162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015290519081900360640190fd5b6110dd836125f3565b915081156109ef576109ef6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168484612374565b7f000000000000000000000000000000000000000000000000000000000000000081565b60086020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061117e4261273f565b905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600260015414156111ed576040805162461bcd60e51b815260206004820152601f60248201526000805160206136d7833981519152604482015290519081900360640190fd5b600260015560006111fd336127d0565b15801561120957503233145b905080806112a5575060408051636c9b2a3f60e11b815233600482015290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163d936547e916024808301926020929190829003018186803b15801561127857600080fd5b505afa15801561128c573d6000803e3d6000fd5b505050506040513d60208110156112a257600080fd5b50515b6112f6576040805162461bcd60e51b815260206004820152601860248201527f434f4e54524143545f4e4f545f57484954454c49535445440000000000000000604482015290519081900360640190fd5b60408051636f11e6c160e01b815230600482015281516000926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692636f11e6c1926024808301939282900301818787803b15801561135c57600080fd5b505af1158015611370573d6000803e3d6000fd5b505050506040513d604081101561138657600080fd5b5051905080156113d1576040805162461bcd60e51b815260206004820152601160248201527013125457d35253925391d7d4105554d151607a1b604482015290519081900360640190fd5b600060025411611415576040805162461bcd60e51b815260206004820152600a6024820152691393d517d1955391115160b21b604482015290519081900360640190fd5b600061141f611173565b1161145f576040805162461bcd60e51b815260206004820152600b60248201526a1393d517d4d5105495115160aa1b604482015290519081900360640190fd5b6001600160a01b0384166114a9576040805162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015290519081900360640190fd5b826114e9576040805162461bcd60e51b815260206004820152600b60248201526a16915493d7d05353d5539560aa1b604482015290519081900360640190fd5b6002546114f4611173565b1115611540576040805162461bcd60e51b815260206004820152601660248201527524a721a2a72a24ab22a9afa822a924a7a22fa7ab22a960511b604482015290519081900360640190fd5b61154b8433856127d6565b604080516001600160a01b03861681526020810185905281517f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d929181900390910190a15050600180555050565b60009182526004602081815260408085208054600182015460028301546001600160a01b0397909716885260038301855283882054929095019093529420549094919391565b7f000000000000000000000000000000000000000000000000000000000000000081565b61160b61222e565b6001600160a01b0316336001600160a01b031614611662576040805162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b604482015290519081900360640190fd5b6040516000906001600160a01b0383169084908381818185875af1925050503d80600081146116ad576040519150601f19603f3d011682016040523d82523d6000602084013e6116b2565b606091505b50509050806116fa576040805162461bcd60e51b815260206004820152600f60248201526e15d2551211149055d7d19052531151608a1b604482015290519081900360640190fd5b604080518481526001600160a01b038416602082015281517fec47e7ed86c86774d1a72c19f35c639911393fe7c1a34031fdbd260890da90de929181900390910190a1505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b604051636f11e6c160e01b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636f11e6c1906117b59030906004016135f8565b6040805180830381600087803b1580156117ce57600080fd5b505af11580156117e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611806919061351d565b9150508061182f5760405162461bcd60e51b81526004016118269061360c565b60405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f87c24cd6040518163ffffffff1660e01b815260040160606040518083038186803b15801561188a57600080fd5b505afa15801561189e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c291906133cf565b5090915050336001600160a01b038216146118ef5760405162461bcd60e51b815260040161182690613633565b821561199857604051632989754760e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690635312ea8e90611961907f000000000000000000000000000000000000000000000000000000000000000090600401613662565b600060405180830381600087803b15801561197b57600080fd5b505af115801561198f573d6000803e3d6000fd5b50505050611ab5565b6040516393f1a40b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063441a3e70907f00000000000000000000000000000000000000000000000000000000000000009083906393f1a40b90611a10908490309060040161366b565b604080518083038186803b158015611a2757600080fd5b505afa158015611a3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5f919061358c565b516040516001600160e01b031960e085901b168152611a82929190600401613682565b600060405180830381600087803b158015611a9c57600080fd5b505af1158015611ab0573d6000803e3d6000fd5b505050505b611aeb6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001685600019611eba565b611b216001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001685600019611eba565b611b576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001685600019611eba565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60026001541415611bc7576040805162461bcd60e51b815260206004820152601f60248201526000805160206136d7833981519152604482015290519081900360640190fd5b600260015560408051636f11e6c160e01b815230600482015281516000926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692636f11e6c1926024808301939282900301818787803b158015611c3257600080fd5b505af1158015611c46573d6000803e3d6000fd5b505050506040513d6040811015611c5c57600080fd5b505190508015611ca7576040805162461bcd60e51b815260206004820152601160248201527013125457d35253925391d7d4105554d151607a1b604482015290519081900360640190fd5b600060025411611ceb576040805162461bcd60e51b815260206004820152600a6024820152691393d517d1955391115160b21b604482015290519081900360640190fd5b6000611cf5611173565b11611d35576040805162461bcd60e51b815260206004820152600b60248201526a1393d517d4d5105495115160aa1b604482015290519081900360640190fd5b81611d75576040805162461bcd60e51b815260206004820152600b60248201526a16915493d7d05353d5539560aa1b604482015290519081900360640190fd5b6001600160a01b038316611dbf576040805162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015290519081900360640190fd5b611dca33848461283e565b604080513381526020810184905281517f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5929181900390910190a150506001805550565b6000816001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015611e4957600080fd5b505afa158015611e5d573d6000803e3d6000fd5b505050506040513d6020811015611e7357600080fd5b505111611eb7576040805162461bcd60e51b815260206004820152600d60248201526c0494e56414c49445f455243323609c1b604482015290519081900360640190fd5b50565b801580611f40575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b158015611f1257600080fd5b505afa158015611f26573d6000803e3d6000fd5b505050506040513d6020811015611f3c57600080fd5b5051155b611f7b5760405162461bcd60e51b81526004018080602001828103825260368152602001806137686036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052611fcd9084906128a6565b505050565b6060611fe18484600085612957565b90505b9392505050565b611ff3612ab2565b6001600160a01b038116600090815260066020526040902054612030576001600160a01b0381166000908152600660205260409020429055611eb7565b600061203a611173565b9050600061204a60025483612b63565b6002546001600160a01b0385166000908152600560209081526040808320546006909252822054600354949550928611939092916120878361273f565b9050805b868111612208576000818152600460205260409020546120b457826120af57612208565b612200565b6120ee6120c2868684612b79565b60008381526004602090815260408083206001600160a01b038f1684526003019091529020549061253f565b60008281526004602090815260408083206001600160a01b038e1684526003019091529020558681148015612121575085155b1561212b57612208565b60006121378a83612bcb565b9050600182015b7f0000000000000000000000000000000000000000000000000000000000000000830181116121fd576121b3826004600084815260200190815260200160002060040160008e6001600160a01b03166001600160a01b031681526020019081526020016000205461253f90919063ffffffff16565b6004600083815260200190815260200160002060040160008d6001600160a01b03166001600160a01b0316815260200190815260200160002081905550808060010191505061213e565b50505b60010161208b565b5050506001600160a01b0386166000908152600660205260409020429055505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b815260040160206040518083038186803b15801561228957600080fd5b505afa15801561229d573d6000803e3d6000fd5b505050506040513d60208110156122b357600080fd5b5051905090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161415801561233057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b801561236e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b92915050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611fcd9084906128a6565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166123fe5750600061245a565b61240782612c35565b6001600160a01b038216600090815260086020526040902054600a5461242d9190612b63565b6001600160a01b038316600090815260086020526040812055600a549091506124569082612d53565b600a555b919050565b6000612503827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156124d257600080fd5b505afa1580156124e6573d6000803e3d6000fd5b505050506040513d60208110156124fc57600080fd5b5051612b63565b9050801561236e5761236e6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168483612374565b600082820183811015611fe4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052611b579085906128a6565b60006125fe82611feb565b600061263561260b611173565b7f000000000000000000000000000000000000000000000000000000000000000060025401612b63565b6001600160a01b0384166000908152600760205260409020549091505b8181116126e35760008181526004602081815260408084206001600160a01b03891685529092019052902054156126db5760008181526004602081815260408084206001600160a01b038916855290920190529020546126b390849061253f565b60008281526004602081815260408084206001600160a01b038a168552909201905281205592505b600101612652565b506001600160a01b0383166000818152600760209081526040918290208490558151928352820184905280517f5891c6cf1c6ad6a35a9ba7097b8c5f9a780d2d6783bb7f9f41ac4ecbdcf4a1269281900390910190a150919050565b60007f00000000000000000000000000000000000000000000000000000000000000008210156127715750600061245a565b61236e60016127ca7f00000000000000000000000000000000000000000000000000000000000000006127c4867f0000000000000000000000000000000000000000000000000000000000000000612d53565b90612db0565b9061253f565b3b151590565b6127df83611feb565b6127e883612c35565b6001600160a01b03831660009081526005602052604090205461280b908261253f565b6001600160a01b038416600090815260056020526040902055600354612831908261253f565b600355611fcd8282612e17565b61284783611feb565b61285083612c35565b6001600160a01b0383166000908152600560205260409020546128739082612d53565b6001600160a01b0384166000908152600560205260409020556003546128999082612d53565b600355611fcd8282612ef0565b60006128fb826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611fd29092919063ffffffff16565b805190915015611fcd5780806020019051602081101561291a57600080fd5b5051611fcd5760405162461bcd60e51b815260040180806020018281038252602a81526020018061373e602a913960400191505060405180910390fd5b6060824710156129985760405162461bcd60e51b81526004018080602001828103825260268152602001806136f76026913960400191505060405180910390fd5b6129a1856127d0565b6129f2576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b60208310612a305780518252601f199092019160209182019101612a11565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612a92576040519150601f19603f3d011682016040523d82523d6000602084013e612a97565b606091505b5091509150612aa7828286612fc6565b979650505050505050565b6000612abc611173565b90506000612acc82600254612b63565b90505b8015612b5f576000612ae08261306a565b60008381526004602052604090206002015490915080821415612b04575050612b5f565b612b29612b146003548386612b79565b6000858152600460205260409020549061253f565b600084815260046020526040902055612b424283612b63565b600084815260046020526040902060020155505060001901612acf565b5050565b6000818310612b725781611fe4565b5090919050565b60004281612b8f85612b8a866130c0565b6130fa565b90506000612ba583612ba08761306a565b612b63565b90506000612bb3828461310a565b9050612bbf888261311b565b98975050505050505050565b600081815260046020818152604080842080546001600160a01b03881686526003820184529185205486865293909252600190910154611fe4927f0000000000000000000000000000000000000000000000000000000000000000926127c492909183919061311b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316612c6857611eb7565b612c70613174565b6001600160a01b038116600090815260096020526040902054612cae57600b546001600160a01b038216600090815260096020526040902055611eb7565b6001600160a01b0381166000908152600560209081526040808320546009909252822054600b54919291612ce191612d53565b90506000612cfc68056bc75e2d631000006127c4858561311b565b6001600160a01b038516600090815260086020526040902054909150612d22908261253f565b6001600160a01b038516600090815260086020908152604080832093909355600b5460099091529190205550505050565b600082821115612daa576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000808211612e06576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381612e0f57fe5b049392505050565b612e4c6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016833084612599565b604051631c57762b60e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e2bbb15890612eba907f0000000000000000000000000000000000000000000000000000000000000000908590600401613682565b600060405180830381600087803b158015612ed457600080fd5b505af1158015612ee8573d6000803e3d6000fd5b505050505050565b604051630441a3e760e41b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063441a3e7090612f5e907f0000000000000000000000000000000000000000000000000000000000000000908590600401613682565b600060405180830381600087803b158015612f7857600080fd5b505af1158015612f8c573d6000803e3d6000fd5b50612b5f9250506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690508383612374565b60608315612fd5575081611fe4565b825115612fe55782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561302f578181015183820152602001613017565b50505050905090810190601f16801561305c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600061236e613099837f000000000000000000000000000000000000000000000000000000000000000061311b565b7f00000000000000000000000000000000000000000000000000000000000000009061253f565b600061236e6130997f00000000000000000000000000000000000000000000000000000000000000006130f4856001612d53565b9061311b565b600081831015612b725781611fe4565b600081831015612daa576000611fe4565b60008261312a5750600061236e565b8282028284828161313757fe5b0414611fe45760405162461bcd60e51b815260040180806020018281038252602181526020018061371d6021913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615806131af57506131ad6132ad565b155b156131b9576132ab565b6131c16132b2565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561323057600080fd5b505afa158015613244573d6000803e3d6000fd5b505050506040513d602081101561325a57600080fd5b5051905060008061326a8361334f565b91509150600060035460001461329757600354613294906127c48468056bc75e2d6310000061311b565b90505b6132a1838261253f565b600b55505050600a555b565b600190565b604051630441a3e760e41b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063441a3e7090613321907f000000000000000000000000000000000000000000000000000000000000000090600090600401613682565b600060405180830381600087803b15801561333b57600080fd5b505af1158015611b57573d6000803e3d6000fd5b600b54600a54600090613363908490612d53565b9050915091565b60008083601f84011261337b578182fd5b50813567ffffffffffffffff811115613392578182fd5b60208301915083602080830285010111156133ac57600080fd5b9250929050565b6000602082840312156133c4578081fd5b8135611fe4816136b3565b6000806000606084860312156133e3578182fd5b83516133ee816136b3565b60208501519093506133ff816136b3565b80925050604084015190509250925092565b60008060408385031215613423578182fd5b823561342e816136b3565b9150602083013561343e816136c8565b809150509250929050565b6000806040838503121561345b578182fd5b8235613466816136b3565b946020939093013593505050565b60008060208385031215613486578182fd5b823567ffffffffffffffff81111561349c578283fd5b6134a88582860161336a565b90969095509350505050565b600080600080604085870312156134c9578081fd5b843567ffffffffffffffff808211156134e0578283fd5b6134ec8883890161336a565b90965094506020870135915080821115613504578283fd5b506135118782880161336a565b95989497509550505050565b6000806040838503121561352f578182fd5b825161353a816136c8565b602084015190925061343e816136c8565b60008060006060848603121561355f578283fd5b833561356a816136b3565b9250602084013591506040840135613581816136b3565b809150509250925092565b60006040828403121561359d578081fd5b6040516040810181811067ffffffffffffffff821117156135ba57fe5b604052825181526020928301519281019290925250919050565b600080604083850312156135e6578182fd5b82359150602083013561343e816136b3565b6001600160a01b0391909116815260200190565b6020808252600d908201526c4e4f545f454d455247454e435960981b604082015260600190565b6020808252601590820152742727aa2fa2a6a2a923a2a721acafa420a7222622a960591b604082015260600190565b90815260200190565b9182526001600160a01b0316602082015260400190565b918252602082015260400190565b948552602085019390935260408401919091526060830152608082015260a00190565b6001600160a01b0381168114611eb757600080fd5b8015158114611eb757600080fdfe5265656e7472616e637947756172643a207265656e7472616e742063616c6c00416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a2646970667358221220ce45ee25f5501841ddb9cbc62656b15f88ee03b257fd6db0540c0c62d3f8eee064736f6c63430007060033416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c5361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101fb5760003560e01c806383bbfde11161011a578063a81e457c116100ad578063ce56c4541161007c578063ce56c454146103a5578063d2e6d1c3146103b8578063dd254a6a146103c0578063f1068454146103d3578063f3fef3a3146103db576101fb565b8063a81e457c1461036f578063adc9772e14610377578063b40310c91461038a578063be66c60f1461039d576101fb565b806393e59dc1116100e957806393e59dc11461034457806396b973c01461034c5780639a51d2d11461035f578063a29a839f14610367576101fb565b806383bbfde11461030e5780638b0e9f3f146103215780638f373bf3146103295780639262187b14610331576101fb565b806351ed6a301161019257806370b66cd01161016157806370b66cd0146102d8578063738573f4146102eb57806376d5de85146102fe57806378e9792514610306576101fb565b806351ed6a30146102a0578063541a7ca6146102b5578063575a86b2146102bd5780636304a6bc146102c5576101fb565b806327e235e3116101ce57806327e235e31461025d5780632936ada7146102705780633ccdbb28146102835780634ff0876a14610298576101fb565b806304f917af14610200578063059f8b161461022d57806316676632146102425780631736884114610255575b600080fd5b61021361020e3660046135d4565b6103ee565b604051610224959493929190613690565b60405180910390f35b6102356105d5565b6040516102249190613662565b6102356102503660046133b3565b6105e2565b6102356105f4565b61023561026b3660046133b3565b6105fa565b61023561027e3660046133b3565b61060c565b61029661029136600461354b565b61061e565b005b61023561072e565b6102a8610752565b60405161022491906135f8565b610235610776565b6102a861077c565b6102356102d33660046133b3565b6107a0565b6102966102e63660046134b4565b6109f9565b6102356102f93660046133b3565b610caf565b6102a8610cc1565b610235610ce5565b61029661031c366004613474565b610d09565b610235610ec8565b610235610ece565b61023561033f3660046133b3565b610ed4565b6102a8611119565b61023561035a3660046133b3565b61113d565b61023561114f565b610235611173565b6102a8611183565b610296610385366004613449565b6111a7565b6102136103983660046135d4565b611599565b6102a86115df565b6102966103b33660046135d4565b611603565b6102a8611742565b6102966103ce366004613411565b611766565b610235611b5d565b6102966103e9366004613449565b611b81565b60008060008060006002600154141561043c576040805162461bcd60e51b815260206004820152601f60248201526000805160206136d7833981519152604482015290519081900360640190fd5b600260015560408051636f11e6c160e01b815230600482015281516000926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692636f11e6c1926024808301939282900301818787803b1580156104a757600080fd5b505af11580156104bb573d6000803e3d6000fd5b505050506040513d60408110156104d157600080fd5b50519050801561051c576040805162461bcd60e51b815260206004820152601160248201527013125457d35253925391d7d4105554d151607a1b604482015290519081900360640190fd5b600060025411610560576040805162461bcd60e51b815260206004820152600a6024820152691393d517d1955391115160b21b604482015290519081900360640190fd5b600061056a611173565b116105aa576040805162461bcd60e51b815260206004820152600b60248201526a1393d517d4d5105495115160aa1b604482015290519081900360640190fd5b6105b387611feb565b6105bd8888611599565b60018055939c929b5090995097509095509350505050565b68056bc75e2d6310000081565b60096020526000908152604090205481565b60025481565b60056020526000908152604090205481565b60076020526000908152604090205481565b61062661222e565b6001600160a01b0316336001600160a01b03161461067d576040805162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b604482015290519081900360640190fd5b610686836122ba565b6106cb576040805162461bcd60e51b81526020600482015260116024820152701513d2d15397d393d517d0531313d5d151607a1b604482015290519081900360640190fd5b6106df6001600160a01b0384168284612374565b604080516001600160a01b0380861682526020820185905283168183015290517f72cb8a894ddb372ceec3d2a7648d86f17d5a15caae0e986c53109b8a9a9385e69181900360600190a1505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b600b5481565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600260015414156107e8576040805162461bcd60e51b815260206004820152601f60248201526000805160206136d7833981519152604482015290519081900360640190fd5b600260015560408051636f11e6c160e01b815230600482015281516000926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692636f11e6c1926024808301939282900301818787803b15801561085357600080fd5b505af1158015610867573d6000803e3d6000fd5b505050506040513d604081101561087d57600080fd5b5051905080156108c8576040805162461bcd60e51b815260206004820152601160248201527013125457d35253925391d7d4105554d151607a1b604482015290519081900360640190fd5b60006002541161090c576040805162461bcd60e51b815260206004820152600a6024820152691393d517d1955391115160b21b604482015290519081900360640190fd5b6000610916611173565b11610956576040805162461bcd60e51b815260206004820152600b60248201526a1393d517d4d5105495115160aa1b604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661098d57600091506109ef565b6001600160a01b0383166109d7576040805162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015290519081900360640190fd5b6109e0836123c6565b91506109ec838361245f565b91505b5060018055919050565b610a0161222e565b6001600160a01b0316336001600160a01b031614610a58576040805162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b604482015290519081900360640190fd5b828114610a9d576040805162461bcd60e51b815260206004820152600e60248201526d494e56414c49445f41525241595360901b604482015290519081900360640190fd5b6000610aa7611173565b6002549091506000805b86811015610bdd57878782818110610ac557fe5b9050602002013584108015610aec575082888883818110610ae257fe5b9050602002013511155b610b30576040805162461bcd60e51b815260206004820152601060248201526f1253959053125117d15413d0d217d25160821b604482015290519081900360640190fd5b610b55868683818110610b3f57fe5b905060200201358361253f90919063ffffffff16565b9150610ba4868683818110610b6657fe5b90506020020135600460008b8b86818110610b7d57fe5b9050602002013581526020019081526020016000206001015461253f90919063ffffffff16565b600460008a8a85818110610bb457fe5b905060200201358152602001908152602001600020600101819055508080600101915050610ab1565b50610c136001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084612599565b7f44ee104780547f0cb2026486d8f9456b9f11497ce52f217ddac1ba7a5a951696878787876040518080602001806020018381038352878782818152602001925060200280828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600083820152604051601f909101601f19169092018290039850909650505050505050a150505050505050565b60066020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b610d1161222e565b6001600160a01b0316336001600160a01b031614610d68576040805162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b604482015290519081900360640190fd5b600254610d73611173565b1115610db8576040805162461bcd60e51b815260206004820152600f60248201526e2620a9aa2fa2a827a1a42fa7ab22a960891b604482015290519081900360640190fd5b806000805b82811015610e0f57610dd4858583818110610b3f57fe5b9150848482818110610de257fe5b60025460019085018101600090815260046020908152604090912092029390930135908301555001610dbd565b50600254610e1d908361253f565b600255610e556001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084612599565b7ff05c668e041316911f2707c63743bfaf789a193675ffe04e46d93dbc448e642e848460025460405180806020018381526020018281038252858582818152602001925060200280828437600083820152604051601f909101601f1916909201829003965090945050505050a150505050565b60035481565b600a5481565b600060026001541415610f1c576040805162461bcd60e51b815260206004820152601f60248201526000805160206136d7833981519152604482015290519081900360640190fd5b600260015560408051636f11e6c160e01b815230600482015281516000926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692636f11e6c1926024808301939282900301818787803b158015610f8757600080fd5b505af1158015610f9b573d6000803e3d6000fd5b505050506040513d6040811015610fb157600080fd5b505190508015610ffc576040805162461bcd60e51b815260206004820152601160248201527013125457d35253925391d7d4105554d151607a1b604482015290519081900360640190fd5b600060025411611040576040805162461bcd60e51b815260206004820152600a6024820152691393d517d1955391115160b21b604482015290519081900360640190fd5b600061104a611173565b1161108a576040805162461bcd60e51b815260206004820152600b60248201526a1393d517d4d5105495115160aa1b604482015290519081900360640190fd5b6001600160a01b0383166110d4576040805162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015290519081900360640190fd5b6110dd836125f3565b915081156109ef576109ef6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168484612374565b7f000000000000000000000000000000000000000000000000000000000000000081565b60086020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061117e4261273f565b905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600260015414156111ed576040805162461bcd60e51b815260206004820152601f60248201526000805160206136d7833981519152604482015290519081900360640190fd5b600260015560006111fd336127d0565b15801561120957503233145b905080806112a5575060408051636c9b2a3f60e11b815233600482015290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163d936547e916024808301926020929190829003018186803b15801561127857600080fd5b505afa15801561128c573d6000803e3d6000fd5b505050506040513d60208110156112a257600080fd5b50515b6112f6576040805162461bcd60e51b815260206004820152601860248201527f434f4e54524143545f4e4f545f57484954454c49535445440000000000000000604482015290519081900360640190fd5b60408051636f11e6c160e01b815230600482015281516000926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692636f11e6c1926024808301939282900301818787803b15801561135c57600080fd5b505af1158015611370573d6000803e3d6000fd5b505050506040513d604081101561138657600080fd5b5051905080156113d1576040805162461bcd60e51b815260206004820152601160248201527013125457d35253925391d7d4105554d151607a1b604482015290519081900360640190fd5b600060025411611415576040805162461bcd60e51b815260206004820152600a6024820152691393d517d1955391115160b21b604482015290519081900360640190fd5b600061141f611173565b1161145f576040805162461bcd60e51b815260206004820152600b60248201526a1393d517d4d5105495115160aa1b604482015290519081900360640190fd5b6001600160a01b0384166114a9576040805162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015290519081900360640190fd5b826114e9576040805162461bcd60e51b815260206004820152600b60248201526a16915493d7d05353d5539560aa1b604482015290519081900360640190fd5b6002546114f4611173565b1115611540576040805162461bcd60e51b815260206004820152601660248201527524a721a2a72a24ab22a9afa822a924a7a22fa7ab22a960511b604482015290519081900360640190fd5b61154b8433856127d6565b604080516001600160a01b03861681526020810185905281517f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d929181900390910190a15050600180555050565b60009182526004602081815260408085208054600182015460028301546001600160a01b0397909716885260038301855283882054929095019093529420549094919391565b7f000000000000000000000000000000000000000000000000000000000000000081565b61160b61222e565b6001600160a01b0316336001600160a01b031614611662576040805162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b604482015290519081900360640190fd5b6040516000906001600160a01b0383169084908381818185875af1925050503d80600081146116ad576040519150601f19603f3d011682016040523d82523d6000602084013e6116b2565b606091505b50509050806116fa576040805162461bcd60e51b815260206004820152600f60248201526e15d2551211149055d7d19052531151608a1b604482015290519081900360640190fd5b604080518481526001600160a01b038416602082015281517fec47e7ed86c86774d1a72c19f35c639911393fe7c1a34031fdbd260890da90de929181900390910190a1505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b604051636f11e6c160e01b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636f11e6c1906117b59030906004016135f8565b6040805180830381600087803b1580156117ce57600080fd5b505af11580156117e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611806919061351d565b9150508061182f5760405162461bcd60e51b81526004016118269061360c565b60405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f87c24cd6040518163ffffffff1660e01b815260040160606040518083038186803b15801561188a57600080fd5b505afa15801561189e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c291906133cf565b5090915050336001600160a01b038216146118ef5760405162461bcd60e51b815260040161182690613633565b821561199857604051632989754760e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690635312ea8e90611961907f000000000000000000000000000000000000000000000000000000000000000090600401613662565b600060405180830381600087803b15801561197b57600080fd5b505af115801561198f573d6000803e3d6000fd5b50505050611ab5565b6040516393f1a40b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063441a3e70907f00000000000000000000000000000000000000000000000000000000000000009083906393f1a40b90611a10908490309060040161366b565b604080518083038186803b158015611a2757600080fd5b505afa158015611a3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5f919061358c565b516040516001600160e01b031960e085901b168152611a82929190600401613682565b600060405180830381600087803b158015611a9c57600080fd5b505af1158015611ab0573d6000803e3d6000fd5b505050505b611aeb6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001685600019611eba565b611b216001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001685600019611eba565b611b576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001685600019611eba565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60026001541415611bc7576040805162461bcd60e51b815260206004820152601f60248201526000805160206136d7833981519152604482015290519081900360640190fd5b600260015560408051636f11e6c160e01b815230600482015281516000926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692636f11e6c1926024808301939282900301818787803b158015611c3257600080fd5b505af1158015611c46573d6000803e3d6000fd5b505050506040513d6040811015611c5c57600080fd5b505190508015611ca7576040805162461bcd60e51b815260206004820152601160248201527013125457d35253925391d7d4105554d151607a1b604482015290519081900360640190fd5b600060025411611ceb576040805162461bcd60e51b815260206004820152600a6024820152691393d517d1955391115160b21b604482015290519081900360640190fd5b6000611cf5611173565b11611d35576040805162461bcd60e51b815260206004820152600b60248201526a1393d517d4d5105495115160aa1b604482015290519081900360640190fd5b81611d75576040805162461bcd60e51b815260206004820152600b60248201526a16915493d7d05353d5539560aa1b604482015290519081900360640190fd5b6001600160a01b038316611dbf576040805162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015290519081900360640190fd5b611dca33848461283e565b604080513381526020810184905281517f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5929181900390910190a150506001805550565b6000816001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015611e4957600080fd5b505afa158015611e5d573d6000803e3d6000fd5b505050506040513d6020811015611e7357600080fd5b505111611eb7576040805162461bcd60e51b815260206004820152600d60248201526c0494e56414c49445f455243323609c1b604482015290519081900360640190fd5b50565b801580611f40575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b158015611f1257600080fd5b505afa158015611f26573d6000803e3d6000fd5b505050506040513d6020811015611f3c57600080fd5b5051155b611f7b5760405162461bcd60e51b81526004018080602001828103825260368152602001806137686036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052611fcd9084906128a6565b505050565b6060611fe18484600085612957565b90505b9392505050565b611ff3612ab2565b6001600160a01b038116600090815260066020526040902054612030576001600160a01b0381166000908152600660205260409020429055611eb7565b600061203a611173565b9050600061204a60025483612b63565b6002546001600160a01b0385166000908152600560209081526040808320546006909252822054600354949550928611939092916120878361273f565b9050805b868111612208576000818152600460205260409020546120b457826120af57612208565b612200565b6120ee6120c2868684612b79565b60008381526004602090815260408083206001600160a01b038f1684526003019091529020549061253f565b60008281526004602090815260408083206001600160a01b038e1684526003019091529020558681148015612121575085155b1561212b57612208565b60006121378a83612bcb565b9050600182015b7f0000000000000000000000000000000000000000000000000000000000000000830181116121fd576121b3826004600084815260200190815260200160002060040160008e6001600160a01b03166001600160a01b031681526020019081526020016000205461253f90919063ffffffff16565b6004600083815260200190815260200160002060040160008d6001600160a01b03166001600160a01b0316815260200190815260200160002081905550808060010191505061213e565b50505b60010161208b565b5050506001600160a01b0386166000908152600660205260409020429055505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b815260040160206040518083038186803b15801561228957600080fd5b505afa15801561229d573d6000803e3d6000fd5b505050506040513d60208110156122b357600080fd5b5051905090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161415801561233057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b801561236e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b92915050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611fcd9084906128a6565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166123fe5750600061245a565b61240782612c35565b6001600160a01b038216600090815260086020526040902054600a5461242d9190612b63565b6001600160a01b038316600090815260086020526040812055600a549091506124569082612d53565b600a555b919050565b6000612503827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156124d257600080fd5b505afa1580156124e6573d6000803e3d6000fd5b505050506040513d60208110156124fc57600080fd5b5051612b63565b9050801561236e5761236e6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168483612374565b600082820183811015611fe4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052611b579085906128a6565b60006125fe82611feb565b600061263561260b611173565b7f000000000000000000000000000000000000000000000000000000000000000060025401612b63565b6001600160a01b0384166000908152600760205260409020549091505b8181116126e35760008181526004602081815260408084206001600160a01b03891685529092019052902054156126db5760008181526004602081815260408084206001600160a01b038916855290920190529020546126b390849061253f565b60008281526004602081815260408084206001600160a01b038a168552909201905281205592505b600101612652565b506001600160a01b0383166000818152600760209081526040918290208490558151928352820184905280517f5891c6cf1c6ad6a35a9ba7097b8c5f9a780d2d6783bb7f9f41ac4ecbdcf4a1269281900390910190a150919050565b60007f00000000000000000000000000000000000000000000000000000000000000008210156127715750600061245a565b61236e60016127ca7f00000000000000000000000000000000000000000000000000000000000000006127c4867f0000000000000000000000000000000000000000000000000000000000000000612d53565b90612db0565b9061253f565b3b151590565b6127df83611feb565b6127e883612c35565b6001600160a01b03831660009081526005602052604090205461280b908261253f565b6001600160a01b038416600090815260056020526040902055600354612831908261253f565b600355611fcd8282612e17565b61284783611feb565b61285083612c35565b6001600160a01b0383166000908152600560205260409020546128739082612d53565b6001600160a01b0384166000908152600560205260409020556003546128999082612d53565b600355611fcd8282612ef0565b60006128fb826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611fd29092919063ffffffff16565b805190915015611fcd5780806020019051602081101561291a57600080fd5b5051611fcd5760405162461bcd60e51b815260040180806020018281038252602a81526020018061373e602a913960400191505060405180910390fd5b6060824710156129985760405162461bcd60e51b81526004018080602001828103825260268152602001806136f76026913960400191505060405180910390fd5b6129a1856127d0565b6129f2576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b60208310612a305780518252601f199092019160209182019101612a11565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612a92576040519150601f19603f3d011682016040523d82523d6000602084013e612a97565b606091505b5091509150612aa7828286612fc6565b979650505050505050565b6000612abc611173565b90506000612acc82600254612b63565b90505b8015612b5f576000612ae08261306a565b60008381526004602052604090206002015490915080821415612b04575050612b5f565b612b29612b146003548386612b79565b6000858152600460205260409020549061253f565b600084815260046020526040902055612b424283612b63565b600084815260046020526040902060020155505060001901612acf565b5050565b6000818310612b725781611fe4565b5090919050565b60004281612b8f85612b8a866130c0565b6130fa565b90506000612ba583612ba08761306a565b612b63565b90506000612bb3828461310a565b9050612bbf888261311b565b98975050505050505050565b600081815260046020818152604080842080546001600160a01b03881686526003820184529185205486865293909252600190910154611fe4927f0000000000000000000000000000000000000000000000000000000000000000926127c492909183919061311b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316612c6857611eb7565b612c70613174565b6001600160a01b038116600090815260096020526040902054612cae57600b546001600160a01b038216600090815260096020526040902055611eb7565b6001600160a01b0381166000908152600560209081526040808320546009909252822054600b54919291612ce191612d53565b90506000612cfc68056bc75e2d631000006127c4858561311b565b6001600160a01b038516600090815260086020526040902054909150612d22908261253f565b6001600160a01b038516600090815260086020908152604080832093909355600b5460099091529190205550505050565b600082821115612daa576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000808211612e06576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381612e0f57fe5b049392505050565b612e4c6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016833084612599565b604051631c57762b60e31b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e2bbb15890612eba907f0000000000000000000000000000000000000000000000000000000000000000908590600401613682565b600060405180830381600087803b158015612ed457600080fd5b505af1158015612ee8573d6000803e3d6000fd5b505050505050565b604051630441a3e760e41b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063441a3e7090612f5e907f0000000000000000000000000000000000000000000000000000000000000000908590600401613682565b600060405180830381600087803b158015612f7857600080fd5b505af1158015612f8c573d6000803e3d6000fd5b50612b5f9250506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690508383612374565b60608315612fd5575081611fe4565b825115612fe55782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561302f578181015183820152602001613017565b50505050905090810190601f16801561305c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600061236e613099837f000000000000000000000000000000000000000000000000000000000000000061311b565b7f00000000000000000000000000000000000000000000000000000000000000009061253f565b600061236e6130997f00000000000000000000000000000000000000000000000000000000000000006130f4856001612d53565b9061311b565b600081831015612b725781611fe4565b600081831015612daa576000611fe4565b60008261312a5750600061236e565b8282028284828161313757fe5b0414611fe45760405162461bcd60e51b815260040180806020018281038252602181526020018061371d6021913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615806131af57506131ad6132ad565b155b156131b9576132ab565b6131c16132b2565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561323057600080fd5b505afa158015613244573d6000803e3d6000fd5b505050506040513d602081101561325a57600080fd5b5051905060008061326a8361334f565b91509150600060035460001461329757600354613294906127c48468056bc75e2d6310000061311b565b90505b6132a1838261253f565b600b55505050600a555b565b600190565b604051630441a3e760e41b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063441a3e7090613321907f000000000000000000000000000000000000000000000000000000000000000090600090600401613682565b600060405180830381600087803b15801561333b57600080fd5b505af1158015611b57573d6000803e3d6000fd5b600b54600a54600090613363908490612d53565b9050915091565b60008083601f84011261337b578182fd5b50813567ffffffffffffffff811115613392578182fd5b60208301915083602080830285010111156133ac57600080fd5b9250929050565b6000602082840312156133c4578081fd5b8135611fe4816136b3565b6000806000606084860312156133e3578182fd5b83516133ee816136b3565b60208501519093506133ff816136b3565b80925050604084015190509250925092565b60008060408385031215613423578182fd5b823561342e816136b3565b9150602083013561343e816136c8565b809150509250929050565b6000806040838503121561345b578182fd5b8235613466816136b3565b946020939093013593505050565b60008060208385031215613486578182fd5b823567ffffffffffffffff81111561349c578283fd5b6134a88582860161336a565b90969095509350505050565b600080600080604085870312156134c9578081fd5b843567ffffffffffffffff808211156134e0578283fd5b6134ec8883890161336a565b90965094506020870135915080821115613504578283fd5b506135118782880161336a565b95989497509550505050565b6000806040838503121561352f578182fd5b825161353a816136c8565b602084015190925061343e816136c8565b60008060006060848603121561355f578283fd5b833561356a816136b3565b9250602084013591506040840135613581816136b3565b809150509250925092565b60006040828403121561359d578081fd5b6040516040810181811067ffffffffffffffff821117156135ba57fe5b604052825181526020928301519281019290925250919050565b600080604083850312156135e6578182fd5b82359150602083013561343e816136b3565b6001600160a01b0391909116815260200190565b6020808252600d908201526c4e4f545f454d455247454e435960981b604082015260600190565b6020808252601590820152742727aa2fa2a6a2a923a2a721acafa420a7222622a960591b604082015260600190565b90815260200190565b9182526001600160a01b0316602082015260400190565b918252602082015260400190565b948552602085019390935260408401919091526060830152608082015260a00190565b6001600160a01b0381168114611eb757600080fd5b8015158114611eb757600080fdfe5265656e7472616e637947756172643a207265656e7472616e742063616c6c00416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a2646970667358221220ce45ee25f5501841ddb9cbc62656b15f88ee03b257fd6db0540c0c62d3f8eee064736f6c63430007060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
