0x60806040523480156200001157600080fd5b506040518060400160405280600581526020017f74657374320000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f7465737432000000000000000000000000000000000000000000000000000000815250816003908051906020019062000096929190620008b7565b508060049080519060200190620000af929190620008b7565b5050506000600560006101000a81548160ff021916908315150217905550620000e26000801b33620001a060201b60201c565b620001147f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620001a060201b60201c565b33600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000620001676200029260201b60201c565b600a62000175919062000c03565b6298968062000185919062000d40565b90506200019933826200029b60201b60201c565b5062001002565b620001b282826200041460201b60201c565b6200028e5760016006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620002336200047f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200030e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003059062000ac3565b60405180910390fd5b62000322600083836200048760201b60201c565b806002600082825462000336919062000b13565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200038d919062000b13565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003f4919062000ae5565b60405180910390a362000410600083836200057060201b60201c565b5050565b60006006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b620004976200057560201b60201c565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156200054557606460078362000501919062000d40565b6200050d919062000b70565b905062000543600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682620005ca60201b60201c565b505b6200056a8484838562000559919062000da1565b620005fd60201b62000c521760201c565b50505050565b505050565b620005856200060260201b60201c565b15620005c8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005bf9062000a7f565b60405180910390fd5b565b600080620005dd6200047f60201b60201c565b9050620005f28185856200061960201b60201c565b600191505092915050565b505050565b6000600560009054906101000a900460ff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156200068c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006839062000aa1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620006ff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006f69062000a3b565b60405180910390fd5b620007128383836200048760201b60201c565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156200079b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007929062000a5d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000830919062000b13565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405162000896919062000ae5565b60405180910390a3620008b18484846200057060201b60201c565b50505050565b828054620008c59062000df3565b90600052602060002090601f016020900481019282620008e9576000855562000935565b82601f106200090457805160ff191683800117855562000935565b8280016001018555821562000935579182015b828111156200093457825182559160200191906001019062000917565b5b50905062000944919062000948565b5090565b5b808211156200096357600081600090555060010162000949565b5090565b60006200097660238362000b02565b9150620009838262000ec3565b604082019050919050565b60006200099d60268362000b02565b9150620009aa8262000f12565b604082019050919050565b6000620009c460108362000b02565b9150620009d18262000f61565b602082019050919050565b6000620009eb60258362000b02565b9150620009f88262000f8a565b604082019050919050565b600062000a12601f8362000b02565b915062000a1f8262000fd9565b602082019050919050565b62000a358162000ddc565b82525050565b6000602082019050818103600083015262000a568162000967565b9050919050565b6000602082019050818103600083015262000a78816200098e565b9050919050565b6000602082019050818103600083015262000a9a81620009b5565b9050919050565b6000602082019050818103600083015262000abc81620009dc565b9050919050565b6000602082019050818103600083015262000ade8162000a03565b9050919050565b600060208201905062000afc600083018462000a2a565b92915050565b600082825260208201905092915050565b600062000b208262000ddc565b915062000b2d8362000ddc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000b655762000b6462000e29565b5b828201905092915050565b600062000b7d8262000ddc565b915062000b8a8362000ddc565b92508262000b9d5762000b9c62000e58565b5b828204905092915050565b6000808291508390505b600185111562000bfa5780860481111562000bd25762000bd162000e29565b5b600185161562000be25780820291505b808102905062000bf28562000eb6565b945062000bb2565b94509492505050565b600062000c108262000ddc565b915062000c1d8362000de6565b925062000c4c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c54565b905092915050565b60008262000c66576001905062000d39565b8162000c76576000905062000d39565b816001811462000c8f576002811462000c9a5762000cd0565b600191505062000d39565b60ff84111562000caf5762000cae62000e29565b5b8360020a91508482111562000cc95762000cc862000e29565b5b5062000d39565b5060208310610133831016604e8410600b841016171562000d0a5782820a90508381111562000d045762000d0362000e29565b5b62000d39565b62000d19848484600162000ba8565b9250905081840481111562000d335762000d3262000e29565b5b81810290505b9392505050565b600062000d4d8262000ddc565b915062000d5a8362000ddc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000d965762000d9562000e29565b5b828202905092915050565b600062000dae8262000ddc565b915062000dbb8362000ddc565b92508282101562000dd15762000dd062000e29565b5b828203905092915050565b6000819050919050565b600060ff82169050919050565b6000600282049050600182168062000e0c57607f821691505b6020821081141562000e235762000e2262000e87565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b61298c80620010126000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80635c975abb116100f9578063a217fddf11610097578063c1eb5ddd11610071578063c1eb5ddd14610507578063d547741f14610525578063dd62ed3e14610541578063e63ab1e914610571576101c4565b8063a217fddf14610489578063a457c2d7146104a7578063a9059cbb146104d7576101c4565b80638456cb59116100d35780638456cb591461041557806388a8c95c1461041f57806391d148541461043b57806395d89b411461046b576101c4565b80635c975abb146103ab57806370a08231146103c957806379cc6790146103f9576101c4565b8063313ce5671161016657806336568abe1161014057806336568abe1461033957806339509351146103555780633f4ba83a1461038557806342966c681461038f576101c4565b8063313ce567146102e157806332fe7b26146102ff578063340ac20f1461031d576101c4565b806318160ddd116101a257806318160ddd1461024757806323b872dd14610265578063248a9ca3146102955780632f2ff15d146102c5576101c4565b806301ffc9a7146101c957806306fdde03146101f9578063095ea7b314610217575b600080fd5b6101e360048036038101906101de9190611cb2565b61058f565b6040516101f0919061201b565b60405180910390f35b610201610609565b60405161020e9190612051565b60405180910390f35b610231600480360381019061022c9190611c11565b61069b565b60405161023e919061201b565b60405180910390f35b61024f6106be565b60405161025c9190612213565b60405180910390f35b61027f600480360381019061027a9190611bc2565b6106c8565b60405161028c919061201b565b60405180910390f35b6102af60048036038101906102aa9190611c4d565b6106f7565b6040516102bc9190612036565b60405180910390f35b6102df60048036038101906102da9190611c76565b610717565b005b6102e9610738565b6040516102f6919061222e565b60405180910390f35b610307610741565b6040516103149190612000565b60405180910390f35b61033760048036038101906103329190611b5d565b610767565b005b610353600480360381019061034e9190611c76565b6107b9565b005b61036f600480360381019061036a9190611c11565b61083c565b60405161037c919061201b565b60405180910390f35b61038d610873565b005b6103a960048036038101906103a49190611cdb565b6108a8565b005b6103b36108bc565b6040516103c0919061201b565b60405180910390f35b6103e360048036038101906103de9190611b5d565b6108d3565b6040516103f09190612213565b60405180910390f35b610413600480360381019061040e9190611c11565b61091b565b005b61041d61093b565b005b61043960048036038101906104349190611b5d565b610970565b005b61045560048036038101906104509190611c76565b6109c2565b604051610462919061201b565b60405180910390f35b610473610a2d565b6040516104809190612051565b60405180910390f35b610491610abf565b60405161049e9190612036565b60405180910390f35b6104c160048036038101906104bc9190611c11565b610ac6565b6040516104ce919061201b565b60405180910390f35b6104f160048036038101906104ec9190611c11565b610b3d565b6040516104fe919061201b565b60405180910390f35b61050f610b60565b60405161051c9190612000565b60405180910390f35b61053f600480360381019061053a9190611c76565b610b86565b005b61055b60048036038101906105569190611b86565b610ba7565b6040516105689190612213565b60405180910390f35b610579610c2e565b6040516105869190612036565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610602575061060182610c57565b5b9050919050565b6060600380546106189061246d565b80601f01602080910402602001604051908101604052809291908181526020018280546106449061246d565b80156106915780601f1061066657610100808354040283529160200191610691565b820191906000526020600020905b81548152906001019060200180831161067457829003601f168201915b5050505050905090565b6000806106a6610cc1565b90506106b3818585610cc9565b600191505092915050565b6000600254905090565b6000806106d3610cc1565b90506106e0858285610e94565b6106eb858585610f20565b60019150509392505050565b600060066000838152602001908152602001600020600101549050919050565b610720826106f7565b610729816111a1565b61073383836111b5565b505050565b60006012905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000801b610774816111a1565b81600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6107c1610cc1565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461082e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610825906121f3565b60405180910390fd5b6108388282611296565b5050565b600080610847610cc1565b90506108688185856108598589610ba7565b6108639190612270565b610cc9565b600191505092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61089d816111a1565b6108a5611378565b50565b6108b96108b3610cc1565b826113db565b50565b6000600560009054906101000a900460ff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61092d82610927610cc1565b83610e94565b61093782826113db565b5050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610965816111a1565b61096d6115b2565b50565b6000801b61097d816111a1565b81600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60006006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b606060048054610a3c9061246d565b80601f0160208091040260200160405190810160405280929190818152602001828054610a689061246d565b8015610ab55780601f10610a8a57610100808354040283529160200191610ab5565b820191906000526020600020905b815481529060010190602001808311610a9857829003601f168201915b5050505050905090565b6000801b81565b600080610ad1610cc1565b90506000610adf8286610ba7565b905083811015610b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1b906121d3565b60405180910390fd5b610b318286868403610cc9565b60019250505092915050565b600080610b48610cc1565b9050610b55818585610f20565b600191505092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b8f826106f7565b610b98816111a1565b610ba28383611296565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d30906121b3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610da9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da0906120f3565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e879190612213565b60405180910390a3505050565b6000610ea08484610ba7565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f1a5781811015610f0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0390612113565b60405180910390fd5b610f198484848403610cc9565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8790612193565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff790612093565b60405180910390fd5b61100b838383611615565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611091576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108890612133565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111249190612270565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111889190612213565b60405180910390a361119b8484846116da565b50505050565b6111b2816111ad610cc1565b6116df565b50565b6111bf82826109c2565b6112925760016006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611237610cc1565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6112a082826109c2565b156113745760006006600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611319610cc1565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b61138061177c565b6000600560006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6113c4610cc1565b6040516113d19190612000565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561144b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144290612173565b60405180910390fd5b61145782600083611615565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156114dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d4906120d3565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546115349190612351565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115999190612213565b60405180910390a36115ad836000846116da565b505050565b6115ba6117c5565b6001600560006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586115fe610cc1565b60405161160b9190612000565b60405180910390a1565b61161d6117c5565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116be57606460078361168491906122f7565b61168e91906122c6565b90506116bc600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682610b3d565b505b6116d4848483856116cf9190612351565b610c52565b50505050565b505050565b6116e982826109c2565b6117785761170e8173ffffffffffffffffffffffffffffffffffffffff16601461180f565b61171c8360001c602061180f565b60405160200161172d929190611fc6565b6040516020818303038152906040526040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176f9190612051565b60405180910390fd5b5050565b6117846108bc565b6117c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ba906120b3565b60405180910390fd5b565b6117cd6108bc565b1561180d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180490612153565b60405180910390fd5b565b60606000600283600261182291906122f7565b61182c9190612270565b67ffffffffffffffff81111561186b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561189d5781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106118fb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611985577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600060018460026119c591906122f7565b6119cf9190612270565b90505b6001811115611abb577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110611a37577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b1a60f81b828281518110611a74577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080611ab490612443565b90506119d2565b5060008414611aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af690612073565b60405180910390fd5b8091505092915050565b600081359050611b18816128fa565b92915050565b600081359050611b2d81612911565b92915050565b600081359050611b4281612928565b92915050565b600081359050611b578161293f565b92915050565b600060208284031215611b6f57600080fd5b6000611b7d84828501611b09565b91505092915050565b60008060408385031215611b9957600080fd5b6000611ba785828601611b09565b9250506020611bb885828601611b09565b9150509250929050565b600080600060608486031215611bd757600080fd5b6000611be586828701611b09565b9350506020611bf686828701611b09565b9250506040611c0786828701611b48565b9150509250925092565b60008060408385031215611c2457600080fd5b6000611c3285828601611b09565b9250506020611c4385828601611b48565b9150509250929050565b600060208284031215611c5f57600080fd5b6000611c6d84828501611b1e565b91505092915050565b60008060408385031215611c8957600080fd5b6000611c9785828601611b1e565b9250506020611ca885828601611b09565b9150509250929050565b600060208284031215611cc457600080fd5b6000611cd284828501611b33565b91505092915050565b600060208284031215611ced57600080fd5b6000611cfb84828501611b48565b91505092915050565b611d0d81612385565b82525050565b611d1c81612397565b82525050565b611d2b816123a3565b82525050565b6000611d3c82612249565b611d468185612254565b9350611d56818560208601612410565b611d5f8161252c565b840191505092915050565b6000611d7582612249565b611d7f8185612265565b9350611d8f818560208601612410565b80840191505092915050565b6000611da8602083612254565b9150611db38261253d565b602082019050919050565b6000611dcb602383612254565b9150611dd682612566565b604082019050919050565b6000611dee601483612254565b9150611df9826125b5565b602082019050919050565b6000611e11602283612254565b9150611e1c826125de565b604082019050919050565b6000611e34602283612254565b9150611e3f8261262d565b604082019050919050565b6000611e57601d83612254565b9150611e628261267c565b602082019050919050565b6000611e7a602683612254565b9150611e85826126a5565b604082019050919050565b6000611e9d601083612254565b9150611ea8826126f4565b602082019050919050565b6000611ec0602183612254565b9150611ecb8261271d565b604082019050919050565b6000611ee3602583612254565b9150611eee8261276c565b604082019050919050565b6000611f06602483612254565b9150611f11826127bb565b604082019050919050565b6000611f29601783612265565b9150611f348261280a565b601782019050919050565b6000611f4c602583612254565b9150611f5782612833565b604082019050919050565b6000611f6f601183612265565b9150611f7a82612882565b601182019050919050565b6000611f92602f83612254565b9150611f9d826128ab565b604082019050919050565b611fb1816123f9565b82525050565b611fc081612403565b82525050565b6000611fd182611f1c565b9150611fdd8285611d6a565b9150611fe882611f62565b9150611ff48284611d6a565b91508190509392505050565b60006020820190506120156000830184611d04565b92915050565b60006020820190506120306000830184611d13565b92915050565b600060208201905061204b6000830184611d22565b92915050565b6000602082019050818103600083015261206b8184611d31565b905092915050565b6000602082019050818103600083015261208c81611d9b565b9050919050565b600060208201905081810360008301526120ac81611dbe565b9050919050565b600060208201905081810360008301526120cc81611de1565b9050919050565b600060208201905081810360008301526120ec81611e04565b9050919050565b6000602082019050818103600083015261210c81611e27565b9050919050565b6000602082019050818103600083015261212c81611e4a565b9050919050565b6000602082019050818103600083015261214c81611e6d565b9050919050565b6000602082019050818103600083015261216c81611e90565b9050919050565b6000602082019050818103600083015261218c81611eb3565b9050919050565b600060208201905081810360008301526121ac81611ed6565b9050919050565b600060208201905081810360008301526121cc81611ef9565b9050919050565b600060208201905081810360008301526121ec81611f3f565b9050919050565b6000602082019050818103600083015261220c81611f85565b9050919050565b60006020820190506122286000830184611fa8565b92915050565b60006020820190506122436000830184611fb7565b92915050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600061227b826123f9565b9150612286836123f9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156122bb576122ba61249f565b5b828201905092915050565b60006122d1826123f9565b91506122dc836123f9565b9250826122ec576122eb6124ce565b5b828204905092915050565b6000612302826123f9565b915061230d836123f9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156123465761234561249f565b5b828202905092915050565b600061235c826123f9565b9150612367836123f9565b92508282101561237a5761237961249f565b5b828203905092915050565b6000612390826123d9565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561242e578082015181840152602081019050612413565b8381111561243d576000848401525b50505050565b600061244e826123f9565b915060008214156124625761246161249f565b5b600182039050919050565b6000600282049050600182168061248557607f821691505b60208210811415612499576124986124fd565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b61290381612385565b811461290e57600080fd5b50565b61291a816123a3565b811461292557600080fd5b50565b612931816123ad565b811461293c57600080fd5b50565b612948816123f9565b811461295357600080fd5b5056fea2646970667358221220d72a879e160836b3fc4630299791d87b050c1a61b70e7a25bc46cd6f7e53056164736f6c63430008040033