0x6080604052600436106100f75760003560e01c806385f8c2591161008a578063a9059cbb11610059578063a9059cbb14610435578063ad615dec1461045e578063c45a01551461049b578063d06ca61f146104c6576101a8565b806385f8c259146103535780638803dbee146103905780638e8b0e15146103cd57806395c89bc9146103f8576101a8565b806338ed1739116100c657806338ed1739146102805780633cabe617146102bd57806341876647146102ed5780635aec26c91461032a576101a8565b8063054d50d4146101ad57806306fd4ac5146101ea5780631f00ca741461021a57806323b872dd14610257576101a8565b366101a8577f0000000000000000000000007d72b22a74a216af4a002a1095c8c707d6ec1c5f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461015857610157614206565b5b3373ffffffffffffffffffffffffffffffffffffffff167fd6717f327e0cb88b4a97a7f67a453e9258252c34937ccbdd86de7cb840e7def33460405161019e919061424e565b60405180910390a2005b600080fd5b3480156101b957600080fd5b506101d460048036038101906101cf91906142a9565b610503565b6040516101e1919061424e565b60405180910390f35b61020460048036038101906101ff91906143bf565b610519565b6040516102119190614505565b60405180910390f35b34801561022657600080fd5b50610241600480360381019061023c9190614676565b61091f565b60405161024e9190614505565b60405180910390f35b34801561026357600080fd5b5061027e600480360381019061027991906146d2565b610954565b005b34801561028c57600080fd5b506102a760048036038101906102a29190614725565b610b7c565b6040516102b49190614505565b60405180910390f35b6102d760048036038101906102d291906143bf565b610e75565b6040516102e49190614505565b60405180910390f35b3480156102f957600080fd5b50610314600480360381019061030f9190614725565b6112c3565b6040516103219190614505565b60405180910390f35b34801561033657600080fd5b50610351600480360381019061034c919061484b565b611c45565b005b34801561035f57600080fd5b5061037a600480360381019061037591906142a9565b611d1f565b604051610387919061424e565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b29190614725565b611d35565b6040516103c49190614505565b60405180910390f35b3480156103d957600080fd5b506103e2611f67565b6040516103ef91906148ce565b60405180910390f35b34801561040457600080fd5b5061041f600480360381019061041a9190614725565b611f8b565b60405161042c9190614505565b60405180910390f35b34801561044157600080fd5b5061045c600480360381019061045791906148e9565b612b59565b005b34801561046a57600080fd5b50610485600480360381019061048091906142a9565b612d7e565b604051610492919061424e565b60405180910390f35b3480156104a757600080fd5b506104b0612d94565b6040516104bd91906148ce565b60405180910390f35b3480156104d257600080fd5b506104ed60048036038101906104e89190614676565b612db8565b6040516104fa9190614505565b60405180910390f35b6000610510848484612ded565b90509392505050565b6060814281101561055f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055690614986565b60405180910390fd5b7f0000000000000000000000007d72b22a74a216af4a002a1095c8c707d6ec1c5f73ffffffffffffffffffffffffffffffffffffffff16868660008181106105aa576105a96149a6565b5b90506020020160208101906105bf91906149d5565b73ffffffffffffffffffffffffffffffffffffffff1614610615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060c90614a4e565b60405180910390fd5b6106817f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a34888880806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050612ed7565b91508682600184516106939190614a9d565b815181106106a4576106a36149a6565b5b602002602001015110156106ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e490614b43565b60405180910390fd5b7f0000000000000000000000007d72b22a74a216af4a002a1095c8c707d6ec1c5f73ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061073d5761073c6149a6565b5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b15801561077057600080fd5b505af1158015610784573d6000803e3d6000fd5b50505050507f0000000000000000000000007d72b22a74a216af4a002a1095c8c707d6ec1c5f73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6108407f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a898960008181106107fd576107fc6149a6565b5b905060200201602081019061081291906149d5565b8a8a6001818110610826576108256149a6565b5b905060200201602081019061083b91906149d5565b613041565b84600081518110610854576108536149a6565b5b60200260200101516040518363ffffffff1660e01b8152600401610879929190614b63565b6020604051808303816000875af1158015610898573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bc9190614bc4565b6108c9576108c8614206565b5b61091582878780806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050866130b3565b5095945050505050565b606061094c7f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a84846132d9565b905092915050565b7375c6b85eb488c5fdf070a6848ce54db65c77882973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cd90614c3d565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b8152600401610a1191906148ce565b602060405180830381865afa158015610a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a529190614c72565b905080821015610a60578190505b60008111610aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9a90614c3d565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166323b872dd8573a811c4a7effdddacd4732314de1eeac11e951432846040518463ffffffff1660e01b8152600401610af493929190614c9f565b6020604051808303816000875af1158015610b13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b379190614bc4565b610b76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6d90614c3d565b60405180910390fd5b50505050565b60608142811015610bc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb990614986565b60405180910390fd5b600080610bd18a8a8a8a61344b565b9150915089821115610be4578991508890505b73cd51c15e940a9feb43551c4b8c5c5c049831013773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5d90614a4e565b60405180910390fd5b610cd27f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a838a8a80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050612ed7565b935087876000818110610ce857610ce76149a6565b5b9050602002016020810190610cfd91906149d5565b73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610d937f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a8b8b6000818110610d5057610d4f6149a6565b5b9050602002016020810190610d6591906149d5565b8c8c6001818110610d7957610d786149a6565b5b9050602002016020810190610d8e91906149d5565b613041565b86600081518110610da757610da66149a6565b5b60200260200101516040518363ffffffff1660e01b8152600401610dcc929190614b63565b6020604051808303816000875af1158015610deb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0f9190614bc4565b610e1c57610e1b614206565b5b610e6884898980806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050306130b3565b5050509695505050505050565b60608142811015610ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb290614986565b60405180910390fd5b7f0000000000000000000000007d72b22a74a216af4a002a1095c8c707d6ec1c5f73ffffffffffffffffffffffffffffffffffffffff1686866000818110610f0657610f056149a6565b5b9050602002016020810190610f1b91906149d5565b73ffffffffffffffffffffffffffffffffffffffff1614610f71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6890614a4e565b60405180910390fd5b610fdd7f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a88888880806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506132d9565b91503482600081518110610ff457610ff36149a6565b5b6020026020010151111561103d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103490614d48565b60405180910390fd5b7f0000000000000000000000007d72b22a74a216af4a002a1095c8c707d6ec1c5f73ffffffffffffffffffffffffffffffffffffffff1663d0e30db08360008151811061108d5761108c6149a6565b5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b1580156110c057600080fd5b505af11580156110d4573d6000803e3d6000fd5b50505050507f0000000000000000000000007d72b22a74a216af4a002a1095c8c707d6ec1c5f73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6111907f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a8989600081811061114d5761114c6149a6565b5b905060200201602081019061116291906149d5565b8a8a6001818110611176576111756149a6565b5b905060200201602081019061118b91906149d5565b613041565b846000815181106111a4576111a36149a6565b5b60200260200101516040518363ffffffff1660e01b81526004016111c9929190614b63565b6020604051808303816000875af11580156111e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120c9190614bc4565b61121957611218614206565b5b61126582878780806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050866130b3565b81600081518110611279576112786149a6565b5b60200260200101513411156112b9576112b833836000815181106112a05761129f6149a6565b5b6020026020010151346112b39190614a9d565b613598565b5b5095945050505050565b60608142811015611309576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130090614986565b60405180910390fd5b73a9cf76eefc121cbd108d490201562c4671c2621973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461138b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138290614c3d565b60405180910390fd5b60008061139a8a8a8a8a613698565b91509150898211156119cb57898a836113b39190614a9d565b1115611687576114257f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a8b8a8a80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050612ed7565b93508787600081811061143b5761143a6149a6565b5b905060200201602081019061145091906149d5565b73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6114e67f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a8b8b60008181106114a3576114a26149a6565b5b90506020020160208101906114b891906149d5565b8c8c60018181106114cc576114cb6149a6565b5b90506020020160208101906114e191906149d5565b613041565b866000815181106114fa576114f96149a6565b5b60200260200101516040518363ffffffff1660e01b815260040161151f929190614b63565b6020604051808303816000875af115801561153e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115629190614bc4565b61156f5761156e614206565b5b6115bb84898980806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050306130b3565b83600185516115ca9190614a9d565b815181106115db576115da6149a6565b5b60200260200101519150739309c364d4162a1b20802efcf010501b42e1afaf73ffffffffffffffffffffffffffffffffffffffff1663128acb08306001856402540be4006040518563ffffffff1660e01b815260040161163e9493929190614e02565b60408051808303816000875af115801561165c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116809190614e6f565b50506119c6565b6116f37f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a8b8a8a80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050612ed7565b93508884600186516117059190614a9d565b81518110611716576117156149a6565b5b6020026020010151101561175f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175690614b43565b60405180910390fd5b87876000818110611773576117726149a6565b5b905060200201602081019061178891906149d5565b73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61181e7f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a8b8b60008181106117db576117da6149a6565b5b90506020020160208101906117f091906149d5565b8c8c6001818110611804576118036149a6565b5b905060200201602081019061181991906149d5565b613041565b86600081518110611832576118316149a6565b5b60200260200101516040518363ffffffff1660e01b8152600401611857929190614b63565b6020604051808303816000875af1158015611876573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189a9190614bc4565b6118a7576118a6614206565b5b6118f384898980806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050306130b3565b739309c364d4162a1b20802efcf010501b42e1afaf73ffffffffffffffffffffffffffffffffffffffff1663128acb083060018d866119329190614a9d565b61193b90614eaf565b6402540be4003360405160200161195291906148ce565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401611981959493929190614f6f565b60408051808303816000875af115801561199f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c39190614e6f565b50505b611c38565b611a377f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a838a8a80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050612ed7565b9350808460018651611a499190614a9d565b81518110611a5a57611a596149a6565b5b60200260200101511015611aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9a90614b43565b60405180910390fd5b87876000818110611ab757611ab66149a6565b5b9050602002016020810190611acc91906149d5565b73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611b627f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a8b8b6000818110611b1f57611b1e6149a6565b5b9050602002016020810190611b3491906149d5565b8c8c6001818110611b4857611b476149a6565b5b9050602002016020810190611b5d91906149d5565b613041565b86600081518110611b7657611b756149a6565b5b60200260200101516040518363ffffffff1660e01b8152600401611b9b929190614b63565b6020604051808303816000875af1158015611bba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bde9190614bc4565b611beb57611bea614206565b5b611c3784898980806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050306130b3565b5b5050509695505050505050565b739309c364d4162a1b20802efcf010501b42e1afaf73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611cc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbe90615015565b60405180910390fd5b6000841315611cf057611cef737d72b22a74a216af4a002a1095c8c707d6ec1c5f33866138c3565b5b6000831315611d1957611d18738e81fcc2d4a3baa0ee9044e0d7e36f59c9bba9c133856138c3565b5b50505050565b6000611d2c8484846139f9565b90509392505050565b60608142811015611d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7290614986565b60405180910390fd5b611de77f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a89888880806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506132d9565b91508682600081518110611dfe57611dfd6149a6565b5b60200260200101511115611e47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3e90614d48565b60405180910390fd5b611f1086866000818110611e5e57611e5d6149a6565b5b9050602002016020810190611e7391906149d5565b33611eef7f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a8a8a6000818110611eac57611eab6149a6565b5b9050602002016020810190611ec191906149d5565b8b8b6001818110611ed557611ed46149a6565b5b9050602002016020810190611eea91906149d5565b613041565b85600081518110611f0357611f026149a6565b5b6020026020010151613ae9565b611f5c82878780806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050866130b3565b509695505050505050565b7f0000000000000000000000007d72b22a74a216af4a002a1095c8c707d6ec1c5f81565b60608142811015611fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc890614986565b60405180910390fd5b73a9cf76eefc121cbd108d490201562c4671c2621973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204a90614a4e565b60405180910390fd5b600061205d613c22565b9050888111156128e05760008914156123485760028161207d9190615064565b98506000739309c364d4162a1b20802efcf010501b42e1afaf73ffffffffffffffffffffffffffffffffffffffff1663128acb083060008d6120be90614eaf565b73fffd8963efd1fc6a506488495d951d5263988d256040518563ffffffff1660e01b81526004016120f294939291906150d0565b60408051808303816000875af1158015612110573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121349190614e6f565b5090506121ac7f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a8261216590614eaf565b8a8a80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050612ed7565b9350878760008181106121c2576121c16149a6565b5b90506020020160208101906121d791906149d5565b73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61226d7f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a8b8b600081811061222a576122296149a6565b5b905060200201602081019061223f91906149d5565b8c8c6001818110612253576122526149a6565b5b905060200201602081019061226891906149d5565b613041565b86600081518110612281576122806149a6565b5b60200260200101516040518363ffffffff1660e01b81526004016122a6929190614b63565b6020604051808303816000875af11580156122c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e99190614bc4565b6122f6576122f5614206565b5b61234284898980806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050306130b3565b506128db565b8889826123559190614a9d565b111561258c576123c77f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a8a898980806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050612ed7565b9250868660008181106123dd576123dc6149a6565b5b90506020020160208101906123f291906149d5565b73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6124887f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a8a8a6000818110612445576124446149a6565b5b905060200201602081019061245a91906149d5565b8b8b600181811061246e5761246d6149a6565b5b905060200201602081019061248391906149d5565b613041565b8560008151811061249c5761249b6149a6565b5b60200260200101516040518363ffffffff1660e01b81526004016124c1929190614b63565b6020604051808303816000875af11580156124e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125049190614bc4565b61251157612510614206565b5b61255d83888880806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050306130b3565b826001845161256c9190614a9d565b8151811061257d5761257c6149a6565b5b602002602001015190506128da565b6125f87f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a8a898980806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050612ed7565b925087836001855161260a9190614a9d565b8151811061261b5761261a6149a6565b5b60200260200101511015612664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265b90614b43565b60405180910390fd5b86866000818110612678576126776149a6565b5b905060200201602081019061268d91906149d5565b73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6127237f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a8a8a60008181106126e0576126df6149a6565b5b90506020020160208101906126f591906149d5565b8b8b6001818110612709576127086149a6565b5b905060200201602081019061271e91906149d5565b613041565b85600081518110612737576127366149a6565b5b60200260200101516040518363ffffffff1660e01b815260040161275c929190614b63565b6020604051808303816000875af115801561277b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061279f9190614bc4565b6127ac576127ab614206565b5b6127f883888880806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050306130b3565b739309c364d4162a1b20802efcf010501b42e1afaf73ffffffffffffffffffffffffffffffffffffffff1663128acb083060008c856128379190614a9d565b61284090614eaf565b73fffd8963efd1fc6a506488495d951d5263988d253360405160200161286691906148ce565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401612895959493929190615128565b60408051808303816000875af11580156128b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128d79190614e6f565b50505b5b612b4d565b61294c7f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a82898980806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050612ed7565b925087836001855161295e9190614a9d565b8151811061296f5761296e6149a6565b5b602002602001015110156129b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129af90614b43565b60405180910390fd5b868660008181106129cc576129cb6149a6565b5b90506020020160208101906129e191906149d5565b73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb612a777f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a8a8a6000818110612a3457612a336149a6565b5b9050602002016020810190612a4991906149d5565b8b8b6001818110612a5d57612a5c6149a6565b5b9050602002016020810190612a7291906149d5565b613041565b85600081518110612a8b57612a8a6149a6565b5b60200260200101516040518363ffffffff1660e01b8152600401612ab0929190614b63565b6020604051808303816000875af1158015612acf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612af39190614bc4565b612b0057612aff614206565b5b612b4c83888880806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050306130b3565b5b50509695505050505050565b7375c6b85eb488c5fdf070a6848ce54db65c77882973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd290614c3d565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612c1691906148ce565b602060405180830381865afa158015612c33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c579190614c72565b905080821015612c65578190505b60008211612ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c9f90614c3d565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb73a811c4a7effdddacd4732314de1eeac11e951432836040518363ffffffff1660e01b8152600401612cf7929190614b63565b6020604051808303816000875af1158015612d16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d3a9190614bc4565b612d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7090614c3d565b60405180910390fd5b505050565b6000612d8b848484613dea565b90509392505050565b7f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a81565b6060612de57f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a8484612ed7565b905092915050565b6000808411612e31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e28906151f4565b60405180910390fd5b600083118015612e415750600082115b612e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e7790615286565b60405180910390fd5b60006126f785612e9091906152a6565b905060008382612ea091906152a6565b905060008261271087612eb391906152a6565b612ebd9190615300565b90508082612ecb9190615064565b93505050509392505050565b6060600282511015612f1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f15906153a2565b60405180910390fd5b815167ffffffffffffffff811115612f3957612f38614538565b5b604051908082528060200260200182016040528015612f675781602001602082028036833780820191505090505b5090508281600081518110612f7f57612f7e6149a6565b5b60200260200101818152505060005b600183510381101561303957600080612fdf87868581518110612fb457612fb36149a6565b5b6020026020010151876001870181518110612fd257612fd16149a6565b5b6020026020010151613e9d565b91509150613008848481518110612ff957612ff86149a6565b5b60200260200101518383612ded565b84600185018151811061301e5761301d6149a6565b5b60200260200101818152505050508080600101915050612f8e565b509392505050565b60008060006130508585613fa0565b9150915085828260405160200161306892919061540a565b6040516020818303038152906040528051906020012060405160200161308f929190615504565b6040516020818303038152906040528051906020012060001c925050509392505050565b60005b60018351038110156132d3576000808483815181106130d8576130d76149a6565b5b60200260200101518560018501815181106130f6576130f56149a6565b5b602002602001015191509150600061310e8383613fa0565b5090506000876001860181518110613129576131286149a6565b5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461317157826000613175565b6000835b91509150600060028a5103881061318c57886131d5565b6131d47f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a878c60028c01815181106131c7576131c66149a6565b5b6020026020010151613041565b5b90506132027f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a8888613041565b73ffffffffffffffffffffffffffffffffffffffff1663022c0d9f848484600067ffffffffffffffff81111561323b5761323a614538565b5b6040519080825280601f01601f19166020018201604052801561326d5781602001600182028036833780820191505090505b506040518563ffffffff1660e01b815260040161328d9493929190615546565b600060405180830381600087803b1580156132a757600080fd5b505af11580156132bb573d6000803e3d6000fd5b505050505050505050505080806001019150506130b6565b50505050565b6060600282511015613320576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613317906153a2565b60405180910390fd5b815167ffffffffffffffff81111561333b5761333a614538565b5b6040519080825280602002602001820160405280156133695781602001602082028036833780820191505090505b5090508281600183510381518110613384576133836149a6565b5b6020026020010181815250506000600183510390505b6000811115613443576000806133e8878660018603815181106133c0576133bf6149a6565b5b60200260200101518786815181106133db576133da6149a6565b5b6020026020010151613e9d565b91509150613411848481518110613402576134016149a6565b5b602002602001015183836139f9565b846001850381518110613427576134266149a6565b5b602002602001018181525050505080806001900391505061339a565b509392505050565b6000806000806134cc7f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a87876000818110613489576134886149a6565b5b905060200201602081019061349e91906149d5565b888860018181106134b2576134b16149a6565b5b90506020020160208101906134c791906149d5565b613e9d565b9150915060006134fa826134ec620f4240866140ce90919063ffffffff16565b61414990919063ffffffff16565b9050600061352689613518620f387c8d6140ce90919063ffffffff16565b61414990919063ffffffff16565b9050613562621e84806135548561354686866141a790919063ffffffff16565b6140ce90919063ffffffff16565b61414990919063ffffffff16565b95506135898a61357b8b896140ce90919063ffffffff16565b61414990919063ffffffff16565b94505050505094509492505050565b60008273ffffffffffffffffffffffffffffffffffffffff1682600067ffffffffffffffff8111156135cd576135cc614538565b5b6040519080825280601f01601f1916602001820160405280156135ff5781602001600182028036833780820191505090505b5060405161360d91906155ce565b60006040518083038185875af1925050503d806000811461364a576040519150601f19603f3d011682016040523d82523d6000602084013e61364f565b606091505b5050905080613693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161368a90615657565b60405180910390fd5b505050565b6000806000739309c364d4162a1b20802efcf010501b42e1afaf73ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa1580156136fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613720919061574f565b50505050505073ffffffffffffffffffffffffffffffffffffffff1690506000806137bc7f000000000000000000000000e1f36c7b919c9f893e2cd30b471434aa2494664a88886000818110613779576137786149a6565b5b905060200201602081019061378e91906149d5565b898960018181106137a2576137a16149a6565b5b90506020020160208101906137b791906149d5565b613e9d565b9150915060006137ea6137db620f4df88461414990919063ffffffff16565b8461414990919063ffffffff16565b905060006138236c01000000000000000000000000613815620f4240886140ce90919063ffffffff16565b61414990919063ffffffff16565b9050600061384f620f424061384184856140ce90919063ffffffff16565b61414990919063ffffffff16565b905061388b621e848061387d8661386f87866141a790919063ffffffff16565b6140ce90919063ffffffff16565b61414990919063ffffffff16565b97506138b28c6138a48d8b6140ce90919063ffffffff16565b61414990919063ffffffff16565b965050505050505094509492505050565b6000808473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85856040516024016138f5929190614b63565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161394391906155ce565b6000604051808303816000865af19150503d8060008114613980576040519150601f19603f3d011682016040523d82523d6000602084013e613985565b606091505b50915091508180156139b357506000815114806139b25750808060200190518101906139b19190614bc4565b5b5b6139f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139e990615863565b60405180910390fd5b5050505050565b6000808411613a3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a34906158f5565b60405180910390fd5b600083118015613a4d5750600082115b613a8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a8390615286565b60405180910390fd5b60006127108585613a9d91906152a6565b613aa791906152a6565b905060006126f78685613aba9190614a9d565b613ac491906152a6565b905060018183613ad49190615064565b613ade9190615300565b925050509392505050565b6000808573ffffffffffffffffffffffffffffffffffffffff166323b872dd868686604051602401613b1d93929190614c9f565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051613b6b91906155ce565b6000604051808303816000865af19150503d8060008114613ba8576040519150601f19603f3d011682016040523d82523d6000602084013e613bad565b606091505b5091509150818015613bdb5750600081511480613bda575080806020019051810190613bd99190614bc4565b5b5b613c1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c1190615987565b60405180910390fd5b505050505050565b600080739309c364d4162a1b20802efcf010501b42e1afaf73ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015613c84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ca8919061574f565b50505050505073ffffffffffffffffffffffffffffffffffffffff169050600080613d1073e1f36c7b919c9f893e2cd30b471434aa2494664a737d72b22a74a216af4a002a1095c8c707d6ec1c5f738e81fcc2d4a3baa0ee9044e0d7e36f59c9bba9c1613e9d565b915091506000613d3e613d2f620f36888461414990919063ffffffff16565b8461414990919063ffffffff16565b90506000613d776c01000000000000000000000000613d69620f4240886140ce90919063ffffffff16565b61414990919063ffffffff16565b90506000613da3620f4240613d9584856140ce90919063ffffffff16565b61414990919063ffffffff16565b9050613ddf621e8480613dd186613dc385886141a790919063ffffffff16565b6140ce90919063ffffffff16565b61414990919063ffffffff16565b965050505050505090565b6000808411613e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e2590615a19565b60405180910390fd5b600083118015613e3e5750600082115b613e7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e7490615286565b60405180910390fd5b828285613e8a91906152a6565b613e949190615064565b90509392505050565b6000806000613eac8585613fa0565b509050600080613ebd888888613041565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015613f07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f2b9190615abb565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691508273ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614613f8a578082613f8d565b81815b8095508196505050505050935093915050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614012576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161400990615b80565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161061404c57828461404f565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156140c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016140be90615bec565b60405180910390fd5b9250929050565b6000808314156140e15760009050614143565b600082846140ef91906152a6565b90508284826140fe9190615064565b1461413e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161413590615c7e565b60405180910390fd5b809150505b92915050565b600080821161418d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161418490615cea565b60405180910390fd5b6000828461419b9190615064565b90508091505092915050565b6000828211156141ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016141e390615d56565b60405180910390fd5b600082846141fa9190614a9d565b90508091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b6000819050919050565b61424881614235565b82525050565b6000602082019050614263600083018461423f565b92915050565b6000604051905090565b600080fd5b600080fd5b61428681614235565b811461429157600080fd5b50565b6000813590506142a38161427d565b92915050565b6000806000606084860312156142c2576142c1614273565b5b60006142d086828701614294565b93505060206142e186828701614294565b92505060406142f286828701614294565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f840112614321576143206142fc565b5b8235905067ffffffffffffffff81111561433e5761433d614301565b5b60208301915083602082028301111561435a57614359614306565b5b9250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061438c82614361565b9050919050565b61439c81614381565b81146143a757600080fd5b50565b6000813590506143b981614393565b92915050565b6000806000806000608086880312156143db576143da614273565b5b60006143e988828901614294565b955050602086013567ffffffffffffffff81111561440a57614409614278565b5b6144168882890161430b565b94509450506040614429888289016143aa565b925050606061443a88828901614294565b9150509295509295909350565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61447c81614235565b82525050565b600061448e8383614473565b60208301905092915050565b6000602082019050919050565b60006144b282614447565b6144bc8185614452565b93506144c783614463565b8060005b838110156144f85781516144df8882614482565b97506144ea8361449a565b9250506001810190506144cb565b5085935050505092915050565b6000602082019050818103600083015261451f81846144a7565b905092915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61457082614527565b810181811067ffffffffffffffff8211171561458f5761458e614538565b5b80604052505050565b60006145a2614269565b90506145ae8282614567565b919050565b600067ffffffffffffffff8211156145ce576145cd614538565b5b602082029050602081019050919050565b60006145f26145ed846145b3565b614598565b9050808382526020820190506020840283018581111561461557614614614306565b5b835b8181101561463e578061462a88826143aa565b845260208401935050602081019050614617565b5050509392505050565b600082601f83011261465d5761465c6142fc565b5b813561466d8482602086016145df565b91505092915050565b6000806040838503121561468d5761468c614273565b5b600061469b85828601614294565b925050602083013567ffffffffffffffff8111156146bc576146bb614278565b5b6146c885828601614648565b9150509250929050565b6000806000606084860312156146eb576146ea614273565b5b60006146f9868287016143aa565b935050602061470a868287016143aa565b925050604061471b86828701614294565b9150509250925092565b60008060008060008060a0878903121561474257614741614273565b5b600061475089828a01614294565b965050602061476189828a01614294565b955050604087013567ffffffffffffffff81111561478257614781614278565b5b61478e89828a0161430b565b945094505060606147a189828a016143aa565b92505060806147b289828a01614294565b9150509295509295509295565b6000819050919050565b6147d2816147bf565b81146147dd57600080fd5b50565b6000813590506147ef816147c9565b92915050565b60008083601f84011261480b5761480a6142fc565b5b8235905067ffffffffffffffff81111561482857614827614301565b5b60208301915083600182028301111561484457614843614306565b5b9250929050565b6000806000806060858703121561486557614864614273565b5b6000614873878288016147e0565b9450506020614884878288016147e0565b935050604085013567ffffffffffffffff8111156148a5576148a4614278565b5b6148b1878288016147f5565b925092505092959194509250565b6148c881614381565b82525050565b60006020820190506148e360008301846148bf565b92915050565b60008060408385031215614900576148ff614273565b5b600061490e858286016143aa565b925050602061491f85828601614294565b9150509250929050565b600082825260208201905092915050565b7f576573776170526f757465723a20455850495245440000000000000000000000600082015250565b6000614970601583614929565b915061497b8261493a565b602082019050919050565b6000602082019050818103600083015261499f81614963565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156149eb576149ea614273565b5b60006149f9848285016143aa565b91505092915050565b7f576573776170526f757465723a20494e56414c49445f50415448000000000000600082015250565b6000614a38601a83614929565b9150614a4382614a02565b602082019050919050565b60006020820190508181036000830152614a6781614a2b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614aa882614235565b9150614ab383614235565b925082821015614ac657614ac5614a6e565b5b828203905092915050565b7f576573776170526f757465723a20494e53554646494349454e545f4f5554505560008201527f545f414d4f554e54000000000000000000000000000000000000000000000000602082015250565b6000614b2d602883614929565b9150614b3882614ad1565b604082019050919050565b60006020820190508181036000830152614b5c81614b20565b9050919050565b6000604082019050614b7860008301856148bf565b614b85602083018461423f565b9392505050565b60008115159050919050565b614ba181614b8c565b8114614bac57600080fd5b50565b600081519050614bbe81614b98565b92915050565b600060208284031215614bda57614bd9614273565b5b6000614be884828501614baf565b91505092915050565b7f6572720000000000000000000000000000000000000000000000000000000000600082015250565b6000614c27600383614929565b9150614c3282614bf1565b602082019050919050565b60006020820190508181036000830152614c5681614c1a565b9050919050565b600081519050614c6c8161427d565b92915050565b600060208284031215614c8857614c87614273565b5b6000614c9684828501614c5d565b91505092915050565b6000606082019050614cb460008301866148bf565b614cc160208301856148bf565b614cce604083018461423f565b949350505050565b7f576573776170526f757465723a204558434553534956455f494e5055545f414d60008201527f4f554e5400000000000000000000000000000000000000000000000000000000602082015250565b6000614d32602483614929565b9150614d3d82614cd6565b604082019050919050565b60006020820190508181036000830152614d6181614d25565b9050919050565b614d7181614b8c565b82525050565b614d80816147bf565b82525050565b6000819050919050565b6000819050919050565b6000614db5614db0614dab84614d86565b614d90565b614361565b9050919050565b614dc581614d9a565b82525050565b600082825260208201905092915050565b50565b6000614dec600083614dcb565b9150614df782614ddc565b600082019050919050565b600060a082019050614e1760008301876148bf565b614e246020830186614d68565b614e316040830185614d77565b614e3e6060830184614dbc565b8181036080830152614e4f81614ddf565b905095945050505050565b600081519050614e69816147c9565b92915050565b60008060408385031215614e8657614e85614273565b5b6000614e9485828601614e5a565b9250506020614ea585828601614e5a565b9150509250929050565b6000614eba826147bf565b91507f8000000000000000000000000000000000000000000000000000000000000000821415614eed57614eec614a6e565b5b816000039050919050565b600081519050919050565b60005b83811015614f21578082015181840152602081019050614f06565b83811115614f30576000848401525b50505050565b6000614f4182614ef8565b614f4b8185614dcb565b9350614f5b818560208601614f03565b614f6481614527565b840191505092915050565b600060a082019050614f8460008301886148bf565b614f916020830187614d68565b614f9e6040830186614d77565b614fab6060830185614dbc565b8181036080830152614fbd8184614f36565b90509695505050505050565b7f496e76616c69642073656e646572000000000000000000000000000000000000600082015250565b6000614fff600e83614929565b915061500a82614fc9565b602082019050919050565b6000602082019050818103600083015261502e81614ff2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061506f82614235565b915061507a83614235565b92508261508a57615089615035565b5b828204905092915050565b6000819050919050565b60006150ba6150b56150b084615095565b614d90565b614361565b9050919050565b6150ca8161509f565b82525050565b600060a0820190506150e560008301876148bf565b6150f26020830186614d68565b6150ff6040830185614d77565b61510c60608301846150c1565b818103608083015261511d81614ddf565b905095945050505050565b600060a08201905061513d60008301886148bf565b61514a6020830187614d68565b6151576040830186614d77565b61516460608301856150c1565b81810360808301526151768184614f36565b90509695505050505050565b7f5765737761704c6962726172793a20494e53554646494349454e545f494e505560008201527f545f414d4f554e54000000000000000000000000000000000000000000000000602082015250565b60006151de602883614929565b91506151e982615182565b604082019050919050565b6000602082019050818103600083015261520d816151d1565b9050919050565b7f5765737761704c6962726172793a20494e53554646494349454e545f4c49515560008201527f4944495459000000000000000000000000000000000000000000000000000000602082015250565b6000615270602583614929565b915061527b82615214565b604082019050919050565b6000602082019050818103600083015261529f81615263565b9050919050565b60006152b182614235565b91506152bc83614235565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156152f5576152f4614a6e565b5b828202905092915050565b600061530b82614235565b915061531683614235565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561534b5761534a614a6e565b5b828201905092915050565b7f5765737761704c6962726172793a20494e56414c49445f504154480000000000600082015250565b600061538c601b83614929565b915061539782615356565b602082019050919050565b600060208201905081810360008301526153bb8161537f565b9050919050565b60008160601b9050919050565b60006153da826153c2565b9050919050565b60006153ec826153cf565b9050919050565b6154046153ff82614381565b6153e1565b82525050565b600061541682856153f3565b60148201915061542682846153f3565b6014820191508190509392505050565b600081905092915050565b7fff00000000000000000000000000000000000000000000000000000000000000600082015250565b6000615477600183615436565b915061548282615441565b600182019050919050565b6000819050919050565b6000819050919050565b6154b26154ad8261548d565b615497565b82525050565b7f537d8d504e4ada480625c407dbcb60ccf75ce650821f0c58561d19e3be6f64ce600082015250565b60006154ee602083615436565b91506154f9826154b8565b602082019050919050565b600061550f8261546a565b915061551b82856153f3565b60148201915061552b82846154a1565b60208201915061553a826154e1565b91508190509392505050565b600060808201905061555b600083018761423f565b615568602083018661423f565b61557560408301856148bf565b81810360608301526155878184614f36565b905095945050505050565b600081905092915050565b60006155a882614ef8565b6155b28185615592565b93506155c2818560208601614f03565b80840191505092915050565b60006155da828461559d565b915081905092915050565b7f5472616e7366657248656c7065723a3a736166655472616e7366657257454d4960008201527f583a2057454d4958207472616e73666572206661696c65640000000000000000602082015250565b6000615641603883614929565b915061564c826155e5565b604082019050919050565b6000602082019050818103600083015261567081615634565b9050919050565b61568081614361565b811461568b57600080fd5b50565b60008151905061569d81615677565b92915050565b60008160020b9050919050565b6156b9816156a3565b81146156c457600080fd5b50565b6000815190506156d6816156b0565b92915050565b600061ffff82169050919050565b6156f3816156dc565b81146156fe57600080fd5b50565b600081519050615710816156ea565b92915050565b600060ff82169050919050565b61572c81615716565b811461573757600080fd5b50565b60008151905061574981615723565b92915050565b600080600080600080600060e0888a03121561576e5761576d614273565b5b600061577c8a828b0161568e565b975050602061578d8a828b016156c7565b965050604061579e8a828b01615701565b95505060606157af8a828b01615701565b94505060806157c08a828b01615701565b93505060a06157d18a828b0161573a565b92505060c06157e28a828b01614baf565b91505092959891949750929550565b7f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260008201527f616e73666572206661696c656400000000000000000000000000000000000000602082015250565b600061584d602d83614929565b9150615858826157f1565b604082019050919050565b6000602082019050818103600083015261587c81615840565b9050919050565b7f5765737761704c6962726172793a20494e53554646494349454e545f4f55545060008201527f55545f414d4f554e540000000000000000000000000000000000000000000000602082015250565b60006158df602983614929565b91506158ea82615883565b604082019050919050565b6000602082019050818103600083015261590e816158d2565b9050919050565b7f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a20747260008201527f616e7366657246726f6d206661696c6564000000000000000000000000000000602082015250565b6000615971603183614929565b915061597c82615915565b604082019050919050565b600060208201905081810360008301526159a081615964565b9050919050565b7f5765737761704c6962726172793a20494e53554646494349454e545f414d4f5560008201527f4e54000000000000000000000000000000000000000000000000000000000000602082015250565b6000615a03602283614929565b9150615a0e826159a7565b604082019050919050565b60006020820190508181036000830152615a32816159f6565b9050919050565b60006dffffffffffffffffffffffffffff82169050919050565b615a5c81615a39565b8114615a6757600080fd5b50565b600081519050615a7981615a53565b92915050565b600063ffffffff82169050919050565b615a9881615a7f565b8114615aa357600080fd5b50565b600081519050615ab581615a8f565b92915050565b600080600060608486031215615ad457615ad3614273565b5b6000615ae286828701615a6a565b9350506020615af386828701615a6a565b9250506040615b0486828701615aa6565b9150509250925092565b7f5765737761704c6962726172793a204944454e544943414c5f4144445245535360008201527f4553000000000000000000000000000000000000000000000000000000000000602082015250565b6000615b6a602283614929565b9150615b7582615b0e565b604082019050919050565b60006020820190508181036000830152615b9981615b5d565b9050919050565b7f5765737761704c6962726172793a205a45524f5f414444524553530000000000600082015250565b6000615bd6601b83614929565b9150615be182615ba0565b602082019050919050565b60006020820190508181036000830152615c0581615bc9565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000615c68602183614929565b9150615c7382615c0c565b604082019050919050565b60006020820190508181036000830152615c9781615c5b565b9050919050565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000600082015250565b6000615cd4601a83614929565b9150615cdf82615c9e565b602082019050919050565b60006020820190508181036000830152615d0381615cc7565b9050919050565b7f536166654d6174683a207375627472616374696f6e20756e646572666c6f7700600082015250565b6000615d40601f83614929565b9150615d4b82615d0a565b602082019050919050565b60006020820190508181036000830152615d6f81615d33565b905091905056fea2646970667358221220d0768850f333901d765cd29d823c579a26433416133527af430a233f8dead07b64736f6c634300080b0033