solc-0.8.36-memorymasking-03 0xd86756dbb01e75a11aadacb75c8495759ed92033 optimized
9152 bytes
60a06040525f19608052348015610014575f5ffd5b5060043610610202575f3560e01c806370a0823111610119578063c2376dff116100ae578063dd62ed3e1161007e578063dd62ed3e14610475578063e5c4fffe146104a8578063e696393a146104d8578063f51b0fd4146104e1578063f9854bfc146104e9575f5ffd5b8063c2376dff1461043f578063c7af335214610447578063cd6dc6871461044f578063d38bfff414610462575f5ffd5b80639d01fc72116100e95780639d01fc72146103f35780639dc29fac14610406578063a9059cbb14610419578063baa9c9db1461042c575f5ffd5b806370a08231146103b05780637a46a9c5146103c35780637d0d66ff146103cb57806395d89b41146103d3575f5ffd5b806339a7919f1161019a5780635d36b1901161016a5780635d36b190146103375780635f5a85771461033f578063609350cd146103625780636691cb3d146103855780636b96be391461038d575f5ffd5b806339a7919f146102d457806340c10f19146102e7578063430bf08a146102fa578063456ee28614610308575f5ffd5b80630c340a24116101d55780630c340a241461028e57806318160ddd146102a957806323b872dd146102b2578063313ce567146102c5575f5ffd5b806306a2da3d1461020657806306fdde031461021b578063077f22b714610255578063095ea7b31461026b575b5f5ffd5b610219610214366004612000565b610511565b005b60408051808201909152600c81526b27b934b3b4b71022ba3432b960a11b60208201525b60405161024c919061201b565b60405180910390f35b61025d610754565b60405190815260200161024c565b61027e610279366004612050565b61076c565b604051901515815260200161024c565b6102966107d3565b604051607451909116815260200161024c565b61025d609a5481565b61027e6102c036600461207a565b6107e9565b6040516012815260200161024c565b6102196102e23660046120b8565b610901565b6102196102f5366004612050565b610ac8565b609c54610296906074511681565b61032a610316366004612000565b60a26020525f908152604090205460ff1681565b60405161024c91906120e3565b610219610bdf565b61029661034d366004612000565b60a46020525f90815260409020546074511681565b61025d610370366004612000565b607451165f90815260a1602052604090205490565b61025d610c7b565b61029661039b366004612000565b60a56020525f90815260409020546074511681565b61025d6103be366004612000565b610c8e565b609f5461025d565b609e5461025d565b60408051808201909152600481526309e8aa8960e31b602082015261023f565b610219610401366004612109565b610d63565b610219610414366004612050565b6112a3565b61027e610427366004612050565b61137f565b61021961043a366004612000565b6113fc565b610219611475565b61027e61147e565b61021961045d366004612050565b6114a3565b610219610470366004612000565b611577565b61025d610483366004612109565b6074519182165f908152609b6020908152604080832093909416825291909152205490565b6104bb6104b6366004612000565b611610565b60408051938452602084019290925215159082015260600161024c565b61025d60a05481565b61021961163e565b6104fc6104f7366004612000565b611647565b6040805192835260208301919091520161024c565b61051961147e565b806105945750609c5f9054906101000a9004607451166074511663570d8e1d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610565573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105899190612140565b607451163360745116145b6105b95760405162461bcd60e51b81526004016105b09061215b565b60405180910390fd5b6074518181165f90815260a46020526040902054166106155760405162461bcd60e51b815260206004820152601860248201527716995c9bc81859191c995cdcc81b9bdd08185b1b1bddd95960421b60448201526064016105b0565b6074518082165f90815260a460205260408120549091169061063683610c8e565b90505f61064283610c8e565b60745184165f908152609d6020526040812054919250610661836116bc565b6074518681165f81815260a56020908152604080832080546001600160a01b0319908116909155948c16835260a48252808320805490951690945560a2808252848320805460ff19908116600117909155609d8084528685208c905594845290825284832080549091166002179055919091529081208290559091506106e6836116fc565b6106ef836116fc565b6106f991906121b7565b905061070d81610708876116fc565b611769565b60408051607451808a168252881660208201527fa4fa89dd14422a509261a2d4d459f93abdc84c6e92c5e7ae5448243713967bd3910160405180910390a150505050505050565b5f633b9aca00609e5461076791906121dd565b905090565b335f818152609b602090815260408083206074518716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107c19086815260200190565b60405180910390a35060015b92915050565b5f6107675f5160206123465f395f51905f525490565b5f60745183166108365760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220746f207a65726f206164647265737360401b60448201526064016105b0565b60745184165f908152609b60209081526040808320338452909152902054808311156108995760405162461bcd60e51b8152602060048201526012602482015271105b1b1bddd85b98d948195e18d95959195960721b60448201526064016105b0565b60745185165f908152609b60209081526040808320338452909152902083820390556108c68585856117ad565b836074511685607451165f5160206123265f395f51905f52856040516108ee91815260200190565b60405180910390a3506001949350505050565b609c546074511633146109265760405162461bcd60e51b81526004016105b0906121fc565b5f609a54116109775760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420696e637265617365203020737570706c79000000000000000060448201526064016105b0565b80609a54036109ca57609a54609e54609f5460408051938452602084019290925282820152517f41645eb819d3011b13f97696a8109d14bfcddfaca7d063ec0564d62a3e2572359181900360600190a150565b60705181116109d957806109dd565b6070515b609a81905560a0545f916109f19190612233565b905080600182609e54670de0b6b3a7640000610a0d9190612246565b610a17919061225d565b610a219190612233565b610a2b91906121dd565b609f819055610a7c5760405162461bcd60e51b815260206004820152601860248201527f496e76616c6964206368616e676520696e20737570706c79000000000000000060448201526064016105b0565b609a54609e54609f5460408051938452602084019290925282820152517f41645eb819d3011b13f97696a8109d14bfcddfaca7d063ec0564d62a3e2572359181900360600190a1505b50565b609c54607451163314610aed5760405162461bcd60e51b81526004016105b0906121fc565b6074518216610b3e5760405162461bcd60e51b815260206004820152601860248201527f4d696e7420746f20746865207a65726f2061646472657373000000000000000060448201526064016105b0565b5f5f610b5284610b4d856116fc565b6117f4565b91509150610b608282611769565b82609a54610b6e919061225d565b609a81905560705111610bb05760405162461bcd60e51b815260206004820152600a6024820152694d617820737570706c7960b01b60448201526064016105b0565b6040518381526074518516905f905f5160206123265f395f51905f52906020015b60405180910390a350505050565b7f44c4d30b2eaad5130ad70c3ba6972730566f3e6359ab83e800d905c61b1c51db5460745116336074511614610c705760405162461bcd60e51b815260206004820152603060248201527f4f6e6c79207468652070656e64696e6720476f7665726e6f722063616e20636f60448201526f6d706c6574652074686520636c61696d60801b60648201526084016105b0565b610c7933611a96565b565b5f633b9aca00609f5461076791906121dd565b60745181165f90815260a2602052604081205460ff166003816004811115610cb857610cb86120cf565b03610cd4575050607451165f908152609d602052604090205490565b5f610cde84611af0565b60745185165f908152609d6020526040902054610d0390670de0b6b3a7640000612246565b610d0d91906121dd565b90506004826004811115610d2357610d236120cf565b03610d5c576074518085165f90815260a560209081526040808320549093168252609d90522054610d549082612233565b949350505050565b9392505050565b610d6b61147e565b80610de65750609c5f9054906101000a9004607451166074511663570d8e1d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610db7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ddb9190612140565b607451163360745116145b610e025760405162461bcd60e51b81526004016105b09061215b565b6074518216610e535760405162461bcd60e51b815260206004820152601d60248201527f5a65726f2066726f6d2061646472657373206e6f7420616c6c6f77656400000060448201526064016105b0565b6074518116610ea45760405162461bcd60e51b815260206004820152601b60248201527f5a65726f20746f2061646472657373206e6f7420616c6c6f776564000000000060448201526064016105b0565b8060745116826074511603610efb5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f742064656c656761746520746f2073656c6600000000000000000060448201526064016105b0565b6074518181165f90815260a5602052604090205416158015610f2f57506074518181165f90815260a4602052604090205416155b8015610f4d57506074518281165f90815260a5602052604090205416155b8015610f6b57506074518281165f90815260a4602052604090205416155b610fc35760405162461bcd60e51b8152602060048201526024808201527f426c6f636b6564206279206578697374696e67207969656c642064656c6567616044820152633a34b7b760e11b60648201526084016105b0565b6074518083165f90815260a2602052604080822054928416825281205460ff928316921690826004811115610ffa57610ffa6120cf565b148061101757506001826004811115611015576110156120cf565b145b8061103357506002826004811115611031576110316120cf565b145b61107f5760405162461bcd60e51b815260206004820152601860248201527f496e76616c69642072656261736553746174652066726f6d000000000000000060448201526064016105b0565b5f816004811115611092576110926120cf565b14806110af575060018160048111156110ad576110ad6120cf565b145b806110cb575060028160048111156110c9576110c96120cf565b145b6111105760405162461bcd60e51b8152602060048201526016602482015275496e76616c696420726562617365537461746520746f60501b60448201526064016105b0565b60745184165f90815260a1602052604081205490036111325761113284611b19565b60745183165f90815260a16020526040902054156111535761115383611cd6565b5f61115d85610c8e565b90505f61116985610c8e565b60745186165f908152609d602052604081205491925061119161118c848661225d565b6116bc565b6074518981165f81815260a46020908152604080832080546001600160a01b0319908116968f1696871790915585845260a5835281842080549091168517905592825260a2808252838320805460ff1990811660031790915560a18352848420670de0b6b3a76400009055609d8084528585208c90559584529082528383208054909116600417905592909252812082905590915061122f836116fc565b611238836116fc565b61124291906121b7565b905061125a81611251876116fc565b61070890612270565b60408051607451808c1682528a1660208201527f31e39e4bb9df9d4143551c8a3a4798fc19b0854768570ce84d966f6adffd01a3910160405180910390a1505050505050505050565b609c546074511633146112c85760405162461bcd60e51b81526004016105b0906121fc565b60745182166113195760405162461bcd60e51b815260206004820152601a60248201527f4275726e2066726f6d20746865207a65726f206164647265737300000000000060448201526064016105b0565b801561137b575f5f6113378461132e856116fc565b610b4d90612270565b915091506113458282611769565b82609a546113539190612233565b609a556040518381525f906074518616905f5160206123265f395f51905f5290602001610bd1565b5050565b5f60745183166113cc5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220746f207a65726f206164647265737360401b60448201526064016105b0565b6113d73384846117ad565b60405182815260745184169033905f5160206123265f395f51905f52906020016107c1565b61140461147e565b6114205760405162461bcd60e51b81526004016105b09061228a565b607451811661146c5760405162461bcd60e51b815260206004820152601860248201527716995c9bc81859191c995cdcc81b9bdd08185b1b1bddd95960421b60448201526064016105b0565b610ac581611cd6565b610c7933611b19565b5f6114945f5160206123465f395f51905f525490565b60745116336074511614905090565b6114ab61147e565b6114c75760405162461bcd60e51b81526004016105b09061228a565b607451821661150d5760405162461bcd60e51b81526020600482015260126024820152715a65726f207661756c74206164647265737360701b60448201526064016105b0565b609c5460745116156115575760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b60448201526064016105b0565b609f55609c80546001600160a01b03191660745192909216919091179055565b61157f61147e565b61159b5760405162461bcd60e51b81526004016105b09061228a565b6115c3817f44c4d30b2eaad5130ad70c3ba6972730566f3e6359ab83e800d905c61b1c51db55565b80607451166115dd5f5160206123465f395f51905f525490565b607451167fa39cc5eb22d0f34d8beaefee8a3f17cc229c1a1d1ef87a5ad47313487b1c4f0d60405160405180910390a350565b60745181165f908152609d60205260408120548190819061163085611af0565b909590945060019350915050565b610c7933611cd6565b5f5f5f61165384611af0565b9050806b033b2e3c9fd0803ce800000003611682576074519093165f908152609d602052604090205493915050565b60745184165f908152609d60205260409020546116a490633b9aca00906121dd565b6116b2633b9aca00836121dd565b9250925050915091565b5f670de0b6b3a76400006001609f54846116d69190612246565b6116e890670de0b6b3a764000061225d565b6116f29190612233565b6107cd91906121dd565b5f6001600160ff1b038211156117655760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016105b0565b5090565b81156117915761178d8261177e609e546116fc565b61178891906122c1565b611e91565b609e555b801561137b576117a68161177e60a0546116fc565b60a0555050565b5f5f6117bc8561132e856116fc565b915091505f5f6117cf86610b4d876116fc565b90925090506117eb6117e183866122c1565b61070883866122c1565b50505050505050565b60745182165f90815260a26020526040812054819060ff168161181e61181987610c8e565b6116fc565b90505f61182b86836122c1565b12156118795760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220616d6f756e7420657863656564732062616c616e63650060448201526064016105b0565b5f61188761178887846122c1565b9050600383600481111561189d5761189d6120cf565b0361192f576074518088165f90815260a46020526040812054909116906118c382610c8e565b90505f6118d361118c858461225d565b60745184165f908152609d60205260409020549091506118f2906116fc565b6118fb826116fc565b61190591906121b7565b607451808c165f908152609d60205260408082208890559590911681529390932055509450611a8c565b6004836004811115611943576119436120cf565b036119c9576074518088165f90815260a560209081526040808320549093168252609d90529081205461197a9061118c908461225d565b60745189165f908152609d6020526040902054909150611999906116fc565b6119a2826116fc565b6119ac91906121b7565b60745189165f908152609d60205260409020919091559450611a8c565b6119d287611ee2565b60745187165f90815260a160205260409020548015611a355786945080670de0b6b3a764000014611a1b5760745188165f90815260a160205260409020670de0b6b3a764000090555b60745188165f908152609d60205260409020829055611a8a565b5f611a3f836116bc565b6074518a165f908152609d6020526040902054909150611a5e906116fc565b611a67826116fc565b611a7191906121b7565b6074518a165f908152609d602052604090209190915595505b505b5050509250929050565b6074518116611ae75760405162461bcd60e51b815260206004820152601a60248201527f4e657720476f7665726e6f72206973206164647265737328302900000000000060448201526064016105b0565b610ac581611f96565b60745181165f90815260a160205260408120548015611b0f5792915050565b5050609f54919050565b60745181165f90815260a1602052604090205415611b795760405162461bcd60e51b815260206004820152601860248201527f4163636f756e74206d757374206265207265626173696e67000000000000000060448201526064016105b0565b60745181165f90815260a2602052604090205460ff166002816004811115611ba357611ba36120cf565b1480611bbf57505f816004811115611bbd57611bbd6120cf565b145b611c1f5760405162461bcd60e51b815260206004820152602b60248201527f4f6e6c79207374616e64617264207265626173696e67206163636f756e74732060448201526a18d85b881bdc1d081bdd5d60aa1b60648201526084016105b0565b60745182165f908152609d602052604081205490611c3c84610c8e565b60745185165f90815260a260209081526040808320805460ff1916600117905560a18252808320670de0b6b3a76400009055609d90915290208190559050611c98611c86836116fc565b611c8f90612270565b610708836116fc565b604051607451851681527f201ace89ad3f5ab7428b91989f6a50d1998791c7b94a0fa812fd64a57687165e906020015b60405180910390a150505050565b5f611ce082610c8e565b60745183165f90815260a16020526040902054909150151580611d13575060745182165f908152609d6020526040902054155b611d5f5760405162461bcd60e51b815260206004820152601c60248201527f4163636f756e74206d757374206265206e6f6e2d7265626173696e670000000060448201526064016105b0565b60745182165f90815260a2602052604090205460ff166001816004811115611d8957611d896120cf565b1480611da557505f816004811115611da357611da36120cf565b145b611e085760405162461bcd60e51b815260206004820152602e60248201527f4f6e6c79207374616e64617264206e6f6e2d7265626173696e67206163636f7560448201526d373a399031b0b71037b83a1034b760911b60648201526084016105b0565b5f611e12836116bc565b60745185165f90815260a260209081526040808320805460ff1916600217905560a18252808320839055609d90915290208190559050611e5d611e54826116fc565b611251856116fc565b604051607451851681527f19a249fa2050bac8314ac10e3ad420bd9825574bf750f58810c3c7adfc7b1c6f90602001611cc8565b5f5f8212156117655760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f73697469766560448201526064016105b0565b60745181163b5f811580611f335750816017148015611f3357508260745116803b806020016040519081016040528181525f908060200190933c611f25906122e8565b607d51191662ef010060e81b145b905080158015611f67575060745183165f90815260a2602052604081205460ff166004811115611f6557611f656120cf565b145b8015611f83575060745183165f90815260a16020526040902054155b15611f9157611f9183611b19565b505050565b8060745116611fb05f5160206123465f395f51905f525490565b607451167fc7c0c772add429241571afb3805861fb3cfa2af374534088b76cdb4325a87e9a60405160405180910390a35f5160206123465f395f51905f5255565b60745181168114610ac5575f5ffd5b5f60208284031215612010575f5ffd5b8135610d5c81611ff1565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f60408385031215612061575f5ffd5b823561206c81611ff1565b946020939093013593505050565b5f5f5f6060848603121561208c575f5ffd5b833561209781611ff1565b925060208401356120a781611ff1565b929592945050506040919091013590565b5f602082840312156120c8575f5ffd5b5035919050565b634e487b7160e01b5f52602160045260245ffd5b602081016005831061210357634e487b7160e01b5f52602160045260245ffd5b91905290565b5f5f6040838503121561211a575f5ffd5b823561212581611ff1565b9150602083013561213581611ff1565b809150509250929050565b5f60208284031215612150575f5ffd5b8151610d5c81611ff1565b60208082526028908201527f43616c6c6572206973206e6f74207468652053747261746567697374206f722060408201526723b7bb32b93737b960c11b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b8181035f8312801583831316838312821617156121d6576121d66121a3565b5092915050565b5f826121f757634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526017908201527f43616c6c6572206973206e6f7420746865205661756c74000000000000000000604082015260600190565b818103818111156107cd576107cd6121a3565b80820281158282048414176107cd576107cd6121a3565b808201808211156107cd576107cd6121a3565b5f600160ff1b8201612284576122846121a3565b505f0390565b6020808252601a908201527f43616c6c6572206973206e6f742074686520476f7665726e6f72000000000000604082015260600190565b8082018281125f8312801582168215821617156122e0576122e06121a3565b505092915050565b805160208201516001600160e81b031981169190600382101561231e576001600160e81b03196003838103901b81901b82161692505b505091905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef7bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4aa26469706673582212207da5c8f9d6014b134b9ff4b918ca2d95ebe01084d77da7ed245c536ccbf2c1b464736f6c637827302e382e33362d6d656d6f72796d61736b696e672d30332b636f6d6d69742e62633866633738330058