60e060405234801562000010575f80fd5b5060405162004afb38038062004afb8339818101604052810190620000369190620002f8565b80808080806200004c816200017360201b60201c565b6200008e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000085906200039b565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060805173ffffffffffffffffffffffffffffffffffffffff16638d3638f46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200010e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001349190620003f9565b63ffffffff1660a08163ffffffff168152505062000158336200019560201b60201c565b50505050508160ff1660c08160ff1681525050505062000429565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b5f60655f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160655f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80fd5b5f60ff82169050919050565b62000273816200025c565b81146200027e575f80fd5b50565b5f81519050620002918162000268565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620002c28262000297565b9050919050565b620002d481620002b6565b8114620002df575f80fd5b50565b5f81519050620002f281620002c9565b92915050565b5f806040838503121562000311576200031062000258565b5b5f620003208582860162000281565b92505060206200033385828601620002e2565b9150509250929050565b5f82825260208201905092915050565b7f4d61696c626f78436c69656e743a20696e76616c6964206d61696c626f7800005f82015250565b5f62000383601e836200033d565b915062000390826200034d565b602082019050919050565b5f6020820190508181035f830152620003b48162000375565b9050919050565b5f63ffffffff82169050919050565b620003d581620003bb565b8114620003e0575f80fd5b50565b5f81519050620003f381620003ca565b92915050565b5f6020828403121562000411576200041062000258565b5b5f6200042084828501620003e3565b91505092915050565b60805160a05160c051614692620004695f395f6109f101525f610d1201525f8181610b4c01528181610f18015281816120ec01526124c801526146925ff3fe6080604052600436106101f8575f3560e01c80637f5a7c7b1161010c578063b49c53a71161009f578063e9198bf91161006e578063e9198bf914610736578063eedfca5f1461075e578063efae508a14610786578063f2ed8c53146107ae578063f2fde38b146107ea576101f8565b8063b49c53a71461067e578063d5438eae146106a6578063dd62ed3e146106d0578063de523cf31461070c576101f8565b806395d89b41116100db57806395d89b41146105b4578063a457c2d7146105de578063a9059cbb1461061a578063b1bd643614610656576101f8565b80637f5a7c7b1461050657806381b4e8b4146105305780638d3638f4146105605780638da5cb5b1461058a576101f8565b8063395093511161018f57806356d5d4751161015e57806356d5d4751461043457806370a0823114610450578063715018a61461048c57806371a15b38146104a2578063775313a1146104ca576101f8565b8063395093511461037e5780633dfd3873146103ba578063440df4f4146103e257806349d462ef1461040c576101f8565b806323b872dd116101cb57806323b872dd146102b45780632ead72f6146102f0578063313ce5671461032c578063379607f514610356576101f8565b806306fdde03146101fc578063095ea7b3146102265780630e72cc061461026257806318160ddd1461028a575b5f80fd5b348015610207575f80fd5b50610210610812565b60405161021d9190612a40565b60405180910390f35b348015610231575f80fd5b5061024c60048036038101906102479190612afe565b6108a2565b6040516102599190612b56565b60405180910390f35b34801561026d575f80fd5b5061028860048036038101906102839190612b6f565b6108c4565b005b348015610295575f80fd5b5061029e61098f565b6040516102ab9190612ba9565b60405180910390f35b3480156102bf575f80fd5b506102da60048036038101906102d59190612bc2565b610998565b6040516102e79190612b56565b60405180910390f35b3480156102fb575f80fd5b5061031660048036038101906103119190612c4b565b6109c6565b6040516103239190612c8e565b60405180910390f35b348015610337575f80fd5b506103406109ee565b60405161034d9190612cc2565b60405180910390f35b348015610361575f80fd5b5061037c60048036038101906103779190612cdb565b610a15565b005b348015610389575f80fd5b506103a4600480360381019061039f9190612afe565b610a22565b6040516103b19190612b56565b60405180910390f35b3480156103c5575f80fd5b506103e060048036038101906103db9190612b6f565b610a58565b005b3480156103ed575f80fd5b506103f6610b23565b6040516104039190612dbd565b60405180910390f35b348015610417575f80fd5b50610432600480360381019061042d9190612ddd565b610b34565b005b61044e60048036038101906104499190612ea6565b610b4a565b005b34801561045b575f80fd5b5061047660048036038101906104719190612b6f565b610c39565b6040516104839190612ba9565b60405180910390f35b348015610497575f80fd5b506104a0610c4a565b005b3480156104ad575f80fd5b506104c860048036038101906104c39190612f6c565b610c5d565b005b3480156104d5575f80fd5b506104f060048036038101906104eb9190612c4b565b610cc0565b6040516104fd9190612ba9565b60405180910390f35b348015610511575f80fd5b5061051a610cd5565b6040516105279190613012565b60405180910390f35b61054a6004803603810190610545919061302b565b610cfa565b6040516105579190612c8e565b60405180910390f35b34801561056b575f80fd5b50610574610d10565b604051610581919061308a565b60405180910390f35b348015610595575f80fd5b5061059e610d34565b6040516105ab91906130b2565b60405180910390f35b3480156105bf575f80fd5b506105c8610d5c565b6040516105d59190612a40565b60405180910390f35b3480156105e9575f80fd5b5061060460048036038101906105ff9190612afe565b610dec565b6040516106119190612b56565b60405180910390f35b348015610625575f80fd5b50610640600480360381019061063b9190612afe565b610e61565b60405161064d9190612b56565b60405180910390f35b348015610661575f80fd5b5061067c60048036038101906106779190613120565b610e83565b005b348015610689575f80fd5b506106a4600480360381019061069f919061316b565b610f00565b005b3480156106b1575f80fd5b506106ba610f16565b6040516106c791906131c9565b60405180910390f35b3480156106db575f80fd5b506106f660048036038101906106f191906131e2565b610f3a565b6040516107039190612ba9565b60405180910390f35b348015610717575f80fd5b50610720610fbc565b60405161072d9190613240565b60405180910390f35b348015610741575f80fd5b5061075c600480360381019061075791906132ae565b610fe1565b005b348015610769575f80fd5b50610784600480360381019061077f9190613454565b6110a8565b005b348015610791575f80fd5b506107ac60048036038101906107a79190612c4b565b6111ef565b005b3480156107b9575f80fd5b506107d460048036038101906107cf9190612c4b565b611203565b6040516107e19190612ba9565b60405180910390f35b3480156107f5575f80fd5b50610810600480360381019061080b9190612b6f565b611223565b005b60606036805461082190613509565b80601f016020809104026020016040519081016040528092919081815260200182805461084d90613509565b80156108985780601f1061086f57610100808354040283529160200191610898565b820191905f5260205f20905b81548152906001019060200180831161087b57829003601f168201915b5050505050905090565b5f806108ac6112a5565b90506108b98185856112ac565b600191505092915050565b806108ce8161146f565b8061090457505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093a906135a9565b60405180910390fd5b61094b611491565b8160985f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b5f603554905090565b5f806109a26112a5565b90506109af85828561150f565b6109ba85858561159a565b60019150509392505050565b5f806109e28363ffffffff1660c961180990919063ffffffff16565b91505080915050919050565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b610a1f338261182d565b50565b5f80610a2c6112a5565b9050610a4d818585610a3e8589610f3a565b610a4891906135f4565b6112ac565b600191505092915050565b80610a628161146f565b80610a9857505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ace906135a9565b60405180910390fd5b610adf611491565b8160975f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6060610b2f60c961197c565b905090565b610b3c611491565b610b468282611a3d565b5050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcf90613697565b60405180910390fd5b5f610be285611a63565b9050838114610c26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1d90613725565b60405180910390fd5b610c3285858585611ada565b5050505050565b5f610c4382611b61565b9050919050565b610c52611491565b610c5b5f611ba7565b565b610c65611491565b5f8282905090505f5b81811015610cba57610ca6848483818110610c8c57610c8b613743565b5b9050602002016020810190610ca19190612c4b565b611c6a565b600181610cb391906135f4565b9050610c6e565b50505050565b60fc602052805f5260405f205f915090505481565b60975f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610d0784848434611cd2565b90509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f60655f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060378054610d6b90613509565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9790613509565b8015610de25780601f10610db957610100808354040283529160200191610de2565b820191905f5260205f20905b815481529060010190602001808311610dc557829003601f168201915b5050505050905090565b5f80610df66112a5565b90505f610e038286610f3a565b905083811015610e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3f906137e0565b60405180910390fd5b610e5582868684036112ac565b60019250505092915050565b5f80610e6b6112a5565b9050610e7881858561159a565b600191505092915050565b610e8b611491565b5f5b82829050811015610efb57610ee7838383818110610eae57610ead613743565b5b9050604002015f016020810190610ec59190612c4b565b848484818110610ed857610ed7613743565b5b90506040020160200135611a3d565b600181610ef491906135f4565b9050610e8d565b505050565b610f08611491565b610f128282611d3e565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f60345f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60985f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610fe9611491565b818190508484905014611031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102890613848565b60405180910390fd5b5f8484905090505f5b818110156110a05761108c86868381811061105857611057613743565b5b905060200201602081019061106d9190612c4b565b8585848181106110805761107f613743565b5b90506020020135611d3e565b60018161109991906135f4565b905061103a565b505050505050565b5f8060019054906101000a900460ff161590508080156110d7575060015f8054906101000a900460ff1660ff16105b8061110357506110e630611d5e565b158015611102575060015f8054906101000a900460ff1660ff16145b5b611142576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611139906138d6565b60405180910390fd5b60015f806101000a81548160ff021916908360ff160217905550801561117d5760015f60016101000a81548160ff0219169083151502179055505b6111878383611d80565b611191338561182d565b80156111e9575f8060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516111e0919061392d565b60405180910390a15b50505050565b6111f7611491565b61120081611c6a565b50565b5f61121c8260405180602001604052805f815250611ddc565b9050919050565b61122b611491565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611299576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611290906139b6565b60405180910390fd5b6112a281611ba7565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361131a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131190613a44565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611388576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137f90613ad2565b60405180910390fd5b8060345f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114629190612ba9565b60405180910390a3505050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6114996112a5565b73ffffffffffffffffffffffffffffffffffffffff166114b7610d34565b73ffffffffffffffffffffffffffffffffffffffff161461150d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150490613b3a565b60405180910390fd5b565b5f61151a8484610f3a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146115945781811015611586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157d90613ba2565b60405180910390fd5b61159384848484036112ac565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611608576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ff90613c30565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611676576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166d90613cbe565b60405180910390fd5b611681838383611dfd565b5f60335f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fc90613d4c565b60405180910390fd5b81810360335f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160335f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117f09190612ba9565b60405180910390a3611803848484611e02565b50505050565b5f80611822835f1b855f01611e0790919063ffffffff16565b915091509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361189b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189290613db4565b60405180910390fd5b6118a65f8383611dfd565b8060355f8282546118b791906135f4565b925050819055508060335f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119659190612ba9565b60405180910390a36119785f8383611e02565b5050565b60605f61198883611e50565b9050805167ffffffffffffffff8111156119a5576119a4613330565b5b6040519080825280602002602001820160405280156119d35781602001602082028036833780820191505090505b5091505f5b8151811015611a36578181815181106119f4576119f3613743565b5b6020026020010151838281518110611a0f57611a0e613743565b5b602002602001019063ffffffff16908163ffffffff168152505080806001019150506119d8565b5050919050565b8060fc5f8463ffffffff1663ffffffff1681526020019081526020015f20819055505050565b5f805f611a808463ffffffff1660c961180990919063ffffffff16565b9150915081611a8e85611f01565b90611acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac69190612a40565b60405180910390fd5b508092505050919050565b5f611ae58383611f38565b90505f611af28484611f5f565b9050365f611b008686611f89565b91509150611b18611b1085611fa9565b848484611fb4565b838863ffffffff167fba20947a325f450d232530e5f5fce293e7963499d5309a07cee84a269f2f15a685604051611b4f9190612ba9565b60405180910390a35050505050505050565b5f60335f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60655f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160655f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611c848163ffffffff1660c9611fc490919063ffffffff16565b611c8d82611f01565b90611cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc59190612a40565b60405180910390fd5b5050565b5f80611cdd84611fe4565b9050611cf48684611cef888886612006565b612035565b9150848663ffffffff167fd229aacb94204188fe8042965fa6b269c62dc5818b21238779ab64bdd17efeec86604051611d2d9190612ba9565b60405180910390a350949350505050565b611d5a8263ffffffff168260c96120589092919063ffffffff16565b5050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b5f60019054906101000a900460ff16611dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc590613e42565b60405180910390fd5b611dd88282612077565b5050565b5f80611de784611a63565b9050611df48482856120e9565b91505092915050565b505050565b505050565b5f805f846002015f8581526020019081526020015f205490505f801b8103611e4057611e3385856121bc565b5f801b9250925050611e49565b60018192509250505b9250929050565b60605f611e5e835f016121da565b90508067ffffffffffffffff811115611e7a57611e79613330565b5b604051908082528060200260200182016040528015611ea85781602001602082028036833780820191505090505b5091505f5b81811015611efa57611ecc81855f015f016121ed90919063ffffffff16565b5f1c838281518110611ee157611ee0613743565b5b6020026020010181815250508080600101915050611ead565b5050919050565b6060611f128263ffffffff16612202565b604051602001611f229190613ec0565b6040516020818303038152906040529050919050565b5f82825f90602092611f4c93929190613eed565b90611f579190613f3d565b905092915050565b5f8282602090604092611f7493929190613eed565b90611f7f9190613f3d565b5f1c905092915050565b365f83836040908092611f9e93929190613eed565b915091509250929050565b5f815f1c9050919050565b611fbe848461182d565b50505050565b5f611fdc825f1b845f016122cc90919063ffffffff16565b905092915050565b6060611ff03383612300565b60405180602001604052805f8152509050919050565b606083838360405160200161201d9392919061401f565b60405160208183030381529060405290509392505050565b5f8061204085611a63565b905061204e858286866124c5565b9150509392505050565b612071825f1b82855f0161259c9092919063ffffffff16565b50505050565b5f60019054906101000a900460ff166120c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bc90613e42565b60405180910390fd5b81603690816120d491906141df565b5080603790816120e491906141df565b505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166381d2ea95858585612132896125d3565b60975f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518663ffffffff1660e01b81526004016121749594939291906142f6565b602060405180830381865afa15801561218f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121b39190614369565b90509392505050565b5f6121d282845f0161260290919063ffffffff16565b905092915050565b5f6121e6825f01612617565b9050919050565b5f6121fa835f018361262a565b905092915050565b60605f600161221084612651565b0190505f8167ffffffffffffffff81111561222e5761222d613330565b5b6040519080825280601f01601f1916602001820160405280156122605781602001600182028036833780820191505090505b5090505f82602001820190505b6001156122c1578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816122b6576122b5614394565b5b0494505f850361226d575b819350505050919050565b5f826002015f8381526020019081526020015f205f90556122f882845f016127a290919063ffffffff16565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361236e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236590614431565b60405180910390fd5b612379825f83611dfd565b5f60335f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156123fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f4906144bf565b60405180910390fd5b81810360335f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160355f82825403925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124ad9190612ba9565b60405180910390a36124c0835f84611e02565b505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166310b83dc08487878661250f8b6125d3565b60975f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518763ffffffff1660e01b81526004016125519594939291906142f6565b60206040518083038185885af115801561256d573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061259291906144f1565b9050949350505050565b5f81846002015f8581526020019081526020015f20819055506125ca83855f016127b790919063ffffffff16565b90509392505050565b60606125fb60fc5f8463ffffffff1663ffffffff1681526020019081526020015f20546127cc565b9050919050565b5f61260f835f01836127ef565b905092915050565b5f612623825f0161280f565b9050919050565b5f825f0182815481106126405761263f613743565b5b905f5260205f200154905092915050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106126ad577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816126a3576126a2614394565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106126ea576d04ee2d6d415b85acef810000000083816126e0576126df614394565b5b0492506020810190505b662386f26fc10000831061271957662386f26fc10000838161270f5761270e614394565b5b0492506010810190505b6305f5e1008310612742576305f5e100838161273857612737614394565b5b0492506008810190505b612710831061276757612710838161275d5761275c614394565b5b0492506004810190505b6064831061278a57606483816127805761277f614394565b5b0492506002810190505b600a8310612799576001810190505b80915050919050565b5f6127af835f018361281e565b905092915050565b5f6127c4835f018361291a565b905092915050565b60606127e85f833360405180602001604052805f815250612981565b9050919050565b5f80836001015f8481526020019081526020015f20541415905092915050565b5f815f01805490509050919050565b5f80836001015f8481526020019081526020015f205490505f811461290f575f60018261284b919061451c565b90505f6001865f0180549050612861919061451c565b90508082146128c7575f865f0182815481106128805761287f613743565b5b905f5260205f200154905080875f0184815481106128a1576128a0613743565b5b905f5260205f20018190555083876001015f8381526020019081526020015f2081905550505b855f018054806128da576128d961454f565b5b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050612914565b5f9150505b92915050565b5f61292583836127ef565b61297757825f0182908060018154018082558091505060019003905f5260205f20015f9091909190915055825f0180549050836001015f8481526020019081526020015f20819055506001905061297b565b5f90505b92915050565b606060018585858560405160200161299d959493929190614602565b6040516020818303038152906040529050949350505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156129ed5780820151818401526020810190506129d2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612a12826129b6565b612a1c81856129c0565b9350612a2c8185602086016129d0565b612a35816129f8565b840191505092915050565b5f6020820190508181035f830152612a588184612a08565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612a9a82612a71565b9050919050565b612aaa81612a90565b8114612ab4575f80fd5b50565b5f81359050612ac581612aa1565b92915050565b5f819050919050565b612add81612acb565b8114612ae7575f80fd5b50565b5f81359050612af881612ad4565b92915050565b5f8060408385031215612b1457612b13612a69565b5b5f612b2185828601612ab7565b9250506020612b3285828601612aea565b9150509250929050565b5f8115159050919050565b612b5081612b3c565b82525050565b5f602082019050612b695f830184612b47565b92915050565b5f60208284031215612b8457612b83612a69565b5b5f612b9184828501612ab7565b91505092915050565b612ba381612acb565b82525050565b5f602082019050612bbc5f830184612b9a565b92915050565b5f805f60608486031215612bd957612bd8612a69565b5b5f612be686828701612ab7565b9350506020612bf786828701612ab7565b9250506040612c0886828701612aea565b9150509250925092565b5f63ffffffff82169050919050565b612c2a81612c12565b8114612c34575f80fd5b50565b5f81359050612c4581612c21565b92915050565b5f60208284031215612c6057612c5f612a69565b5b5f612c6d84828501612c37565b91505092915050565b5f819050919050565b612c8881612c76565b82525050565b5f602082019050612ca15f830184612c7f565b92915050565b5f60ff82169050919050565b612cbc81612ca7565b82525050565b5f602082019050612cd55f830184612cb3565b92915050565b5f60208284031215612cf057612cef612a69565b5b5f612cfd84828501612aea565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612d3881612c12565b82525050565b5f612d498383612d2f565b60208301905092915050565b5f602082019050919050565b5f612d6b82612d06565b612d758185612d10565b9350612d8083612d20565b805f5b83811015612db0578151612d978882612d3e565b9750612da283612d55565b925050600181019050612d83565b5085935050505092915050565b5f6020820190508181035f830152612dd58184612d61565b905092915050565b5f8060408385031215612df357612df2612a69565b5b5f612e0085828601612c37565b9250506020612e1185828601612aea565b9150509250929050565b612e2481612c76565b8114612e2e575f80fd5b50565b5f81359050612e3f81612e1b565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112612e6657612e65612e45565b5b8235905067ffffffffffffffff811115612e8357612e82612e49565b5b602083019150836001820283011115612e9f57612e9e612e4d565b5b9250929050565b5f805f8060608587031215612ebe57612ebd612a69565b5b5f612ecb87828801612c37565b9450506020612edc87828801612e31565b935050604085013567ffffffffffffffff811115612efd57612efc612a6d565b5b612f0987828801612e51565b925092505092959194509250565b5f8083601f840112612f2c57612f2b612e45565b5b8235905067ffffffffffffffff811115612f4957612f48612e49565b5b602083019150836020820283011115612f6557612f64612e4d565b5b9250929050565b5f8060208385031215612f8257612f81612a69565b5b5f83013567ffffffffffffffff811115612f9f57612f9e612a6d565b5b612fab85828601612f17565b92509250509250929050565b5f819050919050565b5f612fda612fd5612fd084612a71565b612fb7565b612a71565b9050919050565b5f612feb82612fc0565b9050919050565b5f612ffc82612fe1565b9050919050565b61300c81612ff2565b82525050565b5f6020820190506130255f830184613003565b92915050565b5f805f6060848603121561304257613041612a69565b5b5f61304f86828701612c37565b935050602061306086828701612e31565b925050604061307186828701612aea565b9150509250925092565b61308481612c12565b82525050565b5f60208201905061309d5f83018461307b565b92915050565b6130ac81612a90565b82525050565b5f6020820190506130c55f8301846130a3565b92915050565b5f8083601f8401126130e0576130df612e45565b5b8235905067ffffffffffffffff8111156130fd576130fc612e49565b5b60208301915083604082028301111561311957613118612e4d565b5b9250929050565b5f806020838503121561313657613135612a69565b5b5f83013567ffffffffffffffff81111561315357613152612a6d565b5b61315f858286016130cb565b92509250509250929050565b5f806040838503121561318157613180612a69565b5b5f61318e85828601612c37565b925050602061319f85828601612e31565b9150509250929050565b5f6131b382612fe1565b9050919050565b6131c3816131a9565b82525050565b5f6020820190506131dc5f8301846131ba565b92915050565b5f80604083850312156131f8576131f7612a69565b5b5f61320585828601612ab7565b925050602061321685828601612ab7565b9150509250929050565b5f61322a82612fe1565b9050919050565b61323a81613220565b82525050565b5f6020820190506132535f830184613231565b92915050565b5f8083601f84011261326e5761326d612e45565b5b8235905067ffffffffffffffff81111561328b5761328a612e49565b5b6020830191508360208202830111156132a7576132a6612e4d565b5b9250929050565b5f805f80604085870312156132c6576132c5612a69565b5b5f85013567ffffffffffffffff8111156132e3576132e2612a6d565b5b6132ef87828801612f17565b9450945050602085013567ffffffffffffffff81111561331257613311612a6d565b5b61331e87828801613259565b925092505092959194509250565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613366826129f8565b810181811067ffffffffffffffff8211171561338557613384613330565b5b80604052505050565b5f613397612a60565b90506133a3828261335d565b919050565b5f67ffffffffffffffff8211156133c2576133c1613330565b5b6133cb826129f8565b9050602081019050919050565b828183375f83830152505050565b5f6133f86133f3846133a8565b61338e565b9050828152602081018484840111156134145761341361332c565b5b61341f8482856133d8565b509392505050565b5f82601f83011261343b5761343a612e45565b5b813561344b8482602086016133e6565b91505092915050565b5f805f6060848603121561346b5761346a612a69565b5b5f61347886828701612aea565b935050602084013567ffffffffffffffff81111561349957613498612a6d565b5b6134a586828701613427565b925050604084013567ffffffffffffffff8111156134c6576134c5612a6d565b5b6134d286828701613427565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061352057607f821691505b602082108103613533576135326134dc565b5b50919050565b7f4d61696c626f78436c69656e743a20696e76616c696420636f6e7472616374205f8201527f73657474696e6700000000000000000000000000000000000000000000000000602082015250565b5f6135936027836129c0565b915061359e82613539565b604082019050919050565b5f6020820190508181035f8301526135c081613587565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6135fe82612acb565b915061360983612acb565b9250828201905080821115613621576136206135c7565b5b92915050565b7f4d61696c626f78436c69656e743a2073656e646572206e6f74206d61696c626f5f8201527f7800000000000000000000000000000000000000000000000000000000000000602082015250565b5f6136816021836129c0565b915061368c82613627565b604082019050919050565b5f6020820190508181035f8301526136ae81613675565b9050919050565b7f456e726f6c6c656420726f7574657220646f6573206e6f74206d6174636820735f8201527f656e646572000000000000000000000000000000000000000000000000000000602082015250565b5f61370f6025836129c0565b915061371a826136b5565b604082019050919050565b5f6020820190508181035f83015261373c81613703565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6137ca6025836129c0565b91506137d582613770565b604082019050919050565b5f6020820190508181035f8301526137f7816137be565b9050919050565b7f216c656e677468000000000000000000000000000000000000000000000000005f82015250565b5f6138326007836129c0565b915061383d826137fe565b602082019050919050565b5f6020820190508181035f83015261385f81613826565b9050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c7265615f8201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b5f6138c0602e836129c0565b91506138cb82613866565b604082019050919050565b5f6020820190508181035f8301526138ed816138b4565b9050919050565b5f819050919050565b5f61391761391261390d846138f4565b612fb7565b612ca7565b9050919050565b613927816138fd565b82525050565b5f6020820190506139405f83018461391e565b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6139a06026836129c0565b91506139ab82613946565b604082019050919050565b5f6020820190508181035f8301526139cd81613994565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613a2e6024836129c0565b9150613a39826139d4565b604082019050919050565b5f6020820190508181035f830152613a5b81613a22565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613abc6022836129c0565b9150613ac782613a62565b604082019050919050565b5f6020820190508181035f830152613ae981613ab0565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613b246020836129c0565b9150613b2f82613af0565b602082019050919050565b5f6020820190508181035f830152613b5181613b18565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f613b8c601d836129c0565b9150613b9782613b58565b602082019050919050565b5f6020820190508181035f830152613bb981613b80565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613c1a6025836129c0565b9150613c2582613bc0565b604082019050919050565b5f6020820190508181035f830152613c4781613c0e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613ca86023836129c0565b9150613cb382613c4e565b604082019050919050565b5f6020820190508181035f830152613cd581613c9c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613d366026836129c0565b9150613d4182613cdc565b604082019050919050565b5f6020820190508181035f830152613d6381613d2a565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f613d9e601f836129c0565b9150613da982613d6a565b602082019050919050565b5f6020820190508181035f830152613dcb81613d92565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420695f8201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b5f613e2c602b836129c0565b9150613e3782613dd2565b604082019050919050565b5f6020820190508181035f830152613e5981613e20565b9050919050565b7f4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e3a2000815250565b5f81905092915050565b5f613e9a826129b6565b613ea48185613e86565b9350613eb48185602086016129d0565b80840191505092915050565b5f613eca82613e60565b601f82019150613eda8284613e90565b915081905092915050565b5f80fd5b5f80fd5b5f8085851115613f0057613eff613ee5565b5b83861115613f1157613f10613ee9565b5b6001850283019150848603905094509492505050565b5f82905092915050565b5f82821b905092915050565b5f613f488383613f27565b82613f538135612c76565b92506020821015613f9357613f8e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802613f31565b831692505b505092915050565b5f819050919050565b613fb5613fb082612c76565b613f9b565b82525050565b5f819050919050565b613fd5613fd082612acb565b613fbb565b82525050565b5f81519050919050565b5f81905092915050565b5f613ff982613fdb565b6140038185613fe5565b93506140138185602086016129d0565b80840191505092915050565b5f61402a8286613fa4565b60208201915061403a8285613fc4565b60208201915061404a8284613fef565b9150819050949350505050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f600883026140a77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613f31565b6140b18683613f31565b95508019841693508086168417925050509392505050565b5f6140e36140de6140d984612acb565b612fb7565b612acb565b9050919050565b5f819050919050565b6140fc836140c9565b614110614108826140ea565b848454614078565b825550505050565b5f90565b614124614118565b61412f8184846140f3565b505050565b5b81811015614152576141475f8261411c565b600181019050614135565b5050565b601f8211156141975761416881614057565b61417184614069565b81016020851015614180578190505b61419461418c85614069565b830182614134565b50505b505050565b5f82821c905092915050565b5f6141b75f198460080261419c565b1980831691505092915050565b5f6141cf83836141a8565b9150826002028217905092915050565b6141e8826129b6565b67ffffffffffffffff81111561420157614200613330565b5b61420b8254613509565b614216828285614156565b5f60209050601f831160018114614247575f8415614235578287015190505b61423f85826141c4565b8655506142a6565b601f19841661425586614057565b5f5b8281101561427c57848901518255600182019150602085019450602081019050614257565b868310156142995784890151614295601f8916826141a8565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b5f6142c882613fdb565b6142d281856142ae565b93506142e28185602086016129d0565b6142eb816129f8565b840191505092915050565b5f60a0820190506143095f83018861307b565b6143166020830187612c7f565b818103604083015261432881866142be565b9050818103606083015261433c81856142be565b905061434b6080830184613003565b9695505050505050565b5f8151905061436381612ad4565b92915050565b5f6020828403121561437e5761437d612a69565b5b5f61438b84828501614355565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f61441b6021836129c0565b9150614426826143c1565b604082019050919050565b5f6020820190508181035f8301526144488161440f565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f6144a96022836129c0565b91506144b48261444f565b604082019050919050565b5f6020820190508181035f8301526144d68161449d565b9050919050565b5f815190506144eb81612e1b565b92915050565b5f6020828403121561450657614505612a69565b5b5f614513848285016144dd565b91505092915050565b5f61452682612acb565b915061453183612acb565b9250828203905081811115614549576145486135c7565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f61ffff82169050919050565b5f8160f01b9050919050565b5f61459f82614589565b9050919050565b6145b76145b28261457c565b614595565b82525050565b5f8160601b9050919050565b5f6145d3826145bd565b9050919050565b5f6145e4826145c9565b9050919050565b6145fc6145f782612a90565b6145da565b82525050565b5f61460d82886145a6565b60028201915061461d8287613fc4565b60208201915061462d8286613fc4565b60208201915061463d82856145eb565b60148201915061464d8284613fef565b9150819050969550505050505056fea2646970667358221220e59f288c8c4357caafde5f524f09f33a4f234073a8474a342ef27c78e91c43ed64736f6c634300081800330000000000000000000000000000000000000000000000000000000000000012000000000000000000000000ffaef09b3cd11d9b20d1a19becca54eec2884766