{
  "_format": "hh-sol-artifact-1",
  "contractName": "WitnetRandomnessMock",
  "sourceName": "witnet-solidity-bridge/contracts/mocks/WitnetRandomnessMock.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "_mockRandomizeLatencyBlocks",
          "type": "uint8"
        },
        {
          "internalType": "uint256",
          "name": "_mockRandomizeFee",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "by",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "contract Clonable",
          "name": "self",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "contract Clonable",
          "name": "clone",
          "type": "address"
        }
      ],
      "name": "Cloned",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "prevBlock",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "witnetQueryId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "witnetRequestHash",
          "type": "bytes32"
        }
      ],
      "name": "Randomized",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "clone",
      "outputs": [
        {
          "internalType": "contract Clonable",
          "name": "_newInstance",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_salt",
          "type": "bytes32"
        }
      ],
      "name": "cloneDeterministic",
      "outputs": [
        {
          "internalType": "contract Clonable",
          "name": "_newInstance",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "cloned",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "estimateRandomizeFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_block",
          "type": "uint256"
        }
      ],
      "name": "getRandomizeData",
      "outputs": [
        {
          "internalType": "address",
          "name": "_from",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_prevBlock",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_nextBlock",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_block",
          "type": "uint256"
        }
      ],
      "name": "getRandomnessAfter",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_block",
          "type": "uint256"
        }
      ],
      "name": "getRandomnessNextBlock",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_block",
          "type": "uint256"
        }
      ],
      "name": "getRandomnessPrevBlock",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "_initData",
          "type": "bytes"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_block",
          "type": "uint256"
        }
      ],
      "name": "isRandomized",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "latestRandomizeBlock",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "_range",
          "type": "uint32"
        },
        {
          "internalType": "uint256",
          "name": "_nonce",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_block",
          "type": "uint256"
        }
      ],
      "name": "random",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "_range",
          "type": "uint32"
        },
        {
          "internalType": "uint256",
          "name": "_nonce",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "_seed",
          "type": "bytes32"
        }
      ],
      "name": "random",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "randomize",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_usedFunds",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "self",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "upgradeRandomizeFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "witnet",
      "outputs": [
        {
          "internalType": "contract WitnetRequestBoard",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "witnetRandomnessRequest",
      "outputs": [
        {
          "internalType": "contract WitnetRequestRandomness",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60c06040523073ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156200004757600080fd5b50604051620063bf380380620063bf83398181016040528101906200006d91906200028f565b73ffffffffffffffffffffffffffffffffffffffff80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620000f6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000ed906200032b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b81525050506040516200013c9062000253565b604051809103906000f08015801562000159573d6000803e3d6000fd5b506000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2fde38b336040518263ffffffff1660e01b8152600401620001f491906200030e565b600060405180830381600087803b1580156200020f57600080fd5b505af115801562000224573d6000803e3d6000fd5b505050505081600360006101000a81548160ff021916908360ff1602179055508060048190555050506200040b565b613cb0806200270f83390190565b6000815190506200027281620003d7565b92915050565b6000815190506200028981620003f1565b92915050565b60008060408385031215620002a957620002a8620003a9565b5b6000620002b98582860162000278565b9250506020620002cc8582860162000261565b9150509250929050565b620002e1816200035e565b82525050565b6000620002f66019836200034d565b91506200030382620003ae565b602082019050919050565b6000602082019050620003256000830184620002d6565b92915050565b600060208201905081810360008301526200034681620002e7565b9050919050565b600082825260208201905092915050565b60006200036b8262000372565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600080fd5b7f5573696e675769746e65743a207a65726f206164647265737300000000000000600082015250565b620003e28162000392565b8114620003ee57600080fd5b50565b620003fc816200039c565b81146200040857600080fd5b50565b60805160601c60a05160601c6122b56200045a60003960008181610979015281816109f701528181610cfa01528181610e02015281816110a801526111b10152600061070301526122b56000f3fe6080604052600436106101095760003560e01c80639938fd0c11610095578063a60ee26811610064578063a60ee2681461038b578063daaa360c146103c8578063e35329f814610405578063e7d4a01614610435578063fb476cad1461047257610109565b80639938fd0c146102b85780639bc86fec146102e3578063a04daef014610320578063a3252f681461034b57610109565b806340b41daa116100dc57806340b41daa146101de578063439fab911461021b57806346d1d21a14610244578063699b328a1461026f5780637104ddb21461028d57610109565b806309ed46071461010e57806324cbbfc11461013957806336b651bb146101765780633b13e76e146101b3575b600080fd5b34801561011a57600080fd5b506101236104af565b6040516101309190611959565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190611679565b6104c7565b60405161016d9190611aae565b60405180910390f35b34801561018257600080fd5b5061019d600480360381019061019891906115f9565b61050d565b6040516101aa9190611a6a565b60405180910390f35b3480156101bf57600080fd5b506101c861055c565b6040516101d5919061198f565b60405180910390f35b3480156101ea57600080fd5b50610205600480360381019061020091906115f9565b610580565b6040516102129190611a6a565b60405180910390f35b34801561022757600080fd5b50610242600480360381019061023d9190611583565b61061c565b005b34801561025057600080fd5b50610259610701565b6040516102669190611974565b60405180910390f35b610277610725565b6040516102849190611a6a565b60405180910390f35b34801561029957600080fd5b506102a2610977565b6040516102af919061184f565b60405180910390f35b3480156102c457600080fd5b506102cd61099b565b6040516102da9190611a6a565b60405180910390f35b3480156102ef57600080fd5b5061030a600480360381019061030591906115f9565b6109a1565b60405161031791906118d8565b60405180910390f35b34801561032c57600080fd5b506103356109f3565b60405161034291906118d8565b60405180910390f35b34801561035757600080fd5b50610372600480360381019061036d91906115f9565b610a4a565b6040516103829493929190611893565b60405180910390f35b34801561039757600080fd5b506103b260048036038101906103ad91906115f9565b610aab565b6040516103bf9190611a6a565b60405180910390f35b3480156103d457600080fd5b506103ef60048036038101906103ea9190611529565b610ab7565b6040516103fc9190611959565b60405180910390f35b61041f600480360381019061041a91906115f9565b610ad2565b60405161042c9190611a6a565b60405180910390f35b34801561044157600080fd5b5061045c60048036038101906104579190611626565b610b2d565b6040516104699190611aae565b60405180910390f35b34801561047e57600080fd5b50610499600480360381019061049491906115f9565b610bb4565b6040516104a691906118f3565b60405180910390f35b60006104b9610cf5565b90506104c481610e7e565b90565b60006105048484336104d886610bb4565b6040516020016104e992919061186a565b60405160208183030381529060405280519060200120610b2d565b90509392505050565b600080821161051f5761051e611f90565b5b600060015490508083116105525761054d83600260008481526020019081526020016000206001015461101c565b610554565b805b915050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156105fd576105f882600154611054565b610615565b60026000838152602001908152602001600020600201545b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a2906119aa565b60405180910390fd5b808060200190518101906106bf91906114fc565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600043600154101561091957600454905080341015610779576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077090611a0a565b60405180910390fd5b600060056000815461078a90611f47565b91905081905590506000600260004381526020019081526020016000209050338160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508181600301819055506000600154905080826001018190555043600260008381526020019081526020016000206002018190555043600181905550803373ffffffffffffffffffffffffffffffffffffffff167faf291bb4e1767569c77502edb6ad1009e856f57c09f214886c6becc9836c20c08560008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166309bd5a606040518163ffffffff1660e01b815260040160206040518083038186803b1580156108c757600080fd5b505afa1580156108db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ff9190611556565b60405161090d929190611a85565b60405180910390a35050505b34811015610974573373ffffffffffffffffffffffffffffffffffffffff166108fc82346109479190611d6d565b9081150290604051600060405180830381858888f19350505050158015610972573d6000803e3d6000fd5b505b90565b7f000000000000000000000000000000000000000000000000000000000000000081565b60015481565b60008060026000848152602001908152602001600020905060008160030154141580156109eb5750600360009054906101000a900460ff1660ff16836109e79190611b4c565b4310155b915050919050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415905090565b6000806000806000600260008781526020019081526020016000209050806003015493508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1694508060010154925080600201549150509193509193565b60006004549050919050565b6000610ac2826110a3565b9050610acd81610e7e565b919050565b600080341115610b24573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015610b22573d6000803e3d6000fd5b505b60009050919050565b600080610b398561122f565b60ff610b459190611da1565b905060006001826002610b589190611bf5565b610b629190611d6d565b8486604051602001610b7592919061190e565b6040516020818303038152906040528051906020012060001c1690508160ff168663ffffffff1682610ba79190611d13565b901c925050509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610c2c57610c2982610580565b91505b6000600260008481526020019081526020016000206003015490506000811415610c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8290611a2a565b60405180910390fd5b600360009054906101000a900460ff1660ff1683610ca99190611b4c565b431015610ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce2906119ca565b60405180910390fd5b8240915050919050565b6000807f000000000000000000000000000000000000000000000000000000000000000090506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160601b60148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f0925050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de090611a4a565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ff376596be5039d6b2fb36fead4c8a370eae426e790a869be8db074ab608cc24860405160405180910390a45090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166309ed46076040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610ee957600080fd5b505af1158015610efd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2191906115cc565b90508073ffffffffffffffffffffffffffffffffffffffff1663f2fde38b336040518263ffffffff1660e01b8152600401610f5c919061184f565b600060405180830381600087803b158015610f7657600080fd5b505af1158015610f8a573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663439fab9182604051602001610fbb919061184f565b6040516020818303038152906040526040518263ffffffff1660e01b8152600401610fe69190611937565b600060405180830381600087803b15801561100057600080fd5b505af1158015611014573d6000803e3d6000fd5b505050505050565b600081831161104a5761104583600260008581526020019081526020016000206001015461101c565b61104c565b815b905092915050565b6000818310156110835761107e836002600085815260200190815260200160002060010154611054565b61109b565b60026000838152602001908152602001600020600201545b905092915050565b6000807f000000000000000000000000000000000000000000000000000000000000000090506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160601b60148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152836037826000f5925050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118f906119ea565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ff376596be5039d6b2fb36fead4c8a370eae426e790a869be8db074ab608cc24860405160405180910390a450919050565b600080604051806104000160405280600060ff168152602001600960ff168152602001600160ff168152602001600a60ff168152602001600d60ff168152602001601560ff168152602001600260ff168152602001601d60ff168152602001600b60ff168152602001600e60ff168152602001601060ff168152602001601260ff168152602001601660ff168152602001601960ff168152602001600360ff168152602001601e60ff168152602001600860ff168152602001600c60ff168152602001601460ff168152602001601c60ff168152602001600f60ff168152602001601160ff168152602001601860ff168152602001600760ff168152602001601360ff168152602001601b60ff168152602001601760ff168152602001600660ff168152602001601a60ff168152602001600560ff168152602001600460ff168152602001601f60ff16815250905060018363ffffffff16901c8317925060028363ffffffff16901c8317925060048363ffffffff16901c8317925060088363ffffffff16901c8317925060108363ffffffff16901c8317925080601b6307c4acdd8563ffffffff166113e29190611d13565b63ffffffff16901c63ffffffff166020811061140157611400611fee565b5b6020020151915050919050565b600061142161141c84611aee565b611ac9565b90508281526020810184848401111561143d5761143c612051565b5b611448848285611ed4565b509392505050565b60008151905061145f8161220c565b92915050565b60008135905061147481612223565b92915050565b60008151905061148981612223565b92915050565b600082601f8301126114a4576114a361204c565b5b81356114b484826020860161140e565b91505092915050565b6000815190506114cc8161223a565b92915050565b6000813590506114e181612251565b92915050565b6000813590506114f681612268565b92915050565b6000602082840312156115125761151161205b565b5b600061152084828501611450565b91505092915050565b60006020828403121561153f5761153e61205b565b5b600061154d84828501611465565b91505092915050565b60006020828403121561156c5761156b61205b565b5b600061157a8482850161147a565b91505092915050565b6000602082840312156115995761159861205b565b5b600082013567ffffffffffffffff8111156115b7576115b6612056565b5b6115c38482850161148f565b91505092915050565b6000602082840312156115e2576115e161205b565b5b60006115f0848285016114bd565b91505092915050565b60006020828403121561160f5761160e61205b565b5b600061161d848285016114d2565b91505092915050565b60008060006060848603121561163f5761163e61205b565b5b600061164d868287016114e7565b935050602061165e868287016114d2565b925050604061166f86828701611465565b9150509250925092565b6000806000606084860312156116925761169161205b565b5b60006116a0868287016114e7565b93505060206116b1868287016114d2565b92505060406116c2868287016114d2565b9150509250925092565b6116d581611dd5565b82525050565b6116e481611df9565b82525050565b6116f381611e05565b82525050565b600061170482611b1f565b61170e8185611b2a565b935061171e818560208601611ee3565b61172781612060565b840191505092915050565b61173b81611e68565b82525050565b61174a81611e7a565b82525050565b61175981611e8c565b82525050565b600061176c602583611b3b565b91506117778261207e565b604082019050919050565b600061178f602783611b3b565b915061179a826120cd565b604082019050919050565b60006117b2601883611b3b565b91506117bd8261211c565b602082019050919050565b60006117d5602483611b3b565b91506117e082612145565b604082019050919050565b60006117f8602483611b3b565b915061180382612194565b604082019050919050565b600061181b601783611b3b565b9150611826826121e3565b602082019050919050565b61183a81611e41565b82525050565b61184981611e4b565b82525050565b600060208201905061186460008301846116cc565b92915050565b600060408201905061187f60008301856116cc565b61188c60208301846116ea565b9392505050565b60006080820190506118a860008301876116cc565b6118b56020830186611831565b6118c26040830185611831565b6118cf6060830184611831565b95945050505050565b60006020820190506118ed60008301846116db565b92915050565b600060208201905061190860008301846116ea565b92915050565b600060408201905061192360008301856116ea565b6119306020830184611831565b9392505050565b6000602082019050818103600083015261195181846116f9565b905092915050565b600060208201905061196e6000830184611732565b92915050565b60006020820190506119896000830184611741565b92915050565b60006020820190506119a46000830184611750565b92915050565b600060208201905081810360008301526119c38161175f565b9050919050565b600060208201905081810360008301526119e381611782565b9050919050565b60006020820190508181036000830152611a03816117a5565b9050919050565b60006020820190508181036000830152611a23816117c8565b9050919050565b60006020820190508181036000830152611a43816117eb565b9050919050565b60006020820190508181036000830152611a638161180e565b9050919050565b6000602082019050611a7f6000830184611831565b92915050565b6000604082019050611a9a6000830185611831565b611aa760208301846116ea565b9392505050565b6000602082019050611ac36000830184611840565b92915050565b6000611ad3611ae4565b9050611adf8282611f16565b919050565b6000604051905090565b600067ffffffffffffffff821115611b0957611b0861201d565b5b611b1282612060565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611b5782611e41565b9150611b6283611e41565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611b9757611b96611fbf565b5b828201905092915050565b6000808291508390505b6001851115611bec57808604811115611bc857611bc7611fbf565b5b6001851615611bd75780820291505b8081029050611be585612071565b9450611bac565b94509492505050565b6000611c0082611e41565b9150611c0b83611e5b565b9250611c387fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611c40565b905092915050565b600082611c505760019050611d0c565b81611c5e5760009050611d0c565b8160018114611c745760028114611c7e57611cad565b6001915050611d0c565b60ff841115611c9057611c8f611fbf565b5b8360020a915084821115611ca757611ca6611fbf565b5b50611d0c565b5060208310610133831016604e8410600b8410161715611ce25782820a905083811115611cdd57611cdc611fbf565b5b611d0c565b611cef8484846001611ba2565b92509050818404811115611d0657611d05611fbf565b5b81810290505b9392505050565b6000611d1e82611e41565b9150611d2983611e41565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611d6257611d61611fbf565b5b828202905092915050565b6000611d7882611e41565b9150611d8383611e41565b925082821015611d9657611d95611fbf565b5b828203905092915050565b6000611dac82611e5b565b9150611db783611e5b565b925082821015611dca57611dc9611fbf565b5b828203905092915050565b6000611de082611e21565b9050919050565b6000611df282611e21565b9050919050565b60008115159050919050565b6000819050919050565b6000611e1a82611dd5565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b6000611e7382611e9e565b9050919050565b6000611e8582611eb0565b9050919050565b6000611e9782611e9e565b9050919050565b6000611ea982611ec2565b9050919050565b6000611ebb82611ec2565b9050919050565b6000611ecd82611e21565b9050919050565b82818337600083830152505050565b60005b83811015611f01578082015181840152602081019050611ee6565b83811115611f10576000848401525b50505050565b611f1f82612060565b810181811067ffffffffffffffff82111715611f3e57611f3d61201d565b5b80604052505050565b6000611f5282611e41565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611f8557611f84611fbf565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f5769746e657452616e646f6d6e6573733a20616c726561647920696e6974696160008201527f6c697a6564000000000000000000000000000000000000000000000000000000602082015250565b7f5769746e657452616e646f6d6e6573734d6f636b3a2070656e64696e6720726160008201527f6e646f6d697a6500000000000000000000000000000000000000000000000000602082015250565b7f436c6f6e61626c653a2043524541544532206661696c65640000000000000000600082015250565b7f5769746e657452616e646f6d6e6573734d6f636b3a2072657761726420746f6f60008201527f206c6f7700000000000000000000000000000000000000000000000000000000602082015250565b7f5769746e657452616e646f6d6e6573734d6f636b3a206e6f742072616e646f6d60008201527f697a656400000000000000000000000000000000000000000000000000000000602082015250565b7f436c6f6e61626c653a20435245415445206661696c6564000000000000000000600082015250565b61221581611de7565b811461222057600080fd5b50565b61222c81611e05565b811461223757600080fd5b50565b61224381611e0f565b811461224e57600080fd5b50565b61225a81611e41565b811461226557600080fd5b50565b61227181611e4b565b811461227c57600080fd5b5056fea2646970667358221220c43f6e704bfd58fc565704a9130b6e8f4fd24f92ba9c5a37c952af2ebf55964064736f6c6343000807003360a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156200004757600080fd5b50620000686200005c6200008e60201b60201c565b6200009660201b60201c565b62000088604051806020016040528060008152506200017e60201b60201c565b62001259565b600033905090565b6000620000a8620001cc60201b60201c565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081620000df620001cc60201b60201c565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620001c96040518060400160405280601181526020017f0a0f120508021a01801a0210022202100b000000000000000000000000000000815250620001f460201b62000e261760201c565b50565b60007f375930152e1d0d102998be6e496b0cee86c9ecd0efef01014ecff169b17dfba7905090565b600062000206620001cc60201b60201c565b6001018054620002169062000f58565b9050146200025b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002529062000d78565b60405180910390fd5b6200026c816200028f60201b60201c565b6200028c620002806200008e60201b60201c565b6200009660201b60201c565b50565b6000815111620002a457620002a362000fc4565b5b80620002b5620001cc60201b60201c565b6001019080519060200190620002cd92919062000a17565b506000620002e0620001cc60201b60201c565b600401905060028160000160006101000a81548160ff021916908360ff16021790555060338160000160016101000a81548160ff021916908360ff160217905550633b9aca008160000160026101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506207a12081600001600a6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506203d0908160000160126101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506200042b8160000160009054906101000a900460ff168260000160019054906101000a900460ff168360000160029054906101000a900467ffffffffffffffff1684600001600a9054906101000a900467ffffffffffffffff168560000160129054906101000a900467ffffffffffffffff166200042f60201b60201c565b5050565b60008267ffffffffffffffff16116200047f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004769062000d56565b60405180910390fd5b60018560ff1610158015620004985750607f8560ff1611155b620004da576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004d19062000d9a565b60405180910390fd5b60338460ff1610158015620004f3575060638460ff1611155b62000535576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200052c9062000d34565b60405180910390fd5b633b9aca008367ffffffffffffffff16101562000589576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005809062000dbc565b60405180910390fd5b62000599620001cc60201b60201c565b600101620005b2601060f81b846200078860201b60201c565b620005c8601860f81b886200099a60201b60201c565b620005de602060f81b856200078860201b60201c565b620005f4602860f81b896200099a60201b60201c565b6200060a603060f81b896200078860201b60201c565b604051602001620006219695949392919062000cd0565b60405160208183030381529060405262000640620001cc60201b60201c565b60020190805190602001906200065892919062000a17565b50620007126200066d620001cc60201b60201c565b60020180546200067d9062000f58565b80601f0160208091040260200160405190810160405280929190818152602001828054620006ab9062000f58565b8015620006fc5780601f10620006d057610100808354040283529160200191620006fc565b820191906000526020600020905b815481529060010190602001808311620006de57829003601f168201915b5050505050620009b960201b62000e9c1760201c565b62000722620001cc60201b60201c565b600301819055503373ffffffffffffffffffffffffffffffffffffffff167f897a395aeb2699d9730b6377870654a5c371d6bb6dc4486cfc5c80eeafd095b086868686866040516200077995949392919062000dde565b60405180910390a25050505050565b606060008290506000600290505b607f8267ffffffffffffffff161115620007d25760078267ffffffffffffffff16901c9150600181620007ca919062000e77565b905062000796565b60008167ffffffffffffffff1667ffffffffffffffff811115620007fb57620007fa62001080565b5b6040519080825280601f01601f1916602001820160405280156200082e5781602001600182028036833780820191505090505b50905084925085816000815181106200084c576200084b62001051565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000600190505b8267ffffffffffffffff168167ffffffffffffffff1610156200091f57607f841660801760f81b828267ffffffffffffffff1681518110620008c957620008c862001051565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060078467ffffffffffffffff16901c93508080620009169062000f8e565b91505062000882565b50607f60f81b8160018462000935919062000ebc565b67ffffffffffffffff168151811062000953576200095262001051565b5b6020010181815160f81c60f81b169150907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080935050505092915050565b6060620009b1838360ff166200078860201b60201c565b905092915050565b6000600282604051620009cd919062000cb7565b602060405180830381855afa158015620009eb573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019062000a10919062000ade565b9050919050565b82805462000a259062000f58565b90600052602060002090601f01602090048101928262000a49576000855562000a95565b82601f1062000a6457805160ff191683800117855562000a95565b8280016001018555821562000a95579182015b8281111562000a9457825182559160200191906001019062000a77565b5b50905062000aa4919062000aa8565b5090565b5b8082111562000ac357600081600090555060010162000aa9565b5090565b60008151905062000ad8816200123f565b92915050565b60006020828403121562000af75762000af6620010af565b5b600062000b078482850162000ac7565b91505092915050565b600062000b1d8262000e50565b62000b29818562000e5b565b935062000b3b81856020860162000f22565b80840191505092915050565b6000815462000b568162000f58565b62000b62818662000e5b565b9450600182166000811462000b80576001811462000b925762000bc9565b60ff1983168652818601935062000bc9565b62000b9d8562000e3b565b60005b8381101562000bc15781548189015260018201915060208101905062000ba0565b838801955050505b50505092915050565b600062000be1603d8362000e66565b915062000bee82620010b4565b604082019050919050565b600062000c0860258362000e66565b915062000c158262001103565b604082019050919050565b600062000c2f602f8362000e66565b915062000c3c8262001152565b604082019050919050565b600062000c56603c8362000e66565b915062000c6382620011a1565b604082019050919050565b600062000c7d603d8362000e66565b915062000c8a82620011f0565b604082019050919050565b62000ca08162000f01565b82525050565b62000cb18162000f15565b82525050565b600062000cc5828462000b10565b915081905092915050565b600062000cde828962000b47565b915062000cec828862000b10565b915062000cfa828762000b10565b915062000d08828662000b10565b915062000d16828562000b10565b915062000d24828462000b10565b9150819050979650505050505050565b6000602082019050818103600083015262000d4f8162000bd2565b9050919050565b6000602082019050818103600083015262000d718162000bf9565b9050919050565b6000602082019050818103600083015262000d938162000c20565b9050919050565b6000602082019050818103600083015262000db58162000c47565b9050919050565b6000602082019050818103600083015262000dd78162000c6e565b9050919050565b600060a08201905062000df5600083018862000ca6565b62000e04602083018762000ca6565b62000e13604083018662000c95565b62000e22606083018562000c95565b62000e31608083018462000c95565b9695505050505050565b60008190508160005260206000209050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600062000e848262000f01565b915062000e918362000f01565b92508267ffffffffffffffff0382111562000eb15762000eb062000ff3565b5b828201905092915050565b600062000ec98262000f01565b915062000ed68362000f01565b92508282101562000eec5762000eeb62000ff3565b5b828203905092915050565b6000819050919050565b600067ffffffffffffffff82169050919050565b600060ff82169050919050565b60005b8381101562000f4257808201518184015260208101905062000f25565b8381111562000f52576000848401525b50505050565b6000600282049050600182168062000f7157607f821691505b6020821081141562000f885762000f8762001022565b5b50919050565b600062000f9b8262000f01565b915067ffffffffffffffff82141562000fb95762000fb862000ff3565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b7f5769746e6574526571756573744d616c6c6561626c65426173653a207769746e60008201527f657373696e6720636f6e73656e737573206f7574206f662072616e6765000000602082015250565b7f5769746e6574526571756573744d616c6c6561626c65426173653a206e6f207260008201527f6577617264000000000000000000000000000000000000000000000000000000602082015250565b7f5769746e6574526571756573744d616c6c6561626c65426173653a20616c726560008201527f61647920696e697469616c697a65640000000000000000000000000000000000602082015250565b7f5769746e6574526571756573744d616c6c6561626c65426173653a206e756d6260008201527f6572206f66207769746e6573736573206f7574206f662072616e676500000000602082015250565b7f5769746e6574526571756573744d616c6c6561626c65426173653a207769746e60008201527f657373696e6720636f6c6c61746572616c2062656c6f77203120574954000000602082015250565b6200124a8162000ef7565b81146200125657600080fd5b50565b60805160601c612a156200129b600039600081816106290152818161079101528181610f220152818161102a01528181611473015261157c0152612a156000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80638da5cb5b116100a2578063daaa360c11610071578063daaa360c14610287578063ef53d97a146102b7578063f0940002146102d5578063f2fde38b146102f3578063ff21c3ba1461030f57610116565b80638da5cb5b14610213578063a04daef014610231578063d196c2e31461024f578063d9b9a9611461026b57610116565b806352d1902d116100e957806352d1902d146101915780636f2ddd93146101af5780637104ddb2146101cd578063715018a6146101eb5780638a481dad146101f557610116565b806309bd5a601461011b57806309ed460714610139578063439fab911461015757806348f9b83114610173575b600080fd5b61012361032b565b6040516101309190612113565b60405180910390f35b61014161033e565b60405161014e9190612172565b60405180910390f35b610171600480360381019061016c9190611be5565b61042d565b005b61017b61046e565b60405161018891906122ad565b60405180910390f35b610199610561565b6040516101a69190612113565b60405180910390f35b6101b761058c565b6040516101c4919061212e565b60405180910390f35b6101d5610627565b6040516101e291906120dd565b60405180910390f35b6101f361064b565b005b6101fd6106d3565b60405161020a91906122c8565b60405180910390f35b61021b61075a565b60405161022891906120dd565b60405180910390f35b61023961078d565b60405161024691906120f8565b60405180910390f35b61026960048036038101906102649190611c9b565b6107e4565b005b61028560048036038101906102809190611c2e565b610903565b005b6102a1600480360381019061029c9190611b8b565b610a1c565b6040516102ae9190612172565b60405180910390f35b6102bf610b0e565b6040516102cc91906122c8565b60405180910390f35b6102dd610b66565b6040516102ea919061212e565b60405180910390f35b61030d60048036038101906103089190611b5e565b610c01565b005b61032960048036038101906103249190611c5b565b610cf9565b005b6000610335610ef5565b60030154905090565b6000610348610f1d565b90508073ffffffffffffffffffffffffffffffffffffffff1663439fab9161036e610ef5565b6001016040518263ffffffff1660e01b815260040161038d9190612150565b600060405180830381600087803b1580156103a757600080fd5b505af11580156103bb573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663f2fde38b336040518263ffffffff1660e01b81526004016103f891906120dd565b600060405180830381600087803b15801561041257600080fd5b505af1158015610426573d6000803e3d6000fd5b5050505090565b61046b6040518060400160405280601181526020017f0a0f120508021a01801a0210022202100b000000000000000000000000000000815250610e26565b50565b61047661198f565b61047e610ef5565b6004016040518060a00160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900460ff1660ff1660ff1681526020016000820160029054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160008201600a9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016000820160129054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681525050905090565b60007f851d0a92a3ad30295bef33afc69d6874779826b7789386b336e22621365ed2c260001b905090565b6060610596610ef5565b60010180546105a49061258a565b80601f01602080910402602001604051908101604052809291908181526020018280546105d09061258a565b801561061d5780601f106105f25761010080835404028352916020019161061d565b820191906000526020600020905b81548152906001019060200180831161060057829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6106536110a6565b73ffffffffffffffffffffffffffffffffffffffff1661067161075a565b73ffffffffffffffffffffffffffffffffffffffff16146106c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106be9061224d565b60405180910390fd5b6106d160006110ae565b565b6000806106de610ef5565b600401905080600001600a9054906101000a900467ffffffffffffffff168160000160129054906101000a900467ffffffffffffffff1660026107219190612417565b61072b91906123d9565b8160000160009054906101000a900460ff1660ff1661074a9190612417565b67ffffffffffffffff1691505090565b6000610764610ef5565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415905090565b6107ec6110a6565b73ffffffffffffffffffffffffffffffffffffffff1661080a61075a565b73ffffffffffffffffffffffffffffffffffffffff1614610860576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108579061224d565b60405180910390fd5b600061086a610ef5565b6004019050828160000160006101000a81548160ff021916908360ff160217905550818160000160016101000a81548160ff021916908360ff1602179055506108fe83838360000160029054906101000a900467ffffffffffffffff1684600001600a9054906101000a900467ffffffffffffffff168560000160129054906101000a900467ffffffffffffffff16611186565b505050565b61090b6110a6565b73ffffffffffffffffffffffffffffffffffffffff1661092961075a565b73ffffffffffffffffffffffffffffffffffffffff161461097f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109769061224d565b60405180910390fd5b6000610989610ef5565b6004019050818160000160026101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550610a188160000160009054906101000a900460ff168260000160019054906101000a900460ff168484600001600a9054906101000a900467ffffffffffffffff168560000160129054906101000a900467ffffffffffffffff16611186565b5050565b6000610a278261146e565b90508073ffffffffffffffffffffffffffffffffffffffff1663439fab91610a4d610ef5565b6001016040518263ffffffff1660e01b8152600401610a6c9190612150565b600060405180830381600087803b158015610a8657600080fd5b505af1158015610a9a573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663f2fde38b336040518263ffffffff1660e01b8152600401610ad791906120dd565b600060405180830381600087803b158015610af157600080fd5b505af1158015610b05573d6000803e3d6000fd5b50505050919050565b600080610b19610ef5565b60040190508060000160029054906101000a900467ffffffffffffffff168160000160009054906101000a900460ff1660ff16610b569190612417565b67ffffffffffffffff1691505090565b6060610b70610ef5565b6002018054610b7e9061258a565b80601f0160208091040260200160405190810160405280929190818152602001828054610baa9061258a565b8015610bf75780601f10610bcc57610100808354040283529160200191610bf7565b820191906000526020600020905b815481529060010190602001808311610bda57829003601f168201915b5050505050905090565b610c096110a6565b73ffffffffffffffffffffffffffffffffffffffff16610c2761075a565b73ffffffffffffffffffffffffffffffffffffffff1614610c7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c749061224d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce49061218d565b60405180910390fd5b610cf6816110ae565b50565b610d016110a6565b73ffffffffffffffffffffffffffffffffffffffff16610d1f61075a565b73ffffffffffffffffffffffffffffffffffffffff1614610d75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6c9061224d565b60405180910390fd5b6000610d7f610ef5565b60040190508281600001600a6101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550818160000160126101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550610e218160000160009054906101000a900460ff168260000160019054906101000a900460ff168360000160029054906101000a900467ffffffffffffffff168686611186565b505050565b6000610e30610ef5565b6001018054610e3e9061258a565b905014610e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e779061220d565b60405180910390fd5b610e89816115fa565b610e99610e946110a6565b6110ae565b50565b6000600282604051610eae919061206e565b602060405180830381855afa158015610ecb573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610eee9190611bb8565b9050919050565b60007f375930152e1d0d102998be6e496b0cee86c9ecd0efef01014ecff169b17dfba7905090565b6000807f000000000000000000000000000000000000000000000000000000000000000090506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160601b60148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f0925050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611011576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110089061228d565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ff376596be5039d6b2fb36fead4c8a370eae426e790a869be8db074ab608cc24860405160405180910390a45090565b600033905090565b60006110b8610ef5565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816110e7610ef5565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008267ffffffffffffffff16116111d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ca906121cd565b60405180910390fd5b60018560ff16101580156111eb5750607f8560ff1611155b61122a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112219061222d565b60405180910390fd5b60338460ff1610158015611242575060638460ff1611155b611281576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611278906121ad565b60405180910390fd5b633b9aca008367ffffffffffffffff1610156112d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c99061226d565b60405180910390fd5b6112da610ef5565b6001016112eb601060f81b8461177d565b6112f9601860f81b88611978565b611307602060f81b8561177d565b611315602860f81b89611978565b611323603060f81b8961177d565b60405160200161133896959493929190612085565b60405160208183030381529060405261134f610ef5565b60020190805190602001906113659291906119e2565b50611402611371610ef5565b600201805461137f9061258a565b80601f01602080910402602001604051908101604052809291908181526020018280546113ab9061258a565b80156113f85780601f106113cd576101008083540402835291602001916113f8565b820191906000526020600020905b8154815290600101906020018083116113db57829003601f168201915b5050505050610e9c565b61140a610ef5565b600301819055503373ffffffffffffffffffffffffffffffffffffffff167f897a395aeb2699d9730b6377870654a5c371d6bb6dc4486cfc5c80eeafd095b0868686868660405161145f9594939291906122e3565b60405180910390a25050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000090506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160601b60148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152836037826000f5925050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155a906121ed565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ff376596be5039d6b2fb36fead4c8a370eae426e790a869be8db074ab608cc24860405160405180910390a450919050565b600081511161160c5761160b61261e565b5b80611615610ef5565b600101908051906020019061162b9291906119e2565b506000611636610ef5565b600401905060028160000160006101000a81548160ff021916908360ff16021790555060338160000160016101000a81548160ff021916908360ff160217905550633b9aca008160000160026101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506207a12081600001600a6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506203d0908160000160126101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506117798160000160009054906101000a900460ff168260000160019054906101000a900460ff168360000160029054906101000a900467ffffffffffffffff1684600001600a9054906101000a900467ffffffffffffffff168560000160129054906101000a900467ffffffffffffffff16611186565b5050565b606060008290506000600290505b607f8267ffffffffffffffff1611156117c35760078267ffffffffffffffff16901c91506001816117bc91906123d9565b905061178b565b60008167ffffffffffffffff1667ffffffffffffffff8111156117e9576117e86126da565b5b6040519080825280601f01601f19166020018201604052801561181b5781602001600182028036833780820191505090505b5090508492508581600081518110611836576118356126ab565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000600190505b8267ffffffffffffffff168167ffffffffffffffff16101561190257607f841660801760f81b828267ffffffffffffffff16815181106118af576118ae6126ab565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060078467ffffffffffffffff16901c935080806118fa906125ed565b91505061186c565b50607f60f81b816001846119169190612459565b67ffffffffffffffff1681518110611931576119306126ab565b5b6020010181815160f81c60f81b169150907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080935050505092915050565b6060611987838360ff1661177d565b905092915050565b6040518060a00160405280600060ff168152602001600060ff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff1681525090565b8280546119ee9061258a565b90600052602060002090601f016020900481019282611a105760008555611a57565b82601f10611a2957805160ff1916838001178555611a57565b82800160010185558215611a57579182015b82811115611a56578251825591602001919060010190611a3b565b5b509050611a649190611a68565b5090565b5b80821115611a81576000816000905550600101611a69565b5090565b6000611a98611a938461235b565b612336565b905082815260208101848484011115611ab457611ab361270e565b5b611abf848285612548565b509392505050565b600081359050611ad681612983565b92915050565b600081359050611aeb8161299a565b92915050565b600081519050611b008161299a565b92915050565b600082601f830112611b1b57611b1a612709565b5b8135611b2b848260208601611a85565b91505092915050565b600081359050611b43816129b1565b92915050565b600081359050611b58816129c8565b92915050565b600060208284031215611b7457611b73612718565b5b6000611b8284828501611ac7565b91505092915050565b600060208284031215611ba157611ba0612718565b5b6000611baf84828501611adc565b91505092915050565b600060208284031215611bce57611bcd612718565b5b6000611bdc84828501611af1565b91505092915050565b600060208284031215611bfb57611bfa612718565b5b600082013567ffffffffffffffff811115611c1957611c18612713565b5b611c2584828501611b06565b91505092915050565b600060208284031215611c4457611c43612718565b5b6000611c5284828501611b34565b91505092915050565b60008060408385031215611c7257611c71612718565b5b6000611c8085828601611b34565b9250506020611c9185828601611b34565b9150509250929050565b60008060408385031215611cb257611cb1612718565b5b6000611cc085828601611b49565b9250506020611cd185828601611b49565b9150509250929050565b611ce48161248d565b82525050565b611cf38161249f565b82525050565b611d02816124ab565b82525050565b6000611d13826123a1565b611d1d81856123ac565b9350611d2d818560208601612557565b611d368161271d565b840191505092915050565b6000611d4c826123a1565b611d5681856123bd565b9350611d66818560208601612557565b80840191505092915050565b60008154611d7f8161258a565b611d8981866123ac565b94506001821660008114611da45760018114611db657611de9565b60ff1983168652602086019350611de9565b611dbf8561238c565b60005b83811015611de157815481890152600182019150602081019050611dc2565b808801955050505b50505092915050565b60008154611dff8161258a565b611e0981866123bd565b94506001821660008114611e245760018114611e3557611e68565b60ff19831686528186019350611e68565b611e3e8561238c565b60005b83811015611e6057815481890152600182019150602081019050611e41565b838801955050505b50505092915050565b611e7a81612512565b82525050565b6000611e8d6026836123c8565b9150611e988261272e565b604082019050919050565b6000611eb0603d836123c8565b9150611ebb8261277d565b604082019050919050565b6000611ed36025836123c8565b9150611ede826127cc565b604082019050919050565b6000611ef66018836123c8565b9150611f018261281b565b602082019050919050565b6000611f19602f836123c8565b9150611f2482612844565b604082019050919050565b6000611f3c603c836123c8565b9150611f4782612893565b604082019050919050565b6000611f5f6020836123c8565b9150611f6a826128e2565b602082019050919050565b6000611f82603d836123c8565b9150611f8d8261290b565b604082019050919050565b6000611fa56017836123c8565b9150611fb08261295a565b602082019050919050565b60a082016000820151611fd16000850182612050565b506020820151611fe46020850182612050565b506040820151611ff76040850182612032565b50606082015161200a6060850182612032565b50608082015161201d6080850182612032565b50505050565b61202c816124b5565b82525050565b61203b816124f1565b82525050565b61204a816124f1565b82525050565b61205981612505565b82525050565b61206881612505565b82525050565b600061207a8284611d41565b915081905092915050565b60006120918289611df2565b915061209d8288611d41565b91506120a98287611d41565b91506120b58286611d41565b91506120c18285611d41565b91506120cd8284611d41565b9150819050979650505050505050565b60006020820190506120f26000830184611cdb565b92915050565b600060208201905061210d6000830184611cea565b92915050565b60006020820190506121286000830184611cf9565b92915050565b600060208201905081810360008301526121488184611d08565b905092915050565b6000602082019050818103600083015261216a8184611d72565b905092915050565b60006020820190506121876000830184611e71565b92915050565b600060208201905081810360008301526121a681611e80565b9050919050565b600060208201905081810360008301526121c681611ea3565b9050919050565b600060208201905081810360008301526121e681611ec6565b9050919050565b6000602082019050818103600083015261220681611ee9565b9050919050565b6000602082019050818103600083015261222681611f0c565b9050919050565b6000602082019050818103600083015261224681611f2f565b9050919050565b6000602082019050818103600083015261226681611f52565b9050919050565b6000602082019050818103600083015261228681611f75565b9050919050565b600060208201905081810360008301526122a681611f98565b9050919050565b600060a0820190506122c26000830184611fbb565b92915050565b60006020820190506122dd6000830184612023565b92915050565b600060a0820190506122f8600083018861205f565b612305602083018761205f565b6123126040830186612041565b61231f6060830185612041565b61232c6080830184612041565b9695505050505050565b6000612340612351565b905061234c82826125bc565b919050565b6000604051905090565b600067ffffffffffffffff821115612376576123756126da565b5b61237f8261271d565b9050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006123e4826124f1565b91506123ef836124f1565b92508267ffffffffffffffff0382111561240c5761240b61264d565b5b828201905092915050565b6000612422826124f1565b915061242d836124f1565b92508167ffffffffffffffff048311821515161561244e5761244d61264d565b5b828202905092915050565b6000612464826124f1565b915061246f836124f1565b9250828210156124825761248161264d565b5b828203905092915050565b6000612498826124d1565b9050919050565b60008115159050919050565b6000819050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600067ffffffffffffffff82169050919050565b600060ff82169050919050565b600061251d82612524565b9050919050565b600061252f82612536565b9050919050565b6000612541826124d1565b9050919050565b82818337600083830152505050565b60005b8381101561257557808201518184015260208101905061255a565b83811115612584576000848401525b50505050565b600060028204905060018216806125a257607f821691505b602082108114156125b6576125b561267c565b5b50919050565b6125c58261271d565b810181811067ffffffffffffffff821117156125e4576125e36126da565b5b80604052505050565b60006125f8826124f1565b915067ffffffffffffffff8214156126135761261261264d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f5769746e6574526571756573744d616c6c6561626c65426173653a207769746e60008201527f657373696e6720636f6e73656e737573206f7574206f662072616e6765000000602082015250565b7f5769746e6574526571756573744d616c6c6561626c65426173653a206e6f207260008201527f6577617264000000000000000000000000000000000000000000000000000000602082015250565b7f436c6f6e61626c653a2043524541544532206661696c65640000000000000000600082015250565b7f5769746e6574526571756573744d616c6c6561626c65426173653a20616c726560008201527f61647920696e697469616c697a65640000000000000000000000000000000000602082015250565b7f5769746e6574526571756573744d616c6c6561626c65426173653a206e756d6260008201527f6572206f66207769746e6573736573206f7574206f662072616e676500000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5769746e6574526571756573744d616c6c6561626c65426173653a207769746e60008201527f657373696e6720636f6c6c61746572616c2062656c6f77203120574954000000602082015250565b7f436c6f6e61626c653a20435245415445206661696c6564000000000000000000600082015250565b61298c8161248d565b811461299757600080fd5b50565b6129a3816124ab565b81146129ae57600080fd5b50565b6129ba816124f1565b81146129c557600080fd5b50565b6129d181612505565b81146129dc57600080fd5b5056fea264697066735822122018d3be95fdcbd8bc6f0654dc2eb3dcdc04b923b60a7642bd2f454937f279d0f064736f6c63430008070033",
  "deployedBytecode": "0x6080604052600436106101095760003560e01c80639938fd0c11610095578063a60ee26811610064578063a60ee2681461038b578063daaa360c146103c8578063e35329f814610405578063e7d4a01614610435578063fb476cad1461047257610109565b80639938fd0c146102b85780639bc86fec146102e3578063a04daef014610320578063a3252f681461034b57610109565b806340b41daa116100dc57806340b41daa146101de578063439fab911461021b57806346d1d21a14610244578063699b328a1461026f5780637104ddb21461028d57610109565b806309ed46071461010e57806324cbbfc11461013957806336b651bb146101765780633b13e76e146101b3575b600080fd5b34801561011a57600080fd5b506101236104af565b6040516101309190611959565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190611679565b6104c7565b60405161016d9190611aae565b60405180910390f35b34801561018257600080fd5b5061019d600480360381019061019891906115f9565b61050d565b6040516101aa9190611a6a565b60405180910390f35b3480156101bf57600080fd5b506101c861055c565b6040516101d5919061198f565b60405180910390f35b3480156101ea57600080fd5b50610205600480360381019061020091906115f9565b610580565b6040516102129190611a6a565b60405180910390f35b34801561022757600080fd5b50610242600480360381019061023d9190611583565b61061c565b005b34801561025057600080fd5b50610259610701565b6040516102669190611974565b60405180910390f35b610277610725565b6040516102849190611a6a565b60405180910390f35b34801561029957600080fd5b506102a2610977565b6040516102af919061184f565b60405180910390f35b3480156102c457600080fd5b506102cd61099b565b6040516102da9190611a6a565b60405180910390f35b3480156102ef57600080fd5b5061030a600480360381019061030591906115f9565b6109a1565b60405161031791906118d8565b60405180910390f35b34801561032c57600080fd5b506103356109f3565b60405161034291906118d8565b60405180910390f35b34801561035757600080fd5b50610372600480360381019061036d91906115f9565b610a4a565b6040516103829493929190611893565b60405180910390f35b34801561039757600080fd5b506103b260048036038101906103ad91906115f9565b610aab565b6040516103bf9190611a6a565b60405180910390f35b3480156103d457600080fd5b506103ef60048036038101906103ea9190611529565b610ab7565b6040516103fc9190611959565b60405180910390f35b61041f600480360381019061041a91906115f9565b610ad2565b60405161042c9190611a6a565b60405180910390f35b34801561044157600080fd5b5061045c60048036038101906104579190611626565b610b2d565b6040516104699190611aae565b60405180910390f35b34801561047e57600080fd5b50610499600480360381019061049491906115f9565b610bb4565b6040516104a691906118f3565b60405180910390f35b60006104b9610cf5565b90506104c481610e7e565b90565b60006105048484336104d886610bb4565b6040516020016104e992919061186a565b60405160208183030381529060405280519060200120610b2d565b90509392505050565b600080821161051f5761051e611f90565b5b600060015490508083116105525761054d83600260008481526020019081526020016000206001015461101c565b610554565b805b915050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156105fd576105f882600154611054565b610615565b60026000838152602001908152602001600020600201545b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a2906119aa565b60405180910390fd5b808060200190518101906106bf91906114fc565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600043600154101561091957600454905080341015610779576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077090611a0a565b60405180910390fd5b600060056000815461078a90611f47565b91905081905590506000600260004381526020019081526020016000209050338160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508181600301819055506000600154905080826001018190555043600260008381526020019081526020016000206002018190555043600181905550803373ffffffffffffffffffffffffffffffffffffffff167faf291bb4e1767569c77502edb6ad1009e856f57c09f214886c6becc9836c20c08560008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166309bd5a606040518163ffffffff1660e01b815260040160206040518083038186803b1580156108c757600080fd5b505afa1580156108db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ff9190611556565b60405161090d929190611a85565b60405180910390a35050505b34811015610974573373ffffffffffffffffffffffffffffffffffffffff166108fc82346109479190611d6d565b9081150290604051600060405180830381858888f19350505050158015610972573d6000803e3d6000fd5b505b90565b7f000000000000000000000000000000000000000000000000000000000000000081565b60015481565b60008060026000848152602001908152602001600020905060008160030154141580156109eb5750600360009054906101000a900460ff1660ff16836109e79190611b4c565b4310155b915050919050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415905090565b6000806000806000600260008781526020019081526020016000209050806003015493508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1694508060010154925080600201549150509193509193565b60006004549050919050565b6000610ac2826110a3565b9050610acd81610e7e565b919050565b600080341115610b24573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015610b22573d6000803e3d6000fd5b505b60009050919050565b600080610b398561122f565b60ff610b459190611da1565b905060006001826002610b589190611bf5565b610b629190611d6d565b8486604051602001610b7592919061190e565b6040516020818303038152906040528051906020012060001c1690508160ff168663ffffffff1682610ba79190611d13565b901c925050509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610c2c57610c2982610580565b91505b6000600260008481526020019081526020016000206003015490506000811415610c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8290611a2a565b60405180910390fd5b600360009054906101000a900460ff1660ff1683610ca99190611b4c565b431015610ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce2906119ca565b60405180910390fd5b8240915050919050565b6000807f000000000000000000000000000000000000000000000000000000000000000090506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160601b60148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f0925050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de090611a4a565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ff376596be5039d6b2fb36fead4c8a370eae426e790a869be8db074ab608cc24860405160405180910390a45090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166309ed46076040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610ee957600080fd5b505af1158015610efd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2191906115cc565b90508073ffffffffffffffffffffffffffffffffffffffff1663f2fde38b336040518263ffffffff1660e01b8152600401610f5c919061184f565b600060405180830381600087803b158015610f7657600080fd5b505af1158015610f8a573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663439fab9182604051602001610fbb919061184f565b6040516020818303038152906040526040518263ffffffff1660e01b8152600401610fe69190611937565b600060405180830381600087803b15801561100057600080fd5b505af1158015611014573d6000803e3d6000fd5b505050505050565b600081831161104a5761104583600260008581526020019081526020016000206001015461101c565b61104c565b815b905092915050565b6000818310156110835761107e836002600085815260200190815260200160002060010154611054565b61109b565b60026000838152602001908152602001600020600201545b905092915050565b6000807f000000000000000000000000000000000000000000000000000000000000000090506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160601b60148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152836037826000f5925050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118f906119ea565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ff376596be5039d6b2fb36fead4c8a370eae426e790a869be8db074ab608cc24860405160405180910390a450919050565b600080604051806104000160405280600060ff168152602001600960ff168152602001600160ff168152602001600a60ff168152602001600d60ff168152602001601560ff168152602001600260ff168152602001601d60ff168152602001600b60ff168152602001600e60ff168152602001601060ff168152602001601260ff168152602001601660ff168152602001601960ff168152602001600360ff168152602001601e60ff168152602001600860ff168152602001600c60ff168152602001601460ff168152602001601c60ff168152602001600f60ff168152602001601160ff168152602001601860ff168152602001600760ff168152602001601360ff168152602001601b60ff168152602001601760ff168152602001600660ff168152602001601a60ff168152602001600560ff168152602001600460ff168152602001601f60ff16815250905060018363ffffffff16901c8317925060028363ffffffff16901c8317925060048363ffffffff16901c8317925060088363ffffffff16901c8317925060108363ffffffff16901c8317925080601b6307c4acdd8563ffffffff166113e29190611d13565b63ffffffff16901c63ffffffff166020811061140157611400611fee565b5b6020020151915050919050565b600061142161141c84611aee565b611ac9565b90508281526020810184848401111561143d5761143c612051565b5b611448848285611ed4565b509392505050565b60008151905061145f8161220c565b92915050565b60008135905061147481612223565b92915050565b60008151905061148981612223565b92915050565b600082601f8301126114a4576114a361204c565b5b81356114b484826020860161140e565b91505092915050565b6000815190506114cc8161223a565b92915050565b6000813590506114e181612251565b92915050565b6000813590506114f681612268565b92915050565b6000602082840312156115125761151161205b565b5b600061152084828501611450565b91505092915050565b60006020828403121561153f5761153e61205b565b5b600061154d84828501611465565b91505092915050565b60006020828403121561156c5761156b61205b565b5b600061157a8482850161147a565b91505092915050565b6000602082840312156115995761159861205b565b5b600082013567ffffffffffffffff8111156115b7576115b6612056565b5b6115c38482850161148f565b91505092915050565b6000602082840312156115e2576115e161205b565b5b60006115f0848285016114bd565b91505092915050565b60006020828403121561160f5761160e61205b565b5b600061161d848285016114d2565b91505092915050565b60008060006060848603121561163f5761163e61205b565b5b600061164d868287016114e7565b935050602061165e868287016114d2565b925050604061166f86828701611465565b9150509250925092565b6000806000606084860312156116925761169161205b565b5b60006116a0868287016114e7565b93505060206116b1868287016114d2565b92505060406116c2868287016114d2565b9150509250925092565b6116d581611dd5565b82525050565b6116e481611df9565b82525050565b6116f381611e05565b82525050565b600061170482611b1f565b61170e8185611b2a565b935061171e818560208601611ee3565b61172781612060565b840191505092915050565b61173b81611e68565b82525050565b61174a81611e7a565b82525050565b61175981611e8c565b82525050565b600061176c602583611b3b565b91506117778261207e565b604082019050919050565b600061178f602783611b3b565b915061179a826120cd565b604082019050919050565b60006117b2601883611b3b565b91506117bd8261211c565b602082019050919050565b60006117d5602483611b3b565b91506117e082612145565b604082019050919050565b60006117f8602483611b3b565b915061180382612194565b604082019050919050565b600061181b601783611b3b565b9150611826826121e3565b602082019050919050565b61183a81611e41565b82525050565b61184981611e4b565b82525050565b600060208201905061186460008301846116cc565b92915050565b600060408201905061187f60008301856116cc565b61188c60208301846116ea565b9392505050565b60006080820190506118a860008301876116cc565b6118b56020830186611831565b6118c26040830185611831565b6118cf6060830184611831565b95945050505050565b60006020820190506118ed60008301846116db565b92915050565b600060208201905061190860008301846116ea565b92915050565b600060408201905061192360008301856116ea565b6119306020830184611831565b9392505050565b6000602082019050818103600083015261195181846116f9565b905092915050565b600060208201905061196e6000830184611732565b92915050565b60006020820190506119896000830184611741565b92915050565b60006020820190506119a46000830184611750565b92915050565b600060208201905081810360008301526119c38161175f565b9050919050565b600060208201905081810360008301526119e381611782565b9050919050565b60006020820190508181036000830152611a03816117a5565b9050919050565b60006020820190508181036000830152611a23816117c8565b9050919050565b60006020820190508181036000830152611a43816117eb565b9050919050565b60006020820190508181036000830152611a638161180e565b9050919050565b6000602082019050611a7f6000830184611831565b92915050565b6000604082019050611a9a6000830185611831565b611aa760208301846116ea565b9392505050565b6000602082019050611ac36000830184611840565b92915050565b6000611ad3611ae4565b9050611adf8282611f16565b919050565b6000604051905090565b600067ffffffffffffffff821115611b0957611b0861201d565b5b611b1282612060565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000611b5782611e41565b9150611b6283611e41565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611b9757611b96611fbf565b5b828201905092915050565b6000808291508390505b6001851115611bec57808604811115611bc857611bc7611fbf565b5b6001851615611bd75780820291505b8081029050611be585612071565b9450611bac565b94509492505050565b6000611c0082611e41565b9150611c0b83611e5b565b9250611c387fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611c40565b905092915050565b600082611c505760019050611d0c565b81611c5e5760009050611d0c565b8160018114611c745760028114611c7e57611cad565b6001915050611d0c565b60ff841115611c9057611c8f611fbf565b5b8360020a915084821115611ca757611ca6611fbf565b5b50611d0c565b5060208310610133831016604e8410600b8410161715611ce25782820a905083811115611cdd57611cdc611fbf565b5b611d0c565b611cef8484846001611ba2565b92509050818404811115611d0657611d05611fbf565b5b81810290505b9392505050565b6000611d1e82611e41565b9150611d2983611e41565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611d6257611d61611fbf565b5b828202905092915050565b6000611d7882611e41565b9150611d8383611e41565b925082821015611d9657611d95611fbf565b5b828203905092915050565b6000611dac82611e5b565b9150611db783611e5b565b925082821015611dca57611dc9611fbf565b5b828203905092915050565b6000611de082611e21565b9050919050565b6000611df282611e21565b9050919050565b60008115159050919050565b6000819050919050565b6000611e1a82611dd5565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b6000611e7382611e9e565b9050919050565b6000611e8582611eb0565b9050919050565b6000611e9782611e9e565b9050919050565b6000611ea982611ec2565b9050919050565b6000611ebb82611ec2565b9050919050565b6000611ecd82611e21565b9050919050565b82818337600083830152505050565b60005b83811015611f01578082015181840152602081019050611ee6565b83811115611f10576000848401525b50505050565b611f1f82612060565b810181811067ffffffffffffffff82111715611f3e57611f3d61201d565b5b80604052505050565b6000611f5282611e41565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611f8557611f84611fbf565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f5769746e657452616e646f6d6e6573733a20616c726561647920696e6974696160008201527f6c697a6564000000000000000000000000000000000000000000000000000000602082015250565b7f5769746e657452616e646f6d6e6573734d6f636b3a2070656e64696e6720726160008201527f6e646f6d697a6500000000000000000000000000000000000000000000000000602082015250565b7f436c6f6e61626c653a2043524541544532206661696c65640000000000000000600082015250565b7f5769746e657452616e646f6d6e6573734d6f636b3a2072657761726420746f6f60008201527f206c6f7700000000000000000000000000000000000000000000000000000000602082015250565b7f5769746e657452616e646f6d6e6573734d6f636b3a206e6f742072616e646f6d60008201527f697a656400000000000000000000000000000000000000000000000000000000602082015250565b7f436c6f6e61626c653a20435245415445206661696c6564000000000000000000600082015250565b61221581611de7565b811461222057600080fd5b50565b61222c81611e05565b811461223757600080fd5b50565b61224381611e0f565b811461224e57600080fd5b50565b61225a81611e41565b811461226557600080fd5b50565b61227181611e4b565b811461227c57600080fd5b5056fea2646970667358221220c43f6e704bfd58fc565704a9130b6e8f4fd24f92ba9c5a37c952af2ebf55964064736f6c63430008070033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
