0x6080604052601860065560186007556001600855600160095560fa600a5560fa600b556017600c556000600d556000600e556009600a62000041919062000622565b6305f5e10062000052919062000673565b600f556009600a62000065919062000622565b630bebc20062000076919062000673565b6010556009600a62000089919062000622565b62e4e1c062000099919062000673565b6011556009600a620000ac919062000622565b6305f5e100620000bd919062000673565b6012556000601460156101000a81548160ff0219169083151502179055506000601460166101000a81548160ff021916908315150217905550600060155560006016553480156200010d57600080fd5b506000620001206200045760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001ce6200045760201b60201c565b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200021e919062000622565b633b9aca006200022f919062000673565b60016000620002436200045760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002976200045f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003ca6200045760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000429919062000622565b633b9aca006200043a919062000673565b604051620004499190620006cf565b60405180910390a3620006ec565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200051657808604811115620004ee57620004ed62000488565b5b6001851615620004fe5780820291505b80810290506200050e85620004b7565b9450620004ce565b94509492505050565b60008262000531576001905062000604565b8162000541576000905062000604565b81600181146200055a576002811462000565576200059b565b600191505062000604565b60ff8411156200057a576200057962000488565b5b8360020a91508482111562000594576200059362000488565b5b5062000604565b5060208310610133831016604e8410600b8410161715620005d55782820a905083811115620005cf57620005ce62000488565b5b62000604565b620005e48484846001620004c4565b92509050818404811115620005fe57620005fd62000488565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200062f826200060b565b91506200063c8362000615565b92506200066b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200051f565b905092915050565b600062000680826200060b565b91506200068d836200060b565b92508282026200069d816200060b565b91508282048414831517620006b757620006b662000488565b5b5092915050565b620006c9816200060b565b82525050565b6000602082019050620006e66000830184620006be565b92915050565b613fbe80620006fc6000396000f3fe6080604052600436106101bb5760003560e01c8063715018a6116100ec578063909bd5991161008a578063bf474bed11610064578063bf474bed146105b9578063c9567bf9146105e4578063dd62ed3e146105fb578063ec1f3f6314610638576101c2565b8063909bd5991461051457806395d89b4114610551578063a9059cbb1461057c576101c2565b80638a011c54116100c65780638a011c541461046c5780638cd4426d146104955780638da5cb5b146104be5780638f9a55c0146104e9576101c2565b8063715018a6146104015780637d1db4a51461041857806388d63aac14610443576101c2565b80632542f8d2116101595780633972950511610133578063397295051461036d57806351bc3c85146103965780636597e6fa146103ad57806370a08231146103c4576101c2565b80632542f8d2146102f05780632784645b14610319578063313ce56714610342576101c2565b8063109daa9911610195578063109daa991461025a57806318160ddd1461027157806320800a001461029c57806323b872dd146102b3576101c2565b806306fdde03146101c7578063095ea7b3146101f25780630faee56f1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610661565b6040516101e99190612c8c565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612d56565b61069e565b6040516102269190612db1565b60405180910390f35b34801561023b57600080fd5b506102446106bc565b6040516102519190612ddb565b60405180910390f35b34801561026657600080fd5b5061026f6106c2565b005b34801561027d57600080fd5b50610286610799565b6040516102939190612ddb565b60405180910390f35b3480156102a857600080fd5b506102b16107bd565b005b3480156102bf57600080fd5b506102da60048036038101906102d59190612df6565b6108b7565b6040516102e79190612db1565b60405180910390f35b3480156102fc57600080fd5b5061031760048036038101906103129190612e49565b610990565b005b34801561032557600080fd5b50610340600480360381019061033b9190612fbe565b610a75565b005b34801561034e57600080fd5b50610357610b99565b6040516103649190613023565b60405180910390f35b34801561037957600080fd5b50610394600480360381019061038f9190612fbe565b610ba2565b005b3480156103a257600080fd5b506103ab610cc6565b005b3480156103b957600080fd5b506103c2610d7b565b005b3480156103d057600080fd5b506103eb60048036038101906103e6919061303e565b610eab565b6040516103f89190612ddb565b60405180910390f35b34801561040d57600080fd5b50610416610ef4565b005b34801561042457600080fd5b5061042d611047565b60405161043a9190612ddb565b60405180910390f35b34801561044f57600080fd5b5061046a60048036038101906104659190612e49565b61104d565b005b34801561047857600080fd5b50610493600480360381019061048e9190612e49565b611132565b005b3480156104a157600080fd5b506104bc60048036038101906104b79190612d56565b611217565b005b3480156104ca57600080fd5b506104d36113c1565b6040516104e0919061307a565b60405180910390f35b3480156104f557600080fd5b506104fe6113ea565b60405161050b9190612ddb565b60405180910390f35b34801561052057600080fd5b5061053b6004803603810190610536919061303e565b6113f0565b6040516105489190612db1565b60405180910390f35b34801561055d57600080fd5b50610566611446565b6040516105739190612c8c565b60405180910390f35b34801561058857600080fd5b506105a3600480360381019061059e9190612d56565b611483565b6040516105b09190612db1565b60405180910390f35b3480156105c557600080fd5b506105ce6114a1565b6040516105db9190612ddb565b60405180910390f35b3480156105f057600080fd5b506105f96114a7565b005b34801561060757600080fd5b50610622600480360381019061061d9190613095565b6119dc565b60405161062f9190612ddb565b60405180910390f35b34801561064457600080fd5b5061065f600480360381019061065a9190612e49565b611a63565b005b60606040518060400160405280600881526020017f576520526f626f74000000000000000000000000000000000000000000000000815250905090565b60006106b26106ab611af2565b8484611afa565b6001905092915050565b60125481565b6106ca611af2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074e90613121565b60405180910390fd5b6000600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3600060405161078f9190613186565b60405180910390a1565b60006009600a6107a99190613303565b633b9aca006107b8919061334e565b905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107fe611af2565b73ffffffffffffffffffffffffffffffffffffffff161461081e57600080fd5b600047905060008111610866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085d906133dc565b60405180910390fd5b61086e611af2565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156108b3573d6000803e3d6000fd5b5050565b60006108c4848484611cc3565b610985846108d0611af2565b61098085604051806060016040528060288152602001613f6160289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610936611af2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126cb9092919063ffffffff16565b611afa565b600190509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109d1611af2565b73ffffffffffffffffffffffffffffffffffffffff1614610a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1e9061346e565b60405180910390fd5b6064811115610a6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6290613500565b60405180910390fd5b8060088190555050565b610a7d611af2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0190613121565b60405180910390fd5b60005b8151811015610b9557600060046000848481518110610b2f57610b2e613520565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610b0d565b5050565b60006009905090565b610baa611af2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2e90613121565b60405180910390fd5b60005b8151811015610cc257600160046000848481518110610c5c57610c5b613520565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610c3a565b5050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d07611af2565b73ffffffffffffffffffffffffffffffffffffffff1614610d2757600080fd5b6000610d3230610eab565b9050600081118015610d505750601460169054906101000a900460ff165b15610d5f57610d5e8161272f565b5b60004790506000811115610d7757610d76816129a8565b5b5050565b610d83611af2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0790613121565b60405180910390fd5b6009600a610e1e9190613303565b633b9aca00610e2d919061334e565b600f819055506009600a610e419190613303565b633b9aca00610e50919061334e565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610e859190613303565b633b9aca00610e94919061334e565b604051610ea19190612ddb565b60405180910390a1565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610efc611af2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8090613121565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661108e611af2565b73ffffffffffffffffffffffffffffffffffffffff16146110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db9061346e565b60405180910390fd5b6064811115611128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111f90613500565b60405180910390fd5b80600d8190555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611173611af2565b73ffffffffffffffffffffffffffffffffffffffff16146111c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c09061346e565b60405180910390fd5b606481111561120d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120490613500565b60405180910390fd5b8060098190555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611258611af2565b73ffffffffffffffffffffffffffffffffffffffff161461127857600080fd5b6000611319606461130b848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112bc919061307a565b602060405180830381865afa1580156112d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112fd9190613564565b612a1490919063ffffffff16565b612a8e90919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016113789291906135e6565b6020604051808303816000875af1158015611397573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113bb919061363b565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60606040518060400160405280600281526020017f5752000000000000000000000000000000000000000000000000000000000000815250905090565b6000611497611490611af2565b8484611cc3565b6001905092915050565b60115481565b6114af611af2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461153c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153390613121565b60405180910390fd5b60148054906101000a900460ff161561158a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611581906136b4565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061162830601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6116149190613303565b633b9aca00611623919061334e565b611afa565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b991906136e9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611742573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176691906136e9565b6040518363ffffffff1660e01b8152600401611783929190613716565b6020604051808303816000875af11580156117a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c691906136e9565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061184f30610eab565b60008061185a6113c1565b426040518863ffffffff1660e01b815260040161187c9695949392919061373f565b60606040518083038185885af115801561189a573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118bf91906137a0565b505050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016119619291906137f3565b6020604051808303816000875af1158015611980573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a4919061363b565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611aa4611af2565b73ffffffffffffffffffffffffffffffffffffffff1614611ac457600080fd5b6008548111158015611ad857506009548111155b611ae157600080fd5b806008819055508060098190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b609061388e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcf90613920565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611cb69190612ddb565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d29906139b2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9890613a44565b60405180910390fd5b60008111611de4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddb90613ad6565b60405180910390fd5b6000611dee6113c1565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611e5c5750611e2c6113c1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611eb65750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561240e57600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f5f5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611f6857600080fd5b6000600e5403611fb157611fae6064611fa0600a54600e5411611f8d57600654611f91565b6008545b85612a1490919063ffffffff16565b612a8e90919063ffffffff16565b90505b6000600e541115611fe757611fe46064611fd6600d5485612a1490919063ffffffff16565b612a8e90919063ffffffff16565b90505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120925750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120e85750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121e157600f54821115612132576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212990613b42565b60405180910390fd5b6010548261213f85610eab565b6121499190613b62565b111561218a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218190613be2565b60405180910390fd5b6121c660646121b8600a54600e54116121a5576006546121a9565b6008545b85612a1490919063ffffffff16565b612a8e90919063ffffffff16565b9050600e60008154809291906121db90613c02565b91905055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561226a57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156122ae576122ab606461229d600b54600e541161228a5760075461228e565b6009545b85612a1490919063ffffffff16565b612a8e90919063ffffffff16565b90505b60006122b930610eab565b9050601460159054906101000a900460ff161580156123255750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561233d5750601460169054906101000a900460ff165b801561234a575060115481115b80156123595750600c54600e54115b1561240c576016544311156123715760006015819055505b6003601554106123b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ad90613c96565b60405180910390fd5b6123d36123ce846123c984601254612ad8565b612ad8565b61272f565b600047905060008111156123eb576123ea476129a8565b5b601560008154809291906123fe90613c02565b919050555043601681905550505b505b60008111156125125761246981600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612af190919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125099190612ddb565b60405180910390a35b61256482600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b4f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061260b6125bd8284612b4f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612af190919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6126b08486612b4f90919063ffffffff16565b6040516126bd9190612ddb565b60405180910390a350505050565b6000838311158290612713576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270a9190612c8c565b60405180910390fd5b50600083856127229190613cb6565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561276757612766612e7b565b5b6040519080825280602002602001820160405280156127955781602001602082028036833780820191505090505b50905030816000815181106127ad576127ac613520565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612854573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061287891906136e9565b8160018151811061288c5761288b613520565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506128f330601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611afa565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612957959493929190613da8565b600060405180830381600087803b15801561297157600080fd5b505af1158015612985573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612a10573d6000803e3d6000fd5b5050565b6000808303612a265760009050612a88565b60008284612a34919061334e565b9050828482612a439190613e31565b14612a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7a90613ed4565b60405180910390fd5b809150505b92915050565b6000612ad083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b99565b905092915050565b6000818311612ae75782612ae9565b815b905092915050565b6000808284612b009190613b62565b905083811015612b45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b3c90613f40565b60405180910390fd5b8091505092915050565b6000612b9183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506126cb565b905092915050565b60008083118290612be0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd79190612c8c565b60405180910390fd5b5060008385612bef9190613e31565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c36578082015181840152602081019050612c1b565b60008484015250505050565b6000601f19601f8301169050919050565b6000612c5e82612bfc565b612c688185612c07565b9350612c78818560208601612c18565b612c8181612c42565b840191505092915050565b60006020820190508181036000830152612ca68184612c53565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ced82612cc2565b9050919050565b612cfd81612ce2565b8114612d0857600080fd5b50565b600081359050612d1a81612cf4565b92915050565b6000819050919050565b612d3381612d20565b8114612d3e57600080fd5b50565b600081359050612d5081612d2a565b92915050565b60008060408385031215612d6d57612d6c612cb8565b5b6000612d7b85828601612d0b565b9250506020612d8c85828601612d41565b9150509250929050565b60008115159050919050565b612dab81612d96565b82525050565b6000602082019050612dc66000830184612da2565b92915050565b612dd581612d20565b82525050565b6000602082019050612df06000830184612dcc565b92915050565b600080600060608486031215612e0f57612e0e612cb8565b5b6000612e1d86828701612d0b565b9350506020612e2e86828701612d0b565b9250506040612e3f86828701612d41565b9150509250925092565b600060208284031215612e5f57612e5e612cb8565b5b6000612e6d84828501612d41565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612eb382612c42565b810181811067ffffffffffffffff82111715612ed257612ed1612e7b565b5b80604052505050565b6000612ee5612cae565b9050612ef18282612eaa565b919050565b600067ffffffffffffffff821115612f1157612f10612e7b565b5b602082029050602081019050919050565b600080fd5b6000612f3a612f3584612ef6565b612edb565b90508083825260208201905060208402830185811115612f5d57612f5c612f22565b5b835b81811015612f865780612f728882612d0b565b845260208401935050602081019050612f5f565b5050509392505050565b600082601f830112612fa557612fa4612e76565b5b8135612fb5848260208601612f27565b91505092915050565b600060208284031215612fd457612fd3612cb8565b5b600082013567ffffffffffffffff811115612ff257612ff1612cbd565b5b612ffe84828501612f90565b91505092915050565b600060ff82169050919050565b61301d81613007565b82525050565b60006020820190506130386000830184613014565b92915050565b60006020828403121561305457613053612cb8565b5b600061306284828501612d0b565b91505092915050565b61307481612ce2565b82525050565b600060208201905061308f600083018461306b565b92915050565b600080604083850312156130ac576130ab612cb8565b5b60006130ba85828601612d0b565b92505060206130cb85828601612d0b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061310b602083612c07565b9150613116826130d5565b602082019050919050565b6000602082019050818103600083015261313a816130fe565b9050919050565b6000819050919050565b6000819050919050565b600061317061316b61316684613141565b61314b565b612d20565b9050919050565b61318081613155565b82525050565b600060208201905061319b6000830184613177565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561322757808604811115613203576132026131a1565b5b60018516156132125780820291505b8081029050613220856131d0565b94506131e7565b94509492505050565b60008261324057600190506132fc565b8161324e57600090506132fc565b8160018114613264576002811461326e5761329d565b60019150506132fc565b60ff8411156132805761327f6131a1565b5b8360020a915084821115613297576132966131a1565b5b506132fc565b5060208310610133831016604e8410600b84101617156132d25782820a9050838111156132cd576132cc6131a1565b5b6132fc565b6132df84848460016131dd565b925090508184048111156132f6576132f56131a1565b5b81810290505b9392505050565b600061330e82612d20565b915061331983613007565b92506133467fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613230565b905092915050565b600061335982612d20565b915061336483612d20565b925082820261337281612d20565b91508282048414831517613389576133886131a1565b5b5092915050565b7f4e6f204554482062616c616e636520746f207265736375650000000000000000600082015250565b60006133c6601883612c07565b91506133d182613390565b602082019050919050565b600060208201905081810360008301526133f5816133b9565b9050919050565b7f4f6e6c7920746865207461782077616c6c65742063616e20736574207468652060008201527f7461782072617465000000000000000000000000000000000000000000000000602082015250565b6000613458602883612c07565b9150613463826133fc565b604082019050919050565b600060208201905081810360008301526134878161344b565b9050919050565b7f5461782072617465206d757374206265206265747765656e203020616e64203160008201527f3030000000000000000000000000000000000000000000000000000000000000602082015250565b60006134ea602283612c07565b91506134f58261348e565b604082019050919050565b60006020820190508181036000830152613519816134dd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061355e81612d2a565b92915050565b60006020828403121561357a57613579612cb8565b5b60006135888482850161354f565b91505092915050565b60006135ac6135a76135a284612cc2565b61314b565b612cc2565b9050919050565b60006135be82613591565b9050919050565b60006135d0826135b3565b9050919050565b6135e0816135c5565b82525050565b60006040820190506135fb60008301856135d7565b6136086020830184612dcc565b9392505050565b61361881612d96565b811461362357600080fd5b50565b6000815190506136358161360f565b92915050565b60006020828403121561365157613650612cb8565b5b600061365f84828501613626565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061369e601783612c07565b91506136a982613668565b602082019050919050565b600060208201905081810360008301526136cd81613691565b9050919050565b6000815190506136e381612cf4565b92915050565b6000602082840312156136ff576136fe612cb8565b5b600061370d848285016136d4565b91505092915050565b600060408201905061372b600083018561306b565b613738602083018461306b565b9392505050565b600060c082019050613754600083018961306b565b6137616020830188612dcc565b61376e6040830187613177565b61377b6060830186613177565b613788608083018561306b565b61379560a0830184612dcc565b979650505050505050565b6000806000606084860312156137b9576137b8612cb8565b5b60006137c78682870161354f565b93505060206137d88682870161354f565b92505060406137e98682870161354f565b9150509250925092565b6000604082019050613808600083018561306b565b6138156020830184612dcc565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613878602483612c07565b91506138838261381c565b604082019050919050565b600060208201905081810360008301526138a78161386b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061390a602283612c07565b9150613915826138ae565b604082019050919050565b60006020820190508181036000830152613939816138fd565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061399c602583612c07565b91506139a782613940565b604082019050919050565b600060208201905081810360008301526139cb8161398f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a2e602383612c07565b9150613a39826139d2565b604082019050919050565b60006020820190508181036000830152613a5d81613a21565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613ac0602983612c07565b9150613acb82613a64565b604082019050919050565b60006020820190508181036000830152613aef81613ab3565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000613b2c601983612c07565b9150613b3782613af6565b602082019050919050565b60006020820190508181036000830152613b5b81613b1f565b9050919050565b6000613b6d82612d20565b9150613b7883612d20565b9250828201905080821115613b9057613b8f6131a1565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613bcc601a83612c07565b9150613bd782613b96565b602082019050919050565b60006020820190508181036000830152613bfb81613bbf565b9050919050565b6000613c0d82612d20565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613c3f57613c3e6131a1565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b21000000000000000000600082015250565b6000613c80601783612c07565b9150613c8b82613c4a565b602082019050919050565b60006020820190508181036000830152613caf81613c73565b9050919050565b6000613cc182612d20565b9150613ccc83612d20565b9250828203905081811115613ce457613ce36131a1565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613d1f81612ce2565b82525050565b6000613d318383613d16565b60208301905092915050565b6000602082019050919050565b6000613d5582613cea565b613d5f8185613cf5565b9350613d6a83613d06565b8060005b83811015613d9b578151613d828882613d25565b9750613d8d83613d3d565b925050600181019050613d6e565b5085935050505092915050565b600060a082019050613dbd6000830188612dcc565b613dca6020830187613177565b8181036040830152613ddc8186613d4a565b9050613deb606083018561306b565b613df86080830184612dcc565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e3c82612d20565b9150613e4783612d20565b925082613e5757613e56613e02565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ebe602183612c07565b9150613ec982613e62565b604082019050919050565b60006020820190508181036000830152613eed81613eb1565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613f2a601b83612c07565b9150613f3582613ef4565b602082019050919050565b60006020820190508181036000830152613f5981613f1d565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220126ff26dfdc7d3ff012ad7ce10f4aa79b6ed1ed0efe445d1a28a0f792e3eabc964736f6c63430008170033