610120604052620186a0610100526001601e553480156200001f57600080fd5b5060405162006e0638038062006e06833981016040819052620000429162000a6b565b858585610bb83384848460026200005a848262000bac565b50600362000069838262000bac565b5060128160ff16101562000090576040516398790fd560e01b815260040160405180910390fd5b60ff81166080819052620000a690600a62000d8d565b60a0524660c052620000b7620001ca565b60e0525050506001600160a01b038116620000ed57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b620000f88162000266565b5062000106306001620002b8565b60055550505061271061ffff84161180159062000129575061271061ffff831611155b620001655760405162461bcd60e51b815260206004820152600b60248201526a496e76616c69644461746160a81b6044820152606401620000e4565b6012805461ffff848116620100000263ffffffff1990921690861617179055601481905562000196336001620002b8565b620001be600033600a620001ac85600262000da5565b620001b8919062000dbf565b620002d2565b50505050505062000ed4565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6002604051620001fe919062000de2565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600e80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b620002c262000384565b620002ce8282620003b5565b5050565b6001600160a01b03831662000301578060046000828254620002f5919062000e60565b90915550620003319050565b6001600160a01b038316600090815260066020526040812080548392906200032b90849062000e76565b90915550505b6001600160a01b038083166000818152600660205260409081902080548501905551909185169060008051602062006de683398151915290620003779085815260200190565b60405180910390a3505050565b600e546001600160a01b03163314620003b35760405163118cdaa760e01b8152336004820152602401620000e4565b565b6001600160a01b038216620003dd5760405163a41e3d3f60e01b815260040160405180910390fd5b8015620003f557620003ef826200042b565b62000400565b620004008262000468565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6001600160a01b0381166000908152600b6020526040812054905b8181101562000463576200045a83620004f1565b60010162000446565b505050565b60a0516000906200048e836001600160a01b031660009081526006602052604090205490565b6200049a919062000dbf565b90506000620004be836001600160a01b03166000908152600b602052604090205490565b905060005b620004cf828462000e76565b811015620004eb57620004e28462000582565b600101620004c3565b50505050565b6001600160a01b0381166200051957604051636edaef2f60e11b815260040160405180910390fd5b6001600160a01b0381166000908152600b602052604081208054620005419060019062000e76565b8154811062000554576200055462000e8c565b9060005260206000200154905062000575826000836200066b60201b60201c565b620002ce60008262000847565b6001600160a01b038116620005aa57604051634e46966960e11b815260040160405180910390fd5b600080546001600160801b03808216600160801b9092041614620005dc57620005d46000620008b2565b90506200062b565b600560008154620005ed9062000ea2565b90915550600554600101620006155760405163303b682f60e01b815260040160405180910390fd5b6005546200062890600160ff1b62000e60565b90505b6000818152600a60205260409020546001600160a01b03168015620006635760405163119b4fd360e11b815260040160405180910390fd5b620004638184845b6001600160a01b038316156200078557600081815260086020908152604080832080546001600160a01b03191690556001600160a01b0386168352600b90915281208054620006bd9060019062000e76565b81548110620006d057620006d062000e8c565b9060005260206000200154905081811462000743576000828152600a602052604081205460a01c6001600160a01b0386166000908152600b60205260409020805491925083918390811062000729576200072962000e8c565b60009182526020909120015562000741828262000923565b505b6001600160a01b0384166000908152600b602052604090208054806200076d576200076d62000ebe565b60019003818190600052602060002001600090559055505b6001600160a01b0382161562000802576000818152600a6020908152604080832080546001600160a01b0319166001600160a01b038716908101909155808452600b83529083208054600181810183558286529385200185905592529054620007fc918391620007f6919062000e76565b62000923565b62000812565b6000818152600a60205260408120555b80826001600160a01b0316846001600160a01b031660008051602062006de683398151915260405160405180910390a4505050565b81546001600160801b038082166000190191600160801b90048116908216036200088457604051638acb5f2760e01b815260040160405180910390fd5b6001600160801b0316600081815260018401602052604090209190915581546001600160801b031916179055565b80546000906001600160801b03600160801b8204811691168103620008ea576040516375e52f4f60e01b815260040160405180910390fd5b600019016001600160801b039081166000818152600185016020526040812080549190558454909216600160801b909102179092555090565b6000828152600a60205260409020546001600160601b038211156200095b57604051633f2cd0e360e21b815260040160405180910390fd5b6000928352600a60205260409092206001600160a01b039290921660a09190911b6001600160a01b031916019055565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620009b357600080fd5b81516001600160401b0380821115620009d057620009d06200098b565b604051601f8301601f19908116603f01168101908282118183101715620009fb57620009fb6200098b565b816040528381526020925086602085880101111562000a1957600080fd5b600091505b8382101562000a3d578582018301518183018401529082019062000a1e565b6000602085830101528094505050505092915050565b805161ffff8116811462000a6657600080fd5b919050565b60008060008060008060c0878903121562000a8557600080fd5b86516001600160401b038082111562000a9d57600080fd5b62000aab8a838b01620009a1565b9750602089015191508082111562000ac257600080fd5b5062000ad189828a01620009a1565b955050604087015160ff8116811462000ae957600080fd5b935062000af96060880162000a53565b925062000b096080880162000a53565b915060a087015190509295509295509295565b600181811c9082168062000b3157607f821691505b60208210810362000b5257634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000463576000816000526020600020601f850160051c8101602086101562000b835750805b601f850160051c820191505b8181101562000ba45782815560010162000b8f565b505050505050565b81516001600160401b0381111562000bc85762000bc86200098b565b62000be08162000bd9845462000b1c565b8462000b58565b602080601f83116001811462000c18576000841562000bff5750858301515b600019600386901b1c1916600185901b17855562000ba4565b600085815260208120601f198616915b8281101562000c495788860151825594840194600190910190840162000c28565b508582101562000c685787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000ccf57816000190482111562000cb35762000cb362000c78565b8085161562000cc157918102915b93841c939080029062000c93565b509250929050565b60008262000ce85750600162000d87565b8162000cf75750600062000d87565b816001811462000d10576002811462000d1b5762000d3b565b600191505062000d87565b60ff84111562000d2f5762000d2f62000c78565b50506001821b62000d87565b5060208310610133831016604e8410600b841016171562000d60575081810a62000d87565b62000d6c838362000c8e565b806000190482111562000d835762000d8362000c78565b0290505b92915050565b600062000d9e60ff84168362000cd7565b9392505050565b808202811582820484141762000d875762000d8762000c78565b60008262000ddd57634e487b7160e01b600052601260045260246000fd5b500490565b600080835462000df28162000b1c565b6001828116801562000e0d576001811462000e235762000e54565b60ff198416875282151583028701945062000e54565b8760005260208060002060005b8581101562000e4b5781548a82015290840190820162000e30565b50505082870194505b50929695505050505050565b8082018082111562000d875762000d8762000c78565b8181038181111562000d875762000d8762000c78565b634e487b7160e01b600052603260045260246000fd5b60006001820162000eb75762000eb762000c78565b5060010190565b634e487b7160e01b600052603160045260246000fd5b60805160a05160c05160e05161010051615e7962000f6d60003960008181610be701528181611388015281816113b9015281816120b101526120de01526000611168015260006111380152600081816109da01528181612105015281816137a3015281816138010152818161398d015281816139eb01526145bc015260008181610653015281816135b201526136440152615e796000f3fe60806040526004361061042f5760003560e01c806389fb4c6611610228578063b88d4fde11610128578063d547cfb7116100bb578063dfabc0331161008a578063f2fde38b1161006f578063f2fde38b14610d9b578063f780bc1a14610dbb578063f995a09e14610ddb57600080fd5b8063dfabc03314610d40578063e985e9c514610d6057600080fd5b8063d547cfb714610cb3578063d96ca0b914610cc8578063dd62ed3e14610ce8578063dd63769914610d2057600080fd5b8063c6e672b9116100f7578063c6e672b914610c3e578063c729a9c314610c5e578063c87b56dd14610c73578063d505accf14610c9357600080fd5b8063b88d4fde14610bb5578063bf24e1cf14610bd5578063c1e00f1614610c09578063c5ab3ba614610c2957600080fd5b80639b19251a116101bb578063ace529dd1161018a578063b1ab93171161016f578063b1ab931714610b1a578063b3f9ea3414610b47578063b85a8b2014610b8a57600080fd5b8063ace529dd14610ac5578063ad69d9b114610afa57600080fd5b80639b19251a14610a355780639f1d961a14610a65578063a22cb46514610a85578063a9059cbb14610aa557600080fd5b806395d89b41116101f757806395d89b41146109b3578063976a8435146109c85780639966e624146109fc5780639a17d8c114610a1c57600080fd5b806389fb4c66146109265780638a696e501461093b5780638ada6b0f1461095b5780638da5cb5b1461098857600080fd5b80634d9660721161033357806370a08231116102c65780637d76d39a11610295578063809addd21161027a578063809addd2146108de57806387519b09146108f3578063885234a61461091357600080fd5b80637d76d39a146108915780637ecebe00146108b157600080fd5b806370a0823114610804578063715018a61461083157806373d72fca1461084657806379502c551461086657600080fd5b806356d3163d1161030257806356d3163d1461077d5780636251e2d71461079d5780636352211e146107b05780636e8f624b146107d057600080fd5b80634d9660721461071c5780634f02c4201461073c57806352bf49d31461075257806354f703f81461076757600080fd5b806318160ddd116103c65780633644e5151161039557806342842e0e1161037a57806342842e0e146106af57806345898546146106cf5780634a52aa32146106fc57600080fd5b80633644e515146106875780633faf02f21461069c57600080fd5b806318160ddd146105e957806323b872dd146105ff57806330c4a71b1461061f578063313ce5671461064157600080fd5b8063081812fc11610402578063081812fc146104fc578063095ea7b31461056457806309674eb01461058457806309f0ef65146105c957600080fd5b806301ffc9a71461043457806302519da314610469578063040adaa8146104ba57806306fdde03146104da575b600080fd5b34801561044057600080fd5b5061045461044f366004614c33565b610dfa565b60405190151581526020015b60405180910390f35b34801561047557600080fd5b506104ac610484366004614c7d565b73ffffffffffffffffffffffffffffffffffffffff1660009081526006602052604090205490565b604051908152602001610460565b3480156104c657600080fd5b506104546104d5366004614c9a565b610e93565b3480156104e657600080fd5b506104ef610fd2565b6040516104609190614d87565b34801561050857600080fd5b5061053f610517366004614d9a565b60086020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610460565b34801561057057600080fd5b5061045461057f366004614db3565b611060565b34801561059057600080fd5b506000546fffffffffffffffffffffffffffffffff808216700100000000000000000000000000000000909204811691909103166104ac565b3480156105d557600080fd5b506104546105e4366004614c7d565b61109e565b3480156105f557600080fd5b506104ac60045481565b34801561060b57600080fd5b5061045461061a366004614ddf565b6110ea565b34801561062b57600080fd5b5061063f61063a366004614d9a565b611127565b005b34801561064d57600080fd5b506106757f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff9091168152602001610460565b34801561069357600080fd5b506104ac611134565b6104546106aa366004614e38565b61118a565b3480156106bb57600080fd5b5061063f6106ca366004614ddf565b611244565b3480156106db57600080fd5b506104ac6106ea366004614c7d565b60136020526000908152604090205481565b34801561070857600080fd5b50610454610717366004614e76565b611264565b34801561072857600080fd5b50610454610737366004614db3565b6112c4565b34801561074857600080fd5b506104ac60055481565b34801561075e57600080fd5b506104ac611384565b34801561077357600080fd5b506104ac601e5481565b34801561078957600080fd5b5061063f610798366004614c7d565b6113db565b6104546107ab366004614ea6565b6114c9565b3480156107bc57600080fd5b5061053f6107cb366004614d9a565b61164b565b3480156107dc57600080fd5b506104ac7f800000000000000000000000000000000000000000000000000000000000000081565b34801561081057600080fd5b506104ac61081f366004614c7d565b60066020526000908152604090205481565b34801561083d57600080fd5b5061063f611701565b34801561085257600080fd5b50610454610861366004614d9a565b611715565b34801561087257600080fd5b5061087b61173e565b6040516104609a99989796959493929190614ec2565b34801561089d57600080fd5b506104546108ac366004614d9a565b611825565b3480156108bd57600080fd5b506104ac6108cc366004614c7d565b600d6020526000908152604090205481565b3480156108ea57600080fd5b50610675600181565b3480156108ff57600080fd5b5061045461090e366004614f3a565b61189c565b610454610921366004614e38565b6119f0565b34801561093257600080fd5b506004546104ac565b34801561094757600080fd5b5061063f610956366004614f84565b611ab6565b34801561096757600080fd5b5060105461053f9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561099457600080fd5b50600e5473ffffffffffffffffffffffffffffffffffffffff1661053f565b3480156109bf57600080fd5b506104ef611ac3565b3480156109d457600080fd5b506104ac7f000000000000000000000000000000000000000000000000000000000000000081565b348015610a0857600080fd5b506104ac610a17366004614c7d565b611ad0565b348015610a2857600080fd5b5060125461ffff166104ac565b348015610a4157600080fd5b50610454610a50366004614c7d565b60116020526000908152604090205460ff1681565b348015610a7157600080fd5b50610454610a80366004615094565b611b65565b348015610a9157600080fd5b5061063f610aa03660046150db565b611bcc565b348015610ab157600080fd5b50610454610ac0366004614db3565b611cb0565b348015610ad157600080fd5b50610ae5610ae0366004615109565b611d0a565b60408051928352602083019190915201610460565b348015610b0657600080fd5b50610454610b1536600461512b565b611d23565b348015610b2657600080fd5b50610b3a610b35366004614c7d565b611e8e565b604051610460919061519d565b348015610b5357600080fd5b506104ac610b62366004614c7d565b73ffffffffffffffffffffffffffffffffffffffff166000908152600b602052604090205490565b348015610b9657600080fd5b50610ba061271081565b60405163ffffffff9091168152602001610460565b348015610bc157600080fd5b5061063f610bd0366004615227565b611f07565b348015610be157600080fd5b506104ac7f000000000000000000000000000000000000000000000000000000000000000081565b348015610c1557600080fd5b506104ac610c24366004614d9a565b612072565b348015610c3557600080fd5b506005546104ac565b348015610c4a57600080fd5b5061063f610c593660046150db565b61212a565b348015610c6a57600080fd5b50610675600281565b348015610c7f57600080fd5b506104ef610c8e366004614d9a565b612140565b348015610c9f57600080fd5b5061063f610cae3660046152e5565b612473565b348015610cbf57600080fd5b506104ef6127bf565b348015610cd457600080fd5b50610454610ce3366004614ddf565b6127cc565b348015610cf457600080fd5b506104ac610d03366004615356565b600760209081526000928352604080842090915290825290205481565b348015610d2c57600080fd5b5061063f610d3b366004614ddf565b612910565b348015610d4c57600080fd5b5061063f610d5b366004614db3565b612b26565b348015610d6c57600080fd5b50610454610d7b366004615356565b600960209081526000928352604080842090915290825290205460ff1681565b348015610da757600080fd5b5061063f610db6366004614c7d565b612c44565b348015610dc757600080fd5b50610b3a610dd6366004615109565b612ca5565b348015610de757600080fd5b5060125462010000900461ffff166104ac565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fc2e10d09000000000000000000000000000000000000000000000000000000001480610e8d57507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b60008282336014600901544211158015610eaf5750601c544210155b610f1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f54696d654572726f72000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b610f58838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250859250611b65915050565b610fbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e617574686f72697a656400000000000000000000000000000000000000006044820152606401610f11565b610fc787612d42565b979650505050505050565b60028054610fdf90615384565b80601f016020809104026020016040519081016040528092919081815260200182805461100b90615384565b80156110585780601f1061102d57610100808354040283529160200191611058565b820191906000526020600020905b81548152906001019060200180831161103b57829003601f168201915b505050505081565b600061106b82613055565b1561107f5761107a8383612b26565b611090565b61108983836112c4565b9050610e8d565b50600192915050565b905090565b600073ffffffffffffffffffffffffffffffffffffffff82161580610e8d57505073ffffffffffffffffffffffffffffffffffffffff166000908152600c602052604090205460ff1690565b60006110f582613055565b1561110a57611105848484612910565b61111c565b6111158484846127cc565b9050611120565b5060015b9392505050565b61112f6130a8565b600555565b60007f00000000000000000000000000000000000000000000000000000000000000004614611165576110996130fb565b507f000000000000000000000000000000000000000000000000000000000000000090565b600061119584612d42565b50601954601a54604080516000815260208101918290527fdd3974b50000000000000000000000000000000000000000000000000000000090915273ffffffffffffffffffffffffffffffffffffffff9283169263dd3974b59234926112089288928a928c9290911690602481016153d1565b6000604051808303818588803b15801561122157600080fd5b505af1158015611235573d6000803e3d6000fd5b50600198975050505050505050565b61125f83838360405180602001604052806000815250611f07565b505050565b60195460009073ffffffffffffffffffffffffffffffffffffffff1633146112b8576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61111c83836000613195565b600073ffffffffffffffffffffffffffffffffffffffff8316611313576040517f5461585f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33600081815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350600192915050565b60007f0000000000000000000000000000000000000000000000000000000000000000600554116113b6575060055490565b507f000000000000000000000000000000000000000000000000000000000000000090565b6113e36130a8565b60105473ffffffffffffffffffffffffffffffffffffffff161561148257601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d9374bff6040518163ffffffff1660e01b815260040160006040518083038186803b15801561146957600080fd5b505afa15801561147d573d6000803e3d6000fd5b505050505b601080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006114d36130a8565b601a546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015611542573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115669190615420565b9050808311156115d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f496e76616c6964416d6f756e74000000000000000000000000000000000000006044820152606401610f11565b601954601a5460408051600080825260208201908152818301928390527faea6af850000000000000000000000000000000000000000000000000000000090925273ffffffffffffffffffffffffffffffffffffffff9384169363aea6af85933493611208938b9333938c939116919060448201615439565b6000818152600a602052604090205473ffffffffffffffffffffffffffffffffffffffff1661167982613055565b6116af576040517f3f6cc76800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166116fc576040517fc5723b5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6117096130a8565b6117136000613480565b565b601a54600090611090908390339073ffffffffffffffffffffffffffffffffffffffff16613195565b601480546015805491929161175290615384565b80601f016020809104026020016040519081016040528092919081815260200182805461177e90615384565b80156117cb5780601f106117a0576101008083540402835291602001916117cb565b820191906000526020600020905b8154815290600101906020018083116117ae57829003601f168201915b50505060028401546003850154600486015460058701546006880154600789015460088a01546009909a01549899959894975073ffffffffffffffffffffffffffffffffffffffff9384169650918316949216929091908a565b601d546000904211611893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f54696d654572726f7200000000000000000000000000000000000000000000006044820152606401610f11565b610e8d82612d42565b60006118a66130a8565b60006118b860a0840160808501614c7d565b73ffffffffffffffffffffffffffffffffffffffff16141580156118e0575061010082013515155b80156118f0575061012082013515155b80156119055750816101200135826101000135105b8015611918575081606001358260400135105b80156119275750600454823510155b80156119335750813515155b611999576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f496e76616c6964436f6e666967446174610000000000000000000000000000006044820152606401610f11565b8160146119a68282615684565b9050506119b16134f7565b7f527561b93f2fb70a94996503d4059c8fad65cb305612c0e4696fdb30957ba789826040516119e09190615889565b60405180910390a1506001919050565b6000806119ff85856000613195565b601954601a5460408051600080825260208201908152818301928390527faea6af850000000000000000000000000000000000000000000000000000000090925293945073ffffffffffffffffffffffffffffffffffffffff9283169363aea6af85933493611a79938a938c938a93169160448201615439565b6000604051808303818588803b158015611a9257600080fd5b505af1158015611aa6573d6000803e3d6000fd5b5060019998505050505050505050565b611ac0338261368e565b50565b60038054610fdf90615384565b6000805b73ffffffffffffffffffffffffffffffffffffffff83166000908152600b6020526040902054811015611b5f5773ffffffffffffffffffffffffffffffffffffffff83166000908152600b60205260408120805483908110611b3857611b3861597d565b906000526020600020015490506000611b5082612072565b93909301925050600101611ad4565b50919050565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606083901b1660208201526000908190603401604051602081830303815290604052805190602001209050611bc4846014600701548361374e565b949350505050565b73ffffffffffffffffffffffffffffffffffffffff8216611c19576040517fccea9e6f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33600081815260096020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff8316611cff576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611120338484613764565b600080611d178484613b72565b915091505b9250929050565b60195460009073ffffffffffffffffffffffffffffffffffffffff163314611d77576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008080611d87858701876159ac565b925092509250601460080154421015611dfc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f7420737461727465642079657400000000000000000000000000000000006044820152606401610f11565b601d54421180611e115750611e118183611b65565b611e77576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e617574686f72697a656400000000000000000000000000000000000000006044820152606401610f11565b611e818383613d92565b5060019695505050505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600b6020908152604091829020805483518184028101840190945280845260609392830182828015611efb57602002820191906000526020600020905b815481526020019060010190808311611ee7575b50505050509050919050565b611f1082613055565b611f46576040517f3f6cc76800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f518484846110ea565b5073ffffffffffffffffffffffffffffffffffffffff83163b1580159061203557506040517f150b7a02000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff85169063150b7a0290611fcd903390899088908890600401615a05565b6020604051808303816000875af1158015611fec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120109190615a4e565b7fffffffff000000000000000000000000000000000000000000000000000000001614155b1561206c576040517f3da6393100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b60008060016120a17f800000000000000000000000000000000000000000000000000000000000000085615a9a565b6120ab9190615a9a565b905060007f000000000000000000000000000000000000000000000000000000000000000082116120dc57816120fe565b7f00000000000000000000000000000000000000000000000000000000000000005b9050611bc47f000000000000000000000000000000000000000000000000000000000000000082615aad565b6121326130a8565b61213c828261368e565b5050565b6000818152600a602052604090205460609073ffffffffffffffffffffffffffffffffffffffff1661219e576040517fab9713c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006121ca7f800000000000000000000000000000000000000000000000000000000000000084615a9a565b60105490915073ffffffffffffffffffffffffffffffffffffffff16156122a0576010546040517fc321118c0000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff9091169063c321118c90602401600060405180830381865afa15801561225a573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526111209190810190615ac4565b6000600f80546122af90615384565b80601f01602080910402602001604051908101604052809291908181526020018280546122db90615384565b80156123285780601f106122fd57610100808354040283529160200191612328565b820191906000526020600020905b81548152906001019060200180831161230b57829003601f168201915b5050835193945050508115801591506123a4575081612348600183615a9a565b815181106123585761235861597d565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f2f0000000000000000000000000000000000000000000000000000000000000014155b1561243e57600f80546123b690615384565b80601f01602080910402602001604051908101604052809291908181526020018280546123e290615384565b801561242f5780601f106124045761010080835404028352916020019161242f565b820191906000526020600020905b81548152906001019060200180831161241257829003601f168201915b50505050509350505050919050565b600f61244984613e89565b60405160200161245a929190615bc3565b6040516020818303038152906040529350505050919050565b428410156124ad576040517f05787bdf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6124b685613055565b156124ed576040517f1f3e0de800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff861661253a576040517f5461585f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001612546611134565b73ffffffffffffffffffffffffffffffffffffffff8a81166000818152600d602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e0830190915280519201919091207f190100000000000000000000000000000000000000000000000000000000000061010083015261010282019290925261012281019190915261014201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015612698573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158061271257508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15612749576040517f815e1d6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff90811660009081526007602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b600f8054610fdf90615384565b600073ffffffffffffffffffffffffffffffffffffffff841661281b576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316612868576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff841660009081526007602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146128fc576128ca8382615a9a565b73ffffffffffffffffffffffffffffffffffffffff861660009081526007602090815260408083203384529091529020555b612907858585613764565b95945050505050565b73ffffffffffffffffffffffffffffffffffffffff831661295d576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166129aa576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000818152600a602052604090205473ffffffffffffffffffffffffffffffffffffffff848116911614612a0a576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff841614801590612a61575073ffffffffffffffffffffffffffffffffffffffff8316600090815260096020908152604080832033845290915290205460ff16155b8015612a91575060008181526008602052604090205473ffffffffffffffffffffffffffffffffffffffff163314155b15612ac8576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612ad18261109e565b15612b08576040517f5ce7539700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612b1b8383612b1684612072565b613f47565b61125f83838361402a565b6000818152600a602052604090205473ffffffffffffffffffffffffffffffffffffffff16338114801590612b8c575073ffffffffffffffffffffffffffffffffffffffff8116600090815260096020908152604080832033845290915290205460ff16155b15612bc3576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526008602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b612c4c6130a8565b73ffffffffffffffffffffffffffffffffffffffff8116612c9c576040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260006004820152602401610f11565b611ac081613480565b606060008267ffffffffffffffff811115612cc257612cc2614fa1565b604051908082528060200260200182016040528015612ceb578160200160208202803683370190505b509050835b612cfa8486615be8565b811015612d3a57612d0c60008261429a565b82612d178784615a9a565b81518110612d2757612d2761597d565b6020908102919091010152600101612cf0565b509392505050565b6000806000612d51843361433d565b601a546040517f70a08231000000000000000000000000000000000000000000000000000000008152336004820152929450909250859173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015612dc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612deb9190615420565b10158015612e8f5750601a546040517fdd62ed3e000000000000000000000000000000000000000000000000000000008152336004820152306024820152859173ffffffffffffffffffffffffffffffffffffffff169063dd62ed3e90604401602060405180830381865afa158015612e68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e8c9190615420565b10155b612ef5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f496e76616c6964416d6f756e74000000000000000000000000000000000000006044820152606401610f11565b601a546040517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810186905273ffffffffffffffffffffffffffffffffffffffff909116906323b872dd906064016020604051808303816000875af1158015612f72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f969190615bfb565b50612fa1338361448f565b8015612fcd57601854612fcd9060009073ffffffffffffffffffffffffffffffffffffffff1683613f47565b33600090815260136020908152604091829020805485019055601a54825173ffffffffffffffffffffffffffffffffffffffff9091168152908101869052908101839052606081018290524260808201527f4cf9b2da7bed0d74cf8d99e1aa276ed8bcf452751523d2d5fb45edbac5f9de769060a00160405180910390a15060019392505050565b60007f800000000000000000000000000000000000000000000000000000000000000082118015610e8d5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141590565b600e5473ffffffffffffffffffffffffffffffffffffffff163314611713576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610f11565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600260405161312d9190615c18565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600660205260408120546000851180156131cb5750808511155b613231576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f496e76616c6964416d6f756e74000000000000000000000000000000000000006044820152606401610f11565b60008061323f876002613b72565b601254601e549294509092506000916132629162010000900461ffff1690615aad565b61326e61271085615aad565b6132789190615c24565b905073ffffffffffffffffffffffffffffffffffffffff861615613331576040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff88811660048301526024820183905287169063a9059cbb906044016020604051808303816000875af115801561330b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061332f9190615bfb565b505b61333b3084611cb0565b50600082118015613363575060185473ffffffffffffffffffffffffffffffffffffffff1615155b1561338d5760185461338b9073ffffffffffffffffffffffffffffffffffffffff1683611cb0565b505b73ffffffffffffffffffffffffffffffffffffffff871660009081526013602052604090205483106133e45773ffffffffffffffffffffffffffffffffffffffff8716600090815260136020526040812055613411565b73ffffffffffffffffffffffffffffffffffffffff87166000908152601360205260409020805484900390555b6040805173ffffffffffffffffffffffffffffffffffffffff88168152602081018a9052908101849052606081018390524260808201527f1317b437c63bc46a5b6831bd987384315f7998df424d7f77d8f3431d663c93ca9060a00160405180910390a1979650505050505050565b600e805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b601a5473ffffffffffffffffffffffffffffffffffffffff1661351657565b601a54604080517f313ce567000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163313ce5679160048083019260209291908290030181865afa158015613586573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135aa9190615c5f565b90508060ff167f000000000000000000000000000000000000000000000000000000000000000060ff16101561363c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f496e76616c6964446174610000000000000000000000000000000000000000006044820152606401610f11565b6000613668827f0000000000000000000000000000000000000000000000000000000000000000615c7c565b60ff16905080156136855761367e81600a615dad565b601e555050565b6001601e555050565b73ffffffffffffffffffffffffffffffffffffffff82166136db576040517fa41e3d3f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80156136ef576136ea8261454f565b6136f8565b6136f882614590565b73ffffffffffffffffffffffffffffffffffffffff919091166000908152600c6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60008261375b8584614638565b14949350505050565b6000613771848484613f47565b600061377c8561109e565b905060006137898561109e565b90508180156137955750805b613b665781156138a05760007f00000000000000000000000000000000000000000000000000000000000000006137cb87611ad0565b6137d59190615c24565b73ffffffffffffffffffffffffffffffffffffffff8716600090815260066020526040902054613826907f000000000000000000000000000000000000000000000000000000000000000090615c24565b6138309190615a9a565b9050600061383c611384565b90505b81811161389957600580546001019055613857611384565b810190506138946000886005547f800000000000000000000000000000000000000000000000000000000000000061388f9190615be8565b61402a565b61383f565b5050613b66565b80156139895773ffffffffffffffffffffffffffffffffffffffff8616600090815260066020526040812054906138d688611ad0565b90505b808210156138995773ffffffffffffffffffffffffffffffffffffffff88166000908152600b602052604081205461391390600190615a9a565b73ffffffffffffffffffffffffffffffffffffffff8a166000908152600b60205260408120805492935090918390811061394f5761394f61597d565b90600052602060002001549050600061396782612072565b90506139758b60008461402a565b61397f8186615be8565b94505050506138d9565b60007f00000000000000000000000000000000000000000000000000000000000000006139b587611ad0565b6139bf9190615c24565b73ffffffffffffffffffffffffffffffffffffffff8716600090815260066020526040902054613a10907f000000000000000000000000000000000000000000000000000000000000000090615c24565b613a1a9190615a9a565b90506000613a26611384565b90505b818111613a7e57600580546001019055613a41611384565b81019050613a796000886005547f800000000000000000000000000000000000000000000000000000000000000061388f9190615be8565b613a29565b73ffffffffffffffffffffffffffffffffffffffff881660009081526006602052604081205490613aae8a611ad0565b90505b80821015613b615773ffffffffffffffffffffffffffffffffffffffff8a166000908152600b6020526040812054613aeb90600190615a9a565b73ffffffffffffffffffffffffffffffffffffffff8c166000908152600b602052604081208054929350909183908110613b2757613b2761597d565b906000526020600020015490506000613b3f82612072565b9050613b4d8d60008461402a565b613b578186615be8565b9450505050613ab1565b505050505b50600195945050505050565b6000806001831480613b845750600283145b613bea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f496e76616c6964446174610000000000000000000000000000000000000000006044820152606401610f11565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8301613d265760125461ffff1615613ce857613c2961271080615db9565b60125463ffffffff9190911690613c469061ffff16612710615de1565b63ffffffff16601260029054906101000a900461ffff1661ffff16601e5487613c6f9190615aad565b613c799190615aad565b613c839190615aad565b613c8d9190615c24565b9150613c9b61271080615db9565b601254601e5463ffffffff929092169161ffff6201000083048116921690613cc39088615aad565b613ccd9190615aad565b613cd79190615aad565b613ce19190615c24565b9050611d1c565b601254601e546127109162010000900461ffff1690613d079087615aad565b613d119190615aad565b613d1b9190615c24565b915060009050611d1c565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8301611d1c5760125461ffff1615613d8b5760125461271090613d6e9061ffff1686615aad565b613d789190615c24565b9050613d848185615a9a565b9150611d1c565b9293915050565b6000806000613da1858561433d565b91509150613daf848361448f565b600081118015613dd6575060185473ffffffffffffffffffffffffffffffffffffffff1615155b15613e0157601854613e019060009073ffffffffffffffffffffffffffffffffffffffff1683613f47565b73ffffffffffffffffffffffffffffffffffffffff84811660009081526013602090815260409182902080548601905560195482519316835282018790528101839052606081018290524260808201527f4cf9b2da7bed0d74cf8d99e1aa276ed8bcf452751523d2d5fb45edbac5f9de769060a00160405180910390a1506001949350505050565b60606000613e9683614673565b600101905060008167ffffffffffffffff811115613eb657613eb6614fa1565b6040519080825280601f01601f191660200182016040528015613ee0576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084613eea57509392505050565b73ffffffffffffffffffffffffffffffffffffffff8316613f7f578060046000828254613f749190615be8565b90915550613fba9050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526006602052604081208054839290613fb4908490615a9a565b90915550505b73ffffffffffffffffffffffffffffffffffffffff808316600081815260066020526040908190208054850190555190918516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061401d9085815260200190565b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff83161561418157600081815260086020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905573ffffffffffffffffffffffffffffffffffffffff86168352600b909152812080546140ab90600190615a9a565b815481106140bb576140bb61597d565b90600052602060002001549050818114614135576000828152600a602052604081205460a01c73ffffffffffffffffffffffffffffffffffffffff86166000908152600b60205260409020805491925083918390811061411d5761411d61597d565b6000918252602090912001556141338282614755565b505b73ffffffffffffffffffffffffffffffffffffffff84166000908152600b6020526040902080548061416957614169615e05565b60019003818190600052602060002001600090559055505b73ffffffffffffffffffffffffffffffffffffffff82161561422a576000818152600a6020908152604080832080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716908101909155808452600b835290832080546001818101835582865293852001859055925290546142259183916142209190615a9a565b614755565b61423a565b6000818152600a60205260408120555b808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60006142d483546fffffffffffffffffffffffffffffffff8082167001000000000000000000000000000000009092048116919091031690565b821061430c576040517f580821e700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5081546fffffffffffffffffffffffffffffffff908116820116600090815260018301602052604090205492915050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152601360205260408120548190614370856001613b72565b601654919450925083118015614391575060175461438e8285615be8565b11155b6143f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f416d6f756e7449734f75744f6652616e676500000000000000000000000000006044820152606401610f11565b601454158061442157506014546004548390614414908690615be8565b61441e9190615be8565b11155b614487576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f416d6f756e7449734f75744f664d6178537570706c79000000000000000000006044820152606401610f11565b509250929050565b73ffffffffffffffffffffffffffffffffffffffff82166144dc576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f80000000000000000000000000000000000000000000000000000000000000008160045461450b9190615be8565b1115614543576040517f303b682f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61125f60008383613764565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600b6020526040812054905b8181101561125f57614588836147ff565b600101614577565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600660205260408120546145e1907f000000000000000000000000000000000000000000000000000000000000000090615c24565b905060006146118373ffffffffffffffffffffffffffffffffffffffff166000908152600b602052604090205490565b905060005b6146208284615a9a565b81101561206c57614630846148b3565b600101614616565b600081815b8451811015612d3a576146698286838151811061465c5761465c61597d565b6020026020010151614a2b565b915060010161463d565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106146bc577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106146e8576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061470657662386f26fc10000830492506010015b6305f5e100831061471e576305f5e100830492506008015b612710831061473257612710830492506004015b60648310614744576064830492506002015b600a8310610e8d5760010192915050565b6000828152600a60205260409020546bffffffffffffffffffffffff8211156147aa576040517ffcb3438c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000928352600a602052604090922073ffffffffffffffffffffffffffffffffffffffff9290921660a09190911b7fffffffffffffffffffffffff000000000000000000000000000000000000000016019055565b73ffffffffffffffffffffffffffffffffffffffff811661484c576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166000908152600b60205260408120805461487f90600190615a9a565b8154811061488f5761488f61597d565b906000526020600020015490506148a88260008361402a565b61213c600082614a5a565b73ffffffffffffffffffffffffffffffffffffffff8116614900576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546fffffffffffffffffffffffffffffffff80821670010000000000000000000000000000000090920416146149445761493d6000614b32565b90506149c3565b60056000815461495390615e34565b90915550600554600101614993576040517f303b682f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005546149c0907f8000000000000000000000000000000000000000000000000000000000000000615be8565b90505b6000818152600a602052604090205473ffffffffffffffffffffffffffffffffffffffff168015614a20576040517f23369fa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61125f81848461402a565b6000818310614a47576000828152602084905260409020611120565b6000838152602083905260409020611120565b81546fffffffffffffffffffffffffffffffff8082167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01917001000000000000000000000000000000009004811690821603614ae3576040517f8acb5f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6fffffffffffffffffffffffffffffffff16600081815260018401602052604090209190915581547fffffffffffffffffffffffffffffffff0000000000000000000000000000000016179055565b80546000906fffffffffffffffffffffffffffffffff7001000000000000000000000000000000008204811691168103614b98576040517f75e52f4f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016fffffffffffffffffffffffffffffffff9081166000818152600185016020526040812080549190558454909216700100000000000000000000000000000000909102179092555090565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114611ac057600080fd5b600060208284031215614c4557600080fd5b813561112081614c05565b73ffffffffffffffffffffffffffffffffffffffff81168114611ac057600080fd5b80356116fc81614c50565b600060208284031215614c8f57600080fd5b813561112081614c50565b600080600060408486031215614caf57600080fd5b83359250602084013567ffffffffffffffff80821115614cce57600080fd5b818601915086601f830112614ce257600080fd5b813581811115614cf157600080fd5b8760208260051b8501011115614d0657600080fd5b6020830194508093505050509250925092565b60005b83811015614d34578181015183820152602001614d1c565b50506000910152565b60008151808452614d55816020860160208601614d19565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006111206020830184614d3d565b600060208284031215614dac57600080fd5b5035919050565b60008060408385031215614dc657600080fd5b8235614dd181614c50565b946020939093013593505050565b600080600060608486031215614df457600080fd5b8335614dff81614c50565b92506020840135614e0f81614c50565b929592945050506040919091013590565b803567ffffffffffffffff811681146116fc57600080fd5b600080600060608486031215614e4d57600080fd5b833592506020840135614e5f81614c50565b9150614e6d60408501614e20565b90509250925092565b60008060408385031215614e8957600080fd5b823591506020830135614e9b81614c50565b809150509250929050565b60008060408385031215614eb957600080fd5b614dd183614e20565b60006101408c8352806020840152614edc8184018d614d3d565b604084019b909b525050606081019790975273ffffffffffffffffffffffffffffffffffffffff958616608088015293851660a08701529190931660c085015260e08401929092526101008301919091526101209091015292915050565b600060208284031215614f4c57600080fd5b813567ffffffffffffffff811115614f6357600080fd5b8201610140818503121561112057600080fd5b8015158114611ac057600080fd5b600060208284031215614f9657600080fd5b813561112081614f76565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561501757615017614fa1565b604052919050565b600082601f83011261503057600080fd5b8135602067ffffffffffffffff82111561504c5761504c614fa1565b8160051b61505b828201614fd0565b928352848101820192828101908785111561507557600080fd5b83870192505b84831015610fc75782358252918301919083019061507b565b600080604083850312156150a757600080fd5b823567ffffffffffffffff8111156150be57600080fd5b6150ca8582860161501f565b9250506020830135614e9b81614c50565b600080604083850312156150ee57600080fd5b82356150f981614c50565b91506020830135614e9b81614f76565b6000806040838503121561511c57600080fd5b50508035926020909101359150565b6000806020838503121561513e57600080fd5b823567ffffffffffffffff8082111561515657600080fd5b818501915085601f83011261516a57600080fd5b81358181111561517957600080fd5b86602082850101111561518b57600080fd5b60209290920196919550909350505050565b6020808252825182820181905260009190848201906040850190845b818110156151d5578351835292840192918401916001016151b9565b50909695505050505050565b600067ffffffffffffffff8211156151fb576151fb614fa1565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b6000806000806080858703121561523d57600080fd5b843561524881614c50565b9350602085013561525881614c50565b925060408501359150606085013567ffffffffffffffff81111561527b57600080fd5b8501601f8101871361528c57600080fd5b803561529f61529a826151e1565b614fd0565b8181528860208385010111156152b457600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b60ff81168114611ac057600080fd5b600080600080600080600060e0888a03121561530057600080fd5b873561530b81614c50565b9650602088013561531b81614c50565b955060408801359450606088013593506080880135615339816152d6565b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561536957600080fd5b823561537481614c50565b91506020830135614e9b81614c50565b600181811c9082168061539857607f821691505b602082108103611b5f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b67ffffffffffffffff86168152600073ffffffffffffffffffffffffffffffffffffffff808716602084015285604084015280851660608401525060a06080830152610fc760a0830184614d3d565b60006020828403121561543257600080fd5b5051919050565b67ffffffffffffffff87168152600073ffffffffffffffffffffffffffffffffffffffff808816602084015286604084015280861660608401525060c0608083015261548860c0830185614d3d565b82810360a084015261549a8185614d3d565b9998505050505050505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126154dc57600080fd5b83018035915067ffffffffffffffff8211156154f757600080fd5b602001915036819003821315611d1c57600080fd5b601f82111561125f576000816000526020600020601f850160051c810160208610156155355750805b601f850160051c820191505b8181101561555457828155600101615541565b505050505050565b67ffffffffffffffff83111561557457615574614fa1565b615588836155828354615384565b8361550c565b6000601f8411600181146155da57600085156155a45750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355615670565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156156295786850135825560209485019460019092019101615609565b5086821015615664577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b60008135610e8d81614c50565b8135815561569560208301836154a7565b6156a381836001860161555c565b5050604082013560028201556060820135600382015561570e6156c860808401615677565b6004830173ffffffffffffffffffffffffffffffffffffffff82167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161781555050565b61576361571d60a08401615677565b6005830173ffffffffffffffffffffffffffffffffffffffff82167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161781555050565b6157b861577260c08401615677565b6006830173ffffffffffffffffffffffffffffffffffffffff82167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161781555050565b60e08201356007820155610100820135600882015561012082013560098201555050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261581157600080fd5b830160208101925035905067ffffffffffffffff81111561583157600080fd5b803603821315611d1c57600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b602081528135602082015260006158a360208401846157dc565b6101408060408601526158bb61016086018385615840565b925060408601356060860152606086013560808601526158dd60808701614c72565b73ffffffffffffffffffffffffffffffffffffffff811660a0870152915061590760a08701614c72565b73ffffffffffffffffffffffffffffffffffffffff811660c0870152915061593160c08701614c72565b73ffffffffffffffffffffffffffffffffffffffff811660e08701529150610100915060e086013582860152610120828701358187015280870135828701525050508091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000806000606084860312156159c157600080fd5b8335925060208401356159d381614c50565b9150604084013567ffffffffffffffff8111156159ef57600080fd5b6159fb8682870161501f565b9150509250925092565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152615a446080830184614d3d565b9695505050505050565b600060208284031215615a6057600080fd5b815161112081614c05565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610e8d57610e8d615a6b565b8082028115828204841417610e8d57610e8d615a6b565b600060208284031215615ad657600080fd5b815167ffffffffffffffff811115615aed57600080fd5b8201601f81018413615afe57600080fd5b8051615b0c61529a826151e1565b818152856020838501011115615b2157600080fd5b612907826020830160208601614d19565b60008154615b3f81615384565b60018281168015615b575760018114615b8a57615bb9565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168752821515830287019450615bb9565b8560005260208060002060005b85811015615bb05781548a820152908401908201615b97565b50505082870194505b5050505092915050565b6000615bcf8285615b32565b8351615bdf818360208801614d19565b01949350505050565b80820180821115610e8d57610e8d615a6b565b600060208284031215615c0d57600080fd5b815161112081614f76565b60006111208284615b32565b600082615c5a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600060208284031215615c7157600080fd5b8151611120816152d6565b60ff8281168282160390811115610e8d57610e8d615a6b565b600181815b8085111561448757817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115615cd457615cd4615a6b565b80851615615ce157918102915b93841c9390800290615c9a565b600082615cfd57506001610e8d565b81615d0a57506000610e8d565b8160018114615d205760028114615d2a57615d46565b6001915050610e8d565b60ff841115615d3b57615d3b615a6b565b50506001821b610e8d565b5060208310610133831016604e8410600b8410161715615d69575081810a610e8d565b615d738383615c95565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115615da557615da5615a6b565b029392505050565b60006111208383615cee565b63ffffffff818116838216028082169190828114615dd957615dd9615a6b565b505092915050565b63ffffffff828116828216039080821115615dfe57615dfe615a6b565b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203615e6557615e65615a6b565b506001019056fea164736f6c6343000818000addf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000022bdd88fed9efc6a0000000000000000000000000000000000000000000000000000000000000000000009636f6c6f727065706500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009636f6c6f72706570650000000000000000000000000000000000000000000000