60806040526012805460ff1916905534801561001a57600080fd5b50604051613188380380613188833981016040819052610039916102be565b336040518060400160405280600f81526020016e02a3432902ab73232b93bb7b936321608d1b8152506040518060400160405280600a815260200169155391115495d3d4931160b21b815250816002908161009491906103a0565b5060036100a182826103a0565b50600160005550506001600160a01b0381166100d857604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6100e181610250565b506001600160a01b0383166101385760405162461bcd60e51b815260206004820152601e60248201527f54726561737572792061646472657373206d7573742062652076616c6964000060448201526064016100cf565b6001600160a01b03821661018e5760405162461bcd60e51b815260206004820152601f60248201527f526f79616c746965732061646472657373206d7573742062652076616c69640060448201526064016100cf565b6001600160a01b0381166101f85760405162461bcd60e51b815260206004820152602b60248201527f536e6170707953717565616c20636f6e74726163742061646472657373206d7560448201526a1cdd081899481d985b1a5960aa1b60648201526084016100cf565b600c80546001600160a01b039485166001600160a01b031991821617909155600d805493851693821693909317909255601480549190931691161790556108ae600a9081556618838370f34000600b55600e5561045e565b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80516001600160a01b03811681146102b957600080fd5b919050565b6000806000606084860312156102d357600080fd5b6102dc846102a2565b92506102ea602085016102a2565b91506102f8604085016102a2565b90509250925092565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061032b57607f821691505b60208210810361034b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561039b57806000526020600020601f840160051c810160208510156103785750805b601f840160051c820191505b818110156103985760008155600101610384565b50505b505050565b81516001600160401b038111156103b9576103b9610301565b6103cd816103c78454610317565b84610351565b6020601f82116001811461040157600083156103e95750848201515b600019600385901b1c1916600184901b178455610398565b600084815260208120601f198516915b828110156104315787850151825560209485019460019092019101610411565b508482101561044f5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b612d1b8061046d6000396000f3fe6080604052600436106102dc5760003560e01c8063841e456111610184578063c87b56dd116100d6578063e5a342a31161008a578063f103b43311610064578063f103b4331461086c578063f2fde38b1461088c578063fe23245a146108ac57600080fd5b8063e5a342a3146107d1578063e8a3d48514610801578063e985e9c51461081657600080fd5b8063d4adc1ec116100bb578063d4adc1ec1461076e578063d5abeb011461079b578063dc33e681146107b157600080fd5b8063c87b56dd14610738578063cafa8dfe1461075857600080fd5b806399317f8211610138578063a22cb46511610112578063a22cb465146106d5578063b88d4fde146106f5578063bb3ac7471461070857600080fd5b806399317f82146106855780639fd6db12146106a5578063a035b1fe146106bf57600080fd5b80638da5cb5b116101695780638da5cb5b14610625578063938e3d7b1461065057806395d89b411461067057600080fd5b8063841e4561146105e55780638d6cc56d1461060557600080fd5b8063468b7dca1161023d57806369261662116101f1578063715018a6116101cb578063715018a61461057457806375ccc132146105895780637d55094d146105d057600080fd5b8063692616621461051f5780636c0360eb1461053f57806370a082311461055457600080fd5b8063596efd0a11610222578063596efd0a146104b257806361d027b3146104d25780636352211e146104ff57600080fd5b8063468b7dca1461047257806355f804b31461049257600080fd5b80631d96a082116102945780632a55205a116102795780632a55205a146103fe5780633ccfd60b1461044a57806342842e0e1461045f57600080fd5b80631d96a082146103be57806323b872dd146103eb57600080fd5b8063081812fc116102c5578063081812fc14610338578063095ea7b31461037d57806318160ddd1461039257600080fd5b806301ffc9a7146102e157806306fdde0314610316575b600080fd5b3480156102ed57600080fd5b506103016102fc36600461247e565b6108bf565b60405190151581526020015b60405180910390f35b34801561032257600080fd5b5061032b61091b565b60405161030d9190612510565b34801561034457600080fd5b50610358610353366004612523565b6109ad565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161030d565b61039061038b36600461255e565b610a0e565b005b34801561039e57600080fd5b506103b0600154600054036000190190565b60405190815260200161030d565b3480156103ca57600080fd5b50600d546103589073ffffffffffffffffffffffffffffffffffffffff1681565b6103906103f936600461258a565b610abd565b34801561040a57600080fd5b5061041e6104193660046125cb565b610b53565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835260208301919091520161030d565b34801561045657600080fd5b50610390610b99565b61039061046d36600461258a565b610c4d565b34801561047e57600080fd5b5061039061048d3660046125ed565b610cde565b34801561049e57600080fd5b506103906104ad366004612723565b610d3c565b3480156104be57600080fd5b506103906104cd36600461276c565b610d50565b3480156104de57600080fd5b50600c546103589073ffffffffffffffffffffffffffffffffffffffff1681565b34801561050b57600080fd5b5061035861051a366004612523565b610e28565b34801561052b57600080fd5b5061039061053a366004612523565b610e33565b34801561054b57600080fd5b5061032b610e40565b34801561056057600080fd5b506103b061056f36600461276c565b610ece565b34801561058057600080fd5b50610390610f47565b34801561059557600080fd5b506103016105a436600461276c565b73ffffffffffffffffffffffffffffffffffffffff166000908152600f602052604090205460ff161590565b3480156105dc57600080fd5b50610390610f5b565b3480156105f157600080fd5b5061039061060036600461276c565b610f95565b34801561061157600080fd5b50610390610620366004612523565b610fe4565b34801561063157600080fd5b5060095473ffffffffffffffffffffffffffffffffffffffff16610358565b34801561065c57600080fd5b5061039061066b366004612723565b610ff1565b34801561067c57600080fd5b5061032b611005565b34801561069157600080fd5b506103906106a036600461276c565b611014565b3480156106b157600080fd5b506012546103019060ff1681565b3480156106cb57600080fd5b506103b0600b5481565b3480156106e157600080fd5b506103906106f03660046125ed565b611063565b610390610703366004612789565b611109565b34801561071457600080fd5b5061030161072336600461276c565b600f6020526000908152604090205460ff1681565b34801561074457600080fd5b5061032b610753366004612523565b6111a1565b34801561076457600080fd5b506103b0600e5481565b34801561077a57600080fd5b506014546103589073ffffffffffffffffffffffffffffffffffffffff1681565b3480156107a757600080fd5b506103b0600a5481565b3480156107bd57600080fd5b506103b06107cc36600461276c565b61127a565b3480156107dd57600080fd5b506103016107ec366004612523565b60136020526000908152604090205460ff1681565b34801561080d57600080fd5b5061032b6112b2565b34801561082257600080fd5b50610301610831366004612809565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260076020908152604080832093909416825291909152205460ff1690565b34801561087857600080fd5b50610390610887366004612523565b6112bf565b34801561089857600080fd5b506103906108a736600461276c565b611343565b6103906108ba366004612837565b6113a7565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f2a55205a00000000000000000000000000000000000000000000000000000000148061091557506109158261183e565b92915050565b60606002805461092a90612906565b80601f016020809104026020016040519081016040528092919081815260200182805461095690612906565b80156109a35780601f10610978576101008083540402835291602001916109a3565b820191906000526020600020905b81548152906001019060200180831161098657829003601f168201915b5050505050905090565b60006109b88261191f565b6109e5576109e57fcf4700e400000000000000000000000000000000000000000000000000000000611983565b5060009081526006602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600f602052604090205460ff1615610aaf5760405162461bcd60e51b815260206004820152602b60248201527f4f70657261746f72206e6f7420616c6c6f77656420746f20706572666f726d2060448201527f7468697320616374696f6e00000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610ab9828261198d565b5050565b336000908152600f602052604090205460ff1615610b435760405162461bcd60e51b815260206004820152602b60248201527f4f70657261746f72206e6f7420616c6c6f77656420746f20706572666f726d2060448201527f7468697320616374696f6e0000000000000000000000000000000000000000006064820152608401610aa6565b610b4e838383611999565b505050565b600d54600e54600091829173ffffffffffffffffffffffffffffffffffffffff90911690606490610b849086612988565b610b8e919061299f565b915091509250929050565b600c54604051479160009173ffffffffffffffffffffffffffffffffffffffff9091169083908381818185875af1925050503d8060008114610bf7576040519150601f19603f3d011682016040523d82523d6000602084013e610bfc565b606091505b5050905080610ab95760405162461bcd60e51b815260206004820152601260248201527f5769746864726177616c206661696c65642e00000000000000000000000000006044820152606401610aa6565b336000908152600f602052604090205460ff1615610cd35760405162461bcd60e51b815260206004820152602b60248201527f4f70657261746f72206e6f7420616c6c6f77656420746f20706572666f726d2060448201527f7468697320616374696f6e0000000000000000000000000000000000000000006064820152608401610aa6565b610b4e838383611bb9565b610ce6611bd4565b73ffffffffffffffffffffffffffffffffffffffff919091166000908152600f6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b610d44611bd4565b6011610ab98282612a21565b610d58611bd4565b73ffffffffffffffffffffffffffffffffffffffff8116610de15760405162461bcd60e51b815260206004820152602f60248201527f4e657720536e6170707953717565616c20636f6e74726163742061646472657360448201527f73206d7573742062652076616c696400000000000000000000000000000000006064820152608401610aa6565b601480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600061091582611c27565b610e3b611bd4565b600e55565b60118054610e4d90612906565b80601f0160208091040260200160405190810160405280929190818152602001828054610e7990612906565b8015610ec65780601f10610e9b57610100808354040283529160200191610ec6565b820191906000526020600020905b815481529060010190602001808311610ea957829003601f168201915b505050505081565b600073ffffffffffffffffffffffffffffffffffffffff8216610f1457610f147f8f4eb60400000000000000000000000000000000000000000000000000000000611983565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526005602052604090205467ffffffffffffffff1690565b610f4f611bd4565b610f596000611d3c565b565b610f63611bd4565b601280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00811660ff90911615179055565b610f9d611bd4565b600c80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610fec611bd4565b600b55565b610ff9611bd4565b6010610ab98282612a21565b60606003805461092a90612906565b61101c611bd4565b600d80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600f602052604090205460ff16156110ff5760405162461bcd60e51b815260206004820152602b60248201527f4f70657261746f72206e6f7420616c6c6f77656420746f20706572666f726d2060448201527f7468697320616374696f6e0000000000000000000000000000000000000000006064820152608401610aa6565b610ab98282611db3565b336000908152600f602052604090205460ff161561118f5760405162461bcd60e51b815260206004820152602b60248201527f4f70657261746f72206e6f7420616c6c6f77656420746f20706572666f726d2060448201527f7468697320616374696f6e0000000000000000000000000000000000000000006064820152608401610aa6565b61119b84848484611e4a565b50505050565b60606111ac8261191f565b61121e5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e00000000000000000000000000000000006064820152608401610aa6565b60006011805461122d90612906565b9050116112495760405180602001604052806000815250610915565b601161125483611eab565b604051602001611265929190612afe565b60405160208183030381529060405292915050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600560205260408082205467ffffffffffffffff911c16610915565b60108054610e4d90612906565b6112c7611bd4565b600a54811061133e5760405162461bcd60e51b815260206004820152603460248201527f4e6577206d617820737570706c79206d757374206265206c6f7765722074686160448201527f6e2063757272656e74206d617820737570706c790000000000000000000000006064820152608401610aa6565b600a55565b61134b611bd4565b73ffffffffffffffffffffffffffffffffffffffff811661139b576040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260006004820152602401610aa6565b6113a481611d3c565b50565b60125460ff166113f95760405162461bcd60e51b815260206004820152601c60248201527f4d696e74696e6720686173206e6f74206265656e20656e61626c6564000000006044820152606401610aa6565b600061140c600154600054036000190190565b600a5490915061141c8483612bca565b111561146a5760405162461bcd60e51b815260206004820152601c60248201527f546f74616c20537570706c7920686173206265656e206d696e746564000000006044820152606401610aa6565b600083116114ba5760405162461bcd60e51b815260206004820152601d60248201527f4d7573742073706563696679206174206c65617374203120746f6b656e0000006044820152606401610aa6565b6000805b83518110156116cb57601454845173ffffffffffffffffffffffffffffffffffffffff808916921690636352211e908790859081106114ff576114ff612bdd565b60200260200101516040518263ffffffff1660e01b815260040161152591815260200190565b602060405180830381865afa158015611542573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115669190612c0c565b73ffffffffffffffffffffffffffffffffffffffff16146115c95760405162461bcd60e51b815260206004820152601f60248201527f4d757374206f776e2074686520536e6170707953717565616c20746f6b656e006044820152606401610aa6565b601360008583815181106115df576115df612bdd565b60209081029190910181015182528101919091526040016000205460ff16156116705760405162461bcd60e51b815260206004820152602260248201527f536e6170707953717565616c20746f6b656e20616c726561647920636c61696d60448201527f65640000000000000000000000000000000000000000000000000000000000006064820152608401610aa6565b60016013600086848151811061168857611688612bdd565b6020026020010151815260200190815260200160002060006101000a81548160ff02191690831515021790555081806116c090612c29565b9250506001016114be565b50838111156117425760405162461bcd60e51b815260206004820152602a60248201527f46726565207175616e746974792063616e6e6f742065786365656420746f746160448201527f6c207175616e74697479000000000000000000000000000000000000000000006064820152608401610aa6565b600061174e8286612c43565b905080156117de5780600b546117649190612988565b3410156117d95760405162461bcd60e51b815260206004820152602160248201527f496e73756666696369656e7420616d6f756e74206f662065746865722073656e60448201527f74000000000000000000000000000000000000000000000000000000000000006064820152608401610aa6565b61182c565b341561182c5760405162461bcd60e51b815260206004820152601860248201527f45746865722073656e7420666f722066726565206d696e7400000000000000006044820152606401610aa6565b6118368686611f4b565b505050505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614806118d157507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b806109155750507fffffffff00000000000000000000000000000000000000000000000000000000167f5b5e139f000000000000000000000000000000000000000000000000000000001490565b60008160011161197e5760005482101561197e5760005b506000828152600460205260409020548061195b5761195483612c56565b9250611936565b7c0100000000000000000000000000000000000000000000000000000000161590505b919050565b8060005260046000fd5b610ab982826001611f65565b60006119a482611c27565b905073ffffffffffffffffffffffffffffffffffffffff80851690821681146119f0576119f07fa114810000000000000000000000000000000000000000000000000000000000611983565b600083815260066020526040902080543380821490841417611a6d5773ffffffffffffffffffffffffffffffffffffffff8716600090815260076020908152604080832033845290915290205460ff16611a6d57611a6d7f59c896be00000000000000000000000000000000000000000000000000000000611983565b8015611a7857600082555b73ffffffffffffffffffffffffffffffffffffffff8781166000908152600560205260408082208054600019019055918816808252919020805460010190554260a01b177c0200000000000000000000000000000000000000000000000000000000176000868152600460205260409020557c02000000000000000000000000000000000000000000000000000000008416611b425760018501600081815260046020526040902054611b40576000548114611b405760008181526004602052604090208590555b505b73ffffffffffffffffffffffffffffffffffffffff86168581857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a480611baf57611baf7fea553b3400000000000000000000000000000000000000000000000000000000611983565b5050505050505050565b610b4e83838360405180602001604052806000815250611109565b60095473ffffffffffffffffffffffffffffffffffffffff163314610f59576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610aa6565b600081600111611d13575060008181526004602052604090205480611cea576000548210611c7857611c787fdf2d9b4200000000000000000000000000000000000000000000000000000000611983565b5b50600019016000818152600460205260409020548015611c79577c01000000000000000000000000000000000000000000000000000000008116611cbc57919050565b611ce57fdf2d9b4200000000000000000000000000000000000000000000000000000000611983565b611c79565b7c01000000000000000000000000000000000000000000000000000000008116611d1357919050565b61197e7fdf2d9b4200000000000000000000000000000000000000000000000000000000611983565b6009805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b33600081815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b611e55848484610abd565b73ffffffffffffffffffffffffffffffffffffffff83163b1561119b57611e7e8484848461207d565b61119b5761119b7fd1a57ed600000000000000000000000000000000000000000000000000000000611983565b60606000611eb8836121eb565b600101905060008167ffffffffffffffff811115611ed857611ed861262b565b6040519080825280601f01601f191660200182016040528015611f02576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611f0c57509392505050565b610ab98282604051806020016040528060008152506122cd565b6000611f7083610e28565b9050818015611f9557503373ffffffffffffffffffffffffffffffffffffffff821614155b15611ffb5773ffffffffffffffffffffffffffffffffffffffff8116600090815260076020908152604080832033845290915290205460ff16611ffb57611ffb7fcfb3b94200000000000000000000000000000000000000000000000000000000611983565b60008381526006602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff88811691821790925591518693918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a450505050565b6040517f150b7a0200000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff85169063150b7a02906120d8903390899088908890600401612c6d565b6020604051808303816000875af1925050508015612131575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261212e91810190612cc8565b60015b61219c573d80801561215f576040519150601f19603f3d011682016040523d82523d6000602084013e612164565b606091505b508051612194576121947fd1a57ed600000000000000000000000000000000000000000000000000000000611983565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a02000000000000000000000000000000000000000000000000000000001490505b949350505050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612234577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310612260576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061227e57662386f26fc10000830492506010015b6305f5e1008310612296576305f5e100830492506008015b61271083106122aa57612710830492506004015b606483106122bc576064830492506002015b600a83106109155760010192915050565b6122d78383612357565b73ffffffffffffffffffffffffffffffffffffffff83163b15610b4e576000548281035b61230e600086838060010194508661207d565b61233b5761233b7fd1a57ed600000000000000000000000000000000000000000000000000000000611983565b8181106122fb57816000541461235057600080fd5b5050505050565b60005481612388576123887fb562e8dd00000000000000000000000000000000000000000000000000000000611983565b600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff87164260a01b6001881460e11b178117909155808452600590925290912080546801000000000000000185020190558061240b5761240b7f2e07630000000000000000000000000000000000000000000000000000000000611983565b818301825b808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4818160010191508103612410575060005550505050565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146113a457600080fd5b60006020828403121561249057600080fd5b813561249b81612450565b9392505050565b60005b838110156124bd5781810151838201526020016124a5565b50506000910152565b600081518084526124de8160208601602086016124a2565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061249b60208301846124c6565b60006020828403121561253557600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff811681146113a457600080fd5b6000806040838503121561257157600080fd5b823561257c8161253c565b946020939093013593505050565b60008060006060848603121561259f57600080fd5b83356125aa8161253c565b925060208401356125ba8161253c565b929592945050506040919091013590565b600080604083850312156125de57600080fd5b50508035926020909101359150565b6000806040838503121561260057600080fd5b823561260b8161253c565b91506020830135801515811461262057600080fd5b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156126a1576126a161262b565b604052919050565b60008067ffffffffffffffff8411156126c4576126c461262b565b50601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0166020016126f78161265a565b91505082815283838301111561270c57600080fd5b828260208301376000602084830101529392505050565b60006020828403121561273557600080fd5b813567ffffffffffffffff81111561274c57600080fd5b8201601f8101841361275d57600080fd5b6121e3848235602084016126a9565b60006020828403121561277e57600080fd5b813561249b8161253c565b6000806000806080858703121561279f57600080fd5b84356127aa8161253c565b935060208501356127ba8161253c565b925060408501359150606085013567ffffffffffffffff8111156127dd57600080fd5b8501601f810187136127ee57600080fd5b6127fd878235602084016126a9565b91505092959194509250565b6000806040838503121561281c57600080fd5b82356128278161253c565b915060208301356126208161253c565b60008060006060848603121561284c57600080fd5b83356128578161253c565b925060208401359150604084013567ffffffffffffffff81111561287a57600080fd5b8401601f8101861361288b57600080fd5b803567ffffffffffffffff8111156128a5576128a561262b565b8060051b6128b56020820161265a565b918252602081840181019290810190898411156128d157600080fd5b6020850194505b838510156128f7578435808352602095860195909350909101906128d8565b80955050505050509250925092565b600181811c9082168061291a57607f821691505b602082108103612953577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808202811582820484141761091557610915612959565b6000826129d5577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b601f821115610b4e57806000526020600020601f840160051c81016020851015612a015750805b601f840160051c820191505b818110156123505760008155600101612a0d565b815167ffffffffffffffff811115612a3b57612a3b61262b565b612a4f81612a498454612906565b846129da565b6020601f821160018114612a835760008315612a6b5750848201515b600019600385901b1c1916600184901b178455612350565b6000848152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b82811015612ad15787850151825560209485019460019092019101612ab1565b5084821015612aef5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6000808454612b0c81612906565b600182168015612b235760018114612b5657612b86565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0083168652811515820286019350612b86565b87600052602060002060005b83811015612b7e57815488820152600190910190602001612b62565b505081860193505b5050508351612b998183602088016124a2565b7f2e6a736f6e0000000000000000000000000000000000000000000000000000009101908152600501949350505050565b8082018082111561091557610915612959565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215612c1e57600080fd5b815161249b8161253c565b60006000198203612c3c57612c3c612959565b5060010190565b8181038181111561091557610915612959565b600081612c6557612c65612959565b506000190190565b73ffffffffffffffffffffffffffffffffffffffff8516815273ffffffffffffffffffffffffffffffffffffffff84166020820152826040820152608060608201526000612cbe60808301846124c6565b9695505050505050565b600060208284031215612cda57600080fd5b815161249b8161245056fea2646970667358221220bda475beb2e04d91410cfcda2de3eaa7382f11ca06f4b14141a96c4c74fca6fd64736f6c634300081c0033000000000000000000000000afb5cc55c672c123d5803a2352382d33aca65b95000000000000000000000000afb5cc55c672c123d5803a2352382d33aca65b95000000000000000000000000918ec957bc671da714ac80cf92c8ddefac9f5225