Index: client/1.0/neutral/pkgd.eagle
==================================================================
--- client/1.0/neutral/pkgd.eagle
+++ client/1.0/neutral/pkgd.eagle
@@ -35,10 +35,20 @@
if {$force || ![info exists loginUrn]} then {
set loginUrn pkgd_login
}
+ #
+ # NOTE: The URN, relative to the base URI, where the list of supported
+ # platforms for a single package may be found.
+ #
+ variable platformsUrn; # DEFAULT: pkgd_platforms
+
+ if {$force || ![info exists platformsUrn]} then {
+ set platformsUrn pkgd_platforms
+ }
+
#
# NOTE: The URN, relative to the base URI, where a single package file
# may be found.
#
variable downloadUrn; # DEFAULT: pkgd_file
@@ -83,10 +93,20 @@
if {$force || ![info exists loginUri]} then {
set loginUri [appendArgs \
{${baseUri}/${loginUrn}?} {[uriEscape name $userName]} & \
{[uriEscape password $password]}]
}
+
+ #
+ # NOTE: The URI where the list of supported platforms for a single
+ # package may be found.
+ #
+ variable platformsUri; # DEFAULT: ${baseUri}/${platformsUrn}?...
+
+ if {$force || ![info exists platformsUri]} then {
+ set platformsUri {${baseUri}/${platformsUrn}?download&name=trunk}
+ }
#
# NOTE: The URI where a single package file may be found. This file will
# belong to a specific version of one package.
#
@@ -391,11 +411,11 @@
return false
}
set extension [file extension $fileName]
- if {$extension eq ".asc"} then {
+ if {$extension eq ".txt" || $extension eq ".asc"} then {
if {!$nameOnly && [file exists $fileName]} then {
return [::PackageRepository::isOpenPgpSignature \
[readFile $fileName]]
} else {
return true
@@ -636,33 +656,135 @@
} else {
error "unsupported language"
}
}
+ #
+ # NOTE: This procedure returns the name of the current platform. There are
+ # no arguments. An empty string will be returned if the name of the
+ # current platform cannot be determined for any reason.
+ #
+ proc getPlatform {} {
+ global tcl_platform
+
+ if {[info exists tcl_platform(platform)]} then {
+ set platform $tcl_platform(platform)
+
+ if {[info exists tcl_platform(machine)]} then {
+ set machine $tcl_platform(machine)
+ } else {
+ set machine ""
+ }
+
+ switch -exact -- $platform {
+ windows {
+ switch -exact -- $machine {
+ intel -
+ ia32_on_win64 {
+ return win32-x86
+ }
+ arm {
+ return win32-arm
+ }
+ ia64 {
+ return win64-ia64
+ }
+ amd64 {
+ return win64-x64
+ }
+ arm64 {
+ return win64-arm64
+ }
+ }
+ }
+ }
+ }
+
+ return ""
+ }
+
#
# NOTE: This procedure verifies the platform specified by the caller. The
# platform argument must be an empty string -OR- one of the literal
# strings "neutral", "win32-arm", "win32-x86", "win64-arm64",
# "win64-ia64", or "win64-x64". An empty string means that the
- # associated entity does not require a specific platform. Upon
- # failure, a script error will be raised. The return value is
- # undefined.
+ # associated entity does not require a specific platform. The
+ # varName argument is the name of a variable in the context of the
+ # immediate caller that will receive a modified platform name, if
+ # applicable. Upon failure, a script error will be raised. The
+ # return value is undefined.
#
proc verifyPlatform { platform varName } {
+ #
+ # NOTE: The platform name must be matched exactly and case-sensitively.
+ #
switch -exact -- $platform {
"" {
#
- # NOTE: This platform name is supported; however, the name needs
- # to be normalized to "neutral".
+ # NOTE: The empty string means "attempt to automatically detect" the
+ # necessary platform based on context information that may be
+ # present in the context of the immediate caller. If this is
+ # not possible, a script error will be raised.
+ #
+ upvar 1 language language
+
+ if {![info exists language]} then {
+ error "unable to detect language"
+ }
+
+ upvar 1 version version
+
+ if {![info exists version]} then {
+ error "unable to detect version"
+ }
+
+ upvar 1 packageName packageName
+
+ if {[info exists packageName]} then {
+ set localPackageName $packageName
+ } else {
+ set localPackageName ""
+ }
+
+ upvar 1 usePgp usePgp
+
+ if {[info exists usePgp]} then {
+ set localUsePgp $usePgp
+ } else {
+ set localUsePgp false
+ }
+
#
- # TODO: In the future, the empty string may mean "automatically
- # detect" the necessary platform instead of always being
- # mapped to "neutral".
+ # NOTE: Download the list of platforms associated with this package
+ # from the package repository server. This may fail and raise
+ # a script error.
#
+ set platforms [downloadAllPlatforms \
+ $language $version $localPackageName $localUsePgp]
+
if {[string length $varName] > 0} then {
- upvar 1 $varName newPlatform; set newPlatform neutral
+ upvar 1 $varName newPlatform
+ }
+
+ #
+ # NOTE: Check the current platform and the neutral platform, in that
+ # order, to see if that platform is supported by the package
+ # being saught. If so, return that platform.
+ #
+ foreach thisPlatform [list [getPlatform] neutral] {
+ if {[lsearch -exact $platforms $thisPlatform] != -1} then {
+ set newPlatform $thisPlatform
+ return
+ }
}
+
+ #
+ # NOTE: If this point is reached, there are no supported platforms
+ # that are compatible with the current one for the specified
+ # package.
+ #
+ error "could not automatically detect platform"
}
neutral -
win32-arm -
win32-x86 -
win64-arm64 -
@@ -934,10 +1056,96 @@
}
return [expr {$compare > 0}]
}
+ #
+ # NOTE: This procedure downloads a manitest from the package file server,
+ # writing its contents to the specified local file name. It can also
+ # verify the OpenPGP signature. The language argument must be one of
+ # the literal strings "eagle", "tcl", or "client". The version
+ # argument must be one of the literal strings "8.4", "8.5", or "8.6"
+ # when the language is "tcl" -OR- the literal string "1.0" when the
+ # language is either "eagle" or "client". The packageName argument
+ # is a directory name relative to the language and version-specific
+ # directory on the package file server and may be an empty string.
+ # The localFileName argument is the file name where the downloaded
+ # file should be written. The usePgp argument should be non-zero
+ # when an OpenPGP signature needs to be verified for the downloaded
+ # file.
+ #
+ proc downloadAllPlatforms { language version packageName usePgp } {
+ variable baseUri
+ variable platformsUri
+ variable platformsUrn
+ variable temporaryRootDirectory
+
+ set temporaryDirectory [file join \
+ $temporaryRootDirectory [appendArgs \
+ pkgd_plat_ [::PackageRepository::getUniqueSuffix]]]
+
+ set localFileName [file join $temporaryDirectory manifest.txt]
+ file mkdir [file dirname $localFileName]
+
+ #
+ # NOTE: First, build the final URI to download from the remote package
+ # repository.
+ #
+ set uri [subst $platformsUri]
+
+ #
+ # NOTE: Then, in one step, download the file from the package file
+ # server and write it to the specified local file.
+ #
+ writeFile $localFileName [getPackageFile $uri]
+
+ #
+ # NOTE: Is use of OpenPGP for signature verification enabled? Also,
+ # did we just download an OpenPGP signature file?
+ #
+ if {$usePgp && [isOpenPgpSignatureFileName $localFileName true]} then {
+ #
+ # NOTE: Attempt to verify the OpenPGP signature. If this fails,
+ # an error is raised.
+ #
+ if {![::PackageRepository::verifyOpenPgpSignature $localFileName]} then {
+ error [appendArgs \
+ "bad OpenPGP signature \"" $localFileName \"]
+ }
+ }
+
+ #
+ # NOTE: Initialize list of platforms to return. This will be populated
+ # based on the platform directories available in the downloaded
+ # manfiest data.
+ #
+ set platforms [list]
+
+ #
+ # NOTE: Read the (OpenPGP verified) Fossil manifest data from the local
+ # file and split it into lines.
+ #
+ set data [readFile $localFileName]; set lines [split $data \n]
+
+ foreach line $lines {
+ if {[string range $line 0 1] eq "F "} then {
+ set fileName [lindex [split $line " "] 1]
+
+ if {[string match [file join \
+ $language $version * $packageName *] $fileName]} then {
+ set directory [lindex [file split $fileName] 2]
+
+ if {[string length $directory] > 0} then {
+ lappend platforms $directory
+ }
+ }
+ }
+ }
+
+ return [lsort -unique $platforms]
+ }
+
#
# NOTE: This procedure downloads a single file from the package file server,
# writing its contents to the specified local file name. It can also
# verify the OpenPGP signatures. When an OpenPGP signature file is
# downloaded, this procedure assumes the corresponding data file was
@@ -952,12 +1160,12 @@
# string means that the associated package does not require a specific
# platform. The fileName argument is a file name relative to the
# language and version-specific directory on the package file server.
# The localFileName argument is the file name where the downloaded
# file should be written. The usePgp argument should be non-zero when
- # an OpenPGP signature file needs to be downloaded and verified for
- # the downloaded file.
+ # the OpenPGP signature file needs to be verified for the downloaded
+ # file.
#
proc downloadOneFile {
language version platform fileName localFileName usePgp } {
variable baseUri
variable downloadUri
Index: client/1.0/neutral/pkgd.eagle.asc
==================================================================
--- client/1.0/neutral/pkgd.eagle.asc
+++ client/1.0/neutral/pkgd.eagle.asc
@@ -1,18 +1,18 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
Comment: Eagle Package Repository
-iQIcBAABCAAGBQJYErSKAAoJEFAslq9JXcLZ5EUP/0XCT6DuFTrXFd8DfZ7cXjgh
-x4sE1noukUNCAox48A39jMWacX+PV/ugik938PwCfhycz+dx2RU+eqgW5uhRwP2d
-TxAmB+nGAQPD8tzA9Rhyq5CM0SMcaCk8Irk1veRqYdxr9xvMOEr2gOn2jpgghpji
-47JMDjrXRT55XBHXdT/+gBeCYzNj+NBiNO8pJyhLG6SF6rha0qRDs34l2CLkF9Rk
-mBUriMtOnLAJAoNyXXXPxa6LNepBBk5btVri3Ni1NFbNW83XX4q63tHwUwADuQy5
-fnbVrB5fnQwNobyCIX0YeWUacC28kSShLiOeryfCKyITJmkt/QwuyhVyTBgvpegU
-ImYrMd0jZSiLeljJsgbbXlRMPoKOOowxFKEkF5re1fQW88b2BjJlsAIO4ubM6qW2
-e33VertK+/aBu1g6VmMywy+Npp+lTLWEULPYsHWlqcFLI3A+u727ron0qGiKp+7R
-9ukJNhw0FMixuE0f4N1/GRDAgm9VMDayUJfUlHttz55EbXSjcCD80D2vJW2jT4fA
-WeYk3qLB9z3bvWt/KdUvO/31Efu4njAdE0H8NoJQ9HwHxXX/VJIoCqOjZ52Ub6ZQ
-uA3JWO8otT/QjbSU+cc/XfeHPpzlnv5kzoX0vQwa1Nf35LNc6q6n1A383AeZi/Ku
-yQ31+8S0voNpiEWdzJsq
-=uj6D
+iQIcBAABCAAGBQJYEtk1AAoJEFAslq9JXcLZcsQP/20OJlkj118yDCfCoR7Zyhnv
+pOFCDXDnIq/ldclVELKg+EK/CrxgmCAH/+pDSLxTWT+/Y1BTTeQ8Kp7fO2IWCFVj
+hoizNoUzqaDxYLqhy0FPwRKA0RvsS5VJGhJp8lC9/i8KLy3gjpxo/uMESOwKX+AW
+NRbhOP+ngBfPYMnWdKGdjWCQSmGOL/8+DLffmk8VKpmtO4ZJDN4RAArvsrclA1JD
+E8lSKq6VmlGeJyUxjMX8LK2RX25m8Pz3tzsDCfOkYW8NbAOAQTMhoRspoJe9J5O3
+5Ldyx0QUR6RJNJfM6FfzGtsYowmV2n9J2jDWzaGB6f599EUBCu5q0r4gaceBU1CC
+L8onojsxGxaa9gUF1NgLML3YopvW5KIx2ZGXP+GWvT44kOmOaM8hgJo6+arh7LfU
+swQ9nhz1MeVrSbyS3408LHGcCEGzQrC5pNJeYgfE8GWp5jJuukxXkOSnfKhO9H7n
+A5+WbHcIAz4qvgMUxDiREXbE8oBHQrt8BhtwPmW6HG9KOUS2oaS4oNJobC8+n2Xu
+lzyrch7APqT7Wg5X572TL2A/e7OQO2MIpubr7vHso5C/t22XgMMZy3CVMeJqMLK6
+Db5v70omu+ioKm2zrsDo7I7aRw+KpHJ+HWmF0mO1QsapHPSDZPUdZcLm8Sn55JRJ
+h2tZ8pLujJP36P4qSX6N
+=KcGx
-----END PGP SIGNATURE-----
Index: client/1.0/neutral/pkgd.eagle.harpy
==================================================================
--- client/1.0/neutral/pkgd.eagle.harpy
+++ client/1.0/neutral/pkgd.eagle.harpy
@@ -19,50 +19,50 @@
None
Mistachkin Systems
- a6607832-9a24-45a8-bc82-12209d66f1ca
+ 5fdc11ef-e852-4689-a69f-af685136081a
SHA512
Script
- 2016-10-28T02:14:10.5897969Z
+ 2016-10-28T04:50:36.5976094Z
-1.00:00:00
0x9559f6017247e3e2
- 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
+ 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
Index: client/1.0/neutral/pkgd.eagle.harpy.asc
==================================================================
--- client/1.0/neutral/pkgd.eagle.harpy.asc
+++ client/1.0/neutral/pkgd.eagle.harpy.asc
@@ -1,18 +1,18 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
Comment: Eagle Package Repository
-iQIcBAABCAAGBQJYErSMAAoJEFAslq9JXcLZVSoP/0JKSJ+Wd+RO9CvCjEzlpWL0
-dWkxv7HJHeir66bW0GJaCr+3v+wACyzLT4szqDb47KmP6zpHK/UPb1PO7ZY164LM
-eLKc75+OlaQVmft0ArlvqLlG0s+GMJ1Af5SB0NTIJHGam6055d7v2BaMXs69wvD9
-3wT25MuYuL5146ud1x4BkJxq46okDw2RCfHXolqqkMpGWB58dDKGgCwPRT//4ASF
-2pwo+3U4JTj2eZUzUPes9OXU+nYbRx8YfokAFFivLvsqkKIVgvJA+CbNhJ7MNJg0
-z/basbrdjkUiAYjiwW73AhvM+r4QT5lktlVEJIe/mwlmyav6aS7POiiZVsJTxgB7
-KkvHeEvFB8DTfk1cC1syCXjq0XW+PhFVtUKAXYVYP+oX6aRpp4+YGzuE3Bp6Wc16
-h0+d4YFXekvSRHu/nV6A4vEoun0DGL8zb39h5w1MlUc/rN0PuNw/RhcqcNatGY+k
-viAWEEGQicacgUsJD3OrNogiLCGCOGdmnWQnEBnIpLzlKbjsmglm0pXn43DPCH6H
-jFLI9faP62208wLUIRne1hXhKX5C2iC2ykcejo4dUDqmwqGdCACBSNBL9QOEYUsC
-s/9RLNsks9P0k+ORlHzyt4XRJ7RcfeaBlor0+Z/DmVPJh4WHkPGFm2r0/cnN9RB/
-r86Sk0dWyUy06FbHu87I
-=G2d/
+iQIcBAABCAAGBQJYEtk5AAoJEFAslq9JXcLZ77QQAJCkxCZcry3Ex59M+9OPefBE
+D8kE4lZyaBUUWJOUdKMzn2d/J3f7PrnZh4+Jxt0CHBKZ7ITN2tt0XQCVT8eNEU+C
+tTXstUNMl0Fn0SkpudDw8iu9GlssVdALvDlIDcTPbzATEjGzywzOYDEbpwlrcBhQ
+iWQOXw3nGsU9LHHjpSGa7nPtUuJ6wwS0iEoFJ6dxUl2QIjEvEMueOMU7+pN94TkO
+7ULOqVwcUj1QdtPW1TO9PRfWQJKt1Ivi9U+4kPyfH/gQtP7wrY6mZukZ80EbRoRi
+BOm9zl+iSHVv9uLtfvgYJ83ViYLvRWBX+OjhVyxpSShBtp7W5jdTmiMRGRzHmVuc
+dMu+pu6vBKZkp8gtXGlvBp014PHgvreUxhUdh+i0qfrCrXAp8NMtNlSXV2QolPAo
+sRLCnh7gpu/SY3/RqsiKPPA3aJ8bJV/cuWuQn4gHMQqSO2BfjrEytBjs9ltxaQKu
+4wZhOQdWEYGmjuF+bXJwS1LvjDyBtV2JanDWgOMhn61HvU0wfs7pVyLMFmTmBZwX
+jt/PwD3qiShHKPPZsgRHxM7/MmzdaC1CWHZa3MFdm2sovON6YueaVyuMZls7jzaO
+X0iTC0KtJUI+eaD58UZS9laGRkTMWbPrWxac0EKZq54l+xyx5Po+LkZL7rCtzGgd
+4ZkMeGBx2HDmVYcJQrlA
+=29wH
-----END PGP SIGNATURE-----
Index: client/1.0/neutral/pkgr.eagle
==================================================================
--- client/1.0/neutral/pkgr.eagle
+++ client/1.0/neutral/pkgr.eagle
@@ -1598,11 +1598,19 @@
if {[string length $script] == 0 || \
![file exists $script] || ![file isfile $script]} then {
return
}
- foreach prefix [list $tcl_platform(user) ""] {
+ set prefixes [list]
+
+ if {[info exists tcl_platform(user)]} then {
+ lappend prefixes $tcl_platform(user)
+ }
+
+ lappend prefixes ""
+
+ foreach prefix $prefixes {
if {[string length $prefix] > 0} then {
set prefix [appendArgs . $prefix]
}
set fileName [appendArgs \
Index: client/1.0/neutral/pkgr.eagle.asc
==================================================================
--- client/1.0/neutral/pkgr.eagle.asc
+++ client/1.0/neutral/pkgr.eagle.asc
@@ -1,18 +1,18 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
Comment: Eagle Package Repository
-iQIcBAABCAAGBQJYEozaAAoJEFAslq9JXcLZXBYP/jix4vbRC7x4EMdHpQ6zBxHf
-FCR4EZg6YvXEkHrRGMUFstk1MFeZ5Acc1Iwx57ZF8IhIGrPApe3eE3J5x8v+rlPe
-pe8uxJd0sLuIYt23NSIX/ZgIJ4UNBTbmmPpniEJ6+Oa2uWK/ecdtAgNuGGXamKMI
-5K8v1WpDfg34kJtLycVLndsZoX6e0rZETkJG9RHwxBLSxYQYEICy6WqlyvNepdAA
-2/0GL1FA1BawnNKrxm1uivFIFiMEGyuTKBves9Rvg4EF3FbukngDvgnzlnPQ79h7
-BKXyWDAwmWLhsaKcQcD4mow6uenp1DRExjOpg7TuYCTUYMBBvbKBNKkMLqsd14uw
-ZFgcJSzFO6lZR3sfC1rGNzRomvy70tuDEg2NpZMfmyQpKsNbWk2J/m/nReSUG9eJ
-RpR85MEmhMcU/5QCSB3J6TY3s5iZzjsPLq04JC7w62VsSfKKFDRP2Tcnmc4ri5sK
-cXOSefJzU1sLj9biXYhZumxv3Bd1iuDBdkBiZj4r05OPaZJV0IcVFU3Aj8x3PVEs
-QscBZepaVL0ubXk+YgfnjDFC7CL8Eda9OIwl4zaxKkdKERvRnZDPjBUOJcNmHzkL
-NNF35XTVp6RTM143oogHsL3PWT/3VjqLV+fjKgwei8qGuPrOEWuLUVPomtX+qMbS
-TlfsGkBnfYRc7cCB55T0
-=9Jjy
+iQIcBAABCAAGBQJYEtS+AAoJEFAslq9JXcLZGX0P/2xZOWZqH3yuOu+DrzJ7Nsnj
+BnMN+pZ2qtNAsyTNFTwJYjKHhGLwk3V9XlHwsBebblTT48OrtLz8yZpZDBkVk9/0
+sgXI8gbUp7Eivv+f47zAIhJ2Qfykc8tIANyF1Q/AA2k1Aen+DD9ZJbtqqKorblbt
+izQJ8dIW72Sfrv17WZx7D0w2mmUcSFfb22/+nJ7GhlHmh39KW0IMilG1qtThJJai
+62rknx8X6rG3GUGy/CgZYzKwPwQY366CAEfv/N+IafmVPfhstMVHHt5+pVuTvNTs
+PkzBZdfFX2SUz57dIdbI5xk704ojXUIxoygFVaeS7HFAW4wa97niqoi5p5/1GFCe
+apw+rEvCBbbw2daXuieison8fqNYl5pTIMwesACrXbwadTuPRA24KhnruLu22xE+
+NbEH3OUKRo4ol/HCLIC2avlGrixrjnxG0itkMkSG4pvrwTCfFz0XMUiTGKC8OZZj
+OHo4wkLWg/SzCOAXWhphXkHvRDdBjAfbqBXCn7lG3Q9LIX+GUBu4Nc7F4cZHBGQF
+kXJs441GeSvr/j3PpgacZBawg06sgpdpy+GGsB0lgdBGGYiWdYWbsnJF5F7WJRcC
+GL2/F3b5IMAr3Lv3/3+ItFFWHuTH2KRqeXlnF09PIUST0PRFs28fnsQY61bwsORC
+hfhA9cC/Vimsr4zCEDMH
+=4fzG
-----END PGP SIGNATURE-----
Index: client/1.0/neutral/pkgr.eagle.harpy
==================================================================
--- client/1.0/neutral/pkgr.eagle.harpy
+++ client/1.0/neutral/pkgr.eagle.harpy
@@ -19,50 +19,50 @@
None
Mistachkin Systems
- a5a5aa95-b6d6-4339-a05e-e9ac0515504c
+ 659beaa3-cb16-4af3-b230-95b60e9aeb3f
SHA512
Script
- 2016-10-27T23:24:53.9657735Z
+ 2016-10-28T04:31:35.4159688Z
-1.00:00:00
0x9559f6017247e3e2
- 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
+ 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
Index: client/1.0/neutral/pkgr.eagle.harpy.asc
==================================================================
--- client/1.0/neutral/pkgr.eagle.harpy.asc
+++ client/1.0/neutral/pkgr.eagle.harpy.asc
@@ -1,18 +1,18 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
Comment: Eagle Package Repository
-iQIcBAABCAAGBQJYEozbAAoJEFAslq9JXcLZH+UQAK4LOLvYBgmYOfkkDvqz7d+2
-tFkp9O5tq19uBmkCDrSH9TRlNjzJG7gR3xL/0LNbr7mcVVas07/m2x8OFaEjGxT6
-b14GTFwWM3Dw910HI9Bq3zJrmeTMfBoB3mNGbal31jMnRIKkxTSZR/ZsTKfHEXkU
-2C1c3HU2KkSdn3zWkN2n+CHJz+GmFGwnu0dx4gEzDIT1XZkC3mYBrRjc4rVBTK7O
-MnSznnLVMtf2tydu6MS/kfHM1+tkK20SVvy9vHlYTNBcKeOrIArzXhzMCRDn434D
-gBYr/iRdrJ2AZTA0urw/Vy6vTVcv2Sk4ANakszzhAj4Gy2Cs4llZaKClEGC4jFrA
-8t2oHJXEEltprj+Tl+aAxofNfFvyM4MixmH7vK2LdPYbf2RXT3mwiSs4HsVw46WW
-Uah3NPRRjl6w2NfKS9yeDy/8VV+7s107DEs6G8Ewx9Tromy/JFYj4M72umurz/yj
-bqn8IlxZjclfNP7S1v58TKnN5zgOD/ptdiOZ9KbC/DswGSsEhhaCT5PF//ea8DY/
-KjciwB1RKS5BbMRRUyQjJx1tjo7svdZcSVuibBsUaJ1dXrdNzPWirE88MYeZpSYC
-mEV0VT7P4RtCXiGFJ0UOP2hIL/MjLpw6oGBRdKJDcUtlvChHnL7d7+juZsrMOJtA
-dd0OT4qIFZJr/SGABW8+
-=Q3U3
+iQIcBAABCAAGBQJYEtTAAAoJEFAslq9JXcLZCpsP/R8RQKMtThto29k0xhWmXHdv
+1IP4B+tvjMQtKPe+DiO+LoiiiYJyn0OMPSyi/gDk73LeJKVMSp3ftVyshuHa9PUL
+dvCvyr+hcOivOzqDX3k6fpXqZoI8ZwYP0QBQRPzElYKFM+pOA+m/BkZIdSnZ4Lay
+k5mWdELTvPIaCTNixJ4nFi2XYbnpS19Z6kUojvGAy/BVLPTYpfUGieHBP1aov4df
+hHEQdgSK6iLZLcfveC0T+YnWjtBpVjZGjxb/3Bvs6MBrZk9JBLL4ppMLEw7xmolC
+ttKx2FMeaSfHOTHAfcy+KrSh9Sji6/cQAIUkSwZWkpzGkaCkiEK0kNZDpN41rt8e
+yW8iQWYNmiWaivYpfwHWIoxVQTfKfyXZk6FEFowMcU1W5dBAsWh7YAcQ+Hat+coY
+T706IJey+lN035MoIeVICyMCaXVLtCZmKGXMCv1ssddZRhrL6OhB7lJmYDKkDqYN
+CTH2559BXm1Tv1yO6Af9nL4VWkJmqnlyqWaVXTU4AVC8BY1WVO4uYGEP8DZ/Kvii
+glQgc79bnJHiYicr33yOC1/BsGnH5m4DKKwS+ZiAEA/lqIfwYxzALkJrb9hnyIB4
+sXwZzGHA79lmO5o3WRgSp/WhB698+5pLKeckMqB6joUlOMzE3cC0RJF8kzpUs60n
+WoTVOH4TFvU30uFcVIei
+=lRxs
-----END PGP SIGNATURE-----