From f0871a5b53e6dba4c9c81b4f7daf2419ea4c7018 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Palmer=20S=C3=A9bastien?= Date: Thu, 12 Dec 2024 13:38:03 +0100 Subject: [PATCH 1/4] [tests] add python linter (#300) * [tests] add python linter * [pylint] add pylint dev routine - pre-commit - CI * Bump ledger-app-dev-tools version to 3.42.0 * [test] fix pytezos version for python 3.9 - fix pytezos version to the latest version compatible with python 3.9 --- .github/workflows/build.yml | 2 + .github/workflows/coding_style_checks.yml | 17 ++ .github/workflows/pre-commit.yml | 2 +- .pre-commit-config.yaml | 9 + Makefile | 1 + scripts/test_swap.sh | 3 +- tests/integration/.pylintrc | 12 + tests/integration/nano/conftest.py | 51 +++- tests/integration/nano/nanos/__init__.py | 0 .../test_nanos_regression_batched_ops.py | 15 +- tests/integration/nano/nanosp/__init__.py | 0 ...anosp_regression_potential_empty_screen.py | 15 +- ..._press_right_works_across_apdu_recieves.py | 17 +- tests/integration/nano/nanox/__init__.py | 0 .../test_nanox_regression_batched_ops.py | 15 +- .../nano/snapshots/nanosp/home.png | Bin 506 -> 506 bytes .../nanosp/settings_expert_mode_disabled.png | Bin 450 -> 451 bytes .../nanosp/settings_expert_mode_enabled.png | Bin 438 -> 440 bytes .../reject_from_blind/blind/00003.png | Bin 366 -> 368 bytes .../reject_from_blind/clear/00000.png | Bin 578 -> 576 bytes .../reject_from_blind/clear/00001.png | Bin 516 -> 514 bytes .../reject_from_blind/clear/00002.png | Bin 547 -> 549 bytes .../reject_from_blind/clear/00003.png | Bin 523 -> 526 bytes .../reject_from_blind/clear/00005.png | Bin 407 -> 408 bytes .../reject_from_clear/00000.png | Bin 578 -> 576 bytes .../reject_from_clear/00001.png | Bin 516 -> 514 bytes .../reject_from_clear/00002.png | Bin 547 -> 549 bytes .../reject_from_clear/00003.png | Bin 523 -> 526 bytes .../reject_from_clear/00005.png | Bin 407 -> 408 bytes .../reject_from_clear/00006.png | Bin 366 -> 368 bytes .../test_blindsign_too_deep/blind/00001.png | Bin 880 -> 887 bytes .../test_blindsign_too_deep/clear/00000.png | Bin 578 -> 576 bytes .../test_blindsign_too_deep/clear/00001.png | Bin 516 -> 514 bytes .../test_blindsign_too_deep/clear/00002.png | Bin 547 -> 549 bytes .../test_blindsign_too_deep/clear/00003.png | Bin 489 -> 489 bytes .../test_blindsign_too_deep/clear/00005.png | Bin 407 -> 408 bytes .../test_blindsign_too_large/clear/00000.png | Bin 578 -> 576 bytes .../test_blindsign_too_large/clear/00001.png | Bin 516 -> 514 bytes .../test_blindsign_too_large/clear/00002.png | Bin 547 -> 549 bytes .../test_blindsign_too_large/clear/00003.png | Bin 523 -> 526 bytes .../test_blindsign_too_large/clear/00005.png | Bin 407 -> 408 bytes .../test_ensure_always_clearsign/00002.png | Bin 728 -> 734 bytes .../test_ensure_always_clearsign/00006.png | Bin 736 -> 730 bytes .../test_ensure_always_clearsign/00007.png | Bin 357 -> 360 bytes .../test_ensure_always_clearsign/00008.png | Bin 542 -> 545 bytes .../test_ensure_always_clearsign/00011.png | Bin 740 -> 745 bytes .../00002.png | Bin 728 -> 734 bytes .../00005.png | Bin 542 -> 545 bytes .../00007.png | Bin 372 -> 377 bytes .../00008.png | Bin 728 -> 730 bytes .../00010.png | Bin 736 -> 730 bytes .../00011.png | Bin 416 -> 419 bytes .../00012.png | Bin 348 -> 350 bytes .../00001.png | Bin 955 -> 954 bytes .../00002.png | Bin 1017 -> 1022 bytes .../00003.png | Bin 1137 -> 1136 bytes .../00004.png | Bin 1027 -> 1028 bytes .../00005.png | Bin 1031 -> 1033 bytes .../00006.png | Bin 648 -> 651 bytes .../one_byte_added_at_the_end/00002.png | Bin 711 -> 716 bytes .../one_byte_added_at_the_end/00006.png | Bin 736 -> 730 bytes .../one_byte_added_at_the_end/00007.png | Bin 356 -> 357 bytes .../one_byte_added_at_the_end/00008.png | Bin 542 -> 545 bytes .../one_byte_added_at_the_end/00010.png | Bin 578 -> 576 bytes .../one_byte_added_at_the_end/00011.png | Bin 516 -> 514 bytes .../one_byte_added_at_the_end/00012.png | Bin 547 -> 549 bytes .../one_byte_added_at_the_end/00013.png | Bin 523 -> 523 bytes .../one_byte_added_at_the_end/00015.png | Bin 407 -> 408 bytes .../one_byte_added_at_the_end/00016.png | Bin 366 -> 368 bytes .../one_byte_added_inside/00002.png | Bin 711 -> 716 bytes .../one_byte_added_inside/00006.png | Bin 736 -> 730 bytes .../one_byte_added_inside/00007.png | Bin 578 -> 576 bytes .../one_byte_added_inside/00008.png | Bin 516 -> 514 bytes .../one_byte_added_inside/00009.png | Bin 547 -> 549 bytes .../one_byte_added_inside/00010.png | Bin 523 -> 523 bytes .../one_byte_added_inside/00012.png | Bin 407 -> 408 bytes .../one_byte_added_inside/00013.png | Bin 366 -> 368 bytes .../one_byte_removed_inside/00002.png | Bin 711 -> 716 bytes .../one_byte_removed_inside/00006.png | Bin 736 -> 730 bytes .../one_byte_removed_inside/00007.png | Bin 402 -> 409 bytes .../one_byte_removed_inside/00008.png | Bin 578 -> 576 bytes .../one_byte_removed_inside/00009.png | Bin 516 -> 514 bytes .../one_byte_removed_inside/00010.png | Bin 547 -> 549 bytes .../one_byte_removed_inside/00011.png | Bin 523 -> 523 bytes .../one_byte_removed_inside/00013.png | Bin 407 -> 408 bytes .../one_byte_removed_inside/00014.png | Bin 366 -> 368 bytes .../unknown_magic_bytes/00000.png | Bin 578 -> 576 bytes .../unknown_magic_bytes/00001.png | Bin 516 -> 514 bytes .../unknown_magic_bytes/00002.png | Bin 547 -> 549 bytes .../unknown_magic_bytes/00003.png | Bin 523 -> 523 bytes .../unknown_magic_bytes/00005.png | Bin 407 -> 408 bytes .../unknown_magic_bytes/00006.png | Bin 366 -> 368 bytes .../unknown_operation/00000.png | Bin 578 -> 576 bytes .../unknown_operation/00001.png | Bin 516 -> 514 bytes .../unknown_operation/00002.png | Bin 547 -> 549 bytes .../unknown_operation/00003.png | Bin 523 -> 523 bytes .../unknown_operation/00005.png | Bin 407 -> 408 bytes .../unknown_operation/00006.png | Bin 366 -> 368 bytes .../wrong_last_packet/00002.png | Bin 728 -> 734 bytes .../wrong_last_packet/00006.png | Bin 907 -> 920 bytes .../wrong_last_packet/00007.png | Bin 506 -> 506 bytes .../test_provide_pk/bip32_ed25519/00000.png | Bin 447 -> 458 bytes .../test_provide_pk/bip32_ed25519/00001.png | Bin 708 -> 709 bytes .../nanosp/test_provide_pk/ed25519/00000.png | Bin 447 -> 458 bytes .../nanosp/test_provide_pk/ed25519/00001.png | Bin 727 -> 729 bytes .../test_provide_pk/secp256k1/00000.png | Bin 447 -> 458 bytes .../test_provide_pk/secp256r1/00000.png | Bin 447 -> 458 bytes .../test_provide_pk/secp256r1/00001.png | Bin 720 -> 727 bytes .../reject_public_key/00000.png | Bin 447 -> 458 bytes .../reject_public_key/00001.png | Bin 727 -> 729 bytes .../reject_public_key/00003.png | Bin 366 -> 368 bytes .../reject_signing/00002.png | Bin 728 -> 734 bytes .../reject_signing/00006.png | Bin 736 -> 730 bytes .../reject_signing/00007.png | Bin 357 -> 360 bytes .../reject_signing/00008.png | Bin 542 -> 545 bytes .../reject_signing/00011.png | Bin 740 -> 745 bytes .../reject_signing/00015.png | Bin 366 -> 368 bytes .../snapshots/nanosp/test_reject_pk/00000.png | Bin 447 -> 458 bytes .../snapshots/nanosp/test_reject_pk/00001.png | Bin 727 -> 729 bytes .../snapshots/nanosp/test_reject_pk/00003.png | Bin 366 -> 368 bytes .../nanosp/test_sign_ballot/00002.png | Bin 728 -> 734 bytes .../test_sign_complex_operation/00002.png | Bin 728 -> 734 bytes .../test_sign_complex_operation/00007.png | Bin 542 -> 545 bytes .../test_sign_complex_operation/00008.png | Bin 423 -> 424 bytes .../test_sign_complex_operation/00011.png | Bin 728 -> 734 bytes .../test_sign_complex_operation/00015.png | Bin 360 -> 365 bytes .../test_sign_complex_operation/00016.png | Bin 716 -> 708 bytes .../test_sign_complex_operation/00018.png | Bin 720 -> 728 bytes .../test_sign_complex_operation/00019.png | Bin 402 -> 409 bytes .../nanosp/test_sign_delegation/00002.png | Bin 723 -> 725 bytes .../nanosp/test_sign_delegation/00005.png | Bin 754 -> 748 bytes .../nanosp/test_sign_failing_noop/00001.png | Bin 453 -> 455 bytes .../test_sign_increase_paid_storage/00002.png | Bin 728 -> 734 bytes .../test_sign_increase_paid_storage/00006.png | Bin 736 -> 730 bytes .../nanosp/test_sign_origination/00002.png | Bin 728 -> 734 bytes .../nanosp/test_sign_origination/00007.png | Bin 542 -> 545 bytes .../nanosp/test_sign_proposals/00002.png | Bin 728 -> 734 bytes .../00002.png | Bin 728 -> 734 bytes .../00005.png | Bin 542 -> 545 bytes .../nanosp/test_sign_reveal/00002.png | Bin 728 -> 734 bytes .../nanosp/test_sign_reveal/00005.png | Bin 933 -> 941 bytes .../00002.png | Bin 728 -> 734 bytes .../00002.png | Bin 728 -> 734 bytes .../00006.png | Bin 907 -> 920 bytes .../00007.png | Bin 542 -> 545 bytes .../00008.png | Bin 846 -> 846 bytes .../00009.png | Bin 877 -> 878 bytes .../00010.png | Bin 882 -> 882 bytes .../00011.png | Bin 887 -> 887 bytes .../00012.png | Bin 962 -> 962 bytes .../00013.png | Bin 471 -> 470 bytes .../no_whitelist/00002.png | Bin 728 -> 734 bytes .../no_whitelist/00006.png | Bin 542 -> 545 bytes .../with_whitelist/00002.png | Bin 728 -> 734 bytes .../with_whitelist/00006.png | Bin 542 -> 545 bytes .../with_whitelist/00014.png | Bin 793 -> 793 bytes .../with_whitelist/00015.png | Bin 841 -> 841 bytes .../with_whitelist/00016.png | Bin 828 -> 828 bytes .../test_sign_set_consensus_key/00001.png | Bin 510 -> 510 bytes .../test_sign_set_consensus_key/00002.png | Bin 718 -> 718 bytes .../test_sign_set_consensus_key/00005.png | Bin 933 -> 941 bytes .../test_sign_set_deposit_limit/00001.png | Bin 489 -> 488 bytes .../test_sign_set_deposit_limit/00002.png | Bin 725 -> 725 bytes .../test_sign_set_deposit_limit/00005.png | Bin 426 -> 426 bytes .../accept/clear_n_too_long_warning/00002.png | Bin 728 -> 734 bytes .../accept/clear_n_too_long_warning/00005.png | Bin 1038 -> 1046 bytes .../accept/clear_n_too_long_warning/00007.png | Bin 728 -> 734 bytes .../accept/clear_n_too_long_warning/00012.png | Bin 454 -> 458 bytes .../accept/clear_n_too_long_warning/00013.png | Bin 578 -> 576 bytes .../accept/clear_n_too_long_warning/00015.png | Bin 547 -> 549 bytes .../accept/clear_n_too_long_warning/00016.png | Bin 407 -> 408 bytes .../basic/accept/summary/00003.png | Bin 842 -> 846 bytes .../clear_n_too_long_warning/00002.png | Bin 728 -> 734 bytes .../clear_n_too_long_warning/00005.png | Bin 1038 -> 1046 bytes .../clear_n_too_long_warning/00007.png | Bin 728 -> 734 bytes .../clear_n_too_long_warning/00012.png | Bin 454 -> 458 bytes .../clear_n_too_long_warning/00013.png | Bin 578 -> 576 bytes .../clear_n_too_long_warning/00015.png | Bin 547 -> 549 bytes .../clear_n_too_long_warning/00016.png | Bin 407 -> 408 bytes .../basic/reject_at_summary/summary/00003.png | Bin 842 -> 846 bytes .../basic/reject_at_summary/summary/00005.png | Bin 366 -> 368 bytes .../clear_n_too_long_warning/00002.png | Bin 728 -> 734 bytes .../clear_n_too_long_warning/00005.png | Bin 1038 -> 1046 bytes .../clear_n_too_long_warning/00007.png | Bin 728 -> 734 bytes .../clear_n_too_long_warning/00012.png | Bin 454 -> 458 bytes .../clear_n_too_long_warning/00013.png | Bin 578 -> 576 bytes .../clear_n_too_long_warning/00015.png | Bin 547 -> 549 bytes .../clear_n_too_long_warning/00016.png | Bin 407 -> 408 bytes .../clear_n_too_long_warning/00017.png | Bin 366 -> 368 bytes .../clear_n_too_long_warning/00002.png | Bin 728 -> 734 bytes .../clear_n_too_long_warning/00008.png | Bin 728 -> 734 bytes .../clear_n_too_long_warning/00012.png | Bin 770 -> 771 bytes .../clear_n_too_long_warning/00013.png | Bin 578 -> 576 bytes .../clear_n_too_long_warning/00015.png | Bin 547 -> 549 bytes .../clear_n_too_long_warning/00016.png | Bin 407 -> 408 bytes .../too_large/accept/blindsigning/00001.png | Bin 858 -> 859 bytes .../clear_n_too_large_warning/00002.png | Bin 728 -> 734 bytes .../clear_n_too_large_warning/00013.png | Bin 578 -> 576 bytes .../clear_n_too_large_warning/00014.png | Bin 516 -> 514 bytes .../clear_n_too_large_warning/00015.png | Bin 547 -> 549 bytes .../clear_n_too_large_warning/00016.png | Bin 523 -> 526 bytes .../clear_n_too_large_warning/00018.png | Bin 407 -> 408 bytes .../blindsigning/00001.png | Bin 858 -> 859 bytes .../blindsigning/00003.png | Bin 366 -> 368 bytes .../clear_n_too_large_warning/00002.png | Bin 728 -> 734 bytes .../clear_n_too_large_warning/00013.png | Bin 578 -> 576 bytes .../clear_n_too_large_warning/00014.png | Bin 516 -> 514 bytes .../clear_n_too_large_warning/00015.png | Bin 547 -> 549 bytes .../clear_n_too_large_warning/00016.png | Bin 523 -> 526 bytes .../clear_n_too_large_warning/00018.png | Bin 407 -> 408 bytes .../clear_n_too_large_warning/00002.png | Bin 728 -> 734 bytes .../clear_n_too_large_warning/00013.png | Bin 578 -> 576 bytes .../clear_n_too_large_warning/00014.png | Bin 516 -> 514 bytes .../clear_n_too_large_warning/00015.png | Bin 547 -> 549 bytes .../clear_n_too_large_warning/00016.png | Bin 523 -> 526 bytes .../clear_n_too_large_warning/00018.png | Bin 407 -> 408 bytes .../clear_n_too_large_warning/00019.png | Bin 366 -> 368 bytes .../clear_n_too_long_warning/00002.png | Bin 728 -> 734 bytes .../clear_n_too_long_warning/00006.png | Bin 921 -> 926 bytes .../clear_n_too_long_warning/00008.png | Bin 981 -> 976 bytes .../clear_n_too_long_warning/00010.png | Bin 962 -> 959 bytes .../clear_n_too_long_warning/00011.png | Bin 963 -> 960 bytes .../clear_n_too_long_warning/00012.png | Bin 932 -> 935 bytes .../clear_n_too_long_warning/00013.png | Bin 578 -> 576 bytes .../clear_n_too_long_warning/00015.png | Bin 547 -> 549 bytes .../clear_n_too_long_warning/00016.png | Bin 407 -> 408 bytes .../without_fee_or_amount/summary/00003.png | Bin 801 -> 801 bytes .../test_sign_transaction/basic/00002.png | Bin 711 -> 716 bytes .../test_sign_transaction/basic/00006.png | Bin 736 -> 730 bytes .../test_sign_transaction/basic/00007.png | Bin 356 -> 357 bytes .../test_sign_transaction/basic/00008.png | Bin 542 -> 545 bytes .../test_sign_transaction/complex/00002.png | Bin 711 -> 716 bytes .../test_sign_transaction/complex/00006.png | Bin 736 -> 730 bytes .../test_sign_transaction/complex/00007.png | Bin 356 -> 357 bytes .../test_sign_transaction/complex/00008.png | Bin 516 -> 521 bytes .../delegate_parameters/00006.png | Bin 755 -> 754 bytes .../delegate_parameters/00007.png | Bin 562 -> 566 bytes .../delegate_parameters/00008.png | Bin 542 -> 545 bytes .../finalize_unstake/00006.png | Bin 755 -> 754 bytes .../finalize_unstake/00007.png | Bin 476 -> 479 bytes .../test_sign_transaction/reject/00002.png | Bin 728 -> 734 bytes .../test_sign_transaction/reject/00006.png | Bin 736 -> 730 bytes .../test_sign_transaction/reject/00007.png | Bin 357 -> 360 bytes .../test_sign_transaction/reject/00008.png | Bin 542 -> 545 bytes .../test_sign_transaction/reject/00011.png | Bin 740 -> 745 bytes .../test_sign_transaction/reject/00015.png | Bin 366 -> 368 bytes .../test_sign_transaction/simple/00002.png | Bin 728 -> 734 bytes .../test_sign_transaction/simple/00006.png | Bin 736 -> 730 bytes .../test_sign_transaction/stake/00006.png | Bin 755 -> 754 bytes .../test_sign_transaction/stake/00007.png | Bin 391 -> 402 bytes .../test_sign_transaction/unstake/00006.png | Bin 755 -> 754 bytes .../test_sign_transaction/unstake/00007.png | Bin 410 -> 414 bytes .../test_sign_transfer_ticket/00002.png | Bin 728 -> 734 bytes .../test_sign_transfer_ticket/00005.png | Bin 542 -> 545 bytes .../test_sign_transfer_ticket/00007.png | Bin 372 -> 377 bytes .../test_sign_transfer_ticket/00008.png | Bin 728 -> 730 bytes .../test_sign_transfer_ticket/00010.png | Bin 736 -> 730 bytes .../test_sign_transfer_ticket/00011.png | Bin 402 -> 409 bytes .../test_sign_with_another_seed/00002.png | Bin 711 -> 716 bytes .../test_sign_with_another_seed/00006.png | Bin 736 -> 730 bytes .../test_sign_with_another_seed/00007.png | Bin 356 -> 357 bytes .../test_sign_with_another_seed/00008.png | Bin 542 -> 545 bytes .../nanosp/test_sign_with_long_hash/00002.png | Bin 728 -> 734 bytes .../nanosp/test_sign_with_long_hash/00007.png | Bin 357 -> 360 bytes .../nanosp/test_sign_with_long_hash/00008.png | Bin 542 -> 545 bytes .../test_sign_with_small_packet/00002.png | Bin 711 -> 716 bytes .../test_sign_with_small_packet/00006.png | Bin 736 -> 730 bytes .../test_sign_with_small_packet/00007.png | Bin 356 -> 357 bytes .../test_sign_with_small_packet/00008.png | Bin 542 -> 545 bytes .../integration/nano/snapshots/nanox/home.png | Bin 506 -> 506 bytes .../nanox/settings_expert_mode_disabled.png | Bin 450 -> 451 bytes .../nanox/settings_expert_mode_enabled.png | Bin 438 -> 440 bytes .../reject_from_blind/blind/00003.png | Bin 366 -> 368 bytes .../reject_from_blind/clear/00000.png | Bin 578 -> 576 bytes .../reject_from_blind/clear/00001.png | Bin 516 -> 514 bytes .../reject_from_blind/clear/00002.png | Bin 547 -> 549 bytes .../reject_from_blind/clear/00003.png | Bin 523 -> 526 bytes .../reject_from_blind/clear/00005.png | Bin 407 -> 408 bytes .../reject_from_clear/00000.png | Bin 578 -> 576 bytes .../reject_from_clear/00001.png | Bin 516 -> 514 bytes .../reject_from_clear/00002.png | Bin 547 -> 549 bytes .../reject_from_clear/00003.png | Bin 523 -> 526 bytes .../reject_from_clear/00005.png | Bin 407 -> 408 bytes .../reject_from_clear/00006.png | Bin 366 -> 368 bytes .../test_blindsign_too_deep/blind/00001.png | Bin 880 -> 887 bytes .../test_blindsign_too_deep/clear/00000.png | Bin 578 -> 576 bytes .../test_blindsign_too_deep/clear/00001.png | Bin 516 -> 514 bytes .../test_blindsign_too_deep/clear/00002.png | Bin 547 -> 549 bytes .../test_blindsign_too_deep/clear/00003.png | Bin 489 -> 489 bytes .../test_blindsign_too_deep/clear/00005.png | Bin 407 -> 408 bytes .../test_blindsign_too_large/clear/00000.png | Bin 578 -> 576 bytes .../test_blindsign_too_large/clear/00001.png | Bin 516 -> 514 bytes .../test_blindsign_too_large/clear/00002.png | Bin 547 -> 549 bytes .../test_blindsign_too_large/clear/00003.png | Bin 523 -> 526 bytes .../test_blindsign_too_large/clear/00005.png | Bin 407 -> 408 bytes .../test_ensure_always_clearsign/00002.png | Bin 728 -> 734 bytes .../test_ensure_always_clearsign/00006.png | Bin 736 -> 730 bytes .../test_ensure_always_clearsign/00007.png | Bin 357 -> 360 bytes .../test_ensure_always_clearsign/00008.png | Bin 542 -> 545 bytes .../test_ensure_always_clearsign/00011.png | Bin 740 -> 745 bytes .../00002.png | Bin 693 -> 694 bytes .../00007.png | Bin 416 -> 424 bytes .../00008.png | Bin 542 -> 545 bytes .../00009.png | Bin 968 -> 972 bytes .../00010.png | Bin 984 -> 983 bytes .../00011.png | Bin 1048 -> 1049 bytes .../00012.png | Bin 916 -> 915 bytes .../00014.png | Bin 707 -> 709 bytes .../00018.png | Bin 734 -> 737 bytes .../one_byte_added_at_the_end/00002.png | Bin 711 -> 716 bytes .../one_byte_added_at_the_end/00006.png | Bin 736 -> 730 bytes .../one_byte_added_at_the_end/00007.png | Bin 356 -> 357 bytes .../one_byte_added_at_the_end/00008.png | Bin 542 -> 545 bytes .../one_byte_added_at_the_end/00010.png | Bin 578 -> 576 bytes .../one_byte_added_at_the_end/00011.png | Bin 516 -> 514 bytes .../one_byte_added_at_the_end/00012.png | Bin 547 -> 549 bytes .../one_byte_added_at_the_end/00013.png | Bin 523 -> 523 bytes .../one_byte_added_at_the_end/00015.png | Bin 407 -> 408 bytes .../one_byte_added_at_the_end/00016.png | Bin 366 -> 368 bytes .../one_byte_added_inside/00002.png | Bin 711 -> 716 bytes .../one_byte_added_inside/00006.png | Bin 736 -> 730 bytes .../one_byte_added_inside/00007.png | Bin 578 -> 576 bytes .../one_byte_added_inside/00008.png | Bin 516 -> 514 bytes .../one_byte_added_inside/00009.png | Bin 547 -> 549 bytes .../one_byte_added_inside/00010.png | Bin 523 -> 523 bytes .../one_byte_added_inside/00012.png | Bin 407 -> 408 bytes .../one_byte_added_inside/00013.png | Bin 366 -> 368 bytes .../one_byte_removed_inside/00002.png | Bin 711 -> 716 bytes .../one_byte_removed_inside/00006.png | Bin 736 -> 730 bytes .../one_byte_removed_inside/00007.png | Bin 402 -> 409 bytes .../one_byte_removed_inside/00008.png | Bin 578 -> 576 bytes .../one_byte_removed_inside/00009.png | Bin 516 -> 514 bytes .../one_byte_removed_inside/00010.png | Bin 547 -> 549 bytes .../one_byte_removed_inside/00011.png | Bin 523 -> 523 bytes .../one_byte_removed_inside/00013.png | Bin 407 -> 408 bytes .../one_byte_removed_inside/00014.png | Bin 366 -> 368 bytes .../unknown_magic_bytes/00000.png | Bin 578 -> 576 bytes .../unknown_magic_bytes/00001.png | Bin 516 -> 514 bytes .../unknown_magic_bytes/00002.png | Bin 547 -> 549 bytes .../unknown_magic_bytes/00003.png | Bin 523 -> 523 bytes .../unknown_magic_bytes/00005.png | Bin 407 -> 408 bytes .../unknown_magic_bytes/00006.png | Bin 366 -> 368 bytes .../unknown_operation/00000.png | Bin 578 -> 576 bytes .../unknown_operation/00001.png | Bin 516 -> 514 bytes .../unknown_operation/00002.png | Bin 547 -> 549 bytes .../unknown_operation/00003.png | Bin 523 -> 523 bytes .../unknown_operation/00005.png | Bin 407 -> 408 bytes .../unknown_operation/00006.png | Bin 366 -> 368 bytes .../wrong_last_packet/00002.png | Bin 728 -> 734 bytes .../wrong_last_packet/00006.png | Bin 907 -> 920 bytes .../wrong_last_packet/00007.png | Bin 506 -> 506 bytes .../test_provide_pk/bip32_ed25519/00000.png | Bin 447 -> 458 bytes .../test_provide_pk/bip32_ed25519/00001.png | Bin 708 -> 709 bytes .../nanox/test_provide_pk/ed25519/00000.png | Bin 447 -> 458 bytes .../nanox/test_provide_pk/ed25519/00001.png | Bin 727 -> 729 bytes .../nanox/test_provide_pk/secp256k1/00000.png | Bin 447 -> 458 bytes .../nanox/test_provide_pk/secp256r1/00000.png | Bin 447 -> 458 bytes .../nanox/test_provide_pk/secp256r1/00001.png | Bin 720 -> 727 bytes .../reject_public_key/00000.png | Bin 447 -> 458 bytes .../reject_public_key/00001.png | Bin 727 -> 729 bytes .../reject_public_key/00003.png | Bin 366 -> 368 bytes .../reject_signing/00002.png | Bin 728 -> 734 bytes .../reject_signing/00006.png | Bin 736 -> 730 bytes .../reject_signing/00007.png | Bin 357 -> 360 bytes .../reject_signing/00008.png | Bin 542 -> 545 bytes .../reject_signing/00011.png | Bin 740 -> 745 bytes .../reject_signing/00015.png | Bin 366 -> 368 bytes .../snapshots/nanox/test_reject_pk/00000.png | Bin 447 -> 458 bytes .../snapshots/nanox/test_reject_pk/00001.png | Bin 727 -> 729 bytes .../snapshots/nanox/test_reject_pk/00003.png | Bin 366 -> 368 bytes .../nanox/test_sign_ballot/00002.png | Bin 728 -> 734 bytes .../test_sign_complex_operation/00002.png | Bin 728 -> 734 bytes .../test_sign_complex_operation/00007.png | Bin 542 -> 545 bytes .../test_sign_complex_operation/00008.png | Bin 423 -> 424 bytes .../test_sign_complex_operation/00011.png | Bin 728 -> 734 bytes .../test_sign_complex_operation/00015.png | Bin 360 -> 365 bytes .../test_sign_complex_operation/00016.png | Bin 716 -> 708 bytes .../test_sign_complex_operation/00018.png | Bin 720 -> 728 bytes .../test_sign_complex_operation/00019.png | Bin 402 -> 409 bytes .../nanox/test_sign_delegation/00002.png | Bin 723 -> 725 bytes .../nanox/test_sign_delegation/00005.png | Bin 754 -> 748 bytes .../nanox/test_sign_failing_noop/00001.png | Bin 453 -> 455 bytes .../test_sign_increase_paid_storage/00002.png | Bin 728 -> 734 bytes .../test_sign_increase_paid_storage/00006.png | Bin 736 -> 730 bytes .../nanox/test_sign_origination/00002.png | Bin 728 -> 734 bytes .../nanox/test_sign_origination/00007.png | Bin 542 -> 545 bytes .../nanox/test_sign_proposals/00002.png | Bin 728 -> 734 bytes .../00002.png | Bin 728 -> 734 bytes .../00005.png | Bin 542 -> 545 bytes .../nanox/test_sign_reveal/00002.png | Bin 728 -> 734 bytes .../nanox/test_sign_reveal/00005.png | Bin 933 -> 941 bytes .../00002.png | Bin 728 -> 734 bytes .../00002.png | Bin 728 -> 734 bytes .../00006.png | Bin 907 -> 920 bytes .../00007.png | Bin 542 -> 545 bytes .../00008.png | Bin 846 -> 846 bytes .../00009.png | Bin 877 -> 878 bytes .../00010.png | Bin 882 -> 882 bytes .../00011.png | Bin 887 -> 887 bytes .../00012.png | Bin 962 -> 962 bytes .../00013.png | Bin 471 -> 470 bytes .../no_whitelist/00002.png | Bin 728 -> 734 bytes .../no_whitelist/00006.png | Bin 542 -> 545 bytes .../with_whitelist/00002.png | Bin 728 -> 734 bytes .../with_whitelist/00006.png | Bin 542 -> 545 bytes .../with_whitelist/00014.png | Bin 793 -> 793 bytes .../with_whitelist/00015.png | Bin 841 -> 841 bytes .../with_whitelist/00016.png | Bin 828 -> 828 bytes .../test_sign_set_consensus_key/00001.png | Bin 510 -> 510 bytes .../test_sign_set_consensus_key/00002.png | Bin 718 -> 718 bytes .../test_sign_set_consensus_key/00005.png | Bin 933 -> 941 bytes .../test_sign_set_deposit_limit/00001.png | Bin 489 -> 488 bytes .../test_sign_set_deposit_limit/00002.png | Bin 725 -> 725 bytes .../test_sign_set_deposit_limit/00005.png | Bin 426 -> 426 bytes .../accept/clear_n_too_long_warning/00002.png | Bin 728 -> 734 bytes .../accept/clear_n_too_long_warning/00005.png | Bin 1038 -> 1046 bytes .../accept/clear_n_too_long_warning/00007.png | Bin 728 -> 734 bytes .../accept/clear_n_too_long_warning/00012.png | Bin 454 -> 458 bytes .../accept/clear_n_too_long_warning/00013.png | Bin 578 -> 576 bytes .../accept/clear_n_too_long_warning/00015.png | Bin 547 -> 549 bytes .../accept/clear_n_too_long_warning/00016.png | Bin 407 -> 408 bytes .../basic/accept/summary/00003.png | Bin 842 -> 846 bytes .../clear_n_too_long_warning/00002.png | Bin 728 -> 734 bytes .../clear_n_too_long_warning/00005.png | Bin 1038 -> 1046 bytes .../clear_n_too_long_warning/00007.png | Bin 728 -> 734 bytes .../clear_n_too_long_warning/00012.png | Bin 454 -> 458 bytes .../clear_n_too_long_warning/00013.png | Bin 578 -> 576 bytes .../clear_n_too_long_warning/00015.png | Bin 547 -> 549 bytes .../clear_n_too_long_warning/00016.png | Bin 407 -> 408 bytes .../basic/reject_at_summary/summary/00003.png | Bin 842 -> 846 bytes .../basic/reject_at_summary/summary/00005.png | Bin 366 -> 368 bytes .../clear_n_too_long_warning/00002.png | Bin 728 -> 734 bytes .../clear_n_too_long_warning/00005.png | Bin 1038 -> 1046 bytes .../clear_n_too_long_warning/00007.png | Bin 728 -> 734 bytes .../clear_n_too_long_warning/00012.png | Bin 454 -> 458 bytes .../clear_n_too_long_warning/00013.png | Bin 578 -> 576 bytes .../clear_n_too_long_warning/00015.png | Bin 547 -> 549 bytes .../clear_n_too_long_warning/00016.png | Bin 407 -> 408 bytes .../clear_n_too_long_warning/00017.png | Bin 366 -> 368 bytes .../clear_n_too_long_warning/00002.png | Bin 728 -> 734 bytes .../clear_n_too_long_warning/00008.png | Bin 728 -> 734 bytes .../clear_n_too_long_warning/00012.png | Bin 770 -> 771 bytes .../clear_n_too_long_warning/00013.png | Bin 578 -> 576 bytes .../clear_n_too_long_warning/00015.png | Bin 547 -> 549 bytes .../clear_n_too_long_warning/00016.png | Bin 407 -> 408 bytes .../too_large/accept/blindsigning/00001.png | Bin 858 -> 859 bytes .../clear_n_too_large_warning/00002.png | Bin 728 -> 734 bytes .../clear_n_too_large_warning/00013.png | Bin 578 -> 576 bytes .../clear_n_too_large_warning/00014.png | Bin 516 -> 514 bytes .../clear_n_too_large_warning/00015.png | Bin 547 -> 549 bytes .../clear_n_too_large_warning/00016.png | Bin 523 -> 526 bytes .../clear_n_too_large_warning/00018.png | Bin 407 -> 408 bytes .../blindsigning/00001.png | Bin 858 -> 859 bytes .../blindsigning/00003.png | Bin 366 -> 368 bytes .../clear_n_too_large_warning/00002.png | Bin 728 -> 734 bytes .../clear_n_too_large_warning/00013.png | Bin 578 -> 576 bytes .../clear_n_too_large_warning/00014.png | Bin 516 -> 514 bytes .../clear_n_too_large_warning/00015.png | Bin 547 -> 549 bytes .../clear_n_too_large_warning/00016.png | Bin 523 -> 526 bytes .../clear_n_too_large_warning/00018.png | Bin 407 -> 408 bytes .../clear_n_too_large_warning/00002.png | Bin 728 -> 734 bytes .../clear_n_too_large_warning/00013.png | Bin 578 -> 576 bytes .../clear_n_too_large_warning/00014.png | Bin 516 -> 514 bytes .../clear_n_too_large_warning/00015.png | Bin 547 -> 549 bytes .../clear_n_too_large_warning/00016.png | Bin 523 -> 526 bytes .../clear_n_too_large_warning/00018.png | Bin 407 -> 408 bytes .../clear_n_too_large_warning/00019.png | Bin 366 -> 368 bytes .../clear_n_too_long_warning/00002.png | Bin 728 -> 734 bytes .../clear_n_too_long_warning/00006.png | Bin 921 -> 926 bytes .../clear_n_too_long_warning/00008.png | Bin 981 -> 976 bytes .../clear_n_too_long_warning/00010.png | Bin 962 -> 959 bytes .../clear_n_too_long_warning/00011.png | Bin 963 -> 960 bytes .../clear_n_too_long_warning/00012.png | Bin 932 -> 935 bytes .../clear_n_too_long_warning/00013.png | Bin 578 -> 576 bytes .../clear_n_too_long_warning/00015.png | Bin 547 -> 549 bytes .../clear_n_too_long_warning/00016.png | Bin 407 -> 408 bytes .../without_fee_or_amount/summary/00003.png | Bin 801 -> 801 bytes .../test_sign_transaction/basic/00002.png | Bin 711 -> 716 bytes .../test_sign_transaction/basic/00006.png | Bin 736 -> 730 bytes .../test_sign_transaction/basic/00007.png | Bin 356 -> 357 bytes .../test_sign_transaction/basic/00008.png | Bin 542 -> 545 bytes .../test_sign_transaction/complex/00002.png | Bin 711 -> 716 bytes .../test_sign_transaction/complex/00006.png | Bin 736 -> 730 bytes .../test_sign_transaction/complex/00007.png | Bin 356 -> 357 bytes .../test_sign_transaction/complex/00008.png | Bin 516 -> 521 bytes .../delegate_parameters/00006.png | Bin 755 -> 754 bytes .../delegate_parameters/00007.png | Bin 562 -> 566 bytes .../delegate_parameters/00008.png | Bin 542 -> 545 bytes .../finalize_unstake/00006.png | Bin 755 -> 754 bytes .../finalize_unstake/00007.png | Bin 476 -> 479 bytes .../test_sign_transaction/reject/00002.png | Bin 728 -> 734 bytes .../test_sign_transaction/reject/00006.png | Bin 736 -> 730 bytes .../test_sign_transaction/reject/00007.png | Bin 357 -> 360 bytes .../test_sign_transaction/reject/00008.png | Bin 542 -> 545 bytes .../test_sign_transaction/reject/00011.png | Bin 740 -> 745 bytes .../test_sign_transaction/reject/00015.png | Bin 366 -> 368 bytes .../test_sign_transaction/simple/00002.png | Bin 728 -> 734 bytes .../test_sign_transaction/simple/00006.png | Bin 736 -> 730 bytes .../test_sign_transaction/stake/00006.png | Bin 755 -> 754 bytes .../test_sign_transaction/stake/00007.png | Bin 391 -> 402 bytes .../test_sign_transaction/unstake/00006.png | Bin 755 -> 754 bytes .../test_sign_transaction/unstake/00007.png | Bin 410 -> 414 bytes .../nanox/test_sign_transfer_ticket/00002.png | Bin 728 -> 734 bytes .../nanox/test_sign_transfer_ticket/00005.png | Bin 542 -> 545 bytes .../nanox/test_sign_transfer_ticket/00007.png | Bin 372 -> 377 bytes .../nanox/test_sign_transfer_ticket/00008.png | Bin 728 -> 730 bytes .../nanox/test_sign_transfer_ticket/00010.png | Bin 736 -> 730 bytes .../nanox/test_sign_transfer_ticket/00011.png | Bin 402 -> 409 bytes .../test_sign_with_another_seed/00002.png | Bin 711 -> 716 bytes .../test_sign_with_another_seed/00006.png | Bin 736 -> 730 bytes .../test_sign_with_another_seed/00007.png | Bin 356 -> 357 bytes .../test_sign_with_another_seed/00008.png | Bin 542 -> 545 bytes .../nanox/test_sign_with_long_hash/00002.png | Bin 728 -> 734 bytes .../nanox/test_sign_with_long_hash/00007.png | Bin 357 -> 360 bytes .../nanox/test_sign_with_long_hash/00008.png | Bin 542 -> 545 bytes .../test_sign_with_small_packet/00002.png | Bin 711 -> 716 bytes .../test_sign_with_small_packet/00006.png | Bin 736 -> 730 bytes .../test_sign_with_small_packet/00007.png | Bin 356 -> 357 bytes .../test_sign_with_small_packet/00008.png | Bin 542 -> 545 bytes tests/integration/nano/test_basic.py | 66 ++--- .../integration/nano/test_blindsign_reject.py | 11 +- .../nano/test_blindsign_too_deep.py | 15 +- .../nano/test_blindsign_too_large.py | 9 +- .../nano/test_change_sign_instruction.py | 23 +- .../nano/test_ensure_always_clearsign.py | 7 +- tests/integration/nano/test_get_pk.py | 18 +- tests/integration/nano/test_git.py | 8 +- tests/integration/nano/test_mixing_command.py | 37 +-- tests/integration/nano/test_parsing_errors.py | 17 +- tests/integration/nano/test_provide_pk.py | 21 +- .../test_regression_continue_after_reject.py | 9 +- tests/integration/nano/test_reject_pk.py | 9 +- tests/integration/nano/test_sign_ballot.py | 9 +- .../nano/test_sign_complex_operation.py | 10 +- .../integration/nano/test_sign_delegation.py | 9 +- .../nano/test_sign_failing_noop.py | 9 +- .../nano/test_sign_increase_paid_storage.py | 9 +- .../nano/test_sign_micheline_without_hash.py | 9 +- .../integration/nano/test_sign_origination.py | 7 +- tests/integration/nano/test_sign_proposals.py | 9 +- .../test_sign_register_global_constant.py | 7 +- tests/integration/nano/test_sign_reveal.py | 9 +- .../nano/test_sign_sc_rollup_add_messages.py | 9 +- ...t_sign_sc_rollup_execute_outbox_message.py | 7 +- .../nano/test_sign_sc_rollup_originate.py | 14 +- .../nano/test_sign_set_consensus_key.py | 9 +- .../nano/test_sign_set_deposit_limit.py | 9 +- .../nano/test_sign_too_long_operation.py | 71 +++--- .../integration/nano/test_sign_transaction.py | 32 ++- .../nano/test_sign_transfer_ticket.py | 7 +- .../nano/test_sign_with_another_seed.py | 13 +- .../nano/test_sign_with_long_hash.py | 7 +- .../nano/test_sign_with_small_packet.py | 13 +- .../test_tz1_bip25519_sign_micheline_basic.py | 13 +- .../test_tz1_ed25519_sign_micheline_basic.py | 13 +- .../nano/test_tz2_sign_micheline_basic.py | 10 +- .../nano/test_tz3_sign_micheline_basic.py | 10 +- .../nano/test_unimplemented_commands.py | 30 +-- tests/integration/nano/test_version.py | 8 +- .../nano/test_wrong_apdu_length.py | 30 +-- tests/integration/nano/test_wrong_class.py | 26 +- .../nano/test_wrong_derivation_path.py | 23 +- .../nano/test_wrong_derivation_type.py | 15 +- tests/integration/nano/test_wrong_index.py | 19 +- tests/integration/nano/utils/account.py | 70 ++++-- tests/integration/nano/utils/app.py | 227 +++++++++++------- tests/integration/nano/utils/backend.py | 77 +++--- tests/integration/nano/utils/message.py | 21 +- tests/integration/run_test_docker.sh | 1 + tests/requirements.txt | 3 +- 570 files changed, 800 insertions(+), 483 deletions(-) create mode 100644 tests/integration/.pylintrc create mode 100644 tests/integration/nano/nanos/__init__.py create mode 100644 tests/integration/nano/nanosp/__init__.py create mode 100644 tests/integration/nano/nanox/__init__.py diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2f2c5762d..e35bad9db 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -89,6 +89,7 @@ jobs: apk add gmp-dev curl jq libsodium-dev git xxd procps python3 -m venv tezos_test_env --system-site-package source ./tezos_test_env/bin/activate + python3 -m pip install --upgrade pip -q python3 -m pip install -r ./tests/requirements.txt -q TMP_DIR=$(mktemp -d /tmp/foo-XXXXXX) tar xfz app_${{ matrix.device }}_dbg.tgz -C $TMP_DIR @@ -192,6 +193,7 @@ jobs: apk add gmp-dev curl jq libsodium-dev git xxd procps python3 -m venv tezos_test_env --system-site-package source ./tezos_test_env/bin/activate + python3 -m pip install --upgrade pip -q python3 -m pip install -r ./tests/requirements.txt -q ./tests/integration/run_test_local.sh -T100 -F -m ${{ matrix.device }} tests diff --git a/.github/workflows/coding_style_checks.yml b/.github/workflows/coding_style_checks.yml index ac30e70cf..a8ec73f95 100644 --- a/.github/workflows/coding_style_checks.yml +++ b/.github/workflows/coding_style_checks.yml @@ -23,3 +23,20 @@ jobs: source: './app/src' extensions: 'h,c' version: 15 + + pylint_check: + name: Python Lint Check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.9' + + - name: Install pylint + run: pip install pylint -r tests/requirements.txt + + - name: Run pylint with .pylintrc + run: pylint --errors-only --rcfile=tests/integration/.pylintrc tests/integration/nano/ diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 4c051d2fe..863ce0419 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -12,4 +12,4 @@ jobs: python-version: '3.10' - run: python -m pip install pre-commit - run: python -m pip freeze --local - - run: SKIP=clang-format pre-commit run --all-files + - run: SKIP=clang-format,pylint pre-commit run --all-files diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 8675de0c6..3d97c6391 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -19,3 +19,12 @@ repos: language: system files: ^ types: [file, c] + + - id: pylint + name: pylint + description: Run pylint with custom .pylintrc configuration + entry: pylint + language: system + pass_filenames: false + args: ["--errors-only", "--rcfile=tests/integration/.pylintrc", "tests/integration/nano/"] + types: [python] diff --git a/Makefile b/Makefile index 695ccfd00..1e776f0b1 100644 --- a/Makefile +++ b/Makefile @@ -122,6 +122,7 @@ integration_tests_basic_%: app_%.tgz \ apk add gmp-dev curl jq libsodium-dev git xxd procps; \ python3 -m venv tezos_test_env --system-site-package; \ source ./tezos_test_env/bin/activate; \ + python3 -m pip install --upgrade pip -q; \ python3 -m pip install -r tests/requirements.txt -q ; \ python3 -m pytest -n 32 tests/integration/nano/ --tb=no \ --device $* --app \$$TMP_DIR/app.elf \ diff --git a/scripts/test_swap.sh b/scripts/test_swap.sh index c649edc81..cabcfb261 100755 --- a/scripts/test_swap.sh +++ b/scripts/test_swap.sh @@ -151,7 +151,8 @@ run_tests() { --rm -v "$(realpath .):/app" \ ledger-app-tezos-integration-tests -c \ "cd /app && \ - pip install -r test/python/requirements.txt -q && \ + pip install --upgrade pip -q && \ + pip install -r test/python/requirements.txt -q && \ pip install protobuf==3.20.3 && pytest test/python $*" ) } diff --git a/tests/integration/.pylintrc b/tests/integration/.pylintrc new file mode 100644 index 000000000..0c5eedc64 --- /dev/null +++ b/tests/integration/.pylintrc @@ -0,0 +1,12 @@ +[MESSAGES CONTROL] +disable= + broad-exception-caught, + global-statement, + line-too-long, + protected-access, + redefined-outer-name, + too-few-public-methods, + too-many-arguments, + too-many-instance-attributes, + too-many-positional-arguments, + too-many-statements, diff --git a/tests/integration/nano/conftest.py b/tests/integration/nano/conftest.py index 7f35558a1..52ba34bc4 100644 --- a/tests/integration/nano/conftest.py +++ b/tests/integration/nano/conftest.py @@ -1,11 +1,29 @@ -import pytest +# Copyright 2024 Trilitech +# Copyright 2024 Functori + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Conftest base on `ragger` conftest.""" + from pathlib import Path +from typing import Dict, Generator, List, Union + +import pytest from ragger.firmware import Firmware -from typing import Dict, Callable, Generator, List, Optional, Tuple, Union from utils.app import TezosAppScreen, SpeculosTezosBackend, DEFAULT_SEED -from utils.backend import TezosBackend, APP_KIND +from utils.backend import AppKind FIRMWARES: List[Firmware] = [ Firmware.NANOS, @@ -16,6 +34,7 @@ DEVICES: List[str] = list(map(lambda fw: fw.device, FIRMWARES)) def pytest_addoption(parser): + """Register argparse-style options for pytest.""" parser.addoption("-D", "--device", type=str, choices=DEVICES, @@ -49,6 +68,7 @@ def pytest_addoption(parser): global_log_dir: Union[Path, None] = None def pytest_configure(config): + """Configure pytest.""" global global_log_dir log_dir = config.getoption("log_dir") if log_dir is not None: @@ -57,21 +77,24 @@ def pytest_configure(config): logs : Dict[str, List[pytest.TestReport]] = {} @pytest.hookimpl(tryfirst=True) -def pytest_runtest_logstart(nodeid, location): +def pytest_runtest_logstart(location): + """Called at the start of running the runtest protocol for a single item.""" logs[location[2]] = [] @pytest.hookimpl(tryfirst=True) def pytest_runtest_logreport(report): + """Called at the end of running the runtest protocol for a single test.""" logs[report.head_line].append(report) @pytest.hookimpl(tryfirst=True) -def pytest_runtest_logfinish(nodeid, location): +def pytest_runtest_logfinish(location): + """Called at the end of running the runtest protocol for a single item.""" if global_log_dir is not None: log_dir = global_log_dir / Path(location[0]).stem log_dir.mkdir(parents=True, exist_ok=True) head_line = location[2] log_file = log_dir / f"{head_line.replace(' ', '_')}.log" - with open(log_file, 'w') as writer: + with open(log_file, 'w', encoding="utf-8") as writer: for report in logs[head_line]: writer.write(f"============================== {report.when.capitalize()} {report.outcome} ==============================\n") writer.write(f"{report.longreprtext}\n") @@ -84,11 +107,13 @@ def pytest_runtest_logfinish(nodeid, location): @pytest.fixture(scope="session") def firmware(pytestconfig) -> Firmware : + """Get `firware` for pytest.""" device = pytestconfig.getoption("device") return next(fw for fw in FIRMWARES if fw.device == device) @pytest.fixture(scope="session") -def port(pytestconfig, request, worker_id) -> int : +def port(pytestconfig, worker_id) -> int : + """Get `port` for pytest.""" if worker_id == "master": return pytestconfig.getoption("port") # worker_id = gw0, gw1, ... @@ -96,18 +121,22 @@ def port(pytestconfig, request, worker_id) -> int : @pytest.fixture(scope="session") def display(pytestconfig) -> bool : + """Get `display` for pytest.""" return pytestconfig.getoption("display") @pytest.fixture(scope="session") def golden_run(pytestconfig) -> bool: + """Get `golden_run` for pytest.""" return pytestconfig.getoption("golden_run") @pytest.fixture(scope="session") def app_path(pytestconfig) -> Path: + """Get `app_path` for pytest.""" return Path(pytestconfig.getoption("app")) @pytest.fixture(scope="session") def speculos_args(pytestconfig) -> List[str]: + """Get `app_path` for pytest.""" speculos_args = pytestconfig.getoption("speculos_args") if speculos_args is None: return [] @@ -115,6 +144,7 @@ def speculos_args(pytestconfig) -> List[str]: @pytest.fixture(scope="function") def seed(request) -> str: + """Get `seed` for pytest.""" param = getattr(request, "param", None) return param.get("seed", DEFAULT_SEED) if param else DEFAULT_SEED @@ -125,6 +155,7 @@ def backend(app_path: Path, display: bool, seed: str, speculos_args: List[str]) -> Generator[SpeculosTezosBackend, None, None]: + """Get `backend` for pytest.""" if display: speculos_args += ["--display", "qt"] @@ -143,10 +174,12 @@ def backend(app_path: Path, yield b @pytest.fixture(scope="function") -def app(backend: SpeculosTezosBackend, golden_run: bool): - return TezosAppScreen(backend, APP_KIND.WALLET, golden_run) +def app(backend: SpeculosTezosBackend, golden_run: bool) -> TezosAppScreen: + """Get `app` for pytest.""" + return TezosAppScreen(backend, AppKind.WALLET, golden_run) def requires_device(device): + """Wrapper to run the pytest test only with the provided device.""" return pytest.mark.skipif( f"config.getvalue('device') != '{ device }'", reason=f"Test requires device to be { device }." diff --git a/tests/integration/nano/nanos/__init__.py b/tests/integration/nano/nanos/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/integration/nano/nanos/test_nanos_regression_batched_ops.py b/tests/integration/nano/nanos/test_nanos_regression_batched_ops.py index 1fe7796c4..08d460704 100755 --- a/tests/integration/nano/nanos/test_nanos_regression_batched_ops.py +++ b/tests/integration/nano/nanos/test_nanos_regression_batched_ops.py @@ -13,19 +13,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -import os -import sys +"""Check signing batch operation""" -file_path=os.path.abspath(__file__) -dir_path=os.path.dirname(file_path) -root_path=os.path.dirname(dir_path) -sys.path.append(root_path) +from pathlib import Path from conftest import requires_device -from pathlib import Path - -from utils.app import Screen, DEFAULT_ACCOUNT +from utils.app import TezosAppScreen, DEFAULT_ACCOUNT from utils.message import Message # Operation (0): Transaction @@ -42,7 +36,8 @@ # Destination: KT1CYT8oACUcCSNTu2qfgB4fj5bD7szYrpti @requires_device("nanos") -def test_nanos_regression_batched_ops(app): +def test_nanos_regression_batched_ops(app: TezosAppScreen): + """Check signing batch operation""" test_name = Path(__file__).stem app.setup_expert_mode() diff --git a/tests/integration/nano/nanosp/__init__.py b/tests/integration/nano/nanosp/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/integration/nano/nanosp/test_nanosp_regression_potential_empty_screen.py b/tests/integration/nano/nanosp/test_nanosp_regression_potential_empty_screen.py index 1e0c7e8cf..d5c61eb9f 100755 --- a/tests/integration/nano/nanosp/test_nanosp_regression_potential_empty_screen.py +++ b/tests/integration/nano/nanosp/test_nanosp_regression_potential_empty_screen.py @@ -13,19 +13,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -import os -import sys +"""Check signing operation that display potentially empty screens""" -file_path=os.path.abspath(__file__) -dir_path=os.path.dirname(file_path) -root_path=os.path.dirname(dir_path) -sys.path.append(root_path) +from pathlib import Path from conftest import requires_device -from pathlib import Path - -from utils.app import Screen, DEFAULT_ACCOUNT +from utils.app import TezosAppScreen, DEFAULT_ACCOUNT from utils.message import Message # Operation (0): Transfer ticket @@ -43,7 +37,8 @@ # S @requires_device("nanosp") -def test_nanosp_regression_potential_empty_screen(app): +def test_nanosp_regression_potential_empty_screen(app: TezosAppScreen): + """Check signing operation that display potentially empty screens""" test_name = Path(__file__).stem app.setup_expert_mode() diff --git a/tests/integration/nano/nanosp/test_nanosp_regression_press_right_works_across_apdu_recieves.py b/tests/integration/nano/nanosp/test_nanosp_regression_press_right_works_across_apdu_recieves.py index 0d2a1918a..d1ab32855 100755 --- a/tests/integration/nano/nanosp/test_nanosp_regression_press_right_works_across_apdu_recieves.py +++ b/tests/integration/nano/nanosp/test_nanosp_regression_press_right_works_across_apdu_recieves.py @@ -13,28 +13,23 @@ # See the License for the specific language governing permissions and # limitations under the License. -import os -import sys +"""Check no need to click right two times between APDUs during signing flow""" -file_path=os.path.abspath(__file__) -dir_path=os.path.dirname(file_path) -root_path=os.path.dirname(dir_path) -sys.path.append(root_path) +from pathlib import Path from conftest import requires_device -from pathlib import Path - -from utils.app import Screen, DEFAULT_ACCOUNT +from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT from utils.message import Message # Expression: {IF_NONE {{SWAP;IF {DIP {{DROP 1;PUSH unit Unit;PUSH bool True;PUSH string ";L\\S?p$-Fq)VDg\n]te\no4v0_8)\""}}} {{DROP 2;PUSH unit Unit;PUSH bool False;PUSH string "Li-%*edF6~?E[5Kmu?dyviwJ^2\"\\d$FyQ>>!>D$g(Qg";PUSH string "*Tx$L)Ap|9E2t-6g zL_|bHZ}PRe0~e%}@`o6sI?`0W=Gph^4!j*?0QwUj3uFLjjq!<}QbNg+&*~0bqwd3U zln3w3-fXf2fsTHF%Yddj8-Q$*0l0PuK%V@akgRgypYv#q>fx)x$fl z8mfXXv#nXpA1U$6rR-?#mz!|stXFHM!h7-qyBN0t27ri&Rx^F#56m$pC3&Zq~EgvQS5c+y$U4Dg7AK|8-smJ>qmH zZ1ln)H|uKkcb5V8ilCvI`xD+T(H-8R;&ch34f%gvOhiOPL_|cizaI%WRtXbXentQQ N002ovPDHLkV1g7t>G%Ku delta 471 zcmV;|0Vw|Z1NsAyEq_6B!ypU=P}<2&xc`y3OBYP3Dlo<#3-s}StHg;7gAg`KLLed{ zA|fIpdXul!9k?K+lwZUc)sd$1HP60Rci`Pi;Da>M1C&N2u^l!IPPP}&oCv)qt8#70L+6X!s zbVc^+Qx2_qpgyhX*Bz6+l|=}3mJD`&+dONe#b>F`gt`ZI>I`VU?jJl|iw3WAdeDfx z{@*@8%^;(ObAQ;4+DgA3zw(3B-2Yb#YNy82&D&i(xZe-g!>fyN6PCZy71M@%s)u)8 zHB<#(W?QqGKT_hCOWD!fFE`=NS+CYih4D`Bk^$1l+^lD}Wl)a{xeGv9Qu;BdKXqOQJ>o6^ znbGQ8%5Z*Ge|G`6R|E~!+@J9K65Zh~DlEp)EdGBkCL$stA|fK%-w$H-P~F+bU^M^$ N002ovPDHLkV1i%u+@k;h diff --git a/tests/integration/nano/snapshots/nanosp/settings_expert_mode_disabled.png b/tests/integration/nano/snapshots/nanosp/settings_expert_mode_disabled.png index c38eac887fcbface100aff4569cb469cc1e69d61..22d3f5c2eb87768ffb84d6c225b5699b021a6e76 100644 GIT binary patch delta 425 zcmV;a0apIP1H%K5B!7xYL_t(|obB0BQp6w(fMImJ3HLt|ckzLd$s~c+wE zb~i2eIsuQrajoWzUw`*gTz`l4@03rYY00000000000B`LZg-1V3 TH>HW^00000NkvXXu0mjfm95N? delta 424 zcmV;Z0ayOR1HuE4B!7uXL_t(|obB0Ba)clZfMK@Nn{fXlahEzs33M-Mv2JaV+((H+D+%=pQQ5FUW4E{L47 zdtFOZ{aRQ`vGr{jWHr^79f=*DJLVJ?>92@JrBX`kRh1>`uYdKHI`y(#)~|Kc?J{O= z%eL8zV|dok6m-0g{nR0!(|zXuyot8K*0kD?2N{=wZdf6|M~@*q1xfDmSKO5H6gLgJ z-3^Pq4#49puI8Nn@^?SQ<(J#?z0@r4k{^=vTg2ZLoC%VD}7aJdRyewULm{0=Cq=SL+7gpiW>u z@1L~Q1E9F)Wp8a}0Qv`hDrKwmBD2uN)5Ol%q&olr03iSX000000002+)_wp)C_J@d SQhA{O0000 diff --git a/tests/integration/nano/snapshots/nanosp/settings_expert_mode_enabled.png b/tests/integration/nano/snapshots/nanosp/settings_expert_mode_enabled.png index 7adaf2fb335b9ef08bf1e74b46e6220bec083b50..f7e9acdbd453cdeed5882d259ed65d2dd19db67d 100644 GIT binary patch delta 414 zcmV;P0b%~O1Goc_B!7QNL_t(|obB0Bl7k=&fMIuMZ^HeL#9j8mStdgQ(v|=V|Mz4q z0uqfiy)FO%00000000000N~=wuj?3N+72Q34b;&+=aIAh@gBhMWX3O+2loIZ>4pd) znA>Sj);{fwG3xd@46<1^mY#{8o;l~sEz;i}ok}sr(xoc*WPjhLL(U`9?DGJ0zvEKQso(zQqd5LCdzNk5=Oe=}A0+S1;Z+a)c;~y)pi{=3rFgQlR^hY& zT;@_wT!I4waDS~9gVQXRg^se~bNC#3c^#{vk4n`Z*`WSW_ExVwWNq|;Co{p1(}uM?uUOk%C;)WAxk)q+2;SIprxy!(yn=F(Ev35 zQ?`M1p8+Wb*)Pj`f2F2f`Q2IhzY_oe000000000002gfL7ZA)-xUz-&5QeSe#pq@|bTvVN+QHJ33n zd)D3FoI_h(Q_y)m)>DT(PxG8Vxe|4UrDfG2chWBfJupLl_nw1$3X;s*KVznpR?IYL z4%aRAc>tQ`J4*3nN3Ftc0XWR1 z9=HS>2H==227kMmE(>jC#^>-p^zu6HhF&V|_Q(qLkFvM=-a}SLH{6l=W>9)L&@U6_ z@tw^Eb31R8u5ZG3=>5*M4c-efcZQoc|8SILRgy!Na4xgW_okq!cSEIB^U|aNxcN`n z0_J@Nq!?tsEYI@FR%qpSXXXD+000000000000026m=!3wC2lV0q0000y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanosp/test_blindsign_reject/reject_from_blind/clear/00000.png b/tests/integration/nano/snapshots/nanosp/test_blindsign_reject/reject_from_blind/clear/00000.png index df6e01718ac7db8656876556198e373fae925b3f..19e71920ed32b78f7071abd026c08ba6c0c11c88 100644 GIT binary patch delta 68 zcmX@aa)4!m3M2bQ)hCSRuV>g!DfzbV-BE>QJHy&r1TQ}p-p0s)02LgTe~DWM4fpywGN delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanosp/test_blindsign_reject/reject_from_blind/clear/00001.png b/tests/integration/nano/snapshots/nanosp/test_blindsign_reject/reject_from_blind/clear/00001.png index ace2004671826013010d1896143f441a40ceb2ed..907033ad79701b4cd53b67fd742f1a5f4fe7cf9d 100644 GIT binary patch delta 488 zcmVF1DK+!alov{BUc`yC&3?)2d0Rq|6d%hYQ zgaa|u!mk$q00000005xF@hu*#mfU-39qxQ>D%lqp`#zg{!MD?YY{MPL5kg2m#=qn7 zSSFqos-$JgXs!7AGO4qPR-9I-dlBw{a$aiv^s2S01?2deT7Q}#^1(?TlPJToJLau<-lLkQW#qO8&zR#VH1=K!2~$G|tNInODmx(KJITE~0CX0@`lz1mz^1^@tH zk3ESz_kUIWp98jW@9V0{b3j*mK%s5*A_JwA~6 zl2c$~sWfHv4SzG=KcbSE&7{W&uAdp?ty^0M; zwlF9>c)b7s0000000000po8O^c(Yn_@1u2a=Vw!qy};P}Y>t9&(0^>r9mf$uNH62> zct6&Or9zXmPHC-WUtcHXbkVZYGIcM65m3%ctxvDos#-y|uYYN!F(TibDud4q#U>okSu2NYCbjbr6TIyIS&$YY@v1 z`I05DF)2;ie1F4?_s)u0^_`^KN`{mI$=?)2^i$S_BHML%X9bJALL~dpzmjm)IVNPP zR!ig(`hMWc5WEN(J{GN0;(YQjoDf(50IQ>Zz5*|JsKC|zp&)7$C>{s5)gN2x64%PwiKo)IS0ssI2 g000000Kh_i0ei>`c6nj68UO$Q07*qoM6N<$g8CWdfB*mh diff --git a/tests/integration/nano/snapshots/nanosp/test_blindsign_reject/reject_from_blind/clear/00002.png b/tests/integration/nano/snapshots/nanosp/test_blindsign_reject/reject_from_blind/clear/00002.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanosp/test_blindsign_reject/reject_from_blind/clear/00003.png b/tests/integration/nano/snapshots/nanosp/test_blindsign_reject/reject_from_blind/clear/00003.png index 3d12ba7610b993ca5747360f2eab0e6908870db0..9fdc2ea61730ebc0566813ae57d4921e60518f83 100644 GIT binary patch delta 500 zcmVF1DKvCN1PT2pF*h@c{coZRC25juP=PU68 zWD&s7ItKs%00000000000G9Y!QD_K3e)ZlD7By1B=6=@|Jtb@2`xj^5Irn#2O|n}Y zISnCr?~k8(dX4M>@?v#?q#DdDQ&lRz%3E@Aj^sgE*aH;*;eWo9VrDS+kTDTv;p&4d zJgrw%n#R)-=M)QjK;a>kT-IgTV&SSAGq9RJI^B5 z4MC00&AR4Y=gJu`q{~HKkx_cgLf-nsL>Og7cD!39*3^=90Ox9=!@$CvB)^k6kI^LA$~ zFB%Is&#L3OP|b=?yt6f>x4j>j>&EnR*Mh#felDzU3x%7f;=x>a<%M*)y7udhh1mY{ z*h86#9bJfZt#RIG{P9N{Ag$PpX~T9phT~&L`ZyjxVQ-Hsj1dr$;|X{)r+zbxo+d&jD#7WcTk{1{W??qfj-5w9I{mR`gl&UlCPH qH*g-eI|Kj#0000000000c&UHfIAo92?1xDJ0000xfW~e(67WW+&dPvrC&M(e>O6g}>NwQlU zIo-A`=X`w4%X4H8kSD7XB-LPMOjW3SD=+ctc_$A_U=L98pMUh36f=X~P40;>gR2)Z zcv-G0w5(4{J%aP{C~vk4_tN6;U;RFd^(T<<94Z63%Y-obj!%xjaiyl9DR zex#0jl{8Da_Q2MZ-mZRNE*;C)?awNw>*vb)){AT&-w%2ftFNLf$19qig3=S_v4=7f zJ76K!waj^wAvZpt0m|adnl05%$5?!9M<2)c7v7v9KWZ9sBOzN6=BC@}PTXXbEmE(N z=1S_O*k8oVz5YeoK>j{ael)F;tIq*tF60Q%z6`FMsYapG3Y0Nd7*ugl$iE^^#ckj` nZfght00000000000PtSF`}Se@6vJi+00000NkvXXu0mjf!1eH% diff --git a/tests/integration/nano/snapshots/nanosp/test_blindsign_reject/reject_from_blind/clear/00005.png b/tests/integration/nano/snapshots/nanosp/test_blindsign_reject/reject_from_blind/clear/00005.png index cc59349033daaad4bdeae570a7124de74d0a7374..2adfb4d839946649d3e8fc8d5a72d02a81109c90 100644 GIT binary patch delta 381 zcmbQvJcD_HN`1Vii(^Q|oVPau`I;4Y8Xo4|^xg4);*QgD9ue0UP3G7%>wk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanosp/test_blindsign_reject/reject_from_clear/00000.png b/tests/integration/nano/snapshots/nanosp/test_blindsign_reject/reject_from_clear/00000.png index df6e01718ac7db8656876556198e373fae925b3f..19e71920ed32b78f7071abd026c08ba6c0c11c88 100644 GIT binary patch delta 68 zcmX@aa)4!m3M2bQ)hCSRuV>g!DfzbV-BE>QJHy&r1TQ}p-p0s)02LgTe~DWM4fpywGN delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanosp/test_blindsign_reject/reject_from_clear/00001.png b/tests/integration/nano/snapshots/nanosp/test_blindsign_reject/reject_from_clear/00001.png index ace2004671826013010d1896143f441a40ceb2ed..907033ad79701b4cd53b67fd742f1a5f4fe7cf9d 100644 GIT binary patch delta 488 zcmVF1DK+!alov{BUc`yC&3?)2d0Rq|6d%hYQ zgaa|u!mk$q00000005xF@hu*#mfU-39qxQ>D%lqp`#zg{!MD?YY{MPL5kg2m#=qn7 zSSFqos-$JgXs!7AGO4qPR-9I-dlBw{a$aiv^s2S01?2deT7Q}#^1(?TlPJToJLau<-lLkQW#qO8&zR#VH1=K!2~$G|tNInODmx(KJITE~0CX0@`lz1mz^1^@tH zk3ESz_kUIWp98jW@9V0{b3j*mK%s5*A_JwA~6 zl2c$~sWfHv4SzG=KcbSE&7{W&uAdp?ty^0M; zwlF9>c)b7s0000000000po8O^c(Yn_@1u2a=Vw!qy};P}Y>t9&(0^>r9mf$uNH62> zct6&Or9zXmPHC-WUtcHXbkVZYGIcM65m3%ctxvDos#-y|uYYN!F(TibDud4q#U>okSu2NYCbjbr6TIyIS&$YY@v1 z`I05DF)2;ie1F4?_s)u0^_`^KN`{mI$=?)2^i$S_BHML%X9bJALL~dpzmjm)IVNPP zR!ig(`hMWc5WEN(J{GN0;(YQjoDf(50IQ>Zz5*|JsKC|zp&)7$C>{s5)gN2x64%PwiKo)IS0ssI2 g000000Kh_i0ei>`c6nj68UO$Q07*qoM6N<$g8CWdfB*mh diff --git a/tests/integration/nano/snapshots/nanosp/test_blindsign_reject/reject_from_clear/00002.png b/tests/integration/nano/snapshots/nanosp/test_blindsign_reject/reject_from_clear/00002.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanosp/test_blindsign_reject/reject_from_clear/00003.png b/tests/integration/nano/snapshots/nanosp/test_blindsign_reject/reject_from_clear/00003.png index 3d12ba7610b993ca5747360f2eab0e6908870db0..9fdc2ea61730ebc0566813ae57d4921e60518f83 100644 GIT binary patch delta 500 zcmVF1DKvCN1PT2pF*h@c{coZRC25juP=PU68 zWD&s7ItKs%00000000000G9Y!QD_K3e)ZlD7By1B=6=@|Jtb@2`xj^5Irn#2O|n}Y zISnCr?~k8(dX4M>@?v#?q#DdDQ&lRz%3E@Aj^sgE*aH;*;eWo9VrDS+kTDTv;p&4d zJgrw%n#R)-=M)QjK;a>kT-IgTV&SSAGq9RJI^B5 z4MC00&AR4Y=gJu`q{~HKkx_cgLf-nsL>Og7cD!39*3^=90Ox9=!@$CvB)^k6kI^LA$~ zFB%Is&#L3OP|b=?yt6f>x4j>j>&EnR*Mh#felDzU3x%7f;=x>a<%M*)y7udhh1mY{ z*h86#9bJfZt#RIG{P9N{Ag$PpX~T9phT~&L`ZyjxVQ-Hsj1dr$;|X{)r+zbxo+d&jD#7WcTk{1{W??qfj-5w9I{mR`gl&UlCPH qH*g-eI|Kj#0000000000c&UHfIAo92?1xDJ0000xfW~e(67WW+&dPvrC&M(e>O6g}>NwQlU zIo-A`=X`w4%X4H8kSD7XB-LPMOjW3SD=+ctc_$A_U=L98pMUh36f=X~P40;>gR2)Z zcv-G0w5(4{J%aP{C~vk4_tN6;U;RFd^(T<<94Z63%Y-obj!%xjaiyl9DR zex#0jl{8Da_Q2MZ-mZRNE*;C)?awNw>*vb)){AT&-w%2ftFNLf$19qig3=S_v4=7f zJ76K!waj^wAvZpt0m|adnl05%$5?!9M<2)c7v7v9KWZ9sBOzN6=BC@}PTXXbEmE(N z=1S_O*k8oVz5YeoK>j{ael)F;tIq*tF60Q%z6`FMsYapG3Y0Nd7*ugl$iE^^#ckj` nZfght00000000000PtSF`}Se@6vJi+00000NkvXXu0mjf!1eH% diff --git a/tests/integration/nano/snapshots/nanosp/test_blindsign_reject/reject_from_clear/00005.png b/tests/integration/nano/snapshots/nanosp/test_blindsign_reject/reject_from_clear/00005.png index cc59349033daaad4bdeae570a7124de74d0a7374..2adfb4d839946649d3e8fc8d5a72d02a81109c90 100644 GIT binary patch delta 381 zcmbQvJcD_HN`1Vii(^Q|oVPau`I;4Y8Xo4|^xg4);*QgD9ue0UP3G7%>wk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanosp/test_blindsign_reject/reject_from_clear/00006.png b/tests/integration/nano/snapshots/nanosp/test_blindsign_reject/reject_from_clear/00006.png index 137ca9e4946dcd461fab8ca146124917077d946d..3d36b194cfc82107a670d51fb067ff4ddac0c997 100644 GIT binary patch delta 341 zcmaFI^nq!DO1-(Ki(^Q|oVPb4`I-%QTm!ei^1JbW(w^yc5nLwBTppo+F4)Gq`UYmD z8yw_efB>y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanosp/test_blindsign_too_deep/blind/00001.png b/tests/integration/nano/snapshots/nanosp/test_blindsign_too_deep/blind/00001.png index 03f8a150dd97ece2e177c23cfd2e522d3b7a056f..7c276c684f176f161d813d37bcfef97cda409b64 100644 GIT binary patch delta 864 zcmV-m1E2ix2KNS#B!50hL_t(|ob8)ScEcbHMcth4#QR?od+C6N5`7**7;qZhL61#9 z2mwMU>DRG?lu~&<&ojTC=Q$!RH+P5{?0t}LUX)Urstq6TuE8%xG%THf+13}~OSmR) zk+M+^^MsLo1`6x)dBZOQsS6+V%S!8WL)R2FYQtgOQc6VT`G16WSIT*hQ>m9x=5GR) zSzla?mxv|$rzgC!R=xl-2M_Io*-GRGt;g|$u}Ah5q7#R?Y#28}40%W4N24 zhp>21T&_gj9j@cnBoBnICrj^>*b?CMK}@#MQ!nGut`f}TYqtUv9xv|FBnX1_j2wD6 zTcJOVdu#ddLeB znpU=ZyO#uq+N7&^lE>V9_xjNC36cW3&7`XC6}ytp8K)h0LcLrO@97j#}MSmJ%Wl?@pD?1kJ3EF5{*7rDAUmSS?E(~nT?|*ZAMjWxM1&92RBrd1@vlJ2wtxR+n zJ96tYG7#e&G_Chds*dYn91{Nih)03i_YK6W;-n$3(`?vO=|;>xHi9-W2SE@7fd}ml zY`ldYRYcUhNMbo3iZ3f?Ns8d^_F8{iG7j7xW?b~N3|-Kdtpjcflz`_?cRm(#fHOdp z!&wVKDs=k<-0NSI#B|92_82=SK=kz&CK}&@&4(~fY~l2oz162p>aDrkOx)`X_&{O; qf*=TjAP9mW2!bF8f*=Tj1^fWa>JnCL5oLt{0000F1DMcqtx;{7j)z4XHqm*{bkgaN0~`RLdb zB!NJH-2QAUD5adw`@SEq`@Z)`JDLYXb!zYA$%{%UL#^Q*Ue)=@hyzO?2_^vCKlYbJs3U5bZ^<7;i2%9iTytpLtw#~|cB#+Cap&SO+UGSbYg={E+I9W{2 z7_~MB+HSpgUjd0WY_@n^z}3zY;sfob?U-kLS@CE7v)NV*ARq*JUwId_CZM^o(9#!+ z7S^?f1z(!y2`xqLge|CSac00FA#@!ihQ=D%}lKdCmLJ(PEWJ4!WRlCP)^+gH%wHAW!?ykdz zSXn#LV1KLZSVm8n1G`%?weU<_WP5p47mprNUBKd;o(Wf0P%8=30uB ziPIu=b2jx{K5^Uq1!)q~#gQFw;o0{5`<&Pyj(@(^2jur;a5?QiOCe{WnYj+5qOd(Z z9WnZ#IeJf0wcifcC#|iuPm&Vx8-Uo50}h>_Vbi1=F?!ob+N2MXBuSD8+8x+<3*D*{ zQS%~+<$Niztehn&g4L}Z{bk8GaC;bW(bFkCJ+|3jB+5^6jbU>0MNs=T< jk|arzBuSDaNiu<7a~cW1+6^~I00000NkvXXu0mjfO5&Kf diff --git a/tests/integration/nano/snapshots/nanosp/test_blindsign_too_deep/clear/00000.png b/tests/integration/nano/snapshots/nanosp/test_blindsign_too_deep/clear/00000.png index df6e01718ac7db8656876556198e373fae925b3f..19e71920ed32b78f7071abd026c08ba6c0c11c88 100644 GIT binary patch delta 68 zcmX@aa)4!m3M2bQ)hCSRuV>g!DfzbV-BE>QJHy&r1TQ}p-p0s)02LgTe~DWM4fpywGN delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanosp/test_blindsign_too_deep/clear/00001.png b/tests/integration/nano/snapshots/nanosp/test_blindsign_too_deep/clear/00001.png index ace2004671826013010d1896143f441a40ceb2ed..907033ad79701b4cd53b67fd742f1a5f4fe7cf9d 100644 GIT binary patch delta 488 zcmVF1DK+!alov{BUc`yC&3?)2d0Rq|6d%hYQ zgaa|u!mk$q00000005xF@hu*#mfU-39qxQ>D%lqp`#zg{!MD?YY{MPL5kg2m#=qn7 zSSFqos-$JgXs!7AGO4qPR-9I-dlBw{a$aiv^s2S01?2deT7Q}#^1(?TlPJToJLau<-lLkQW#qO8&zR#VH1=K!2~$G|tNInODmx(KJITE~0CX0@`lz1mz^1^@tH zk3ESz_kUIWp98jW@9V0{b3j*mK%s5*A_JwA~6 zl2c$~sWfHv4SzG=KcbSE&7{W&uAdp?ty^0M; zwlF9>c)b7s0000000000po8O^c(Yn_@1u2a=Vw!qy};P}Y>t9&(0^>r9mf$uNH62> zct6&Or9zXmPHC-WUtcHXbkVZYGIcM65m3%ctxvDos#-y|uYYN!F(TibDud4q#U>okSu2NYCbjbr6TIyIS&$YY@v1 z`I05DF)2;ie1F4?_s)u0^_`^KN`{mI$=?)2^i$S_BHML%X9bJALL~dpzmjm)IVNPP zR!ig(`hMWc5WEN(J{GN0;(YQjoDf(50IQ>Zz5*|JsKC|zp&)7$C>{s5)gN2x64%PwiKo)IS0ssI2 g000000Kh_i0ei>`c6nj68UO$Q07*qoM6N<$g8CWdfB*mh diff --git a/tests/integration/nano/snapshots/nanosp/test_blindsign_too_deep/clear/00002.png b/tests/integration/nano/snapshots/nanosp/test_blindsign_too_deep/clear/00002.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanosp/test_blindsign_too_deep/clear/00003.png b/tests/integration/nano/snapshots/nanosp/test_blindsign_too_deep/clear/00003.png index 9c23fc6e60ff6a5ca80c479990a02422c9fd7431..2a7be62ae36fbfb734f2c24258bf119ed42b0ad9 100644 GIT binary patch delta 454 zcmV;%0XhEZ1L*^hEq_sxgCGomVY;(7;r>VBF8knYCk=^$5*7P@Ppwk|1_5E35&!@I z00000000002=R&tT1t^$bIu1t9f@#rKXIXlWG(0X;OwWAeow1O4vTkAODQ?$_hVlF zMvegaWAy_`b(k4bRVu&AB3?U>0ZRUtK9gc*(7VYc5r1ZI^+5)&>s6K3?P+P} z5P>6L)zZFcU-JOou&h8xxa zbra3j-?^V!&LM`kKm0JxT=eFB-5UPfgdfJ4+duQ-cR!kD4XFD}9@BU2hrPGSOV$8f wEaYDi?Ltp-raLAA0000000000002D8A18`QCMP$4G5`Po07*qoM6N<$g6BfiqyPW_ delta 454 zcmV;%0XhEZ1L*^hEq`s2gCGomVY;(7;r>VBF8jmTP8t$LC5ZNYezi^s7(_m%DFFZg z0000000000fDo^UprsV~HRpUX)R_pA`-uzPC2Kk72WLN}^gFC3IV|2eEv4j~-;a6y z8#w~xkJS$()nR5#RjK?ci+JrklLsYm1St7m`b>(MLGLD)M1PpU)dv~8u2)rBx2L6@ zT?CGRm77$&to3SuS+$DqjVIaV5ii5Q4v@|D9;>>D%v$>mulL!^v>tP@`kBu373> zoby3;88itmkM`zk)SReW)YGO}Z%a&B(5^Qxc2Vo>#m7$g zj@j?H>mI{R@_*#x_etDT(+2~nBwk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanosp/test_blindsign_too_large/clear/00000.png b/tests/integration/nano/snapshots/nanosp/test_blindsign_too_large/clear/00000.png index df6e01718ac7db8656876556198e373fae925b3f..19e71920ed32b78f7071abd026c08ba6c0c11c88 100644 GIT binary patch delta 68 zcmX@aa)4!m3M2bQ)hCSRuV>g!DfzbV-BE>QJHy&r1TQ}p-p0s)02LgTe~DWM4fpywGN delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanosp/test_blindsign_too_large/clear/00001.png b/tests/integration/nano/snapshots/nanosp/test_blindsign_too_large/clear/00001.png index ace2004671826013010d1896143f441a40ceb2ed..907033ad79701b4cd53b67fd742f1a5f4fe7cf9d 100644 GIT binary patch delta 488 zcmVF1DK+!alov{BUc`yC&3?)2d0Rq|6d%hYQ zgaa|u!mk$q00000005xF@hu*#mfU-39qxQ>D%lqp`#zg{!MD?YY{MPL5kg2m#=qn7 zSSFqos-$JgXs!7AGO4qPR-9I-dlBw{a$aiv^s2S01?2deT7Q}#^1(?TlPJToJLau<-lLkQW#qO8&zR#VH1=K!2~$G|tNInODmx(KJITE~0CX0@`lz1mz^1^@tH zk3ESz_kUIWp98jW@9V0{b3j*mK%s5*A_JwA~6 zl2c$~sWfHv4SzG=KcbSE&7{W&uAdp?ty^0M; zwlF9>c)b7s0000000000po8O^c(Yn_@1u2a=Vw!qy};P}Y>t9&(0^>r9mf$uNH62> zct6&Or9zXmPHC-WUtcHXbkVZYGIcM65m3%ctxvDos#-y|uYYN!F(TibDud4q#U>okSu2NYCbjbr6TIyIS&$YY@v1 z`I05DF)2;ie1F4?_s)u0^_`^KN`{mI$=?)2^i$S_BHML%X9bJALL~dpzmjm)IVNPP zR!ig(`hMWc5WEN(J{GN0;(YQjoDf(50IQ>Zz5*|JsKC|zp&)7$C>{s5)gN2x64%PwiKo)IS0ssI2 g000000Kh_i0ei>`c6nj68UO$Q07*qoM6N<$g8CWdfB*mh diff --git a/tests/integration/nano/snapshots/nanosp/test_blindsign_too_large/clear/00002.png b/tests/integration/nano/snapshots/nanosp/test_blindsign_too_large/clear/00002.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanosp/test_blindsign_too_large/clear/00003.png b/tests/integration/nano/snapshots/nanosp/test_blindsign_too_large/clear/00003.png index 3d12ba7610b993ca5747360f2eab0e6908870db0..9fdc2ea61730ebc0566813ae57d4921e60518f83 100644 GIT binary patch delta 500 zcmVF1DKvCN1PT2pF*h@c{coZRC25juP=PU68 zWD&s7ItKs%00000000000G9Y!QD_K3e)ZlD7By1B=6=@|Jtb@2`xj^5Irn#2O|n}Y zISnCr?~k8(dX4M>@?v#?q#DdDQ&lRz%3E@Aj^sgE*aH;*;eWo9VrDS+kTDTv;p&4d zJgrw%n#R)-=M)QjK;a>kT-IgTV&SSAGq9RJI^B5 z4MC00&AR4Y=gJu`q{~HKkx_cgLf-nsL>Og7cD!39*3^=90Ox9=!@$CvB)^k6kI^LA$~ zFB%Is&#L3OP|b=?yt6f>x4j>j>&EnR*Mh#felDzU3x%7f;=x>a<%M*)y7udhh1mY{ z*h86#9bJfZt#RIG{P9N{Ag$PpX~T9phT~&L`ZyjxVQ-Hsj1dr$;|X{)r+zbxo+d&jD#7WcTk{1{W??qfj-5w9I{mR`gl&UlCPH qH*g-eI|Kj#0000000000c&UHfIAo92?1xDJ0000xfW~e(67WW+&dPvrC&M(e>O6g}>NwQlU zIo-A`=X`w4%X4H8kSD7XB-LPMOjW3SD=+ctc_$A_U=L98pMUh36f=X~P40;>gR2)Z zcv-G0w5(4{J%aP{C~vk4_tN6;U;RFd^(T<<94Z63%Y-obj!%xjaiyl9DR zex#0jl{8Da_Q2MZ-mZRNE*;C)?awNw>*vb)){AT&-w%2ftFNLf$19qig3=S_v4=7f zJ76K!waj^wAvZpt0m|adnl05%$5?!9M<2)c7v7v9KWZ9sBOzN6=BC@}PTXXbEmE(N z=1S_O*k8oVz5YeoK>j{ael)F;tIq*tF60Q%z6`FMsYapG3Y0Nd7*ugl$iE^^#ckj` nZfght00000000000PtSF`}Se@6vJi+00000NkvXXu0mjf!1eH% diff --git a/tests/integration/nano/snapshots/nanosp/test_blindsign_too_large/clear/00005.png b/tests/integration/nano/snapshots/nanosp/test_blindsign_too_large/clear/00005.png index cc59349033daaad4bdeae570a7124de74d0a7374..2adfb4d839946649d3e8fc8d5a72d02a81109c90 100644 GIT binary patch delta 381 zcmbQvJcD_HN`1Vii(^Q|oVPau`I;4Y8Xo4|^xg4);*QgD9ue0UP3G7%>wk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanosp/test_ensure_always_clearsign/00002.png b/tests/integration/nano/snapshots/nanosp/test_ensure_always_clearsign/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 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 Rywv~z002ovPDHLkV1oRNMEw8& diff --git a/tests/integration/nano/snapshots/nanosp/test_ensure_always_clearsign/00007.png b/tests/integration/nano/snapshots/nanosp/test_ensure_always_clearsign/00007.png index 85234247e808c9a4eed986210646699a8fad3053..2b33e84bd934985581cc1e8b3a0342a628c6b7be 100644 GIT binary patch delta 333 zcmaFL^nz)EO1-|Pi(^Q|oVPck`C1fs90KQ@@w@SV(w);aGX$2cZQyU2RlTo9A;cjg z=1}mpQs3i-$By4JJuD&N5PL89d)V!u;^d8WzgQE(cE50%o7O(BDmq$o%^!>XO6!(O zed7AsTsiYl@KpxC{p&r;-!HHEU6xeWDR#NAr*OUS_TXYw!R4*>f>t62dcR22e|LKM zBu3bMzR~XAGsV|<&Hq~VOVFIn^=ej|+#ZiJ&HGhP9F=Hk^EnpdkS4L`l$^k?en->e z9^T(N4bJF($+%ak+K^RY#WR!jtiQV1!wUWL&UK7&6>qX9Z)Pmm=*q~z_IXpZg@^Om zddGua&ZRRyEUL+r`1sjR-Ys1J+?hzJUv@kP5`f6g?BSuh-Q^c`*ch;b2ey~}=>5DQpQi^%4^FN?^G zpg?_0S9!nR@i>HVS=>B_UeRkUd+N8%*0fw%t&yhDi!DF$N{t?n{OOxx#k7{k%aWu# zwh$Z4uUb|pUQ!wT_}#9^yZ8D1bc+m@_nAbD$03BZew=^i!+)7%p7ixvGMmwVD<9_9 zS~iUw3$g2}Vs~G2cQxW`J^y?rCpu+S>n5FeM)D|pOhH48!L+rRDNZ0a8M%!$U}`@G zo7;>yYwt~?xProB#j-07*qoM6N<$f}g;kvH$=8 diff --git a/tests/integration/nano/snapshots/nanosp/test_ensure_always_clearsign/00008.png b/tests/integration/nano/snapshots/nanosp/test_ensure_always_clearsign/00008.png index 59fce75cd1321a13bc8840b9bc6f48f87485d7c2..1fcdee14dce21c819b5e211dbbdf546034789b00 100644 GIT binary patch delta 520 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 mm%%z`Q*ISO@3O}XKemod9db~N@ZA6 zAD@2Ldi%9eWh}XC7++cyKPa94=#P-dm7coBn@80{)Q`$<@MmD#eS>99cs+x~;a^hO zVh_I_-u7{q_x5RKQ{TF^+TY&$?aha4H_z@kxa)W7zK#1FuLpbYcBrcri{IF+u5k8q zTwQtkq3{2BKMFtK)#m1!zid&^eMaVQ#Uh*Lr>H;3QM&2RrMhDGI=&T7cmMyjewg3* k@ZT1emkCS^Siyq@>dj}5r>brfy$zE0boFyt=akR{0Hvd!x&QzG diff --git a/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00008.png b/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00008.png index f25662e2c807a31da6e5af8d90a1d9b976484253..e2e0638c6c0d805bbb9aad583c498b6c213f48b7 100644 GIT binary patch delta 706 zcmV;z0zLiM1=F1DMcqzz;{7kld+7&LO7y%KV&l#|UojSv z5Kj?*ZTE2;hbYtmpy7taJ(OD7OjCeRazO*{4L=m*n37@pwBHQxrm5$oP#;7q)X z#7=fiGMNddfE`;#{op95Yp$ncZej^W4QUj9p^z*=_cANK$fdu&$~M7=6nMGWHv@3< zMY0_T=A4*tNN5^cTAmQHEXO+=kQL(!&9_=u*9ENy`F5Py#yPOp5TsT&Y05t9 z$gyQD4>~M8#-yFCCDXcb7n=Tf%-MuntLaB=W_A5J+qpAO9PSe*D6?+x>8h7zdR3s? z(4f9}+kXbp>{w?1AuQ@x{3~+N&o-=07*qoM6N<$f{NWqwg3PC delta 704 zcmV;x0zduQ1=t0UB!8btL_t(|ob8%fa>O7EM4i;!#P>gv?~)H!2qTGBgBdTWeqUoO zBq3HY{#veM+cs0OuIpa7t}Ce0diziCarv}4-XbsDrS=>`e_meb+VN$^cApah6bKJxqMgB5@os(6@$Z(D_oY5Yhw zhj*`QhS^M*f$ZLW)E^uRW#tW(OdMro)R^XU-6rHq(6vknaeC?R@3BMp!NlKecFzFb ziCwZD4&j`bc2qb#=kUnwRZGqTb_Rs&-SOdBLN-g`7=PY@(4}5KpMJw1L!JVUsG2w_ zQ|`V8)Zlgep**Pr(j79DF~UNKJF~sB5GgUQFnsHUeO=NzNVaiui__p%Lzr6K;4FW@ z5{?(p3_2`5$)ug_CDXdN3qyZe%-Mu%tLaB=VRipG+t`^0hkNXf&({T?uC{W_R+Xd! zNY{PPYkya866aHuFn?h@X&D8!yxpY{>olbb8{(ZYBpu+*m*})wOKM}}eO=$dW7%e_ z738H5)>%rJW=_ik{7pK8S;xCtK5eg?hwp#EbzxcvbD0000bJ+D)JGH*ZhW`FCKQq+d4g)Nv? zBAu}E^3Nrf8r2EwQOENw(0;9aX26lLug=PqHF{{Nk;WSufz5*-_CtSa-D)&+%+i;i z2!_q7XTtjUYYE!c2TlX+Y(800cGaCd;7aR*mWR+4xs|gtiCR*#ZY`Fv<3!yplGwS( z0{{R3pvSBJp&N9&wsbU^Gc0BiQa^~;TLDNt!-||q4u0)cX5~1S4$VZ!IhwMPddp7j z*0ZAoJ;;QT<+7IBpjm$;Ht9!o-fgHaF)os*#z!c%w^TMZilsp2*rzf&DMvl?`Qe;& z9Jz+x`eu~P7 zkfbx$`Zd~HdhVb|ut^I#3mbsbb3Ma3{~|WwqKI!y*ZB0mahrc#cV&&jxt&>UPc=ye z3fb!cUxL79&;bB|gS=!>FpFS2yDB6EJw&pLuDsE8F4acsUHoVxzglO~v9xDVoSMLq zLl(8O%Z)G+^IU6mpH41aMAft$XkWO;0vZo#NB}h%(Scyf3HrJGAKPt6N<2f-kW8YQc>2eB5v-Kg1 rz*(RL9VVKF-V4S)ld%FA7eEGo@n9pYG$gmcBmt+9B_V&(m?%O9gvE1TS2FMSn_iYu*1bK!Ng`~>*1a`{^z+2e zZ;9a`Y7D>9Xxq}D0o6`f3!ORI(u}E%>VdYXPN)HGk)GG7KAE>4da-}>ODXEW)y5V~ zYmrV^d->-QTaD_3&8Xw~7U;ZIJ{fRi?W-J(9J5JQ6MG`wV zc>n+a0Q7j(KlB0JK3h7PtQi)o2&o@L?5zN#o?%7KBnQ8DtFm&OONVA5|OTA>L zcI&sJ1U<-tlGU=7+n|40BsS?sb>1DQFEK7ssK!?)wYO9@wu+@d=Gdn)nv|oSd44!2 z9Y?OAm%dpfV^kZ}o@JrDl;=Cgezf<|V0>4f3{b_=2=tkuK0Jn;tfQvUDcY!7H<+ab z4M{q4qhF)FW#$fw1e>&=v#ao`x+`lH&OMpc@l=ac zppd;E@GS^z1`_}PILJ$F4HgpY;jU^4zPzOh6@EyUA#Ze@OSRFu5kK0G!w;gtO&VEH%IeS*T35e{BRs_?k+;s0V^D*M-?(`W*sM>< z^_Z$kJxB7=C*YtuNGakUq?4Sh>=^`e3sS2$)?%?P&#}Im^6ZDCj%mE4re^HDO1xao zA|qiRvI(38TF_wz%Fr9Z+6Mpt0000000000000000018V000000002U;13^%Bdl=# Rywv~z002ovPDHLkV1oRNMEw8& diff --git a/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00011.png b/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00011.png index ed2a0607c82b008d4b7f362a06ba7c6313a17a0a..547f9c9764395067db121f2e667717a63ca828fb 100644 GIT binary patch delta 393 zcmZ3$yqI}{N`026i(^Q|oVT~4`I;33S`%}234hzK^8FIKuoEMzzJ<)EdjDHhGmV&% zOAGTOubb*rzmK=hH{?0Y@aoaDs&5-~-Sh6OnP0~!!oT~8bm=auPu}^~;T+m=efFMq z{O%q6Gu}(&7jFnRZ8*JuyGH)K^B=GGd#_vnq$lxa_5SM}x3lUCRXoG^jY_l{*q>Vd zd)IpDNMp4>yC+vSo?xhbV6Ut!4AHa{?^Q2V) z8Nt!|3cW1LV#_hcZuR;$jH+Ee!yTT^o7ZjCgpy;$DirwAk>}uGsURU4QhC!{W^^i`yBD)lRrXYzJguP^@IDtGQay$2c&^`vc zX@+{&00000004mJ6aGsw@UP@p(jP+@zKR%3 zI{{rqKk5F1Q80CNliZM=*dPdWhF jQ_uv2(@=6y0D!hH8-eO2!f0!P00000NkvXXu0mjfNk+B7 diff --git a/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00012.png b/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_potential_empty_screen/00012.png index 7508cbd76a7402f6508b9be98cdbde33c4b316ad..401f9ccfdd10fd973e44fda774a6f7edef125aaf 100644 GIT binary patch delta 308 zcmV-40n7f}0^S0UB!4AIL_t(|obB0L4ul{KKv6Wa6ZXF(_c9+Qgeg@(1u1jSmrtlX zo4B}MwrvZ?-urI#s$sksKwjKZ&lX!!a^Yj`vkq(#W+c zYTr_uyUzz^g=xK?uHwc^QI#5@1#c4L;AaUk(Fd*|lTjCt5jrok2e|fqkj*i|l6@fz zbqlS{JMRRL4KEEtW-lZ2-QFHed!_cm*3*?3qZO`~U9p7lYEZV-L2kV7Y>zF( z2K8C#0ohZG(a&FPf$rXAe|L)v((4ov<8lb0)Q{V$E~m&`^nZ0JnQHWV=`w#x*)(!4 z#G$jY-QDNvEaGFmtuA86Ls?n9q!X_Yx5Cd5cb z#&`&PbNv-I2n^Q+@I3?#!0|McIVh7c0Tvhl_&Z-Q$iy$n&pF@#00004I-2aklFZ0o7G87jP6(6Z^zp9O* zLF92w|D+{&zu(vIob#GV#Wn1jy#Z8NjxuM6y%$6c{J~BOY~)%>&RP6@wOmW0_KWAq z-g3Pio%d>C>+yKkkJmxx8Nf~aUV7Jplq5EMRD188LbH(-J7 zQ+0?|$$-keT120QjiqkYmU&=%@G3nx9GM_}ZXs^!QSZeJ{lf*V+=G%6VC$*2&__o9 z(7&*nP#mIg zcA^Kj@O`2jF4OsGq%(9S8lXe0(%C*c5^dwF z(tBEPCx0$z5W3;-!n#82Ky*6_bTZw0S>J$GkEYb0CDyD@noIwVfg;DJgeV>UC%`xU zi1$r1W^Wznb!kzL0gl%rcGhg(8csv=3Fu?J9mN`nJmaL*YYd#F+spOC(fSs%W;(Vn zAlcK<@7sgm)B=G(z#r9no9@o|6z_i&`K)twC4YnQ$vAvsAvPZ6s-o<39UF438z8a> z3X4mr$0o|5Dr%)F#gyOPXu;?SDA{1&$5<9oD;YG==8TO-+?x&E#h^Lj-W#xsL36}| zE@aL`!wKlH9Sp)HhRZH$C4+{e7@?~)el1S(ADY z(|`IbX!cFnywB6z<2mDHjc~4n*+&neA?ubq5BNa_tu1ibdOg9~Q?Ko>{w@e#ZwtAG z1)ZJl_O+W0T#%xs+2q=Rw*nhBKqnGfMcLi1m*x5f+sBb{@o#u2W?te+Mmwxor8eW3pE5rRti~^#f zT+P=t1^0dD&ncxjN=X}5X*ZyBmZQuOV$TBUfp1)C!W_w_q?E|dxg?uZ&R@Kq^d-4> zrQTcu?D6R9TX(Q~U*(t4-p}g*Ybi_cucbG$1k%xA0Ae*h-T{n8!e ztOUT$%_U?^!-ZV6YRNc&F?ex5Y>rgmdLKeOs9W_5O!T)9G;<8NAOP&CmXtp!VE(}05_3OHTX~qT7lCYrX>UeG##wE!U1I#ijCu%U>1RF$fdYST|HWG zTT)t8pkSVW;hS(na<_j@?r7dgr=a@}rY2+|V3w?Kj4&`0=D=lfa)`|3)+CT@B5-zO z1lRC=q#Sa?s0z`z0z*3h9CpvGjRB3UsqAB$E3_e~Gk-1*-3gL-tAlHnO9ZU5l3|^L z-W8yS>?V%3Bo84<2bt>Qkr2Y>8d`1VlZkv-9ICDpwo{Ox_v{(lIb~)251l~RMu<9L|eaA za!n0R;(vlVAy52On3srch~_|ngG}>S)(5~E(S-byW6j#6xzulHNOF9_7A3=f1^Dhi zTv`O_>eE%cJ2bHUqbbszo%H{(TvHo4IDoU?w+by@{U64#Z z-^HIjIr^8BuM{=YmE@6MU#NlGyP(_hs-Q>IOa_gdbIL*`&SpbbF=&oBdjM83XpVT$ zh0LBXtbm5Og99SRa4EG{w-#Rp4YvY>u2A@~*e!-U3*r4hAP{hb;cuz{UiX5ez=hA# zdVd;T^G`veZ_36!PjlbT0WYhBb0!QPJ&+Swp1I?IA7qrd1vXpGCqVhtI`?P43&P!7 zLayP2PEU9H&YJ~Xkl?1#Hx#5 diff --git a/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_press_right_works_across_apdu_recieves/00002.png b/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_press_right_works_across_apdu_recieves/00002.png index 903a71c2292e7bb132237f2e841a4ed4175191e8..986f7dda9efb2800674e67ee949cda78fe5112d7 100644 GIT binary patch delta 945 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 delta 1116 zcmV-i1f%=#2=NGzB!4(bL_t(|ob6j#mg67{bmz@YeE%c)F7uJsjG~Pa2#hn-R~myT zBodj(7bu?=$OMjRVX?&;$Lx%LgTqu>cH(RORHofjUCX z^i?@e{#JX({VP`zqlB9p7yvn>>YAlW5o_+R23nbFsIA;Nm?CS*tNz7aMJxb#gjI@F zeP+SCVsZWTDOOW=gLilpjb{K}ALo=cb2|kF+MH6dHh(vKms7FO8SqB`an~8Y$xE;| z0BmZ=#n^DNF(XlrfL;4)9j#VY1ELZlU4Jc}DCBJ|=w|%fO&}TI#9d`ey}tM@x#94mkVj}~E^Atkj>tHzb4Yr2V}C6XErkqjWR>>;$TE5azGfgdz)GMu zHa3Q#F2>0lmds~Za^fT^{v-NlXSG4SSIzd=sdpp$a1@2A5l4`ya`0L8S9W+htPl@$R2orBENxB|@+2i>EYUPH%Dji(ia?UTnNV{xl?h1i z!C%HLt|x=^*8MUr@u16vwI^?EY|MvxX@64hQ;xL2Dn~^Khg)+)pLybianu_zJmc=a zXIK^nZO~5A+w_#b*Nd3Qd?jezY9{kY4*N)iA87} znjGe@2B~~FE~D`qG`B`=LDeZ!pbpZx`j*0Js|}gjA=QMU@zX@mtvDJ4`jo@ts8vzT z5(+Jh`ZRF@`nCAPvCKOIoV^8Hq^vo=Zfg;98gJCPxh?ZRV(_c|aB-X+j@J216skXzF!xIBMerO>j!NVZ)`Yy#`zt4myMa&0od3m!QFCq z6@C(9vCU7z5}bJbs5A&r!{@;)Cr|!enSxt-q?%LX1PKR*)^0m<$n1NKld)5H`tG zmlz0U;Iw=}A73VkvD(&l^Nf)ST;bXfamUy#?yPfO@_%;#KSFW1xtEZT z_7UrKV`F1uW8@X3aIUCIyKvn8p#>%YU^tjCddUbz@^=;|fs8IIWJ=YEJC~ z4TOEu)Nx&eEE^FEQfY`r(O|@H7NQiGcskk48aM>8D%9@kLOMq!Yr4t`u|z%j-V*d8 zSXzjI_=e&L1{460`%QdiBMvb>br}hXNRD!uF4KTW#sLN3J67VnS&Xpm#bn&nlc4;} zaDS<^kj9*O^=E)R0dX0UZs3j<6C)8-yXtYt;KV-<uT^2F z=Fi5qYkzSUgQ7xHt}Mi~!m>(QE|waxlV@YD5K$qS$xjn=ZpDX-?@Wx>9iNL>0Nf93 z`n^BC8}9JJpezMxuOv5YOn)I`2Sek|a=9+CT}YNQOu|K7YyEwF4&k`alrLn;D%^0& c8yf@o2MdPH(zvsRO8@`>07*qoM6N<$f|f<$`Tzg` delta 1005 zcmVF1Dq?z8t_dinZ(vQqgqUTCHV#n-9$0Z;M z1VUQ-r!2wq`K-^!aja1)+VCmu0kn%XQ05G=*MhhLzr53eJyK0MjzfH|E!CuU|MK&M zx769SdTR@@XT)6Jro)%_(f%`g_3Js{TG|%=YrC3Ng1FFREPrnyLb&j$E5J9|zXKNR z{dPITT}i+fx3-8ejW=rD+?IJDK6q$9oE%4k^6o<6TF6#s}i|{H6b5d{nO!w+3LgZvN03e0UH}baJSe! z3O|W4T7p4td4Ha$XnBrE4{&K3qaaq!q|qHkCPl2Zvlk-=8=3aBRVdyW|H&v&4b@tU zT@oYaf&CF<44{{Ae-7Ipqw30v5B8c8CPTAoeX33iF%Gd>L5^5rGDIvPK}lpl*d$k7 zVjviS)A9vSA!K(5M7a2+{{p zk>JIOQh%9)&rw}31nK|;WZ#7jM~|ZDD3JgUi5i8N0}#jZsM13=gcK2og%uz2*>WlN zPWWgr$sk*M$d{n0n#@D_ZdH431>);-_m}e8dxB-Sy8~WuH!|{UOVcp;61KrDL#$8p zYe)((FHKm7dFMAFd7v?C($Fy>NPNN6kI-2jYkxz}>Lb5yY;0_t0V)}%)v-KV&`3IC ztjp_Zii(*g;bK7^4bdnX>@J!QoB|`aA4sc#LlBcf?XE7Qb5yc1uQ6FrqL}<_{dpcN zEyNIfLuC{JGO?+b`4l%xS>2Zn3jB=SS&45S_0dl|>Y{q$0=%n07l5taSg5h_D z%YUPVG^WiPdJ z!N$hM#sz>!f3br&T;o{U{%+4G@CzW?c`m@KN%K&e6PdCKH=Odu bMhE@?$@R_Bdmf^`00000NkvXXu0mjfPw?NE diff --git a/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_press_right_works_across_apdu_recieves/00005.png b/tests/integration/nano/snapshots/nanosp/test_nanosp_regression_press_right_works_across_apdu_recieves/00005.png index 84d06ce5f179f4bb3c437bd14486d302681ba1fe..7aadda9bf9fd21a4668fcee0a2d57fa05eeab68f 100644 GIT binary patch delta 1011 zcmVZ960G;KibB5Y?f%U*I+9+U+6jRRgWPcY)F$u0;`aanu zWp;4fB0=_e%=IxH>fR6hW48Cpdq78l68aQ+vuI!)jrvjvQh!2~PxSy@Wd8yXu=b%l z*j0%@om(XAo<@aIv#MksPz*lOgUxXQ9M2Hapl&rUw9p@0P-G0GO#s!pE6_iwaX#ud?#4>B!vM~sXZ2=xI7`-cr%!NtNqq#@7Q027hndMgJe9_Y;XkVhXyq*TQg7 zdW*^xlCH_f7bgRE(gk@p#+6Q5H1LGsms3qpj~0Z!yB7pB+INPftbwQt3JJwJ=1 zPbJ$1$vYo14jr1R?qkWdNo1tuh-4Xbgb-BVLq&w`n9?GpZyS8n=dUWUUHQJmRaC-A27Zfu3}LTX&h{Za}tJ5s|^!4dD0_D#x&_%a3>6{ga?^!LJ=u1 z3YBJ*fU}&}SQ=_@K@0_;=?jtj(Pf|~2W(AZEvZJ74THYq9nAfV9{l z15jOt9n{Ttos}#l0hLPy5>1B2+-NC7B@3lybO>r2t0AZijls^=&#-Ol9DpXgcB|8sTVfYH%kBj002ovPDHLkV1moo)I9(I delta 1009 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 Rywv~z002ovPDHLkV1oRNMEw8& diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_added_at_the_end/00007.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_added_at_the_end/00007.png index dd996e27318e3c2417178f9a8a22fafeca662e43..364af7467f57ecc825c32581510428e33a9898a9 100644 GIT binary patch delta 330 zcmaFD^pt6WO1+M!i(^Q|oVPcl`I;3390GIhaQ=>;RQ-~jbK&6=&aQHMpL2^QrsxRl zp1ED-_`}oJZe9NsdiaHeL!3p>d9&zCMTuL>Zm}*f+kJGZ)Lz+-tDpb+l-T<8LyyJ# zXb$O~e4f`T?@qB5{HzT9_@VC7bb0lA`WF}LM`xdByC}QLxYNR?K4pbg1N%|Sd*_`p zpG1joEnj)~?>XkQpYyj`|LNeKyGYCQ5XU{0d(HDTGrDAEG|la?YV4V?=ZsXst>+56 zkADdM)@pD?bxYa(O7(`Eib9DZag%)&$;q$WD`h^38+1z^k1~y9S{AX0;ZL*avc)H_ zHGF;ZQ>)qX_n8M=r{DCksoFU|QT035q`AUa=z=8Yi=0RKj%q*8i!)#c2b%V6;6GZh Sv0ra8NP(xTpUXO@geCxF8kG?M delta 329 zcmV-P0k;0-0^|aaB!4SOL_t(|obB05l7k==06>$O~Ux-adO%C@tXICTM*5l7-wxd(8YF%UykH{{Ck16ODIT+R+W+o?)i)3zP4H(+z zVD&L0&e~hMF}Z|peeT>Hy~cH>!9&W?>HFk*P<{t+vYRE~9)D$lf8f3gZ|Y`i!0&mj zSGkzEHw|OK`a;}R_9Aa#<6W47I+K9TB%rhWi`exod>tDs!TTc?9lLqhrP``?db{pjpG zrn-!U0To35*yKO|c_nY(;}iDl3pp15@@+0yKj(GZ2jO)Qi!0;h?@JvK{bu>h_dw;m zC>H&`#}l@1wo&cf>|r+HxasUAEeqn77VM}Oo1S&_%OUo&8v|3VEAJn(oc*S;Wc7xV z>D?PkR$Jt~$Y$Ht9=o-3_wDs}M9Xa%!wV&h zZNFN6;N2?O)%sV(gcCHDR}1D{YwOw0a+TZU?3Pm&UgqzdJ2R!)ms}J0cxC>UPkbi= z&zTwpiY` z=a&X?hINib6R_{Q6~TjT+w|?MFKJ^D5d(eRvMELg+EprtTYqt_R!y&bupApz_LKMR zT=NkRv|E*pT&>31t?Im^ZyER=UaH-=yW`52;-M$tNO-$y>D@$PIrG?B`mKRa6_oBz zxQC-$E#b#u_8qXgYUk=}waElH%H>>yyR|`xmY{Zlu9;OCN4bpqP-42qDXDctBK4=t zyaOc4Qgi$=J%5^yR^Kw1RI{o_FhgBseK?%y+-LJGuyUNfN|MpP{p(LYa1Y_}J)y|^p@I^cNo_f`c)6F%%jny_b z#K!54X&)l`RkP1J-<@^o!zlMRVj6KpwtsqTbztg!DfzbV-BE>QJHy&r1TQ}p-p0s)02LgTe~DWM4fpywGN delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_added_at_the_end/00011.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_added_at_the_end/00011.png index ace2004671826013010d1896143f441a40ceb2ed..907033ad79701b4cd53b67fd742f1a5f4fe7cf9d 100644 GIT binary patch delta 488 zcmVF1DK+!alov{BUc`yC&3?)2d0Rq|6d%hYQ zgaa|u!mk$q00000005xF@hu*#mfU-39qxQ>D%lqp`#zg{!MD?YY{MPL5kg2m#=qn7 zSSFqos-$JgXs!7AGO4qPR-9I-dlBw{a$aiv^s2S01?2deT7Q}#^1(?TlPJToJLau<-lLkQW#qO8&zR#VH1=K!2~$G|tNInODmx(KJITE~0CX0@`lz1mz^1^@tH zk3ESz_kUIWp98jW@9V0{b3j*mK%s5*A_JwA~6 zl2c$~sWfHv4SzG=KcbSE&7{W&uAdp?ty^0M; zwlF9>c)b7s0000000000po8O^c(Yn_@1u2a=Vw!qy};P}Y>t9&(0^>r9mf$uNH62> zct6&Or9zXmPHC-WUtcHXbkVZYGIcM65m3%ctxvDos#-y|uYYN!F(TibDud4q#U>okSu2NYCbjbr6TIyIS&$YY@v1 z`I05DF)2;ie1F4?_s)u0^_`^KN`{mI$=?)2^i$S_BHML%X9bJALL~dpzmjm)IVNPP zR!ig(`hMWc5WEN(J{GN0;(YQjoDf(50IQ>Zz5*|JsKC|zp&)7$C>{s5)gN2x64%PwiKo)IS0ssI2 g000000Kh_i0ei>`c6nj68UO$Q07*qoM6N<$g8CWdfB*mh diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_added_at_the_end/00012.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_added_at_the_end/00012.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_added_at_the_end/00013.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_added_at_the_end/00013.png index 5b07875e974547eef0916480f880e805cfa2eda1..f356dcbd7255d12f79d30a98fdae0fab5fe8ae21 100644 GIT binary patch delta 489 zcmVF1DKvCN1O}PJ&xJwtFWE3G`z<{ay-zssjAR>Sv4FLcE z000000000008H^UBWOxVzKtK=Dz2J9+I^f&<40<2(NPmPGT)mLN^LkaKd3$Qw zImE;fQ23CFm$gw1FsoMaz40Wwe8yxru>)jty{}b%i_BX62QK&7&a23}DX3E4s%zfW z7w3AACW{u~#d0?Z@FjaOj>PbP@P)S$2T(Drl+8$nHNpebN1n5 zC;S()KXBK*hJTynod@s3xT&TO7EnpnhjBHtkau7puXq>DX!3+WUC-Miub8)Z!R7UG zd%Tin{K~Lig!2~E6fn2!mHT*EzA4V}x?D@m*+aQiP1Uu=4CY4c#&yhmPIwG6v7H;S zrmYPMIy)fGyV)fj{glu9^29iw{mpe^xYO#och19(B4P?_-K1G%@nlu5u6yzvd>Ci8 zqqT9B<>e0y3rwnR(={Ofb*%98DgRn{_Puh_XIA&@M~44m%6~<8c00G(tvvt$00000 f00000fM@vyWRj7ONLGhA00000NkvXXu0mjf^4ad` delta 489 zcmeBX>1LUrQ$H)Ps6~OtA#=I;!+-9d^!^rHJK4tK*x~)QI{sCXkg%sho)-fu5I7Xx zav}Hjlgx9K0arR&j{fWuwmq6{`JBDle(9Iu*=m-$eDm{ePb;>I`&`sBhp}jbltLh* zajMqRPa*dn-L!nf?)rcy;EDLlyPC_`_tv-Hkxk?ZXAi1a8Lp}OHgjV!SEKQQPZPM# zXK&^)2-W_1uV#{Bzeigmq9HMzeN3JzMj0TNOY$@t7*~NSF_4vCmZW6>7L#7 z;a}GLWr3Rmwg*h}4bJcOsXU#&%r9VTrvqzg;c4H`C0wsg?YYnzmHvLu+m`=}zN^36 z_5NUK{ijEtzkBXjr^aT!V9uJ^g}sp{UQ3?PzUS({IH>l`ztg$1UI~QsOh5GWYnS0Y zgW!s8pYuO%Ef8~@s{Kstim*0&Ip@v(*IH3k{GyY0mCU`gh09BRZSpg#hlVry_U;pW zed}(+@vjV1>dc)lNiR2gf4Z-5=HIhchSP&%m2W?rxwgYAX=k^GPPy9ZUF#;EvD`12 z9(6f2>2bo(M#WhcvEA1iKD~}e{i<2NR;Olt=`Wku^Ktrrl%4*GKHL~`KTR_kHC`Tc Z{$bKN*7t*5KG*^zvd$@?2>?@cwk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_added_at_the_end/00016.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_added_at_the_end/00016.png index 137ca9e4946dcd461fab8ca146124917077d946d..3d36b194cfc82107a670d51fb067ff4ddac0c997 100644 GIT binary patch delta 341 zcmaFI^nq!DO1-(Ki(^Q|oVPb4`I-%QTm!ei^1JbW(w^yc5nLwBTppo+F4)Gq`UYmD z8yw_efB>y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_added_inside/00002.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_added_inside/00002.png index d6deabe98f0ae465442e6f8d89e55adc6a1c56ce..86f889eb1b5017362ba0edf43c6bd5a0e0677718 100644 GIT binary patch delta 692 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 Rywv~z002ovPDHLkV1oRNMEw8& diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_added_inside/00007.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_added_inside/00007.png index df6e01718ac7db8656876556198e373fae925b3f..19e71920ed32b78f7071abd026c08ba6c0c11c88 100644 GIT binary patch delta 68 zcmX@aa)4!m3M2bQ)hCSRuV>g!DfzbV-BE>QJHy&r1TQ}p-p0s)02LgTe~DWM4fpywGN delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_added_inside/00008.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_added_inside/00008.png index ace2004671826013010d1896143f441a40ceb2ed..907033ad79701b4cd53b67fd742f1a5f4fe7cf9d 100644 GIT binary patch delta 488 zcmVF1DK+!alov{BUc`yC&3?)2d0Rq|6d%hYQ zgaa|u!mk$q00000005xF@hu*#mfU-39qxQ>D%lqp`#zg{!MD?YY{MPL5kg2m#=qn7 zSSFqos-$JgXs!7AGO4qPR-9I-dlBw{a$aiv^s2S01?2deT7Q}#^1(?TlPJToJLau<-lLkQW#qO8&zR#VH1=K!2~$G|tNInODmx(KJITE~0CX0@`lz1mz^1^@tH zk3ESz_kUIWp98jW@9V0{b3j*mK%s5*A_JwA~6 zl2c$~sWfHv4SzG=KcbSE&7{W&uAdp?ty^0M; zwlF9>c)b7s0000000000po8O^c(Yn_@1u2a=Vw!qy};P}Y>t9&(0^>r9mf$uNH62> zct6&Or9zXmPHC-WUtcHXbkVZYGIcM65m3%ctxvDos#-y|uYYN!F(TibDud4q#U>okSu2NYCbjbr6TIyIS&$YY@v1 z`I05DF)2;ie1F4?_s)u0^_`^KN`{mI$=?)2^i$S_BHML%X9bJALL~dpzmjm)IVNPP zR!ig(`hMWc5WEN(J{GN0;(YQjoDf(50IQ>Zz5*|JsKC|zp&)7$C>{s5)gN2x64%PwiKo)IS0ssI2 g000000Kh_i0ei>`c6nj68UO$Q07*qoM6N<$g8CWdfB*mh diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_added_inside/00009.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_added_inside/00009.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_added_inside/00010.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_added_inside/00010.png index 5b07875e974547eef0916480f880e805cfa2eda1..f356dcbd7255d12f79d30a98fdae0fab5fe8ae21 100644 GIT binary patch delta 489 zcmVF1DKvCN1O}PJ&xJwtFWE3G`z<{ay-zssjAR>Sv4FLcE z000000000008H^UBWOxVzKtK=Dz2J9+I^f&<40<2(NPmPGT)mLN^LkaKd3$Qw zImE;fQ23CFm$gw1FsoMaz40Wwe8yxru>)jty{}b%i_BX62QK&7&a23}DX3E4s%zfW z7w3AACW{u~#d0?Z@FjaOj>PbP@P)S$2T(Drl+8$nHNpebN1n5 zC;S()KXBK*hJTynod@s3xT&TO7EnpnhjBHtkau7puXq>DX!3+WUC-Miub8)Z!R7UG zd%Tin{K~Lig!2~E6fn2!mHT*EzA4V}x?D@m*+aQiP1Uu=4CY4c#&yhmPIwG6v7H;S zrmYPMIy)fGyV)fj{glu9^29iw{mpe^xYO#och19(B4P?_-K1G%@nlu5u6yzvd>Ci8 zqqT9B<>e0y3rwnR(={Ofb*%98DgRn{_Puh_XIA&@M~44m%6~<8c00G(tvvt$00000 f00000fM@vyWRj7ONLGhA00000NkvXXu0mjf^4ad` delta 489 zcmeBX>1LUrQ$H)Ps6~OtA#=I;!+-9d^!^rHJK4tK*x~)QI{sCXkg%sho)-fu5I7Xx zav}Hjlgx9K0arR&j{fWuwmq6{`JBDle(9Iu*=m-$eDm{ePb;>I`&`sBhp}jbltLh* zajMqRPa*dn-L!nf?)rcy;EDLlyPC_`_tv-Hkxk?ZXAi1a8Lp}OHgjV!SEKQQPZPM# zXK&^)2-W_1uV#{Bzeigmq9HMzeN3JzMj0TNOY$@t7*~NSF_4vCmZW6>7L#7 z;a}GLWr3Rmwg*h}4bJcOsXU#&%r9VTrvqzg;c4H`C0wsg?YYnzmHvLu+m`=}zN^36 z_5NUK{ijEtzkBXjr^aT!V9uJ^g}sp{UQ3?PzUS({IH>l`ztg$1UI~QsOh5GWYnS0Y zgW!s8pYuO%Ef8~@s{Kstim*0&Ip@v(*IH3k{GyY0mCU`gh09BRZSpg#hlVry_U;pW zed}(+@vjV1>dc)lNiR2gf4Z-5=HIhchSP&%m2W?rxwgYAX=k^GPPy9ZUF#;EvD`12 z9(6f2>2bo(M#WhcvEA1iKD~}e{i<2NR;Olt=`Wku^Ktrrl%4*GKHL~`KTR_kHC`Tc Z{$bKN*7t*5KG*^zvd$@?2>?@cwk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_added_inside/00013.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_added_inside/00013.png index 137ca9e4946dcd461fab8ca146124917077d946d..3d36b194cfc82107a670d51fb067ff4ddac0c997 100644 GIT binary patch delta 341 zcmaFI^nq!DO1-(Ki(^Q|oVPb4`I-%QTm!ei^1JbW(w^yc5nLwBTppo+F4)Gq`UYmD z8yw_efB>y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_removed_inside/00002.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_removed_inside/00002.png index d6deabe98f0ae465442e6f8d89e55adc6a1c56ce..86f889eb1b5017362ba0edf43c6bd5a0e0677718 100644 GIT binary patch delta 692 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 Rywv~z002ovPDHLkV1oRNMEw8& diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_removed_inside/00007.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_removed_inside/00007.png index ff518831ae81679c8510e8cb4bff506d46ea4c52..481b93b9956f8c503a1857268cc7589892a54c65 100644 GIT binary patch delta 382 zcmbQlJd=5XN_~Q-i(^Q|oVPav`3@=YG(61Q!};C*(z{28g_@QI9B91q=f3degIPBl z9zKqEYI8njplUiUiodROAor(c9W zR^}+?8myl&FL-4to57#z(8{X$U)SfWztb-~3N&TPqzc(p%AFSVYrX`8Gnk+H{Ueks zb<#%fFV})D?|sHT>rry8tld#@`>s`2`6T~L+QDzvrXXHhV6rCV3S&z9Ipb#y$#wEG zvU@C2_*)kGE!_M1Tt1V*;nRmFtX}Z8D_&c4jZtrz2E)Cp?XwzH zxst=@d+j?GB$@s8ny~)wDXryR(H!B5`xZ|ztGuMUEy6s0?XTF)=TyyJo^e`Pm25rx z#%s=inV%1C@<=PV!1yd8@P5I)Ih(~d{@;92c)>g7uKG1sx+>RB3+(okV89N3d}ecv V;ORDdeNYgjz|+;wWt~$(696=6uWbMT delta 375 zcmbQqJc)UNN`0iKi(^Q|oVPav`I;4Y8WOix2*0aWdB2H$a@*E~)qE{a|IeGjjEaO@;djDmRU6LTq-^%vti47 z=JJ_}i@)8>5?Ov>^Xqe`FDf6CWXs>U_Vb%lU)BDyE!ce0DxuFml3}v-ypZ?nCqA&q zSfA~yxzp`+=hgj77T?l4G;czF!IWEe{`*d=RbKse|Bz4IVzZZbTy(29%yI1b$|kb& zv*Y$zTMQi8cO)PEIPdcVwci52?V0y79<6owx;)fy@mW#HtutB}8L)x_HFp1^1fEUr RmFWS=d%F6$taD0e0suO5vflsz diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_removed_inside/00008.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_removed_inside/00008.png index df6e01718ac7db8656876556198e373fae925b3f..19e71920ed32b78f7071abd026c08ba6c0c11c88 100644 GIT binary patch delta 68 zcmX@aa)4!m3M2bQ)hCSRuV>g!DfzbV-BE>QJHy&r1TQ}p-p0s)02LgTe~DWM4fpywGN delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_removed_inside/00009.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_removed_inside/00009.png index ace2004671826013010d1896143f441a40ceb2ed..907033ad79701b4cd53b67fd742f1a5f4fe7cf9d 100644 GIT binary patch delta 488 zcmVF1DK+!alov{BUc`yC&3?)2d0Rq|6d%hYQ zgaa|u!mk$q00000005xF@hu*#mfU-39qxQ>D%lqp`#zg{!MD?YY{MPL5kg2m#=qn7 zSSFqos-$JgXs!7AGO4qPR-9I-dlBw{a$aiv^s2S01?2deT7Q}#^1(?TlPJToJLau<-lLkQW#qO8&zR#VH1=K!2~$G|tNInODmx(KJITE~0CX0@`lz1mz^1^@tH zk3ESz_kUIWp98jW@9V0{b3j*mK%s5*A_JwA~6 zl2c$~sWfHv4SzG=KcbSE&7{W&uAdp?ty^0M; zwlF9>c)b7s0000000000po8O^c(Yn_@1u2a=Vw!qy};P}Y>t9&(0^>r9mf$uNH62> zct6&Or9zXmPHC-WUtcHXbkVZYGIcM65m3%ctxvDos#-y|uYYN!F(TibDud4q#U>okSu2NYCbjbr6TIyIS&$YY@v1 z`I05DF)2;ie1F4?_s)u0^_`^KN`{mI$=?)2^i$S_BHML%X9bJALL~dpzmjm)IVNPP zR!ig(`hMWc5WEN(J{GN0;(YQjoDf(50IQ>Zz5*|JsKC|zp&)7$C>{s5)gN2x64%PwiKo)IS0ssI2 g000000Kh_i0ei>`c6nj68UO$Q07*qoM6N<$g8CWdfB*mh diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_removed_inside/00010.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_removed_inside/00010.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_removed_inside/00011.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_removed_inside/00011.png index 5b07875e974547eef0916480f880e805cfa2eda1..f356dcbd7255d12f79d30a98fdae0fab5fe8ae21 100644 GIT binary patch delta 489 zcmVF1DKvCN1O}PJ&xJwtFWE3G`z<{ay-zssjAR>Sv4FLcE z000000000008H^UBWOxVzKtK=Dz2J9+I^f&<40<2(NPmPGT)mLN^LkaKd3$Qw zImE;fQ23CFm$gw1FsoMaz40Wwe8yxru>)jty{}b%i_BX62QK&7&a23}DX3E4s%zfW z7w3AACW{u~#d0?Z@FjaOj>PbP@P)S$2T(Drl+8$nHNpebN1n5 zC;S()KXBK*hJTynod@s3xT&TO7EnpnhjBHtkau7puXq>DX!3+WUC-Miub8)Z!R7UG zd%Tin{K~Lig!2~E6fn2!mHT*EzA4V}x?D@m*+aQiP1Uu=4CY4c#&yhmPIwG6v7H;S zrmYPMIy)fGyV)fj{glu9^29iw{mpe^xYO#och19(B4P?_-K1G%@nlu5u6yzvd>Ci8 zqqT9B<>e0y3rwnR(={Ofb*%98DgRn{_Puh_XIA&@M~44m%6~<8c00G(tvvt$00000 f00000fM@vyWRj7ONLGhA00000NkvXXu0mjf^4ad` delta 489 zcmeBX>1LUrQ$H)Ps6~OtA#=I;!+-9d^!^rHJK4tK*x~)QI{sCXkg%sho)-fu5I7Xx zav}Hjlgx9K0arR&j{fWuwmq6{`JBDle(9Iu*=m-$eDm{ePb;>I`&`sBhp}jbltLh* zajMqRPa*dn-L!nf?)rcy;EDLlyPC_`_tv-Hkxk?ZXAi1a8Lp}OHgjV!SEKQQPZPM# zXK&^)2-W_1uV#{Bzeigmq9HMzeN3JzMj0TNOY$@t7*~NSF_4vCmZW6>7L#7 z;a}GLWr3Rmwg*h}4bJcOsXU#&%r9VTrvqzg;c4H`C0wsg?YYnzmHvLu+m`=}zN^36 z_5NUK{ijEtzkBXjr^aT!V9uJ^g}sp{UQ3?PzUS({IH>l`ztg$1UI~QsOh5GWYnS0Y zgW!s8pYuO%Ef8~@s{Kstim*0&Ip@v(*IH3k{GyY0mCU`gh09BRZSpg#hlVry_U;pW zed}(+@vjV1>dc)lNiR2gf4Z-5=HIhchSP&%m2W?rxwgYAX=k^GPPy9ZUF#;EvD`12 z9(6f2>2bo(M#WhcvEA1iKD~}e{i<2NR;Olt=`Wku^Ktrrl%4*GKHL~`KTR_kHC`Tc Z{$bKN*7t*5KG*^zvd$@?2>?@cwk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_removed_inside/00014.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/one_byte_removed_inside/00014.png index 137ca9e4946dcd461fab8ca146124917077d946d..3d36b194cfc82107a670d51fb067ff4ddac0c997 100644 GIT binary patch delta 341 zcmaFI^nq!DO1-(Ki(^Q|oVPb4`I-%QTm!ei^1JbW(w^yc5nLwBTppo+F4)Gq`UYmD z8yw_efB>y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/unknown_magic_bytes/00000.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/unknown_magic_bytes/00000.png index df6e01718ac7db8656876556198e373fae925b3f..19e71920ed32b78f7071abd026c08ba6c0c11c88 100644 GIT binary patch delta 68 zcmX@aa)4!m3M2bQ)hCSRuV>g!DfzbV-BE>QJHy&r1TQ}p-p0s)02LgTe~DWM4fpywGN delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/unknown_magic_bytes/00001.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/unknown_magic_bytes/00001.png index ace2004671826013010d1896143f441a40ceb2ed..907033ad79701b4cd53b67fd742f1a5f4fe7cf9d 100644 GIT binary patch delta 488 zcmVF1DK+!alov{BUc`yC&3?)2d0Rq|6d%hYQ zgaa|u!mk$q00000005xF@hu*#mfU-39qxQ>D%lqp`#zg{!MD?YY{MPL5kg2m#=qn7 zSSFqos-$JgXs!7AGO4qPR-9I-dlBw{a$aiv^s2S01?2deT7Q}#^1(?TlPJToJLau<-lLkQW#qO8&zR#VH1=K!2~$G|tNInODmx(KJITE~0CX0@`lz1mz^1^@tH zk3ESz_kUIWp98jW@9V0{b3j*mK%s5*A_JwA~6 zl2c$~sWfHv4SzG=KcbSE&7{W&uAdp?ty^0M; zwlF9>c)b7s0000000000po8O^c(Yn_@1u2a=Vw!qy};P}Y>t9&(0^>r9mf$uNH62> zct6&Or9zXmPHC-WUtcHXbkVZYGIcM65m3%ctxvDos#-y|uYYN!F(TibDud4q#U>okSu2NYCbjbr6TIyIS&$YY@v1 z`I05DF)2;ie1F4?_s)u0^_`^KN`{mI$=?)2^i$S_BHML%X9bJALL~dpzmjm)IVNPP zR!ig(`hMWc5WEN(J{GN0;(YQjoDf(50IQ>Zz5*|JsKC|zp&)7$C>{s5)gN2x64%PwiKo)IS0ssI2 g000000Kh_i0ei>`c6nj68UO$Q07*qoM6N<$g8CWdfB*mh diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/unknown_magic_bytes/00002.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/unknown_magic_bytes/00002.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/unknown_magic_bytes/00003.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/unknown_magic_bytes/00003.png index 5b07875e974547eef0916480f880e805cfa2eda1..f356dcbd7255d12f79d30a98fdae0fab5fe8ae21 100644 GIT binary patch delta 489 zcmVF1DKvCN1O}PJ&xJwtFWE3G`z<{ay-zssjAR>Sv4FLcE z000000000008H^UBWOxVzKtK=Dz2J9+I^f&<40<2(NPmPGT)mLN^LkaKd3$Qw zImE;fQ23CFm$gw1FsoMaz40Wwe8yxru>)jty{}b%i_BX62QK&7&a23}DX3E4s%zfW z7w3AACW{u~#d0?Z@FjaOj>PbP@P)S$2T(Drl+8$nHNpebN1n5 zC;S()KXBK*hJTynod@s3xT&TO7EnpnhjBHtkau7puXq>DX!3+WUC-Miub8)Z!R7UG zd%Tin{K~Lig!2~E6fn2!mHT*EzA4V}x?D@m*+aQiP1Uu=4CY4c#&yhmPIwG6v7H;S zrmYPMIy)fGyV)fj{glu9^29iw{mpe^xYO#och19(B4P?_-K1G%@nlu5u6yzvd>Ci8 zqqT9B<>e0y3rwnR(={Ofb*%98DgRn{_Puh_XIA&@M~44m%6~<8c00G(tvvt$00000 f00000fM@vyWRj7ONLGhA00000NkvXXu0mjf^4ad` delta 489 zcmeBX>1LUrQ$H)Ps6~OtA#=I;!+-9d^!^rHJK4tK*x~)QI{sCXkg%sho)-fu5I7Xx zav}Hjlgx9K0arR&j{fWuwmq6{`JBDle(9Iu*=m-$eDm{ePb;>I`&`sBhp}jbltLh* zajMqRPa*dn-L!nf?)rcy;EDLlyPC_`_tv-Hkxk?ZXAi1a8Lp}OHgjV!SEKQQPZPM# zXK&^)2-W_1uV#{Bzeigmq9HMzeN3JzMj0TNOY$@t7*~NSF_4vCmZW6>7L#7 z;a}GLWr3Rmwg*h}4bJcOsXU#&%r9VTrvqzg;c4H`C0wsg?YYnzmHvLu+m`=}zN^36 z_5NUK{ijEtzkBXjr^aT!V9uJ^g}sp{UQ3?PzUS({IH>l`ztg$1UI~QsOh5GWYnS0Y zgW!s8pYuO%Ef8~@s{Kstim*0&Ip@v(*IH3k{GyY0mCU`gh09BRZSpg#hlVry_U;pW zed}(+@vjV1>dc)lNiR2gf4Z-5=HIhchSP&%m2W?rxwgYAX=k^GPPy9ZUF#;EvD`12 z9(6f2>2bo(M#WhcvEA1iKD~}e{i<2NR;Olt=`Wku^Ktrrl%4*GKHL~`KTR_kHC`Tc Z{$bKN*7t*5KG*^zvd$@?2>?@cwk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/unknown_magic_bytes/00006.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/unknown_magic_bytes/00006.png index 137ca9e4946dcd461fab8ca146124917077d946d..3d36b194cfc82107a670d51fb067ff4ddac0c997 100644 GIT binary patch delta 341 zcmaFI^nq!DO1-(Ki(^Q|oVPb4`I-%QTm!ei^1JbW(w^yc5nLwBTppo+F4)Gq`UYmD z8yw_efB>y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/unknown_operation/00000.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/unknown_operation/00000.png index df6e01718ac7db8656876556198e373fae925b3f..19e71920ed32b78f7071abd026c08ba6c0c11c88 100644 GIT binary patch delta 68 zcmX@aa)4!m3M2bQ)hCSRuV>g!DfzbV-BE>QJHy&r1TQ}p-p0s)02LgTe~DWM4fpywGN delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/unknown_operation/00001.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/unknown_operation/00001.png index ace2004671826013010d1896143f441a40ceb2ed..907033ad79701b4cd53b67fd742f1a5f4fe7cf9d 100644 GIT binary patch delta 488 zcmVF1DK+!alov{BUc`yC&3?)2d0Rq|6d%hYQ zgaa|u!mk$q00000005xF@hu*#mfU-39qxQ>D%lqp`#zg{!MD?YY{MPL5kg2m#=qn7 zSSFqos-$JgXs!7AGO4qPR-9I-dlBw{a$aiv^s2S01?2deT7Q}#^1(?TlPJToJLau<-lLkQW#qO8&zR#VH1=K!2~$G|tNInODmx(KJITE~0CX0@`lz1mz^1^@tH zk3ESz_kUIWp98jW@9V0{b3j*mK%s5*A_JwA~6 zl2c$~sWfHv4SzG=KcbSE&7{W&uAdp?ty^0M; zwlF9>c)b7s0000000000po8O^c(Yn_@1u2a=Vw!qy};P}Y>t9&(0^>r9mf$uNH62> zct6&Or9zXmPHC-WUtcHXbkVZYGIcM65m3%ctxvDos#-y|uYYN!F(TibDud4q#U>okSu2NYCbjbr6TIyIS&$YY@v1 z`I05DF)2;ie1F4?_s)u0^_`^KN`{mI$=?)2^i$S_BHML%X9bJALL~dpzmjm)IVNPP zR!ig(`hMWc5WEN(J{GN0;(YQjoDf(50IQ>Zz5*|JsKC|zp&)7$C>{s5)gN2x64%PwiKo)IS0ssI2 g000000Kh_i0ei>`c6nj68UO$Q07*qoM6N<$g8CWdfB*mh diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/unknown_operation/00002.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/unknown_operation/00002.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/unknown_operation/00003.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/unknown_operation/00003.png index 5b07875e974547eef0916480f880e805cfa2eda1..f356dcbd7255d12f79d30a98fdae0fab5fe8ae21 100644 GIT binary patch delta 489 zcmVF1DKvCN1O}PJ&xJwtFWE3G`z<{ay-zssjAR>Sv4FLcE z000000000008H^UBWOxVzKtK=Dz2J9+I^f&<40<2(NPmPGT)mLN^LkaKd3$Qw zImE;fQ23CFm$gw1FsoMaz40Wwe8yxru>)jty{}b%i_BX62QK&7&a23}DX3E4s%zfW z7w3AACW{u~#d0?Z@FjaOj>PbP@P)S$2T(Drl+8$nHNpebN1n5 zC;S()KXBK*hJTynod@s3xT&TO7EnpnhjBHtkau7puXq>DX!3+WUC-Miub8)Z!R7UG zd%Tin{K~Lig!2~E6fn2!mHT*EzA4V}x?D@m*+aQiP1Uu=4CY4c#&yhmPIwG6v7H;S zrmYPMIy)fGyV)fj{glu9^29iw{mpe^xYO#och19(B4P?_-K1G%@nlu5u6yzvd>Ci8 zqqT9B<>e0y3rwnR(={Ofb*%98DgRn{_Puh_XIA&@M~44m%6~<8c00G(tvvt$00000 f00000fM@vyWRj7ONLGhA00000NkvXXu0mjf^4ad` delta 489 zcmeBX>1LUrQ$H)Ps6~OtA#=I;!+-9d^!^rHJK4tK*x~)QI{sCXkg%sho)-fu5I7Xx zav}Hjlgx9K0arR&j{fWuwmq6{`JBDle(9Iu*=m-$eDm{ePb;>I`&`sBhp}jbltLh* zajMqRPa*dn-L!nf?)rcy;EDLlyPC_`_tv-Hkxk?ZXAi1a8Lp}OHgjV!SEKQQPZPM# zXK&^)2-W_1uV#{Bzeigmq9HMzeN3JzMj0TNOY$@t7*~NSF_4vCmZW6>7L#7 z;a}GLWr3Rmwg*h}4bJcOsXU#&%r9VTrvqzg;c4H`C0wsg?YYnzmHvLu+m`=}zN^36 z_5NUK{ijEtzkBXjr^aT!V9uJ^g}sp{UQ3?PzUS({IH>l`ztg$1UI~QsOh5GWYnS0Y zgW!s8pYuO%Ef8~@s{Kstim*0&Ip@v(*IH3k{GyY0mCU`gh09BRZSpg#hlVry_U;pW zed}(+@vjV1>dc)lNiR2gf4Z-5=HIhchSP&%m2W?rxwgYAX=k^GPPy9ZUF#;EvD`12 z9(6f2>2bo(M#WhcvEA1iKD~}e{i<2NR;Olt=`Wku^Ktrrl%4*GKHL~`KTR_kHC`Tc Z{$bKN*7t*5KG*^zvd$@?2>?@cwk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/unknown_operation/00006.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/unknown_operation/00006.png index 137ca9e4946dcd461fab8ca146124917077d946d..3d36b194cfc82107a670d51fb067ff4ddac0c997 100644 GIT binary patch delta 341 zcmaFI^nq!DO1-(Ki(^Q|oVPb4`I-%QTm!ei^1JbW(w^yc5nLwBTppo+F4)Gq`UYmD z8yw_efB>y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanosp/test_parsing_errors/wrong_last_packet/00002.png b/tests/integration/nano/snapshots/nanosp/test_parsing_errors/wrong_last_packet/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 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 N002ovPDHLkV1g7t>G%Ku delta 471 zcmV;|0Vw|Z1NsAyEq_6B!ypU=P}<2&xc`y3OBYP3Dlo<#3-s}StHg;7gAg`KLLed{ zA|fIpdXul!9k?K+lwZUc)sd$1HP60Rci`Pi;Da>M1C&N2u^l!IPPP}&oCv)qt8#70L+6X!s zbVc^+Qx2_qpgyhX*Bz6+l|=}3mJD`&+dONe#b>F`gt`ZI>I`VU?jJl|iw3WAdeDfx z{@*@8%^;(ObAQ;4+DgA3zw(3B-2Yb#YNy82&D&i(xZe-g!>fyN6PCZy71M@%s)u)8 zHB<#(W?QqGKT_hCOWD!fFE`=NS+CYih4D`Bk^$1l+^lD}Wl)a{xeGv9Qu;BdKXqOQJ>o6^ znbGQ8%5Z*Ge|G`6R|E~!+@J9K65Zh~DlEp)EdGBkCL$stA|fK%-w$H-P~F+bU^M^$ N002ovPDHLkV1i%u+@k;h diff --git a/tests/integration/nano/snapshots/nanosp/test_provide_pk/bip32_ed25519/00000.png b/tests/integration/nano/snapshots/nanosp/test_provide_pk/bip32_ed25519/00000.png index b822d148aa43310c5c3fd19a047ae3776bbd87bb..17a084dd18094d6825adf79726e87e62f392e2f7 100644 GIT binary patch delta 432 zcmV;h0Z;zF1Ih!CB!7`fL_t(|obB3eZo)7OfMIXiO>+Mu`7ZkrEwb`Ofim0e`}`^q z6~RuNCLjU;00000004LJ<=uf7scO3}r8xHFP5BaFLvJNbL$U<4=-Y5l8?*TK?!YU$ zKxd45N~&t>&;Df=DQ5uOtcH2g;V(&NKo{$zp|6rX1qqL#L4RCkBL)DtuRx1%U03Uh zYOkNVQL-Hk{djla1mnS6%+Raq*s%l~F*RC?nBA|vu(wFC^P*D9`03FT&_=W^O|saI zwei*7Z|{mQImR3WDnYe#wt^oFcP{mNway1hz{WeVo=$v6-AWL;1f4j>Bh(+6t;4Yr zV2ilD=oaCmrhiXCf%XBP6M1J4YX*E&!05{z5|F)c;ohce?*$g*=K3WlIRA~<>c_>^ zzaPeyw${*H-kAm*Ip8J=e(KH!HGPHS5%=#k{jv~4NI4S7Q6fa0000<5>@5=M$f%Su{&a!_w2HP* zt;E{*?OpDJW6VLUDX8|(&fo{bok;zoTF+x8VB?cmPshHOZY7951)W&q?(>h#*5Pmo zu#>pG=oaCOrhiXCcM&#u;YI*1C~Wxy&rFN=N)^o-;LLv`wtBg^`tOIarR}r2vx=8m zy!elR@=u0yo-Q=2om6+$CbNSh+qh}@zE~q*)v{`Aj-1nt`HQeOb{+v;!JefU@+|1S z>$(3FG@2&kNQO4wi8=pBgjbSX0gkT~_l^6Cj=u;403HAU00000fb07MIVK_D=fAEL P00000NkvXXu0mjf^F7fg diff --git a/tests/integration/nano/snapshots/nanosp/test_provide_pk/bip32_ed25519/00001.png b/tests/integration/nano/snapshots/nanosp/test_provide_pk/bip32_ed25519/00001.png index 29021e7c8428c26d7b17c72236076b44b5571fac..d3158a96e89808533cb871ab31508bcc068c7cb5 100644 GIT binary patch delta 685 zcmV;e0#g0N1;quBB!7%aL_t(|ob8!ga>F1DMQJ8G@&1?Oz4XH~l<36;10m@>ADz?| zNC*K!PH6+q^E}TJe-+4o91s0y@z}DuukopeIl!kDI*wzBJrzuI&DC%m$MyWOyp+M8 zEa0+JsC!uf>%A`=DprFq#(XF`$ug#+MO*!3HaS)@e=FdPv41a|1;&0~59JuW8J&t) z2M_ULr74-=hw4#~YEEB&=9SuCwxGpxkad+?fwvHmI1OZW*ng5Wx*tSno;Ar2PxGAg zj#Dq9w>pIPNpJ`ugb-q8K`|mx(U(_XJWdd$)(52$*cYk+>eSRsU4_uUit~=iF`n0zo zGxzXx#{-Msiq4TO)nj&jO{6Cxwh%M$2$;pYzBla5#4~_w#PDxkgpjYGxfmw^t6*N0 zP0I&Gi$Jwka)_aCX|0v*+ojww@Gk4LK)Vs}=I z*;ZuwV1MW9K&D;)n?dAr6H}n73sI^cR&CSGTUWNpqI*DV(FPQ*77F_U7A#>6sT%cc zL7OmXL%?h1L+ttB2^d0-Vy|vv3V?-ZgysqGico=!H%PqCpgifdGL_y;A5!?C>A%pL z@`4S!HQt29xHt1XXTXd&jdxB$2qAF1HM2X8c(fyC4yW~Sv1kXl;0Ar`$N6L`~ zW`JR9rL+O(d7kHqzY6R>j)#7w8~xsF)2R81td1B-@xBEz0UAv&p%V`I`Z6%zu5+Szzw>)ljz48_}tV zdGHV~R)&%pzNsDssn+T1_q@{k%M!GB46?6sDexvDlBa>q4(m^{TK9t(&5I`a>1pnh z-gfF`^j4ejJ_j5^2qA=+r=S>dP|=rFanT62{@`#D9D9;Fx$Dz2a@a77G#ymT_{|Q{ zzZ)Xcuk_Vl{C{rM*Gz>6so$#szs+p2?oC>FWT|EARe=g*Kyrl zA&>)LDs~-xB#M;P#5b0tzI*$wF%?^w3hc8*4NZzEv9B8=Urv1`H|mx zdy*jT3gd&!D5}a5II+y7PsnWpnIVV;byf!8<^o+hzJGpqSJ>AtW%hxSGVpb$H@rIS zCCEH`c)sI?#cxIB$dc+YTVE5$6Omg;7!W9_9bn#KsZqYrURkQ((;~RKi!h-tMD9Na2 z3EG4iYXUBqj|%342jD(Ai#^fCGyqj-kmdpKM5w^VYbRc3AWxd5OpiCu4k`S~^p6Pg zuJ2X1yCG1Fdoy3M2h7ORc-bU`5JCtcgb+dqAti(mLI@#*5JCtcgb+dq*^plcEaQ(Y Sc%WGT0000+Mu`7ZkrEwb`Ofim0e`}`^q z6~RuNCLjU;00000004LJ<=uf7scO3}r8xHFP5BaFLvJNbL$U<4=-Y5l8?*TK?!YU$ zKxd45N~&t>&;Df=DQ5uOtcH2g;V(&NKo{$zp|6rX1qqL#L4RCkBL)DtuRx1%U03Uh zYOkNVQL-Hk{djla1mnS6%+Raq*s%l~F*RC?nBA|vu(wFC^P*D9`03FT&_=W^O|saI zwei*7Z|{mQImR3WDnYe#wt^oFcP{mNway1hz{WeVo=$v6-AWL;1f4j>Bh(+6t;4Yr zV2ilD=oaCmrhiXCf%XBP6M1J4YX*E&!05{z5|F)c;ohce?*$g*=K3WlIRA~<>c_>^ zzaPeyw${*H-kAm*Ip8J=e(KH!HGPHS5%=#k{jv~4NI4S7Q6fa0000<5>@5=M$f%Su{&a!_w2HP* zt;E{*?OpDJW6VLUDX8|(&fo{bok;zoTF+x8VB?cmPshHOZY7951)W&q?(>h#*5Pmo zu#>pG=oaCOrhiXCcM&#u;YI*1C~Wxy&rFN=N)^o-;LLv`wtBg^`tOIarR}r2vx=8m zy!elR@=u0yo-Q=2om6+$CbNSh+qh}@zE~q*)v{`Aj-1nt`HQeOb{+v;!JefU@+|1S z>$(3FG@2&kNQO4wi8=pBgjbSX0gkT~_l^6Cj=u;403HAU00000fb07MIVK_D=fAEL P00000NkvXXu0mjf^F7fg diff --git a/tests/integration/nano/snapshots/nanosp/test_provide_pk/ed25519/00001.png b/tests/integration/nano/snapshots/nanosp/test_provide_pk/ed25519/00001.png index 13cef4a9515aca7f7f7ce141ced45ae785157131..53efaa94ba2d1ff869d4c2f2a983da2d02dc7a96 100644 GIT binary patch delta 705 zcmV;y0zUoM1=$6VB!8euL_t(|ob8%Pa>O7EMM+m~;`<-Tcgez43atqthPJ!@+l6Kj z0s;C?DL3Fe&+|OvKRNXu$4eG%o*NDKH9oaaC-^HX9mlc7o(8J9YBU_jag|?|*LC70 z8@TLb!@Whoe(y7fvS?t&sD-Q(s-rrZwUs5Sp}j)Ieq_~SC9U71Z`de8mm4EtU!$HQ>V@y&Yz;q?k7@doi)YYp6Wem zU8mNLzSSjsp9c;A0002gS5Oltf3YrlR!)D`FVVVlf|bW#JFK~HThIp83~NTzHuLy# zvVrR-N4#wI>3=7>Qddw1wN%osL4%beoj7&;p}81WTo+r(i?mp7JtmoTkxtDd=?tKD zixn#glm$?u#)+f)C$g^&Nq?Ts*)pEC$W>4KPP#=-Jb|(RlBFq}T&Jci;UG6S(^s6s zbJiTYf-JNEQ;5gJ2yw}Xt;$4`y1G)nh%s`;UHfjSuYYIhhM$#a%m`4!*18OvzF;Se z^9(I9&(Z=rhB?MqC64N6+0Z-UzQz93*M(=%K7zpWnEr(e0Pv;c#kh;6^k$`tmdfUf zak4NXx2esoY=7iK>89_Uj$Yu<0HLa@9xil7_&NZ9>C)K4Z;&QFxom2mbw$7~Ox<*PYl3GwM1s!B?P}!Vv@-8(( z)*LzdlMC<>@x=PlX zRj2p-kv%&v*XHQmL+)%ltKqX>K_d(vTye4Y(K<9T;XN18be89$000000000000000 n0000000000000000Jr21YQy3zXO7EM9EZc;`<-Tcgez43f2!HFt(@qtr7-< z5C~9H$^+QU@sUM~$41?KjZZDq0shKL+qNySr-5p&8V%dF9p#7Rb)9(0 z0uDP_cc%zg?|tS_77ff8wU9MJbyP>QZ)M5V&{`q>BjCoh&wrd1T>H5e>M>d~dMPXp zKJ15;rV!H))vcnmoWB0dt9w6fL5t^r`l`1AD-a{=)T#4?{ikT7`-xP#&YEH`PxYL% zj#FzzKk5*E&IJbm0002$EvSi;zgP!7E2n?!n`qrQ!OG*e9rn3zThIp83~NO6ZRYah zWCO=fj(FK@(|=ENrLLfMYN@1ModzpM8gc6QU2`$6xGuJm7iqCvdQ39wBAuE^(iuSQ z7AsZ~C=;MYjT1-pPh?*mlKwcIy=6RYk+Yumopg&FcmibtB$uXea-N#9go9k*OkZ&} z&sk&a3bN1yOd%cmHY*cN>S{`P5o6?xJJ#K$zJH#j8{R9?m=U0ct#ueSeZh7Z z=NejKo}~$P40DXJN*vYCvZ1%fb(4M9>%zNeZ$aRFOn>150DLJKF|GuTb@kToyfOyG zI9V8x+tkmkY=7jTblrQWBbiw>Bl1~LO>3%V34yj=7FhVF1i?mK!m9OPFpG;&w zGq>@%w0|d{PB)wwC*dU?bcs*mP_yYY{`gznso1L*@x zdiNjMvU787_TE8y@!tO7>u*7626wHv*!ybQnKvp002ovPDHLkV1nKPOb`G7 diff --git a/tests/integration/nano/snapshots/nanosp/test_provide_pk/secp256k1/00000.png b/tests/integration/nano/snapshots/nanosp/test_provide_pk/secp256k1/00000.png index b822d148aa43310c5c3fd19a047ae3776bbd87bb..17a084dd18094d6825adf79726e87e62f392e2f7 100644 GIT binary patch delta 432 zcmV;h0Z;zF1Ih!CB!7`fL_t(|obB3eZo)7OfMIXiO>+Mu`7ZkrEwb`Ofim0e`}`^q z6~RuNCLjU;00000004LJ<=uf7scO3}r8xHFP5BaFLvJNbL$U<4=-Y5l8?*TK?!YU$ zKxd45N~&t>&;Df=DQ5uOtcH2g;V(&NKo{$zp|6rX1qqL#L4RCkBL)DtuRx1%U03Uh zYOkNVQL-Hk{djla1mnS6%+Raq*s%l~F*RC?nBA|vu(wFC^P*D9`03FT&_=W^O|saI zwei*7Z|{mQImR3WDnYe#wt^oFcP{mNway1hz{WeVo=$v6-AWL;1f4j>Bh(+6t;4Yr zV2ilD=oaCmrhiXCf%XBP6M1J4YX*E&!05{z5|F)c;ohce?*$g*=K3WlIRA~<>c_>^ zzaPeyw${*H-kAm*Ip8J=e(KH!HGPHS5%=#k{jv~4NI4S7Q6fa0000<5>@5=M$f%Su{&a!_w2HP* zt;E{*?OpDJW6VLUDX8|(&fo{bok;zoTF+x8VB?cmPshHOZY7951)W&q?(>h#*5Pmo zu#>pG=oaCOrhiXCcM&#u;YI*1C~Wxy&rFN=N)^o-;LLv`wtBg^`tOIarR}r2vx=8m zy!elR@=u0yo-Q=2om6+$CbNSh+qh}@zE~q*)v{`Aj-1nt`HQeOb{+v;!JefU@+|1S z>$(3FG@2&kNQO4wi8=pBgjbSX0gkT~_l^6Cj=u;403HAU00000fb07MIVK_D=fAEL P00000NkvXXu0mjf^F7fg diff --git a/tests/integration/nano/snapshots/nanosp/test_provide_pk/secp256r1/00000.png b/tests/integration/nano/snapshots/nanosp/test_provide_pk/secp256r1/00000.png index b822d148aa43310c5c3fd19a047ae3776bbd87bb..17a084dd18094d6825adf79726e87e62f392e2f7 100644 GIT binary patch delta 432 zcmV;h0Z;zF1Ih!CB!7`fL_t(|obB3eZo)7OfMIXiO>+Mu`7ZkrEwb`Ofim0e`}`^q z6~RuNCLjU;00000004LJ<=uf7scO3}r8xHFP5BaFLvJNbL$U<4=-Y5l8?*TK?!YU$ zKxd45N~&t>&;Df=DQ5uOtcH2g;V(&NKo{$zp|6rX1qqL#L4RCkBL)DtuRx1%U03Uh zYOkNVQL-Hk{djla1mnS6%+Raq*s%l~F*RC?nBA|vu(wFC^P*D9`03FT&_=W^O|saI zwei*7Z|{mQImR3WDnYe#wt^oFcP{mNway1hz{WeVo=$v6-AWL;1f4j>Bh(+6t;4Yr zV2ilD=oaCmrhiXCf%XBP6M1J4YX*E&!05{z5|F)c;ohce?*$g*=K3WlIRA~<>c_>^ zzaPeyw${*H-kAm*Ip8J=e(KH!HGPHS5%=#k{jv~4NI4S7Q6fa0000<5>@5=M$f%Su{&a!_w2HP* zt;E{*?OpDJW6VLUDX8|(&fo{bok;zoTF+x8VB?cmPshHOZY7951)W&q?(>h#*5Pmo zu#>pG=oaCOrhiXCcM&#u;YI*1C~Wxy&rFN=N)^o-;LLv`wtBg^`tOIarR}r2vx=8m zy!elR@=u0yo-Q=2om6+$CbNSh+qh}@zE~q*)v{`Aj-1nt`HQeOb{+v;!JefU@+|1S z>$(3FG@2&kNQO4wi8=pBgjbSX0gkT~_l^6Cj=u;403HAU00000fb07MIVK_D=fAEL P00000NkvXXu0mjf^F7fg diff --git a/tests/integration/nano/snapshots/nanosp/test_provide_pk/secp256r1/00001.png b/tests/integration/nano/snapshots/nanosp/test_provide_pk/secp256r1/00001.png index 9d77cd607eba20c3e2c04793cbaf2d9ec12bb37d..ca5e20aef3bb2c745f0eba3491f544cdae372508 100644 GIT binary patch delta 685 zcmV;e0#g0Z1=j_TB!8YsL_t(|ob8%Paswd@MM=sx;r>VBE?IOHrZpikx#Rk8 zAjTx62T)2WrTDW9`+vtTPdePTTHV+5sfO6V7dOf|AJNl6lq=4Lob#1_DQ|83DF?W8 zlIm_V;C%0s4kfdJh!GQslWHS&G%3qdc2i@e@}2=7jD6Bs&VSe+^U$_Y8_}(hdGJdz zPD-gP-&Au$>UH}0J+H0(wgep>gIZU+6lfFC6Q_pF6V{(3weH7bv`@_Y$rIJAJ-zZbDgK#QSamfFM6qT`ZV6G(#7}Jw z`Rr88Q|#a+Q4so!{?ID**GsZ0Vyi` zN5gZYYVt_BwYsfNp2GZj{ABS}e!Mr~tsI_}!;2LFU=!UNFS#q)9*lzBo1s&WXxtUa z9hN(WHqpS)X)6>g#rw3;TB91fpy7N#&y2{f2fKf{FwX#xtnr(0>npUIiRbPCZ=T}^ zaocv&@_!dbyLJurUlU93CM^D^!Z4aQO;3?t^Aqb_{wUvVmo1X$v8S4$uxg9V0L>}U z#~ayg_L5Od?8R`*Z7sh1(UA9EU;wxjXCt-XEy`=FUy_G0x0?O(7pnIFkkKZe!+|hd z(AKk?wF|64YzACEJgbma&>myI7;*jO3Zrh5GzKrn2Hvj_lc53^ldu8=7ruZ$5fy>5 T^zrY-00000NkvXXu0mjfwvkgx delta 696 zcmV;p0!RJV1<(bMB!8DlL_t(|ob8%PlEWYjMd?&-;`<+oyY#|U1ZzT)fp(|8J9(j6Y=q zr%uw`Wd`i`K5;0S4MdEXNQ|^HqN7P&p0b)2D~-<#_`}#I&VO>oe$GPQM{PuxLgvAX zWbBmEn7*kV9cAS7{d->D`eg~)JO-_;eksr4tye-;*5Lk*!oHVl$mLUeu*JFPF| z)2gGT*uhHzA@mvjp*5Oow;^^pq`?mP!3^M#FcBB=9OB#TP15fu{Ca%fjbDCblzVEw@Ae}MfVcvRdlC0ww14^N`ztRmiU}!+4zr=bBjC{? zb@NENuC1j;9>o14`JTEH?F4SZOW8Rw)8~2sz#@j%U2<2nEf^JtH$$f$vG7nNH(0M2 z+Qb5ePFtZ+QoK(ay)~M#D;mZVdhUoETCn}gg?R>mWaV$dy{-G_?u0eZ@q?J{-8B7q z(QaKs{eNp>9bJRPe=4NWtZ90x^qOCobNQqEuwS-FqQ{^yjJ10FcoppXoqISG4u4X6^!O z5Ssz#56>#3RkX+0FGgH{xx%Q~BF)R(!21;f05Jdn0000000000000000000000000 e0002M7w`*as)4fo>!iW}0000+Mu`7ZkrEwb`Ofim0e`}`^q z6~RuNCLjU;00000004LJ<=uf7scO3}r8xHFP5BaFLvJNbL$U<4=-Y5l8?*TK?!YU$ zKxd45N~&t>&;Df=DQ5uOtcH2g;V(&NKo{$zp|6rX1qqL#L4RCkBL)DtuRx1%U03Uh zYOkNVQL-Hk{djla1mnS6%+Raq*s%l~F*RC?nBA|vu(wFC^P*D9`03FT&_=W^O|saI zwei*7Z|{mQImR3WDnYe#wt^oFcP{mNway1hz{WeVo=$v6-AWL;1f4j>Bh(+6t;4Yr zV2ilD=oaCmrhiXCf%XBP6M1J4YX*E&!05{z5|F)c;ohce?*$g*=K3WlIRA~<>c_>^ zzaPeyw${*H-kAm*Ip8J=e(KH!HGPHS5%=#k{jv~4NI4S7Q6fa0000<5>@5=M$f%Su{&a!_w2HP* zt;E{*?OpDJW6VLUDX8|(&fo{bok;zoTF+x8VB?cmPshHOZY7951)W&q?(>h#*5Pmo zu#>pG=oaCOrhiXCcM&#u;YI*1C~Wxy&rFN=N)^o-;LLv`wtBg^`tOIarR}r2vx=8m zy!elR@=u0yo-Q=2om6+$CbNSh+qh}@zE~q*)v{`Aj-1nt`HQeOb{+v;!JefU@+|1S z>$(3FG@2&kNQO4wi8=pBgjbSX0gkT~_l^6Cj=u;403HAU00000fb07MIVK_D=fAEL P00000NkvXXu0mjf^F7fg diff --git a/tests/integration/nano/snapshots/nanosp/test_regression_continue_after_reject/reject_public_key/00001.png b/tests/integration/nano/snapshots/nanosp/test_regression_continue_after_reject/reject_public_key/00001.png index 13cef4a9515aca7f7f7ce141ced45ae785157131..53efaa94ba2d1ff869d4c2f2a983da2d02dc7a96 100644 GIT binary patch delta 705 zcmV;y0zUoM1=$6VB!8euL_t(|ob8%Pa>O7EMM+m~;`<-Tcgez43atqthPJ!@+l6Kj z0s;C?DL3Fe&+|OvKRNXu$4eG%o*NDKH9oaaC-^HX9mlc7o(8J9YBU_jag|?|*LC70 z8@TLb!@Whoe(y7fvS?t&sD-Q(s-rrZwUs5Sp}j)Ieq_~SC9U71Z`de8mm4EtU!$HQ>V@y&Yz;q?k7@doi)YYp6Wem zU8mNLzSSjsp9c;A0002gS5Oltf3YrlR!)D`FVVVlf|bW#JFK~HThIp83~NTzHuLy# zvVrR-N4#wI>3=7>Qddw1wN%osL4%beoj7&;p}81WTo+r(i?mp7JtmoTkxtDd=?tKD zixn#glm$?u#)+f)C$g^&Nq?Ts*)pEC$W>4KPP#=-Jb|(RlBFq}T&Jci;UG6S(^s6s zbJiTYf-JNEQ;5gJ2yw}Xt;$4`y1G)nh%s`;UHfjSuYYIhhM$#a%m`4!*18OvzF;Se z^9(I9&(Z=rhB?MqC64N6+0Z-UzQz93*M(=%K7zpWnEr(e0Pv;c#kh;6^k$`tmdfUf zak4NXx2esoY=7iK>89_Uj$Yu<0HLa@9xil7_&NZ9>C)K4Z;&QFxom2mbw$7~Ox<*PYl3GwM1s!B?P}!Vv@-8(( z)*LzdlMC<>@x=PlX zRj2p-kv%&v*XHQmL+)%ltKqX>K_d(vTye4Y(K<9T;XN18be89$000000000000000 n0000000000000000Jr21YQy3zXO7EM9EZc;`<-Tcgez43f2!HFt(@qtr7-< z5C~9H$^+QU@sUM~$41?KjZZDq0shKL+qNySr-5p&8V%dF9p#7Rb)9(0 z0uDP_cc%zg?|tS_77ff8wU9MJbyP>QZ)M5V&{`q>BjCoh&wrd1T>H5e>M>d~dMPXp zKJ15;rV!H))vcnmoWB0dt9w6fL5t^r`l`1AD-a{=)T#4?{ikT7`-xP#&YEH`PxYL% zj#FzzKk5*E&IJbm0002$EvSi;zgP!7E2n?!n`qrQ!OG*e9rn3zThIp83~NO6ZRYah zWCO=fj(FK@(|=ENrLLfMYN@1ModzpM8gc6QU2`$6xGuJm7iqCvdQ39wBAuE^(iuSQ z7AsZ~C=;MYjT1-pPh?*mlKwcIy=6RYk+Yumopg&FcmibtB$uXea-N#9go9k*OkZ&} z&sk&a3bN1yOd%cmHY*cN>S{`P5o6?xJJ#K$zJH#j8{R9?m=U0ct#ueSeZh7Z z=NejKo}~$P40DXJN*vYCvZ1%fb(4M9>%zNeZ$aRFOn>150DLJKF|GuTb@kToyfOyG zI9V8x+tkmkY=7jTblrQWBbiw>Bl1~LO>3%V34yj=7FhVF1i?mK!m9OPFpG;&w zGq>@%w0|d{PB)wwC*dU?bcs*mP_yYY{`gznso1L*@x zdiNjMvU787_TE8y@!tO7>u*7626wHv*!ybQnKvp002ovPDHLkV1nKPOb`G7 diff --git a/tests/integration/nano/snapshots/nanosp/test_regression_continue_after_reject/reject_public_key/00003.png b/tests/integration/nano/snapshots/nanosp/test_regression_continue_after_reject/reject_public_key/00003.png index 137ca9e4946dcd461fab8ca146124917077d946d..3d36b194cfc82107a670d51fb067ff4ddac0c997 100644 GIT binary patch delta 341 zcmaFI^nq!DO1-(Ki(^Q|oVPb4`I-%QTm!ei^1JbW(w^yc5nLwBTppo+F4)Gq`UYmD z8yw_efB>y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanosp/test_regression_continue_after_reject/reject_signing/00002.png b/tests/integration/nano/snapshots/nanosp/test_regression_continue_after_reject/reject_signing/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 zcmV;%0y+KI1>OaaB!8tzL_t(|ob8%PlEWYjMV(Y`;`<-Tcj<+zX`=Cii6LG8tr8m~ zA&EgGk8LH6<0zl^eV=H_OlmLOtap~`doV}$(v6l%y<&8+>U^^Ad-<^ank}9bA>Nal zIV}{bpY@j&ykEP?b12^NL_9&HeTb4Jg}(qy_rAz+?W5Fdr+EodvqDyWyw|0GhcPQC=v!1M$&*L)j%Mznih17qT4 zBsQ{Xl0EY#N;eYNGwUyAL0NM>A!7?m&}+z`@JpR!37X3&|B9aq0$r(d@st8DH``_a zuKsLUCxSUA1{@M9u1~u-b6X`N^8lIw=1O-xJ&V6a34gqTHp4Wm)!G#<`3D0Y0WV4$ zJ2eBA-U9^bI{uA(QvlNKF>RyU6GE2dcxUVSr-CQYe5)JlzM%G?-i|BVxCZtHg7j)8 zE!jsMIks%%LBP^uOd4$6GVL3O(6q;6%qCoG)#vC9*gxx&Xeq zOs@-c8-E(~7jJ7PnvpQ;9UrGYN3cXNE5)>Gy{v@wDt09t+VjyGCR8q!|( z)dB7+HN8=QH$t(@@&p;?usWdcKbK-1ZyNcqy>1*j2B}*n7h)Yhq3FK%MnuCeSsx<#1M#jPb5JCtcgb+dq sA%qY@2qAWhai~XwS9Qg_f+O_rlG3SE;@Sada=-K04*-tmOIiAehpElV1I0a)&RlH=S*uGdcg8h;&kSmlU?FY?9m7--&~ zCI1s*QxGS=EkR=Xtb#i$=)U2OH^5W;5ovS};wGtW!sUI+_Pd29ZTTj=e1QP~006*T zNOhAv$Q~U;0{^NgWtygxS6-r`l$~xf*Qzvzpo?{rJtT23#zRE@^GrilDB7bjXA|zV@}qPK?4Nzv(t9?0=CR#9cE`v2YI2MkQ|sac zAZR*wdVg<1U0iQbeC?K0;y}1D1SbGoee;es+Mu*Zd)}7^c&ysg zMiIOevSqe6kzr1&1IGSyN!Iby$fxaf^WZUX-Lkk4%l?ES_Psw6hN;;Z8QlY19i*jr z7dX5blGT}K*}-mJUA@8*sBRO_ubJ+D)JGH*ZhW`FCKQq+d4g)Nv? zBAu}E^3Nrf8r2EwQOENw(0;9aX26lLug=PqHF{{Nk;WSufz5*-_CtSa-D)&+%+i;i z2!_q7XTtjUYYE!c2TlX+Y(800cGaCd;7aR*mWR+4xs|gtiCR*#ZY`Fv<3!yplGwS( z0{{R3pvSBJp&N9&wsbU^Gc0BiQa^~;TLDNt!-||q4u0)cX5~1S4$VZ!IhwMPddp7j z*0ZAoJ;;QT<+7IBpjm$;Ht9!o-fgHaF)os*#z!c%w^TMZilsp2*rzf&DMvl?`Qe;& z9Jz+x`eu~P7 zkfbx$`Zd~HdhVb|ut^I#3mbsbb3Ma3{~|WwqKI!y*ZB0mahrc#cV&&jxt&>UPc=ye z3fb!cUxL79&;bB|gS=!>FpFS2yDB6EJw&pLuDsE8F4acsUHoVxzglO~v9xDVoSMLq zLl(8O%Z)G+^IU6mpH41aMAft$XkWO;0vZo#NB}h%(Scyf3HrJGAKPt6N<2f-kW8YQc>2eB5v-Kg1 rz*(RL9VVKF-V4S)ld%FA7eEGo@n9pYG$gmcBmt+9B_V&(m?%O9gvE1TS2FMSn_iYu*1bK!Ng`~>*1a`{^z+2e zZ;9a`Y7D>9Xxq}D0o6`f3!ORI(u}E%>VdYXPN)HGk)GG7KAE>4da-}>ODXEW)y5V~ zYmrV^d->-QTaD_3&8Xw~7U;ZIJ{fRi?W-J(9J5JQ6MG`wV zc>n+a0Q7j(KlB0JK3h7PtQi)o2&o@L?5zN#o?%7KBnQ8DtFm&OONVA5|OTA>L zcI&sJ1U<-tlGU=7+n|40BsS?sb>1DQFEK7ssK!?)wYO9@wu+@d=Gdn)nv|oSd44!2 z9Y?OAm%dpfV^kZ}o@JrDl;=Cgezf<|V0>4f3{b_=2=tkuK0Jn;tfQvUDcY!7H<+ab z4M{q4qhF)FW#$fw1e>&=v#ao`x+`lH&OMpc@l=ac zppd;E@GS^z1`_}PILJ$F4HgpY;jU^4zPzOh6@EyUA#Ze@OSRFu5kK0G!w;gtO&VEH%IeS*T35e{BRs_?k+;s0V^D*M-?(`W*sM>< z^_Z$kJxB7=C*YtuNGakUq?4Sh>=^`e3sS2$)?%?P&#}Im^6ZDCj%mE4re^HDO1xao zA|qiRvI(38TF_wz%Fr9Z+6Mpt0000000000000000018V000000002U;13^%Bdl=# Rywv~z002ovPDHLkV1oRNMEw8& diff --git a/tests/integration/nano/snapshots/nanosp/test_regression_continue_after_reject/reject_signing/00007.png b/tests/integration/nano/snapshots/nanosp/test_regression_continue_after_reject/reject_signing/00007.png index 85234247e808c9a4eed986210646699a8fad3053..2b33e84bd934985581cc1e8b3a0342a628c6b7be 100644 GIT binary patch delta 333 zcmaFL^nz)EO1-|Pi(^Q|oVPck`C1fs90KQ@@w@SV(w);aGX$2cZQyU2RlTo9A;cjg z=1}mpQs3i-$By4JJuD&N5PL89d)V!u;^d8WzgQE(cE50%o7O(BDmq$o%^!>XO6!(O zed7AsTsiYl@KpxC{p&r;-!HHEU6xeWDR#NAr*OUS_TXYw!R4*>f>t62dcR22e|LKM zBu3bMzR~XAGsV|<&Hq~VOVFIn^=ej|+#ZiJ&HGhP9F=Hk^EnpdkS4L`l$^k?en->e z9^T(N4bJF($+%ak+K^RY#WR!jtiQV1!wUWL&UK7&6>qX9Z)Pmm=*q~z_IXpZg@^Om zddGua&ZRRyEUL+r`1sjR-Ys1J+?hzJUv@kP5`f6g?BSuh-Q^c`*ch;b2ey~}=>5DQpQi^%4^FN?^G zpg?_0S9!nR@i>HVS=>B_UeRkUd+N8%*0fw%t&yhDi!DF$N{t?n{OOxx#k7{k%aWu# zwh$Z4uUb|pUQ!wT_}#9^yZ8D1bc+m@_nAbD$03BZew=^i!+)7%p7ixvGMmwVD<9_9 zS~iUw3$g2}Vs~G2cQxW`J^y?rCpu+S>n5FeM)D|pOhH48!L+rRDNZ0a8M%!$U}`@G zo7;>yYwt~?xProB#j-07*qoM6N<$f}g;kvH$=8 diff --git a/tests/integration/nano/snapshots/nanosp/test_regression_continue_after_reject/reject_signing/00008.png b/tests/integration/nano/snapshots/nanosp/test_regression_continue_after_reject/reject_signing/00008.png index 59fce75cd1321a13bc8840b9bc6f48f87485d7c2..1fcdee14dce21c819b5e211dbbdf546034789b00 100644 GIT binary patch delta 520 zcmbQovXEthO8pB@7srr_Id5kM7PTnwv}GTc?9lLqhrP``?db{pjpG zrn-!U0To35*yKO|c_nY(;}iDl3pp15@@+0yKj(GZ2jO)Qi!0;h?@JvK{bu>h_dw;m zC>H&`#}l@1wo&cf>|r+HxasUAEeqn77VM}Oo1S&_%OUo&8v|3VEAJn(oc*S;Wc7xV z>D?PkR$Jt~$Y$Ht9=o-3_wDs}M9Xa%!wV&h zZNFN6;N2?O)%sV(gcCHDR}1D{YwOw0a+TZU?3Pm&UgqzdJ2R!)ms}J0cxC>UPkbi= z&zTwpiY` z=a&X?hINib6R_{Q6~TjT+w|?MFKJ^D5d(eRvMELg+EprtTYqt_R!y&bupApz_LKMR zT=NkRv|E*pT&>31t?Im^ZyER=UaH-=yW`52;-M$tNO-$y>D@$PIrG?B`mKRa6_oBz zxQC-$E#b#u_8qXgYUk=}waElH%H>>yyR|`xmY{Zlu9;OCN4bpqP-42qDXDctBK4=t zyaOc4Qgi$=J%5^yR^Kw1RI{o_FhgBseK?%y+-LJGuyUNfN|MpP{p(LYa1Y_}J)y|^p@I^cNo_f`c)6F%%jny_b z#K!54X&)l`RkP1J-<@^o!zlMRVj6KpwtsqTbztL>%3 zC;_fcKbsZDalnuJzMC~2nVVx09kY$XZrqb@I;XGCT7%T$| zz;Bh0#AKt{@pw8beS3kvcj1=R!OiNuWi$;}+F z*Sk!BfH?5EfyNs=Telg=Tx6r`b@%(%YV3ND@etCfS^Z4AJ=X=+BKsP z_sHln+Vc)4;@ zG6vyZfPbU&E?+rL|Jd=i4})V|TZSI$DTx2Jnn+bri&XKgiG>#w#10dYA>NTR^;gB!8<(L_t(|ob8-ja>F1DMV(G|;{7j)z4XIVs)&bqNV;-H=c};^ zTx28Q+Ue`CBBew>p66-Sv}bhXw+!6Ie&s>0ajI6vvvYt_5Y6m zo9MIVJH4&m%TrBszSu9L8V5EG-mMdQ&F8;c*?=-qW~8m1GP1BBf25#tfIJbOalg2k z0}k73knii;L^QjAq2FTjb3Rfnql*0$8w5cR1ObZv>Vhsm%97Q^$?~RbN&r2$uc1%H zj1vUD>RJ$Bynk5aX50=fZ;PIyee3tLf41e&Z3of zN7y{K8q^>{q@Z94_=+nCf=9DplcDT6)n}HlNf@<~^MAI26y66MYBpKxAiQ07XxL=4 zZE3eFi2Mksf?75DU#;5B0Vtmi?hp2foiG@c6r^X9G0g0_Cn4V9+m*XgyEYh2!fVi% zID=7Q!4m|5B{pxX9iQ{9r7M>|W;!xv0ZhV9Ce?8nstF zAT{3Q%YVoFKX$zB!{8X#mZ67w3fg~LO{6NRMXLDL#KH@5Vuy*y5bsEsabR{+kP|yh zRfhMUPdl;0oXD6ZQqULS4Ug9;*Iw$?|bmPNv%h~wXRyG2pHU#)5VpBcQ z*wA4GC|&>qQ_P7g=Lq<#YT5$WBY}OaQ_!aL{Y5M+Xby@1dmytG2$BBp2oNWB!eE3) y0Nk6?7ErCw7jRPyE?|mCLEj7f280U;9>6cx6a!}!6t(350000y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanosp/test_reject_pk/00000.png b/tests/integration/nano/snapshots/nanosp/test_reject_pk/00000.png index b822d148aa43310c5c3fd19a047ae3776bbd87bb..17a084dd18094d6825adf79726e87e62f392e2f7 100644 GIT binary patch delta 432 zcmV;h0Z;zF1Ih!CB!7`fL_t(|obB3eZo)7OfMIXiO>+Mu`7ZkrEwb`Ofim0e`}`^q z6~RuNCLjU;00000004LJ<=uf7scO3}r8xHFP5BaFLvJNbL$U<4=-Y5l8?*TK?!YU$ zKxd45N~&t>&;Df=DQ5uOtcH2g;V(&NKo{$zp|6rX1qqL#L4RCkBL)DtuRx1%U03Uh zYOkNVQL-Hk{djla1mnS6%+Raq*s%l~F*RC?nBA|vu(wFC^P*D9`03FT&_=W^O|saI zwei*7Z|{mQImR3WDnYe#wt^oFcP{mNway1hz{WeVo=$v6-AWL;1f4j>Bh(+6t;4Yr zV2ilD=oaCmrhiXCf%XBP6M1J4YX*E&!05{z5|F)c;ohce?*$g*=K3WlIRA~<>c_>^ zzaPeyw${*H-kAm*Ip8J=e(KH!HGPHS5%=#k{jv~4NI4S7Q6fa0000<5>@5=M$f%Su{&a!_w2HP* zt;E{*?OpDJW6VLUDX8|(&fo{bok;zoTF+x8VB?cmPshHOZY7951)W&q?(>h#*5Pmo zu#>pG=oaCOrhiXCcM&#u;YI*1C~Wxy&rFN=N)^o-;LLv`wtBg^`tOIarR}r2vx=8m zy!elR@=u0yo-Q=2om6+$CbNSh+qh}@zE~q*)v{`Aj-1nt`HQeOb{+v;!JefU@+|1S z>$(3FG@2&kNQO4wi8=pBgjbSX0gkT~_l^6Cj=u;403HAU00000fb07MIVK_D=fAEL P00000NkvXXu0mjf^F7fg diff --git a/tests/integration/nano/snapshots/nanosp/test_reject_pk/00001.png b/tests/integration/nano/snapshots/nanosp/test_reject_pk/00001.png index 13cef4a9515aca7f7f7ce141ced45ae785157131..53efaa94ba2d1ff869d4c2f2a983da2d02dc7a96 100644 GIT binary patch delta 705 zcmV;y0zUoM1=$6VB!8euL_t(|ob8%Pa>O7EMM+m~;`<-Tcgez43atqthPJ!@+l6Kj z0s;C?DL3Fe&+|OvKRNXu$4eG%o*NDKH9oaaC-^HX9mlc7o(8J9YBU_jag|?|*LC70 z8@TLb!@Whoe(y7fvS?t&sD-Q(s-rrZwUs5Sp}j)Ieq_~SC9U71Z`de8mm4EtU!$HQ>V@y&Yz;q?k7@doi)YYp6Wem zU8mNLzSSjsp9c;A0002gS5Oltf3YrlR!)D`FVVVlf|bW#JFK~HThIp83~NTzHuLy# zvVrR-N4#wI>3=7>Qddw1wN%osL4%beoj7&;p}81WTo+r(i?mp7JtmoTkxtDd=?tKD zixn#glm$?u#)+f)C$g^&Nq?Ts*)pEC$W>4KPP#=-Jb|(RlBFq}T&Jci;UG6S(^s6s zbJiTYf-JNEQ;5gJ2yw}Xt;$4`y1G)nh%s`;UHfjSuYYIhhM$#a%m`4!*18OvzF;Se z^9(I9&(Z=rhB?MqC64N6+0Z-UzQz93*M(=%K7zpWnEr(e0Pv;c#kh;6^k$`tmdfUf zak4NXx2esoY=7iK>89_Uj$Yu<0HLa@9xil7_&NZ9>C)K4Z;&QFxom2mbw$7~Ox<*PYl3GwM1s!B?P}!Vv@-8(( z)*LzdlMC<>@x=PlX zRj2p-kv%&v*XHQmL+)%ltKqX>K_d(vTye4Y(K<9T;XN18be89$000000000000000 n0000000000000000Jr21YQy3zXO7EM9EZc;`<-Tcgez43f2!HFt(@qtr7-< z5C~9H$^+QU@sUM~$41?KjZZDq0shKL+qNySr-5p&8V%dF9p#7Rb)9(0 z0uDP_cc%zg?|tS_77ff8wU9MJbyP>QZ)M5V&{`q>BjCoh&wrd1T>H5e>M>d~dMPXp zKJ15;rV!H))vcnmoWB0dt9w6fL5t^r`l`1AD-a{=)T#4?{ikT7`-xP#&YEH`PxYL% zj#FzzKk5*E&IJbm0002$EvSi;zgP!7E2n?!n`qrQ!OG*e9rn3zThIp83~NO6ZRYah zWCO=fj(FK@(|=ENrLLfMYN@1ModzpM8gc6QU2`$6xGuJm7iqCvdQ39wBAuE^(iuSQ z7AsZ~C=;MYjT1-pPh?*mlKwcIy=6RYk+Yumopg&FcmibtB$uXea-N#9go9k*OkZ&} z&sk&a3bN1yOd%cmHY*cN>S{`P5o6?xJJ#K$zJH#j8{R9?m=U0ct#ueSeZh7Z z=NejKo}~$P40DXJN*vYCvZ1%fb(4M9>%zNeZ$aRFOn>150DLJKF|GuTb@kToyfOyG zI9V8x+tkmkY=7jTblrQWBbiw>Bl1~LO>3%V34yj=7FhVF1i?mK!m9OPFpG;&w zGq>@%w0|d{PB)wwC*dU?bcs*mP_yYY{`gznso1L*@x zdiNjMvU787_TE8y@!tO7>u*7626wHv*!ybQnKvp002ovPDHLkV1nKPOb`G7 diff --git a/tests/integration/nano/snapshots/nanosp/test_reject_pk/00003.png b/tests/integration/nano/snapshots/nanosp/test_reject_pk/00003.png index 137ca9e4946dcd461fab8ca146124917077d946d..3d36b194cfc82107a670d51fb067ff4ddac0c997 100644 GIT binary patch delta 341 zcmaFI^nq!DO1-(Ki(^Q|oVPb4`I-%QTm!ei^1JbW(w^yc5nLwBTppo+F4)Gq`UYmD z8yw_efB>y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_ballot/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_ballot/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 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 L>gTe~DWM4fE9H&1 diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00011.png b/tests/integration/nano/snapshots/nanosp/test_sign_complex_operation/00011.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 zcmV;%0y+KI1>OaaB!8tzL_t(|ob8%PlEWYjMV(Y`;`<-Tcj<+zX`=Cii6LG8tr8m~ zA&EgGk8LH6<0zl^eV=H_OlmLOtap~`doV}$(v6l%y<&8+>U^^Ad-<^ank}9bA>Nal zIV}{bpY@j&ykEP?b12^NL_9&HeTb4Jg}(qy_rAz+?W5Fdr+EodvqDyWyw|0GhcPQC=v!1M$&*L)j%Mznih17qT4 zBsQ{Xl0EY#N;eYNGwUyAL0NM>A!7?m&}+z`@JpR!37X3&|B9aq0$r(d@st8DH``_a zuKsLUCxSUA1{@M9u1~u-b6X`N^8lIw=1O-xJ&V6a34gqTHp4Wm)!G#<`3D0Y0WV4$ zJ2eBA-U9^bI{uA(QvlNKF>RyU6GE2dcxUVSr-CQYe5)JlzM%G?-i|BVxCZtHg7j)8 zE!jsMIks%%LBP^uOd4$6GVL3O(6q;6%qCoG)#vC9*gxx&Xeq zOs@-c8-E(~7jJ7PnvpQ;9UrGYN3cXNE5)>Gy{v@wDt09t+VjyGCR8q!|( z)dB7+HN8=QH$t(@@&p;?usWdcKbK-1ZyNcqy>1*j2B}*n7h)Yhq3FK%MnuCeSsx<#1M#jPb5JCtcgb+dq sA%qY@2qAWhai~XwS9Qg_f+O_rlG3SE;@Sada=-K04*-tmOIiAehpElV1I0a)&RlH=S*uGdcg8h;&kSmlU?FY?9m7--&~ zCI1s*QxGS=EkR=Xtb#i$=)U2OH^5W;5ovS};wGtW!sUI+_Pd29ZTTj=e1QP~006*T zNOhAv$Q~U;0{^NgWtygxS6-r`l$~xf*Qzvzpo?{rJtT23#zRE@^GrilDB7bjXA|zV@}qPK?4Nzv(t9?0=CR#9cE`v2YI2MkQ|sac zAZR*wdVg<1U0iQbeC?K0;y}1D1SbGoee;es+Mu*Zd)}7^c&ysg zMiIOevSqe6kzr1&1IGSyN!Iby$fxaf^WZUX-Lkk4%l?ES_Psw6hN;;Z8QlY19i*jr z7dX5blGT}K*}-mJUA@8*sBRO_uRoF^^EW=i27Xx6KW&=AW;h7_BGeV=Vf_l{0I` z!@p;KDNo%beBqp&LCGZM$vZ`#^DlSQoxz$`BI&hR$jfr_T~ooCag4DqOs*}PCnT_B z5<`W;tN!NM&F>~9&%b`*SMDY|i(uVPs=rRWefHQaud}SET=DaoXI;nMs^`_8%>7dM zrI_VrNYyX-59NY>y>fFKIJ{-NCfxb>N?CSu;I=h)?!}kKdQ59T3Orr?T-G@yGywpl1(Le} delta 317 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 V;ORDdeNYgjz|+;wWt~$(696=6uWbMT delta 375 zcmbQqJc)UNN`0iKi(^Q|oVPav`I;4Y8WOix2*0aWdB2H$a@*E~)qE{a|IeGjjEaO@;djDmRU6LTq-^%vti47 z=JJ_}i@)8>5?Ov>^Xqe`FDf6CWXs>U_Vb%lU)BDyE!ce0DxuFml3}v-ypZ?nCqA&q zSfA~yxzp`+=hgj77T?l4G;czF!IWEe{`*d=RbKse|Bz4IVzZZbTy(29%yI1b$|kb& zv*Y$zTMQi8cO)PEIPdcVwci52?V0y79<6owx;)fy@mW#HtutB}8L)x_HFp1^1fEUr RmFWS=d%F6$taD0e0suO5vflsz diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_delegation/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_delegation/00002.png index dda85c1052ee8113f3bcd1a38086fca1ddf42d04..1e62caf7ae43198708e284e88f2142282ed11428 100644 GIT binary patch delta 701 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 M07*qoM6N<$f^`>X1^@s6 diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_failing_noop/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_failing_noop/00001.png index 0ca80cc7cc8f304377709c6a8305d0b9c8f2a4f7..8876756cdb360eca86c65f844634a8f694693e3d 100644 GIT binary patch delta 76 zcmX@ge4KfL3S-|!)nrC{N83Hs=~Ev3?CdXW_O)c6arz4bRv_?%H)d5S3!~EkL6E$s LtDnm{r-UW|fJGEe delta 74 zcmX@ke3W^D3S-Yk)nrE7g|9_~Z0tW8=55e?&QLs4jsYuZ+QWFwtteNqeu583-qY33 JWt~$(69DjV5}E)2 diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_increase_paid_storage/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_increase_paid_storage/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 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 Rywv~z002ovPDHLkV1oRNMEw8& diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_origination/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_origination/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 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 delta 911 zcmV;A191GU2c-v)B!6s4L_t(|ob8%hlItK0L_N2%6YqaX*~|TK6+@(^Y4h|{bUvmM zEQ1i@)tR4TA@BD)|9YM$w=@QMAv6%{c@+PAkqOgqhJ@oh&nJf!0t5Tp4i6vcNJ)ds4PaGJGVsoGRVqDw<h872Ay^#ZE}HUH3|_;hu~Si-`iFNn>~w0~9A!^oTPKwtakQ=2n-zK`mx zm7~*V(uUtjAS9#HK1Mb---_S;#3=CTl{=&NPH!FBx2MTtINztkD%PDHLkV1nT6!rlM? diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_add_messages/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_add_messages/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 zcmV;%0y+KI1>OaaB!8tzL_t(|ob8%PlEWYjMV(Y`;`<-Tcj<+zX`=Cii6LG8tr8m~ zA&EgGk8LH6<0zl^eV=H_OlmLOtap~`doV}$(v6l%y<&8+>U^^Ad-<^ank}9bA>Nal zIV}{bpY@j&ykEP?b12^NL_9&HeTb4Jg}(qy_rAz+?W5Fdr+EodvqDyWyw|0GhcPQC=v!1M$&*L)j%Mznih17qT4 zBsQ{Xl0EY#N;eYNGwUyAL0NM>A!7?m&}+z`@JpR!37X3&|B9aq0$r(d@st8DH``_a zuKsLUCxSUA1{@M9u1~u-b6X`N^8lIw=1O-xJ&V6a34gqTHp4Wm)!G#<`3D0Y0WV4$ zJ2eBA-U9^bI{uA(QvlNKF>RyU6GE2dcxUVSr-CQYe5)JlzM%G?-i|BVxCZtHg7j)8 zE!jsMIks%%LBP^uOd4$6GVL3O(6q;6%qCoG)#vC9*gxx&Xeq zOs@-c8-E(~7jJ7PnvpQ;9UrGYN3cXNE5)>Gy{v@wDt09t+VjyGCR8q!|( z)dB7+HN8=QH$t(@@&p;?usWdcKbK-1ZyNcqy>1*j2B}*n7h)Yhq3FK%MnuCeSsx<#1M#jPb5JCtcgb+dq sA%qY@2qAWhai~XwS9Qg_f+O_rlG3SE;@Sada=-K04*-tmOIiAehpElV1I0a)&RlH=S*uGdcg8h;&kSmlU?FY?9m7--&~ zCI1s*QxGS=EkR=Xtb#i$=)U2OH^5W;5ovS};wGtW!sUI+_Pd29ZTTj=e1QP~006*T zNOhAv$Q~U;0{^NgWtygxS6-r`l$~xf*Qzvzpo?{rJtT23#zRE@^GrilDB7bjXA|zV@}qPK?4Nzv(t9?0=CR#9cE`v2YI2MkQ|sac zAZR*wdVg<1U0iQbeC?K0;y}1D1SbGoee;es+Mu*Zd)}7^c&ysg zMiIOevSqe6kzr1&1IGSyN!Iby$fxaf^WZUX-Lkk4%l?ES_Psw6hN;;Z8QlY19i*jr z7dX5blGT}K*}-mJUA@8*sBRO_uOaaB!8tzL_t(|ob8%PlEWYjMV(Y`;`<-Tcj<+zX`=Cii6LG8tr8m~ zA&EgGk8LH6<0zl^eV=H_OlmLOtap~`doV}$(v6l%y<&8+>U^^Ad-<^ank}9bA>Nal zIV}{bpY@j&ykEP?b12^NL_9&HeTb4Jg}(qy_rAz+?W5Fdr+EodvqDyWyw|0GhcPQC=v!1M$&*L)j%Mznih17qT4 zBsQ{Xl0EY#N;eYNGwUyAL0NM>A!7?m&}+z`@JpR!37X3&|B9aq0$r(d@st8DH``_a zuKsLUCxSUA1{@M9u1~u-b6X`N^8lIw=1O-xJ&V6a34gqTHp4Wm)!G#<`3D0Y0WV4$ zJ2eBA-U9^bI{uA(QvlNKF>RyU6GE2dcxUVSr-CQYe5)JlzM%G?-i|BVxCZtHg7j)8 zE!jsMIks%%LBP^uOd4$6GVL3O(6q;6%qCoG)#vC9*gxx&Xeq zOs@-c8-E(~7jJ7PnvpQ;9UrGYN3cXNE5)>Gy{v@wDt09t+VjyGCR8q!|( z)dB7+HN8=QH$t(@@&p;?usWdcKbK-1ZyNcqy>1*j2B}*n7h)Yhq3FK%MnuCeSsx<#1M#jPb5JCtcgb+dq sA%qY@2qAWhai~XwS9Qg_f+O_rlG3SE;@Sada=-K04*-tmOIiAehpElV1I0a)&RlH=S*uGdcg8h;&kSmlU?FY?9m7--&~ zCI1s*QxGS=EkR=Xtb#i$=)U2OH^5W;5ovS};wGtW!sUI+_Pd29ZTTj=e1QP~006*T zNOhAv$Q~U;0{^NgWtygxS6-r`l$~xf*Qzvzpo?{rJtT23#zRE@^GrilDB7bjXA|zV@}qPK?4Nzv(t9?0=CR#9cE`v2YI2MkQ|sac zAZR*wdVg<1U0iQbeC?K0;y}1D1SbGoee;es+Mu*Zd)}7^c&ysg zMiIOevSqe6kzr1&1IGSyN!Iby$fxaf^WZUX-Lkk4%l?ES_Psw6hN;;Z8QlY19i*jr z7dX5blGT}K*}-mJUA@8*sBRO_uzLjos z7CHO1SQ>NY^^5iSZw>|k003AUo{EUW4l`Dcf!4Q*n9Kqbo<2fE(t^IV@wReU*uiql zLFkmIp3LYyQ-6JLHMHtj0uwkAENg>G)!Vfygb94p2lc?NJ`POS72-14g0k$i#5#*T zp*`ME<;|X%#H!QiK@~3dJ56djZLREPd08H5(k0R_)g);-GbT7(d;&TLI?>!pK+4YC zb(2&#Rx4H@`7;5X{aoj&EqBcAwprTw4%o73(OeHFjekp3rs~!@HPXJs$IuJHQh`;f zHm@GP*ip*b>50LrnkuoZ9X?e{FfZxtoP95|p$WwWP33{BsgL|kcv-6FbSwe@K9oof zhdv&Js$@SABr7w?z6!@AKcf{9-a}guZuOfo!Jv}34fOnp|1$3%>6bSFGOOh$ZQ^Fp zhV(Yz=YObuMaNI#H*o=OQo&mJ8Lcq^U+z}9LshpRD+m3IS`>5|)wYfcQmd(z*$?@z zWhbNVf`W@kE{&;B75(n3T5XjWkRajTBRu95UzvbO!#9j4p}Hn8r9WgKmSj97HNz3eV6O7AhSSd8B=^`HV8EAbwrqx3K&Wn>LEvTuwp>Y{)<(#mK z<*%VRQ|JFoCb_9e8Jlk3%w3^wBSnZ75AiO{}rm z1HJnjLihqmp_)DE2TGRbohCJnwpwEam_R7q;ilyS}#Sb)xn4s59E%(jkd zEbw5pqB#=20G&f!B-)lI=61!j-oXjjqM6Zans}(ngnwqOvqw4>{{&W?u7FR3FalewcF&CIy8Yz&^#WvoBHUAgx92cPtQ$|Bp;0@lS3a5 zLRGRe1tev9{H?Q<-;?(fal)GaptucX?GHGfxk6;`C1<^+qVgzp7upx~JVEU}u z%ki7|?SIt7md{$*>8!!tzG@r}0c@`QHY`}RvaO!e1i@;yRiyid{)HMsye7!Gv*aF` zN9^zgEY)&8AV9z}RC&fl-n9TTrf(kevNuvP^*S*RnA)!1-@&{bX*>%nk| z4n%%^HI?`^^bq;KSSZLCb(3i|0))^dvB_T~ceKqsqB_d5EtnV|Cr{OZjw#QuIybJ4T{t0{{-NYmjF z0yU}X|9m>P^CG9=v+0?{T!5R&1xS)4Ns=TTc?9lLqhrP``?db{pjpG zrn-!U0To35*yKO|c_nY(;}iDl3pp15@@+0yKj(GZ2jO)Qi!0;h?@JvK{bu>h_dw;m zC>H&`#}l@1wo&cf>|r+HxasUAEeqn77VM}Oo1S&_%OUo&8v|3VEAJn(oc*S;Wc7xV z>D?PkR$Jt~$Y$Ht9=o-3_wDs}M9Xa%!wV&h zZNFN6;N2?O)%sV(gcCHDR}1D{YwOw0a+TZU?3Pm&UgqzdJ2R!)ms}J0cxC>UPkbi= z&zTwpiY` z=a&X?hINib6R_{Q6~TjT+w|?MFKJ^D5d(eRvMELg+EprtTYqt_R!y&bupApz_LKMR zT=NkRv|E*pT&>31t?Im^ZyER=UaH-=yW`52;-M$tNO-$y>D@$PIrG?B`mKRa6_oBz zxQC-$E#b#u_8qXgYUk=}waElH%H>>yyR|`xmY{Zlu9;OCN4bpqP-42qDXDctBK4=t zyaOc4Qgi$=J%5^yR^Kw1RI{o_FhgBseK?%y+-LJGuyUNfN|MpP{p(LYa1Y_}J)y|^p@I^cNo_f`c)6F%%jny_b z#K!54X&)l`RkP1J-<@^o!zlMRVj6KpwtsqTbzt2F?bMN`C@WXmYKOvWDmL*?v5ZV^N?z)Zy$H2$?&Zht>)CIBjnZw1}uE zT_+FT$bXa1NYzjKu^y9yO4kBjNIJkhw3nB`_nH`EmolH;ANlkKYQ*C>+UV1sj4l*B zkabzuEO);vaugN(d-Hz-E}4CVkS(zupYzClcK4YT`x}Y=Gk-dfEP{N|U$&t4yayo* zAF&|KoJ^hpCFma1J+!WC5|#9$ZQr(;4xoFX?15ifUN?GfjN)xKd5S;n+moJ#KvzJr znY;l>l3WOtA}T_eE)?$Eg7{e%3$Y;mA*GzwbMfRtZ1mRew~mkW4He z!WZ)^oI~mne1Fv=e%>t>vH@!QtfpO1ZE;(yI|kS$B-W^b980)R6${ymq!mEuK9Lp? z7;7p3?2N^^`7>ar{9=oxNJCZ0VpQ7ajAct7ofdBV3=J+xk|asKi(wXY(xz5ssY~mv z_%fC<&X;VSo&B*F!`lo?Q)CtHud9??XefTM<$9)D1H0VIhVuK*K9$ zJGD9USUhEyONlGJm58j(XTzwC>`EIE@niFBJ3yin6jH<#v?^k|eo;RS*9Us79O0hG=T*+NegMos-l8DI~ap zYc7@gHd=I`822WYC>@Z`567hiA?jQCV$BDcpXJYhubq=20~r*21Gj3%JQ<7t0000< KMNUMnLSTYvwO)7t delta 728 zcmV;}0w?{>2F?bMN`FGBKys~*vWDmL*?v5ZV^N?z)Z5u{BV_Ds9$F{lci z!WZ)^oI~mne1Fy>e%>t>vH)uPtfrk%ZE;(yD+bsmB-W^b980)R6$@F5q!~cy?nsLW zj5QSicE;k|d=Je6~E zzKo@e^Cg>SXMgO)aJM)lJyThx6{*k@+=7(KHqYUfB7YQOu_esTg6Om8OA({-nwCN% zi^^M37BZyG@%sKD?ztO_blyAy)4S;0QW?w|?R1OvHud9??XRYI#n$uPX=supNs=TBvHv8As9+v# zE-E6|)PGc-LFcO1<>r7@966;eIQ`n3P~53HW4p?!@ts`rRzy@ib%V@$Scu^h(C~`c zPHoP7FP^f?rNouqOho49vtiUmcBPGo__2Am9U##O3Mpa=@`@Q*weP3xXo-9P2(jAS z4Va{%&ez#O($J|l*^k*XvYLlzd`XfdNs?T_st^AMRHIF0Lo~H@ZB%!m9h1}oDI|Rb z*IX*~Z8YgXG44$)Q92+WAC5~4Le#hN#hMQ?KFjxjuN{*i0~r)@__Wh{7LOqS0000< KMNUMnLSTX{3v1H= diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_execute_outbox_message/00009.png b/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_execute_outbox_message/00009.png index 445ef21fe185e57ff3b78779e82da747efef8e42..2afcc241392199be0c8e3a3d924576979a70c1e2 100644 GIT binary patch delta 855 zcmV-d1E~D%2JQxsB!4wYL_t(|ob8%ha>FnPMb%Ds;{7ivd+CQestX8R9#TCH=PMxy z;TJ+T{%C7>ym_?9)s}1AmnWwXIDJ8LgKF=eMDb|@4^^MH_Ir^bk1i8`wl%RWFgOmp!u^?_iCTl=Tx(2<5 z_UD?+O7gh+Uwx(rAP&?c@UiW0q36adZd>Fj@wRVIdzu1$0*cMl1t^N*AE8o2lQ!s6 zi)jclO7Uq@mw%#&Wu*52J$3bM8dDTwM$u?!hXrv)MwxuTQPb8|^i+mSW1bc;+LISy zyzkESG&TEQ;v6IpZm|{$pAVSxsCt+@Np4_FB--RiOdt60brvw6pi#`kH2kegP_M#D zIbP>!LMTBG0I3`6JWbFGK>jlVEs%W^ zb5M`!;6AwY=BQ)ur3Hz9s5yMd+7_ur?{xvPa7%BT$(wP$Hq`XWn>Z@cET%6cqvPU7 hhh$Y0MNt$#d;FnPMcqz!;{7ivd+CQestO2Q9#TCH=PMxy z;TJ+T{y5g~dcFFu=XoxgXbL2mRvCFq{lAmzbFEQni>$r^AZU4vFb z+jC83C3*Dzz0dRj#C1}SAdc+|JvU}?+agbiw|#rs(-i0vP;90yKv5L`2$doZX@fqs zn1&#u6rV%tQhyY&jPxF$r>?$DV~S$TC>jmzuprLJD3cF3YTDY0p30DE%*z5sd-5WT z_uaXkre^<3oPz|yE!INe^8s@nRS%OV$qkH&M4KFm=>s3W&I0BWG>Vy+hQDoDQ@w#6G|LJ2Sjp4@&Wb4{-?A? z$hRjn#Zi2eILIij@nz|NdWK-Mi(80si$HF=+z#Eb6C8?h5q*kVkT_Q5>)5CRf*Fc2 z5jAi~P@h8L_@-a9QuiA)^o< z4)TVY?=3bYLp)kh6h%=K_h9&!WR^tbklwh(B)#!b>9580On2j+Mkq_7LgJV<(k6>C zmuZ)aOK+yEF65nXR@3_I<~L<4ZrBO?Bq}`4VXSx#DGx2ur5?fFf=7>7(( zRAPIY9-NR3qkpXwabKwAIcr&MMvt}4OnHv<5=w6|Zv#?PQkOg_b@}wfwvi=ZERq8h z;?<2|1vmgpT?j`Nh)kt7`R>{Yh~lWxFP74q>Nz?A*XzOVkul;Qm-zH>A^ste{XslL ze8xRbk|arz&pL?*q1t8IVSlQc`K_hf+DXlml8WJE+|D%i zb5dq$Bj&DBffDO(CALC`__IP{MyM;PF=VpMeDw{l25y#A{zffmgj#6{tOhRP51)=c ztwQI+mWCGg*lM!qYr|~`pO#`tC=q|oN<)(*Ns=U4!Y~V}$f-!_B`|7*&X>}dY=tL6 zQMPQfdw)nGS1)*DM9-ux!KhGG#C!Q{3EicQ*#Fq+aE^K?>2Ip;lV4HwxOJ5^;5vasrYhc_XwGQ5o&X z!Cm{PmrsKD<&v~lQ?Q?s}>ZcCbR*>sa8{Qb-l&bqoRbujI(&x69+w+@#F%Fro zsKoX(Jvbp7Mt@r=;=WMJbJnujj2>&7nerUzC6wM`-Ug(oq%L_<>hkG{Z6iy-SR@B1 z#H$;_3UC0Hx)6>k5SdDE^4+x)5XDiWUo53J)pK+LuGfRzBV)urF7fH%Li|G_`-6Ch z_>6m=BuSDa$r+$0<65EVaGcQQEfqS%pLG%sLbc1Z!+%sY^IJ=|wUe4BB^ATTxSeV2 z=cLTiM$BEM0wvbnN^FG=@n?m^j8IonW5{Hi`RW^94csiL{Eb@B2({7@SPfjnA3hy@ zT7}MsEe$Q~vDIYJ*M{2?J}t$PP$K@Em4+rsk|as8gkcs`kyDYEKWi1+f@61qzpvH!8t;T-i)(%)3wC%>ZVaqB8;$aAf$ z7(&Qv=PlK)SX=H8WYWWZCiGVTiIPGr+F9*7u(GB`Y1QZc1mGvXKADh_v6Z8d;LgvH qt*dSMY(+g6Z|1X}BuSEdC_ia+q+Lg@P;vkO00{s|MNUMnLSTa3S4b}a diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_execute_outbox_message/00011.png b/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_execute_outbox_message/00011.png index 0f3bf5a6ffbaf51a690eda124b6aff355aa75ad3..8b2f30ef6d3655f6196e435a6656b9a5f812cafd 100644 GIT binary patch delta 163 zcmV;U09^m~2KNS#@PCfF0`Gf$272C@#lH>ml=!x9&-OG0x&n&L)D0+#;vlpX(NNNK zQe%kQh-RabfJtX6n>c3Bml=|#U()u@VWaOjl|76}2XVo5*7@QbcnN3ig?H+#+rR%R z=a77aCo-d@is)SG`i-^r>IM`=aS&RHXeenq zsWHTDM6*#zz@#&kO&l}m%M3}=FKK({u+ev%${xm~gSg;2>wIwzyo9s%!aH@=?caZu zb4WhI6PeLcMRYE8{YG?r>lEY6j`&8bf6s0dn;>8Gw-EHqJxDqD$Os~~i18cHlJ=m-(0;CoRpQ4eKgyU3 z5GU#y_}um$==oq4j}7va^|bFydYS?~0mWfz1B#;fAVMqRz95YReWXd5gVMkn^8vlj zMKXt3pTOmttA7LGeGY*&${=MSso=#6Q8Sn|B8h3hH$}#!8TVX~JpCh#=fZzY*358u z{!5(StiyuKwD&VRJFSfc1Vys3IG_X^(gD?H>6+I)kB1=rK!LGHKk}v|5=;=^Vlpe9 zE7PG6loAbY+dVj%VHc4+jQJb_o(mz!YZU}Jr(VgEAb*|&Jf|BFOVN0o6(g?*o}zJ` zNNR}8LS*ikSqup!M);={E30j!2oPjg)8K+ zHn75sRm-MVh+3ED@n&3ZiR3MF&ak5hCCHVqe&`g>@CH_{HYDifdewj^7vH>_`O zs>ksb(gn*ZjCDU}ULkW8ZSAqIr~li%xshoz?ti{;6+tr@ZwSJ>V2DNBtE~RxYH2n* zO-N4)Jf4BxT+AXa6Z0ypt%HUjq>95bss^K(9JbGw#^aZ`ob2XL>cFrJ+b_ zrN}7h9r)K0F%2b>-lWi#hMHcjYb%PPD2n1k2w6~|f#phgnv@Udsl|%6*owdruSGi% zihs4S_${yw?6<-tw5ct&BJZjZi%XU8K62}tTy0qv6@lr$skYGZ%zgVzf0x3mEw&5~S%z+r#Vi z8h>8bwaL&K`fyGRgv?z`!>EM(H08sFHj!mTRPw=v)))D<)b)%%`!%`fh%I18;sDn$ zc5jpCnl$EaWj?*1`t1XBi`R9H)=f`l9Tg2^Up6+&;C-!ahh#w;Ei6b8`3;&p`nc?#M zkJ!Iin+2C?-}mfnw>B0K6v@WofD&*>1yt{)YhL#}9)k1@1;!$M%bSu&FhP8a$*g#; zbcaGvN;J4__uy!TT}1LQ<~#&E7ebKNDhRSqy^<$EJbwvzP8T4SqVYH@MqUv-MdLb= z)DY=~$nZwo^GF(66h%=K#a^bxxQ11o%#ssw<_v2?vLK`d_lisM83X6R04!96Psm|y z;0ZH!S~k5x)Ve&67vpk|NZw=48Fm~(3Gzu;-*k#+cmXR{8xr(#y=p*|i!a_vU5woA ztZTz%kbjog7!_At7CUk|8Z0@P^86WD(UwT!7#FdNah%*@+4<6&_kFX~D|-P}%4$g2 z3)dF2h$Nl3SFwU%Q4~c{6wiYe<8Eg4ro~UmaIt>N_2oz`DFXczy;8J+V-&!vOJH}` z>2bV;RKcnuZe&`FyMHfShoG5^Hw58TFvKG6RaX6R^=LNR zO-M}&+@68jT+AXa6Z0ypt%HUjWcQ`)&>q>95bss^K(9JbG49yxx9lp|Grbzo(oiI| zQe>3$4*YA0n1&KbZ&K(=Lrt&NwG~BC6h-kSge)jfz;Y!#P09!K)M7Zs0d8|O|^x#XYSW$`nMEbZLtxV zE#bQ1jj#YDtb1F;Q|PSM45E!+#I&Wi;1*{@KFmT;mZ3u;<6`v4)ppF{t_48It#IwD zmz}oAa}u-V^@Y+R>KSi&`-0kHBTBc(WgCj3D2o4`zjAFmT7RTzQ~&?~07*qoM6N<$ Eg1L9gQ2+n{ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_execute_outbox_message/00013.png b/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_execute_outbox_message/00013.png index 25daa7d4ac57a1ff706a33fc2c9da30e227bff9a..867644e99c0a6c0f6a9a06c19f5c901f08031426 100644 GIT binary patch delta 444 zcmcc4e2sa6O8s0<7srr_Id5-7_Z?Q?aR`h$>v!Y-q)pR*b{q+qEg{Zx(&KxL>J=Ly zxyF5$q>dL}*>3sVRrGD3T>A0mj&k!br`V1iZ;$bZZ}AAxJ?j)_m9cN~`B`3;Uvqbg ziMtvfof&B2Fg+mMU;J^D$}zvxzg73YotK^>ReY}W?cHfHsU}|a0-udmZoea=U8Wm< z@$s|u%z2f+cG}%vthagRxit~@UEaQ5Ex(~d;)T5T1>@feDUYgyY!WA1-ER=N z!k)^j`#I{0)~&$f*A4HoXQXZMzEFAjxzl>##WrOVr$5_XTfJ?$;uD?&X(bE|(kJ&T z?fUYuR>xJnDrwTKMG`v?o!(ggf70!}CqK@S?iER%o^)i6=C@^+cg)anKYm3s`S-f| zZ-RYNNgJI@)872=xjMb-{Dc0DhyNG`mR@b&w0fz}k~_tFgpAJ>i{;9ds3*@l_*JoH z*__n|{>pRR(i)ygvIZK){+hkB@5eNrE%pnT<-UG1pB>-5?_I+R-lZE4-7>uU?Zp(+ kjYTDT=i6Bru!Dq!@##6Yo7s0saex$fy85}Sb4q9e07+QUi2wiq delta 445 zcmcb{e4TlMO8q=f7srr_Id5-7_Z?Q?ak#kUmEVp3lQvEN*>S|cOoE-~rN{Rg)hmpL ztZQYn=RA+Rw`_`-=oa_7xw867xAJt_jf4wt_sZ*KOk5GPYUZAj3pMKTs!wZ9-LBEq z+mzMy*)foDuJg|y7bUJM8J20iepY+iK7WF@kLJ{+<=L02E}U?zKXcl7Yf*zGyeU<-GT9%114hN*IQFy>7X+cg7j_<5M(~pRcRm z#_7(x@y0?c<8SuKPi6O(e>i?4@!yOUn@;s_x)!7sH1FpgA>(uN&i&eEdhq?Rkml3< zA7<7>CC>A*>OI47)|hKi(ylM_cJ|%yW_u-nfieE-ui0nUyKc8uc;%3}W<#0Jb~`Jx lR2})hQ___g8L)$h7wmC~H{KjDX!;0J;OXk;vd$@?2>`fF(lY=6 diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/no_whitelist/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/no_whitelist/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 zcmV;%0y+KI1>OaaB!8tzL_t(|ob8%PlEWYjMV(Y`;`<-Tcj<+zX`=Cii6LG8tr8m~ zA&EgGk8LH6<0zl^eV=H_OlmLOtap~`doV}$(v6l%y<&8+>U^^Ad-<^ank}9bA>Nal zIV}{bpY@j&ykEP?b12^NL_9&HeTb4Jg}(qy_rAz+?W5Fdr+EodvqDyWyw|0GhcPQC=v!1M$&*L)j%Mznih17qT4 zBsQ{Xl0EY#N;eYNGwUyAL0NM>A!7?m&}+z`@JpR!37X3&|B9aq0$r(d@st8DH``_a zuKsLUCxSUA1{@M9u1~u-b6X`N^8lIw=1O-xJ&V6a34gqTHp4Wm)!G#<`3D0Y0WV4$ zJ2eBA-U9^bI{uA(QvlNKF>RyU6GE2dcxUVSr-CQYe5)JlzM%G?-i|BVxCZtHg7j)8 zE!jsMIks%%LBP^uOd4$6GVL3O(6q;6%qCoG)#vC9*gxx&Xeq zOs@-c8-E(~7jJ7PnvpQ;9UrGYN3cXNE5)>Gy{v@wDt09t+VjyGCR8q!|( z)dB7+HN8=QH$t(@@&p;?usWdcKbK-1ZyNcqy>1*j2B}*n7h)Yhq3FK%MnuCeSsx<#1M#jPb5JCtcgb+dq sA%qY@2qAWhai~XwS9Qg_f+O_rlG3SE;@Sada=-K04*-tmOIiAehpElV1I0a)&RlH=S*uGdcg8h;&kSmlU?FY?9m7--&~ zCI1s*QxGS=EkR=Xtb#i$=)U2OH^5W;5ovS};wGtW!sUI+_Pd29ZTTj=e1QP~006*T zNOhAv$Q~U;0{^NgWtygxS6-r`l$~xf*Qzvzpo?{rJtT23#zRE@^GrilDB7bjXA|zV@}qPK?4Nzv(t9?0=CR#9cE`v2YI2MkQ|sac zAZR*wdVg<1U0iQbeC?K0;y}1D1SbGoee;es+Mu*Zd)}7^c&ysg zMiIOevSqe6kzr1&1IGSyN!Iby$fxaf^WZUX-Lkk4%l?ES_Psw6hN;;Z8QlY19i*jr z7dX5blGT}K*}-mJUA@8*sBRO_uTc?9lLqhrP``?db{pjpG zrn-!U0To35*yKO|c_nY(;}iDl3pp15@@+0yKj(GZ2jO)Qi!0;h?@JvK{bu>h_dw;m zC>H&`#}l@1wo&cf>|r+HxasUAEeqn77VM}Oo1S&_%OUo&8v|3VEAJn(oc*S;Wc7xV z>D?PkR$Jt~$Y$Ht9=o-3_wDs}M9Xa%!wV&h zZNFN6;N2?O)%sV(gcCHDR}1D{YwOw0a+TZU?3Pm&UgqzdJ2R!)ms}J0cxC>UPkbi= z&zTwpiY` z=a&X?hINib6R_{Q6~TjT+w|?MFKJ^D5d(eRvMELg+EprtTYqt_R!y&bupApz_LKMR zT=NkRv|E*pT&>31t?Im^ZyER=UaH-=yW`52;-M$tNO-$y>D@$PIrG?B`mKRa6_oBz zxQC-$E#b#u_8qXgYUk=}waElH%H>>yyR|`xmY{Zlu9;OCN4bpqP-42qDXDctBK4=t zyaOc4Qgi$=J%5^yR^Kw1RI{o_FhgBseK?%y+-LJGuyUNfN|MpP{p(LYa1Y_}J)y|^p@I^cNo_f`c)6F%%jny_b z#K!54X&)l`RkP1J-<@^o!zlMRVj6KpwtsqTbztOaaB!8tzL_t(|ob8%PlEWYjMV(Y`;`<-Tcj<+zX`=Cii6LG8tr8m~ zA&EgGk8LH6<0zl^eV=H_OlmLOtap~`doV}$(v6l%y<&8+>U^^Ad-<^ank}9bA>Nal zIV}{bpY@j&ykEP?b12^NL_9&HeTb4Jg}(qy_rAz+?W5Fdr+EodvqDyWyw|0GhcPQC=v!1M$&*L)j%Mznih17qT4 zBsQ{Xl0EY#N;eYNGwUyAL0NM>A!7?m&}+z`@JpR!37X3&|B9aq0$r(d@st8DH``_a zuKsLUCxSUA1{@M9u1~u-b6X`N^8lIw=1O-xJ&V6a34gqTHp4Wm)!G#<`3D0Y0WV4$ zJ2eBA-U9^bI{uA(QvlNKF>RyU6GE2dcxUVSr-CQYe5)JlzM%G?-i|BVxCZtHg7j)8 zE!jsMIks%%LBP^uOd4$6GVL3O(6q;6%qCoG)#vC9*gxx&Xeq zOs@-c8-E(~7jJ7PnvpQ;9UrGYN3cXNE5)>Gy{v@wDt09t+VjyGCR8q!|( z)dB7+HN8=QH$t(@@&p;?usWdcKbK-1ZyNcqy>1*j2B}*n7h)Yhq3FK%MnuCeSsx<#1M#jPb5JCtcgb+dq sA%qY@2qAWhai~XwS9Qg_f+O_rlG3SE;@Sada=-K04*-tmOIiAehpElV1I0a)&RlH=S*uGdcg8h;&kSmlU?FY?9m7--&~ zCI1s*QxGS=EkR=Xtb#i$=)U2OH^5W;5ovS};wGtW!sUI+_Pd29ZTTj=e1QP~006*T zNOhAv$Q~U;0{^NgWtygxS6-r`l$~xf*Qzvzpo?{rJtT23#zRE@^GrilDB7bjXA|zV@}qPK?4Nzv(t9?0=CR#9cE`v2YI2MkQ|sac zAZR*wdVg<1U0iQbeC?K0;y}1D1SbGoee;es+Mu*Zd)}7^c&ysg zMiIOevSqe6kzr1&1IGSyN!Iby$fxaf^WZUX-Lkk4%l?ES_Psw6hN;;Z8QlY19i*jr z7dX5blGT}K*}-mJUA@8*sBRO_uTc?9lLqhrP``?db{pjpG zrn-!U0To35*yKO|c_nY(;}iDl3pp15@@+0yKj(GZ2jO)Qi!0;h?@JvK{bu>h_dw;m zC>H&`#}l@1wo&cf>|r+HxasUAEeqn77VM}Oo1S&_%OUo&8v|3VEAJn(oc*S;Wc7xV z>D?PkR$Jt~$Y$Ht9=o-3_wDs}M9Xa%!wV&h zZNFN6;N2?O)%sV(gcCHDR}1D{YwOw0a+TZU?3Pm&UgqzdJ2R!)ms}J0cxC>UPkbi= z&zTwpiY` z=a&X?hINib6R_{Q6~TjT+w|?MFKJ^D5d(eRvMELg+EprtTYqt_R!y&bupApz_LKMR zT=NkRv|E*pT&>31t?Im^ZyER=UaH-=yW`52;-M$tNO-$y>D@$PIrG?B`mKRa6_oBz zxQC-$E#b#u_8qXgYUk=}waElH%H>>yyR|`xmY{Zlu9;OCN4bpqP-42qDXDctBK4=t zyaOc4Qgi$=J%5^yR^Kw1RI{o_FhgBseK?%y+-LJGuyUNfN|MpP{p(LYa1Y_}J)y|^p@I^cNo_f`c)6F%%jny_b z#K!54X&)l`RkP1J-<@^o!zlMRVj6KpwtsqTbzt2AKwsEq_U}+b|47nP0hy?tdiRB@0zCFvjL!Sx)+`YzYKF0^nr-YH#2? z&(_*;9R0KUdK`z8aU0GV!rMwEy;b*Cs*(cR`EeauRH}wvX-+zG9Ea@okSDUOCDJAz zcK59R>thlr`E7;X7i~*kA1x@R=0!1)bhX{j<%zQXQUPxo{eL{=^XDob-SkY9U&2<~ z1sD(9BI1(L^EUuD=l&2fh4FzHoy6`z#o#A;v2LaXGwh<;PHA1*eGV$oU#6hFG1$mN z*vcS%gklY7TVr7RKQtn}hSchcOe|7NE(5AYx@+lv@+AK;@NnMa&;JM#fO|Y4 zgpe;oEl{J=<$ozq8tf}6;65zfTXY!TgU#u$)w!>xZRDMay5WWjH?d_)lWRa6>*&ik zSC^~EJ?ZqVuKJ+1!2N5YVU)-O*vg&;x=en_8i{S&_1n=;%0Ed@Fmv6v$!ElR^fhrN zpGI;ghlqxDSzm*>>A(b2RLi199%r5+}nT4 zSOwtbFG-mQZcS|1BnZ~aF3;Ri%}5*?9YYnQ?mtQ)Rlquzpb@J)bQz(s9) zOEcloYk;Dh$G?$p3P8C$mNHhJ5b{{gR~m3C#ud76t*~tiT2Ic~`N=jv14kV}S`AYk z*>`O@T7T8^Bw*z>rVO@~EZgQGbp46gvj|J8b|2k<_0#@;ZEnw#5BJ0l%559zNsgIO z6X-THX|LYOL3AVGo_CaT_wa&v5*bZwS-UM5>+(G1cEmcPC<0*3_tA-Z3u;5;ZCe}Q zxua&(3-CrL*V&&S-Q0E#u-E7aY91fz`L?xgA8|GY<*2AKwsEq`0m+b{@))qlDZ?SDz$OCLO=DqIhi;yCU3o)Q}Y0(4D&wKs4a zM{BM3K0b@Dz4uwhY0kh`Y14D;u}^^Z1a|1M?aVWkW!7y#C+>LL`=tD z!S3Mhl}4EHdq4`9-m~f#Yhld1rjm_S21X6(PU$uwpMQcr%a#y(KfnnqX>jpkGOzwk z$|C@G;*^}r!5kCYwhGH*F0S0FT5ueoBfy;R*2{B*Y?s1oXa`J}s(#|*;F|zjtA%x2(0Xv#jt{r-G1%(}(yB~+ z%D-SKj(=C6IY?N#lSz}UCDXQX3Qd1J_AJ7)RlSvN!1}5GzjkfU6NmfS9iMLN=?Tu5 zUXvsNpzAv5vn%l-P9Igw^9$mMXEd;-?KUUY>5cDNhULQtvFcAKX50HS5x80%k?0zb z+7OcFUEt-#P|VJ{$_{n&n%Xt16zmvv4FO#sI*3pM}% delta 35 pcmX@fc9Lxa2P0$RW==*OCXtDJ7u8%2cx+(+0#8>zmvv4FO#rs<3PAt> diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/with_whitelist/00016.png b/tests/integration/nano/snapshots/nanosp/test_sign_sc_rollup_originate/with_whitelist/00016.png index fed4816f7c7422d91ab0125da195331055064400..ad24341f5157cea2977af05325c7619e233aafc9 100644 GIT binary patch delta 737 zcmV<70v`Rm2D}E4Jp#_Lkv}efYD&$uDjvDL9ZKs;ENQZ@rSU`hL>2Opg`76b;4q6e zd)qcTu8Yx%Z%m?3A#t==#USY3@J!opDdV@^ea*G(~rzL2AxDN)Ba9h(! zW7S1y>;Yx84`egC8g|Sfw!20a7FvvM1FSBars_gBYDHRnk$;S)JJZ(-5T)sW+bjV9 zfIImLmXiSkcF<;*RaTLPcc|FlsX(nI6NB3Qcu}uymK;{y>M>J&(?t1Dv;%`Y&-H4Q zDjaDM?T*q>0XRSEM{_@aEL*LqjsHWAXDehhn?xI% z0===~2eYId)T5aw-s_a_rOyGczV)$C;H3HC z1a#M5GXVeqfd54F&$#<(#`V;gS2GJlIl@G0N+ducvlgUOBNzu}u(SgrSNXTIv;+PF ztACJLC$csP%z%ekeFj)KKiN51U<%GDbL9i*p8`Gr000000000000000033b*uH?@R TL>D$|00000NkvXXu0mjfFJW8f delta 737 zcmV<70v`Rm2D}E4Jp#|6kv}efj+7(Us#tS-JCxRySkh!)OXG+1i7MnH3ps6=K{bmu zd)qcTu8YwSO7`{{LD*S@o+mn!5aETtVZXJoNwa{@XP z4t^bQ|Jd&$x6tQyg@{+uFduwd8ACJ`dxgCsw$jv2^#+-`QXa@#)p6k^p zRXEZj+8w2%0&srRkLG@VShiYI9SiD+OT%WEnlhHqkUU#b&i5ogKA5rJAEEyEqUD*Z zBQrpi!xS-fmb9k!$U{6aUZrR~#>3I9J=A;Z>OT-)GMyRfjuNq|YmJ@JOc`kK9NP`-#A%p2(rH%9{xb&s^PqI?mP&+5*9LqBl@+aUYb+H(E9 zF2}sJMU_1J5OI||NBUG=+>jTWPWT(GcrkDQ02ep~R?9E1p7g9cWBwxcIDSvXg)}?5tGrXOmZa(CMNGm1GJfja&s)yNma^)1d0R9uvKjZGF8P`)|Ud=2JrG|;rlt_R?W-UlmM=%b|U}*r8gtBc Tl3kZ500000NkvXXu0mjf853L9 diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_set_consensus_key/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_set_consensus_key/00001.png index fd4b64afd249fc1451bac0a91774a566c2b86512..1a75d852fac8ac6304174731c0f6a772e9035ba8 100644 GIT binary patch delta 84 zcmV-a0IUE01O5ZBp#d<(lyi@>BfEd+3eY#M?2k?QCM?4IKT(M=XJYvdZ^c-y{Xq?R qgLj38Z9%|~zx^ST(E%10fawd+(bxWPyC2U00000di2c4YVOTmkyVmHn|v_e_NOf1(m$&cyN^-ionY`-2+t q2JZ?F+k$`}fBQp|(E%100Mi#cnAK+_6R!sV00004hsa(S#7AtNvRh7=bKCeZP*KxUMVx zKF@QZCo9RLFuC7VUC%*$yAQ9l)znK)C$H|3^E}g!yd001(CTTl^x<;Wj- z%E|5JkS;l5x&NL+%x&MCK8S8;Za6T(#HeF; zO~tsw3~|y@?0-JQ`A)>LDnygmojRNihvBQ@?0KgN7i*Ywa=}k))HI>a4<9MM*ZWGP5Y+uXFjqjS|5;gqJW9Vf@ zWsiL3RMU#8S-@w*&%C5c0rXI~1v%d^2~~!Wcd+R|tU7Z2(zo%x6b2yAHH-zGRF|q1 z7qjv=o`2d8*cxxm$JJA!5!8ZWDQF{&opSS(lUJz`yk^VR9~^)s;)(XzON5`LwX2i2 zFoJR>+)-BRvK>1Wm_a*RcY4av_LT9+XFRxe5J~;OSDo7Zhqr9pT#LO|cRACxm*KN- zK`k_HTz;|l(G)V_IR{a9hUcOH0000000000044wc00000000000000009*10R!+n# T;86pG00000NkvXXu0mjf98^Rg delta 685 zcmV;e0#g0X15%))4xH(Cqy}6;eT5^SUv}y_eb@AN4H%F zCx3(>bNQ@7I}3DQy5R)$5`Q6;=3pL@-XXkwZrS>@@OoQ*2rmyXgb+dqsW5IqP4tzc zeuR{Z+skHMa?Eo4o+Fyawt+U7W_WK@+GZ|4K{gO4O3j8|9rLLu6pxTpIUW?OjC2yz ziHDYA+!ngHXn!g380LBxVp$hvliZy;oek7(@%BmrV*<=w6YQhRN zEqd0|zSC~eFP^}d0L`r_oSvupt$N4R3tZ?cLGT>)j$NA!nt&nTd*TX6&-%0+Yf@KN zKg}9BX$+SZd`97ZT<&O~Z4P?Z)4LH`#TYvD;5ftNeAtJY#&An{j%glrCn&J{Q_IMFq@J*L! zf>XLpr+@M1Z!=Pfc|}S*@>)@67K2?1_HI z`UXDXYm-sF9+s}O*b~|GN4;1*1`nBG$_<;C>rg@dT7q`^!2`yO8BYG-wBgiL*#pu| zW8ls_(v2M7>Z+m+vinydx0^pZJ$N$U(6toj9`I)NZ&5J-DJ{Nx20<_mbHHe-LEb#A zjXI^+`aucfYJaI+z7_kcJyy*;XpIj*D#Qo}4u4X$WXzgw+A5~168owenJ+QU9>s79 zxQBP8vB+mvbaM-NaQHw+N-~@@aI1191M55%rt;g5d}jp{tT-w^_G@_{#BK&yGs)_H zxh`onw0q535q+C?WJ4p)Fwvi=7icZ0`)?hLPgiG@rGHzP#)8=GOkY(a%)E$A^mTkb z^*O`m`>f7tIXXXsHb~h7WOUxgz~*LKvAZ7`1w6f^Gkov()?NGl^jbO}Ur1;{HxmO8 z1i_8yzlgc#FnbLy9TQzqVdAx@+M+8bkQzg&a{D1xT(DP_P*mlol9?>*(4=^O?Aww~ zXOEsEpMT>LpwQtO^nb>=kh&6yn>DI7^8PVb{E*{Oopv2!k!wZ`fD0*hj#QY+${@3D zw7TKSoK;+9l#j#AW2jYE?AUA|D_Yg%Yl?5BYql$S+0XlD0LhbY&a-^0P95-;ngN3e z(yg$rW}dbUiZ5P&(SeC>_YK1ef$A99^@JbdFh^lYyB8J<|mAHGr1R3tl zJb58~3o!;k5WJU?uA-D8Y-VL8YXItTKQD2;B>Cj$E_2i!`4%+H&WXro7Z5V(-t*sTeIdx-_Hm6Z28COf$>RvPR zD}Qj)WEz#U%>Y+;BEMylrPQSkRE*AV>CF|iOKINJXsg3ROOX2)pQ>>Qayjarh|j!9 z-Mj~6W^D$5rgYiH&;Ym#W%ooL-_YcKAggj$Hd4`J#K#ezZ{|_S2w3N5{A1S5+_ne& tmD~@4AP9mW2!bF8f*=TjAP8pgAF>KN$Pn>*Ofdie002ovPDHLkV1h{M#EJj_ delta 911 zcmV;A191GU2c-v)B!6s4L_t(|ob8%hlItK0L_N2%6YqaX*~|TK6+@(^Y4h|{bUvmM zEQ1i@)tR4TA@BD)|9YM$w=@QMAv6%{c@+PAkqOgqhJ@oh&nJf!0t5Tp4i6vcNJ)ds4PaGJGVsoGRVqDw<h872Ay^#ZE}HUH3|_;hu~Si-`iFNn>~w0~9A!^oTPKwtakQ=2n-zK`mx zm7~*V(uUtjAS9#HK1Mb---_S;#3=CTl{=&NPH!FBx2MTtINztkD%PDHLkV1nT6!rlM? diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_set_deposit_limit/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_set_deposit_limit/00001.png index 8f49e983081b22373af453461e6794e82f6cbb31..e4a29f54dd64a54c824becece5b5bb47c07374e8 100644 GIT binary patch delta 462 zcmV;<0WtpR1Ly;gB!90-L_t(|obB0LmV+P+fMMIyow)xcv6nvd42MYqhO65C-_wYY zpyi^@W1Ap^kRI;)J|l~nv?o^xAvRAhAuU{SE#meyG*2Ul!-2*|PNRALZcCvHU%Jw~ zA2~NO^lA{*QCQ`&3XMf(=*hEx_L1MWXQ^d(# zpmX`s0c(lDw52m((E^tcw?t=y^HaK0&Vlm9J2dV)-4 zt{y|e9+sR%5AlbmQbU^bFt?JFH{q&=&P~{?DbD7)r0di=eUA zZt$H;(2ei|0000000000000000000000000002OxH^@V^<}}R$9RL6T07*qoM6N<$ Eg4}K5bN~PV delta 463 zcmV;=0WkjP1L*^hB!93;L_t(|obB0La>F1DK+zBRbOl}?qW^G&Hi{<8(y1u~Vp zdkhJ?TXGgV#h;N%9ckoYX(y@Qgqs=$Z^CX(b+*(cTc_3eJK?-X(&Hk1o6-N*ewF_r zI5)4eoAtQz3V#4_Yw6dK2m|{QiRr#|cSk!@q-T+5j6vOr2Jg-|u&erG+(7mrz48EF zY5OQVmD_4=!+Q4I%1zW4?F4r7v8#J`4py4ft5vcDvj=0gZdnmyRzT$SwaLM@SDBar zBex*;!+m$CBMoo#8+_-R@ZztEM~qnk_Gak*@5xR~cSxj4ZG$OPiR|RSWpS;W@N9RP z&Ku#l*J*B@5!e(fgBq5gpf zq{SocAxe}KeivZ6_eqR%A6mHk8cNWQ%s=*fUYv4$>9 zAnC)0IPKRGI&nr~izrsbGk~u_)2M)aLzlhq8VRI?5tZ8TeH=@#WCWmE2(^O z_1X(>{VvR(MSroHt|q;r{hIMjqMG2j$YvYFYmm0|%TiZS#Qz58r0cEQo3iMbJ)S7x z=_D;ji@p7p&8lPs^m-Ov3lVX{#THLp02?j1Zf;vqtS69r9T%RBo}}7Fn77z^^GvX* z1L~m?ED@_|;l;=DgMnYmO;b-hK)l~;H9QizH|w5Fh<{>R{n)CPIFZY7hKOhYxpJ2( zHg}-!Wc=^Aeboi;fVntN>aRffJ>cKMU(z4d^)~_tfP1J%5I<*|PF^vs_vHG4y=f;3 z{9v(LG{eM!+E|{rX)+(YghdmbX2lda&Cpsr_88Tg81V(@>sF(zn9eRUQspFhxr;M1&07*qoM6N<$f*0&iQUCw| delta 686 zcmV;f0#W_d1=R(RGk=|ocf$Ucdh2y94u&qpUAAPFJBlKa|L;y8}{Ii)nw zl9`lVcv$Z&)z2W#Zs(nr3cYM}w(4w2Ddi8_$86G)g=j4gb6QALzsoNxc)xU$=1~8@ z6Vl?5b`v>DGQSHj-TNfQxsR$|JN;`6T;Y@>7VhMS>1&{Qe}9zxJH$3YoP0Tg#PFE~ zcb3zA;eijpL;U6G^bF!9sa?X`b<38wg(hwKB|QCr0RR91Kr6?G{FVG#9q7q`M6sGK zO&ZCEd3x+LUd!gh>4+_&SPRb>KL4gs0r}NNTZm|Is~o=#O>Q~a%K_pr@zIr3zPJV2 z18?~(%s-1_HGf@xrK0hgSN zfU%QtCI@$@3*G?}ah}xQg77}ze2)(1P}mySVs^)ZJW+tF}e3-{H;6GP89gr zVz+2ki37EjX7GSJfjpE{V^&0V)SY{dGsh+gP zNo4`j^?yGP%4|a0Wgd5Mv|1JSd(~iPe}4x%Su=)Lt=*nHf<^^Vs#T{sVeQ8``T_(dycF8a+_axO#EK2WcEDrn6e#qsOnd=6RWLCk#3O!Gt;(*8g(F(K)z&Jp z%`#;n7qlb44*-ub<_?&3OMi9j0{{R30000004D$d000000000000000000c<2MToI U*XDyXHvj+t07*qoM6N<$f+Foo2LJ#7 diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_set_deposit_limit/00005.png b/tests/integration/nano/snapshots/nanosp/test_sign_set_deposit_limit/00005.png index 6bf73fb0597d521a5cd7ce8407e4586e5150bbae..305f0b52f968339f8d50b6c2f0b6f1b9ab76a500 100644 GIT binary patch delta 390 zcmZ3*yoz~(ZhhdUW(6LHz*{f*zCQ%hD&S1eJH%H68Jkw$EHHm^!`s^qEuk^7pp% z9-f?C%6|4YSDc3avb_9ywImbahq=eDoBw_meYCk^Pi?D8^Us&{&v=9GFRH27CDC4c zY2tPRWBnIQU(W7p`Lt?wedH(=CilEAa^L6l&22MZ{GYbqo#~I> z?VIMuZH@WXtm*I~oO$n_6N~iU{<4r?@~uxKX28+oik6KULe(zJf9)vP3d3xHz%=X%-=KF=l_Nz#yxkAew(y*O64Z`Y1#)uc2@V5*sB-6D!9D%+v6Q` ftr@U`hQ@ykHX(k;t3S*)0;%wH^>bP0l+XkKT@<_* delta 390 zcmZ3*yoz~(ZhiEoW(A&x#9J@@?);y0=X7PltdpE<3mcj~*ZYeYUMg7mRJ85p_t;an zw@tmDBqbkqtxWk|oZPC93w=u-MK#T^$n-rKt6Wu7%hEYHtnQMVa$D>?U1RP2c6&0V zcdLJY#Ww4^=$?Q$pV<5R)RIhuALjnLZvOjO^ie0B{CLHa33a>bE9YM6*LXiquII2> z=K1IuGsV9!d^x+X<f`SB#hbe-#blLKk6hEHm&%$&i$X8BMS*I zivwqVvFjB-*tqOQlhOJQ&w_r{UypiK+FN(=(%DO1-?XcJLaJYGKlbyN_RYgPN?%Ui zI_cZwJySnRRc%&fUr_tW&*<;rF6IYM^{!2qS$byj-wk&de5USxeqzq^CDZx%?`GNe gS?^?Kzz!r{@SAV&F=&zQ*a1@D>FVdQ&MBb@0Ff@fssI20 diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 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 delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00015.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00015.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00016.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00016.png index cc59349033daaad4bdeae570a7124de74d0a7374..2adfb4d839946649d3e8fc8d5a72d02a81109c90 100644 GIT binary patch delta 381 zcmbQvJcD_HN`1Vii(^Q|oVPau`I;4Y8Xo4|^xg4);*QgD9ue0UP3G7%>wk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/summary/00003.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/accept/summary/00003.png index 26526a94f076c5956e4cd1e53d72824f4a878abb..fc5a8b0185583e2a11b897ce2dec5d8e204b145c 100644 GIT binary patch delta 823 zcmV-71IYZ!2F?bMB!3l2L_t(|ob8%Pl7lb|MV(aNg!>RpL>| zqdt@}E9<(h>neXIs?W?*Cf&mBJEA)FPZnC1AtR?{uW@0Ue$(kHaKEL?ShXJjzoY%1fop9nkDD)Dywer2xuTa{^j8?0O&2gqvi zX)a}h)(OtmN`H^U#^z~t%9nAWT$2YBHI&w*D=xTWsEaqE()dG2dsh>CgwLvBYB9$% z!LcuDBpj@16;Rh2Gj#uCV3pOZkK~D{GBX+ zmJ-RbF07FrEme+5AdVSoN{`}}z?34SLGqi4lLObPEVw1+7E{`)B0OW+sRjojDT2i> zrNi_lEPt6Ovhy@GUJUQhVpTOTxG}Q9OKL&=3{(Pgy{Gj{r;%!TnbA`ReycI6_mjDJ z0Ayfk32;H;KK(>ko8aOBXd>dK8GPErZN7?->M{G2=%(Cb0PZrK6SPIbV{zUhv2>QA zt}uoo&J6V|iM)gX0000000000000000001A#6MG9KnnlO1>67t002ovPDHLkV1m*` Bf&c&j delta 819 zcmV-31I+x+2FeDIB!3Y}L_t(|ob8%Pmct+nMCrWT#P>gv@6rpuxQQeRA&3o~`m2Od z7Ng2eX;$`q-}hbr4pg6+hfZ3;?iDc|`_zTDZM(#tAo*jQrkaU)`V0@XZJT!Q+X|S_ z`+6tYUL-ZA&h$Lx0wet#W00r(t$+!=pI#o!jRrg9ku~8{@$)F_`I- zKZTg+Z(Gn3V^Bhm%7o}`MjpcEK`{@9d3u(V4&kYo*|CHWLdf^=BmV2y(yXRKd~n2< z^nlo{z^v7D3&Q=1XihsMudWMMolr5-8FMz30gVU34zr5C9o(R+ZHF>}o0P%SFqVsGT=Hm6JGno+AwY>8oqpfdmi_FU0|K3elCr+@Xi78|>sin`hivtNJ9J;wA> zHDX;IdpJ$5FkZ@&D{;jEsdnQYX%Qjhi;!Ym3TX*IX{u%c*$Z@sFT`3t5zXpaqeM4s ziK{~Eo(|s7da_D)R!@&5VNR$Zzzj2`M|5iiNfFv0{n^CDv1?TpJQ8DzDQs0zp7EiuGF9snIx zmee;VexDAHX=B_x08Mz@G=oo@Smvt;Egg$bi56vz0a#@^2WXCj2LfJoiFA=-u7;$} x3@r03@w|Z{gb+dqA%qY@2qAh@Aic diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 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 delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00015.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00015.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00016.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00016.png index cc59349033daaad4bdeae570a7124de74d0a7374..2adfb4d839946649d3e8fc8d5a72d02a81109c90 100644 GIT binary patch delta 381 zcmbQvJcD_HN`1Vii(^Q|oVPau`I;4Y8Xo4|^xg4);*QgD9ue0UP3G7%>wk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/summary/00003.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/summary/00003.png index 26526a94f076c5956e4cd1e53d72824f4a878abb..fc5a8b0185583e2a11b897ce2dec5d8e204b145c 100644 GIT binary patch delta 823 zcmV-71IYZ!2F?bMB!3l2L_t(|ob8%Pl7lb|MV(aNg!>RpL>| zqdt@}E9<(h>neXIs?W?*Cf&mBJEA)FPZnC1AtR?{uW@0Ue$(kHaKEL?ShXJjzoY%1fop9nkDD)Dywer2xuTa{^j8?0O&2gqvi zX)a}h)(OtmN`H^U#^z~t%9nAWT$2YBHI&w*D=xTWsEaqE()dG2dsh>CgwLvBYB9$% z!LcuDBpj@16;Rh2Gj#uCV3pOZkK~D{GBX+ zmJ-RbF07FrEme+5AdVSoN{`}}z?34SLGqi4lLObPEVw1+7E{`)B0OW+sRjojDT2i> zrNi_lEPt6Ovhy@GUJUQhVpTOTxG}Q9OKL&=3{(Pgy{Gj{r;%!TnbA`ReycI6_mjDJ z0Ayfk32;H;KK(>ko8aOBXd>dK8GPErZN7?->M{G2=%(Cb0PZrK6SPIbV{zUhv2>QA zt}uoo&J6V|iM)gX0000000000000000001A#6MG9KnnlO1>67t002ovPDHLkV1m*` Bf&c&j delta 819 zcmV-31I+x+2FeDIB!3Y}L_t(|ob8%Pmct+nMCrWT#P>gv@6rpuxQQeRA&3o~`m2Od z7Ng2eX;$`q-}hbr4pg6+hfZ3;?iDc|`_zTDZM(#tAo*jQrkaU)`V0@XZJT!Q+X|S_ z`+6tYUL-ZA&h$Lx0wet#W00r(t$+!=pI#o!jRrg9ku~8{@$)F_`I- zKZTg+Z(Gn3V^Bhm%7o}`MjpcEK`{@9d3u(V4&kYo*|CHWLdf^=BmV2y(yXRKd~n2< z^nlo{z^v7D3&Q=1XihsMudWMMolr5-8FMz30gVU34zr5C9o(R+ZHF>}o0P%SFqVsGT=Hm6JGno+AwY>8oqpfdmi_FU0|K3elCr+@Xi78|>sin`hivtNJ9J;wA> zHDX;IdpJ$5FkZ@&D{;jEsdnQYX%Qjhi;!Ym3TX*IX{u%c*$Z@sFT`3t5zXpaqeM4s ziK{~Eo(|s7da_D)R!@&5VNR$Zzzj2`M|5iiNfFv0{n^CDv1?TpJQ8DzDQs0zp7EiuGF9snIx zmee;VexDAHX=B_x08Mz@G=oo@Smvt;Egg$bi56vz0a#@^2WXCj2LfJoiFA=-u7;$} x3@r03@w|Z{gb+dqA%qY@2qAh@Aic diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/summary/00005.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_summary/summary/00005.png index 137ca9e4946dcd461fab8ca146124917077d946d..3d36b194cfc82107a670d51fb067ff4ddac0c997 100644 GIT binary patch delta 341 zcmaFI^nq!DO1-(Ki(^Q|oVPb4`I-%QTm!ei^1JbW(w^yc5nLwBTppo+F4)Gq`UYmD z8yw_efB>y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 zcmV;%0y+KI1>OaaB!8tzL_t(|ob8%PlEWYjMV(Y`;`<-Tcj<+zX`=Cii6LG8tr8m~ zA&EgGk8LH6<0zl^eV=H_OlmLOtap~`doV}$(v6l%y<&8+>U^^Ad-<^ank}9bA>Nal zIV}{bpY@j&ykEP?b12^NL_9&HeTb4Jg}(qy_rAz+?W5Fdr+EodvqDyWyw|0GhcPQC=v!1M$&*L)j%Mznih17qT4 zBsQ{Xl0EY#N;eYNGwUyAL0NM>A!7?m&}+z`@JpR!37X3&|B9aq0$r(d@st8DH``_a zuKsLUCxSUA1{@M9u1~u-b6X`N^8lIw=1O-xJ&V6a34gqTHp4Wm)!G#<`3D0Y0WV4$ zJ2eBA-U9^bI{uA(QvlNKF>RyU6GE2dcxUVSr-CQYe5)JlzM%G?-i|BVxCZtHg7j)8 zE!jsMIks%%LBP^uOd4$6GVL3O(6q;6%qCoG)#vC9*gxx&Xeq zOs@-c8-E(~7jJ7PnvpQ;9UrGYN3cXNE5)>Gy{v@wDt09t+VjyGCR8q!|( z)dB7+HN8=QH$t(@@&p;?usWdcKbK-1ZyNcqy>1*j2B}*n7h)Yhq3FK%MnuCeSsx<#1M#jPb5JCtcgb+dq sA%qY@2qAWhai~XwS9Qg_f+O_rlG3SE;@Sada=-K04*-tmOIiAehpElV1I0a)&RlH=S*uGdcg8h;&kSmlU?FY?9m7--&~ zCI1s*QxGS=EkR=Xtb#i$=)U2OH^5W;5ovS};wGtW!sUI+_Pd29ZTTj=e1QP~006*T zNOhAv$Q~U;0{^NgWtygxS6-r`l$~xf*Qzvzpo?{rJtT23#zRE@^GrilDB7bjXA|zV@}qPK?4Nzv(t9?0=CR#9cE`v2YI2MkQ|sac zAZR*wdVg<1U0iQbeC?K0;y}1D1SbGoee;es+Mu*Zd)}7^c&ysg zMiIOevSqe6kzr1&1IGSyN!Iby$fxaf^WZUX-Lkk4%l?ES_Psw6hN;;Z8QlY19i*jr z7dX5blGT}K*}-mJUA@8*sBRO_uUL_skxY9j^j99ZdM3r*l$U+b8U5#%H3Mk zmHIGZx-h7`O%K0aVT4N-<9s^-o2_rdsY$h$b}ZPwqx6L=`F|Q;9kr^zD}EfX$NC-d z&6winMy-53ERD3bCRFq{`(m{ZUUI^i8ggT<12gh11ntzr55s33clr~j4Ovs;4k!=# z0G>Rj8r8ndsKOH2{ZR-m^J}LDZ-$X{Ed{6p{%7pJqS67SEUrBhi9|P?*#abxb3?fY zoUREy?{M;W4u9H;8GNLMAwdDnDUnTAH!) zB!ba$UGmgSe6iIw>ALLb)(xdvdg@O`CO=AgHX>O`6AUh1(~t>*Qs7EEDh9f`MkQ>| z57Ef>WVDZe(X%}pt<|Tem~-Dov>o6)@~`b9H5IEDrhmLSH=yBwP{7^hgQy^z{var` z!#%sSl!k0)cWI&nIz+?i9?nrs z{8O56TpR)DXt$il!O-CQbKWcU#5e*MMbS*ro zhHlbi&`(gAB0vYhZ$q0SE6}VkolM}|@g;QpYRzu+R&WQ%{$=G7RabHgp-;5Usxs7? z!#0zs4>V2aio(B&Xm*#JbJ@h}x!E=A7CoXHqkowqu7baisREd<*1ZzaFiW&-+l{!; zKcyM{6NyA3kw`oW{_}LL8nW;GQH0utxVJ zPg=$A9MryQHWfT-+k!gU3{8Ff;FYieSvS#VSp7~ZiJdBSW0r36kg<~lD;rP=Q&L&B z)PF(xJY@kAc6rQ1Yie%;{B27etZQMj0w-W1JO*uYSZZRpTRol1sAAXw9ianuxZt4H zg&%JTOpJKOZ7h8=atFkkah{G<2Q*XKO`BP*v1a=(#42i#IUxudOS7PTx>p1iX-B4* zN4l}`>AIFK^B6+m#TTzm6t(ON!p2ahj@Hk*s3J$&;Z~3nX z*nlh|W61<&A!s4PiW>G&&MJ!A{Cu9m$AlmlRoLJsR-qr`0Q(hNr7`9j1c`rW-UObP uTyW5SLG~a%<^)K5V!%lx5{X3O2Y&(F&1!gszI#~!00008C2&CSC;D|bPl+D_ zf+CPkzm6AiT^D^l&(o%41auG*IQeXae{zVKX*h+Z zrAmyLt_|vM)5Bkf+u;_(*gj6c`_{MNRHoQVI~Hu~QTl_d`hOmu8nueE3w|B&n)Mq( zoH51EjavDBm>q02HK^Qg_QMN4*yNBgHRRr$1ZLz%2zpJ4C=8!@-04r8W@k;6JK$L7 z19t_i)KaPoH! z+KS03w5X<2LVr?XnrTY-Ie3_B%V?7YXEkg!V+3lBD`ECSwO6c>g|c17s=V5jSDOgf ziDQ(k400Nz2fQ0fwe-}Vj7+{tdNv|iNfUG~Uek~Xf>Pj0JsX9BF0E1tS6PH;WP38& z$G_>>o{g64!}H65Un5)&a31+RTS?G`4CT(0m*;HM9e)rCxUcyjD#)fk367!Rp50jT z0s~*f3aK&Zzb%hvxDUm2TME0hWtf6Y`nL#NMf6s{=t-aV!4B#*>hL!la4gl(Uk2jI z1IZGJM4}&B69cwoWCZMqiBZvPuEx_trqTGLG=*nMMYglMG|&MJqTzH8=cp$BDb-oL z5F6mMpnpzm|4tH37j-A{m);c8o>}5g*?R0&KNI$*qYwSBn%#Ru!-Ef93s0({n=~2p z6IA99po3~9Y>do+U0(W`z`6ZPX!xr&yUSakwxcDNsJfC{2yLQmR)wL~9JZN6eV}PV zR}}uUlxla$IhRempQ|miX3;&mF`6Ob3LYmwet(l!|HcPN$gaq8KZQQhm4&hSlNI|n3Bq}r3}*NAq$YO z%YS1gT2uQqz&~s$gJmsjR^S8-gvX#&4pU7GcdMsU8C48Bpdoa?4i_BMy72uifq@av zxQ(T6dhUQ&GtSeoYJg@+yJ<73HCAo^g;+%mGA0B;V`&z&Pxp+#BJIc&^GG)~K3&(; zh5Q9%KXN_N2Z=-?af3JG_Jr1bJCtNx>v845k+oP;3HJkbrQqP^*yW#fzy{AV~b6dJ}j)a=}6S1KC1+ m%n6YA#DJ4XBoc|lFa86g2W&b;foX040000OaaB!8tzL_t(|ob8%PlEWYjMV(Y`;`<-Tcj<+zX`=Cii6LG8tr8m~ zA&EgGk8LH6<0zl^eV=H_OlmLOtap~`doV}$(v6l%y<&8+>U^^Ad-<^ank}9bA>Nal zIV}{bpY@j&ykEP?b12^NL_9&HeTb4Jg}(qy_rAz+?W5Fdr+EodvqDyWyw|0GhcPQC=v!1M$&*L)j%Mznih17qT4 zBsQ{Xl0EY#N;eYNGwUyAL0NM>A!7?m&}+z`@JpR!37X3&|B9aq0$r(d@st8DH``_a zuKsLUCxSUA1{@M9u1~u-b6X`N^8lIw=1O-xJ&V6a34gqTHp4Wm)!G#<`3D0Y0WV4$ zJ2eBA-U9^bI{uA(QvlNKF>RyU6GE2dcxUVSr-CQYe5)JlzM%G?-i|BVxCZtHg7j)8 zE!jsMIks%%LBP^uOd4$6GVL3O(6q;6%qCoG)#vC9*gxx&Xeq zOs@-c8-E(~7jJ7PnvpQ;9UrGYN3cXNE5)>Gy{v@wDt09t+VjyGCR8q!|( z)dB7+HN8=QH$t(@@&p;?usWdcKbK-1ZyNcqy>1*j2B}*n7h)Yhq3FK%MnuCeSsx<#1M#jPb5JCtcgb+dq sA%qY@2qAWhai~XwS9Qg_f+O_rlG3SE;@Sada=-K04*-tmOIiAehpElV1I0a)&RlH=S*uGdcg8h;&kSmlU?FY?9m7--&~ zCI1s*QxGS=EkR=Xtb#i$=)U2OH^5W;5ovS};wGtW!sUI+_Pd29ZTTj=e1QP~006*T zNOhAv$Q~U;0{^NgWtygxS6-r`l$~xf*Qzvzpo?{rJtT23#zRE@^GrilDB7bjXA|zV@}qPK?4Nzv(t9?0=CR#9cE`v2YI2MkQ|sac zAZR*wdVg<1U0iQbeC?K0;y}1D1SbGoee;es+Mu*Zd)}7^c&ysg zMiIOevSqe6kzr1&1IGSyN!Iby$fxaf^WZUX-Lkk4%l?ES_Psw6hN;;Z8QlY19i*jr z7dX5blGT}K*}-mJUA@8*sBRO_ubClC*VXS@Tp@nc}FG18RX z5r+B-J-hC_5`Ymgj9>0GXnt!i$({XJtx=a@-jSP*2kh*=87ctwd1>bJh1+mw5HnF2@BY^IB)btUL z$j8nymwA!@Y-)Bl0GqXe{KyP2?n~R_05~*m)Q1c}Z96_5$7#NVMV=!? zOxJ68*t!#U;&mPoIw!sudr{DIz_T z5DL^+#Tk;9G)C{g+YH^j@A7Gj8pQW0B8FqM|pY z+E=TQoI zE;r*I5ifYdaer<*TBnPYLWbOIoZLQ&^H+oBYF-Gs5V75MHL>H`T=eeBB-1TkkxxC# zaMk<#PowjS9dOjPk;e}LcHbY1cED=vy4|Jdk;bTEf5ux?|`Izcf)gEFaQ7m0000003`qb000000000000000e$*G` WK~vq=zNJq90000g!DfzbV-BE>QJHy&r1TQ}p-p0s)02LgTe~DWM4fpywGN delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00015.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00015.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00016.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00016.png index cc59349033daaad4bdeae570a7124de74d0a7374..2adfb4d839946649d3e8fc8d5a72d02a81109c90 100644 GIT binary patch delta 381 zcmbQvJcD_HN`1Vii(^Q|oVPau`I;4Y8Xo4|^xg4);*QgD9ue0UP3G7%>wk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00017.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00017.png index 137ca9e4946dcd461fab8ca146124917077d946d..3d36b194cfc82107a670d51fb067ff4ddac0c997 100644 GIT binary patch delta 341 zcmaFI^nq!DO1-(Ki(^Q|oVPb4`I-%QTm!ei^1JbW(w^yc5nLwBTppo+F4)Gq`UYmD z8yw_efB>y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 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 delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00015.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00015.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00016.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00016.png index cc59349033daaad4bdeae570a7124de74d0a7374..2adfb4d839946649d3e8fc8d5a72d02a81109c90 100644 GIT binary patch delta 381 zcmbQvJcD_HN`1Vii(^Q|oVPau`I;4Y8Xo4|^xg4);*QgD9ue0UP3G7%>wk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/blindsigning/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/blindsigning/00001.png index 886c86005fca51cbeccaaedaa8754ab5429306f3..18c73133d3f5dad42c32256ad7e607684e87f516 100644 GIT binary patch delta 836 zcmV-K1H1g%2HOUZB!41FL_t(|ob8%fcIzMvhSQwxg#9mxz1#<%QbiMDwr~IM$sr&K ziBa~~>jXLH@|;q-ex{U0q+QKBL=9>m@?GSd%IU4JQ;8ka(c(Zz27ws~J2 zj8nui`|}U7vQ@qT7K69-$7&<42TSAl##kgcBmGDW*g*eSf_BEhM>_5)!hPg2!#81d zqnK_4Rp-~~w&d!F98VGLi#T$?X@j}!;7YxXcfAT&$=7KEIP$!B$`Sy;elnqysMXY; zvUyd}468jYs()Umf?6ly6ZJ3uXVl_WHC0V}&Ni18)!mLOWhf&_v5EnbnER9M4Hgur-04 z7k0PrTm71bR8uw~v;;K~*WI0Z3Pw%}?+Zh`M;+anAAf)i!~=XiY|CeKXbkNE>aGya zYB^`5YI4}GNvAw5VPn>Rrxxi*)hCw5CP&?l>gjgd&|U|Uaff->9`NiL4FE96pUA(| zCaQ#4+MWGYt?V~vg^?an$yN!osw&g0Z`HFL%FL=BR~($SRzJJdtqVZBEvw^g!kOgu z*umMq#DB7eY};ffXoqBcHrkqx^4&e2V$0f9IpU?1k{19qr=coi<+7ol>70V)J1Y`S znokzy&%_^_k(T!(X3sf>Zb+^LZ8)Mg?rurjMXanXbdjN^^cmr(lehUJl&_4`KFT@q zvc1G;n*nksXlg!-gQ_j)JZSRLH?2y=HK}(tw14C@iswS`2anomLMmy_A-)XL4l460000000000000000002+H~0sOU!E4--5du1 O0000 zjIzI8I|w19=j*!S&+EE+q{Ze9qB^yA^397v2ve=$9p2UX#fXlj0hsN55k7=-;uJ{} z<=G!WvzSxBnEHokJ(1V2Tf!D#+W34k-jAcWT4-cpp`MeaK}AGIEF7XbQ2ag zis44&>TsQAOJYa(c(Q1p#Fhh29mHiDSL$WF%T=72eC;-X!q1DlEO8uXJs~5Nh}FcO zym?X42&<76QGYL}Al9+?MEnc?v|3!Nrl@Jn*(Pcc-3?sHTY=_wjaow?8wwORY>D~d z7aWAeYT}t)+@<^P4O|hhaG*vx9Zf{rGh+5?Mp2^bCDW8{+F^k`+SvpemiKem2QO8j{-7Xv2^YCQcW*)W&JbOkvj-wOq@V~?+ zqJ&Y}!Impl#?48grAN7Bt%O*GWg_ibZ#9P!vx+Ac0BEcAvsvA|09e}cI)zO*Wa&L} zcE0`$e0F9YYu7*Nir7(Q9-!r}`q6)|Pyc$xUf60;}T}`Yognjl@3kIq}lH zlv6ze_)btOVF(*lYvl95?xkA*#P!h#*wE}dEq~Fjt-{y+t2dA|)Z`a!wwSGTp3C-#wEg-P+R{sN)JZ_VC-j4S~Y&JwyU1U!@i1$iMfVq+m{-RhXtSw z?L3vn2}#x?mLQN;dnuVRqd=g-aU92S9LI4S$8j9TaU92S9LM<|`~ZNwo)$R@GCKeO N002ovPDHLkV1i0an~VSe diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 zcmV;%0y+KI1>OaaB!8tzL_t(|ob8%PlEWYjMV(Y`;`<-Tcj<+zX`=Cii6LG8tr8m~ zA&EgGk8LH6<0zl^eV=H_OlmLOtap~`doV}$(v6l%y<&8+>U^^Ad-<^ank}9bA>Nal zIV}{bpY@j&ykEP?b12^NL_9&HeTb4Jg}(qy_rAz+?W5Fdr+EodvqDyWyw|0GhcPQC=v!1M$&*L)j%Mznih17qT4 zBsQ{Xl0EY#N;eYNGwUyAL0NM>A!7?m&}+z`@JpR!37X3&|B9aq0$r(d@st8DH``_a zuKsLUCxSUA1{@M9u1~u-b6X`N^8lIw=1O-xJ&V6a34gqTHp4Wm)!G#<`3D0Y0WV4$ zJ2eBA-U9^bI{uA(QvlNKF>RyU6GE2dcxUVSr-CQYe5)JlzM%G?-i|BVxCZtHg7j)8 zE!jsMIks%%LBP^uOd4$6GVL3O(6q;6%qCoG)#vC9*gxx&Xeq zOs@-c8-E(~7jJ7PnvpQ;9UrGYN3cXNE5)>Gy{v@wDt09t+VjyGCR8q!|( z)dB7+HN8=QH$t(@@&p;?usWdcKbK-1ZyNcqy>1*j2B}*n7h)Yhq3FK%MnuCeSsx<#1M#jPb5JCtcgb+dq sA%qY@2qAWhai~XwS9Qg_f+O_rlG3SE;@Sada=-K04*-tmOIiAehpElV1I0a)&RlH=S*uGdcg8h;&kSmlU?FY?9m7--&~ zCI1s*QxGS=EkR=Xtb#i$=)U2OH^5W;5ovS};wGtW!sUI+_Pd29ZTTj=e1QP~006*T zNOhAv$Q~U;0{^NgWtygxS6-r`l$~xf*Qzvzpo?{rJtT23#zRE@^GrilDB7bjXA|zV@}qPK?4Nzv(t9?0=CR#9cE`v2YI2MkQ|sac zAZR*wdVg<1U0iQbeC?K0;y}1D1SbGoee;es+Mu*Zd)}7^c&ysg zMiIOevSqe6kzr1&1IGSyN!Iby$fxaf^WZUX-Lkk4%l?ES_Psw6hN;;Z8QlY19i*jr z7dX5blGT}K*}-mJUA@8*sBRO_ug!DfzbV-BE>QJHy&r1TQ}p-p0s)02LgTe~DWM4fpywGN delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00014.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00014.png index ace2004671826013010d1896143f441a40ceb2ed..907033ad79701b4cd53b67fd742f1a5f4fe7cf9d 100644 GIT binary patch delta 488 zcmVF1DK+!alov{BUc`yC&3?)2d0Rq|6d%hYQ zgaa|u!mk$q00000005xF@hu*#mfU-39qxQ>D%lqp`#zg{!MD?YY{MPL5kg2m#=qn7 zSSFqos-$JgXs!7AGO4qPR-9I-dlBw{a$aiv^s2S01?2deT7Q}#^1(?TlPJToJLau<-lLkQW#qO8&zR#VH1=K!2~$G|tNInODmx(KJITE~0CX0@`lz1mz^1^@tH zk3ESz_kUIWp98jW@9V0{b3j*mK%s5*A_JwA~6 zl2c$~sWfHv4SzG=KcbSE&7{W&uAdp?ty^0M; zwlF9>c)b7s0000000000po8O^c(Yn_@1u2a=Vw!qy};P}Y>t9&(0^>r9mf$uNH62> zct6&Or9zXmPHC-WUtcHXbkVZYGIcM65m3%ctxvDos#-y|uYYN!F(TibDud4q#U>okSu2NYCbjbr6TIyIS&$YY@v1 z`I05DF)2;ie1F4?_s)u0^_`^KN`{mI$=?)2^i$S_BHML%X9bJALL~dpzmjm)IVNPP zR!ig(`hMWc5WEN(J{GN0;(YQjoDf(50IQ>Zz5*|JsKC|zp&)7$C>{s5)gN2x64%PwiKo)IS0ssI2 g000000Kh_i0ei>`c6nj68UO$Q07*qoM6N<$g8CWdfB*mh diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00015.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00015.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00016.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00016.png index 3d12ba7610b993ca5747360f2eab0e6908870db0..9fdc2ea61730ebc0566813ae57d4921e60518f83 100644 GIT binary patch delta 500 zcmVF1DKvCN1PT2pF*h@c{coZRC25juP=PU68 zWD&s7ItKs%00000000000G9Y!QD_K3e)ZlD7By1B=6=@|Jtb@2`xj^5Irn#2O|n}Y zISnCr?~k8(dX4M>@?v#?q#DdDQ&lRz%3E@Aj^sgE*aH;*;eWo9VrDS+kTDTv;p&4d zJgrw%n#R)-=M)QjK;a>kT-IgTV&SSAGq9RJI^B5 z4MC00&AR4Y=gJu`q{~HKkx_cgLf-nsL>Og7cD!39*3^=90Ox9=!@$CvB)^k6kI^LA$~ zFB%Is&#L3OP|b=?yt6f>x4j>j>&EnR*Mh#felDzU3x%7f;=x>a<%M*)y7udhh1mY{ z*h86#9bJfZt#RIG{P9N{Ag$PpX~T9phT~&L`ZyjxVQ-Hsj1dr$;|X{)r+zbxo+d&jD#7WcTk{1{W??qfj-5w9I{mR`gl&UlCPH qH*g-eI|Kj#0000000000c&UHfIAo92?1xDJ0000xfW~e(67WW+&dPvrC&M(e>O6g}>NwQlU zIo-A`=X`w4%X4H8kSD7XB-LPMOjW3SD=+ctc_$A_U=L98pMUh36f=X~P40;>gR2)Z zcv-G0w5(4{J%aP{C~vk4_tN6;U;RFd^(T<<94Z63%Y-obj!%xjaiyl9DR zex#0jl{8Da_Q2MZ-mZRNE*;C)?awNw>*vb)){AT&-w%2ftFNLf$19qig3=S_v4=7f zJ76K!waj^wAvZpt0m|adnl05%$5?!9M<2)c7v7v9KWZ9sBOzN6=BC@}PTXXbEmE(N z=1S_O*k8oVz5YeoK>j{ael)F;tIq*tF60Q%z6`FMsYapG3Y0Nd7*ugl$iE^^#ckj` nZfght00000000000PtSF`}Se@6vJi+00000NkvXXu0mjf!1eH% diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00018.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00018.png index cc59349033daaad4bdeae570a7124de74d0a7374..2adfb4d839946649d3e8fc8d5a72d02a81109c90 100644 GIT binary patch delta 381 zcmbQvJcD_HN`1Vii(^Q|oVPau`I;4Y8Xo4|^xg4);*QgD9ue0UP3G7%>wk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00001.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00001.png index 886c86005fca51cbeccaaedaa8754ab5429306f3..18c73133d3f5dad42c32256ad7e607684e87f516 100644 GIT binary patch delta 836 zcmV-K1H1g%2HOUZB!41FL_t(|ob8%fcIzMvhSQwxg#9mxz1#<%QbiMDwr~IM$sr&K ziBa~~>jXLH@|;q-ex{U0q+QKBL=9>m@?GSd%IU4JQ;8ka(c(Zz27ws~J2 zj8nui`|}U7vQ@qT7K69-$7&<42TSAl##kgcBmGDW*g*eSf_BEhM>_5)!hPg2!#81d zqnK_4Rp-~~w&d!F98VGLi#T$?X@j}!;7YxXcfAT&$=7KEIP$!B$`Sy;elnqysMXY; zvUyd}468jYs()Umf?6ly6ZJ3uXVl_WHC0V}&Ni18)!mLOWhf&_v5EnbnER9M4Hgur-04 z7k0PrTm71bR8uw~v;;K~*WI0Z3Pw%}?+Zh`M;+anAAf)i!~=XiY|CeKXbkNE>aGya zYB^`5YI4}GNvAw5VPn>Rrxxi*)hCw5CP&?l>gjgd&|U|Uaff->9`NiL4FE96pUA(| zCaQ#4+MWGYt?V~vg^?an$yN!osw&g0Z`HFL%FL=BR~($SRzJJdtqVZBEvw^g!kOgu z*umMq#DB7eY};ffXoqBcHrkqx^4&e2V$0f9IpU?1k{19qr=coi<+7ol>70V)J1Y`S znokzy&%_^_k(T!(X3sf>Zb+^LZ8)Mg?rurjMXanXbdjN^^cmr(lehUJl&_4`KFT@q zvc1G;n*nksXlg!-gQ_j)JZSRLH?2y=HK}(tw14C@iswS`2anomLMmy_A-)XL4l460000000000000000002+H~0sOU!E4--5du1 O0000 zjIzI8I|w19=j*!S&+EE+q{Ze9qB^yA^397v2ve=$9p2UX#fXlj0hsN55k7=-;uJ{} z<=G!WvzSxBnEHokJ(1V2Tf!D#+W34k-jAcWT4-cpp`MeaK}AGIEF7XbQ2ag zis44&>TsQAOJYa(c(Q1p#Fhh29mHiDSL$WF%T=72eC;-X!q1DlEO8uXJs~5Nh}FcO zym?X42&<76QGYL}Al9+?MEnc?v|3!Nrl@Jn*(Pcc-3?sHTY=_wjaow?8wwORY>D~d z7aWAeYT}t)+@<^P4O|hhaG*vx9Zf{rGh+5?Mp2^bCDW8{+F^k`+SvpemiKem2QO8j{-7Xv2^YCQcW*)W&JbOkvj-wOq@V~?+ zqJ&Y}!Impl#?48grAN7Bt%O*GWg_ibZ#9P!vx+Ac0BEcAvsvA|09e}cI)zO*Wa&L} zcE0`$e0F9YYu7*Nir7(Q9-!r}`q6)|Pyc$xUf60;}T}`Yognjl@3kIq}lH zlv6ze_)btOVF(*lYvl95?xkA*#P!h#*wE}dEq~Fjt-{y+t2dA|)Z`a!wwSGTp3C-#wEg-P+R{sN)JZ_VC-j4S~Y&JwyU1U!@i1$iMfVq+m{-RhXtSw z?L3vn2}#x?mLQN;dnuVRqd=g-aU92S9LI4S$8j9TaU92S9LM<|`~ZNwo)$R@GCKeO N002ovPDHLkV1i0an~VSe diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00003.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00003.png index 137ca9e4946dcd461fab8ca146124917077d946d..3d36b194cfc82107a670d51fb067ff4ddac0c997 100644 GIT binary patch delta 341 zcmaFI^nq!DO1-(Ki(^Q|oVPb4`I-%QTm!ei^1JbW(w^yc5nLwBTppo+F4)Gq`UYmD z8yw_efB>y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 zcmV;%0y+KI1>OaaB!8tzL_t(|ob8%PlEWYjMV(Y`;`<-Tcj<+zX`=Cii6LG8tr8m~ zA&EgGk8LH6<0zl^eV=H_OlmLOtap~`doV}$(v6l%y<&8+>U^^Ad-<^ank}9bA>Nal zIV}{bpY@j&ykEP?b12^NL_9&HeTb4Jg}(qy_rAz+?W5Fdr+EodvqDyWyw|0GhcPQC=v!1M$&*L)j%Mznih17qT4 zBsQ{Xl0EY#N;eYNGwUyAL0NM>A!7?m&}+z`@JpR!37X3&|B9aq0$r(d@st8DH``_a zuKsLUCxSUA1{@M9u1~u-b6X`N^8lIw=1O-xJ&V6a34gqTHp4Wm)!G#<`3D0Y0WV4$ zJ2eBA-U9^bI{uA(QvlNKF>RyU6GE2dcxUVSr-CQYe5)JlzM%G?-i|BVxCZtHg7j)8 zE!jsMIks%%LBP^uOd4$6GVL3O(6q;6%qCoG)#vC9*gxx&Xeq zOs@-c8-E(~7jJ7PnvpQ;9UrGYN3cXNE5)>Gy{v@wDt09t+VjyGCR8q!|( z)dB7+HN8=QH$t(@@&p;?usWdcKbK-1ZyNcqy>1*j2B}*n7h)Yhq3FK%MnuCeSsx<#1M#jPb5JCtcgb+dq sA%qY@2qAWhai~XwS9Qg_f+O_rlG3SE;@Sada=-K04*-tmOIiAehpElV1I0a)&RlH=S*uGdcg8h;&kSmlU?FY?9m7--&~ zCI1s*QxGS=EkR=Xtb#i$=)U2OH^5W;5ovS};wGtW!sUI+_Pd29ZTTj=e1QP~006*T zNOhAv$Q~U;0{^NgWtygxS6-r`l$~xf*Qzvzpo?{rJtT23#zRE@^GrilDB7bjXA|zV@}qPK?4Nzv(t9?0=CR#9cE`v2YI2MkQ|sac zAZR*wdVg<1U0iQbeC?K0;y}1D1SbGoee;es+Mu*Zd)}7^c&ysg zMiIOevSqe6kzr1&1IGSyN!Iby$fxaf^WZUX-Lkk4%l?ES_Psw6hN;;Z8QlY19i*jr z7dX5blGT}K*}-mJUA@8*sBRO_ug!DfzbV-BE>QJHy&r1TQ}p-p0s)02LgTe~DWM4fpywGN delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00014.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00014.png index ace2004671826013010d1896143f441a40ceb2ed..907033ad79701b4cd53b67fd742f1a5f4fe7cf9d 100644 GIT binary patch delta 488 zcmVF1DK+!alov{BUc`yC&3?)2d0Rq|6d%hYQ zgaa|u!mk$q00000005xF@hu*#mfU-39qxQ>D%lqp`#zg{!MD?YY{MPL5kg2m#=qn7 zSSFqos-$JgXs!7AGO4qPR-9I-dlBw{a$aiv^s2S01?2deT7Q}#^1(?TlPJToJLau<-lLkQW#qO8&zR#VH1=K!2~$G|tNInODmx(KJITE~0CX0@`lz1mz^1^@tH zk3ESz_kUIWp98jW@9V0{b3j*mK%s5*A_JwA~6 zl2c$~sWfHv4SzG=KcbSE&7{W&uAdp?ty^0M; zwlF9>c)b7s0000000000po8O^c(Yn_@1u2a=Vw!qy};P}Y>t9&(0^>r9mf$uNH62> zct6&Or9zXmPHC-WUtcHXbkVZYGIcM65m3%ctxvDos#-y|uYYN!F(TibDud4q#U>okSu2NYCbjbr6TIyIS&$YY@v1 z`I05DF)2;ie1F4?_s)u0^_`^KN`{mI$=?)2^i$S_BHML%X9bJALL~dpzmjm)IVNPP zR!ig(`hMWc5WEN(J{GN0;(YQjoDf(50IQ>Zz5*|JsKC|zp&)7$C>{s5)gN2x64%PwiKo)IS0ssI2 g000000Kh_i0ei>`c6nj68UO$Q07*qoM6N<$g8CWdfB*mh diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00015.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00015.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00016.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00016.png index 3d12ba7610b993ca5747360f2eab0e6908870db0..9fdc2ea61730ebc0566813ae57d4921e60518f83 100644 GIT binary patch delta 500 zcmVF1DKvCN1PT2pF*h@c{coZRC25juP=PU68 zWD&s7ItKs%00000000000G9Y!QD_K3e)ZlD7By1B=6=@|Jtb@2`xj^5Irn#2O|n}Y zISnCr?~k8(dX4M>@?v#?q#DdDQ&lRz%3E@Aj^sgE*aH;*;eWo9VrDS+kTDTv;p&4d zJgrw%n#R)-=M)QjK;a>kT-IgTV&SSAGq9RJI^B5 z4MC00&AR4Y=gJu`q{~HKkx_cgLf-nsL>Og7cD!39*3^=90Ox9=!@$CvB)^k6kI^LA$~ zFB%Is&#L3OP|b=?yt6f>x4j>j>&EnR*Mh#felDzU3x%7f;=x>a<%M*)y7udhh1mY{ z*h86#9bJfZt#RIG{P9N{Ag$PpX~T9phT~&L`ZyjxVQ-Hsj1dr$;|X{)r+zbxo+d&jD#7WcTk{1{W??qfj-5w9I{mR`gl&UlCPH qH*g-eI|Kj#0000000000c&UHfIAo92?1xDJ0000xfW~e(67WW+&dPvrC&M(e>O6g}>NwQlU zIo-A`=X`w4%X4H8kSD7XB-LPMOjW3SD=+ctc_$A_U=L98pMUh36f=X~P40;>gR2)Z zcv-G0w5(4{J%aP{C~vk4_tN6;U;RFd^(T<<94Z63%Y-obj!%xjaiyl9DR zex#0jl{8Da_Q2MZ-mZRNE*;C)?awNw>*vb)){AT&-w%2ftFNLf$19qig3=S_v4=7f zJ76K!waj^wAvZpt0m|adnl05%$5?!9M<2)c7v7v9KWZ9sBOzN6=BC@}PTXXbEmE(N z=1S_O*k8oVz5YeoK>j{ael)F;tIq*tF60Q%z6`FMsYapG3Y0Nd7*ugl$iE^^#ckj` nZfght00000000000PtSF`}Se@6vJi+00000NkvXXu0mjf!1eH% diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00018.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00018.png index cc59349033daaad4bdeae570a7124de74d0a7374..2adfb4d839946649d3e8fc8d5a72d02a81109c90 100644 GIT binary patch delta 381 zcmbQvJcD_HN`1Vii(^Q|oVPau`I;4Y8Xo4|^xg4);*QgD9ue0UP3G7%>wk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 zcmV;%0y+KI1>OaaB!8tzL_t(|ob8%PlEWYjMV(Y`;`<-Tcj<+zX`=Cii6LG8tr8m~ zA&EgGk8LH6<0zl^eV=H_OlmLOtap~`doV}$(v6l%y<&8+>U^^Ad-<^ank}9bA>Nal zIV}{bpY@j&ykEP?b12^NL_9&HeTb4Jg}(qy_rAz+?W5Fdr+EodvqDyWyw|0GhcPQC=v!1M$&*L)j%Mznih17qT4 zBsQ{Xl0EY#N;eYNGwUyAL0NM>A!7?m&}+z`@JpR!37X3&|B9aq0$r(d@st8DH``_a zuKsLUCxSUA1{@M9u1~u-b6X`N^8lIw=1O-xJ&V6a34gqTHp4Wm)!G#<`3D0Y0WV4$ zJ2eBA-U9^bI{uA(QvlNKF>RyU6GE2dcxUVSr-CQYe5)JlzM%G?-i|BVxCZtHg7j)8 zE!jsMIks%%LBP^uOd4$6GVL3O(6q;6%qCoG)#vC9*gxx&Xeq zOs@-c8-E(~7jJ7PnvpQ;9UrGYN3cXNE5)>Gy{v@wDt09t+VjyGCR8q!|( z)dB7+HN8=QH$t(@@&p;?usWdcKbK-1ZyNcqy>1*j2B}*n7h)Yhq3FK%MnuCeSsx<#1M#jPb5JCtcgb+dq sA%qY@2qAWhai~XwS9Qg_f+O_rlG3SE;@Sada=-K04*-tmOIiAehpElV1I0a)&RlH=S*uGdcg8h;&kSmlU?FY?9m7--&~ zCI1s*QxGS=EkR=Xtb#i$=)U2OH^5W;5ovS};wGtW!sUI+_Pd29ZTTj=e1QP~006*T zNOhAv$Q~U;0{^NgWtygxS6-r`l$~xf*Qzvzpo?{rJtT23#zRE@^GrilDB7bjXA|zV@}qPK?4Nzv(t9?0=CR#9cE`v2YI2MkQ|sac zAZR*wdVg<1U0iQbeC?K0;y}1D1SbGoee;es+Mu*Zd)}7^c&ysg zMiIOevSqe6kzr1&1IGSyN!Iby$fxaf^WZUX-Lkk4%l?ES_Psw6hN;;Z8QlY19i*jr z7dX5blGT}K*}-mJUA@8*sBRO_ug!DfzbV-BE>QJHy&r1TQ}p-p0s)02LgTe~DWM4fpywGN delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00014.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00014.png index ace2004671826013010d1896143f441a40ceb2ed..907033ad79701b4cd53b67fd742f1a5f4fe7cf9d 100644 GIT binary patch delta 488 zcmVF1DK+!alov{BUc`yC&3?)2d0Rq|6d%hYQ zgaa|u!mk$q00000005xF@hu*#mfU-39qxQ>D%lqp`#zg{!MD?YY{MPL5kg2m#=qn7 zSSFqos-$JgXs!7AGO4qPR-9I-dlBw{a$aiv^s2S01?2deT7Q}#^1(?TlPJToJLau<-lLkQW#qO8&zR#VH1=K!2~$G|tNInODmx(KJITE~0CX0@`lz1mz^1^@tH zk3ESz_kUIWp98jW@9V0{b3j*mK%s5*A_JwA~6 zl2c$~sWfHv4SzG=KcbSE&7{W&uAdp?ty^0M; zwlF9>c)b7s0000000000po8O^c(Yn_@1u2a=Vw!qy};P}Y>t9&(0^>r9mf$uNH62> zct6&Or9zXmPHC-WUtcHXbkVZYGIcM65m3%ctxvDos#-y|uYYN!F(TibDud4q#U>okSu2NYCbjbr6TIyIS&$YY@v1 z`I05DF)2;ie1F4?_s)u0^_`^KN`{mI$=?)2^i$S_BHML%X9bJALL~dpzmjm)IVNPP zR!ig(`hMWc5WEN(J{GN0;(YQjoDf(50IQ>Zz5*|JsKC|zp&)7$C>{s5)gN2x64%PwiKo)IS0ssI2 g000000Kh_i0ei>`c6nj68UO$Q07*qoM6N<$g8CWdfB*mh diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00015.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00015.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00016.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00016.png index 3d12ba7610b993ca5747360f2eab0e6908870db0..9fdc2ea61730ebc0566813ae57d4921e60518f83 100644 GIT binary patch delta 500 zcmVF1DKvCN1PT2pF*h@c{coZRC25juP=PU68 zWD&s7ItKs%00000000000G9Y!QD_K3e)ZlD7By1B=6=@|Jtb@2`xj^5Irn#2O|n}Y zISnCr?~k8(dX4M>@?v#?q#DdDQ&lRz%3E@Aj^sgE*aH;*;eWo9VrDS+kTDTv;p&4d zJgrw%n#R)-=M)QjK;a>kT-IgTV&SSAGq9RJI^B5 z4MC00&AR4Y=gJu`q{~HKkx_cgLf-nsL>Og7cD!39*3^=90Ox9=!@$CvB)^k6kI^LA$~ zFB%Is&#L3OP|b=?yt6f>x4j>j>&EnR*Mh#felDzU3x%7f;=x>a<%M*)y7udhh1mY{ z*h86#9bJfZt#RIG{P9N{Ag$PpX~T9phT~&L`ZyjxVQ-Hsj1dr$;|X{)r+zbxo+d&jD#7WcTk{1{W??qfj-5w9I{mR`gl&UlCPH qH*g-eI|Kj#0000000000c&UHfIAo92?1xDJ0000xfW~e(67WW+&dPvrC&M(e>O6g}>NwQlU zIo-A`=X`w4%X4H8kSD7XB-LPMOjW3SD=+ctc_$A_U=L98pMUh36f=X~P40;>gR2)Z zcv-G0w5(4{J%aP{C~vk4_tN6;U;RFd^(T<<94Z63%Y-obj!%xjaiyl9DR zex#0jl{8Da_Q2MZ-mZRNE*;C)?awNw>*vb)){AT&-w%2ftFNLf$19qig3=S_v4=7f zJ76K!waj^wAvZpt0m|adnl05%$5?!9M<2)c7v7v9KWZ9sBOzN6=BC@}PTXXbEmE(N z=1S_O*k8oVz5YeoK>j{ael)F;tIq*tF60Q%z6`FMsYapG3Y0Nd7*ugl$iE^^#ckj` nZfght00000000000PtSF`}Se@6vJi+00000NkvXXu0mjf!1eH% diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00018.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00018.png index cc59349033daaad4bdeae570a7124de74d0a7374..2adfb4d839946649d3e8fc8d5a72d02a81109c90 100644 GIT binary patch delta 381 zcmbQvJcD_HN`1Vii(^Q|oVPau`I;4Y8Xo4|^xg4);*QgD9ue0UP3G7%>wk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00019.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00019.png index 137ca9e4946dcd461fab8ca146124917077d946d..3d36b194cfc82107a670d51fb067ff4ddac0c997 100644 GIT binary patch delta 341 zcmaFI^nq!DO1-(Ki(^Q|oVPb4`I-%QTm!ei^1JbW(w^yc5nLwBTppo+F4)Gq`UYmD z8yw_efB>y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 zcmV;%0y+KI1>OaaB!8tzL_t(|ob8%PlEWYjMV(Y`;`<-Tcj<+zX`=Cii6LG8tr8m~ zA&EgGk8LH6<0zl^eV=H_OlmLOtap~`doV}$(v6l%y<&8+>U^^Ad-<^ank}9bA>Nal zIV}{bpY@j&ykEP?b12^NL_9&HeTb4Jg}(qy_rAz+?W5Fdr+EodvqDyWyw|0GhcPQC=v!1M$&*L)j%Mznih17qT4 zBsQ{Xl0EY#N;eYNGwUyAL0NM>A!7?m&}+z`@JpR!37X3&|B9aq0$r(d@st8DH``_a zuKsLUCxSUA1{@M9u1~u-b6X`N^8lIw=1O-xJ&V6a34gqTHp4Wm)!G#<`3D0Y0WV4$ zJ2eBA-U9^bI{uA(QvlNKF>RyU6GE2dcxUVSr-CQYe5)JlzM%G?-i|BVxCZtHg7j)8 zE!jsMIks%%LBP^uOd4$6GVL3O(6q;6%qCoG)#vC9*gxx&Xeq zOs@-c8-E(~7jJ7PnvpQ;9UrGYN3cXNE5)>Gy{v@wDt09t+VjyGCR8q!|( z)dB7+HN8=QH$t(@@&p;?usWdcKbK-1ZyNcqy>1*j2B}*n7h)Yhq3FK%MnuCeSsx<#1M#jPb5JCtcgb+dq sA%qY@2qAWhai~XwS9Qg_f+O_rlG3SE;@Sada=-K04*-tmOIiAehpElV1I0a)&RlH=S*uGdcg8h;&kSmlU?FY?9m7--&~ zCI1s*QxGS=EkR=Xtb#i$=)U2OH^5W;5ovS};wGtW!sUI+_Pd29ZTTj=e1QP~006*T zNOhAv$Q~U;0{^NgWtygxS6-r`l$~xf*Qzvzpo?{rJtT23#zRE@^GrilDB7bjXA|zV@}qPK?4Nzv(t9?0=CR#9cE`v2YI2MkQ|sac zAZR*wdVg<1U0iQbeC?K0;y}1D1SbGoee;es+Mu*Zd)}7^c&ysg zMiIOevSqe6kzr1&1IGSyN!Iby$fxaf^WZUX-Lkk4%l?ES_Psw6hN;;Z8QlY19i*jr z7dX5blGT}K*}-mJUA@8*sBRO_u%%8eQjM_La9QPRBQ=TDRKHVMhr7Nu- zugitmVLchWajPc{R#=qXu@&ZwtX(pW{$7F5)1&+y&)cWhusG0u>X)n_`7)Z%s$*brH*NJ{mlr_O#htH`ZURR7d^pOIUVny3(MD&5K6uOVczzg@5ut>0 z3nQs2znR?xjL#a;B~R-w6Ns#4BvYJvlwGWS2`}wA*ZuQcb7H^b<~eZkAFE(_qrl6uR6i~C)-(l=hL6_r%Ir~bsbHnI;KO-7|%y8u}Y0PxSSe;HRp+{Xu>QNrv+ ztPk>PW?QqQ8M!cJs*112)Y=ARuciyrtQSCBKWTG1yMGmt7YlX6HJP>oNX68`$dt`TKPGi~GLfDtkZIM`B*T5RAfmSU z{1tX2KwnV;d3G-Mf4FWs0}B5tF$>AKcOT`|t~!Cl79?KGnB)lu000000000000000 e0002)$2WKLxrLcvG;{y}002ovPDHLkU;%>C!?ZsD delta 898 zcmV-|1AY9S2bl+uB!6H@L_t(|ob8%PR>Uw2L<5hT^!<;NyRgW^s5QAfcA)F8g5yZ? zY!&@+tmHgT`RC*DSn94Ci4EX9&r(>Tl_jfV{?$)&3hqqwUKYQQO=wTnl#l9`7$?R0dJ&;46AD*X4AZ(s=1{wL!Ix#Pq{2@*+FrX$!Io zWHokd+|iOdjIHUuofy(YDrdm)x-oFqzI!C7n&%IP7>QB>`c)6AaMqA)J7On*^xy_B z8^Un%fcF8JkAHt=&dz1e3Lu2Mnvdv3HK8wOdXzf3l9s(!Sal%}#(wTvlQnY}HvS@( zL@6QS(X|=0&jS~vqBJ$JplX6dQ>^3W+b5;9x=7Y; z!isp>1|SL|+HH`C?cgPQR}?_i#cgks*#L~R`3S@%yMGcv-Nueed5D(d@thkMBT5XH z7Dk4uFKx~SV0_l7CPi|8H;K;bMl!`|M4yZ0neftc6s~cwP!W!Jb$z<-Z+TIlET7;0>qQy8XEj4LX5%Q{I4-dn=BPAE7h90wbKKqOxEQto!bUL{Tmkkv$j!TWnx7BXRb;FCHJiuOc zJG3AhYju)#3kKB>Rg1ctgEKS$-NCu}m$DWaPf{?I?&T!2XXmXE8h~-F%GKaNrG8}Y zCp&VkxwhJO|3zb6*go7OMX1O|OxZC=^o-W&(tlSUIntxH-}+}M?tH(Ah$cZoigZJC z1>pOSdsit&KzHS0I-LR`3JqX6>ypv~#5O~h=5f{TUrLof?*^`$(>Y8}^6$5)nV zQhNmW`vxT|4N6RXj3kDwUsaj50*Zubg^@+cq%8*rGExPQubMtVxV08^(YN{h6?P1O zy`m)Y>|E}jxNbTFI{r`M78c{teNLmJFGVp4~fF~Rwgb+dqA%qY@2qAFnPMb%Dr;{7j4d+CR#s=|dU^m5#U^O120 z287f=laj%IJUZLMuGw4oP|(mqQY9fQ6#c9&kOU;!Ir9RUzHHm&I6Tp=j(J) z53~|lJ?`pPP_AkUYw2cvf3{kL^fUu5$bNAoo-ua`(#JK6@_+FQs#(^G1e@Qq(?uD1 zg})iFFZ*irR>RaVtd&8`gSE-pgqR24;)_i#>k+!#czMn_m!9Z#cfMFMu&)=z2zy$B z_Vs~70q7WmCRNGw+u*wTQKtaqd}1vx^{B&wbc`BLqJM2~2K-cvBVmnMU(5XJf#XRu zcA+~be;q(7vCS!;M#Ck`h2^M;I@_=n>Wox9uIdRju=Y)ONpmtA*AcgHaJ{yuBEY2NKvtymp|iVtFeXr=XzV->YuN{QWZsf;Z)>Jc(6; zoS+fw-G5}CJy26MD-I;2wn5@=Iue07FF?blbj#$3*<8V!bum@bzcG+Po9c_#M$>_ zw_HqD_j`X2c#jM&nbrbzcKR_pK$sIho)lrNUn>hCDZ3}f6meFqmu%X}7)H2h|6VB!8SqL_t(|ob8%zmg^u0hMhUHlk9&=lOoa+fX(0gZ%OcDih`Nk#|we!3%?l#y{vF}*{5%v6_(C&CW zOwfTgJfq`|-h%C-B-7SzmitGqnM+SI;DYE6L+l!3*C2ehB`4-?|o!q*4*R95rKVKWFzcp z3EGzf4QlFgg~|5YVOjv8A;5NfVx?Dm#9?7127iT{*>Ts~rv!-Oi;dP<1G${E zg)+WPYE!JvF?;_tL_@hg=WY_oNd?(aYl+3Q!*iX6*>v06o?*5BCG$!Twng8 zOh1H!+koKHathf~v-^vtT@0_TUEooqK^6gCX!Z7b-1@bt5+O4V#^G2Ip1t&540%VjLP?q(O` zY!kD-MRXbm?3GuNop8oKSMB-2!%*Aw#LsT$S;vhiM<&qXHgtA%aw~e`afzB^D~VXZ z5D!*({J~GnE2AT`3zU{-;lH8dn)cU;(P!Q`*nxZy*wF>RGtd6Mx*TByeSeaS*JX-n=$}i_(cWMeoPDQ6-{-_#EsCNjilQirq9}@@ hD2k#eilQi9!9V{WwvwFkyPN<3002ovPDHLkV1fcT-V^`; diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00010.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00010.png index bf199eafa3426e5c30637ea0259c1c301649fad5..b4286b6ac11e6c117becdd49102acf4741c2b061 100644 GIT binary patch delta 937 zcmV;a16KUP2fqi9B!7lUL_t(|ob8)Ya>O7AhHa-e+4~mckEW1UK8|d+2Nu zf(VMrZa-Qk$8pfh$K#RO+|Uwfz;PV(W;eLsWCG!Q%3I89>pao#Hms*TNX+0Uhd@1F zQYhPBXA^Wt!f{7mk@uk_)7Iu=pW64c*Q|*@Ghl=FdqeEA^nYCw?yx1h@Z$$5rfKV! z#}CYgs7cUAUgtLedESTCpFWb0pfGcal%xXEiGDnhTZHxci#^DQ!G?K#er5?O&xtEA zC;v%7a7d;iV*{fl7e*=xpWc(f8ql5>1Gr6uOM=YZJ>k#gHYx%M6S$SF2_8oqy*Wf@pI8XD$rPJ3kiG|}0Zrz~aYlmUa~Fxd*! z35_`jo*p@&*20ayl;>5HWTCIh28%otJ+d{I+~YeDwO zkYNmJyBxNd*=OyX(tLi9qubvW42Ja8>I`V8|9{RoG51wb0#hNJGS$C#z-vHA>1wK8 zc7Z56{cUMaPa9y`9NOlZ0nl;sQR-Osv;vK}5Fu^TIW#~Mj&xD#aLXRc8M~lGrhgfC zt8WGV0aq5`j8yYlL47T2i{c++AH-#mfPS{m>)N}XOKI3pzozX4pl)R!q>Q{YddmW4 zG=Jx@foX;U`(3}|{{!f>7>czxFK9DNo|x#Q(PpYg^V5Ji0S-(}py@Md<IV5HVgm8$ey8Uyr3qM8+EQUvs5`aFk zoL?Q^8QGU@^~YkzD0#0n;D%HHilQirq9Q1Yq9}@@D2k#eiVb`N-(&*m{E@eq*XDVl-)&e=dytsHSq_1E zzNOG=e_c(`AqmGFeMR1fl1y8R$9`$wuU@kze$9Xl-tP^u&wtW)O}N9B?83(nQcTm< zFV7#C4Ox?*kG#&m0Ic&qwEpsud<2D=Q=}vnkWTdDiQFWt*Wc{HiWqE|*Vkv3pw>BY z2Ik~nDF_b9rO4R8Xvu|zKdcipvZ*jOHd?`pUdlbmiZYqp z>V)<}LxTgR$|8X+LoYqYTBzSv=y@fIt<&E@C^J+@aqWU;4)-&7MqE=oXgH$(g*~#L zQn8RvGWN3WA;WS4E6sW`Mi-ECMSsh^TIK`+fKHt6wyhtIXsrom z4D+Bg7z#*9qmQ2KdJhl)t?H7s=*=q`4$?&idv+*M0w>}9Wg-Js1ck-zen%5Xw};I+ zPmo+|fJ_?NSnx~EV|3E96!oNJCn%_m#&Y%QSQJH36vY~NG0s44@;s8Zm@L)7s#eyH zo>{0>-+!e2aCaBo|FoGcQ0OQKOI;qF+N1RSyDZDV+R@N3XIsWod=T@P!sI>GD@~`T zSSFi*3ZW$@!P6ZN)Kq!X-``^Y5oowIJltscwiyP$dQ z{4(xQUktoEHy7dbRP#m=eIrwg;=ji}i_0Pb{cIoEwRb(2(y*a^P1_ql-O4^l8F^{+ zmVX7zXwG8;(+manyMD+22heFT6l-~2&}NuCG|@?;%~X%(mjQDE9GIFw(`VAmrSW-q zGxXwZ(rQ7}6ubN+We)P2z_#)@{XjnJUzAvqc|s1!nE@%BqOflN-0a4W(XuMxi7W{~ zA6d@tjh~F{%bwz6(b|?#@>y%Z1E~NMMI})bMNt$*Q4~c{6h%=K8~6)pgP}#+7}=Bn O0000E z!X;dO_NPR$?>l|mwk_0MHxeGezVF9B#Zc?pIR5c}HKAPR#&)-%HQl~3Y#iNHzPM3z zdmS$5kgSna*IMe>mV7Kfs_&0lHzA!eU_t9wN6p{HJOEl&V}Cl9jq$5ZN<09^B&Z{= z@{<8^tuIzUtD6{xSOT>)`eq{3&{5dr!I$>J*QI-zwD8*E%>?DXn7Pn2@@Wd<2@(zO z8?m><<*}J_BEoa0vj&v=`asNmZEIN0i||1qJyHJy`laq@48AkcvL)65qy-mvSrCSB z4tNj9c>FbE)_<2Z8IUB&-F)an_YiLz*sDCKA|M-~g6&V5lbRhHGS`FJqE;Gj0m}hD z-S7zP_;54Pm+?v0e#mT;ZfV-NT{LdRIPo)kxY_=?BTLgBMzd!LYtiWdu21meKKF{}zR1N-y52|M+C$!$QF$=U+kYa;(cDP%HwW)dd%zmyAnxJ> zuF*(}qENLR5FM-C`UPt;?b<*yj_!ji+TXg9Fy0F8denM>3#YRN9EfWB@hH|!TfU5) z=+Fq|Uv(Eung?@Ek$4QY^CjSWd0HyGT8w)F*#SwC+{njxcYU{@$qe*S+`x2YLD0KV z2(m41Hh)e-x0Nnc5X!p#p;4Nzd}ccua>4D9>r5mP;denps&ZGoa@=%x3kQAerlO1Xhgo7BG&y&g zZV%yVkD)IONk$Q9a)70V@*?aZHiydvKw-(zoqs}ia=kI(bW~12%zh4HM>N~{mws!6 zi;Iq$*}#|_HbS{Wmf~(chSuNndO@Nd%G%!uwd~>E$C*( zwxRFgX{vRS{8211ZVpX=6K}4yle2NC9um2B3*Cu22~Wu74|G9&RSD0Rr<{bfSp}SJkj~I-Y!^+6 zL??F?D;K@zEU*aS88CE%k^BXIR|X_Wk|QKZk|arzBuSDaNs_#S{{j-J?*CpM^#A|> M07*qoM6N<$g5aRZz5oCK delta 941 zcmV;e15*6J2g3)DB!7xYL_t(|ob6g$mV+<|P3Lqc?te+{Wj;KULEce_wsOB}C4d2v zaP`$Pv92q;T$Ux(oaqU5U|rYkPuA6bHxEDbFXYO3TsZGK;FB(YP-Ftlb-bxi_Izz7 zU`lq+x@oC&bV-`aw~GDt)X1e>1x%RzZV3HW)&Zwv7lyg46VnS?itLqNI(^fM$SpH`D{& zKff4jOBrIy4~dP!)F$=qtS~0y*kO9Q>GsUblDLP_1Zm%+J8F+8csc76+Iqvc?8#}Crx0e zZ~(G>)n~u?rc8QmAPHy3;0*USuM_sqLO35apWyPt*aJ4OZ2NY}KAW_CDJRjP45g#Y z4HMSEF{2)T6fFCffX~IC=?18;-%j{e_)W926)MyVN7PwXdfeFc0WjcxV%a3H0?*y1a;L2oe4U5%AmvV8 z#506tvt5lCYix*CG@a8uW{E%8g~3tM8wJx1lcYllI$EQw{x_0fmo|mbJq$BKe!@qg zn1)!Ra7c83#)h(5^b|XWkaqx$6oI>95xe4M-NKlYo$U7R$876fH| zSOD5|W`;hds{*zklznr0@81}qn3HkSM}_llrt_xEG?%^s6LyZ`f-c7JG4vt08*5!C zd?^ev?f~dXi*1jaz+_1BN`tLi%wWtRh+AhCm529ZUU7^ zYGo&4=B9V64c3F)3K)8QQTPUYTm=*gg(gCwP$(1%g+ifFC=?2X!ZYv-gN~{0R+>== P00000NkvXXu0mjfuvf;m diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00012.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00012.png index 0baff41057e4dbda5bfa90c4ce699242f140cc00..5d14cbc8bee4ff8e0a8779e6d15b14ea3523ce4e 100644 GIT binary patch delta 913 zcmV;C18)4J2d4*+B!6y6L_t(|ob8%PlEWYjMd_~G#P>fEcj*NcT9Lklm~5x4w{kEB z4VdA_KWQg9XZrIvj;-A_Es+M~oNFPqmKJU``&SmRsLgX>+-<0*HABT(d24NVm6xov zJ6@#=IwY%Qa4^DhW7xuhd*G#jPzt~66W=b-PnLpHy{XtyO9Z=I;Gl~(*^5G9s=M`tr2*>lR?l9eMUzzhA^sJ z3rapA@Y~lV+kSet1VKBc&hIQi0wip+>_k4Lom34G4HkBhKLzL7mppR}hmt+p)s!m% zso#0%c0#Y07WZ7#4$hYY5Wz8`kEYYKwnT_(9+&wmV@C3Pmb_JC@w0jvZLY^6bsJ>eyXFJE6ica=h?picmppKE=v4 zq0!lbEq`ZvZ1yzX?82_;>C~$Q8AB-(Mf$>BGZkBGW5%>atsST1TBqIwBxQauq}nb! z{5C*`sdxuvD_aEgj~-eRIWbjeFNxN(8l}Bd$2HhP8sfT++r(z9XI+v;F)aP1vPp2*bjmr n2!bF8f*=TjAP9mWcoKhADDL;p+n(kC015yANkvXXu0mjf*D0)~ delta 910 zcmV;919AMP2c!p(B!6p3L_t(|ob8%PlEWYjMd_~G#P>fEcj*NcT9Lklm^@VURu0CX z0Wj3wRtX#yAAcUW~f*zZ>{aF@{*Ny z$E$Qfhh()34n|mR3|lym??CaIne_1noDlum5xbVLOCo%B&3{_?cq6N6tvn46RqC&*(_T5Jr`2 zLCGfsK7C!X?WcE35VTY3{LT_2K*Bc5PUKVCN!1Y1U||>eQ*f?*$uq}rDA}`JO}P?~ z`kjYvC-i!0aWB`JKDriv$Y2WT`(c;6rXV=pWs>Xl%zwaHQfHED52)4}z)Ijio}ud; zv@a9;RLI(R(w*%%37;<$orcFXmM8dgAd$-!VKymImo$OXxwf;=uwbze$a2|2lO+>u z5ClOG1o!5L{gzt}_?RX$Xa`rgmp4wrh9$Bi&)%%7j@>o16Dk}d#|w|92o=QUQ>4eIF6^3~PQ6-?F_bbC zY%W>(@B-#n9)lnVf*^Pbn)(41o@9PjCT~%+LRqKFc-FY#n(fz>*g=5 z%WSO#R#+bN1qU(Xg8){j33>3=3|jhUBIuNTdKuJ$Jb0v)W((zFK0R5{;G8j?_eEo4 z0)OT|c(Rqdq#tGBftdxDJ}b3CS$`7?5|EKXS(wj(M7HLXW}BZUX|VNatw(35q2~-G z+EFIolrL$S3aD$x)9f2Shl4iWhu?#RnR9AzU&mdx(${gL{{z00jk_S582dpG1VIo4 kK@bE%5ClOG1mDCTn@R5XYI;O500000Ne4wvM6N<$g53hVt^fc4 diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00013.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00013.png index df6e01718ac7db8656876556198e373fae925b3f..19e71920ed32b78f7071abd026c08ba6c0c11c88 100644 GIT binary patch delta 68 zcmX@aa)4!m3M2bQ)hCSRuV>g!DfzbV-BE>QJHy&r1TQ}p-p0s)02LgTe~DWM4fpywGN delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00015.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00015.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00016.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00016.png index cc59349033daaad4bdeae570a7124de74d0a7374..2adfb4d839946649d3e8fc8d5a72d02a81109c90 100644 GIT binary patch delta 381 zcmbQvJcD_HN`1Vii(^Q|oVPau`I;4Y8Xo4|^xg4);*QgD9ue0UP3G7%>wk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/summary/00003.png b/tests/integration/nano/snapshots/nanosp/test_sign_too_long_operation/without_fee_or_amount/summary/00003.png index 50c26400fe2ca360bf35c06058eab232b3426a79..c9fa11b9c6585c0ce9c763493c4252e0164fdbaf 100644 GIT binary patch delta 768 zcmV+b1ONP?2B8L!Eq_~0Uh(=07CoazE^{V_rl+jn}h3YANyv0fHQ>l&mbv zvMh_d?kJv_Z<+K6yPt^a*dLjx)_RFOozQM=n-RJ zAx9-4GR*KzSluY{u$m`liM0u*BC}%w004mZ@kMXs!Cl?BS+?LC2&-zl?RbHa2Vm8B zrwb7a{nq2g%WB&VQ5n*DZ#Yx z;%2t_Yn>YJn}5_Z0P32e?XkXfG*PrLIDSgsj+ydTZB(^kZr_yw@FNuU#dxrVV zIHHorS2db7!JX-umPFqJ1_xC&o_;)_t;AQx**;NLz05|f*?wcSL~=D<;Zq%9La@Qw7Q_|N}CaMt;=nMX~o~&DDHm$_(X{TAur_I?HOpIjnZ=HJ7Y-*{< ztzT87h<{b8t%h1>+U~f&O|fxpd8;tkZt0a4WT~UwSJ!H7nnB^O58%CjHbNruUI y3-1j{*c00000000000002MoA?KT21*XteM-3i0000gCGorY0vD0{V&PA%!5-VCLu&XjrD#HJ&OE<070%zDJsjd zEXyLVJBml{#GESW zH01;%{j6g^Q~p;#K<}rI2dU9Ugj^p5>;;9bgExC{kyT!bi+_!o9=sQ9qHjXbEykdR z9F>5`FvB-tb)$&GYMz`WwM{q_ksS*F002CX7rl`OcXi`t*_>}6tg3R`@d6_cz^d^^ z7d#f)t^19a)wUa=GGy(Mkz&_rG_mUxQp+qW?6c65r=#Yo6fu{<7jss8mZnCho_cL8 zZf2Xk)~WHfNq;>9psp#}9_w326G;n$qUt9igZ%*6VR!PZW*S zc|CZ%H_AHut`7D}=l6iQs?n?oZcNXx1o|E@IH;=e^y2|-#lJF+_KC6r){EN5CL;rl zq|%iv@rYhgOPJ%FQApi{jR@)NyWfEM#18_;;pw~bQGXts2?hWFa3L>t-+WQ2NlSB2 zI`TZpj#o81Rh=$X-ehFW$$ZsGCl$dnkE_9 zb`?=R%Gat;pQ<_4DQW8}6V(V0^aa1Hr`jzun^t1?w9~BS)8_1RCVH~jw?;i`Hno)J z)~?D^q<>bbt%lalwB2#POtEooxm4(EH}y&jvee%0tLr{F&jCzM3BqYs)f{b$SI*(# z18{y0uS@ zIEWAfa3-O=pPn!PY|pq>x{!ST07R3I7~ektDsjf(sK2N8(f9AUnpWs(E7X2)89^rF yB|J0)#o^)*^yIk@000000000000000PvRG^Qc4bTU%Ti40000mZ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/basic/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/basic/00002.png index d6deabe98f0ae465442e6f8d89e55adc6a1c56ce..86f889eb1b5017362ba0edf43c6bd5a0e0677718 100644 GIT binary patch delta 692 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 Rywv~z002ovPDHLkV1oRNMEw8& diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/basic/00007.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/basic/00007.png index dd996e27318e3c2417178f9a8a22fafeca662e43..364af7467f57ecc825c32581510428e33a9898a9 100644 GIT binary patch delta 330 zcmaFD^pt6WO1+M!i(^Q|oVPcl`I;3390GIhaQ=>;RQ-~jbK&6=&aQHMpL2^QrsxRl zp1ED-_`}oJZe9NsdiaHeL!3p>d9&zCMTuL>Zm}*f+kJGZ)Lz+-tDpb+l-T<8LyyJ# zXb$O~e4f`T?@qB5{HzT9_@VC7bb0lA`WF}LM`xdByC}QLxYNR?K4pbg1N%|Sd*_`p zpG1joEnj)~?>XkQpYyj`|LNeKyGYCQ5XU{0d(HDTGrDAEG|la?YV4V?=ZsXst>+56 zkADdM)@pD?bxYa(O7(`Eib9DZag%)&$;q$WD`h^38+1z^k1~y9S{AX0;ZL*avc)H_ zHGF;ZQ>)qX_n8M=r{DCksoFU|QT035q`AUa=z=8Yi=0RKj%q*8i!)#c2b%V6;6GZh Sv0ra8NP(xTpUXO@geCxF8kG?M delta 329 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 Rywv~z002ovPDHLkV1oRNMEw8& diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/complex/00007.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/complex/00007.png index dd996e27318e3c2417178f9a8a22fafeca662e43..364af7467f57ecc825c32581510428e33a9898a9 100644 GIT binary patch delta 330 zcmaFD^pt6WO1+M!i(^Q|oVPcl`I;3390GIhaQ=>;RQ-~jbK&6=&aQHMpL2^QrsxRl zp1ED-_`}oJZe9NsdiaHeL!3p>d9&zCMTuL>Zm}*f+kJGZ)Lz+-tDpb+l-T<8LyyJ# zXb$O~e4f`T?@qB5{HzT9_@VC7bb0lA`WF}LM`xdByC}QLxYNR?K4pbg1N%|Sd*_`p zpG1joEnj)~?>XkQpYyj`|LNeKyGYCQ5XU{0d(HDTGrDAEG|la?YV4V?=ZsXst>+56 zkADdM)@pD?bxYa(O7(`Eib9DZag%)&$;q$WD`h^38+1z^k1~y9S{AX0;ZL*avc)H_ zHGF;ZQ>)qX_n8M=r{DCksoFU|QT035q`AUa=z=8Yi=0RKj%q*8i!)#c2b%V6;6GZh Sv0ra8NP(xTpUXO@geCxF8kG?M delta 329 zcmV-P0k;0-0^|aaB!4SOL_t(|obB05l7k==06>$O~Ux-adO%C@tXICTM*5l7-wxd(8YF%UykH{{Ck16ODIT+R+W+o?)i)3zP4H(+z zVD&L0&e~hMF}Z|peeT>Hy~cH>!9&W?>HFk*P<{t+vYRE~9)D$lf8f3gZ|Y`i!0&mj zSGkzEHw|OK`a;}R_9Aa#<6W47I+K9TB%rhWi`exod>tDs!T13IpQh&kI#WAE}&fA&ZMTZr595R=iKm6zZNG~?!)CwmK%WaJn_o6K$7Vs-< zm?Xr23ho@bZsNOCmkk`t}Wmrj}U`E_V5$0-lS zo2&n=iS>D#bwfM$twA-r#wYog^%fx+RYvtjSw%Ob4u(1KUhT7~oPOpW<0;$Y(Z#y* zK@Us5q^3PPc~e-S_H`<=r;FO6*F9&}>i9X9e-JEOzh+Luu66C5FJ7>^eG7VCoNJi6 zEkQq9&P8K`%l|O8hpNAXU$D)5;ooc-(aE(*@7T)qr@nDb^tF(KEho2pZ4L15E zwJJ-WyMCo>)9J|4_c@E_pV3deoV&Srz0Wgqt0ddqt7rVQF>#o7ms7O#5-K+P^z9 z*eryfY1>Y|@JBXh8~f%vHu2Td_c)I$ztaD0e0szY5=urRw delta 490 zcmeBVX9s&1AueIYOnz?`uI!rN8lBh@G?y6QH`{)o)p*Vl2zS5x)*pDI;;$C*(J z-l^Iz?aqu{x%bjlzRl$gO8+PRYj zqUG|%=`&}lr~5m+jnpB0=MRexZM=ZyScZ{Xn%|E_Os{q8qK`_qT}l^-K1xq3m8f}eOHFwwvBjTJo(54 z>&s`q+aEcTH0}Nkt-@(Le7%GdezpEbTsov)d<+9YGut?g&ZbPZ~V_*Bj$q= dAq)qKf3nV5zgK(F9|c~JjHj!g%Q~loCIG!s;tc=* diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00006.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00006.png index e2923d15537c7ab9ae47a655b1d41f4d9a4fabdd..ef3d031ef497e57ae21c576823d88bcbaefc08e4 100644 GIT binary patch delta 711 zcmV;&0yzEi1@Z-uB!9U{L_t(|ob8!ia>F1Dgh{72;r>U;UHafDRiu@W4fv+S%)jd%${zyTm#UPlVGpElEw0h{y z9#EFWpq)cxMsDrum?SNwS$7oAI1qum#Ujp3@`MmV2{x=XD7KOkn7A4}iR{6e_{(F*Xkdu223gi3w8zJJD={;8f=k#T{yiM;5{G?awD@*EydZ0VD-(*0Lskj2bx~tFW4KZ tsQ7yhH1W71+chAB5RF1Dgq=)o!u^kwyY#_Rsz@s#o1fU7{hk^u z)(Rj2N*~)~-tV{kSW4+vyMo9>)R6V7RYCdpiS9#u_#)7Umo-|pG^9iOOI3@UIoVQ; zr43Y&El@-n$QG;I&#tM|p7O)`(J!UIf!iCaGquHvsP^*9W`9x*6j3u8C=Wr->&{;U zd}Zy!sO-tnhf<9-UN8tM4xZ}4)OSN~hWQ#|e%e2Yx4rdsCdt3HDk z-mIQD&knC`4HO@KLbn;h85$v&zE*TM9~al54_ndf{{Ikg95-f@fMdqD%PoS2SLW;GS)eqNE%yl=gGI@$Y`tr*M4any`>R>hMftA8pUx}?BFN*{k}sw|>! ziL0|jbKmoTP2#pbtM9DiA+4-`I9%8O07Ze>5@J75=fw6(})4%i|@0f0l4)8juMETb{NgY7)% z(9K8ht|hZV@_)skUjb`bflO?zOH9v|RWa>jQK@_`QI67^4N&rcJ!H=xt7V}%U735S zpa?W7CXP2sFfMAePiXFdP<+2l+3zFqV0=KwtnttC8Vv`edGoYo5Iv2PwUkGko?-6R z&?46E38NaOApC5SZc%F93D<(K5^Y2qiJlXMC|ycRrhn(@DogZJ5=zY}7L00mr*;LH zEB0C1LDB!BryL_t(|ob8%hvcn()TnpP`7%BL zC5oYa9Z&K7ena^@&&Tvi8)j+u60cNWu^!3JZi5)AU6uTjod&%i^6k5H1+(IET$9uX z2|=J76?agFIJMuOZ3el#Z@YPf1@Sx+jiG#=XKo#@N9oSQ@_%HlbH)_4_eHw-le1q$6yn3b>`k&8%cKnJj`Ye*yB?c0M^5Zllz9yb~?m>>B~3WfEGT* z9=Vj(5q&fmv41g_7)WI1n$+~1d{i?(MSJ9oR3S!d(!t0B-bY@#a|L^>F|ev&2=rK` zc6JVTYV@p3pu7VP@d?+yF3AsZ_=8bccY)QDx2Y10CZi@X@^V!%0Dr0-I-Wuv8}=X<|2xW@jw=Xz zP_w~vSOuIzPL?H)|Ktw78qWOJvD;qR>^I?n z{ZEL!e6R=3G_p~%CcEx{BD?&{uUjhO0h}2(f-nF8000000000000000000000002M b^ZWr|x)R?W!Bp+s00000NkvXXu0mjfuF?OQ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00008.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/delegate_parameters/00008.png index 59fce75cd1321a13bc8840b9bc6f48f87485d7c2..1fcdee14dce21c819b5e211dbbdf546034789b00 100644 GIT binary patch delta 520 zcmbQovXEthO8pB@7srr_Id5kM7PTnwv}GTc?9lLqhrP``?db{pjpG zrn-!U0To35*yKO|c_nY(;}iDl3pp15@@+0yKj(GZ2jO)Qi!0;h?@JvK{bu>h_dw;m zC>H&`#}l@1wo&cf>|r+HxasUAEeqn77VM}Oo1S&_%OUo&8v|3VEAJn(oc*S;Wc7xV z>D?PkR$Jt~$Y$Ht9=o-3_wDs}M9Xa%!wV&h zZNFN6;N2?O)%sV(gcCHDR}1D{YwOw0a+TZU?3Pm&UgqzdJ2R!)ms}J0cxC>UPkbi= z&zTwpiY` z=a&X?hINib6R_{Q6~TjT+w|?MFKJ^D5d(eRvMELg+EprtTYqt_R!y&bupApz_LKMR zT=NkRv|E*pT&>31t?Im^ZyER=UaH-=yW`52;-M$tNO-$y>D@$PIrG?B`mKRa6_oBz zxQC-$E#b#u_8qXgYUk=}waElH%H>>yyR|`xmY{Zlu9;OCN4bpqP-42qDXDctBK4=t zyaOc4Qgi$=J%5^yR^Kw1RI{o_FhgBseK?%y+-LJGuyUNfN|MpP{p(LYa1Y_}J)y|^p@I^cNo_f`c)6F%%jny_b z#K!54X&)l`RkP1J-<@^o!zlMRVj6KpwtsqTbztF1Dgh{72;r>U;UHafDRiu@W4fv+S%)jd%${zyTm#UPlVGpElEw0h{y z9#EFWpq)cxMsDrum?SNwS$7oAI1qum#Ujp3@`MmV2{x=XD7KOkn7A4}iR{6e_{(F*Xkdu223gi3w8zJJD={;8f=k#T{yiM;5{G?awD@*EydZ0VD-(*0Lskj2bx~tFW4KZ tsQ7yhH1W71+chAB5RF1Dgq=)o!u^kwyY#_Rsz@s#o1fU7{hk^u z)(Rj2N*~)~-tV{kSW4+vyMo9>)R6V7RYCdpiS9#u_#)7Umo-|pG^9iOOI3@UIoVQ; zr43Y&El@-n$QG;I&#tM|p7O)`(J!UIf!iCaGquHvsP^*9W`9x*6j3u8C=Wr->&{;U zd}Zy!sO-tnhf<9-UN8tM4xZ}4)OSN~hWQ#|e%e2Yx4rdsCdt3HDk z-mIQD&knC`4HO@KLbn;h85$v&zE*TM9~al54_ndf{{Ikg95-f@fMdqD8}jKv5FqCfxr>xl1oBAyQS01`O)|Rvs8C zfHA=@x61eX4aeU5W%Zh2JQzS(+)`tUttq)O**xtHSryB7(HD?lWnt$n`rT_-gef&v&`m?6vNYD$W_q(^uorqxAH#Z6L5+X+uC$k2ORN=0XWiDpMq`DW}hXC!kej+~R-Z*r_13F;}^ZH!zq7I>42-h%;Hn)^3(* z&RwZp>-#qSBer1cxM|mG-WJ(2Pe9GWBYx3|?^b=q>JVf#AJ??XU~q=>c0*nI3ow(h h0TUYl007`0_yYhscAzAz!I=O6002ovPDHLkV1ibp)@uL& delta 433 zcmV;i0Z#tk1Kb0UB!8nxL_t(|obB0Lu7n^AfMI7cJ7NDzaxdq>q~Ww&DsnUVzb8kL zc0dvFbIfv{r)-B1rp2{6tcvaxw^ZM1JvBRv4Kg%(vgVI1H0T1cSKk#&(u%j^J!-$y zAQjrP;sVK2oYC9=ZH8^$Z~5?u4C4Q(BFc6MA=i%APura;bAQ#=xn!!*`?B5q%Vjf2 zTZmg{C7XNBzw?mW`uh1*2Nq@JwMipBp)Q4gL(nVw;HXVzk^{&lJy&@K9OL_-I?a$# z`)(S^N9f&oXLEFqeTKnDZ0oF@xjv-t08I9>4tU3_EP(0aCt>phX18bQZuw+AOmyw) zTl3K_e)S?Xc7Jh3CcK43G__L>xNu6x(8&suV^?m~ zx{FO;#6~Zh+*lqs bfQ|hD{MLH=Su2>Z00000NkvXXu0mjfVkX_@ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 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 Rywv~z002ovPDHLkV1oRNMEw8& diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00007.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00007.png index 85234247e808c9a4eed986210646699a8fad3053..2b33e84bd934985581cc1e8b3a0342a628c6b7be 100644 GIT binary patch delta 333 zcmaFL^nz)EO1-|Pi(^Q|oVPck`C1fs90KQ@@w@SV(w);aGX$2cZQyU2RlTo9A;cjg z=1}mpQs3i-$By4JJuD&N5PL89d)V!u;^d8WzgQE(cE50%o7O(BDmq$o%^!>XO6!(O zed7AsTsiYl@KpxC{p&r;-!HHEU6xeWDR#NAr*OUS_TXYw!R4*>f>t62dcR22e|LKM zBu3bMzR~XAGsV|<&Hq~VOVFIn^=ej|+#ZiJ&HGhP9F=Hk^EnpdkS4L`l$^k?en->e z9^T(N4bJF($+%ak+K^RY#WR!jtiQV1!wUWL&UK7&6>qX9Z)Pmm=*q~z_IXpZg@^Om zddGua&ZRRyEUL+r`1sjR-Ys1J+?hzJUv@kP5`f6g?BSuh-Q^c`*ch;b2ey~}=>5DQpQi^%4^FN?^G zpg?_0S9!nR@i>HVS=>B_UeRkUd+N8%*0fw%t&yhDi!DF$N{t?n{OOxx#k7{k%aWu# zwh$Z4uUb|pUQ!wT_}#9^yZ8D1bc+m@_nAbD$03BZew=^i!+)7%p7ixvGMmwVD<9_9 zS~iUw3$g2}Vs~G2cQxW`J^y?rCpu+S>n5FeM)D|pOhH48!L+rRDNZ0a8M%!$U}`@G zo7;>yYwt~?xProB#j-07*qoM6N<$f}g;kvH$=8 diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00008.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/reject/00008.png index 59fce75cd1321a13bc8840b9bc6f48f87485d7c2..1fcdee14dce21c819b5e211dbbdf546034789b00 100644 GIT binary patch delta 520 zcmbQovXEthO8pB@7srr_Id5kM7PTnwv}GTc?9lLqhrP``?db{pjpG zrn-!U0To35*yKO|c_nY(;}iDl3pp15@@+0yKj(GZ2jO)Qi!0;h?@JvK{bu>h_dw;m zC>H&`#}l@1wo&cf>|r+HxasUAEeqn77VM}Oo1S&_%OUo&8v|3VEAJn(oc*S;Wc7xV z>D?PkR$Jt~$Y$Ht9=o-3_wDs}M9Xa%!wV&h zZNFN6;N2?O)%sV(gcCHDR}1D{YwOw0a+TZU?3Pm&UgqzdJ2R!)ms}J0cxC>UPkbi= z&zTwpiY` z=a&X?hINib6R_{Q6~TjT+w|?MFKJ^D5d(eRvMELg+EprtTYqt_R!y&bupApz_LKMR zT=NkRv|E*pT&>31t?Im^ZyER=UaH-=yW`52;-M$tNO-$y>D@$PIrG?B`mKRa6_oBz zxQC-$E#b#u_8qXgYUk=}waElH%H>>yyR|`xmY{Zlu9;OCN4bpqP-42qDXDctBK4=t zyaOc4Qgi$=J%5^yR^Kw1RI{o_FhgBseK?%y+-LJGuyUNfN|MpP{p(LYa1Y_}J)y|^p@I^cNo_f`c)6F%%jny_b z#K!54X&)l`RkP1J-<@^o!zlMRVj6KpwtsqTbztL>%3 zC;_fcKbsZDalnuJzMC~2nVVx09kY$XZrqb@I;XGCT7%T$| zz;Bh0#AKt{@pw8beS3kvcj1=R!OiNuWi$;}+F z*Sk!BfH?5EfyNs=Telg=Tx6r`b@%(%YV3ND@etCfS^Z4AJ=X=+BKsP z_sHln+Vc)4;@ zG6vyZfPbU&E?+rL|Jd=i4})V|TZSI$DTx2Jnn+bri&XKgiG>#w#10dYA>NTR^;gB!8<(L_t(|ob8-ja>F1DMV(G|;{7j)z4XIVs)&bqNV;-H=c};^ zTx28Q+Ue`CBBew>p66-Sv}bhXw+!6Ie&s>0ajI6vvvYt_5Y6m zo9MIVJH4&m%TrBszSu9L8V5EG-mMdQ&F8;c*?=-qW~8m1GP1BBf25#tfIJbOalg2k z0}k73knii;L^QjAq2FTjb3Rfnql*0$8w5cR1ObZv>Vhsm%97Q^$?~RbN&r2$uc1%H zj1vUD>RJ$Bynk5aX50=fZ;PIyee3tLf41e&Z3of zN7y{K8q^>{q@Z94_=+nCf=9DplcDT6)n}HlNf@<~^MAI26y66MYBpKxAiQ07XxL=4 zZE3eFi2Mksf?75DU#;5B0Vtmi?hp2foiG@c6r^X9G0g0_Cn4V9+m*XgyEYh2!fVi% zID=7Q!4m|5B{pxX9iQ{9r7M>|W;!xv0ZhV9Ce?8nstF zAT{3Q%YVoFKX$zB!{8X#mZ67w3fg~LO{6NRMXLDL#KH@5Vuy*y5bsEsabR{+kP|yh zRfhMUPdl;0oXD6ZQqULS4Ug9;*Iw$?|bmPNv%h~wXRyG2pHU#)5VpBcQ z*wA4GC|&>qQ_P7g=Lq<#YT5$WBY}OaQ_!aL{Y5M+Xby@1dmytG2$BBp2oNWB!eE3) y0Nk6?7ErCw7jRPyE?|mCLEj7f280U;9>6cx6a!}!6t(350000y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/simple/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/simple/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 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 Rywv~z002ovPDHLkV1oRNMEw8& diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00006.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/stake/00006.png index e2923d15537c7ab9ae47a655b1d41f4d9a4fabdd..ef3d031ef497e57ae21c576823d88bcbaefc08e4 100644 GIT binary patch delta 711 zcmV;&0yzEi1@Z-uB!9U{L_t(|ob8!ia>F1Dgh{72;r>U;UHafDRiu@W4fv+S%)jd%${zyTm#UPlVGpElEw0h{y z9#EFWpq)cxMsDrum?SNwS$7oAI1qum#Ujp3@`MmV2{x=XD7KOkn7A4}iR{6e_{(F*Xkdu223gi3w8zJJD={;8f=k#T{yiM;5{G?awD@*EydZ0VD-(*0Lskj2bx~tFW4KZ tsQ7yhH1W71+chAB5RF1Dgq=)o!u^kwyY#_Rsz@s#o1fU7{hk^u z)(Rj2N*~)~-tV{kSW4+vyMo9>)R6V7RYCdpiS9#u_#)7Umo-|pG^9iOOI3@UIoVQ; zr43Y&El@-n$QG;I&#tM|p7O)`(J!UIf!iCaGquHvsP^*9W`9x*6j3u8C=Wr->&{;U zd}Zy!sO-tnhf<9-UN8tM4xZ}4)OSN~hWQ#|e%e2Yx4rdsCdt3HDk z-mIQD&knC`4HO@KLbn;h85$v&zE*TM9~al54_ndf{{Ikg95-f@fMdqD9Tce%a%Mlc>7wUcthk{@B3R;l)qTF-F|gTsQmTt zBVU7@V;Aa0+`p`GmG{Ay|E4d$?7M9r@ApOjazM&>K|>n=oHKtnL<=XF;xBqy!aD`jti3j~I_CKVWoVGYhMVy?$+|hpQ^%=&@ zTIrJO5~(Nb1lufI&#kkr=UgB?kI#8s)1S-SvrXow+CPyNa6J+;yUEm{LzC-(y+}z( zmkB$IZ{h9b^{0!!m_+m#x>J6m5XuJ~=cIyR=}ZIq}g19osA_a6gO7pv~V@Q*nl N6`rnsF6*2UngD6buCV|B delta 364 zcmbQl+|E2frQXle#WAE}&fA-wd@TwB4uNkggx}SxyuZXP>=bUeif8J-{HF~fO-zsW z^%l)re!uJ-Z};lc2HI6?H!Qn%cAMJsQz>&xdgabmUhlNBRrvLCchb+K*4qyS3-3IC zV0m_h+dB=;`2zii{KZoi@ou}6qIRoM=TcFtVZ!VC zY)3QO-fxZW7L;|0em-~m;_DI1rE6TSpSv^jweu(50}02Z4jfyq)9^pJL}r@_o5b2j zdlt`0k=q+27Ta)nwZqJ>7A6-`KmYZawV`#<@@reZNN-rWUrsyxPT0CC<3;?N>}FIl zhovP5gTe~DWM4f DR)wf~ diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00006.png b/tests/integration/nano/snapshots/nanosp/test_sign_transaction/unstake/00006.png index e2923d15537c7ab9ae47a655b1d41f4d9a4fabdd..ef3d031ef497e57ae21c576823d88bcbaefc08e4 100644 GIT binary patch delta 711 zcmV;&0yzEi1@Z-uB!9U{L_t(|ob8!ia>F1Dgh{72;r>U;UHafDRiu@W4fv+S%)jd%${zyTm#UPlVGpElEw0h{y z9#EFWpq)cxMsDrum?SNwS$7oAI1qum#Ujp3@`MmV2{x=XD7KOkn7A4}iR{6e_{(F*Xkdu223gi3w8zJJD={;8f=k#T{yiM;5{G?awD@*EydZ0VD-(*0Lskj2bx~tFW4KZ tsQ7yhH1W71+chAB5RF1Dgq=)o!u^kwyY#_Rsz@s#o1fU7{hk^u z)(Rj2N*~)~-tV{kSW4+vyMo9>)R6V7RYCdpiS9#u_#)7Umo-|pG^9iOOI3@UIoVQ; zr43Y&El@-n$QG;I&#tM|p7O)`(J!UIf!iCaGquHvsP^*9W`9x*6j3u8C=Wr->&{;U zd}Zy!sO-tnhf<9-UN8tM4xZ}4)OSN~hWQ#|e%e2Yx4rdsCdt3HDk z-mIQD&knC`4HO@KLbn;h85$v&zE*TM9~al54_ndf{{Ikg95-f@fMdqD>KjU%TZ(0E76Y+&!|b zMkjYh_r#?x`#n$o#+3NiTYihF%XO`q-p=#S!-hRR_JUBZfK{4N8vCP#AElBVX542x zYw7lGlYdJh-@?V8&&4xkv@Jh8VY9;jFGtjR(r@zrWLuMTG-kF~c7tl027||+^2qL9 z###SGuIIj0+OF~ZMCI;HY~nRt`*kY$q9Q+veVv{9Z&t*@*ETE4&mOY1#f#DxW-fl_zV6r4N5VID1~4*U b2lGBMe)unJ*X952KS+V6tDnm{r-UW|#J#kI delta 366 zcmV-!0g?Wm1DXSnB!6K^L_t(|obB0J4ul{KfMI6hO}PJ&yvsb8Gz?`aDqHe@Pq+aV z7pxyQ%6Xnr_TCR`SNCC7>sDc;-mTVBvvIdhy0)II`J;F0bb;ur?`liB6_&#_(R!&t zD%3}XJ0uS=wtoL?Gjw>r<;^{M5T0k$qLjV&xj0^ndN`w=M}M)-b*9?-yYw(0x!!bg zuZgCklHne6b{2A5UyI*p!=zqWEfT~hqD$fL5wyh^xY}eU`2bmD3T>Tt-frDuoyXuKIy!S_t`Eg`00!G^0QUHl1pwzxa1PsP8gF zI7gOpAqVGzPfC_#R!*me3Q0Qr#ahbMm3lF`v!$L{R=ES3^+%7;gP!R~bxlW_qS7yw|7AF2=+nR}(7dH?_b M07*qoM6N<$f-pz2TmS$7 diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 zcmV;%0y+KI1>OaaB!8tzL_t(|ob8%PlEWYjMV(Y`;`<-Tcj<+zX`=Cii6LG8tr8m~ zA&EgGk8LH6<0zl^eV=H_OlmLOtap~`doV}$(v6l%y<&8+>U^^Ad-<^ank}9bA>Nal zIV}{bpY@j&ykEP?b12^NL_9&HeTb4Jg}(qy_rAz+?W5Fdr+EodvqDyWyw|0GhcPQC=v!1M$&*L)j%Mznih17qT4 zBsQ{Xl0EY#N;eYNGwUyAL0NM>A!7?m&}+z`@JpR!37X3&|B9aq0$r(d@st8DH``_a zuKsLUCxSUA1{@M9u1~u-b6X`N^8lIw=1O-xJ&V6a34gqTHp4Wm)!G#<`3D0Y0WV4$ zJ2eBA-U9^bI{uA(QvlNKF>RyU6GE2dcxUVSr-CQYe5)JlzM%G?-i|BVxCZtHg7j)8 zE!jsMIks%%LBP^uOd4$6GVL3O(6q;6%qCoG)#vC9*gxx&Xeq zOs@-c8-E(~7jJ7PnvpQ;9UrGYN3cXNE5)>Gy{v@wDt09t+VjyGCR8q!|( z)dB7+HN8=QH$t(@@&p;?usWdcKbK-1ZyNcqy>1*j2B}*n7h)Yhq3FK%MnuCeSsx<#1M#jPb5JCtcgb+dq sA%qY@2qAWhai~XwS9Qg_f+O_rlG3SE;@Sada=-K04*-tmOIiAehpElV1I0a)&RlH=S*uGdcg8h;&kSmlU?FY?9m7--&~ zCI1s*QxGS=EkR=Xtb#i$=)U2OH^5W;5ovS};wGtW!sUI+_Pd29ZTTj=e1QP~006*T zNOhAv$Q~U;0{^NgWtygxS6-r`l$~xf*Qzvzpo?{rJtT23#zRE@^GrilDB7bjXA|zV@}qPK?4Nzv(t9?0=CR#9cE`v2YI2MkQ|sac zAZR*wdVg<1U0iQbeC?K0;y}1D1SbGoee;es+Mu*Zd)}7^c&ysg zMiIOevSqe6kzr1&1IGSyN!Iby$fxaf^WZUX-Lkk4%l?ES_Psw6hN;;Z8QlY19i*jr z7dX5blGT}K*}-mJUA@8*sBRO_uTc?9lLqhrP``?db{pjpG zrn-!U0To35*yKO|c_nY(;}iDl3pp15@@+0yKj(GZ2jO)Qi!0;h?@JvK{bu>h_dw;m zC>H&`#}l@1wo&cf>|r+HxasUAEeqn77VM}Oo1S&_%OUo&8v|3VEAJn(oc*S;Wc7xV z>D?PkR$Jt~$Y$Ht9=o-3_wDs}M9Xa%!wV&h zZNFN6;N2?O)%sV(gcCHDR}1D{YwOw0a+TZU?3Pm&UgqzdJ2R!)ms}J0cxC>UPkbi= z&zTwpiY` z=a&X?hINib6R_{Q6~TjT+w|?MFKJ^D5d(eRvMELg+EprtTYqt_R!y&bupApz_LKMR zT=NkRv|E*pT&>31t?Im^ZyER=UaH-=yW`52;-M$tNO-$y>D@$PIrG?B`mKRa6_oBz zxQC-$E#b#u_8qXgYUk=}waElH%H>>yyR|`xmY{Zlu9;OCN4bpqP-42qDXDctBK4=t zyaOc4Qgi$=J%5^yR^Kw1RI{o_FhgBseK?%y+-LJGuyUNfN|MpP{p(LYa1Y_}J)y|^p@I^cNo_f`c)6F%%jny_b z#K!54X&)l`RkP1J-<@^o!zlMRVj6KpwtsqTbztg{s+P{q9Oxs{1*BvZ;)v3uK3H(fYRa=lbtu mm%%z`Q*ISO@3O}XKemod9db~N@ZA6 zAD@2Ldi%9eWh}XC7++cyKPa94=#P-dm7coBn@80{)Q`$<@MmD#eS>99cs+x~;a^hO zVh_I_-u7{q_x5RKQ{TF^+TY&$?aha4H_z@kxa)W7zK#1FuLpbYcBrcri{IF+u5k8q zTwQtkq3{2BKMFtK)#m1!zid&^eMaVQ#Uh*Lr>H;3QM&2RrMhDGI=&T7cmMyjewg3* k@ZT1emkCS^Siyq@>dj}5r>brfy$zE0boFyt=akR{0Hvd!x&QzG diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00008.png b/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00008.png index f25662e2c807a31da6e5af8d90a1d9b976484253..e2e0638c6c0d805bbb9aad583c498b6c213f48b7 100644 GIT binary patch delta 706 zcmV;z0zLiM1=F1DMcqzz;{7kld+7&LO7y%KV&l#|UojSv z5Kj?*ZTE2;hbYtmpy7taJ(OD7OjCeRazO*{4L=m*n37@pwBHQxrm5$oP#;7q)X z#7=fiGMNddfE`;#{op95Yp$ncZej^W4QUj9p^z*=_cANK$fdu&$~M7=6nMGWHv@3< zMY0_T=A4*tNN5^cTAmQHEXO+=kQL(!&9_=u*9ENy`F5Py#yPOp5TsT&Y05t9 z$gyQD4>~M8#-yFCCDXcb7n=Tf%-MuntLaB=W_A5J+qpAO9PSe*D6?+x>8h7zdR3s? z(4f9}+kXbp>{w?1AuQ@x{3~+N&o-=07*qoM6N<$f{NWqwg3PC delta 704 zcmV;x0zduQ1=t0UB!8btL_t(|ob8%fa>O7EM4i;!#P>gv?~)H!2qTGBgBdTWeqUoO zBq3HY{#veM+cs0OuIpa7t}Ce0diziCarv}4-XbsDrS=>`e_meb+VN$^cApah6bKJxqMgB5@os(6@$Z(D_oY5Yhw zhj*`QhS^M*f$ZLW)E^uRW#tW(OdMro)R^XU-6rHq(6vknaeC?R@3BMp!NlKecFzFb ziCwZD4&j`bc2qb#=kUnwRZGqTb_Rs&-SOdBLN-g`7=PY@(4}5KpMJw1L!JVUsG2w_ zQ|`V8)Zlgep**Pr(j79DF~UNKJF~sB5GgUQFnsHUeO=NzNVaiui__p%Lzr6K;4FW@ z5{?(p3_2`5$)ug_CDXdN3qyZe%-Mu%tLaB=VRipG+t`^0hkNXf&({T?uC{W_R+Xd! zNY{PPYkya866aHuFn?h@X&D8!yxpY{>olbb8{(ZYBpu+*m*})wOKM}}eO=$dW7%e_ z738H5)>%rJW=_ik{7pK8S;xCtK5eg?hwp#EbzxcvbD0000bJ+D)JGH*ZhW`FCKQq+d4g)Nv? zBAu}E^3Nrf8r2EwQOENw(0;9aX26lLug=PqHF{{Nk;WSufz5*-_CtSa-D)&+%+i;i z2!_q7XTtjUYYE!c2TlX+Y(800cGaCd;7aR*mWR+4xs|gtiCR*#ZY`Fv<3!yplGwS( z0{{R3pvSBJp&N9&wsbU^Gc0BiQa^~;TLDNt!-||q4u0)cX5~1S4$VZ!IhwMPddp7j z*0ZAoJ;;QT<+7IBpjm$;Ht9!o-fgHaF)os*#z!c%w^TMZilsp2*rzf&DMvl?`Qe;& z9Jz+x`eu~P7 zkfbx$`Zd~HdhVb|ut^I#3mbsbb3Ma3{~|WwqKI!y*ZB0mahrc#cV&&jxt&>UPc=ye z3fb!cUxL79&;bB|gS=!>FpFS2yDB6EJw&pLuDsE8F4acsUHoVxzglO~v9xDVoSMLq zLl(8O%Z)G+^IU6mpH41aMAft$XkWO;0vZo#NB}h%(Scyf3HrJGAKPt6N<2f-kW8YQc>2eB5v-Kg1 rz*(RL9VVKF-V4S)ld%FA7eEGo@n9pYG$gmcBmt+9B_V&(m?%O9gvE1TS2FMSn_iYu*1bK!Ng`~>*1a`{^z+2e zZ;9a`Y7D>9Xxq}D0o6`f3!ORI(u}E%>VdYXPN)HGk)GG7KAE>4da-}>ODXEW)y5V~ zYmrV^d->-QTaD_3&8Xw~7U;ZIJ{fRi?W-J(9J5JQ6MG`wV zc>n+a0Q7j(KlB0JK3h7PtQi)o2&o@L?5zN#o?%7KBnQ8DtFm&OONVA5|OTA>L zcI&sJ1U<-tlGU=7+n|40BsS?sb>1DQFEK7ssK!?)wYO9@wu+@d=Gdn)nv|oSd44!2 z9Y?OAm%dpfV^kZ}o@JrDl;=Cgezf<|V0>4f3{b_=2=tkuK0Jn;tfQvUDcY!7H<+ab z4M{q4qhF)FW#$fw1e>&=v#ao`x+`lH&OMpc@l=ac zppd;E@GS^z1`_}PILJ$F4HgpY;jU^4zPzOh6@EyUA#Ze@OSRFu5kK0G!w;gtO&VEH%IeS*T35e{BRs_?k+;s0V^D*M-?(`W*sM>< z^_Z$kJxB7=C*YtuNGakUq?4Sh>=^`e3sS2$)?%?P&#}Im^6ZDCj%mE4re^HDO1xao zA|qiRvI(38TF_wz%Fr9Z+6Mpt0000000000000000018V000000002U;13^%Bdl=# Rywv~z002ovPDHLkV1oRNMEw8& diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00011.png b/tests/integration/nano/snapshots/nanosp/test_sign_transfer_ticket/00011.png index ff518831ae81679c8510e8cb4bff506d46ea4c52..481b93b9956f8c503a1857268cc7589892a54c65 100644 GIT binary patch delta 382 zcmbQlJd=5XN_~Q-i(^Q|oVPav`3@=YG(61Q!};C*(z{28g_@QI9B91q=f3degIPBl z9zKqEYI8njplUiUiodROAor(c9W zR^}+?8myl&FL-4to57#z(8{X$U)SfWztb-~3N&TPqzc(p%AFSVYrX`8Gnk+H{Ueks zb<#%fFV})D?|sHT>rry8tld#@`>s`2`6T~L+QDzvrXXHhV6rCV3S&z9Ipb#y$#wEG zvU@C2_*)kGE!_M1Tt1V*;nRmFtX}Z8D_&c4jZtrz2E)Cp?XwzH zxst=@d+j?GB$@s8ny~)wDXryR(H!B5`xZ|ztGuMUEy6s0?XTF)=TyyJo^e`Pm25rx z#%s=inV%1C@<=PV!1yd8@P5I)Ih(~d{@;92c)>g7uKG1sx+>RB3+(okV89N3d}ecv V;ORDdeNYgjz|+;wWt~$(696=6uWbMT delta 375 zcmbQqJc)UNN`0iKi(^Q|oVPav`I;4Y8WOix2*0aWdB2H$a@*E~)qE{a|IeGjjEaO@;djDmRU6LTq-^%vti47 z=JJ_}i@)8>5?Ov>^Xqe`FDf6CWXs>U_Vb%lU)BDyE!ce0DxuFml3}v-ypZ?nCqA&q zSfA~yxzp`+=hgj77T?l4G;czF!IWEe{`*d=RbKse|Bz4IVzZZbTy(29%yI1b$|kb& zv*Y$zTMQi8cO)PEIPdcVwci52?V0y79<6owx;)fy@mW#HtutB}8L)x_HFp1^1fEUr RmFWS=d%F6$taD0e0suO5vflsz diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_with_another_seed/00002.png b/tests/integration/nano/snapshots/nanosp/test_sign_with_another_seed/00002.png index d6deabe98f0ae465442e6f8d89e55adc6a1c56ce..86f889eb1b5017362ba0edf43c6bd5a0e0677718 100644 GIT binary patch delta 692 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 Rywv~z002ovPDHLkV1oRNMEw8& diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_with_another_seed/00007.png b/tests/integration/nano/snapshots/nanosp/test_sign_with_another_seed/00007.png index dd996e27318e3c2417178f9a8a22fafeca662e43..364af7467f57ecc825c32581510428e33a9898a9 100644 GIT binary patch delta 330 zcmaFD^pt6WO1+M!i(^Q|oVPcl`I;3390GIhaQ=>;RQ-~jbK&6=&aQHMpL2^QrsxRl zp1ED-_`}oJZe9NsdiaHeL!3p>d9&zCMTuL>Zm}*f+kJGZ)Lz+-tDpb+l-T<8LyyJ# zXb$O~e4f`T?@qB5{HzT9_@VC7bb0lA`WF}LM`xdByC}QLxYNR?K4pbg1N%|Sd*_`p zpG1joEnj)~?>XkQpYyj`|LNeKyGYCQ5XU{0d(HDTGrDAEG|la?YV4V?=ZsXst>+56 zkADdM)@pD?bxYa(O7(`Eib9DZag%)&$;q$WD`h^38+1z^k1~y9S{AX0;ZL*avc)H_ zHGF;ZQ>)qX_n8M=r{DCksoFU|QT035q`AUa=z=8Yi=0RKj%q*8i!)#c2b%V6;6GZh Sv0ra8NP(xTpUXO@geCxF8kG?M delta 329 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 diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_with_long_hash/00008.png b/tests/integration/nano/snapshots/nanosp/test_sign_with_long_hash/00008.png index 59fce75cd1321a13bc8840b9bc6f48f87485d7c2..1fcdee14dce21c819b5e211dbbdf546034789b00 100644 GIT binary patch delta 520 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 Rywv~z002ovPDHLkV1oRNMEw8& diff --git a/tests/integration/nano/snapshots/nanosp/test_sign_with_small_packet/00007.png b/tests/integration/nano/snapshots/nanosp/test_sign_with_small_packet/00007.png index dd996e27318e3c2417178f9a8a22fafeca662e43..364af7467f57ecc825c32581510428e33a9898a9 100644 GIT binary patch delta 330 zcmaFD^pt6WO1+M!i(^Q|oVPcl`I;3390GIhaQ=>;RQ-~jbK&6=&aQHMpL2^QrsxRl zp1ED-_`}oJZe9NsdiaHeL!3p>d9&zCMTuL>Zm}*f+kJGZ)Lz+-tDpb+l-T<8LyyJ# zXb$O~e4f`T?@qB5{HzT9_@VC7bb0lA`WF}LM`xdByC}QLxYNR?K4pbg1N%|Sd*_`p zpG1joEnj)~?>XkQpYyj`|LNeKyGYCQ5XU{0d(HDTGrDAEG|la?YV4V?=ZsXst>+56 zkADdM)@pD?bxYa(O7(`Eib9DZag%)&$;q$WD`h^38+1z^k1~y9S{AX0;ZL*avc)H_ zHGF;ZQ>)qX_n8M=r{DCksoFU|QT035q`AUa=z=8Yi=0RKj%q*8i!)#c2b%V6;6GZh Sv0ra8NP(xTpUXO@geCxF8kG?M delta 329 zcmV-P0k;0-0^|aaB!4SOL_t(|obB05l7k==06>$O~Ux-adO%C@tXICTM*5l7-wxd(8YF%UykH{{Ck16ODIT+R+W+o?)i)3zP4H(+z zVD&L0&e~hMF}Z|peeT>Hy~cH>!9&W?>HFk*P<{t+vYRE~9)D$lf8f3gZ|Y`i!0&mj zSGkzEHw|OK`a;}R_9Aa#<6W47I+K9TB%rhWi`exod>tDs!TTc?9lLqhrP``?db{pjpG zrn-!U0To35*yKO|c_nY(;}iDl3pp15@@+0yKj(GZ2jO)Qi!0;h?@JvK{bu>h_dw;m zC>H&`#}l@1wo&cf>|r+HxasUAEeqn77VM}Oo1S&_%OUo&8v|3VEAJn(oc*S;Wc7xV z>D?PkR$Jt~$Y$Ht9=o-3_wDs}M9Xa%!wV&h zZNFN6;N2?O)%sV(gcCHDR}1D{YwOw0a+TZU?3Pm&UgqzdJ2R!)ms}J0cxC>UPkbi= z&zTwpiY` z=a&X?hINib6R_{Q6~TjT+w|?MFKJ^D5d(eRvMELg+EprtTYqt_R!y&bupApz_LKMR zT=NkRv|E*pT&>31t?Im^ZyER=UaH-=yW`52;-M$tNO-$y>D@$PIrG?B`mKRa6_oBz zxQC-$E#b#u_8qXgYUk=}waElH%H>>yyR|`xmY{Zlu9;OCN4bpqP-42qDXDctBK4=t zyaOc4Qgi$=J%5^yR^Kw1RI{o_FhgBseK?%y+-LJGuyUNfN|MpP{p(LYa1Y_}J)y|^p@I^cNo_f`c)6F%%jny_b z#K!54X&)l`RkP1J-<@^o!zlMRVj6KpwtsqTbzt$L)Ap|9E2t-6g zL_|bHZ}PRe0~e%}@`o6sI?`0W=Gph^4!j*?0QwUj3uFLjjq!<}QbNg+&*~0bqwd3U zln3w3-fXf2fsTHF%Yddj8-Q$*0l0PuK%V@akgRgypYv#q>fx)x$fl z8mfXXv#nXpA1U$6rR-?#mz!|stXFHM!h7-qyBN0t27ri&Rx^F#56m$pC3&Zq~EgvQS5c+y$U4Dg7AK|8-smJ>qmH zZ1ln)H|uKkcb5V8ilCvI`xD+T(H-8R;&ch34f%gvOhiOPL_|cizaI%WRtXbXentQQ N002ovPDHLkV1g7t>G%Ku delta 471 zcmV;|0Vw|Z1NsAyEq_6B!ypU=P}<2&xc`y3OBYP3Dlo<#3-s}StHg;7gAg`KLLed{ zA|fIpdXul!9k?K+lwZUc)sd$1HP60Rci`Pi;Da>M1C&N2u^l!IPPP}&oCv)qt8#70L+6X!s zbVc^+Qx2_qpgyhX*Bz6+l|=}3mJD`&+dONe#b>F`gt`ZI>I`VU?jJl|iw3WAdeDfx z{@*@8%^;(ObAQ;4+DgA3zw(3B-2Yb#YNy82&D&i(xZe-g!>fyN6PCZy71M@%s)u)8 zHB<#(W?QqGKT_hCOWD!fFE`=NS+CYih4D`Bk^$1l+^lD}Wl)a{xeGv9Qu;BdKXqOQJ>o6^ znbGQ8%5Z*Ge|G`6R|E~!+@J9K65Zh~DlEp)EdGBkCL$stA|fK%-w$H-P~F+bU^M^$ N002ovPDHLkV1i%u+@k;h diff --git a/tests/integration/nano/snapshots/nanox/settings_expert_mode_disabled.png b/tests/integration/nano/snapshots/nanox/settings_expert_mode_disabled.png index c38eac887fcbface100aff4569cb469cc1e69d61..22d3f5c2eb87768ffb84d6c225b5699b021a6e76 100644 GIT binary patch delta 425 zcmV;a0apIP1H%K5B!7xYL_t(|obB0BQp6w(fMImJ3HLt|ckzLd$s~c+wE zb~i2eIsuQrajoWzUw`*gTz`l4@03rYY00000000000B`LZg-1V3 TH>HW^00000NkvXXu0mjfm95N? delta 424 zcmV;Z0ayOR1HuE4B!7uXL_t(|obB0Ba)clZfMK@Nn{fXlahEzs33M-Mv2JaV+((H+D+%=pQQ5FUW4E{L47 zdtFOZ{aRQ`vGr{jWHr^79f=*DJLVJ?>92@JrBX`kRh1>`uYdKHI`y(#)~|Kc?J{O= z%eL8zV|dok6m-0g{nR0!(|zXuyot8K*0kD?2N{=wZdf6|M~@*q1xfDmSKO5H6gLgJ z-3^Pq4#49puI8Nn@^?SQ<(J#?z0@r4k{^=vTg2ZLoC%VD}7aJdRyewULm{0=Cq=SL+7gpiW>u z@1L~Q1E9F)Wp8a}0Qv`hDrKwmBD2uN)5Ol%q&olr03iSX000000002+)_wp)C_J@d SQhA{O0000 diff --git a/tests/integration/nano/snapshots/nanox/settings_expert_mode_enabled.png b/tests/integration/nano/snapshots/nanox/settings_expert_mode_enabled.png index 7adaf2fb335b9ef08bf1e74b46e6220bec083b50..f7e9acdbd453cdeed5882d259ed65d2dd19db67d 100644 GIT binary patch delta 414 zcmV;P0b%~O1Goc_B!7QNL_t(|obB0Bl7k=&fMIuMZ^HeL#9j8mStdgQ(v|=V|Mz4q z0uqfiy)FO%00000000000N~=wuj?3N+72Q34b;&+=aIAh@gBhMWX3O+2loIZ>4pd) znA>Sj);{fwG3xd@46<1^mY#{8o;l~sEz;i}ok}sr(xoc*WPjhLL(U`9?DGJ0zvEKQso(zQqd5LCdzNk5=Oe=}A0+S1;Z+a)c;~y)pi{=3rFgQlR^hY& zT;@_wT!I4waDS~9gVQXRg^se~bNC#3c^#{vk4n`Z*`WSW_ExVwWNq|;Co{p1(}uM?uUOk%C;)WAxk)q+2;SIprxy!(yn=F(Ev35 zQ?`M1p8+Wb*)Pj`f2F2f`Q2IhzY_oe000000000002gfL7ZA)-xUz-&5QeSe#pq@|bTvVN+QHJ33n zd)D3FoI_h(Q_y)m)>DT(PxG8Vxe|4UrDfG2chWBfJupLl_nw1$3X;s*KVznpR?IYL z4%aRAc>tQ`J4*3nN3Ftc0XWR1 z9=HS>2H==227kMmE(>jC#^>-p^zu6HhF&V|_Q(qLkFvM=-a}SLH{6l=W>9)L&@U6_ z@tw^Eb31R8u5ZG3=>5*M4c-efcZQoc|8SILRgy!Na4xgW_okq!cSEIB^U|aNxcN`n z0_J@Nq!?tsEYI@FR%qpSXXXD+000000000000026m=!3wC2lV0q0000y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanox/test_blindsign_reject/reject_from_blind/clear/00000.png b/tests/integration/nano/snapshots/nanox/test_blindsign_reject/reject_from_blind/clear/00000.png index df6e01718ac7db8656876556198e373fae925b3f..19e71920ed32b78f7071abd026c08ba6c0c11c88 100644 GIT binary patch delta 68 zcmX@aa)4!m3M2bQ)hCSRuV>g!DfzbV-BE>QJHy&r1TQ}p-p0s)02LgTe~DWM4fpywGN delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanox/test_blindsign_reject/reject_from_blind/clear/00001.png b/tests/integration/nano/snapshots/nanox/test_blindsign_reject/reject_from_blind/clear/00001.png index ace2004671826013010d1896143f441a40ceb2ed..907033ad79701b4cd53b67fd742f1a5f4fe7cf9d 100644 GIT binary patch delta 488 zcmVF1DK+!alov{BUc`yC&3?)2d0Rq|6d%hYQ zgaa|u!mk$q00000005xF@hu*#mfU-39qxQ>D%lqp`#zg{!MD?YY{MPL5kg2m#=qn7 zSSFqos-$JgXs!7AGO4qPR-9I-dlBw{a$aiv^s2S01?2deT7Q}#^1(?TlPJToJLau<-lLkQW#qO8&zR#VH1=K!2~$G|tNInODmx(KJITE~0CX0@`lz1mz^1^@tH zk3ESz_kUIWp98jW@9V0{b3j*mK%s5*A_JwA~6 zl2c$~sWfHv4SzG=KcbSE&7{W&uAdp?ty^0M; zwlF9>c)b7s0000000000po8O^c(Yn_@1u2a=Vw!qy};P}Y>t9&(0^>r9mf$uNH62> zct6&Or9zXmPHC-WUtcHXbkVZYGIcM65m3%ctxvDos#-y|uYYN!F(TibDud4q#U>okSu2NYCbjbr6TIyIS&$YY@v1 z`I05DF)2;ie1F4?_s)u0^_`^KN`{mI$=?)2^i$S_BHML%X9bJALL~dpzmjm)IVNPP zR!ig(`hMWc5WEN(J{GN0;(YQjoDf(50IQ>Zz5*|JsKC|zp&)7$C>{s5)gN2x64%PwiKo)IS0ssI2 g000000Kh_i0ei>`c6nj68UO$Q07*qoM6N<$g8CWdfB*mh diff --git a/tests/integration/nano/snapshots/nanox/test_blindsign_reject/reject_from_blind/clear/00002.png b/tests/integration/nano/snapshots/nanox/test_blindsign_reject/reject_from_blind/clear/00002.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanox/test_blindsign_reject/reject_from_blind/clear/00003.png b/tests/integration/nano/snapshots/nanox/test_blindsign_reject/reject_from_blind/clear/00003.png index 3d12ba7610b993ca5747360f2eab0e6908870db0..9fdc2ea61730ebc0566813ae57d4921e60518f83 100644 GIT binary patch delta 500 zcmVF1DKvCN1PT2pF*h@c{coZRC25juP=PU68 zWD&s7ItKs%00000000000G9Y!QD_K3e)ZlD7By1B=6=@|Jtb@2`xj^5Irn#2O|n}Y zISnCr?~k8(dX4M>@?v#?q#DdDQ&lRz%3E@Aj^sgE*aH;*;eWo9VrDS+kTDTv;p&4d zJgrw%n#R)-=M)QjK;a>kT-IgTV&SSAGq9RJI^B5 z4MC00&AR4Y=gJu`q{~HKkx_cgLf-nsL>Og7cD!39*3^=90Ox9=!@$CvB)^k6kI^LA$~ zFB%Is&#L3OP|b=?yt6f>x4j>j>&EnR*Mh#felDzU3x%7f;=x>a<%M*)y7udhh1mY{ z*h86#9bJfZt#RIG{P9N{Ag$PpX~T9phT~&L`ZyjxVQ-Hsj1dr$;|X{)r+zbxo+d&jD#7WcTk{1{W??qfj-5w9I{mR`gl&UlCPH qH*g-eI|Kj#0000000000c&UHfIAo92?1xDJ0000xfW~e(67WW+&dPvrC&M(e>O6g}>NwQlU zIo-A`=X`w4%X4H8kSD7XB-LPMOjW3SD=+ctc_$A_U=L98pMUh36f=X~P40;>gR2)Z zcv-G0w5(4{J%aP{C~vk4_tN6;U;RFd^(T<<94Z63%Y-obj!%xjaiyl9DR zex#0jl{8Da_Q2MZ-mZRNE*;C)?awNw>*vb)){AT&-w%2ftFNLf$19qig3=S_v4=7f zJ76K!waj^wAvZpt0m|adnl05%$5?!9M<2)c7v7v9KWZ9sBOzN6=BC@}PTXXbEmE(N z=1S_O*k8oVz5YeoK>j{ael)F;tIq*tF60Q%z6`FMsYapG3Y0Nd7*ugl$iE^^#ckj` nZfght00000000000PtSF`}Se@6vJi+00000NkvXXu0mjf!1eH% diff --git a/tests/integration/nano/snapshots/nanox/test_blindsign_reject/reject_from_blind/clear/00005.png b/tests/integration/nano/snapshots/nanox/test_blindsign_reject/reject_from_blind/clear/00005.png index cc59349033daaad4bdeae570a7124de74d0a7374..2adfb4d839946649d3e8fc8d5a72d02a81109c90 100644 GIT binary patch delta 381 zcmbQvJcD_HN`1Vii(^Q|oVPau`I;4Y8Xo4|^xg4);*QgD9ue0UP3G7%>wk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanox/test_blindsign_reject/reject_from_clear/00000.png b/tests/integration/nano/snapshots/nanox/test_blindsign_reject/reject_from_clear/00000.png index df6e01718ac7db8656876556198e373fae925b3f..19e71920ed32b78f7071abd026c08ba6c0c11c88 100644 GIT binary patch delta 68 zcmX@aa)4!m3M2bQ)hCSRuV>g!DfzbV-BE>QJHy&r1TQ}p-p0s)02LgTe~DWM4fpywGN delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanox/test_blindsign_reject/reject_from_clear/00001.png b/tests/integration/nano/snapshots/nanox/test_blindsign_reject/reject_from_clear/00001.png index ace2004671826013010d1896143f441a40ceb2ed..907033ad79701b4cd53b67fd742f1a5f4fe7cf9d 100644 GIT binary patch delta 488 zcmVF1DK+!alov{BUc`yC&3?)2d0Rq|6d%hYQ zgaa|u!mk$q00000005xF@hu*#mfU-39qxQ>D%lqp`#zg{!MD?YY{MPL5kg2m#=qn7 zSSFqos-$JgXs!7AGO4qPR-9I-dlBw{a$aiv^s2S01?2deT7Q}#^1(?TlPJToJLau<-lLkQW#qO8&zR#VH1=K!2~$G|tNInODmx(KJITE~0CX0@`lz1mz^1^@tH zk3ESz_kUIWp98jW@9V0{b3j*mK%s5*A_JwA~6 zl2c$~sWfHv4SzG=KcbSE&7{W&uAdp?ty^0M; zwlF9>c)b7s0000000000po8O^c(Yn_@1u2a=Vw!qy};P}Y>t9&(0^>r9mf$uNH62> zct6&Or9zXmPHC-WUtcHXbkVZYGIcM65m3%ctxvDos#-y|uYYN!F(TibDud4q#U>okSu2NYCbjbr6TIyIS&$YY@v1 z`I05DF)2;ie1F4?_s)u0^_`^KN`{mI$=?)2^i$S_BHML%X9bJALL~dpzmjm)IVNPP zR!ig(`hMWc5WEN(J{GN0;(YQjoDf(50IQ>Zz5*|JsKC|zp&)7$C>{s5)gN2x64%PwiKo)IS0ssI2 g000000Kh_i0ei>`c6nj68UO$Q07*qoM6N<$g8CWdfB*mh diff --git a/tests/integration/nano/snapshots/nanox/test_blindsign_reject/reject_from_clear/00002.png b/tests/integration/nano/snapshots/nanox/test_blindsign_reject/reject_from_clear/00002.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanox/test_blindsign_reject/reject_from_clear/00003.png b/tests/integration/nano/snapshots/nanox/test_blindsign_reject/reject_from_clear/00003.png index 3d12ba7610b993ca5747360f2eab0e6908870db0..9fdc2ea61730ebc0566813ae57d4921e60518f83 100644 GIT binary patch delta 500 zcmVF1DKvCN1PT2pF*h@c{coZRC25juP=PU68 zWD&s7ItKs%00000000000G9Y!QD_K3e)ZlD7By1B=6=@|Jtb@2`xj^5Irn#2O|n}Y zISnCr?~k8(dX4M>@?v#?q#DdDQ&lRz%3E@Aj^sgE*aH;*;eWo9VrDS+kTDTv;p&4d zJgrw%n#R)-=M)QjK;a>kT-IgTV&SSAGq9RJI^B5 z4MC00&AR4Y=gJu`q{~HKkx_cgLf-nsL>Og7cD!39*3^=90Ox9=!@$CvB)^k6kI^LA$~ zFB%Is&#L3OP|b=?yt6f>x4j>j>&EnR*Mh#felDzU3x%7f;=x>a<%M*)y7udhh1mY{ z*h86#9bJfZt#RIG{P9N{Ag$PpX~T9phT~&L`ZyjxVQ-Hsj1dr$;|X{)r+zbxo+d&jD#7WcTk{1{W??qfj-5w9I{mR`gl&UlCPH qH*g-eI|Kj#0000000000c&UHfIAo92?1xDJ0000xfW~e(67WW+&dPvrC&M(e>O6g}>NwQlU zIo-A`=X`w4%X4H8kSD7XB-LPMOjW3SD=+ctc_$A_U=L98pMUh36f=X~P40;>gR2)Z zcv-G0w5(4{J%aP{C~vk4_tN6;U;RFd^(T<<94Z63%Y-obj!%xjaiyl9DR zex#0jl{8Da_Q2MZ-mZRNE*;C)?awNw>*vb)){AT&-w%2ftFNLf$19qig3=S_v4=7f zJ76K!waj^wAvZpt0m|adnl05%$5?!9M<2)c7v7v9KWZ9sBOzN6=BC@}PTXXbEmE(N z=1S_O*k8oVz5YeoK>j{ael)F;tIq*tF60Q%z6`FMsYapG3Y0Nd7*ugl$iE^^#ckj` nZfght00000000000PtSF`}Se@6vJi+00000NkvXXu0mjf!1eH% diff --git a/tests/integration/nano/snapshots/nanox/test_blindsign_reject/reject_from_clear/00005.png b/tests/integration/nano/snapshots/nanox/test_blindsign_reject/reject_from_clear/00005.png index cc59349033daaad4bdeae570a7124de74d0a7374..2adfb4d839946649d3e8fc8d5a72d02a81109c90 100644 GIT binary patch delta 381 zcmbQvJcD_HN`1Vii(^Q|oVPau`I;4Y8Xo4|^xg4);*QgD9ue0UP3G7%>wk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanox/test_blindsign_reject/reject_from_clear/00006.png b/tests/integration/nano/snapshots/nanox/test_blindsign_reject/reject_from_clear/00006.png index 137ca9e4946dcd461fab8ca146124917077d946d..3d36b194cfc82107a670d51fb067ff4ddac0c997 100644 GIT binary patch delta 341 zcmaFI^nq!DO1-(Ki(^Q|oVPb4`I-%QTm!ei^1JbW(w^yc5nLwBTppo+F4)Gq`UYmD z8yw_efB>y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanox/test_blindsign_too_deep/blind/00001.png b/tests/integration/nano/snapshots/nanox/test_blindsign_too_deep/blind/00001.png index 03f8a150dd97ece2e177c23cfd2e522d3b7a056f..7c276c684f176f161d813d37bcfef97cda409b64 100644 GIT binary patch delta 864 zcmV-m1E2ix2KNS#B!50hL_t(|ob8)ScEcbHMcth4#QR?od+C6N5`7**7;qZhL61#9 z2mwMU>DRG?lu~&<&ojTC=Q$!RH+P5{?0t}LUX)Urstq6TuE8%xG%THf+13}~OSmR) zk+M+^^MsLo1`6x)dBZOQsS6+V%S!8WL)R2FYQtgOQc6VT`G16WSIT*hQ>m9x=5GR) zSzla?mxv|$rzgC!R=xl-2M_Io*-GRGt;g|$u}Ah5q7#R?Y#28}40%W4N24 zhp>21T&_gj9j@cnBoBnICrj^>*b?CMK}@#MQ!nGut`f}TYqtUv9xv|FBnX1_j2wD6 zTcJOVdu#ddLeB znpU=ZyO#uq+N7&^lE>V9_xjNC36cW3&7`XC6}ytp8K)h0LcLrO@97j#}MSmJ%Wl?@pD?1kJ3EF5{*7rDAUmSS?E(~nT?|*ZAMjWxM1&92RBrd1@vlJ2wtxR+n zJ96tYG7#e&G_Chds*dYn91{Nih)03i_YK6W;-n$3(`?vO=|;>xHi9-W2SE@7fd}ml zY`ldYRYcUhNMbo3iZ3f?Ns8d^_F8{iG7j7xW?b~N3|-Kdtpjcflz`_?cRm(#fHOdp z!&wVKDs=k<-0NSI#B|92_82=SK=kz&CK}&@&4(~fY~l2oz162p>aDrkOx)`X_&{O; qf*=TjAP9mW2!bF8f*=Tj1^fWa>JnCL5oLt{0000F1DMcqtx;{7j)z4XHqm*{bkgaN0~`RLdb zB!NJH-2QAUD5adw`@SEq`@Z)`JDLYXb!zYA$%{%UL#^Q*Ue)=@hyzO?2_^vCKlYbJs3U5bZ^<7;i2%9iTytpLtw#~|cB#+Cap&SO+UGSbYg={E+I9W{2 z7_~MB+HSpgUjd0WY_@n^z}3zY;sfob?U-kLS@CE7v)NV*ARq*JUwId_CZM^o(9#!+ z7S^?f1z(!y2`xqLge|CSac00FA#@!ihQ=D%}lKdCmLJ(PEWJ4!WRlCP)^+gH%wHAW!?ykdz zSXn#LV1KLZSVm8n1G`%?weU<_WP5p47mprNUBKd;o(Wf0P%8=30uB ziPIu=b2jx{K5^Uq1!)q~#gQFw;o0{5`<&Pyj(@(^2jur;a5?QiOCe{WnYj+5qOd(Z z9WnZ#IeJf0wcifcC#|iuPm&Vx8-Uo50}h>_Vbi1=F?!ob+N2MXBuSD8+8x+<3*D*{ zQS%~+<$Niztehn&g4L}Z{bk8GaC;bW(bFkCJ+|3jB+5^6jbU>0MNs=T< jk|arzBuSDaNiu<7a~cW1+6^~I00000NkvXXu0mjfO5&Kf diff --git a/tests/integration/nano/snapshots/nanox/test_blindsign_too_deep/clear/00000.png b/tests/integration/nano/snapshots/nanox/test_blindsign_too_deep/clear/00000.png index df6e01718ac7db8656876556198e373fae925b3f..19e71920ed32b78f7071abd026c08ba6c0c11c88 100644 GIT binary patch delta 68 zcmX@aa)4!m3M2bQ)hCSRuV>g!DfzbV-BE>QJHy&r1TQ}p-p0s)02LgTe~DWM4fpywGN delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanox/test_blindsign_too_deep/clear/00001.png b/tests/integration/nano/snapshots/nanox/test_blindsign_too_deep/clear/00001.png index ace2004671826013010d1896143f441a40ceb2ed..907033ad79701b4cd53b67fd742f1a5f4fe7cf9d 100644 GIT binary patch delta 488 zcmVF1DK+!alov{BUc`yC&3?)2d0Rq|6d%hYQ zgaa|u!mk$q00000005xF@hu*#mfU-39qxQ>D%lqp`#zg{!MD?YY{MPL5kg2m#=qn7 zSSFqos-$JgXs!7AGO4qPR-9I-dlBw{a$aiv^s2S01?2deT7Q}#^1(?TlPJToJLau<-lLkQW#qO8&zR#VH1=K!2~$G|tNInODmx(KJITE~0CX0@`lz1mz^1^@tH zk3ESz_kUIWp98jW@9V0{b3j*mK%s5*A_JwA~6 zl2c$~sWfHv4SzG=KcbSE&7{W&uAdp?ty^0M; zwlF9>c)b7s0000000000po8O^c(Yn_@1u2a=Vw!qy};P}Y>t9&(0^>r9mf$uNH62> zct6&Or9zXmPHC-WUtcHXbkVZYGIcM65m3%ctxvDos#-y|uYYN!F(TibDud4q#U>okSu2NYCbjbr6TIyIS&$YY@v1 z`I05DF)2;ie1F4?_s)u0^_`^KN`{mI$=?)2^i$S_BHML%X9bJALL~dpzmjm)IVNPP zR!ig(`hMWc5WEN(J{GN0;(YQjoDf(50IQ>Zz5*|JsKC|zp&)7$C>{s5)gN2x64%PwiKo)IS0ssI2 g000000Kh_i0ei>`c6nj68UO$Q07*qoM6N<$g8CWdfB*mh diff --git a/tests/integration/nano/snapshots/nanox/test_blindsign_too_deep/clear/00002.png b/tests/integration/nano/snapshots/nanox/test_blindsign_too_deep/clear/00002.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanox/test_blindsign_too_deep/clear/00003.png b/tests/integration/nano/snapshots/nanox/test_blindsign_too_deep/clear/00003.png index 9c23fc6e60ff6a5ca80c479990a02422c9fd7431..2a7be62ae36fbfb734f2c24258bf119ed42b0ad9 100644 GIT binary patch delta 454 zcmV;%0XhEZ1L*^hEq_sxgCGomVY;(7;r>VBF8knYCk=^$5*7P@Ppwk|1_5E35&!@I z00000000002=R&tT1t^$bIu1t9f@#rKXIXlWG(0X;OwWAeow1O4vTkAODQ?$_hVlF zMvegaWAy_`b(k4bRVu&AB3?U>0ZRUtK9gc*(7VYc5r1ZI^+5)&>s6K3?P+P} z5P>6L)zZFcU-JOou&h8xxa zbra3j-?^V!&LM`kKm0JxT=eFB-5UPfgdfJ4+duQ-cR!kD4XFD}9@BU2hrPGSOV$8f wEaYDi?Ltp-raLAA0000000000002D8A18`QCMP$4G5`Po07*qoM6N<$g6BfiqyPW_ delta 454 zcmV;%0XhEZ1L*^hEq`s2gCGomVY;(7;r>VBF8jmTP8t$LC5ZNYezi^s7(_m%DFFZg z0000000000fDo^UprsV~HRpUX)R_pA`-uzPC2Kk72WLN}^gFC3IV|2eEv4j~-;a6y z8#w~xkJS$()nR5#RjK?ci+JrklLsYm1St7m`b>(MLGLD)M1PpU)dv~8u2)rBx2L6@ zT?CGRm77$&to3SuS+$DqjVIaV5ii5Q4v@|D9;>>D%v$>mulL!^v>tP@`kBu373> zoby3;88itmkM`zk)SReW)YGO}Z%a&B(5^Qxc2Vo>#m7$g zj@j?H>mI{R@_*#x_etDT(+2~nBwk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanox/test_blindsign_too_large/clear/00000.png b/tests/integration/nano/snapshots/nanox/test_blindsign_too_large/clear/00000.png index df6e01718ac7db8656876556198e373fae925b3f..19e71920ed32b78f7071abd026c08ba6c0c11c88 100644 GIT binary patch delta 68 zcmX@aa)4!m3M2bQ)hCSRuV>g!DfzbV-BE>QJHy&r1TQ}p-p0s)02LgTe~DWM4fpywGN delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanox/test_blindsign_too_large/clear/00001.png b/tests/integration/nano/snapshots/nanox/test_blindsign_too_large/clear/00001.png index ace2004671826013010d1896143f441a40ceb2ed..907033ad79701b4cd53b67fd742f1a5f4fe7cf9d 100644 GIT binary patch delta 488 zcmVF1DK+!alov{BUc`yC&3?)2d0Rq|6d%hYQ zgaa|u!mk$q00000005xF@hu*#mfU-39qxQ>D%lqp`#zg{!MD?YY{MPL5kg2m#=qn7 zSSFqos-$JgXs!7AGO4qPR-9I-dlBw{a$aiv^s2S01?2deT7Q}#^1(?TlPJToJLau<-lLkQW#qO8&zR#VH1=K!2~$G|tNInODmx(KJITE~0CX0@`lz1mz^1^@tH zk3ESz_kUIWp98jW@9V0{b3j*mK%s5*A_JwA~6 zl2c$~sWfHv4SzG=KcbSE&7{W&uAdp?ty^0M; zwlF9>c)b7s0000000000po8O^c(Yn_@1u2a=Vw!qy};P}Y>t9&(0^>r9mf$uNH62> zct6&Or9zXmPHC-WUtcHXbkVZYGIcM65m3%ctxvDos#-y|uYYN!F(TibDud4q#U>okSu2NYCbjbr6TIyIS&$YY@v1 z`I05DF)2;ie1F4?_s)u0^_`^KN`{mI$=?)2^i$S_BHML%X9bJALL~dpzmjm)IVNPP zR!ig(`hMWc5WEN(J{GN0;(YQjoDf(50IQ>Zz5*|JsKC|zp&)7$C>{s5)gN2x64%PwiKo)IS0ssI2 g000000Kh_i0ei>`c6nj68UO$Q07*qoM6N<$g8CWdfB*mh diff --git a/tests/integration/nano/snapshots/nanox/test_blindsign_too_large/clear/00002.png b/tests/integration/nano/snapshots/nanox/test_blindsign_too_large/clear/00002.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanox/test_blindsign_too_large/clear/00003.png b/tests/integration/nano/snapshots/nanox/test_blindsign_too_large/clear/00003.png index 3d12ba7610b993ca5747360f2eab0e6908870db0..9fdc2ea61730ebc0566813ae57d4921e60518f83 100644 GIT binary patch delta 500 zcmVF1DKvCN1PT2pF*h@c{coZRC25juP=PU68 zWD&s7ItKs%00000000000G9Y!QD_K3e)ZlD7By1B=6=@|Jtb@2`xj^5Irn#2O|n}Y zISnCr?~k8(dX4M>@?v#?q#DdDQ&lRz%3E@Aj^sgE*aH;*;eWo9VrDS+kTDTv;p&4d zJgrw%n#R)-=M)QjK;a>kT-IgTV&SSAGq9RJI^B5 z4MC00&AR4Y=gJu`q{~HKkx_cgLf-nsL>Og7cD!39*3^=90Ox9=!@$CvB)^k6kI^LA$~ zFB%Is&#L3OP|b=?yt6f>x4j>j>&EnR*Mh#felDzU3x%7f;=x>a<%M*)y7udhh1mY{ z*h86#9bJfZt#RIG{P9N{Ag$PpX~T9phT~&L`ZyjxVQ-Hsj1dr$;|X{)r+zbxo+d&jD#7WcTk{1{W??qfj-5w9I{mR`gl&UlCPH qH*g-eI|Kj#0000000000c&UHfIAo92?1xDJ0000xfW~e(67WW+&dPvrC&M(e>O6g}>NwQlU zIo-A`=X`w4%X4H8kSD7XB-LPMOjW3SD=+ctc_$A_U=L98pMUh36f=X~P40;>gR2)Z zcv-G0w5(4{J%aP{C~vk4_tN6;U;RFd^(T<<94Z63%Y-obj!%xjaiyl9DR zex#0jl{8Da_Q2MZ-mZRNE*;C)?awNw>*vb)){AT&-w%2ftFNLf$19qig3=S_v4=7f zJ76K!waj^wAvZpt0m|adnl05%$5?!9M<2)c7v7v9KWZ9sBOzN6=BC@}PTXXbEmE(N z=1S_O*k8oVz5YeoK>j{ael)F;tIq*tF60Q%z6`FMsYapG3Y0Nd7*ugl$iE^^#ckj` nZfght00000000000PtSF`}Se@6vJi+00000NkvXXu0mjf!1eH% diff --git a/tests/integration/nano/snapshots/nanox/test_blindsign_too_large/clear/00005.png b/tests/integration/nano/snapshots/nanox/test_blindsign_too_large/clear/00005.png index cc59349033daaad4bdeae570a7124de74d0a7374..2adfb4d839946649d3e8fc8d5a72d02a81109c90 100644 GIT binary patch delta 381 zcmbQvJcD_HN`1Vii(^Q|oVPau`I;4Y8Xo4|^xg4);*QgD9ue0UP3G7%>wk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanox/test_ensure_always_clearsign/00002.png b/tests/integration/nano/snapshots/nanox/test_ensure_always_clearsign/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 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 Rywv~z002ovPDHLkV1oRNMEw8& diff --git a/tests/integration/nano/snapshots/nanox/test_ensure_always_clearsign/00007.png b/tests/integration/nano/snapshots/nanox/test_ensure_always_clearsign/00007.png index 85234247e808c9a4eed986210646699a8fad3053..2b33e84bd934985581cc1e8b3a0342a628c6b7be 100644 GIT binary patch delta 333 zcmaFL^nz)EO1-|Pi(^Q|oVPck`C1fs90KQ@@w@SV(w);aGX$2cZQyU2RlTo9A;cjg z=1}mpQs3i-$By4JJuD&N5PL89d)V!u;^d8WzgQE(cE50%o7O(BDmq$o%^!>XO6!(O zed7AsTsiYl@KpxC{p&r;-!HHEU6xeWDR#NAr*OUS_TXYw!R4*>f>t62dcR22e|LKM zBu3bMzR~XAGsV|<&Hq~VOVFIn^=ej|+#ZiJ&HGhP9F=Hk^EnpdkS4L`l$^k?en->e z9^T(N4bJF($+%ak+K^RY#WR!jtiQV1!wUWL&UK7&6>qX9Z)Pmm=*q~z_IXpZg@^Om zddGua&ZRRyEUL+r`1sjR-Ys1J+?hzJUv@kP5`f6g?BSuh-Q^c`*ch;b2ey~}=>5DQpQi^%4^FN?^G zpg?_0S9!nR@i>HVS=>B_UeRkUd+N8%*0fw%t&yhDi!DF$N{t?n{OOxx#k7{k%aWu# zwh$Z4uUb|pUQ!wT_}#9^yZ8D1bc+m@_nAbD$03BZew=^i!+)7%p7ixvGMmwVD<9_9 zS~iUw3$g2}Vs~G2cQxW`J^y?rCpu+S>n5FeM)D|pOhH48!L+rRDNZ0a8M%!$U}`@G zo7;>yYwt~?xProB#j-07*qoM6N<$f}g;kvH$=8 diff --git a/tests/integration/nano/snapshots/nanox/test_ensure_always_clearsign/00008.png b/tests/integration/nano/snapshots/nanox/test_ensure_always_clearsign/00008.png index 59fce75cd1321a13bc8840b9bc6f48f87485d7c2..1fcdee14dce21c819b5e211dbbdf546034789b00 100644 GIT binary patch delta 520 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 z(?F^V00000000000000000000000000000002llYf7YAIu$@2p#{d8T07*qoM6N<$ Eg0vDsb^rhX delta 669 zcmV;O0%HBP1+@i`B!7HKL_t(|ob8!gvcn(q1RdLalJI+*P8lK^@&wR=SnzHKm(Ydr7UeJ(QQ)tfX~fm0ZlO zArt*aU+!RiY9`B|@rFCBB+}bSG%snqCt$htnU6~wb*;AB*MDhvhh2_o_+%fJ&w*wA zS^b~UZ3<@Ok1a@bpH)a>1&3czv&C*Gc94 zvl+G~+;_uleM?q+SrmI2`8{t0U-_VAcsiPObf3sgDx)rfxF-(hT@rhG0B-_<+W2Sh z0NrEL*Qcz@HV^P;eVFe4!$xs5vAlR~R*@}D|F}~A5r31<12e(SvHf+pL#N^OwwB@s z4sDR*i}ti%!wGHx0N~q6C*w*i-DXwm-tmX8zcd_Sc?Gr35#&fO4O+WND5sjA?Qrr@ zDV2hGg<-lmn>gcxcX=|= zM|J=iuYbzlk{n}7ncM_OZ6@x0tt&e6;arpIkLuQOWt-D zCTQs-<04Ey`s)iO;z;Va+mJ3YbrqgUVg*RYu?lHPx1Ux>U(Xo7lsoq4!LOy;kZD;4 z@>~D_00000000000000000000000000002srxy4JA%x1Xy4NVU00000NkvXXu0mjf DnOHm( diff --git a/tests/integration/nano/snapshots/nanox/test_nanox_regression_batched_ops/00007.png b/tests/integration/nano/snapshots/nanox/test_nanox_regression_batched_ops/00007.png index 9ad31eb1c4a3ed15bb87dab2fb3a03323a243e1e..bd0efe79b79919d383aff97c25a57b063e5627bf 100644 GIT binary patch delta 398 zcmZ3$yn=axN`1bki(^Q|oVPbUg_;!v90HS{s@?hTaZi)|B@M3PUyQ_0wX!72Uwdoz|4u5n@^F+Sa+E0;+*Zrw?nqS|tt%B*)m4E-Y m_1e8>%&-5($bb#_yk%c~k@Nboziq-GX-{@nKbLh*2~7Ycde=(wj{$Z7DJRiyqrG z@oSvtGG4JI zzHfeHcKH0Q^wkUX7N&ondv$5_8Dri!rRelG=e{ngU|F#Fs8vF*dnAMQj@qYN*yp5Q zl-tQ>Fg5>EYK;HGeG#<}C)+QoV+;AbLi*4uUv(7y6Bye-;ryKlyA2rioI@v|{ zuJTOZT;lNR?b*lGNgLTWKA)My;u62C&*ko3{l_Z~UY%3_{Nv^Bqaw-+oZ8=SukESi gOZdUefDJ_45P$5-XH?84!U2-@boFyt=akR{0A&=pLjV8( diff --git a/tests/integration/nano/snapshots/nanox/test_nanox_regression_batched_ops/00008.png b/tests/integration/nano/snapshots/nanox/test_nanox_regression_batched_ops/00008.png index 59fce75cd1321a13bc8840b9bc6f48f87485d7c2..1fcdee14dce21c819b5e211dbbdf546034789b00 100644 GIT binary patch delta 520 zcmbQovXEthO8pB@7srr_Id5kM7PTnwv}GTc?9lLqhrP``?db{pjpG zrn-!U0To35*yKO|c_nY(;}iDl3pp15@@+0yKj(GZ2jO)Qi!0;h?@JvK{bu>h_dw;m zC>H&`#}l@1wo&cf>|r+HxasUAEeqn77VM}Oo1S&_%OUo&8v|3VEAJn(oc*S;Wc7xV z>D?PkR$Jt~$Y$Ht9=o-3_wDs}M9Xa%!wV&h zZNFN6;N2?O)%sV(gcCHDR}1D{YwOw0a+TZU?3Pm&UgqzdJ2R!)ms}J0cxC>UPkbi= z&zTwpiY` z=a&X?hINib6R_{Q6~TjT+w|?MFKJ^D5d(eRvMELg+EprtTYqt_R!y&bupApz_LKMR zT=NkRv|E*pT&>31t?Im^ZyER=UaH-=yW`52;-M$tNO-$y>D@$PIrG?B`mKRa6_oBz zxQC-$E#b#u_8qXgYUk=}waElH%H>>yyR|`xmY{Zlu9;OCN4bpqP-42qDXDctBK4=t zyaOc4Qgi$=J%5^yR^Kw1RI{o_FhgBseK?%y+-LJGuyUNfN|MpP{p(LYa1Y_}J)y|^p@I^cNo_f`c)6F%%jny_b z#K!54X&)l`RkP1J-<@^o!zlMRVj6KpwtsqTbzt-uE=w5M34VtFv`*L5wuHH`!9$?w)^XN;&%wcp!^`>T4O zw4ny{s`{~BBKFRjjl9(#H(0Z8GhlP{Z=Y_;dpKBVdNwp_w13$e!PbB^)waAk0kHP} z&44}8XWfIl6`y5O7vMr{vosED9(?z{Sl4|$?qvgt#zxcEj7=;o$ZsjAogkmcnQ^}v ztN~^37}V!_n24+!7vtv<%5fHE9hxnWzBOW&X3ZR)AZva^-aT$0l=z`^|noE zL=@v_J9+_znMFN10Ru4f%%P^yc;Ns&m5Y7yR7?B}5CakAuC--%ZebU$QxSwWVphWC zBliA8DX#VMn=f$g3$5%}14`(#Z<5WG3CcQA*1a`z5`Ugsl-p3fOUKIW0V(Ka#TXnL zwLoGj;WJT|NBm4 zUY_f<)*71*Oue@@jIdo$AhBZd;ma>7#FVPNQV1IAIm5nUi!TSmbn58cRtd8xFs)IO z3X3!uTYt^c?bZD6>3ZP10}&|j*17}GUK1in`2xi9I9rFG@=6KzP&)(G$$=W!9N!>P zMltlzkb=Z_Nd>0+R=4b17Glm6k-Wdk8wq< zEZspdrD^%$?XO0t!m<=DjPaS7T1hVjVwVEzwSP@7qdJ zgbQk>PTP|!6tr#ZTLT{7ML5#S20R0xk*?Y^Jw(|{`Gz25Mx&wu_Qx;*&ZxGaG_^=do^Pi1DlKf)+ Y0(4AJbLuvY0ssI207*qoM6N<$f`mZRZ2$lO delta 946 zcmV;j15NzQ2gnDIB!7=dL_t(|ob8)kcElhEh0~tyWcI(L?4=JmwG8ML5RGa1o-z(9 z!T7_?%*U~c^E~Ot*Xy;c>z(Dng;kuVB2?apSqYbq z*!vTuxYkw6J}9hTBBwu zJZh6sYJZk)uf~5**8<-ih`<4FtvLX)PKY4o3lLk!**<)iS4yyl+8HoU4%EQr_yUnK zimr!-C8+u?>43|<6s>%l#E4fCjaNR;!I2uflq5-#B*}7|?*j&N;1m9kqMCw~Yn)Ll zQ+JR|X`>{4L9wtwiQeBmVj163M>Z_71%irq(VnsRIE zDyJqOYygybN=xFWmgRR3_?EDK&<#g*kW4?hkZw4}z&QXwPy;0`G?rk1l~k3)+wlxQ zxS(e0R2I%q(3Y`o54iml;aFZ4;28jobR|n#RAn#a8-kD%QTLQgoorS4Q)phX4z|1x zJAb|tzL>OJY&ZrBgD19>=5 Ub0ZXH1qN(I?zp5=j zBoX1J(m!Pv&hu>lJdR`A)ZdIhe27FU7B|NIJkO;|Lmc3Pzg%c%j9Q=Syq6ExSM>uZ z(+ad&_0Osz&Q8omF7=-q#O%io*c|=KrwipX93(WFOdGY(0lmt9jBinh$sIFNntt9`L<`ubVR1}zX7WUd*RSdbupq#(XQo`~;^`-RRK zQ1)JfdS7=Fk+*zy_yTm- zU^6_NQvuMbTkkx0BA zG8xC~1bn1Ol|CsaTv`V0WlX`h{P|Lsb}24 z*=DXawtxFIE$+iwGVXC?(SC2I$hh0_f^HlwLyL4flMyk$a}_RA%nUnLh7K6iylusH zl%a`4B9TZWc0j0tTvfzC?Ex}+#VkCEQiExZAtQL*B^EQ9KfZ>Xvuxa=Mo58AC~a;I zjG|mkeio(=rk= z3wi-KeO8p@P$AM!cH*{8aU%!&IilvReYD`fwZK`R3lPPr5j!))=PfJ{cbFVS1A*#a zfJM=t6q{$QLtqnM2vjm|fLao@ymq=}sKyD}Whhen;t!4SG88Of6NyA3kw|RE$ZM*k z7=JJxRcbsMH;A;jUKv-lBlb<*Y7ODMo;G~YHK3_c)* jX+pyzQ&1w2cnkgl6uEr{)j?Xh00000NkvXXu0mjfVbID$ delta 962 zcmV;z13moL2iOOYB!8btL_t(|ob6m&mZcyJr04Wb-2al?%Y1l-;pRmJ0$x3-uiKb} z01}c?`={)}d7kZ`$8l`y`kV2GH<6i&#f|fRp6Ak`ArA1yUoNzBj#{5;zn2f!rTPPu zX$4xX`e#)UdnaZihx*SAV)kPPY@YqgrwiqCI>^*$GVQFjW`FApasgtBTV5Rii2eUN zV9)H6?v2rk_p+-CL(!I5IuB$Y{Aw50bzgsL(Vzt)gY-2c6ALoQA0dcukSF3h=lw$G z3@Cfopx)QrK;%teS}k%u*A`J`DfS<+i9{liNF;Rp3~OrjdRw5@M&tCia|5H?b$K-@ zV^bYnYpWn;Z+~KuIh^OY7y_iso~)C@84F6rt%k;b73nU+t<~~{&~xC;?%HIr2ws5h z7;J`zb8298DvU}AXI2(bq*Dvf9b`9jP9nq_$UpO40v>WU)`lR_tubZ|x4#V`y$eso zaJ+-uxJGdo5gEJ#kjRUVlUUbofi$m_cMACT=uNkZ}Q`HCgp&24k(+25}!E7obb>h{P`#sb}24 z*=DXawtxFIE$+iwGVXC?(SC2I$hh0_f@&O1LyL4flNK?)a}_RA%m_P{h7K6iylusH zq@jsKB9TZWc0kC2Tv^0G?g27-#Y{Ykl7nfEAuV{`B_=bPKfZ#Tvuxa=Mo58AC~a;I z!;H@p>bHmEJ+ zQr80c!Lc;m4m3VO#*r;~un&oB|Lh`mf1RSyQ+qraSpXNAWtYTbIF|im!}95;i)jE4 zJc5`vwcc+(y1v1*v4<$Y3CZ%HWj^>4cD!5 zA@->|)T7FuWeC*Xh@CmrKV~#y-*&*})xT`IINq0|SsJfTy?<)8*s_AQLnF#cUhM!H z`G0r7p4D&Eli9*|Ii!LNp@jqnht?X@Px~vi}pCBuSDaiO&~oh1vf>b51+fs|tuMRuq@) zb>q5-aAkI(seh>tx%IwC>t^w81V|JdB!7rh$hTccq zao(0!yx9uL7FZUYC7eP0Pjh`%*jq%Jr;GbHZb0K970FQp6yb{Gn!paQB8Cf=p8SDV zMj0YX9y350Mf%`x09??zE*~{9I%GfV3N>7^6o$g+6My~=RmMV}c=TdE9^=AKf}I;Q zz_Z7iWHokY7mdP`BuSDac>roL&ij;maflcNaTQ8rqC{d)UAJdSUzhk zuCHOrClr@#w9%wR3eh6K&SCX1iORyTf8Ocix8&Bn3EPPiWK_ zw+?32W=#))Z4Pk(Qv}_Tn;H1yu=^BV*w@5+>y>T9`&&g^yP{edHOBm-iI8q3OH63T zR3Ac}W2_J|HmYXR1Ly+1O<|FjtL1-W^$+i4+;l`+U(UbL96OOG^1;gV^A&7LI599kD- zzwD&NHj)Sg#tbCb@M5H<-7}AC@obCAfmTIlic!+{XxO87_6m)*BspNxovA5Sc|u^H zO^H|t@!j8yr&_Tpb}&oadP;SrQQydc`Fu`v^=IW!V_DUbT98d*$Bv$P?lqJ!N41DD zyT@J*$7AS-lNu~VEb<18udG)Swy#4uj76-{EqqEf^uqH+ijUflXI02T@E^A}(iP`u xJ+E!CazuYkQ1p)3cC*m-xH?^uBuVl>egkT2Z`t3g>|g)@002ovPDHLkV1nCM_o4s* delta 1026 zcmV+d1pWJ&2$%?vB!AyYL_t(|ob6muw%s5I^!2=*WdBRbUiy(!>xBUaqb9FqzVZwL zl1N~#?N`}_^E}%>kK@>8`px*IheV|2;=#C|=ecxgj01Y`TMO-sQR`E+d--tPsu!e8 zE6~oWf7U6`x==fFsejxMYCm?s=ICEOT_~U75TUVT+NiZ^Ykvf_fKa71uTB6$|KA<3 zC;Gy?vs(BrhfFvVeVL_k5c}ZUy0OlDy|%JJ3r2>qbw_3{M36sHklr9a5$}xqh0Zsi z?0p9Hz3wKWXaUpC65r=K0%ewB|0gz)NF)-8gpDsa3cLT}_MCdI#R`xkT9vQa67y|2 z%9+)Lmd2JqR)1M`4MM`eX)K|(;U1MS7n9Umf3wu7QYT88+sq)jmy<`#h+pj8YLmX`j3SB9BF zY94cdndQjfZvYHv%gaYyj855)bwrJ?nJPnJ^$CB6s(*7~PAt8e&#!UeCqb_bI$-&u zUD6i2tBY3Qi9{liNF-hWmW;DLugvaeQ zZ23sS%Qx!x!2T_!-DO;bVqMKVa3}moxjM@zuV>vdt-Y%)#>lwgb`d6uSrc`0bO*z( z3ixra7=LF&tKPO%hJytyhUpJsYPKk;DO`fKXsu`#Vq_eo3bYubZEPiT=|2)nZQ%z% zK5D;si2A*b4!en^PaQmfYp?mKPy`G9b|F%eqs=nv5L(-RNl^n4bNmU-8pExF zS*=^sOJLnYT!1YC@5#*${B_X#6kh1p#Cq$QZRE>qL%wy!G&5@q^N%J%beSx&p&c__ z2%ck%2)R$6YFZ(q8_ls3c_bc;ewnfZ>g#!`Uj-a5 zLx1!-&$wBHIZ4&E)PHo=^B68e8J+x;pM@PM=--RlMBrm7uR{C$-m=*fiNqYp6r{iG z&WIj#PRhfY!6`PZ8cB>>?sX6KL*Jr$pjXkAVleG{wCv%9Euv9Vk^?T?SsLS&r3A`s zYQ#by-~G+7Ofz1^4rY;Ck6~AYd7%gPJA2XS&+4JZx~e5ykZxkfj-FZRHPkRit&lpq z$6kt&F?f)R8l)l?Wdo5b+i1e^bzlx-IbQJ|zJ(3FVC5nvN9~8@Rmel|AGZqaOmftj wSC42tWWIL5*d6ojCeijfo-UC{BoZ&gZyM=r**D`9UH||907*qoM6N<$f``}qod5s; diff --git a/tests/integration/nano/snapshots/nanox/test_nanox_regression_batched_ops/00012.png b/tests/integration/nano/snapshots/nanox/test_nanox_regression_batched_ops/00012.png index 6fb484ac58ed68718402bc8e263925e7f3a54d85..578572ff1fec0e25a26b276b9eb0be8907fc1863 100644 GIT binary patch delta 343 zcmV-d0jU0z2a^YoBwkucL_t(|ob8-jc7z}dhH202#QiVHz4XB|H0DNtfZ)mZWHp2c z65!YAPnyMfp777(IHpy-GQac`YAIhHZ1?j#hu)ec0DAI6jb^qHj49W9#c*B92Syuc z088aRv4Va90n?KK0v`c>lOX~-Pv2Uw88fNL-Kb%)SS)@0=k969w1ETmRZTDiG+P8g z5CjZ#FOIIF1B*A^fL2`-uNCChu@-+RqIM@DaT57+py>DN;igg!=0y}j8l;pO1(%(Q)r`z$9OamG&zgb(8h294g pflBAIkvOvJ2$0xl`VE30r9TCXD7+J;SH1uM002ovPDHLkV1lH4p^N|k delta 344 zcmV-e0jK_x2b2epBwkxdL_t(|ob8-jmV+P+hM76tiThuYdzlAMnV1^^0)i*slhqI+ zNPxe#KWP@{dBTs!aZIavWq#=?)Kb1Y*zV_f4!t!?0QBUC8qI7Y7*nqIis8DH4~#a@ z0G7%hv4Va90o9WM0v`dslOX~-PrtQbGiFkgyHUepu~_>0&)w6IX#)rBtD0a4XtoG~ zAP5-fUL0LT2NrL-0j;_wUMtA0V=ewtMD0#Q;w19tK+*9z8au$grf%~IR~__YldA$o zTl_-ixc?)-rnBN?=8XW9l+g6WPKgNAsnDS!_9+h82-zZNY_0oj=_`Hr4Eq9c#(xC7 zpizP#2!iFX2z=x8xIt|2VphiTYQ?$>M1h?;07`P(J?U?tsMGEElS=~{F5g*OlZCzy qC<2wvXCrZB*AXDG(exVxK}vrH$0)p?*qX%v00006bf1pN7c_XuRP8dlIoWiJT>w{|Q(geU{@gM#ZQd@qcw1-eH$x9=_NQ%jdv~ z{wVu1%vQmIeAkv-oB}-2W%i8ioc=-kc00000 zf>H%pu!4l1>8uE$!a&jr81}pq*%AH8DvhMWe%s`ZE7Ckfmy8>$KDSPq6puI8eBX@RwpV+q-eC@^g1t*^<@ zUaSRSC6taOXoKS}H-szAnmRUIf6 zEj@0xGec9WH4@YY8oH}e);cvlO79`8E(<@clAAS7iA}#&T|^?CI>{bf_tTd}TttiO zVp2-;*MC{t3h?O@FLJHA=)D;*~SNem^T#fOWcd;_H1<9ixY^@6Udgqb-fk>ak&f z%kI@*f1#f@K!|Z4jx6cEjISRc0000000000044wc0000000000000000KSPo{8j0| TkMvDq00000NkvXXu0mjff!{+O delta 683 zcmV;c0#yCQ1;Yi9B!7xYL_t(|ob8!OlEWYjMM)|*@%@kFyY#}x^n#Z3`_~N$G`)$6Yn_HHfqO@IT!u^s>>}s^iJFZTUm`HJd!iooG)k z=CF_q{Vu=U!TY6~G>7^d9*`%V-X@WwB=ffb%e_xxocpNiwSU9EM#DRta>T+9`C<7Q zXx<;y|BP-!5GS9GATfMa!JXxFUvt9?;359<{OKCRB&j9gbl$RMw$OT8o`jblFaQ7m z04NZuAOlj9lxdyRA*D8uq#A}i?}QIj{-jk$Nt%e(FqxC`H231U3Y2%t{DD8z`W$=P zFnS|b-{`n@TYqD|egrX2>v2*I%OjMO?c{nW#-P!&GoFl_hjSLB6`zQ=Pmc&g7GL|C z6!}Hl5L!%$kw`Y57VMrK5E|Dxgwud`s-Yc))rJR}KsJ^vbNcZJbEP)b;{=2H0ua99 zKApWb=|mmq1eycvk@&zwLv52($-9((Y@0h7+o8Mw;(xKlb7QslwuF`fGykcZZ(sf`dVmDtS>`HzRFNe`BEw2e-rhURP$qXr#e}`00iR|mA|>4 z&Vj^JF0>K@ZoA=4> R=@S3|002ovPDHLkV1mUIPq_d9 diff --git a/tests/integration/nano/snapshots/nanox/test_nanox_regression_batched_ops/00018.png b/tests/integration/nano/snapshots/nanox/test_nanox_regression_batched_ops/00018.png index 43c85f24dd3de78e3dbe1e9d71df28a02235be44..2cabe7ab5f4524ab6948fca514caccc7cfdd46da 100644 GIT binary patch delta 697 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 Rywv~z002ovPDHLkV1oRNMEw8& diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_added_at_the_end/00007.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_added_at_the_end/00007.png index dd996e27318e3c2417178f9a8a22fafeca662e43..364af7467f57ecc825c32581510428e33a9898a9 100644 GIT binary patch delta 330 zcmaFD^pt6WO1+M!i(^Q|oVPcl`I;3390GIhaQ=>;RQ-~jbK&6=&aQHMpL2^QrsxRl zp1ED-_`}oJZe9NsdiaHeL!3p>d9&zCMTuL>Zm}*f+kJGZ)Lz+-tDpb+l-T<8LyyJ# zXb$O~e4f`T?@qB5{HzT9_@VC7bb0lA`WF}LM`xdByC}QLxYNR?K4pbg1N%|Sd*_`p zpG1joEnj)~?>XkQpYyj`|LNeKyGYCQ5XU{0d(HDTGrDAEG|la?YV4V?=ZsXst>+56 zkADdM)@pD?bxYa(O7(`Eib9DZag%)&$;q$WD`h^38+1z^k1~y9S{AX0;ZL*avc)H_ zHGF;ZQ>)qX_n8M=r{DCksoFU|QT035q`AUa=z=8Yi=0RKj%q*8i!)#c2b%V6;6GZh Sv0ra8NP(xTpUXO@geCxF8kG?M delta 329 zcmV-P0k;0-0^|aaB!4SOL_t(|obB05l7k==06>$O~Ux-adO%C@tXICTM*5l7-wxd(8YF%UykH{{Ck16ODIT+R+W+o?)i)3zP4H(+z zVD&L0&e~hMF}Z|peeT>Hy~cH>!9&W?>HFk*P<{t+vYRE~9)D$lf8f3gZ|Y`i!0&mj zSGkzEHw|OK`a;}R_9Aa#<6W47I+K9TB%rhWi`exod>tDs!TTc?9lLqhrP``?db{pjpG zrn-!U0To35*yKO|c_nY(;}iDl3pp15@@+0yKj(GZ2jO)Qi!0;h?@JvK{bu>h_dw;m zC>H&`#}l@1wo&cf>|r+HxasUAEeqn77VM}Oo1S&_%OUo&8v|3VEAJn(oc*S;Wc7xV z>D?PkR$Jt~$Y$Ht9=o-3_wDs}M9Xa%!wV&h zZNFN6;N2?O)%sV(gcCHDR}1D{YwOw0a+TZU?3Pm&UgqzdJ2R!)ms}J0cxC>UPkbi= z&zTwpiY` z=a&X?hINib6R_{Q6~TjT+w|?MFKJ^D5d(eRvMELg+EprtTYqt_R!y&bupApz_LKMR zT=NkRv|E*pT&>31t?Im^ZyER=UaH-=yW`52;-M$tNO-$y>D@$PIrG?B`mKRa6_oBz zxQC-$E#b#u_8qXgYUk=}waElH%H>>yyR|`xmY{Zlu9;OCN4bpqP-42qDXDctBK4=t zyaOc4Qgi$=J%5^yR^Kw1RI{o_FhgBseK?%y+-LJGuyUNfN|MpP{p(LYa1Y_}J)y|^p@I^cNo_f`c)6F%%jny_b z#K!54X&)l`RkP1J-<@^o!zlMRVj6KpwtsqTbztg!DfzbV-BE>QJHy&r1TQ}p-p0s)02LgTe~DWM4fpywGN delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_added_at_the_end/00011.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_added_at_the_end/00011.png index ace2004671826013010d1896143f441a40ceb2ed..907033ad79701b4cd53b67fd742f1a5f4fe7cf9d 100644 GIT binary patch delta 488 zcmVF1DK+!alov{BUc`yC&3?)2d0Rq|6d%hYQ zgaa|u!mk$q00000005xF@hu*#mfU-39qxQ>D%lqp`#zg{!MD?YY{MPL5kg2m#=qn7 zSSFqos-$JgXs!7AGO4qPR-9I-dlBw{a$aiv^s2S01?2deT7Q}#^1(?TlPJToJLau<-lLkQW#qO8&zR#VH1=K!2~$G|tNInODmx(KJITE~0CX0@`lz1mz^1^@tH zk3ESz_kUIWp98jW@9V0{b3j*mK%s5*A_JwA~6 zl2c$~sWfHv4SzG=KcbSE&7{W&uAdp?ty^0M; zwlF9>c)b7s0000000000po8O^c(Yn_@1u2a=Vw!qy};P}Y>t9&(0^>r9mf$uNH62> zct6&Or9zXmPHC-WUtcHXbkVZYGIcM65m3%ctxvDos#-y|uYYN!F(TibDud4q#U>okSu2NYCbjbr6TIyIS&$YY@v1 z`I05DF)2;ie1F4?_s)u0^_`^KN`{mI$=?)2^i$S_BHML%X9bJALL~dpzmjm)IVNPP zR!ig(`hMWc5WEN(J{GN0;(YQjoDf(50IQ>Zz5*|JsKC|zp&)7$C>{s5)gN2x64%PwiKo)IS0ssI2 g000000Kh_i0ei>`c6nj68UO$Q07*qoM6N<$g8CWdfB*mh diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_added_at_the_end/00012.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_added_at_the_end/00012.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_added_at_the_end/00013.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_added_at_the_end/00013.png index 5b07875e974547eef0916480f880e805cfa2eda1..f356dcbd7255d12f79d30a98fdae0fab5fe8ae21 100644 GIT binary patch delta 489 zcmVF1DKvCN1O}PJ&xJwtFWE3G`z<{ay-zssjAR>Sv4FLcE z000000000008H^UBWOxVzKtK=Dz2J9+I^f&<40<2(NPmPGT)mLN^LkaKd3$Qw zImE;fQ23CFm$gw1FsoMaz40Wwe8yxru>)jty{}b%i_BX62QK&7&a23}DX3E4s%zfW z7w3AACW{u~#d0?Z@FjaOj>PbP@P)S$2T(Drl+8$nHNpebN1n5 zC;S()KXBK*hJTynod@s3xT&TO7EnpnhjBHtkau7puXq>DX!3+WUC-Miub8)Z!R7UG zd%Tin{K~Lig!2~E6fn2!mHT*EzA4V}x?D@m*+aQiP1Uu=4CY4c#&yhmPIwG6v7H;S zrmYPMIy)fGyV)fj{glu9^29iw{mpe^xYO#och19(B4P?_-K1G%@nlu5u6yzvd>Ci8 zqqT9B<>e0y3rwnR(={Ofb*%98DgRn{_Puh_XIA&@M~44m%6~<8c00G(tvvt$00000 f00000fM@vyWRj7ONLGhA00000NkvXXu0mjf^4ad` delta 489 zcmeBX>1LUrQ$H)Ps6~OtA#=I;!+-9d^!^rHJK4tK*x~)QI{sCXkg%sho)-fu5I7Xx zav}Hjlgx9K0arR&j{fWuwmq6{`JBDle(9Iu*=m-$eDm{ePb;>I`&`sBhp}jbltLh* zajMqRPa*dn-L!nf?)rcy;EDLlyPC_`_tv-Hkxk?ZXAi1a8Lp}OHgjV!SEKQQPZPM# zXK&^)2-W_1uV#{Bzeigmq9HMzeN3JzMj0TNOY$@t7*~NSF_4vCmZW6>7L#7 z;a}GLWr3Rmwg*h}4bJcOsXU#&%r9VTrvqzg;c4H`C0wsg?YYnzmHvLu+m`=}zN^36 z_5NUK{ijEtzkBXjr^aT!V9uJ^g}sp{UQ3?PzUS({IH>l`ztg$1UI~QsOh5GWYnS0Y zgW!s8pYuO%Ef8~@s{Kstim*0&Ip@v(*IH3k{GyY0mCU`gh09BRZSpg#hlVry_U;pW zed}(+@vjV1>dc)lNiR2gf4Z-5=HIhchSP&%m2W?rxwgYAX=k^GPPy9ZUF#;EvD`12 z9(6f2>2bo(M#WhcvEA1iKD~}e{i<2NR;Olt=`Wku^Ktrrl%4*GKHL~`KTR_kHC`Tc Z{$bKN*7t*5KG*^zvd$@?2>?@cwk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_added_at_the_end/00016.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_added_at_the_end/00016.png index 137ca9e4946dcd461fab8ca146124917077d946d..3d36b194cfc82107a670d51fb067ff4ddac0c997 100644 GIT binary patch delta 341 zcmaFI^nq!DO1-(Ki(^Q|oVPb4`I-%QTm!ei^1JbW(w^yc5nLwBTppo+F4)Gq`UYmD z8yw_efB>y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_added_inside/00002.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_added_inside/00002.png index d6deabe98f0ae465442e6f8d89e55adc6a1c56ce..86f889eb1b5017362ba0edf43c6bd5a0e0677718 100644 GIT binary patch delta 692 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 Rywv~z002ovPDHLkV1oRNMEw8& diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_added_inside/00007.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_added_inside/00007.png index df6e01718ac7db8656876556198e373fae925b3f..19e71920ed32b78f7071abd026c08ba6c0c11c88 100644 GIT binary patch delta 68 zcmX@aa)4!m3M2bQ)hCSRuV>g!DfzbV-BE>QJHy&r1TQ}p-p0s)02LgTe~DWM4fpywGN delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_added_inside/00008.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_added_inside/00008.png index ace2004671826013010d1896143f441a40ceb2ed..907033ad79701b4cd53b67fd742f1a5f4fe7cf9d 100644 GIT binary patch delta 488 zcmVF1DK+!alov{BUc`yC&3?)2d0Rq|6d%hYQ zgaa|u!mk$q00000005xF@hu*#mfU-39qxQ>D%lqp`#zg{!MD?YY{MPL5kg2m#=qn7 zSSFqos-$JgXs!7AGO4qPR-9I-dlBw{a$aiv^s2S01?2deT7Q}#^1(?TlPJToJLau<-lLkQW#qO8&zR#VH1=K!2~$G|tNInODmx(KJITE~0CX0@`lz1mz^1^@tH zk3ESz_kUIWp98jW@9V0{b3j*mK%s5*A_JwA~6 zl2c$~sWfHv4SzG=KcbSE&7{W&uAdp?ty^0M; zwlF9>c)b7s0000000000po8O^c(Yn_@1u2a=Vw!qy};P}Y>t9&(0^>r9mf$uNH62> zct6&Or9zXmPHC-WUtcHXbkVZYGIcM65m3%ctxvDos#-y|uYYN!F(TibDud4q#U>okSu2NYCbjbr6TIyIS&$YY@v1 z`I05DF)2;ie1F4?_s)u0^_`^KN`{mI$=?)2^i$S_BHML%X9bJALL~dpzmjm)IVNPP zR!ig(`hMWc5WEN(J{GN0;(YQjoDf(50IQ>Zz5*|JsKC|zp&)7$C>{s5)gN2x64%PwiKo)IS0ssI2 g000000Kh_i0ei>`c6nj68UO$Q07*qoM6N<$g8CWdfB*mh diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_added_inside/00009.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_added_inside/00009.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_added_inside/00010.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_added_inside/00010.png index 5b07875e974547eef0916480f880e805cfa2eda1..f356dcbd7255d12f79d30a98fdae0fab5fe8ae21 100644 GIT binary patch delta 489 zcmVF1DKvCN1O}PJ&xJwtFWE3G`z<{ay-zssjAR>Sv4FLcE z000000000008H^UBWOxVzKtK=Dz2J9+I^f&<40<2(NPmPGT)mLN^LkaKd3$Qw zImE;fQ23CFm$gw1FsoMaz40Wwe8yxru>)jty{}b%i_BX62QK&7&a23}DX3E4s%zfW z7w3AACW{u~#d0?Z@FjaOj>PbP@P)S$2T(Drl+8$nHNpebN1n5 zC;S()KXBK*hJTynod@s3xT&TO7EnpnhjBHtkau7puXq>DX!3+WUC-Miub8)Z!R7UG zd%Tin{K~Lig!2~E6fn2!mHT*EzA4V}x?D@m*+aQiP1Uu=4CY4c#&yhmPIwG6v7H;S zrmYPMIy)fGyV)fj{glu9^29iw{mpe^xYO#och19(B4P?_-K1G%@nlu5u6yzvd>Ci8 zqqT9B<>e0y3rwnR(={Ofb*%98DgRn{_Puh_XIA&@M~44m%6~<8c00G(tvvt$00000 f00000fM@vyWRj7ONLGhA00000NkvXXu0mjf^4ad` delta 489 zcmeBX>1LUrQ$H)Ps6~OtA#=I;!+-9d^!^rHJK4tK*x~)QI{sCXkg%sho)-fu5I7Xx zav}Hjlgx9K0arR&j{fWuwmq6{`JBDle(9Iu*=m-$eDm{ePb;>I`&`sBhp}jbltLh* zajMqRPa*dn-L!nf?)rcy;EDLlyPC_`_tv-Hkxk?ZXAi1a8Lp}OHgjV!SEKQQPZPM# zXK&^)2-W_1uV#{Bzeigmq9HMzeN3JzMj0TNOY$@t7*~NSF_4vCmZW6>7L#7 z;a}GLWr3Rmwg*h}4bJcOsXU#&%r9VTrvqzg;c4H`C0wsg?YYnzmHvLu+m`=}zN^36 z_5NUK{ijEtzkBXjr^aT!V9uJ^g}sp{UQ3?PzUS({IH>l`ztg$1UI~QsOh5GWYnS0Y zgW!s8pYuO%Ef8~@s{Kstim*0&Ip@v(*IH3k{GyY0mCU`gh09BRZSpg#hlVry_U;pW zed}(+@vjV1>dc)lNiR2gf4Z-5=HIhchSP&%m2W?rxwgYAX=k^GPPy9ZUF#;EvD`12 z9(6f2>2bo(M#WhcvEA1iKD~}e{i<2NR;Olt=`Wku^Ktrrl%4*GKHL~`KTR_kHC`Tc Z{$bKN*7t*5KG*^zvd$@?2>?@cwk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_added_inside/00013.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_added_inside/00013.png index 137ca9e4946dcd461fab8ca146124917077d946d..3d36b194cfc82107a670d51fb067ff4ddac0c997 100644 GIT binary patch delta 341 zcmaFI^nq!DO1-(Ki(^Q|oVPb4`I-%QTm!ei^1JbW(w^yc5nLwBTppo+F4)Gq`UYmD z8yw_efB>y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_removed_inside/00002.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_removed_inside/00002.png index d6deabe98f0ae465442e6f8d89e55adc6a1c56ce..86f889eb1b5017362ba0edf43c6bd5a0e0677718 100644 GIT binary patch delta 692 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 Rywv~z002ovPDHLkV1oRNMEw8& diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_removed_inside/00007.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_removed_inside/00007.png index ff518831ae81679c8510e8cb4bff506d46ea4c52..481b93b9956f8c503a1857268cc7589892a54c65 100644 GIT binary patch delta 382 zcmbQlJd=5XN_~Q-i(^Q|oVPav`3@=YG(61Q!};C*(z{28g_@QI9B91q=f3degIPBl z9zKqEYI8njplUiUiodROAor(c9W zR^}+?8myl&FL-4to57#z(8{X$U)SfWztb-~3N&TPqzc(p%AFSVYrX`8Gnk+H{Ueks zb<#%fFV})D?|sHT>rry8tld#@`>s`2`6T~L+QDzvrXXHhV6rCV3S&z9Ipb#y$#wEG zvU@C2_*)kGE!_M1Tt1V*;nRmFtX}Z8D_&c4jZtrz2E)Cp?XwzH zxst=@d+j?GB$@s8ny~)wDXryR(H!B5`xZ|ztGuMUEy6s0?XTF)=TyyJo^e`Pm25rx z#%s=inV%1C@<=PV!1yd8@P5I)Ih(~d{@;92c)>g7uKG1sx+>RB3+(okV89N3d}ecv V;ORDdeNYgjz|+;wWt~$(696=6uWbMT delta 375 zcmbQqJc)UNN`0iKi(^Q|oVPav`I;4Y8WOix2*0aWdB2H$a@*E~)qE{a|IeGjjEaO@;djDmRU6LTq-^%vti47 z=JJ_}i@)8>5?Ov>^Xqe`FDf6CWXs>U_Vb%lU)BDyE!ce0DxuFml3}v-ypZ?nCqA&q zSfA~yxzp`+=hgj77T?l4G;czF!IWEe{`*d=RbKse|Bz4IVzZZbTy(29%yI1b$|kb& zv*Y$zTMQi8cO)PEIPdcVwci52?V0y79<6owx;)fy@mW#HtutB}8L)x_HFp1^1fEUr RmFWS=d%F6$taD0e0suO5vflsz diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_removed_inside/00008.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_removed_inside/00008.png index df6e01718ac7db8656876556198e373fae925b3f..19e71920ed32b78f7071abd026c08ba6c0c11c88 100644 GIT binary patch delta 68 zcmX@aa)4!m3M2bQ)hCSRuV>g!DfzbV-BE>QJHy&r1TQ}p-p0s)02LgTe~DWM4fpywGN delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_removed_inside/00009.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_removed_inside/00009.png index ace2004671826013010d1896143f441a40ceb2ed..907033ad79701b4cd53b67fd742f1a5f4fe7cf9d 100644 GIT binary patch delta 488 zcmVF1DK+!alov{BUc`yC&3?)2d0Rq|6d%hYQ zgaa|u!mk$q00000005xF@hu*#mfU-39qxQ>D%lqp`#zg{!MD?YY{MPL5kg2m#=qn7 zSSFqos-$JgXs!7AGO4qPR-9I-dlBw{a$aiv^s2S01?2deT7Q}#^1(?TlPJToJLau<-lLkQW#qO8&zR#VH1=K!2~$G|tNInODmx(KJITE~0CX0@`lz1mz^1^@tH zk3ESz_kUIWp98jW@9V0{b3j*mK%s5*A_JwA~6 zl2c$~sWfHv4SzG=KcbSE&7{W&uAdp?ty^0M; zwlF9>c)b7s0000000000po8O^c(Yn_@1u2a=Vw!qy};P}Y>t9&(0^>r9mf$uNH62> zct6&Or9zXmPHC-WUtcHXbkVZYGIcM65m3%ctxvDos#-y|uYYN!F(TibDud4q#U>okSu2NYCbjbr6TIyIS&$YY@v1 z`I05DF)2;ie1F4?_s)u0^_`^KN`{mI$=?)2^i$S_BHML%X9bJALL~dpzmjm)IVNPP zR!ig(`hMWc5WEN(J{GN0;(YQjoDf(50IQ>Zz5*|JsKC|zp&)7$C>{s5)gN2x64%PwiKo)IS0ssI2 g000000Kh_i0ei>`c6nj68UO$Q07*qoM6N<$g8CWdfB*mh diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_removed_inside/00010.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_removed_inside/00010.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_removed_inside/00011.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_removed_inside/00011.png index 5b07875e974547eef0916480f880e805cfa2eda1..f356dcbd7255d12f79d30a98fdae0fab5fe8ae21 100644 GIT binary patch delta 489 zcmVF1DKvCN1O}PJ&xJwtFWE3G`z<{ay-zssjAR>Sv4FLcE z000000000008H^UBWOxVzKtK=Dz2J9+I^f&<40<2(NPmPGT)mLN^LkaKd3$Qw zImE;fQ23CFm$gw1FsoMaz40Wwe8yxru>)jty{}b%i_BX62QK&7&a23}DX3E4s%zfW z7w3AACW{u~#d0?Z@FjaOj>PbP@P)S$2T(Drl+8$nHNpebN1n5 zC;S()KXBK*hJTynod@s3xT&TO7EnpnhjBHtkau7puXq>DX!3+WUC-Miub8)Z!R7UG zd%Tin{K~Lig!2~E6fn2!mHT*EzA4V}x?D@m*+aQiP1Uu=4CY4c#&yhmPIwG6v7H;S zrmYPMIy)fGyV)fj{glu9^29iw{mpe^xYO#och19(B4P?_-K1G%@nlu5u6yzvd>Ci8 zqqT9B<>e0y3rwnR(={Ofb*%98DgRn{_Puh_XIA&@M~44m%6~<8c00G(tvvt$00000 f00000fM@vyWRj7ONLGhA00000NkvXXu0mjf^4ad` delta 489 zcmeBX>1LUrQ$H)Ps6~OtA#=I;!+-9d^!^rHJK4tK*x~)QI{sCXkg%sho)-fu5I7Xx zav}Hjlgx9K0arR&j{fWuwmq6{`JBDle(9Iu*=m-$eDm{ePb;>I`&`sBhp}jbltLh* zajMqRPa*dn-L!nf?)rcy;EDLlyPC_`_tv-Hkxk?ZXAi1a8Lp}OHgjV!SEKQQPZPM# zXK&^)2-W_1uV#{Bzeigmq9HMzeN3JzMj0TNOY$@t7*~NSF_4vCmZW6>7L#7 z;a}GLWr3Rmwg*h}4bJcOsXU#&%r9VTrvqzg;c4H`C0wsg?YYnzmHvLu+m`=}zN^36 z_5NUK{ijEtzkBXjr^aT!V9uJ^g}sp{UQ3?PzUS({IH>l`ztg$1UI~QsOh5GWYnS0Y zgW!s8pYuO%Ef8~@s{Kstim*0&Ip@v(*IH3k{GyY0mCU`gh09BRZSpg#hlVry_U;pW zed}(+@vjV1>dc)lNiR2gf4Z-5=HIhchSP&%m2W?rxwgYAX=k^GPPy9ZUF#;EvD`12 z9(6f2>2bo(M#WhcvEA1iKD~}e{i<2NR;Olt=`Wku^Ktrrl%4*GKHL~`KTR_kHC`Tc Z{$bKN*7t*5KG*^zvd$@?2>?@cwk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_removed_inside/00014.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/one_byte_removed_inside/00014.png index 137ca9e4946dcd461fab8ca146124917077d946d..3d36b194cfc82107a670d51fb067ff4ddac0c997 100644 GIT binary patch delta 341 zcmaFI^nq!DO1-(Ki(^Q|oVPb4`I-%QTm!ei^1JbW(w^yc5nLwBTppo+F4)Gq`UYmD z8yw_efB>y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/unknown_magic_bytes/00000.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/unknown_magic_bytes/00000.png index df6e01718ac7db8656876556198e373fae925b3f..19e71920ed32b78f7071abd026c08ba6c0c11c88 100644 GIT binary patch delta 68 zcmX@aa)4!m3M2bQ)hCSRuV>g!DfzbV-BE>QJHy&r1TQ}p-p0s)02LgTe~DWM4fpywGN delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/unknown_magic_bytes/00001.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/unknown_magic_bytes/00001.png index ace2004671826013010d1896143f441a40ceb2ed..907033ad79701b4cd53b67fd742f1a5f4fe7cf9d 100644 GIT binary patch delta 488 zcmVF1DK+!alov{BUc`yC&3?)2d0Rq|6d%hYQ zgaa|u!mk$q00000005xF@hu*#mfU-39qxQ>D%lqp`#zg{!MD?YY{MPL5kg2m#=qn7 zSSFqos-$JgXs!7AGO4qPR-9I-dlBw{a$aiv^s2S01?2deT7Q}#^1(?TlPJToJLau<-lLkQW#qO8&zR#VH1=K!2~$G|tNInODmx(KJITE~0CX0@`lz1mz^1^@tH zk3ESz_kUIWp98jW@9V0{b3j*mK%s5*A_JwA~6 zl2c$~sWfHv4SzG=KcbSE&7{W&uAdp?ty^0M; zwlF9>c)b7s0000000000po8O^c(Yn_@1u2a=Vw!qy};P}Y>t9&(0^>r9mf$uNH62> zct6&Or9zXmPHC-WUtcHXbkVZYGIcM65m3%ctxvDos#-y|uYYN!F(TibDud4q#U>okSu2NYCbjbr6TIyIS&$YY@v1 z`I05DF)2;ie1F4?_s)u0^_`^KN`{mI$=?)2^i$S_BHML%X9bJALL~dpzmjm)IVNPP zR!ig(`hMWc5WEN(J{GN0;(YQjoDf(50IQ>Zz5*|JsKC|zp&)7$C>{s5)gN2x64%PwiKo)IS0ssI2 g000000Kh_i0ei>`c6nj68UO$Q07*qoM6N<$g8CWdfB*mh diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/unknown_magic_bytes/00002.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/unknown_magic_bytes/00002.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/unknown_magic_bytes/00003.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/unknown_magic_bytes/00003.png index 5b07875e974547eef0916480f880e805cfa2eda1..f356dcbd7255d12f79d30a98fdae0fab5fe8ae21 100644 GIT binary patch delta 489 zcmVF1DKvCN1O}PJ&xJwtFWE3G`z<{ay-zssjAR>Sv4FLcE z000000000008H^UBWOxVzKtK=Dz2J9+I^f&<40<2(NPmPGT)mLN^LkaKd3$Qw zImE;fQ23CFm$gw1FsoMaz40Wwe8yxru>)jty{}b%i_BX62QK&7&a23}DX3E4s%zfW z7w3AACW{u~#d0?Z@FjaOj>PbP@P)S$2T(Drl+8$nHNpebN1n5 zC;S()KXBK*hJTynod@s3xT&TO7EnpnhjBHtkau7puXq>DX!3+WUC-Miub8)Z!R7UG zd%Tin{K~Lig!2~E6fn2!mHT*EzA4V}x?D@m*+aQiP1Uu=4CY4c#&yhmPIwG6v7H;S zrmYPMIy)fGyV)fj{glu9^29iw{mpe^xYO#och19(B4P?_-K1G%@nlu5u6yzvd>Ci8 zqqT9B<>e0y3rwnR(={Ofb*%98DgRn{_Puh_XIA&@M~44m%6~<8c00G(tvvt$00000 f00000fM@vyWRj7ONLGhA00000NkvXXu0mjf^4ad` delta 489 zcmeBX>1LUrQ$H)Ps6~OtA#=I;!+-9d^!^rHJK4tK*x~)QI{sCXkg%sho)-fu5I7Xx zav}Hjlgx9K0arR&j{fWuwmq6{`JBDle(9Iu*=m-$eDm{ePb;>I`&`sBhp}jbltLh* zajMqRPa*dn-L!nf?)rcy;EDLlyPC_`_tv-Hkxk?ZXAi1a8Lp}OHgjV!SEKQQPZPM# zXK&^)2-W_1uV#{Bzeigmq9HMzeN3JzMj0TNOY$@t7*~NSF_4vCmZW6>7L#7 z;a}GLWr3Rmwg*h}4bJcOsXU#&%r9VTrvqzg;c4H`C0wsg?YYnzmHvLu+m`=}zN^36 z_5NUK{ijEtzkBXjr^aT!V9uJ^g}sp{UQ3?PzUS({IH>l`ztg$1UI~QsOh5GWYnS0Y zgW!s8pYuO%Ef8~@s{Kstim*0&Ip@v(*IH3k{GyY0mCU`gh09BRZSpg#hlVry_U;pW zed}(+@vjV1>dc)lNiR2gf4Z-5=HIhchSP&%m2W?rxwgYAX=k^GPPy9ZUF#;EvD`12 z9(6f2>2bo(M#WhcvEA1iKD~}e{i<2NR;Olt=`Wku^Ktrrl%4*GKHL~`KTR_kHC`Tc Z{$bKN*7t*5KG*^zvd$@?2>?@cwk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/unknown_magic_bytes/00006.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/unknown_magic_bytes/00006.png index 137ca9e4946dcd461fab8ca146124917077d946d..3d36b194cfc82107a670d51fb067ff4ddac0c997 100644 GIT binary patch delta 341 zcmaFI^nq!DO1-(Ki(^Q|oVPb4`I-%QTm!ei^1JbW(w^yc5nLwBTppo+F4)Gq`UYmD z8yw_efB>y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/unknown_operation/00000.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/unknown_operation/00000.png index df6e01718ac7db8656876556198e373fae925b3f..19e71920ed32b78f7071abd026c08ba6c0c11c88 100644 GIT binary patch delta 68 zcmX@aa)4!m3M2bQ)hCSRuV>g!DfzbV-BE>QJHy&r1TQ}p-p0s)02LgTe~DWM4fpywGN delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/unknown_operation/00001.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/unknown_operation/00001.png index ace2004671826013010d1896143f441a40ceb2ed..907033ad79701b4cd53b67fd742f1a5f4fe7cf9d 100644 GIT binary patch delta 488 zcmVF1DK+!alov{BUc`yC&3?)2d0Rq|6d%hYQ zgaa|u!mk$q00000005xF@hu*#mfU-39qxQ>D%lqp`#zg{!MD?YY{MPL5kg2m#=qn7 zSSFqos-$JgXs!7AGO4qPR-9I-dlBw{a$aiv^s2S01?2deT7Q}#^1(?TlPJToJLau<-lLkQW#qO8&zR#VH1=K!2~$G|tNInODmx(KJITE~0CX0@`lz1mz^1^@tH zk3ESz_kUIWp98jW@9V0{b3j*mK%s5*A_JwA~6 zl2c$~sWfHv4SzG=KcbSE&7{W&uAdp?ty^0M; zwlF9>c)b7s0000000000po8O^c(Yn_@1u2a=Vw!qy};P}Y>t9&(0^>r9mf$uNH62> zct6&Or9zXmPHC-WUtcHXbkVZYGIcM65m3%ctxvDos#-y|uYYN!F(TibDud4q#U>okSu2NYCbjbr6TIyIS&$YY@v1 z`I05DF)2;ie1F4?_s)u0^_`^KN`{mI$=?)2^i$S_BHML%X9bJALL~dpzmjm)IVNPP zR!ig(`hMWc5WEN(J{GN0;(YQjoDf(50IQ>Zz5*|JsKC|zp&)7$C>{s5)gN2x64%PwiKo)IS0ssI2 g000000Kh_i0ei>`c6nj68UO$Q07*qoM6N<$g8CWdfB*mh diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/unknown_operation/00002.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/unknown_operation/00002.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/unknown_operation/00003.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/unknown_operation/00003.png index 5b07875e974547eef0916480f880e805cfa2eda1..f356dcbd7255d12f79d30a98fdae0fab5fe8ae21 100644 GIT binary patch delta 489 zcmVF1DKvCN1O}PJ&xJwtFWE3G`z<{ay-zssjAR>Sv4FLcE z000000000008H^UBWOxVzKtK=Dz2J9+I^f&<40<2(NPmPGT)mLN^LkaKd3$Qw zImE;fQ23CFm$gw1FsoMaz40Wwe8yxru>)jty{}b%i_BX62QK&7&a23}DX3E4s%zfW z7w3AACW{u~#d0?Z@FjaOj>PbP@P)S$2T(Drl+8$nHNpebN1n5 zC;S()KXBK*hJTynod@s3xT&TO7EnpnhjBHtkau7puXq>DX!3+WUC-Miub8)Z!R7UG zd%Tin{K~Lig!2~E6fn2!mHT*EzA4V}x?D@m*+aQiP1Uu=4CY4c#&yhmPIwG6v7H;S zrmYPMIy)fGyV)fj{glu9^29iw{mpe^xYO#och19(B4P?_-K1G%@nlu5u6yzvd>Ci8 zqqT9B<>e0y3rwnR(={Ofb*%98DgRn{_Puh_XIA&@M~44m%6~<8c00G(tvvt$00000 f00000fM@vyWRj7ONLGhA00000NkvXXu0mjf^4ad` delta 489 zcmeBX>1LUrQ$H)Ps6~OtA#=I;!+-9d^!^rHJK4tK*x~)QI{sCXkg%sho)-fu5I7Xx zav}Hjlgx9K0arR&j{fWuwmq6{`JBDle(9Iu*=m-$eDm{ePb;>I`&`sBhp}jbltLh* zajMqRPa*dn-L!nf?)rcy;EDLlyPC_`_tv-Hkxk?ZXAi1a8Lp}OHgjV!SEKQQPZPM# zXK&^)2-W_1uV#{Bzeigmq9HMzeN3JzMj0TNOY$@t7*~NSF_4vCmZW6>7L#7 z;a}GLWr3Rmwg*h}4bJcOsXU#&%r9VTrvqzg;c4H`C0wsg?YYnzmHvLu+m`=}zN^36 z_5NUK{ijEtzkBXjr^aT!V9uJ^g}sp{UQ3?PzUS({IH>l`ztg$1UI~QsOh5GWYnS0Y zgW!s8pYuO%Ef8~@s{Kstim*0&Ip@v(*IH3k{GyY0mCU`gh09BRZSpg#hlVry_U;pW zed}(+@vjV1>dc)lNiR2gf4Z-5=HIhchSP&%m2W?rxwgYAX=k^GPPy9ZUF#;EvD`12 z9(6f2>2bo(M#WhcvEA1iKD~}e{i<2NR;Olt=`Wku^Ktrrl%4*GKHL~`KTR_kHC`Tc Z{$bKN*7t*5KG*^zvd$@?2>?@cwk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/unknown_operation/00006.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/unknown_operation/00006.png index 137ca9e4946dcd461fab8ca146124917077d946d..3d36b194cfc82107a670d51fb067ff4ddac0c997 100644 GIT binary patch delta 341 zcmaFI^nq!DO1-(Ki(^Q|oVPb4`I-%QTm!ei^1JbW(w^yc5nLwBTppo+F4)Gq`UYmD z8yw_efB>y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanox/test_parsing_errors/wrong_last_packet/00002.png b/tests/integration/nano/snapshots/nanox/test_parsing_errors/wrong_last_packet/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 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 N002ovPDHLkV1g7t>G%Ku delta 471 zcmV;|0Vw|Z1NsAyEq_6B!ypU=P}<2&xc`y3OBYP3Dlo<#3-s}StHg;7gAg`KLLed{ zA|fIpdXul!9k?K+lwZUc)sd$1HP60Rci`Pi;Da>M1C&N2u^l!IPPP}&oCv)qt8#70L+6X!s zbVc^+Qx2_qpgyhX*Bz6+l|=}3mJD`&+dONe#b>F`gt`ZI>I`VU?jJl|iw3WAdeDfx z{@*@8%^;(ObAQ;4+DgA3zw(3B-2Yb#YNy82&D&i(xZe-g!>fyN6PCZy71M@%s)u)8 zHB<#(W?QqGKT_hCOWD!fFE`=NS+CYih4D`Bk^$1l+^lD}Wl)a{xeGv9Qu;BdKXqOQJ>o6^ znbGQ8%5Z*Ge|G`6R|E~!+@J9K65Zh~DlEp)EdGBkCL$stA|fK%-w$H-P~F+bU^M^$ N002ovPDHLkV1i%u+@k;h diff --git a/tests/integration/nano/snapshots/nanox/test_provide_pk/bip32_ed25519/00000.png b/tests/integration/nano/snapshots/nanox/test_provide_pk/bip32_ed25519/00000.png index b822d148aa43310c5c3fd19a047ae3776bbd87bb..17a084dd18094d6825adf79726e87e62f392e2f7 100644 GIT binary patch delta 432 zcmV;h0Z;zF1Ih!CB!7`fL_t(|obB3eZo)7OfMIXiO>+Mu`7ZkrEwb`Ofim0e`}`^q z6~RuNCLjU;00000004LJ<=uf7scO3}r8xHFP5BaFLvJNbL$U<4=-Y5l8?*TK?!YU$ zKxd45N~&t>&;Df=DQ5uOtcH2g;V(&NKo{$zp|6rX1qqL#L4RCkBL)DtuRx1%U03Uh zYOkNVQL-Hk{djla1mnS6%+Raq*s%l~F*RC?nBA|vu(wFC^P*D9`03FT&_=W^O|saI zwei*7Z|{mQImR3WDnYe#wt^oFcP{mNway1hz{WeVo=$v6-AWL;1f4j>Bh(+6t;4Yr zV2ilD=oaCmrhiXCf%XBP6M1J4YX*E&!05{z5|F)c;ohce?*$g*=K3WlIRA~<>c_>^ zzaPeyw${*H-kAm*Ip8J=e(KH!HGPHS5%=#k{jv~4NI4S7Q6fa0000<5>@5=M$f%Su{&a!_w2HP* zt;E{*?OpDJW6VLUDX8|(&fo{bok;zoTF+x8VB?cmPshHOZY7951)W&q?(>h#*5Pmo zu#>pG=oaCOrhiXCcM&#u;YI*1C~Wxy&rFN=N)^o-;LLv`wtBg^`tOIarR}r2vx=8m zy!elR@=u0yo-Q=2om6+$CbNSh+qh}@zE~q*)v{`Aj-1nt`HQeOb{+v;!JefU@+|1S z>$(3FG@2&kNQO4wi8=pBgjbSX0gkT~_l^6Cj=u;403HAU00000fb07MIVK_D=fAEL P00000NkvXXu0mjf^F7fg diff --git a/tests/integration/nano/snapshots/nanox/test_provide_pk/bip32_ed25519/00001.png b/tests/integration/nano/snapshots/nanox/test_provide_pk/bip32_ed25519/00001.png index 29021e7c8428c26d7b17c72236076b44b5571fac..d3158a96e89808533cb871ab31508bcc068c7cb5 100644 GIT binary patch delta 685 zcmV;e0#g0N1;quBB!7%aL_t(|ob8!ga>F1DMQJ8G@&1?Oz4XH~l<36;10m@>ADz?| zNC*K!PH6+q^E}TJe-+4o91s0y@z}DuukopeIl!kDI*wzBJrzuI&DC%m$MyWOyp+M8 zEa0+JsC!uf>%A`=DprFq#(XF`$ug#+MO*!3HaS)@e=FdPv41a|1;&0~59JuW8J&t) z2M_ULr74-=hw4#~YEEB&=9SuCwxGpxkad+?fwvHmI1OZW*ng5Wx*tSno;Ar2PxGAg zj#Dq9w>pIPNpJ`ugb-q8K`|mx(U(_XJWdd$)(52$*cYk+>eSRsU4_uUit~=iF`n0zo zGxzXx#{-Msiq4TO)nj&jO{6Cxwh%M$2$;pYzBla5#4~_w#PDxkgpjYGxfmw^t6*N0 zP0I&Gi$Jwka)_aCX|0v*+ojww@Gk4LK)Vs}=I z*;ZuwV1MW9K&D;)n?dAr6H}n73sI^cR&CSGTUWNpqI*DV(FPQ*77F_U7A#>6sT%cc zL7OmXL%?h1L+ttB2^d0-Vy|vv3V?-ZgysqGico=!H%PqCpgifdGL_y;A5!?C>A%pL z@`4S!HQt29xHt1XXTXd&jdxB$2qAF1HM2X8c(fyC4yW~Sv1kXl;0Ar`$N6L`~ zW`JR9rL+O(d7kHqzY6R>j)#7w8~xsF)2R81td1B-@xBEz0UAv&p%V`I`Z6%zu5+Szzw>)ljz48_}tV zdGHV~R)&%pzNsDssn+T1_q@{k%M!GB46?6sDexvDlBa>q4(m^{TK9t(&5I`a>1pnh z-gfF`^j4ejJ_j5^2qA=+r=S>dP|=rFanT62{@`#D9D9;Fx$Dz2a@a77G#ymT_{|Q{ zzZ)Xcuk_Vl{C{rM*Gz>6so$#szs+p2?oC>FWT|EARe=g*Kyrl zA&>)LDs~-xB#M;P#5b0tzI*$wF%?^w3hc8*4NZzEv9B8=Urv1`H|mx zdy*jT3gd&!D5}a5II+y7PsnWpnIVV;byf!8<^o+hzJGpqSJ>AtW%hxSGVpb$H@rIS zCCEH`c)sI?#cxIB$dc+YTVE5$6Omg;7!W9_9bn#KsZqYrURkQ((;~RKi!h-tMD9Na2 z3EG4iYXUBqj|%342jD(Ai#^fCGyqj-kmdpKM5w^VYbRc3AWxd5OpiCu4k`S~^p6Pg zuJ2X1yCG1Fdoy3M2h7ORc-bU`5JCtcgb+dqAti(mLI@#*5JCtcgb+dq*^plcEaQ(Y Sc%WGT0000+Mu`7ZkrEwb`Ofim0e`}`^q z6~RuNCLjU;00000004LJ<=uf7scO3}r8xHFP5BaFLvJNbL$U<4=-Y5l8?*TK?!YU$ zKxd45N~&t>&;Df=DQ5uOtcH2g;V(&NKo{$zp|6rX1qqL#L4RCkBL)DtuRx1%U03Uh zYOkNVQL-Hk{djla1mnS6%+Raq*s%l~F*RC?nBA|vu(wFC^P*D9`03FT&_=W^O|saI zwei*7Z|{mQImR3WDnYe#wt^oFcP{mNway1hz{WeVo=$v6-AWL;1f4j>Bh(+6t;4Yr zV2ilD=oaCmrhiXCf%XBP6M1J4YX*E&!05{z5|F)c;ohce?*$g*=K3WlIRA~<>c_>^ zzaPeyw${*H-kAm*Ip8J=e(KH!HGPHS5%=#k{jv~4NI4S7Q6fa0000<5>@5=M$f%Su{&a!_w2HP* zt;E{*?OpDJW6VLUDX8|(&fo{bok;zoTF+x8VB?cmPshHOZY7951)W&q?(>h#*5Pmo zu#>pG=oaCOrhiXCcM&#u;YI*1C~Wxy&rFN=N)^o-;LLv`wtBg^`tOIarR}r2vx=8m zy!elR@=u0yo-Q=2om6+$CbNSh+qh}@zE~q*)v{`Aj-1nt`HQeOb{+v;!JefU@+|1S z>$(3FG@2&kNQO4wi8=pBgjbSX0gkT~_l^6Cj=u;403HAU00000fb07MIVK_D=fAEL P00000NkvXXu0mjf^F7fg diff --git a/tests/integration/nano/snapshots/nanox/test_provide_pk/ed25519/00001.png b/tests/integration/nano/snapshots/nanox/test_provide_pk/ed25519/00001.png index 13cef4a9515aca7f7f7ce141ced45ae785157131..53efaa94ba2d1ff869d4c2f2a983da2d02dc7a96 100644 GIT binary patch delta 705 zcmV;y0zUoM1=$6VB!8euL_t(|ob8%Pa>O7EMM+m~;`<-Tcgez43atqthPJ!@+l6Kj z0s;C?DL3Fe&+|OvKRNXu$4eG%o*NDKH9oaaC-^HX9mlc7o(8J9YBU_jag|?|*LC70 z8@TLb!@Whoe(y7fvS?t&sD-Q(s-rrZwUs5Sp}j)Ieq_~SC9U71Z`de8mm4EtU!$HQ>V@y&Yz;q?k7@doi)YYp6Wem zU8mNLzSSjsp9c;A0002gS5Oltf3YrlR!)D`FVVVlf|bW#JFK~HThIp83~NTzHuLy# zvVrR-N4#wI>3=7>Qddw1wN%osL4%beoj7&;p}81WTo+r(i?mp7JtmoTkxtDd=?tKD zixn#glm$?u#)+f)C$g^&Nq?Ts*)pEC$W>4KPP#=-Jb|(RlBFq}T&Jci;UG6S(^s6s zbJiTYf-JNEQ;5gJ2yw}Xt;$4`y1G)nh%s`;UHfjSuYYIhhM$#a%m`4!*18OvzF;Se z^9(I9&(Z=rhB?MqC64N6+0Z-UzQz93*M(=%K7zpWnEr(e0Pv;c#kh;6^k$`tmdfUf zak4NXx2esoY=7iK>89_Uj$Yu<0HLa@9xil7_&NZ9>C)K4Z;&QFxom2mbw$7~Ox<*PYl3GwM1s!B?P}!Vv@-8(( z)*LzdlMC<>@x=PlX zRj2p-kv%&v*XHQmL+)%ltKqX>K_d(vTye4Y(K<9T;XN18be89$000000000000000 n0000000000000000Jr21YQy3zXO7EM9EZc;`<-Tcgez43f2!HFt(@qtr7-< z5C~9H$^+QU@sUM~$41?KjZZDq0shKL+qNySr-5p&8V%dF9p#7Rb)9(0 z0uDP_cc%zg?|tS_77ff8wU9MJbyP>QZ)M5V&{`q>BjCoh&wrd1T>H5e>M>d~dMPXp zKJ15;rV!H))vcnmoWB0dt9w6fL5t^r`l`1AD-a{=)T#4?{ikT7`-xP#&YEH`PxYL% zj#FzzKk5*E&IJbm0002$EvSi;zgP!7E2n?!n`qrQ!OG*e9rn3zThIp83~NO6ZRYah zWCO=fj(FK@(|=ENrLLfMYN@1ModzpM8gc6QU2`$6xGuJm7iqCvdQ39wBAuE^(iuSQ z7AsZ~C=;MYjT1-pPh?*mlKwcIy=6RYk+Yumopg&FcmibtB$uXea-N#9go9k*OkZ&} z&sk&a3bN1yOd%cmHY*cN>S{`P5o6?xJJ#K$zJH#j8{R9?m=U0ct#ueSeZh7Z z=NejKo}~$P40DXJN*vYCvZ1%fb(4M9>%zNeZ$aRFOn>150DLJKF|GuTb@kToyfOyG zI9V8x+tkmkY=7jTblrQWBbiw>Bl1~LO>3%V34yj=7FhVF1i?mK!m9OPFpG;&w zGq>@%w0|d{PB)wwC*dU?bcs*mP_yYY{`gznso1L*@x zdiNjMvU787_TE8y@!tO7>u*7626wHv*!ybQnKvp002ovPDHLkV1nKPOb`G7 diff --git a/tests/integration/nano/snapshots/nanox/test_provide_pk/secp256k1/00000.png b/tests/integration/nano/snapshots/nanox/test_provide_pk/secp256k1/00000.png index b822d148aa43310c5c3fd19a047ae3776bbd87bb..17a084dd18094d6825adf79726e87e62f392e2f7 100644 GIT binary patch delta 432 zcmV;h0Z;zF1Ih!CB!7`fL_t(|obB3eZo)7OfMIXiO>+Mu`7ZkrEwb`Ofim0e`}`^q z6~RuNCLjU;00000004LJ<=uf7scO3}r8xHFP5BaFLvJNbL$U<4=-Y5l8?*TK?!YU$ zKxd45N~&t>&;Df=DQ5uOtcH2g;V(&NKo{$zp|6rX1qqL#L4RCkBL)DtuRx1%U03Uh zYOkNVQL-Hk{djla1mnS6%+Raq*s%l~F*RC?nBA|vu(wFC^P*D9`03FT&_=W^O|saI zwei*7Z|{mQImR3WDnYe#wt^oFcP{mNway1hz{WeVo=$v6-AWL;1f4j>Bh(+6t;4Yr zV2ilD=oaCmrhiXCf%XBP6M1J4YX*E&!05{z5|F)c;ohce?*$g*=K3WlIRA~<>c_>^ zzaPeyw${*H-kAm*Ip8J=e(KH!HGPHS5%=#k{jv~4NI4S7Q6fa0000<5>@5=M$f%Su{&a!_w2HP* zt;E{*?OpDJW6VLUDX8|(&fo{bok;zoTF+x8VB?cmPshHOZY7951)W&q?(>h#*5Pmo zu#>pG=oaCOrhiXCcM&#u;YI*1C~Wxy&rFN=N)^o-;LLv`wtBg^`tOIarR}r2vx=8m zy!elR@=u0yo-Q=2om6+$CbNSh+qh}@zE~q*)v{`Aj-1nt`HQeOb{+v;!JefU@+|1S z>$(3FG@2&kNQO4wi8=pBgjbSX0gkT~_l^6Cj=u;403HAU00000fb07MIVK_D=fAEL P00000NkvXXu0mjf^F7fg diff --git a/tests/integration/nano/snapshots/nanox/test_provide_pk/secp256r1/00000.png b/tests/integration/nano/snapshots/nanox/test_provide_pk/secp256r1/00000.png index b822d148aa43310c5c3fd19a047ae3776bbd87bb..17a084dd18094d6825adf79726e87e62f392e2f7 100644 GIT binary patch delta 432 zcmV;h0Z;zF1Ih!CB!7`fL_t(|obB3eZo)7OfMIXiO>+Mu`7ZkrEwb`Ofim0e`}`^q z6~RuNCLjU;00000004LJ<=uf7scO3}r8xHFP5BaFLvJNbL$U<4=-Y5l8?*TK?!YU$ zKxd45N~&t>&;Df=DQ5uOtcH2g;V(&NKo{$zp|6rX1qqL#L4RCkBL)DtuRx1%U03Uh zYOkNVQL-Hk{djla1mnS6%+Raq*s%l~F*RC?nBA|vu(wFC^P*D9`03FT&_=W^O|saI zwei*7Z|{mQImR3WDnYe#wt^oFcP{mNway1hz{WeVo=$v6-AWL;1f4j>Bh(+6t;4Yr zV2ilD=oaCmrhiXCf%XBP6M1J4YX*E&!05{z5|F)c;ohce?*$g*=K3WlIRA~<>c_>^ zzaPeyw${*H-kAm*Ip8J=e(KH!HGPHS5%=#k{jv~4NI4S7Q6fa0000<5>@5=M$f%Su{&a!_w2HP* zt;E{*?OpDJW6VLUDX8|(&fo{bok;zoTF+x8VB?cmPshHOZY7951)W&q?(>h#*5Pmo zu#>pG=oaCOrhiXCcM&#u;YI*1C~Wxy&rFN=N)^o-;LLv`wtBg^`tOIarR}r2vx=8m zy!elR@=u0yo-Q=2om6+$CbNSh+qh}@zE~q*)v{`Aj-1nt`HQeOb{+v;!JefU@+|1S z>$(3FG@2&kNQO4wi8=pBgjbSX0gkT~_l^6Cj=u;403HAU00000fb07MIVK_D=fAEL P00000NkvXXu0mjf^F7fg diff --git a/tests/integration/nano/snapshots/nanox/test_provide_pk/secp256r1/00001.png b/tests/integration/nano/snapshots/nanox/test_provide_pk/secp256r1/00001.png index 9d77cd607eba20c3e2c04793cbaf2d9ec12bb37d..ca5e20aef3bb2c745f0eba3491f544cdae372508 100644 GIT binary patch delta 685 zcmV;e0#g0Z1=j_TB!8YsL_t(|ob8%Paswd@MM=sx;r>VBE?IOHrZpikx#Rk8 zAjTx62T)2WrTDW9`+vtTPdePTTHV+5sfO6V7dOf|AJNl6lq=4Lob#1_DQ|83DF?W8 zlIm_V;C%0s4kfdJh!GQslWHS&G%3qdc2i@e@}2=7jD6Bs&VSe+^U$_Y8_}(hdGJdz zPD-gP-&Au$>UH}0J+H0(wgep>gIZU+6lfFC6Q_pF6V{(3weH7bv`@_Y$rIJAJ-zZbDgK#QSamfFM6qT`ZV6G(#7}Jw z`Rr88Q|#a+Q4so!{?ID**GsZ0Vyi` zN5gZYYVt_BwYsfNp2GZj{ABS}e!Mr~tsI_}!;2LFU=!UNFS#q)9*lzBo1s&WXxtUa z9hN(WHqpS)X)6>g#rw3;TB91fpy7N#&y2{f2fKf{FwX#xtnr(0>npUIiRbPCZ=T}^ zaocv&@_!dbyLJurUlU93CM^D^!Z4aQO;3?t^Aqb_{wUvVmo1X$v8S4$uxg9V0L>}U z#~ayg_L5Od?8R`*Z7sh1(UA9EU;wxjXCt-XEy`=FUy_G0x0?O(7pnIFkkKZe!+|hd z(AKk?wF|64YzACEJgbma&>myI7;*jO3Zrh5GzKrn2Hvj_lc53^ldu8=7ruZ$5fy>5 T^zrY-00000NkvXXu0mjfwvkgx delta 696 zcmV;p0!RJV1<(bMB!8DlL_t(|ob8%PlEWYjMd?&-;`<+oyY#|U1ZzT)fp(|8J9(j6Y=q zr%uw`Wd`i`K5;0S4MdEXNQ|^HqN7P&p0b)2D~-<#_`}#I&VO>oe$GPQM{PuxLgvAX zWbBmEn7*kV9cAS7{d->D`eg~)JO-_;eksr4tye-;*5Lk*!oHVl$mLUeu*JFPF| z)2gGT*uhHzA@mvjp*5Oow;^^pq`?mP!3^M#FcBB=9OB#TP15fu{Ca%fjbDCblzVEw@Ae}MfVcvRdlC0ww14^N`ztRmiU}!+4zr=bBjC{? zb@NENuC1j;9>o14`JTEH?F4SZOW8Rw)8~2sz#@j%U2<2nEf^JtH$$f$vG7nNH(0M2 z+Qb5ePFtZ+QoK(ay)~M#D;mZVdhUoETCn}gg?R>mWaV$dy{-G_?u0eZ@q?J{-8B7q z(QaKs{eNp>9bJRPe=4NWtZ90x^qOCobNQqEuwS-FqQ{^yjJ10FcoppXoqISG4u4X6^!O z5Ssz#56>#3RkX+0FGgH{xx%Q~BF)R(!21;f05Jdn0000000000000000000000000 e0002M7w`*as)4fo>!iW}0000+Mu`7ZkrEwb`Ofim0e`}`^q z6~RuNCLjU;00000004LJ<=uf7scO3}r8xHFP5BaFLvJNbL$U<4=-Y5l8?*TK?!YU$ zKxd45N~&t>&;Df=DQ5uOtcH2g;V(&NKo{$zp|6rX1qqL#L4RCkBL)DtuRx1%U03Uh zYOkNVQL-Hk{djla1mnS6%+Raq*s%l~F*RC?nBA|vu(wFC^P*D9`03FT&_=W^O|saI zwei*7Z|{mQImR3WDnYe#wt^oFcP{mNway1hz{WeVo=$v6-AWL;1f4j>Bh(+6t;4Yr zV2ilD=oaCmrhiXCf%XBP6M1J4YX*E&!05{z5|F)c;ohce?*$g*=K3WlIRA~<>c_>^ zzaPeyw${*H-kAm*Ip8J=e(KH!HGPHS5%=#k{jv~4NI4S7Q6fa0000<5>@5=M$f%Su{&a!_w2HP* zt;E{*?OpDJW6VLUDX8|(&fo{bok;zoTF+x8VB?cmPshHOZY7951)W&q?(>h#*5Pmo zu#>pG=oaCOrhiXCcM&#u;YI*1C~Wxy&rFN=N)^o-;LLv`wtBg^`tOIarR}r2vx=8m zy!elR@=u0yo-Q=2om6+$CbNSh+qh}@zE~q*)v{`Aj-1nt`HQeOb{+v;!JefU@+|1S z>$(3FG@2&kNQO4wi8=pBgjbSX0gkT~_l^6Cj=u;403HAU00000fb07MIVK_D=fAEL P00000NkvXXu0mjf^F7fg diff --git a/tests/integration/nano/snapshots/nanox/test_regression_continue_after_reject/reject_public_key/00001.png b/tests/integration/nano/snapshots/nanox/test_regression_continue_after_reject/reject_public_key/00001.png index 13cef4a9515aca7f7f7ce141ced45ae785157131..53efaa94ba2d1ff869d4c2f2a983da2d02dc7a96 100644 GIT binary patch delta 705 zcmV;y0zUoM1=$6VB!8euL_t(|ob8%Pa>O7EMM+m~;`<-Tcgez43atqthPJ!@+l6Kj z0s;C?DL3Fe&+|OvKRNXu$4eG%o*NDKH9oaaC-^HX9mlc7o(8J9YBU_jag|?|*LC70 z8@TLb!@Whoe(y7fvS?t&sD-Q(s-rrZwUs5Sp}j)Ieq_~SC9U71Z`de8mm4EtU!$HQ>V@y&Yz;q?k7@doi)YYp6Wem zU8mNLzSSjsp9c;A0002gS5Oltf3YrlR!)D`FVVVlf|bW#JFK~HThIp83~NTzHuLy# zvVrR-N4#wI>3=7>Qddw1wN%osL4%beoj7&;p}81WTo+r(i?mp7JtmoTkxtDd=?tKD zixn#glm$?u#)+f)C$g^&Nq?Ts*)pEC$W>4KPP#=-Jb|(RlBFq}T&Jci;UG6S(^s6s zbJiTYf-JNEQ;5gJ2yw}Xt;$4`y1G)nh%s`;UHfjSuYYIhhM$#a%m`4!*18OvzF;Se z^9(I9&(Z=rhB?MqC64N6+0Z-UzQz93*M(=%K7zpWnEr(e0Pv;c#kh;6^k$`tmdfUf zak4NXx2esoY=7iK>89_Uj$Yu<0HLa@9xil7_&NZ9>C)K4Z;&QFxom2mbw$7~Ox<*PYl3GwM1s!B?P}!Vv@-8(( z)*LzdlMC<>@x=PlX zRj2p-kv%&v*XHQmL+)%ltKqX>K_d(vTye4Y(K<9T;XN18be89$000000000000000 n0000000000000000Jr21YQy3zXO7EM9EZc;`<-Tcgez43f2!HFt(@qtr7-< z5C~9H$^+QU@sUM~$41?KjZZDq0shKL+qNySr-5p&8V%dF9p#7Rb)9(0 z0uDP_cc%zg?|tS_77ff8wU9MJbyP>QZ)M5V&{`q>BjCoh&wrd1T>H5e>M>d~dMPXp zKJ15;rV!H))vcnmoWB0dt9w6fL5t^r`l`1AD-a{=)T#4?{ikT7`-xP#&YEH`PxYL% zj#FzzKk5*E&IJbm0002$EvSi;zgP!7E2n?!n`qrQ!OG*e9rn3zThIp83~NO6ZRYah zWCO=fj(FK@(|=ENrLLfMYN@1ModzpM8gc6QU2`$6xGuJm7iqCvdQ39wBAuE^(iuSQ z7AsZ~C=;MYjT1-pPh?*mlKwcIy=6RYk+Yumopg&FcmibtB$uXea-N#9go9k*OkZ&} z&sk&a3bN1yOd%cmHY*cN>S{`P5o6?xJJ#K$zJH#j8{R9?m=U0ct#ueSeZh7Z z=NejKo}~$P40DXJN*vYCvZ1%fb(4M9>%zNeZ$aRFOn>150DLJKF|GuTb@kToyfOyG zI9V8x+tkmkY=7jTblrQWBbiw>Bl1~LO>3%V34yj=7FhVF1i?mK!m9OPFpG;&w zGq>@%w0|d{PB)wwC*dU?bcs*mP_yYY{`gznso1L*@x zdiNjMvU787_TE8y@!tO7>u*7626wHv*!ybQnKvp002ovPDHLkV1nKPOb`G7 diff --git a/tests/integration/nano/snapshots/nanox/test_regression_continue_after_reject/reject_public_key/00003.png b/tests/integration/nano/snapshots/nanox/test_regression_continue_after_reject/reject_public_key/00003.png index 137ca9e4946dcd461fab8ca146124917077d946d..3d36b194cfc82107a670d51fb067ff4ddac0c997 100644 GIT binary patch delta 341 zcmaFI^nq!DO1-(Ki(^Q|oVPb4`I-%QTm!ei^1JbW(w^yc5nLwBTppo+F4)Gq`UYmD z8yw_efB>y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanox/test_regression_continue_after_reject/reject_signing/00002.png b/tests/integration/nano/snapshots/nanox/test_regression_continue_after_reject/reject_signing/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 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 Rywv~z002ovPDHLkV1oRNMEw8& diff --git a/tests/integration/nano/snapshots/nanox/test_regression_continue_after_reject/reject_signing/00007.png b/tests/integration/nano/snapshots/nanox/test_regression_continue_after_reject/reject_signing/00007.png index 85234247e808c9a4eed986210646699a8fad3053..2b33e84bd934985581cc1e8b3a0342a628c6b7be 100644 GIT binary patch delta 333 zcmaFL^nz)EO1-|Pi(^Q|oVPck`C1fs90KQ@@w@SV(w);aGX$2cZQyU2RlTo9A;cjg z=1}mpQs3i-$By4JJuD&N5PL89d)V!u;^d8WzgQE(cE50%o7O(BDmq$o%^!>XO6!(O zed7AsTsiYl@KpxC{p&r;-!HHEU6xeWDR#NAr*OUS_TXYw!R4*>f>t62dcR22e|LKM zBu3bMzR~XAGsV|<&Hq~VOVFIn^=ej|+#ZiJ&HGhP9F=Hk^EnpdkS4L`l$^k?en->e z9^T(N4bJF($+%ak+K^RY#WR!jtiQV1!wUWL&UK7&6>qX9Z)Pmm=*q~z_IXpZg@^Om zddGua&ZRRyEUL+r`1sjR-Ys1J+?hzJUv@kP5`f6g?BSuh-Q^c`*ch;b2ey~}=>5DQpQi^%4^FN?^G zpg?_0S9!nR@i>HVS=>B_UeRkUd+N8%*0fw%t&yhDi!DF$N{t?n{OOxx#k7{k%aWu# zwh$Z4uUb|pUQ!wT_}#9^yZ8D1bc+m@_nAbD$03BZew=^i!+)7%p7ixvGMmwVD<9_9 zS~iUw3$g2}Vs~G2cQxW`J^y?rCpu+S>n5FeM)D|pOhH48!L+rRDNZ0a8M%!$U}`@G zo7;>yYwt~?xProB#j-07*qoM6N<$f}g;kvH$=8 diff --git a/tests/integration/nano/snapshots/nanox/test_regression_continue_after_reject/reject_signing/00008.png b/tests/integration/nano/snapshots/nanox/test_regression_continue_after_reject/reject_signing/00008.png index 59fce75cd1321a13bc8840b9bc6f48f87485d7c2..1fcdee14dce21c819b5e211dbbdf546034789b00 100644 GIT binary patch delta 520 zcmbQovXEthO8pB@7srr_Id5kM7PTnwv}GTc?9lLqhrP``?db{pjpG zrn-!U0To35*yKO|c_nY(;}iDl3pp15@@+0yKj(GZ2jO)Qi!0;h?@JvK{bu>h_dw;m zC>H&`#}l@1wo&cf>|r+HxasUAEeqn77VM}Oo1S&_%OUo&8v|3VEAJn(oc*S;Wc7xV z>D?PkR$Jt~$Y$Ht9=o-3_wDs}M9Xa%!wV&h zZNFN6;N2?O)%sV(gcCHDR}1D{YwOw0a+TZU?3Pm&UgqzdJ2R!)ms}J0cxC>UPkbi= z&zTwpiY` z=a&X?hINib6R_{Q6~TjT+w|?MFKJ^D5d(eRvMELg+EprtTYqt_R!y&bupApz_LKMR zT=NkRv|E*pT&>31t?Im^ZyER=UaH-=yW`52;-M$tNO-$y>D@$PIrG?B`mKRa6_oBz zxQC-$E#b#u_8qXgYUk=}waElH%H>>yyR|`xmY{Zlu9;OCN4bpqP-42qDXDctBK4=t zyaOc4Qgi$=J%5^yR^Kw1RI{o_FhgBseK?%y+-LJGuyUNfN|MpP{p(LYa1Y_}J)y|^p@I^cNo_f`c)6F%%jny_b z#K!54X&)l`RkP1J-<@^o!zlMRVj6KpwtsqTbztL>%3 zC;_fcKbsZDalnuJzMC~2nVVx09kY$XZrqb@I;XGCT7%T$| zz;Bh0#AKt{@pw8beS3kvcj1=R!OiNuWi$;}+F z*Sk!BfH?5EfyNs=Telg=Tx6r`b@%(%YV3ND@etCfS^Z4AJ=X=+BKsP z_sHln+Vc)4;@ zG6vyZfPbU&E?+rL|Jd=i4})V|TZSI$DTx2Jnn+bri&XKgiG>#w#10dYA>NTR^;gB!8<(L_t(|ob8-ja>F1DMV(G|;{7j)z4XIVs)&bqNV;-H=c};^ zTx28Q+Ue`CBBew>p66-Sv}bhXw+!6Ie&s>0ajI6vvvYt_5Y6m zo9MIVJH4&m%TrBszSu9L8V5EG-mMdQ&F8;c*?=-qW~8m1GP1BBf25#tfIJbOalg2k z0}k73knii;L^QjAq2FTjb3Rfnql*0$8w5cR1ObZv>Vhsm%97Q^$?~RbN&r2$uc1%H zj1vUD>RJ$Bynk5aX50=fZ;PIyee3tLf41e&Z3of zN7y{K8q^>{q@Z94_=+nCf=9DplcDT6)n}HlNf@<~^MAI26y66MYBpKxAiQ07XxL=4 zZE3eFi2Mksf?75DU#;5B0Vtmi?hp2foiG@c6r^X9G0g0_Cn4V9+m*XgyEYh2!fVi% zID=7Q!4m|5B{pxX9iQ{9r7M>|W;!xv0ZhV9Ce?8nstF zAT{3Q%YVoFKX$zB!{8X#mZ67w3fg~LO{6NRMXLDL#KH@5Vuy*y5bsEsabR{+kP|yh zRfhMUPdl;0oXD6ZQqULS4Ug9;*Iw$?|bmPNv%h~wXRyG2pHU#)5VpBcQ z*wA4GC|&>qQ_P7g=Lq<#YT5$WBY}OaQ_!aL{Y5M+Xby@1dmytG2$BBp2oNWB!eE3) y0Nk6?7ErCw7jRPyE?|mCLEj7f280U;9>6cx6a!}!6t(350000y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanox/test_reject_pk/00000.png b/tests/integration/nano/snapshots/nanox/test_reject_pk/00000.png index b822d148aa43310c5c3fd19a047ae3776bbd87bb..17a084dd18094d6825adf79726e87e62f392e2f7 100644 GIT binary patch delta 432 zcmV;h0Z;zF1Ih!CB!7`fL_t(|obB3eZo)7OfMIXiO>+Mu`7ZkrEwb`Ofim0e`}`^q z6~RuNCLjU;00000004LJ<=uf7scO3}r8xHFP5BaFLvJNbL$U<4=-Y5l8?*TK?!YU$ zKxd45N~&t>&;Df=DQ5uOtcH2g;V(&NKo{$zp|6rX1qqL#L4RCkBL)DtuRx1%U03Uh zYOkNVQL-Hk{djla1mnS6%+Raq*s%l~F*RC?nBA|vu(wFC^P*D9`03FT&_=W^O|saI zwei*7Z|{mQImR3WDnYe#wt^oFcP{mNway1hz{WeVo=$v6-AWL;1f4j>Bh(+6t;4Yr zV2ilD=oaCmrhiXCf%XBP6M1J4YX*E&!05{z5|F)c;ohce?*$g*=K3WlIRA~<>c_>^ zzaPeyw${*H-kAm*Ip8J=e(KH!HGPHS5%=#k{jv~4NI4S7Q6fa0000<5>@5=M$f%Su{&a!_w2HP* zt;E{*?OpDJW6VLUDX8|(&fo{bok;zoTF+x8VB?cmPshHOZY7951)W&q?(>h#*5Pmo zu#>pG=oaCOrhiXCcM&#u;YI*1C~Wxy&rFN=N)^o-;LLv`wtBg^`tOIarR}r2vx=8m zy!elR@=u0yo-Q=2om6+$CbNSh+qh}@zE~q*)v{`Aj-1nt`HQeOb{+v;!JefU@+|1S z>$(3FG@2&kNQO4wi8=pBgjbSX0gkT~_l^6Cj=u;403HAU00000fb07MIVK_D=fAEL P00000NkvXXu0mjf^F7fg diff --git a/tests/integration/nano/snapshots/nanox/test_reject_pk/00001.png b/tests/integration/nano/snapshots/nanox/test_reject_pk/00001.png index 13cef4a9515aca7f7f7ce141ced45ae785157131..53efaa94ba2d1ff869d4c2f2a983da2d02dc7a96 100644 GIT binary patch delta 705 zcmV;y0zUoM1=$6VB!8euL_t(|ob8%Pa>O7EMM+m~;`<-Tcgez43atqthPJ!@+l6Kj z0s;C?DL3Fe&+|OvKRNXu$4eG%o*NDKH9oaaC-^HX9mlc7o(8J9YBU_jag|?|*LC70 z8@TLb!@Whoe(y7fvS?t&sD-Q(s-rrZwUs5Sp}j)Ieq_~SC9U71Z`de8mm4EtU!$HQ>V@y&Yz;q?k7@doi)YYp6Wem zU8mNLzSSjsp9c;A0002gS5Oltf3YrlR!)D`FVVVlf|bW#JFK~HThIp83~NTzHuLy# zvVrR-N4#wI>3=7>Qddw1wN%osL4%beoj7&;p}81WTo+r(i?mp7JtmoTkxtDd=?tKD zixn#glm$?u#)+f)C$g^&Nq?Ts*)pEC$W>4KPP#=-Jb|(RlBFq}T&Jci;UG6S(^s6s zbJiTYf-JNEQ;5gJ2yw}Xt;$4`y1G)nh%s`;UHfjSuYYIhhM$#a%m`4!*18OvzF;Se z^9(I9&(Z=rhB?MqC64N6+0Z-UzQz93*M(=%K7zpWnEr(e0Pv;c#kh;6^k$`tmdfUf zak4NXx2esoY=7iK>89_Uj$Yu<0HLa@9xil7_&NZ9>C)K4Z;&QFxom2mbw$7~Ox<*PYl3GwM1s!B?P}!Vv@-8(( z)*LzdlMC<>@x=PlX zRj2p-kv%&v*XHQmL+)%ltKqX>K_d(vTye4Y(K<9T;XN18be89$000000000000000 n0000000000000000Jr21YQy3zXO7EM9EZc;`<-Tcgez43f2!HFt(@qtr7-< z5C~9H$^+QU@sUM~$41?KjZZDq0shKL+qNySr-5p&8V%dF9p#7Rb)9(0 z0uDP_cc%zg?|tS_77ff8wU9MJbyP>QZ)M5V&{`q>BjCoh&wrd1T>H5e>M>d~dMPXp zKJ15;rV!H))vcnmoWB0dt9w6fL5t^r`l`1AD-a{=)T#4?{ikT7`-xP#&YEH`PxYL% zj#FzzKk5*E&IJbm0002$EvSi;zgP!7E2n?!n`qrQ!OG*e9rn3zThIp83~NO6ZRYah zWCO=fj(FK@(|=ENrLLfMYN@1ModzpM8gc6QU2`$6xGuJm7iqCvdQ39wBAuE^(iuSQ z7AsZ~C=;MYjT1-pPh?*mlKwcIy=6RYk+Yumopg&FcmibtB$uXea-N#9go9k*OkZ&} z&sk&a3bN1yOd%cmHY*cN>S{`P5o6?xJJ#K$zJH#j8{R9?m=U0ct#ueSeZh7Z z=NejKo}~$P40DXJN*vYCvZ1%fb(4M9>%zNeZ$aRFOn>150DLJKF|GuTb@kToyfOyG zI9V8x+tkmkY=7jTblrQWBbiw>Bl1~LO>3%V34yj=7FhVF1i?mK!m9OPFpG;&w zGq>@%w0|d{PB)wwC*dU?bcs*mP_yYY{`gznso1L*@x zdiNjMvU787_TE8y@!tO7>u*7626wHv*!ybQnKvp002ovPDHLkV1nKPOb`G7 diff --git a/tests/integration/nano/snapshots/nanox/test_reject_pk/00003.png b/tests/integration/nano/snapshots/nanox/test_reject_pk/00003.png index 137ca9e4946dcd461fab8ca146124917077d946d..3d36b194cfc82107a670d51fb067ff4ddac0c997 100644 GIT binary patch delta 341 zcmaFI^nq!DO1-(Ki(^Q|oVPb4`I-%QTm!ei^1JbW(w^yc5nLwBTppo+F4)Gq`UYmD z8yw_efB>y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanox/test_sign_ballot/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_ballot/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 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 L>gTe~DWM4fE9H&1 diff --git a/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00011.png b/tests/integration/nano/snapshots/nanox/test_sign_complex_operation/00011.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 zcmV;%0y+KI1>OaaB!8tzL_t(|ob8%PlEWYjMV(Y`;`<-Tcj<+zX`=Cii6LG8tr8m~ zA&EgGk8LH6<0zl^eV=H_OlmLOtap~`doV}$(v6l%y<&8+>U^^Ad-<^ank}9bA>Nal zIV}{bpY@j&ykEP?b12^NL_9&HeTb4Jg}(qy_rAz+?W5Fdr+EodvqDyWyw|0GhcPQC=v!1M$&*L)j%Mznih17qT4 zBsQ{Xl0EY#N;eYNGwUyAL0NM>A!7?m&}+z`@JpR!37X3&|B9aq0$r(d@st8DH``_a zuKsLUCxSUA1{@M9u1~u-b6X`N^8lIw=1O-xJ&V6a34gqTHp4Wm)!G#<`3D0Y0WV4$ zJ2eBA-U9^bI{uA(QvlNKF>RyU6GE2dcxUVSr-CQYe5)JlzM%G?-i|BVxCZtHg7j)8 zE!jsMIks%%LBP^uOd4$6GVL3O(6q;6%qCoG)#vC9*gxx&Xeq zOs@-c8-E(~7jJ7PnvpQ;9UrGYN3cXNE5)>Gy{v@wDt09t+VjyGCR8q!|( z)dB7+HN8=QH$t(@@&p;?usWdcKbK-1ZyNcqy>1*j2B}*n7h)Yhq3FK%MnuCeSsx<#1M#jPb5JCtcgb+dq sA%qY@2qAWhai~XwS9Qg_f+O_rlG3SE;@Sada=-K04*-tmOIiAehpElV1I0a)&RlH=S*uGdcg8h;&kSmlU?FY?9m7--&~ zCI1s*QxGS=EkR=Xtb#i$=)U2OH^5W;5ovS};wGtW!sUI+_Pd29ZTTj=e1QP~006*T zNOhAv$Q~U;0{^NgWtygxS6-r`l$~xf*Qzvzpo?{rJtT23#zRE@^GrilDB7bjXA|zV@}qPK?4Nzv(t9?0=CR#9cE`v2YI2MkQ|sac zAZR*wdVg<1U0iQbeC?K0;y}1D1SbGoee;es+Mu*Zd)}7^c&ysg zMiIOevSqe6kzr1&1IGSyN!Iby$fxaf^WZUX-Lkk4%l?ES_Psw6hN;;Z8QlY19i*jr z7dX5blGT}K*}-mJUA@8*sBRO_uRoF^^EW=i27Xx6KW&=AW;h7_BGeV=Vf_l{0I` z!@p;KDNo%beBqp&LCGZM$vZ`#^DlSQoxz$`BI&hR$jfr_T~ooCag4DqOs*}PCnT_B z5<`W;tN!NM&F>~9&%b`*SMDY|i(uVPs=rRWefHQaud}SET=DaoXI;nMs^`_8%>7dM zrI_VrNYyX-59NY>y>fFKIJ{-NCfxb>N?CSu;I=h)?!}kKdQ59T3Orr?T-G@yGywpl1(Le} delta 317 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 V;ORDdeNYgjz|+;wWt~$(696=6uWbMT delta 375 zcmbQqJc)UNN`0iKi(^Q|oVPav`I;4Y8WOix2*0aWdB2H$a@*E~)qE{a|IeGjjEaO@;djDmRU6LTq-^%vti47 z=JJ_}i@)8>5?Ov>^Xqe`FDf6CWXs>U_Vb%lU)BDyE!ce0DxuFml3}v-ypZ?nCqA&q zSfA~yxzp`+=hgj77T?l4G;czF!IWEe{`*d=RbKse|Bz4IVzZZbTy(29%yI1b$|kb& zv*Y$zTMQi8cO)PEIPdcVwci52?V0y79<6owx;)fy@mW#HtutB}8L)x_HFp1^1fEUr RmFWS=d%F6$taD0e0suO5vflsz diff --git a/tests/integration/nano/snapshots/nanox/test_sign_delegation/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_delegation/00002.png index dda85c1052ee8113f3bcd1a38086fca1ddf42d04..1e62caf7ae43198708e284e88f2142282ed11428 100644 GIT binary patch delta 701 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 M07*qoM6N<$f^`>X1^@s6 diff --git a/tests/integration/nano/snapshots/nanox/test_sign_failing_noop/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_failing_noop/00001.png index 0ca80cc7cc8f304377709c6a8305d0b9c8f2a4f7..8876756cdb360eca86c65f844634a8f694693e3d 100644 GIT binary patch delta 76 zcmX@ge4KfL3S-|!)nrC{N83Hs=~Ev3?CdXW_O)c6arz4bRv_?%H)d5S3!~EkL6E$s LtDnm{r-UW|fJGEe delta 74 zcmX@ke3W^D3S-Yk)nrE7g|9_~Z0tW8=55e?&QLs4jsYuZ+QWFwtteNqeu583-qY33 JWt~$(69DjV5}E)2 diff --git a/tests/integration/nano/snapshots/nanox/test_sign_increase_paid_storage/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_increase_paid_storage/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 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 Rywv~z002ovPDHLkV1oRNMEw8& diff --git a/tests/integration/nano/snapshots/nanox/test_sign_origination/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_origination/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 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 delta 911 zcmV;A191GU2c-v)B!6s4L_t(|ob8%hlItK0L_N2%6YqaX*~|TK6+@(^Y4h|{bUvmM zEQ1i@)tR4TA@BD)|9YM$w=@QMAv6%{c@+PAkqOgqhJ@oh&nJf!0t5Tp4i6vcNJ)ds4PaGJGVsoGRVqDw<h872Ay^#ZE}HUH3|_;hu~Si-`iFNn>~w0~9A!^oTPKwtakQ=2n-zK`mx zm7~*V(uUtjAS9#HK1Mb---_S;#3=CTl{=&NPH!FBx2MTtINztkD%PDHLkV1nT6!rlM? diff --git a/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_add_messages/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_add_messages/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 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 KMNUMnLSTYvwO)7t delta 728 zcmV;}0w?{>2F?bMN`FGBKys~*vWDmL*?v5ZV^N?z)Z5u{BV_Ds9$F{lci z!WZ)^oI~mne1Fy>e%>t>vH)uPtfrk%ZE;(yD+bsmB-W^b980)R6$@F5q!~cy?nsLW zj5QSicE;k|d=Je6~E zzKo@e^Cg>SXMgO)aJM)lJyThx6{*k@+=7(KHqYUfB7YQOu_esTg6Om8OA({-nwCN% zi^^M37BZyG@%sKD?ztO_blyAy)4S;0QW?w|?R1OvHud9??XRYI#n$uPX=supNs=TBvHv8As9+v# zE-E6|)PGc-LFcO1<>r7@966;eIQ`n3P~53HW4p?!@ts`rRzy@ib%V@$Scu^h(C~`c zPHoP7FP^f?rNouqOho49vtiUmcBPGo__2Am9U##O3Mpa=@`@Q*weP3xXo-9P2(jAS z4Va{%&ez#O($J|l*^k*XvYLlzd`XfdNs?T_st^AMRHIF0Lo~H@ZB%!m9h1}oDI|Rb z*IX*~Z8YgXG44$)Q92+WAC5~4Le#hN#hMQ?KFjxjuN{*i0~r)@__Wh{7LOqS0000< KMNUMnLSTX{3v1H= diff --git a/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_execute_outbox_message/00009.png b/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_execute_outbox_message/00009.png index 445ef21fe185e57ff3b78779e82da747efef8e42..2afcc241392199be0c8e3a3d924576979a70c1e2 100644 GIT binary patch delta 855 zcmV-d1E~D%2JQxsB!4wYL_t(|ob8%ha>FnPMb%Ds;{7ivd+CQestX8R9#TCH=PMxy z;TJ+T{%C7>ym_?9)s}1AmnWwXIDJ8LgKF=eMDb|@4^^MH_Ir^bk1i8`wl%RWFgOmp!u^?_iCTl=Tx(2<5 z_UD?+O7gh+Uwx(rAP&?c@UiW0q36adZd>Fj@wRVIdzu1$0*cMl1t^N*AE8o2lQ!s6 zi)jclO7Uq@mw%#&Wu*52J$3bM8dDTwM$u?!hXrv)MwxuTQPb8|^i+mSW1bc;+LISy zyzkESG&TEQ;v6IpZm|{$pAVSxsCt+@Np4_FB--RiOdt60brvw6pi#`kH2kegP_M#D zIbP>!LMTBG0I3`6JWbFGK>jlVEs%W^ zb5M`!;6AwY=BQ)ur3Hz9s5yMd+7_ur?{xvPa7%BT$(wP$Hq`XWn>Z@cET%6cqvPU7 hhh$Y0MNt$#d;FnPMcqz!;{7ivd+CQestO2Q9#TCH=PMxy z;TJ+T{y5g~dcFFu=XoxgXbL2mRvCFq{lAmzbFEQni>$r^AZU4vFb z+jC83C3*Dzz0dRj#C1}SAdc+|JvU}?+agbiw|#rs(-i0vP;90yKv5L`2$doZX@fqs zn1&#u6rV%tQhyY&jPxF$r>?$DV~S$TC>jmzuprLJD3cF3YTDY0p30DE%*z5sd-5WT z_uaXkre^<3oPz|yE!INe^8s@nRS%OV$qkH&M4KFm=>s3W&I0BWG>Vy+hQDoDQ@w#6G|LJ2Sjp4@&Wb4{-?A? z$hRjn#Zi2eILIij@nz|NdWK-Mi(80si$HF=+z#Eb6C8?h5q*kVkT_Q5>)5CRf*Fc2 z5jAi~P@h8L_@-a9QuiA)^o< z4)TVY?=3bYLp)kh6h%=K_h9&!WR^tbklwh(B)#!b>9580On2j+Mkq_7LgJV<(k6>C zmuZ)aOK+yEF65nXR@3_I<~L<4ZrBO?Bq}`4VXSx#DGx2ur5?fFf=7>7(( zRAPIY9-NR3qkpXwabKwAIcr&MMvt}4OnHv<5=w6|Zv#?PQkOg_b@}wfwvi=ZERq8h z;?<2|1vmgpT?j`Nh)kt7`R>{Yh~lWxFP74q>Nz?A*XzOVkul;Qm-zH>A^ste{XslL ze8xRbk|arz&pL?*q1t8IVSlQc`K_hf+DXlml8WJE+|D%i zb5dq$Bj&DBffDO(CALC`__IP{MyM;PF=VpMeDw{l25y#A{zffmgj#6{tOhRP51)=c ztwQI+mWCGg*lM!qYr|~`pO#`tC=q|oN<)(*Ns=U4!Y~V}$f-!_B`|7*&X>}dY=tL6 zQMPQfdw)nGS1)*DM9-ux!KhGG#C!Q{3EicQ*#Fq+aE^K?>2Ip;lV4HwxOJ5^;5vasrYhc_XwGQ5o&X z!Cm{PmrsKD<&v~lQ?Q?s}>ZcCbR*>sa8{Qb-l&bqoRbujI(&x69+w+@#F%Fro zsKoX(Jvbp7Mt@r=;=WMJbJnujj2>&7nerUzC6wM`-Ug(oq%L_<>hkG{Z6iy-SR@B1 z#H$;_3UC0Hx)6>k5SdDE^4+x)5XDiWUo53J)pK+LuGfRzBV)urF7fH%Li|G_`-6Ch z_>6m=BuSDa$r+$0<65EVaGcQQEfqS%pLG%sLbc1Z!+%sY^IJ=|wUe4BB^ATTxSeV2 z=cLTiM$BEM0wvbnN^FG=@n?m^j8IonW5{Hi`RW^94csiL{Eb@B2({7@SPfjnA3hy@ zT7}MsEe$Q~vDIYJ*M{2?J}t$PP$K@Em4+rsk|as8gkcs`kyDYEKWi1+f@61qzpvH!8t;T-i)(%)3wC%>ZVaqB8;$aAf$ z7(&Qv=PlK)SX=H8WYWWZCiGVTiIPGr+F9*7u(GB`Y1QZc1mGvXKADh_v6Z8d;LgvH qt*dSMY(+g6Z|1X}BuSEdC_ia+q+Lg@P;vkO00{s|MNUMnLSTa3S4b}a diff --git a/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_execute_outbox_message/00011.png b/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_execute_outbox_message/00011.png index 0f3bf5a6ffbaf51a690eda124b6aff355aa75ad3..8b2f30ef6d3655f6196e435a6656b9a5f812cafd 100644 GIT binary patch delta 163 zcmV;U09^m~2KNS#@PCfF0`Gf$272C@#lH>ml=!x9&-OG0x&n&L)D0+#;vlpX(NNNK zQe%kQh-RabfJtX6n>c3Bml=|#U()u@VWaOjl|76}2XVo5*7@QbcnN3ig?H+#+rR%R z=a77aCo-d@is)SG`i-^r>IM`=aS&RHXeenq zsWHTDM6*#zz@#&kO&l}m%M3}=FKK({u+ev%${xm~gSg;2>wIwzyo9s%!aH@=?caZu zb4WhI6PeLcMRYE8{YG?r>lEY6j`&8bf6s0dn;>8Gw-EHqJxDqD$Os~~i18cHlJ=m-(0;CoRpQ4eKgyU3 z5GU#y_}um$==oq4j}7va^|bFydYS?~0mWfz1B#;fAVMqRz95YReWXd5gVMkn^8vlj zMKXt3pTOmttA7LGeGY*&${=MSso=#6Q8Sn|B8h3hH$}#!8TVX~JpCh#=fZzY*358u z{!5(StiyuKwD&VRJFSfc1Vys3IG_X^(gD?H>6+I)kB1=rK!LGHKk}v|5=;=^Vlpe9 zE7PG6loAbY+dVj%VHc4+jQJb_o(mz!YZU}Jr(VgEAb*|&Jf|BFOVN0o6(g?*o}zJ` zNNR}8LS*ikSqup!M);={E30j!2oPjg)8K+ zHn75sRm-MVh+3ED@n&3ZiR3MF&ak5hCCHVqe&`g>@CH_{HYDifdewj^7vH>_`O zs>ksb(gn*ZjCDU}ULkW8ZSAqIr~li%xshoz?ti{;6+tr@ZwSJ>V2DNBtE~RxYH2n* zO-N4)Jf4BxT+AXa6Z0ypt%HUjq>95bss^K(9JbGw#^aZ`ob2XL>cFrJ+b_ zrN}7h9r)K0F%2b>-lWi#hMHcjYb%PPD2n1k2w6~|f#phgnv@Udsl|%6*owdruSGi% zihs4S_${yw?6<-tw5ct&BJZjZi%XU8K62}tTy0qv6@lr$skYGZ%zgVzf0x3mEw&5~S%z+r#Vi z8h>8bwaL&K`fyGRgv?z`!>EM(H08sFHj!mTRPw=v)))D<)b)%%`!%`fh%I18;sDn$ zc5jpCnl$EaWj?*1`t1XBi`R9H)=f`l9Tg2^Up6+&;C-!ahh#w;Ei6b8`3;&p`nc?#M zkJ!Iin+2C?-}mfnw>B0K6v@WofD&*>1yt{)YhL#}9)k1@1;!$M%bSu&FhP8a$*g#; zbcaGvN;J4__uy!TT}1LQ<~#&E7ebKNDhRSqy^<$EJbwvzP8T4SqVYH@MqUv-MdLb= z)DY=~$nZwo^GF(66h%=K#a^bxxQ11o%#ssw<_v2?vLK`d_lisM83X6R04!96Psm|y z;0ZH!S~k5x)Ve&67vpk|NZw=48Fm~(3Gzu;-*k#+cmXR{8xr(#y=p*|i!a_vU5woA ztZTz%kbjog7!_At7CUk|8Z0@P^86WD(UwT!7#FdNah%*@+4<6&_kFX~D|-P}%4$g2 z3)dF2h$Nl3SFwU%Q4~c{6wiYe<8Eg4ro~UmaIt>N_2oz`DFXczy;8J+V-&!vOJH}` z>2bV;RKcnuZe&`FyMHfShoG5^Hw58TFvKG6RaX6R^=LNR zO-M}&+@68jT+AXa6Z0ypt%HUjWcQ`)&>q>95bss^K(9JbG49yxx9lp|Grbzo(oiI| zQe>3$4*YA0n1&KbZ&K(=Lrt&NwG~BC6h-kSge)jfz;Y!#P09!K)M7Zs0d8|O|^x#XYSW$`nMEbZLtxV zE#bQ1jj#YDtb1F;Q|PSM45E!+#I&Wi;1*{@KFmT;mZ3u;<6`v4)ppF{t_48It#IwD zmz}oAa}u-V^@Y+R>KSi&`-0kHBTBc(WgCj3D2o4`zjAFmT7RTzQ~&?~07*qoM6N<$ Eg1L9gQ2+n{ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_execute_outbox_message/00013.png b/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_execute_outbox_message/00013.png index 25daa7d4ac57a1ff706a33fc2c9da30e227bff9a..867644e99c0a6c0f6a9a06c19f5c901f08031426 100644 GIT binary patch delta 444 zcmcc4e2sa6O8s0<7srr_Id5-7_Z?Q?aR`h$>v!Y-q)pR*b{q+qEg{Zx(&KxL>J=Ly zxyF5$q>dL}*>3sVRrGD3T>A0mj&k!br`V1iZ;$bZZ}AAxJ?j)_m9cN~`B`3;Uvqbg ziMtvfof&B2Fg+mMU;J^D$}zvxzg73YotK^>ReY}W?cHfHsU}|a0-udmZoea=U8Wm< z@$s|u%z2f+cG}%vthagRxit~@UEaQ5Ex(~d;)T5T1>@feDUYgyY!WA1-ER=N z!k)^j`#I{0)~&$f*A4HoXQXZMzEFAjxzl>##WrOVr$5_XTfJ?$;uD?&X(bE|(kJ&T z?fUYuR>xJnDrwTKMG`v?o!(ggf70!}CqK@S?iER%o^)i6=C@^+cg)anKYm3s`S-f| zZ-RYNNgJI@)872=xjMb-{Dc0DhyNG`mR@b&w0fz}k~_tFgpAJ>i{;9ds3*@l_*JoH z*__n|{>pRR(i)ygvIZK){+hkB@5eNrE%pnT<-UG1pB>-5?_I+R-lZE4-7>uU?Zp(+ kjYTDT=i6Bru!Dq!@##6Yo7s0saex$fy85}Sb4q9e07+QUi2wiq delta 445 zcmcb{e4TlMO8q=f7srr_Id5-7_Z?Q?ak#kUmEVp3lQvEN*>S|cOoE-~rN{Rg)hmpL ztZQYn=RA+Rw`_`-=oa_7xw867xAJt_jf4wt_sZ*KOk5GPYUZAj3pMKTs!wZ9-LBEq z+mzMy*)foDuJg|y7bUJM8J20iepY+iK7WF@kLJ{+<=L02E}U?zKXcl7Yf*zGyeU<-GT9%114hN*IQFy>7X+cg7j_<5M(~pRcRm z#_7(x@y0?c<8SuKPi6O(e>i?4@!yOUn@;s_x)!7sH1FpgA>(uN&i&eEdhq?Rkml3< zA7<7>CC>A*>OI47)|hKi(ylM_cJ|%yW_u-nfieE-ui0nUyKc8uc;%3}W<#0Jb~`Jx lR2})hQ___g8L)$h7wmC~H{KjDX!;0J;OXk;vd$@?2>`fF(lY=6 diff --git a/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/no_whitelist/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/no_whitelist/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 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 delta 35 pcmX@fc9Lxa2P0$RW==*OCXtDJ7u8%2cx+(+0#8>zmvv4FO#rs<3PAt> diff --git a/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/with_whitelist/00016.png b/tests/integration/nano/snapshots/nanox/test_sign_sc_rollup_originate/with_whitelist/00016.png index fed4816f7c7422d91ab0125da195331055064400..ad24341f5157cea2977af05325c7619e233aafc9 100644 GIT binary patch delta 737 zcmV<70v`Rm2D}E4Jp#_Lkv}efYD&$uDjvDL9ZKs;ENQZ@rSU`hL>2Opg`76b;4q6e zd)qcTu8Yx%Z%m?3A#t==#USY3@J!opDdV@^ea*G(~rzL2AxDN)Ba9h(! zW7S1y>;Yx84`egC8g|Sfw!20a7FvvM1FSBars_gBYDHRnk$;S)JJZ(-5T)sW+bjV9 zfIImLmXiSkcF<;*RaTLPcc|FlsX(nI6NB3Qcu}uymK;{y>M>J&(?t1Dv;%`Y&-H4Q zDjaDM?T*q>0XRSEM{_@aEL*LqjsHWAXDehhn?xI% z0===~2eYId)T5aw-s_a_rOyGczV)$C;H3HC z1a#M5GXVeqfd54F&$#<(#`V;gS2GJlIl@G0N+ducvlgUOBNzu}u(SgrSNXTIv;+PF ztACJLC$csP%z%ekeFj)KKiN51U<%GDbL9i*p8`Gr000000000000000033b*uH?@R TL>D$|00000NkvXXu0mjfFJW8f delta 737 zcmV<70v`Rm2D}E4Jp#|6kv}efj+7(Us#tS-JCxRySkh!)OXG+1i7MnH3ps6=K{bmu zd)qcTu8YwSO7`{{LD*S@o+mn!5aETtVZXJoNwa{@XP z4t^bQ|Jd&$x6tQyg@{+uFduwd8ACJ`dxgCsw$jv2^#+-`QXa@#)p6k^p zRXEZj+8w2%0&srRkLG@VShiYI9SiD+OT%WEnlhHqkUU#b&i5ogKA5rJAEEyEqUD*Z zBQrpi!xS-fmb9k!$U{6aUZrR~#>3I9J=A;Z>OT-)GMyRfjuNq|YmJ@JOc`kK9NP`-#A%p2(rH%9{xb&s^PqI?mP&+5*9LqBl@+aUYb+H(E9 zF2}sJMU_1J5OI||NBUG=+>jTWPWT(GcrkDQ02ep~R?9E1p7g9cWBwxcIDSvXg)}?5tGrXOmZa(CMNGm1GJfja&s)yNma^)1d0R9uvKjZGF8P`)|Ud=2JrG|;rlt_R?W-UlmM=%b|U}*r8gtBc Tl3kZ500000NkvXXu0mjf853L9 diff --git a/tests/integration/nano/snapshots/nanox/test_sign_set_consensus_key/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_set_consensus_key/00001.png index fd4b64afd249fc1451bac0a91774a566c2b86512..1a75d852fac8ac6304174731c0f6a772e9035ba8 100644 GIT binary patch delta 84 zcmV-a0IUE01O5ZBp#d<(lyi@>BfEd+3eY#M?2k?QCM?4IKT(M=XJYvdZ^c-y{Xq?R qgLj38Z9%|~zx^ST(E%10fawd+(bxWPyC2U00000di2c4YVOTmkyVmHn|v_e_NOf1(m$&cyN^-ionY`-2+t q2JZ?F+k$`}fBQp|(E%100Mi#cnAK+_6R!sV00004hsa(S#7AtNvRh7=bKCeZP*KxUMVx zKF@QZCo9RLFuC7VUC%*$yAQ9l)znK)C$H|3^E}g!yd001(CTTl^x<;Wj- z%E|5JkS;l5x&NL+%x&MCK8S8;Za6T(#HeF; zO~tsw3~|y@?0-JQ`A)>LDnygmojRNihvBQ@?0KgN7i*Ywa=}k))HI>a4<9MM*ZWGP5Y+uXFjqjS|5;gqJW9Vf@ zWsiL3RMU#8S-@w*&%C5c0rXI~1v%d^2~~!Wcd+R|tU7Z2(zo%x6b2yAHH-zGRF|q1 z7qjv=o`2d8*cxxm$JJA!5!8ZWDQF{&opSS(lUJz`yk^VR9~^)s;)(XzON5`LwX2i2 zFoJR>+)-BRvK>1Wm_a*RcY4av_LT9+XFRxe5J~;OSDo7Zhqr9pT#LO|cRACxm*KN- zK`k_HTz;|l(G)V_IR{a9hUcOH0000000000044wc00000000000000009*10R!+n# T;86pG00000NkvXXu0mjf98^Rg delta 685 zcmV;e0#g0X15%))4xH(Cqy}6;eT5^SUv}y_eb@AN4H%F zCx3(>bNQ@7I}3DQy5R)$5`Q6;=3pL@-XXkwZrS>@@OoQ*2rmyXgb+dqsW5IqP4tzc zeuR{Z+skHMa?Eo4o+Fyawt+U7W_WK@+GZ|4K{gO4O3j8|9rLLu6pxTpIUW?OjC2yz ziHDYA+!ngHXn!g380LBxVp$hvliZy;oek7(@%BmrV*<=w6YQhRN zEqd0|zSC~eFP^}d0L`r_oSvupt$N4R3tZ?cLGT>)j$NA!nt&nTd*TX6&-%0+Yf@KN zKg}9BX$+SZd`97ZT<&O~Z4P?Z)4LH`#TYvD;5ftNeAtJY#&An{j%glrCn&J{Q_IMFq@J*L! zf>XLpr+@M1Z!=Pfc|}S*@>)@67K2?1_HI z`UXDXYm-sF9+s}O*b~|GN4;1*1`nBG$_<;C>rg@dT7q`^!2`yO8BYG-wBgiL*#pu| zW8ls_(v2M7>Z+m+vinydx0^pZJ$N$U(6toj9`I)NZ&5J-DJ{Nx20<_mbHHe-LEb#A zjXI^+`aucfYJaI+z7_kcJyy*;XpIj*D#Qo}4u4X$WXzgw+A5~168owenJ+QU9>s79 zxQBP8vB+mvbaM-NaQHw+N-~@@aI1191M55%rt;g5d}jp{tT-w^_G@_{#BK&yGs)_H zxh`onw0q535q+C?WJ4p)Fwvi=7icZ0`)?hLPgiG@rGHzP#)8=GOkY(a%)E$A^mTkb z^*O`m`>f7tIXXXsHb~h7WOUxgz~*LKvAZ7`1w6f^Gkov()?NGl^jbO}Ur1;{HxmO8 z1i_8yzlgc#FnbLy9TQzqVdAx@+M+8bkQzg&a{D1xT(DP_P*mlol9?>*(4=^O?Aww~ zXOEsEpMT>LpwQtO^nb>=kh&6yn>DI7^8PVb{E*{Oopv2!k!wZ`fD0*hj#QY+${@3D zw7TKSoK;+9l#j#AW2jYE?AUA|D_Yg%Yl?5BYql$S+0XlD0LhbY&a-^0P95-;ngN3e z(yg$rW}dbUiZ5P&(SeC>_YK1ef$A99^@JbdFh^lYyB8J<|mAHGr1R3tl zJb58~3o!;k5WJU?uA-D8Y-VL8YXItTKQD2;B>Cj$E_2i!`4%+H&WXro7Z5V(-t*sTeIdx-_Hm6Z28COf$>RvPR zD}Qj)WEz#U%>Y+;BEMylrPQSkRE*AV>CF|iOKINJXsg3ROOX2)pQ>>Qayjarh|j!9 z-Mj~6W^D$5rgYiH&;Ym#W%ooL-_YcKAggj$Hd4`J#K#ezZ{|_S2w3N5{A1S5+_ne& tmD~@4AP9mW2!bF8f*=TjAP8pgAF>KN$Pn>*Ofdie002ovPDHLkV1h{M#EJj_ delta 911 zcmV;A191GU2c-v)B!6s4L_t(|ob8%hlItK0L_N2%6YqaX*~|TK6+@(^Y4h|{bUvmM zEQ1i@)tR4TA@BD)|9YM$w=@QMAv6%{c@+PAkqOgqhJ@oh&nJf!0t5Tp4i6vcNJ)ds4PaGJGVsoGRVqDw<h872Ay^#ZE}HUH3|_;hu~Si-`iFNn>~w0~9A!^oTPKwtakQ=2n-zK`mx zm7~*V(uUtjAS9#HK1Mb---_S;#3=CTl{=&NPH!FBx2MTtINztkD%PDHLkV1nT6!rlM? diff --git a/tests/integration/nano/snapshots/nanox/test_sign_set_deposit_limit/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_set_deposit_limit/00001.png index 8f49e983081b22373af453461e6794e82f6cbb31..e4a29f54dd64a54c824becece5b5bb47c07374e8 100644 GIT binary patch delta 462 zcmV;<0WtpR1Ly;gB!90-L_t(|obB0LmV+P+fMMIyow)xcv6nvd42MYqhO65C-_wYY zpyi^@W1Ap^kRI;)J|l~nv?o^xAvRAhAuU{SE#meyG*2Ul!-2*|PNRALZcCvHU%Jw~ zA2~NO^lA{*QCQ`&3XMf(=*hEx_L1MWXQ^d(# zpmX`s0c(lDw52m((E^tcw?t=y^HaK0&Vlm9J2dV)-4 zt{y|e9+sR%5AlbmQbU^bFt?JFH{q&=&P~{?DbD7)r0di=eUA zZt$H;(2ei|0000000000000000000000000002OxH^@V^<}}R$9RL6T07*qoM6N<$ Eg4}K5bN~PV delta 463 zcmV;=0WkjP1L*^hB!93;L_t(|obB0La>F1DK+zBRbOl}?qW^G&Hi{<8(y1u~Vp zdkhJ?TXGgV#h;N%9ckoYX(y@Qgqs=$Z^CX(b+*(cTc_3eJK?-X(&Hk1o6-N*ewF_r zI5)4eoAtQz3V#4_Yw6dK2m|{QiRr#|cSk!@q-T+5j6vOr2Jg-|u&erG+(7mrz48EF zY5OQVmD_4=!+Q4I%1zW4?F4r7v8#J`4py4ft5vcDvj=0gZdnmyRzT$SwaLM@SDBar zBex*;!+m$CBMoo#8+_-R@ZztEM~qnk_Gak*@5xR~cSxj4ZG$OPiR|RSWpS;W@N9RP z&Ku#l*J*B@5!e(fgBq5gpf zq{SocAxe}KeivZ6_eqR%A6mHk8cNWQ%s=*fUYv4$>9 zAnC)0IPKRGI&nr~izrsbGk~u_)2M)aLzlhq8VRI?5tZ8TeH=@#WCWmE2(^O z_1X(>{VvR(MSroHt|q;r{hIMjqMG2j$YvYFYmm0|%TiZS#Qz58r0cEQo3iMbJ)S7x z=_D;ji@p7p&8lPs^m-Ov3lVX{#THLp02?j1Zf;vqtS69r9T%RBo}}7Fn77z^^GvX* z1L~m?ED@_|;l;=DgMnYmO;b-hK)l~;H9QizH|w5Fh<{>R{n)CPIFZY7hKOhYxpJ2( zHg}-!Wc=^Aeboi;fVntN>aRffJ>cKMU(z4d^)~_tfP1J%5I<*|PF^vs_vHG4y=f;3 z{9v(LG{eM!+E|{rX)+(YghdmbX2lda&Cpsr_88Tg81V(@>sF(zn9eRUQspFhxr;M1&07*qoM6N<$f*0&iQUCw| delta 686 zcmV;f0#W_d1=R(RGk=|ocf$Ucdh2y94u&qpUAAPFJBlKa|L;y8}{Ii)nw zl9`lVcv$Z&)z2W#Zs(nr3cYM}w(4w2Ddi8_$86G)g=j4gb6QALzsoNxc)xU$=1~8@ z6Vl?5b`v>DGQSHj-TNfQxsR$|JN;`6T;Y@>7VhMS>1&{Qe}9zxJH$3YoP0Tg#PFE~ zcb3zA;eijpL;U6G^bF!9sa?X`b<38wg(hwKB|QCr0RR91Kr6?G{FVG#9q7q`M6sGK zO&ZCEd3x+LUd!gh>4+_&SPRb>KL4gs0r}NNTZm|Is~o=#O>Q~a%K_pr@zIr3zPJV2 z18?~(%s-1_HGf@xrK0hgSN zfU%QtCI@$@3*G?}ah}xQg77}ze2)(1P}mySVs^)ZJW+tF}e3-{H;6GP89gr zVz+2ki37EjX7GSJfjpE{V^&0V)SY{dGsh+gP zNo4`j^?yGP%4|a0Wgd5Mv|1JSd(~iPe}4x%Su=)Lt=*nHf<^^Vs#T{sVeQ8``T_(dycF8a+_axO#EK2WcEDrn6e#qsOnd=6RWLCk#3O!Gt;(*8g(F(K)z&Jp z%`#;n7qlb44*-ub<_?&3OMi9j0{{R30000004D$d000000000000000000c<2MToI U*XDyXHvj+t07*qoM6N<$f+Foo2LJ#7 diff --git a/tests/integration/nano/snapshots/nanox/test_sign_set_deposit_limit/00005.png b/tests/integration/nano/snapshots/nanox/test_sign_set_deposit_limit/00005.png index 6bf73fb0597d521a5cd7ce8407e4586e5150bbae..305f0b52f968339f8d50b6c2f0b6f1b9ab76a500 100644 GIT binary patch delta 390 zcmZ3*yoz~(ZhhdUW(6LHz*{f*zCQ%hD&S1eJH%H68Jkw$EHHm^!`s^qEuk^7pp% z9-f?C%6|4YSDc3avb_9ywImbahq=eDoBw_meYCk^Pi?D8^Us&{&v=9GFRH27CDC4c zY2tPRWBnIQU(W7p`Lt?wedH(=CilEAa^L6l&22MZ{GYbqo#~I> z?VIMuZH@WXtm*I~oO$n_6N~iU{<4r?@~uxKX28+oik6KULe(zJf9)vP3d3xHz%=X%-=KF=l_Nz#yxkAew(y*O64Z`Y1#)uc2@V5*sB-6D!9D%+v6Q` ftr@U`hQ@ykHX(k;t3S*)0;%wH^>bP0l+XkKT@<_* delta 390 zcmZ3*yoz~(ZhiEoW(A&x#9J@@?);y0=X7PltdpE<3mcj~*ZYeYUMg7mRJ85p_t;an zw@tmDBqbkqtxWk|oZPC93w=u-MK#T^$n-rKt6Wu7%hEYHtnQMVa$D>?U1RP2c6&0V zcdLJY#Ww4^=$?Q$pV<5R)RIhuALjnLZvOjO^ie0B{CLHa33a>bE9YM6*LXiquII2> z=K1IuGsV9!d^x+X<f`SB#hbe-#blLKk6hEHm&%$&i$X8BMS*I zivwqVvFjB-*tqOQlhOJQ&w_r{UypiK+FN(=(%DO1-?XcJLaJYGKlbyN_RYgPN?%Ui zI_cZwJySnRRc%&fUr_tW&*<;rF6IYM^{!2qS$byj-wk&de5USxeqzq^CDZx%?`GNe gS?^?Kzz!r{@SAV&F=&zQ*a1@D>FVdQ&MBb@0Ff@fssI20 diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 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 delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00015.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00015.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00016.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/clear_n_too_long_warning/00016.png index cc59349033daaad4bdeae570a7124de74d0a7374..2adfb4d839946649d3e8fc8d5a72d02a81109c90 100644 GIT binary patch delta 381 zcmbQvJcD_HN`1Vii(^Q|oVPau`I;4Y8Xo4|^xg4);*QgD9ue0UP3G7%>wk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/summary/00003.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/accept/summary/00003.png index 26526a94f076c5956e4cd1e53d72824f4a878abb..fc5a8b0185583e2a11b897ce2dec5d8e204b145c 100644 GIT binary patch delta 823 zcmV-71IYZ!2F?bMB!3l2L_t(|ob8%Pl7lb|MV(aNg!>RpL>| zqdt@}E9<(h>neXIs?W?*Cf&mBJEA)FPZnC1AtR?{uW@0Ue$(kHaKEL?ShXJjzoY%1fop9nkDD)Dywer2xuTa{^j8?0O&2gqvi zX)a}h)(OtmN`H^U#^z~t%9nAWT$2YBHI&w*D=xTWsEaqE()dG2dsh>CgwLvBYB9$% z!LcuDBpj@16;Rh2Gj#uCV3pOZkK~D{GBX+ zmJ-RbF07FrEme+5AdVSoN{`}}z?34SLGqi4lLObPEVw1+7E{`)B0OW+sRjojDT2i> zrNi_lEPt6Ovhy@GUJUQhVpTOTxG}Q9OKL&=3{(Pgy{Gj{r;%!TnbA`ReycI6_mjDJ z0Ayfk32;H;KK(>ko8aOBXd>dK8GPErZN7?->M{G2=%(Cb0PZrK6SPIbV{zUhv2>QA zt}uoo&J6V|iM)gX0000000000000000001A#6MG9KnnlO1>67t002ovPDHLkV1m*` Bf&c&j delta 819 zcmV-31I+x+2FeDIB!3Y}L_t(|ob8%Pmct+nMCrWT#P>gv@6rpuxQQeRA&3o~`m2Od z7Ng2eX;$`q-}hbr4pg6+hfZ3;?iDc|`_zTDZM(#tAo*jQrkaU)`V0@XZJT!Q+X|S_ z`+6tYUL-ZA&h$Lx0wet#W00r(t$+!=pI#o!jRrg9ku~8{@$)F_`I- zKZTg+Z(Gn3V^Bhm%7o}`MjpcEK`{@9d3u(V4&kYo*|CHWLdf^=BmV2y(yXRKd~n2< z^nlo{z^v7D3&Q=1XihsMudWMMolr5-8FMz30gVU34zr5C9o(R+ZHF>}o0P%SFqVsGT=Hm6JGno+AwY>8oqpfdmi_FU0|K3elCr+@Xi78|>sin`hivtNJ9J;wA> zHDX;IdpJ$5FkZ@&D{;jEsdnQYX%Qjhi;!Ym3TX*IX{u%c*$Z@sFT`3t5zXpaqeM4s ziK{~Eo(|s7da_D)R!@&5VNR$Zzzj2`M|5iiNfFv0{n^CDv1?TpJQ8DzDQs0zp7EiuGF9snIx zmee;VexDAHX=B_x08Mz@G=oo@Smvt;Egg$bi56vz0a#@^2WXCj2LfJoiFA=-u7;$} x3@r03@w|Z{gb+dqA%qY@2qAh@Aic diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 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 delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00015.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00015.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00016.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/clear_n_too_long_warning/00016.png index cc59349033daaad4bdeae570a7124de74d0a7374..2adfb4d839946649d3e8fc8d5a72d02a81109c90 100644 GIT binary patch delta 381 zcmbQvJcD_HN`1Vii(^Q|oVPau`I;4Y8Xo4|^xg4);*QgD9ue0UP3G7%>wk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/summary/00003.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/summary/00003.png index 26526a94f076c5956e4cd1e53d72824f4a878abb..fc5a8b0185583e2a11b897ce2dec5d8e204b145c 100644 GIT binary patch delta 823 zcmV-71IYZ!2F?bMB!3l2L_t(|ob8%Pl7lb|MV(aNg!>RpL>| zqdt@}E9<(h>neXIs?W?*Cf&mBJEA)FPZnC1AtR?{uW@0Ue$(kHaKEL?ShXJjzoY%1fop9nkDD)Dywer2xuTa{^j8?0O&2gqvi zX)a}h)(OtmN`H^U#^z~t%9nAWT$2YBHI&w*D=xTWsEaqE()dG2dsh>CgwLvBYB9$% z!LcuDBpj@16;Rh2Gj#uCV3pOZkK~D{GBX+ zmJ-RbF07FrEme+5AdVSoN{`}}z?34SLGqi4lLObPEVw1+7E{`)B0OW+sRjojDT2i> zrNi_lEPt6Ovhy@GUJUQhVpTOTxG}Q9OKL&=3{(Pgy{Gj{r;%!TnbA`ReycI6_mjDJ z0Ayfk32;H;KK(>ko8aOBXd>dK8GPErZN7?->M{G2=%(Cb0PZrK6SPIbV{zUhv2>QA zt}uoo&J6V|iM)gX0000000000000000001A#6MG9KnnlO1>67t002ovPDHLkV1m*` Bf&c&j delta 819 zcmV-31I+x+2FeDIB!3Y}L_t(|ob8%Pmct+nMCrWT#P>gv@6rpuxQQeRA&3o~`m2Od z7Ng2eX;$`q-}hbr4pg6+hfZ3;?iDc|`_zTDZM(#tAo*jQrkaU)`V0@XZJT!Q+X|S_ z`+6tYUL-ZA&h$Lx0wet#W00r(t$+!=pI#o!jRrg9ku~8{@$)F_`I- zKZTg+Z(Gn3V^Bhm%7o}`MjpcEK`{@9d3u(V4&kYo*|CHWLdf^=BmV2y(yXRKd~n2< z^nlo{z^v7D3&Q=1XihsMudWMMolr5-8FMz30gVU34zr5C9o(R+ZHF>}o0P%SFqVsGT=Hm6JGno+AwY>8oqpfdmi_FU0|K3elCr+@Xi78|>sin`hivtNJ9J;wA> zHDX;IdpJ$5FkZ@&D{;jEsdnQYX%Qjhi;!Ym3TX*IX{u%c*$Z@sFT`3t5zXpaqeM4s ziK{~Eo(|s7da_D)R!@&5VNR$Zzzj2`M|5iiNfFv0{n^CDv1?TpJQ8DzDQs0zp7EiuGF9snIx zmee;VexDAHX=B_x08Mz@G=oo@Smvt;Egg$bi56vz0a#@^2WXCj2LfJoiFA=-u7;$} x3@r03@w|Z{gb+dqA%qY@2qAh@Aic diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/summary/00005.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_summary/summary/00005.png index 137ca9e4946dcd461fab8ca146124917077d946d..3d36b194cfc82107a670d51fb067ff4ddac0c997 100644 GIT binary patch delta 341 zcmaFI^nq!DO1-(Ki(^Q|oVPb4`I-%QTm!ei^1JbW(w^yc5nLwBTppo+F4)Gq`UYmD z8yw_efB>y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 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 delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00015.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00015.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00016.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00016.png index cc59349033daaad4bdeae570a7124de74d0a7374..2adfb4d839946649d3e8fc8d5a72d02a81109c90 100644 GIT binary patch delta 381 zcmbQvJcD_HN`1Vii(^Q|oVPau`I;4Y8Xo4|^xg4);*QgD9ue0UP3G7%>wk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00017.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/basic/reject_at_too_large_warning/clear_n_too_long_warning/00017.png index 137ca9e4946dcd461fab8ca146124917077d946d..3d36b194cfc82107a670d51fb067ff4ddac0c997 100644 GIT binary patch delta 341 zcmaFI^nq!DO1-(Ki(^Q|oVPb4`I-%QTm!ei^1JbW(w^yc5nLwBTppo+F4)Gq`UYmD z8yw_efB>y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 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 delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00015.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00015.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00016.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/only_transactions/clear_n_too_long_warning/00016.png index cc59349033daaad4bdeae570a7124de74d0a7374..2adfb4d839946649d3e8fc8d5a72d02a81109c90 100644 GIT binary patch delta 381 zcmbQvJcD_HN`1Vii(^Q|oVPau`I;4Y8Xo4|^xg4);*QgD9ue0UP3G7%>wk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/blindsigning/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/blindsigning/00001.png index 886c86005fca51cbeccaaedaa8754ab5429306f3..18c73133d3f5dad42c32256ad7e607684e87f516 100644 GIT binary patch delta 836 zcmV-K1H1g%2HOUZB!41FL_t(|ob8%fcIzMvhSQwxg#9mxz1#<%QbiMDwr~IM$sr&K ziBa~~>jXLH@|;q-ex{U0q+QKBL=9>m@?GSd%IU4JQ;8ka(c(Zz27ws~J2 zj8nui`|}U7vQ@qT7K69-$7&<42TSAl##kgcBmGDW*g*eSf_BEhM>_5)!hPg2!#81d zqnK_4Rp-~~w&d!F98VGLi#T$?X@j}!;7YxXcfAT&$=7KEIP$!B$`Sy;elnqysMXY; zvUyd}468jYs()Umf?6ly6ZJ3uXVl_WHC0V}&Ni18)!mLOWhf&_v5EnbnER9M4Hgur-04 z7k0PrTm71bR8uw~v;;K~*WI0Z3Pw%}?+Zh`M;+anAAf)i!~=XiY|CeKXbkNE>aGya zYB^`5YI4}GNvAw5VPn>Rrxxi*)hCw5CP&?l>gjgd&|U|Uaff->9`NiL4FE96pUA(| zCaQ#4+MWGYt?V~vg^?an$yN!osw&g0Z`HFL%FL=BR~($SRzJJdtqVZBEvw^g!kOgu z*umMq#DB7eY};ffXoqBcHrkqx^4&e2V$0f9IpU?1k{19qr=coi<+7ol>70V)J1Y`S znokzy&%_^_k(T!(X3sf>Zb+^LZ8)Mg?rurjMXanXbdjN^^cmr(lehUJl&_4`KFT@q zvc1G;n*nksXlg!-gQ_j)JZSRLH?2y=HK}(tw14C@iswS`2anomLMmy_A-)XL4l460000000000000000002+H~0sOU!E4--5du1 O0000 zjIzI8I|w19=j*!S&+EE+q{Ze9qB^yA^397v2ve=$9p2UX#fXlj0hsN55k7=-;uJ{} z<=G!WvzSxBnEHokJ(1V2Tf!D#+W34k-jAcWT4-cpp`MeaK}AGIEF7XbQ2ag zis44&>TsQAOJYa(c(Q1p#Fhh29mHiDSL$WF%T=72eC;-X!q1DlEO8uXJs~5Nh}FcO zym?X42&<76QGYL}Al9+?MEnc?v|3!Nrl@Jn*(Pcc-3?sHTY=_wjaow?8wwORY>D~d z7aWAeYT}t)+@<^P4O|hhaG*vx9Zf{rGh+5?Mp2^bCDW8{+F^k`+SvpemiKem2QO8j{-7Xv2^YCQcW*)W&JbOkvj-wOq@V~?+ zqJ&Y}!Impl#?48grAN7Bt%O*GWg_ibZ#9P!vx+Ac0BEcAvsvA|09e}cI)zO*Wa&L} zcE0`$e0F9YYu7*Nir7(Q9-!r}`q6)|Pyc$xUf60;}T}`Yognjl@3kIq}lH zlv6ze_)btOVF(*lYvl95?xkA*#P!h#*wE}dEq~Fjt-{y+t2dA|)Z`a!wwSGTp3C-#wEg-P+R{sN)JZ_VC-j4S~Y&JwyU1U!@i1$iMfVq+m{-RhXtSw z?L3vn2}#x?mLQN;dnuVRqd=g-aU92S9LI4S$8j9TaU92S9LM<|`~ZNwo)$R@GCKeO N002ovPDHLkV1i0an~VSe diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 zcmV;%0y+KI1>OaaB!8tzL_t(|ob8%PlEWYjMV(Y`;`<-Tcj<+zX`=Cii6LG8tr8m~ zA&EgGk8LH6<0zl^eV=H_OlmLOtap~`doV}$(v6l%y<&8+>U^^Ad-<^ank}9bA>Nal zIV}{bpY@j&ykEP?b12^NL_9&HeTb4Jg}(qy_rAz+?W5Fdr+EodvqDyWyw|0GhcPQC=v!1M$&*L)j%Mznih17qT4 zBsQ{Xl0EY#N;eYNGwUyAL0NM>A!7?m&}+z`@JpR!37X3&|B9aq0$r(d@st8DH``_a zuKsLUCxSUA1{@M9u1~u-b6X`N^8lIw=1O-xJ&V6a34gqTHp4Wm)!G#<`3D0Y0WV4$ zJ2eBA-U9^bI{uA(QvlNKF>RyU6GE2dcxUVSr-CQYe5)JlzM%G?-i|BVxCZtHg7j)8 zE!jsMIks%%LBP^uOd4$6GVL3O(6q;6%qCoG)#vC9*gxx&Xeq zOs@-c8-E(~7jJ7PnvpQ;9UrGYN3cXNE5)>Gy{v@wDt09t+VjyGCR8q!|( z)dB7+HN8=QH$t(@@&p;?usWdcKbK-1ZyNcqy>1*j2B}*n7h)Yhq3FK%MnuCeSsx<#1M#jPb5JCtcgb+dq sA%qY@2qAWhai~XwS9Qg_f+O_rlG3SE;@Sada=-K04*-tmOIiAehpElV1I0a)&RlH=S*uGdcg8h;&kSmlU?FY?9m7--&~ zCI1s*QxGS=EkR=Xtb#i$=)U2OH^5W;5ovS};wGtW!sUI+_Pd29ZTTj=e1QP~006*T zNOhAv$Q~U;0{^NgWtygxS6-r`l$~xf*Qzvzpo?{rJtT23#zRE@^GrilDB7bjXA|zV@}qPK?4Nzv(t9?0=CR#9cE`v2YI2MkQ|sac zAZR*wdVg<1U0iQbeC?K0;y}1D1SbGoee;es+Mu*Zd)}7^c&ysg zMiIOevSqe6kzr1&1IGSyN!Iby$fxaf^WZUX-Lkk4%l?ES_Psw6hN;;Z8QlY19i*jr z7dX5blGT}K*}-mJUA@8*sBRO_ug!DfzbV-BE>QJHy&r1TQ}p-p0s)02LgTe~DWM4fpywGN delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00014.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00014.png index ace2004671826013010d1896143f441a40ceb2ed..907033ad79701b4cd53b67fd742f1a5f4fe7cf9d 100644 GIT binary patch delta 488 zcmVF1DK+!alov{BUc`yC&3?)2d0Rq|6d%hYQ zgaa|u!mk$q00000005xF@hu*#mfU-39qxQ>D%lqp`#zg{!MD?YY{MPL5kg2m#=qn7 zSSFqos-$JgXs!7AGO4qPR-9I-dlBw{a$aiv^s2S01?2deT7Q}#^1(?TlPJToJLau<-lLkQW#qO8&zR#VH1=K!2~$G|tNInODmx(KJITE~0CX0@`lz1mz^1^@tH zk3ESz_kUIWp98jW@9V0{b3j*mK%s5*A_JwA~6 zl2c$~sWfHv4SzG=KcbSE&7{W&uAdp?ty^0M; zwlF9>c)b7s0000000000po8O^c(Yn_@1u2a=Vw!qy};P}Y>t9&(0^>r9mf$uNH62> zct6&Or9zXmPHC-WUtcHXbkVZYGIcM65m3%ctxvDos#-y|uYYN!F(TibDud4q#U>okSu2NYCbjbr6TIyIS&$YY@v1 z`I05DF)2;ie1F4?_s)u0^_`^KN`{mI$=?)2^i$S_BHML%X9bJALL~dpzmjm)IVNPP zR!ig(`hMWc5WEN(J{GN0;(YQjoDf(50IQ>Zz5*|JsKC|zp&)7$C>{s5)gN2x64%PwiKo)IS0ssI2 g000000Kh_i0ei>`c6nj68UO$Q07*qoM6N<$g8CWdfB*mh diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00015.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00015.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00016.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00016.png index 3d12ba7610b993ca5747360f2eab0e6908870db0..9fdc2ea61730ebc0566813ae57d4921e60518f83 100644 GIT binary patch delta 500 zcmVF1DKvCN1PT2pF*h@c{coZRC25juP=PU68 zWD&s7ItKs%00000000000G9Y!QD_K3e)ZlD7By1B=6=@|Jtb@2`xj^5Irn#2O|n}Y zISnCr?~k8(dX4M>@?v#?q#DdDQ&lRz%3E@Aj^sgE*aH;*;eWo9VrDS+kTDTv;p&4d zJgrw%n#R)-=M)QjK;a>kT-IgTV&SSAGq9RJI^B5 z4MC00&AR4Y=gJu`q{~HKkx_cgLf-nsL>Og7cD!39*3^=90Ox9=!@$CvB)^k6kI^LA$~ zFB%Is&#L3OP|b=?yt6f>x4j>j>&EnR*Mh#felDzU3x%7f;=x>a<%M*)y7udhh1mY{ z*h86#9bJfZt#RIG{P9N{Ag$PpX~T9phT~&L`ZyjxVQ-Hsj1dr$;|X{)r+zbxo+d&jD#7WcTk{1{W??qfj-5w9I{mR`gl&UlCPH qH*g-eI|Kj#0000000000c&UHfIAo92?1xDJ0000xfW~e(67WW+&dPvrC&M(e>O6g}>NwQlU zIo-A`=X`w4%X4H8kSD7XB-LPMOjW3SD=+ctc_$A_U=L98pMUh36f=X~P40;>gR2)Z zcv-G0w5(4{J%aP{C~vk4_tN6;U;RFd^(T<<94Z63%Y-obj!%xjaiyl9DR zex#0jl{8Da_Q2MZ-mZRNE*;C)?awNw>*vb)){AT&-w%2ftFNLf$19qig3=S_v4=7f zJ76K!waj^wAvZpt0m|adnl05%$5?!9M<2)c7v7v9KWZ9sBOzN6=BC@}PTXXbEmE(N z=1S_O*k8oVz5YeoK>j{ael)F;tIq*tF60Q%z6`FMsYapG3Y0Nd7*ugl$iE^^#ckj` nZfght00000000000PtSF`}Se@6vJi+00000NkvXXu0mjf!1eH% diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00018.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/accept/clear_n_too_large_warning/00018.png index cc59349033daaad4bdeae570a7124de74d0a7374..2adfb4d839946649d3e8fc8d5a72d02a81109c90 100644 GIT binary patch delta 381 zcmbQvJcD_HN`1Vii(^Q|oVPau`I;4Y8Xo4|^xg4);*QgD9ue0UP3G7%>wk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00001.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00001.png index 886c86005fca51cbeccaaedaa8754ab5429306f3..18c73133d3f5dad42c32256ad7e607684e87f516 100644 GIT binary patch delta 836 zcmV-K1H1g%2HOUZB!41FL_t(|ob8%fcIzMvhSQwxg#9mxz1#<%QbiMDwr~IM$sr&K ziBa~~>jXLH@|;q-ex{U0q+QKBL=9>m@?GSd%IU4JQ;8ka(c(Zz27ws~J2 zj8nui`|}U7vQ@qT7K69-$7&<42TSAl##kgcBmGDW*g*eSf_BEhM>_5)!hPg2!#81d zqnK_4Rp-~~w&d!F98VGLi#T$?X@j}!;7YxXcfAT&$=7KEIP$!B$`Sy;elnqysMXY; zvUyd}468jYs()Umf?6ly6ZJ3uXVl_WHC0V}&Ni18)!mLOWhf&_v5EnbnER9M4Hgur-04 z7k0PrTm71bR8uw~v;;K~*WI0Z3Pw%}?+Zh`M;+anAAf)i!~=XiY|CeKXbkNE>aGya zYB^`5YI4}GNvAw5VPn>Rrxxi*)hCw5CP&?l>gjgd&|U|Uaff->9`NiL4FE96pUA(| zCaQ#4+MWGYt?V~vg^?an$yN!osw&g0Z`HFL%FL=BR~($SRzJJdtqVZBEvw^g!kOgu z*umMq#DB7eY};ffXoqBcHrkqx^4&e2V$0f9IpU?1k{19qr=coi<+7ol>70V)J1Y`S znokzy&%_^_k(T!(X3sf>Zb+^LZ8)Mg?rurjMXanXbdjN^^cmr(lehUJl&_4`KFT@q zvc1G;n*nksXlg!-gQ_j)JZSRLH?2y=HK}(tw14C@iswS`2anomLMmy_A-)XL4l460000000000000000002+H~0sOU!E4--5du1 O0000 zjIzI8I|w19=j*!S&+EE+q{Ze9qB^yA^397v2ve=$9p2UX#fXlj0hsN55k7=-;uJ{} z<=G!WvzSxBnEHokJ(1V2Tf!D#+W34k-jAcWT4-cpp`MeaK}AGIEF7XbQ2ag zis44&>TsQAOJYa(c(Q1p#Fhh29mHiDSL$WF%T=72eC;-X!q1DlEO8uXJs~5Nh}FcO zym?X42&<76QGYL}Al9+?MEnc?v|3!Nrl@Jn*(Pcc-3?sHTY=_wjaow?8wwORY>D~d z7aWAeYT}t)+@<^P4O|hhaG*vx9Zf{rGh+5?Mp2^bCDW8{+F^k`+SvpemiKem2QO8j{-7Xv2^YCQcW*)W&JbOkvj-wOq@V~?+ zqJ&Y}!Impl#?48grAN7Bt%O*GWg_ibZ#9P!vx+Ac0BEcAvsvA|09e}cI)zO*Wa&L} zcE0`$e0F9YYu7*Nir7(Q9-!r}`q6)|Pyc$xUf60;}T}`Yognjl@3kIq}lH zlv6ze_)btOVF(*lYvl95?xkA*#P!h#*wE}dEq~Fjt-{y+t2dA|)Z`a!wwSGTp3C-#wEg-P+R{sN)JZ_VC-j4S~Y&JwyU1U!@i1$iMfVq+m{-RhXtSw z?L3vn2}#x?mLQN;dnuVRqd=g-aU92S9LI4S$8j9TaU92S9LM<|`~ZNwo)$R@GCKeO N002ovPDHLkV1i0an~VSe diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00003.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/blindsigning/00003.png index 137ca9e4946dcd461fab8ca146124917077d946d..3d36b194cfc82107a670d51fb067ff4ddac0c997 100644 GIT binary patch delta 341 zcmaFI^nq!DO1-(Ki(^Q|oVPb4`I-%QTm!ei^1JbW(w^yc5nLwBTppo+F4)Gq`UYmD z8yw_efB>y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 zcmV;%0y+KI1>OaaB!8tzL_t(|ob8%PlEWYjMV(Y`;`<-Tcj<+zX`=Cii6LG8tr8m~ zA&EgGk8LH6<0zl^eV=H_OlmLOtap~`doV}$(v6l%y<&8+>U^^Ad-<^ank}9bA>Nal zIV}{bpY@j&ykEP?b12^NL_9&HeTb4Jg}(qy_rAz+?W5Fdr+EodvqDyWyw|0GhcPQC=v!1M$&*L)j%Mznih17qT4 zBsQ{Xl0EY#N;eYNGwUyAL0NM>A!7?m&}+z`@JpR!37X3&|B9aq0$r(d@st8DH``_a zuKsLUCxSUA1{@M9u1~u-b6X`N^8lIw=1O-xJ&V6a34gqTHp4Wm)!G#<`3D0Y0WV4$ zJ2eBA-U9^bI{uA(QvlNKF>RyU6GE2dcxUVSr-CQYe5)JlzM%G?-i|BVxCZtHg7j)8 zE!jsMIks%%LBP^uOd4$6GVL3O(6q;6%qCoG)#vC9*gxx&Xeq zOs@-c8-E(~7jJ7PnvpQ;9UrGYN3cXNE5)>Gy{v@wDt09t+VjyGCR8q!|( z)dB7+HN8=QH$t(@@&p;?usWdcKbK-1ZyNcqy>1*j2B}*n7h)Yhq3FK%MnuCeSsx<#1M#jPb5JCtcgb+dq sA%qY@2qAWhai~XwS9Qg_f+O_rlG3SE;@Sada=-K04*-tmOIiAehpElV1I0a)&RlH=S*uGdcg8h;&kSmlU?FY?9m7--&~ zCI1s*QxGS=EkR=Xtb#i$=)U2OH^5W;5ovS};wGtW!sUI+_Pd29ZTTj=e1QP~006*T zNOhAv$Q~U;0{^NgWtygxS6-r`l$~xf*Qzvzpo?{rJtT23#zRE@^GrilDB7bjXA|zV@}qPK?4Nzv(t9?0=CR#9cE`v2YI2MkQ|sac zAZR*wdVg<1U0iQbeC?K0;y}1D1SbGoee;es+Mu*Zd)}7^c&ysg zMiIOevSqe6kzr1&1IGSyN!Iby$fxaf^WZUX-Lkk4%l?ES_Psw6hN;;Z8QlY19i*jr z7dX5blGT}K*}-mJUA@8*sBRO_ug!DfzbV-BE>QJHy&r1TQ}p-p0s)02LgTe~DWM4fpywGN delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00014.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00014.png index ace2004671826013010d1896143f441a40ceb2ed..907033ad79701b4cd53b67fd742f1a5f4fe7cf9d 100644 GIT binary patch delta 488 zcmVF1DK+!alov{BUc`yC&3?)2d0Rq|6d%hYQ zgaa|u!mk$q00000005xF@hu*#mfU-39qxQ>D%lqp`#zg{!MD?YY{MPL5kg2m#=qn7 zSSFqos-$JgXs!7AGO4qPR-9I-dlBw{a$aiv^s2S01?2deT7Q}#^1(?TlPJToJLau<-lLkQW#qO8&zR#VH1=K!2~$G|tNInODmx(KJITE~0CX0@`lz1mz^1^@tH zk3ESz_kUIWp98jW@9V0{b3j*mK%s5*A_JwA~6 zl2c$~sWfHv4SzG=KcbSE&7{W&uAdp?ty^0M; zwlF9>c)b7s0000000000po8O^c(Yn_@1u2a=Vw!qy};P}Y>t9&(0^>r9mf$uNH62> zct6&Or9zXmPHC-WUtcHXbkVZYGIcM65m3%ctxvDos#-y|uYYN!F(TibDud4q#U>okSu2NYCbjbr6TIyIS&$YY@v1 z`I05DF)2;ie1F4?_s)u0^_`^KN`{mI$=?)2^i$S_BHML%X9bJALL~dpzmjm)IVNPP zR!ig(`hMWc5WEN(J{GN0;(YQjoDf(50IQ>Zz5*|JsKC|zp&)7$C>{s5)gN2x64%PwiKo)IS0ssI2 g000000Kh_i0ei>`c6nj68UO$Q07*qoM6N<$g8CWdfB*mh diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00015.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00015.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00016.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00016.png index 3d12ba7610b993ca5747360f2eab0e6908870db0..9fdc2ea61730ebc0566813ae57d4921e60518f83 100644 GIT binary patch delta 500 zcmVF1DKvCN1PT2pF*h@c{coZRC25juP=PU68 zWD&s7ItKs%00000000000G9Y!QD_K3e)ZlD7By1B=6=@|Jtb@2`xj^5Irn#2O|n}Y zISnCr?~k8(dX4M>@?v#?q#DdDQ&lRz%3E@Aj^sgE*aH;*;eWo9VrDS+kTDTv;p&4d zJgrw%n#R)-=M)QjK;a>kT-IgTV&SSAGq9RJI^B5 z4MC00&AR4Y=gJu`q{~HKkx_cgLf-nsL>Og7cD!39*3^=90Ox9=!@$CvB)^k6kI^LA$~ zFB%Is&#L3OP|b=?yt6f>x4j>j>&EnR*Mh#felDzU3x%7f;=x>a<%M*)y7udhh1mY{ z*h86#9bJfZt#RIG{P9N{Ag$PpX~T9phT~&L`ZyjxVQ-Hsj1dr$;|X{)r+zbxo+d&jD#7WcTk{1{W??qfj-5w9I{mR`gl&UlCPH qH*g-eI|Kj#0000000000c&UHfIAo92?1xDJ0000xfW~e(67WW+&dPvrC&M(e>O6g}>NwQlU zIo-A`=X`w4%X4H8kSD7XB-LPMOjW3SD=+ctc_$A_U=L98pMUh36f=X~P40;>gR2)Z zcv-G0w5(4{J%aP{C~vk4_tN6;U;RFd^(T<<94Z63%Y-obj!%xjaiyl9DR zex#0jl{8Da_Q2MZ-mZRNE*;C)?awNw>*vb)){AT&-w%2ftFNLf$19qig3=S_v4=7f zJ76K!waj^wAvZpt0m|adnl05%$5?!9M<2)c7v7v9KWZ9sBOzN6=BC@}PTXXbEmE(N z=1S_O*k8oVz5YeoK>j{ael)F;tIq*tF60Q%z6`FMsYapG3Y0Nd7*ugl$iE^^#ckj` nZfght00000000000PtSF`}Se@6vJi+00000NkvXXu0mjf!1eH% diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00018.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_blindsigning/clear_n_too_large_warning/00018.png index cc59349033daaad4bdeae570a7124de74d0a7374..2adfb4d839946649d3e8fc8d5a72d02a81109c90 100644 GIT binary patch delta 381 zcmbQvJcD_HN`1Vii(^Q|oVPau`I;4Y8Xo4|^xg4);*QgD9ue0UP3G7%>wk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 zcmV;%0y+KI1>OaaB!8tzL_t(|ob8%PlEWYjMV(Y`;`<-Tcj<+zX`=Cii6LG8tr8m~ zA&EgGk8LH6<0zl^eV=H_OlmLOtap~`doV}$(v6l%y<&8+>U^^Ad-<^ank}9bA>Nal zIV}{bpY@j&ykEP?b12^NL_9&HeTb4Jg}(qy_rAz+?W5Fdr+EodvqDyWyw|0GhcPQC=v!1M$&*L)j%Mznih17qT4 zBsQ{Xl0EY#N;eYNGwUyAL0NM>A!7?m&}+z`@JpR!37X3&|B9aq0$r(d@st8DH``_a zuKsLUCxSUA1{@M9u1~u-b6X`N^8lIw=1O-xJ&V6a34gqTHp4Wm)!G#<`3D0Y0WV4$ zJ2eBA-U9^bI{uA(QvlNKF>RyU6GE2dcxUVSr-CQYe5)JlzM%G?-i|BVxCZtHg7j)8 zE!jsMIks%%LBP^uOd4$6GVL3O(6q;6%qCoG)#vC9*gxx&Xeq zOs@-c8-E(~7jJ7PnvpQ;9UrGYN3cXNE5)>Gy{v@wDt09t+VjyGCR8q!|( z)dB7+HN8=QH$t(@@&p;?usWdcKbK-1ZyNcqy>1*j2B}*n7h)Yhq3FK%MnuCeSsx<#1M#jPb5JCtcgb+dq sA%qY@2qAWhai~XwS9Qg_f+O_rlG3SE;@Sada=-K04*-tmOIiAehpElV1I0a)&RlH=S*uGdcg8h;&kSmlU?FY?9m7--&~ zCI1s*QxGS=EkR=Xtb#i$=)U2OH^5W;5ovS};wGtW!sUI+_Pd29ZTTj=e1QP~006*T zNOhAv$Q~U;0{^NgWtygxS6-r`l$~xf*Qzvzpo?{rJtT23#zRE@^GrilDB7bjXA|zV@}qPK?4Nzv(t9?0=CR#9cE`v2YI2MkQ|sac zAZR*wdVg<1U0iQbeC?K0;y}1D1SbGoee;es+Mu*Zd)}7^c&ysg zMiIOevSqe6kzr1&1IGSyN!Iby$fxaf^WZUX-Lkk4%l?ES_Psw6hN;;Z8QlY19i*jr z7dX5blGT}K*}-mJUA@8*sBRO_ug!DfzbV-BE>QJHy&r1TQ}p-p0s)02LgTe~DWM4fpywGN delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00014.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00014.png index ace2004671826013010d1896143f441a40ceb2ed..907033ad79701b4cd53b67fd742f1a5f4fe7cf9d 100644 GIT binary patch delta 488 zcmVF1DK+!alov{BUc`yC&3?)2d0Rq|6d%hYQ zgaa|u!mk$q00000005xF@hu*#mfU-39qxQ>D%lqp`#zg{!MD?YY{MPL5kg2m#=qn7 zSSFqos-$JgXs!7AGO4qPR-9I-dlBw{a$aiv^s2S01?2deT7Q}#^1(?TlPJToJLau<-lLkQW#qO8&zR#VH1=K!2~$G|tNInODmx(KJITE~0CX0@`lz1mz^1^@tH zk3ESz_kUIWp98jW@9V0{b3j*mK%s5*A_JwA~6 zl2c$~sWfHv4SzG=KcbSE&7{W&uAdp?ty^0M; zwlF9>c)b7s0000000000po8O^c(Yn_@1u2a=Vw!qy};P}Y>t9&(0^>r9mf$uNH62> zct6&Or9zXmPHC-WUtcHXbkVZYGIcM65m3%ctxvDos#-y|uYYN!F(TibDud4q#U>okSu2NYCbjbr6TIyIS&$YY@v1 z`I05DF)2;ie1F4?_s)u0^_`^KN`{mI$=?)2^i$S_BHML%X9bJALL~dpzmjm)IVNPP zR!ig(`hMWc5WEN(J{GN0;(YQjoDf(50IQ>Zz5*|JsKC|zp&)7$C>{s5)gN2x64%PwiKo)IS0ssI2 g000000Kh_i0ei>`c6nj68UO$Q07*qoM6N<$g8CWdfB*mh diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00015.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00015.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00016.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00016.png index 3d12ba7610b993ca5747360f2eab0e6908870db0..9fdc2ea61730ebc0566813ae57d4921e60518f83 100644 GIT binary patch delta 500 zcmVF1DKvCN1PT2pF*h@c{coZRC25juP=PU68 zWD&s7ItKs%00000000000G9Y!QD_K3e)ZlD7By1B=6=@|Jtb@2`xj^5Irn#2O|n}Y zISnCr?~k8(dX4M>@?v#?q#DdDQ&lRz%3E@Aj^sgE*aH;*;eWo9VrDS+kTDTv;p&4d zJgrw%n#R)-=M)QjK;a>kT-IgTV&SSAGq9RJI^B5 z4MC00&AR4Y=gJu`q{~HKkx_cgLf-nsL>Og7cD!39*3^=90Ox9=!@$CvB)^k6kI^LA$~ zFB%Is&#L3OP|b=?yt6f>x4j>j>&EnR*Mh#felDzU3x%7f;=x>a<%M*)y7udhh1mY{ z*h86#9bJfZt#RIG{P9N{Ag$PpX~T9phT~&L`ZyjxVQ-Hsj1dr$;|X{)r+zbxo+d&jD#7WcTk{1{W??qfj-5w9I{mR`gl&UlCPH qH*g-eI|Kj#0000000000c&UHfIAo92?1xDJ0000xfW~e(67WW+&dPvrC&M(e>O6g}>NwQlU zIo-A`=X`w4%X4H8kSD7XB-LPMOjW3SD=+ctc_$A_U=L98pMUh36f=X~P40;>gR2)Z zcv-G0w5(4{J%aP{C~vk4_tN6;U;RFd^(T<<94Z63%Y-obj!%xjaiyl9DR zex#0jl{8Da_Q2MZ-mZRNE*;C)?awNw>*vb)){AT&-w%2ftFNLf$19qig3=S_v4=7f zJ76K!waj^wAvZpt0m|adnl05%$5?!9M<2)c7v7v9KWZ9sBOzN6=BC@}PTXXbEmE(N z=1S_O*k8oVz5YeoK>j{ael)F;tIq*tF60Q%z6`FMsYapG3Y0Nd7*ugl$iE^^#ckj` nZfght00000000000PtSF`}Se@6vJi+00000NkvXXu0mjf!1eH% diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00018.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00018.png index cc59349033daaad4bdeae570a7124de74d0a7374..2adfb4d839946649d3e8fc8d5a72d02a81109c90 100644 GIT binary patch delta 381 zcmbQvJcD_HN`1Vii(^Q|oVPau`I;4Y8Xo4|^xg4);*QgD9ue0UP3G7%>wk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00019.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/too_large/reject_at_too_large_warning/clear_n_too_large_warning/00019.png index 137ca9e4946dcd461fab8ca146124917077d946d..3d36b194cfc82107a670d51fb067ff4ddac0c997 100644 GIT binary patch delta 341 zcmaFI^nq!DO1-(Ki(^Q|oVPb4`I-%QTm!ei^1JbW(w^yc5nLwBTppo+F4)Gq`UYmD z8yw_efB>y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 zcmV;%0y+KI1>OaaB!8tzL_t(|ob8%PlEWYjMV(Y`;`<-Tcj<+zX`=Cii6LG8tr8m~ zA&EgGk8LH6<0zl^eV=H_OlmLOtap~`doV}$(v6l%y<&8+>U^^Ad-<^ank}9bA>Nal zIV}{bpY@j&ykEP?b12^NL_9&HeTb4Jg}(qy_rAz+?W5Fdr+EodvqDyWyw|0GhcPQC=v!1M$&*L)j%Mznih17qT4 zBsQ{Xl0EY#N;eYNGwUyAL0NM>A!7?m&}+z`@JpR!37X3&|B9aq0$r(d@st8DH``_a zuKsLUCxSUA1{@M9u1~u-b6X`N^8lIw=1O-xJ&V6a34gqTHp4Wm)!G#<`3D0Y0WV4$ zJ2eBA-U9^bI{uA(QvlNKF>RyU6GE2dcxUVSr-CQYe5)JlzM%G?-i|BVxCZtHg7j)8 zE!jsMIks%%LBP^uOd4$6GVL3O(6q;6%qCoG)#vC9*gxx&Xeq zOs@-c8-E(~7jJ7PnvpQ;9UrGYN3cXNE5)>Gy{v@wDt09t+VjyGCR8q!|( z)dB7+HN8=QH$t(@@&p;?usWdcKbK-1ZyNcqy>1*j2B}*n7h)Yhq3FK%MnuCeSsx<#1M#jPb5JCtcgb+dq sA%qY@2qAWhai~XwS9Qg_f+O_rlG3SE;@Sada=-K04*-tmOIiAehpElV1I0a)&RlH=S*uGdcg8h;&kSmlU?FY?9m7--&~ zCI1s*QxGS=EkR=Xtb#i$=)U2OH^5W;5ovS};wGtW!sUI+_Pd29ZTTj=e1QP~006*T zNOhAv$Q~U;0{^NgWtygxS6-r`l$~xf*Qzvzpo?{rJtT23#zRE@^GrilDB7bjXA|zV@}qPK?4Nzv(t9?0=CR#9cE`v2YI2MkQ|sac zAZR*wdVg<1U0iQbeC?K0;y}1D1SbGoee;es+Mu*Zd)}7^c&ysg zMiIOevSqe6kzr1&1IGSyN!Iby$fxaf^WZUX-Lkk4%l?ES_Psw6hN;;Z8QlY19i*jr z7dX5blGT}K*}-mJUA@8*sBRO_u%%8eQjM_La9QPRBQ=TDRKHVMhr7Nu- zugitmVLchWajPc{R#=qXu@&ZwtX(pW{$7F5)1&+y&)cWhusG0u>X)n_`7)Z%s$*brH*NJ{mlr_O#htH`ZURR7d^pOIUVny3(MD&5K6uOVczzg@5ut>0 z3nQs2znR?xjL#a;B~R-w6Ns#4BvYJvlwGWS2`}wA*ZuQcb7H^b<~eZkAFE(_qrl6uR6i~C)-(l=hL6_r%Ir~bsbHnI;KO-7|%y8u}Y0PxSSe;HRp+{Xu>QNrv+ ztPk>PW?QqQ8M!cJs*112)Y=ARuciyrtQSCBKWTG1yMGmt7YlX6HJP>oNX68`$dt`TKPGi~GLfDtkZIM`B*T5RAfmSU z{1tX2KwnV;d3G-Mf4FWs0}B5tF$>AKcOT`|t~!Cl79?KGnB)lu000000000000000 e0002)$2WKLxrLcvG;{y}002ovPDHLkU;%>C!?ZsD delta 898 zcmV-|1AY9S2bl+uB!6H@L_t(|ob8%PR>Uw2L<5hT^!<;NyRgW^s5QAfcA)F8g5yZ? zY!&@+tmHgT`RC*DSn94Ci4EX9&r(>Tl_jfV{?$)&3hqqwUKYQQO=wTnl#l9`7$?R0dJ&;46AD*X4AZ(s=1{wL!Ix#Pq{2@*+FrX$!Io zWHokd+|iOdjIHUuofy(YDrdm)x-oFqzI!C7n&%IP7>QB>`c)6AaMqA)J7On*^xy_B z8^Un%fcF8JkAHt=&dz1e3Lu2Mnvdv3HK8wOdXzf3l9s(!Sal%}#(wTvlQnY}HvS@( zL@6QS(X|=0&jS~vqBJ$JplX6dQ>^3W+b5;9x=7Y; z!isp>1|SL|+HH`C?cgPQR}?_i#cgks*#L~R`3S@%yMGcv-Nueed5D(d@thkMBT5XH z7Dk4uFKx~SV0_l7CPi|8H;K;bMl!`|M4yZ0neftc6s~cwP!W!Jb$z<-Z+TIlET7;0>qQy8XEj4LX5%Q{I4-dn=BPAE7h90wbKKqOxEQto!bUL{Tmkkv$j!TWnx7BXRb;FCHJiuOc zJG3AhYju)#3kKB>Rg1ctgEKS$-NCu}m$DWaPf{?I?&T!2XXmXE8h~-F%GKaNrG8}Y zCp&VkxwhJO|3zb6*go7OMX1O|OxZC=^o-W&(tlSUIntxH-}+}M?tH(Ah$cZoigZJC z1>pOSdsit&KzHS0I-LR`3JqX6>ypv~#5O~h=5f{TUrLof?*^`$(>Y8}^6$5)nV zQhNmW`vxT|4N6RXj3kDwUsaj50*Zubg^@+cq%8*rGExPQubMtVxV08^(YN{h6?P1O zy`m)Y>|E}jxNbTFI{r`M78c{teNLmJFGVp4~fF~Rwgb+dqA%qY@2qAFnPMb%Dr;{7j4d+CR#s=|dU^m5#U^O120 z287f=laj%IJUZLMuGw4oP|(mqQY9fQ6#c9&kOU;!Ir9RUzHHm&I6Tp=j(J) z53~|lJ?`pPP_AkUYw2cvf3{kL^fUu5$bNAoo-ua`(#JK6@_+FQs#(^G1e@Qq(?uD1 zg})iFFZ*irR>RaVtd&8`gSE-pgqR24;)_i#>k+!#czMn_m!9Z#cfMFMu&)=z2zy$B z_Vs~70q7WmCRNGw+u*wTQKtaqd}1vx^{B&wbc`BLqJM2~2K-cvBVmnMU(5XJf#XRu zcA+~be;q(7vCS!;M#Ck`h2^M;I@_=n>Wox9uIdRju=Y)ONpmtA*AcgHaJ{yuBEY2NKvtymp|iVtFeXr=XzV->YuN{QWZsf;Z)>Jc(6; zoS+fw-G5}CJy26MD-I;2wn5@=Iue07FF?blbj#$3*<8V!bum@bzcG+Po9c_#M$>_ zw_HqD_j`X2c#jM&nbrbzcKR_pK$sIho)lrNUn>hCDZ3}f6meFqmu%X}7)H2h|6VB!8SqL_t(|ob8%zmg^u0hMhUHlk9&=lOoa+fX(0gZ%OcDih`Nk#|we!3%?l#y{vF}*{5%v6_(C&CW zOwfTgJfq`|-h%C-B-7SzmitGqnM+SI;DYE6L+l!3*C2ehB`4-?|o!q*4*R95rKVKWFzcp z3EGzf4QlFgg~|5YVOjv8A;5NfVx?Dm#9?7127iT{*>Ts~rv!-Oi;dP<1G${E zg)+WPYE!JvF?;_tL_@hg=WY_oNd?(aYl+3Q!*iX6*>v06o?*5BCG$!Twng8 zOh1H!+koKHathf~v-^vtT@0_TUEooqK^6gCX!Z7b-1@bt5+O4V#^G2Ip1t&540%VjLP?q(O` zY!kD-MRXbm?3GuNop8oKSMB-2!%*Aw#LsT$S;vhiM<&qXHgtA%aw~e`afzB^D~VXZ z5D!*({J~GnE2AT`3zU{-;lH8dn)cU;(P!Q`*nxZy*wF>RGtd6Mx*TByeSeaS*JX-n=$}i_(cWMeoPDQ6-{-_#EsCNjilQirq9}@@ hD2k#eilQi9!9V{WwvwFkyPN<3002ovPDHLkV1fcT-V^`; diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00010.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00010.png index bf199eafa3426e5c30637ea0259c1c301649fad5..b4286b6ac11e6c117becdd49102acf4741c2b061 100644 GIT binary patch delta 937 zcmV;a16KUP2fqi9B!7lUL_t(|ob8)Ya>O7AhHa-e+4~mckEW1UK8|d+2Nu zf(VMrZa-Qk$8pfh$K#RO+|Uwfz;PV(W;eLsWCG!Q%3I89>pao#Hms*TNX+0Uhd@1F zQYhPBXA^Wt!f{7mk@uk_)7Iu=pW64c*Q|*@Ghl=FdqeEA^nYCw?yx1h@Z$$5rfKV! z#}CYgs7cUAUgtLedESTCpFWb0pfGcal%xXEiGDnhTZHxci#^DQ!G?K#er5?O&xtEA zC;v%7a7d;iV*{fl7e*=xpWc(f8ql5>1Gr6uOM=YZJ>k#gHYx%M6S$SF2_8oqy*Wf@pI8XD$rPJ3kiG|}0Zrz~aYlmUa~Fxd*! z35_`jo*p@&*20ayl;>5HWTCIh28%otJ+d{I+~YeDwO zkYNmJyBxNd*=OyX(tLi9qubvW42Ja8>I`V8|9{RoG51wb0#hNJGS$C#z-vHA>1wK8 zc7Z56{cUMaPa9y`9NOlZ0nl;sQR-Osv;vK}5Fu^TIW#~Mj&xD#aLXRc8M~lGrhgfC zt8WGV0aq5`j8yYlL47T2i{c++AH-#mfPS{m>)N}XOKI3pzozX4pl)R!q>Q{YddmW4 zG=Jx@foX;U`(3}|{{!f>7>czxFK9DNo|x#Q(PpYg^V5Ji0S-(}py@Md<IV5HVgm8$ey8Uyr3qM8+EQUvs5`aFk zoL?Q^8QGU@^~YkzD0#0n;D%HHilQirq9Q1Yq9}@@D2k#eiVb`N-(&*m{E@eq*XDVl-)&e=dytsHSq_1E zzNOG=e_c(`AqmGFeMR1fl1y8R$9`$wuU@kze$9Xl-tP^u&wtW)O}N9B?83(nQcTm< zFV7#C4Ox?*kG#&m0Ic&qwEpsud<2D=Q=}vnkWTdDiQFWt*Wc{HiWqE|*Vkv3pw>BY z2Ik~nDF_b9rO4R8Xvu|zKdcipvZ*jOHd?`pUdlbmiZYqp z>V)<}LxTgR$|8X+LoYqYTBzSv=y@fIt<&E@C^J+@aqWU;4)-&7MqE=oXgH$(g*~#L zQn8RvGWN3WA;WS4E6sW`Mi-ECMSsh^TIK`+fKHt6wyhtIXsrom z4D+Bg7z#*9qmQ2KdJhl)t?H7s=*=q`4$?&idv+*M0w>}9Wg-Js1ck-zen%5Xw};I+ zPmo+|fJ_?NSnx~EV|3E96!oNJCn%_m#&Y%QSQJH36vY~NG0s44@;s8Zm@L)7s#eyH zo>{0>-+!e2aCaBo|FoGcQ0OQKOI;qF+N1RSyDZDV+R@N3XIsWod=T@P!sI>GD@~`T zSSFi*3ZW$@!P6ZN)Kq!X-``^Y5oowIJltscwiyP$dQ z{4(xQUktoEHy7dbRP#m=eIrwg;=ji}i_0Pb{cIoEwRb(2(y*a^P1_ql-O4^l8F^{+ zmVX7zXwG8;(+manyMD+22heFT6l-~2&}NuCG|@?;%~X%(mjQDE9GIFw(`VAmrSW-q zGxXwZ(rQ7}6ubN+We)P2z_#)@{XjnJUzAvqc|s1!nE@%BqOflN-0a4W(XuMxi7W{~ zA6d@tjh~F{%bwz6(b|?#@>y%Z1E~NMMI})bMNt$*Q4~c{6h%=K8~6)pgP}#+7}=Bn O0000E z!X;dO_NPR$?>l|mwk_0MHxeGezVF9B#Zc?pIR5c}HKAPR#&)-%HQl~3Y#iNHzPM3z zdmS$5kgSna*IMe>mV7Kfs_&0lHzA!eU_t9wN6p{HJOEl&V}Cl9jq$5ZN<09^B&Z{= z@{<8^tuIzUtD6{xSOT>)`eq{3&{5dr!I$>J*QI-zwD8*E%>?DXn7Pn2@@Wd<2@(zO z8?m><<*}J_BEoa0vj&v=`asNmZEIN0i||1qJyHJy`laq@48AkcvL)65qy-mvSrCSB z4tNj9c>FbE)_<2Z8IUB&-F)an_YiLz*sDCKA|M-~g6&V5lbRhHGS`FJqE;Gj0m}hD z-S7zP_;54Pm+?v0e#mT;ZfV-NT{LdRIPo)kxY_=?BTLgBMzd!LYtiWdu21meKKF{}zR1N-y52|M+C$!$QF$=U+kYa;(cDP%HwW)dd%zmyAnxJ> zuF*(}qENLR5FM-C`UPt;?b<*yj_!ji+TXg9Fy0F8denM>3#YRN9EfWB@hH|!TfU5) z=+Fq|Uv(Eung?@Ek$4QY^CjSWd0HyGT8w)F*#SwC+{njxcYU{@$qe*S+`x2YLD0KV z2(m41Hh)e-x0Nnc5X!p#p;4Nzd}ccua>4D9>r5mP;denps&ZGoa@=%x3kQAerlO1Xhgo7BG&y&g zZV%yVkD)IONk$Q9a)70V@*?aZHiydvKw-(zoqs}ia=kI(bW~12%zh4HM>N~{mws!6 zi;Iq$*}#|_HbS{Wmf~(chSuNndO@Nd%G%!uwd~>E$C*( zwxRFgX{vRS{8211ZVpX=6K}4yle2NC9um2B3*Cu22~Wu74|G9&RSD0Rr<{bfSp}SJkj~I-Y!^+6 zL??F?D;K@zEU*aS88CE%k^BXIR|X_Wk|QKZk|arzBuSDaNs_#S{{j-J?*CpM^#A|> M07*qoM6N<$g5aRZz5oCK delta 941 zcmV;e15*6J2g3)DB!7xYL_t(|ob6g$mV+<|P3Lqc?te+{Wj;KULEce_wsOB}C4d2v zaP`$Pv92q;T$Ux(oaqU5U|rYkPuA6bHxEDbFXYO3TsZGK;FB(YP-Ftlb-bxi_Izz7 zU`lq+x@oC&bV-`aw~GDt)X1e>1x%RzZV3HW)&Zwv7lyg46VnS?itLqNI(^fM$SpH`D{& zKff4jOBrIy4~dP!)F$=qtS~0y*kO9Q>GsUblDLP_1Zm%+J8F+8csc76+Iqvc?8#}Crx0e zZ~(G>)n~u?rc8QmAPHy3;0*USuM_sqLO35apWyPt*aJ4OZ2NY}KAW_CDJRjP45g#Y z4HMSEF{2)T6fFCffX~IC=?18;-%j{e_)W926)MyVN7PwXdfeFc0WjcxV%a3H0?*y1a;L2oe4U5%AmvV8 z#506tvt5lCYix*CG@a8uW{E%8g~3tM8wJx1lcYllI$EQw{x_0fmo|mbJq$BKe!@qg zn1)!Ra7c83#)h(5^b|XWkaqx$6oI>95xe4M-NKlYo$U7R$876fH| zSOD5|W`;hds{*zklznr0@81}qn3HkSM}_llrt_xEG?%^s6LyZ`f-c7JG4vt08*5!C zd?^ev?f~dXi*1jaz+_1BN`tLi%wWtRh+AhCm529ZUU7^ zYGo&4=B9V64c3F)3K)8QQTPUYTm=*gg(gCwP$(1%g+ifFC=?2X!ZYv-gN~{0R+>== P00000NkvXXu0mjfuvf;m diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00012.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00012.png index 0baff41057e4dbda5bfa90c4ce699242f140cc00..5d14cbc8bee4ff8e0a8779e6d15b14ea3523ce4e 100644 GIT binary patch delta 913 zcmV;C18)4J2d4*+B!6y6L_t(|ob8%PlEWYjMd_~G#P>fEcj*NcT9Lklm~5x4w{kEB z4VdA_KWQg9XZrIvj;-A_Es+M~oNFPqmKJU``&SmRsLgX>+-<0*HABT(d24NVm6xov zJ6@#=IwY%Qa4^DhW7xuhd*G#jPzt~66W=b-PnLpHy{XtyO9Z=I;Gl~(*^5G9s=M`tr2*>lR?l9eMUzzhA^sJ z3rapA@Y~lV+kSet1VKBc&hIQi0wip+>_k4Lom34G4HkBhKLzL7mppR}hmt+p)s!m% zso#0%c0#Y07WZ7#4$hYY5Wz8`kEYYKwnT_(9+&wmV@C3Pmb_JC@w0jvZLY^6bsJ>eyXFJE6ica=h?picmppKE=v4 zq0!lbEq`ZvZ1yzX?82_;>C~$Q8AB-(Mf$>BGZkBGW5%>atsST1TBqIwBxQauq}nb! z{5C*`sdxuvD_aEgj~-eRIWbjeFNxN(8l}Bd$2HhP8sfT++r(z9XI+v;F)aP1vPp2*bjmr n2!bF8f*=TjAP9mWcoKhADDL;p+n(kC015yANkvXXu0mjf*D0)~ delta 910 zcmV;919AMP2c!p(B!6p3L_t(|ob8%PlEWYjMd_~G#P>fEcj*NcT9Lklm^@VURu0CX z0Wj3wRtX#yAAcUW~f*zZ>{aF@{*Ny z$E$Qfhh()34n|mR3|lym??CaIne_1noDlum5xbVLOCo%B&3{_?cq6N6tvn46RqC&*(_T5Jr`2 zLCGfsK7C!X?WcE35VTY3{LT_2K*Bc5PUKVCN!1Y1U||>eQ*f?*$uq}rDA}`JO}P?~ z`kjYvC-i!0aWB`JKDriv$Y2WT`(c;6rXV=pWs>Xl%zwaHQfHED52)4}z)Ijio}ud; zv@a9;RLI(R(w*%%37;<$orcFXmM8dgAd$-!VKymImo$OXxwf;=uwbze$a2|2lO+>u z5ClOG1o!5L{gzt}_?RX$Xa`rgmp4wrh9$Bi&)%%7j@>o16Dk}d#|w|92o=QUQ>4eIF6^3~PQ6-?F_bbC zY%W>(@B-#n9)lnVf*^Pbn)(41o@9PjCT~%+LRqKFc-FY#n(fz>*g=5 z%WSO#R#+bN1qU(Xg8){j33>3=3|jhUBIuNTdKuJ$Jb0v)W((zFK0R5{;G8j?_eEo4 z0)OT|c(Rqdq#tGBftdxDJ}b3CS$`7?5|EKXS(wj(M7HLXW}BZUX|VNatw(35q2~-G z+EFIolrL$S3aD$x)9f2Shl4iWhu?#RnR9AzU&mdx(${gL{{z00jk_S582dpG1VIo4 kK@bE%5ClOG1mDCTn@R5XYI;O500000Ne4wvM6N<$g53hVt^fc4 diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00013.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00013.png index df6e01718ac7db8656876556198e373fae925b3f..19e71920ed32b78f7071abd026c08ba6c0c11c88 100644 GIT binary patch delta 68 zcmX@aa)4!m3M2bQ)hCSRuV>g!DfzbV-BE>QJHy&r1TQ}p-p0s)02LgTe~DWM4fpywGN delta 70 zcmX@Wa)@Pu3M1!6)hCRWyWjY)cJ@qv|2mE*X;yZrhlHW6U7|Dt0yMaP=5~nx>d^Rj Q-#w71r>mdKI;Vst08_yi1ONa4 diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00015.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00015.png index 79a3fcd5771aa23d793679282ce91906798b4a3b..5e6720d0fad3a3688c206e9cfb6351fe82ef5b70 100644 GIT binary patch delta 524 zcmV+n0`vW&1f>L!B!BElL_t(|obB3Mc7z}dfMGkQJ7NDzaxZ=GbV?10QEp+*|GkYM z#2bu}Z36%R000000I2qTpB;irk2v>zpMUu82ZCb?zz; zPfqMcB(kQqd$F<|s?pS9B1{ZZgcyP_Q-~K!05CNfrpDxpLK}ay#cV_zg=Ad67b2O= zGX6x%yjbz2)PKkc${w|B+GQ|JxK3>Edqle*FY{tXD$U={-P~MrvWwTLIMnOh-0`Xh zndJDp0MX8VN=eJfbV?i>fSU{LMZPVjixc&CE+!E84Q9FF?`5kMa{4|M~$SpnngTDjFDk7FIdwgC=1uDOOC7 zc^07Ab#kYd8~d~SC(r7aY2gP8-;4^+meh@ZZssh^%K4A^?wYkFgjf~f$?eEYS=Wrv zFd;60U(AeQjiE!3mK3|S238w|v~}=#cm9QJ(US83000000001BVL!pm=}Bit%yIw# O002ovP6b4+LSTX=a{@I0 delta 522 zcmV+l0`>i+1fv9yB!B8jL_t(|obB3Ma>F1DKv6f-ov{BUv6p^$no@&gnWxCy^B03b zenBjA8~^|S0000008xx_bqFRS;*2q_Km2zD>qGffjHG*b-5dO>jw6JSMiW9vOVjP| zpJ$!C^s=wgRKC5~=F{Dc%@$jeni@-g0@962&AdpdBUNjOM1Sv257pAU#dqCqEj)}` zN(|{EXbH9Pa28yEqx66;2|(JOUW40E8%Lg3%g()=!|P@AU+6O257prbs5o(rhnG+6 zN+fwrY4>7fJyfNs&3Kp?mT)lyVI>zYmH?pYGEB|M7r8e7Xp7khKMKjXaW6!9GE4ar zo#(}hFQrOOFn{k+%BI~0(}n58j=o2v`|&m}rlivB?L5uRb(eSXx)i&5om)FzjgTif z{w{#GvmZi`ax#MwM@o-0C4C7rhkeKCZB~}PWq%tSW1c&6J(YJ zXnLL0<>f~I?EcBK`fXacV&R)op>9dt{O4xP!mO12n4hj$+k%T#5tiIeo+%re5t_!u z1+ep(F>En)2$GUwkJi9SqmZ-?KJCuFkj-0i9smFU000000Br0B#6#&x4|3O900000 MNkvXXt^-0~f(cXoUjP6A diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00016.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/clear_n_too_long_warning/00016.png index cc59349033daaad4bdeae570a7124de74d0a7374..2adfb4d839946649d3e8fc8d5a72d02a81109c90 100644 GIT binary patch delta 381 zcmbQvJcD_HN`1Vii(^Q|oVPau`I;4Y8Xo4|^xg4);*QgD9ue0UP3G7%>wk3$*HY28 zE(R!Qkh6R~=kqI#UpC?F20lBkh?{FVoUQZ9%vIT|B$|-j-Z{IrGqmB*6@`*-s$q;- zUD=lwr^maZ0qU623qkYjIiHG7vGsNza>+Zr4HpxUgl*Vk3@?w6mT4W2i@ z$LD|fXdO@{nbkInRodQeAs>_df7g<`MMe3Hs@d4H~)#>>GQq2%S(!@H@AD< zyl}qvh3JJC1?IVxWoz_K98Il$|BOo@d`{rwtLMHx_p!gNtm~UDbUjA$Z2c_7KS$nb zX1MXXJoVsTUtYHVdj8fICx0mJIybRSq5j~(b$oo~ll|N4KY1Ct>^XnY+?f#;P7wP0 ZC$=N@T(Q}Y(;kBaJYD@<);T3K0RZL0vIPJD delta 380 zcmbQiJe_%hN`0KCi(^Q|oVPau`3@=YG(61O!};A_sQhCiOZMq!ClYQv{V!K|=@Q=@ zVMYchuq`@g`TT0+m&$d12{Q_o>gQc*i26I_(k-7V*Q^8AIEA9mN_JzlHK*I(Y59YJ41cKMEjpN@AyCdr6S$G(Aelh z{oJ$`3!_S}%&U{LjrUI9|Kil25bP0l+XkKe($b9 diff --git a/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/summary/00003.png b/tests/integration/nano/snapshots/nanox/test_sign_too_long_operation/without_fee_or_amount/summary/00003.png index 50c26400fe2ca360bf35c06058eab232b3426a79..c9fa11b9c6585c0ce9c763493c4252e0164fdbaf 100644 GIT binary patch delta 768 zcmV+b1ONP?2B8L!Eq_~0Uh(=07CoazE^{V_rl+jn}h3YANyv0fHQ>l&mbv zvMh_d?kJv_Z<+K6yPt^a*dLjx)_RFOozQM=n-RJ zAx9-4GR*KzSluY{u$m`liM0u*BC}%w004mZ@kMXs!Cl?BS+?LC2&-zl?RbHa2Vm8B zrwb7a{nq2g%WB&VQ5n*DZ#Yx z;%2t_Yn>YJn}5_Z0P32e?XkXfG*PrLIDSgsj+ydTZB(^kZr_yw@FNuU#dxrVV zIHHorS2db7!JX-umPFqJ1_xC&o_;)_t;AQx**;NLz05|f*?wcSL~=D<;Zq%9La@Qw7Q_|N}CaMt;=nMX~o~&DDHm$_(X{TAur_I?HOpIjnZ=HJ7Y-*{< ztzT87h<{b8t%h1>+U~f&O|fxpd8;tkZt0a4WT~UwSJ!H7nnB^O58%CjHbNruUI y3-1j{*c00000000000002MoA?KT21*XteM-3i0000gCGorY0vD0{V&PA%!5-VCLu&XjrD#HJ&OE<070%zDJsjd zEXyLVJBml{#GESW zH01;%{j6g^Q~p;#K<}rI2dU9Ugj^p5>;;9bgExC{kyT!bi+_!o9=sQ9qHjXbEykdR z9F>5`FvB-tb)$&GYMz`WwM{q_ksS*F002CX7rl`OcXi`t*_>}6tg3R`@d6_cz^d^^ z7d#f)t^19a)wUa=GGy(Mkz&_rG_mUxQp+qW?6c65r=#Yo6fu{<7jss8mZnCho_cL8 zZf2Xk)~WHfNq;>9psp#}9_w326G;n$qUt9igZ%*6VR!PZW*S zc|CZ%H_AHut`7D}=l6iQs?n?oZcNXx1o|E@IH;=e^y2|-#lJF+_KC6r){EN5CL;rl zq|%iv@rYhgOPJ%FQApi{jR@)NyWfEM#18_;;pw~bQGXts2?hWFa3L>t-+WQ2NlSB2 zI`TZpj#o81Rh=$X-ehFW$$ZsGCl$dnkE_9 zb`?=R%Gat;pQ<_4DQW8}6V(V0^aa1Hr`jzun^t1?w9~BS)8_1RCVH~jw?;i`Hno)J z)~?D^q<>bbt%lalwB2#POtEooxm4(EH}y&jvee%0tLr{F&jCzM3BqYs)f{b$SI*(# z18{y0uS@ zIEWAfa3-O=pPn!PY|pq>x{!ST07R3I7~ektDsjf(sK2N8(f9AUnpWs(E7X2)89^rF yB|J0)#o^)*^yIk@000000000000000PvRG^Qc4bTU%Ti40000mZ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00002.png index d6deabe98f0ae465442e6f8d89e55adc6a1c56ce..86f889eb1b5017362ba0edf43c6bd5a0e0677718 100644 GIT binary patch delta 692 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 Rywv~z002ovPDHLkV1oRNMEw8& diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00007.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/basic/00007.png index dd996e27318e3c2417178f9a8a22fafeca662e43..364af7467f57ecc825c32581510428e33a9898a9 100644 GIT binary patch delta 330 zcmaFD^pt6WO1+M!i(^Q|oVPcl`I;3390GIhaQ=>;RQ-~jbK&6=&aQHMpL2^QrsxRl zp1ED-_`}oJZe9NsdiaHeL!3p>d9&zCMTuL>Zm}*f+kJGZ)Lz+-tDpb+l-T<8LyyJ# zXb$O~e4f`T?@qB5{HzT9_@VC7bb0lA`WF}LM`xdByC}QLxYNR?K4pbg1N%|Sd*_`p zpG1joEnj)~?>XkQpYyj`|LNeKyGYCQ5XU{0d(HDTGrDAEG|la?YV4V?=ZsXst>+56 zkADdM)@pD?bxYa(O7(`Eib9DZag%)&$;q$WD`h^38+1z^k1~y9S{AX0;ZL*avc)H_ zHGF;ZQ>)qX_n8M=r{DCksoFU|QT035q`AUa=z=8Yi=0RKj%q*8i!)#c2b%V6;6GZh Sv0ra8NP(xTpUXO@geCxF8kG?M delta 329 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 Rywv~z002ovPDHLkV1oRNMEw8& diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/complex/00007.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/complex/00007.png index dd996e27318e3c2417178f9a8a22fafeca662e43..364af7467f57ecc825c32581510428e33a9898a9 100644 GIT binary patch delta 330 zcmaFD^pt6WO1+M!i(^Q|oVPcl`I;3390GIhaQ=>;RQ-~jbK&6=&aQHMpL2^QrsxRl zp1ED-_`}oJZe9NsdiaHeL!3p>d9&zCMTuL>Zm}*f+kJGZ)Lz+-tDpb+l-T<8LyyJ# zXb$O~e4f`T?@qB5{HzT9_@VC7bb0lA`WF}LM`xdByC}QLxYNR?K4pbg1N%|Sd*_`p zpG1joEnj)~?>XkQpYyj`|LNeKyGYCQ5XU{0d(HDTGrDAEG|la?YV4V?=ZsXst>+56 zkADdM)@pD?bxYa(O7(`Eib9DZag%)&$;q$WD`h^38+1z^k1~y9S{AX0;ZL*avc)H_ zHGF;ZQ>)qX_n8M=r{DCksoFU|QT035q`AUa=z=8Yi=0RKj%q*8i!)#c2b%V6;6GZh Sv0ra8NP(xTpUXO@geCxF8kG?M delta 329 zcmV-P0k;0-0^|aaB!4SOL_t(|obB05l7k==06>$O~Ux-adO%C@tXICTM*5l7-wxd(8YF%UykH{{Ck16ODIT+R+W+o?)i)3zP4H(+z zVD&L0&e~hMF}Z|peeT>Hy~cH>!9&W?>HFk*P<{t+vYRE~9)D$lf8f3gZ|Y`i!0&mj zSGkzEHw|OK`a;}R_9Aa#<6W47I+K9TB%rhWi`exod>tDs!T13IpQh&kI#WAE}&fA&ZMTZr595R=iKm6zZNG~?!)CwmK%WaJn_o6K$7Vs-< zm?Xr23ho@bZsNOCmkk`t}Wmrj}U`E_V5$0-lS zo2&n=iS>D#bwfM$twA-r#wYog^%fx+RYvtjSw%Ob4u(1KUhT7~oPOpW<0;$Y(Z#y* zK@Us5q^3PPc~e-S_H`<=r;FO6*F9&}>i9X9e-JEOzh+Luu66C5FJ7>^eG7VCoNJi6 zEkQq9&P8K`%l|O8hpNAXU$D)5;ooc-(aE(*@7T)qr@nDb^tF(KEho2pZ4L15E zwJJ-WyMCo>)9J|4_c@E_pV3deoV&Srz0Wgqt0ddqt7rVQF>#o7ms7O#5-K+P^z9 z*eryfY1>Y|@JBXh8~f%vHu2Td_c)I$ztaD0e0szY5=urRw delta 490 zcmeBVX9s&1AueIYOnz?`uI!rN8lBh@G?y6QH`{)o)p*Vl2zS5x)*pDI;;$C*(J z-l^Iz?aqu{x%bjlzRl$gO8+PRYj zqUG|%=`&}lr~5m+jnpB0=MRexZM=ZyScZ{Xn%|E_Os{q8qK`_qT}l^-K1xq3m8f}eOHFwwvBjTJo(54 z>&s`q+aEcTH0}Nkt-@(Le7%GdezpEbTsov)d<+9YGut?g&ZbPZ~V_*Bj$q= dAq)qKf3nV5zgK(F9|c~JjHj!g%Q~loCIG!s;tc=* diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00006.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00006.png index e2923d15537c7ab9ae47a655b1d41f4d9a4fabdd..ef3d031ef497e57ae21c576823d88bcbaefc08e4 100644 GIT binary patch delta 711 zcmV;&0yzEi1@Z-uB!9U{L_t(|ob8!ia>F1Dgh{72;r>U;UHafDRiu@W4fv+S%)jd%${zyTm#UPlVGpElEw0h{y z9#EFWpq)cxMsDrum?SNwS$7oAI1qum#Ujp3@`MmV2{x=XD7KOkn7A4}iR{6e_{(F*Xkdu223gi3w8zJJD={;8f=k#T{yiM;5{G?awD@*EydZ0VD-(*0Lskj2bx~tFW4KZ tsQ7yhH1W71+chAB5RF1Dgq=)o!u^kwyY#_Rsz@s#o1fU7{hk^u z)(Rj2N*~)~-tV{kSW4+vyMo9>)R6V7RYCdpiS9#u_#)7Umo-|pG^9iOOI3@UIoVQ; zr43Y&El@-n$QG;I&#tM|p7O)`(J!UIf!iCaGquHvsP^*9W`9x*6j3u8C=Wr->&{;U zd}Zy!sO-tnhf<9-UN8tM4xZ}4)OSN~hWQ#|e%e2Yx4rdsCdt3HDk z-mIQD&knC`4HO@KLbn;h85$v&zE*TM9~al54_ndf{{Ikg95-f@fMdqD%PoS2SLW;GS)eqNE%yl=gGI@$Y`tr*M4any`>R>hMftA8pUx}?BFN*{k}sw|>! ziL0|jbKmoTP2#pbtM9DiA+4-`I9%8O07Ze>5@J75=fw6(})4%i|@0f0l4)8juMETb{NgY7)% z(9K8ht|hZV@_)skUjb`bflO?zOH9v|RWa>jQK@_`QI67^4N&rcJ!H=xt7V}%U735S zpa?W7CXP2sFfMAePiXFdP<+2l+3zFqV0=KwtnttC8Vv`edGoYo5Iv2PwUkGko?-6R z&?46E38NaOApC5SZc%F93D<(K5^Y2qiJlXMC|ycRrhn(@DogZJ5=zY}7L00mr*;LH zEB0C1LDB!BryL_t(|ob8%hvcn()TnpP`7%BL zC5oYa9Z&K7ena^@&&Tvi8)j+u60cNWu^!3JZi5)AU6uTjod&%i^6k5H1+(IET$9uX z2|=J76?agFIJMuOZ3el#Z@YPf1@Sx+jiG#=XKo#@N9oSQ@_%HlbH)_4_eHw-le1q$6yn3b>`k&8%cKnJj`Ye*yB?c0M^5Zllz9yb~?m>>B~3WfEGT* z9=Vj(5q&fmv41g_7)WI1n$+~1d{i?(MSJ9oR3S!d(!t0B-bY@#a|L^>F|ev&2=rK` zc6JVTYV@p3pu7VP@d?+yF3AsZ_=8bccY)QDx2Y10CZi@X@^V!%0Dr0-I-Wuv8}=X<|2xW@jw=Xz zP_w~vSOuIzPL?H)|Ktw78qWOJvD;qR>^I?n z{ZEL!e6R=3G_p~%CcEx{BD?&{uUjhO0h}2(f-nF8000000000000000000000002M b^ZWr|x)R?W!Bp+s00000NkvXXu0mjfuF?OQ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00008.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/delegate_parameters/00008.png index 59fce75cd1321a13bc8840b9bc6f48f87485d7c2..1fcdee14dce21c819b5e211dbbdf546034789b00 100644 GIT binary patch delta 520 zcmbQovXEthO8pB@7srr_Id5kM7PTnwv}GTc?9lLqhrP``?db{pjpG zrn-!U0To35*yKO|c_nY(;}iDl3pp15@@+0yKj(GZ2jO)Qi!0;h?@JvK{bu>h_dw;m zC>H&`#}l@1wo&cf>|r+HxasUAEeqn77VM}Oo1S&_%OUo&8v|3VEAJn(oc*S;Wc7xV z>D?PkR$Jt~$Y$Ht9=o-3_wDs}M9Xa%!wV&h zZNFN6;N2?O)%sV(gcCHDR}1D{YwOw0a+TZU?3Pm&UgqzdJ2R!)ms}J0cxC>UPkbi= z&zTwpiY` z=a&X?hINib6R_{Q6~TjT+w|?MFKJ^D5d(eRvMELg+EprtTYqt_R!y&bupApz_LKMR zT=NkRv|E*pT&>31t?Im^ZyER=UaH-=yW`52;-M$tNO-$y>D@$PIrG?B`mKRa6_oBz zxQC-$E#b#u_8qXgYUk=}waElH%H>>yyR|`xmY{Zlu9;OCN4bpqP-42qDXDctBK4=t zyaOc4Qgi$=J%5^yR^Kw1RI{o_FhgBseK?%y+-LJGuyUNfN|MpP{p(LYa1Y_}J)y|^p@I^cNo_f`c)6F%%jny_b z#K!54X&)l`RkP1J-<@^o!zlMRVj6KpwtsqTbztF1Dgh{72;r>U;UHafDRiu@W4fv+S%)jd%${zyTm#UPlVGpElEw0h{y z9#EFWpq)cxMsDrum?SNwS$7oAI1qum#Ujp3@`MmV2{x=XD7KOkn7A4}iR{6e_{(F*Xkdu223gi3w8zJJD={;8f=k#T{yiM;5{G?awD@*EydZ0VD-(*0Lskj2bx~tFW4KZ tsQ7yhH1W71+chAB5RF1Dgq=)o!u^kwyY#_Rsz@s#o1fU7{hk^u z)(Rj2N*~)~-tV{kSW4+vyMo9>)R6V7RYCdpiS9#u_#)7Umo-|pG^9iOOI3@UIoVQ; zr43Y&El@-n$QG;I&#tM|p7O)`(J!UIf!iCaGquHvsP^*9W`9x*6j3u8C=Wr->&{;U zd}Zy!sO-tnhf<9-UN8tM4xZ}4)OSN~hWQ#|e%e2Yx4rdsCdt3HDk z-mIQD&knC`4HO@KLbn;h85$v&zE*TM9~al54_ndf{{Ikg95-f@fMdqD8}jKv5FqCfxr>xl1oBAyQS01`O)|Rvs8C zfHA=@x61eX4aeU5W%Zh2JQzS(+)`tUttq)O**xtHSryB7(HD?lWnt$n`rT_-gef&v&`m?6vNYD$W_q(^uorqxAH#Z6L5+X+uC$k2ORN=0XWiDpMq`DW}hXC!kej+~R-Z*r_13F;}^ZH!zq7I>42-h%;Hn)^3(* z&RwZp>-#qSBer1cxM|mG-WJ(2Pe9GWBYx3|?^b=q>JVf#AJ??XU~q=>c0*nI3ow(h h0TUYl007`0_yYhscAzAz!I=O6002ovPDHLkV1ibp)@uL& delta 433 zcmV;i0Z#tk1Kb0UB!8nxL_t(|obB0Lu7n^AfMI7cJ7NDzaxdq>q~Ww&DsnUVzb8kL zc0dvFbIfv{r)-B1rp2{6tcvaxw^ZM1JvBRv4Kg%(vgVI1H0T1cSKk#&(u%j^J!-$y zAQjrP;sVK2oYC9=ZH8^$Z~5?u4C4Q(BFc6MA=i%APura;bAQ#=xn!!*`?B5q%Vjf2 zTZmg{C7XNBzw?mW`uh1*2Nq@JwMipBp)Q4gL(nVw;HXVzk^{&lJy&@K9OL_-I?a$# z`)(S^N9f&oXLEFqeTKnDZ0oF@xjv-t08I9>4tU3_EP(0aCt>phX18bQZuw+AOmyw) zTl3K_e)S?Xc7Jh3CcK43G__L>xNu6x(8&suV^?m~ zx{FO;#6~Zh+*lqs bfQ|hD{MLH=Su2>Z00000NkvXXu0mjfVkX_@ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 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 Rywv~z002ovPDHLkV1oRNMEw8& diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00007.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00007.png index 85234247e808c9a4eed986210646699a8fad3053..2b33e84bd934985581cc1e8b3a0342a628c6b7be 100644 GIT binary patch delta 333 zcmaFL^nz)EO1-|Pi(^Q|oVPck`C1fs90KQ@@w@SV(w);aGX$2cZQyU2RlTo9A;cjg z=1}mpQs3i-$By4JJuD&N5PL89d)V!u;^d8WzgQE(cE50%o7O(BDmq$o%^!>XO6!(O zed7AsTsiYl@KpxC{p&r;-!HHEU6xeWDR#NAr*OUS_TXYw!R4*>f>t62dcR22e|LKM zBu3bMzR~XAGsV|<&Hq~VOVFIn^=ej|+#ZiJ&HGhP9F=Hk^EnpdkS4L`l$^k?en->e z9^T(N4bJF($+%ak+K^RY#WR!jtiQV1!wUWL&UK7&6>qX9Z)Pmm=*q~z_IXpZg@^Om zddGua&ZRRyEUL+r`1sjR-Ys1J+?hzJUv@kP5`f6g?BSuh-Q^c`*ch;b2ey~}=>5DQpQi^%4^FN?^G zpg?_0S9!nR@i>HVS=>B_UeRkUd+N8%*0fw%t&yhDi!DF$N{t?n{OOxx#k7{k%aWu# zwh$Z4uUb|pUQ!wT_}#9^yZ8D1bc+m@_nAbD$03BZew=^i!+)7%p7ixvGMmwVD<9_9 zS~iUw3$g2}Vs~G2cQxW`J^y?rCpu+S>n5FeM)D|pOhH48!L+rRDNZ0a8M%!$U}`@G zo7;>yYwt~?xProB#j-07*qoM6N<$f}g;kvH$=8 diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00008.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/reject/00008.png index 59fce75cd1321a13bc8840b9bc6f48f87485d7c2..1fcdee14dce21c819b5e211dbbdf546034789b00 100644 GIT binary patch delta 520 zcmbQovXEthO8pB@7srr_Id5kM7PTnwv}GTc?9lLqhrP``?db{pjpG zrn-!U0To35*yKO|c_nY(;}iDl3pp15@@+0yKj(GZ2jO)Qi!0;h?@JvK{bu>h_dw;m zC>H&`#}l@1wo&cf>|r+HxasUAEeqn77VM}Oo1S&_%OUo&8v|3VEAJn(oc*S;Wc7xV z>D?PkR$Jt~$Y$Ht9=o-3_wDs}M9Xa%!wV&h zZNFN6;N2?O)%sV(gcCHDR}1D{YwOw0a+TZU?3Pm&UgqzdJ2R!)ms}J0cxC>UPkbi= z&zTwpiY` z=a&X?hINib6R_{Q6~TjT+w|?MFKJ^D5d(eRvMELg+EprtTYqt_R!y&bupApz_LKMR zT=NkRv|E*pT&>31t?Im^ZyER=UaH-=yW`52;-M$tNO-$y>D@$PIrG?B`mKRa6_oBz zxQC-$E#b#u_8qXgYUk=}waElH%H>>yyR|`xmY{Zlu9;OCN4bpqP-42qDXDctBK4=t zyaOc4Qgi$=J%5^yR^Kw1RI{o_FhgBseK?%y+-LJGuyUNfN|MpP{p(LYa1Y_}J)y|^p@I^cNo_f`c)6F%%jny_b z#K!54X&)l`RkP1J-<@^o!zlMRVj6KpwtsqTbztL>%3 zC;_fcKbsZDalnuJzMC~2nVVx09kY$XZrqb@I;XGCT7%T$| zz;Bh0#AKt{@pw8beS3kvcj1=R!OiNuWi$;}+F z*Sk!BfH?5EfyNs=Telg=Tx6r`b@%(%YV3ND@etCfS^Z4AJ=X=+BKsP z_sHln+Vc)4;@ zG6vyZfPbU&E?+rL|Jd=i4})V|TZSI$DTx2Jnn+bri&XKgiG>#w#10dYA>NTR^;gB!8<(L_t(|ob8-ja>F1DMV(G|;{7j)z4XIVs)&bqNV;-H=c};^ zTx28Q+Ue`CBBew>p66-Sv}bhXw+!6Ie&s>0ajI6vvvYt_5Y6m zo9MIVJH4&m%TrBszSu9L8V5EG-mMdQ&F8;c*?=-qW~8m1GP1BBf25#tfIJbOalg2k z0}k73knii;L^QjAq2FTjb3Rfnql*0$8w5cR1ObZv>Vhsm%97Q^$?~RbN&r2$uc1%H zj1vUD>RJ$Bynk5aX50=fZ;PIyee3tLf41e&Z3of zN7y{K8q^>{q@Z94_=+nCf=9DplcDT6)n}HlNf@<~^MAI26y66MYBpKxAiQ07XxL=4 zZE3eFi2Mksf?75DU#;5B0Vtmi?hp2foiG@c6r^X9G0g0_Cn4V9+m*XgyEYh2!fVi% zID=7Q!4m|5B{pxX9iQ{9r7M>|W;!xv0ZhV9Ce?8nstF zAT{3Q%YVoFKX$zB!{8X#mZ67w3fg~LO{6NRMXLDL#KH@5Vuy*y5bsEsabR{+kP|yh zRfhMUPdl;0oXD6ZQqULS4Ug9;*Iw$?|bmPNv%h~wXRyG2pHU#)5VpBcQ z*wA4GC|&>qQ_P7g=Lq<#YT5$WBY}OaQ_!aL{Y5M+Xby@1dmytG2$BBp2oNWB!eE3) y0Nk6?7ErCw7jRPyE?|mCLEj7f280U;9>6cx6a!}!6t(350000y`@7{gi=lgo^F6QZ_i`Pi}S}>&{_x2-a(RW3WQXGL^4PT2CWNVG9*S4=dN*wS73_m0w>L+ng;g z@9Cbr|Hsqe*$emMNgUhfzS)+^JXh;WqQAqW7yZY+{ycqRoA0)zX(|2=JTsqKcI0ib zo%u4t`o`zql|p)#&HVaT7w-RZn8zyh#j47HwU5oVA3T?T=(zQ4zqU_a5yAHsluLX! k=$zN`d}9yP_fV>BpIqbqxra^9y$1<+y85}Sb4q9e0EDxe%K!iX delta 339 zcmeys^p0tQO1-J4i(^Q|oVPb4`3@QIxCS=g@ch1C<$Wu^cjn0po=zWEzx&A~xa5j{ zaI`T41gzMxd-wg{rfa{y;fuMpc2m;J<{*aCn~t=vy7M$UQ^7@(;dQD)Y^`zi*>?wI z-!>^n)lQzxxKL|*-dA6f2K9+N30pX|FL5XAe%*J@)#*q*Q^t9lSCSg623Cb$=?g?0 zUd*dp!tcaj;JwaW@OJE%g2?`3{4syk=c%4D{%dc0$N$H<2f?-F-{&N+nk#da=f$~s zbEmU=>U~ykcyjgrwc7oTF&@z`LYDGpGgPj!m%6q1>f+l9w}Xr~u?aYaAr(D}CNQ|3B5`xr9}r+?MRW=j5tOh1YEpnA-Bmt76$6$M=bM4nNr? iY}c8}0`)wEGWf!J*nH32<4-IEKmwkwelF{r5}E*b*_dJg diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/simple/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/simple/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 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 Rywv~z002ovPDHLkV1oRNMEw8& diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00006.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/stake/00006.png index e2923d15537c7ab9ae47a655b1d41f4d9a4fabdd..ef3d031ef497e57ae21c576823d88bcbaefc08e4 100644 GIT binary patch delta 711 zcmV;&0yzEi1@Z-uB!9U{L_t(|ob8!ia>F1Dgh{72;r>U;UHafDRiu@W4fv+S%)jd%${zyTm#UPlVGpElEw0h{y z9#EFWpq)cxMsDrum?SNwS$7oAI1qum#Ujp3@`MmV2{x=XD7KOkn7A4}iR{6e_{(F*Xkdu223gi3w8zJJD={;8f=k#T{yiM;5{G?awD@*EydZ0VD-(*0Lskj2bx~tFW4KZ tsQ7yhH1W71+chAB5RF1Dgq=)o!u^kwyY#_Rsz@s#o1fU7{hk^u z)(Rj2N*~)~-tV{kSW4+vyMo9>)R6V7RYCdpiS9#u_#)7Umo-|pG^9iOOI3@UIoVQ; zr43Y&El@-n$QG;I&#tM|p7O)`(J!UIf!iCaGquHvsP^*9W`9x*6j3u8C=Wr->&{;U zd}Zy!sO-tnhf<9-UN8tM4xZ}4)OSN~hWQ#|e%e2Yx4rdsCdt3HDk z-mIQD&knC`4HO@KLbn;h85$v&zE*TM9~al54_ndf{{Ikg95-f@fMdqD9Tce%a%Mlc>7wUcthk{@B3R;l)qTF-F|gTsQmTt zBVU7@V;Aa0+`p`GmG{Ay|E4d$?7M9r@ApOjazM&>K|>n=oHKtnL<=XF;xBqy!aD`jti3j~I_CKVWoVGYhMVy?$+|hpQ^%=&@ zTIrJO5~(Nb1lufI&#kkr=UgB?kI#8s)1S-SvrXow+CPyNa6J+;yUEm{LzC-(y+}z( zmkB$IZ{h9b^{0!!m_+m#x>J6m5XuJ~=cIyR=}ZIq}g19osA_a6gO7pv~V@Q*nl N6`rnsF6*2UngD6buCV|B delta 364 zcmbQl+|E2frQXle#WAE}&fA-wd@TwB4uNkggx}SxyuZXP>=bUeif8J-{HF~fO-zsW z^%l)re!uJ-Z};lc2HI6?H!Qn%cAMJsQz>&xdgabmUhlNBRrvLCchb+K*4qyS3-3IC zV0m_h+dB=;`2zii{KZoi@ou}6qIRoM=TcFtVZ!VC zY)3QO-fxZW7L;|0em-~m;_DI1rE6TSpSv^jweu(50}02Z4jfyq)9^pJL}r@_o5b2j zdlt`0k=q+27Ta)nwZqJ>7A6-`KmYZawV`#<@@reZNN-rWUrsyxPT0CC<3;?N>}FIl zhovP5gTe~DWM4f DR)wf~ diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00006.png b/tests/integration/nano/snapshots/nanox/test_sign_transaction/unstake/00006.png index e2923d15537c7ab9ae47a655b1d41f4d9a4fabdd..ef3d031ef497e57ae21c576823d88bcbaefc08e4 100644 GIT binary patch delta 711 zcmV;&0yzEi1@Z-uB!9U{L_t(|ob8!ia>F1Dgh{72;r>U;UHafDRiu@W4fv+S%)jd%${zyTm#UPlVGpElEw0h{y z9#EFWpq)cxMsDrum?SNwS$7oAI1qum#Ujp3@`MmV2{x=XD7KOkn7A4}iR{6e_{(F*Xkdu223gi3w8zJJD={;8f=k#T{yiM;5{G?awD@*EydZ0VD-(*0Lskj2bx~tFW4KZ tsQ7yhH1W71+chAB5RF1Dgq=)o!u^kwyY#_Rsz@s#o1fU7{hk^u z)(Rj2N*~)~-tV{kSW4+vyMo9>)R6V7RYCdpiS9#u_#)7Umo-|pG^9iOOI3@UIoVQ; zr43Y&El@-n$QG;I&#tM|p7O)`(J!UIf!iCaGquHvsP^*9W`9x*6j3u8C=Wr->&{;U zd}Zy!sO-tnhf<9-UN8tM4xZ}4)OSN~hWQ#|e%e2Yx4rdsCdt3HDk z-mIQD&knC`4HO@KLbn;h85$v&zE*TM9~al54_ndf{{Ikg95-f@fMdqD>KjU%TZ(0E76Y+&!|b zMkjYh_r#?x`#n$o#+3NiTYihF%XO`q-p=#S!-hRR_JUBZfK{4N8vCP#AElBVX542x zYw7lGlYdJh-@?V8&&4xkv@Jh8VY9;jFGtjR(r@zrWLuMTG-kF~c7tl027||+^2qL9 z###SGuIIj0+OF~ZMCI;HY~nRt`*kY$q9Q+veVv{9Z&t*@*ETE4&mOY1#f#DxW-fl_zV6r4N5VID1~4*U b2lGBMe)unJ*X952KS+V6tDnm{r-UW|#J#kI delta 366 zcmV-!0g?Wm1DXSnB!6K^L_t(|obB0J4ul{KfMI6hO}PJ&yvsb8Gz?`aDqHe@Pq+aV z7pxyQ%6Xnr_TCR`SNCC7>sDc;-mTVBvvIdhy0)II`J;F0bb;ur?`liB6_&#_(R!&t zD%3}XJ0uS=wtoL?Gjw>r<;^{M5T0k$qLjV&xj0^ndN`w=M}M)-b*9?-yYw(0x!!bg zuZgCklHne6b{2A5UyI*p!=zqWEfT~hqD$fL5wyh^xY}eU`2bmD3T>Tt-frDuoyXuKIy!S_t`Eg`00!G^0QUHl1pwzxa1PsP8gF zI7gOpAqVGzPfC_#R!*me3Q0Qr#ahbMm3lF`v!$L{R=ES3^+%7;gP!R~bxlW_qS7yw|7AF2=+nR}(7dH?_b M07*qoM6N<$f-pz2TmS$7 diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00002.png index fc2f4b72997ee897e1202b3f2436c2e5babbc59c..c0ac1f93d74002f7a1d273a395f6dbbc2414fe62 100644 GIT binary patch delta 710 zcmV;%0y+KI1>OaaB!8tzL_t(|ob8%PlEWYjMV(Y`;`<-Tcj<+zX`=Cii6LG8tr8m~ zA&EgGk8LH6<0zl^eV=H_OlmLOtap~`doV}$(v6l%y<&8+>U^^Ad-<^ank}9bA>Nal zIV}{bpY@j&ykEP?b12^NL_9&HeTb4Jg}(qy_rAz+?W5Fdr+EodvqDyWyw|0GhcPQC=v!1M$&*L)j%Mznih17qT4 zBsQ{Xl0EY#N;eYNGwUyAL0NM>A!7?m&}+z`@JpR!37X3&|B9aq0$r(d@st8DH``_a zuKsLUCxSUA1{@M9u1~u-b6X`N^8lIw=1O-xJ&V6a34gqTHp4Wm)!G#<`3D0Y0WV4$ zJ2eBA-U9^bI{uA(QvlNKF>RyU6GE2dcxUVSr-CQYe5)JlzM%G?-i|BVxCZtHg7j)8 zE!jsMIks%%LBP^uOd4$6GVL3O(6q;6%qCoG)#vC9*gxx&Xeq zOs@-c8-E(~7jJ7PnvpQ;9UrGYN3cXNE5)>Gy{v@wDt09t+VjyGCR8q!|( z)dB7+HN8=QH$t(@@&p;?usWdcKbK-1ZyNcqy>1*j2B}*n7h)Yhq3FK%MnuCeSsx<#1M#jPb5JCtcgb+dq sA%qY@2qAWhai~XwS9Qg_f+O_rlG3SE;@Sada=-K04*-tmOIiAehpElV1I0a)&RlH=S*uGdcg8h;&kSmlU?FY?9m7--&~ zCI1s*QxGS=EkR=Xtb#i$=)U2OH^5W;5ovS};wGtW!sUI+_Pd29ZTTj=e1QP~006*T zNOhAv$Q~U;0{^NgWtygxS6-r`l$~xf*Qzvzpo?{rJtT23#zRE@^GrilDB7bjXA|zV@}qPK?4Nzv(t9?0=CR#9cE`v2YI2MkQ|sac zAZR*wdVg<1U0iQbeC?K0;y}1D1SbGoee;es+Mu*Zd)}7^c&ysg zMiIOevSqe6kzr1&1IGSyN!Iby$fxaf^WZUX-Lkk4%l?ES_Psw6hN;;Z8QlY19i*jr z7dX5blGT}K*}-mJUA@8*sBRO_uTc?9lLqhrP``?db{pjpG zrn-!U0To35*yKO|c_nY(;}iDl3pp15@@+0yKj(GZ2jO)Qi!0;h?@JvK{bu>h_dw;m zC>H&`#}l@1wo&cf>|r+HxasUAEeqn77VM}Oo1S&_%OUo&8v|3VEAJn(oc*S;Wc7xV z>D?PkR$Jt~$Y$Ht9=o-3_wDs}M9Xa%!wV&h zZNFN6;N2?O)%sV(gcCHDR}1D{YwOw0a+TZU?3Pm&UgqzdJ2R!)ms}J0cxC>UPkbi= z&zTwpiY` z=a&X?hINib6R_{Q6~TjT+w|?MFKJ^D5d(eRvMELg+EprtTYqt_R!y&bupApz_LKMR zT=NkRv|E*pT&>31t?Im^ZyER=UaH-=yW`52;-M$tNO-$y>D@$PIrG?B`mKRa6_oBz zxQC-$E#b#u_8qXgYUk=}waElH%H>>yyR|`xmY{Zlu9;OCN4bpqP-42qDXDctBK4=t zyaOc4Qgi$=J%5^yR^Kw1RI{o_FhgBseK?%y+-LJGuyUNfN|MpP{p(LYa1Y_}J)y|^p@I^cNo_f`c)6F%%jny_b z#K!54X&)l`RkP1J-<@^o!zlMRVj6KpwtsqTbztg{s+P{q9Oxs{1*BvZ;)v3uK3H(fYRa=lbtu mm%%z`Q*ISO@3O}XKemod9db~N@ZA6 zAD@2Ldi%9eWh}XC7++cyKPa94=#P-dm7coBn@80{)Q`$<@MmD#eS>99cs+x~;a^hO zVh_I_-u7{q_x5RKQ{TF^+TY&$?aha4H_z@kxa)W7zK#1FuLpbYcBrcri{IF+u5k8q zTwQtkq3{2BKMFtK)#m1!zid&^eMaVQ#Uh*Lr>H;3QM&2RrMhDGI=&T7cmMyjewg3* k@ZT1emkCS^Siyq@>dj}5r>brfy$zE0boFyt=akR{0Hvd!x&QzG diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00008.png b/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00008.png index f25662e2c807a31da6e5af8d90a1d9b976484253..e2e0638c6c0d805bbb9aad583c498b6c213f48b7 100644 GIT binary patch delta 706 zcmV;z0zLiM1=F1DMcqzz;{7kld+7&LO7y%KV&l#|UojSv z5Kj?*ZTE2;hbYtmpy7taJ(OD7OjCeRazO*{4L=m*n37@pwBHQxrm5$oP#;7q)X z#7=fiGMNddfE`;#{op95Yp$ncZej^W4QUj9p^z*=_cANK$fdu&$~M7=6nMGWHv@3< zMY0_T=A4*tNN5^cTAmQHEXO+=kQL(!&9_=u*9ENy`F5Py#yPOp5TsT&Y05t9 z$gyQD4>~M8#-yFCCDXcb7n=Tf%-MuntLaB=W_A5J+qpAO9PSe*D6?+x>8h7zdR3s? z(4f9}+kXbp>{w?1AuQ@x{3~+N&o-=07*qoM6N<$f{NWqwg3PC delta 704 zcmV;x0zduQ1=t0UB!8btL_t(|ob8%fa>O7EM4i;!#P>gv?~)H!2qTGBgBdTWeqUoO zBq3HY{#veM+cs0OuIpa7t}Ce0diziCarv}4-XbsDrS=>`e_meb+VN$^cApah6bKJxqMgB5@os(6@$Z(D_oY5Yhw zhj*`QhS^M*f$ZLW)E^uRW#tW(OdMro)R^XU-6rHq(6vknaeC?R@3BMp!NlKecFzFb ziCwZD4&j`bc2qb#=kUnwRZGqTb_Rs&-SOdBLN-g`7=PY@(4}5KpMJw1L!JVUsG2w_ zQ|`V8)Zlgep**Pr(j79DF~UNKJF~sB5GgUQFnsHUeO=NzNVaiui__p%Lzr6K;4FW@ z5{?(p3_2`5$)ug_CDXdN3qyZe%-Mu%tLaB=VRipG+t`^0hkNXf&({T?uC{W_R+Xd! zNY{PPYkya866aHuFn?h@X&D8!yxpY{>olbb8{(ZYBpu+*m*})wOKM}}eO=$dW7%e_ z738H5)>%rJW=_ik{7pK8S;xCtK5eg?hwp#EbzxcvbD0000bJ+D)JGH*ZhW`FCKQq+d4g)Nv? zBAu}E^3Nrf8r2EwQOENw(0;9aX26lLug=PqHF{{Nk;WSufz5*-_CtSa-D)&+%+i;i z2!_q7XTtjUYYE!c2TlX+Y(800cGaCd;7aR*mWR+4xs|gtiCR*#ZY`Fv<3!yplGwS( z0{{R3pvSBJp&N9&wsbU^Gc0BiQa^~;TLDNt!-||q4u0)cX5~1S4$VZ!IhwMPddp7j z*0ZAoJ;;QT<+7IBpjm$;Ht9!o-fgHaF)os*#z!c%w^TMZilsp2*rzf&DMvl?`Qe;& z9Jz+x`eu~P7 zkfbx$`Zd~HdhVb|ut^I#3mbsbb3Ma3{~|WwqKI!y*ZB0mahrc#cV&&jxt&>UPc=ye z3fb!cUxL79&;bB|gS=!>FpFS2yDB6EJw&pLuDsE8F4acsUHoVxzglO~v9xDVoSMLq zLl(8O%Z)G+^IU6mpH41aMAft$XkWO;0vZo#NB}h%(Scyf3HrJGAKPt6N<2f-kW8YQc>2eB5v-Kg1 rz*(RL9VVKF-V4S)ld%FA7eEGo@n9pYG$gmcBmt+9B_V&(m?%O9gvE1TS2FMSn_iYu*1bK!Ng`~>*1a`{^z+2e zZ;9a`Y7D>9Xxq}D0o6`f3!ORI(u}E%>VdYXPN)HGk)GG7KAE>4da-}>ODXEW)y5V~ zYmrV^d->-QTaD_3&8Xw~7U;ZIJ{fRi?W-J(9J5JQ6MG`wV zc>n+a0Q7j(KlB0JK3h7PtQi)o2&o@L?5zN#o?%7KBnQ8DtFm&OONVA5|OTA>L zcI&sJ1U<-tlGU=7+n|40BsS?sb>1DQFEK7ssK!?)wYO9@wu+@d=Gdn)nv|oSd44!2 z9Y?OAm%dpfV^kZ}o@JrDl;=Cgezf<|V0>4f3{b_=2=tkuK0Jn;tfQvUDcY!7H<+ab z4M{q4qhF)FW#$fw1e>&=v#ao`x+`lH&OMpc@l=ac zppd;E@GS^z1`_}PILJ$F4HgpY;jU^4zPzOh6@EyUA#Ze@OSRFu5kK0G!w;gtO&VEH%IeS*T35e{BRs_?k+;s0V^D*M-?(`W*sM>< z^_Z$kJxB7=C*YtuNGakUq?4Sh>=^`e3sS2$)?%?P&#}Im^6ZDCj%mE4re^HDO1xao zA|qiRvI(38TF_wz%Fr9Z+6Mpt0000000000000000018V000000002U;13^%Bdl=# Rywv~z002ovPDHLkV1oRNMEw8& diff --git a/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00011.png b/tests/integration/nano/snapshots/nanox/test_sign_transfer_ticket/00011.png index ff518831ae81679c8510e8cb4bff506d46ea4c52..481b93b9956f8c503a1857268cc7589892a54c65 100644 GIT binary patch delta 382 zcmbQlJd=5XN_~Q-i(^Q|oVPav`3@=YG(61Q!};C*(z{28g_@QI9B91q=f3degIPBl z9zKqEYI8njplUiUiodROAor(c9W zR^}+?8myl&FL-4to57#z(8{X$U)SfWztb-~3N&TPqzc(p%AFSVYrX`8Gnk+H{Ueks zb<#%fFV})D?|sHT>rry8tld#@`>s`2`6T~L+QDzvrXXHhV6rCV3S&z9Ipb#y$#wEG zvU@C2_*)kGE!_M1Tt1V*;nRmFtX}Z8D_&c4jZtrz2E)Cp?XwzH zxst=@d+j?GB$@s8ny~)wDXryR(H!B5`xZ|ztGuMUEy6s0?XTF)=TyyJo^e`Pm25rx z#%s=inV%1C@<=PV!1yd8@P5I)Ih(~d{@;92c)>g7uKG1sx+>RB3+(okV89N3d}ecv V;ORDdeNYgjz|+;wWt~$(696=6uWbMT delta 375 zcmbQqJc)UNN`0iKi(^Q|oVPav`I;4Y8WOix2*0aWdB2H$a@*E~)qE{a|IeGjjEaO@;djDmRU6LTq-^%vti47 z=JJ_}i@)8>5?Ov>^Xqe`FDf6CWXs>U_Vb%lU)BDyE!ce0DxuFml3}v-ypZ?nCqA&q zSfA~yxzp`+=hgj77T?l4G;czF!IWEe{`*d=RbKse|Bz4IVzZZbTy(29%yI1b$|kb& zv*Y$zTMQi8cO)PEIPdcVwci52?V0y79<6owx;)fy@mW#HtutB}8L)x_HFp1^1fEUr RmFWS=d%F6$taD0e0suO5vflsz diff --git a/tests/integration/nano/snapshots/nanox/test_sign_with_another_seed/00002.png b/tests/integration/nano/snapshots/nanox/test_sign_with_another_seed/00002.png index d6deabe98f0ae465442e6f8d89e55adc6a1c56ce..86f889eb1b5017362ba0edf43c6bd5a0e0677718 100644 GIT binary patch delta 692 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 Rywv~z002ovPDHLkV1oRNMEw8& diff --git a/tests/integration/nano/snapshots/nanox/test_sign_with_another_seed/00007.png b/tests/integration/nano/snapshots/nanox/test_sign_with_another_seed/00007.png index dd996e27318e3c2417178f9a8a22fafeca662e43..364af7467f57ecc825c32581510428e33a9898a9 100644 GIT binary patch delta 330 zcmaFD^pt6WO1+M!i(^Q|oVPcl`I;3390GIhaQ=>;RQ-~jbK&6=&aQHMpL2^QrsxRl zp1ED-_`}oJZe9NsdiaHeL!3p>d9&zCMTuL>Zm}*f+kJGZ)Lz+-tDpb+l-T<8LyyJ# zXb$O~e4f`T?@qB5{HzT9_@VC7bb0lA`WF}LM`xdByC}QLxYNR?K4pbg1N%|Sd*_`p zpG1joEnj)~?>XkQpYyj`|LNeKyGYCQ5XU{0d(HDTGrDAEG|la?YV4V?=ZsXst>+56 zkADdM)@pD?bxYa(O7(`Eib9DZag%)&$;q$WD`h^38+1z^k1~y9S{AX0;ZL*avc)H_ zHGF;ZQ>)qX_n8M=r{DCksoFU|QT035q`AUa=z=8Yi=0RKj%q*8i!)#c2b%V6;6GZh Sv0ra8NP(xTpUXO@geCxF8kG?M delta 329 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 diff --git a/tests/integration/nano/snapshots/nanox/test_sign_with_long_hash/00008.png b/tests/integration/nano/snapshots/nanox/test_sign_with_long_hash/00008.png index 59fce75cd1321a13bc8840b9bc6f48f87485d7c2..1fcdee14dce21c819b5e211dbbdf546034789b00 100644 GIT binary patch delta 520 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 Rywv~z002ovPDHLkV1oRNMEw8& diff --git a/tests/integration/nano/snapshots/nanox/test_sign_with_small_packet/00007.png b/tests/integration/nano/snapshots/nanox/test_sign_with_small_packet/00007.png index dd996e27318e3c2417178f9a8a22fafeca662e43..364af7467f57ecc825c32581510428e33a9898a9 100644 GIT binary patch delta 330 zcmaFD^pt6WO1+M!i(^Q|oVPcl`I;3390GIhaQ=>;RQ-~jbK&6=&aQHMpL2^QrsxRl zp1ED-_`}oJZe9NsdiaHeL!3p>d9&zCMTuL>Zm}*f+kJGZ)Lz+-tDpb+l-T<8LyyJ# zXb$O~e4f`T?@qB5{HzT9_@VC7bb0lA`WF}LM`xdByC}QLxYNR?K4pbg1N%|Sd*_`p zpG1joEnj)~?>XkQpYyj`|LNeKyGYCQ5XU{0d(HDTGrDAEG|la?YV4V?=ZsXst>+56 zkADdM)@pD?bxYa(O7(`Eib9DZag%)&$;q$WD`h^38+1z^k1~y9S{AX0;ZL*avc)H_ zHGF;ZQ>)qX_n8M=r{DCksoFU|QT035q`AUa=z=8Yi=0RKj%q*8i!)#c2b%V6;6GZh Sv0ra8NP(xTpUXO@geCxF8kG?M delta 329 zcmV-P0k;0-0^|aaB!4SOL_t(|obB05l7k==06>$O~Ux-adO%C@tXICTM*5l7-wxd(8YF%UykH{{Ck16ODIT+R+W+o?)i)3zP4H(+z zVD&L0&e~hMF}Z|peeT>Hy~cH>!9&W?>HFk*P<{t+vYRE~9)D$lf8f3gZ|Y`i!0&mj zSGkzEHw|OK`a;}R_9Aa#<6W47I+K9TB%rhWi`exod>tDs!TTc?9lLqhrP``?db{pjpG zrn-!U0To35*yKO|c_nY(;}iDl3pp15@@+0yKj(GZ2jO)Qi!0;h?@JvK{bu>h_dw;m zC>H&`#}l@1wo&cf>|r+HxasUAEeqn77VM}Oo1S&_%OUo&8v|3VEAJn(oc*S;Wc7xV z>D?PkR$Jt~$Y$Ht9=o-3_wDs}M9Xa%!wV&h zZNFN6;N2?O)%sV(gcCHDR}1D{YwOw0a+TZU?3Pm&UgqzdJ2R!)ms}J0cxC>UPkbi= z&zTwpiY` z=a&X?hINib6R_{Q6~TjT+w|?MFKJ^D5d(eRvMELg+EprtTYqt_R!y&bupApz_LKMR zT=NkRv|E*pT&>31t?Im^ZyER=UaH-=yW`52;-M$tNO-$y>D@$PIrG?B`mKRa6_oBz zxQC-$E#b#u_8qXgYUk=}waElH%H>>yyR|`xmY{Zlu9;OCN4bpqP-42qDXDctBK4=t zyaOc4Qgi$=J%5^yR^Kw1RI{o_FhgBseK?%y+-LJGuyUNfN|MpP{p(LYa1Y_}J)y|^p@I^cNo_f`c)6F%%jny_b z#K!54X&)l`RkP1J-<@^o!zlMRVj6KpwtsqTbzt bytes: path = Path(test_name) / "reject_from_blind" def navigate() -> None: - app.navigate_until_text(Screen_text.Accept_risk, path / "clear") - app.navigate_until_text(Screen_text.Sign_reject, path / "blind") + app.navigate_until_text(ScreenText.ACCEPT_RISK, path / "clear") + app.navigate_until_text(ScreenText.SIGN_REJECT, path / "blind") send_and_navigate( send=expected_failure_send, diff --git a/tests/integration/nano/test_blindsign_too_deep.py b/tests/integration/nano/test_blindsign_too_deep.py index 4af12e15e..78a86397a 100755 --- a/tests/integration/nano/test_blindsign_too_deep.py +++ b/tests/integration/nano/test_blindsign_too_deep.py @@ -13,18 +13,21 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check blindsigning on too deep expression""" + from multiprocessing import Process, Queue from pathlib import Path -from utils.app import Screen, Screen_text, DEFAULT_ACCOUNT +from utils.app import Screen, ScreenText, TezosAppScreen, DEFAULT_ACCOUNT from utils.message import Message # Expression: {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{42}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} -def test_blindsign_too_deep(app): +def test_blindsign_too_deep(app: TezosAppScreen): + """Check blindsigning on too deep expression""" test_name = Path(__file__).stem - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) expression = Message.from_bytes("0502000000f702000000f202000000ed02000000e802000000e302000000de02000000d902000000d402000000cf02000000ca02000000c502000000c002000000bb02000000b602000000b102000000ac02000000a702000000a2020000009d02000000980200000093020000008e02000000890200000084020000007f020000007a02000000750200000070020000006b02000000660200000061020000005c02000000570200000052020000004d02000000480200000043020000003e02000000390200000034020000002f020000002a02000000250200000020020000001b02000000160200000011020000000c02000000070200000002002a") @@ -33,13 +36,13 @@ def send(result_queue: Queue) -> None: res = app.backend.sign(DEFAULT_ACCOUNT, expression, with_hash=True) result_queue.put(res) def assert_screen_i(i): - app.assert_screen(f"{str(i).zfill(5)}", path=(Path(test_name) / "clear")) + app.assert_screen(f"{str(i).zfill(5)}", path=Path(test_name) / "clear") result_queue: Queue = Queue() send_process = Process(target=send, args=(result_queue,)) send_process.start() - app.backend.wait_for_text_not_on_screen(Screen_text.Home) + app.backend.wait_for_text_not_on_screen(ScreenText.HOME) for i in range(6): # 'Review operation' @@ -55,7 +58,7 @@ def assert_screen_i(i): assert_screen_i(i+1) def blind_navigate() -> None: - app.navigate_until_text(Screen_text.Sign_accept, Path(test_name) / "blind") + app.navigate_until_text(ScreenText.SIGN_ACCEPT, Path(test_name) / "blind") navigate_process = Process(target=blind_navigate) navigate_process.start() diff --git a/tests/integration/nano/test_blindsign_too_large.py b/tests/integration/nano/test_blindsign_too_large.py index 97c59565a..fc62d9b41 100755 --- a/tests/integration/nano/test_blindsign_too_large.py +++ b/tests/integration/nano/test_blindsign_too_large.py @@ -13,17 +13,20 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check blindsigning on too large expression""" + from pathlib import Path -from utils.app import Screen, DEFAULT_ACCOUNT +from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT from utils.message import Message # Expression: 12345678901234567890123456789012345678901234567890123456789012345678901234567890 -def test_blindsign_too_large(app): +def test_blindsign_too_large(app: TezosAppScreen): + """Check blindsigning on too large expression""" test_name = Path(__file__).stem - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) message = Message.from_bytes("050092abf8e3d9e5f8cfd9ae8a9fe5f28ea1d5b5abf1af82dae8a4b68df3d1889eb6f988f5e8d31a") diff --git a/tests/integration/nano/test_change_sign_instruction.py b/tests/integration/nano/test_change_sign_instruction.py index ffd2102e7..1a12c1d38 100755 --- a/tests/integration/nano/test_change_sign_instruction.py +++ b/tests/integration/nano/test_change_sign_instruction.py @@ -13,30 +13,33 @@ # See the License for the specific language governing permissions and # limitations under the License. -from utils.app import Screen, DEFAULT_ACCOUNT -from utils.backend import INS, StatusCode +"""Check signing instruction changes behaviour""" + +from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT +from utils.backend import Ins, StatusCode from utils.message import Message -def test_change_sign_instruction(app): +def test_change_sign_instruction(app: TezosAppScreen): + """Check signing instruction changes behaviour""" - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316") - payload=message.bytes + payload=bytes(message) - app.backend._ask_sign(INS.SIGN_WITH_HASH, DEFAULT_ACCOUNT) + app.backend._ask_sign(Ins.SIGN_WITH_HASH, DEFAULT_ACCOUNT) with app.expect_apdu_failure(StatusCode.INVALID_INS): - app.backend._continue_sign(INS.SIGN, + app.backend._continue_sign(Ins.SIGN, payload, last=True) - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) - app.backend._ask_sign(INS.SIGN, DEFAULT_ACCOUNT) + app.backend._ask_sign(Ins.SIGN, DEFAULT_ACCOUNT) with app.expect_apdu_failure(StatusCode.INVALID_INS): - app.backend._continue_sign(INS.SIGN_WITH_HASH, + app.backend._continue_sign(Ins.SIGN_WITH_HASH, payload, last=True) diff --git a/tests/integration/nano/test_ensure_always_clearsign.py b/tests/integration/nano/test_ensure_always_clearsign.py index 5bdca4697..7d32f7a4a 100755 --- a/tests/integration/nano/test_ensure_always_clearsign.py +++ b/tests/integration/nano/test_ensure_always_clearsign.py @@ -13,9 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check clear signing never blindsign""" + from pathlib import Path -from utils.app import DEFAULT_ACCOUNT +from utils.app import TezosAppScreen, DEFAULT_ACCOUNT from utils.message import Message # Operation (0): Transaction @@ -26,7 +28,8 @@ # Entrypoint: root # Data: {pair "[" (pair "Z" (pair "Y" (pair "X" (pair "W" (pair "V" (pair "U" (pair "T" (pair "S" (pair "R" (pair "Q" (pair "P" (pair "O" (pair "N" (pair "M" (pair "L" (pair "K" (pair "J" (pair "I" (pair "H" (pair "G" (pair "F" (pair "E" (pair "D" (pair "C" (pair "B" {})))))))))))))))))))))))));pair 10 (pair 9 (pair 8 (pair 7 (pair 6 (pair 5 (pair 4 (pair 3 (pair 2 (pair 1 {})))))))))} -def test_ensure_always_clearsign(app): +def test_ensure_always_clearsign(app: TezosAppScreen): + """Check clear signing never blindsign""" test_name = Path(__file__).stem app.setup_expert_mode() diff --git a/tests/integration/nano/test_get_pk.py b/tests/integration/nano/test_get_pk.py index 0593b7c53..4c82a0e9e 100755 --- a/tests/integration/nano/test_get_pk.py +++ b/tests/integration/nano/test_get_pk.py @@ -13,29 +13,31 @@ # See the License for the specific language governing permissions and # limitations under the License. -from utils.account import Account, SIGNATURE_TYPE -from utils.app import Screen +"""Module to test get-public-key instruction.""" -def test_get_pk(app): +from utils.account import Account, SigType +from utils.app import Screen, TezosAppScreen +def test_get_pk(app: TezosAppScreen): + """Test that public keys get from the app are correct.""" accounts = [ Account("m/44'/1729'/0'/0'", - SIGNATURE_TYPE.ED25519, + SigType.ED25519, "edpkuXX2VdkdXzkN11oLCb8Aurdo1BTAtQiK8ZY9UPj2YMt3AHEpcY"), Account("m/44'/1729'/0'/0'", - SIGNATURE_TYPE.SECP256K1, + SigType.SECP256K1, "sppk7bVy617DmGvXsMqcwsiLtnedTN2trUi5ugXcNig7en4rHJyunK1"), Account("m/44'/1729'/0'/0'", - SIGNATURE_TYPE.SECP256R1, + SigType.SECP256R1, "p2pk67fq5pzuMMABZ9RDrooYbLrgmnQbLt8z7PTGM9mskf7LXS5tdBG"), Account("m/44'/1729'/0'/0'", - SIGNATURE_TYPE.BIP32_ED25519, + SigType.BIP32_ED25519, "edpkumJgSsSxkpiB5hmTq6eZcrmc6BsJtLAhYceFTiziFqje4mongz") ] for account in accounts: - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) data = app.backend.get_public_key(account, with_prompt=False) diff --git a/tests/integration/nano/test_git.py b/tests/integration/nano/test_git.py index 2781b17f0..97c6b9a46 100755 --- a/tests/integration/nano/test_git.py +++ b/tests/integration/nano/test_git.py @@ -13,11 +13,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -from utils.app import Screen +"""Module to test git instruction.""" -def test_git(app): +from utils.app import Screen, TezosAppScreen - app.assert_screen(Screen.Home) +def test_git(app: TezosAppScreen): + """Test that the app commit is the same as the current git commit.""" + app.assert_screen(Screen.HOME) data = app.backend.git() diff --git a/tests/integration/nano/test_mixing_command.py b/tests/integration/nano/test_mixing_command.py index b49af6e4b..c2fdf66d3 100755 --- a/tests/integration/nano/test_mixing_command.py +++ b/tests/integration/nano/test_mixing_command.py @@ -13,44 +13,47 @@ # See the License for the specific language governing permissions and # limitations under the License. -from utils.app import Screen, DEFAULT_ACCOUNT -from utils.backend import INS, StatusCode +"""Check that mixing instruction fails""" -def test_mixing_command(app): +from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT +from utils.backend import Ins, StatusCode - app.assert_screen(Screen.Home) +def test_mixing_command(app: TezosAppScreen): + """Check that mixing instruction fails""" - app.backend._ask_sign(INS.SIGN, DEFAULT_ACCOUNT) + app.assert_screen(Screen.HOME) + + app.backend._ask_sign(Ins.SIGN, DEFAULT_ACCOUNT) with app.expect_apdu_failure(StatusCode.UNEXPECTED_STATE): app.backend.version() - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) - app.backend._ask_sign(INS.SIGN_WITH_HASH, DEFAULT_ACCOUNT) + app.backend._ask_sign(Ins.SIGN_WITH_HASH, DEFAULT_ACCOUNT) with app.expect_apdu_failure(StatusCode.UNEXPECTED_STATE): - app.backend._ask_sign(INS.SIGN, DEFAULT_ACCOUNT) + app.backend._ask_sign(Ins.SIGN, DEFAULT_ACCOUNT) - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) - app.backend._ask_sign(INS.SIGN, DEFAULT_ACCOUNT) + app.backend._ask_sign(Ins.SIGN, DEFAULT_ACCOUNT) with app.expect_apdu_failure(StatusCode.UNEXPECTED_STATE): - app.backend._ask_sign(INS.SIGN_WITH_HASH, DEFAULT_ACCOUNT) + app.backend._ask_sign(Ins.SIGN_WITH_HASH, DEFAULT_ACCOUNT) - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) - app.backend._ask_sign(INS.SIGN, DEFAULT_ACCOUNT) + app.backend._ask_sign(Ins.SIGN, DEFAULT_ACCOUNT) with app.expect_apdu_failure(StatusCode.UNEXPECTED_STATE): app.backend.get_public_key(DEFAULT_ACCOUNT, with_prompt=True) - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) - app.backend._ask_sign(INS.SIGN, DEFAULT_ACCOUNT) + app.backend._ask_sign(Ins.SIGN, DEFAULT_ACCOUNT) with app.expect_apdu_failure(StatusCode.UNEXPECTED_STATE): app.backend.get_public_key(DEFAULT_ACCOUNT, with_prompt=False) - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) - app.backend._ask_sign(INS.SIGN, DEFAULT_ACCOUNT) + app.backend._ask_sign(Ins.SIGN, DEFAULT_ACCOUNT) with app.expect_apdu_failure(StatusCode.UNEXPECTED_STATE): app.backend.git() diff --git a/tests/integration/nano/test_parsing_errors.py b/tests/integration/nano/test_parsing_errors.py index 4a01f9609..05fece840 100755 --- a/tests/integration/nano/test_parsing_errors.py +++ b/tests/integration/nano/test_parsing_errors.py @@ -13,15 +13,18 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check parsing error handling""" + from pathlib import Path -from utils.app import Screen, DEFAULT_ACCOUNT +from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT from utils.backend import StatusCode from utils.message import Message # original bytes : 0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316 -def test_parsing_errors(app): +def test_parsing_errors(app: TezosAppScreen): + """Check parsing error handling""" test_name = Path(__file__).stem def make_path(name: str) -> Path: @@ -36,7 +39,7 @@ def make_path(name: str) -> Path: with_hash=True, path=make_path("unknown_magic_bytes")) - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) unknown_operation_message = Message.from_bytes("03000000000000000000000000000000000000000000000000000000000000000001016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316") @@ -45,7 +48,7 @@ def make_path(name: str) -> Path: with_hash=True, path=make_path("unknown_operation")) - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) one_byte_removed_inside_message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e010000000000000000000000000000000000000000ff02000000020316") @@ -54,7 +57,7 @@ def make_path(name: str) -> Path: with_hash=True, path=make_path("one_byte_removed_inside")) - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) one_byte_added_at_the_end_message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff0200000002031645") @@ -63,7 +66,7 @@ def make_path(name: str) -> Path: with_hash=True, path=make_path("one_byte_added_at_the_end")) - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) one_byte_added_inside_message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e0100000000000000000000000000000000000000000000ff02000000020316") @@ -72,7 +75,7 @@ def make_path(name: str) -> Path: with_hash=True, path=make_path("one_byte_added_inside")) - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) wrong_last_packet_message = Message.from_bytes("030000000000000000000000000000000000000000000000000000000000000000ce00ffdd6102321bc251e4a5190ad5b12b251069d9b4904e02030400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c63966303966323935326433343532386337333366393436313563666333396263353535363139666335353064643461363762613232303863653865383637616133643133613665663939646662653332633639373461613961323135306432316563613239633333343965353963313362393038316631") diff --git a/tests/integration/nano/test_provide_pk.py b/tests/integration/nano/test_provide_pk.py index 3a79ef895..516d4a094 100755 --- a/tests/integration/nano/test_provide_pk.py +++ b/tests/integration/nano/test_provide_pk.py @@ -13,38 +13,41 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Module to test get-public-key instruction.""" + from pathlib import Path -from utils.account import Account, SIGNATURE_TYPE -from utils.app import Screen, DEFAULT_ACCOUNT +from utils.account import Account, SigType +from utils.app import Screen, TezosAppScreen -def test_provide_pk(app): +def test_provide_pk(app: TezosAppScreen): + """Test that public keys get from the app are correct and correctly displayed.""" test_name = Path(__file__).stem - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) accounts = [ ( Account("m/44'/1729'/0'/0'", - SIGNATURE_TYPE.ED25519, + SigType.ED25519, "edpkuXX2VdkdXzkN11oLCb8Aurdo1BTAtQiK8ZY9UPj2YMt3AHEpcY"), "ed25519" ), ( Account("m/44'/1729'/0'/0'", - SIGNATURE_TYPE.SECP256K1, + SigType.SECP256K1, "sppk7bVy617DmGvXsMqcwsiLtnedTN2trUi5ugXcNig7en4rHJyunK1"), "secp256k1" ), ( Account("m/44'/1729'/0'/0'", - SIGNATURE_TYPE.SECP256R1, + SigType.SECP256R1, "p2pk67fq5pzuMMABZ9RDrooYbLrgmnQbLt8z7PTGM9mskf7LXS5tdBG"), "secp256r1" ), ( Account("m/44'/1729'/0'/0'", - SIGNATURE_TYPE.BIP32_ED25519, + SigType.BIP32_ED25519, "edpkumJgSsSxkpiB5hmTq6eZcrmc6BsJtLAhYceFTiziFqje4mongz"), "bip32_ed25519" ) @@ -52,7 +55,7 @@ def test_provide_pk(app): for (account, kind) in accounts: - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) data = app.provide_public_key(account, test_name + "/" + kind) diff --git a/tests/integration/nano/test_regression_continue_after_reject.py b/tests/integration/nano/test_regression_continue_after_reject.py index 70b587716..1b1025691 100755 --- a/tests/integration/nano/test_regression_continue_after_reject.py +++ b/tests/integration/nano/test_regression_continue_after_reject.py @@ -13,12 +13,15 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check the app still runs after rejects signing""" + from pathlib import Path -from utils.app import Screen, DEFAULT_ACCOUNT +from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT from utils.message import Message -def test_regression_continue_after_reject(app): +def test_regression_continue_after_reject(app: TezosAppScreen): + """Check the app still runs after rejects signing""" test_name = Path(__file__).stem def make_path(name: str) -> Path: @@ -28,7 +31,7 @@ def make_path(name: str) -> Path: app.reject_public_key(DEFAULT_ACCOUNT, make_path("reject_public_key")) - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c00ffdd6102321bc251e4a5190ad5b12b251069d9b4904e0203040001000000000000000000000000000000000000000000ff01000001070200000102076501000000015b076501000000015a0765010000000159076501000000015807650100000001570765010000000156076501000000015507650100000001540765010000000153076501000000015207650100000001510765010000000150076501000000014f076501000000014e076501000000014d076501000000014c076501000000014b076501000000014a0765010000000149076501000000014807650100000001470765010000000146076501000000014507650100000001440765010000000143076501000000014202000000000765000a0765000907650008076500070765000607650005076500040765000307650002076500010200000000") diff --git a/tests/integration/nano/test_reject_pk.py b/tests/integration/nano/test_reject_pk.py index 20f1b1740..65251f67f 100755 --- a/tests/integration/nano/test_reject_pk.py +++ b/tests/integration/nano/test_reject_pk.py @@ -13,14 +13,17 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check reject pk behaviour""" + from pathlib import Path -from utils.app import Screen, DEFAULT_ACCOUNT +from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT -def test_reject_pk(app): +def test_reject_pk(app: TezosAppScreen): + """Check reject pk behaviour""" test_name = Path(__file__).stem - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) app.reject_public_key(DEFAULT_ACCOUNT, test_name) diff --git a/tests/integration/nano/test_sign_ballot.py b/tests/integration/nano/test_sign_ballot.py index 8ea933d43..bde516d19 100755 --- a/tests/integration/nano/test_sign_ballot.py +++ b/tests/integration/nano/test_sign_ballot.py @@ -13,9 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check signing ballot""" + from pathlib import Path -from utils.app import Screen, DEFAULT_ACCOUNT +from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT from utils.message import Message # Operation (0): Ballot @@ -24,10 +26,11 @@ # Proposal: ProtoALphaALphaALphaALphaALphaALphaALpha61322gcLUGH # Ballot: yay -def test_sign_ballot(app): +def test_sign_ballot(app: TezosAppScreen): + """Check signing ballot""" test_name = Path(__file__).stem - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000000600ffdd6102321bc251e4a5190ad5b12b251069d9b4000000200bcd7b2cadcd87ecb0d5c50330fb59feed7432bffecede8a09a2b86cfb33847b00") diff --git a/tests/integration/nano/test_sign_complex_operation.py b/tests/integration/nano/test_sign_complex_operation.py index 029397d80..709627212 100644 --- a/tests/integration/nano/test_sign_complex_operation.py +++ b/tests/integration/nano/test_sign_complex_operation.py @@ -13,10 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check signing complex operation""" + from pathlib import Path -from utils.app import Screen, Screen_text, DEFAULT_ACCOUNT -from utils.backend import StatusCode +from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT from utils.message import Message # Operation (0): Transaction @@ -46,10 +47,11 @@ # Destination: tz3eydffbLkjdVb8zx42BvxpGV87zaRnqL3r # Entrypoint: default -def test_sign_complex_operation(app): +def test_sign_complex_operation(app: TezosAppScreen): + """Check signing complex operation""" test_name = Path(__file__).stem - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) app.setup_expert_mode() message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006d00ffdd6102321bc251e4a5190ad5b12b251069d9b4a0c21e040304c0843d0000000004050d036a000000060764035c038d9e00ffdd6102321bc251e4a5190ad5b12b251069d9b4904e05040500000002030600000004056303620000591e842444265757d6a65e3670ca18b5e662f9c0070002cc8e146741cf31fc00123b8c26baf95c57421a3c0000000764656661756c74") diff --git a/tests/integration/nano/test_sign_delegation.py b/tests/integration/nano/test_sign_delegation.py index 1e6b26788..ed1e77d19 100755 --- a/tests/integration/nano/test_sign_delegation.py +++ b/tests/integration/nano/test_sign_delegation.py @@ -13,9 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check signing delegation""" + from pathlib import Path -from utils.app import Screen, DEFAULT_ACCOUNT +from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT from utils.message import Message # Operation (0): Delegation @@ -23,10 +25,11 @@ # Storage limit: 889 # Delegate: tz1TmFPVZsGQ8MnrBJtnECJgkFUwLa6EWYDm -def test_sign_delegation(app): +def test_sign_delegation(app: TezosAppScreen): + """Check signing delegation""" test_name = Path(__file__).stem - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006e01774d99da021b92d8c3dfc2e814c7658440319be2c09a0cf40509f906ff00591e842444265757d6a65e3670ca18b5e662f9c0") diff --git a/tests/integration/nano/test_sign_failing_noop.py b/tests/integration/nano/test_sign_failing_noop.py index 4f4ec271a..f8d1c9c85 100755 --- a/tests/integration/nano/test_sign_failing_noop.py +++ b/tests/integration/nano/test_sign_failing_noop.py @@ -13,18 +13,21 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check signing failing noop""" + from pathlib import Path -from utils.app import Screen, DEFAULT_ACCOUNT +from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT from utils.message import Message # Operation (0): Failing noop # Message: 396630396632393532643334353238633733336639343631356366633339626335353536313966633535306464346136376261323230386365386538363761613364313361366566393964666265333263363937346161396132313530643231656361323963333334396535396331336239303831663163313162343430616334643334353564656462653465653064653135613861663632306434633836323437643964313332646531626236646132336435666639643864666664613232626139613834 -def test_sign_failing_noop(app): +def test_sign_failing_noop(app: TezosAppScreen): + """Check signing failing noop""" test_name = Path(__file__).stem - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) message = Message.from_bytes("03000000000000000000000000000000000000000000000000000000000000000011000000c6396630396632393532643334353238633733336639343631356366633339626335353536313966633535306464346136376261323230386365386538363761613364313361366566393964666265333263363937346161396132313530643231656361323963333334396535396331336239303831663163313162343430616334643334353564656462653465653064653135613861663632306434633836323437643964313332646531626236646132336435666639643864666664613232626139613834") diff --git a/tests/integration/nano/test_sign_increase_paid_storage.py b/tests/integration/nano/test_sign_increase_paid_storage.py index 2ffe79c74..748a7d882 100755 --- a/tests/integration/nano/test_sign_increase_paid_storage.py +++ b/tests/integration/nano/test_sign_increase_paid_storage.py @@ -13,9 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check signing increase paid storage""" + from pathlib import Path -from utils.app import Screen, DEFAULT_ACCOUNT +from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT from utils.message import Message # Operation (0): Increase paid storage @@ -24,10 +26,11 @@ # Amount: 5 # Destination: KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT -def test_sign_increase_paid_storage(app): +def test_sign_increase_paid_storage(app: TezosAppScreen): + """Check signing increase paid storage""" test_name = Path(__file__).stem - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000007100ffdd6102321bc251e4a5190ad5b12b251069d9b4904e0203040501000000000000000000000000000000000000000000") diff --git a/tests/integration/nano/test_sign_micheline_without_hash.py b/tests/integration/nano/test_sign_micheline_without_hash.py index de8fb0c5c..e9e373dfe 100755 --- a/tests/integration/nano/test_sign_micheline_without_hash.py +++ b/tests/integration/nano/test_sign_micheline_without_hash.py @@ -13,17 +13,20 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check signing micheline wihout getting hash""" + from pathlib import Path -from utils.app import Screen, DEFAULT_ACCOUNT +from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT from utils.message import Message # Expression: {"CACA";"POPO";"BOUDIN"} -def test_sign_micheline_without_hash(app): +def test_sign_micheline_without_hash(app: TezosAppScreen): + """Check signing micheline wihout getting hash""" test_name = Path(__file__).stem - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) message = Message.from_bytes("05020000001d0100000004434143410100000004504f504f0100000006424f5544494e") diff --git a/tests/integration/nano/test_sign_origination.py b/tests/integration/nano/test_sign_origination.py index 3f559a398..82c3da918 100755 --- a/tests/integration/nano/test_sign_origination.py +++ b/tests/integration/nano/test_sign_origination.py @@ -13,9 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check signing origination""" + from pathlib import Path -from utils.app import Screen, DEFAULT_ACCOUNT +from utils.app import TezosAppScreen, DEFAULT_ACCOUNT from utils.message import Message # Operation (0): Origination @@ -26,7 +28,8 @@ # Code: UNPAIR # Storage: pair "1" 2 -def test_sign_origination(app): +def test_sign_origination(app: TezosAppScreen): + """Check signing origination""" test_name = Path(__file__).stem app.setup_expert_mode() diff --git a/tests/integration/nano/test_sign_proposals.py b/tests/integration/nano/test_sign_proposals.py index 816ebdcfb..0cc09c172 100755 --- a/tests/integration/nano/test_sign_proposals.py +++ b/tests/integration/nano/test_sign_proposals.py @@ -13,9 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check signing proposals""" + from pathlib import Path -from utils.app import Screen, DEFAULT_ACCOUNT +from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT from utils.message import Message # Operation (0): Proposals @@ -24,10 +26,11 @@ # Proposal (0): ProtoALphaALphaALphaALphaALphaALphaALpha61322gcLUGH # Proposal (1): ProtoALphaALphaALphaALphaALphaALphaALphabc2a7ebx6WB -def test_sign_proposals(app): +def test_sign_proposals(app: TezosAppScreen): + """Check signing proposals""" test_name = Path(__file__).stem - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000000500ffdd6102321bc251e4a5190ad5b12b251069d9b400000020000000400bcd7b2cadcd87ecb0d5c50330fb59feed7432bffecede8a09a2b86cfb33847b0bcd7b2cadcd87ecb0d5c50330fb59feed7432bffecede8a09a2b86dac301a2d") diff --git a/tests/integration/nano/test_sign_register_global_constant.py b/tests/integration/nano/test_sign_register_global_constant.py index c9294f607..1c26424eb 100755 --- a/tests/integration/nano/test_sign_register_global_constant.py +++ b/tests/integration/nano/test_sign_register_global_constant.py @@ -13,9 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check signing register global constant""" + from pathlib import Path -from utils.app import Screen, DEFAULT_ACCOUNT +from utils.app import TezosAppScreen, DEFAULT_ACCOUNT from utils.message import Message # Operation (0): Register global constant @@ -23,7 +25,8 @@ # Storage limit: 4 # Value: Pair "1" 2 -def test_sign_register_global_constant(app): +def test_sign_register_global_constant(app: TezosAppScreen): + """Check signing register global constant""" test_name = Path(__file__).stem app.setup_expert_mode() diff --git a/tests/integration/nano/test_sign_reveal.py b/tests/integration/nano/test_sign_reveal.py index 19796786a..b8abed62e 100755 --- a/tests/integration/nano/test_sign_reveal.py +++ b/tests/integration/nano/test_sign_reveal.py @@ -13,9 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check signing reveal""" + from pathlib import Path -from utils.app import Screen, DEFAULT_ACCOUNT +from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT from utils.message import Message # Operation (0): Reveal @@ -23,10 +25,11 @@ # Storage limit: 4 # Public key: edpkuXX2VdkdXzkN11oLCb8Aurdo1BTAtQiK8ZY9UPj2YMt3AHEpcY -def test_sign_reveal(app): +def test_sign_reveal(app: TezosAppScreen): + """Check signing reveal""" test_name = Path(__file__).stem - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006b00ffdd6102321bc251e4a5190ad5b12b251069d9b4904e02030400747884d9abdf16b3ab745158925f567e222f71225501826fa83347f6cbe9c393") diff --git a/tests/integration/nano/test_sign_sc_rollup_add_messages.py b/tests/integration/nano/test_sign_sc_rollup_add_messages.py index e84c4ec36..5d020781e 100755 --- a/tests/integration/nano/test_sign_sc_rollup_add_messages.py +++ b/tests/integration/nano/test_sign_sc_rollup_add_messages.py @@ -13,9 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check signing smart rollup add message""" + from pathlib import Path -from utils.app import Screen, DEFAULT_ACCOUNT +from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT from utils.message import Message # Operation (0): SR: send messages @@ -25,10 +27,11 @@ # Message (1): 67 # Message (2): 89abcdef -def test_sign_sc_rollup_add_messages(app): +def test_sign_sc_rollup_add_messages(app: TezosAppScreen): + """Check signing smart rollup add message""" test_name = Path(__file__).stem - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) message = Message.from_bytes("030000000000000000000000000000000000000000000000000000000000000000c900ffdd6102321bc251e4a5190ad5b12b251069d9b4904e020304000000140000000301234500000001670000000489abcdef") diff --git a/tests/integration/nano/test_sign_sc_rollup_execute_outbox_message.py b/tests/integration/nano/test_sign_sc_rollup_execute_outbox_message.py index 0e61d14e9..b5083c355 100755 --- a/tests/integration/nano/test_sign_sc_rollup_execute_outbox_message.py +++ b/tests/integration/nano/test_sign_sc_rollup_execute_outbox_message.py @@ -13,9 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check signing smart rollup execute outbox message""" + from pathlib import Path -from utils.app import Screen, DEFAULT_ACCOUNT +from utils.app import TezosAppScreen, DEFAULT_ACCOUNT from utils.message import Message # Operation (0): SR: execute outbox message @@ -25,7 +27,8 @@ # Commitment: src12UJzB8mg7yU6nWPzicH7ofJbFjyJEbHvwtZdfRXi8DQHNp1LY8 # Output proof: 396630396632393532643334353238633733336639343631356366633339626335353536313966633535306464346136376261323230386365386538363761613364313361366566393964666265333263363937346161396132313530643231656361323963333334396535396331336239303831663163313162343430616334643334353564656462653465653064653135613861663632306434633836323437643964313332646531626236646132336435666639643864666664613232626139613834 -def test_sign_sc_rollup_execute_outbox_message(app): +def test_sign_sc_rollup_execute_outbox_message(app: TezosAppScreen): + """Check signing smart rollup execute outbox message""" test_name = Path(__file__).stem app.setup_expert_mode() diff --git a/tests/integration/nano/test_sign_sc_rollup_originate.py b/tests/integration/nano/test_sign_sc_rollup_originate.py index dfe6f40fa..7adbdfd3b 100755 --- a/tests/integration/nano/test_sign_sc_rollup_originate.py +++ b/tests/integration/nano/test_sign_sc_rollup_originate.py @@ -13,9 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check signing smart rollup originate""" + from pathlib import Path -from utils.app import Screen, DEFAULT_ACCOUNT +from utils.app import TezosAppScreen, DEFAULT_ACCOUNT from utils.message import Message # Operation (0): SR: originate @@ -28,14 +30,15 @@ # Whitelist (1): tz2WmivuMG8MMRKMEmzKRMMxMApxZQWYNS4W # Whitelist (2): tz3XMQscBFM9vPmpbYMavMmwxRMUWvWGZMQQ -def test_sign_sc_rollup_originate(app): +def test_sign_sc_rollup_originate(app: TezosAppScreen): + """Check signing smart rollup originate""" test_name = Path(__file__).stem app.setup_expert_mode() sc_rollup_originate_with_missing_white_list = "030000000000000000000000000000000000000000000000000000000000000000c800ffdd6102321bc251e4a5190ad5b12b251069d9b4904e02030400000000c63966303966323935326433343532386337333366393436313563666333396263353535363139666335353064643461363762613232303863653865383637616133643133613665663939646662653332633639373461613961323135306432316563613239633333343965353963313362393038316631633131623434306163346433343535646564626534656530646531356138616636323064346338363234376439643133326465316262366461323364356666396438646666646132326261396138340000000a07070100000001310002" - def check_sign(name: str, whitelist: bytes): + def check_sign(name: str, whitelist: str): message = Message.from_bytes(sc_rollup_originate_with_missing_white_list + whitelist) @@ -61,6 +64,9 @@ def check_sign(name: str, whitelist: bytes): # tz2WmivuMG8MMRKMEmzKRMMxMApxZQWYNS4W; # tz3XMQscBFM9vPmpbYMavMmwxRMUWvWGZMQQ # ] - check_sign("with_whitelist", "ff0000003f00ffdd6102321bc251e4a5190ad5b12b251069d9b401f6552df4f5ff51c3d13347cab045cfdb8b9bd8030278eb8b6ab9a768579cd5146b480789650c83f28e") + check_sign( + "with_whitelist", + "ff0000003f00ffdd6102321bc251e4a5190ad5b12b251069d9b401f6552df4f5ff51c3d13347cab045cfdb8b9bd8030278eb8b6ab9a768579cd5146b480789650c83f28e" + ) app.quit() diff --git a/tests/integration/nano/test_sign_set_consensus_key.py b/tests/integration/nano/test_sign_set_consensus_key.py index 684e8f036..97afa14ba 100755 --- a/tests/integration/nano/test_sign_set_consensus_key.py +++ b/tests/integration/nano/test_sign_set_consensus_key.py @@ -13,9 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check signing set consensus key""" + from pathlib import Path -from utils.app import Screen, DEFAULT_ACCOUNT +from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT from utils.message import Message # Operation (0): Set consensus key @@ -23,10 +25,11 @@ # Storage limit: 4 # Public key: edpkuXX2VdkdXzkN11oLCb8Aurdo1BTAtQiK8ZY9UPj2YMt3AHEpcY -def test_sign_set_consensus_key(app): +def test_sign_set_consensus_key(app: TezosAppScreen): + """Check signing set consensus key""" test_name = Path(__file__).stem - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000007200c921d4487c90b4472da6cc566a58d79f0d991dbf904e02030400747884d9abdf16b3ab745158925f567e222f71225501826fa83347f6cbe9c393") diff --git a/tests/integration/nano/test_sign_set_deposit_limit.py b/tests/integration/nano/test_sign_set_deposit_limit.py index 97ca4ddae..e90d55c30 100755 --- a/tests/integration/nano/test_sign_set_deposit_limit.py +++ b/tests/integration/nano/test_sign_set_deposit_limit.py @@ -13,9 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check signing set deposit limit""" + from pathlib import Path -from utils.app import Screen, DEFAULT_ACCOUNT +from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT from utils.message import Message # Operation (0): Set deposit limit @@ -23,10 +25,11 @@ # Storage limit: 4 # Staking limit: 0.02 XTZ -def test_sign_set_deposit_limit(app): +def test_sign_set_deposit_limit(app: TezosAppScreen): + """Check signing set deposit limit""" test_name = Path(__file__).stem - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) message = Message.from_bytes("03000000000000000000000000000000000000000000000000000000000000000070027c252d3806e6519ed064026bdb98edf866117331e0d40304f80204ffa09c01") diff --git a/tests/integration/nano/test_sign_too_long_operation.py b/tests/integration/nano/test_sign_too_long_operation.py index d19261707..e6b76f0cc 100644 --- a/tests/integration/nano/test_sign_too_long_operation.py +++ b/tests/integration/nano/test_sign_too_long_operation.py @@ -13,16 +13,21 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check signing too long operation behaviour""" + from pathlib import Path from typing import Callable -from utils.app import Screen, Screen_text, DEFAULT_ACCOUNT +from utils.app import ScreenText, TezosAppScreen, DEFAULT_ACCOUNT from utils.message import Message from utils.backend import StatusCode test_path = Path(Path(__file__).stem) -def _sign_too_long(app, msg: str, navigate: Callable[[], None]): +def _sign_too_long(app: TezosAppScreen, + msg: str, + navigate: Callable[[], None]): + """Sign a too long message""" app.setup_expert_mode() app.setup_blindsign_on() @@ -44,10 +49,11 @@ def _sign_too_long(app, msg: str, navigate: Callable[[], None]): app.quit() def _sign_decodable_too_long(app, msg: str, path: Path): + """Sign a decodable too long message""" def navigate() -> None: - app.navigate_until_text(Screen_text.Accept_risk, path / "clear_n_too_long_warning") - app.navigate_until_text(Screen_text.Sign_accept, path / "summary") + app.navigate_until_text(ScreenText.ACCEPT_RISK, path / "clear_n_too_long_warning") + app.navigate_until_text(ScreenText.SIGN_ACCEPT, path / "summary") _sign_too_long(app, msg, navigate) @@ -56,6 +62,7 @@ def _reject_too_long( msg: str, status_code: StatusCode, navigate: Callable[[], None]): + """Reject a too long message""" app.setup_expert_mode() app.setup_blindsign_on() @@ -123,27 +130,30 @@ def _reject_too_long( # Fee: 1 XTZ # Storage limit: 3 # Staking limit: 10 XTZ -basic_operation = "0300000000000000000000000000000000000000000000000000000000000000006b00ffdd6102321bc251e4a5190ad5b12b251069d9b4c0843d0b0104020320182716513907b6bab33f905396d031931c07e01bddd780780c1a56b9c086da6c00ffdd6102321bc251e4a5190ad5b12b251069d9b480897a0c0107c08db701000278eb8b6ab9a768579cd5146b480789650c83f28effff0d7570646174655f636f6e6669670000000607070005030a6e00ffdd6102321bc251e4a5190ad5b12b251069d9b4c08db7010d0105ff01ee572f02e5be5d097ba17369789582882e8abb87c900ffdd6102321bc251e4a5190ad5b12b251069d9b48092f4010e0106000000fa000000086d65737361676530000000086d65737361676531000000086d65737361676532000000086d65737361676533000000086d65737361676534000000086d65737361676535000000086d65737361676536000000086d65737361676537000000086d65737361676538000000086d65737361676539000000096d6573736167653130000000096d6573736167653131000000096d6573736167653132000000096d6573736167653133000000096d6573736167653134000000096d6573736167653135000000096d6573736167653136000000096d6573736167653137000000096d6573736167653138000000096d65737361676531397000ffdd6102321bc251e4a5190ad5b12b251069d9b4c0843d0f0103ff80ade204" +BASIC_OPERATION = "0300000000000000000000000000000000000000000000000000000000000000006b00ffdd6102321bc251e4a5190ad5b12b251069d9b4c0843d0b0104020320182716513907b6bab33f905396d031931c07e01bddd780780c1a56b9c086da6c00ffdd6102321bc251e4a5190ad5b12b251069d9b480897a0c0107c08db701000278eb8b6ab9a768579cd5146b480789650c83f28effff0d7570646174655f636f6e6669670000000607070005030a6e00ffdd6102321bc251e4a5190ad5b12b251069d9b4c08db7010d0105ff01ee572f02e5be5d097ba17369789582882e8abb87c900ffdd6102321bc251e4a5190ad5b12b251069d9b48092f4010e0106000000fa000000086d65737361676530000000086d65737361676531000000086d65737361676532000000086d65737361676533000000086d65737361676534000000086d65737361676535000000086d65737361676536000000086d65737361676537000000086d65737361676538000000086d65737361676539000000096d6573736167653130000000096d6573736167653131000000096d6573736167653132000000096d6573736167653133000000096d6573736167653134000000096d6573736167653135000000096d6573736167653136000000096d6573736167653137000000096d6573736167653138000000096d65737361676531397000ffdd6102321bc251e4a5190ad5b12b251069d9b4c0843d0f0103ff80ade204" -def test_sign_basic_too_long_operation(app): - _sign_decodable_too_long(app, basic_operation, basic_test_path / "accept") +def test_sign_basic_too_long_operation(app: TezosAppScreen): + """Check sign too long operation""" + _sign_decodable_too_long(app, BASIC_OPERATION, basic_test_path / "accept") -def test_reject_basic_too_long_operation_at_warning(app): +def test_reject_basic_too_long_operation_at_warning(app: TezosAppScreen): + """Check reject too long operation at warning""" path = basic_test_path / "reject_at_too_large_warning" def navigate() -> None: - app.navigate_until_text(Screen_text.Sign_reject, path / "clear_n_too_long_warning") + app.navigate_until_text(ScreenText.SIGN_REJECT, path / "clear_n_too_long_warning") - _reject_too_long(app, basic_operation, StatusCode.REJECT, navigate) + _reject_too_long(app, BASIC_OPERATION, StatusCode.REJECT, navigate) -def test_reject_basic_too_long_operation_at_summary(app): +def test_reject_basic_too_long_operation_at_summary(app: TezosAppScreen): + """Check reject too long operation at summary""" path = basic_test_path / "reject_at_summary" def navigate() -> None: - app.navigate_until_text(Screen_text.Accept_risk, path / "clear_n_too_long_warning") - app.navigate_until_text(Screen_text.Sign_reject, path / "summary") + app.navigate_until_text(ScreenText.ACCEPT_RISK, path / "clear_n_too_long_warning") + app.navigate_until_text(ScreenText.SIGN_REJECT, path / "summary") - _reject_too_long(app, basic_operation, StatusCode.REJECT, navigate) + _reject_too_long(app, BASIC_OPERATION, StatusCode.REJECT, navigate) ### Different kind of too long operation ### @@ -184,7 +194,8 @@ def navigate() -> None: # Storage limit: 5 # Amount: 5 XTZ # Destination: tz2JPgTWZZpxZZLqHMfS69UAy1UHm4Aw5iHu -def test_sign_too_long_operation_with_only_transactions(app): +def test_sign_too_long_operation_with_only_transactions(app: TezosAppScreen): + """Check sign too long operation that contains only transaction""" msg="0300000000000000000000000000000000000000000000000000000000000000006c00ffdd6102321bc251e4a5190ad5b12b251069d9b4000b010080ade2040000d2b3082b0fe03f0f7f39915cdba50e9d9b8ab057006c00ffdd6102321bc251e4a5190ad5b12b251069d9b4c0843d0c0101c0843d0001a55ae1858c1201514c97aa9122e77d3c4197a714006c00ffdd6102321bc251e4a5190ad5b12b251069d9b480897a0d010280897a000001e8e5519a315280a374c8765107979a6049de27006c00ffdd6102321bc251e4a5190ad5b12b251069d9b4c08db7010e0103c08db7010002d09584de879c4bbd3f494ed01b82e06a81e8e176006c00ffdd6102321bc251e4a5190ad5b12b251069d9b48092f4010f01048092f4010002cc8e146741cf31fc00123b8c26baf95c57421a3c006c00ffdd6102321bc251e4a5190ad5b12b251069d9b4c096b102100105c096b10200016e8874874d31c3fbd636e924d5a036a43ec8faa700" _sign_decodable_too_long(app, msg, test_path / "only_transactions") @@ -211,7 +222,8 @@ def test_sign_too_long_operation_with_only_transactions(app): # Proposal (17): ProxfordYmVfjWnRcgjWH36fW6PArwqykTFzotUxRs6gmTcZDuH # Proposal (18): PtParisBxoLz5gzMmn3d9WBQNoPSZakgnkMC2VNuQ3KXfUtUQeZ # Proposal (19): ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK -def test_sign_too_long_operation_without_fee_or_amount(app): +def test_sign_too_long_operation_without_fee_or_amount(app: TezosAppScreen): + """Check sign too long operation that doesn't have fees or amount""" msg="0300000000000000000000000000000000000000000000000000000000000000000500ffdd6102321bc251e4a5190ad5b12b251069d9b400000020000002800bcd7db2d718ba94e85bd262681049852e1f58512aa552124330d657845c73b70bcd7ffca03f57e38453f0d3e84c302403c05357448b4c2daef8b3a8be3c69c1000000000000000000000000000000000000000000000000000000000000000038ecdef0cd08640f318a9b055f6b0d0c9ae030913a871d9b9d86fb846317da213d0b4bacb5c3e152a167da26fefc266bd3a0e14fc4e41e6c53623bf482833da23e5e3a606afab74a59ca09e333633e2770b6492c5e594455b71e9a2f0ea92afb40cab83d3f37a64da26b57ad3d0432ae881293a25169ada387bfc74a1cbf9e6ec7ad4f7a000e28e9eefc58de8ea1172de843242bd2e688779953d3416a44640b4596285c6871691e25196c6a8d26d90a3ac91375731e3926103c517a13a0ba56cbb944f74244ea2681981f25995f8ebba8ff6cee8c036892fe901cb760c4e39ece5f061e34b5a21feab8dbdfe755ef17e70c9f565464f067ac5e7c02be830a488424520cf9bbf0a42770204d95dcc1f11e404fdb3e90c84850c4cfdb50c5c4b9d0a3f07b8adfcf61f5ca60f244ca9a876e76cbad9140980f6c88d0bf900ac6d8d2ea9f23a1a1011091841b12e32ce2f8c3facff27feee58bb7c9e90567d11425d57ed88be5a69815e39386a33f7dcad391f5f507e03b376e499272c86c6cf2a7d8325f11da2ff36934a586439f085655a833f2ff6a12d15e83b951fb684326e0d9b8c2314cc05ffa3fc655a98bb87155be4cf7ce67fee6b594ea9302e8655df20bf44c7d64e3d7da27d925d10af535fb36cef0ad41930c7929773f4731eba137dbff6586a04802d3f513c65a444d9d4debe42b17e9e7273f8f6c118ea3f4e06e0bcd7b2cadcd87ecb0d5c50330fb59feed7432bffecede8a09a2b86d1527c6a5" _sign_decodable_too_long(app, msg, test_path / "without_fee_or_amount") @@ -259,30 +271,33 @@ def test_sign_too_long_operation_without_fee_or_amount(app): # Fee: 5 XTZ # Storage limit: 3 # Value: 115792089237316195423570985008687907853269984665640564039457584007913129639936 -operation_with_too_large = "030000000000000000000000000000000000000000000000000000000000000000c900ffdd6102321bc251e4a5190ad5b12b251069d9b48092f4010b01060000017c000000086d65737361676530000000086d65737361676531000000086d65737361676532000000086d65737361676533000000086d65737361676534000000086d65737361676535000000086d65737361676536000000086d65737361676537000000086d65737361676538000000086d65737361676539000000096d6573736167653130000000096d6573736167653131000000096d6573736167653132000000096d6573736167653133000000096d6573736167653134000000096d6573736167653135000000096d6573736167653136000000096d6573736167653137000000096d6573736167653138000000096d6573736167653139000000096d6573736167653230000000096d6573736167653231000000096d6573736167653232000000096d6573736167653233000000096d6573736167653234000000096d6573736167653235000000096d6573736167653236000000096d6573736167653237000000096d6573736167653238000000096d65737361676532396f00ffdd6102321bc251e4a5190ad5b12b251069d9b4c096b1020c0103000000260080808080808080808080808080808080808080808080808080808080808080808080808020" +OPERATION_WITH_TOO_LARGE = "030000000000000000000000000000000000000000000000000000000000000000c900ffdd6102321bc251e4a5190ad5b12b251069d9b48092f4010b01060000017c000000086d65737361676530000000086d65737361676531000000086d65737361676532000000086d65737361676533000000086d65737361676534000000086d65737361676535000000086d65737361676536000000086d65737361676537000000086d65737361676538000000086d65737361676539000000096d6573736167653130000000096d6573736167653131000000096d6573736167653132000000096d6573736167653133000000096d6573736167653134000000096d6573736167653135000000096d6573736167653136000000096d6573736167653137000000096d6573736167653138000000096d6573736167653139000000096d6573736167653230000000096d6573736167653231000000096d6573736167653232000000096d6573736167653233000000096d6573736167653234000000096d6573736167653235000000096d6573736167653236000000096d6573736167653237000000096d6573736167653238000000096d65737361676532396f00ffdd6102321bc251e4a5190ad5b12b251069d9b4c096b1020c0103000000260080808080808080808080808080808080808080808080808080808080808080808080808020" -def test_sign_too_long_operation_with_too_large(app): +def test_sign_too_long_operation_with_too_large(app: TezosAppScreen): + """Check sign too long operation that will also fail the parsing""" path = too_large_test_path / "accept" def navigate() -> None: - app.navigate_until_text(Screen_text.Accept_risk, path / "clear_n_too_large_warning") - app.navigate_until_text(Screen_text.Sign_accept, path / "blindsigning") + app.navigate_until_text(ScreenText.ACCEPT_RISK, path / "clear_n_too_large_warning") + app.navigate_until_text(ScreenText.SIGN_ACCEPT, path / "blindsigning") - _sign_too_long(app, operation_with_too_large, navigate) + _sign_too_long(app, OPERATION_WITH_TOO_LARGE, navigate) -def test_reject_too_long_operation_with_too_large_at_too_large_warning(app): +def test_reject_too_long_operation_with_too_large_at_too_large_warning(app: TezosAppScreen): + """Check reject too long operation that will also fail the parsing at too large warning""" path = too_large_test_path / "reject_at_too_large_warning" def navigate() -> None: - app.navigate_until_text(Screen_text.Sign_reject, path / "clear_n_too_large_warning") + app.navigate_until_text(ScreenText.SIGN_REJECT, path / "clear_n_too_large_warning") - _reject_too_long(app, operation_with_too_large, StatusCode.PARSE_ERROR, navigate) + _reject_too_long(app, OPERATION_WITH_TOO_LARGE, StatusCode.PARSE_ERROR, navigate) -def test_reject_too_long_operation_with_too_large_at_blindsigning(app): +def test_reject_too_long_operation_with_too_large_at_blindsigning(app: TezosAppScreen): + """Check reject too long operation that will also fail the parsing at blindsigning""" path = too_large_test_path / "reject_at_blindsigning" def navigate() -> None: - app.navigate_until_text(Screen_text.Accept_risk, path / "clear_n_too_large_warning") - app.navigate_until_text(Screen_text.Sign_reject, path / "blindsigning") + app.navigate_until_text(ScreenText.ACCEPT_RISK, path / "clear_n_too_large_warning") + app.navigate_until_text(ScreenText.SIGN_REJECT, path / "blindsigning") - _reject_too_long(app, operation_with_too_large, StatusCode.REJECT, navigate) + _reject_too_long(app, OPERATION_WITH_TOO_LARGE, StatusCode.REJECT, navigate) diff --git a/tests/integration/nano/test_sign_transaction.py b/tests/integration/nano/test_sign_transaction.py index a62c42b2e..1d38253d0 100755 --- a/tests/integration/nano/test_sign_transaction.py +++ b/tests/integration/nano/test_sign_transaction.py @@ -13,9 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check signing transaction""" + from pathlib import Path -from utils.app import Screen, Screen_text, DEFAULT_ACCOUNT +from utils.app import Screen, ScreenText, TezosAppScreen, DEFAULT_ACCOUNT from utils.backend import StatusCode from utils.message import Message @@ -29,7 +31,8 @@ # Destination: KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT # Entrypoint: do # Parameter: CAR -def test_sign_transaction(app): +def test_sign_transaction(app: TezosAppScreen): + """Check signing transaction""" path = test_path / "basic" app.setup_expert_mode() @@ -57,7 +60,8 @@ def test_sign_transaction(app): # Destination: KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT # Entrypoint: root # Data: {pair "[" (pair "Z" (pair "Y" (pair "X" (pair "W" (pair "V" (pair "U" (pair "T" (pair "S" (pair "R" (pair "Q" (pair "P" (pair "O" (pair "N" (pair "M" (pair "L" (pair "K" (pair "J" (pair "I" (pair "H" (pair "G" (pair "F" (pair "E" (pair "D" (pair "C" (pair "B" {})))))))))))))))))))))))));pair 10 (pair 9 (pair 8 (pair 7 (pair 6 (pair 5 (pair 4 (pair 3 (pair 2 (pair 1 {})))))))))} -def test_reject_transaction(app): +def test_reject_transaction(app: TezosAppScreen): + """Check reject transaction""" path = test_path / "reject" app.setup_expert_mode() @@ -77,7 +81,8 @@ def test_reject_transaction(app): # Storage limit: 4 # Amount: 0.01 XTZ # Destination: KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT -def test_sign_simple_transaction(app): +def test_sign_simple_transaction(app: TezosAppScreen): + """Check sign not complex transaction""" path = test_path / "simple" app.setup_expert_mode() @@ -105,9 +110,10 @@ def test_sign_simple_transaction(app): # Destination: KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT # Entrypoint: do # Parameter: CAR -def test_too_complex_transaction(app): +def test_too_complex_transaction(app: TezosAppScreen): + """Check sign complex transaction""" path = test_path / "complex" - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316") @@ -115,7 +121,7 @@ def test_too_complex_transaction(app): message, with_hash=True, navigate=(lambda: app.navigate_until_text( - Screen_text.Back_home, + ScreenText.BACK_HOME, path)), status_code=StatusCode.REJECT) @@ -129,7 +135,8 @@ def test_too_complex_transaction(app): # Destination: tz2CJBeWWLsUDjVUDqGZL6od3DeBCNzYXrXk # Entrypoint: stake # Parameter: Unit -def test_sign_stake_transaction(app): +def test_sign_stake_transaction(app: TezosAppScreen): + """Check sign stake""" path = test_path / "stake" app.setup_expert_mode() @@ -157,7 +164,8 @@ def test_sign_stake_transaction(app): # Destination: tz2CJBeWWLsUDjVUDqGZL6od3DeBCNzYXrXk # Entrypoint: unstake # Parameter: Unit -def test_sign_unstake_transaction(app): +def test_sign_unstake_transaction(app: TezosAppScreen): + """Check sign unstake""" path = test_path / "unstake" app.setup_expert_mode() @@ -185,7 +193,8 @@ def test_sign_unstake_transaction(app): # Destination: tz2CJBeWWLsUDjVUDqGZL6od3DeBCNzYXrXk # Entrypoint: finalize_unstake # Parameter: Unit -def test_sign_finalize_unstake_transaction(app): +def test_sign_finalize_unstake_transaction(app: TezosAppScreen): + """Check sign finalize_unstake""" path = test_path / "finalize_unstake" app.setup_expert_mode() @@ -213,7 +222,8 @@ def test_sign_finalize_unstake_transaction(app): # Destination: tz2CJBeWWLsUDjVUDqGZL6od3DeBCNzYXrXk # Entrypoint: set_delegate_parameters # Parameter: Pair 4000000 (Pair 20000000 Unit) -def test_sign_set_delegate_parameters_transaction(app): +def test_sign_set_delegate_parameters_transaction(app: TezosAppScreen): + """Check sign set delegate parameters""" path = test_path / "delegate_parameters" app.setup_expert_mode() diff --git a/tests/integration/nano/test_sign_transfer_ticket.py b/tests/integration/nano/test_sign_transfer_ticket.py index 547bc29c9..708f0f61f 100755 --- a/tests/integration/nano/test_sign_transfer_ticket.py +++ b/tests/integration/nano/test_sign_transfer_ticket.py @@ -13,9 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check signing transfer ticket""" + from pathlib import Path -from utils.app import Screen, DEFAULT_ACCOUNT +from utils.app import TezosAppScreen, DEFAULT_ACCOUNT from utils.message import Message # Operation (0): Transfer ticket @@ -28,7 +30,8 @@ # Destination: KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT # Entrypoint: default -def test_sign_transfer_ticket(app): +def test_sign_transfer_ticket(app: TezosAppScreen): + """Check signing transfer ticket""" test_name = Path(__file__).stem app.setup_expert_mode() diff --git a/tests/integration/nano/test_sign_with_another_seed.py b/tests/integration/nano/test_sign_with_another_seed.py index 793b0a0cb..e09089b4d 100755 --- a/tests/integration/nano/test_sign_with_another_seed.py +++ b/tests/integration/nano/test_sign_with_another_seed.py @@ -13,12 +13,14 @@ # See the License for the specific language governing permissions and # limitations under the License. -import pytest +"""Check signing using another seed than [zebra*24]""" from pathlib import Path -from utils.account import Account, SIGNATURE_TYPE -from utils.app import Screen +import pytest + +from utils.account import Account, SigType +from utils.app import TezosAppScreen from utils.message import Message # Operation (0): Transaction @@ -30,13 +32,14 @@ # Parameter: CAR @pytest.mark.parametrize("seed", ["around dignity equal spread between young lawsuit interest climb wide that panther rather mom snake scene ecology reunion ice illegal brush"]) -def test_sign_with_another_seed(app): +def test_sign_with_another_seed(app: TezosAppScreen): + """Check signing using another seed than [zebra*24]""" test_name = Path(__file__).stem app.setup_expert_mode() account = Account("m/44'/1729'/0'/0'", - SIGNATURE_TYPE.ED25519, + SigType.ED25519, "edpkupntwMyERpYniuK1GDWquPaPU1wYsQgMirJPLGmC4Y5dMUsQNo") message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316") diff --git a/tests/integration/nano/test_sign_with_long_hash.py b/tests/integration/nano/test_sign_with_long_hash.py index b5cfb84f7..ad07111f9 100755 --- a/tests/integration/nano/test_sign_with_long_hash.py +++ b/tests/integration/nano/test_sign_with_long_hash.py @@ -13,9 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check signing transaction with a long destination hash""" + from pathlib import Path -from utils.app import Screen, DEFAULT_ACCOUNT +from utils.app import TezosAppScreen, DEFAULT_ACCOUNT from utils.message import Message # Operation (0): Transaction @@ -26,7 +28,8 @@ # Entrypoint: root # Parameter: 0 -def test_sign_with_long_hash(app): +def test_sign_with_long_hash(app: TezosAppScreen): + """Check signing transaction with a long destination hash""" test_name = Path(__file__).stem app.setup_expert_mode() diff --git a/tests/integration/nano/test_sign_with_small_packet.py b/tests/integration/nano/test_sign_with_small_packet.py index eacd9e713..8a482feaf 100755 --- a/tests/integration/nano/test_sign_with_small_packet.py +++ b/tests/integration/nano/test_sign_with_small_packet.py @@ -13,13 +13,16 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check signing using small packet instead of full size packets""" + from pathlib import Path from utils.account import Account -from utils.app import send_and_navigate, Screen, Screen_text, DEFAULT_ACCOUNT +from utils.app import send_and_navigate, Screen, ScreenText, TezosAppScreen, DEFAULT_ACCOUNT from utils.message import Message -def test_sign_with_small_packet(app): +def test_sign_with_small_packet(app: TezosAppScreen): + """Check signing using small packet instead of full size packets""" test_name = Path(__file__).stem app.setup_expert_mode() @@ -29,11 +32,11 @@ def check_sign_with_small_packet( message: Message, path: str) -> None: - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) data = send_and_navigate( - send=(lambda: app.backend.sign(account, message, apdu_size=10)), - navigate=(lambda: app.navigate_until_text(Screen_text.Sign_accept, path))) + send=lambda: app.backend.sign(account, message, apdu_size=10), + navigate=lambda: app.navigate_until_text(ScreenText.SIGN_ACCEPT, path)) app.checker.check_signature( account, diff --git a/tests/integration/nano/test_tz1_bip25519_sign_micheline_basic.py b/tests/integration/nano/test_tz1_bip25519_sign_micheline_basic.py index f3b59c7c6..6d5ec7414 100755 --- a/tests/integration/nano/test_tz1_bip25519_sign_micheline_basic.py +++ b/tests/integration/nano/test_tz1_bip25519_sign_micheline_basic.py @@ -13,21 +13,24 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check signing with bip25519""" + from pathlib import Path -from utils.account import Account, SIGNATURE_TYPE -from utils.app import Screen +from utils.account import Account, SigType +from utils.app import Screen, TezosAppScreen from utils.message import Message # Expression: {"CACA";"POPO";"BOUDIN"} -def test_tz1_bip25519_sign_micheline_basic(app): +def test_tz1_bip25519_sign_micheline_basic(app: TezosAppScreen): + """Check signing with bip25519""" test_name = Path(__file__).stem - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) account = Account("m/44'/1729'/0'/0'", - SIGNATURE_TYPE.BIP32_ED25519, + SigType.BIP32_ED25519, "edpkumJgSsSxkpiB5hmTq6eZcrmc6BsJtLAhYceFTiziFqje4mongz") message = Message.from_bytes("05020000001d0100000004434143410100000004504f504f0100000006424f5544494e") diff --git a/tests/integration/nano/test_tz1_ed25519_sign_micheline_basic.py b/tests/integration/nano/test_tz1_ed25519_sign_micheline_basic.py index c377f660d..05fa1d95f 100755 --- a/tests/integration/nano/test_tz1_ed25519_sign_micheline_basic.py +++ b/tests/integration/nano/test_tz1_ed25519_sign_micheline_basic.py @@ -13,21 +13,24 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check signing with ed25519""" + from pathlib import Path -from utils.account import Account, SIGNATURE_TYPE -from utils.app import Screen +from utils.account import Account, SigType +from utils.app import Screen, TezosAppScreen from utils.message import Message # Expression: {"CACA";"POPO";"BOUDIN"} -def test_tz1_ed25519_sign_micheline_basic(app): +def test_tz1_ed25519_sign_micheline_basic(app: TezosAppScreen): + """Check signing with ed25519""" test_name = Path(__file__).stem - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) account = Account("m/44'/1729'/0'/0'", - SIGNATURE_TYPE.ED25519, + SigType.ED25519, "edpkuXX2VdkdXzkN11oLCb8Aurdo1BTAtQiK8ZY9UPj2YMt3AHEpcY") message = Message.from_bytes("05020000001d0100000004434143410100000004504f504f0100000006424f5544494e") diff --git a/tests/integration/nano/test_tz2_sign_micheline_basic.py b/tests/integration/nano/test_tz2_sign_micheline_basic.py index 4d05c0b31..fa29e13f0 100755 --- a/tests/integration/nano/test_tz2_sign_micheline_basic.py +++ b/tests/integration/nano/test_tz2_sign_micheline_basic.py @@ -13,18 +13,22 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check signing with secp256k1""" + from pathlib import Path -from utils.account import Account, SIGNATURE_TYPE +from utils.account import Account, SigType +from utils.app import TezosAppScreen from utils.message import Message # Expression: {"CACA";"POPO";"BOUDIN"} -def test_tz2_sign_micheline_basic(app): +def test_tz2_sign_micheline_basic(app: TezosAppScreen): + """Check signing with secp256k1""" test_name = Path(__file__).stem account = Account("m/44'/1729'/0'/0'", - SIGNATURE_TYPE.SECP256K1, + SigType.SECP256K1, "sppk7bVy617DmGvXsMqcwsiLtnedTN2trUi5ugXcNig7en4rHJyunK1") message = Message.from_bytes("05020000001d0100000004434143410100000004504f504f0100000006424f5544494e") diff --git a/tests/integration/nano/test_tz3_sign_micheline_basic.py b/tests/integration/nano/test_tz3_sign_micheline_basic.py index c488d93ce..f0839b34d 100755 --- a/tests/integration/nano/test_tz3_sign_micheline_basic.py +++ b/tests/integration/nano/test_tz3_sign_micheline_basic.py @@ -13,18 +13,22 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check signing with p256""" + from pathlib import Path -from utils.account import Account, SIGNATURE_TYPE +from utils.account import Account, SigType +from utils.app import TezosAppScreen from utils.message import Message # Expression: {"CACA";"POPO";"BOUDIN"} -def test_tz3_sign_micheline_basic(app): +def test_tz3_sign_micheline_basic(app: TezosAppScreen): + """Check signing with p256""" test_name = Path(__file__).stem account = Account("m/44'/1729'/0'/0'", - SIGNATURE_TYPE.SECP256R1, + SigType.SECP256R1, "p2pk67fq5pzuMMABZ9RDrooYbLrgmnQbLt8z7PTGM9mskf7LXS5tdBG") message = Message.from_bytes("05020000001d0100000004434143410100000004504f504f0100000006424f5544494e") diff --git a/tests/integration/nano/test_unimplemented_commands.py b/tests/integration/nano/test_unimplemented_commands.py index aae16d49a..90e50aa11 100755 --- a/tests/integration/nano/test_unimplemented_commands.py +++ b/tests/integration/nano/test_unimplemented_commands.py @@ -13,25 +13,27 @@ # See the License for the specific language governing permissions and # limitations under the License. -from utils.app import Screen -from utils.backend import INS, StatusCode +"""Check unimplemented commands""" -def test_unimplemented_commands(app): +from utils.app import Screen, TezosAppScreen +from utils.backend import Ins, StatusCode +def test_unimplemented_commands(app: TezosAppScreen): + """Check unimplemented commands""" for ins in \ - [INS.AUTHORIZE_BAKING, \ - INS.SIGN_UNSAFE, \ - INS.RESET, \ - INS.QUERY_AUTH_KEY, \ - INS.QUERY_MAIN_HWM, \ - INS.SETUP, \ - INS.QUERY_ALL_HWM, \ - INS.DEAUTHORIZE, \ - INS.QUERY_AUTH_KEY_WITH_CURVE, \ - INS.HMAC, \ + [Ins.AUTHORIZE_BAKING, \ + Ins.SIGN_UNSAFE, \ + Ins.RESET, \ + Ins.QUERY_AUTH_KEY, \ + Ins.QUERY_MAIN_HWM, \ + Ins.SETUP, \ + Ins.QUERY_ALL_HWM, \ + Ins.DEAUTHORIZE, \ + Ins.QUERY_AUTH_KEY_WITH_CURVE, \ + Ins.HMAC, \ 0xff]: - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) with app.expect_apdu_failure(StatusCode.INVALID_INS): app.backend._exchange(ins) diff --git a/tests/integration/nano/test_version.py b/tests/integration/nano/test_version.py index 588a170da..c81640e53 100755 --- a/tests/integration/nano/test_version.py +++ b/tests/integration/nano/test_version.py @@ -13,11 +13,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -from utils.app import Screen +"""Module to test version instruction.""" -def test_version(app): +from utils.app import Screen, TezosAppScreen - app.assert_screen(Screen.Home) +def test_version(app: TezosAppScreen): + """Test that the app version is the same as the current version.""" + app.assert_screen(Screen.HOME) data = app.backend.version() diff --git a/tests/integration/nano/test_wrong_apdu_length.py b/tests/integration/nano/test_wrong_apdu_length.py index 170965a45..a5c444cd6 100755 --- a/tests/integration/nano/test_wrong_apdu_length.py +++ b/tests/integration/nano/test_wrong_apdu_length.py @@ -13,32 +13,34 @@ # See the License for the specific language governing permissions and # limitations under the License. -from utils.account import SIGNATURE_TYPE -from utils.app import Screen -from utils.backend import CLA, INDEX, INS, StatusCode +"""Check wrong apdu length behaviour""" -def test_wrong_apdu_length(app): +from utils.account import SigType +from utils.app import Screen, TezosAppScreen +from utils.backend import Cla, Index, Ins, StatusCode - app.assert_screen(Screen.Home) +def test_wrong_apdu_length(app: TezosAppScreen): + """Check wrong apdu length behaviour""" + app.assert_screen(Screen.HOME) raw = \ - int(CLA.DEFAULT).to_bytes(1, 'big') + \ - int(INS.VERSION).to_bytes(1, 'big') + \ - int(INDEX.FIRST).to_bytes(1, 'big') + \ - int(SIGNATURE_TYPE.ED25519).to_bytes(1, 'big') + \ + int(Cla.DEFAULT).to_bytes(1, 'big') + \ + int(Ins.VERSION).to_bytes(1, 'big') + \ + int(Index.FIRST).to_bytes(1, 'big') + \ + int(SigType.ED25519).to_bytes(1, 'big') + \ int(0x00).to_bytes(1, 'big') + \ int(0x00).to_bytes(1, 'big') # right size = 0x01 with app.expect_apdu_failure(StatusCode.WRONG_LENGTH_FOR_INS): app.backend.exchange_raw(raw) - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) raw = \ - int(CLA.DEFAULT).to_bytes(1, 'big') + \ - int(INS.VERSION).to_bytes(1, 'big') + \ - int(INDEX.FIRST).to_bytes(1, 'big') + \ - int(SIGNATURE_TYPE.ED25519).to_bytes(1, 'big') + \ + int(Cla.DEFAULT).to_bytes(1, 'big') + \ + int(Ins.VERSION).to_bytes(1, 'big') + \ + int(Index.FIRST).to_bytes(1, 'big') + \ + int(SigType.ED25519).to_bytes(1, 'big') + \ int(0x01).to_bytes(1, 'big') # right size = 0x00 with app.expect_apdu_failure(StatusCode.WRONG_LENGTH_FOR_INS): diff --git a/tests/integration/nano/test_wrong_class.py b/tests/integration/nano/test_wrong_class.py index f7d5978bb..7d79bd076 100755 --- a/tests/integration/nano/test_wrong_class.py +++ b/tests/integration/nano/test_wrong_class.py @@ -13,31 +13,33 @@ # See the License for the specific language governing permissions and # limitations under the License. -from utils.account import SIGNATURE_TYPE -from utils.app import Screen -from utils.backend import INDEX, INS, StatusCode +"""Check wrong apdu class behaviour""" -def test_wrong_class(app): +from utils.account import SigType +from utils.app import Screen, TezosAppScreen +from utils.backend import Index, Ins, StatusCode - app.assert_screen(Screen.Home) +def test_wrong_class(app: TezosAppScreen): + """Check wrong apdu class behaviour""" + app.assert_screen(Screen.HOME) raw = \ int(0x00).to_bytes(1, 'big') + \ - int(INS.VERSION).to_bytes(1, 'big') + \ - int(INDEX.FIRST).to_bytes(1, 'big') + \ - int(SIGNATURE_TYPE.ED25519).to_bytes(1, 'big') + \ + int(Ins.VERSION).to_bytes(1, 'big') + \ + int(Index.FIRST).to_bytes(1, 'big') + \ + int(SigType.ED25519).to_bytes(1, 'big') + \ int(0x00).to_bytes(1, 'big') with app.expect_apdu_failure(StatusCode.CLASS): app.backend.exchange_raw(raw) - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) raw = \ int(0x81).to_bytes(1, 'big') + \ - int(INS.VERSION).to_bytes(1, 'big') + \ - int(INDEX.FIRST).to_bytes(1, 'big') + \ - int(SIGNATURE_TYPE.ED25519).to_bytes(1, 'big') + \ + int(Ins.VERSION).to_bytes(1, 'big') + \ + int(Index.FIRST).to_bytes(1, 'big') + \ + int(SigType.ED25519).to_bytes(1, 'big') + \ int(0x00).to_bytes(1, 'big') with app.expect_apdu_failure(StatusCode.CLASS): diff --git a/tests/integration/nano/test_wrong_derivation_path.py b/tests/integration/nano/test_wrong_derivation_path.py index b601cf286..a14cd5e95 100755 --- a/tests/integration/nano/test_wrong_derivation_path.py +++ b/tests/integration/nano/test_wrong_derivation_path.py @@ -13,22 +13,25 @@ # See the License for the specific language governing permissions and # limitations under the License. -from utils.account import Account, SIGNATURE_TYPE -from utils.app import Screen -from utils.backend import INS, StatusCode +"""Check wrong derivation path behaviour""" -def test_wrong_derivation_path(app): +from utils.account import Account, SigType +from utils.app import Screen, TezosAppScreen +from utils.backend import Ins, StatusCode + +def test_wrong_derivation_path(app: TezosAppScreen): + """Check wrong derivation path behaviour""" wrong_number_index_account = Account( bytes.fromhex("058000002c800006c18000000080000000"), - SIGNATURE_TYPE.ED25519, + SigType.ED25519, "__unused__") wrong_length_account = Account( bytes.fromhex("048000002c800006c180000000800000"), - SIGNATURE_TYPE.ED25519, + SigType.ED25519, "__unused__") too_much_index_account = Account( bytes.fromhex("0b8000002c800006c1800000008000000080000000800000008000000080000000800000008000000080000000"), - SIGNATURE_TYPE.ED25519, + SigType.ED25519, "__unused__") for account in [wrong_number_index_account, @@ -36,10 +39,10 @@ def test_wrong_derivation_path(app): too_much_index_account]: for sender in [lambda account: app.backend.get_public_key(account, with_prompt=False), lambda account: app.backend.get_public_key(account, with_prompt=True), - lambda account: app.backend._ask_sign(INS.SIGN, account), - lambda account: app.backend._ask_sign(INS.SIGN_WITH_HASH, account)]: + lambda account: app.backend._ask_sign(Ins.SIGN, account), + lambda account: app.backend._ask_sign(Ins.SIGN_WITH_HASH, account)]: - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) with app.expect_apdu_failure(StatusCode.WRONG_LENGTH_FOR_INS): sender(account) diff --git a/tests/integration/nano/test_wrong_derivation_type.py b/tests/integration/nano/test_wrong_derivation_type.py index d105ca8b1..12b967ab4 100755 --- a/tests/integration/nano/test_wrong_derivation_type.py +++ b/tests/integration/nano/test_wrong_derivation_type.py @@ -13,19 +13,22 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Check wrong derivation type behaviour""" + from utils.account import Account -from utils.app import Screen -from utils.backend import INS, StatusCode +from utils.app import Screen, TezosAppScreen +from utils.backend import Ins, StatusCode -def test_wrong_derivation_type(app): +def test_wrong_derivation_type(app: TezosAppScreen): + """Check wrong derivation type behaviour""" account = Account("m/44'/1729'/0'/0'", 0x04, "__unused__") for sender in [lambda account: app.backend.get_public_key(account, with_prompt=False), lambda account: app.backend.get_public_key(account, with_prompt=True), - lambda account: app.backend._ask_sign(INS.SIGN, account), - lambda account: app.backend._ask_sign(INS.SIGN_WITH_HASH, account)]: + lambda account: app.backend._ask_sign(Ins.SIGN, account), + lambda account: app.backend._ask_sign(Ins.SIGN_WITH_HASH, account)]: - app.assert_screen(Screen.Home) + app.assert_screen(Screen.HOME) with app.expect_apdu_failure(StatusCode.WRONG_PARAM): sender(account) diff --git a/tests/integration/nano/test_wrong_index.py b/tests/integration/nano/test_wrong_index.py index a3b47ede8..d26e0fc72 100755 --- a/tests/integration/nano/test_wrong_index.py +++ b/tests/integration/nano/test_wrong_index.py @@ -13,16 +13,19 @@ # See the License for the specific language governing permissions and # limitations under the License. -from utils.app import DEFAULT_ACCOUNT, Screen -from utils.backend import INDEX, INS, StatusCode +"""Check wrong apdu index behaviour""" -def test_wrong_index(app): - for ins in [INS.GET_PUBLIC_KEY, - INS.PROMPT_PUBLIC_KEY]: - for index in [INDEX.OTHER, - INDEX.LAST]: +from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT +from utils.backend import Index, Ins, StatusCode - app.assert_screen(Screen.Home) +def test_wrong_index(app: TezosAppScreen): + """Check wrong apdu index behaviour""" + for ins in [Ins.GET_PUBLIC_KEY, + Ins.PROMPT_PUBLIC_KEY]: + for index in [Index.OTHER, + Index.LAST]: + + app.assert_screen(Screen.HOME) with app.expect_apdu_failure(StatusCode.WRONG_PARAM): app.backend._exchange(ins, diff --git a/tests/integration/nano/utils/account.py b/tests/integration/nano/utils/account.py index 8d6e1549f..39e3d074e 100644 --- a/tests/integration/nano/utils/account.py +++ b/tests/integration/nano/utils/account.py @@ -12,33 +12,46 @@ # See the License for the specific language governing permissions and # limitations under the License. -import base58 +"""Module providing an account interface.""" + from enum import IntEnum +from typing import Union + +import base58 from pytezos import pytezos from ragger.bip import pack_derivation_path -from typing import Union -class SIGNATURE_TYPE(IntEnum): + +class SigType(IntEnum): + """Class representing signature type.""" + ED25519 = 0x00 SECP256K1 = 0x01 SECP256R1 = 0x02 BIP32_ED25519 = 0x03 class Signature: + """Class representing signature.""" GENERIC_SIGNATURE_PREFIX = bytes.fromhex("04822b") # sig(96) + value: bytes + def __init__(self, value: bytes): value = Signature.GENERIC_SIGNATURE_PREFIX + value - self.value: bytes = base58.b58encode_check(value) + self.value = base58.b58encode_check(value) def __repr__(self) -> str: return self.value.hex() @classmethod - def from_tlv(self, tlv: Union[bytes, bytearray]) -> 'Signature': - if isinstance(tlv, bytes): tlv = bytearray(tlv) - # See: https://developers.ledger.com/docs/embedded-app/crypto-api/lcx__ecdsa_8h/#cx_ecdsa_sign + def from_tlv(cls, tlv: Union[bytes, bytearray]) -> 'Signature': + """Get Signature from tlv.""" + + if isinstance(tlv, bytes): + tlv = bytearray(tlv) + # See: + # https://developers.ledger.com/docs/embedded-app/crypto-api/lcx__ecdsa_8h/#cx_ecdsa_sign # TLV: 30 || L || 02 || Lr || r || 02 || Ls || s header_tag_index = 0 # Remove the unwanted parity information set here. @@ -64,38 +77,45 @@ def from_tlv(self, tlv: Union[bytes, bytearray]) -> 'Signature': s = tlv[s_index : s_index + s_len] # Sometimes \x00 are added or removed # A size adjustment is required here. - def adjust_size(bytes, size): - return bytes[-size:].rjust(size, b'\x00') - return Signature(adjust_size(r, 32) + adjust_size(s, 32)) + def adjust_size(raw, size): + return raw[-size:].rjust(size, b'\x00') + return cls(adjust_size(r, 32) + adjust_size(s, 32)) class Account: + """Class representing account.""" + + path: bytes + sig_type: Union[SigType, int] + public_key: str + def __init__(self, path: Union[str, bytes], - sig_type: SIGNATURE_TYPE, + sig_type: Union[SigType, int], public_key: str): - self.path: bytes = \ + self.path = \ pack_derivation_path(path) if isinstance(path, str) \ else path - self.sig_type: SIGNATURE_TYPE = sig_type - self.public_key: str = public_key + self.sig_type = sig_type + self.public_key = public_key def __repr__(self) -> str: return self.public_key @property def base58_decoded(self) -> bytes: + """Decodes public_key from base58 encoding.""" # Get the public_key without prefix public_key = base58.b58decode_check(self.public_key) if self.sig_type in [ - SIGNATURE_TYPE.ED25519, - SIGNATURE_TYPE.BIP32_ED25519 + SigType.ED25519, + SigType.BIP32_ED25519 ]: prefix = bytes.fromhex("0d0f25d9") # edpk(54) - elif self.sig_type == SIGNATURE_TYPE.SECP256K1: + elif self.sig_type == SigType.SECP256K1: prefix = bytes.fromhex("03fee256") # sppk(55) - elif self.sig_type == SIGNATURE_TYPE.SECP256R1: + elif self.sig_type == SigType.SECP256R1: prefix = bytes.fromhex("03b28b7f") # p2pk(55) else: assert False, \ @@ -106,8 +126,8 @@ def base58_decoded(self) -> bytes: public_key = public_key[len(prefix):] if self.sig_type in [ - SIGNATURE_TYPE.SECP256K1, - SIGNATURE_TYPE.SECP256R1 + SigType.SECP256K1, + SigType.SECP256R1 ]: assert public_key[0] in [0x02, 0x03], \ "Expected a prefix kind of 0x02 or 0x03 but got {public_key[0]}" @@ -116,6 +136,7 @@ def base58_decoded(self) -> bytes: return public_key def check_public_key(self, data: bytes) -> None: + """Checks if the data correspond to the public_key.""" # `data` should be: # length + kind + pk @@ -138,12 +159,15 @@ def check_public_key(self, data: bytes) -> None: def check_signature(self, signature: Union[bytes, Signature], message: Union[str, bytes]): - if isinstance(message, str): message = bytes.fromhex(message) + """Checks if signature correspond to a signature of message sign by the account.""" + + if isinstance(message, str): + message = bytes.fromhex(message) if isinstance(signature, bytes): signature = Signature(signature) \ if self.sig_type in [ - SIGNATURE_TYPE.ED25519, - SIGNATURE_TYPE.BIP32_ED25519 + SigType.ED25519, + SigType.BIP32_ED25519 ] \ else Signature.from_tlv(signature) ctxt = pytezos.using(key=self.public_key) diff --git a/tests/integration/nano/utils/app.py b/tests/integration/nano/utils/app.py index 4f2eda098..d8d8c7e24 100644 --- a/tests/integration/nano/utils/app.py +++ b/tests/integration/nano/utils/app.py @@ -13,39 +13,48 @@ # See the License for the specific language governing permissions and # limitations under the License. -import argparse -import git -import time +"""Tezos app backend.""" + from contextlib import contextmanager from enum import Enum +from io import BytesIO from multiprocessing import Process, Queue from pathlib import Path -from requests.exceptions import ConnectionError +import time +from typing import Callable, Generator, List, Optional, Tuple, Union + +import requests +import git from ragger.backend import SpeculosBackend from ragger.error import ExceptionRAPDU from ragger.navigator import NavInsID, NanoNavigator -from typing import Callable, Generator, List, Optional, Tuple, Union from .message import Message -from .account import Account, SIGNATURE_TYPE -from .backend import StatusCode, TezosBackend, APP_KIND +from .account import Account, SigType +from .backend import StatusCode, TezosBackend, AppKind version: Tuple[int, int, int] = (3, 0, 5) class TezosAPDUChecker: + """Helper to check APDU received.""" - def __init__(self, app_kind: APP_KIND): + app_kind: AppKind + + def __init__(self, app_kind: AppKind): self.app_kind = app_kind @property def commit(self) -> bytes: + """Current commit.""" repo = git.Repo(".") commit = repo.head.commit.hexsha[:8] - if repo.is_dirty(): commit += "*" + if repo.is_dirty(): + commit += "*" return bytes.fromhex(commit.encode('utf-8').hex() + "00") @property def version_bytes(self) -> bytes: + """Current version in bytes.""" return \ self.app_kind.to_bytes(1, byteorder='big') + \ version[0].to_bytes(1, byteorder='big') + \ @@ -53,16 +62,19 @@ def version_bytes(self) -> bytes: version[2].to_bytes(1, byteorder='big') def check_commit(self, commit: bytes) -> None: + """Check if the commit is the current commit.""" assert commit == self.commit, \ f"Expected commit {self.commit.hex()} but got {commit.hex()}" - def check_version(self, version: bytes) -> None: - assert version == self.version_bytes, \ - f"Expected version {self.version_bytes.hex()} but got {version.hex()}" + def check_version(self, raw_version: bytes) -> None: + """Check if the version is the current version.""" + assert raw_version == self.version_bytes, \ + f"Expected version {self.version_bytes.hex()} but got {raw_version.hex()}" def check_public_key(self, account: Account, public_key: bytes) -> None: + """Check that public_key is the account public key.""" account.check_public_key(public_key) def check_signature(self, @@ -70,17 +82,19 @@ def check_signature(self, message: Message, with_hash: bool, data: bytes) -> None: + """Check that data is a signature of message from account.""" if with_hash: assert data.startswith(message.hash), \ f"Expected a starting hash {message.hash.hex()} but got {data.hex()}" data = data[len(message.hash):] - account.check_signature(data, message.bytes) + account.check_signature(data, bytes(message)) MAX_ATTEMPTS = 50 def with_retry(f, attempts=MAX_ATTEMPTS): + """Try f until it succeeds or has been executed attempts times.""" while True: try: return f() @@ -93,6 +107,7 @@ def with_retry(f, attempts=MAX_ATTEMPTS): time.sleep(0.5) def run_simultaneously(processes: List[Process]) -> None: + """Executes multiples process at the same time.""" for process in processes: process.start() @@ -102,6 +117,7 @@ def run_simultaneously(processes: List[Process]) -> None: assert process.exitcode == 0, "Should have terminate successfully" def send_and_navigate(send: Callable[[], bytes], navigate: Callable[[], None]) -> bytes: + """Sends APDU and navigates.""" def _send(result_queue: Queue) -> None: res = send() @@ -114,6 +130,7 @@ def _send(result_queue: Queue) -> None: return result_queue.get() class SpeculosTezosBackend(TezosBackend, SpeculosBackend): + """Class representing Tezos app running on Speculos.""" # speculos can be slow to start up in a slow environment. # Here, we expect a little more @@ -121,7 +138,7 @@ def __enter__(self) -> "SpeculosTezosBackend": try: super().__enter__() return self - except Exception as e: + except Exception: process = self._client.process try: with_retry(self._client._wait_until_ready, attempts=5) @@ -139,50 +156,69 @@ def __enter__(self) -> "SpeculosTezosBackend": return self class Screen(str, Enum): - Home = "home" - Version = "version" - Settings = "settings" - Settings_expert_mode_disabled = "settings_expert_mode_disabled" - Settings_expert_mode_enabled = "settings_expert_mode_enabled" - Settings_blindsign_on = "settings_blindsign_on" - Settings_blindsign_off = "settings_blindsign_off" - Settings_back = "back" - Quit = "quit" - -class Screen_text(str, Enum): - Home = "Application" - Public_key_approve = "Approve" - Public_key_reject = "Reject" - Sign_accept = "Accept" - Sign_reject = "Reject" - Accept_risk = "Accept risk" - Back_home = "Home" - Blindsign = "blindsign" - Blindsign_nanos = "Blindsign" - - def blindsign(backend: SpeculosTezosBackend) -> "Screen_text": + """Class representing common, known app screens.""" + + HOME = "home" + VERSION = "version" + SETTINGS = "settings" + SETTINGS_EXPERT_MODE_DISABLED = "settings_expert_mode_disabled" + SETTINGS_EXPERT_MODE_ENABLED = "settings_expert_mode_enabled" + SETTINGS_BLINDSIGN_ON = "settings_blindsign_on" + SETTINGS_BLINDSIGN_OFF = "settings_blindsign_off" + SETTINGS_BACK = "back" + QUIT = "quit" + + def __str__(self) -> str: + return self.value + +class ScreenText(str, Enum): + """Class representing common, known app screen's text.""" + + HOME = "Application" + PUBLIC_KEY_APPROVE = "Approve" + PUBLIC_KEY_REJECT = "Reject" + SIGN_ACCEPT = "Accept" + SIGN_REJECT = "Reject" + ACCEPT_RISK = "Accept risk" + BACK_HOME = "Home" + BLINDSIGN = "blindsign" + BLINDSIGN_NANOS = "Blindsign" + + @classmethod + def blindsign(cls, backend: SpeculosTezosBackend) -> "ScreenText": + """Get blindsign text depending on device.""" if backend.firmware.device == "nanos": - return Screen_text.Blindsign_nanos - else: - return Screen_text.Blindsign + return cls.BLINDSIGN_NANOS + + return cls.BLINDSIGN class TezosAppScreen(): + """Class representing Tezos app management.""" + + backend: SpeculosTezosBackend + checker: TezosAPDUChecker + path: Path + snapshots_dir: Path + tmp_snapshots_dir: Path + snapshotted: List[str] + golden_run: bool + navigator: NanoNavigator def __init__(self, backend: SpeculosTezosBackend, - app_kind: APP_KIND, + app_kind: AppKind, golden_run: bool): self.backend = backend self.checker = TezosAPDUChecker(app_kind) - self.path: Path = Path(__file__).resolve().parent.parent - self.snapshots_dir: Path = self.path / "snapshots" / backend.firmware.name - self.tmp_snapshots_dir: Path = self.path / "snapshots-tmp" / backend.firmware.name + self.path = Path(__file__).resolve().parent.parent + self.snapshots_dir = self.path / "snapshots" / backend.firmware.name + self.tmp_snapshots_dir = self.path / "snapshots-tmp" / backend.firmware.name if not self.snapshots_dir.is_dir() and golden_run: self.snapshots_dir.mkdir(parents=True) if not self.tmp_snapshots_dir.is_dir(): self.tmp_snapshots_dir.mkdir(parents=True) - self.snapshotted: List[str] = [] + self.snapshotted = [] self.golden_run = golden_run self.navigator = NanoNavigator(backend, backend.firmware, golden_run) @@ -194,14 +230,19 @@ def __enter__(self) -> "TezosAppScreen": def __exit__(self, *args): self.backend.__exit__(*args) - def assert_screen(self, screen: Union[str, Screen], path: Optional[Union[str, Path]] = None) -> None: + def assert_screen(self, + screen: Union[str, Screen], + path: Optional[Union[str, Path]] = None) -> None: + """Check if the screen is the one expected.""" golden_run = self.golden_run and screen not in self.snapshotted if golden_run: self.snapshotted = self.snapshotted + [screen] input(f"Press ENTER to snapshot {screen}") - snapshots_dir = self.snapshots_dir if path is None else self.snapshots_dir / path - tmp_snapshots_dir = self.tmp_snapshots_dir if path is None else self.tmp_snapshots_dir / path + snapshots_dir = self.snapshots_dir if path is None \ + else self.snapshots_dir / path + tmp_snapshots_dir = self.tmp_snapshots_dir if path is None \ + else self.tmp_snapshots_dir / path if not snapshots_dir.is_dir() and golden_run: snapshots_dir.mkdir(parents=True) @@ -218,59 +259,65 @@ def check(): golden_run=golden_run) with_retry(check) - self.backend._last_screenshot = path + self.backend._last_screenshot = BytesIO(self.backend._client.get_screenshot()) def setup_expert_mode(self) -> None: - self.assert_screen(Screen.Home) + """Enable expert-mode from home screen.""" + self.assert_screen(Screen.HOME) self.backend.right_click() - self.assert_screen(Screen.Version) + self.assert_screen(Screen.VERSION) self.backend.right_click() - self.assert_screen(Screen.Settings) + self.assert_screen(Screen.SETTINGS) self.backend.both_click() - self.assert_screen(Screen.Settings_expert_mode_disabled) + self.assert_screen(Screen.SETTINGS_EXPERT_MODE_DISABLED) self.backend.both_click() - self.assert_screen(Screen.Settings_expert_mode_enabled) + self.assert_screen(Screen.SETTINGS_EXPERT_MODE_ENABLED) self.backend.left_click() - self.assert_screen(Screen.Settings_back) + self.assert_screen(Screen.SETTINGS_BACK) self.backend.both_click() - self.assert_screen(Screen.Home) + self.assert_screen(Screen.HOME) def setup_blindsign_on(self) -> None: - self.assert_screen(Screen.Home) + """Enable blindsign from home screen.""" + self.assert_screen(Screen.HOME) self.backend.right_click() - self.assert_screen(Screen.Version) + self.assert_screen(Screen.VERSION) self.backend.right_click() - self.assert_screen(Screen.Settings) + self.assert_screen(Screen.SETTINGS) self.backend.both_click() # expert_mode screen self.backend.right_click() - self.assert_screen(Screen.Settings_blindsign_off) + self.assert_screen(Screen.SETTINGS_BLINDSIGN_OFF) self.backend.both_click() - self.assert_screen(Screen.Settings_blindsign_on) + self.assert_screen(Screen.SETTINGS_BLINDSIGN_ON) self.backend.right_click() - self.assert_screen(Screen.Settings_back) + self.assert_screen(Screen.SETTINGS_BACK) self.backend.both_click() - self.assert_screen(Screen.Home) + self.assert_screen(Screen.HOME) def _quit(self) -> None: - self.assert_screen(Screen.Quit) + """Ensure quiting exit the app.""" + self.assert_screen(Screen.QUIT) try: self.backend.both_click() assert False, "Must have lost connection with speculos" - except ConnectionError: + except requests.exceptions.ConnectionError: pass def quit(self) -> None: - self.assert_screen(Screen.Home) + """Quit the app from home screen.""" + self.assert_screen(Screen.HOME) self.backend.right_click() - self.assert_screen(Screen.Version) + self.assert_screen(Screen.VERSION) self.backend.right_click() - self.assert_screen(Screen.Settings) + self.assert_screen(Screen.SETTINGS) self.backend.right_click() self._quit() - def navigate_until_text(self, text: Screen_text, path: Union[str, Path]) -> None: - if isinstance(path, str): path = Path(path) + def navigate_until_text(self, text: ScreenText, path: Union[str, Path]) -> None: + """Click right until the expected text is displayed, then both click.""" + if isinstance(path, str): + path = Path(path) self.navigator.\ navigate_until_text_and_compare(NavInsID.RIGHT_CLICK, [NavInsID.BOTH_CLICK], @@ -281,6 +328,7 @@ def navigate_until_text(self, text: Screen_text, path: Union[str, Path]) -> None @contextmanager def expect_apdu_failure(self, code: StatusCode) -> Generator[None, None, None]: + """Expect the body to fail with code.""" try: yield assert False, f"Expect fail with { code } but succeed" @@ -293,6 +341,7 @@ def _failing_send(self, send: Callable[[], bytes], navigate: Callable[[], None], status_code: StatusCode) -> None: + """Expect that send and navigates fails with status_code.""" def expected_failure_send() -> bytes: with self.expect_apdu_failure(status_code): send() @@ -305,19 +354,19 @@ def expected_failure_send() -> bytes: def provide_public_key(self, account: Account, path: Union[str, Path]) -> bytes: - + """Get the account's public key from the app after approving it.""" return send_and_navigate( - send=(lambda: self.backend.get_public_key(account, with_prompt=True)), - navigate=(lambda: self.navigate_until_text(Screen_text.Public_key_approve, path))) + send=lambda: self.backend.get_public_key(account, with_prompt=True), + navigate=lambda: self.navigate_until_text(ScreenText.PUBLIC_KEY_APPROVE, path)) def reject_public_key(self, account: Account, path: Union[str, Path]) -> None: - + """Reject the account's public key.""" self._failing_send( send=(lambda: self.backend.get_public_key(account, with_prompt=True)), navigate=(lambda: self.navigate_until_text( - Screen_text.Public_key_reject, + ScreenText.PUBLIC_KEY_REJECT, path)), status_code=StatusCode.REJECT) @@ -326,7 +375,7 @@ def _sign(self, message: Message, with_hash: bool, navigate: Callable[[], None]) -> bytes: - + """Requests to sign the message with account and navigates.""" return send_and_navigate( send=(lambda: self.backend.sign(account, message, with_hash)), navigate=navigate) @@ -336,24 +385,25 @@ def sign(self, message: Message, with_hash: bool, path: Union[str, Path]) -> bytes: - + """Sign the message with account.""" return self._sign( account, message, with_hash, - navigate=(lambda: self.navigate_until_text(Screen_text.Sign_accept, path))) + navigate=lambda: self.navigate_until_text(ScreenText.SIGN_ACCEPT, path)) def blind_sign(self, account: Account, message: Message, with_hash: bool, path: Union[str, Path]) -> bytes: - - if isinstance(path, str): path = Path(path) + """Blindsign the message with account.""" + if isinstance(path, str): + path = Path(path) def navigate() -> None: - self.navigate_until_text(Screen_text.Accept_risk, path / "clear") - self.navigate_until_text(Screen_text.Sign_accept, path / "blind") + self.navigate_until_text(ScreenText.ACCEPT_RISK, path / "clear") + self.navigate_until_text(ScreenText.SIGN_ACCEPT, path / "blind") return send_and_navigate( send=(lambda: self.backend.sign(account, message, with_hash)), @@ -365,7 +415,7 @@ def _failing_signing(self, with_hash: bool, navigate: Callable[[], None], status_code: StatusCode) -> None: - + """Expect requests signing and navigate fails with status_code.""" self._failing_send( send=(lambda: self.backend.sign(account, message, with_hash)), navigate=navigate, @@ -376,12 +426,13 @@ def reject_signing(self, message: Message, with_hash: bool, path: Union[str, Path]) -> None: + """Request and reject signing the message.""" self._failing_signing( account, message, with_hash, navigate=(lambda: self.navigate_until_text( - Screen_text.Sign_reject, + ScreenText.SIGN_REJECT, path)), status_code=StatusCode.REJECT) @@ -391,11 +442,12 @@ def hard_failing_signing(self, with_hash: bool, status_code: StatusCode, path: Union[str, Path]) -> None: + """Expect the signing request to hard fail.""" self._failing_signing(account, message, with_hash, navigate=(lambda: self.navigate_until_text( - Screen_text.Home, + ScreenText.HOME, path)), status_code=status_code) @@ -404,16 +456,17 @@ def parsing_error_signing(self, message: Message, with_hash: bool, path: Union[str, Path]) -> None: + """Expect the signing request to fail with parsing error.""" self._failing_signing(account, message, with_hash, navigate=(lambda: self.navigate_until_text( - Screen_text.Sign_reject, + ScreenText.SIGN_REJECT, path)), status_code=StatusCode.PARSE_ERROR) -DEFAULT_SEED = ('zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra') +DEFAULT_SEED = 'zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra zebra' DEFAULT_ACCOUNT = Account("m/44'/1729'/0'/0'", - SIGNATURE_TYPE.ED25519, + SigType.ED25519, "edpkuXX2VdkdXzkN11oLCb8Aurdo1BTAtQiK8ZY9UPj2YMt3AHEpcY") diff --git a/tests/integration/nano/utils/backend.py b/tests/integration/nano/utils/backend.py index 7746b9dcc..c76cd0cea 100644 --- a/tests/integration/nano/utils/backend.py +++ b/tests/integration/nano/utils/backend.py @@ -12,18 +12,25 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Tezos app backend.""" + from enum import IntEnum +from typing import Union + from ragger.backend.interface import BackendInterface, RAPDU from ragger.error import ExceptionRAPDU -from typing import Union -from .account import Account, SIGNATURE_TYPE +from .account import Account, SigType from .message import Message -class CLA(IntEnum): +class Cla(IntEnum): + """Class representing APDU class.""" + DEFAULT = 0x80 -class INS(IntEnum): +class Ins(IntEnum): + """Class representing instruction.""" + VERSION = 0x00 AUTHORIZE_BAKING = 0x01 GET_PUBLIC_KEY = 0x02 @@ -41,13 +48,17 @@ class INS(IntEnum): HMAC = 0x0e SIGN_WITH_HASH = 0x0f -class INDEX(IntEnum): +class Index(IntEnum): + """Class representing packet index.""" + FIRST = 0x00 OTHER = 0x01 LAST = 0x80 OTHER_LAST = 0x81 class StatusCode(IntEnum): + """Class representing the status code.""" + SECURITY = 0x6982 HID_REQUIRED = 0x6983 REJECT = 0x6985 @@ -66,26 +77,30 @@ class StatusCode(IntEnum): MEMORY_ERROR = 0x9200 PARSE_ERROR = 0x9405 -class APP_KIND(IntEnum): +class AppKind(IntEnum): + """Class representing the kind of app.""" + WALLET = 0x00 BAKING = 0x01 MAX_APDU_SIZE: int = 235 class TezosBackend(BackendInterface): + """Class representing the backen of the tezos app.""" def _exchange(self, - ins: INS, - index: INDEX = INDEX.FIRST, - sig_type: Union[SIGNATURE_TYPE, None] = None, + ins: Union[Ins, int], + index: Union[Index, int] = Index.FIRST, + sig_type: Union[SigType, int, None] = None, payload: bytes = b'') -> bytes: + """Override of `exchange` for the tezos app.""" - assert len(payload) <= MAX_APDU_SIZE, f"Apdu too large" + assert len(payload) <= MAX_APDU_SIZE, f"Apdu too large {len(payload)}" # Set to a non-existent value to ensure that p2 is unused p2: int = sig_type if sig_type is not None else 0xff - rapdu: RAPDU = self.exchange(CLA.DEFAULT, + rapdu: RAPDU = self.exchange(Cla.DEFAULT, ins, p1=index, p2=p2, @@ -97,28 +112,36 @@ def _exchange(self, return rapdu.data def git(self) -> bytes: - return self._exchange(INS.GIT) + """Requests the app commit.""" + return self._exchange(Ins.GIT) def version(self) -> bytes: - return self._exchange(INS.VERSION) + """Requests the app version.""" + return self._exchange(Ins.VERSION) def get_public_key(self, account: Account, with_prompt: bool = False) -> bytes: - - ins = INS.PROMPT_PUBLIC_KEY if with_prompt else INS.GET_PUBLIC_KEY - + """Requests the public key according to the account. + Use `with_prompt` ask user confirmation + """ + ins = Ins.PROMPT_PUBLIC_KEY if with_prompt else Ins.GET_PUBLIC_KEY return self._exchange(ins, sig_type=account.sig_type, payload=account.path) - def _ask_sign(self, ins: INS, account: Account) -> None: + def _ask_sign(self, ins: Ins, account: Account) -> None: + """Prepare to sign with the account.""" data: bytes = self._exchange(ins, sig_type=account.sig_type, payload=account.path) - assert not data - - def _continue_sign(self, ins: INS, payload: bytes, last: bool) -> bytes: - index: INDEX = INDEX.OTHER - if last: index = INDEX(index | INDEX.LAST) + assert not data, f"No data expected but got {data.hex()}" + + def _continue_sign(self, ins: Ins, payload: bytes, last: bool) -> bytes: + """Sends payload to sign. + Use `last` when sending the last packet + """ + index: Index = Index.OTHER + if last: + index = Index(index | Index.LAST) return self._exchange(ins, index, payload=payload) def sign(self, @@ -126,21 +149,21 @@ def sign(self, message: Message, with_hash: bool = False, apdu_size: int = MAX_APDU_SIZE) -> bytes: - msg = message.bytes + """Requests the signature of a message.""" + msg = bytes(message) assert msg, "Do not sign empty message" - ins = INS.SIGN_WITH_HASH if with_hash else INS.SIGN + ins = Ins.SIGN_WITH_HASH if with_hash else Ins.SIGN self._ask_sign(ins, account) - while(msg): + while msg: payload = msg[:apdu_size] msg = msg[apdu_size:] last = not msg data = self._continue_sign(ins, payload, last) if last: return data - else: - assert not data + assert not data, f"No data expected but got {data.hex()}" assert False, "We should have already returned" diff --git a/tests/integration/nano/utils/message.py b/tests/integration/nano/utils/message.py index 0062cc168..488803024 100644 --- a/tests/integration/nano/utils/message.py +++ b/tests/integration/nano/utils/message.py @@ -12,28 +12,37 @@ # See the License for the specific language governing permissions and # limitations under the License. +"""Implemenation of sent messages.""" + from hashlib import blake2b from typing import Union class Message: + """Class representing messages.""" HASH_SIZE = 32 + value: bytes + def __init__(self, value: bytes): - self.value: bytes = value + self.value = value @classmethod - def from_bytes(self, value: Union[str, bytes]) -> 'Message': - if isinstance(value, str): value = bytes.fromhex(value) - return Message(value) + def from_bytes(cls, value: Union[str, bytes]) -> 'Message': + """Get message from bytes or hex.""" + + if isinstance(value, str): + value = bytes.fromhex(value) + return cls(value) @property def hash(self) -> bytes: + """Hash of the message.""" + return blake2b( self.value, digest_size=Message.HASH_SIZE ).digest() - @property - def bytes(self) -> bytes: + def __bytes__(self) -> bytes: return self.value diff --git a/tests/integration/run_test_docker.sh b/tests/integration/run_test_docker.sh index cdb41f286..3a8ed0e52 100755 --- a/tests/integration/run_test_docker.sh +++ b/tests/integration/run_test_docker.sh @@ -33,5 +33,6 @@ docker run --rm -it -v "$(realpath .):/app" \ -c " apk add gmp-dev curl jq libsodium-dev git xxd procps; \ python3 -m venv tezos_test_env --system-site-package; \ source ./tezos_test_env/bin/activate; \ + python3 -m pip install --upgrade pip -q; \ python3 -m pip install -r tests/requirements.txt -q; \ ./tests/integration/run_test_local.sh -F -m $*" diff --git a/tests/requirements.txt b/tests/requirements.txt index 419eeb132..751725d2e 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -3,6 +3,7 @@ setuptools pkginfo cryptography base58 -pytezos +pytezos==3.13.4 GitPython pytest-xdist +ragger[tests,speculos,ledgerwallet] From 455bbed6c2d1bc894dfe5b28c325b52a2acae62a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Palmer=20S=C3=A9bastien?= Date: Thu, 12 Dec 2024 14:09:54 +0100 Subject: [PATCH 2/4] [fix-touch] stop receiving data if the stream is closed (#305) + add testing signing micheline expression --- app/src/ui_stream_nbgl.c | 2 +- .../test_sign_micheline/micheline_screen.png | Bin 0 -> 6325 bytes .../test_sign_micheline/operation_sign.png | Bin 0 -> 8754 bytes .../signing_successful.png | Bin 0 -> 6357 bytes .../test_sign_micheline/micheline_screen.png | Bin 0 -> 5875 bytes .../test_sign_micheline/operation_sign.png | Bin 0 -> 8140 bytes .../signing_successful.png | Bin 0 -> 6218 bytes .../integration/touch/test_sign_micheline.py | 39 ++++++++++++++++++ 8 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 tests/integration/touch/snapshots/flex/test_sign_micheline/micheline_screen.png create mode 100644 tests/integration/touch/snapshots/flex/test_sign_micheline/operation_sign.png create mode 100644 tests/integration/touch/snapshots/flex/test_sign_micheline/signing_successful.png create mode 100644 tests/integration/touch/snapshots/stax/test_sign_micheline/micheline_screen.png create mode 100644 tests/integration/touch/snapshots/stax/test_sign_micheline/operation_sign.png create mode 100644 tests/integration/touch/snapshots/stax/test_sign_micheline/signing_successful.png create mode 100644 tests/integration/touch/test_sign_micheline.py diff --git a/app/src/ui_stream_nbgl.c b/app/src/ui_stream_nbgl.c index ceda988f5..abb476e36 100644 --- a/app/src/ui_stream_nbgl.c +++ b/app/src/ui_stream_nbgl.c @@ -321,7 +321,7 @@ tz_ui_nav_cb(void) tz_parser_state *st = &global.keys.apdu.sign.u.clear.parser_state; // Continue receiving data from the apdu until s->full is true. - while (((s->total < 0) || ((s->current == s->total) && !s->full)) + while (((s->total < 0) || (s->current == s->total)) && !s->full && (st->errno < TZ_ERR_INVALID_TAG)) { PRINTF("tz_ui_nav_cb: Looping...\n"); tz_ui_continue(); diff --git a/tests/integration/touch/snapshots/flex/test_sign_micheline/micheline_screen.png b/tests/integration/touch/snapshots/flex/test_sign_micheline/micheline_screen.png new file mode 100644 index 0000000000000000000000000000000000000000..9426c75487fb414838bca96b96274d364fb8f85e GIT binary patch literal 6325 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 literal 0 HcmV?d00001 diff --git a/tests/integration/touch/snapshots/flex/test_sign_micheline/operation_sign.png b/tests/integration/touch/snapshots/flex/test_sign_micheline/operation_sign.png new file mode 100644 index 0000000000000000000000000000000000000000..5e787d8ed6eab5e6e486451526e7b56951ce0adb GIT binary patch literal 8754 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 literal 0 HcmV?d00001 diff --git a/tests/integration/touch/snapshots/flex/test_sign_micheline/signing_successful.png b/tests/integration/touch/snapshots/flex/test_sign_micheline/signing_successful.png new file mode 100644 index 0000000000000000000000000000000000000000..be51a9d5595cf5ea25f8f90b684306d30395f329 GIT binary patch literal 6357 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 UPsf12D=dzNgdJ`>c;@PV1L0-a-2eap literal 0 HcmV?d00001 diff --git a/tests/integration/touch/snapshots/stax/test_sign_micheline/micheline_screen.png b/tests/integration/touch/snapshots/stax/test_sign_micheline/micheline_screen.png new file mode 100644 index 0000000000000000000000000000000000000000..9ef4d5372e65ff562bd6ea2615ea9c6192dd9938 GIT binary patch literal 5875 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 literal 0 HcmV?d00001 diff --git a/tests/integration/touch/snapshots/stax/test_sign_micheline/operation_sign.png b/tests/integration/touch/snapshots/stax/test_sign_micheline/operation_sign.png new file mode 100644 index 0000000000000000000000000000000000000000..c1e5457dedbee82244cd3aa9919d7a5ce7c5d7d8 GIT binary patch literal 8140 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 LKz=PhkBIvZA|8oX literal 0 HcmV?d00001 diff --git a/tests/integration/touch/snapshots/stax/test_sign_micheline/signing_successful.png b/tests/integration/touch/snapshots/stax/test_sign_micheline/signing_successful.png new file mode 100644 index 0000000000000000000000000000000000000000..392165d4fc71395ae212fb0ca017ebdd204c126b GIT binary patch literal 6218 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 literal 0 HcmV?d00001 diff --git a/tests/integration/touch/test_sign_micheline.py b/tests/integration/touch/test_sign_micheline.py new file mode 100644 index 000000000..1aa67c383 --- /dev/null +++ b/tests/integration/touch/test_sign_micheline.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 +# Copyright 2023 Trilitech + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from utils import ( + tezos_app, + send_payload +) + +# full input: 0502000000080100000001300000 +# full output: Expression {"0";0} + +if __name__ == "__main__": + app = tezos_app(__file__) + + app.assert_home() + + app.send_initialize_msg("8004000011048000002c800006c18000000080000000") + send_payload(app, "800481ff0e0502000000080100000001300000") + + app.review.next() + app.assert_screen("micheline_screen") + + expected_apdu = "c871155802f26f35ea07a15c8002d836a8779ac8cc2feb0141f08831dad0326a0905cd4fc8f00615b7b4a78e7eaf7fcc0b7959e01e3119b6261ebd71d76d580b9000" + app.review_confirm_signing(expected_apdu) + + app.assert_home() + app.quit() From ac45a26f993a3b71a9601aceb3107b74c2e634a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Palmer?= Date: Thu, 12 Dec 2024 14:59:31 +0100 Subject: [PATCH 3/4] Bump to 3.0.6 --- app/Makefile | 2 +- tests/integration/app_vars.sh | 2 +- .../nano/snapshots/nanos/version.png | Bin 322 -> 311 bytes .../nano/snapshots/nanosp/version.png | Bin 344 -> 340 bytes .../nano/snapshots/nanox/version.png | Bin 344 -> 340 bytes tests/integration/nano/utils/app.py | 2 +- .../touch/snapshots/flex/info_flex_1.png | Bin 10233 -> 10239 bytes .../touch/snapshots/stax/info_stax.png | Bin 12047 -> 12091 bytes 8 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/Makefile b/app/Makefile index a7f94e55d..8b8394eb8 100644 --- a/app/Makefile +++ b/app/Makefile @@ -43,7 +43,7 @@ APPNAME = "Tezos Wallet" # Application version APPVERSION_M=3 APPVERSION_N=0 -APPVERSION_P=5 +APPVERSION_P=6 APPVERSION=$(APPVERSION_M).$(APPVERSION_N).$(APPVERSION_P) # COMMIT diff --git a/tests/integration/app_vars.sh b/tests/integration/app_vars.sh index bc465baea..0fa8945fe 100644 --- a/tests/integration/app_vars.sh +++ b/tests/integration/app_vars.sh @@ -19,6 +19,6 @@ export COMMIT_BYTES=$(printf '%s' "$COMMIT" | xxd -p -c 256) export VERSION_WALLET_TAG="00" export APPVERSION_M=3 export APPVERSION_N=0 -export APPVERSION_P=5 +export APPVERSION_P=6 export APPVERSION=$APPVERSION_M.$APPVERSION_N.$APPVERSION_P export VERSION_BYTES=$(printf "%02x%02x%02x%02x" "$VERSION_WALLET_TAG" "$APPVERSION_M" "$APPVERSION_N" "$APPVERSION_P") diff --git a/tests/integration/nano/snapshots/nanos/version.png b/tests/integration/nano/snapshots/nanos/version.png index 13709e2738b1c4c8740c40970f54bad82327d3a7..c52c35326269710dd00983fa6a083be7dc808ef7 100644 GIT binary patch delta 285 zcmV+&0pk9`0=EK?BYyz?Nkl(bfB_BKk`-1#>e~gf z1dU5+)t_r4sy!G6WOa%ll_u+Cse3KOtzKMqJ4bIuM_#JG08?bDzl@61RDUt_z!O#> zPd57xkDNp&CVGLkpBq$P7rI^WU|huh80@#8#N2Hb>CO2km@7f>wTLCi85%&^Tu+ll jJlI7DA%qY@kQR6WbWWQkcnT1}00000NkvXXu0mjfm_K+U delta 296 zcmV+@0oVSw0>T22BYy!2NklI6CzL{ zJB=VBgb+eV8v7>uW{f}l)J3>wAKZ5>e3eXZM<7%-zEY9P2LI2?!qtx55`06kHPK*72bQzBK4eqf~gV|>;i)& uC>a_+V)}+?Ga)uZaT}EoLI@#*WOD#!f01GfuvMr40000_$+Zn2Kr>D58Jdas-y=|xBN~0^%Uqo#U zoDRObC;Vb{;H#9&)uCNg=U;H9g{(Z7pSHL4zkdA!9nZa5>V?bGZq5p|my*!^eri91 z@aGdgE0dn>)_5eg#qQL_f0yHUqUE9)reEJNt1t6}clnfevZ{8kzHSnD|1xgT`3wo8 zm-5SmO<&6QNL3_>e>(Di!*a8GvrpSxn?3)w&pjh&*&i{E-%AoVYVYfaKUA;!B{E>+ z+w5t&8R@sTEin2~Ef_t)n5$vsH-{@*!pj&DUTmoU%wpMk)?ml;19w59p00i_>zopr E0A+29r~m)} delta 317 zcmcb@bc1PvO1-?Ni(^Q|oVPck`3@-vv?iLoYx%36`Rx(&M1|=K#ozke{$H)M)Z__I zk~aqf0z6pc;^K1a+d22SM^9HV?H5VjGVf4U9e2RGr&HE+9Fe&E_0Ebs4p+%fyicbV zEog7DU8{a!`eL2Qy!S&rKiMu;4_O?<`_K5b?wk60#!Sy?tAjeNO-^r%`ntIBUeWnC z+zT!!ul9Osd|$Ia`obp-_uu~27jr9LG0oU>>}koWwwe<6se2b6ao-!J_Ho`j)n7er zij)5(S_Mx2cW_0cYMG+_$+Zn2Kr>D58Jdas-y=|xBN~0^%Uqo#U zoDRObC;Vb{;H#9&)uCNg=U;H9g{(Z7pSHL4zkdA!9nZa5>V?bGZq5p|my*!^eri91 z@aGdgE0dn>)_5eg#qQL_f0yHUqUE9)reEJNt1t6}clnfevZ{8kzHSnD|1xgT`3wo8 zm-5SmO<&6QNL3_>e>(Di!*a8GvrpSxn?3)w&pjh&*&i{E-%AoVYVYfaKUA;!B{E>+ z+w5t&8R@sTEin2~Ef_t)n5$vsH-{@*!pj&DUTmoU%wpMk)?ml;19w59p00i_>zopr E0A+29r~m)} delta 317 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 literal 10233 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 literal 12047 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 Date: Thu, 12 Dec 2024 16:56:23 +0100 Subject: [PATCH 4/4] [test] explicits messages (#301) * [test] abstract Message and instantiate RawMessage * [test] build transaction * [test] build failing-noop * [test] build reveal * [test] build origination * [test] build delegation * [test] build register-global-constant * [test] build transfer-ticket * [test] build smart-rollup-add-messages * [test] build smart-rollup-execute-outbox-message * [test] build proposals * [test] build ballot * [test] build set-deposit-limit * [test] build increase-paid-storage * [test] build update-consensus-key * [test] build smart-rollup-originate * [test] build operations group * [test] build micheline expression --- tests/integration/.pylintrc | 1 + .../test_nanos_regression_batched_ops.py | 38 +- ...anosp_regression_potential_empty_screen.py | 30 +- ..._press_right_works_across_apdu_recieves.py | 6 +- .../test_nanox_regression_batched_ops.py | 38 +- .../integration/nano/test_blindsign_reject.py | 7 +- .../nano/test_blindsign_too_deep.py | 6 +- .../nano/test_blindsign_too_large.py | 6 +- .../nano/test_change_sign_instruction.py | 14 +- .../nano/test_ensure_always_clearsign.py | 22 +- tests/integration/nano/test_parsing_errors.py | 25 +- .../test_regression_continue_after_reject.py | 14 +- tests/integration/nano/test_sign_ballot.py | 15 +- .../nano/test_sign_complex_operation.py | 58 +- .../integration/nano/test_sign_delegation.py | 16 +- .../nano/test_sign_failing_noop.py | 7 +- .../nano/test_sign_increase_paid_storage.py | 18 +- .../nano/test_sign_micheline_without_hash.py | 6 +- .../integration/nano/test_sign_origination.py | 21 +- tests/integration/nano/test_sign_proposals.py | 17 +- .../test_sign_register_global_constant.py | 16 +- tests/integration/nano/test_sign_reveal.py | 16 +- .../nano/test_sign_sc_rollup_add_messages.py | 18 +- ...t_sign_sc_rollup_execute_outbox_message.py | 20 +- .../nano/test_sign_sc_rollup_originate.py | 51 +- .../nano/test_sign_set_consensus_key.py | 16 +- .../nano/test_sign_set_deposit_limit.py | 16 +- .../nano/test_sign_too_long_operation.py | 379 +++++---- .../integration/nano/test_sign_transaction.py | 163 ++-- .../nano/test_sign_transfer_ticket.py | 25 +- .../nano/test_sign_with_another_seed.py | 22 +- .../nano/test_sign_with_long_hash.py | 22 +- .../nano/test_sign_with_small_packet.py | 16 +- .../test_tz1_bip25519_sign_micheline_basic.py | 6 +- .../test_tz1_ed25519_sign_micheline_basic.py | 6 +- .../nano/test_tz2_sign_micheline_basic.py | 6 +- .../nano/test_tz3_sign_micheline_basic.py | 6 +- tests/integration/nano/utils/message.py | 792 +++++++++++++++++- 38 files changed, 1417 insertions(+), 544 deletions(-) diff --git a/tests/integration/.pylintrc b/tests/integration/.pylintrc index 0c5eedc64..db2b77d67 100644 --- a/tests/integration/.pylintrc +++ b/tests/integration/.pylintrc @@ -1,6 +1,7 @@ [MESSAGES CONTROL] disable= broad-exception-caught, + dangerous-default-value, global-statement, line-too-long, protected-access, diff --git a/tests/integration/nano/nanos/test_nanos_regression_batched_ops.py b/tests/integration/nano/nanos/test_nanos_regression_batched_ops.py index 08d460704..3143e874a 100755 --- a/tests/integration/nano/nanos/test_nanos_regression_batched_ops.py +++ b/tests/integration/nano/nanos/test_nanos_regression_batched_ops.py @@ -20,20 +20,7 @@ from conftest import requires_device from utils.app import TezosAppScreen, DEFAULT_ACCOUNT -from utils.message import Message - -# Operation (0): Transaction -# Fee: 0.39 XTZ -# Storage limit: 6 -# Amount: 0.02 XTZ -# Destination: tz1cfdVKpBb9VRBdny8BQ5RSK82UudAp2miM -# Entrypoint: jean_bob -# Parameter: {Pair {} (Right -76723569314251090535296646);Pair {Elt Unit (Pair {Left Unit} (Pair (Left 0x03F01167865DC63DFEE0E31251329CEAB660D94606) (Pair 0x0107B21FCA96C5763F67B286752C7AAEFC5931D15A Unit)))} (Right 3120123370638446806591421154959427514880865200209654970345);Pair {} (Left (Some Unit))} -# Operation (1): Transaction -# Fee: 0.65 XTZ -# Storage limit: 2 -# Amount: 0.06 XTZ -# Destination: KT1CYT8oACUcCSNTu2qfgB4fj5bD7szYrpti +from utils.message import OperationGroup, Transaction @requires_device("nanos") def test_nanos_regression_batched_ops(app: TezosAppScreen): @@ -42,7 +29,28 @@ def test_nanos_regression_batched_ops(app: TezosAppScreen): app.setup_expert_mode() - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c001597c45b11b421bb806a0c56c5da5638bf4b1adbf0e617090006a09c010000bac799dfc7f6af2ff0b95f83d023e68c895020baffff086a65616e5f626f620000009a020000009507070200000000050800c6bab5ccc8d891cd8de4b6f7070707020000004b0704030b070702000000040505030b070705050a0000001503f01167865dc63dfee0e31251329ceab660d9460607070a000000150107b21fca96c5763f67b286752c7aaefc5931d15a030b050800a9df9fc1e7eaa7a9c1f7bd87a9ba9cadf5b5b2cd829deea2b7fef9070707020000000005050509030b6c01ee572f02e5be5d097ba17369789582882e8abb8790d627063202e0d403012b704944f5b5fd30eed2ab4385478488e09fe04a0000") + message = OperationGroup([ + Transaction( + source = 'tz1McCh72NRhYmJBcWr3zDrLJAxnfR9swcFh', + fee = 390000, + counter = 9, + gas_limit = 0, + storage_limit = 6, + destination = 'tz1cfdVKpBb9VRBdny8BQ5RSK82UudAp2miM', + amount = 20000, + entrypoint = 'jean_bob', + parameter = [{'prim':'Pair','args':[[],{'prim':'Right','args':[{'int':-76723569314251090535296646}]}]},{'prim':'Pair','args':[[{'prim':'Elt','args':[{'prim':'Unit','args':[]},{'prim':'Pair','args':[[{'prim':'Left','args':[{'prim':'Unit','args':[]}]}],{'prim':'Pair','args':[{'prim':'Left','args':[{'bytes':"03F01167865DC63DFEE0E31251329CEAB660D94606"}]},{'prim':'Pair','args':[{'bytes':"0107B21FCA96C5763F67B286752C7AAEFC5931D15A"},{'prim':'Unit','args':[]}]}]}]}]}],{'prim':'Right','args':[{'int':3120123370638446806591421154959427514880865200209654970345}]},]},{'prim':'Pair','args':[[],{'prim':'Left','args':[{'prim':'Some','args':[{'prim':'Unit','args':[]}]}]}]}] + ), + Transaction( + source = 'tz2W3Tvcm64GjcV2bipUynnEsctLFz5Z6yRa', + fee = 650000, + counter = 6, + gas_limit = 50, + storage_limit = 2, + destination = 'KT1CYT8oACUcCSNTu2qfgB4fj5bD7szYrpti', + amount = 60000 + ) + ]) data = app.sign(DEFAULT_ACCOUNT, message, diff --git a/tests/integration/nano/nanosp/test_nanosp_regression_potential_empty_screen.py b/tests/integration/nano/nanosp/test_nanosp_regression_potential_empty_screen.py index d5c61eb9f..9bc45532b 100755 --- a/tests/integration/nano/nanosp/test_nanosp_regression_potential_empty_screen.py +++ b/tests/integration/nano/nanosp/test_nanosp_regression_potential_empty_screen.py @@ -20,21 +20,7 @@ from conftest import requires_device from utils.app import TezosAppScreen, DEFAULT_ACCOUNT -from utils.message import Message - -# Operation (0): Transfer ticket -# Fee: 0.01 XTZ -# Storage limit: 4 -# Contents: UNPAIR -# Type: pair "1" 2 -# Ticketer: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa -# Amount: 1 -# Destination: KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT -# Entrypoint: S -# -# S -# S -# S +from utils.message import TransferTicket @requires_device("nanosp") def test_nanosp_regression_potential_empty_screen(app: TezosAppScreen): @@ -43,7 +29,19 @@ def test_nanosp_regression_potential_empty_screen(app: TezosAppScreen): app.setup_expert_mode() - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000009e00ffdd6102321bc251e4a5190ad5b12b251069d9b4904e02030400000002037a0000000a076501000000013100020000ffdd6102321bc251e4a5190ad5b12b251069d9b4010100000000000000000000000000000000000000000000000008530a0a530a530a53") + message = TransferTicket( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 10000, + counter = 2, + gas_limit = 3, + storage_limit = 4, + ticket_contents = {'prim': 'UNPAIR'}, + ticket_ty = {'prim': 'pair', 'args': [{'string': '1'}, {'int': 2}]}, + ticket_ticketer = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + ticket_amount = 1, + destination = 'KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT', + entrypoint = 'S\n\nS\nS\nS' + ) data = app.sign(DEFAULT_ACCOUNT, message, diff --git a/tests/integration/nano/nanosp/test_nanosp_regression_press_right_works_across_apdu_recieves.py b/tests/integration/nano/nanosp/test_nanosp_regression_press_right_works_across_apdu_recieves.py index d1ab32855..b84c329cc 100755 --- a/tests/integration/nano/nanosp/test_nanosp_regression_press_right_works_across_apdu_recieves.py +++ b/tests/integration/nano/nanosp/test_nanosp_regression_press_right_works_across_apdu_recieves.py @@ -20,9 +20,7 @@ from conftest import requires_device from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT -from utils.message import Message - -# Expression: {IF_NONE {{SWAP;IF {DIP {{DROP 1;PUSH unit Unit;PUSH bool True;PUSH string ";L\\S?p$-Fq)VDg\n]te\no4v0_8)\""}}} {{DROP 2;PUSH unit Unit;PUSH bool False;PUSH string "Li-%*edF6~?E[5Kmu?dyviwJ^2\"\\d$FyQ>>!>D$g(Qg";PUSH string "*Tx>!>D$g(Qg'}]},{'prim':'PUSH','args':[{'prim':'string'},{'string':'*Tx None: diff --git a/tests/integration/nano/test_blindsign_too_large.py b/tests/integration/nano/test_blindsign_too_large.py index fc62d9b41..71c81695d 100755 --- a/tests/integration/nano/test_blindsign_too_large.py +++ b/tests/integration/nano/test_blindsign_too_large.py @@ -18,9 +18,7 @@ from pathlib import Path from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT -from utils.message import Message - -# Expression: 12345678901234567890123456789012345678901234567890123456789012345678901234567890 +from utils.message import MichelineExpr def test_blindsign_too_large(app: TezosAppScreen): """Check blindsigning on too large expression""" @@ -28,7 +26,7 @@ def test_blindsign_too_large(app: TezosAppScreen): app.assert_screen(Screen.HOME) - message = Message.from_bytes("050092abf8e3d9e5f8cfd9ae8a9fe5f28ea1d5b5abf1af82dae8a4b68df3d1889eb6f988f5e8d31a") + message = MichelineExpr({'int':12345678901234567890123456789012345678901234567890123456789012345678901234567890}) data = app.blind_sign(DEFAULT_ACCOUNT, message=message, diff --git a/tests/integration/nano/test_change_sign_instruction.py b/tests/integration/nano/test_change_sign_instruction.py index 1a12c1d38..3bc36732d 100755 --- a/tests/integration/nano/test_change_sign_instruction.py +++ b/tests/integration/nano/test_change_sign_instruction.py @@ -17,14 +17,24 @@ from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT from utils.backend import Ins, StatusCode -from utils.message import Message +from utils.message import Transaction def test_change_sign_instruction(app: TezosAppScreen): """Check signing instruction changes behaviour""" app.assert_screen(Screen.HOME) - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316") + message = Transaction( + source = 'tz2JPgTWZZpxZZLqHMfS69UAy1UHm4Aw5iHu', + fee = 50000, + counter = 8, + gas_limit = 54, + storage_limit = 45, + destination = 'KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT', + amount = 240000, + entrypoint = 'do', + parameter = {'prim': 'CAR'} + ) payload=bytes(message) app.backend._ask_sign(Ins.SIGN_WITH_HASH, DEFAULT_ACCOUNT) diff --git a/tests/integration/nano/test_ensure_always_clearsign.py b/tests/integration/nano/test_ensure_always_clearsign.py index 7d32f7a4a..84f00c170 100755 --- a/tests/integration/nano/test_ensure_always_clearsign.py +++ b/tests/integration/nano/test_ensure_always_clearsign.py @@ -18,15 +18,7 @@ from pathlib import Path from utils.app import TezosAppScreen, DEFAULT_ACCOUNT -from utils.message import Message - -# Operation (0): Transaction -# Fee: 0.01 XTZ -# Storage limit: 4 -# Amount: 0 XTZ -# Destination: KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT -# Entrypoint: root -# Data: {pair "[" (pair "Z" (pair "Y" (pair "X" (pair "W" (pair "V" (pair "U" (pair "T" (pair "S" (pair "R" (pair "Q" (pair "P" (pair "O" (pair "N" (pair "M" (pair "L" (pair "K" (pair "J" (pair "I" (pair "H" (pair "G" (pair "F" (pair "E" (pair "D" (pair "C" (pair "B" {})))))))))))))))))))))))));pair 10 (pair 9 (pair 8 (pair 7 (pair 6 (pair 5 (pair 4 (pair 3 (pair 2 (pair 1 {})))))))))} +from utils.message import Transaction def test_ensure_always_clearsign(app: TezosAppScreen): """Check clear signing never blindsign""" @@ -34,7 +26,17 @@ def test_ensure_always_clearsign(app: TezosAppScreen): app.setup_expert_mode() - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c00ffdd6102321bc251e4a5190ad5b12b251069d9b4904e0203040001000000000000000000000000000000000000000000ff01000001070200000102076501000000015b076501000000015a0765010000000159076501000000015807650100000001570765010000000156076501000000015507650100000001540765010000000153076501000000015207650100000001510765010000000150076501000000014f076501000000014e076501000000014d076501000000014c076501000000014b076501000000014a0765010000000149076501000000014807650100000001470765010000000146076501000000014507650100000001440765010000000143076501000000014202000000000765000a0765000907650008076500070765000607650005076500040765000307650002076500010200000000") + message = Transaction( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 10000, + counter = 2, + gas_limit = 3, + storage_limit = 4, + destination = 'KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT', + amount = 0, + entrypoint = 'root', + parameter = [{'prim':'pair','args':[{'string':"["},{'prim':'pair','args':[{'string':"Z"},{'prim':'pair','args':[{'string':"Y"},{'prim':'pair','args':[{'string':"X"},{'prim':'pair','args':[{'string':"W"},{'prim':'pair','args':[{'string':"V"},{'prim':'pair','args':[{'string':"U"},{'prim':'pair','args':[{'string':"T"},{'prim':'pair','args':[{'string':"S"},{'prim':'pair','args':[{'string':"R"},{'prim':'pair','args':[{'string':"Q"},{'prim':'pair','args':[{'string':"P"},{'prim':'pair','args':[{'string':"O"},{'prim':'pair','args':[{'string':"N"},{'prim':'pair','args':[{'string':"M"},{'prim':'pair','args':[{'string':"L"},{'prim':'pair','args':[{'string':"K"},{'prim':'pair','args':[{'string':"J"},{'prim':'pair','args':[{'string':"I"},{'prim':'pair','args':[{'string':"H"},{'prim':'pair','args':[{'string':"G"},{'prim':'pair','args':[{'string':"F"},{'prim':'pair','args':[{'string':"E"},{'prim':'pair','args':[{'string':"D"},{'prim':'pair','args':[{'string':"C"},{'prim':'pair','args':[{'string':"B"},[]]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]},{'prim':'pair','args':[{'int':10},{'prim':'pair','args':[{'int':9},{'prim':'pair','args':[{'int':8},{'prim':'pair','args':[{'int':7},{'prim':'pair','args':[{'int':6},{'prim':'pair','args':[{'int':5},{'prim':'pair','args':[{'int':4},{'prim':'pair','args':[{'int':3},{'prim':'pair','args':[{'int':2},{'prim':'pair','args':[{'int':1},[]]}]}]}]}]}]}]}]}]}]}] + ) data = app.sign(DEFAULT_ACCOUNT, message, diff --git a/tests/integration/nano/test_parsing_errors.py b/tests/integration/nano/test_parsing_errors.py index 05fece840..7b53124f2 100755 --- a/tests/integration/nano/test_parsing_errors.py +++ b/tests/integration/nano/test_parsing_errors.py @@ -19,7 +19,18 @@ from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT from utils.backend import StatusCode -from utils.message import Message +from utils.message import RawMessage + +# Operation (0): Transaction +# Source: tz2JPgTWZZpxZZLqHMfS69UAy1UHm4Aw5iHu +# Fee: 0.05 XTZ +# Gas limit: 54 +# Counter: 8 +# Storage limit: 45 +# Amount: 0.24 XTZ +# Destination: KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT +# Entrypoint: do +# Parameter: CAR # original bytes : 0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316 @@ -32,7 +43,7 @@ def make_path(name: str) -> Path: app.setup_expert_mode() - unknown_magic_bytes_message = Message.from_bytes("0100000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316") + unknown_magic_bytes_message = RawMessage("0100000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316") app.parsing_error_signing(DEFAULT_ACCOUNT, unknown_magic_bytes_message, @@ -41,7 +52,7 @@ def make_path(name: str) -> Path: app.assert_screen(Screen.HOME) - unknown_operation_message = Message.from_bytes("03000000000000000000000000000000000000000000000000000000000000000001016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316") + unknown_operation_message = RawMessage("03000000000000000000000000000000000000000000000000000000000000000001016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316") app.parsing_error_signing(DEFAULT_ACCOUNT, unknown_operation_message, @@ -50,7 +61,7 @@ def make_path(name: str) -> Path: app.assert_screen(Screen.HOME) - one_byte_removed_inside_message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e010000000000000000000000000000000000000000ff02000000020316") + one_byte_removed_inside_message = RawMessage("0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e010000000000000000000000000000000000000000ff02000000020316") app.parsing_error_signing(DEFAULT_ACCOUNT, one_byte_removed_inside_message, @@ -59,7 +70,7 @@ def make_path(name: str) -> Path: app.assert_screen(Screen.HOME) - one_byte_added_at_the_end_message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff0200000002031645") + one_byte_added_at_the_end_message = RawMessage("0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff0200000002031645") app.parsing_error_signing(DEFAULT_ACCOUNT, one_byte_added_at_the_end_message, @@ -68,7 +79,7 @@ def make_path(name: str) -> Path: app.assert_screen(Screen.HOME) - one_byte_added_inside_message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e0100000000000000000000000000000000000000000000ff02000000020316") + one_byte_added_inside_message = RawMessage("0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e0100000000000000000000000000000000000000000000ff02000000020316") app.parsing_error_signing(DEFAULT_ACCOUNT, one_byte_added_inside_message, @@ -77,7 +88,7 @@ def make_path(name: str) -> Path: app.assert_screen(Screen.HOME) - wrong_last_packet_message = Message.from_bytes("030000000000000000000000000000000000000000000000000000000000000000ce00ffdd6102321bc251e4a5190ad5b12b251069d9b4904e02030400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c63966303966323935326433343532386337333366393436313563666333396263353535363139666335353064643461363762613232303863653865383637616133643133613665663939646662653332633639373461613961323135306432316563613239633333343965353963313362393038316631") + wrong_last_packet_message = RawMessage("030000000000000000000000000000000000000000000000000000000000000000ce00ffdd6102321bc251e4a5190ad5b12b251069d9b4904e02030400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c63966303966323935326433343532386337333366393436313563666333396263353535363139666335353064643461363762613232303863653865383637616133643133613665663939646662653332633639373461613961323135306432316563613239633333343965353963313362393038316631") app.hard_failing_signing(DEFAULT_ACCOUNT, wrong_last_packet_message, diff --git a/tests/integration/nano/test_regression_continue_after_reject.py b/tests/integration/nano/test_regression_continue_after_reject.py index 1b1025691..ae5aca528 100755 --- a/tests/integration/nano/test_regression_continue_after_reject.py +++ b/tests/integration/nano/test_regression_continue_after_reject.py @@ -18,7 +18,7 @@ from pathlib import Path from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT -from utils.message import Message +from utils.message import Transaction def test_regression_continue_after_reject(app: TezosAppScreen): """Check the app still runs after rejects signing""" @@ -33,7 +33,17 @@ def make_path(name: str) -> Path: app.assert_screen(Screen.HOME) - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c00ffdd6102321bc251e4a5190ad5b12b251069d9b4904e0203040001000000000000000000000000000000000000000000ff01000001070200000102076501000000015b076501000000015a0765010000000159076501000000015807650100000001570765010000000156076501000000015507650100000001540765010000000153076501000000015207650100000001510765010000000150076501000000014f076501000000014e076501000000014d076501000000014c076501000000014b076501000000014a0765010000000149076501000000014807650100000001470765010000000146076501000000014507650100000001440765010000000143076501000000014202000000000765000a0765000907650008076500070765000607650005076500040765000307650002076500010200000000") + message = Transaction( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 10000, + counter = 2, + gas_limit = 3, + storage_limit = 4, + destination = 'KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT', + amount = 0, + entrypoint = 'root', + parameter = [{'prim':'pair','args':[{'string':"["},{'prim':'pair','args':[{'string':"Z"},{'prim':'pair','args':[{'string':"Y"},{'prim':'pair','args':[{'string':"X"},{'prim':'pair','args':[{'string':"W"},{'prim':'pair','args':[{'string':"V"},{'prim':'pair','args':[{'string':"U"},{'prim':'pair','args':[{'string':"T"},{'prim':'pair','args':[{'string':"S"},{'prim':'pair','args':[{'string':"R"},{'prim':'pair','args':[{'string':"Q"},{'prim':'pair','args':[{'string':"P"},{'prim':'pair','args':[{'string':"O"},{'prim':'pair','args':[{'string':"N"},{'prim':'pair','args':[{'string':"M"},{'prim':'pair','args':[{'string':"L"},{'prim':'pair','args':[{'string':"K"},{'prim':'pair','args':[{'string':"J"},{'prim':'pair','args':[{'string':"I"},{'prim':'pair','args':[{'string':"H"},{'prim':'pair','args':[{'string':"G"},{'prim':'pair','args':[{'string':"F"},{'prim':'pair','args':[{'string':"E"},{'prim':'pair','args':[{'string':"D"},{'prim':'pair','args':[{'string':"C"},{'prim':'pair','args':[{'string':"B"},[]]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]},{'prim':'pair','args':[{'int':10},{'prim':'pair','args':[{'int':9},{'prim':'pair','args':[{'int':8},{'prim':'pair','args':[{'int':7},{'prim':'pair','args':[{'int':6},{'prim':'pair','args':[{'int':5},{'prim':'pair','args':[{'int':4},{'prim':'pair','args':[{'int':3},{'prim':'pair','args':[{'int':2},{'prim':'pair','args':[{'int':1},[]]}]}]}]}]}]}]}]}]}]}] + ) app.reject_signing(DEFAULT_ACCOUNT, message, diff --git a/tests/integration/nano/test_sign_ballot.py b/tests/integration/nano/test_sign_ballot.py index bde516d19..30128cc30 100755 --- a/tests/integration/nano/test_sign_ballot.py +++ b/tests/integration/nano/test_sign_ballot.py @@ -18,13 +18,7 @@ from pathlib import Path from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT -from utils.message import Message - -# Operation (0): Ballot -# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa -# Period: 32 -# Proposal: ProtoALphaALphaALphaALphaALphaALphaALpha61322gcLUGH -# Ballot: yay +from utils.message import Ballot def test_sign_ballot(app: TezosAppScreen): """Check signing ballot""" @@ -32,7 +26,12 @@ def test_sign_ballot(app: TezosAppScreen): app.assert_screen(Screen.HOME) - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000000600ffdd6102321bc251e4a5190ad5b12b251069d9b4000000200bcd7b2cadcd87ecb0d5c50330fb59feed7432bffecede8a09a2b86cfb33847b00") + message = Ballot( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + proposal = 'ProtoALphaALphaALphaALphaALphaALphaALpha61322gcLUGH', + ballot = 'yay', + period = 32 + ) data = app.sign(DEFAULT_ACCOUNT, message, diff --git a/tests/integration/nano/test_sign_complex_operation.py b/tests/integration/nano/test_sign_complex_operation.py index 709627212..0ccf3ddf5 100644 --- a/tests/integration/nano/test_sign_complex_operation.py +++ b/tests/integration/nano/test_sign_complex_operation.py @@ -18,34 +18,11 @@ from pathlib import Path from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT -from utils.message import Message - -# Operation (0): Transaction -# Fee: 0.05 XTZ -# Storage limit: 45 -# Amount: 0.24 XTZ -# Destination: KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT -# Entrypoint: do -# Parameter: CAR - -## Operation (0): Origination -# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa -# Fee: 0.5 XTZ -# Storage limit: 4 -# Balance: 1 XTZ -# Delegate: None -# Code: UNPACK mutez -# Storage: or key chest -## Operation (1): Transfer ticket -# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa -# Fee: 0.01 XTZ -# Storage limit: 5 -# Contents: None -# Type: option nat -# Ticketer: tz1TmFPVZsGQ8MnrBJtnECJgkFUwLa6EWYDm -# Amount: 7 -# Destination: tz3eydffbLkjdVb8zx42BvxpGV87zaRnqL3r -# Entrypoint: default +from utils.message import ( + OperationGroup, + Origination, + TransferTicket +) def test_sign_complex_operation(app: TezosAppScreen): """Check signing complex operation""" @@ -54,7 +31,30 @@ def test_sign_complex_operation(app: TezosAppScreen): app.assert_screen(Screen.HOME) app.setup_expert_mode() - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006d00ffdd6102321bc251e4a5190ad5b12b251069d9b4a0c21e040304c0843d0000000004050d036a000000060764035c038d9e00ffdd6102321bc251e4a5190ad5b12b251069d9b4904e05040500000002030600000004056303620000591e842444265757d6a65e3670ca18b5e662f9c0070002cc8e146741cf31fc00123b8c26baf95c57421a3c0000000764656661756c74") + message = OperationGroup([ + Origination( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 500000, + counter = 4, + gas_limit = 3, + storage_limit = 4, + code = {'prim': 'UNPACK', 'args': [{'prim': 'mutez'}]}, + storage = {'prim': 'or', 'args': [{'prim': 'key'}, {'prim': 'chest'}]}, + balance = 1000000 + ), + TransferTicket( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 10000, + counter = 5, + gas_limit = 4, + storage_limit = 5, + ticket_contents = {'prim': 'None'}, + ticket_ty = {'prim': 'option', 'args': [{'prim': 'nat'}]}, + ticket_ticketer = 'tz1TmFPVZsGQ8MnrBJtnECJgkFUwLa6EWYDm', + ticket_amount = 7, + destination = 'tz3eydffbLkjdVb8zx42BvxpGV87zaRnqL3r' + ) + ]) data = app.sign(DEFAULT_ACCOUNT, message, diff --git a/tests/integration/nano/test_sign_delegation.py b/tests/integration/nano/test_sign_delegation.py index ed1e77d19..daa85df88 100755 --- a/tests/integration/nano/test_sign_delegation.py +++ b/tests/integration/nano/test_sign_delegation.py @@ -18,12 +18,7 @@ from pathlib import Path from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT -from utils.message import Message - -# Operation (0): Delegation -# Fee: 0.2 XTZ -# Storage limit: 889 -# Delegate: tz1TmFPVZsGQ8MnrBJtnECJgkFUwLa6EWYDm +from utils.message import Delegation def test_sign_delegation(app: TezosAppScreen): """Check signing delegation""" @@ -31,7 +26,14 @@ def test_sign_delegation(app: TezosAppScreen): app.assert_screen(Screen.HOME) - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006e01774d99da021b92d8c3dfc2e814c7658440319be2c09a0cf40509f906ff00591e842444265757d6a65e3670ca18b5e662f9c0") + message = Delegation( + source = 'tz2KC42yW9FXFMJpkUooae2NFYQsM5do3E8H', + fee = 200000, + counter = 756, + gas_limit = 9, + storage_limit = 889, + delegate = 'tz1TmFPVZsGQ8MnrBJtnECJgkFUwLa6EWYDm' + ) data = app.sign(DEFAULT_ACCOUNT, message, diff --git a/tests/integration/nano/test_sign_failing_noop.py b/tests/integration/nano/test_sign_failing_noop.py index f8d1c9c85..5bd24dc61 100755 --- a/tests/integration/nano/test_sign_failing_noop.py +++ b/tests/integration/nano/test_sign_failing_noop.py @@ -18,10 +18,7 @@ from pathlib import Path from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT -from utils.message import Message - -# Operation (0): Failing noop -# Message: 396630396632393532643334353238633733336639343631356366633339626335353536313966633535306464346136376261323230386365386538363761613364313361366566393964666265333263363937346161396132313530643231656361323963333334396535396331336239303831663163313162343430616334643334353564656462653465653064653135613861663632306434633836323437643964313332646531626236646132336435666639643864666664613232626139613834 +from utils.message import FailingNoop def test_sign_failing_noop(app: TezosAppScreen): """Check signing failing noop""" @@ -29,7 +26,7 @@ def test_sign_failing_noop(app: TezosAppScreen): app.assert_screen(Screen.HOME) - message = Message.from_bytes("03000000000000000000000000000000000000000000000000000000000000000011000000c6396630396632393532643334353238633733336639343631356366633339626335353536313966633535306464346136376261323230386365386538363761613364313361366566393964666265333263363937346161396132313530643231656361323963333334396535396331336239303831663163313162343430616334643334353564656462653465653064653135613861663632306434633836323437643964313332646531626236646132336435666639643864666664613232626139613834") + message = FailingNoop("9f09f2952d34528c733f94615cfc39bc555619fc550dd4a67ba2208ce8e867aa3d13a6ef99dfbe32c6974aa9a2150d21eca29c3349e59c13b9081f1c11b440ac4d3455dedbe4ee0de15a8af620d4c86247d9d132de1bb6da23d5ff9d8dffda22ba9a84") data = app.sign(DEFAULT_ACCOUNT, message, diff --git a/tests/integration/nano/test_sign_increase_paid_storage.py b/tests/integration/nano/test_sign_increase_paid_storage.py index 748a7d882..db4869180 100755 --- a/tests/integration/nano/test_sign_increase_paid_storage.py +++ b/tests/integration/nano/test_sign_increase_paid_storage.py @@ -18,13 +18,7 @@ from pathlib import Path from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT -from utils.message import Message - -# Operation (0): Increase paid storage -# Fee: 0.01 XTZ -# Storage limit: 4 -# Amount: 5 -# Destination: KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT +from utils.message import IncreasePaidStorage def test_sign_increase_paid_storage(app: TezosAppScreen): """Check signing increase paid storage""" @@ -32,7 +26,15 @@ def test_sign_increase_paid_storage(app: TezosAppScreen): app.assert_screen(Screen.HOME) - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000007100ffdd6102321bc251e4a5190ad5b12b251069d9b4904e0203040501000000000000000000000000000000000000000000") + message = IncreasePaidStorage( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 10000, + counter = 2, + gas_limit = 3, + storage_limit = 4, + amount = 5, + destination = "KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT" + ) data = app.sign(DEFAULT_ACCOUNT, message, diff --git a/tests/integration/nano/test_sign_micheline_without_hash.py b/tests/integration/nano/test_sign_micheline_without_hash.py index e9e373dfe..5b8dee986 100755 --- a/tests/integration/nano/test_sign_micheline_without_hash.py +++ b/tests/integration/nano/test_sign_micheline_without_hash.py @@ -18,9 +18,7 @@ from pathlib import Path from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT -from utils.message import Message - -# Expression: {"CACA";"POPO";"BOUDIN"} +from utils.message import MichelineExpr def test_sign_micheline_without_hash(app: TezosAppScreen): """Check signing micheline wihout getting hash""" @@ -28,7 +26,7 @@ def test_sign_micheline_without_hash(app: TezosAppScreen): app.assert_screen(Screen.HOME) - message = Message.from_bytes("05020000001d0100000004434143410100000004504f504f0100000006424f5544494e") + message = MichelineExpr([{'string': 'CACA'}, {'string': 'POPO'}, {'string': 'BOUDIN'}]) data = app.sign(DEFAULT_ACCOUNT, message, diff --git a/tests/integration/nano/test_sign_origination.py b/tests/integration/nano/test_sign_origination.py index 82c3da918..49da3f640 100755 --- a/tests/integration/nano/test_sign_origination.py +++ b/tests/integration/nano/test_sign_origination.py @@ -18,15 +18,7 @@ from pathlib import Path from utils.app import TezosAppScreen, DEFAULT_ACCOUNT -from utils.message import Message - -# Operation (0): Origination -# Fee: 0.01 XTZ -# Storage limit: 4 -# Balance: 0.5 XTZ -# Delegate: Field unset -# Code: UNPAIR -# Storage: pair "1" 2 +from utils.message import Origination def test_sign_origination(app: TezosAppScreen): """Check signing origination""" @@ -34,7 +26,16 @@ def test_sign_origination(app: TezosAppScreen): app.setup_expert_mode() - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006d00ffdd6102321bc251e4a5190ad5b12b251069d9b4904e020304a0c21e0000000002037a0000000a07650100000001310002") + message = Origination( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 10000, + counter = 2, + gas_limit = 3, + storage_limit = 4, + code = {'prim': 'UNPAIR'}, + storage = {'prim': 'pair', 'args': [{'string': '1'}, {'int': 2}]}, + balance = 500000 + ) data = app.sign(DEFAULT_ACCOUNT, message, diff --git a/tests/integration/nano/test_sign_proposals.py b/tests/integration/nano/test_sign_proposals.py index 0cc09c172..ae29ca1f5 100755 --- a/tests/integration/nano/test_sign_proposals.py +++ b/tests/integration/nano/test_sign_proposals.py @@ -18,13 +18,7 @@ from pathlib import Path from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT -from utils.message import Message - -# Operation (0): Proposals -# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa -# Period: 32 -# Proposal (0): ProtoALphaALphaALphaALphaALphaALphaALpha61322gcLUGH -# Proposal (1): ProtoALphaALphaALphaALphaALphaALphaALphabc2a7ebx6WB +from utils.message import Proposals def test_sign_proposals(app: TezosAppScreen): """Check signing proposals""" @@ -32,7 +26,14 @@ def test_sign_proposals(app: TezosAppScreen): app.assert_screen(Screen.HOME) - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000000500ffdd6102321bc251e4a5190ad5b12b251069d9b400000020000000400bcd7b2cadcd87ecb0d5c50330fb59feed7432bffecede8a09a2b86cfb33847b0bcd7b2cadcd87ecb0d5c50330fb59feed7432bffecede8a09a2b86dac301a2d") + message = Proposals( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + proposals = [ + 'ProtoALphaALphaALphaALphaALphaALphaALpha61322gcLUGH', + 'ProtoALphaALphaALphaALphaALphaALphaALphabc2a7ebx6WB' + ], + period = 32 + ) data = app.sign(DEFAULT_ACCOUNT, message, diff --git a/tests/integration/nano/test_sign_register_global_constant.py b/tests/integration/nano/test_sign_register_global_constant.py index 1c26424eb..4ea36859e 100755 --- a/tests/integration/nano/test_sign_register_global_constant.py +++ b/tests/integration/nano/test_sign_register_global_constant.py @@ -18,12 +18,7 @@ from pathlib import Path from utils.app import TezosAppScreen, DEFAULT_ACCOUNT -from utils.message import Message - -# Operation (0): Register global constant -# Fee: 0.01 XTZ -# Storage limit: 4 -# Value: Pair "1" 2 +from utils.message import RegisterGlobalConstant def test_sign_register_global_constant(app: TezosAppScreen): """Check signing register global constant""" @@ -31,7 +26,14 @@ def test_sign_register_global_constant(app: TezosAppScreen): app.setup_expert_mode() - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006f00ffdd6102321bc251e4a5190ad5b12b251069d9b4904e0203040000000a07070100000001310002") + message = RegisterGlobalConstant( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 10000, + counter = 2, + gas_limit = 3, + storage_limit = 4, + value = {'prim': 'Pair', 'args': [{'string': '1'}, {'int': 2}]} + ) data = app.sign(DEFAULT_ACCOUNT, message, diff --git a/tests/integration/nano/test_sign_reveal.py b/tests/integration/nano/test_sign_reveal.py index b8abed62e..ec5cbd15c 100755 --- a/tests/integration/nano/test_sign_reveal.py +++ b/tests/integration/nano/test_sign_reveal.py @@ -18,12 +18,7 @@ from pathlib import Path from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT -from utils.message import Message - -# Operation (0): Reveal -# Fee: 0.01 XTZ -# Storage limit: 4 -# Public key: edpkuXX2VdkdXzkN11oLCb8Aurdo1BTAtQiK8ZY9UPj2YMt3AHEpcY +from utils.message import Reveal def test_sign_reveal(app: TezosAppScreen): """Check signing reveal""" @@ -31,7 +26,14 @@ def test_sign_reveal(app: TezosAppScreen): app.assert_screen(Screen.HOME) - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006b00ffdd6102321bc251e4a5190ad5b12b251069d9b4904e02030400747884d9abdf16b3ab745158925f567e222f71225501826fa83347f6cbe9c393") + message = Reveal( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 10000, + counter = 2, + gas_limit = 3, + storage_limit = 4, + public_key = 'edpkuXX2VdkdXzkN11oLCb8Aurdo1BTAtQiK8ZY9UPj2YMt3AHEpcY' + ) data = app.sign(DEFAULT_ACCOUNT, message, diff --git a/tests/integration/nano/test_sign_sc_rollup_add_messages.py b/tests/integration/nano/test_sign_sc_rollup_add_messages.py index 5d020781e..b89e97533 100755 --- a/tests/integration/nano/test_sign_sc_rollup_add_messages.py +++ b/tests/integration/nano/test_sign_sc_rollup_add_messages.py @@ -18,14 +18,7 @@ from pathlib import Path from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT -from utils.message import Message - -# Operation (0): SR: send messages -# Fee: 0.01 XTZ -# Storage limit: 4 -# Message (0): 012345 -# Message (1): 67 -# Message (2): 89abcdef +from utils.message import ScRollupAddMessage def test_sign_sc_rollup_add_messages(app: TezosAppScreen): """Check signing smart rollup add message""" @@ -33,7 +26,14 @@ def test_sign_sc_rollup_add_messages(app: TezosAppScreen): app.assert_screen(Screen.HOME) - message = Message.from_bytes("030000000000000000000000000000000000000000000000000000000000000000c900ffdd6102321bc251e4a5190ad5b12b251069d9b4904e020304000000140000000301234500000001670000000489abcdef") + message = ScRollupAddMessage( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 10000, + counter = 2, + gas_limit = 3, + storage_limit = 4, + message = [bytes.fromhex('012345'), bytes.fromhex('67'), bytes.fromhex('89abcdef')] + ) data = app.sign(DEFAULT_ACCOUNT, message, diff --git a/tests/integration/nano/test_sign_sc_rollup_execute_outbox_message.py b/tests/integration/nano/test_sign_sc_rollup_execute_outbox_message.py index b5083c355..5b80577e8 100755 --- a/tests/integration/nano/test_sign_sc_rollup_execute_outbox_message.py +++ b/tests/integration/nano/test_sign_sc_rollup_execute_outbox_message.py @@ -18,14 +18,7 @@ from pathlib import Path from utils.app import TezosAppScreen, DEFAULT_ACCOUNT -from utils.message import Message - -# Operation (0): SR: execute outbox message -# Fee: 0.01 XTZ -# Storage limit: 4 -# Rollup: sr163Lv22CdE8QagCwf48PWDTquk6isQwv57 -# Commitment: src12UJzB8mg7yU6nWPzicH7ofJbFjyJEbHvwtZdfRXi8DQHNp1LY8 -# Output proof: 396630396632393532643334353238633733336639343631356366633339626335353536313966633535306464346136376261323230386365386538363761613364313361366566393964666265333263363937346161396132313530643231656361323963333334396535396331336239303831663163313162343430616334643334353564656462653465653064653135613861663632306434633836323437643964313332646531626236646132336435666639643864666664613232626139613834 +from utils.message import ScRollupExecuteOutboxMessage def test_sign_sc_rollup_execute_outbox_message(app: TezosAppScreen): """Check signing smart rollup execute outbox message""" @@ -33,7 +26,16 @@ def test_sign_sc_rollup_execute_outbox_message(app: TezosAppScreen): app.setup_expert_mode() - message = Message.from_bytes("030000000000000000000000000000000000000000000000000000000000000000ce00ffdd6102321bc251e4a5190ad5b12b251069d9b4904e02030400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6396630396632393532643334353238633733336639343631356366633339626335353536313966633535306464346136376261323230386365386538363761613364313361366566393964666265333263363937346161396132313530643231656361323963333334396535396331336239303831663163313162343430616334643334353564656462653465653064653135613861663632306434633836323437643964313332646531626236646132336435666639643864666664613232626139613834") + message = ScRollupExecuteOutboxMessage( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 10000, + counter = 2, + gas_limit = 3, + storage_limit = 4, + rollup = 'sr163Lv22CdE8QagCwf48PWDTquk6isQwv57', + cemented_commitment = 'src12UJzB8mg7yU6nWPzicH7ofJbFjyJEbHvwtZdfRXi8DQHNp1LY8', + output_proof = b'9f09f2952d34528c733f94615cfc39bc555619fc550dd4a67ba2208ce8e867aa3d13a6ef99dfbe32c6974aa9a2150d21eca29c3349e59c13b9081f1c11b440ac4d3455dedbe4ee0de15a8af620d4c86247d9d132de1bb6da23d5ff9d8dffda22ba9a84' + ) data = app.sign(DEFAULT_ACCOUNT, message, diff --git a/tests/integration/nano/test_sign_sc_rollup_originate.py b/tests/integration/nano/test_sign_sc_rollup_originate.py index 7adbdfd3b..f10eacdda 100755 --- a/tests/integration/nano/test_sign_sc_rollup_originate.py +++ b/tests/integration/nano/test_sign_sc_rollup_originate.py @@ -16,19 +16,10 @@ """Check signing smart rollup originate""" from pathlib import Path +from typing import List, Optional from utils.app import TezosAppScreen, DEFAULT_ACCOUNT -from utils.message import Message - -# Operation (0): SR: originate -# Fee: 0.01 XTZ -# Storage limit: 4 -# Kind: arith -# Kernel: 396630396632393532643334353238633733336639343631356366633339626335353536313966633535306464346136376261323230386365386538363761613364313361366566393964666265333263363937346161396132313530643231656361323963333334396535396331336239303831663163313162343430616334643334353564656462653465653064653135613861663632306434633836323437643964313332646531626236646132336435666639643864666664613232626139613834 -# Parameters: Pair "1" 2 -# Whitelist (0): tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa -# Whitelist (1): tz2WmivuMG8MMRKMEmzKRMMxMApxZQWYNS4W -# Whitelist (2): tz3XMQscBFM9vPmpbYMavMmwxRMUWvWGZMQQ +from utils.message import ScRollupOriginate def test_sign_sc_rollup_originate(app: TezosAppScreen): """Check signing smart rollup originate""" @@ -36,11 +27,19 @@ def test_sign_sc_rollup_originate(app: TezosAppScreen): app.setup_expert_mode() - sc_rollup_originate_with_missing_white_list = "030000000000000000000000000000000000000000000000000000000000000000c800ffdd6102321bc251e4a5190ad5b12b251069d9b4904e02030400000000c63966303966323935326433343532386337333366393436313563666333396263353535363139666335353064643461363762613232303863653865383637616133643133613665663939646662653332633639373461613961323135306432316563613239633333343965353963313362393038316631633131623434306163346433343535646564626534656530646531356138616636323064346338363234376439643133326465316262366461323364356666396438646666646132326261396138340000000a07070100000001310002" - - def check_sign(name: str, whitelist: str): + def check_sign(name: str, whitelist: Optional[List[str]]): - message = Message.from_bytes(sc_rollup_originate_with_missing_white_list + whitelist) + message = ScRollupOriginate( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 10000, + counter = 2, + gas_limit = 3, + storage_limit = 4, + pvm_kind = "arith", + kernel = '396630396632393532643334353238633733336639343631356366633339626335353536313966633535306464346136376261323230386365386538363761613364313361366566393964666265333263363937346161396132313530643231656361323963333334396535396331336239303831663163313162343430616334643334353564656462653465653064653135613861663632306434633836323437643964313332646531626236646132336435666639643864666664613232626139613834', + parameters_ty = {'prim': 'Pair', 'args': [{'string': '1'}, {'int': 2}]}, + whitelist = whitelist + ) data = app.sign(DEFAULT_ACCOUNT, message, @@ -53,20 +52,12 @@ def check_sign(name: str, whitelist: str): with_hash=True, data=data) - # None - check_sign("no_whitelist", "00") - - # Some [] - check_sign("no_whitelist", "ff00000000") - - # Some [ - # tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa; - # tz2WmivuMG8MMRKMEmzKRMMxMApxZQWYNS4W; - # tz3XMQscBFM9vPmpbYMavMmwxRMUWvWGZMQQ - # ] - check_sign( - "with_whitelist", - "ff0000003f00ffdd6102321bc251e4a5190ad5b12b251069d9b401f6552df4f5ff51c3d13347cab045cfdb8b9bd8030278eb8b6ab9a768579cd5146b480789650c83f28e" - ) + check_sign("no_whitelist", None) + check_sign("no_whitelist", []) + check_sign("with_whitelist", [ + 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + 'tz2WmivuMG8MMRKMEmzKRMMxMApxZQWYNS4W', + 'tz3XMQscBFM9vPmpbYMavMmwxRMUWvWGZMQQ' + ]) app.quit() diff --git a/tests/integration/nano/test_sign_set_consensus_key.py b/tests/integration/nano/test_sign_set_consensus_key.py index 97afa14ba..d5bf5be6c 100755 --- a/tests/integration/nano/test_sign_set_consensus_key.py +++ b/tests/integration/nano/test_sign_set_consensus_key.py @@ -18,12 +18,7 @@ from pathlib import Path from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT -from utils.message import Message - -# Operation (0): Set consensus key -# Fee: 0.01 XTZ -# Storage limit: 4 -# Public key: edpkuXX2VdkdXzkN11oLCb8Aurdo1BTAtQiK8ZY9UPj2YMt3AHEpcY +from utils.message import UpdateConsensusKey def test_sign_set_consensus_key(app: TezosAppScreen): """Check signing set consensus key""" @@ -31,7 +26,14 @@ def test_sign_set_consensus_key(app: TezosAppScreen): app.assert_screen(Screen.HOME) - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000007200c921d4487c90b4472da6cc566a58d79f0d991dbf904e02030400747884d9abdf16b3ab745158925f567e222f71225501826fa83347f6cbe9c393") + message = UpdateConsensusKey( + source = 'tz1dyX3B1CFYa2DfdFLyPtiJCfQRUgPVME6E', + fee = 10000, + counter = 2, + gas_limit = 3, + storage_limit = 4, + pk = "edpkuXX2VdkdXzkN11oLCb8Aurdo1BTAtQiK8ZY9UPj2YMt3AHEpcY" + ) data = app.sign(DEFAULT_ACCOUNT, message, diff --git a/tests/integration/nano/test_sign_set_deposit_limit.py b/tests/integration/nano/test_sign_set_deposit_limit.py index e90d55c30..4b2943f5c 100755 --- a/tests/integration/nano/test_sign_set_deposit_limit.py +++ b/tests/integration/nano/test_sign_set_deposit_limit.py @@ -18,12 +18,7 @@ from pathlib import Path from utils.app import Screen, TezosAppScreen, DEFAULT_ACCOUNT -from utils.message import Message - -# Operation (0): Set deposit limit -# Fee: 0.06 XTZ -# Storage limit: 4 -# Staking limit: 0.02 XTZ +from utils.message import SetDepositLimit def test_sign_set_deposit_limit(app: TezosAppScreen): """Check signing set deposit limit""" @@ -31,7 +26,14 @@ def test_sign_set_deposit_limit(app: TezosAppScreen): app.assert_screen(Screen.HOME) - message = Message.from_bytes("03000000000000000000000000000000000000000000000000000000000000000070027c252d3806e6519ed064026bdb98edf866117331e0d40304f80204ffa09c01") + message = SetDepositLimit( + source = 'tz3XeTwXXJeWNgVR3LqMcyBDdnxjbZ7TeEGH', + fee = 60000, + counter = 4, + gas_limit = 376, + storage_limit = 4, + limit = 20000 + ) data = app.sign(DEFAULT_ACCOUNT, message, diff --git a/tests/integration/nano/test_sign_too_long_operation.py b/tests/integration/nano/test_sign_too_long_operation.py index e6b76f0cc..a884081ce 100644 --- a/tests/integration/nano/test_sign_too_long_operation.py +++ b/tests/integration/nano/test_sign_too_long_operation.py @@ -19,21 +19,28 @@ from typing import Callable from utils.app import ScreenText, TezosAppScreen, DEFAULT_ACCOUNT -from utils.message import Message from utils.backend import StatusCode +from utils.message import ( + Message, + Proposals, + OperationGroup, + Reveal, + Transaction, + Delegation, + RegisterGlobalConstant, + SetDepositLimit, + ScRollupAddMessage +) test_path = Path(Path(__file__).stem) def _sign_too_long(app: TezosAppScreen, - msg: str, + message: Message, navigate: Callable[[], None]): - """Sign a too long message""" app.setup_expert_mode() app.setup_blindsign_on() - message = Message.from_bytes(msg) - data = app._sign( DEFAULT_ACCOUNT, message, @@ -48,18 +55,20 @@ def _sign_too_long(app: TezosAppScreen, app.quit() -def _sign_decodable_too_long(app, msg: str, path: Path): +def _sign_decodable_too_long(app: TezosAppScreen, + message: Message, + path: Path): """Sign a decodable too long message""" def navigate() -> None: app.navigate_until_text(ScreenText.ACCEPT_RISK, path / "clear_n_too_long_warning") app.navigate_until_text(ScreenText.SIGN_ACCEPT, path / "summary") - _sign_too_long(app, msg, navigate) + _sign_too_long(app, message, navigate) def _reject_too_long( app, - msg: str, + message: Message, status_code: StatusCode, navigate: Callable[[], None]): """Reject a too long message""" @@ -67,8 +76,6 @@ def _reject_too_long( app.setup_expert_mode() app.setup_blindsign_on() - message = Message.from_bytes(msg) - app._failing_signing( DEFAULT_ACCOUNT, message, @@ -83,54 +90,72 @@ def _reject_too_long( basic_test_path = test_path / "basic" -## Operation (0): Reveal -# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa -# Fee: 1 XTZ -# Storage limit: 4 -# Public key: p2pk66m3NQsd4n6LJWe9WMwx9WHeXwKmBaMwXX92WkMQCR99zmwk2PM -## Operation (1): Transaction -# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa -# Fee: 2 XTZ -# Storage limit: 7 -# Amount: 3 XTZ -# Destination: tz3XMQscBFM9vPmpbYMavMmwxRMUWvWGZMQQ -# Entrypoint: update_config -# Parameter: Pair 5 True -## Operation (2): Delegation -# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa -# Fee: 3 XTZ -# Storage limit: 5 -# Delegate: tz2W3Tvcm64GjcV2bipUynnEsctLFz5Z6yRa -## Operation (3): SR: send messages -# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa -# Fee: 4 XTZ -# Storage limit: 6 -# Message (0): 6d65737361676530 -# Message (1): 6d65737361676531 -# Message (2): 6d65737361676532 -# Message (3): 6d65737361676533 -# Message (4): 6d65737361676534 -# Message (5): 6d65737361676535 -# Message (6): 6d65737361676536 -# Message (7): 6d65737361676537 -# Message (8): 6d65737361676538 -# Message (9): 6d65737361676539 -# Message (10): 6d6573736167653130 -# Message (11): 6d6573736167653131 -# Message (12): 6d6573736167653132 -# Message (13): 6d6573736167653133 -# Message (14): 6d6573736167653134 -# Message (15): 6d6573736167653135 -# Message (16): 6d6573736167653136 -# Message (17): 6d6573736167653137 -# Message (18): 6d6573736167653138 -# Message (19): 6d6573736167653139 -## Operation (4): Set deposit limit -# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa -# Fee: 1 XTZ -# Storage limit: 3 -# Staking limit: 10 XTZ -BASIC_OPERATION = "0300000000000000000000000000000000000000000000000000000000000000006b00ffdd6102321bc251e4a5190ad5b12b251069d9b4c0843d0b0104020320182716513907b6bab33f905396d031931c07e01bddd780780c1a56b9c086da6c00ffdd6102321bc251e4a5190ad5b12b251069d9b480897a0c0107c08db701000278eb8b6ab9a768579cd5146b480789650c83f28effff0d7570646174655f636f6e6669670000000607070005030a6e00ffdd6102321bc251e4a5190ad5b12b251069d9b4c08db7010d0105ff01ee572f02e5be5d097ba17369789582882e8abb87c900ffdd6102321bc251e4a5190ad5b12b251069d9b48092f4010e0106000000fa000000086d65737361676530000000086d65737361676531000000086d65737361676532000000086d65737361676533000000086d65737361676534000000086d65737361676535000000086d65737361676536000000086d65737361676537000000086d65737361676538000000086d65737361676539000000096d6573736167653130000000096d6573736167653131000000096d6573736167653132000000096d6573736167653133000000096d6573736167653134000000096d6573736167653135000000096d6573736167653136000000096d6573736167653137000000096d6573736167653138000000096d65737361676531397000ffdd6102321bc251e4a5190ad5b12b251069d9b4c0843d0f0103ff80ade204" +BASIC_OPERATION = OperationGroup([ + Reveal( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 1000000, + counter = 11, + gas_limit = 1, + storage_limit = 4, + public_key = 'p2pk66m3NQsd4n6LJWe9WMwx9WHeXwKmBaMwXX92WkMQCR99zmwk2PM' + ), + Transaction( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 2000000, + counter = 12, + gas_limit = 1, + storage_limit = 7, + destination = 'tz3XMQscBFM9vPmpbYMavMmwxRMUWvWGZMQQ', + amount = 3000000, + entrypoint = 'update_config', + parameter = {'prim': 'Pair', 'args': [ {'int': 5}, {'prim': 'True'} ]} + ), + Delegation( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 3000000, + counter = 13, + gas_limit = 1, + storage_limit = 5, + delegate = 'tz2W3Tvcm64GjcV2bipUynnEsctLFz5Z6yRa' + ), + ScRollupAddMessage( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 4000000, + counter = 14, + gas_limit = 1, + storage_limit = 6, + message = [ + bytes.fromhex('6d65737361676530'), + bytes.fromhex('6d65737361676531'), + bytes.fromhex('6d65737361676532'), + bytes.fromhex('6d65737361676533'), + bytes.fromhex('6d65737361676534'), + bytes.fromhex('6d65737361676535'), + bytes.fromhex('6d65737361676536'), + bytes.fromhex('6d65737361676537'), + bytes.fromhex('6d65737361676538'), + bytes.fromhex('6d65737361676539'), + bytes.fromhex('6d6573736167653130'), + bytes.fromhex('6d6573736167653131'), + bytes.fromhex('6d6573736167653132'), + bytes.fromhex('6d6573736167653133'), + bytes.fromhex('6d6573736167653134'), + bytes.fromhex('6d6573736167653135'), + bytes.fromhex('6d6573736167653136'), + bytes.fromhex('6d6573736167653137'), + bytes.fromhex('6d6573736167653138'), + bytes.fromhex('6d6573736167653139') + ] + ), + SetDepositLimit( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 1000000, + counter = 15, + gas_limit = 1, + storage_limit = 3, + limit = 10000000 + ) +]) def test_sign_basic_too_long_operation(app: TezosAppScreen): """Check sign too long operation""" @@ -158,120 +183,150 @@ def navigate() -> None: ### Different kind of too long operation ### -## Operation (0): Transaction -# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa -# Fee: 0 XTZ -# Storage limit: 0 -# Amount: 10 XTZ -# Destination: tz1er74kx433vTtpYddGsf3dDt5piBZeeHyQ -## Operation (1): Transaction -# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa -# Fee: 1 XTZ -# Storage limit: 1 -# Amount: 1 XTZ -# Destination: tz2PPZ2WN4j92Rdx4NM7oW3HAp3x825HUyac -## Operation (2): Transaction -# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa -# Fee: 2 XTZ -# Storage limit: 2 -# Amount: 2 XTZ -# Destination: tz1Kp8NCAN5WWwvkWkMmQQXMRe68iURmoQ8w -## Operation (3): Transaction -# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa -# Fee: 3 XTZ -# Storage limit: 3 -# Amount: 3 XTZ -# Destination: tz3fLwHKthqhTPK6Lar6CTXN1WbDETw1YpGB -## Operation (4): Transaction -# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa -# Fee: 4 XTZ -# Storage limit: 4 -# Amount: 4 XTZ -# Destination: tz3eydffbLkjdVb8zx42BvxpGV87zaRnqL3r -## Operation (5): Transaction -# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa -# Fee: 5 XTZ -# Storage limit: 5 -# Amount: 5 XTZ -# Destination: tz2JPgTWZZpxZZLqHMfS69UAy1UHm4Aw5iHu def test_sign_too_long_operation_with_only_transactions(app: TezosAppScreen): """Check sign too long operation that contains only transaction""" - msg="0300000000000000000000000000000000000000000000000000000000000000006c00ffdd6102321bc251e4a5190ad5b12b251069d9b4000b010080ade2040000d2b3082b0fe03f0f7f39915cdba50e9d9b8ab057006c00ffdd6102321bc251e4a5190ad5b12b251069d9b4c0843d0c0101c0843d0001a55ae1858c1201514c97aa9122e77d3c4197a714006c00ffdd6102321bc251e4a5190ad5b12b251069d9b480897a0d010280897a000001e8e5519a315280a374c8765107979a6049de27006c00ffdd6102321bc251e4a5190ad5b12b251069d9b4c08db7010e0103c08db7010002d09584de879c4bbd3f494ed01b82e06a81e8e176006c00ffdd6102321bc251e4a5190ad5b12b251069d9b48092f4010f01048092f4010002cc8e146741cf31fc00123b8c26baf95c57421a3c006c00ffdd6102321bc251e4a5190ad5b12b251069d9b4c096b102100105c096b10200016e8874874d31c3fbd636e924d5a036a43ec8faa700" - _sign_decodable_too_long(app, msg, test_path / "only_transactions") - -## Operation (0): Proposals -# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa -# Period: 32 -# Proposal (0): ProtoDemoNoopsDemoNoopsDemoNoopsDemoNoopsDemo6XBoYp -# Proposal (1): ProtoGenesisGenesisGenesisGenesisGenesisGenesk612im -# Proposal (2): PrihK96nBAFSxVL1GLJTVhu9YnzkMFiBeuJRPA8NwuZVZCE1L6i -# Proposal (3): Ps9mPmXaRzmzk35gbAYNCAw6UXdE2qoABTHbN2oEEc1qM7CwT9P -# Proposal (4): PsBabyM1eUXZseaJdmXFApDSBqj8YBfwELoxZHHW77EMcAbbwAS -# Proposal (5): PsCARTHAGazKbHtnKfLzQg3kms52kSRpgnDY982a9oYsSXRLQEb -# Proposal (6): PsDELPH1Kxsxt8f9eWbxQeRxkjfbxoqM52jvs5Y5fBxWWh4ifpo -# Proposal (7): PtEdo2ZkT9oKpimTah6x2embF25oss54njMuPzkJTEi5RqfdZFA -# Proposal (8): PsFLorenaUUuikDWvMDr6fGBRG8kt3e3D3fHoXK1j1BFRxeSH4i -# Proposal (9): PtGRANADsDU8R9daYKAgWnQYAJ64omN1o3KMGVCykShA97vQbvV -# Proposal (10): PtHangz2aRngywmSRGGvrcTyMbbdpWdpFKuS4uMWxg2RaH9i1qx -# Proposal (11): Psithaca2MLRFYargivpo7YvUr7wUDqyxrdhC5CQq78mRvimz6A -# Proposal (12): PtJakart2xVj7pYXJBXrqHgd82rdkLey5ZeeGwDgPp9rhQUbSqY -# Proposal (13): PtKathmankSpLLDALzWw7CGD2j2MtyveTwboEYokqUCP4a1LxMg -# Proposal (14): PtLimaPtLMwfNinJi9rCfDPWea8dFgTZ1MeJ9f1m2SRic6ayiwW -# Proposal (15): PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1 -# Proposal (16): PtNairobiyssHuh87hEhfVBGCVrK3WnS8Z2FT4ymB5tAa4r1nQf -# Proposal (17): ProxfordYmVfjWnRcgjWH36fW6PArwqykTFzotUxRs6gmTcZDuH -# Proposal (18): PtParisBxoLz5gzMmn3d9WBQNoPSZakgnkMC2VNuQ3KXfUtUQeZ -# Proposal (19): ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK + message = OperationGroup([ + Transaction( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 0, + counter = 11, + gas_limit = 1, + storage_limit = 0, + destination = 'tz1er74kx433vTtpYddGsf3dDt5piBZeeHyQ', + amount = 10000000 + ), + Transaction( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 1000000, + counter = 12, + gas_limit = 1, + storage_limit = 1, + destination = 'tz2PPZ2WN4j92Rdx4NM7oW3HAp3x825HUyac', + amount = 1000000 + ), + Transaction( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 2000000, + counter = 13, + gas_limit = 1, + storage_limit = 2, + destination = 'tz1Kp8NCAN5WWwvkWkMmQQXMRe68iURmoQ8w', + amount = 2000000 + ), + Transaction( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 3000000, + counter = 14, + gas_limit = 1, + storage_limit = 3, + destination = 'tz3fLwHKthqhTPK6Lar6CTXN1WbDETw1YpGB', + amount = 3000000 + ), + Transaction( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 4000000, + counter = 15, + gas_limit = 1, + storage_limit = 4, + destination = 'tz3eydffbLkjdVb8zx42BvxpGV87zaRnqL3r', + amount = 4000000 + ), + Transaction( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 5000000, + counter = 16, + gas_limit = 1, + storage_limit = 5, + destination = 'tz2JPgTWZZpxZZLqHMfS69UAy1UHm4Aw5iHu', + amount = 5000000 + ) + ]) + _sign_decodable_too_long(app, message, test_path / "only_transactions") + def test_sign_too_long_operation_without_fee_or_amount(app: TezosAppScreen): """Check sign too long operation that doesn't have fees or amount""" - msg="0300000000000000000000000000000000000000000000000000000000000000000500ffdd6102321bc251e4a5190ad5b12b251069d9b400000020000002800bcd7db2d718ba94e85bd262681049852e1f58512aa552124330d657845c73b70bcd7ffca03f57e38453f0d3e84c302403c05357448b4c2daef8b3a8be3c69c1000000000000000000000000000000000000000000000000000000000000000038ecdef0cd08640f318a9b055f6b0d0c9ae030913a871d9b9d86fb846317da213d0b4bacb5c3e152a167da26fefc266bd3a0e14fc4e41e6c53623bf482833da23e5e3a606afab74a59ca09e333633e2770b6492c5e594455b71e9a2f0ea92afb40cab83d3f37a64da26b57ad3d0432ae881293a25169ada387bfc74a1cbf9e6ec7ad4f7a000e28e9eefc58de8ea1172de843242bd2e688779953d3416a44640b4596285c6871691e25196c6a8d26d90a3ac91375731e3926103c517a13a0ba56cbb944f74244ea2681981f25995f8ebba8ff6cee8c036892fe901cb760c4e39ece5f061e34b5a21feab8dbdfe755ef17e70c9f565464f067ac5e7c02be830a488424520cf9bbf0a42770204d95dcc1f11e404fdb3e90c84850c4cfdb50c5c4b9d0a3f07b8adfcf61f5ca60f244ca9a876e76cbad9140980f6c88d0bf900ac6d8d2ea9f23a1a1011091841b12e32ce2f8c3facff27feee58bb7c9e90567d11425d57ed88be5a69815e39386a33f7dcad391f5f507e03b376e499272c86c6cf2a7d8325f11da2ff36934a586439f085655a833f2ff6a12d15e83b951fb684326e0d9b8c2314cc05ffa3fc655a98bb87155be4cf7ce67fee6b594ea9302e8655df20bf44c7d64e3d7da27d925d10af535fb36cef0ad41930c7929773f4731eba137dbff6586a04802d3f513c65a444d9d4debe42b17e9e7273f8f6c118ea3f4e06e0bcd7b2cadcd87ecb0d5c50330fb59feed7432bffecede8a09a2b86d1527c6a5" - _sign_decodable_too_long(app, msg, test_path / "without_fee_or_amount") + message = Proposals( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + proposals = [ + 'ProtoDemoNoopsDemoNoopsDemoNoopsDemoNoopsDemo6XBoYp', + 'ProtoGenesisGenesisGenesisGenesisGenesisGenesk612im', + 'PrihK96nBAFSxVL1GLJTVhu9YnzkMFiBeuJRPA8NwuZVZCE1L6i', + 'Ps9mPmXaRzmzk35gbAYNCAw6UXdE2qoABTHbN2oEEc1qM7CwT9P', + 'PsBabyM1eUXZseaJdmXFApDSBqj8YBfwELoxZHHW77EMcAbbwAS', + 'PsCARTHAGazKbHtnKfLzQg3kms52kSRpgnDY982a9oYsSXRLQEb', + 'PsDELPH1Kxsxt8f9eWbxQeRxkjfbxoqM52jvs5Y5fBxWWh4ifpo', + 'PtEdo2ZkT9oKpimTah6x2embF25oss54njMuPzkJTEi5RqfdZFA', + 'PsFLorenaUUuikDWvMDr6fGBRG8kt3e3D3fHoXK1j1BFRxeSH4i', + 'PtGRANADsDU8R9daYKAgWnQYAJ64omN1o3KMGVCykShA97vQbvV', + 'PtHangz2aRngywmSRGGvrcTyMbbdpWdpFKuS4uMWxg2RaH9i1qx', + 'Psithaca2MLRFYargivpo7YvUr7wUDqyxrdhC5CQq78mRvimz6A', + 'PtJakart2xVj7pYXJBXrqHgd82rdkLey5ZeeGwDgPp9rhQUbSqY', + 'PtKathmankSpLLDALzWw7CGD2j2MtyveTwboEYokqUCP4a1LxMg', + 'PtLimaPtLMwfNinJi9rCfDPWea8dFgTZ1MeJ9f1m2SRic6ayiwW', + 'PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1', + 'PtNairobiyssHuh87hEhfVBGCVrK3WnS8Z2FT4ymB5tAa4r1nQf', + 'ProxfordYmVfjWnRcgjWH36fW6PArwqykTFzotUxRs6gmTcZDuH', + 'PtParisBxoLz5gzMmn3d9WBQNoPSZakgnkMC2VNuQ3KXfUtUQeZ', + 'ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK' + ], + period = 32 + ) + _sign_decodable_too_long(app, message, test_path / "without_fee_or_amount") ### Too long operation containing a too large number ### too_large_test_path = test_path / "too_large" -# Operation (0): SR: send messages -# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa -# Fee: 4 XTZ -# Storage limit: 6 -# Message (0): 6d65737361676530 -# Message (1): 6d65737361676531 -# Message (2): 6d65737361676532 -# Message (3): 6d65737361676533 -# Message (4): 6d65737361676534 -# Message (5): 6d65737361676535 -# Message (6): 6d65737361676536 -# Message (7): 6d65737361676537 -# Message (8): 6d65737361676538 -# Message (9): 6d65737361676539 -# Message (10): 6d6573736167653130 -# Message (11): 6d6573736167653131 -# Message (12): 6d6573736167653132 -# Message (13): 6d6573736167653133 -# Message (14): 6d6573736167653134 -# Message (15): 6d6573736167653135 -# Message (16): 6d6573736167653136 -# Message (17): 6d6573736167653137 -# Message (18): 6d6573736167653138 -# Message (19): 6d6573736167653139 -# Message (20): 6d6573736167653230 -# Message (21): 6d6573736167653231 -# Message (22): 6d6573736167653232 -# Message (23): 6d6573736167653233 -# Message (24): 6d6573736167653234 -# Message (25): 6d6573736167653235 -# Message (26): 6d6573736167653236 -# Message (27): 6d6573736167653237 -# Message (28): 6d6573736167653238 -# Message (29): 6d6573736167653239 -## Operation (1): Register global constant -# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa -# Fee: 5 XTZ -# Storage limit: 3 -# Value: 115792089237316195423570985008687907853269984665640564039457584007913129639936 -OPERATION_WITH_TOO_LARGE = "030000000000000000000000000000000000000000000000000000000000000000c900ffdd6102321bc251e4a5190ad5b12b251069d9b48092f4010b01060000017c000000086d65737361676530000000086d65737361676531000000086d65737361676532000000086d65737361676533000000086d65737361676534000000086d65737361676535000000086d65737361676536000000086d65737361676537000000086d65737361676538000000086d65737361676539000000096d6573736167653130000000096d6573736167653131000000096d6573736167653132000000096d6573736167653133000000096d6573736167653134000000096d6573736167653135000000096d6573736167653136000000096d6573736167653137000000096d6573736167653138000000096d6573736167653139000000096d6573736167653230000000096d6573736167653231000000096d6573736167653232000000096d6573736167653233000000096d6573736167653234000000096d6573736167653235000000096d6573736167653236000000096d6573736167653237000000096d6573736167653238000000096d65737361676532396f00ffdd6102321bc251e4a5190ad5b12b251069d9b4c096b1020c0103000000260080808080808080808080808080808080808080808080808080808080808080808080808020" +OPERATION_WITH_TOO_LARGE = OperationGroup([ + ScRollupAddMessage( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 4000000, + counter = 11, + gas_limit = 1, + storage_limit = 6, + message = [ + bytes.fromhex('6d65737361676530'), + bytes.fromhex('6d65737361676531'), + bytes.fromhex('6d65737361676532'), + bytes.fromhex('6d65737361676533'), + bytes.fromhex('6d65737361676534'), + bytes.fromhex('6d65737361676535'), + bytes.fromhex('6d65737361676536'), + bytes.fromhex('6d65737361676537'), + bytes.fromhex('6d65737361676538'), + bytes.fromhex('6d65737361676539'), + bytes.fromhex('6d6573736167653130'), + bytes.fromhex('6d6573736167653131'), + bytes.fromhex('6d6573736167653132'), + bytes.fromhex('6d6573736167653133'), + bytes.fromhex('6d6573736167653134'), + bytes.fromhex('6d6573736167653135'), + bytes.fromhex('6d6573736167653136'), + bytes.fromhex('6d6573736167653137'), + bytes.fromhex('6d6573736167653138'), + bytes.fromhex('6d6573736167653139'), + bytes.fromhex('6d6573736167653230'), + bytes.fromhex('6d6573736167653231'), + bytes.fromhex('6d6573736167653232'), + bytes.fromhex('6d6573736167653233'), + bytes.fromhex('6d6573736167653234'), + bytes.fromhex('6d6573736167653235'), + bytes.fromhex('6d6573736167653236'), + bytes.fromhex('6d6573736167653237'), + bytes.fromhex('6d6573736167653238'), + bytes.fromhex('6d6573736167653239') + ] + ), + RegisterGlobalConstant( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 5000000, + counter = 12, + gas_limit = 1, + storage_limit = 3, + value = {'int': 115792089237316195423570985008687907853269984665640564039457584007913129639936} + ) +]) def test_sign_too_long_operation_with_too_large(app: TezosAppScreen): """Check sign too long operation that will also fail the parsing""" diff --git a/tests/integration/nano/test_sign_transaction.py b/tests/integration/nano/test_sign_transaction.py index 1d38253d0..787c6ed8d 100755 --- a/tests/integration/nano/test_sign_transaction.py +++ b/tests/integration/nano/test_sign_transaction.py @@ -19,25 +19,27 @@ from utils.app import Screen, ScreenText, TezosAppScreen, DEFAULT_ACCOUNT from utils.backend import StatusCode -from utils.message import Message +from utils.message import Transaction test_path = Path(Path(__file__).stem) -# Operation (0): Transaction -# Source: tz2JPgTWZZpxZZLqHMfS69UAy1UHm4Aw5iHu -# Fee: 0.05 XTZ -# Storage limit: 45 -# Amount: 0.24 XTZ -# Destination: KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT -# Entrypoint: do -# Parameter: CAR def test_sign_transaction(app: TezosAppScreen): """Check signing transaction""" path = test_path / "basic" app.setup_expert_mode() - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316") + message = Transaction( + source = 'tz2JPgTWZZpxZZLqHMfS69UAy1UHm4Aw5iHu', + fee = 50000, + counter = 8, + gas_limit = 54, + storage_limit = 45, + destination = 'KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT', + amount = 240000, + entrypoint = 'do', + parameter = {'prim': 'CAR'} + ) data = app.sign(DEFAULT_ACCOUNT, message, @@ -52,21 +54,23 @@ def test_sign_transaction(app: TezosAppScreen): app.quit() -# Operation (0): Transaction -# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa -# Fee: 0.01 XTZ -# Storage limit: 4 -# Amount: 0 XTZ -# Destination: KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT -# Entrypoint: root -# Data: {pair "[" (pair "Z" (pair "Y" (pair "X" (pair "W" (pair "V" (pair "U" (pair "T" (pair "S" (pair "R" (pair "Q" (pair "P" (pair "O" (pair "N" (pair "M" (pair "L" (pair "K" (pair "J" (pair "I" (pair "H" (pair "G" (pair "F" (pair "E" (pair "D" (pair "C" (pair "B" {})))))))))))))))))))))))));pair 10 (pair 9 (pair 8 (pair 7 (pair 6 (pair 5 (pair 4 (pair 3 (pair 2 (pair 1 {})))))))))} def test_reject_transaction(app: TezosAppScreen): """Check reject transaction""" path = test_path / "reject" app.setup_expert_mode() - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c00ffdd6102321bc251e4a5190ad5b12b251069d9b4904e0203040001000000000000000000000000000000000000000000ff01000001070200000102076501000000015b076501000000015a0765010000000159076501000000015807650100000001570765010000000156076501000000015507650100000001540765010000000153076501000000015207650100000001510765010000000150076501000000014f076501000000014e076501000000014d076501000000014c076501000000014b076501000000014a0765010000000149076501000000014807650100000001470765010000000146076501000000014507650100000001440765010000000143076501000000014202000000000765000a0765000907650008076500070765000607650005076500040765000307650002076500010200000000") + message = Transaction( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 10000, + counter = 2, + gas_limit = 3, + storage_limit = 4, + destination = 'KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT', + amount = 0, + entrypoint = 'root', + parameter = [{'prim':'pair','args':[{'string':"["},{'prim':'pair','args':[{'string':"Z"},{'prim':'pair','args':[{'string':"Y"},{'prim':'pair','args':[{'string':"X"},{'prim':'pair','args':[{'string':"W"},{'prim':'pair','args':[{'string':"V"},{'prim':'pair','args':[{'string':"U"},{'prim':'pair','args':[{'string':"T"},{'prim':'pair','args':[{'string':"S"},{'prim':'pair','args':[{'string':"R"},{'prim':'pair','args':[{'string':"Q"},{'prim':'pair','args':[{'string':"P"},{'prim':'pair','args':[{'string':"O"},{'prim':'pair','args':[{'string':"N"},{'prim':'pair','args':[{'string':"M"},{'prim':'pair','args':[{'string':"L"},{'prim':'pair','args':[{'string':"K"},{'prim':'pair','args':[{'string':"J"},{'prim':'pair','args':[{'string':"I"},{'prim':'pair','args':[{'string':"H"},{'prim':'pair','args':[{'string':"G"},{'prim':'pair','args':[{'string':"F"},{'prim':'pair','args':[{'string':"E"},{'prim':'pair','args':[{'string':"D"},{'prim':'pair','args':[{'string':"C"},{'prim':'pair','args':[{'string':"B"},[]]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]},{'prim':'pair','args':[{'int':10},{'prim':'pair','args':[{'int':9},{'prim':'pair','args':[{'int':8},{'prim':'pair','args':[{'int':7},{'prim':'pair','args':[{'int':6},{'prim':'pair','args':[{'int':5},{'prim':'pair','args':[{'int':4},{'prim':'pair','args':[{'int':3},{'prim':'pair','args':[{'int':2},{'prim':'pair','args':[{'int':1},[]]}]}]}]}]}]}]}]}]}]}] + ) app.reject_signing(DEFAULT_ACCOUNT, message, @@ -75,19 +79,21 @@ def test_reject_transaction(app: TezosAppScreen): app.quit() -# Operation (0): Transaction -# Source: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa -# Fee: 0.5 XTZ -# Storage limit: 4 -# Amount: 0.01 XTZ -# Destination: KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT def test_sign_simple_transaction(app: TezosAppScreen): """Check sign not complex transaction""" path = test_path / "simple" app.setup_expert_mode() - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c00ffdd6102321bc251e4a5190ad5b12b251069d9b4a0c21e020304904e0100000000000000000000000000000000000000000000") + message = Transaction( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 500000, + counter = 2, + gas_limit = 3, + storage_limit = 4, + destination = 'KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT', + amount = 10000 + ) data = app.sign(DEFAULT_ACCOUNT, message, @@ -102,20 +108,22 @@ def test_sign_simple_transaction(app: TezosAppScreen): app.quit() -# Operation (0): Transaction -# Source: tz2JPgTWZZpxZZLqHMfS69UAy1UHm4Aw5iHu -# Fee: 0.05 XTZ -# Storage limit: 45 -# Amount: 0.24 XTZ -# Destination: KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT -# Entrypoint: do -# Parameter: CAR def test_too_complex_transaction(app: TezosAppScreen): """Check sign complex transaction""" path = test_path / "complex" app.assert_screen(Screen.HOME) - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316") + message = Transaction( + source = 'tz2JPgTWZZpxZZLqHMfS69UAy1UHm4Aw5iHu', + fee = 50000, + counter = 8, + gas_limit = 54, + storage_limit = 45, + destination = 'KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT', + amount = 240000, + entrypoint = 'do', + parameter = {'prim': 'CAR'} + ) app._failing_signing(DEFAULT_ACCOUNT, message, @@ -127,21 +135,22 @@ def test_too_complex_transaction(app: TezosAppScreen): app.quit() -# Operation (0): Transaction -# Source: tz2WmivuMG8MMRKMEmzKRMMxMApxZQWYNS4W -# Fee: 0.04 XTZ -# Storage limit: 2 -# Amount: 1000 XTZ -# Destination: tz2CJBeWWLsUDjVUDqGZL6od3DeBCNzYXrXk -# Entrypoint: stake -# Parameter: Unit def test_sign_stake_transaction(app: TezosAppScreen): """Check sign stake""" path = test_path / "stake" app.setup_expert_mode() - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c01f6552df4f5ff51c3d13347cab045cfdb8b9bd803c0b8020031028094ebdc0300012bad922d045c068660fabe19576f8506a1fa8fa3ff0600000002030b") + message = Transaction( + source = 'tz2WmivuMG8MMRKMEmzKRMMxMApxZQWYNS4W', + fee = 40000, + counter = 0, + gas_limit = 49, + storage_limit = 2, + destination = 'tz2CJBeWWLsUDjVUDqGZL6od3DeBCNzYXrXk', + amount = 1000000000, + entrypoint = 'stake', + ) data = app.sign(DEFAULT_ACCOUNT, message, @@ -156,21 +165,22 @@ def test_sign_stake_transaction(app: TezosAppScreen): app.quit() -# Operation (0): Transaction -# Source: tz2WmivuMG8MMRKMEmzKRMMxMApxZQWYNS4W -# Fee: 0.04 XTZ -# Storage limit: 2 -# Amount: 500 XTZ -# Destination: tz2CJBeWWLsUDjVUDqGZL6od3DeBCNzYXrXk -# Entrypoint: unstake -# Parameter: Unit def test_sign_unstake_transaction(app: TezosAppScreen): """Check sign unstake""" path = test_path / "unstake" app.setup_expert_mode() - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c01f6552df4f5ff51c3d13347cab045cfdb8b9bd803c0b80200310280cab5ee0100012bad922d045c068660fabe19576f8506a1fa8fa3ff0700000002030b") + message = Transaction( + source = 'tz2WmivuMG8MMRKMEmzKRMMxMApxZQWYNS4W', + fee = 40000, + counter = 0, + gas_limit = 49, + storage_limit = 2, + destination = 'tz2CJBeWWLsUDjVUDqGZL6od3DeBCNzYXrXk', + amount = 500000000, + entrypoint = 'unstake' + ) data = app.sign(DEFAULT_ACCOUNT, message, @@ -185,21 +195,22 @@ def test_sign_unstake_transaction(app: TezosAppScreen): app.quit() -# Operation (0): Transaction -# Source: tz2WmivuMG8MMRKMEmzKRMMxMApxZQWYNS4W -# Fee: 0.04 XTZ -# Storage limit: 2 -# Amount: 0 XTZ -# Destination: tz2CJBeWWLsUDjVUDqGZL6od3DeBCNzYXrXk -# Entrypoint: finalize_unstake -# Parameter: Unit def test_sign_finalize_unstake_transaction(app: TezosAppScreen): """Check sign finalize_unstake""" path = test_path / "finalize_unstake" app.setup_expert_mode() - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c01f6552df4f5ff51c3d13347cab045cfdb8b9bd803c0b8020031020000012bad922d045c068660fabe19576f8506a1fa8fa3ff0800000002030b") + message = Transaction( + source = 'tz2WmivuMG8MMRKMEmzKRMMxMApxZQWYNS4W', + fee = 40000, + counter = 0, + gas_limit = 49, + storage_limit = 2, + destination = 'tz2CJBeWWLsUDjVUDqGZL6od3DeBCNzYXrXk', + amount = 0, + entrypoint = 'finalize_unstake' + ) data = app.sign(DEFAULT_ACCOUNT, message, @@ -214,21 +225,31 @@ def test_sign_finalize_unstake_transaction(app: TezosAppScreen): app.quit() -# Operation (0): Transaction -# Source: tz2WmivuMG8MMRKMEmzKRMMxMApxZQWYNS4W -# Fee: 0.04 XTZ -# Storage limit: 2 -# Amount: 0 XTZ -# Destination: tz2CJBeWWLsUDjVUDqGZL6od3DeBCNzYXrXk -# Entrypoint: set_delegate_parameters -# Parameter: Pair 4000000 (Pair 20000000 Unit) def test_sign_set_delegate_parameters_transaction(app: TezosAppScreen): """Check sign set delegate parameters""" path = test_path / "delegate_parameters" app.setup_expert_mode() - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c01f6552df4f5ff51c3d13347cab045cfdb8b9bd803c0b8020031020000012bad922d045c068660fabe19576f8506a1fa8fa3ff090000001007070080a4e80307070080b48913030b") + message = Transaction( + source = 'tz2WmivuMG8MMRKMEmzKRMMxMApxZQWYNS4W', + fee = 40000, + counter = 0, + gas_limit = 49, + storage_limit = 2, + destination = 'tz2CJBeWWLsUDjVUDqGZL6od3DeBCNzYXrXk', + amount = 0, + entrypoint = 'delegate_parameters', + parameter = {'prim': 'Pair', + 'args': [ + {'int': 4000000}, + {'prim': 'Pair', + 'args': [ + {'int': 20000000}, + {'prim': 'Unit'} + ]} + ]} + ) data = app.sign(DEFAULT_ACCOUNT, message, diff --git a/tests/integration/nano/test_sign_transfer_ticket.py b/tests/integration/nano/test_sign_transfer_ticket.py index 708f0f61f..0712588b1 100755 --- a/tests/integration/nano/test_sign_transfer_ticket.py +++ b/tests/integration/nano/test_sign_transfer_ticket.py @@ -18,17 +18,7 @@ from pathlib import Path from utils.app import TezosAppScreen, DEFAULT_ACCOUNT -from utils.message import Message - -# Operation (0): Transfer ticket -# Fee: 0.01 XTZ -# Storage limit: 4 -# Contents: UNPAIR -# Type: pair "1" 2 -# Ticketer: tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa -# Amount: 1 -# Destination: KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT -# Entrypoint: default +from utils.message import TransferTicket def test_sign_transfer_ticket(app: TezosAppScreen): """Check signing transfer ticket""" @@ -36,7 +26,18 @@ def test_sign_transfer_ticket(app: TezosAppScreen): app.setup_expert_mode() - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000009e00ffdd6102321bc251e4a5190ad5b12b251069d9b4904e02030400000002037a0000000a076501000000013100020000ffdd6102321bc251e4a5190ad5b12b251069d9b401010000000000000000000000000000000000000000000000000764656661756c74") + message = TransferTicket( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 10000, + counter = 2, + gas_limit = 3, + storage_limit = 4, + ticket_contents = {'prim': 'UNPAIR'}, + ticket_ty = {'prim': 'pair', 'args': [{'string': '1'}, {'int': 2}]}, + ticket_ticketer = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + ticket_amount = 1, + destination = 'KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT' + ) data = app.sign(DEFAULT_ACCOUNT, message, diff --git a/tests/integration/nano/test_sign_with_another_seed.py b/tests/integration/nano/test_sign_with_another_seed.py index e09089b4d..44cdc39b1 100755 --- a/tests/integration/nano/test_sign_with_another_seed.py +++ b/tests/integration/nano/test_sign_with_another_seed.py @@ -21,15 +21,7 @@ from utils.account import Account, SigType from utils.app import TezosAppScreen -from utils.message import Message - -# Operation (0): Transaction -# Fee: 0.05 XTZ -# Storage limit: 45 -# Amount: 0.24 XTZ -# Destination: KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT -# Entrypoint: do -# Parameter: CAR +from utils.message import Transaction @pytest.mark.parametrize("seed", ["around dignity equal spread between young lawsuit interest climb wide that panther rather mom snake scene ecology reunion ice illegal brush"]) def test_sign_with_another_seed(app: TezosAppScreen): @@ -42,7 +34,17 @@ def test_sign_with_another_seed(app: TezosAppScreen): SigType.ED25519, "edpkupntwMyERpYniuK1GDWquPaPU1wYsQgMirJPLGmC4Y5dMUsQNo") - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316") + message = Transaction( + source = 'tz2JPgTWZZpxZZLqHMfS69UAy1UHm4Aw5iHu', + fee = 50000, + counter = 8, + gas_limit = 54, + storage_limit = 45, + destination = 'KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT', + amount = 240000, + entrypoint = 'do', + parameter = {'prim': 'CAR'} + ) data = app.sign(account, message, diff --git a/tests/integration/nano/test_sign_with_long_hash.py b/tests/integration/nano/test_sign_with_long_hash.py index ad07111f9..7c4540986 100755 --- a/tests/integration/nano/test_sign_with_long_hash.py +++ b/tests/integration/nano/test_sign_with_long_hash.py @@ -18,15 +18,7 @@ from pathlib import Path from utils.app import TezosAppScreen, DEFAULT_ACCOUNT -from utils.message import Message - -# Operation (0): Transaction -# Fee: 0.01 XTZ -# Storage limit: 4 -# Amount: 0 XTZ -# Destination: KT1GW4QHn66m7WWWMWCMNaWmGYpCRbg5ahwU -# Entrypoint: root -# Parameter: 0 +from utils.message import Transaction def test_sign_with_long_hash(app: TezosAppScreen): """Check signing transaction with a long destination hash""" @@ -34,7 +26,17 @@ def test_sign_with_long_hash(app: TezosAppScreen): app.setup_expert_mode() - message = Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c00ffdd6102321bc251e4a5190ad5b12b251069d9b4904e020304000156dcfb211fa76c525fd7c4566c09a5e3e4d5b81000ff01000000020000") + message = Transaction( + source = 'tz1ixvCiPJYyMjsp2nKBVaq54f6AdbV8hCKa', + fee = 10000, + counter = 2, + gas_limit = 3, + storage_limit = 4, + destination = 'KT1GW4QHn66m7WWWMWCMNaWmGYpCRbg5ahwU', + amount = 0, + entrypoint = 'root', + parameter = {'int': 0} + ) data = app.sign(DEFAULT_ACCOUNT, message, diff --git a/tests/integration/nano/test_sign_with_small_packet.py b/tests/integration/nano/test_sign_with_small_packet.py index 8a482feaf..ee02faaca 100755 --- a/tests/integration/nano/test_sign_with_small_packet.py +++ b/tests/integration/nano/test_sign_with_small_packet.py @@ -19,7 +19,7 @@ from utils.account import Account from utils.app import send_and_navigate, Screen, ScreenText, TezosAppScreen, DEFAULT_ACCOUNT -from utils.message import Message +from utils.message import Message, Transaction def test_sign_with_small_packet(app: TezosAppScreen): """Check signing using small packet instead of full size packets""" @@ -44,9 +44,21 @@ def check_sign_with_small_packet( with_hash=False, data=data) + message = Transaction( + source = 'tz2JPgTWZZpxZZLqHMfS69UAy1UHm4Aw5iHu', + fee = 50000, + counter = 8, + gas_limit = 54, + storage_limit = 45, + destination = 'KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT', + amount = 240000, + entrypoint = 'do', + parameter = {'prim': 'CAR'} + ) + check_sign_with_small_packet( account=DEFAULT_ACCOUNT, - message=Message.from_bytes("0300000000000000000000000000000000000000000000000000000000000000006c016e8874874d31c3fbd636e924d5a036a43ec8faa7d0860308362d80d30e01000000000000000000000000000000000000000000ff02000000020316"), + message=message, path=test_name) app.quit() diff --git a/tests/integration/nano/test_tz1_bip25519_sign_micheline_basic.py b/tests/integration/nano/test_tz1_bip25519_sign_micheline_basic.py index 6d5ec7414..f021bb746 100755 --- a/tests/integration/nano/test_tz1_bip25519_sign_micheline_basic.py +++ b/tests/integration/nano/test_tz1_bip25519_sign_micheline_basic.py @@ -19,9 +19,7 @@ from utils.account import Account, SigType from utils.app import Screen, TezosAppScreen -from utils.message import Message - -# Expression: {"CACA";"POPO";"BOUDIN"} +from utils.message import MichelineExpr def test_tz1_bip25519_sign_micheline_basic(app: TezosAppScreen): """Check signing with bip25519""" @@ -33,7 +31,7 @@ def test_tz1_bip25519_sign_micheline_basic(app: TezosAppScreen): SigType.BIP32_ED25519, "edpkumJgSsSxkpiB5hmTq6eZcrmc6BsJtLAhYceFTiziFqje4mongz") - message = Message.from_bytes("05020000001d0100000004434143410100000004504f504f0100000006424f5544494e") + message = MichelineExpr([{'string': 'CACA'}, {'string': 'POPO'}, {'string': 'BOUDIN'}]) data = app.sign(account, message, diff --git a/tests/integration/nano/test_tz1_ed25519_sign_micheline_basic.py b/tests/integration/nano/test_tz1_ed25519_sign_micheline_basic.py index 05fa1d95f..6bc992ed8 100755 --- a/tests/integration/nano/test_tz1_ed25519_sign_micheline_basic.py +++ b/tests/integration/nano/test_tz1_ed25519_sign_micheline_basic.py @@ -19,9 +19,7 @@ from utils.account import Account, SigType from utils.app import Screen, TezosAppScreen -from utils.message import Message - -# Expression: {"CACA";"POPO";"BOUDIN"} +from utils.message import MichelineExpr def test_tz1_ed25519_sign_micheline_basic(app: TezosAppScreen): """Check signing with ed25519""" @@ -33,7 +31,7 @@ def test_tz1_ed25519_sign_micheline_basic(app: TezosAppScreen): SigType.ED25519, "edpkuXX2VdkdXzkN11oLCb8Aurdo1BTAtQiK8ZY9UPj2YMt3AHEpcY") - message = Message.from_bytes("05020000001d0100000004434143410100000004504f504f0100000006424f5544494e") + message = MichelineExpr([{'string': 'CACA'}, {'string': 'POPO'}, {'string': 'BOUDIN'}]) data = app.sign(account, message, diff --git a/tests/integration/nano/test_tz2_sign_micheline_basic.py b/tests/integration/nano/test_tz2_sign_micheline_basic.py index fa29e13f0..7ca2efd20 100755 --- a/tests/integration/nano/test_tz2_sign_micheline_basic.py +++ b/tests/integration/nano/test_tz2_sign_micheline_basic.py @@ -19,9 +19,7 @@ from utils.account import Account, SigType from utils.app import TezosAppScreen -from utils.message import Message - -# Expression: {"CACA";"POPO";"BOUDIN"} +from utils.message import MichelineExpr def test_tz2_sign_micheline_basic(app: TezosAppScreen): """Check signing with secp256k1""" @@ -31,7 +29,7 @@ def test_tz2_sign_micheline_basic(app: TezosAppScreen): SigType.SECP256K1, "sppk7bVy617DmGvXsMqcwsiLtnedTN2trUi5ugXcNig7en4rHJyunK1") - message = Message.from_bytes("05020000001d0100000004434143410100000004504f504f0100000006424f5544494e") + message = MichelineExpr([{'string': 'CACA'}, {'string': 'POPO'}, {'string': 'BOUDIN'}]) data = app.sign(account, message, diff --git a/tests/integration/nano/test_tz3_sign_micheline_basic.py b/tests/integration/nano/test_tz3_sign_micheline_basic.py index f0839b34d..9bd28aa3b 100755 --- a/tests/integration/nano/test_tz3_sign_micheline_basic.py +++ b/tests/integration/nano/test_tz3_sign_micheline_basic.py @@ -19,9 +19,7 @@ from utils.account import Account, SigType from utils.app import TezosAppScreen -from utils.message import Message - -# Expression: {"CACA";"POPO";"BOUDIN"} +from utils.message import MichelineExpr def test_tz3_sign_micheline_basic(app: TezosAppScreen): """Check signing with p256""" @@ -31,7 +29,7 @@ def test_tz3_sign_micheline_basic(app: TezosAppScreen): SigType.SECP256R1, "p2pk67fq5pzuMMABZ9RDrooYbLrgmnQbLt8z7PTGM9mskf7LXS5tdBG") - message = Message.from_bytes("05020000001d0100000004434143410100000004504f504f0100000006424f5544494e") + message = MichelineExpr([{'string': 'CACA'}, {'string': 'POPO'}, {'string': 'BOUDIN'}]) data = app.sign(account, message, diff --git a/tests/integration/nano/utils/message.py b/tests/integration/nano/utils/message.py index 488803024..209e06ccf 100644 --- a/tests/integration/nano/utils/message.py +++ b/tests/integration/nano/utils/message.py @@ -14,35 +14,783 @@ """Implemenation of sent messages.""" -from hashlib import blake2b -from typing import Union +from abc import ABC, abstractmethod +from enum import IntEnum +from typing import Any, Dict, List, Optional, Union -class Message: - """Class representing messages.""" +from pytezos.block.forge import forge_int_fixed +from pytezos.crypto.key import blake2b_32 +from pytezos.michelson.forge import ( + forge_address, + forge_array, + forge_base58, + forge_bool, + forge_int32, + forge_micheline, + forge_nat, + forge_public_key, +) +from pytezos.operation.content import ContentMixin, format_mutez +import pytezos.operation.forge as forge_operation +from pytezos.operation.forge import reserved_entrypoints, forge_tag +from pytezos.rpc.kind import operation_tags - HASH_SIZE = 32 +class Message(ABC): + """Class representing a message.""" - value: bytes + @property + def hash(self) -> bytes: + """hash of the message.""" + return blake2b_32(bytes(self)).digest() - def __init__(self, value: bytes): - self.value = value + @abstractmethod + def __bytes__(self) -> bytes: + raise NotImplementedError - @classmethod - def from_bytes(cls, value: Union[str, bytes]) -> 'Message': - """Get message from bytes or hex.""" +class RawMessage(Message): + """Class representing a raw message.""" - if isinstance(value, str): - value = bytes.fromhex(value) - return cls(value) + _value: bytes - @property - def hash(self) -> bytes: - """Hash of the message.""" + def __init__(self, value: Union[str, bytes]): + self._value = value if isinstance(value, bytes) else \ + bytes.fromhex(value) + + def __bytes__(self) -> bytes: + return self._value + + +Micheline = Union[List, Dict] + +class Default: + """Class holding default values.""" + BLOCK_HASH: str = 'BKiHLREqU3JkXfzEDYAkmmfX48gBDtYhMrpA98s7Aq4SzbUAB6M' + PROTOCOL_HASH: str = 'PrihK96nBAFSxVL1GLJTVhu9YnzkMFiBeuJRPA8NwuZVZCE1L6i' + ED25519_PUBLIC_KEY_HASH: str = 'tz1Ke2h7sDdakHJQh8WX4Z372du1KChsksyU' + ORIGINATED_ADDRESS: str = 'KT18amZmM5W7qDWVt2pH6uj7sCEd3kbzLrHT' + ORIGINATED_SMART_ROLLUP_ADDRESS: str = 'sr163Lv22CdE8QagCwf48PWDTquk6isQwv57' + SMART_ROLLUP_COMMITMENT_HASH: str = 'src12UJzB8mg7yU6nWPzicH7ofJbFjyJEbHvwtZdfRXi8DQHNp1LY8' + ED25519_PUBLIC_KEY: str = 'edpkteDwHwoNPB18tKToFKeSCykvr1ExnoMV5nawTJy9Y9nLTfQ541' + ENTRYPOINT: str = 'default' + BALLOT: str = 'yay' + SMART_ROLLUP_KIND: str = 'arith' + + class DefaultMicheline: + """Class holding Micheline default values.""" + VALUE: Micheline = {'prim': 'Unit'} + TYPE: Micheline = {'prim': 'unit'} + CODE: Micheline = [{'prim': 'CDR'}, {'prim': 'NIL', 'args': [{'prim': 'operation'}]}, {'prim': 'PAIR'}] + +class Watermark(IntEnum): + """Class hodling messages watermark.""" + MANAGER_OPERATION = 0x03 + MICHELINE_EXPRESSION = 0x05 + + +class MichelineExpr(Message): + """Class representing a tezos micheline expression.""" + + expr: Micheline + + def __init__(self, expr: Micheline): + self.expr = expr + + def __bytes__(self) -> bytes: + raw = b'' + raw += forge_int_fixed(Watermark.MICHELINE_EXPRESSION, 1) + raw += forge_micheline(self.expr) + return raw + + +class OperationBuilder(ContentMixin): + """Class representing to extends and fix pytezos.ContentMixin.""" + + def delegation(self, delegate, *args, **kwargs): + delegation = super().delegation(delegate, *args, **kwargs) + + if delegate is None: + delegation.pop('delegate') + + return delegation + + def set_deposit_limit( + self, + limit: Optional[int] = None, + source: str = '', + counter: int = 0, + fee: int = 0, + gas_limit: int = 0, + storage_limit: int = 0): + """Build a Tezos set-deposit-limit.""" + content = { + 'kind': 'set_deposit_limit', + 'source': source, + 'fee': format_mutez(fee), + 'counter': str(counter), + 'gas_limit': str(gas_limit), + 'storage_limit': str(storage_limit), + } + + if limit is not None: + content['limit'] = format_mutez(limit) + + return self.operation(content) + + def increase_paid_storage( + self, + amount: int = 0, + destination: str = '', + source: str = '', + counter: int = 0, + fee: int = 0, + gas_limit: int = 0, + storage_limit: int = 0): + """Build a Tezos increase-paid-storage.""" + return self.operation( + { + 'kind': 'increase_paid_storage', + 'source': source, + 'fee': format_mutez(fee), + 'counter': str(counter), + 'gas_limit': str(gas_limit), + 'storage_limit': str(storage_limit), + 'amount': str(amount), + 'destination': destination, + } + ) + + def update_consensus_key( + self, + pk: str = '', + source: str = '', + counter: int = 0, + fee: int = 0, + gas_limit: int = 0, + storage_limit: int = 0): + """Build a Tezos update-consensus-key.""" + return self.operation( + { + 'kind': 'update_consensus_key', + 'source': source, + 'fee': format_mutez(fee), + 'counter': str(counter), + 'gas_limit': str(gas_limit), + 'storage_limit': str(storage_limit), + 'pk': pk, + } + ) + + def smart_rollup_originate( + self, + pvm_kind: str = '', + kernel: str = '', + parameters_ty: Micheline = Default.DefaultMicheline.TYPE, + whitelist: Optional[List[str]] = None, + source: str = '', + counter: int = 0, + fee: int = 0, + gas_limit: int = 0, + storage_limit: int = 0): + """Build a Tezos smart rollup originate.""" + content = { + 'kind': 'smart_rollup_originate', + 'source': source, + 'fee': format_mutez(fee), + 'counter': str(counter), + 'gas_limit': str(gas_limit), + 'storage_limit': str(storage_limit), + 'pvm_kind': pvm_kind, + 'kernel': kernel, + 'parameters_ty': parameters_ty, + } - return blake2b( - self.value, - digest_size=Message.HASH_SIZE - ).digest() + if whitelist is not None: + content['whitelist'] = whitelist + + return self.operation(content) + +class OperationForge: + """Class to helps forging Tezos operation.""" + + # Insert new reserved entrypoint + reserved_entrypoints['stake'] = b'\x06' + reserved_entrypoints['unstake'] = b'\x07' + reserved_entrypoints['finalize_unstake'] = b'\x08' + reserved_entrypoints['delegate_parameters'] = b'\x09' + + # Insert new operation tag + operation_tags['set_deposit_limit'] = 112 + operation_tags['increase_paid_storage'] = 113 + operation_tags['update_consensus_key'] = 114 + operation_tags['smart_rollup_originate'] = 200 + + failing_noop = forge_operation.forge_failing_noop + reveal = forge_operation.forge_reveal + transaction = forge_operation.forge_transaction + origination = forge_operation.forge_origination + delegation = forge_operation.forge_delegation + register_global_constant = forge_operation.forge_register_global_constant + transfer_ticket = forge_operation.forge_transfer_ticket + smart_rollup_add_messages = forge_operation.forge_smart_rollup_add_messages + smart_rollup_execute_outbox_message = forge_operation.forge_smart_rollup_execute_outbox_message + + @staticmethod + def proposals(content: Dict[str, Any]) -> bytes: + """Forge a Tezos proposals.""" + res = forge_tag(operation_tags[content['kind']]) + res += forge_address(content['source'], tz_only=True) + res += forge_int32(int(content['period'])) + res += forge_array(b''.join(map(forge_base58, content['proposals']))) + return res + + BALLOT_TAG = { 'yay': 0, 'nay': 1, 'pass': 2 } + + @staticmethod + def ballot(content: Dict[str, Any]) -> bytes: + """Forge a Tezos ballot.""" + res = forge_tag(operation_tags[content['kind']]) + res += forge_address(content['source'], tz_only=True) + res += forge_int32(int(content['period'])) + res += forge_base58(content['proposal']) + res += forge_int_fixed(OperationForge.BALLOT_TAG[content['ballot']], 1) + return res + + @staticmethod + def set_deposit_limit(content: Dict[str, Any]) -> bytes: + """Forge a Tezos set-deposit-limit.""" + res = forge_tag(operation_tags[content['kind']]) + res += forge_address(content['source'], tz_only=True) + res += forge_nat(int(content['fee'])) + res += forge_nat(int(content['counter'])) + res += forge_nat(int(content['gas_limit'])) + res += forge_nat(int(content['storage_limit'])) + + if content.get('limit'): + res += forge_bool(True) + res += forge_nat(int(content['limit'])) + else: + res += forge_bool(False) + + return res + + @staticmethod + def increase_paid_storage(content: Dict[str, Any]) -> bytes: + """Forge a Tezos increase-paid-storage.""" + res = forge_tag(operation_tags[content['kind']]) + res += forge_address(content['source'], tz_only=True) + res += forge_nat(int(content['fee'])) + res += forge_nat(int(content['counter'])) + res += forge_nat(int(content['gas_limit'])) + res += forge_nat(int(content['storage_limit'])) + res += forge_nat(int(content['amount'])) + res += forge_address(content['destination']) + return res + + @staticmethod + def update_consensus_key(content: Dict[str, Any]) -> bytes: + """Forge a Tezos update-consensus-key.""" + res = forge_tag(operation_tags[content['kind']]) + res += forge_address(content['source'], tz_only=True) + res += forge_nat(int(content['fee'])) + res += forge_nat(int(content['counter'])) + res += forge_nat(int(content['gas_limit'])) + res += forge_nat(int(content['storage_limit'])) + res += forge_public_key(content['pk']) + return res + + PVM_KIND_TAG = { 'arith': 0, 'wasm_2_0_0': 1, 'riscv': 2 } + + @staticmethod + def smart_rollup_originate(content: Dict[str, Any]) -> bytes: + """Forge a Tezos smart rollup originate.""" + res = forge_tag(operation_tags[content['kind']]) + res += forge_address(content['source'], tz_only=True) + res += forge_nat(int(content['fee'])) + res += forge_nat(int(content['counter'])) + res += forge_nat(int(content['gas_limit'])) + res += forge_nat(int(content['storage_limit'])) + res += forge_int_fixed( + OperationForge.PVM_KIND_TAG[content['pvm_kind']], 1 + ) + res += forge_array(bytes.fromhex(content['kernel'])) + res += forge_array(forge_micheline(content['parameters_ty'])) + + if content.get('whitelist') is not None: + res += forge_bool(True) + res += forge_array(b''.join( + forge_address(pkh, tz_only=True) + for pkh in content['whitelist'] + )) + else: + res += forge_bool(False) + + return res + +class Operation(Message, OperationBuilder): + """Class representing a tezos operation.""" + + branch: str + + def __init__(self, branch: str = Default.BLOCK_HASH): + self.branch = branch + + @abstractmethod + def forge(self) -> bytes: + """Forge the operation.""" + raise NotImplementedError def __bytes__(self) -> bytes: - return self.value + raw = b'' + raw += forge_int_fixed(Watermark.MANAGER_OPERATION, 1) + raw += forge_base58(self.branch) + raw += self.forge() + return raw + +class Proposals(Operation): + """Class representing a tezos proposals.""" + + proposals_: List[str] + source: str + period: int + + def __init__(self, + proposals: List[str] = [Default.PROTOCOL_HASH], + source: str = Default.ED25519_PUBLIC_KEY_HASH, + period: int = 0, + **kwargs): + self.proposals_ = proposals + self.source = source + self.period = period + Operation.__init__(self, **kwargs) + + def forge(self) -> bytes: + return OperationForge.proposals( + self.proposals( + self.proposals_, + self.source, + self.period + ) + ) + +class Ballot(Operation): + """Class representing a tezos ballot.""" + + proposal : str + ballot_ : str + source : str + period: int + + def __init__(self, + proposal: str = Default.PROTOCOL_HASH, + ballot: str = Default.BALLOT, + source: str = Default.ED25519_PUBLIC_KEY_HASH, + period: int = 0, + **kwargs): + self.proposal = proposal + self.ballot_ = ballot + self.source = source + self.period = period + Operation.__init__(self, **kwargs) + + def forge(self) -> bytes: + return OperationForge.ballot( + self.ballot( + self.proposal, + self.ballot_, + self.source, + self.period + ) + ) + +class FailingNoop(Operation): + """Class representing a tezos failing-noop.""" + + message: str + + def __init__(self, message: str = "", **kwargs): + self.message = message + Operation.__init__(self, **kwargs) + + def forge(self) -> bytes: + return OperationForge.failing_noop(self.failing_noop(self.message)) + +class ManagerOperation(Operation): + """Class representing a tezos manager operation.""" + + source: str + fee: int + counter: int + gas_limit: int + storage_limit: int + + def __init__(self, + source: str = Default.ED25519_PUBLIC_KEY_HASH, + fee: int = 0, + counter: int = 0, + gas_limit: int = 0, + storage_limit: int = 0, + **kwargs): + self.source = source + self.fee = fee + self.counter = counter + self.gas_limit = gas_limit + self.storage_limit = storage_limit + Operation.__init__(self, **kwargs) + +class OperationGroup(Operation): + """Class representing a group of tezos manager operation.""" + + operations: List[ManagerOperation] + + def __init__(self, + operations: List[ManagerOperation] = [], + **kwargs): + self.operations = operations + Operation.__init__(self, **kwargs) + + def forge(self) -> bytes: + return b''.join(map(lambda op: op.forge(), self.operations)) + +class Reveal(ManagerOperation): + """Class representing a tezos reveal.""" + + public_key: str + + def __init__(self, + public_key: str = Default.ED25519_PUBLIC_KEY, + **kwargs): + self.public_key = public_key + ManagerOperation.__init__(self, **kwargs) + + def forge(self) -> bytes: + return OperationForge.reveal( + self.reveal( + self.public_key, + self.source, + self.counter, + self.fee, + self.gas_limit, + self.storage_limit + ) + ) + +class Transaction(ManagerOperation): + """Class representing a tezos transaction.""" + + destination: str + amount: int + entrypoint: str + parameter: Micheline + + def __init__(self, + destination: str = Default.ED25519_PUBLIC_KEY_HASH, + amount: int = 0, + entrypoint: str = Default.ENTRYPOINT, + parameter: Micheline = Default.DefaultMicheline.VALUE, + **kwargs): + self.destination = destination + self.amount = amount + self.entrypoint = entrypoint + self.parameter = parameter + ManagerOperation.__init__(self, **kwargs) + + def forge(self) -> bytes: + parameters = { "entrypoint": self.entrypoint, "value": self.parameter } + return OperationForge.transaction( + self.transaction( + self.destination, + self.amount, + parameters, + self.source, + self.counter, + self.fee, + self.gas_limit, + self.storage_limit + ) + ) + +class Origination(ManagerOperation): + """Class representing a tezos origination.""" + + code: Micheline + storage: Micheline + balance: int + delegate: Optional[str] + + def __init__(self, + code: Micheline = Default.DefaultMicheline.CODE, + storage: Micheline = Default.DefaultMicheline.TYPE, + balance: int = 0, + delegate: Optional[str] = None, + **kwargs): + self.code = code + self.storage = storage + self.balance = balance + self.delegate = delegate + ManagerOperation.__init__(self, **kwargs) + + def forge(self) -> bytes: + script = { "code": self.code, "storage": self.storage } + return OperationForge.origination( + self.origination( + script, + self.balance, + self.delegate, + self.source, + self.counter, + self.fee, + self.gas_limit, + self.storage_limit + ) + ) + +class Delegation(ManagerOperation): + """Class representing a tezos delegation.""" + + delegate: Optional[str] + + def __init__(self, + delegate: Optional[str] = None, + **kwargs): + self.delegate = delegate + ManagerOperation.__init__(self, **kwargs) + + def forge(self) -> bytes: + return OperationForge.delegation( + self.delegation( + self.delegate, + self.source, + self.counter, + self.fee, + self.gas_limit, + self.storage_limit + ) + ) + +class RegisterGlobalConstant(ManagerOperation): + """Class representing a tezos register global constant.""" + + value: Micheline + + def __init__(self, + value: Micheline = Default.DefaultMicheline.VALUE, + **kwargs): + self.value = value + ManagerOperation.__init__(self, **kwargs) + + def forge(self) -> bytes: + return OperationForge.register_global_constant( + self.register_global_constant( + self.value, + self.source, + self.counter, + self.fee, + self.gas_limit, + self.storage_limit + ) + ) + +class SetDepositLimit(ManagerOperation): + """Class representing a tezos set deposit limit.""" + + limit: Optional[int] + + def __init__(self, + limit: Optional[int] = None, + **kwargs): + self.limit = limit + ManagerOperation.__init__(self, **kwargs) + + def forge(self) -> bytes: + return OperationForge.set_deposit_limit( + self.set_deposit_limit( + self.limit, + self.source, + self.counter, + self.fee, + self.gas_limit, + self.storage_limit + ) + ) + +class IncreasePaidStorage(ManagerOperation): + """Class representing a tezos increase paid storage.""" + + amount: int + destination: str + + def __init__(self, + amount: int = 0, + destination: str = Default.ORIGINATED_ADDRESS, + **kwargs): + self.amount = amount + self.destination = destination + ManagerOperation.__init__(self, **kwargs) + + def forge(self) -> bytes: + return OperationForge.increase_paid_storage( + self.increase_paid_storage( + self.amount, + self.destination, + self.source, + self.counter, + self.fee, + self.gas_limit, + self.storage_limit + ) + ) + +class UpdateConsensusKey(ManagerOperation): + """Class representing a tezos update consensus key.""" + + pk: str + + def __init__(self, + pk: str = Default.ED25519_PUBLIC_KEY, + **kwargs): + self.pk = pk + ManagerOperation.__init__(self, **kwargs) + + def forge(self) -> bytes: + return OperationForge.update_consensus_key( + self.update_consensus_key( + self.pk, + self.source, + self.counter, + self.fee, + self.gas_limit, + self.storage_limit + ) + ) + +class TransferTicket(ManagerOperation): + """Class representing a tezos transfer ticket.""" + + ticket_contents: Micheline + ticket_ty: Micheline + ticket_ticketer: str + ticket_amount: int + destination: str + entrypoint: str + + def __init__(self, + ticket_contents: Micheline = Default.DefaultMicheline.VALUE, + ticket_ty: Micheline = Default.DefaultMicheline.TYPE, + ticket_ticketer: str = Default.ORIGINATED_ADDRESS, + ticket_amount: int = 0, + destination: str = Default.ORIGINATED_ADDRESS, + entrypoint: str = Default.ENTRYPOINT, + **kwargs): + self.ticket_contents = ticket_contents + self.ticket_ty = ticket_ty + self.ticket_ticketer = ticket_ticketer + self.ticket_amount = ticket_amount + self.destination = destination + self.entrypoint = entrypoint + ManagerOperation.__init__(self, **kwargs) + + def forge(self) -> bytes: + return OperationForge.transfer_ticket( + self.transfer_ticket( + self.ticket_contents, + self.ticket_ty, + self.ticket_ticketer, + self.ticket_amount, + self.destination, + self.entrypoint, + self.source, + self.counter, + self.fee, + self.gas_limit, + self.storage_limit + ) + ) + +class ScRollupOriginate(ManagerOperation): + """Class representing a tezos smart rollup originate.""" + + pvm_kind: str + kernel: str + parameters_ty: Micheline + whitelist: Optional[List[str]] + + def __init__(self, + pvm_kind: str = Default.SMART_ROLLUP_KIND, + kernel: str = "", + parameters_ty: Micheline = Default.DefaultMicheline.TYPE, + whitelist: Optional[List[str]] = None, + **kwargs): + self.pvm_kind = pvm_kind + self.kernel = kernel + self.parameters_ty = parameters_ty + self.whitelist = whitelist + ManagerOperation.__init__(self, **kwargs) + + def forge(self) -> bytes: + return OperationForge.smart_rollup_originate( + self.smart_rollup_originate( + self.pvm_kind, + self.kernel, + self.parameters_ty, + self.whitelist, + self.source, + self.counter, + self.fee, + self.gas_limit, + self.storage_limit + ) + ) + +class ScRollupAddMessage(ManagerOperation): + """Class representing a tezos smart rollup add message.""" + + message: List[bytes] + + def __init__(self, + message: List[bytes] = [b''], + **kwargs): + self.message = message + ManagerOperation.__init__(self, **kwargs) + + def forge(self) -> bytes: + return OperationForge.smart_rollup_add_messages( + self.smart_rollup_add_messages( + self.message, + self.source, + self.counter, + self.fee, + self.gas_limit, + self.storage_limit + ) + ) + +class ScRollupExecuteOutboxMessage(ManagerOperation): + """Class representing a tezos smart rollup execute outbox message.""" + + rollup: str + cemented_commitment: str + output_proof: bytes + + def __init__(self, + rollup: str = Default.ORIGINATED_SMART_ROLLUP_ADDRESS, + cemented_commitment: str = Default.SMART_ROLLUP_COMMITMENT_HASH, + output_proof: bytes = b'', + **kwargs): + self.rollup = rollup + self.cemented_commitment = cemented_commitment + self.output_proof = output_proof + ManagerOperation.__init__(self, **kwargs) + + def forge(self) -> bytes: + return OperationForge.smart_rollup_execute_outbox_message( + self.smart_rollup_execute_outbox_message( + self.rollup, + self.cemented_commitment, + self.output_proof, + self.source, + self.counter, + self.fee, + self.gas_limit, + self.storage_limit + ) + )