parameter (or
            (or
              (or (pair address (pair address nat))
                  (or (pair address (pair address (pair address nat)))
                      (pair address nat)))
              (or (pair address (pair address nat))
                  (or (pair (pair address address) (contract nat))
                      (pair address (contract nat)))))
            (or (or (pair unit (contract nat)) (or bool address))
                (or (or (pair unit (contract address)) (pair address nat))
                    (or (pair address nat) address))));
storage (pair (big_map address (pair nat (map address nat)))
              (pair (pair address bool) (pair nat (or address address))));
code { DUP ;
       CAR ;
       DIP { CDR } ;
       IF_LEFT
         { IF_LEFT
             { IF_LEFT
                 { SENDER ;
                   PAIR ;
                   DIP { DUP ;
                         CDR ;
                         CAR ;
                         CDR ;
                         IF
                           { PUSH (pair string unit) (Pair "OperationsArePaused" Unit) ;
                             FAILWITH }
                           {} } ;
                   DUP ;
                   CDR ;
                   DUP ;
                   CDR ;
                   CAR ;
                   DIP { CAR } ;
                   COMPARE ;
                   EQ ;
                   IF
                     { DROP }
                     { DUP ;
                       CAR ;
                       DIP { CDR } ;
                       DIP { DUP ; CAR } ;
                       SWAP ;
                       DIP { DUP } ;
                       COMPARE ;
                       EQ ;
                       IF
                         { DROP }
                         { DIP { DUP } ;
                           SWAP ;
                           DIP { DIP { DUP } ;
                                 SWAP ;
                                 DIP { DUP } ;
                                 SWAP ;
                                 DIP { DIP { DIP { DIP { DUP } } ;
                                             DIP { CAR } ;
                                             PAIR ;
                                             DUP ;
                                             DIP { CDR ;
                                                   DIP { CAR } ;
                                                   GET ;
                                                   IF_NONE
                                                     { EMPTY_MAP address nat }
                                                     { CDR } } ;
                                             CAR ;
                                             GET ;
                                             IF_NONE { PUSH nat 0 } {} } } ;
                                 DIP { DUP ; CAR } ;
                                 SWAP ;
                                 DIP { DUP ;
                                       DIP { DIP { DUP ;
                                                   CDR ;
                                                   CDR ;
                                                   DIP { DIP { DUP } ; SWAP } ;
                                                   SWAP ;
                                                   SUB ;
                                                   ISNAT ;
                                                   IF_NONE
                                                     { DIP { DUP } ;
                                                       SWAP ;
                                                       DIP { DUP } ;
                                                       SWAP ;
                                                       CDR ;
                                                       CDR ;
                                                       PAIR ;
                                                       PUSH string "NotEnoughAllowance" ;
                                                       PAIR ;
                                                       FAILWITH }
                                                     {} } ;
                                             SWAP } ;
                                       PAIR } ;
                                 PAIR ;
                                 DIP { DROP ; DROP ; DROP } ;
                                 DIP { DUP ; CAR } ;
                                 SWAP ;
                                 DIP { DUP ; CAR } ;
                                 SWAP ;
                                 GET ;
                                 IF_NONE
                                   { PUSH nat 0 ;
                                     DIP { EMPTY_MAP address nat } ;
                                     PAIR ;
                                     EMPTY_MAP address nat }
                                   { DUP ; CDR } ;
                                 DIP { DIP { DUP } ; SWAP } ;
                                 SWAP ;
                                 CDR ;
                                 CDR ;
                                 DUP ;
                                 INT ;
                                 EQ ;
                                 IF { DROP ; NONE nat } { SOME } ;
                                 DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ;
                                 SWAP ;
                                 CDR ;
                                 CAR ;
                                 UPDATE ;
                                 DIP { DUP ; DIP { CAR } ; CDR } ;
                                 DIP { DROP } ;
                                 SWAP ;
                                 PAIR ;
                                 SOME ;
                                 SWAP ;
                                 CAR ;
                                 DIP { DIP { DUP ; CAR } } ;
                                 UPDATE ;
                                 DIP { DUP ; DIP { CDR } ; CAR } ;
                                 DIP { DROP } ;
                                 PAIR } } ;
                       DIP { DUP } ;
                       SWAP ;
                       CAR ;
                       DIP { DUP } ;
                       SWAP ;
                       CDR ;
                       CAR ;
                       GET ;
                       IF_NONE
                         { DUP ;
                           CDR ;
                           CDR ;
                           INT ;
                           EQ ;
                           IF
                             { NONE (pair nat (map address nat)) }
                             { DUP ; CDR ; CDR ; DIP { EMPTY_MAP address nat } ; PAIR ; SOME } }
                         { DIP { DUP } ;
                           SWAP ;
                           CDR ;
                           CDR ;
                           DIP { DUP ; CAR } ;
                           ADD ;
                           DIP { DUP ; DIP { CDR } ; CAR } ;
                           DIP { DROP } ;
                           PAIR ;
                           SOME } ;
                       SWAP ;
                       DIP { DIP { DUP ; CAR } } ;
                       DUP ;
                       DIP { CDR ;
                             CAR ;
                             UPDATE ;
                             DIP { DUP ; DIP { CDR } ; CAR } ;
                             DIP { DROP } ;
                             PAIR } ;
                       DUP ;
                       DIP { CDR ;
                             CDR ;
                             INT ;
                             DIP { DUP ; CDR ; DUP ; CDR ; CAR } ;
                             ADD ;
                             ISNAT ;
                             IF_NONE
                               { PUSH string "Unexpected failure: Negative total supply\nCallStack (from HasCallStack):\n  failUnexpected, called at src/Lorentz/Contracts/ManagedLedger/Impl.hs:158:27 in lorentz-contracts-0.2.0.1.2-CWNYAYQdqCJAhKtTd1tWlU:Lorentz.Contracts.ManagedLedger.Impl" ;
                                 FAILWITH }
                               {} ;
                             DIP { DUP ; DIP { CAR } ; CDR } ;
                             DIP { DUP ; DIP { CDR } ; CAR } ;
                             DIP { DROP } ;
                             PAIR ;
                             SWAP ;
                             PAIR ;
                             DIP { DUP ; DIP { CAR } ; CDR } ;
                             DIP { DROP } ;
                             SWAP ;
                             PAIR } ;
                       DIP { DUP } ;
                       SWAP ;
                       CAR ;
                       DIP { DUP } ;
                       SWAP ;
                       CAR ;
                       GET ;
                       IF_NONE
                         { CDR ;
                           CDR ;
                           PUSH nat 0 ;
                           SWAP ;
                           PAIR ;
                           PUSH string "NotEnoughBalance" ;
                           PAIR ;
                           FAILWITH }
                         {} ;
                       DUP ;
                       CAR ;
                       DIP { DIP { DUP } ; SWAP } ;
                       SWAP ;
                       CDR ;
                       CDR ;
                       SWAP ;
                       SUB ;
                       ISNAT ;
                       IF_NONE
                         { CAR ;
                           DIP { DUP } ;
                           SWAP ;
                           CDR ;
                           CDR ;
                           PAIR ;
                           PUSH string "NotEnoughBalance" ;
                           PAIR ;
                           FAILWITH }
                         {} ;
                       DIP { DUP ; DIP { CDR } ; CAR } ;
                       DIP { DROP } ;
                       PAIR ;
                       DIP { DUP } ;
                       SWAP ;
                       DIP { DUP ;
                             CAR ;
                             INT ;
                             EQ ;
                             IF
                               { DUP ;
                                 CDR ;
                                 SIZE ;
                                 INT ;
                                 EQ ;
                                 IF
                                   { DROP ; NONE (pair nat (map address nat)) }
                                   { SOME } }
                               { SOME } ;
                             SWAP ;
                             CAR ;
                             DIP { DIP { DUP ; CAR } } ;
                             UPDATE ;
                             DIP { DUP ; DIP { CDR } ; CAR } ;
                             DIP { DROP } ;
                             PAIR } ;
                       DUP ;
                       DIP { CDR ;
                             CDR ;
                             NEG ;
                             DIP { DUP ; CDR ; DUP ; CDR ; CAR } ;
                             ADD ;
                             ISNAT ;
                             IF_NONE
                               { PUSH string "Unexpected failure: Negative total supply\nCallStack (from HasCallStack):\n  failUnexpected, called at src/Lorentz/Contracts/ManagedLedger/Impl.hs:158:27 in lorentz-contracts-0.2.0.1.2-CWNYAYQdqCJAhKtTd1tWlU:Lorentz.Contracts.ManagedLedger.Impl" ;
                                 FAILWITH }
                               {} ;
                             DIP { DUP ; DIP { CAR } ; CDR } ;
                             DIP { DUP ; DIP { CDR } ; CAR } ;
                             DIP { DROP } ;
                             PAIR ;
                             SWAP ;
                             PAIR ;
                             DIP { DUP ; DIP { CAR } ; CDR } ;
                             DIP { DROP } ;
                             SWAP ;
                             PAIR } ;
                       DROP } ;
                   NIL operation ;
                   PAIR }
                 { IF_LEFT
                     { DIP { DUP ;
                             CDR ;
                             CDR ;
                             CDR ;
                             IF_LEFT
                               { PUSH (pair string unit) (Pair "ProxyIsNotSet" Unit) ;
                                 FAILWITH }
                               { SENDER ;
                                 COMPARE ;
                                 EQ ;
                                 IF
                                   {}
                                   { PUSH (pair string unit) (Pair "CallerIsNotProxy" Unit) ;
                                     FAILWITH } } } ;
                       DIP { DUP ;
                             CDR ;
                             CAR ;
                             CDR ;
                             IF
                               { PUSH (pair string unit) (Pair "OperationsArePaused" Unit) ;
                                 FAILWITH }
                               {} } ;
                       DUP ;
                       CDR ;
                       DUP ;
                       CDR ;
                       CAR ;
                       DIP { CAR } ;
                       COMPARE ;
                       EQ ;
                       IF
                         { DROP }
                         { DUP ;
                           CAR ;
                           DIP { CDR } ;
                           DIP { DUP ; CAR } ;
                           SWAP ;
                           DIP { DUP } ;
                           COMPARE ;
                           EQ ;
                           IF
                             { DROP }
                             { DIP { DUP } ;
                               SWAP ;
                               DIP { DIP { DUP } ;
                                     SWAP ;
                                     DIP { DUP } ;
                                     SWAP ;
                                     DIP { DIP { DIP { DIP { DUP } } ;
                                                 DIP { CAR } ;
                                                 PAIR ;
                                                 DUP ;
                                                 DIP { CDR ;
                                                       DIP { CAR } ;
                                                       GET ;
                                                       IF_NONE
                                                         { EMPTY_MAP address nat }
                                                         { CDR } } ;
                                                 CAR ;
                                                 GET ;
                                                 IF_NONE { PUSH nat 0 } {} } } ;
                                     DIP { DUP ; CAR } ;
                                     SWAP ;
                                     DIP { DUP ;
                                           DIP { DIP { DUP ;
                                                       CDR ;
                                                       CDR ;
                                                       DIP { DIP { DUP } ; SWAP } ;
                                                       SWAP ;
                                                       SUB ;
                                                       ISNAT ;
                                                       IF_NONE
                                                         { DIP { DUP } ;
                                                           SWAP ;
                                                           DIP { DUP } ;
                                                           SWAP ;
                                                           CDR ;
                                                           CDR ;
                                                           PAIR ;
                                                           PUSH string "NotEnoughAllowance" ;
                                                           PAIR ;
                                                           FAILWITH }
                                                         {} } ;
                                                 SWAP } ;
                                           PAIR } ;
                                     PAIR ;
                                     DIP { DROP ; DROP ; DROP } ;
                                     DIP { DUP ; CAR } ;
                                     SWAP ;
                                     DIP { DUP ; CAR } ;
                                     SWAP ;
                                     GET ;
                                     IF_NONE
                                       { PUSH nat 0 ;
                                         DIP { EMPTY_MAP address nat } ;
                                         PAIR ;
                                         EMPTY_MAP address nat }
                                       { DUP ; CDR } ;
                                     DIP { DIP { DUP } ; SWAP } ;
                                     SWAP ;
                                     CDR ;
                                     CDR ;
                                     DUP ;
                                     INT ;
                                     EQ ;
                                     IF { DROP ; NONE nat } { SOME } ;
                                     DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ;
                                     SWAP ;
                                     CDR ;
                                     CAR ;
                                     UPDATE ;
                                     DIP { DUP ; DIP { CAR } ; CDR } ;
                                     DIP { DROP } ;
                                     SWAP ;
                                     PAIR ;
                                     SOME ;
                                     SWAP ;
                                     CAR ;
                                     DIP { DIP { DUP ; CAR } } ;
                                     UPDATE ;
                                     DIP { DUP ; DIP { CDR } ; CAR } ;
                                     DIP { DROP } ;
                                     PAIR } } ;
                           DIP { DUP } ;
                           SWAP ;
                           CAR ;
                           DIP { DUP } ;
                           SWAP ;
                           CDR ;
                           CAR ;
                           GET ;
                           IF_NONE
                             { DUP ;
                               CDR ;
                               CDR ;
                               INT ;
                               EQ ;
                               IF
                                 { NONE (pair nat (map address nat)) }
                                 { DUP ; CDR ; CDR ; DIP { EMPTY_MAP address nat } ; PAIR ; SOME } }
                             { DIP { DUP } ;
                               SWAP ;
                               CDR ;
                               CDR ;
                               DIP { DUP ; CAR } ;
                               ADD ;
                               DIP { DUP ; DIP { CDR } ; CAR } ;
                               DIP { DROP } ;
                               PAIR ;
                               SOME } ;
                           SWAP ;
                           DIP { DIP { DUP ; CAR } } ;
                           DUP ;
                           DIP { CDR ;
                                 CAR ;
                                 UPDATE ;
                                 DIP { DUP ; DIP { CDR } ; CAR } ;
                                 DIP { DROP } ;
                                 PAIR } ;
                           DUP ;
                           DIP { CDR ;
                                 CDR ;
                                 INT ;
                                 DIP { DUP ; CDR ; DUP ; CDR ; CAR } ;
                                 ADD ;
                                 ISNAT ;
                                 IF_NONE
                                   { PUSH string "Unexpected failure: Negative total supply\nCallStack (from HasCallStack):\n  failUnexpected, called at src/Lorentz/Contracts/ManagedLedger/Impl.hs:158:27 in lorentz-contracts-0.2.0.1.2-CWNYAYQdqCJAhKtTd1tWlU:Lorentz.Contracts.ManagedLedger.Impl" ;
                                     FAILWITH }
                                   {} ;
                                 DIP { DUP ; DIP { CAR } ; CDR } ;
                                 DIP { DUP ; DIP { CDR } ; CAR } ;
                                 DIP { DROP } ;
                                 PAIR ;
                                 SWAP ;
                                 PAIR ;
                                 DIP { DUP ; DIP { CAR } ; CDR } ;
                                 DIP { DROP } ;
                                 SWAP ;
                                 PAIR } ;
                           DIP { DUP } ;
                           SWAP ;
                           CAR ;
                           DIP { DUP } ;
                           SWAP ;
                           CAR ;
                           GET ;
                           IF_NONE
                             { CDR ;
                               CDR ;
                               PUSH nat 0 ;
                               SWAP ;
                               PAIR ;
                               PUSH string "NotEnoughBalance" ;
                               PAIR ;
                               FAILWITH }
                             {} ;
                           DUP ;
                           CAR ;
                           DIP { DIP { DUP } ; SWAP } ;
                           SWAP ;
                           CDR ;
                           CDR ;
                           SWAP ;
                           SUB ;
                           ISNAT ;
                           IF_NONE
                             { CAR ;
                               DIP { DUP } ;
                               SWAP ;
                               CDR ;
                               CDR ;
                               PAIR ;
                               PUSH string "NotEnoughBalance" ;
                               PAIR ;
                               FAILWITH }
                             {} ;
                           DIP { DUP ; DIP { CDR } ; CAR } ;
                           DIP { DROP } ;
                           PAIR ;
                           DIP { DUP } ;
                           SWAP ;
                           DIP { DUP ;
                                 CAR ;
                                 INT ;
                                 EQ ;
                                 IF
                                   { DUP ;
                                     CDR ;
                                     SIZE ;
                                     INT ;
                                     EQ ;
                                     IF
                                       { DROP ; NONE (pair nat (map address nat)) }
                                       { SOME } }
                                   { SOME } ;
                                 SWAP ;
                                 CAR ;
                                 DIP { DIP { DUP ; CAR } } ;
                                 UPDATE ;
                                 DIP { DUP ; DIP { CDR } ; CAR } ;
                                 DIP { DROP } ;
                                 PAIR } ;
                           DUP ;
                           DIP { CDR ;
                                 CDR ;
                                 NEG ;
                                 DIP { DUP ; CDR ; DUP ; CDR ; CAR } ;
                                 ADD ;
                                 ISNAT ;
                                 IF_NONE
                                   { PUSH string "Unexpected failure: Negative total supply\nCallStack (from HasCallStack):\n  failUnexpected, called at src/Lorentz/Contracts/ManagedLedger/Impl.hs:158:27 in lorentz-contracts-0.2.0.1.2-CWNYAYQdqCJAhKtTd1tWlU:Lorentz.Contracts.ManagedLedger.Impl" ;
                                     FAILWITH }
                                   {} ;
                                 DIP { DUP ; DIP { CAR } ; CDR } ;
                                 DIP { DUP ; DIP { CDR } ; CAR } ;
                                 DIP { DROP } ;
                                 PAIR ;
                                 SWAP ;
                                 PAIR ;
                                 DIP { DUP ; DIP { CAR } ; CDR } ;
                                 DIP { DROP } ;
                                 SWAP ;
                                 PAIR } ;
                           DROP } ;
                       NIL operation ;
                       PAIR }
                     { SENDER ;
                       PAIR ;
                       DIP { DUP ;
                             CDR ;
                             CAR ;
                             CDR ;
                             IF
                               { PUSH (pair string unit) (Pair "OperationsArePaused" Unit) ;
                                 FAILWITH }
                               {} } ;
                       DIP { DUP } ;
                       SWAP ;
                       DIP { DUP } ;
                       SWAP ;
                       DUP ;
                       DIP { CAR ;
                             DIP { CAR } ;
                             GET ;
                             IF_NONE { EMPTY_MAP address nat } { CDR } } ;
                       CDR ;
                       CAR ;
                       GET ;
                       IF_NONE { PUSH nat 0 } {} ;
                       DUP ;
                       INT ;
                       EQ ;
                       IF
                         { DROP }
                         { DIP { DUP } ;
                           SWAP ;
                           CDR ;
                           CDR ;
                           INT ;
                           EQ ;
                           IF
                             { DROP }
                             { PUSH string "UnsafeAllowanceChange" ; PAIR ; FAILWITH } } ;
                       DIP { DUP ; CAR } ;
                       SWAP ;
                       DIP { DUP ; CAR } ;
                       SWAP ;
                       GET ;
                       IF_NONE
                         { PUSH nat 0 ;
                           DIP { EMPTY_MAP address nat } ;
                           PAIR ;
                           EMPTY_MAP address nat }
                         { DUP ; CDR } ;
                       DIP { DIP { DUP } ; SWAP } ;
                       SWAP ;
                       CDR ;
                       CDR ;
                       DUP ;
                       INT ;
                       EQ ;
                       IF { DROP ; NONE nat } { SOME } ;
                       DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ;
                       SWAP ;
                       CDR ;
                       CAR ;
                       UPDATE ;
                       DIP { DUP ; DIP { CAR } ; CDR } ;
                       DIP { DROP } ;
                       SWAP ;
                       PAIR ;
                       SOME ;
                       SWAP ;
                       CAR ;
                       DIP { DIP { DUP ; CAR } } ;
                       UPDATE ;
                       DIP { DUP ; DIP { CDR } ; CAR } ;
                       DIP { DROP } ;
                       PAIR ;
                       NIL operation ;
                       PAIR } } }
             { IF_LEFT
                 { DIP { DUP ;
                         CDR ;
                         CDR ;
                         CDR ;
                         IF_LEFT
                           { PUSH (pair string unit) (Pair "ProxyIsNotSet" Unit) ;
                             FAILWITH }
                           { SENDER ;
                             COMPARE ;
                             EQ ;
                             IF
                               {}
                               { PUSH (pair string unit) (Pair "CallerIsNotProxy" Unit) ;
                                 FAILWITH } } } ;
                   DIP { DUP ;
                         CDR ;
                         CAR ;
                         CDR ;
                         IF
                           { PUSH (pair string unit) (Pair "OperationsArePaused" Unit) ;
                             FAILWITH }
                           {} } ;
                   DIP { DUP } ;
                   SWAP ;
                   DIP { DUP } ;
                   SWAP ;
                   DUP ;
                   DIP { CAR ; DIP { CAR } ; GET ; IF_NONE { EMPTY_MAP address nat } { CDR } } ;
                   CDR ;
                   CAR ;
                   GET ;
                   IF_NONE { PUSH nat 0 } {} ;
                   DUP ;
                   INT ;
                   EQ ;
                   IF
                     { DROP }
                     { DIP { DUP } ;
                       SWAP ;
                       CDR ;
                       CDR ;
                       INT ;
                       EQ ;
                       IF
                         { DROP }
                         { PUSH string "UnsafeAllowanceChange" ; PAIR ; FAILWITH } } ;
                   DIP { DUP ; CAR } ;
                   SWAP ;
                   DIP { DUP ; CAR } ;
                   SWAP ;
                   GET ;
                   IF_NONE
                     { PUSH nat 0 ;
                       DIP { EMPTY_MAP address nat } ;
                       PAIR ;
                       EMPTY_MAP address nat }
                     { DUP ; CDR } ;
                   DIP { DIP { DUP } ; SWAP } ;
                   SWAP ;
                   CDR ;
                   CDR ;
                   DUP ;
                   INT ;
                   EQ ;
                   IF { DROP ; NONE nat } { SOME } ;
                   DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ;
                   SWAP ;
                   CDR ;
                   CAR ;
                   UPDATE ;
                   DIP { DUP ; DIP { CAR } ; CDR } ;
                   DIP { DROP } ;
                   SWAP ;
                   PAIR ;
                   SOME ;
                   SWAP ;
                   CAR ;
                   DIP { DIP { DUP ; CAR } } ;
                   UPDATE ;
                   DIP { DUP ; DIP { CDR } ; CAR } ;
                   DIP { DROP } ;
                   PAIR ;
                   NIL operation ;
                   PAIR }
                 { IF_LEFT
                     { DUP ;
                       CAR ;
                       DIP { CDR } ;
                       DIP { DIP { DUP } ; SWAP } ;
                       PAIR ;
                       DUP ;
                       CAR ;
                       DIP { CDR } ;
                       DUP ;
                       DIP { CAR ;
                             DIP { CAR } ;
                             GET ;
                             IF_NONE { EMPTY_MAP address nat } { CDR } } ;
                       CDR ;
                       GET ;
                       IF_NONE { PUSH nat 0 } {} ;
                       DIP { AMOUNT } ;
                       TRANSFER_TOKENS ;
                       NIL operation ;
                       SWAP ;
                       CONS ;
                       PAIR }
                     { DUP ;
                       CAR ;
                       DIP { CDR } ;
                       DIP { DIP { DUP } ; SWAP } ;
                       PAIR ;
                       DUP ;
                       CAR ;
                       DIP { CDR } ;
                       DIP { CAR } ;
                       GET ;
                       IF_NONE { PUSH nat 0 } { CAR } ;
                       DIP { AMOUNT } ;
                       TRANSFER_TOKENS ;
                       NIL operation ;
                       SWAP ;
                       CONS ;
                       PAIR } } } }
         { IF_LEFT
             { IF_LEFT
                 { DUP ;
                   CAR ;
                   DIP { CDR } ;
                   DIP { DIP { DUP } ; SWAP } ;
                   PAIR ;
                   CDR ;
                   CDR ;
                   CDR ;
                   CAR ;
                   DIP { AMOUNT } ;
                   TRANSFER_TOKENS ;
                   NIL operation ;
                   SWAP ;
                   CONS ;
                   PAIR }
                 { IF_LEFT
                     { DIP { DUP ;
                             CDR ;
                             CAR ;
                             CAR ;
                             SENDER ;
                             COMPARE ;
                             EQ ;
                             IF
                               {}
                               { PUSH (pair string unit) (Pair "SenderIsNotAdmin" Unit) ;
                                 FAILWITH } } ;
                       DIP { DUP ; CDR } ;
                       DIP { DUP ; DIP { CDR } ; CAR } ;
                       DIP { DUP ; DIP { CAR } ; CDR } ;
                       DIP { DROP } ;
                       SWAP ;
                       PAIR ;
                       PAIR ;
                       DIP { DUP ; DIP { CAR } ; CDR } ;
                       DIP { DROP } ;
                       SWAP ;
                       PAIR ;
                       NIL operation ;
                       PAIR }
                     { DIP { DUP ;
                             CDR ;
                             CAR ;
                             CAR ;
                             SENDER ;
                             COMPARE ;
                             EQ ;
                             IF
                               {}
                               { PUSH (pair string unit) (Pair "SenderIsNotAdmin" Unit) ;
                                 FAILWITH } } ;
                       DIP { DUP ; CDR } ;
                       DIP { DUP ; DIP { CDR } ; CAR } ;
                       DIP { DUP ; DIP { CDR } ; CAR } ;
                       DIP { DROP } ;
                       PAIR ;
                       PAIR ;
                       DIP { DUP ; DIP { CAR } ; CDR } ;
                       DIP { DROP } ;
                       SWAP ;
                       PAIR ;
                       NIL operation ;
                       PAIR } } }
             { IF_LEFT
                 { IF_LEFT
                     { DUP ;
                       CAR ;
                       DIP { CDR } ;
                       DIP { DIP { DUP } ; SWAP } ;
                       PAIR ;
                       CDR ;
                       CDR ;
                       CAR ;
                       CAR ;
                       DIP { AMOUNT } ;
                       TRANSFER_TOKENS ;
                       NIL operation ;
                       SWAP ;
                       CONS ;
                       PAIR }
                     { DIP { DUP ;
                             CDR ;
                             CAR ;
                             CAR ;
                             SENDER ;
                             COMPARE ;
                             EQ ;
                             IF
                               {}
                               { PUSH (pair string unit) (Pair "SenderIsNotAdmin" Unit) ;
                                 FAILWITH } } ;
                       DIP { DUP } ;
                       SWAP ;
                       CAR ;
                       DIP { DUP } ;
                       SWAP ;
                       CAR ;
                       GET ;
                       IF_NONE
                         { DUP ;
                           CDR ;
                           INT ;
                           EQ ;
                           IF
                             { NONE (pair nat (map address nat)) }
                             { DUP ; CDR ; DIP { EMPTY_MAP address nat } ; PAIR ; SOME } }
                         { DIP { DUP } ;
                           SWAP ;
                           CDR ;
                           DIP { DUP ; CAR } ;
                           ADD ;
                           DIP { DUP ; DIP { CDR } ; CAR } ;
                           DIP { DROP } ;
                           PAIR ;
                           SOME } ;
                       SWAP ;
                       DIP { DIP { DUP ; CAR } } ;
                       DUP ;
                       DIP { CAR ; UPDATE ; DIP { DUP ; DIP { CDR } ; CAR } ; DIP { DROP } ; PAIR } ;
                       DUP ;
                       DIP { CDR ;
                             INT ;
                             DIP { DUP ; CDR ; DUP ; CDR ; CAR } ;
                             ADD ;
                             ISNAT ;
                             IF_NONE
                               { PUSH string "Unexpected failure: Negative total supply\nCallStack (from HasCallStack):\n  failUnexpected, called at src/Lorentz/Contracts/ManagedLedger/Impl.hs:158:27 in lorentz-contracts-0.2.0.1.2-CWNYAYQdqCJAhKtTd1tWlU:Lorentz.Contracts.ManagedLedger.Impl" ;
                                 FAILWITH }
                               {} ;
                             DIP { DUP ; DIP { CAR } ; CDR } ;
                             DIP { DUP ; DIP { CDR } ; CAR } ;
                             DIP { DROP } ;
                             PAIR ;
                             SWAP ;
                             PAIR ;
                             DIP { DUP ; DIP { CAR } ; CDR } ;
                             DIP { DROP } ;
                             SWAP ;
                             PAIR } ;
                       DROP ;
                       NIL operation ;
                       PAIR } }
                 { IF_LEFT
                     { DIP { DUP ;
                             CDR ;
                             CAR ;
                             CAR ;
                             SENDER ;
                             COMPARE ;
                             EQ ;
                             IF
                               {}
                               { PUSH (pair string unit) (Pair "SenderIsNotAdmin" Unit) ;
                                 FAILWITH } } ;
                       DIP { DUP } ;
                       SWAP ;
                       CAR ;
                       DIP { DUP } ;
                       SWAP ;
                       CAR ;
                       GET ;
                       IF_NONE
                         { CDR ;
                           PUSH nat 0 ;
                           SWAP ;
                           PAIR ;
                           PUSH string "NotEnoughBalance" ;
                           PAIR ;
                           FAILWITH }
                         {} ;
                       DUP ;
                       CAR ;
                       DIP { DIP { DUP } ; SWAP } ;
                       SWAP ;
                       CDR ;
                       SWAP ;
                       SUB ;
                       ISNAT ;
                       IF_NONE
                         { CAR ;
                           DIP { DUP } ;
                           SWAP ;
                           CDR ;
                           PAIR ;
                           PUSH string "NotEnoughBalance" ;
                           PAIR ;
                           FAILWITH }
                         {} ;
                       DIP { DUP ; DIP { CDR } ; CAR } ;
                       DIP { DROP } ;
                       PAIR ;
                       DIP { DUP } ;
                       SWAP ;
                       DIP { DUP ;
                             CAR ;
                             INT ;
                             EQ ;
                             IF
                               { DUP ;
                                 CDR ;
                                 SIZE ;
                                 INT ;
                                 EQ ;
                                 IF
                                   { DROP ; NONE (pair nat (map address nat)) }
                                   { SOME } }
                               { SOME } ;
                             SWAP ;
                             CAR ;
                             DIP { DIP { DUP ; CAR } } ;
                             UPDATE ;
                             DIP { DUP ; DIP { CDR } ; CAR } ;
                             DIP { DROP } ;
                             PAIR } ;
                       DUP ;
                       DIP { CDR ;
                             NEG ;
                             DIP { DUP ; CDR ; DUP ; CDR ; CAR } ;
                             ADD ;
                             ISNAT ;
                             IF_NONE
                               { PUSH string "Unexpected failure: Negative total supply\nCallStack (from HasCallStack):\n  failUnexpected, called at src/Lorentz/Contracts/ManagedLedger/Impl.hs:158:27 in lorentz-contracts-0.2.0.1.2-CWNYAYQdqCJAhKtTd1tWlU:Lorentz.Contracts.ManagedLedger.Impl" ;
                                 FAILWITH }
                               {} ;
                             DIP { DUP ; DIP { CAR } ; CDR } ;
                             DIP { DUP ; DIP { CDR } ; CAR } ;
                             DIP { DROP } ;
                             PAIR ;
                             SWAP ;
                             PAIR ;
                             DIP { DUP ; DIP { CAR } ; CDR } ;
                             DIP { DROP } ;
                             SWAP ;
                             PAIR } ;
                       DROP ;
                       NIL operation ;
                       PAIR }
                     { DIP { DUP ;
                             CDR ;
                             CDR ;
                             CDR ;
                             IF_LEFT
                               { SENDER ;
                                 COMPARE ;
                                 EQ ;
                                 IF
                                   {}
                                   { PUSH (pair string unit) (Pair "NotAllowedToSetProxy" Unit) ;
                                     FAILWITH } }
                               { PUSH (pair string unit) (Pair "ProxyAlreadySet" Unit) ;
                                 FAILWITH } } ;
                       RIGHT address ;
                       DIP { DUP ; CDR } ;
                       DIP { DUP ; DIP { CAR } ; CDR } ;
                       DIP { DUP ; DIP { CAR } ; CDR } ;
                       DIP { DROP } ;
                       SWAP ;
                       PAIR ;
                       SWAP ;
                       PAIR ;
                       DIP { DUP ; DIP { CAR } ; CDR } ;
                       DIP { DROP } ;
                       SWAP ;
                       PAIR ;
                       NIL operation ;
                       PAIR } } } } }