solc-0.8.36-memorymasking-07 0xdd3f50f8a6cafbe9b31a427582963f465e745af8 optimized
10110 bytes
5f1960805260a0604052600436106100f4575f3560e01c8063606b64971161008c578063b7013dc11161005c578063b7013dc114610220578063c095415d14610234578063d0e30db01461023c578063db82047b14610244575f5ffd5b8063606b6497146101c657806363a5db9e146101e557806372f5158d14610204578063888b042f1461020c575f5ffd5b806322b1751d116100c757806322b1751d1461015157806327c8f193146101645780633b36f5921461017857806354fd4d501461019c575f5ffd5b806312065fe0146100f85780631b7dd4c01461011f5780631e35fed8146101295780631eddb6261461013d575b5f5ffd5b348015610103575f5ffd5b5061010c61024c565b6040519081526020015b60405180910390f35b6101276102f6565b005b348015610134575f5ffd5b5061010c610435565b348015610148575f5ffd5b5061010c61045b565b61012761015f366004612442565b610673565b34801561016f575f5ffd5b506101276107aa565b348015610183575f5ffd5b5061018c61087f565b6040519015158152602001610116565b3480156101a7575f5ffd5b505f546101b49060ff1681565b60405160ff9091168152602001610116565b3480156101d1575f5ffd5b506101276101e0366004612442565b6108f9565b3480156101f0575f5ffd5b506101276101ff366004612442565b610a9a565b610127610cbc565b348015610217575f5ffd5b5061010c610e0d565b34801561022b575f5ffd5b5061010c610ebc565b610127610ee1565b610127610f7c565b610127611511565b6040516335ee5f8760e01b81526020600482015260116024820152701c9bd8dad95d11195c1bdcda5d141bdbdb607a1b60448201525f907f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d660745116906335ee5f8790606401602060405180830381865afa1580156102cd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102f19190612459565b905090565b61030c5f51602061271d5f395f51905f5261158a565b6074511630607451161461033b5760405162461bcd60e51b815260040161033290612470565b60405180910390fd5b604051806040016040528060148152602001733937b1b5b2ba20bab1ba34b7b726b0b730b3b2b960611b815250336103988260405160200161037d91906124a7565b6040516020818303038152906040528051906020012061158a565b607451168160745116146103be5760405162461bcd60e51b815260040161033290612470565b5f6103ea6040518060400160405280602081526020015f51602061273d5f395f51905f528152506115fa565b6040805134815242602082015291925033917f3a6614e80d02b57255cbb1f8305fbeca53d7e05a4b779d406279196608512925910160405180910390a261043081611658565b505050565b5f6102f1786465706f7369742e706f6f6c2e6e6f64652e62616c616e636560381b6116ca565b5f5f6104886040518060400160405280602081526020015f51602061273d5f395f51905f528152506115fa565b90508060745116636ada7847604051816064511660e01b8152600401602060405180830381865afa1580156104bf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104e391906124d9565b6104ee575f91505090565b5f6104f761024c565b90505f826074511663fd6ce89e604051816064511660e01b8152600401602060405180830381865afa15801561052f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105539190612459565b905082607451166347fa434a604051816064511660e01b8152600401602060405180830381865afa15801561058a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ae91906124d9565b15610651575f6105e860405180604001604052806013815260200172726f636b65744d696e69706f6f6c517565756560681b8152506115fa565b905061064d816074511663e60b40bf604051816064511660e01b8152600401602060405180830381865afa158015610622573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106469190612459565b8390611734565b9150505b808210610661575f935050505090565b61066b8183611799565b935050505090565b6106895f51602061271d5f395f51905f5261158a565b607451163060745116146106af5760405162461bcd60e51b815260040161033290612470565b604051806040016040528060118152602001701c9bd8dad95d139bd91951195c1bdcda5d607a1b815250336106ee8260405160200161037d91906124a7565b607451168160745116146107145760405162461bcd60e51b815260040161033290612470565b3415610784577f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d6607451166398ea5fca34604051826064511660e01b81526004015f604051808303818588803b15801561076c575f5ffd5b505af115801561077e573d5f5f3e3d5ffd5b50505050505b610430786465706f7369742e706f6f6c2e6e6f64652e62616c616e636560381b846117f4565b6107c05f51602061271d5f395f51905f5261158a565b607451163060745116146107e65760405162461bcd60e51b815260040161033290612470565b5f6108126040518060400160405280602081526020015f51602061273d5f395f51905f528152506115fa565b905061081d81611857565b61087c5760405162461bcd60e51b815260206004820152602a60248201527f4465706f7369742061737369676e6d656e7473206172652063757272656e746c6044820152691e48191a5cd8589b195960b21b6064820152608401610332565b50565b5f6108965f51602061271d5f395f51905f5261158a565b607451163060745116146108bc5760405162461bcd60e51b815260040161033290612470565b5f6108e86040518060400160405280602081526020015f51602061273d5f395f51905f528152506115fa565b90506108f381611857565b91505090565b61090f5f51602061271d5f395f51905f5261158a565b607451163060745116146109355760405162461bcd60e51b815260040161033290612470565b604051806040016040528060118152602001701c9bd8dad95d139bd91951195c1bdcda5d607a1b815250336109748260405160200161037d91906124a7565b6074511681607451161461099a5760405162461bcd60e51b815260040161033290612470565b604051631df699e760e11b8152600481018490527f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d66074511690633bed33ce906024015f604051808303815f87803b1580156109f4575f5ffd5b505af1158015610a06573d5f5f3e3d5ffd5b50506040515f925033915085908381818185875af1925050503d805f8114610a49576040519150601f19603f3d011682016040523d82523d5f602084013e610a4e565b606091505b5050905080610a945760405162461bcd60e51b815260206004820152601260248201527108cc2d2d8cac840e8de40e6cadcc8408aa8960731b6044820152606401610332565b50505050565b610ab05f51602061271d5f395f51905f5261158a565b60745116306074511614610ad65760405162461bcd60e51b815260040161033290612470565b6040518060400160405280600f81526020016e0e4dec6d6cae8a8ded6cadca48aa89608b1b81525033610b138260405160200161037d91906124a7565b60745116816074511614610b395760405162461bcd60e51b815260040161033290612470565b610b41610e0d565b831115610ba35760405162461bcd60e51b815260206004820152602a60248201527f496e73756666696369656e74206578636573732062616c616e636520666f72206044820152691dda5d1a191c985dd85b60b21b6064820152608401610332565b604051631df699e760e11b8152600481018490527f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d66074511690633bed33ce906024015f604051808303815f87803b158015610bfd575f5ffd5b505af1158015610c0f573d5f5f3e3d5ffd5b505050507f000000000000000000000000ae78736cd615f374d3085123a210448e74fc639360745116636c985a8884604051826064511660e01b81526004015f604051808303818588803b158015610c65575f5ffd5b505af1158015610c77573d5f5f3e3d5ffd5b5050604080518781524260208201523394507f992f462cfb62e164bd03bf07baf2cffce83fbd9370cae10635842b2020012120935001905060405180910390a2505050565b610cd25f51602061271d5f395f51905f5261158a565b60745116306074511614610cf85760405162461bcd60e51b815260040161033290612470565b33610d5881604051602001610d3d91906e6d696e69706f6f6c2e65786973747360881b815260609190911b6bffffffffffffffffffffffff1916600f82015260230190565b60405160208183030381529060405280519060200120611965565b610d975760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a59081b5a5b9a5c1bdbdb60821b6044820152606401610332565b5f610dc36040518060400160405280602081526020015f51602061273d5f395f51905f528152506115fa565b6040805134815242602082015291925033917f3a6614e80d02b57255cbb1f8305fbeca53d7e05a4b779d406279196608512925910160405180910390a2610e0981611658565b5050565b5f5f610e4360405180604001604052806013815260200172726f636b65744d696e69706f6f6c517565756560681b8152506115fa565b90505f816074511663e60b40bf604051816064511660e01b8152600401602060405180830381865afa158015610e7b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9f9190612459565b90505f610eaa61024c565b9050808210610661575f935050505090565b5f6102f1610ed0610ecb610435565b6119cf565b610edb610ecb61024c565b90611a38565b610ef75f51602061271d5f395f51905f5261158a565b60745116306074511614610f1d5760405162461bcd60e51b815260040161033290612470565b6040518060400160405280600b81526020016a1c9bd8dad95d15985d5b1d60aa1b81525033610f568260405160200161037d91906124a7565b60745116816074511614610e095760405162461bcd60e51b815260040161033290612470565b610f925f51602061271d5f395f51905f5261158a565b60745116306074511614610fb85760405162461bcd60e51b815260040161033290612470565b5f610fe46040518060400160405280602081526020015f51602061273d5f395f51905f528152506115fa565b90508060745116636ada7847604051816064511660e01b8152600401602060405180830381865afa15801561101b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103f91906124d9565b6110a45760405162461bcd60e51b815260206004820152603060248201527f4465706f7369747320696e746f20526f636b657420506f6f6c2061726520637560448201526f1c9c995b9d1b1e48191a5cd8589b195960821b6064820152608401610332565b806074511663035cf142604051816064511660e01b8152600401602060405180830381865afa1580156110d9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110fd9190612459565b3410156111725760405162461bcd60e51b815260206004820152603a60248201527f546865206465706f736974656420616d6f756e74206973206c6573732074686160448201527f6e20746865206d696e696d756d206465706f7369742073697a650000000000006064820152608401610332565b5f6111853461117f61024c565b90611734565b90505f826074511663fd6ce89e604051816064511660e01b8152600401602060405180830381865afa1580156111bd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111e19190612459565b9050808211156113c75782607451166347fa434a604051816064511660e01b8152600401602060405180830381865afa158015611220573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061124491906124d9565b15611359575f61127e60405180604001604052806013815260200172726f636b65744d696e69706f6f6c517565756560681b8152506115fa565b90506112b8816074511663e60b40bf604051816064511660e01b8152600401602060405180830381865afa158015610622573d5f5f3e3d5ffd5b8311156113535760405162461bcd60e51b815260206004820152605d60248201527f546865206465706f73697420706f6f6c2073697a65206166746572206465706f60448201527f736974696e672028616e64206d61746368696e672077697468206d696e69706f60648201527f6f6c7329206578636565647320746865206d6178696d756d2073697a65000000608482015260a401610332565b506113c7565b60405162461bcd60e51b815260206004820152603f60248201527f546865206465706f73697420706f6f6c2073697a65206166746572206465706f60448201527f736974696e67206578636565647320746865206d6178696d756d2073697a65006064820152608401610332565b5f61143d670de0b6b3a76400006114378660745116630de705b5604051816064511660e01b8152600401602060405180830381865afa15801561140c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114309190612459565b3490611ac2565b90611b40565b90505f61144a3483611799565b6040516394bf804d60e01b815260048101829052607451331660248201529091507f000000000000000000000000ae78736cd615f374d3085123a210448e74fc639360745116906394bf804d906044015f604051808303815f87803b1580156114b1575f5ffd5b505af11580156114c3573d5f5f3e3d5ffd5b5050604080513481524260208201523393507f7aa1a8eb998c779420645fc14513bf058edb347d95c2fc2e6845bdc22f88863192500160405180910390a261150a85611658565b5050505050565b6115275f51602061271d5f395f51905f5261158a565b6074511630607451161461154d5760405162461bcd60e51b815260040161033290612470565b6040518060400160405280600f81526020016e0e4dec6d6cae8a8ded6cadca48aa89608b1b815250336103988260405160200161037d91906124a7565b5f80546040516321f8a72160e01b81526004810184905261010090910460745116906321f8a72190602401602060405180830381865afa1580156115d0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115f4919061250e565b92915050565b5f5f6116108360405160200161037d91906124a7565b905060745181166115f45760405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081b9bdd08199bdd5b9960721b6044820152606401610332565b7f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d6607451166398ea5fca34604051826064511660e01b81526004015f604051808303818588803b1580156116aa575f5ffd5b505af11580156116bc573d5f5f3e3d5ffd5b5050505050610e0981611857565b5f805460405163bd02d0f560e01b815260048101849052610100909104607451169063bd02d0f590602401602060405180830381865afa158015611710573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115f49190612459565b5f80611740838561253b565b9050838110156117925760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610332565b9392505050565b5f828211156117ea5760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006044820152606401610332565b611792828461254e565b5f54604051632b6cd4f760e21b81526004810184905260248101839052610100909104607451169063adb353dc906044015b5f604051808303815f87803b15801561183d575f5ffd5b505af115801561184f573d5f5f3e3d5ffd5b505050505050565b5f81607451166347fa434a604051816064511660e01b8152600401602060405180830381865afa15801561188d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118b191906124d9565b6118bc57505f919050565b5f6118f160405180604001604052806013815260200172726f636b65744d696e69706f6f6c517565756560681b8152506115fa565b90508060745116638ed80453604051816064511660e01b8152600401602060405180830381865afa158015611928573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061194c91906124d9565b1561195b576117928184611b9a565b611792818461202f565b5f8054604051633d70e7e560e11b8152600481018490526101009091046074511690637ae1cfca90602401602060405180830381865afa1580156119ab573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115f491906124d9565b5f600160ff1b8210611a345760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401610332565b5090565b5f80611a448385612561565b90505f8312158015611a565750838113155b80611a6a57505f83128015611a6a57508381135b6117925760405162461bcd60e51b8152602060048201526024808201527f5369676e6564536166654d6174683a207375627472616374696f6e206f766572604482015263666c6f7760e01b6064820152608401610332565b5f825f03611ad157505f6115f4565b5f611adc8385612587565b905082611ae9858361259e565b146117925760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610332565b5f5f8211611b905760405162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f0000000000006044820152606401610332565b611792828461259e565b5f5f611bbd60405180606001604052806021815260200161275d602191396115fa565b90505f611bc861024c565b90505f5f90505f8560745116633b474a65604051816064511660e01b8152600401602060405180830381865afa158015611c04573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c289190612459565b90505f81606851811115611c3e57611c3e6125bd565b604051908082528060200260200182016040528015611c8257816020015b604080518082019091525f8082526020820152815260200190600190039081611c5c5790505b5090505f8080805b85811015611e6657825f03611d77578b607451166304b5466b604051816064511660e01b81526004016040805180830381865afa158015611ccd573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cf191906125d1565b90945092505f846004811115611d0957611d09612600565b14611e66576040516304a0030d60e21b81526074518a16906312800c3490611d35908790600401612614565b602060405180830381865afa158015611d50573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d749190612459565b91505b82611d818161263a565b935050811580611d99575081611d978989611799565b105b611e6657604051631d33eeb960e31b81525f906074518e169063e99f75c890611dc6908890600401612614565b6020604051808303815f875af1158015611de2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e06919061250e565b9050611e128884611734565b975082868381518110611e2757611e2761264f565b6020026020010151602001818152505080868381518110611e4a57611e4a61264f565b6020908102919091010151607451909116905250600101611c8a565b50851561201e57604051631df699e760e11b8152600481018790527f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d66074511690633bed33ce906024015f604051808303815f87803b158015611ec7575f5ffd5b505af1158015611ed9573d5f5f3e3d5ffd5b505f925050505b8581101561201c57848181518110611efa57611efa61264f565b6020026020010151602001515f031561201c575f858281518110611f2057611f2061264f565b60200260200101515f0151905080607451166348146113878481518110611f4957611f4961264f565b602002602001015160200151604051826064511660e01b81526004015f604051808303818588803b158015611f7c575f5ffd5b505af1158015611f8e573d5f5f3e3d5ffd5b5050505050858281518110611fa557611fa561264f565b60200260200101515f0151607451167fa1811054b7d96716259cff0d366c2f6405951e0efe00c8db3e237cbf77fe7be9878481518110611fe757611fe761264f565b6020026020010151602001514260405161200b929190918252602082015260400190565b60405180910390a250600101611ee0565b505b5060019a9950505050505050505050565b5f5f61205260405180606001604052806021815260200161275d602191396115fa565b90505f8360745116633b474a65604051816064511660e01b8152600401602060405180830381865afa15801561208a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120ae9190612459565b90505f8260745116633469f7b4604051816064511660e01b8152600401602060405180830381865afa1580156120e6573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061210a9190612459565b90505f6121173483611b40565b90505f6121268361143761024c565b90505f61218683896074511663f19b4106604051816064511660e01b8152600401602060405180830381865afa158015612162573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061117f9190612459565b9050818111156121935750805b8481111561219e5750835b604051637e0e497b60e01b8152600481018290525f906074518b1690637e0e497b906024015f604051808303815f875af11580156121de573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526122059190810190612663565b8051909150156123fc5780515f9061221d9087611ac2565b604051631df699e760e11b8152600481018290529091507f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d66074511690633bed33ce906024015f604051808303815f87803b15801561227a575f5ffd5b505af115801561228c573d5f5f3e3d5ffd5b505f9250829150505b83518110156123d2575f8482815181106122b1576122b161264f565b60200260200101519050806074511663d0e30db08a604051826064511660e01b81526004015f604051808303818588803b1580156122ed575f5ffd5b505af11580156122ff573d5f5f3e3d5ffd5b5050505050612367816074511663d2ceebd1604051816064511660e01b8152600401602060405180830381865afa15801561233c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123609190612459565b8490611734565b925084828151811061237b5761237b61264f565b6020026020010151607451167fa1811054b7d96716259cff0d366c2f6405951e0efe00c8db3e237cbf77fe7be98a426040516123c1929190918252602082015260400190565b60405180910390a250600101612295565b506123f9786465706f7369742e706f6f6c2e6e6f64652e62616c616e636560381b8261240c565b50505b5060019998505050505050505050565b5f5460405163ebb9d8c960e01b81526004810184905260248101839052610100909104607451169063ebb9d8c990604401611826565b5f60208284031215612452575f5ffd5b5035919050565b5f60208284031215612469575f5ffd5b5051919050565b6020808252601c908201527f496e76616c6964206f72206f7574646174656420636f6e747261637400000000604082015260600190565b6f636f6e74726163742e6164647265737360801b81525f82518060208501601085015e5f920160100191825250919050565b5f602082840312156124e9575f5ffd5b81518015158114611792575f5ffd5b805160745181168114612509575f5ffd5b919050565b5f6020828403121561251e575f5ffd5b611792826124f8565b634e487b7160e01b5f52601160045260245ffd5b808201808211156115f4576115f4612527565b818103818111156115f4576115f4612527565b8181035f83128015838313168383128216171561258057612580612527565b5092915050565b80820281158282048414176115f4576115f4612527565b5f826125b857634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52604160045260245ffd5b5f5f604083850312156125e2575f5ffd5b8251600581106125f0575f5ffd5b6020939093015192949293505050565b634e487b7160e01b5f52602160045260245ffd5b602081016005831061263457634e487b7160e01b5f52602160045260245ffd5b91905290565b5f8161264857612648612527565b505f190190565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612673575f5ffd5b8151606851811115612683575f5ffd5b8201601f81018413612693575f5ffd5b80516068518111156126a7576126a76125bd565b8060051b604051601f19603f8301168101818110606851821117156126ce576126ce6125bd565b6040529182526020818401810192908101878411156126eb575f5ffd5b6020850194505b8385101561271157612703856124f8565b8152602094850194016126f2565b50969550505050505056fe65dd923ddfc8d8ae6088f80077201d2403cbd565f0ba25e09841e2799ec90bb2726f636b657444414f50726f746f636f6c53657474696e67734465706f736974726f636b657444414f50726f746f636f6c53657474696e67734d696e69706f6f6c