60806040523480156200001157600080fd5b506040516200365c3803806200365c8339818101604052810190620000379190620003f8565b33848481600090816200004b919062000708565b5080600190816200005d919062000708565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000d55760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000cc919062000834565b60405180910390fd5b620000e6816200016460201b60201c565b5060006008819055508060098190555081600a908162000107919062000708565b5083600b908162000119919062000708565b5082600c90816200012b919062000708565b506000600d6000600854815260200190815260200160002060006101000a81548160ff0219169083151502179055505050505062000851565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620002938262000248565b810181811067ffffffffffffffff82111715620002b557620002b462000259565b5b80604052505050565b6000620002ca6200022a565b9050620002d8828262000288565b919050565b600067ffffffffffffffff821115620002fb57620002fa62000259565b5b620003068262000248565b9050602081019050919050565b60005b838110156200033357808201518184015260208101905062000316565b60008484015250505050565b6000620003566200035084620002dd565b620002be565b90508281526020810184848401111562000375576200037462000243565b5b6200038284828562000313565b509392505050565b600082601f830112620003a257620003a16200023e565b5b8151620003b48482602086016200033f565b91505092915050565b6000819050919050565b620003d281620003bd565b8114620003de57600080fd5b50565b600081519050620003f281620003c7565b92915050565b6000806000806080858703121562000415576200041462000234565b5b600085015167ffffffffffffffff81111562000436576200043562000239565b5b62000444878288016200038a565b945050602085015167ffffffffffffffff81111562000468576200046762000239565b5b62000476878288016200038a565b935050604085015167ffffffffffffffff8111156200049a576200049962000239565b5b620004a8878288016200038a565b9250506060620004bb87828801620003e1565b91505092959194509250565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200051a57607f821691505b60208210810362000530576200052f620004d2565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200059a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200055b565b620005a686836200055b565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620005e9620005e3620005dd84620003bd565b620005be565b620003bd565b9050919050565b6000819050919050565b6200060583620005c8565b6200061d6200061482620005f0565b84845462000568565b825550505050565b600090565b6200063462000625565b62000641818484620005fa565b505050565b5b8181101562000669576200065d6000826200062a565b60018101905062000647565b5050565b601f821115620006b857620006828162000536565b6200068d846200054b565b810160208510156200069d578190505b620006b5620006ac856200054b565b83018262000646565b50505b505050565b600082821c905092915050565b6000620006dd60001984600802620006bd565b1980831691505092915050565b6000620006f88383620006ca565b9150826002028217905092915050565b6200071382620004c7565b67ffffffffffffffff8111156200072f576200072e62000259565b5b6200073b825462000501565b620007488282856200066d565b600060209050601f8311600181146200078057600084156200076b578287015190505b620007778582620006ea565b865550620007e7565b601f198416620007908662000536565b60005b82811015620007ba5784890151825560018201915060208501945060208101905062000793565b86831015620007da5784890151620007d6601f891682620006ca565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200081c82620007ef565b9050919050565b6200082e816200080f565b82525050565b60006020820190506200084b600083018462000823565b92915050565b612dfb80620008616000396000f3fe60806040526004361061014b5760003560e01c8063715018a6116100b6578063b07b39431161006f578063b07b39431461045f578063b88d4fde1461049c578063c87b56dd146104c5578063e929d66914610502578063e985e9c51461052b578063f2fde38b146105685761014b565b8063715018a6146103735780637fb6c4fa1461038a57806387f89855146103b55780638da5cb5b146103e057806395d89b411461040b578063a22cb465146104365761014b565b806323b872dd1161010857806323b872dd146102745780633ccfd60b1461029d57806342842e0e146102b457806354ba0f27146102dd5780636352211e146102f957806370a08231146103365761014b565b806301ffc9a71461015057806306fdde031461018d578063081812fc146101b8578063095ea7b3146101f557806313966db51461021e57806317d70f7c14610249575b600080fd5b34801561015c57600080fd5b506101776004803603810190610172919061223b565b610591565b6040516101849190612283565b60405180910390f35b34801561019957600080fd5b506101a26105f2565b6040516101af919061232e565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da9190612386565b610684565b6040516101ec91906123f4565b60405180910390f35b34801561020157600080fd5b5061021c6004803603810190610217919061243b565b6106a0565b005b34801561022a57600080fd5b506102336106b6565b604051610240919061248a565b60405180910390f35b34801561025557600080fd5b5061025e6106bc565b60405161026b919061248a565b60405180910390f35b34801561028057600080fd5b5061029b600480360381019061029691906124a5565b6106c2565b005b3480156102a957600080fd5b506102b26107c4565b005b3480156102c057600080fd5b506102db60048036038101906102d691906124a5565b6108b3565b005b6102f760048036038101906102f291906124f8565b6108d3565b005b34801561030557600080fd5b50610320600480360381019061031b9190612386565b610a5b565b60405161032d91906123f4565b60405180910390f35b34801561034257600080fd5b5061035d600480360381019061035891906124f8565b610a6d565b60405161036a919061248a565b60405180910390f35b34801561037f57600080fd5b50610388610b27565b005b34801561039657600080fd5b5061039f610b3b565b6040516103ac919061232e565b60405180910390f35b3480156103c157600080fd5b506103ca610bc9565b6040516103d7919061232e565b60405180910390f35b3480156103ec57600080fd5b506103f5610c57565b60405161040291906123f4565b60405180910390f35b34801561041757600080fd5b50610420610c81565b60405161042d919061232e565b60405180910390f35b34801561044257600080fd5b5061045d60048036038101906104589190612551565b610d13565b005b34801561046b57600080fd5b5061048660048036038101906104819190612386565b610d29565b604051610493919061232e565b60405180910390f35b3480156104a857600080fd5b506104c360048036038101906104be91906126c6565b610e88565b005b3480156104d157600080fd5b506104ec60048036038101906104e79190612386565b610ea5565b6040516104f9919061232e565b60405180910390f35b34801561050e57600080fd5b5061052960048036038101906105249190612386565b610fb8565b005b34801561053757600080fd5b50610552600480360381019061054d9190612749565b611046565b60405161055f9190612283565b60405180910390f35b34801561057457600080fd5b5061058f600480360381019061058a91906124f8565b6110da565b005b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105eb57506105ea82611160565b5b9050919050565b606060008054610601906127b8565b80601f016020809104026020016040519081016040528092919081815260200182805461062d906127b8565b801561067a5780601f1061064f5761010080835404028352916020019161067a565b820191906000526020600020905b81548152906001019060200180831161065d57829003601f168201915b5050505050905090565b600061068f82611242565b50610699826112ca565b9050919050565b6106b282826106ad611307565b61130f565b5050565b60095481565b60085481565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107345760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161072b91906123f4565b60405180910390fd5b60006107488383610743611307565b611321565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146107be578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016107b5939291906127e9565b60405180910390fd5b50505050565b6107cc61153b565b60004703610806576040517f9c2891f200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610810610c57565b73ffffffffffffffffffffffffffffffffffffffff164760405161083390612851565b60006040518083038185875af1925050503d8060008114610870576040519150601f19603f3d011682016040523d82523d6000602084013e610875565b606091505b50509050806108b0576040517f6c6a117900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6108ce83838360405180602001604052806000815250610e88565b505050565b60095434101561091e57600954346040517f9f7b1624000000000000000000000000000000000000000000000000000000008152600401610915929190612866565b60405180910390fd5b61092a816008546115c2565b6109c0600854600a805461093d906127b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610969906127b8565b80156109b65780601f1061098b576101008083540402835291602001916109b6565b820191906000526020600020905b81548152906001019060200180831161099957829003601f168201915b50505050506115e0565b6001600d6000600854815260200190815260200160002060006101000a81548160ff0219169083151502179055506008548173ffffffffffffffffffffffffffffffffffffffff167fdf92894dc4675a7333caa5903b69cf5d8e8ec0d3f361c88207b6688e525703bb600a604051610a389190612928565b60405180910390a360086000815480929190610a5390612979565b919050555050565b6000610a6682611242565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ae05760006040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610ad791906123f4565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b2f61153b565b610b39600061163c565b565b600b8054610b48906127b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610b74906127b8565b8015610bc15780601f10610b9657610100808354040283529160200191610bc1565b820191906000526020600020905b815481529060010190602001808311610ba457829003601f168201915b505050505081565b600c8054610bd6906127b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610c02906127b8565b8015610c4f5780601f10610c2457610100808354040283529160200191610c4f565b820191906000526020600020905b815481529060010190602001808311610c3257829003601f168201915b505050505081565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610c90906127b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610cbc906127b8565b8015610d095780601f10610cde57610100808354040283529160200191610d09565b820191906000526020600020905b815481529060010190602001808311610cec57829003601f168201915b5050505050905090565b610d25610d1e611307565b8383611702565b5050565b606060001515600d600084815260200190815260200160002060009054906101000a900460ff16151503610d89576040517f946a178600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16610da983610a5b565b73ffffffffffffffffffffffffffffffffffffffff1614610df6576040517fa66a533800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a8054610e03906127b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2f906127b8565b8015610e7c5780601f10610e5157610100808354040283529160200191610e7c565b820191906000526020600020905b815481529060010190602001808311610e5f57829003601f168201915b50505050509050919050565b610e938484846106c2565b610e9f84848484611871565b50505050565b6060610eb082611242565b506000600660008481526020019081526020016000208054610ed1906127b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610efd906127b8565b8015610f4a5780601f10610f1f57610100808354040283529160200191610f4a565b820191906000526020600020905b815481529060010190602001808311610f2d57829003601f168201915b505050505090506000610f5b611a28565b90506000815103610f70578192505050610fb3565b600082511115610fa5578082604051602001610f8d9291906129fd565b60405160208183030381529060405292505050610fb3565b610fae84611a3f565b925050505b919050565b610fc061153b565b6000811161100557806040517fff76dc15000000000000000000000000000000000000000000000000000000008152600401610ffc919061248a565b60405180910390fd5b806009819055507fe427e272b122e738fd867ac5defcedb2bc9362341166a49d793d8b230f75670c8160405161103b919061248a565b60405180910390a150565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6110e261153b565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036111545760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161114b91906123f4565b60405180910390fd5b61115d8161163c565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061122b57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061123b575061123a82611aa8565b5b9050919050565b60008061124e83611b12565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112c157826040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016112b8919061248a565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b61131c8383836001611b4f565b505050565b60008061132d84611b12565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461136f5761136e818486611d14565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611400576113b1600085600080611b4f565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611483576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b611543611307565b73ffffffffffffffffffffffffffffffffffffffff16611561610c57565b73ffffffffffffffffffffffffffffffffffffffff16146115c057611584611307565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016115b791906123f4565b60405180910390fd5b565b6115dc828260405180602001604052806000815250611dd8565b5050565b806006600084815260200190815260200160002090816116009190612bb8565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce782604051611630919061248a565b60405180910390a15050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361177357816040517f5b08ba1800000000000000000000000000000000000000000000000000000000815260040161176a91906123f4565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516118649190612283565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b1115611a22578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026118b5611307565b8685856040518563ffffffff1660e01b81526004016118d79493929190612cdf565b6020604051808303816000875af192505050801561191357506040513d601f19601f820116820180604052508101906119109190612d40565b60015b611997573d8060008114611943576040519150601f19603f3d011682016040523d82523d6000602084013e611948565b606091505b50600081510361198f57836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161198691906123f4565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611a2057836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611a1791906123f4565b60405180910390fd5b505b50505050565b606060405180602001604052806000815250905090565b6060611a4a82611242565b506000611a55611a28565b90506000815111611a755760405180602001604052806000815250611aa0565b80611a7f84611df4565b604051602001611a909291906129fd565b6040516020818303038152906040525b915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080611b885750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611cbc576000611b9884611242565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c0357508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611c165750611c148184611046565b155b15611c5857826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611c4f91906123f4565b60405180910390fd5b8115611cba57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611d1f838383611ec2565b611dd357600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d9457806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611d8b919061248a565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611dca929190612d6d565b60405180910390fd5b505050565b611de28383611f83565b611def6000848484611871565b505050565b606060006001611e038461207c565b01905060008167ffffffffffffffff811115611e2257611e2161259b565b5b6040519080825280601f01601f191660200182016040528015611e545781602001600182028036833780820191505090505b509050600082602001820190505b600115611eb7578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611eab57611eaa612d96565b5b04945060008503611e62575b819350505050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f7a57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611f3b5750611f3a8484611046565b5b80611f7957508273ffffffffffffffffffffffffffffffffffffffff16611f61836112ca565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ff55760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611fec91906123f4565b60405180910390fd5b600061200383836000611321565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146120775760006040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161206e91906123f4565b60405180910390fd5b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106120da577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816120d0576120cf612d96565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612117576d04ee2d6d415b85acef8100000000838161210d5761210c612d96565b5b0492506020810190505b662386f26fc10000831061214657662386f26fc10000838161213c5761213b612d96565b5b0492506010810190505b6305f5e100831061216f576305f5e100838161216557612164612d96565b5b0492506008810190505b612710831061219457612710838161218a57612189612d96565b5b0492506004810190505b606483106121b757606483816121ad576121ac612d96565b5b0492506002810190505b600a83106121c6576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612218816121e3565b811461222357600080fd5b50565b6000813590506122358161220f565b92915050565b600060208284031215612251576122506121d9565b5b600061225f84828501612226565b91505092915050565b60008115159050919050565b61227d81612268565b82525050565b60006020820190506122986000830184612274565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122d85780820151818401526020810190506122bd565b60008484015250505050565b6000601f19601f8301169050919050565b60006123008261229e565b61230a81856122a9565b935061231a8185602086016122ba565b612323816122e4565b840191505092915050565b6000602082019050818103600083015261234881846122f5565b905092915050565b6000819050919050565b61236381612350565b811461236e57600080fd5b50565b6000813590506123808161235a565b92915050565b60006020828403121561239c5761239b6121d9565b5b60006123aa84828501612371565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123de826123b3565b9050919050565b6123ee816123d3565b82525050565b600060208201905061240960008301846123e5565b92915050565b612418816123d3565b811461242357600080fd5b50565b6000813590506124358161240f565b92915050565b60008060408385031215612452576124516121d9565b5b600061246085828601612426565b925050602061247185828601612371565b9150509250929050565b61248481612350565b82525050565b600060208201905061249f600083018461247b565b92915050565b6000806000606084860312156124be576124bd6121d9565b5b60006124cc86828701612426565b93505060206124dd86828701612426565b92505060406124ee86828701612371565b9150509250925092565b60006020828403121561250e5761250d6121d9565b5b600061251c84828501612426565b91505092915050565b61252e81612268565b811461253957600080fd5b50565b60008135905061254b81612525565b92915050565b60008060408385031215612568576125676121d9565b5b600061257685828601612426565b92505060206125878582860161253c565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6125d3826122e4565b810181811067ffffffffffffffff821117156125f2576125f161259b565b5b80604052505050565b60006126056121cf565b905061261182826125ca565b919050565b600067ffffffffffffffff8211156126315761263061259b565b5b61263a826122e4565b9050602081019050919050565b82818337600083830152505050565b600061266961266484612616565b6125fb565b90508281526020810184848401111561268557612684612596565b5b612690848285612647565b509392505050565b600082601f8301126126ad576126ac612591565b5b81356126bd848260208601612656565b91505092915050565b600080600080608085870312156126e0576126df6121d9565b5b60006126ee87828801612426565b94505060206126ff87828801612426565b935050604061271087828801612371565b925050606085013567ffffffffffffffff811115612731576127306121de565b5b61273d87828801612698565b91505092959194509250565b600080604083850312156127605761275f6121d9565b5b600061276e85828601612426565b925050602061277f85828601612426565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806127d057607f821691505b6020821081036127e3576127e2612789565b5b50919050565b60006060820190506127fe60008301866123e5565b61280b602083018561247b565b61281860408301846123e5565b949350505050565b600081905092915050565b50565b600061283b600083612820565b91506128468261282b565b600082019050919050565b600061285c8261282e565b9150819050919050565b600060408201905061287b600083018561247b565b612888602083018461247b565b9392505050565b60008190508160005260206000209050919050565b600081546128b1816127b8565b6128bb81866122a9565b945060018216600081146128d657600181146128ec5761291f565b60ff19831686528115156020028601935061291f565b6128f58561288f565b60005b83811015612917578154818901526001820191506020810190506128f8565b808801955050505b50505092915050565b6000602082019050818103600083015261294281846128a4565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061298482612350565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036129b6576129b561294a565b5b600182019050919050565b600081905092915050565b60006129d78261229e565b6129e181856129c1565b93506129f18185602086016122ba565b80840191505092915050565b6000612a0982856129cc565b9150612a1582846129cc565b91508190509392505050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612a6e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612a31565b612a788683612a31565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612ab5612ab0612aab84612350565b612a90565b612350565b9050919050565b6000819050919050565b612acf83612a9a565b612ae3612adb82612abc565b848454612a3e565b825550505050565b600090565b612af8612aeb565b612b03818484612ac6565b505050565b5b81811015612b2757612b1c600082612af0565b600181019050612b09565b5050565b601f821115612b6c57612b3d8161288f565b612b4684612a21565b81016020851015612b55578190505b612b69612b6185612a21565b830182612b08565b50505b505050565b600082821c905092915050565b6000612b8f60001984600802612b71565b1980831691505092915050565b6000612ba88383612b7e565b9150826002028217905092915050565b612bc18261229e565b67ffffffffffffffff811115612bda57612bd961259b565b5b612be482546127b8565b612bef828285612b2b565b600060209050601f831160018114612c225760008415612c10578287015190505b612c1a8582612b9c565b865550612c82565b601f198416612c308661288f565b60005b82811015612c5857848901518255600182019150602085019450602081019050612c33565b86831015612c755784890151612c71601f891682612b7e565b8355505b6001600288020188555050505b505050505050565b600081519050919050565b600082825260208201905092915050565b6000612cb182612c8a565b612cbb8185612c95565b9350612ccb8185602086016122ba565b612cd4816122e4565b840191505092915050565b6000608082019050612cf460008301876123e5565b612d0160208301866123e5565b612d0e604083018561247b565b8181036060830152612d208184612ca6565b905095945050505050565b600081519050612d3a8161220f565b92915050565b600060208284031215612d5657612d556121d9565b5b6000612d6484828501612d2b565b91505092915050565b6000604082019050612d8260008301856123e5565b612d8f602083018461247b565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea2646970667358221220272a15a09d278cfdde5e5994f1ca53a2921d204ea7408815a1bdda6863978aed64736f6c63430008180033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000000000000000000946696c65546f6b656e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002465400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077465737455524900000000000000000000000000000000000000000000000000