Fix semantic merge conflict w/ expect tests
This commit is contained in:
parent
c1dac64af3
commit
a121766a89
@ -11,7 +11,7 @@ let%expect_test _ =
|
|||||||
[%expect {| 1093 bytes |}] ;
|
[%expect {| 1093 bytes |}] ;
|
||||||
|
|
||||||
run_ligo_good [ "measure-contract" ; contract "multisig-v2.ligo" ; "main" ] ;
|
run_ligo_good [ "measure-contract" ; contract "multisig-v2.ligo" ; "main" ] ;
|
||||||
[%expect {| 627 bytes |}] ;
|
[%expect {| 2717 bytes |}] ;
|
||||||
|
|
||||||
run_ligo_good [ "measure-contract" ; contract "vote.mligo" ; "main" ] ;
|
run_ligo_good [ "measure-contract" ; contract "vote.mligo" ; "main" ] ;
|
||||||
[%expect {| 628 bytes |}] ;
|
[%expect {| 628 bytes |}] ;
|
||||||
@ -393,77 +393,432 @@ let%expect_test _ =
|
|||||||
let%expect_test _ =
|
let%expect_test _ =
|
||||||
run_ligo_good [ "compile-contract" ; contract "multisig-v2.ligo" ; "main" ] ;
|
run_ligo_good [ "compile-contract" ; contract "multisig-v2.ligo" ; "main" ] ;
|
||||||
[%expect {|
|
[%expect {|
|
||||||
{ parameter (lambda unit (list operation)) ;
|
{ parameter
|
||||||
|
(or (or (unit %default) (lambda %send bytes (list operation)))
|
||||||
|
(lambda %withdraw bytes (list operation))) ;
|
||||||
storage
|
storage
|
||||||
(pair (pair (set %auth address) (big_map %message_store bytes (set address)))
|
(pair (pair (pair (set %authorized_addresses address) (nat %max_message_size))
|
||||||
(nat %threshold)) ;
|
(pair (nat %max_proposal) (map %message_store bytes (set address))))
|
||||||
|
(pair (pair (map %proposal_counters address nat) (bytes %state_hash))
|
||||||
|
(nat %threshold))) ;
|
||||||
code { DUP ;
|
code { DUP ;
|
||||||
CAR ;
|
|
||||||
DIP { DUP ; CDR } ;
|
|
||||||
PAIR ;
|
|
||||||
DUP ;
|
|
||||||
CDR ;
|
CDR ;
|
||||||
DUP ;
|
|
||||||
CAR ;
|
|
||||||
CAR ;
|
|
||||||
SENDER ;
|
|
||||||
MEM ;
|
|
||||||
NOT ;
|
|
||||||
IF { PUSH string "Unauthorized address" ; FAILWITH } { PUSH unit Unit } ;
|
|
||||||
DROP ;
|
|
||||||
DIP { DUP } ;
|
DIP { DUP } ;
|
||||||
SWAP ;
|
SWAP ;
|
||||||
CAR ;
|
CAR ;
|
||||||
DUP ;
|
IF_LEFT
|
||||||
PACK ;
|
{ DUP ;
|
||||||
DUP ;
|
IF_LEFT
|
||||||
NIL operation ;
|
{ DIP 2 { DUP } ; DIG 2 ; NIL operation ; PAIR ; DIP { DROP } }
|
||||||
SWAP ;
|
{ DUP ;
|
||||||
DIP { DIP 3 { DUP } ; DIG 3 ; CAR ; CDR } ;
|
DIP { DIP 2 { DUP } ; DIG 2 } ;
|
||||||
GET ;
|
PAIR ;
|
||||||
IF_NONE
|
DUP ;
|
||||||
{ EMPTY_SET address }
|
CDR ;
|
||||||
{ DUP ; PUSH bool True ; SENDER ; UPDATE ; DIP { DROP } } ;
|
DUP ;
|
||||||
DUP ;
|
CAR ;
|
||||||
SIZE ;
|
CAR ;
|
||||||
DIP { DIP 4 { DUP } ; DIG 4 ; CDR } ;
|
CAR ;
|
||||||
COMPARE ;
|
SENDER ;
|
||||||
GE ;
|
MEM ;
|
||||||
IF { DIP 2 { DUP } ;
|
NOT ;
|
||||||
DIG 2 ;
|
IF { PUSH string "Unauthorized address" ; FAILWITH } { PUSH unit Unit } ;
|
||||||
DIP { DIP 4 { DUP } ; DIG 4 ; CAR ; CDR ; NONE (set address) } ;
|
DROP ;
|
||||||
UPDATE ;
|
DIP { DUP } ;
|
||||||
DIP { DIP 4 { DUP } ; DIG 4 ; DUP ; CDR ; SWAP ; CAR ; CAR } ;
|
SWAP ;
|
||||||
SWAP ;
|
CAR ;
|
||||||
PAIR ;
|
DUP ;
|
||||||
PAIR ;
|
PACK ;
|
||||||
DIP 5 { DROP } ;
|
DUP ;
|
||||||
DUG 4 ;
|
SIZE ;
|
||||||
DIP 3 { DUP } ;
|
DIP { DIP 2 { DUP } ; DIG 2 ; CAR ; CAR ; CDR } ;
|
||||||
DIG 3 ;
|
COMPARE ;
|
||||||
UNIT ;
|
GT ;
|
||||||
EXEC ;
|
IF { PUSH string "Message size exceed maximum limit" ; FAILWITH }
|
||||||
DIP { DIP { DUP } ; SWAP ; DROP } ;
|
{ PUSH unit Unit } ;
|
||||||
SWAP ;
|
DROP ;
|
||||||
DIP { DIP { DROP } } ;
|
DUP ;
|
||||||
PUSH unit Unit }
|
EMPTY_SET address ;
|
||||||
{ DIP 2 { DUP } ;
|
SWAP ;
|
||||||
DIG 2 ;
|
DIP { DIP 3 { DUP } ; DIG 3 ; CAR ; CDR ; CDR } ;
|
||||||
DIP { DUP ; SOME ; DIP { DIP 4 { DUP } ; DIG 4 ; CAR ; CDR } } ;
|
GET ;
|
||||||
UPDATE ;
|
IF_NONE
|
||||||
DIP { DIP 4 { DUP } ; DIG 4 ; DUP ; CDR ; SWAP ; CAR ; CAR } ;
|
{ DIP 3 { DUP } ;
|
||||||
SWAP ;
|
DIG 3 ;
|
||||||
PAIR ;
|
CDR ;
|
||||||
PAIR ;
|
CAR ;
|
||||||
DIP 5 { DROP } ;
|
CAR ;
|
||||||
DUG 4 ;
|
SENDER ;
|
||||||
PUSH unit Unit } ;
|
GET ;
|
||||||
DROP ;
|
IF_NONE { PUSH string "GET_FORCE" ; FAILWITH } {} ;
|
||||||
DIP { DUP } ;
|
PUSH nat 1 ;
|
||||||
SWAP ;
|
ADD ;
|
||||||
DIP { DIP 4 { DUP } ; DIG 4 } ;
|
SOME ;
|
||||||
PAIR ;
|
DIP { DIP 3 { DUP } ; DIG 3 ; CDR ; CAR ; CAR } ;
|
||||||
DIP { DROP 7 } } } |} ]
|
SENDER ;
|
||||||
|
UPDATE ;
|
||||||
|
DIP { DIP 3 { DUP } ;
|
||||||
|
DIG 3 ;
|
||||||
|
DUP ;
|
||||||
|
CAR ;
|
||||||
|
SWAP ;
|
||||||
|
CDR ;
|
||||||
|
DUP ;
|
||||||
|
CDR ;
|
||||||
|
SWAP ;
|
||||||
|
CAR ;
|
||||||
|
CDR } ;
|
||||||
|
PAIR ;
|
||||||
|
PAIR ;
|
||||||
|
SWAP ;
|
||||||
|
PAIR ;
|
||||||
|
DIP 4 { DROP } ;
|
||||||
|
DUG 3 ;
|
||||||
|
EMPTY_SET address ;
|
||||||
|
PUSH bool True ;
|
||||||
|
SENDER ;
|
||||||
|
UPDATE ;
|
||||||
|
DIP { DROP } ;
|
||||||
|
PUSH unit Unit }
|
||||||
|
{ DUP ;
|
||||||
|
SENDER ;
|
||||||
|
MEM ;
|
||||||
|
IF { PUSH unit Unit }
|
||||||
|
{ DIP 4 { DUP } ;
|
||||||
|
DIG 4 ;
|
||||||
|
CDR ;
|
||||||
|
CAR ;
|
||||||
|
CAR ;
|
||||||
|
SENDER ;
|
||||||
|
GET ;
|
||||||
|
IF_NONE { PUSH string "GET_FORCE" ; FAILWITH } {} ;
|
||||||
|
PUSH nat 1 ;
|
||||||
|
ADD ;
|
||||||
|
SOME ;
|
||||||
|
DIP { DIP 4 { DUP } ; DIG 4 ; CDR ; CAR ; CAR } ;
|
||||||
|
SENDER ;
|
||||||
|
UPDATE ;
|
||||||
|
DIP { DIP 4 { DUP } ;
|
||||||
|
DIG 4 ;
|
||||||
|
DUP ;
|
||||||
|
CAR ;
|
||||||
|
SWAP ;
|
||||||
|
CDR ;
|
||||||
|
DUP ;
|
||||||
|
CDR ;
|
||||||
|
SWAP ;
|
||||||
|
CAR ;
|
||||||
|
CDR } ;
|
||||||
|
PAIR ;
|
||||||
|
PAIR ;
|
||||||
|
SWAP ;
|
||||||
|
PAIR ;
|
||||||
|
DIP 5 { DROP } ;
|
||||||
|
DUG 4 ;
|
||||||
|
PUSH unit Unit } ;
|
||||||
|
DROP ;
|
||||||
|
DUP ;
|
||||||
|
PUSH bool True ;
|
||||||
|
SENDER ;
|
||||||
|
UPDATE ;
|
||||||
|
DIP { DIP { DUP } ; SWAP ; DROP } ;
|
||||||
|
SWAP ;
|
||||||
|
DROP ;
|
||||||
|
DIP { DROP } ;
|
||||||
|
PUSH unit Unit } ;
|
||||||
|
DROP ;
|
||||||
|
DIP 3 { DUP } ;
|
||||||
|
DIG 3 ;
|
||||||
|
CDR ;
|
||||||
|
CAR ;
|
||||||
|
CAR ;
|
||||||
|
SENDER ;
|
||||||
|
GET ;
|
||||||
|
IF_NONE { PUSH string "GET_FORCE" ; FAILWITH } {} ;
|
||||||
|
DUP ;
|
||||||
|
DIP { DIP 4 { DUP } ; DIG 4 ; CAR ; CDR ; CAR } ;
|
||||||
|
COMPARE ;
|
||||||
|
GT ;
|
||||||
|
IF { PUSH string "Maximum number of proposal reached" ; FAILWITH }
|
||||||
|
{ PUSH unit Unit } ;
|
||||||
|
DROP ;
|
||||||
|
NIL operation ;
|
||||||
|
DIP 2 { DUP } ;
|
||||||
|
DIG 2 ;
|
||||||
|
SIZE ;
|
||||||
|
DIP { DIP 5 { DUP } ; DIG 5 ; CDR ; CDR } ;
|
||||||
|
COMPARE ;
|
||||||
|
GE ;
|
||||||
|
IF { DIP 3 { DUP } ;
|
||||||
|
DIG 3 ;
|
||||||
|
DIP { DIP 5 { DUP } ; DIG 5 ; CAR ; CDR ; CDR ; NONE (set address) } ;
|
||||||
|
UPDATE ;
|
||||||
|
DIP { DIP 5 { DUP } ;
|
||||||
|
DIG 5 ;
|
||||||
|
DUP ;
|
||||||
|
CDR ;
|
||||||
|
SWAP ;
|
||||||
|
CAR ;
|
||||||
|
DUP ;
|
||||||
|
CAR ;
|
||||||
|
SWAP ;
|
||||||
|
CDR ;
|
||||||
|
CAR } ;
|
||||||
|
SWAP ;
|
||||||
|
PAIR ;
|
||||||
|
SWAP ;
|
||||||
|
PAIR ;
|
||||||
|
PAIR ;
|
||||||
|
DIP 6 { DROP } ;
|
||||||
|
DUG 5 ;
|
||||||
|
DIP 5 { DUP } ;
|
||||||
|
DIG 5 ;
|
||||||
|
CDR ;
|
||||||
|
CAR ;
|
||||||
|
CDR ;
|
||||||
|
DIP { DIP 4 { DUP } ; DIG 4 } ;
|
||||||
|
EXEC ;
|
||||||
|
DIP { DROP } ;
|
||||||
|
DIP 5 { DUP } ;
|
||||||
|
DIG 5 ;
|
||||||
|
CDR ;
|
||||||
|
CAR ;
|
||||||
|
CDR ;
|
||||||
|
DIP { DIP 3 { DUP } ; DIG 3 } ;
|
||||||
|
CONCAT ;
|
||||||
|
SHA256 ;
|
||||||
|
DIP { DIP 5 { DUP } ;
|
||||||
|
DIG 5 ;
|
||||||
|
DUP ;
|
||||||
|
CAR ;
|
||||||
|
SWAP ;
|
||||||
|
CDR ;
|
||||||
|
DUP ;
|
||||||
|
CDR ;
|
||||||
|
SWAP ;
|
||||||
|
CAR ;
|
||||||
|
CAR } ;
|
||||||
|
SWAP ;
|
||||||
|
PAIR ;
|
||||||
|
PAIR ;
|
||||||
|
SWAP ;
|
||||||
|
PAIR ;
|
||||||
|
DIP 6 { DROP } ;
|
||||||
|
DUG 5 ;
|
||||||
|
DIP 5 { DUP } ;
|
||||||
|
DIG 5 ;
|
||||||
|
CDR ;
|
||||||
|
CAR ;
|
||||||
|
CAR ;
|
||||||
|
DIP { DIP 5 { DUP } ; DIG 5 } ;
|
||||||
|
ITER { SWAP ;
|
||||||
|
PAIR ;
|
||||||
|
DUP ;
|
||||||
|
CAR ;
|
||||||
|
DIP { DUP } ;
|
||||||
|
SWAP ;
|
||||||
|
CDR ;
|
||||||
|
CAR ;
|
||||||
|
DIP 2 { DUP } ;
|
||||||
|
DIG 2 ;
|
||||||
|
CDR ;
|
||||||
|
CDR ;
|
||||||
|
DIP { DUP } ;
|
||||||
|
SWAP ;
|
||||||
|
DIP { DIP 6 { DUP } ; DIG 6 } ;
|
||||||
|
MEM ;
|
||||||
|
IF { DIP { DUP } ;
|
||||||
|
SWAP ;
|
||||||
|
DIP { DUP ;
|
||||||
|
PUSH nat 1 ;
|
||||||
|
SWAP ;
|
||||||
|
SUB ;
|
||||||
|
ABS ;
|
||||||
|
SOME ;
|
||||||
|
DIP { DIP 2 { DUP } ; DIG 2 ; CDR ; CAR ; CAR } } ;
|
||||||
|
UPDATE ;
|
||||||
|
DIP { DIP 2 { DUP } ;
|
||||||
|
DIG 2 ;
|
||||||
|
DUP ;
|
||||||
|
CAR ;
|
||||||
|
SWAP ;
|
||||||
|
CDR ;
|
||||||
|
DUP ;
|
||||||
|
CDR ;
|
||||||
|
SWAP ;
|
||||||
|
CAR ;
|
||||||
|
CDR } ;
|
||||||
|
PAIR ;
|
||||||
|
PAIR ;
|
||||||
|
SWAP ;
|
||||||
|
PAIR ;
|
||||||
|
DIP 3 { DROP } ;
|
||||||
|
DUG 2 ;
|
||||||
|
PUSH unit Unit }
|
||||||
|
{ PUSH unit Unit } ;
|
||||||
|
DROP ;
|
||||||
|
DIP 2 { DUP } ;
|
||||||
|
DIG 2 ;
|
||||||
|
DIP { DROP 4 } } ;
|
||||||
|
DUP ;
|
||||||
|
DIP { DIP 6 { DUP } ; DIG 6 ; DROP } ;
|
||||||
|
DIP 7 { DROP } ;
|
||||||
|
DUG 6 ;
|
||||||
|
DROP ;
|
||||||
|
PUSH unit Unit }
|
||||||
|
{ DIP 3 { DUP } ;
|
||||||
|
DIG 3 ;
|
||||||
|
DIP { DIP 2 { DUP } ;
|
||||||
|
DIG 2 ;
|
||||||
|
SOME ;
|
||||||
|
DIP { DIP 5 { DUP } ; DIG 5 ; CAR ; CDR ; CDR } } ;
|
||||||
|
UPDATE ;
|
||||||
|
DIP { DIP 5 { DUP } ;
|
||||||
|
DIG 5 ;
|
||||||
|
DUP ;
|
||||||
|
CDR ;
|
||||||
|
SWAP ;
|
||||||
|
CAR ;
|
||||||
|
DUP ;
|
||||||
|
CAR ;
|
||||||
|
SWAP ;
|
||||||
|
CDR ;
|
||||||
|
CAR } ;
|
||||||
|
SWAP ;
|
||||||
|
PAIR ;
|
||||||
|
SWAP ;
|
||||||
|
PAIR ;
|
||||||
|
PAIR ;
|
||||||
|
DIP 6 { DROP } ;
|
||||||
|
DUG 5 ;
|
||||||
|
PUSH unit Unit } ;
|
||||||
|
DROP ;
|
||||||
|
DUP ;
|
||||||
|
DIP { DIP 5 { DUP } ; DIG 5 } ;
|
||||||
|
PAIR ;
|
||||||
|
DIP { DROP 8 } } ;
|
||||||
|
DIP { DROP } }
|
||||||
|
{ DUP ;
|
||||||
|
DIP { DIP { DUP } ; SWAP } ;
|
||||||
|
PAIR ;
|
||||||
|
DUP ;
|
||||||
|
CDR ;
|
||||||
|
DIP { DUP } ;
|
||||||
|
SWAP ;
|
||||||
|
CAR ;
|
||||||
|
DUP ;
|
||||||
|
PACK ;
|
||||||
|
DUP ;
|
||||||
|
DIP { DIP 2 { DUP } ; DIG 2 ; CAR ; CDR ; CDR } ;
|
||||||
|
GET ;
|
||||||
|
IF_NONE
|
||||||
|
{ PUSH unit Unit }
|
||||||
|
{ DUP ;
|
||||||
|
PUSH bool False ;
|
||||||
|
SENDER ;
|
||||||
|
UPDATE ;
|
||||||
|
DIP { DUP } ;
|
||||||
|
SWAP ;
|
||||||
|
SIZE ;
|
||||||
|
DIP { DUP ; SIZE } ;
|
||||||
|
COMPARE ;
|
||||||
|
NEQ ;
|
||||||
|
IF { DIP 4 { DUP } ;
|
||||||
|
DIG 4 ;
|
||||||
|
CDR ;
|
||||||
|
CAR ;
|
||||||
|
CAR ;
|
||||||
|
SENDER ;
|
||||||
|
GET ;
|
||||||
|
IF_NONE { PUSH string "GET_FORCE" ; FAILWITH } {} ;
|
||||||
|
PUSH nat 1 ;
|
||||||
|
SWAP ;
|
||||||
|
SUB ;
|
||||||
|
ABS ;
|
||||||
|
SOME ;
|
||||||
|
DIP { DIP 4 { DUP } ; DIG 4 ; CDR ; CAR ; CAR } ;
|
||||||
|
SENDER ;
|
||||||
|
UPDATE ;
|
||||||
|
DIP { DIP 4 { DUP } ;
|
||||||
|
DIG 4 ;
|
||||||
|
DUP ;
|
||||||
|
CAR ;
|
||||||
|
SWAP ;
|
||||||
|
CDR ;
|
||||||
|
DUP ;
|
||||||
|
CDR ;
|
||||||
|
SWAP ;
|
||||||
|
CAR ;
|
||||||
|
CDR } ;
|
||||||
|
PAIR ;
|
||||||
|
PAIR ;
|
||||||
|
SWAP ;
|
||||||
|
PAIR ;
|
||||||
|
DIP 5 { DROP } ;
|
||||||
|
DUG 4 ;
|
||||||
|
PUSH unit Unit }
|
||||||
|
{ PUSH unit Unit } ;
|
||||||
|
DROP ;
|
||||||
|
DUP ;
|
||||||
|
SIZE ;
|
||||||
|
PUSH nat 0 ;
|
||||||
|
SWAP ;
|
||||||
|
COMPARE ;
|
||||||
|
EQ ;
|
||||||
|
IF { DIP 2 { DUP } ;
|
||||||
|
DIG 2 ;
|
||||||
|
DIP { DIP 4 { DUP } ; DIG 4 ; CAR ; CDR ; CDR ; NONE (set address) } ;
|
||||||
|
UPDATE ;
|
||||||
|
DIP { DIP 4 { DUP } ;
|
||||||
|
DIG 4 ;
|
||||||
|
DUP ;
|
||||||
|
CDR ;
|
||||||
|
SWAP ;
|
||||||
|
CAR ;
|
||||||
|
DUP ;
|
||||||
|
CAR ;
|
||||||
|
SWAP ;
|
||||||
|
CDR ;
|
||||||
|
CAR } ;
|
||||||
|
SWAP ;
|
||||||
|
PAIR ;
|
||||||
|
SWAP ;
|
||||||
|
PAIR ;
|
||||||
|
PAIR ;
|
||||||
|
DIP 5 { DROP } ;
|
||||||
|
DUG 4 ;
|
||||||
|
PUSH unit Unit }
|
||||||
|
{ DIP 2 { DUP } ;
|
||||||
|
DIG 2 ;
|
||||||
|
DIP { DUP ; SOME ; DIP { DIP 4 { DUP } ; DIG 4 ; CAR ; CDR ; CDR } } ;
|
||||||
|
UPDATE ;
|
||||||
|
DIP { DIP 4 { DUP } ;
|
||||||
|
DIG 4 ;
|
||||||
|
DUP ;
|
||||||
|
CDR ;
|
||||||
|
SWAP ;
|
||||||
|
CAR ;
|
||||||
|
DUP ;
|
||||||
|
CAR ;
|
||||||
|
SWAP ;
|
||||||
|
CDR ;
|
||||||
|
CAR } ;
|
||||||
|
SWAP ;
|
||||||
|
PAIR ;
|
||||||
|
SWAP ;
|
||||||
|
PAIR ;
|
||||||
|
PAIR ;
|
||||||
|
DIP 5 { DROP } ;
|
||||||
|
DUG 4 ;
|
||||||
|
PUSH unit Unit } ;
|
||||||
|
DIP { DROP 2 } } ;
|
||||||
|
DROP ;
|
||||||
|
DIP 2 { DUP } ;
|
||||||
|
DIG 2 ;
|
||||||
|
NIL operation ;
|
||||||
|
PAIR ;
|
||||||
|
DIP { DROP 5 } } ;
|
||||||
|
DIP { DROP 2 } } } |} ]
|
||||||
|
|
||||||
let%expect_test _ =
|
let%expect_test _ =
|
||||||
run_ligo_good [ "compile-contract" ; contract "vote.mligo" ; "main" ] ;
|
run_ligo_good [ "compile-contract" ; contract "vote.mligo" ; "main" ] ;
|
||||||
|
@ -37,6 +37,9 @@ let%expect_test _ =
|
|||||||
evaluate-value
|
evaluate-value
|
||||||
Subcommand: evaluate a given definition.
|
Subcommand: evaluate a given definition.
|
||||||
|
|
||||||
|
measure-contract
|
||||||
|
Subcommand: measure a contract's compiled size in bytes.
|
||||||
|
|
||||||
run-function
|
run-function
|
||||||
Subcommand: run a function with the given parameter.
|
Subcommand: run a function with the given parameter.
|
||||||
|
|
||||||
@ -81,13 +84,12 @@ let%expect_test _ =
|
|||||||
evaluate-value
|
evaluate-value
|
||||||
Subcommand: evaluate a given definition.
|
Subcommand: evaluate a given definition.
|
||||||
|
|
||||||
run-function
|
|
||||||
Subcommand: run a function with the given parameter.
|
|
||||||
|
|
||||||
COMMANDS
|
|
||||||
measure-contract
|
measure-contract
|
||||||
Subcommand: measure a contract's compiled size in bytes.
|
Subcommand: measure a contract's compiled size in bytes.
|
||||||
|
|
||||||
|
run-function
|
||||||
|
Subcommand: run a function with the given parameter.
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
--help[=FMT] (default=auto)
|
--help[=FMT] (default=auto)
|
||||||
Show this help in format FMT. The value FMT must be one of `auto',
|
Show this help in format FMT. The value FMT must be one of `auto',
|
||||||
|
Loading…
Reference in New Issue
Block a user