From 59f78d06b1acf87e89ba6c69bf65904aa6479725 Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Fri, 27 May 2022 21:45:36 +0200 Subject: [PATCH] chore(common/defs/fido): add kraken [no changelog] --- common/defs/fido/kraken.json | 4 ++++ common/defs/fido/kraken.png | Bin 0 -> 2352 bytes core/src/apps/webauthn/knownapps.py | 8 ++++++++ core/src/apps/webauthn/res/icon_kraken.toif | Bin 0 -> 657 bytes core/src/trezor/res/resources.py | 2 ++ 5 files changed, 14 insertions(+) create mode 100644 common/defs/fido/kraken.json create mode 100644 common/defs/fido/kraken.png create mode 100644 core/src/apps/webauthn/res/icon_kraken.toif diff --git a/common/defs/fido/kraken.json b/common/defs/fido/kraken.json new file mode 100644 index 0000000000..98a74df4f8 --- /dev/null +++ b/common/defs/fido/kraken.json @@ -0,0 +1,4 @@ +{ + "name": "Kraken", + "webauthn": ["kraken.com"] +} diff --git a/common/defs/fido/kraken.png b/common/defs/fido/kraken.png new file mode 100644 index 0000000000000000000000000000000000000000..f78d663a1d3463f234f3550d0beff1f6721b7531 GIT binary patch literal 2352 zcmb7Gc`(!u8~=WH*KSy?5;=00b17__5FM| zhObykB4Rs`Z|T|)UPU9v>o@bxyzjs7%yY~<^UU*nKJ&~o^SS8aWG^G7ECm374Edn# zk+sbF$Je3PV!Ji{1pusDAlvS9i+(?K{d}hCQPnP+b5Tv$|NNaZH_Z3>$^81^?=``~?BA`2^NHu@d#2;QohzN&X3Me0Sph5_+XR|P=o^#Xg0f)mV#h;FzoMnTANA&O*MJ{QZ8?ArLLJpx(CUoV zL5|;F3s&&nt_mc} z&W!f~)kx!9eQ&cm3}4z)Nw}h7v>gzSJEIgp%^i>JM7~i7!>!s|Ldan9K2tOw>$z@= z;{*jDf^UGFH8!tJ5$iag@vs8ysz`&bL(ZxGWyKYz+H(-q=!CRmH+HUcRctJ>XFN*D zt)P!Pg9%^{!iq7Sw*}!2X7Julhe?6Y27m64sl6!byw{0#MikjSXl*Q)kVQX_ATu%| z1mUFEhvN!QMS<_OeKrkS;<30NFGm=C@#wTP4O$FzuTS-sI9XVB1(nx+O2AG}Kxp$}Vd)?0IGf%d*zxO}* z4lGd@uDodM0n8#W%9XRJrDQ17E9Rxo+TP5fgv3f=3)5W1(_l0*3X$s@AvZ(Mh#56e zFTQ>j%~x!C6fmeh1y!v3$fHd z5X%el&N$g#iNi~CJ}b)qb4F$U2F0KUClzla#+>UNigl1Z!uffXOA=bi-4Yt7SJb`m zDtX$cf=w#Afw4=MZuJ*?Z$dxsGTgXEwhJ8VB*rRVp+G~NED7`rz_+W)OeO231UAyW zT?L*}Pqj=qPO#>&V~~MtwkhRAr<%Dj4&nBFV(s}E2|>Ud^eEv^3&n3w}tb1XfA2)pFIFMu_= z;#TCJ2I1{(-+`o0*d0p87Ef;L75_~sa|Z4NsK+*Jbd^0PvIgG{gfmPib=IXNnyYt( zH*Y=D{ARUh1l@K|A^&m!l?!yj#@?pXjC=H4?A+(6U7Pzv;{?BG%Ls>*)~&cOv4|q>W?`!i;`yOO*kx$A-Wugak8MD~hTJ!6-qM>GUWJgn> zdaVjyCw=*Fpy&>(zU|R2PG=&*^GNkJy# zr)^IhvkNv~b(veZi@L!E63=Bg*)E^4wr#6x7?g+@cU2Hdbk4A zo9QG33}4V_nvwimyfKOubI?p5#h z0xXd$LT@*0*1wif1smLyjKGw4Yvf7JwdxQpH0?>nsmEyw7Y3gcF)qZTZF ztWSEqt)pvy5>_qP(XP%fYfyjc?I#+n3#G5LbfkmR9Wg332pwBTgDsU4ol^tGa zqGp~v7w+?JGjCO3?_QnF#d%*8gj?@|2vfVDI=%UYd=q-^Aq=x)G?W<1TKR1kQ`_i8 zNT9@%fH9;3TusxL=QW#$kEv|Jba95nSQzd1Rl_9K$G@Q^F*6dm$z1IZzIXrf@sX^2 zLBvnd#ErLOBpFFgM>~yi+PIe#U->IQvNt_}leFsd=&XgiKSAyr{{womV8h~Ltl7Aq yiG`~_q1iX{A-uGao2QiZKN{mddZXW9Y4iRxPNC$1p|Uk41d#2VY^(SCCH)&G6g^A; literal 0 HcmV?d00001 diff --git a/core/src/apps/webauthn/knownapps.py b/core/src/apps/webauthn/knownapps.py index d3372ab6cf..d04cb412a1 100644 --- a/core/src/apps/webauthn/knownapps.py +++ b/core/src/apps/webauthn/knownapps.py @@ -211,6 +211,14 @@ def by_rp_id_hash(rp_id_hash: bytes) -> FIDOApp | None: use_sign_count=None, use_self_attestation=None, ) + if rp_id_hash == b"\x3f\x37\x50\x85\x33\x2c\xac\x4f\xad\xf9\xe5\xdd\x28\xcd\x54\x69\x8f\xab\x98\x4b\x75\xd9\xc3\x6a\x07\x2c\xb1\x60\x77\x3f\x91\x52": + # WebAuthn key for Kraken + return FIDOApp( + label="kraken.com", + icon="apps/webauthn/res/icon_kraken.toif", + use_sign_count=None, + use_self_attestation=None, + ) if rp_id_hash == b"\xf8\x3f\xc3\xa1\xb2\x89\xa0\xde\xc5\xc1\xc8\xaa\x07\xe9\xb5\xdd\x9c\xbb\x76\xf6\xb2\xf5\x60\x60\x17\x66\x72\x68\xe5\xb9\xc4\x5e": # WebAuthn key for login.gov return FIDOApp( diff --git a/core/src/apps/webauthn/res/icon_kraken.toif b/core/src/apps/webauthn/res/icon_kraken.toif new file mode 100644 index 0000000000000000000000000000000000000000..ccccf02e6689327ae66a9585af0884886c2d6b87 GIT binary patch literal 657 zcmV;C0&e|OPf2D#06+kR0ssK*k}X*n=)Ws3I8hU}o^)Q{m)NXE3$4&es7u)D$O5%Yx3=W z_WKT42g>K^=x2M+8{Z;^{-@w7aUW%ueQ{xQ=bOLTKb}R;+uTd)9rVrPzVq+UHjU7G zKE2o=X|usAZm)P?-KI-(dVUqX*dPSAa-i7ZE9rTYbu%8*SJU&Jof>i%bU|NEX(l^D z?~`u$%c;2+c&~Rw&l^Qd?k$>i$+r`r)UG$Wq_Zi!T%UH$w_`9W`P#T^dfqT7`F7j~ z-`rm5@}>`Z-jZ5mPw$J5qQd>KFFtVrkiPasUry}=0Oo?gevW=z*dni?~g5(ebJQiZ*GYV;v}05ju$W#FXER zrqUc#%G`=3qeE3Ae#HyDQqbew6uGBOK&@nlpKR^`Q=&V7TG#Min&0`^^6KN+vlFYq z27eo?K@p!ao?myrc!3?~e#C0{4B!Q;fgYbU0pDuDKX8050oWM$1ApKT{DD94d*Clx z@PFCo`Y$vCD*GLA+3%poYS59@XcJZ=JFLds;RX8(;0i^|jww)BjWlOx%Nu?Y>-X#= zSv09mmK`7{b6<1+DAHiPsv%UQfkEB<{0`Z%!!ixLuYayn$-3N7OfNS0LbJbbKN4$D rM9-zu?@5za=pgc|w!<3?pwFkHz9;lyz$ds?3iMzg_IaqG{;&ECFK<#v literal 0 HcmV?d00001 diff --git a/core/src/trezor/res/resources.py b/core/src/trezor/res/resources.py index dbf21c8fb3..5ec5bcc764 100644 --- a/core/src/trezor/res/resources.py +++ b/core/src/trezor/res/resources.py @@ -88,6 +88,8 @@ def load_resource(name: str) -> bytes: return b'TOIf@\x00@\x00"\x04\x00\x00\xc5\xd2?h\x1bW\x18\x00\xf0\x0f\x9c\xcaO\x1eZIC\x90e\x0c\x0f\xbd \x84z\xc56\xd2\xb5\tV\xcd\xd9\\\x8arPP\x86R\x0f\r\x9c\x15\x93\x86@\x07\x07\n\x11]|XN\xab\x04\n-\x94\x92N\x92m\r\x02/\x1d:8d\x90\x94\x1cEC\x87\x94vPi\xc1V+\t\xc9\xcdP\x88\xc6\x83JVRY\xce=\xdd\x1f\xddU\xdf7\xde\xbb\xf7\xfb\xde\xf7}\x00F\x03s\xf1R\x92\\\x1e\xac"\xbb\xceY\xd4\x0b\xbc\xfc\x15_u\xb4L\xe4A.\xb63\x9a\x8d\xb0D\xcc\xd9/3\xbf\x1d\\3=oIk\xda\xfaf\xb11aF\x97\xc8\xe8v\x7f\x12^\xce\x88\xed\xc2\xf9\x94uz7+\xf5\x8b\x92\xfem/\xca\xd6\xea\xdd)\xc4Kz\xf5\xf2\x18u\x17\x1e\xe7\xdb\x01\xbe\xcf\x8dSO\xf3\xe3\xd4\xe3%\xbd\xb7\x16\xe54\xbfZ\xba(\xe1e/\x87\x97\xe7\xd7b;\x1b\x13\xf9Tu$\xdd\x85+um\xb9R\x97HpM\xfd\x06\x84WK\x079s:\xc0\x83u\xed^&\'\x10\xd6\xba\'\xb6S\x96\x8d\xeb\xf3\x92\x96~\x90\xc3\xcb\xfa\xeeB \x11czg\xef\xf7\x86\xebi\x1e\x0c\x85\x973r\xfa\x92\xd8\xf6\xb7\xee\xd2\xf5$\x01[c\x1f\x94CE:\xbeLy\xbb\xcd\xba7\xd3.t\xfcN\xfeMZ\x81\xb3z>\x056\xc7\xedLO\xef\xe6\xf3\xea\xe0\x1c*uc\x934\x13O6\xfb\xber\xd8\x96\x8e_\xeb\xfbb\xd5n\xdd\xb5\xa9\x14N\xfb\x9d,\x1c\xff\xd5\x9bCY\x06\xdb\xe3\xea\xa1\xa2\x92\xcfK\xad\x1b\xff\xc7\xeb\x01\xeecE\xb5\x82\xf6ZUF\xd8~\xff\x11\xa7\xee+\x87\xfb:\xfeF\xf5\xf0\x1d\xb3\xe9\x9f\xeb\xdeP\xc34?!j\xfb\xeeI~\xc9l\x86W;\x17\xe0v\x81\xe6/`{}~\x16\xc0\x9b\xa1\xe9J\x01q6\xfbKp=H\xd3\x0f\x9f\x89z\xb6g4\x1f\xc9\x0b\xd4\xe9\xff\x81\xed\xf7\xdd\x93\xe3\xf6\xc7\xdb\x7f\xb7c\xbc\xfb\x87d\xc0\xed\x02\xad\x82\x05l\xb7\x0f\xd7\x01j\xd4\rH\x886\xfb\xb3\xd0y\xe1#\x8e\xe6\xef\xdb<\xff\xc5\x87\xdd\x1b\xeeS\xde_+]\x0b\x82\xe6\x06\xa0\x94\x7f~x\x86\xbe\xa6\xf9\xe1\xf3\xdd\x1b\xae\xaa\xea\xf2\xdee\x81\x15<\x17`\xe4\x98\xbeG\xf3\xfd\xf1\xeew\xd7\xa6rv\x03\x8f\xbe\xb9\xcb\n\xddd\xbe\x18\xdd\x0f\xfdB\xf3\xdd\xb7z\'\x9el\x9e\xd6\x9f\x15?\x89\xf5t\xd6\x8a\x0e\xac\xf0\xb34\x1f\x12\xbd#\xb73}\xfd\xa7\xdd\xf7\xaf\xf4uV\x884A\x1a\x85\xf7\xcfQ\xa7\x7f\xe7\xe5\x19o\xa6\xfdb\x02\xb9\xedw\x05\xf6L\x92\x86y\x1dm-*\xd4\xe9\xbf\xd1?\xb7\x0f\xdd\xbe\x7f\xfa1+\xa8\xe5\x8c\xc3\xac\x1f>O\xd3\xf9%\xb4\xd7?wI\xfcu\xf7\x83+\xeaz7}\xb2\xa9\xdeo\xd0\xf5\xf0;\x83g\x99I\xba~\xd2\x83\x00`\x83z\x9c\xae\xf3K\xee[\x83\xa7\x9d\xfe\xe1>+0AT\xd4\x8d\'B\xeda\xfa\xe2w\xaf\xfeBnhU\xc0Nu\xe6\xc0i\xda\xd8s.\xf2%\xff\xd10\x7f\xfa\x9e\xca\x7fR\xa4\xa9Y\x81\x10i\xfaj\xe8\x88jg})&\x7fr\x92\x89&\xa9\xb3\xffP\xfdg\xf7cm\xff\xc5,n\x92\x80\xe7\x9cs\xa5SI\x16\xb2\xa8\xeaLx.\xcc8\x98\x18\x1b:}*\xfa\x83\xaa?\x8b\xa8\xdbL\x02z+\xd0\x97\xd1\x7f\xf8kg}\xff\xdc\xb0\xd91\xc8\xda\n\xd8\xb7\xf8\xcf\x06z\xff\xb6\xc6\xf6\x88\xccM\x8b+x3\xfa\xed\x7f{\xff\x10\x12\x9a\xfb\x9be\xd2\x16W D\x7f>\xd1\x7fG{\xa0\'$\xcb{ \xb0\xafG\xa7\xe9{\xf7\xea\x14H\xc3Z\x9fI\xa3"\x18\n_\x8d\rY\xa5\x93\x06\x88`8\x9c\t&o\x81>\xe5\xdb\x06\xb3\xc1u\xba05R\xdf\'\xd1\x11\x8c\x14\xa8H\xde37\t&\xe6\xde\x05k"\xeb\x93#e\x03v\x88\xfc\xe8\xde\x02k\x03;\xb7H@s#\xa6H\xc3\xc3\x83\x04\xf6E\xd6\xfd\xd8\'\x93\xcf\x99 \x93f\xca\x91f\xa4\xc9\x94\x99\x18i\xcc\x04<\xbcs\x05\xb0\xb1\xcb\xfe\x05' if name == "apps/webauthn/res/icon_keeper.toif": return b'TOIf@\x00@\x00\xe6\x05\x00\x00\xdd\x92?h\x1bI\x14\xc6\xa78\xb8-\\l\x91B\xe5\x18r\xe0\xedN\xe5v#q.V\x90\xc2[n5^\xc7\x07R*\xcb\xa4\xb1\x9a!\n.,\x93\xe2d\xdc(\xc5\x9c\xad\xb8\x08\x9b\x14A\xeeT\x0cD\xe0\xc26W\x1c*\x05\x03a\xcf\x85\x11)\x0e\xb9\x147\xfbOZ\xafV\xd2(\x91\xcf\xdc\xbd!8\x9a\x9d\x99\xdf{\xdf\xf7\x01\xb0xe>\x17\x8a\xbb\x1f\x0fw\x8e>\x1d\xfd\xf6\xfa\xe7\x17\xcf\xf2k\xea\t\xf8\x97J\xdb~\xad~xy~|~\xfc\xee\xc9\xe1N\xf5k\xe5\xeb\xe1\xc6\xd1\xa7\xb7\x7f\xee\xbe\xc9|yh\xb6\xb2\xf9\xe2Y\xc0>\xdc\xb1o\x0b\xc5\xc4Z\xd3\xb6\x95\xdc\xc3\xd1\xd5\x93\xd7j0\xf7\xd6J\xa1h\xbe\xb7.\xad[\xf1\xef\xd2<\x18\xf7\xa0\xdf<\x94\x13\xea\xab\xca\x1f\x1e\xfd\xe8\x93y`]n\xad\xc4\xb9\xd93\xfd"\xbf\x16\xa9\xf0 >@\xeb6\xa2\xdbb\xea\xbc\xb2\xfa\x83\xb2\t \x80\xea\xab\xd5\xa7\xdav\xf6,\xbb\xaf_\x14\x0c\xbf\x03#\xf3y\xd9\xf8\xec\xf6\xbb\'\xe7\xc7o\xff6\x0f\xb6V\xcc\xf7\xabO\'\xd5\xc9\xee\x8b\x1e\xce\x02\x15\xf2k\xea\xe6Rs\x97\xdb}s~\xfc\xe1\xa5\xe7\xb6u9M\xdf\xd5\xa7\xfa\x85\xe8@\tr \xb4YZi\xeb\x85\xe2\x87\x97\xbb\x1f\xcd\xe2\xd6\x8a\xb6>\xc3\xa4/~\x07\xbe\x06\x93\x1a}{\xe97\xd9\xb3\xc3\x9dB\xd1\xba,\x14g\xcf\xa5\xad{.\x04\x1e(K\xf2@\xd9\xcc+\xfa\x8d\xc7\x9e=}\xd8\xebEv?P`\xfeY\xb9\xca\x08U\xbd\x17\xcd\xa2}\xab\xe4\xe6\x9dVO\xf4\x0b\xfd\xc6W@YN\x06\x95\xe1\x9b`\x1e\xbf\x19\xce\xad\xe2=\xdeM|\xbb\xe2%?g\nr&\xee\x19L\x8a\x0fg\xf3\x1b\xe1+6\xe9O\xd1\xd9\x15\xcex\xd5H|7\xb8\x0c\xdf\x9a\xc9o\xf9\n+\xd0\x01\xb3\x93Y\xf3\xce\x89\x8c\xc4\xf7L\x19<\xb0\xd1t\xbe\x1b8,\xba\x88\xef\xf6Y\x9b\xb6I\x0fOv\x90\xa1\x03\xbe0\x1fO\xe7\x9b\xd0\xd7\x95\xc6:\x12\xb9\x030\xb8\x99\xa3^\xea:\xb4A\x03u6\x84\xde\x95\x98N\x16\x94\xe1\x97Ft\x97&\xb2\xc5\x82l\xc7\xdd\x08\x13\x0f3T\x11\xafgH\x0fy.g\xfd\xaf=\x0c\xa0J\x86\xa3\x0e,$\xc5\xa7\xd3\xf8\x1b~~\xc6\x89o\x93`\xf22\xf7\x928\xe0\x15\xf1\xff,R\x89\xa7\xe18q\xe3\x0c\xd8X\x86_f\xe9|\x97z4\x83\xc7\xb2@\xbc\xf3\xf5\xd8\xa9\x12\t\xde\xa8\x87\xcc\x06\x05\xa0\n\x17\xe4\xf3t\xbe\xf7\x16\x00NBM+\x91\xcf\xe0\x8dN\xd8eG8f\xa1dw\xb3ko\n?Ho?\xdc\xeb\xf9t\x05&3\n\xb9\xb7\x1b\xa5\xbe\x0b\xe3y)Q\x19~\x05\xa4\xf3\xbd\x97\xe1\xe8\xad\n\x98\x9c\xde[Y\xd1\x976\xd2\xe8\x1a\xc4\x1d+3\x19~\x15\x8e\xf8\xf1\xd9\x80\x97\xef\xdchG\xf7\xbdl\x82$_\x13\xbb\xf6HqG\xdc)\x8d\xee\xecq)>J\xe3\xf7}\xed6F\xb3\xa8>\xbf\x9b\xa0\xdf\xf9]\xd6I\xdc\xf1FB\xb3yUCi\xfa\xf7|\x9e\x19\xcd\x1b\x9eM\xba\xdf\xf6\x13\xd6\t\x89\x03\xae\x92\xf8\x99*\x94\xe2\xe3\x88\xdf\x8f\xf1]\x7f\xfeq\x96\x00L\xe3\xfb\x19\x1d\xa5\xaf\x86\xe37\x04\x1f\xc9\xf0\xeb$\x8d\x7f\x07<\xe28Y\xd0\xf7\xb2}\x8f\x7f\xe5\xefEg\xbaP\x11\xbc+>\xfe^\x93\xe3\xd34\xfe\x10fDz\x95\xd1l%_i\x0b\xc5\x12\xc2\x82\x9e\xac\xc0/\x94\xa1\xf1\xecEz\xcc\xaf\x06K\xe7\xfb\xda\x82\x16\x0e~]\x87\xa7\x9b\xe1\xb4=\x94\r\xdd\xd5\xc4\xccu\xe2\xe5S\xc7w \xfeB\x9dH\xf1y:\xbf\xc1\xc6\xd3y\xab\xcc\x82\xf3\x06+\xb3\r.r\x0f\x9b\xf7\xde\xc9\xd1\x01\xbf\x9f\x8e:\x95\xe17A:\xbf\xcf\x04\x0b\xf1\xe14~\x9fe|\x05\xef\xa7j\xfa\xf2\xfd\x10\x1dE\xbfO\xb9\x14\x1fM\xe3\x8b\xe9\xa8\xe2+l\xc2\xa4\xb7\x13\x0b\x04j5X\xa2\x9f\xb9\xd5\xc2\xd3\xf9C\xe8\xa0\xa0\x03\xc8\x9a`:\xbb)T\xf7\x0e\x9d\xde\xeb\xd2\x812\xfc6\x99\xc5\xf7\x1c\x86,JY\x99y\xdd\x86\xfe\x82\x01\xef\x82Snc\x95\xf8\x1d\xf2\x0eK\xf6\xbe \x9f\xa5\xcf7\xe0e\xae\xc4\xdeR\xa0JT\x12\xdf\xc9\xd0\x1a\xbe\x9b\xd0\xa7%\xc7\xa7\xf3\xf8A\x16\xeb$G\x95\xe4\x8bP\x036i\xe1a\xaa7-,\xc3\xef0\x19~\xe4t\x17\xb6\x89#Tw\xc4\xdf\xee\x9cT\xb6\x89\x0c\xff\x8a/\xc0_`\xb9\xb8\xcc\x1e\x83\xdf\xa7-Tf\x1a\x90\xad\x12u\xf1\xf7\xf3]\xd2\xc65dB\xc8\xc1\xc2\xa5\x81\x16^\x9c\xdf\xa7\x1d\xd6\x04Uh!\x1d+\x18|g\xd9\xa4\x87f\xf1]r-\xbal\xb0*\xb4qN\xa8\xab \xb0\xe4\xca\x88iz\xb8\x0b;\xc2\xbfS^#\x15P"&\xc8Q\r\xa8\x04\xc0eQ\xfe\x01' + if name == "apps/webauthn/res/icon_kraken.toif": + return b'TOIf@\x00@\x00\x85\x02\x00\x00\xed\x921\xb6\x9a@\x14\x86\xc7\x8eF\x0f\xe5\x1c\xab\x81J\x9a\xc0\x94S\x12l\xe8\x1c\xd7\xf0\xb0\x0f\xeeA\x16\xa0\xee\x01\x16\x10\xb2\x06I\x1f\xd8\x83.@\xa8"\x18\xf2`f\xf0\xe1S\xe1\xe4\x84{;\xfd\xb9\xdf\xbd\xff\xfc\x00\x0c5\xd4\xbfT\x92\x05\xfd\xd9\t\x1b\xc45wEo\x89\x8but\x84\x9e\xa4\xbe\x14<\x82>6\xecx9mn;\xc4\xba\xec=\x1f-;\xd8\xa0\xe9-rm\x8bD\x9bH\xd6\xd3\xd8+\xb2nK~o\x9a\x11*\xcd\x1f\x7fk\xf2\xed~\xf6\xfb\x0eX\x07\xca\xe7\xe9\xe8g{\xcf\x1b\xdf"\x86\xfe\xa7\xe0*q\x1fe\x97}qat\xe7\x9b\xbf\xd9?\x9eE\xcf\xdb\xdcK\xea\x1d\xf4\xcd\xe3\xbe\xf3\xef\xd06\x8d\xd0{>\xbd\xd8 i\xb3\xc1+n\xafx`\xdd\xa6Ksz~\x15\xbd\xd8 \x04\xb7r\xa0\xd8\xe1+\xe9y\x93u3\x1e\xd3W\xd3\xf3\x9e\x9d\x1ar\x17tA_Ni&;B\xef\x93n\xf8\xcb\xa9\xb9\x17x\xafwE\xcf\x1bEL\xee-\x9au\xc9\xb7\x13\xa0\xd4\xae7\xba\xa4\xb3)\xbc\\\x9fv\xcd\xb7c0*\xf9\xda\xb8kz\xde0(\xf9v\xdc\x07\xdf\xdc^\xe9\xf2\xa6\x0fz\xde\x92ZdO\xef\x8b\x8f\xa2\xc2\xfd\xb0/>q\x01\x90\xbe\xf6E_N\xed\x04\x00\xe8\xf7\xc7\xbf$`\xae\x8d\xfb\xe4\xc3\x80\xd0\x06oB\xe2\x9a;\x9a\xdd\xf6\x8f\xac\xc9\x9a\xa6\xb744%[\xe2\xda\xb1\xf8_ml\xee\x05sc\xe8\x81\xa2$\x8b\xb8Ms\xd1\xf1\xaa\x01\x8a6i\xa2c\x1d(W\x11:\x88\xf6\xc4\x94\xdf\x8c\xa6\xd2\x1cT\xca\xdc\x8a&\xa3CU#~\xc5\x0b\xbdR\xd0\xe3\xdd\x14\xb9\xa7M@\xadd\x87\x9fl\xee\x00S\xa2;\x80Z\xd7\xf0^\x9a\xdf\xf9\xd9\xf2\xea\xe3\xd9\xb3\x13\xab\xc1\x06\x7f\x1b\xabA\x11\x9f2\x9e_w\xbfx\x81\x1d\xe7~\xc4j\xf8\x0c\xe0\x05\xab\x81\x1e\x9f4\x01\xdfj\xc1?p|.\x01\xd8\x18\xf8\x03\x7f\xe0\x0f\xfc\x81?\xf0{\xe0/Z\xf0\x7f\xd9\xe7\xfa/4\x03*\xfb\x1dq\xd9\xef\xa0\xc7j\xd0\x91\xd5h\x13V#;\xac\xc6\xdc\xe1\x05\xfb\x0b\xe0\nE\xcc\x8e)PX\x8d4gg\xcb\x1b~\x12\xeb\xf7\xec$Y4\xa9N\x96\x1d (s_s\xff(\xd2`\xbd\xaa!T\xa4\x81A\xdd\xfd\xfc\x0e\xd9\xb1\xc32\r\xbc\xaf\x7f\xaeS\xc9\xba\xdcPL/6\xf8B\xb3\xbfo?\x12kPD\xcf\xa5\xd3\xefI\x93W\xe8 \xf2\xab\xb6\xc3\x1b\x0c\xa0\xcf\xa7\xa3\xbe\'\xf4a\xc0\'\xb8V\n\xf4` \xf6y\xa8\xa1\xfe\xaf\xfa\r' if name == "apps/webauthn/res/icon_login.gov.toif": return b'TOIf@\x00@\x00\x82\x02\x00\x00\xed\xd2\xcf\x8b\x12a\x18\xc0\xf1\xe78\xd0e\x0eu\xeb\xa0A0\xdd\xf6\x12\xb8\xd0A\r\xc2\xa3{\xd8\x90NkF\x18l\xb1\x87\xa0\xbd\x14"\x12%\x14\x1e"\x83.\xb222\xb7f\xd9K\x12,\x8b.\x8et\xd1\x18\x02\x97\x04\x9d\x18\x11\x94\xf6\xe4\xec\x1e\x02\xdfVl\xd9Vg\xc6\xf7\xd5y\xdf\x81\xd8\xef\xf3\x07|\xde\x1f\x0f\xc0t\x1eo"\xf5\xb9RW\xea\xddY\xb3W\x91\xf5\xd9#\xe9\x99r$\xc9\x03^\xf1X\xa3\xdb\xc6\x9c\xba\x82\xe3\x9f\x9e\xc2\x17\x98\xado\xa6\xda\xdd6\x15\x7f4\xb3N\xe0\x0b\x92\xe8\xe4\xbe\xa4\xdb\xff\x82$\xd2\xf5e=\x92\xb4\xd6y \xd3\xe7\xf13ek\x7f\xc9K\xdf\x97t\x9b\xdf\xbfF\xdf\x97/\xfc\xff\xc8?\x08]\xf8n\xfa\xda\xeb\xe2Kw\xfc\xde\xba\x91E/\xd0\xa8\xe7\x9d\xd5\x12\xc7\xd2\xd7\xb8\xc1wt\xbe\x96Zc\xe7\x1bW\x90I\xea\'6~\xef\x10\x99\xb7[TX\xf8\xc3{\x16>j\xaa\xf4}\xed\x11\xb2\xec\xe87}\xbf\xf7\x18\xd9\xc4\xc0\x7f\xe3\xae\xaf\xa5\xdd}\xff\x93\xfd\xfb\xe8\xe6\xfe\xb5\xbb\xfd\xb0\x05\xbf[TX\xf8\xed\xae\x915\xe3\xd5\x1a\x8e\xee\x84\xaf\t\xc3\xe5\xa9\xb7\xdf\xc1\xd3\x9d\xf0O^\xe0\xd9\x94\xbf\xc2\xd2\x1f~\x99\xf4;\xef\xd9\xf9\x1a\x87Z\x93\xfe\xd1\x0fv\xfe\xcfK&\xeb\xd7\xda\xbe\xce\xca\xef\x87M|T\xba\xc1\xca\x1f\xbc3\xf3\xd5\'\xac|\xa3a\xe67wX\xf9\xe8\xaa\x99\xff\xeb\x98\x8d\xaf\t\xc8\xb4\xe3[l\xfc\xde:\xb2\xa8x\x87\x85\xdf\xdf\xb6\xf2Ki\x16\xfe\xc0\xb0\xf2\xd5\x1a\x0b\x7f\xb8l\xe5w.3\xd9\xbf\xaf\xbd\xc3\xfe\xb7\xc1\xd3\x81a\xdc5\xb2\x9d\xd5\xce\xcd\xa6\xda\\Q\xdf\x96\xd2\xc5\x87\x8b\xf9\x1e/\x8e\xff\xef\x1c\xc4\xf1v\xfelre\xb0I.\xd0\xf6#I;\xdf\x17\xa4\xeb\xe7t\x0e\xec\xcb\x884}\x7ft\x06\x0f