Check-in [708aefc02a]
Not logged in
Overview
Comment:Pickup Harpy tooling changes from upstream into externals.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 708aefc02a9fc19936836c3a51f50a6510f5ec18
User & Date: mistachkin on 2020-11-11 05:38:05
Other Links: manifest | tags
Context
2020-11-20
03:09
Pickup Harpy tooling changes from upstream into externals again. check-in: e1479ba7f5 user: mistachkin tags: trunk
2020-11-11
05:38
Pickup Harpy tooling changes from upstream into externals. check-in: 708aefc02a user: mistachkin tags: trunk
2020-10-28
04:00
Update generated documentation. check-in: eee7ac9ae9 user: mistachkin tags: trunk
Changes

Modified externals/Harpy/Tools/sign.eagle from [8ab3b95380] to [cf42c363f7].

14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#
###############################################################################

proc usage { error } {
  if {[string length $error] > 0} then {puts stdout $error}

  puts stdout "usage:\
[file tail [info nameofexecutable]]\
[file tail [info script]] <fileName> \[vendor\] \[embed\]\
\[duration\] \[entityType\] \[encoding\] \[publicKeyFile\]\
\[privateKeyFile\]"

  #
  # NOTE: Indicate to the caller, if any, that we have failed.
  #
  exit 1
}








|


|







14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#
###############################################################################

proc usage { error } {
  if {[string length $error] > 0} then {puts stdout $error}

  puts stdout "usage:\
[file tail [getShellExecutableName]]\
[file tail [info script]] <fileName> \[vendor\] \[embed\]\
\[duration\] \[entityType\] \[encoding\] \[publicKeyFile\]\
\[privateKeyFile\] \[importFirst\]"

  #
  # NOTE: Indicate to the caller, if any, that we have failed.
  #
  exit 1
}

150
151
152
153
154
155
156
157
158
159
160
161
162
163
164

      puts stdout [appendArgs \
          "removed embedded certificate from file \"" $fileName \"]
    }
  }
}

if {[llength $argv] >= 1 && [llength $argv] <= 8} then {
  #
  # NOTE: This tool requires Eagle.
  #
  package require Eagle

  #
  # NOTE: Needed for the [getTemporaryPath] script procedure.







|







150
151
152
153
154
155
156
157
158
159
160
161
162
163
164

      puts stdout [appendArgs \
          "removed embedded certificate from file \"" $fileName \"]
    }
  }
}

if {[llength $argv] >= 1 && [llength $argv] <= 9} then {
  #
  # NOTE: This tool requires Eagle.
  #
  package require Eagle

  #
  # NOTE: Needed for the [getTemporaryPath] script procedure.
317
318
319
320
321
322
323









324
325
326
327
328
329
330
    #
    # NOTE: Default to "EagleEnterprisePluginRootPublic.snk" in the current
    #       directory (which may not actually exist).
    #
    set publicKeyFile EagleEnterprisePluginRootPublic.snk
  }










  #
  # NOTE: If the configuration file exists, load it now.
  #
  set configFileName [file join $path sign.settings.eagle]
  if {[file exists $configFileName]} then {source $configFileName}

  #







>
>
>
>
>
>
>
>
>







317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
    #
    # NOTE: Default to "EagleEnterprisePluginRootPublic.snk" in the current
    #       directory (which may not actually exist).
    #
    set publicKeyFile EagleEnterprisePluginRootPublic.snk
  }

  #
  # NOTE: Do we want to import the existing certificate first?
  #
  if {[llength $argv] >= 9} then {
    set importFirst [lindex $argv 8]
  } else {
    set importFirst false; # TODO: Good default?
  }

  #
  # NOTE: If the configuration file exists, load it now.
  #
  set configFileName [file join $path sign.settings.eagle]
  if {[file exists $configFileName]} then {source $configFileName}

  #
406
407
408
409
410
411
412

413
414
415
416
417
418
419
420
    #
    # NOTE: Attempt to re-sign the license certificate file.  Skip
    #       setting the Id as it should already be set correctly.
    #
    if {[certificate sign -encoding $encoding -settimestamp \
            -setkey $certificate $privateKey] ne "SignedOk"} then {
      error [appendArgs \

          "failed to create signature for " $fileType " \"" $fileName \"]
    }

    #
    # NOTE: Attempt to re-verify the license certificate file.
    #
    if {[certificate verify -encoding $encoding $certificate \
            $privateKey] ne "VerifiedOk"} then {







>
|







415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
    #
    # NOTE: Attempt to re-sign the license certificate file.  Skip
    #       setting the Id as it should already be set correctly.
    #
    if {[certificate sign -encoding $encoding -settimestamp \
            -setkey $certificate $privateKey] ne "SignedOk"} then {
      error [appendArgs \
          "failed to create updated signature for " $fileType \
          " \"" $fileName \"]
    }

    #
    # NOTE: Attempt to re-verify the license certificate file.
    #
    if {[certificate verify -encoding $encoding $certificate \
            $privateKey] ne "VerifiedOk"} then {
439
440
441
442
443
444
445



446
447

448
449
450
451
452
453
454
    #       placed) based on the data file name.
    #
    set certificateFile [appendArgs $fileName .harpy]

    #
    # NOTE: Create an empty certificate object.
    #



    set certificate [object create -alias \
        Licensing.Components.Public.Certificate]


    #
    # HOOK: Post-certificate object creation (create).
    #
    catch {certificate_hook phase1}

    #







>
>
>
|
|
>







449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
    #       placed) based on the data file name.
    #
    set certificateFile [appendArgs $fileName .harpy]

    #
    # NOTE: Create an empty certificate object.
    #
    if {$importFirst} then {
      set certificate [certificate import -alias $certificateFile]
    } else {
      set certificate [object create -alias \
          Licensing.Components.Public.Certificate]
    }

    #
    # HOOK: Post-certificate object creation (create).
    #
    catch {certificate_hook phase1}

    #
490
491
492
493
494
495
496









497
498
499
500
501
502

503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526

527
528

529








530


531
532
533
534
535
536
537
538
539
540

541
542
543
544
545
546
547
      catch {certificate_hook phase2}

      #
      # NOTE: Attempt to sign the embedded file certificate and place
      #       the Id, timestamp, public key token, and signature bytes
      #       into the certificate we created above.
      #









      if {[certificate sign -encoding $encoding -setid -settimestamp \
              -setkey -hashflags {+Basic Embedded} $certificate \
              $privateKey] ne "SignedOk"} then {
        error [appendArgs \
            "failed to create embedded signature for " $fileType " \"" \
            $fileName \"]

      }

      #
      # NOTE: Sanity check that the embedded file certificate we just
      #       created validates properly.
      #
      if {[certificate verify -encoding $encoding \
              -hashflags {+Basic Embedded} $certificate \
              $publicKey] ne "VerifiedOk"} then {
        error [appendArgs \
            "failed to verify embedded signature for " $fileType " \"" \
            $fileName \"]
      }
    } else {
      #
      # HOOK: Post-certificate property setup (non-embedded).
      #
      catch {certificate_hook phase2}

      #
      # NOTE: Attempt to sign the data file and place the Id, timestamp,
      #       public key token, and signature bytes into the blank
      #       certificate we created above.
      #

      if {[certificate signfile -encoding $encoding -setid -settimestamp \
              -setkey $certificate $privateKey $fileName] ne "SignedOk"} then {

        error [appendArgs \








            "failed to create signature for " $fileType " \"" $fileName \"]


      }

      #
      # NOTE: Sanity check that the data file certificate we just
      #       created validates properly.
      #
      if {[certificate verifyfile -encoding $encoding \
              $certificate $publicKey $fileName] ne "VerifiedOk"} then {
        error [appendArgs \
            "failed to verify signature for " $fileType " \"" $fileName \"]

      }
    }
  }

  #
  # NOTE: When embedding, do not modify the external certificate
  #       file.  Also, do not save out the entity value we set.







>
>
>
>
>
>
>
>
>
|
|
|
|
|
|
>










|
|












>
|
|
>
|
>
>
>
>
>
>
>
>
|
>
>









|
>







504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
      catch {certificate_hook phase2}

      #
      # NOTE: Attempt to sign the embedded file certificate and place
      #       the Id, timestamp, public key token, and signature bytes
      #       into the certificate we created above.
      #
      if {$importFirst} then {
        if {[certificate sign -encoding $encoding \
                -setkey -hashflags {+Basic Embedded} $certificate \
                $privateKey] ne "SignedOk"} then {
          error [appendArgs \
              "failed to create updated embedded signature for " \
              $fileType " \"" $fileName \"]
        }
      } else {
        if {[certificate sign -encoding $encoding -setid -settimestamp \
                -setkey -hashflags {+Basic Embedded} $certificate \
                $privateKey] ne "SignedOk"} then {
          error [appendArgs \
              "failed to create embedded signature for " $fileType \
              " \"" $fileName \"]
        }
      }

      #
      # NOTE: Sanity check that the embedded file certificate we just
      #       created validates properly.
      #
      if {[certificate verify -encoding $encoding \
              -hashflags {+Basic Embedded} $certificate \
              $publicKey] ne "VerifiedOk"} then {
        error [appendArgs \
            "failed to verify embedded signature for " $fileType \
            " \"" $fileName \"]
      }
    } else {
      #
      # HOOK: Post-certificate property setup (non-embedded).
      #
      catch {certificate_hook phase2}

      #
      # NOTE: Attempt to sign the data file and place the Id, timestamp,
      #       public key token, and signature bytes into the blank
      #       certificate we created above.
      #
      if {$importFirst} then {
        if {[certificate signfile -encoding $encoding \
                -setkey $certificate $privateKey \
                $fileName] ne "SignedOk"} then {
          error [appendArgs \
              "failed to create updated signature for " $fileType \
              " \"" $fileName \"]
        }
      } else {
        if {[certificate signfile -encoding $encoding -setid \
                -settimestamp -setkey $certificate $privateKey \
                $fileName] ne "SignedOk"} then {
          error [appendArgs \
              "failed to create signature for " $fileType \
              " \"" $fileName \"]
        }
      }

      #
      # NOTE: Sanity check that the data file certificate we just
      #       created validates properly.
      #
      if {[certificate verifyfile -encoding $encoding \
              $certificate $publicKey $fileName] ne "VerifiedOk"} then {
        error [appendArgs \
            "failed to verify signature for " $fileType \
            " \"" $fileName \"]
      }
    }
  }

  #
  # NOTE: When embedding, do not modify the external certificate
  #       file.  Also, do not save out the entity value we set.
602
603
604
605
606
607
608

609





610
611
612

613
614
615
616
617
618
619
      "\" xmlns" [appendArgs \" [info newline] $spaces xmlns]] $data]

  writeCertificateFile $certificateFile $data

  #
  # NOTE: Show that we signed it.
  #

  puts stdout [appendArgs \





      "signed " $fileType " \"" $fileName "\" (as \"" $entityType \
      "\") using encoding \"" $encoding "\" with key " [keypair token \
      $privateKeyFile]]


  #
  # NOTE: Do we need to embed the certificate at the end of the script
  #       file?
  #
  if {$shouldEmbed} then {
    #







>
|
>
>
>
>
>
|
|
|
>







639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
      "\" xmlns" [appendArgs \" [info newline] $spaces xmlns]] $data]

  writeCertificateFile $certificateFile $data

  #
  # NOTE: Show that we signed it.
  #
  if {$importFirst} then {
    puts stdout [appendArgs \
        "re-signed " $fileType " \"" $fileName "\" (as \"" $entityType \
        "\") using encoding \"" $encoding "\" with key " [keypair token \
        $privateKeyFile]]
  } else {
    puts stdout [appendArgs \
        "signed " $fileType " \"" $fileName "\" (as \"" $entityType \
        "\") using encoding \"" $encoding "\" with key " [keypair token \
        $privateKeyFile]]
  }

  #
  # NOTE: Do we need to embed the certificate at the end of the script
  #       file?
  #
  if {$shouldEmbed} then {
    #
661
662
663
664
665
666
667
668
669
670

671
672
673
674
675
676
677
  catch {certificate_hook phase3}

  #
  # NOTE: Play nice and cleanup all the variables we created during the
  #       whole the signing process.
  #
  unset -nocomplain fileName vendor embed duration entityType encoding \
      privateKeyFile publicKeyFile configFileName embedSpacing embedPrefix \
      embedSuffix publicKey privateKey shouldEmbed fileType certificate \
      certificateFile data xmlNs xmlNsXsi xmlNsXsd spaces lines line


  if {[info exists path_set]} then {
    unset -nocomplain path path_set
  }
} else {
  usage ""
}







|
|
|
>







705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
  catch {certificate_hook phase3}

  #
  # NOTE: Play nice and cleanup all the variables we created during the
  #       whole the signing process.
  #
  unset -nocomplain fileName vendor embed duration entityType encoding \
      privateKeyFile publicKeyFile importFirst configFileName embedSpacing \
      embedPrefix embedSuffix publicKey privateKey shouldEmbed fileType \
      certificate certificateFile data xmlNs xmlNsXsi xmlNsXsd spaces \
      lines line

  if {[info exists path_set]} then {
    unset -nocomplain path path_set
  }
} else {
  usage ""
}

Modified externals/Harpy/Tools/sign.eagle.asc from [b707e1fc09] to [ee4d34f80e].

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
Comment: Eagle Package Repository

iQIcBAABCAAGBQJd5YqhAAoJEFAslq9JXcLZkMAQAJMlJS7h8MmRVvVagbGxiX15
tBd5El5wbDefsqU2rhHzl01i6UBN2rE813Qz5iWaPOa83WaXYMU9ZFBaAynBu9mt
jeEp5LgIB5yU4smQihyQQ/7O4zuUrWT3dLCnQpFjyAQ+274VcHwOl1y/i2M5Yr/b
xIg0NDlXCcgaCtOy7XcucguKNDKGexVWhI15p3j8A8Rz41oh764hQpXzyGNXvqHt
s3ZIqgG6HuZZ3LPNV1Dsi+ZjbtLaEFzWBbJfm444V73saUHqVgRXeGpHpmjNgkak
6r4a4sFBmvP8uLqem0fyQRivugIFukypT9SZNKsTmEZxRXGXhkdXRUTzuSqWp2/E
RIoyjTPYyVc5uc1hDPtPaUeR3XjhdQt9wMkyOgKCNdakrHxokdWz/owJz19ifxXo
0YdPe+nSJHvOaifGzK8dlG6B41kUaPT8OyZm1eI4CRIIehxbyFaFA+tMv1I6cv6z
9iaXhGjJfIL1TKQeGYaRobXn8t8H4n+JUGwvXvkMm2WP2jP0KDj4tj7e8oIZe/Ml
87XERrP2QFQFFvg6iBH7ESlw3VcSX+nFO5xArrazBi4iq2nhkF50fU/DOyzpHDxM
n0EucXE7fnU2pD8XZ7THRSDceFiSVcENb9U0HiZImUu1c+Wpk5qvInjaj8b2O3ld
FRJLBLS4qe8bYWFOTpx6
=LYOk
-----END PGP SIGNATURE-----




|
|
|
|
|
|
|
|
|
|
|
|
|

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
Comment: Eagle Package Repository

iQIcBAABCAAGBQJfq3ikAAoJEFAslq9JXcLZehoQAMNid73RvDNwSXkwS7xlOyzs
guTzPhoqOdbaVcQmMrDnpxnVOPF1yL4tAghjPhuGG+IRN3sCFfic+BzuP2qQT7Du
ejMLjSjoz60/potmVwBru8Iv5QyoyD/BrL2aF3mJnRBUTffv0dcu7xSwQuOLBw6z
2XMnKOKovvx7z9Z8H1MV/Fr3iQIsJaN8JM1MTL7D75MQ7BTFLz2EM6K4dE7iidO8
PzHuyayNbWo3IDRqaVSSp/TFECUbqSqPMe7yhpvnh11i2te4mcMbswuqKWDPLD0S
Kb2wIptV+apOLWNVeNdrbyA2qC0hM40CGzTvzgxjSXFEM8VgMrcBJCyELTn0n3yw
XGkz5nAdlWdvl0qB2Cih/wNKmMYosFxB1Xqd0IC+EmPBhfGwvWTv8gflfEI9vk1K
nEHnfNB6pRZZfE7cqi1ydOMooVNCyeY5o784VwcCujz+/lIyFxaub/H2FtO7H5XU
aYiPPdo2YD4sOfSVyq74J/j8YEtnZgHmz5XKn9dhKr7Vj+x52wuskli91Yy6X9Ig
fx/ekYT/CUS06+y9fTZ1rTwfx//Emsx/znZopzz1pnRud7M26U3+kQzUeCtaQIZ4
vkR/qQhaXfY93J0TEGUbAzlmZZmq/ilkGm1N4rKs5lRulJQEnzfyxQRJyEqUEDxQ
OCAjCnrB+4jZbdz35y5Z
=VGbj
-----END PGP SIGNATURE-----

Modified externals/Harpy/Tools/sign.eagle.harpy from [4044b693a2] to [94220c1af5].

17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
    THE ASSOCIATED SOFTWARE MAY NOT WORK PROPERLY IF THIS FILE IS ALTERED.
-->
<Certificate xmlns="https://eagle.to/2011/harpy"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Protocol>None</Protocol>
  <Vendor>Mistachkin Systems</Vendor>
  <Id>da97b56f-97d9-499e-b895-6e069ffbed53</Id>
  <HashAlgorithm>SHA512</HashAlgorithm>
  <EntityType>Script</EntityType>
  <TimeStamp>2019-12-02T22:04:17.6528054Z</TimeStamp>
  <Duration>-1.00:00:00</Duration>
  <Key>0x9559f6017247e3e2</Key>
  <Signature>
    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
  </Signature>
</Certificate>







|


|



|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|


17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
    THE ASSOCIATED SOFTWARE MAY NOT WORK PROPERLY IF THIS FILE IS ALTERED.
-->
<Certificate xmlns="https://eagle.to/2011/harpy"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Protocol>None</Protocol>
  <Vendor>Mistachkin Systems</Vendor>
  <Id>aeb64257-f1ab-4ff0-8c27-534ea397c772</Id>
  <HashAlgorithm>SHA512</HashAlgorithm>
  <EntityType>Script</EntityType>
  <TimeStamp>2020-10-18T03:10:28.0680987Z</TimeStamp>
  <Duration>-1.00:00:00</Duration>
  <Key>0x9559f6017247e3e2</Key>
  <Signature>
    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
  </Signature>
</Certificate>

Modified externals/Harpy/Tools/sign.eagle.harpy.asc from [c9e4bbfe68] to [7d5ae2c923].

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
Comment: Eagle Package Repository

iQIcBAABCAAGBQJd5YqjAAoJEFAslq9JXcLZq10QAJFOR2JBHWoLgziqNYMGqfsx
j0ta+DpygCbkA6W+RK/DXWDF7sasTIcFtT2yYaWY0RxhpHGqCctxf1cutKtkAa7k
bP7Ty325ct9P8NeMyVoB720hGSBOPqSXTi59WjtS0Bl4Hh9YudalGxAvmX8WFxvr
Dsc/xJfGBiQyeGj/3Z1RPbIyuSF0dCa8v5EU+Hz9XGHw+8ABCoNXVyBoVJEwQzBH
+YfkahmTOrhgqSgYXY3yeOpeDnAw8gkGfoD0Ta9hF1thlXUP2MQEjS076oWa39i8
ooOLsrJQ8Z3pfSDauww7u/xksYJtpv7AOUkjc4lYY9B1IkbrR/rTKZ+Ab+Sxo+r2
kdMrLRFuebduJanZhv2osW52EFvUla9b1Q3NBrR0kd2O4D6/hbX/YRWHXznh7EZn
DOfRSFXOGYUliZFkpf1JJ2q4oD3Di8hGIMhTz0vtlXeAFqwUNDIOyRga6NKJKt7h
DJf/4Jo9I3GhTuNMZZAEFSTz6n4PWqwqCM1DTQfSv+eG93Kj1ajtaJJHAe6jjJ7n
JTrf54Wo/MIXzL1Y95j8cWxj0bQf3ubhprkvwhzNG6vukcPDrb81EFuwX7b0+wN3
Ye2KAUADrBZSmhF9WUasknobefHfJh6CpgHe/aCK0lktyJJGHJNktKnPZj93qeaf
EgBMv2kM9vmQBF3A8lOl
=J8kL
-----END PGP SIGNATURE-----




|
|
|
|
|
|
|
|
|
|
|
|
|

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
Comment: Eagle Package Repository

iQIcBAABCAAGBQJfq3imAAoJEFAslq9JXcLZaDYP/idzjwF5o7eRkQG8yq59UTvJ
sIH4a2PGXipPV6b/KFia5askSfe4UR3Azt49T363ZIj0mdzcxpIbRhBpkAysbX7k
7DE3mhic5zDhycX3TalCOyw+V53L9XEvAfP9XIU0Bb1h3YlFx3pgzQfTqcEyp/ya
S/4BSDnKT7GGSY3RLghwmgCnuweOUCyWXkScEFRnAIhv/OxozF8vn5RGHeo7rch3
Tq65zFVnN85YoaA75L9f8j3bXxpcka2L7zZkY6fIuPUl8O/vxlQ678BR5hZHYKrv
9PmmR/+Z0tm051fdTX+JE4jv+dWKaT2DNkxOLjT9FBDBnu/nsKDAOZIcB4gTUvmT
vuv2HvnHb37vmlKdez6lcYEZfZle0/K1lqKpA7+idZXty+C5lCFPnEZQ5wA1ZAaE
t5LtUu7lOjW4XItmQcu2JVCVeHnjDTGd1zEuVZ7EgeApOTEM7qhcbh2tqi0x4tPy
Ydyv/Seh+FdsFZUdrBEDxAp634qdnVCQ4NCNmJjt+nfO4PWR/Jt/c+mjSQ04xxAK
AdYekH3fAv5q0myBPst0NC6j3rR4UzztWo4Ak9bZ9fglZ9R9zHNuf8o6tDF45BTc
ll3xVj0oGSd6EZqturRrXBUL7OSbouiWG3Szr0DN8Bgw/kxut1CeOIo5VnRyGyNU
1aX+Fvc5HMIrj6byxCTl
=+JDp
-----END PGP SIGNATURE-----