{
  "contractName": "BrightIdUserRegister",
  "abi": [
    {
      "constant": true,
      "inputs": [
        {
          "name": "_interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "hasInitialized",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "brightIdVerifier",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_script",
          "type": "bytes"
        }
      ],
      "name": "getEVMScriptExecutor",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getRecoveryVault",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_brightIdContext",
          "type": "bytes32"
        },
        {
          "name": "_brightIdVerifier",
          "type": "address"
        }
      ],
      "name": "setBrightIdSettings",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_verificationTimestampVariance",
          "type": "uint256"
        }
      ],
      "name": "setVerificationTimestampVariance",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "brightIdContext",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "UPDATE_SETTINGS_ROLE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_registrationPeriod",
          "type": "uint256"
        }
      ],
      "name": "setRegistrationPeriod",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "registrationPeriod",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "token",
          "type": "address"
        }
      ],
      "name": "allowRecoverability",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "appId",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getInitializationBlock",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "transferToVault",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_sender",
          "type": "address"
        },
        {
          "name": "_role",
          "type": "bytes32"
        },
        {
          "name": "_params",
          "type": "uint256[]"
        }
      ],
      "name": "canPerform",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getEVMScriptRegistry",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_brightIdUser",
          "type": "address"
        }
      ],
      "name": "isVerified",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_brightIdContext",
          "type": "bytes32"
        },
        {
          "name": "_addrs",
          "type": "address[]"
        },
        {
          "name": "_timestamp",
          "type": "uint256"
        },
        {
          "name": "_v",
          "type": "uint8"
        },
        {
          "name": "_r",
          "type": "bytes32"
        },
        {
          "name": "_s",
          "type": "bytes32"
        },
        {
          "name": "_registerAndCall",
          "type": "address"
        },
        {
          "name": "_functionCallData",
          "type": "bytes"
        }
      ],
      "name": "register",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "kernel",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_brightIdUser",
          "type": "address"
        }
      ],
      "name": "userUniqueId",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isPetrified",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "verificationTimestampVariance",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_brightIdContext",
          "type": "bytes32"
        },
        {
          "name": "_brightIdVerifier",
          "type": "address"
        },
        {
          "name": "_registrationPeriod",
          "type": "uint256"
        },
        {
          "name": "_verificationTimestampVariance",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "Register",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "executor",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "script",
          "type": "bytes"
        },
        {
          "indexed": false,
          "name": "input",
          "type": "bytes"
        },
        {
          "indexed": false,
          "name": "returnData",
          "type": "bytes"
        }
      ],
      "name": "ScriptResult",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "vault",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "token",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "RecoverToVault",
      "type": "event"
    }
  ],
  "bytecode": "0x60806040523480156200001157600080fd5b50604051608080620020ed83398101604090815281516020830151918301516060909301519092906200004c6401000000006200015e810204565b60408051808201909152601881527f524547495354524154494f4e5f504552494f445f5a45524f00000000000000006020820152600083116200012a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620000ee578181015183820152602001620000d4565b50505050905090810190601f1680156200011c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060009390935560018054600160a060020a031916600160a060020a0393909316929092179091556002556003556200033f565b6200017164010000000062000229810204565b60408051808201909152601881527f494e49545f414c52454144595f494e495449414c495a454400000000000000006020820152901562000210576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181518152602001915080519060200190808383600083811015620000ee578181015183820152602001620000d4565b506200022760001964010000000062000258810204565b565b600062000253600080516020620020cd833981519152640100000000620016d66200033782021704565b905090565b6200026b64010000000062000229810204565b60408051808201909152601881527f494e49545f414c52454144595f494e495449414c495a45440000000000000000602082015290156200030a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181518152602001915080519060200190808383600083811015620000ee578181015183820152602001620000d4565b5062000334600080516020620020cd8339815191528264010000000062001d4e6200033b82021704565b50565b5490565b9055565b611d7e806200034f6000396000f3006080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146101375780630803fac01461018557806325d6e86a1461019a5780632914b9bd146101d857806332f0a3b51461023157806333c23514146102465780633eeca6f5146102795780634c251adc146102915780634f629fbb146102b857806356922758146102cd5780635939ee04146102e55780637e7db6e1146102fa57806380afdea8146103285780638b3dd7491461033d5780639d4941d814610352578063a1658fad14610380578063a479e508146103f4578063b9209e3314610409578063cb25816b14610437578063d4aae0c414610503578063d58efda114610518578063de4796ed14610546578063ea7c7bb81461055b575b600080fd5b34801561014357600080fd5b506101717fffffffff0000000000000000000000000000000000000000000000000000000060043516610570565b604080519115158252519081900360200190f35b34801561019157600080fd5b506101716105cd565b3480156101a657600080fd5b506101af6105f6565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156101e457600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101af9436949293602493928401919081908401838280828437509497506106129650505050505050565b34801561023d57600080fd5b506101af61071e565b34801561025257600080fd5b5061027760043573ffffffffffffffffffffffffffffffffffffffff602435166107bc565b005b34801561028557600080fd5b50610277600435610932565b34801561029d57600080fd5b506102a6610a23565b60408051918252519081900360200190f35b3480156102c457600080fd5b506102a6610a29565b3480156102d957600080fd5b50610277600435610a5e565b3480156102f157600080fd5b506102a6610b4f565b34801561030657600080fd5b5061017173ffffffffffffffffffffffffffffffffffffffff60043516610b55565b34801561033457600080fd5b506102a6610b5b565b34801561034957600080fd5b506102a6610b8b565b34801561035e57600080fd5b5061027773ffffffffffffffffffffffffffffffffffffffff60043516610bb6565b34801561038c57600080fd5b50604080516020600460443581810135838102808601850190965280855261017195833573ffffffffffffffffffffffffffffffffffffffff16956024803596369695606495939492019291829185019084908082843750949750610ed89650505050505050565b34801561040057600080fd5b506101af611068565b34801561041557600080fd5b5061017173ffffffffffffffffffffffffffffffffffffffff6004351661112a565b34801561044357600080fd5b506040805160206004602480358281013584810280870186019097528086526102779684359636966044959194909101929182918501908490808284375050604080516020601f60a08a01358b0180359182018390048302840183018552818452989b8a359b60ff848d0135169b958601359a60608701359a5073ffffffffffffffffffffffffffffffffffffffff6080880135169950919750955060c090940193820191819084018382808284375094975061114b9650505050505050565b34801561050f57600080fd5b506101af611541565b34801561052457600080fd5b506101af73ffffffffffffffffffffffffffffffffffffffff6004351661156c565b34801561055257600080fd5b50610171611651565b34801561056757600080fd5b506102a6611682565b600061057b82611688565b806105c757507fffffffff0000000000000000000000000000000000000000000000000000000082167f54053e6c00000000000000000000000000000000000000000000000000000000145b92915050565b6000806105d8610b8b565b905080158015906105f05750806105ed6116d2565b10155b91505090565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b600061061c611068565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106a0578181015183820152602001610688565b50505050905090810190601f1680156106cd5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1580156106ec57600080fd5b505af1158015610700573d6000803e3d6000fd5b505050506040513d602081101561071657600080fd5b505192915050565b6000610728611541565b73ffffffffffffffffffffffffffffffffffffffff166332f0a3b56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561078b57600080fd5b505af115801561079f573d6000803e3d6000fd5b505050506040513d60208110156107b557600080fd5b5051905090565b604080517f5550444154455f53455454494e47535f524f4c45000000000000000000000000815281519081900360140181206000808352602083019093529161080b9133918491905b50610ed8565b60408051808201909152600f81527f4150505f415554485f4641494c4544000000000000000000000000000000000060208201529015156108e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156108a9578181015183820152602001610891565b50505050905090810190601f1680156108d65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5050600091909155600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b604080517f5550444154455f53455454494e47535f524f4c45000000000000000000000000815281519081900360140181206000808352602083019093529161097f913391849190610805565b60408051808201909152600f81527f4150505f415554485f4641494c454400000000000000000000000000000000006020820152901515610a1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156108a9578181015183820152602001610891565b5050600355565b60005481565b604080517f5550444154455f53455454494e47535f524f4c450000000000000000000000008152905190819003601401902081565b604080517f5550444154455f53455454494e47535f524f4c450000000000000000000000008152815190819003601401812060008083526020830190935291610aab913391849190610805565b60408051808201909152600f81527f4150505f415554485f4641494c454400000000000000000000000000000000006020820152901515610b48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156108a9578181015183820152602001610891565b5050600255565b60025481565b50600190565b6000610b867fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b6116d6565b905090565b6000610b867febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e6116d6565b6000806000610bc484610b55565b60408051808201909152601281527f5245434f5645525f444953414c4c4f57454400000000000000000000000000006020820152901515610c61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156108a9578181015183820152602001610891565b50610c6a61071e565b9250610c75836116de565b60408051808201909152601a81527f5245434f5645525f5641554c545f4e4f545f434f4e54524143540000000000006020820152901515610d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156108a9578181015183820152602001610891565b5073ffffffffffffffffffffffffffffffffffffffff84161515610d7d576040513031925073ffffffffffffffffffffffffffffffffffffffff84169083156108fc029084906000818181858888f19350505050158015610d77573d6000803e3d6000fd5b50610e6d565b5082610da573ffffffffffffffffffffffffffffffffffffffff82163063ffffffff61171116565b9150610dce73ffffffffffffffffffffffffffffffffffffffff8216848463ffffffff61184a16565b60408051808201909152601d81527f5245434f5645525f544f4b454e5f5452414e534645525f4641494c45440000006020820152901515610e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156108a9578181015183820152602001610891565b505b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f596caf56044b55fb8c4ca640089bbc2b63cae3e978b851f5745cbb7c5b288e02846040518082815260200191505060405180910390a350505050565b600080610ee36105cd565b1515610ef25760009150611060565b610efa611541565b905073ffffffffffffffffffffffffffffffffffffffff81161515610f225760009150611060565b8073ffffffffffffffffffffffffffffffffffffffff1663fdef9106863087610f4a886118e2565b6040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff808616600483019081529085166024830152604482018490526080606483019081528351608484015283519192909160a490910190602085019080838360005b83811015610fe2578181015183820152602001610fca565b50505050905090810190601f16801561100f5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561103157600080fd5b505af1158015611045573d6000803e3d6000fd5b505050506040513d602081101561105b57600080fd5b505191505b509392505050565b600080611073611541565b604080517fbe00bbd80000000000000000000000000000000000000000000000000000000081527fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb60048201527fddbcfd564f642ab5627cf68b9b7d374fb4f8a36e941a75d89c87998cef03bd616024820152905173ffffffffffffffffffffffffffffffffffffffff929092169163be00bbd8916044808201926020929091908290030181600087803b1580156106ec57600080fd5b336000908152600460205260408120611142816118ec565b91505b50919050565b336000908152600460205260408120885190918991811061116857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146040805190810160405280601a81526020017f53454e4445525f4e4f545f494e5f564552494649434154494f4e00000000000081525090151561123f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156108a9578181015183820152602001610891565b5061124e898989898989611951565b60408051808201909152601681527f494e434f52524543545f564552494649434154494f4e0000000000000000000060208201529015156112eb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156108a9578181015183820152602001610891565b50600281015460408051808201909152600e81527f414444524553535f564f4944454400000000000000000000000000000000000060208201529060ff1615611390576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156108a9578181015183820152602001610891565b50426001820155805473ffffffffffffffffffffffffffffffffffffffff1615156113f157875188907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106113e557fe5b506113f1905088611b3a565b73ffffffffffffffffffffffffffffffffffffffff831615611503578054604080517fc8b8961e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201818152602483019384528651604484015286519488169463c8b8961e949293889391606490910190602085019080838360005b8381101561149d578181015183820152602001611485565b50505050905090810190601f1680156114ca5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156114ea57600080fd5b505af11580156114fe573d6000803e3d6000fd5b505050505b6040805133815290517feeda149c76076b34d4b9d8896c2f7efc0d33d1c7b53ea3c5db490d64613f603a9181900360200190a1505050505050505050565b6000610b867f4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b6116d6565b33600090815260046020908152604080832080548251808401909352601583527f4e4f5f554e495155455f49445f41535349474e45440000000000000000000000938301939093529173ffffffffffffffffffffffffffffffffffffffff161515611633576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156108a9578181015183820152602001610891565b505473ffffffffffffffffffffffffffffffffffffffff1692915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61167c610b8b565b14905090565b60035481565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b4390565b5490565b5490565b60008073ffffffffffffffffffffffffffffffffffffffff831615156117075760009150611145565b50506000903b1190565b6040805173ffffffffffffffffffffffffffffffffffffffff83166024808301919091528251808303909101815260449091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f70a0823100000000000000000000000000000000000000000000000000000000179052600090818061179e8684611c2a565b60408051808201909152601c81527f534146455f4552435f32305f42414c414e43455f52455645525445440000000060208201529193509150821515611840576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156108a9578181015183820152602001610891565b5095945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526000906118d98582611c5b565b95945050505050565b8051602002815290565b8054600254600183015460009273ffffffffffffffffffffffffffffffffffffffff1615159183918291611926919063ffffffff611ca916565b60028601544291909110925060ff161590508280156119425750815b80156118d95750949350505050565b6000806000806000808b8b8b604051602001808460001916600019168152602001838051906020019060200280838360005b8381101561199b578181015183820152602001611983565b5050505090500182815260200193505050506040516020818303038152906040526040518082805190602001908083835b60208310611a0957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016119cc565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902094506001858a8a8a604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015611aaf573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015160015460005460035492975073ffffffffffffffffffffffffffffffffffffffff80891692169190911495508e149350611b1391508b90611ca9565b42109050828015611b215750815b8015611b2a5750805b9c9b505050505050505050505050565b600060018251111515611b4c57611c26565b5060015b815181108015611ba55750600460008383815181101515611b6d57fe5b602090810290910181015173ffffffffffffffffffffffffffffffffffffffff1682528101919091526040016000206002015460ff16155b15611c26576001600460008484815181101515611bbe57fe5b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff16825281019190915260400160002060020180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101611b50565b5050565b6000806000806040516020818751602089018a5afa92506000831115611c4f57805191505b50909590945092505050565b6000806040516020818551602087016000895af16000811115611c9f573d8015611c8c5760208114611c9557611c9d565b60019350611c9d565b600183511493505b505b5090949350505050565b60408051808201909152601181527f4d4154485f4144445f4f564552464c4f5700000000000000000000000000000060208201526000908383019084821015611060576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156108a9578181015183820152602001610891565b90555600a165627a7a723058204206f9f00b97e8db5e188dac089d17193126a6a2c756b3e452ad8cc20995121d0029ebb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e",
  "deployedBytecode": "0x6080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146101375780630803fac01461018557806325d6e86a1461019a5780632914b9bd146101d857806332f0a3b51461023157806333c23514146102465780633eeca6f5146102795780634c251adc146102915780634f629fbb146102b857806356922758146102cd5780635939ee04146102e55780637e7db6e1146102fa57806380afdea8146103285780638b3dd7491461033d5780639d4941d814610352578063a1658fad14610380578063a479e508146103f4578063b9209e3314610409578063cb25816b14610437578063d4aae0c414610503578063d58efda114610518578063de4796ed14610546578063ea7c7bb81461055b575b600080fd5b34801561014357600080fd5b506101717fffffffff0000000000000000000000000000000000000000000000000000000060043516610570565b604080519115158252519081900360200190f35b34801561019157600080fd5b506101716105cd565b3480156101a657600080fd5b506101af6105f6565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156101e457600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101af9436949293602493928401919081908401838280828437509497506106129650505050505050565b34801561023d57600080fd5b506101af61071e565b34801561025257600080fd5b5061027760043573ffffffffffffffffffffffffffffffffffffffff602435166107bc565b005b34801561028557600080fd5b50610277600435610932565b34801561029d57600080fd5b506102a6610a23565b60408051918252519081900360200190f35b3480156102c457600080fd5b506102a6610a29565b3480156102d957600080fd5b50610277600435610a5e565b3480156102f157600080fd5b506102a6610b4f565b34801561030657600080fd5b5061017173ffffffffffffffffffffffffffffffffffffffff60043516610b55565b34801561033457600080fd5b506102a6610b5b565b34801561034957600080fd5b506102a6610b8b565b34801561035e57600080fd5b5061027773ffffffffffffffffffffffffffffffffffffffff60043516610bb6565b34801561038c57600080fd5b50604080516020600460443581810135838102808601850190965280855261017195833573ffffffffffffffffffffffffffffffffffffffff16956024803596369695606495939492019291829185019084908082843750949750610ed89650505050505050565b34801561040057600080fd5b506101af611068565b34801561041557600080fd5b5061017173ffffffffffffffffffffffffffffffffffffffff6004351661112a565b34801561044357600080fd5b506040805160206004602480358281013584810280870186019097528086526102779684359636966044959194909101929182918501908490808284375050604080516020601f60a08a01358b0180359182018390048302840183018552818452989b8a359b60ff848d0135169b958601359a60608701359a5073ffffffffffffffffffffffffffffffffffffffff6080880135169950919750955060c090940193820191819084018382808284375094975061114b9650505050505050565b34801561050f57600080fd5b506101af611541565b34801561052457600080fd5b506101af73ffffffffffffffffffffffffffffffffffffffff6004351661156c565b34801561055257600080fd5b50610171611651565b34801561056757600080fd5b506102a6611682565b600061057b82611688565b806105c757507fffffffff0000000000000000000000000000000000000000000000000000000082167f54053e6c00000000000000000000000000000000000000000000000000000000145b92915050565b6000806105d8610b8b565b905080158015906105f05750806105ed6116d2565b10155b91505090565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b600061061c611068565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106a0578181015183820152602001610688565b50505050905090810190601f1680156106cd5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1580156106ec57600080fd5b505af1158015610700573d6000803e3d6000fd5b505050506040513d602081101561071657600080fd5b505192915050565b6000610728611541565b73ffffffffffffffffffffffffffffffffffffffff166332f0a3b56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561078b57600080fd5b505af115801561079f573d6000803e3d6000fd5b505050506040513d60208110156107b557600080fd5b5051905090565b604080517f5550444154455f53455454494e47535f524f4c45000000000000000000000000815281519081900360140181206000808352602083019093529161080b9133918491905b50610ed8565b60408051808201909152600f81527f4150505f415554485f4641494c4544000000000000000000000000000000000060208201529015156108e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156108a9578181015183820152602001610891565b50505050905090810190601f1680156108d65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5050600091909155600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b604080517f5550444154455f53455454494e47535f524f4c45000000000000000000000000815281519081900360140181206000808352602083019093529161097f913391849190610805565b60408051808201909152600f81527f4150505f415554485f4641494c454400000000000000000000000000000000006020820152901515610a1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156108a9578181015183820152602001610891565b5050600355565b60005481565b604080517f5550444154455f53455454494e47535f524f4c450000000000000000000000008152905190819003601401902081565b604080517f5550444154455f53455454494e47535f524f4c450000000000000000000000008152815190819003601401812060008083526020830190935291610aab913391849190610805565b60408051808201909152600f81527f4150505f415554485f4641494c454400000000000000000000000000000000006020820152901515610b48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156108a9578181015183820152602001610891565b5050600255565b60025481565b50600190565b6000610b867fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b6116d6565b905090565b6000610b867febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e6116d6565b6000806000610bc484610b55565b60408051808201909152601281527f5245434f5645525f444953414c4c4f57454400000000000000000000000000006020820152901515610c61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156108a9578181015183820152602001610891565b50610c6a61071e565b9250610c75836116de565b60408051808201909152601a81527f5245434f5645525f5641554c545f4e4f545f434f4e54524143540000000000006020820152901515610d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156108a9578181015183820152602001610891565b5073ffffffffffffffffffffffffffffffffffffffff84161515610d7d576040513031925073ffffffffffffffffffffffffffffffffffffffff84169083156108fc029084906000818181858888f19350505050158015610d77573d6000803e3d6000fd5b50610e6d565b5082610da573ffffffffffffffffffffffffffffffffffffffff82163063ffffffff61171116565b9150610dce73ffffffffffffffffffffffffffffffffffffffff8216848463ffffffff61184a16565b60408051808201909152601d81527f5245434f5645525f544f4b454e5f5452414e534645525f4641494c45440000006020820152901515610e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156108a9578181015183820152602001610891565b505b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f596caf56044b55fb8c4ca640089bbc2b63cae3e978b851f5745cbb7c5b288e02846040518082815260200191505060405180910390a350505050565b600080610ee36105cd565b1515610ef25760009150611060565b610efa611541565b905073ffffffffffffffffffffffffffffffffffffffff81161515610f225760009150611060565b8073ffffffffffffffffffffffffffffffffffffffff1663fdef9106863087610f4a886118e2565b6040517c010000000000000000000000000000000000000000000000000000000063ffffffff871602815273ffffffffffffffffffffffffffffffffffffffff808616600483019081529085166024830152604482018490526080606483019081528351608484015283519192909160a490910190602085019080838360005b83811015610fe2578181015183820152602001610fca565b50505050905090810190601f16801561100f5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561103157600080fd5b505af1158015611045573d6000803e3d6000fd5b505050506040513d602081101561105b57600080fd5b505191505b509392505050565b600080611073611541565b604080517fbe00bbd80000000000000000000000000000000000000000000000000000000081527fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb60048201527fddbcfd564f642ab5627cf68b9b7d374fb4f8a36e941a75d89c87998cef03bd616024820152905173ffffffffffffffffffffffffffffffffffffffff929092169163be00bbd8916044808201926020929091908290030181600087803b1580156106ec57600080fd5b336000908152600460205260408120611142816118ec565b91505b50919050565b336000908152600460205260408120885190918991811061116857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146040805190810160405280601a81526020017f53454e4445525f4e4f545f494e5f564552494649434154494f4e00000000000081525090151561123f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156108a9578181015183820152602001610891565b5061124e898989898989611951565b60408051808201909152601681527f494e434f52524543545f564552494649434154494f4e0000000000000000000060208201529015156112eb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156108a9578181015183820152602001610891565b50600281015460408051808201909152600e81527f414444524553535f564f4944454400000000000000000000000000000000000060208201529060ff1615611390576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156108a9578181015183820152602001610891565b50426001820155805473ffffffffffffffffffffffffffffffffffffffff1615156113f157875188907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106113e557fe5b506113f1905088611b3a565b73ffffffffffffffffffffffffffffffffffffffff831615611503578054604080517fc8b8961e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201818152602483019384528651604484015286519488169463c8b8961e949293889391606490910190602085019080838360005b8381101561149d578181015183820152602001611485565b50505050905090810190601f1680156114ca5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156114ea57600080fd5b505af11580156114fe573d6000803e3d6000fd5b505050505b6040805133815290517feeda149c76076b34d4b9d8896c2f7efc0d33d1c7b53ea3c5db490d64613f603a9181900360200190a1505050505050505050565b6000610b867f4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b6116d6565b33600090815260046020908152604080832080548251808401909352601583527f4e4f5f554e495155455f49445f41535349474e45440000000000000000000000938301939093529173ffffffffffffffffffffffffffffffffffffffff161515611633576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156108a9578181015183820152602001610891565b505473ffffffffffffffffffffffffffffffffffffffff1692915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61167c610b8b565b14905090565b60035481565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b4390565b5490565b5490565b60008073ffffffffffffffffffffffffffffffffffffffff831615156117075760009150611145565b50506000903b1190565b6040805173ffffffffffffffffffffffffffffffffffffffff83166024808301919091528251808303909101815260449091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f70a0823100000000000000000000000000000000000000000000000000000000179052600090818061179e8684611c2a565b60408051808201909152601c81527f534146455f4552435f32305f42414c414e43455f52455645525445440000000060208201529193509150821515611840576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156108a9578181015183820152602001610891565b5095945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526000906118d98582611c5b565b95945050505050565b8051602002815290565b8054600254600183015460009273ffffffffffffffffffffffffffffffffffffffff1615159183918291611926919063ffffffff611ca916565b60028601544291909110925060ff161590508280156119425750815b80156118d95750949350505050565b6000806000806000808b8b8b604051602001808460001916600019168152602001838051906020019060200280838360005b8381101561199b578181015183820152602001611983565b5050505090500182815260200193505050506040516020818303038152906040526040518082805190602001908083835b60208310611a0957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016119cc565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902094506001858a8a8a604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015611aaf573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015160015460005460035492975073ffffffffffffffffffffffffffffffffffffffff80891692169190911495508e149350611b1391508b90611ca9565b42109050828015611b215750815b8015611b2a5750805b9c9b505050505050505050505050565b600060018251111515611b4c57611c26565b5060015b815181108015611ba55750600460008383815181101515611b6d57fe5b602090810290910181015173ffffffffffffffffffffffffffffffffffffffff1682528101919091526040016000206002015460ff16155b15611c26576001600460008484815181101515611bbe57fe5b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff16825281019190915260400160002060020180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101611b50565b5050565b6000806000806040516020818751602089018a5afa92506000831115611c4f57805191505b50909590945092505050565b6000806040516020818551602087016000895af16000811115611c9f573d8015611c8c5760208114611c9557611c9d565b60019350611c9d565b600183511493505b505b5090949350505050565b60408051808201909152601181527f4d4154485f4144445f4f564552464c4f5700000000000000000000000000000060208201526000908383019084821015611060576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382528381815181526020019150805190602001908083836000838110156108a9578181015183820152602001610891565b90555600a165627a7a723058204206f9f00b97e8db5e188dac089d17193126a6a2c756b3e452ad8cc20995121d0029",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
