Skip to content

Instantly share code, notes, and snippets.

@cat-in-136
Created August 29, 2016 15:32
Show Gist options
  • Save cat-in-136/2927a5b405ee0db64ee8ce6bb52642fc to your computer and use it in GitHub Desktop.
Save cat-in-136/2927a5b405ee0db64ee8ce6bb52642fc to your computer and use it in GitHub Desktop.
Study for decrypting photo using OpenPGP.js
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1
jA0ECQMC/XZZrofwlJhg0u0BNEMqSnxdB8NJcFstYl2Korm8jQNz6LLXItIHKSlN
g2ZiBuo7YAPO+dGDuFkac6jUqoFY2aLBI8kRGQLUii22vQmR9bD9k+mpWkLBak7z
5m+kEjzQbo/9aNgrvpgDZ4U8cxP13nhyWkSjsfOSeAhGOGxLSiDnp/TlfZRjscRL
WF+1KFUKGL0sjAqXVkEdMe6PNCbQlozIyfSlFxJy4axtD4bL6BHsKxwYgKTorNOP
sEOUPfe9E06hLVOwlOVZ8oyYzpV7WX3YwwLC0c1TE35jrjuXwnCER0RTFlvbdCFr
DOMdIMrKEIEtfK+6n5AR/ojN4fdoORH7NQTG1OBiigkHVylBgMTxGOU5KMgE9526
c17aBmFwMTSatx565FqEpibRNvQr5lBHCOl3Ep0vPIX0pzTYFUel0RU3+3ZuFWvg
/6O25ziJL+nH17EfcPM9P8+m1ht848JzOsCbC8qsVY5jZhTbCcAziLR3cULs0CqF
qaQ7v6Yfv6ilOhedN65PyccO1H9yWAV9tVuVprLhJhm3mhRt+7hySOx8xtNTglWA
hF8cvLmwkgey6qUA6WLmxheND7KU5w4hW0/N0cPO9IJ4usQKwctDY64Kz1XJR3j+
vk3B1lGmjMRzDHpdMMfJ1KX9lFtOWG1AEKl4Zkw1dCvZLgfpjSXLpqLfoWWc7mJZ
3QNJ7yusmqFQ6qD0bgJnducsz4/wOau5rHARcJHhmpyNCj1xpke8v/N6RWXTS9dO
xqzQU01LzzAN0Pwi5ieC7l51QbPpYk5U3zJxXxkwYI+796Br0ZK97jzRFYSaE2K2
mdlsU/A8HzdqYOq5iYYxXztROZzd2U4tE10FWNo0oOXfetTCmjzD69bR0HdJ9sqG
ZUu09Ww+s4jL8E6EjzleDaa5r9yGYd4eFACLrNrZudKiKBnnDlku5fg++e5V/AWT
hxEk1IGBe+LqvMNQ+p0G4dsVvR8rOlYkjPQufZs5uGe4/RRxvIy7fqntag62Z4IJ
EOLlHui/MATUPcPpIwdcljqR+pui42v0sM1aG/mgCaqEEbNRTxlJO5xZqEy1CxRB
BZKm130CH98QQQDkh+rc+d2Y1Lm5RpjWR02EsYnQvIexSWUtOSUlkU7Q9CO3W3AX
5aR3HwVL0yOpdMkMH+ykgYLSTOCoA0cvbvWXwe4oKXhOZIZlWduKinBlIE6hCspS
ifnWmZwkkouRGtj1fzJNUM57Qviy57mRgUtD1UPUsELEkXDl+tjp4ZfYgS0fnQZ+
NzZYt+CuWa3Grec696Lu0VlXhLnuZP2aMq3MJEfFyTDLfldrGgx9WmMcxa06ZWFi
Nc444aR6GCbQQdgjEU5HXH9KlObE+qa6Sa22T+2kBPEj2orVPWOrLhfL+RfbOOjB
rvxYHuaz1MYyPjoxBL+f85Oy0oaWlPjkjliZ+Q5+nIOFYeAADZqp86cs8CBKZS0p
4LOYoZQsWSzYd+hUJUHSo+INsQLd/VNUq3k3WFWSyb0wGpLkNsI313eMwcozcGt1
aIXVRGxga65HByQTnqx8uiqXdGJOYrqBqVvSSGqx8i9zBBzee3+4ZNGCwyYi3dMp
ki2YgyR79pAWSYjJAoQOl4S5REd8faDV8Q4jAahTmN0E4u8nI0SvCJ9eCsOB8WBC
3tfvvHfVagzvEyBi+iG76SHBREdR18h6X747/XHE5EqePT8Q3hmqypQ2InEIYDzr
wqJsVnE73ro3P4+YReGmsUHOdfHji/E53eEnKRoqdmPsOTOPDl27leSuXA9Z26Po
S9XE7me5GrYDUrXStLny2p6ImEnQUtoksFAIFPJJuMJ3AGKxGSN7yHkHEZZoZPJY
9bqGPtPQV8IhOCSWRtQGrfXFRNLwABSYISr+0GuW+CMNS4IUPdF+QHZp9HHuewrY
EzsVh4eBDh4HNRK9YKOAtL//rvi5paCGL8IsKMxieFFEim5Lvi/dWCmJ2WZ2QOgK
LvXt5uDYpxPF/4WittGBFPv3pksju/KJoe3vM1S5WqJ525mb+6pp3jM/p4l3otZk
kAw6zanl4uAymIckN7VPuXyvpRd9CrRkrLpAgES2GQWuQ3qNNeJRfizExYSJYQ1f
e1ftGCblprzal2P25NFudyLbuQe8ayO9VQd8oDN7nuqZzcHDQPmjpVL7nPr06Rft
yy14rXshQRb65qxr7GUAOI4eg9YhDPBKmR36ROJ3NwvpVqwgYPLP13RBR85dBpqF
Rj2FdFb5O1mwA1EkYvyYauUo3JYT4Xksh27qPdIonwQTitMG03T34SroMb+z2N6z
jM8O1GW+rWx9S7UvW1NJx+1lzNC8GKnBKD6ZKJ83Oj4Xj7jRFqepsNe0eybnY+io
NE/QVG/eZ9qA3DAms2fpl0/qPz9cabtkyHQSg+RLfRsqmhyILSnxvyzfbmfFGgNZ
Tpjoehr24bo8D/i3q52q4FgCrjgUC1BTuC4Q8xdlpTs5bftZyLcujtktvALSzAqA
nYZ4THaHR8YA5yndSicxMLHStKJ7egyX7Kuh/5H+1mhaRTkrDem0H3rd9zstBJMb
7zpUuVJ04Hoeyr+OSStT5LrKtGr3DkTbraKr9mdojSb0pAnEJzGM75en/BLuqxq1
uGMc92YMNmsPM0QS5IouD0hbSJb+lTRNtKoOe0XkQYaXYmIjxKwafKlrtBX2tWAM
OWtJ9Gv8P0kXvoa6QWj+NqwsAU34anu76/UVUsALvT2wOWi79Rn553mxOHtIqGi9
dCRmwFMmg7zmZsxZtXelE23AhGCFcLnWFElDH0SPU/RC+ZPAiDKLs/nTScBBhyjB
tB0oG3afThYUDoUwOEThv8lfQJGYXYBWjU2mJuGyIneEOGaNzgubBLTnUebHlf12
BKcYIvAYSEhr9v0YOKxXgUjwPeLg0xu0XyNd//w4AU0NLBKD4coxFpknBRDQj+Tw
7908G3fIdvd/h3GlFmA7vDTs99eP0i3cOX5Gjkhc9AcGFeYW+dqYSD792WvTw6yR
yCBlDLG4ogNiD1BdboF7S2EjvCN/rDCfZXKWa+I6G+Vw6B9FSHc6Zngclilgfhs1
XlzPvS7PyHK010SW1IR4egceVXFlhxf6o0YgweEDhONoy4V7CxL0Dyc/AmsKCvKQ
wtfUkamSEZuBwWcOA0gEqRMA4YUowBlUG90ZrR9fjLlmzJsshxZiw8mN3Qh/ugoa
v/tsbUrZmeRu0APj4gS5GNt8j/0zJhbsr3GClkzHuFHB3t8lDMMDr3V7PnAW0tcN
4aWnokvWEmlsoakoPXGnwMudECtMkohg9X9iNRwawMmjG1a4+/8Htq/KHz9dMD1u
2kTa/rIIbq3UtiTS55uKUH13wvkR5td/KdDTHC5Qptxiqd76cec878w51qEXWWsJ
Syyr1NJl2cvbwiuyt2yWCaowCERtnkvnPNwTHyj6gpPah8Hhe77WZNm/EYoFqngr
/8q/yj586t47lfD4I6uF6GvwtPUGR2FL1fhYMNFMiMy/Jwd5Fug3vsnnT0WYgvZ0
5FCf1qhnj/X4NC7oQDc9iGcyThssBRQHrP3J9YGHAVhN3SI+xP3Ial6WYxcHxQrs
YOvzgF7eWhIe8xImSQUEBFY4bZ8XFkRywuBUS9+pvBRE2LZwovkf7BJCKRhfXnta
uMZ8iBjldkDe8F4UjHnaYmgsUUTmE+YFaY1Io+eJ8XMNa/wgcmoyc3Lb0z1gQd7a
x7MALKQXz9NKX9GUjaBcoDblSI6ABNmUlm+Ya2yatwwbKSjLPXZ9o+ip/JcJi1vP
ehdlfCinXb9RVLicLwEFsl8CJhq8HbcJCNPBuWNxXWtWtMaN1O/UvIzAJG4KleMO
1YLrfLLD8hgTNkFfCQ5S+CTbfyqjWPjZu072gJ/C6sIn/DuvdqGyv6o8YaU8l/HX
3XiTkFOTafhH6MjFKOaH2vSZCTtaQi2laQrHcIcSMSZQ7xWRcxxb/Ci+0ZO0FpJp
QQyU1aHQ0e2egn0vgZK5UOq5r8CmJsl2A3jEXrl650/EMtuZ2LYk1J2NzmeqXMlO
WxZEZOh1XVBuP0I1fW0Lp7iuzOsIzNWmmTGP7y4e7GaQYzSR5YDxbOh8SZgYcQ/K
Iyhsgyy3n3iWbt2gW50TVBAVI+EvXlWj1a11Ym72qKkmIwnbZzuQYW7kV+G8kv2c
wb3OmMVBMgoIUpGIVCEvcHgbiBJOUlclo2dE1z+GeYQagUqX0lDONO28ZSKaQi11
jnEM9AbPtspuQ34KGmFLE2Axa40ZPtJYJSzBh0CRKyPvMH8whQ1w9eW+H0KhKGnG
c45jyuuzvYUFmo1RdImyO6EoYDzxqdLrhy0ENVl6mDgurP0aNdVdHoAU4DKhilwn
w2GbzkYI1n8PwGPmf39GKb3T6eQtzB389smhEEwVo1e7Qdb2fpXtNmQi3No4uqGK
fk37oIOE/wg89XiocIgoJ7K8nnyCUZFgqs5h1cR0LS+R6DwZ0ErM6HgciKeVGvdS
ojonltcdxpA3CcL2mfcwQL7wF2ZrcyXl+/HvK83ZkUNy+HvB+rGxk8jEO1t9OLLk
XxTsvzmkn8+UU8W9UJfJ5mXXTQAB4vBJw+XLJR1IldoaUY00APDaQm39yNBjt6kE
sBLYTgPBNqpjnaXPLN3zSzrJZbYHXc02SvGTkK9X2kVfXTmJvivynj00CSGX3i87
Yb3JpOLJImlqjr7tPFqOWs8Pe2Jn/zWl+6U2i5BizJRKCgBFKnAfJEMHq3XZNO4x
T+d2XbY0Y1L0NCd0GqYA6tujm3trHG3jwIS+okPvMLFPa1i3D6esMX4RtINaa0qh
/fiFRqRk1wf07DJXXlN8YS5Ma/qgtnusI1wc5HuM89PCpjcyxl4uGZRdF37oQp3c
4C+Xf5ozqcQ0m7/MP9m0pGXA4M0RTVLKM+3T2lYlYgwlltQWgTFnVKlrqJp+tJ4Q
2Ex5v5Y4fkg2C03F10l9w9lhL6w20GIkIxJEi64+FD074ETCjWxyS8HaZB316nqV
mc/EsdhheMEov46PFatltHXgQhkGn5NnnMS2CpC8v4o/uarJh5PSn716ypbGUzcb
x8MRD6/gCKqcDGTrUu0sFI1/gIqec070CyVLMQeuwPMty+BeGiM09OpG3ZSXZ9IE
+2Dsqgx5quE80FXWGFHPc5lFb9kYIB/n7YnuhgSvmTJjjWrh0iasJvr4Nj1rEpVc
Emoi5vauxjUYcKHt2QOlCZAAQ9ZhYzf89Y8/6Ekiin3dSFW5GqNzo5puYNyaGWG1
f95yTrlg3NbfHNj+zJZrvllMNyXW7iHTwDzDMqYWZl9lFXEGlYeFVdH7YAc7AldR
HcEgT7eHqEk/w5hWzQtrMihk2TlWpC+N4qmJXr7WZ+kfiZHOAqcOGXmkP6hozZZW
93jsqFz7gOnqdR3ttouMQRqLqDkLk9jjJ0oEGCR+N0WpK/0rt78WAs51QmFqh7Ya
9qk9t23/2A7Ldz2gFZmXX+8u1TzLJmM+vy94kKdZoi2cBYVQy64XKOSvyeIPvFT/
mvUrqeyWz65F6UY9QUHCk7UkskTixsJzaS15Nv3jdTCNhHGdVisghUKwgJOOYASZ
VhAGD/WOZwyx8/iSaEmOl3NhhtNupT9TUJ7Dy2gzBjueFPgAl93srAIEBroNjRm/
vNkpGceFpYNNDYCZOf6+xHmFQgX9PRdEebq2y1yfuWxjfdE6NTv1nPOf1En+S9p4
xRQYlLsEnaE8wVyu0tPjkOQIqc0XGC63eErpnq/4B3wxyz6GCi5RCvOOYRhu1Clj
MLfqc2+7Wnr9t3/XXVh4QeSRVOIQKJHCQo/39FBxt9ofsHz9+jBaK+Er8hq8Kfdt
UlTFsveuY+NEZPYbhD9o7q7g2jallVJfB7YUPSrSJk6OjzRHqYD6A8PCUg7sMMwi
eQrmFr0d97A9AHcJblVcNB1Q4EVB2lZFZSk/mNIqDZYLrT2l+Zm/GzW5x5XCq5TT
1VoLp11GtIhtdZYm6cwVbUyA0b0r9lh8/BssF49wnPySkc5ztBs/p9kgw5/NT7Ke
Hs9Y5Wu37PUK/td7vWiPlzw4B1i+JcQrz3X87Q2hGAECQYTdT5uUCosRBdmR/N72
2sCELIo60P/YKQBJktwdvD6dDtBTV+Bcv7ZnspnZcU9A08aeOMSIZpKbJ5dJjNYX
H+7VRhn4NGgQ9d3HgzTResASchlKiCKraDXOoySeHOxabTPiVdI9NjUVrldvmfYD
2OM2qItV6UxF+fOvieKKWHhtvdKsFQhq55X8/Eub9jWe4cFD3R21HEVNXaJxK5Qo
PUiuiApEx8FBqWlYlVz7oco5KbO3508NdOM+DRGqBIz1tXfwDTYqYBjfeMpAyTBl
cXdQKY9H1fnAe1ttt2DqajQWMX+xCP3xDiSC0nGsc5P+iwu6zz06biJkXVWOzLxh
hUeRjrH49EAtIcVqx8J5yhknV5GQ0s3UFBrE0VK5/7iOts2flLVvk3hvsfbqKELe
ijbVGg9b/iRUV+kF0oJNhNXyfHCCke4O/2Ac2t5hOkj9IJvEb7aArH2PQogxXAqb
jt+R9lQ+/9Alak6WjqaPBVDLC1DykLTRzp0gXd99ZkKY+4GcZpX+nL4SI7tvD2R1
y7IFUp2xszb4BYqzl8NZizG5GSKTxgNPCdfjxErb53j7IZtKvOdJZ9S7lrJjmxDy
wWcyM97sGNIGnMZkJcch+qXevVDQPJNc/bd+5WqNWlUDb/PxUKdKQthslh73+0N1
9rUpDU8ErKHr828hWh40aIt85Dmp+YegV3QQluLKGRNqzkGCMQrD+0HSaGW874YJ
/5+zgmK3dkGce3vSPftMGJDHB45j/YEz6BZSfpCDMxeeU6NNHzVK7xH3NMlZWIU3
bWQwvvWAAbKV6+YDtKy85AQKhvmIwHqUs6rjjN4MC4zXVlEUJU/NWVY4gkNerdLf
Y8RdHIJ67zOKrBsauTKHPnRFK4kdk08mMFBvMkVZP8FsqfUpDj4t3Qt8nO40DRRJ
5fHMIcNtMziNCa/W8wwrEeUFeCgidykgz4bGu/7YOR0VOzwr90Z++vWJmZeLsI2j
JsZBgbjJF+5Ez7KzvvvIUb5ESTeJfiRybiCyavC+WMkGxrpgkrTorXkE/+5hxVDh
8ZZVTIc0LloZ3ZSorq9OBGakyogVHExvz9XLnedVdmKM5wGnvGzVA4RusoTQFCww
PxjT3WRSXubw1EIwUgXKGul0EUNI+UjbgIKdrfsNcRpRKqz9Ayxl2r6Kk1OOFMJX
xhMZz+Ms6/Qe11YVwX5fg9HJFrw/59syWzf6+Wn21bRGio96ESWZ1c0lznRktii6
Bg628qDP9slWUHesPx8DjwLmgNSiLnptAEoj2RbJIW/bdc+sHUwhrcizNS6OvXSr
tep7kbWDaRCH70/7nzaYH16a2gP7PkSnvWZNuDshBMQsCiUqxOGegghb9mZp6dIx
jUIpJlFFO/ypmJVeHRcACllkTgQgnPA7jKqASMnV1JEsF+ekmVFvIThoIL8UIu34
AWkP9gkndzHbJH2f1VZMr6rpeAHVhNQd7ieavCU+DpQsZVJBmTlyi9/ECEgnsT2d
fbPQAcoW7ot9WK0jJ2OxffcMG46P0ahKmsYGimU4OKRl7oqRRivbSmY54s1Jl62F
bvGoVvhVNeo4IjnI0hweOLkzRSfRLXmI/Wnh0frLIlaMEKHracQyhYRsWVN3MYmO
btRzshZQWSueTTBNC5OUPa7v20F4Qlok8IAe5r7EDYRLJJAGFpUYWf9MDkXMKPHm
2XXUWgclZAxMwXgJAkohTuvaap8k7lLagzgffTuoX1C4UbkOpsXnwmhk2M48AdOv
PGfb9vAYPUWNZr42F0/kurV6opkJrAJbjaAHY6jIMBZD1FsJKnNuJjaV95ElZ9W+
ZXasHSRh/lD1bt41SC8slao+emTFr4CsMh1DPpNEDMgQbjBWFgwwkAkcVgJZZMj+
P14xw3TLnvHX96PqkH2uN0+f87kPa/G4p6xyIG/g00N0QTbyk8U78iktsR03cyK0
BLar3Wno70Lnf1lGHiMwXieTMDNTjZlh147jLNtWOQEHNZxXEzO+Vwhb+49TEcFW
HNwQO6eLSfhU705B9z5H+TfudfrP8oDZac0njKQGuF6lBsGJNawi/f21At/mE/3F
cYpiP885eOo3pwU9WZQN7qA2J6nlcQUAKP9Ov8KkauU7ng8DAPxAQUIVuJKY4IEI
Ha9CGAHkZ98tz4j50vkznuTtXhyu9uqDO9KdIRN8693RjfNEDjkf4C/EUKoKRKtH
YC29j3Ye9ENKyM75xKYmDoqkFNjzflB8+12B+OMO+Nzr6ZQbgy7twun/sWzFFZbU
SEAGfLfo1bQtaJgOAIdqQMwKj9lLBLKr0fTJPDmGngpB9Pzyd3qjSXGa5uCusTm9
443WIFAdAbKT81YnurckZjzLEVRcvUxdeO4nK5ITxW1cQdQOArTpx0Jx3yxvswBh
ucs+VbX7I7d0860vW2/uzXy8Q388q2eWPyN/LrdLgb/3lVLzK/JD35KvebOgXYQ6
ZTsOoqgPy+qIO4RpWifZ4IJw4PnCbFYHFV+X+/zMv4oODqXU4a/27Cu6VAlW21jq
Ablcy7x2zRLZgu8McFopsleuzFvNfarNKymL1X21O+L0R9FBKAajqUJvMsZKWT+D
uf4DidDkcfo1+lXr0fBF5SNLhWOgPp/5akOD1p0Lmqd5K1ZHdh5Vocw5LCBuuECx
x51gMaKutm862R8ReO9feEcvby/8cSyC0L/7FdlHAs2imkNuJMfj0XV8W22P4WRk
PJy0GwMS+6JN3GaDyL3v9+ffBwWmuZmDyQ/W/UOayYF+3o4s8b8AQGy7/U1aJgV6
bCNohC3uKzpAIJjTMdiDtYcgrzaNAXSODbW8bovrg+H5FpiffaBHjT4XzSLk7GNo
oX9giE+i+upOpKEStSH6OiktYw+g5e30mldgN7HXN7AreLl/MYRQTkQZDTkLNcxW
y6Ix/mGR8bZoCjuI2/zLqq8CIoSIhlvzplWtfnQGAwphdKMZxXa95UjnSrd/cC3k
CodAh2VngVubRyup97qF04Of41tEGUEJNv/GOZbzxHWjS6qD0D6wyNjGVHuM7ZQ0
bwpBmBM9RI63x6T9J1ZE3JVVm4ZyHnvr2lU0N71D9+keM0lIwKSQ71QAihS7/KZR
yjDCh4AaWpb3BQYhsozbpv81L+MOtg6psyFSgdFsAw2wX3u270wHYCk1D755WLCd
Mle8fO7DC2GOoTjQ42QEl0qHprFsLidR6rxODvTKaRS1qjF3aS2P6XHdhmyQaD2M
bf2skHmWgMrMVLNOda83V/z7Yz1Pd4DNxZAgZ9N9pnW7zWO/FVig5Rd839WjZMgJ
CsyhO56id9dhv4ihiqN+XgH2eBmDvLpMeumCWi9kFTBPwc4T+d48t1S4XAqz7i1t
qqHdagljXS2vSqn7FlZWVsyVCWgx1gNpza4MY7Jft3Ow0s64zSjadgzp+QAPjGut
NLC9KmXaWN0ifVm+Pm2rQ7YblfQIlqvNa6LfYHrS5i6LnMGdaa54hupaJ2NDrbBt
C7SHacFUwGjerxlROJ5FeSKE5XNtxhDr4Lw1aCCGx4RGXYKfeXFgeSxTwwdkZ8CQ
PkgNIm0hktciH+bNG9xeumbQ/tLnhV+e1r6sqgpSALPECwem6EysrhBPGgkBGXJ+
+QyKOpoAoKwRfWCG/nRY8zakJkC78IUivO/YP+trgGoW2tpciwYvYtM4H1mcbJV+
4/xuj3XlEND5RTPtPZFTx17q1S4T5txHcwAauMpZlkibxFnSF2AnaIo0H/ouM3VZ
1BSckSu7zRuMpu21u53nzkna6FXFMAujLhp8yDh11VB+08Jz4X0kt0Y0ymU4fr7K
0g+xMdfvARO/clT4czXOGUwnOkhlzoY/sglasQVXzHeo2yxomVxVOceO/qcPbYnr
Bfh7+pxLXJ+5FLCK0BPYHAvJEpTWOgvPrai1zTaMyeCIcvdqTwIRL0fsO6O3Smhv
kAmk22ZY48j9V33vRYnemcZQiK9E9F5aCPelIpkciB5qDFji5RmBfeapKw+aSA3z
DekjPCut1wt5Aq9FdRJXt6k8ZziT+ETLgKD8DEggKAOCuUomLTbjFkXgC3sGPvFk
MliKV1dOEanwLzyihbiNWFppXfQ/VbyG1f1nP6C+xign3MFlj0WVQgcwIBjrnaIU
j+5/hDu41b8FRYozu/uw/fKW3hKDeqAhB3LVy1c5vB9M5zYRnyjS8t7fFKNexXQU
0nX9b6x0wcTGkM8PmePoQH7p3PKT6t+EwGmPcEhI3+itY6ukbdjcru+AMBhJLbHm
fo6aIeiekz+q+p6DoDAX8emUN+NcCcP5k6egXwz3sN5AZGCpk5c7QW/VHHh1DvpU
+P/uUo734a9SnBMw6U3vxLWAZ+2/6W1IpFLfUartfQaG5SycOKGTiA0g0dhIj01f
gljUA3NEOc7oDzVVpVMVgHJ55V14gl2vGEhZ0AsEEsCVDuyDBN0ETDHlUAOtX0j+
79H/ss++zXTQMwuueRdD6fv7Ea6uX41nvtcyYv5GWx3bHPJDnapGQzKWDeJCA8+V
qG5qi4cjot2qI0Oje6Ev+2LH3XfhyhPjMMlWWZXArik9H+LkFRPFcICID0djeEhX
bUj3zPP4lIL5taXmywsII4fAL3qwi+/I4gcmKgKCMWLMspIiFN7qbTcChwMju/yO
jhFqhPR6j8hyXTC1hKoW7eeRZo0Y3FKyc+/TEVwE7XQ1+xKGrH62Us2u99jZ7urM
GuXsIU6g9q95kN2791pmhsYo86tM8C6eir6Nk9/NIOjQFcAGx8G/UHc6rUowveet
QtnBZh6YNIHkaLWXnUNyjjEi4TK/yMk7BQV4rpCjuL25LFgbX8/hfDhU7cE9WdCF
tZdFFagm0iVj3VoK4UUhJcMLzM3BC69JqQMW9jCE9Zw8MI9B2+V8lgWKkbean2Ka
tO0uwF/135TLQOnq8zdKAL9x1PD0lmpkpuXDW2yEl2Mw3NzKJWBlp4GxPMryH7Ur
JJbL1PE/vcoAEjF6JkC9/GuaaorIDtJ4O67LSsx/2XSiSPmDpSMbd331+u71LqWp
PphiMrB77LYfYZ1t1iKskSfaLmDUZt6VjRSoX3uZDoKj/P+bitdRhk1PKvJwNueb
f0XeFI6v8o7EmcTlgSHQfS56xFB7i4d4My5n1yZ/D3GpzhQ1Y6wo9PQ9s26DHlSH
D+we6WZ4y2NcntJ5NUNl2ML9soZqI5IkB2qd1IVFnAKNl3hbLq82LdkR7qSvUFrU
rC+33ZsOe7cSs9LYqFwYi0VPkm52NZXrsnnd1iEBkCjx45mXZGjAvm/BW9rUsUEY
0Tq6w5de8BgAZjOG4dYEg9f3VS+tpNMdkBuabnboH4h1LXAmB0aQJmEgDtNeIhai
QEjv59kSOoVr01UrWXZdLg73kAnG1/NzC06fRfLDuJ0rGKimzKtuqRmHCaItiij8
4JaaK5rIXGbjhO2yQekZ5d9uW4bGiKtVNYMOkhO/v6G+1SsyB3Mx3BC2i7UAVccv
74pIxkzOGXUiXsFinFzGw2R8O8myrNqEiYQ1sP+bZdnl/Ns6rDg3bJEKsjnV7Y3k
6p558VSNbn6M37a6qY/yxHAqo2eyOhlV6yWHwXD4FOTgomJX5nQ6NL2i5NtgfcVj
PGWwelotETbvUjrauy121QktkXxu30uq1UGo+VS3/9mntIlup4FRkpD9IFIVTf/+
t+CyQipj/CEKtXLuHPzRdtaKhop5RoVWMoABW4qeGnW444M4AHy8SJ5e0wLjQAc0
kmhkg5X925CBuqM0YuPGM1vLH576dOhqJLcVErNcd8/LEEFGSUZK5zU84MtXsyqB
pNF6OJPotff2ZnefjcHhudlhwJtGC8KovN2hzsFi7juM7A4WTrmGLQUFOpLcKVpt
7k+9ql8ray8Tx/CeBJGdKaz6AvYFYI8KJnd7VlcIojyQeXVofIFJub1boT4ugJKh
Z49EwnH4/144WSPkl8coPUAoX9ptNnSivVIlXU3zoyG9xZucm3RkUjedAp8g/DUo
E2QlnU/xoJTjPJuaTVieeYtI2TURp/xHJ9B4rW2xygHeSrcf+FC0OxK3dtpS6NLh
cQqkMHphDl60d7w2SKOXRXl2eAtdBeOtPJLmOjRU9rv//oVDIyGushtiQeLcwnWQ
tF1nqnAVUQoZXUWAOAB2RM5spMkj7niR9SPJLgD9L7UH5CeJsNX+SuAgQ37xHzeG
jVywpmrmCaRlbD1DmKTW6OFzMdJ7RCEY8KkhM1CXnF0dm3Xu5JLLrNC9pQfLyq8S
GE4nK/XkJse3gZA8oCrZORsRblgp0ky82VmRTEs1ZNTSVvHn8q37DcOvtYZ5M/Vp
OoF6KJBcEs0z2f74hjzSxhfJc6CnGRhSZdBGQXHK1S+HsamZBYqKv9kvh96YGHPt
LLTxhxv9vBy994/mfeb69ZCpEyYW8Uicw9PzcXOwD8FoUth25JkAzWF7THdR+01F
vS/mDgz1hAy7YeTgu3k62q0OIcVIfQQR6Dt1TutbC5GbFeAURMEw9h3sx6onyeZg
j6mdq7U80qW9jRCAjuLT7rMI1Qe3speHxTDdBmSyYiTzbUIJ4DGRVs89Z9uGMuxm
ujc4k/hpU0XZhGqnfhK1HY4DYOEptzvJZcGMfLf+oRpyherlRrS27KEI07sz+3sT
21g+lOhjTgMUkX3CUih/9+GhB9ohkVu5y+SrjDCN03a4GP3AeJDHtIVPCYIjHsJX
z3Hm8PmcpaBNXFqc3AcH9sRGvNuB12QEi8lOE2AmJWYm7CyFgifrZ4Bb4h+9dBv6
bSNHrwx1pJHlxapOTAp6yzoP7P3f0ndXhE3pc2+t9qla7d1VgaXHGRnEW5EQZe4j
dsIPjY3ckJITTh0NR18w2GtjWIPaJGpc4yPcwgvEsMa4LCinBBiOTIA6JG5XuWrH
CicS2YMtGQmg6+vCIcGWWpxW+3TNB2nEDZpIe8X0o3cU3sqnbPUdQ1QIE/YW1UUW
czn03+IGleKb6RJ5m2EnKjHhDM7MjlPK8p80IABcaQ2DchHBMJr+Pc7lhU/h3WHZ
B09B2u3GQvKMbszMJ3X5YnZs8dUhMrr7ljNrXwrOFxUFkzNEsQ+Nx+GW49CrOkvd
r3DyGWUP3CNycYbhwWKxChM0Qf87EwlCwume1KTfR9N2YjMymSo3R+DU/BRDqC5q
U2LRMdXrnn48MQ9Pshua0w/7tzo7iaJGn0FE3WtCNO/LVlXFVEJgRQcGDcuWhSiH
18Oh7vrcdKgGOt/XVWsxsU4UZheRJ9Do8V0olkc4a/0lGIiWL+QhGyg8OnDNXXXX
/tuHfYw+/INTyHuMMIeo5VMN9JV0tTj9zOR77uRyf+biIZUo2ugOqbDZUdOaiINs
il+Y65X1Rg3+2T9vkGMh8QgSA97hYFp32PqHaZGuzt0lzo3EaqijwypJq9eEl4ad
uXn2e9J/fF30yDu+kJMQ0+MKUpZYVu+UQqd3ADZffcoErKUUawpoYNUYeMJyRgi+
vuhOQ8auFBqmdAmO8ncyD3QxM11MhcIR0u6hycYDgYYpeDyjZUJepWgktWG0qiup
1oHMn2cGU8Ewxmd78nEKWKvDyzTLNsiAFXN/VFH0m5OESGdECPpmmalTPCJl6/VI
2Tmrmkorek+UDk8HMK5pX5crDlq4mThU8CC9XZ75tkpXNzHjgX/wtxm5qNGN0etT
2Im7NV93I1QxPseD2SZpdQ7kq6xLO0kXDLXF0LwjXFIM8YoLOwW8kEJQsZSMgoBb
fMQe+1D/Oxyls7ddp5x+M4/6b9uI7wH/l5A9u/3CyW54F1fQuNLg5KjqyzroF/4Q
20Sx2A3T+B+Efuj5dEvraAzKYPxuBlpwLftxpwnNbHfjQpeb5/xU/Z3zoZAxXEZr
Jbxqkoq5t4ppQ6myMty9gPcW0DHyUIXwJdPE+mvYLfMUpytfl2tkZxlDpTvHTaon
PphfHbX842DQtA/jA/yUNArrAtlEiz2mEpArF4laXVQGXhDEnQB2XxyVSyGwLHEC
MzI+9EGlvj4IkhqIBvhLEwnXRA3++lFxyDrVYExZoCu1W59XWvpqIacKCKoitQlT
mysm3tx057V81B/jQ7s8eU/OZmNjlLkC1aqCsms4JAW2FpydCffTGyJnoe6zetHV
P7J1ifASy1AU7MEisV+R6aRBDI2tixtchn34rJMetxVD30vLPxCBPQAF/umyOlMS
vI0V6TpEf109thC9r6R3/I9M+3TXK2maaQlwU/zoeErJwyQK0E76GKieEkC5WnTN
V0lQgi9sCd0H35NWl4+TmK+e3YWXL+Pyg07r4EGth6IQSLUPTDBtYboOAsDT1fN4
pfg/7igZd1+50RnLoQOGcBwe4dcAmbzTkr+Vj363wSJVaszqkniW5vcYaisdLM/5
KRSPdCyNZf5K7z1f3+LES71t9q0a9yO++g7LOz1NYnUUFJOrYN/h8cpbPXysU4ir
IrVwwzK2W+8HtSwdzO5UHRhBazTlztAsNioYQja3xPhygQ5fE8VnceS8LLaCxp5g
hQw6Zf80gL93t2EANBKhQc8etEkjU4V/1bj265cv50/RHh70lg2VtviV2/cuOFu7
0eBECWw/ZyJZp0S2V43PdjvhMj65dZR0F0wc24/UZGxS/Ey/aQvphT6p4DfKuwDo
Kt4rIW4aKnGDq6N7vS7zPt1lpRVYKnIaNmEl1BOVV9tMA134GhcjvmvmuoQYW9Yp
P6ZPBeSNInTaOQHRHaL9Xrl+ITBOGhecEgM/JJ05tAukHgjaQi0+b+Woqp/I0Ay1
LuQOhya7L02pvxAMFId1igKyXH/pVcLsM5P7QFiUy2U3ZrMx38+aauttyxkljfLX
2JUXPgrpungwpZfSzgy7exNeHoY4PSEAwf8reB5No5Z+FCJ6vHwjsuBy87WMcAS3
MDwoKAH6Emfl+kt47Y3fN3/Fq3pUBKb4gYpgwbGO4X0a17ZnHoa6J5omOpbKwJSb
dZfwQDKzShw8G3NNozkv4geVIBnfeh8jJlh1/UjrNq7QnzZ7yKxU0sa/b0vf4JSv
pvmnsXBuo75g0HNf/7HvkAZAuhnC88v/TR4USOOmYFj+ibbGCl2wTXcDHT1NBaA4
0daUrtQoU6YqUNL/C+u11s2YZPjdyG6KQJ4k2Ix/WVAZYnMjfLGlzX47HMnJEI+l
ubq6HQkINZSdjj4uK+Szh5X0vx0dCL6gQ2qc6xWxI7C+ogoK3ahUnduy5iLOPWce
byXwAPrge5Rb6btc1zI51JmTBrHFzteoceQxYEfKOGidzlUohYIwqCTdx86z6GUZ
w0UfsNX3WI9m7yjZFjdXhALsGJtVhIco6S8N+EsXEoHQRbvkpGbpeevcutY/0BeM
HVnSNE/iHOEEN6n0igMMfm8zpG0w6ZoZbXiKuOUMR1QoUsSdH8HB2JIPxS46hcbY
VE63EkpK+DZJrRkvvqLbkczK4UZGQq1zW1eqkEROGkbxsuBgohNeJMc/n75z+kER
odwv0J8U6dDl0RuPokGIRZGrcapVL63v848Hkjvrz9arle/tKGx6dk4OtSUSgo72
52bHKHXPIouL7TgOKX+PKYCkneCg/mx4wuBgAW/ge+lnovBfWZ4hZhvcuv0uLdm/
AG8UHBdvnH+yu9tgBcr9nLhknl0yo8PfJzm0dVur1Sl8tO+/WwUwJ69XgHnET2FP
6i3ndDKKBiSCNCpVRm5hE5QHTrZDW/uZ4Wr8/7vkK6bpwvleYb+oHs/aBEaVvyFP
K9ZtxkORBw/SjWEV+vKLnrLplpR5m4ke6d66k56fZVdL6eC1CBudD4qjdjAVCM4G
B+prZXqWFqRxieZx47T87kIBAaSA36X+9F9VAYU7OFrhFGO2Zmr2Wx5NW65VLwP4
4SSqzSWBBhVtSF2HgpDMfYXinRPB3aAUizsfQuy9J4n4ZOAz8p2EU3KUnAvUfjpj
cWRNCdZTARUScvjoILd0DjKg5/DAv2qDeBPzRkfcekJG3i+x/fR2LpSSFJ/x3evm
dSxYDZNFCjqwFxJ9GVyvUG+XYupq2G3MV30eHcP1umBTQfXwpKvZj08k0jZkxHZb
yTP4OOz6+1e2WFo6CBxY8fj4I9hCVJZPlgyVyyvEa442V3F8hVTUTjyG4SecIsVR
B/ejSJkOdf25b6qmYyfYbyicqTvyknoMM56YCS5j9upFANak51j/rX/wST+biiaC
kfj3zJck06mOVO4WIMNkOU8tIuhvXjTVevmSPobsTZl0cYfP1M0/QPT8gCIW1in0
i12bPjZj208QQLNZMjaltvxbVzuWtEurcoVPAOn80DBMocH5ZJZipCM7lk9aOT25
LL/ZbbSJxRskmqHsF14vMmH1YFR9fS2fPVfUqOqq1bVifji8b2CxnKcnd0VjLpEO
PdDBWD2MtPtk/iCZtinLJDdzSQyuL9NvafuSqi+kdSVaDO44u6XKJeIdnMpWAZWk
MvOfX69+CuVwkFFMZmjBEQRUrMAqTBAKp4kKzUvxWUlW0P/y3D5hbvXHP+j80cD1
oE9tbWalYmqiHzSYnNdBJewUvyMxHAizmNTuDkTpwyN9PkUfSWdW7HRQsayT3CP3
YwIqnopkroozgcszvepv6MJtq1XLhBPHTIMWcFT5hLe3YxdDKVDir/LBViLwbZ32
Bl3cxt0zyPd9S1EUPOn13Lmdg0dEwLl9TEuWqqe6ncp/bxhEzKLUL5yNt9FNo2st
29NFgDLRyqyfQYO3rLMF2O81dcNvS3KUJu3JyoJc+zKeOh104EHzM+ki7+Jx/rhP
F/54v9DvAZszKlNBzGDeR4UPMJc064PoYj2mWJW2PbNRQfysWzcGZrFjj9Y9uw6K
a93Nsqu6/qnUuzTkLXAcFEgLcDQ0Frda7shoS7Sd1keQCPFHY1pQ81GzyVUA0glV
W5/Jbf6GFgMwUnAp+VbYzY70nEtI7GIxDWT9OxSkJZzPJaKtpTi7dGhsW+XFUEc6
gQC/6T/kg1QpgDnveZUpoVhlz9j15e78e8h34T7epXlMGLyfNo973IRj4HFy4VfT
KBG8Azrowop1qEMxFfWmkC/loxlEzUhW2rG3q6j6lZ6pbDmQ4JwlZNMSx7ZGGk/x
6wYEe1y962qhSC1VynxYWboZ+HhfGAW+fj2+XhdJjHSz15GqxIt4MPR4ufa4mzmY
7BLEAKKIQdueZDgFUW4UxGjf9IbFrqcYutjP/lRG+g0n/i6bRHig1PvaUIBETt+g
oMYouuJs7M2koQFLqouAWVgahXc1P6twqm5Z/PAWXXaEpc0T9fcU490FBKoQ48qd
AS/m6/eyXoDkfr7JE60/6TEOU3MQU9WSzXopUeiqacyMLrVhei9WINPhLDPIA5pg
oWGOhVCaFIiDazYWeEQmLr2OPNU0i6C39ZIY9pCq2A+lwBHQoDc5NzrbGXba2C18
+u6yQfKq7Yfy9s+BKXucxKlLYbBafQ02tO2fH80IvuaJvkGrK+AHbakAYSOt3vX5
etXWxf+Uu8GMxyo2UIOXJ+fWW3CwJ9Q+3g2Vy6s7LWJlSpdBaFrtuDnsBkHllX3c
ucuqfCNyBPU45DcqL1uKQV6lhlmq0Okmzy9wjbVh9vVvHctUKYvR+yUbfMI1ACAq
1iDZlJtO+Fz0FEUw9lQo5nWsvIO9YAwkKaGkg5+PcA0ZRYxLmH2Xf2693eXUqbPv
9qiTB3033Aie+atHDSYLgyuEFTPuijS8UIqrOv58jnHEqC2J2Rb4ohO6IR/rE9Bw
M/CVCs8wpjqfEVaTm5sayZDMi3n8NDYLaZwV4IZlZWAnN3s+10o2rw2pFU6aWlJU
d4H5/du8RlZXDt+UcHu5RBcvvA+XIvkKIlHRHMtwZBO3fLgkaVtfWEQWMp/SyCTz
2gM3DWXySqHPajWVQ0HpfVefbjdFEoZzBpNFXlI5h0caPEQQQT3EC3MZIGwxxbOK
RyC7k2reulgp8Phv1Xyl/+KCsU3rX1+NlqNRTLB+fvHT0E1zHrIAPK43brtohzg0
lu/Mync/r4v+vcO74Ywex7Lzj8xBs+tKuXXU8FLJxpHfpXjjUe0Lfydrf4DWyrvs
/uoGfL3ydXhHVsctJu1xLRCGbQMOcvIQEkmBroy5ejtlmAjqXs+u69B1+5kxol8g
DbWX19qq8I9fDt2FC5hLxPT2VKBoKAvLJFkDi3ymB38OmyGS6HrL7ZIh2mH9duaj
M+yIbl8nI66sZNRP7P8ipj4b253LJ+zXiv1+rosBFwMWY96m1KCcH2Z83DksiBB8
nsZS9iqJBwZ1A1sTaKjVfHRm/56AsrbyFNDFUxtLNI4wYgycFHy3cN9Zz4jWza2R
KrLltIhRf1xLQElPvFZuEXpI25ZETsSJ2hdVbG20ANfWNRupm5OuMoySJtNDFOEB
SvMxb+E1NZnHdo1GfPHodL6CKL3CE+CWFAvTdb3zf9rH47KCa9tkOYe96pS/AbAq
mOm6ztIO2R3wPKf71UoEdx8qBz6B6lUnd/oCVQaBFdR2g7zx4gdqo6cHfbmGzIVS
VTfd7XVVPAYl/j9ErgA/ARs5hDN0U/Kv1/DUMi6+2w2rbENIx/1voeS6phX161G2
/WSGalrEPDr6lWwlx/84LERvs4YrTvxz9/qXGvOZWv9ufcw53UUEL95MlYcxKPdb
2Tjm1ji3mewja0sdHQrT2Un/tbb/xKNM4rey5nU4bw/hsblFulbGacviLnP+Srwa
fkQw4CyYPCunJKi1LxUaemP3+gRo3UvP6Oo22M2Up/s7X5YbnyH96e9dKIksz2vu
6H5a8vf+YUJC37+PSPbGfBZ9RqC30/hYfIL4UoyUrKFB3NufrMOXvIuC+AMJHkZR
GwL2A38oiaRmjn3Ag6NM0tMvXRhllX10vKlavfIi9+5/UXByIMSc2YDqnS18hnN/
2EleMGHknjzgpnzsXfTPOgSeTqA0CMrUwGs+hHfsNcdEc3HvvakoAx4YELK2y0iw
SaGDcN9EbXJk7OO5V6wwS1kfD5REzipGuZyx1sHTT+zwCrHYmDLz2LfeIw4stXWf
+1kWR33B+Wv5gx8i3MtCFsKOq05DiSdjsI5Tu8B+bDtHNRjKD8cFBm42RddY01Gl
thC5nHIhD+HJzvr8ptI5vOpvJpHyU4mP/UQTBx460gE7n+g1fPFfGZvGw6flbbX7
lfu7fG95dUW8AAgsOSkLMGv3Lt82IdJlDVpQr7tMF/ouh3CwZnesHgtvWG37xeJd
6jNRgQKjX4FOYoykit/xFMkjBBDGkp8HsmpP85HLvPDMfhsOy8iwX+CcsGsJjzRw
RvZvWYDZco8aFvubj4GbahXaudAivJpzzr5VSot32cmdaxwYuoCAUrVbZJk6y/PB
ITVmFJ9m9AzyvhnEISBgWm3yUBXXZf4QM4vkCJMvoIRg4Gge8pLj9jWy1/An63qf
jPqU3s69DSivuopSX6eqwHlSjQKj21f5UXeuYTnHwxj/1kct/QPQM7cn7dlgzePC
au36Gq1S3lJ5BvSGakEV5qD+f+pRusVw5lJmf3lrFKckMIOUCzFv5RiZx+KTsWgp
bmBWsbf9GHWQSa953ixjySRzpNTR65cmdYwO+gvtpi4FmIN9oUVAacM+BQNdG+ZL
hSANnSTo5ejww+msNBJ8MxnZOrijirz5WV06LB5s41oTAYAXyzO4DmfjnWsYZg1u
txzdgO4fqW278wdNYyiL95y1sjLNiQnOGa0FzYf0iBN+Azzmg1yZjlJ7KsfKgDQr
TmCg6CUOrvU5p7SSeqJzt1XbNMWvetOGX5lGsDVZE76OyC/azXlT34jVYY1CFWxN
IBjBw5W6cgQ+FC/6pzFi7ulzWIrzAIHGIxvhN8GJbF/EyS83HFJvwQOWNhM+1mAh
Xv483vreOSSZA5Q+LPOXTEGborKlSILWuoKAkQexh16zl6Ezz47oDaIryXLgyW7Z
fIUot/0eEyQLwcazxDhYs4JKWR56CIMS68dYk32iB3DfNth7+G68Or+1MCdNo1UL
OV48iwev/dtW9KDLsYzmGQZI3HaO05EyGN5tdGvQb2QYt+bZCsC5Yv+zj00E1yDI
QR/XH+TDHODl1mEYqJy2nIMS6Df1hXuTuVgKMbTCN5ERTd39OAZZzYO2a+mdrRCX
GUyk08nyOKg8snWf8XsCR4y0NDmWPmDs4HIDcmIhf4djFUYjq1TMFwwdoZkglBxP
OtEi9wTPrVlXAG29gijpQgxwf5r2bnIxYXihZbMztrZyG2LWlfn6UJfBPpqnt8AD
VGZx3fHNXbI+d3tpETebPyy+t5Tvw2DSD1hRFhYDZi5qZTbUwiHp/V+OXCt9Cc+I
PMPYyogB8/SlVFsBuzyi7jAZ1mzrZpH+JE1t2yZ1aERCMWuSHUI8eZetSWBr+VF7
LmNMQe6Hrq19N+J3rW1GGs6LkI4qIWEVZVumhDERfeFM48JWjqJCV6B6+uoRdxdg
434EadhIBLj4XfR5fGBJxJe55qg8yhb+h3N7etx/vR2YXlDKqLvqaXHFszArTL87
G180oB2MEkhWyAec6Pvn79NwCGV6UPkEJN0XzZBPKDK6JWXpPFA9BWfAK63liuSL
+Uj/0BWr90xISYbFQTdODSzi9bSAEWJ0ZcbEFjSi/muNIXEOXm71QXKvzkKULhOI
bDgKS6S0SZdDaFts1m4uH+77DbBln2YGjhztGUkAsRDYccuQ2QSYANXIhiB2FEHs
O1El/22L3PFwzhSAImdxGmD22W8+dNLYsFnmK2991GCifcltLvAmhY7m3Y73kX79
BOVcxdInPVVR668ICat+OW139uL+yn9DZ+EQp6/3amapwADptgFUba54X19Sr9Zh
6w265bBOCaXSGh7WyKGyASwRKcbHPEYMFxcgLM2EzmYurXBMgffm3+e1/MkNAJBP
0ICkGJp9WKTXGsfBwL6X9xvIe16eSFKkxJ96XnEFUIixguEHOsyx2ZspCwB1Me01
kjuhEuPm+IUcLDID0dnlrA0zaeNlFuROuE8+yxdAJFhq8wnOUU1ye5/JXpopvdzF
1GASx4dlPYXKtop1h/j0dyMKLYgmQKdG1kGGmOcHLT7+MaK02BD9QMWK5f/4TNIJ
OAyrj8+zU9N9mCZLzIC9iIduPoWQguzuSNDsj+aMfH15vsD9WKgXHeRrjN4D2KE2
h+rPkn/hzeb/zeCDuYr+1CnCSgsJWvvBTSoykQfqZv1xmLlgKoAbF16FagimLApi
61iGSgcaDZRAhjdvMrJ0X3QrUfqKWmQabdI2zc1Mfd4I49ATmMdkK5xNsdHG0Vv7
Vqta4D6HOwc+UYBdxJCloKbj3V2rd7CxpRtnGdRGTuN+gOKfrtDS2d0rouCSwVnR
jbEpd8BiNGKWvOVOZG7/4QAnN8QBBfoTDm8RctOA+E8CG7SbT1c7BJ7iOjy4dX2c
rS8fu+6vgzlSRItGJv9V8T1OuIAvJjCPYaNzYAZiyM4lF8bDJlwz1wmKZO19hrPM
f0vsJcMRyuxUEejnvusHWYPk+A3p/Mtc4y2tgsu6PT3nY1Q9PRE9Ypl0nEmOh8GD
Q9U5+JN3zItOf3rDFhozoaNGHrS8WvR5BpkTYm/Kgqes2vENjVuG8TDFKTWMLA4A
iXzTwL3aCadjO9J0Z42sGBrMFGLEEgHKSHXdTaD3xjw2Z1gbNH0mFOFzv6m97+cP
VosTJZZATrgII2v3aB2Tc18AzfQ8EGsMM5bolV3GEtwPIo83Yhs8pyudkSA7+kN7
UGq/7NFqJ8u/z47rSckzoF+l6sU5SQoXLEjlz1Ej9/SIu5eV3yUvXb3lJcl8Oa5Q
EdEorg1refuzKRQrGT/+nbx1bqCUnlQdC9IEBV8ATGtWy7VhfCRM/PA+i5ZC2R+H
CbStc86RcEG7q42ceKsF4t1WOJVg0uDsCJSLKjSQJfkGwOtWcTBRUl0dtB66RLtf
wJC7kG99jWKzlTuCx28w7BSfy2dIM3E7V6gJkabqgHr+9McyA/R6rbCJiRHRcUe+
raZlOhywpJAvhPTXcO+8NbBmkIz77PwAn5t2dJ0FO9c2YvTGUx6gvVjXJgMJ0Gn/
AcAbpNZ/NhSx0KHXs+Xp7mT7Zg7E8iGkirB+DbqzEiToePhzjlHLDLi5G8DMDAea
pLrMWQLBg0q326U9SZ5iWybbtKAtgaRuzp+EyftdcqJb3/Uvjq+8+jvvSMnZMP9D
zj27ooDEGT4GopzVwbV7t0+lPcCa68FBFmmBgyBgraCZMxPVqpaYucxKSivNH0ia
Ab5BDVUe7Agw+xGFC3WgdB+KJ19fZwXZ5KWQuhLa893d1lOtjfafsMgH6Lu8htC8
vrqpxnUAF1JBFRUr1j4gKmxGCTqfruISujjEtd7x+EY0p1AvjtNbeNURDTDsFYqa
WEAfAgKvIPih640KEivvZguuNVFYsNkpbt1BBVrWsZYToMk2eVKfX5+/aw+EzuW8
1vuEi3JLm8gaQz2FAhSzWxfyf5drJHzKUwcZsh6JDNaX6LglxbOi0v9UrfoRtHqU
BbJ1eayN+35dBiRVJehwACVUJQ+njoPGZ0Eq1j6WLU19gO/dOs4c1QBYLAhiGOvW
3Fi1dilvNLiPl9RZCrR5022I0TpPOjjibRmt0DgrRvJ2V8wDmFhKvarrmxcTd53m
2s1sQ7FuMpvBcIPm7UXEzUgecIB0uyj5ySBbsdVu5+uWaIBk38f+Xp0UefqXOQXK
hpABW6innQ8qy4fZnXVDsZ+Z+j1pfxbpf7HkurvCpVbv2XY540Dh9YyvfughGN0B
U/qUKQHzLWbKBVugBVbBkUjiyfxluLKlxtMtD7dXrfGrXdJ9obfogsJdcEMTyL1D
b/H1//H8yLmc+JJmi08dDa3Ui81+cRDibL+kxgYdM+YG5Ecp2AHiIG8iLCuIfDle
eIg/nVo4BFhpVNhmCoQyCYsbjY8EeQUJknBf86Z2k3vH9OE4ZChuj5sIUbNuKPBi
DegStP8NzRICb2wre0j1zOicZz1O4XUpMI9wpXrNPC9eOvJceQ+IgZKE2PLK4Yrj
Y6yTQKedFEWGcZu3+DacMgz2ShN/pbWk9UAy8dzlvJ72CnnCKyNVGCxtSF8N3cvn
G3JCAevbmUgMUpJ5UJ8aatvpHoTYwGEqEA4hBVnZXuNPvPbBtDLCnC9oBXxPf4PH
CcbZ3MYgMZf3zQlgkZocRKROWtfHZ8xRbnngpBhU7NG50tV4K7BdDRQqFYnEN7sY
Z4HysyjHrlg8TjssB0EbdSq9jwylgu9dU5ltIIXFPjtLzzj8HgXwPngc6u4Bj00/
6FVEvBiTwiMi6iIgaETbzFxLN2zUpbtI8sLe54TiZhzF0iT3FqkIh+P6C4HBcmDV
YAVSObzTKc8tbzIJZrTJTzmo+1N2AxqWT5J3NjbCt1ct6YAFuKJbP3qkcMG1Mvoz
Zqii6C/hNqLG8z6+aiVL8vaUO2rPydlL6AdxwnS0XLAOP6hOq1nh9dNjTBssKF3W
rJgCsC3H4ha48/wU2kfMqTVloIg7DMMDMt1U8izE2/yCk8edEE9/4DZcRiti7jzr
qEDzJFN6mpwQI82EppN+ORJYiD/ZwGaByYWvL4AdksbssD8yLW9J3zYBcMHdk+2S
vTyapZuq5bSYLyskFSxqX+Uziv7Kbym+Anbu1mkRcZ9f2Blxj7NloePQCXmMWYbY
cMOzs2zmt+8usqJbyZNdwaXDButzJOgLB0rnlA9H8N6ssYYqcrlC8TD1O2/Hyl5l
fZU6Tor3BwR/ZOa5WA9KyWMfCV4hXj421t00RlB/3fW8gOx26DxcpuElDlmAM/Ka
NW5xLGRri6DU8i/73Ye2svA3Q7T3QPF66p+ZAwTxGyzd4895G8oNL3mtQlnwMmnW
0nMUuIlHap717gEMO79TSoiAdfyDKPdAET9Y4qdZ9DaFLnOmkZJtOxK9YejxHxWz
lHkxhxZ9vGAKigve6vlDIbbZY9fLPkWydCQPPCCT7LMuSpQ1Uk78+apzA7Fleyo1
ylh1FdQqYoA0ntnuJak2DK14s4yTZgwKzXidOYLfLVnPebQttbNf3CO47+L9o3r6
ATUaN+Ul5Prwv97imdSJ8OBcv+g9+7CqnFAzny7mCFU2Ul3KGgc7iLWEbdR9cKyk
67DO6QaFw2QMiYZyAGyF2y0QOXPZ1CmOTp6VYvHaIImC6zJO5zoZppET10B7b/no
4t3gFiBSJsDipH+JhGRArD4l+bqgPh4EPzHCAlX7iJR+V0C06nMrjPStSsBLffTm
JQxlqebT1BsDqZ1Mu1KTl/8kJ0toWlEygWRhDIl9MbSgma+CdZCi98H61fL/lGVI
YjIUtqQq9zNkKITQW9hEUuXiTJk4OHBQ6RT4UFK2YmlJJIhnpoZdxqKYOe0ytso8
e1Rfb1ph/tV7JxmVycljOBbjfQkETPdPR0LcurC5MZmEYELNDhDRkjuJAMTdCfv2
ZOHscrK0wtshSUBmn7m3j+3xYwqOGBrZl6w7Juxp2i9s0YvlCtc/XBCfVlDRs35G
+dR70RIP3KmqSDIXQPdTsW+vYnA9XiELYcV/WxUioMcVpW1K7kt/z5GxbFG1CLWe
67P0DBfp/gzqno1ZB+qars5cqHqRnwdQpb3cKAY8sW8q7iGOY88dE65VBBttq4OB
giJq4B96G8wmAtHDsBvrGML30MC+tuivjX7yzbj8Vje7pwpPz+F3+0m+l2NRm63e
8TNlWxjHzjZ2qpd4wSy+tZFQMS7fcr9io44v4ApuzAR7AZatR95WzFDrjP1tjxMW
rJoXbsy8lNKg/3EfcJQtDzMMpILQcHb+lIBoCF3EIctl/F89fzKX3IEVbdpPThVf
3Tctfj0J8JtjVjbo5pn63+pAm3bAUe9AcJWzNaN24lQrs5OH4jAG9OH47CXtfdyx
O/LgMsktKVj6TCxCi0vh09Xda5CqoHIC5wdPyWvU8NZ8I+VQjkjnJ4QhpsNw82Nj
MGedLQJsmOzyfYk7E++iISPi8JlHu0W2niP7JQlI1xJ41hyE+PRg/WVrD6iJ0gff
UqRpggmQXaZh4yOl3CwnBKqfEMtPySWmNmMwC91lIvMKxkMuJ1jfMJKVyJ7nn4oj
0eP+xre4qrsphF89sw8Rn7zBmK/+zgW1D9pgRfoHbuDNeCgIVlOP1u587vOWqt2l
3WFN0zk4Kxw36sjTH6iv2gII/Q==
=5GAs
-----END PGP MESSAGE-----
"use strict";
window.addEventListener("DOMContentLoaded", function (event) {
let createdObjectURL = [];
let getHttp = (url, responseType) => {
return new Promise((resolve, reject) => {
let xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.responseType = responseType;
xhr.onload = () => {
if (200 <= xhr.status && xhr.status < 300) {
resolve({status: xhr.status, response: xhr.response});
} else {
reject(xhr.statusText);
}
};
xhr.onerror = () => {
reject(xhr.statusText);
};
xhr.send();
});
};
let showPhoto = (url) => {
document.querySelector("#photo figcaption").innerHTML = "Now loading...";
console.time("Download");
getHttp(url, "text").then((v) => {
console.timeEnd("Download");
document.querySelector("#photo figcaption").innerHTML = "Now decrypting...";
let message = window.openpgp.message.readArmored(v.response);
console.time("Decrypt");
return window.openpgp.decrypt({
message: message,
password: "Passw0rd",
format: "binary"
});
}).then((v) => {
console.timeEnd("Decrypt");
let blob = new Blob([v.data], {type: "image/jpeg"});
let blobUrl = URL.createObjectURL(blob);
createdObjectURL.push(blobUrl);
document.querySelector("#photo img").src = blobUrl;
let figcaption = document.querySelector("#photo figcaption");
figcaption.innerHTML = "";
figcaption.appendChild(document.createTextNode(v.filename));
}).catch((v) => {
console.error(v);
});
};
// echo -n Passw0rd | gpg --batch --pgp8 --cipher-algo=AES256 --passphrase-fd 0 -a -c Lenna.jpg
window.setTimeout(() => showPhoto("encrypted_data.asc"), 1000);
window.addEventListener("unload", () => {
for (let url of createdObjectURL) {
URL.revokeObjectURL(url);
}
}, false);
}, false);
<script type="application/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/openpgp/2.3.3/openpgp.js"></script>
<script type="application/javascript" src="index.js"></script>
<figure id="photo">
<img src="">
<figcaption></figcaption>
</figure>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment