Mathias Baumann
|
7dbcb80523
|
[Sol -> Yul] Implement Int/Bool Unary: ++, --, ~, !
|
2019-05-20 11:43:12 +02:00 |
|
Leonardo Alt
|
60a4f03d3d
|
[SMTChecker] Fix ice in unsupported functions with multi return values
|
2019-05-16 18:23:42 +02:00 |
|
Leonardo Alt
|
5493a41842
|
[SMTChecker] Move global variables and functions to encoding context
|
2019-05-16 18:11:31 +02:00 |
|
chriseth
|
f2ae30f620
|
Fix handling of structs of dynamic size as constructor parameters.
|
2019-05-16 17:10:54 +02:00 |
|
chriseth
|
9d291a86cc
|
Merge pull request #6742 from ethereum/smt_expr_context
[SMTChecker] Move expression handling to EncodingContext
|
2019-05-16 12:47:15 +02:00 |
|
chriseth
|
ce19e2e4bc
|
Merge pull request #6599 from ethereum/ipfsHash
Add IPFS hash of source files to metadata.
|
2019-05-15 14:21:58 +02:00 |
|
chriseth
|
b01a8c544c
|
Use IPFS url in metadata for source links.
|
2019-05-15 12:40:03 +02:00 |
|
Daniel Kirchner
|
a10501bb7d
|
Merge pull request #6725 from AndreyBronin/develop
GCC 9.1 build fix. error: redundant move in return statement
|
2019-05-15 11:37:20 +02:00 |
|
Andrey Bronin
|
4eb37fe631
|
fix warning in GCC 9.1: redundant move in return statement
|
2019-05-14 17:44:28 +03:00 |
|
Leonardo Alt
|
4e430ba0ae
|
[SMTChecker] Move expression handling to EncodingContext
|
2019-05-14 15:56:43 +02:00 |
|
chriseth
|
74fbf5402d
|
Merge pull request #6737 from ethereum/smt_vars_context
[SMTChecker] Move variable handling to EncodingContext
|
2019-05-14 13:30:35 +02:00 |
|
chriseth
|
d753fcdb36
|
Tools to compute UnixFS IPFS hash.
|
2019-05-14 11:52:11 +02:00 |
|
Mathias Baumann
|
f5980f08cc
|
Remove m_code from IRValue
Only one place to append to m_code avoids confusion and bugs
|
2019-05-14 11:15:04 +02:00 |
|
Leonardo Alt
|
ebbe03cad6
|
[SMTChecker] Move variable handling to EncodingContext
|
2019-05-13 16:59:28 +02:00 |
|
chriseth
|
01dd9ba2ae
|
Merge pull request #6717 from ethereum/smt_namespace
Move SMT specific code into smt namespace
|
2019-05-13 12:45:34 +02:00 |
|
chriseth
|
37375b4271
|
Merge pull request #6606 from ethereum/stdin-output-wildcard
Fix wildcard as output selector in standard JSON
|
2019-05-13 10:24:13 +02:00 |
|
chriseth
|
8c232e8196
|
Merge pull request #6690 from ethereum/useConditionalWhiskers
Use conditional whiskers
|
2019-05-13 10:23:30 +02:00 |
|
chriseth
|
03c8e43da5
|
Merge pull request #6605 from ethereum/natspec-colon-fix
Fix Natspec parser error
|
2019-05-13 10:19:47 +02:00 |
|
chriseth
|
e5d46767f1
|
Merge pull request #6722 from ethereum/smt_fix_variable_usage
[SMTChecker] Fix VariableUsage for IndexAccess
|
2019-05-13 10:17:26 +02:00 |
|
chriseth
|
a28b6224a4
|
Merge pull request #6714 from ethereum/finishERC20
Finish ERC20
|
2019-05-13 10:00:38 +02:00 |
|
Leonardo Alt
|
fac383a233
|
Move SMT specific code into smt namespace
|
2019-05-10 20:03:11 +02:00 |
|
Erik Kundt
|
2b021eaa30
|
Allows wildcard as output selector in standard JSON.
|
2019-05-10 18:58:51 +02:00 |
|
chriseth
|
cc40e65a4b
|
Merge pull request #6712 from ethereum/smt_unique_ptr
[SMTChecker] Use unique_ptr instead of shared_ptr where applicable
|
2019-05-10 12:53:53 +02:00 |
|
Leonardo Alt
|
3ea5c112d3
|
[SMTChecker] Fix VariableUsage for IndexAccess
|
2019-05-10 11:28:10 +02:00 |
|
Erik Kundt
|
656364d967
|
Fixes Natspec parser error when whitespace is missing.
|
2019-05-10 10:53:32 +02:00 |
|
Leonardo
|
661b08e16c
|
Merge pull request #6718 from ethereum/smt_style
[SMTChecker] Style changes
|
2019-05-10 09:20:21 +02:00 |
|
chriseth
|
4de75b24c5
|
Merge pull request #6677 from ethereum/externalCalls
[SolYul] External function calls
|
2019-05-09 19:18:10 +02:00 |
|
Leonardo Alt
|
8d65fd18fc
|
[SMTChecker] Style changes
|
2019-05-09 19:15:43 +02:00 |
|
chriseth
|
89700dbcff
|
Merge pull request #6665 from ethereum/smt_inline_external_this
[SMTChecker] Inline external function calls to `this`
|
2019-05-09 19:09:08 +02:00 |
|
chriseth
|
e047c8d4d9
|
Code generator for external function calls.
|
2019-05-09 18:55:12 +02:00 |
|
chriseth
|
63a072f122
|
[SolYul] Partially implement constructor.
|
2019-05-09 17:57:33 +02:00 |
|
chriseth
|
021b312264
|
Revert with reason.
|
2019-05-09 17:57:33 +02:00 |
|
chriseth
|
60a42f58a0
|
Fix internal function calls.
|
2019-05-09 17:57:33 +02:00 |
|
chriseth
|
45ee3fc007
|
Subtraction for unsigned integers.
|
2019-05-09 17:57:30 +02:00 |
|
Leonardo Alt
|
ef32bf185f
|
[SMTChecker] Inline external function calls to this.
|
2019-05-09 16:53:30 +02:00 |
|
Leonardo Alt
|
c8a017ccd6
|
[SMTChecker] Use unique_ptr instead of shared_ptr where applicable.
|
2019-05-09 16:34:22 +02:00 |
|
Leonardo Alt
|
6027383ae5
|
[SMTChecker] Fix call to function at state var init
|
2019-05-09 16:12:44 +02:00 |
|
chriseth
|
c3a1c168d0
|
Merge pull request #6711 from ethereum/solYulIf
[Sol -> Yul] Implement if statements
|
2019-05-09 15:33:34 +02:00 |
|
chriseth
|
b3e51bcae1
|
Some more compression.
|
2019-05-09 15:25:21 +02:00 |
|
chriseth
|
d3d205b6eb
|
Some more compression.
|
2019-05-09 15:25:21 +02:00 |
|
chriseth
|
c6b9fa96ae
|
Use conditional Whiskers.
|
2019-05-09 15:25:21 +02:00 |
|
Daniel Kirchner
|
b83f6d8d46
|
[Sol -> Yul] Implement if statements
|
2019-05-09 14:52:20 +02:00 |
|
Leonardo
|
9e09b5d33b
|
Merge pull request #6679 from ethereum/smt_fix_ssa_reset
[SMTChecker] Fix ICE in touched vars
|
2019-05-09 12:17:32 +02:00 |
|
chriseth
|
0852ccc318
|
Merge pull request #4764 from ethereum/cbor-version
Store compiler version in CBOR metadata
|
2019-05-09 10:10:50 +02:00 |
|
Mathias Baumann
|
0abe00d393
|
[Sol -> Yul] Fix ForLoops and implement WhileLoops
|
2019-05-09 09:46:19 +02:00 |
|
Leonardo Alt
|
3d52a6ca68
|
[SMTChecker] Fix ICE in branch-inline function call-modify local variable
|
2019-05-09 09:15:11 +02:00 |
|
Leonardo Alt
|
dcd6cb94bf
|
Add function that retrieves first FunctionDefinition up the scope path
|
2019-05-09 09:15:11 +02:00 |
|
Daniel Kirchner
|
a6a28ac475
|
Allow overwriting the release flag for tests and adjust test suite to CBOR metadata.
|
2019-05-08 22:21:50 +02:00 |
|
Alex Beregszaszi
|
e121c8f3c7
|
Store compiler version in CBOR metadata
|
2019-05-08 22:21:50 +02:00 |
|
Leonardo Alt
|
9893cae27a
|
[SMTChecker] Make mergeVariables deterministic
|
2019-05-08 20:46:01 +02:00 |
|
chriseth
|
4d460915f3
|
Merge pull request #6655 from ethereum/storageMappings
[SolYul] Storage mappings
|
2019-05-08 20:38:46 +02:00 |
|
Leonardo
|
241b6b4bae
|
Merge pull request #6702 from ethereum/smt_fix_asgn_unsupported_type
[SMTChecker] Fix unsupported type assignment
|
2019-05-08 16:12:46 +02:00 |
|
chriseth
|
595544645e
|
Mappings.
|
2019-05-08 15:54:52 +02:00 |
|
Leonardo Alt
|
0b046897ae
|
[SMTChecker] Fix unsupported type assignment
|
2019-05-08 14:28:23 +02:00 |
|
chriseth
|
b4d6f847b4
|
Events.
|
2019-05-08 13:29:11 +02:00 |
|
chriseth
|
5fb85a6118
|
Merge pull request #6662 from ethereum/msgSender
Implement most trivial members.
|
2019-05-08 13:28:43 +02:00 |
|
chriseth
|
6c9c54a657
|
Merge pull request #6657 from ethereum/smt_tuple_multi_decl
[SMTChecker] Support tuples as multi var decl
|
2019-05-07 17:55:36 +02:00 |
|
chriseth
|
acca390ef5
|
Most trivial members.
|
2019-05-07 17:19:45 +02:00 |
|
chriseth
|
b99ad2aaa3
|
Merge pull request #6639 from ethereum/yul-require-assert
Yul generation of "require" and "assert"
|
2019-05-07 16:59:37 +02:00 |
|
Leonardo Alt
|
3c7540ceb2
|
[SMTChecker] Support tuples with multiple var decls
|
2019-05-07 16:57:27 +02:00 |
|
chriseth
|
f68c09272b
|
Simple tuple expressions.
|
2019-05-07 15:59:56 +02:00 |
|
chriseth
|
c604481cef
|
Logical operators.
|
2019-05-07 15:59:35 +02:00 |
|
chriseth
|
785b369b89
|
Add type helper function.
|
2019-05-07 12:36:54 +02:00 |
|
chriseth
|
3fa4c3da1e
|
Comparison operations.
|
2019-05-07 12:35:05 +02:00 |
|
chriseth
|
4069b19734
|
Unary operation for literals.
|
2019-05-07 12:35:04 +02:00 |
|
Mathias Baumann
|
7f14352bbf
|
Yul generation of require and assert
|
2019-05-07 12:19:41 +02:00 |
|
chriseth
|
e6f8aaafa5
|
Conversion for string literals.
|
2019-05-07 11:55:17 +02:00 |
|
Leonardo Alt
|
2139c20776
|
[SMTChecker] Support delete
|
2019-05-06 18:32:10 +02:00 |
|
Leonardo
|
e99efec085
|
Merge pull request #6652 from ethereum/smt_tuple_function
[SMTChecker] Support tuples as function calls with multiple return values
|
2019-05-06 15:19:24 +02:00 |
|
chriseth
|
3365cb9b4a
|
Add type helper function.
|
2019-05-06 12:01:13 +02:00 |
|
chriseth
|
7c62193524
|
Change some AST elements to post visit.
|
2019-05-06 11:43:18 +02:00 |
|
chriseth
|
dee1c1109c
|
Merge pull request #6668 from ethereum/smt_fix_short_circuit
Fix short circuit with assignments
|
2019-05-06 11:40:07 +02:00 |
|
chriseth
|
36c78baa41
|
Merge pull request #6646 from ethereum/storageAccess
[Yul] Storage access for sol -> yul
|
2019-05-06 11:33:36 +02:00 |
|
Leonardo Alt
|
80712f44cb
|
Fix short circuit with assignments
|
2019-05-06 11:04:43 +02:00 |
|
Leonardo Alt
|
5440a53d4d
|
[SMTChecker] Support tuples as function calls with multiple return values
|
2019-05-03 06:10:22 +02:00 |
|
chriseth
|
5bd3ed97bd
|
Merge pull request #6649 from ethereum/smt_tuple_asgn
[SMTChecker] Support tuple assignment
|
2019-05-02 18:43:16 +02:00 |
|
chriseth
|
e9f41d1148
|
Merge pull request #6604 from ethereum/library-self-delegatecall
Error on library calling itself externally
|
2019-05-02 17:25:25 +02:00 |
|
chriseth
|
aa4d4afcdc
|
LValues and state variables of value type.
|
2019-05-02 17:03:22 +02:00 |
|
chriseth
|
cbc1b97760
|
Merge pull request #6648 from ethereum/moveStorageFunctions
Move storage access functions to yul utils.
|
2019-05-02 12:58:03 +02:00 |
|
Leonardo Alt
|
204dcf1771
|
[SMTChecker] Support tuple assignments
|
2019-05-02 12:55:34 +02:00 |
|
chriseth
|
54775a7880
|
Merge pull request #6647 from ethereum/smt_tuple_decl
[SMTChecker] Support tuple type declaration
|
2019-05-02 12:49:50 +02:00 |
|
Erik Kundt
|
07744dbd12
|
Throws error on library calling itself externally.
|
2019-05-02 12:41:07 +02:00 |
|
chriseth
|
d4c4a473d8
|
Merge pull request #6622 from ethereum/warn-this-super
Issue warning for variables called `super` or `this`
|
2019-05-02 12:38:53 +02:00 |
|
chriseth
|
31b7037749
|
Move storage access functions to utils.
|
2019-05-02 12:11:41 +02:00 |
|
Leonardo Alt
|
6c7527ac90
|
[SMTChecker] Support tuple type declaration
|
2019-05-02 12:05:21 +02:00 |
|
Mathias Baumann
|
cf35e5ba02
|
Issue warning for variables called super or this
|
2019-05-02 11:30:24 +02:00 |
|
Leonardo Alt
|
66655b87b0
|
[SMTChecker] Fix ICE in fixed point operations
|
2019-05-02 10:59:23 +02:00 |
|
Leonardo Alt
|
dd4e938265
|
[SMTChecker] Fix ICE in inherited state var
|
2019-05-02 10:03:12 +02:00 |
|
Leonardo Alt
|
a6db37ac9c
|
[SMTChecker] Fix bad cast in base constructor modifier.
|
2019-04-30 18:48:13 +02:00 |
|
chriseth
|
dc13469593
|
Merge pull request #6589 from ethereum/addReturn
[Yul] Add code generation for "return" and for loops.
|
2019-04-30 17:07:45 +02:00 |
|
chriseth
|
e66ab6c036
|
Helper function to define the value of expressions.
|
2019-04-30 13:10:37 +02:00 |
|
chriseth
|
0eef51ffa4
|
Conversion during binary operation.
|
2019-04-30 13:10:37 +02:00 |
|
chriseth
|
597d37b731
|
Implement for loops.
|
2019-04-30 13:10:37 +02:00 |
|
chriseth
|
c1ca16cd33
|
Implement return.
|
2019-04-30 13:10:36 +02:00 |
|
Leonardo Alt
|
e4989369d0
|
Refactor cast from identifier ref decl to var decl
|
2019-04-30 11:08:36 +02:00 |
|
Leonardo Alt
|
762f79f84d
|
Refactor assignment handling
|
2019-04-30 11:08:36 +02:00 |
|
chriseth
|
39d153b7a1
|
Merge pull request #6570 from ethereum/fixMetaSettings
Move metadata settings into its own object.
|
2019-04-29 15:09:27 +02:00 |
|
chriseth
|
e8ba10bfaa
|
Merge pull request #6612 from ethereum/abi-functions-assertion
Unifies behaviour for member access of ABI functions
|
2019-04-29 15:02:40 +02:00 |
|
chriseth
|
3a19d83671
|
Merge pull request #6578 from ethereum/fix_base_overload
Fix call to base class overloaded functions
|
2019-04-29 14:33:52 +02:00 |
|
Erik Kundt
|
381ed5a302
|
Unifies behavior for member access of ABI functions.
|
2019-04-29 14:27:10 +02:00 |
|
chriseth
|
eef3f95724
|
Move metadata settings into its own object.
|
2019-04-29 14:19:27 +02:00 |
|
Erik Kundt
|
c02257207b
|
Removes assert on magic ABI functions during codegen.
|
2019-04-26 15:01:35 +02:00 |
|
Leonardo Alt
|
371b37b660
|
Fix direct call to base class overloaded functions
|
2019-04-26 09:34:15 +02:00 |
|
chriseth
|
169b555a22
|
Merge pull request #6507 from ethereum/smt_address_members
[SMTChecker] Address members
|
2019-04-25 17:29:42 +02:00 |
|
chriseth
|
309d3e65cf
|
Merge pull request #6585 from ethereum/fixInvalidFunctionTags
Fix invalid function tags
|
2019-04-25 16:30:37 +02:00 |
|
Leonardo Alt
|
fc482de695
|
[SMTChecker] Support address members
|
2019-04-25 16:24:36 +02:00 |
|
chriseth
|
5b991c1e59
|
Fix use of uninitialized functions stored in storage.
|
2019-04-25 15:40:48 +02:00 |
|
Mathias Baumann
|
1ef213cc15
|
Sol -> Yul: Implement explicit cast
|
2019-04-24 22:52:17 +02:00 |
|
Mathias Baumann
|
441369d5f1
|
Sol -> Yul Generator: Mark "return" as unimplemented
|
2019-04-24 22:52:17 +02:00 |
|
Mathias Baumann
|
944ac6fb6d
|
Sol -> Yul Generation: Implicit conversions
|
2019-04-24 22:52:17 +02:00 |
|
Leonardo Alt
|
dd1afeba52
|
[SMTChecker] Support this as address
|
2019-04-18 17:56:52 +02:00 |
|
chriseth
|
b02fbc5d02
|
Merge pull request #6503 from ethereum/inlineAsm-yul
Inline asm yul
|
2019-04-18 17:15:09 +02:00 |
|
Mathias Baumann
|
3d061c83d7
|
IR: Generate inline asm blocks
|
2019-04-18 16:49:19 +02:00 |
|
chriseth
|
fce19bde58
|
Merge pull request #6545 from ethereum/smt_contracts
[SMTChecker] Support contract type
|
2019-04-18 13:01:18 +02:00 |
|
chriseth
|
0bfd587363
|
Merge pull request #6527 from rocky/move-SemVerHandler
Move SemVerHandler to analysis to parsing to increase modularity...
|
2019-04-18 13:00:45 +02:00 |
|
chriseth
|
fb302c1c4f
|
Merge pull request #6473 from ethereum/libeventhash-6435
Fix external ABI type name for contracts
|
2019-04-18 12:53:34 +02:00 |
|
Mathias Baumann
|
0f4b53e9a0
|
Fix external ABI type name for contracts
|
2019-04-18 11:39:48 +02:00 |
|
Leonardo Alt
|
ecd89393ee
|
[SMTChecker] Support contract type
|
2019-04-17 16:30:11 +02:00 |
|
Leonardo Alt
|
03d18f1b98
|
[SMTChecker] Add note about not inlining external function calls
|
2019-04-17 16:14:07 +02:00 |
|
rocky
|
b424446c5f
|
Move SemVerHandler to analysis to parsing to increase modularity...
If ever you want to separate building analysis from scanning/parsing/ast, this will help.
|
2019-04-17 10:13:42 -04:00 |
|
chriseth
|
4509e8efbb
|
Merge pull request #6543 from ethereum/typeprovider-bits
TypeProvider bits
|
2019-04-17 15:50:08 +02:00 |
|
chriseth
|
922ab0d72d
|
Merge pull request #6534 from ethereum/reuseLiteralContent-6472
Re-produce the original 'useLiteralContent' setting
|
2019-04-17 15:41:55 +02:00 |
|
Mathias Baumann
|
b24dd42e47
|
Re-produce the original 'useLiteralContent' setting
|
2019-04-17 14:54:51 +02:00 |
|
Christian Parpart
|
9733ae7483
|
[libsolidity] TypeProvider: cleanup unnecessary std:: qualifiers
|
2019-04-17 14:45:29 +02:00 |
|
Christian Parpart
|
721bf367a3
|
[libsolidity] TypeProvider: eliminate redundant "Type" suffix in provider function signatures.
|
2019-04-17 14:42:07 +02:00 |
|
Grant Wuerker
|
69b4ce36de
|
Some move semantics improvements.
|
2019-04-17 14:19:48 +02:00 |
|
Christian Parpart
|
862b65d6e3
|
[libsolidity] remove ReferenceType::copyForLocationIfReference (use TypeProvider instead)
|
2019-04-17 13:25:03 +02:00 |
|
Christian Parpart
|
b83097bdc6
|
[libsolidity] Types: eliminate redundant MagicType::metaType() (use TypeProvider instead)
|
2019-04-17 12:59:48 +02:00 |
|
Christian Parpart
|
a99a460c79
|
[libsolidity] Types: remove some old comments
|
2019-04-17 12:00:33 +02:00 |
|
chriseth
|
4e2d4f02b0
|
Make data location explicit.
|
2019-04-16 23:22:08 +02:00 |
|
chriseth
|
2761aed1d3
|
Lazy-initialize string and bytes types.
|
2019-04-16 23:22:08 +02:00 |
|
chriseth
|
4656d7ca7d
|
Change pre-created types to unique_ptr to avoid copying and moving.
|
2019-04-16 23:22:08 +02:00 |
|
Christian Parpart
|
58a45f2cb6
|
[libsolidity] TypeProvider: adds explicit uint256() accessor and removes default params in integerType(...).
|
2019-04-16 18:28:40 +02:00 |
|
Christian Parpart
|
59d4f54729
|
libsolidity: Be more restrictive to not allow any copy constructors at all in Type system.
This enforces us to be a little bit more historical in how to initialize
our std::array<>'s in TypeProvider.
|
2019-04-16 18:26:46 +02:00 |
|
Christian Parpart
|
a2a3b007f3
|
TypeProvider: storageType() to make all parameters explicit
|
2019-04-16 18:26:46 +02:00 |
|
Christian Parpart
|
bf43eebea9
|
libsolidity: Introducing TypeProvider API, for clear type system ownership.
|
2019-04-16 18:26:45 +02:00 |
|
chriseth
|
a61931c5da
|
Merge pull request #6512 from ethereum/smt_refactor_symbvars
[SMTChecker] Allow SymbolicVariable from smt::Sort
|
2019-04-16 15:45:08 +02:00 |
|
Mathias Baumann
|
efc8d79d53
|
Fix wrong location for inline asm blocks
|
2019-04-15 16:40:07 +02:00 |
|
Leonardo Alt
|
07fac9e381
|
[SMTChecker] Allow SymbolicVariable from smt::Sort
|
2019-04-15 14:52:46 +02:00 |
|
chriseth
|
bf5792f7ca
|
Merge pull request #6483 from ethereum/smt_support_mod
[SMTChecker] Support mod
|
2019-04-15 13:42:18 +02:00 |
|
chriseth
|
73ac8f6220
|
Merge pull request #6421 from ethereum/smt_fix_variable_usage
[SMTChecker] Refactor VariableUsage
|
2019-04-15 13:39:10 +02:00 |
|
Leonardo Alt
|
af9f16e014
|
[SMTChecker] Support mod
|
2019-04-12 12:39:25 +02:00 |
|
Daniel Kirchner
|
65991c0922
|
Merge pull request #6481 from ethereum/smt_inline_asm_warning
[SMTChecker] Show unsupported warning for asm blocks
|
2019-04-12 12:36:26 +02:00 |
|
Leonardo
|
dbc9442f9c
|
Merge pull request #6484 from sifmelcara/create-SourceReferenceFormatter-shortcut
Add a shortcut for formatting error information
|
2019-04-12 12:34:08 +02:00 |
|
chriseth
|
565d9837e4
|
Virtual function calls.
|
2019-04-11 15:45:43 +02:00 |
|
chriseth
|
18ab8aeb85
|
Overflow-checked addition.
|
2019-04-11 15:45:14 +02:00 |
|
mingchuan
|
f1374066af
|
Add shortcuts for formatting error information
|
2019-04-10 18:44:45 +08:00 |
|
Mathias Baumann
|
b4380a2137
|
Move convert functions to Yul module
|
2019-04-09 15:31:46 +02:00 |
|
Leonardo Alt
|
4fe303530a
|
[SMTChecker] Show unsupported warning for asm blocks
|
2019-04-05 16:41:15 +02:00 |
|
Leonardo Alt
|
79d8a4e13a
|
[SMTChecker] Refactor VariableUsage
|
2019-04-05 11:38:37 +02:00 |
|