solc-0.8.36-moh-eulith 0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640 optimized

23248 bytes

608060405234801561000f575f5ffd5b5060043610610187575f3560e01c806370cf754a116100d9578063c45a015511610093578063ddca3f431161006e578063ddca3f431461057e578063f3058399146105b9578063f30dba93146105c2578063f637731d14610689575f5ffd5b8063c45a0155146104f6578063d0c93a7c1461051d578063d21220a714610557575f5ffd5b806370cf754a146104375780638206a4d11461045e57806385b6672914610471578063883bdbfd14610484578063a34123a7146104a5578063a38807f2146104b8575f5ffd5b80633850c7bd11610144578063490e6cbc1161011f578063490e6cbc146103785780634f1eb3d81461038b578063514ea4bf1461039e5780635339c29614610418575f5ffd5b80633850c7bd146102b05780633c8a7d8d1461034e5780634614131914610361575f5ffd5b80630dfe16811461018b578063128acb08146101cc5780631a686502146101f45780631ad8b03b14610219578063252c09d71461025157806332148f671461029b575b5f5ffd5b6101b27f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4881565b6040515f1960601c90911681526020015b60405180910390f35b6101df6101da366004615137565b61069c565b604080519283526020830191909152016101c3565b600454610204905f1960801c1681565b6040515f1960801c90911681526020016101c3565b600354610234905f1960801c80821691600160801b90041682565b604080515f1960801c9384168152929091166020830152016101c3565b61026461025f3660046151b3565b61119e565b6040805163ffffffff909516855260069390930b60208501525f1960601c90911691830191909152151560608201526080016101c3565b6102ae6102a93660046151ca565b6111df565b005b5f54610300905f1960601c811690600160a01b810460020b9061ffff600160b81b8204811691600160c81b8104821691600160d81b8204169060ff600160e81b8204811691600160f01b90041687565b604080515f1960601c909816885260029690960b602088015261ffff94851695870195909552918316606086015291909116608084015260ff1660a0830152151560c082015260e0016101c3565b6101df61035c36600461520f565b6112b8565b61036a60025481565b6040519081526020016101c3565b6102ae610386366004615259565b6114e7565b6102346103993660046152ba565b611918565b6103e56103ac3660046151b3565b60076020525f908152604090208054600182015460028301546003909301545f1960801c92831693919281811691600160801b90041685565b604080515f1960801c9687168152602081019590955284019290925283166060830152909116608082015260a0016101c3565b61036a61042636600461531d565b60066020525f908152604090205481565b6102047f0000000000000000000000000000000000005e8b2285f864419ac400be90719681565b6102ae61046c36600461534d565b611b2e565b61023461047f36600461537e565b611ceb565b6104976104923660046153c0565b611fb6565b6040516101c3929190615429565b6101df6104b33660046154b2565b612039565b6104cb6104c63660046154db565b6121a7565b6040805160069490940b84525f1960601c909216602084015263ffffffff16908201526060016101c3565b6101b27f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98481565b6105447f000000000000000000000000000000000000000000000000000000000000000a81565b60405160029190910b81526020016101c3565b6101b27f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b6105a57f00000000000000000000000000000000000000000000000000000000000001f481565b60405162ffffff90911681526020016101c3565b61036a60015481565b6106336105d0366004615503565b60056020525f908152604090208054600182015460028301546003909301545f1960801c831693600160801b909304600f0b9290600681900b90600160381b81045f1960601c1690600160d81b810463ffffffff1690600160f81b900460ff1688565b604080515f1960801c9099168952600f9790970b602089015295870194909452606086019290925260060b60808501525f1960601c1660a084015263ffffffff1660c0830152151560e0820152610100016101c3565b6102ae61069736600461551c565b6123d1565b5f5f6106a66124fb565b855f036106df5760405162461bcd60e51b8152602060048201526002602482015261415360f01b60448201526064015b60405180910390fd5b6040805160e0810182525f545f1960601c81168252600160a01b810460020b602083015261ffff600160b81b8204811693830193909352600160c81b810483166060830152600160d81b8104909216608082015260ff600160e81b8304811660a0830152600160f01b909204909116151560c082018190526107735760405162461bcd60e51b81526004016106d690615537565b876107b457805f01515f1960601c16865f1960601c161180156107af575073fffd8963efd1fc6a506488495d951d5263988d265f1960601c8716105b6107dc565b805f01515f1960601c16865f1960601c161080156107dc57506401000276a35f1960601c8716115b61080e5760405162461bcd60e51b815260206004820152600360248201526214d41360ea1b60448201526064016106d6565b5f805460ff60f01b191681556040805160c08101909152808a61083c5760048460a0015160ff16901c61084d565b60108460a0015161084d9190615568565b60ff1681526004545f1960801c1660208201526040014263ffffffff1681526020015f60060b81526020015f5f1960601c1681526020015f151581525090505f5f891390505f6040518060e001604052808b81526020015f8152602001855f01515f1960601c168152602001856020015160020b81526020018c6108d3576002546108d7565b6001545b81526020015f5f1960801c16815260200184602001515f1960801c1681525090505b8051158015906109195750885f1960601c1681604001515f1960601c1614155b15610d36576040805160e0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915260408201515f1960601c1681526060820151610996906006907f000000000000000000000000000000000000000000000000000000000000000a8f61252e565b1515604083015260020b60208201819052620d89e71913156109c157620d89e71960208201526109f5565b6109ce620d89e71961559d565b60020b816020015160020b13156109f5576109ec620d89e71961559d565b60020b60208201525b610a0281602001516126e3565b5f1960601c1660608201526040820151610a84908d610a33578b5f1960601c1683606001515f1960601c1611610a47565b8b5f1960601c1683606001515f1960601c16105b610a55578260600151610a57565b8b5b60c085015185517f00000000000000000000000000000000000000000000000000000000000001f4612aee565b60c085015260a084015260808301525f1960601c1660408301528215610af957610ac08160c001518260800151610abb91906155bd565b612cf7565b82518390610acf9083906155d0565b90525060a0810151610aef90610ae490612cf7565b602084015190612d0b565b6020830152610b45565b610b068160a00151612cf7565b82518390610b159083906155f6565b90525060c08101516080820151610b3f91610b3491610abb91906155bd565b602084015190612d2f565b60208301525b835160ff1615610b9c575f845f015160ff168260c00151610b66919061561d565b9050808260c001818151610b7a9190615630565b90525060a083018051829190610b91908390615643565b5f1960801c16905250505b60c08201515f1960801c1615610bde57610bc98160c00151600160801b8460c001515f1960801c16612d4d565b82608001818151610bda91906155bd565b9052505b80606001515f1960601c1682604001515f1960601c1603610d0057806040015115610cd3578360a00151610c5957610c3e84604001515f8760200151886040015188602001518a606001516008612ebe909695949392919063ffffffff16565b5f1960601c16608086015260060b6060850152600160a08501525b5f610ca482602001518e610c6f57600154610c75565b84608001515b8f610c84578560800151610c88565b6002545b608089015160608a015160408b015160059594939291906130a3565b90508c15610cb857610cb58161565f565b90505b610cc68360c00151826131a1565b5f1960801c1660c0840152505b8b610ce2578060200151610cf3565b60018160200151610cf39190615678565b60020b6060830152610d30565b805f01515f1960601c1682604001515f1960601c1614610d3057610d278260400151613254565b60020b60608301525b506108f9565b836020015160020b816060015160020b14610df3575f5f610d8386604001518660400151886020015188602001518a606001518b608001516008613572909695949392919063ffffffff16565b604085015160608601515f805463ffffffff60b81b1916600160c81b61ffff9586160261ffff60b81b191617600160b81b9590941694909402929092175f1960b81b16600160a01b62ffffff909316929092025f1960a01b16919091175f1960601c90911617905550610e109050565b60408101515f80545f1960a01b165f1960601c9092169190911790555b8060c001515f1960801c1683602001515f1960801c1614610e495760c0810151600480545f1960801b165f1960801c9092169190911790555b8a15610ea757608081015160015560a08101515f1960801c1615610ea25760a0810151600380545f90610e839084905f1960801c16615643565b92506101000a8154815f1960801c02191690835f1960801c1602179055505b610f02565b608081015160025560a08101515f1960801c1615610f025760a081015160038054601090610ee3908490600160801b90045f1960801c16615643565b92506101000a8154815f1960801c02191690835f1960801c1602179055505b8115158b151514610f235760208101518151610f1e908c6155d0565b610f35565b8051610f2f908b6155d0565b81602001515b90965094508a15611029575f851215610f7b57610f7b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28d610f768861569d565b6136e5565b5f610f846137da565b60405163fa461e3360e01b8152909150339063fa461e3390610fb0908a908a908e908e906004016156df565b5f604051808303815f87803b158015610fc7575f5ffd5b505af1158015610fd9573d5f5f3e3d5ffd5b50505050610fe56137da565b610fef82896138ca565b11156110235760405162461bcd60e51b815260206004820152600360248201526249494160e81b60448201526064016106d6565b50611109565b5f86121561105f5761105f7f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb488d610f768961569d565b5f6110686138e3565b60405163fa461e3360e01b8152909150339063fa461e3390611094908a908a908e908e906004016156df565b5f604051808303815f87803b1580156110ab575f5ffd5b505af11580156110bd573d5f5f3e3d5ffd5b505050506110c96138e3565b6110d382886138ca565b11156111075760405162461bcd60e51b815260206004820152600360248201526249494160e81b60448201526064016106d6565b505b60408082015160c083015160608085015184518b8152602081018b90525f1960601c948516958101959095525f1960801c9092169084015260020b60808301528d169033907fc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca679060a00160405180910390a350505f805460ff60f01b1916600160f01b17905550919890975095505050505050565b60088161ffff81106111ae575f80fd5b015463ffffffff81169150600160201b810460060b90600160581b81045f1960601c1690600160f81b900460ff1684565b5f54600160f01b900460ff166112075760405162461bcd60e51b81526004016106d690615537565b5f805460ff60f01b1916905561121b6124fb565b5f8054600160d81b900461ffff16906112366008838561392b565b5f805461ffff808416600160d81b810261ffff60d81b19909316929092179092559192508316146112a1576040805161ffff8085168252831660208201527fac49e518f90a358f652e4400164f05a5d8f7e35e7747279bc3a93dbf584e125a91015b60405180910390a15b50505f805460ff60f01b1916600160f01b17905550565b5f80548190600160f01b900460ff166112e35760405162461bcd60e51b81526004016106d690615537565b5f805460ff60f01b191690555f1960801c85166112fe575f5ffd5b5f5f61134560405180608001604052808c5f1960601c1681526020018b60020b81526020018a60020b815260200161133b8a5f1960801c166139cd565b600f0b90526139e2565b92509250508193508092505f5f5f861115611365576113626137da565b91505b8415611376576113736138e3565b90505b60405163d348799760e01b8152339063d34879979061139f90899089908d908d906004016156df565b5f604051808303815f87803b1580156113b6575f5ffd5b505af11580156113c8573d5f5f3e3d5ffd5b505050505f861115611419576113dc6137da565b6113e683886138ca565b11156114195760405162461bcd60e51b815260206004820152600260248201526104d360f41b60448201526064016106d6565b8415611464576114276138e3565b61143182876138ca565b11156114645760405162461bcd60e51b81526020600482015260026024820152614d3160f01b60448201526064016106d6565b604080513381525f1960801c8b1660208201529081018790526060810186905260028b810b91908d900b905f1960601c8f16907f7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde9060800160405180910390a450505f805460ff60f01b1916600160f01b17905550919890975095505050505050565b5f54600160f01b900460ff1661150f5760405162461bcd60e51b81526004016106d690615537565b5f805460ff60f01b191690556115236124fb565b6004545f1960801c168061155d5760405162461bcd60e51b81526020600482015260016024820152601360fa1b60448201526064016106d6565b5f611591867f00000000000000000000000000000000000000000000000000000000000001f462ffffff16620f4240613c05565b90505f6115c7867f00000000000000000000000000000000000000000000000000000000000001f462ffffff16620f4240613c05565b90505f6115d26137da565b90505f6115dd6138e3565b90508815611610576116107f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb488b8b6136e5565b8715611641576116417f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28b8a6136e5565b604051630e9cbafb60e41b8152339063e9cbafb09061166a90879087908c908c906004016156df565b5f604051808303815f87803b158015611681575f5ffd5b505af1158015611693573d5f5f3e3d5ffd5b505050505f6116a06137da565b90505f6116ab6138e3565b9050816116b885886138ca565b11156116eb5760405162461bcd60e51b8152602060048201526002602482015261046360f41b60448201526064016106d6565b806116f684876138ca565b11156117295760405162461bcd60e51b8152602060048201526002602482015261463160f01b60448201526064016106d6565b5f6117348584615630565b90505f6117418584615630565b905081156117ff575f805461176290601090600160e81b900460ff16615568565b90505f60ff8216156117805761177b60ff83168561561d565b611782565b5f5b90505f1960801c8116156117c957600380548291905f906117aa9084905f1960801c16615643565b92506101000a8154815f1960801c02191690835f1960801c1602179055505b6117e76117d68286615630565b600160801b8d5f1960801c16612d4d565b60015f8282546117f791906155bd565b909155505050505b80156118a4575f8054600160e81b900460041c600f1690811561182e5761182960ff83168461561d565b611830565b5f5b90505f1960801c81161561187f5760038054829190601090611860908490600160801b90045f1960801c16615643565b92506101000a8154815f1960801c02191690835f1960801c1602179055505b61188c6117d68285615630565b60025f82825461189c91906155bd565b909155505050505b604080518e8152602081018e9052908101839052606081018290525f1960601c8f169033907fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6339060800160405180910390a350505f805460ff60f01b1916600160f01b179055505050505050505050505050565b5f80548190600160f01b900460ff166119435760405162461bcd60e51b81526004016106d690615537565b5f805460ff60f01b1916815561195c6007338989613c4a565b60038101549091505f1960801c9081169086161161197a5784611986565b60038101545f1960801c165b60038201549093505f1960801c600160801b9091048116908516116119ab57836119be565b6003810154600160801b90045f1960801c165b91505f1960801c831615611a37576003810180548491905f906119e89084905f1960801c16615708565b92506101000a8154815f1960801c02191690835f1960801c160217905550611a377f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4889855f1960801c166136e5565b5f1960801c821615611ab557818160030160108282829054906101000a90045f1960801c16611a669190615708565b92506101000a8154815f1960801c02191690835f1960801c160217905550611ab57f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc289845f1960801c166136e5565b604080515f1960601c8a1681525f1960801c85811660208301528416818301529051600288810b92908a900b9133917f70935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0919081900360600190a4505f805460ff60f01b1916600160f01b17905590969095509350505050565b5f54600160f01b900460ff16611b565760405162461bcd60e51b81526004016106d690615537565b5f805460ff60f01b1916905560408051638da5cb5b60e01b815290515f1960601c7f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9841691638da5cb5b9160048083019260209291908290030181865afa158015611bc2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611be69190615724565b5f1960601c16335f1960601c1614611bfc575f5ffd5b60ff82161580611c1f575060048260ff1610158015611c1f5750600a8260ff1611155b8015611c49575060ff81161580611c49575060048160ff1610158015611c495750600a8160ff1611155b611c51575f5ffd5b5f54600160e81b900460ff16611c6f600483901b610ff0168461573f565b5f805460ff92909216600160e81b0260ff60e81b199092169190911790557f973d8d92bb299f4af6ce49b52a8adb85ae46b9f214c4c4fc06ac77401237b133611cb9601083615568565b6040805160ff9283168152600f600486901c166020820152868316918101919091529084166060820152608001611298565b5f80548190600160f01b900460ff16611d165760405162461bcd60e51b81526004016106d690615537565b5f805460ff60f01b1916905560408051638da5cb5b60e01b815290515f1960601c7f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9841691638da5cb5b9160048083019260209291908290030181865afa158015611d82573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611da69190615724565b5f1960601c16335f1960601c1614611dbc575f5ffd5b6003545f1960801c90811690851611611dd55783611ddf565b6003545f1960801c165b6003549092505f1960801c600160801b909104811690841611611e025782611e13565b600354600160801b90045f1960801c165b90505f1960801c821615611eab576003545f1960801c90811690831603611e425781611e3e81615758565b9250505b600380548391905f90611e5c9084905f1960801c16615708565b92506101000a8154815f1960801c02191690835f1960801c160217905550611eab7f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4886845f1960801c166136e5565b5f1960801c811615611f50576003545f1960801c600160801b909104811690821603611edf5780611edb81615758565b9150505b60038054829190601090611f01908490600160801b90045f1960801c16615708565b92506101000a8154815f1960801c02191690835f1960801c160217905550611f507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc286835f1960801c166136e5565b604080515f1960801c8085168252831660208201525f1960601c87169133917f596b573906218d3411850b26a6b437d6c4522fdb43d2d2386263f86d50b8b151910160405180910390a35f805460ff60f01b1916600160f01b1790559094909350915050565b606080611fc16124fb565b61202d428585808060200260200160405190810160405280939291908181526020018383602002808284375f92018290525054600454600896959450600160a01b820460020b935061ffff600160b81b8304811693505f1960801c90911691600160c81b900416613c9d565b915091505b9250929050565b5f80548190600160f01b900460ff166120645760405162461bcd60e51b81526004016106d690615537565b5f805460ff60f01b1916815560408051608081018252338152600288810b602083015287900b91810191909152819081906120b590606081016120ac5f1960801c8a166139cd565b61133b9061565f565b925092509250816120c59061569d565b94506120d08161569d565b93505f8511806120df57505f84115b156121345760038301546120fa9086905f1960801c16615643565b6003840154612117908690600160801b90045f1960801c16615643565b5f1960801c9182169116600160801b025f1960801b161760038401555b604080515f1960801c8816815260208101879052908101859052600288810b91908a900b9033907f0c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982c9060600160405180910390a450505f805460ff60f01b1916600160f01b179055509094909350915050565b5f5f5f6121b26124fb565b6121bc8585613dee565b600285810b5f908152600560205260408082209287900b825281206003830154600681900b93600160381b82045f1960601c16928492600160d81b810463ffffffff169284929091600160f81b900460ff1680612217575f5ffd5b6003820154600681900b9850600160381b81045f1960601c169650600160d81b810463ffffffff169450600160f81b900460ff1680612254575f5ffd5b50506040805160e0810182525f545f1960601c81168252600160a01b8104600290810b6020840181905261ffff600160b81b8404811695850195909552600160c81b830485166060850152600160d81b8304909416608084015260ff600160e81b8304811660a0850152600160f01b909204909116151560c08301529093508e900b1315905061230e576122e88688615776565b6122f2858761579f565b6122fc84866157bb565b995099509950505050505050506123ca565b8a60020b816020015160020b12156123ac5760208101516040820151600454606084015142935f9384936123539360089388938793919290915f1960801c1690612ebe565b9092509050886123638b84615776565b61236d9190615776565b876123788a8461579f565b612382919061579f565b8661238d89876157bb565b61239791906157bb565b9c509c509c50505050505050505050506123ca565b6123b68787615776565b6123c0868661579f565b6122fc85856157bb565b9250925092565b5f545f1960601c161561240b5760405162461bcd60e51b8152602060048201526002602482015261414960f01b60448201526064016106d6565b5f61241582613254565b604080516080808201835263ffffffff42168083525f602080850182905284860182905260016060958601819052600160f81b909317600855855160e0810187525f1960601c8a16808252600289900b82840181905282890185905296820185905294810184905260a0810183905260c00183905281545f1960b81b168417600160a01b62ffffff891602175f1960c01c60b81b19166501000001000160c81b1790915584519283528201929092528251939450909283927f98636036cb66a9c19a37435efc1e90142190214e8abeb821bdba3f2990dd4c95928290030190a150505050565b305f1960601c7f00000000000000000000000088e6a0c2ddd26feeb64f039a2c41296fcb3f5640161461252c575f5ffd5b565b5f808061253b85876157d7565b90505f8660020b12801561255a5750612554858761580f565b60020b15155b1561256d578061256981615830565b9150505b8315612617575f5f61257e83613eb3565b90925090505f600160ff831681901b906125989082615630565b6125a291906155bd565b600184900b5f90815260208c9052604090205481168015159650909150856125e157886125d260ff851687615678565b6125dc9190615848565b61260c565b886125eb82613ecf565b6125f59085615867565b6126029060ff1687615678565b61260c9190615848565b9650505050506126d9565b5f8061262c612627846001615880565b613eb3565b90925090505f612643600160ff841681901b615630565b600184900b5f90815260208c90526040902054901990811680151596509091508561269b57886126748460ff615867565b60ff16612682876001615880565b61268c9190615880565b6126969190615848565b6126d2565b88836126a683613fbc565b6126b09190615867565b60ff166126be876001615880565b6126c89190615880565b6126d29190615848565b9650505050505b5094509492505050565b5f5f5f8360020b126126f8578260020b612705565b8260020b6127059061569d565b9050612714620d89e71961559d565b60020b81111561274a5760405162461bcd60e51b81526020600482015260016024820152601560fa1b60448201526064016106d6565b5f816001165f0361275f57600160801b612771565b6ffffcb933bd6fad37aa2d162d1a5940015b5f1960781c16905060028216156127a357608061279e826ffff97272373d413259a46990580e213a6158a5565b901c90505b60048216156127cd5760806127c8826ffff2e50f5f656932ef12357cf3c7fdcc6158a5565b901c90505b60088216156127f75760806127f2826fffe5caca7e10e4e61c3624eaa0941cd06158a5565b901c90505b601082161561282157608061281c826fffcb9843d60f6159c9db58835c9266446158a5565b901c90505b602082161561284b576080612846826fff973b41fa98c081472e6896dfb254c06158a5565b901c90505b6040821615612875576080612870826fff2ea16466c96a3843ec78b326b528616158a5565b901c90505b608082161561289f57608061289a826ffe5dee046a99a2a811c461f1969c30536158a5565b901c90505b6101008216156128ca5760806128c5826ffcbe86c7900a88aedcffc83b479aa3a46158a5565b901c90505b6102008216156128f55760806128f0826ff987a7253ac413176f2b074cf7815e546158a5565b901c90505b61040082161561292057608061291b826ff3392b0822b70005940c7a398e4b70f36158a5565b901c90505b61080082161561294b576080612946826fe7159475a2c29b7443b29c7fa6e889d96158a5565b901c90505b611000821615612976576080612971826fd097f3bdfd2022b8845ad8f792aa58256158a5565b901c90505b6120008216156129a157608061299c826fa9f746462d870fdf8a65dc1f90e061e56158a5565b901c90505b6140008216156129cc5760806129c7826f70d869a156d2a1b890bb3df62baf32f76158a5565b901c90505b6180008216156129f75760806129f2826f31be135f97d08fd981231505542fcfa66158a5565b901c90505b62010000821615612a23576080612a1e826f09aa508b5b7a84e1c677de54f3e99bc96158a5565b901c90505b62020000821615612a4e576080612a49826e5d6af8dedb81196699c329225ee6046158a5565b901c90505b62040000821615612a78576080612a73826d2216e584f5fa1ea926041bedfe986158a5565b901c90505b62080000821615612aa0576080612a9b826b048a170391f7dc42444e8fa26158a5565b901c90505b5f8460020b1315612ab957612ab6815f1961561d565b90505b612ac7600160201b826158bc565b15612ad3576001612ad5565b5f5b612ae69060ff16602083901c6155bd565b949350505050565b5f8080805f1960601c808916908a161015818712801590612b75575f612b2989612b1b8a620f42406158cf565b62ffffff16620f4240612d4d565b905082612b4257612b3d8c8c8c60016140de565b612b4f565b612b4f8b8d8c6001614149565b9550858110612b60578a9650612b6f565b612b6c8c8b83866141f1565b96505b50612bc7565b81612b8b57612b868b8b8b5f614149565b612b97565b612b978a8c8b5f6140de565b935083612ba38961569d565b10612bb057899550612bc7565b612bc48b8a612bbe8b61569d565b85614233565b95505b5f1960601c8a8116908716148215612c2657808015612be35750815b612bf957612bf4878d8c6001614149565b612bfb565b855b9550808015612c08575081155b612c1d57612c18878d8c5f6140de565b612c1f565b845b9450612c6f565b808015612c305750815b612c4657612c418c888c60016140de565b612c48565b855b9550808015612c55575081155b612c6a57612c658c888c5f614149565b612c6c565b845b94505b81158015612c845750612c818961569d565b85115b15612c9557612c928961569d565b94505b818015612cae57508a5f1960601c16875f1960601c1614155b15612cc457612cbd868a615630565b9350612ce8565b612ce58662ffffff8a16612cdb8b620f42406158cf565b62ffffff16613c05565b93505b50505095509550955095915050565b5f600160ff1b8210612d07575f5ffd5b5090565b5f8082121583612d1b84826155d0565b925082131514612d29575f5ffd5b92915050565b5f8082121583612d3f84826155f6565b925082121514612d29575f5ffd5b5f80805f19858709858702925082811083820303915050805f03612d81575f8411612d76575f5ffd5b508290049050612eb7565b808411612d8c575f5ffd5b5f848688098084039381119092039190505f85612dab811960016155bd565b16958690049593849004935f819003046001019050612dca81846158a5565b909317925f612dda8760036158a5565b6002189050612de981886158a5565b612df4906002615630565b612dfe90826158a5565b9050612e0a81886158a5565b612e15906002615630565b612e1f90826158a5565b9050612e2b81886158a5565b612e36906002615630565b612e4090826158a5565b9050612e4c81886158a5565b612e57906002615630565b612e6190826158a5565b9050612e6d81886158a5565b612e78906002615630565b612e8290826158a5565b9050612e8e81886158a5565b612e99906002615630565b612ea390826158a5565b9050612eaf81866158a5565b955050505050505b9392505050565b5f5f8663ffffffff165f03612f61575f898661ffff1661ffff8110612ee557612ee56158ea565b60408051608081018252919092015463ffffffff808216808452600160201b830460060b6020850152600160581b83045f1960601c1694840194909452600160f81b90910460ff16151560608301529092508a1614612f4d57612f4a818a8988614273565b90505b806020015181604001519250925050613097565b5f612f6c888a6157bb565b90505f5f612f7f8c8c858c8c8c8c614345565b91509150815f015163ffffffff168363ffffffff1603612faf578160200151826040015194509450505050613097565b805f015163ffffffff168363ffffffff1603612fdb578060200151816040015194509450505050613097565b815181515f91612fea916157bb565b83519091505f90612ffb90866157bb565b90508063ffffffff168263ffffffff168560200151856020015161301f9190615776565b61302991906158fe565b613033919061592d565b8460200151613042919061594c565b8263ffffffff168263ffffffff1686604001518660400151613064919061579f565b5f1960601c1661307491906158a5565b61307e919061561d565b856040015161308d9190615975565b9650965050505050505b97509795505050505050565b600286900b5f90815260208890526040812060018101546130c49088615630565b600182015560028101546130d89087615630565b600282015560038101546130f990600160381b90045f1960601c168661579f565b6003820180545f1960601c92909216600160381b025f1960601c60381b19909216919091179081905561312f9060060b85615776565b6003820180545f1960381b165f1960c81c92909216919091179081905561316390600160d81b900463ffffffff16846157bb565b60038201805463ffffffff92909216600160d81b0263ffffffff60d81b1990921691909117905554600160801b9004600f0b98975050505050505050565b5f5f82600f0b1215613207575f1960801c83166131bd8361565f565b6131c79085615708565b9150815f1960801c16106132025760405162461bcd60e51b81526020600482015260026024820152614c5360f01b60448201526064016106d6565b612d29565b5f1960801c83166132188385615643565b9150815f1960801c161015612d295760405162461bcd60e51b81526020600482015260026024820152614c4160f01b60448201526064016106d6565b5f6401000276a35f1960601c831610801590613289575073fffd8963efd1fc6a506488495d951d5263988d265f1960601c8316105b6132b95760405162461bcd60e51b81526020600482015260016024820152602960f91b60448201526064016106d6565b5f1960601c60201b602083901b165f1960801c811160071b81811c5f1960c01c811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c979088119617909417909217179091171717608081106133495761333f607f82615630565b83901c915061335a565b61335481607f615630565b83901b91505b5f60406133686080846155d0565b901b9050828302607f1c92508260801c80603f1b8217915083811c935050828302607f1c92508260801c80603e1b8217915083811c935050828302607f1c92508260801c80603d1b8217915083811c935050828302607f1c92508260801c80603c1b8217915083811c935050828302607f1c92508260801c80603b1b8217915083811c935050828302607f1c92508260801c80603a1b8217915083811c935050828302607f1c92508260801c8060391b8217915083811c935050828302607f1c92508260801c8060381b8217915083811c935050828302607f1c92508260801c8060371b8217915083811c935050828302607f1c92508260801c8060361b8217915083811c935050828302607f1c92508260801c8060351b8217915083811c935050828302607f1c92508260801c8060341b8217915083811c935050828302607f1c92508260801c8060331b8217915083811c935050828302607f1c92508260801c8060321b82179150505f81693627a301d71055774c856134ea9190615991565b90505f60806135096f028f6481ab7f045a5af012a19d003aaa846155d0565b901d90505f608061352a846fdb2df09e81959a81455e260799a0632f6155f6565b901d90508060020b8260020b1461356357885f1960601c1661354b826126e3565b5f1960601c16111561355d5781613565565b80613565565b815b9998505050505050505050565b5f5f5f898961ffff1661ffff811061358c5761358c6158ea565b60408051608081018252919092015463ffffffff808216808452600160201b830460060b6020850152600160581b83045f1960601c1694840194909452600160f81b90910460ff1615156060830152909250891690036135f25788859250925050613097565b8461ffff168461ffff1611801561361a575061360f6001866159c0565b61ffff168961ffff16145b156136275783915061362b565b8491505b816136378a60016159da565b61364191906159f4565b925061364f81898989614273565b8a8461ffff1661ffff8110613666576136666158ea565b825191018054602084015160408501516060909501511515600160f81b025f1960081c5f1960601c909616600160581b02959095166affffffffffffffffffffff5f1960c81c909216600160201b025f1960581b90931663ffffffff909516949094179190911716919091179190911790555097509795505050505050565b604080515f1960601c8481166024830152604480830185905283518084039091018152606490920183526020820180515f1960201c1663a9059cbb60e01b17905291515f9283929087169161373a9190615a17565b5f604051808303815f865af19150503d805f8114613773576040519150601f19603f3d011682016040523d82523d5f602084013e613778565b606091505b50915091508180156137a25750805115806137a25750808060200190518101906137a29190615a2d565b6137d35760405162461bcd60e51b81526020600482015260026024820152612a2360f11b60448201526064016106d6565b5050505050565b6040513060248201525f90819081905f1960601c7f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4816906370a0823160e01b906044015b60408051601f198184030181529181526020820180515f1960201c165f1960201c199094169390931790925290516138569190615a17565b5f60405180830381855afa9150503d805f811461388e576040519150601f19603f3d011682016040523d82523d5f602084013e613893565b606091505b50915091508180156138a757506020815110155b6138af575f5ffd5b808060200190518101906138c39190615a48565b9250505090565b5f826138d683826155bd565b9150811015612d29575f5ffd5b6040513060248201525f90819081905f1960601c7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc216906370a0823160e01b9060440161381e565b5f5f8361ffff16116139635760405162461bcd60e51b81526020600482015260016024820152604960f81b60448201526064016106d6565b8261ffff168261ffff1611613979575081612eb7565b825b8261ffff168161ffff1610156139c4576001858261ffff1661ffff81106139a4576139a46158ea565b0180545f1960201b1663ffffffff9290921691909117905560010161397b565b50909392505050565b80600f81900b81146139dd575f5ffd5b919050565b5f5f5f6139ed6124fb565b6139ff84602001518560400151613dee565b6040805160e0810182525f545f1960601c81168252600160a01b810460020b602080840182905261ffff600160b81b8404811685870152600160c81b84048116606080870191909152600160d81b8504909116608086015260ff600160e81b8504811660a0870152600160f01b909404909316151560c085015288519089015194890151928901519394613a999491939092909190614555565b93508460600151600f0b5f14613bfd57846020015160020b816020015160020b1215613aed57613ae6613acf86602001516126e3565b613adc87604001516126e3565b876060015161472f565b9250613bfd565b846040015160020b816020015160020b1215613bd35760045460408201515f1960801c90911690613b3590426020850151606086015160808701516008949392918791613572565b5f805463ffffffff60b81b1916600160c81b61ffff9384160261ffff60b81b191617600160b81b939092169290920217905581516040870151613b869190613b7c906126e3565b886060015161472f565b9350613ba4613b9887602001516126e3565b8351606089015161476f565b9250613bb48187606001516131a1565b600480545f1960801b165f1960801c9290921691909117905550613bfd565b613bfa613be386602001516126e3565b613bf087604001516126e3565b876060015161476f565b91505b509193909250565b5f613c11848484612d4d565b90505f8280613c2257613c22615554565b8486091115612eb7575f198110613c37575f5ffd5b80613c4181615a5f565b95945050505050565b6040805160609490941b5f1960601b1660208086019190915260e893841b60348601529190921b60378401528151601a818503018152603a90930182528251928101929092205f90815292909152902090565b6060805f8361ffff1611613cd75760405162461bcd60e51b81526020600482015260016024820152604960f81b60448201526064016106d6565b86515f1960c01c811115613ced57613ced615a77565b604051908082528060200260200182016040528015613d16578160200160208202803683370190505b50915086515f1960c01c811115613d2f57613d2f615a77565b604051908082528060200260200182016040528015613d58578160200160208202803683370190505b5090505f5b8751811015613de157613d8e8a8a8a8481518110613d7d57613d7d6158ea565b60200260200101518a8a8a8a612ebe565b848381518110613da057613da06158ea565b60200260200101848481518110613db957613db96158ea565b5f1960601c9093166020938402919091019092019190915260069190910b9052600101613d5d565b5097509795505050505050565b8060020b8260020b12613e295760405162461bcd60e51b8152602060048201526003602482015262544c5560e81b60448201526064016106d6565b620d89e719600283900b1215613e675760405162461bcd60e51b8152602060048201526003602482015262544c4d60e81b60448201526064016106d6565b613e74620d89e71961559d565b60020b8160020b1315613eaf5760405162461bcd60e51b815260206004820152600360248201526254554d60e81b60448201526064016106d6565b5050565b600281900b60081d5f613ec86101008461580f565b9050915091565b5f5f8211613edb575f5ffd5b600160801b8210613ef957608091821c91613ef6908261573f565b90505b680100000000000000008210613f1c57604091821c91613f19908261573f565b90505b600160201b8210613f3a57602091821c91613f37908261573f565b90505b620100008210613f5757601091821c91613f54908261573f565b90505b6101008210613f7357600891821c91613f70908261573f565b90505b60108210613f8e57600491821c91613f8b908261573f565b90505b60048210613fa957600291821c91613fa6908261573f565b90505b600282106139dd57612d2960018261573f565b5f5f8211613fc8575f5ffd5b5060ff5f1960801c821615613fe957613fe2608082615867565b9050613ff1565b608082901c91505b5f1960c01c82161561400f57614008604082615867565b9050614017565b604082901c91505b63ffffffff8216156140355761402e602082615867565b905061403d565b602082901c91505b61ffff82161561405957614052601082615867565b9050614061565b601082901c91505b60ff82161561407c57614075600882615867565b9050614084565b600882901c91505b600f82161561409f57614098600482615867565b90506140a7565b600482901c91505b60038216156140c2576140bb600282615867565b90506140ca565b600282901c91505b60018216156139dd57612d29600182615867565b5f835f1960601c16855f1960601c1611156140f7579293925b81614125576141205f1960801c8416614110878761579f565b5f1960601c16600160601b612d4d565b613c41565b613c415f1960801c8416614139878761579f565b5f1960601c16600160601b613c05565b5f835f1960601c16855f1960601c161115614162579293925b5f1960801c60601b606084901b165f61417b878761579f565b5f1960601c1690505f875f1960601c1611614194575f5ffd5b836141c057865f1960601c166141b18383895f1960601c16612d4d565b6141bb919061561d565b6141e6565b6141e66141d48383895f1960601c16613c05565b885f1960601c16808204910615150190565b979650505050505050565b5f5f855f1960601c1611614203575f5ffd5b5f845f1960801c1611614214575f5ffd5b816142265761412085858560016147a1565b613c418585856001614869565b5f5f855f1960601c1611614245575f5ffd5b5f845f1960801c1611614256575f5ffd5b81614267576141208585855f614869565b613c418585855f6147a1565b604080516080810182525f80825260208201819052918101829052606081019190915284515f906142a490866157bb565b905060405180608001604052808663ffffffff1681526020018263ffffffff168660020b6142d2919061592d565b88602001516142e1919061594c565b60060b81526020015f855f1960801c16116142fd5760016142ff565b845b61431c905f1960801c1663ffffffff60801b608086901b16615a8b565b886040015161432b9190615975565b5f1960601c16815260016020909101529695505050505050565b604080516080810182525f808252602082018190529181018290526060810191909152604080516080810182525f808252602082018190529181018290526060810191909152888561ffff1661ffff81106143a2576143a26158ea565b60408051608081018252919092015463ffffffff8116808352600160201b820460060b6020840152600160581b82045f1960601c1693830193909352600160f81b900460ff161515606082015292506143fd90899089614967565b1561442957815163ffffffff888116911614613097578161442083898988614273565b91509150613097565b88836144368760016159da565b61444091906159f4565b61ffff1661ffff8110614455576144556158ea565b60408051608081018252929091015463ffffffff81168352600160201b810460060b60208401525f1960601c600160581b8204169183019190915260ff600160f81b909104161515606082018190529092506144f857604080516080810182528a5463ffffffff81168252600160201b810460060b6020830152600160581b81045f1960601c1692820192909252600160f81b90910460ff161515606082015291505b61450688835f015189614967565b6145385760405162461bcd60e51b815260206004820152600360248201526213d31160ea1b60448201526064016106d6565b6145458989898887614a33565b9150915097509795505050505050565b5f6145636007878787613c4a565b600154600254919250905f80600f87900b15614695575f805460045442929182916145bb9160089186918591600160a01b820460020b9161ffff600160b81b82048116925f1960801c1691600160c81b900416612ebe565b90925090506145f460058d8b8d8b8b87898b5f7f0000000000000000000000000000000000005e8b2285f864419ac400be907196614c3e565b945061462b60058c8b8d8b8b87898b60017f0000000000000000000000000000000000005e8b2285f864419ac400be907196614c3e565b9350841561465f5761465f60068d7f000000000000000000000000000000000000000000000000000000000000000a614dcf565b83156146915761469160068c7f000000000000000000000000000000000000000000000000000000000000000a614dcf565b5050505b5f806146a660058c8c8b8a8a614e1f565b90925090506146b7878a8484614f07565b5f89600f0b12156147205783156146f15760028b810b5f908152600560205260408120818155600181018290559182018190556003909101555b82156147205760028a810b5f908152600560205260408120818155600181018290559182018190556003909101555b50505050505095945050505050565b5f5f82600f0b1261474f5761474a610abb8585856001614149565b612ae6565b614766610abb85856147608661565f565b5f614149565b612ae69061569d565b5f5f82600f0b1261478a5761474a610abb85858560016140de565b614766610abb858561479b8661565f565b5f6140de565b5f8115614805575f5f1960601c8411156147cf576147ca84600160601b875f1960801c16612d4d565b6147e3565b6147e35f1960801c8616606086901b61561d565b90506147fd6147f85f1960601c8816836138ca565b6150ca565b915050612ae6565b5f5f1960601c84111561482c5761482784600160601b875f1960801c16613c05565b614846565b614846606085901b5f1960801c8716808204910615150190565b905080865f1960601c1611614859575f5ffd5b6147fd815f1960601c8816615630565b5f825f03614878575083612ae6565b5f1960801c60601b606085901b168215614913575f5f1960601c87168561489f82826158a5565b92506148ab908361561d565b036148e1575f6148bb82846155bd565b90508281106148df576148d583895f1960601c1683613c05565b9350505050612ae6565b505b61490a826148ff876148f95f1960601c8c168461561d565b906138ca565b808204910615150190565b92505050612ae6565b5f5f1960601c87168561492682826158a5565b9250614932908361561d565b14801561493e57508082115b614946575f5ffd5b5f6149518284615630565b90506148d56147f8848a5f1960601c1684613c05565b5f8363ffffffff168363ffffffff161115801561499057508363ffffffff168263ffffffff1611155b156149ac578163ffffffff168363ffffffff1611159050612eb7565b5f8463ffffffff168463ffffffff16116149d9576149d463ffffffff8516600160201b615ab3565b6149e1565b8363ffffffff165b64ffffffffff1690505f8563ffffffff168463ffffffff1611614a1757614a1263ffffffff8516600160201b615ab3565b614a1f565b8363ffffffff165b64ffffffffff169091111595945050505050565b604080516080810182525f808252602082018190529181018290526060810191909152604080516080810182525f8082526020820181905291810182905260608101919091525f83614a868660016159da565b614a9091906159f4565b61ffff1690505f60018561ffff1683614aa991906155bd565b614ab39190615630565b90505f5b6002614ac383856155bd565b614acd919061561d565b905089614ade61ffff8816836158bc565b61ffff8110614aef57614aef6158ea565b60408051608081018252929091015463ffffffff81168352600160201b810460060b60208401525f1960601c600160581b8204169183019190915260ff600160f81b90910416151560608201819052909550614b5757614b508160016155bd565b9250614ab7565b8961ffff8716614b688360016155bd565b614b7291906158bc565b61ffff8110614b8357614b836158ea565b60408051608081018252929091015463ffffffff81168352600160201b810460060b60208401525f1960601c600160581b8204169183019190915260ff600160f81b909104161515606082015285519094505f90614be3908b908b614967565b9050808015614bfb5750614bfb8a8a875f0151614967565b15614c065750614c31565b80614c1d57614c16600183615630565b9250614c2b565b614c288260016155bd565b93505b50614ab7565b5050509550959350505050565b60028a900b5f90815260208c90526040812080545f1960801c1682614c63828d6131a1565b9050845f1960801c16815f1960801c161115614ca65760405162461bcd60e51b81526020600482015260026024820152614c4f60f01b60448201526064016106d6565b5f1960801c818116159083168015919091141594505f03614d48578c60020b8e60020b13614d3357600183018b9055600283018a90556003830180545f1960c81c8a1660ff60f81b909116600160381b5f1960601c8d16027fff00000000ffffffffffffffffffffffffffffffffffffffff00000000000000161717600160d81b63ffffffff8a16021790555b6003830180545f1960081c16600160f81b1790555b82545f1960801b165f1960801c821617835585614d88578254614d8390614d7e90600160801b9004600f90810b908f900b612d2f565b6139cd565b614da7565b8254614da790614d7e90600160801b9004600f90810b908f900b612d0b565b83545f1960801c918216600160801b0291161790925550909c9b505050505050505050505050565b614dd9818361580f565b60020b15614de5575f5ffd5b5f80614df461262784866157d7565b600191820b5f9081526020979097526040909620805460ff9097169190911b90951890945550505050565b600285810b5f8181526020899052604080822088850b83529082209193849391929184918291908a900b12614e5f57505060018201546002830154614e83565b6001840154614e6e9089615630565b9150836002015487614e809190615630565b90505b5f5f8b60020b8b60020b1215614ea457505060018301546002840154614ec8565b6001850154614eb3908b615630565b9150846002015489614ec59190615630565b90505b81614ed3858c615630565b614edd9190615630565b975080614eea848b615630565b614ef49190615630565b9650505050505050965096945050505050565b6040805160a08101825285545f1960801c90811682526001870154602083015260028701549282019290925260038601548083166060830152600160801b900490911660808201525f600f85900b8103614f9c5781515f1960801c16614f945760405162461bcd60e51b815260206004820152600260248201526104e560f41b60448201526064016106d6565b508051614fab565b8151614fa890866131a1565b90505b5f614fd1836020015186614fbf9190615630565b84515f1960801c16600160801b612d4d565b90505f614ff9846040015186614fe79190615630565b85515f1960801c16600160801b612d4d565b905086600f0b5f146150185787545f1960801b165f1960801c84161788555b60018801869055600288018590555f1960801c821615158061503f57505f815f1960801c16115b156150c0576003880180548391905f906150609084905f1960801c16615643565b92506101000a8154815f1960801c02191690835f1960801c160217905550808860030160108282829054906101000a90045f1960801c166150a19190615643565b92506101000a8154815f1960801c02191690835f1960801c1602179055505b5050505050505050565b805f1960601c811681146139dd575f5ffd5b5f1960601c811681146150ed575f5ffd5b50565b80151581146150ed575f5ffd5b5f5f83601f84011261510d575f5ffd5b5081355f1960c01c811115615120575f5ffd5b602083019150836020828501011115612032575f5ffd5b5f5f5f5f5f5f60a0878903121561514c575f5ffd5b8635615157816150dc565b95506020870135615167816150f0565b945060408701359350606087013561517e816150dc565b925060808701355f1960c01c811115615195575f5ffd5b6151a189828a016150fd565b979a9699509497509295939492505050565b5f602082840312156151c3575f5ffd5b5035919050565b5f602082840312156151da575f5ffd5b813561ffff81168114612eb7575f5ffd5b8035600281900b81146139dd575f5ffd5b80355f1960801c811681146139dd575f5ffd5b5f5f5f5f5f5f60a08789031215615224575f5ffd5b863561522f816150dc565b955061523d602088016151eb565b945061524b604088016151eb565b935061517e606088016151fc565b5f5f5f5f5f6080868803121561526d575f5ffd5b8535615278816150dc565b9450602086013593506040860135925060608601355f1960c01c81111561529d575f5ffd5b6152a9888289016150fd565b969995985093965092949392505050565b5f5f5f5f5f60a086880312156152ce575f5ffd5b85356152d9816150dc565b94506152e7602087016151eb565b93506152f5604087016151eb565b9250615303606087016151fc565b9150615311608087016151fc565b90509295509295909350565b5f6020828403121561532d575f5ffd5b81358060010b8114612eb7575f5ffd5b803560ff811681146139dd575f5ffd5b5f5f6040838503121561535e575f5ffd5b6153678361533d565b91506153756020840161533d565b90509250929050565b5f5f5f60608486031215615390575f5ffd5b833561539b816150dc565b92506153a9602085016151fc565b91506153b7604085016151fc565b90509250925092565b5f5f602083850312156153d1575f5ffd5b82355f1960c01c8111156153e3575f5ffd5b8301601f810185136153f3575f5ffd5b80355f1960c01c811115615405575f5ffd5b8560208260051b8401011115615419575f5ffd5b6020919091019590945092505050565b604080825283519082018190525f9060208501906060840190835b8181101561546557835160060b835260209384019390920191600101615444565b5050838103602080860191909152855180835291810192508501905f5b818110156154a65782515f1960601c16845260209384019390920191600101615482565b50919695505050505050565b5f5f5f606084860312156154c4575f5ffd5b6154cd846151eb565b92506153a9602085016151eb565b5f5f604083850312156154ec575f5ffd5b6154f5836151eb565b9150615375602084016151eb565b5f60208284031215615513575f5ffd5b612eb7826151eb565b5f6020828403121561552c575f5ffd5b8135612eb7816150dc565b6020808252600390820152624c4f4b60e81b604082015260600190565b634e487b7160e01b5f52601260045260245ffd5b5f60ff83168061557a5761557a615554565b8060ff84160691505092915050565b634e487b7160e01b5f52601160045260245ffd5b5f8160020b627fffff1981036155b5576155b5615589565b5f0392915050565b80820180821115612d2957612d29615589565b8181035f8312801583831316838312821617156155ef576155ef615589565b5092915050565b8082018281125f83128015821682158216171561561557615615615589565b505092915050565b5f8261562b5761562b615554565b500490565b81810381811115612d2957612d29615589565b5f1960801c8181168382160190811115612d2957612d29615589565b5f600f82900b6001607f1b81016155b5576155b5615589565b600282810b9082900b035f1960171b8112627fffff82131715612d2957612d29615589565b5f600160ff1b82016156b1576156b1615589565b505f0390565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b848152836020820152606060408201525f6156fe6060830184866156b7565b9695505050505050565b5f1960801c8281168282160390811115612d2957612d29615589565b5f60208284031215615734575f5ffd5b8151612eb7816150dc565b60ff8181168382160190811115612d2957612d29615589565b5f5f1960801c82168061576d5761576d615589565b5f190192915050565b600682810b9082900b035f1960371b8112667fffffffffffff82131715612d2957612d29615589565b5f1960601c8281168282160390811115612d2957612d29615589565b63ffffffff8281168282160390811115612d2957612d29615589565b5f8160020b8360020b806157ed576157ed615554565b5f1960171b82145f198214161561580657615806615589565b90059392505050565b5f8260020b8061582157615821615554565b808360020b0791505092915050565b5f8160020b627fffff19810361576d5761576d615589565b5f8260020b8260020b028060020b91508082146155ef576155ef615589565b60ff8281168282160390811115612d2957612d29615589565b600281810b9083900b01627fffff81135f1960171b82121715612d2957612d29615589565b8082028115828204841417612d2957612d29615589565b5f826158ca576158ca615554565b500690565b62ffffff8281168282160390811115612d2957612d29615589565b634e487b7160e01b5f52603260045260245ffd5b5f8160060b8360060b8061591457615914615554565b5f1960371b82145f198214161561580657615806615589565b5f8260060b8260060b028060060b91508082146155ef576155ef615589565b600681810b9083900b01667fffffffffffff81135f1960371b82121715612d2957612d29615589565b5f1960601c8181168382160190811115612d2957612d29615589565b8082025f8212600160ff1b841416156159ac576159ac615589565b8181058314821517612d2957612d29615589565b61ffff8281168282160390811115612d2957612d29615589565b61ffff8181168382160190811115612d2957612d29615589565b5f61ffff831680615a0757615a07615554565b8061ffff84160691505092915050565b5f82518060208501845e5f920191825250919050565b5f60208284031215615a3d575f5ffd5b8151612eb7816150f0565b5f60208284031215615a58575f5ffd5b5051919050565b5f60018201615a7057615a70615589565b5060010190565b634e487b7160e01b5f52604160045260245ffd5b5f5f1960601c831680615aa057615aa0615554565b5f1960601c929092169190910492915050565b64ffffffffff8181168382160190811115612d2957612d2961558956