60806040526040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250600c90816200004a9190620006b7565b506000600d556105dc600e556105dc600f5560026010553480156200006e57600080fd5b50733cc6cdda760b79bafa08df41ecfa224f810dceb660016040518060400160405280600581526020017f44756e7a6f0000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f44554e5a4f0000000000000000000000000000000000000000000000000000008152508160029081620001039190620006b7565b508060039081620001159190620006b7565b50620001266200036660201b60201c565b600081905550505060006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b111562000323578015620001e9576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff16637d3e3dbe30846040518363ffffffff1660e01b8152600401620001af929190620007e3565b600060405180830381600087803b158015620001ca57600080fd5b505af1158015620001df573d6000803e3d6000fd5b5050505062000322565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614620002a3576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663a0af290330846040518363ffffffff1660e01b815260040162000269929190620007e3565b600060405180830381600087803b1580156200028457600080fd5b505af115801562000299573d6000803e3d6000fd5b5050505062000321565b6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff16634420e486306040518263ffffffff1660e01b8152600401620002ec919062000810565b600060405180830381600087803b1580156200030757600080fd5b505af11580156200031c573d6000803e3d6000fd5b505050505b5b5b505062000345620003396200036f60201b60201c565b6200037760201b60201c565b6001600a60006101000a81548160ff0219169083151502179055506200082d565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620004bf57607f821691505b602082108103620004d557620004d462000477565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200053f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000500565b6200054b868362000500565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000598620005926200058c8462000563565b6200056d565b62000563565b9050919050565b6000819050919050565b620005b48362000577565b620005cc620005c3826200059f565b8484546200050d565b825550505050565b600090565b620005e3620005d4565b620005f0818484620005a9565b505050565b5b8181101562000618576200060c600082620005d9565b600181019050620005f6565b5050565b601f82111562000667576200063181620004db565b6200063c84620004f0565b810160208510156200064c578190505b620006646200065b85620004f0565b830182620005f5565b50505b505050565b600082821c905092915050565b60006200068c600019846008026200066c565b1980831691505092915050565b6000620006a7838362000679565b9150826002028217905092915050565b620006c2826200043d565b67ffffffffffffffff811115620006de57620006dd62000448565b5b620006ea8254620004a6565b620006f78282856200061c565b600060209050601f8311600181146200072f57600084156200071a578287015190505b62000726858262000699565b86555062000796565b601f1984166200073f86620004db565b60005b82811015620007695784890151825560018201915060208501945060208101905062000742565b8683101562000789578489015162000785601f89168262000679565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007cb826200079e565b9050919050565b620007dd81620007be565b82525050565b6000604082019050620007fa6000830185620007d2565b620008096020830184620007d2565b9392505050565b6000602082019050620008276000830184620007d2565b92915050565b613638806200083d6000396000f3fe6080604052600436106101ee5760003560e01c80636c0360eb1161010d578063a22cb465116100a0578063c87b56dd1161006f578063c87b56dd14610698578063d3dd5fe0146106d5578063d5abeb01146106ec578063e985e9c514610717578063f2fde38b14610754576101ee565b8063a22cb465146105fd578063aa1152ab14610626578063b88d4fde14610651578063c66828621461066d576101ee565b80638da5cb5b116100dc5780638da5cb5b1461055357806391b7f5ed1461057e57806395d89b41146105a7578063a035b1fe146105d2576101ee565b80636c0360eb146104ab57806370a08231146104d6578063715018a61461051357806379ff6fee1461052a576101ee565b806324600fc31161018557806342842e0e1161015457806342842e0e146103fe5780634b980d671461041a57806355f804b3146104455780636352211e1461046e576101ee565b806324600fc3146103635780632be905ba1461037a5780632db11544146103b757806341f43434146103d3576101ee565b8063095ea7b3116101c1578063095ea7b3146102c357806318160ddd146102df57806322ae7f7b1461030a57806323b872dd14610347576101ee565b806301ffc9a7146101f3578063045b7dca1461023057806306fdde031461025b578063081812fc14610286575b600080fd5b3480156101ff57600080fd5b5061021a60048036038101906102159190612569565b61077d565b60405161022791906125b1565b60405180910390f35b34801561023c57600080fd5b5061024561080f565b60405161025291906125e5565b60405180910390f35b34801561026757600080fd5b50610270610815565b60405161027d9190612690565b60405180910390f35b34801561029257600080fd5b506102ad60048036038101906102a891906126de565b6108a7565b6040516102ba919061274c565b60405180910390f35b6102dd60048036038101906102d89190612793565b610926565b005b3480156102eb57600080fd5b506102f4610a30565b60405161030191906125e5565b60405180910390f35b34801561031657600080fd5b50610331600480360381019061032c91906127d3565b610a47565b60405161033e91906125b1565b60405180910390f35b610361600480360381019061035c9190612800565b610a67565b005b34801561036f57600080fd5b50610378610bb7565b005b34801561038657600080fd5b506103a1600480360381019061039c91906127d3565b610c08565b6040516103ae91906125e5565b60405180910390f35b6103d160048036038101906103cc91906126de565b610c20565b005b3480156103df57600080fd5b506103e8610dbe565b6040516103f591906128b2565b60405180910390f35b61041860048036038101906104139190612800565b610dd0565b005b34801561042657600080fd5b5061042f610f20565b60405161043c91906125e5565b60405180910390f35b34801561045157600080fd5b5061046c60048036038101906104679190612a02565b610f26565b005b34801561047a57600080fd5b50610495600480360381019061049091906126de565b610f41565b6040516104a2919061274c565b60405180910390f35b3480156104b757600080fd5b506104c0610f53565b6040516104cd9190612690565b60405180910390f35b3480156104e257600080fd5b506104fd60048036038101906104f891906127d3565b610fe1565b60405161050a91906125e5565b60405180910390f35b34801561051f57600080fd5b50610528611099565b005b34801561053657600080fd5b50610551600480360381019061054c9190612b01565b6110ad565b005b34801561055f57600080fd5b50610568611125565b604051610575919061274c565b60405180910390f35b34801561058a57600080fd5b506105a560048036038101906105a091906126de565b61114f565b005b3480156105b357600080fd5b506105bc611161565b6040516105c99190612690565b60405180910390f35b3480156105de57600080fd5b506105e76111f3565b6040516105f491906125e5565b60405180910390f35b34801561060957600080fd5b50610624600480360381019061061f9190612bae565b6111f9565b005b34801561063257600080fd5b5061063b611303565b60405161064891906125b1565b60405180910390f35b61066b60048036038101906106669190612c8f565b611316565b005b34801561067957600080fd5b50610682611469565b60405161068f9190612690565b60405180910390f35b3480156106a457600080fd5b506106bf60048036038101906106ba91906126de565b6114f7565b6040516106cc9190612690565b60405180910390f35b3480156106e157600080fd5b506106ea611595565b005b3480156106f857600080fd5b506107016115c9565b60405161070e91906125e5565b60405180910390f35b34801561072357600080fd5b5061073e60048036038101906107399190612d12565b6115cf565b60405161074b91906125b1565b60405180910390f35b34801561076057600080fd5b5061077b600480360381019061077691906127d3565b611663565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806107d857506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806108085750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b600f5481565b60606002805461082490612d81565b80601f016020809104026020016040519081016040528092919081815260200182805461085090612d81565b801561089d5780601f106108725761010080835404028352916020019161089d565b820191906000526020600020905b81548152906001019060200180831161088057829003601f168201915b5050505050905090565b60006108b2826116e6565b6108e8576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8160006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115610a21576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430836040518363ffffffff1660e01b815260040161099e929190612db2565b602060405180830381865afa1580156109bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109df9190612df0565b610a2057806040517fede71dcc000000000000000000000000000000000000000000000000000000008152600401610a17919061274c565b60405180910390fd5b5b610a2b8383611745565b505050565b6000610a3a611889565b6001546000540303905090565b60096020528060005260406000206000915054906101000a900460ff1681565b8260006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115610ba5573373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ad957610ad4848484611892565b610bb1565b6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430336040518363ffffffff1660e01b8152600401610b22929190612db2565b602060405180830381865afa158015610b3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b639190612df0565b610ba457336040517fede71dcc000000000000000000000000000000000000000000000000000000008152600401610b9b919061274c565b60405180910390fd5b5b610bb0848484611892565b5b50505050565b610bbf611bb4565b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610c05573d6000803e3d6000fd5b50565b60116020528060005260406000206000915090505481565b600a60009054906101000a900460ff16610c6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6690612e8f565b60405180910390fd5b601054811115610cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cab90612f21565b60405180910390fd5b600f5481610cc0610a30565b610cca9190612f70565b1115610d0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0290612ff0565b60405180910390fd5b600d5481610d199190613010565b341015610d5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d52906130b6565b60405180910390fd5b80601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610daa9190612f70565b92505081905550610dbb3382611c32565b50565b6daaeb6d7670e522a718067333cd4e81565b8260006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115610f0e573373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e4257610e3d848484611c50565b610f1a565b6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430336040518363ffffffff1660e01b8152600401610e8b929190612db2565b602060405180830381865afa158015610ea8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecc9190612df0565b610f0d57336040517fede71dcc000000000000000000000000000000000000000000000000000000008152600401610f04919061274c565b60405180910390fd5b5b610f19848484611c50565b5b50505050565b60105481565b610f2e611bb4565b80600b9081610f3d9190613278565b5050565b6000610f4c82611c70565b9050919050565b600b8054610f6090612d81565b80601f0160208091040260200160405190810160405280929190818152602001828054610f8c90612d81565b8015610fd95780601f10610fae57610100808354040283529160200191610fd9565b820191906000526020600020905b815481529060010190602001808311610fbc57829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611048576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b6110a1611bb4565b6110ab6000611d3c565b565b6110b5611bb4565b60005b8282905081101561111e5761110d8383838181106110d9576110d861334a565b5b90506020020160208101906110ee91906127d3565b8686848181106111015761110061334a565b5b90506020020135611c32565b8061111790613379565b90506110b8565b5050505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611157611bb4565b80600d8190555050565b60606003805461117090612d81565b80601f016020809104026020016040519081016040528092919081815260200182805461119c90612d81565b80156111e95780601f106111be576101008083540402835291602001916111e9565b820191906000526020600020905b8154815290600101906020018083116111cc57829003601f168201915b5050505050905090565b600d5481565b8160006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b11156112f4576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430836040518363ffffffff1660e01b8152600401611271929190612db2565b602060405180830381865afa15801561128e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b29190612df0565b6112f357806040517fede71dcc0000000000000000000000000000000000000000000000000000000081526004016112ea919061274c565b60405180910390fd5b5b6112fe8383611e02565b505050565b600a60009054906101000a900460ff1681565b8360006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115611455573373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113895761138485858585611f0d565b611462565b6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430336040518363ffffffff1660e01b81526004016113d2929190612db2565b602060405180830381865afa1580156113ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114139190612df0565b61145457336040517fede71dcc00000000000000000000000000000000000000000000000000000000815260040161144b919061274c565b60405180910390fd5b5b61146185858585611f0d565b5b5050505050565b600c805461147690612d81565b80601f01602080910402602001604051908101604052809291908181526020018280546114a290612d81565b80156114ef5780601f106114c4576101008083540402835291602001916114ef565b820191906000526020600020905b8154815290600101906020018083116114d257829003601f168201915b505050505081565b6060611502826116e6565b611538576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611542611f80565b90506000815103611562576040518060200160405280600081525061158d565b8061156c84612012565b60405160200161157d9291906133fd565b6040516020818303038152906040525b915050919050565b61159d611bb4565b600a60009054906101000a900460ff1615600a60006101000a81548160ff021916908315150217905550565b600e5481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61166b611bb4565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d190613493565b60405180910390fd5b6116e381611d3c565b50565b6000816116f1611889565b11158015611700575060005482105b801561173e575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600061175082610f41565b90508073ffffffffffffffffffffffffffffffffffffffff16611771612062565b73ffffffffffffffffffffffffffffffffffffffff16146117d45761179d81611798612062565b6115cf565b6117d3576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b60006001905090565b600061189d82611c70565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611904576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806119108461206a565b915091506119268187611921612062565b612091565b6119725761193b86611936612062565b6115cf565b611971576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036119d8576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6119e586868660016120d5565b80156119f057600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550611abe85611a9a8888876120db565b7c020000000000000000000000000000000000000000000000000000000017612103565b600460008681526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000841603611b445760006001850190506000600460008381526020019081526020016000205403611b42576000548114611b41578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611bac868686600161212e565b505050505050565b611bbc612134565b73ffffffffffffffffffffffffffffffffffffffff16611bda611125565b73ffffffffffffffffffffffffffffffffffffffff1614611c30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c27906134ff565b60405180910390fd5b565b611c4c82826040518060200160405280600081525061213c565b5050565b611c6b83838360405180602001604052806000815250611316565b505050565b60008082905080611c7f611889565b11611d0557600054811015611d045760006004600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603611d02575b60008103611cf8576004600083600190039350838152602001908152602001600020549050611cce565b8092505050611d37565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060076000611e0f612062565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611ebc612062565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611f0191906125b1565b60405180910390a35050565b611f18848484610a67565b60008373ffffffffffffffffffffffffffffffffffffffff163b14611f7a57611f43848484846121d9565b611f79576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b6060600b8054611f8f90612d81565b80601f0160208091040260200160405190810160405280929190818152602001828054611fbb90612d81565b80156120085780601f10611fdd57610100808354040283529160200191612008565b820191906000526020600020905b815481529060010190602001808311611feb57829003601f168201915b5050505050905090565b606060a060405101806040526020810391506000825281835b60011561204d57600184039350600a81066030018453600a810490508061202b575b50828103602084039350808452505050919050565b600033905090565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e86120f2868684612329565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b600033905090565b6121468383612332565b60008373ffffffffffffffffffffffffffffffffffffffff163b146121d457600080549050600083820390505b61218660008683806001019450866121d9565b6121bc576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8181106121735781600054146121d157600080fd5b50505b505050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a026121ff612062565b8786866040518563ffffffff1660e01b81526004016122219493929190613574565b6020604051808303816000875af192505050801561225d57506040513d601f19601f8201168201806040525081019061225a91906135d5565b60015b6122d6573d806000811461228d576040519150601f19603f3d011682016040523d82523d6000602084013e612292565b606091505b5060008151036122ce576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b60009392505050565b60008054905060008203612372576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61237f60008483856120d5565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506123f6836123e760008660006120db565b6123f0856124ed565b17612103565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b81811461249757808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a460018101905061245c565b50600082036124d2576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060008190555050506124e8600084838561212e565b505050565b60006001821460e11b9050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61254681612511565b811461255157600080fd5b50565b6000813590506125638161253d565b92915050565b60006020828403121561257f5761257e612507565b5b600061258d84828501612554565b91505092915050565b60008115159050919050565b6125ab81612596565b82525050565b60006020820190506125c660008301846125a2565b92915050565b6000819050919050565b6125df816125cc565b82525050565b60006020820190506125fa60008301846125d6565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561263a57808201518184015260208101905061261f565b60008484015250505050565b6000601f19601f8301169050919050565b600061266282612600565b61266c818561260b565b935061267c81856020860161261c565b61268581612646565b840191505092915050565b600060208201905081810360008301526126aa8184612657565b905092915050565b6126bb816125cc565b81146126c657600080fd5b50565b6000813590506126d8816126b2565b92915050565b6000602082840312156126f4576126f3612507565b5b6000612702848285016126c9565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127368261270b565b9050919050565b6127468161272b565b82525050565b6000602082019050612761600083018461273d565b92915050565b6127708161272b565b811461277b57600080fd5b50565b60008135905061278d81612767565b92915050565b600080604083850312156127aa576127a9612507565b5b60006127b88582860161277e565b92505060206127c9858286016126c9565b9150509250929050565b6000602082840312156127e9576127e8612507565b5b60006127f78482850161277e565b91505092915050565b60008060006060848603121561281957612818612507565b5b60006128278682870161277e565b93505060206128388682870161277e565b9250506040612849868287016126c9565b9150509250925092565b6000819050919050565b600061287861287361286e8461270b565b612853565b61270b565b9050919050565b600061288a8261285d565b9050919050565b600061289c8261287f565b9050919050565b6128ac81612891565b82525050565b60006020820190506128c760008301846128a3565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61290f82612646565b810181811067ffffffffffffffff8211171561292e5761292d6128d7565b5b80604052505050565b60006129416124fd565b905061294d8282612906565b919050565b600067ffffffffffffffff82111561296d5761296c6128d7565b5b61297682612646565b9050602081019050919050565b82818337600083830152505050565b60006129a56129a084612952565b612937565b9050828152602081018484840111156129c1576129c06128d2565b5b6129cc848285612983565b509392505050565b600082601f8301126129e9576129e86128cd565b5b81356129f9848260208601612992565b91505092915050565b600060208284031215612a1857612a17612507565b5b600082013567ffffffffffffffff811115612a3657612a3561250c565b5b612a42848285016129d4565b91505092915050565b600080fd5b600080fd5b60008083601f840112612a6b57612a6a6128cd565b5b8235905067ffffffffffffffff811115612a8857612a87612a4b565b5b602083019150836020820283011115612aa457612aa3612a50565b5b9250929050565b60008083601f840112612ac157612ac06128cd565b5b8235905067ffffffffffffffff811115612ade57612add612a4b565b5b602083019150836020820283011115612afa57612af9612a50565b5b9250929050565b60008060008060408587031215612b1b57612b1a612507565b5b600085013567ffffffffffffffff811115612b3957612b3861250c565b5b612b4587828801612a55565b9450945050602085013567ffffffffffffffff811115612b6857612b6761250c565b5b612b7487828801612aab565b925092505092959194509250565b612b8b81612596565b8114612b9657600080fd5b50565b600081359050612ba881612b82565b92915050565b60008060408385031215612bc557612bc4612507565b5b6000612bd38582860161277e565b9250506020612be485828601612b99565b9150509250929050565b600067ffffffffffffffff821115612c0957612c086128d7565b5b612c1282612646565b9050602081019050919050565b6000612c32612c2d84612bee565b612937565b905082815260208101848484011115612c4e57612c4d6128d2565b5b612c59848285612983565b509392505050565b600082601f830112612c7657612c756128cd565b5b8135612c86848260208601612c1f565b91505092915050565b60008060008060808587031215612ca957612ca8612507565b5b6000612cb78782880161277e565b9450506020612cc88782880161277e565b9350506040612cd9878288016126c9565b925050606085013567ffffffffffffffff811115612cfa57612cf961250c565b5b612d0687828801612c61565b91505092959194509250565b60008060408385031215612d2957612d28612507565b5b6000612d378582860161277e565b9250506020612d488582860161277e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d9957607f821691505b602082108103612dac57612dab612d52565b5b50919050565b6000604082019050612dc7600083018561273d565b612dd4602083018461273d565b9392505050565b600081519050612dea81612b82565b92915050565b600060208284031215612e0657612e05612507565b5b6000612e1484828501612ddb565b91505092915050565b7f44554e5a4f2069734d696e74696e675374617274204e6f74204f70656e20596560008201527f7420210000000000000000000000000000000000000000000000000000000000602082015250565b6000612e7960238361260b565b9150612e8482612e1d565b604082019050919050565b60006020820190508181036000830152612ea881612e6c565b9050919050565b7f44554e5a4f204d617820506572204d617820506572205472616e73616374696f60008201527f6e20210000000000000000000000000000000000000000000000000000000000602082015250565b6000612f0b60238361260b565b9150612f1682612eaf565b604082019050919050565b60006020820190508181036000830152612f3a81612efe565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f7b826125cc565b9150612f86836125cc565b9250828201905080821115612f9e57612f9d612f41565b5b92915050565b7f44554e5a4f20536f6c646f757420210000000000000000000000000000000000600082015250565b6000612fda600f8361260b565b9150612fe582612fa4565b602082019050919050565b6000602082019050818103600083015261300981612fcd565b9050919050565b600061301b826125cc565b9150613026836125cc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561305f5761305e612f41565b5b828202905092915050565b7f44554e5a4f20496e73756666696369656e742046756e64732021000000000000600082015250565b60006130a0601a8361260b565b91506130ab8261306a565b602082019050919050565b600060208201905081810360008301526130cf81613093565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026131387fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826130fb565b61314286836130fb565b95508019841693508086168417925050509392505050565b600061317561317061316b846125cc565b612853565b6125cc565b9050919050565b6000819050919050565b61318f8361315a565b6131a361319b8261317c565b848454613108565b825550505050565b600090565b6131b86131ab565b6131c3818484613186565b505050565b5b818110156131e7576131dc6000826131b0565b6001810190506131c9565b5050565b601f82111561322c576131fd816130d6565b613206846130eb565b81016020851015613215578190505b613229613221856130eb565b8301826131c8565b50505b505050565b600082821c905092915050565b600061324f60001984600802613231565b1980831691505092915050565b6000613268838361323e565b9150826002028217905092915050565b61328182612600565b67ffffffffffffffff81111561329a576132996128d7565b5b6132a48254612d81565b6132af8282856131eb565b600060209050601f8311600181146132e257600084156132d0578287015190505b6132da858261325c565b865550613342565b601f1984166132f0866130d6565b60005b82811015613318578489015182556001820191506020850194506020810190506132f3565b868310156133355784890151613331601f89168261323e565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613384826125cc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036133b6576133b5612f41565b5b600182019050919050565b600081905092915050565b60006133d782612600565b6133e181856133c1565b93506133f181856020860161261c565b80840191505092915050565b600061340982856133cc565b915061341582846133cc565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061347d60268361260b565b915061348882613421565b604082019050919050565b600060208201905081810360008301526134ac81613470565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134e960208361260b565b91506134f4826134b3565b602082019050919050565b60006020820190508181036000830152613518816134dc565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006135468261351f565b613550818561352a565b935061356081856020860161261c565b61356981612646565b840191505092915050565b6000608082019050613589600083018761273d565b613596602083018661273d565b6135a360408301856125d6565b81810360608301526135b5818461353b565b905095945050505050565b6000815190506135cf8161253d565b92915050565b6000602082840312156135eb576135ea612507565b5b60006135f9848285016135c0565b9150509291505056fea2646970667358221220574f6e1c493257b472f5db8e26ca1f81c1e7ba4a0bcd818720dc422a5f63b2d164736f6c63430008100033