From 321d88e795fa8d753ee79a7ed45355645aaf90ee Mon Sep 17 00:00:00 2001
From: z3d <z3d@mail.i2p>
Date: Sun, 19 Sep 2010 03:20:43 +0000
Subject: [PATCH] I2PSnark: Add icons to relevant parts of the UI; rejigging of
 UI to minimise space wastage; create new snark directory in console/themes/
 .. snark dir will need to be ignored when router scans directory for theme
 dirs.

---
 .../org/klomp/snark/web/I2PSnarkServlet.java  |  40 +++++++++---------
 .../themes/console/images/snark_add.png       | Bin 3521 -> 0 bytes
 .../themes/console/images/snark_create.png    | Bin 1445 -> 0 bytes
 .../{snark_favicon.ico => snark/favicon.ico}  | Bin
 .../console/snark/images/arrow_refresh.png    | Bin 0 -> 631 bytes
 .../themes/console/snark/images/config.png    | Bin 0 -> 584 bytes
 .../themes/console/snark/images/create.png    | Bin 0 -> 570 bytes
 .../themes/console/snark/images/details.png   | Bin 0 -> 778 bytes
 .../themes/console/snark/images/eta.png       | Bin 0 -> 561 bytes
 .../console/{ => snark}/images/graytile.png   | Bin
 .../themes/console/{ => snark}/images/hat.png | Bin
 .../themes/console/snark/images/snark_add.png | Bin 0 -> 3562 bytes
 .../console/snark/images/snark_create.png     | Bin 0 -> 1087 bytes
 .../{ => snark}/images/snark_thead.png        | Bin
 .../console/{ => snark}/images/snarknav.png   | Bin
 .../{ => snark}/images/snarknav_on.png        | Bin
 .../themes/console/{ => snark}/snark.css      |   0
 17 files changed, 20 insertions(+), 20 deletions(-)
 delete mode 100644 installer/resources/themes/console/images/snark_add.png
 delete mode 100644 installer/resources/themes/console/images/snark_create.png
 rename installer/resources/themes/console/{snark_favicon.ico => snark/favicon.ico} (100%)
 create mode 100644 installer/resources/themes/console/snark/images/arrow_refresh.png
 create mode 100644 installer/resources/themes/console/snark/images/config.png
 create mode 100644 installer/resources/themes/console/snark/images/create.png
 create mode 100644 installer/resources/themes/console/snark/images/details.png
 create mode 100644 installer/resources/themes/console/snark/images/eta.png
 rename installer/resources/themes/console/{ => snark}/images/graytile.png (100%)
 rename installer/resources/themes/console/{ => snark}/images/hat.png (100%)
 create mode 100644 installer/resources/themes/console/snark/images/snark_add.png
 create mode 100644 installer/resources/themes/console/snark/images/snark_create.png
 rename installer/resources/themes/console/{ => snark}/images/snark_thead.png (100%)
 rename installer/resources/themes/console/{ => snark}/images/snarknav.png (100%)
 rename installer/resources/themes/console/{ => snark}/images/snarknav_on.png (100%)
 rename installer/resources/themes/console/{ => snark}/snark.css (100%)

diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
index cfe5c54571..3633f9a4ed 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
@@ -169,7 +169,7 @@ public class I2PSnarkServlet extends Default {
 
         PrintWriter out = resp.getWriter();
         out.write("<html>\n" +
-                  "<head><link rel=\"shortcut icon\" href=\"/themes/console/snark_favicon.ico\">\n" +
+                  "<head><link rel=\"shortcut icon\" href=\"/themes/console/snark/favicon.ico\">\n" +
                   "<title>");
         out.write(_("I2PSnark - Anonymous BitTorrent Client"));
         out.write("</title>\n");
@@ -190,7 +190,7 @@ public class I2PSnarkServlet extends Default {
             out.write("<div class=\"snarknavbar\"><a href=\"" + req.getRequestURI() + peerString + "\" title=\"");
             out.write(_("Refresh page"));
             out.write("\" class=\"snarkRefresh\">");
-            out.write(_("I2PSnark"));
+            out.write(_("<img border=\"0\" src=\"/themes/console/snark/images/arrow_refresh.png\"> I2PSnark"));
             out.write("</a> <a href=\"http://forum.i2p/viewforum.php?f=21\" class=\"snarkRefresh\" target=\"_blank\">");
             out.write(_("Forum"));
             out.write("</a>\n");
@@ -253,15 +253,15 @@ public class I2PSnarkServlet extends Default {
         out.write("</th>\n<th align=\"left\">");
         out.write(_("Torrent"));
         out.write("</th>\n<th align=\"center\">");
-        out.write(_("ETA"));
+        out.write(_("<img border=\"0\" src=\"/themes/console/snark/images/eta.png\" title=\"Estimated Download Time\">ETA"));
         out.write("</th>\n<th align=\"center\">");
-        out.write(_("RX"));
+        out.write(_("<img border=\"0\" src=\"/themes/console/images/inbound.png\" title=\"Data Downloaded\">RX"));
         out.write("</th>\n<th align=\"center\">");
-        out.write(_("TX"));
+        out.write(_("<img border=\"0\" src=\"/themes/console/images/outbound.png\" title=\"Data Uploaded\">TX"));
         out.write("</th>\n<th align=\"center\">");
-        out.write(_("RX Rate"));
+        out.write(_("<img border=\"0\" src=\"/themes/console/images/inbound.png\" title=\"Download Speed\">Rate"));
         out.write("</th>\n<th align=\"center\">");
-        out.write(_("TX Rate"));
+        out.write(_("<img border=\"0\" src=\"/themes/console/images/outbound.png\" title=\"Upload Speed\">Rate"));
         out.write("</th>\n");
     
         out.write("<th align=\"center\">");
@@ -745,10 +745,10 @@ public class I2PSnarkServlet extends Default {
                 if (e < 0)
                     continue;
                 baseURL = baseURL.substring(e + 1);
-                out.write("&nbsp;&raquo;&nbsp;<a href=\"" + baseURL + "details.php?dllist=1&filelist=1&info_hash=");
+                out.write("&nbsp;<a href=\"" + baseURL + "details.php?dllist=1&filelist=1&info_hash=");
                 out.write(TrackerClient.urlencode(snark.meta.getInfoHash()));
-                out.write("\" title=\"" + name + ' ' + _("Tracker") + "\">");
-                out.write(_("Details"));
+                out.write("\" title=\"" + name + ' ' + _("Tracker") + "\" target=\"_blank\">");
+                out.write(_("<img border=\"0\" src=\"/themes/console/snark/images/details.png\">"));
                 out.write("</a>");
                 break;
             }
@@ -924,13 +924,13 @@ public class I2PSnarkServlet extends Default {
         out.write("<input type=\"hidden\" name=\"nonce\" value=\"" + _nonce + "\" >\n");
         out.write("<input type=\"hidden\" name=\"action\" value=\"Add\" >\n");
         out.write("<div class=\"addtorrentsection\"><span class=\"snarkConfigTitle\">");
-        out.write(_("Add Torrent"));
+        out.write(_("<img border=\"0\" src=\"/themes/console/snark/images/add.png\">Add Torrent"));
         out.write("</span><hr>\n<table border=\"0\"><tr><td>");
         out.write(_("From URL"));
         out.write(":<td><input type=\"text\" name=\"newURL\" size=\"80\" value=\"" + newURL + "\" > \n");
         // not supporting from file at the moment, since the file name passed isn't always absolute (so it may not resolve)
-        //out.write("From file: <input type=\"file\" name=\"newFile\" size=\"50\" value=\"" + newFile + "\" /><br>\n");
-        out.write("<tr><td>&nbsp;<td><input type=\"submit\" value=\"");
+        //out.write("From file: <input type=\"file\" name=\"newFile\" size=\"50\" value=\"" + newFile + "\" /><br>");
+        out.write("<input type=\"submit\" value=\"");
         out.write(_("Add torrent"));
         out.write("\" name=\"foo\" ><br>\n");
         out.write("<tr><td>&nbsp;<td><span class=\"snarkAddInfo\">");
@@ -955,7 +955,7 @@ public class I2PSnarkServlet extends Default {
         out.write("<input type=\"hidden\" name=\"nonce\" value=\"" + _nonce + "\" >\n");
         out.write("<input type=\"hidden\" name=\"action\" value=\"Create\" >\n");
         out.write("<span class=\"snarkConfigTitle\">");
-        out.write(_("Create Torrent"));
+        out.write(_("<img border=\"0\" src=\"/themes/console/snark/images/create.png\">Create Torrent"));
         out.write("</span><hr>\n<table border=\"0\"><tr><td>");
         //out.write("From file: <input type=\"file\" name=\"newFile\" size=\"50\" value=\"" + newFile + "\" /><br>\n");
         out.write(_("Data to seed"));
@@ -979,12 +979,12 @@ public class I2PSnarkServlet extends Default {
             out.write("\t<option value=\"" + announceURL + "\">" + name + "</option>\n");
         }
         out.write("</select>\n");
-        out.write(_("or"));
-        out.write("<tr><td>&nbsp;<td><input type=\"text\" name=\"announceURLOther\" size=\"50\" value=\"http://\" " +
+        out.write(_("or&nbsp;"));
+        out.write("<input type=\"text\" name=\"announceURLOther\" size=\"50\" value=\"http://\" " +
                   "title=\"");
         out.write(_("Specify custom tracker announce URL"));
         out.write("\" > ");
-        out.write("<tr><td>&nbsp;<td><input type=\"submit\" value=\"");
+        out.write("<input type=\"submit\" value=\"");
         out.write(_("Create torrent"));
         out.write("\" name=\"foo\" ></table>\n");
         out.write("</form>\n</span></div>");        
@@ -1003,7 +1003,7 @@ public class I2PSnarkServlet extends Default {
         out.write("<input type=\"hidden\" name=\"nonce\" value=\"" + _nonce + "\" >\n");
         out.write("<input type=\"hidden\" name=\"action\" value=\"Save\" >\n");
         out.write("<span class=\"snarkConfigTitle\">");
-        out.write(_("Configuration"));
+        out.write(_("<img border=\"0\" src=\"/themes/console/snark/images/config.png\">Configuration"));
         out.write("</span><hr>\n");
         out.write("<table border=\"0\"><tr><td>");
         out.write(_("Data directory"));
@@ -1130,7 +1130,7 @@ public class I2PSnarkServlet extends Default {
     private void writeConfigLink(PrintWriter out) throws IOException {
         out.write("<div class=\"configsection\"><span class=\"snarkConfig\">\n");
         out.write("<span class=\"snarkConfigTitle\"><a href=\"configure\">");
-        out.write(_("Configuration"));
+        out.write(_("<img border=\"0\" src=\"/themes/console/snark/images/config.png\">Configuration"));
         out.write("</a></span></span></div>\n");
     }
 
@@ -1203,7 +1203,7 @@ public class I2PSnarkServlet extends Default {
         return buf.toString();
     }
 
-    private static final String HEADER = "<link href=\"/themes/console/snark.css\" rel=\"stylesheet\" type=\"text/css\" >";
+    private static final String HEADER = "<link href=\"/themes/console/snark/snark.css\" rel=\"stylesheet\" type=\"text/css\" >";
                                        
 
     private static final String TABLE_HEADER = "<table border=\"0\" class=\"snarkTorrents\" width=\"100%\" cellpadding=\"0 10px\">\n" +
diff --git a/installer/resources/themes/console/images/snark_add.png b/installer/resources/themes/console/images/snark_add.png
deleted file mode 100644
index e11574930b8d3c214644a006583a1c0edf4c787a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3521
zcmeAS@N?(olHy`uVBq!ia0y~yV8{hw4kiW$29;SAj0_A6oCO|{#S9F5he4R}c>anM
z1_s_@PZ!6KiaBrRzMORXnBej1w1No_HnwjG3fs1%H^p;WjAr;#?>L3^55Aveei9ti
zryV-&Y1bo<sH~lP93IV3ZmxD{h|%K^ywmdk(If?ire^u-UDbRE7y0Y|G4kDt+VPU<
zPydSp8|7pzt}SLhURClSqMuLZ^~J_yTdRUK?(BVE(ImGl;|@@|9#?Q|#p|Da`r<a#
zi6ysY2<%<@{hZ%yz1W?zo@i8hMyz{#A~oH}d!As|_QgN=56nKp%E9*N)!(NlAAerF
zd2w6Uo*>?WDQaeWW&G@7JUcYkOc1}+(2{T5G*O~}kEwCNy5gUocRzga<ly!6x%;;M
zKD7SQI!mt(`MR3ZIr8lHeM2HNo^`S`Fz7Y0Dy}vbb=X;xq_jZt&9naF_P6V{->&-e
zW?|whYrEE<iSOstZr`lmt-y8rdgF%#)@kP-G6(JqoF#1_U&A$pv0Ltvi!XPvPmb1W
z)8+$OsYk_GUh7?FlW$XSDd*=YUjFUJ&%5;rj?uNnR`CWWvzUL{P32!SF>k;1%(D{Z
z76wcai@9^YY+T68R^0OOu)BKvt`D!b?%s2}+_u_4h^<F$Gq2*ZNx#4IwDhi1*kuwO
zd4Fjl*Disk#5MJD7UvHAcRG46VE5+ZufNYPk+tsIo+clA*>8>Cjs^13V$UBv{_*P;
zpVLm;Sw<I}^A$KaB+D#{pYqM{nDXS)<u@l?C#&tW?sF`eR;apV_UG#5-+$R=hN|CP
z*VioZcR{_3%k&GEoU*ys_OZWL?wjIOu4${;s=zp@FgD>?uu6-9%*2--LjV3hcyUg=
z>2t=<oA2f9DnBT!TJTA;!&K3sfoD<8G)30rEw365?we%tm?N-1`21Jtp1Zq0_s=n!
zSCAv=_UNg?#sfU_Ph87a$(%eV_<HPf!+l$%vf{hv+;z=Xnx|Ab`)#H86`tcK1iP+C
zggc0ovnZLQ_1mmHyYmLqDW^B)?>SCA`*k+#$h00c_K0IU_6N-V+@GD~9dyuDr2Acy
z)Z62+%z<l~b}WyX-E%!MCvejo38g!d-aS`l*gi}0-ZkkylTvG`=C8i1A@?R5pVV<!
zF7VhYuB%v{cdO<98S5`*>CJS!<DT?1>x}(0hco8+Q^Jz{szYXqnue@z%_`S)xytZ<
zlA+V)uU2)sPCnD~FGpWoBX#ER;qZA5XUsZlmhO{Qke1pX$8}-CwU4PCt2GvF&<^Kr
z+naP&ul-*|*qzI>^(%~e8cmZTayMVT<a_zWmMoivxt6=W9g_3AVtSFML)u=V)LAFp
z(zQd|A*&&JXYL8fo;kc+dpNwMdAu9azV(*`+gsY_m7d|X+vRuF(yK}S|HtkHHD~R-
za$H#qT2m@kU)a4_X4&V`T2I*v(FL#9<xe?cELPU2u;AU3EUse-2K(yk{(SgY>$IwR
zXP3;|hd*Au&6k?mU6IV*R$-y5RJZ)tv<^xAkmrXMKJ72$idCLdR(M)O<JL^WfMV94
z**j#m>*>2szWM0r>*G@c!=6<9ea+sh#3FUROTzQobW^cYQ}W~jHyo@f4ZD0Y!1lte
z3tfGaWcu<V5?Gj$n>rn9j~x_uaE<Wex$$IP_7_`zyIKkRU%MV9M2hxZJ{a(Wr~J##
z#|7Kg#jOuE3_bJvh(MBFw~B)QwqFW7jyqDf-kMcu%GO`RqVwl3E8Du_e#yVDwZFeO
z^17sli+z34v2V`>FD0g(U+w6!>aSSvQ5%<*tnB>;$J8JH{Cf4r3U`O>K$i>);Wnn@
zC2~^}Oy-1JSBUnV`7X2l(H~aMk6SKhXFkl2<GGMo>gOiX=d*hC_Q17k55C-5Tb7f!
z__$!2XX%40iC4BR7qtvqd3~O+!xfI7mtTkL`tqL=yqS6{j_oM3TA10a+j2`km0M?(
z-`*9-XXv|kvPbc)S9`5$O_tBQ_28sa<uiw?K5}-ugTLl}ablIeEHU|mSWH6S#)K&?
z!nYfC%6zB^yO<yH@I=#0UI)qQqOvfV)BVlN=lfT3S-h5e&Qzl5GO<}Bp4VsImvcpr
zJ6>&AG^twaqUWABDygEKdpQl0&&9XZ_lH?;Q<hccPfI(oN;h_i!<qENw{!e*Hm6D)
zd;4kC+fN@vl7wU*b<Lcmo|0%TzCe-R&@$o&bBe&`$E)3&m-ef>NBj~y;W$NKc8Y02
z#Dkm7TQ#<qm*$={tnIiHy)@+XW0s>KhV7>Of?NXK(`Hm$eQM+R_uiN0t{YtQvrD5S
z?po#KoGx7XDJ@%R!_vnrGq<MwEYmwJ`19;*T|;)mzhCnjI2cl2GYLB7u`6B)lPMNf
z>Js>@F1-E`7t;x4fm63spHJ9ymo3TCG9+TfqPM@!hB>zcb)3?i>U2g{VA|Zn+XSv}
zxv~A)w7<5Vyl1W-oOD_5o7OZ(kyGn~w2$cD+r6*U{@o;AE$!*M6-7F{rY%ls-QLQv
zy*a|*_z#V(OMZMkGIP?6O_{4^$av;(8UA<O-niqIir|{pF*jXIkIa;2`l8jr)hhJ8
zYO$)=^2n9X=EyC2W3DZF|D0a-sp=_@o+)<8xSS}9_7gSVe&niMq3sdN^6gePx2{rt
zujv$$ZK5G?`ER&sl)}yWsjBOEb+UB>b$*D?`4OXfZpPfQZ)&PrOP;OlEDTWWQaW-b
z;PLaA#j0^z*%oc$+_YY-vg78*&#ddcr&?@_zL?6gzvfqgrDW{w%|{MSJt}r${wfUz
z9kXMMMK7!LW{K(sPH}44Dv%vMwJP_7*o%$=zyH79JzwfO?cytmhc{+7Jl?i6*_NsB
znq`-U#0;64bDzFi;}o-Q;i~&Lt_XQ6Oe^5|=J!T}&uDMm@*VfpRvp?{dquuhW(r^L
z8C!R|MNb=T{jUEvshF=PKl|=``ItGg?oJg*PF-N`Uuf1g!?X9Y%k762)4%km?ROV5
z<JS9svt)_p)gxQiKbtJPS$a?8OX0^;oy&h+escf%y(=nhu1Vhe)4wQ9le+XvW#5gf
zOnX(!BN!(ZDss=BruZg7{OGc+siAXZ0u1Bs*Vp_zeZOwg%EztY^WB;cR~6ZAWwVgt
zoWOnb{&e=(%Q3EDY=(Rnob%1TESq$*Y3C=w+&!PvPqUw0?XDv`@x_eq9^rPz0>X0V
z{U)4?74W^>;=m)*R$;()q^bD9-o>)lvNi9T=-u1%=eqs<b5C!!hWm0k)D^6(JXh%G
z)W&eAp?X1fW=b@t;b|7vf{#|KFPP2Slrtms#4_(_PQ^V-1?MIm7I64D=kteI@AB@y
zdUwg*ZPM1?KfkX(KK<~;2d6eZ*R)vY5+1<3wadA6he&kL{250URkaEzS<MqnlY4z&
zM#ka?LIM1Vyz}a-1AlIae)@36gvp<ce>N0E^-KG`{@DC`PKDAQgUNwf;$o9$a;$%R
z{cyF~60K$pFDCCruM_-sOrB;@syuO{J9kRy=e~@V6H>hwLmodnye%y;|3HAjX_?<r
zRsUWsisH{(a_iY_&t-4x1gvgpm;HEqeET_-l}SmaE)&z<o_1nX6FR_?Sb1<x$DHpT
z_QI2Rza2cd*Ez|55#w|f^>xc<S9u>l!tUhQ<~9HDXY=!G&xM(%XQbVW)3ereI<wq@
z)pNI+%0AhSN#CCAwqB&pX5{gChUwQrgXwI|$B&xKnAa4OnDOlLb@634@6>G04UL-X
zJ^5`@K*Y+(38F03?Jt{NO=(S99(ljDBfp?|gYuCZ?0x<I?_}-w^lx8rZsn}m?z`@(
zFFX0|mBV9pjpY1{8OP-R{ZQH^IJL%_Uwz7^3#q4@S@dpyRq8W(m>HRS*yQ{?yH%|T
zOWfWHGEDmTdyfB^?Ga`ZCGT-6ymjcb`KovI$)0C2N2GrXb4Qsn-0hIs;}`sP;vUl@
zwZXwMSL<#@JKs^Z_PO%ntMN{~(?%WT$K_`C7&ooodPMZ*kGfSGEsC8>#U}7S{JqZY
zy*0DB;~wjUY2`BBMZ0_zy6(KIUfp)Pm9^vO$4k2xroHzsR6b&TxM=#f72nQIaX$0C
zcllm3)mz&|ipsxbl-#;`AV~8_iZ{<kvvV6iM(=*tw>VE~hQcD&Se@(hY(I*ho~H3>
z8i!>?cGP8#meAL(2Sm5*uF5UDRkix)q2Ckv{(MXj>B*a)Wh*;T`RuEQWzsWib5iH_
zd9^>1Qhcy$Ww_k))!x><*VFy?|N8PRyp-wS1U6;f`F{d;E$ijw{37@ARJv@YvEX^F
z0}{$A6WS)8Kg_*-F=NKbnfCQxOJ*;e8nq?3&!|<U&C~KS%fh;!EKRK6#U6;Vd!OC5
zPPk21Cr#q~BI!<UzBi9%9}i2vI^)8-EwBH4T%A9^w&r`CfrQIr#)}qHwl&Uv#&%72
z$<~HqkvqJ%T|Z6EzqjX3QOzp7x3iSho?J8+ce!j=|HGxR`oP?TZw&_?a>QE{bafh?
z5a*ey#4;^y_LlN{OO>ZrF>#*p`Sj}Q`|m7DCRgWGR($+=^YQ18PYbMMZcdIYncwh1
zajtszH05OieKpm>c`tJf({He=SiU;8{r=vJJL;>l*2Jzjr}&}y|F4Y`_|xs;Z*ZS4
zb?q_TbJ&<Ym`OI+FJ@zc`ttAoa<(_LJ2t5QuXkHE?bAiuv;U+|B^gaFkoCMa&-!!g
z9j${ichvrR)EJYuVa4h#;xgTnCdM9n@GtW6(;E@(|FuK$_iFf1yFB}U?O5k`H|q9&
Q1_lNOPgg&ebxsLQ0GWxp@Bjb+

diff --git a/installer/resources/themes/console/images/snark_create.png b/installer/resources/themes/console/images/snark_create.png
deleted file mode 100644
index 2f41beb048d855e0bb41f0043e18d387045f3c14..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1445
zcmeAS@N?(olHy`uVBq!ia0y~yV8{hw4kiW$29;SAj0_A6oCO|{#S9F5he4R}c>anM
z1_st}PZ!6KiaBrZzV(j|l{xV7{@$1>&0Jm9D6U-gW>zMTX**wV3!BM{Z9bB@=<K9c
z*V^4PbkYoubx!_a;rnH3^}_nb_Z6o19j?4kQ4U;wV%jGK>Dg<h91mEayR?5EQ}!*V
z*I|C|ZJ*!y?5ntUq3-^gq8)qp3TVx-E0n7E?H5wb;P$Am0u$Xj94Ij9)Op8h&Ew0&
z>Tj)clCS>Ox;x9yC0+CQhqjWBj~8lrM@$kDuWA<;*Sb2dYoE#&L-XvIIp#G#&p!BD
z{p?uU{`4zh5BSWg3lh&QxKeRt%jSBSAN!8RY`s}op(vr@ZvTw+-G@^%4PDt5ubJ|A
zqWbe+`+lTW?_Ov3<L7nzm|Zn%7iSlqx3>BEMduc?hPi?&=ls|=ZYh_8r@1&){BC}|
zH{aIYG;nUUvf|CZclN8t&+9sVWZSu=*8d||7~AT~c;jrh?2KG?>dq3?-am=%)8F#`
z_d2>KzrQx#NHga5#*gRkzq<cBg(G*C?nD0jm1+0VLrQ`+owllTiFln|v~PA^%c<<O
z3+J=(N%>CnXwg5s=9JZJ>&w!czxysssN6Suk?rE=%eMaC&G)6HuWaSyWYaDm5BH#F
z$AS(jAKw_gHGB2St5y$Jeyse-UmDi`;a8P(;rCLxH)SQJYflx$ObuM2cinKNz#ZFp
zUzY7NTJ^?e%e2=We6@Z%)!*_q9(I4Ox5qvv_AviW`BiJ4OL}@;vA%Zk`TBjbB1fM*
z^}c&ga&pw<i&y)STkXpJ9JxDL|8AK~g!62x*qR^V&(}_LQrD@N`BujMSkj}nCto$L
zZolyKXt?_GG~Zm=(+3;!zGu7KoA>mc{Ng}EDb3$6?mo`nS9a=4#1h-{H@ix%Udsya
zUY+tdF!<VQ$thRGxYoS>_iL}+9>q$xwWqsZoQOG5o}N5)<MSB*>lgLj_mt<RuKjX(
zQuMmTI_i0SH-tWZu{ztWA^l|Y^K(%;VxE(t<nymuq^^7Hw!((lFn{W@Q=j)f&ozrS
znPqk0$rRUr_pbhJ+r4(}*%Tv59_!~fQzFauzq|HkpHaE3UCQJ7e)H|-)^qqg=Fau`
z6dJiC*+y=E;a|4pKH*E03r@Z1DrfPVd2ydiW3XMu{=Ng6+Yde9m?Jb@S!79xOi53F
zpS!Zoe4%5{I4U*%*45Y7@85Y%=5~jnPv>R9vcO+8`}XbIH+8D0qeu>)^x-KpWEGo@
zI6b%Dwzaj@<ybjcHYeEYfBj^4{Y{cPKfRpF`Toe6Gd#DxRPBAKe^dHx0l(Ahg+Vp(
zqKEg(ZFgRMDJJpT`rph88E$#E9ZuX9p1M*-@oRWi)8%JZI8r%f9lfV4EoC_yFzt@u
z7RQw>${7toitaZS<!mt1S+CcANb#G-)MA&;MK9JA8+oo=p}fI+<rZZFua!;88$4F_
zDI2)2oTa?Mb>%W;1DBPXls7o7+^1~d=-Hxt!QZn>Il#|zg7O6)&uPjw3t~R$Uv%}H
zqns1C>s3ri;G`EEB0)m0IJN{%dd(3MDD;-&OTeUe98&^<9&nfhTzbfHBsl0XM@sOe
zCmbxnLC-jr1YLU0;Sv<|lH*C>rB@s+fkAILR01!(<v0=$^qwOnVABH*mH?wi99hAe
z9&@Y;GJ4AKDsa;?4y{0=7aUmun_hBs1slEQI2E+%4F^|{(K`;Wz)kNtx&pEe33~aj
z6m{1yT-qkHaLSZhMJ-KJsv_n2M1KCiWcr+=Qse6)J3$|j|1%_>FV<M;^UCg0Y;<V%
zI`(GASf_N6?_c@Uq)J<OPF-VO`_}jE?^+Wb<3OoJHs6kHG!i^qZJk+eo7c`NxI=l}
g4&`~6=pVDo;pK)?(hk=%FfcH9y85}Sb4q9e041rqm;e9(

diff --git a/installer/resources/themes/console/snark_favicon.ico b/installer/resources/themes/console/snark/favicon.ico
similarity index 100%
rename from installer/resources/themes/console/snark_favicon.ico
rename to installer/resources/themes/console/snark/favicon.ico
diff --git a/installer/resources/themes/console/snark/images/arrow_refresh.png b/installer/resources/themes/console/snark/images/arrow_refresh.png
new file mode 100644
index 0000000000000000000000000000000000000000..26b8dff1b53bd996a6110e7dbcfc7f61cfbc7497
GIT binary patch
literal 631
zcmeAS@N?(olHy`uVBq!ia0y~yVBlw9U=ZYBV_;xl;`+9bfq{Xuz$3Dlfr0NZ2s0kf
zUy;JVz@+Kv;uumfr+2ciN2sI7@p|Jn&&IBc?1G|A8M#7AS`)k`-kPCzCOc3_<%{B_
zMf@69=6v^&U*frI#gU#jtezs7lIuPRMqE2&a!`X?B_pwW$^s3ScbR*_m236x<-B`n
z|NZ-X<L7f4S-pEQg@WgA4v5cL`Ex<Wm3!eUCZ0X9G3rTxHIK!LrO6$a7x&DH6A`;S
zsr6Nc!`>Tw>p~x`eQ_s!*AuNm{!;;ucTeasFu8JeW`;b^(*>`s0{`AlIJxHTl&$Y{
z)Ykp)G0I)KVXNTXutvQKooB&|*t<Jb7VnOFaGLAMA#eNMEu2d<dT#IWmn^>Fz0s<I
zdHWYBo0HA6!u%&YL<*Gd<uW=pb6-qf-9FAa)~8bHd-ayt28#0?dg1oul%UFluTf1M
z66!MEtw&{YKmFr>SD*F%kM-T)(kc}(iLHqz`1hqoRcIaTzPqGzMuO*@FZ(BJZd-qP
z|L?y2laiXg_KVm@d^<jGPtk?;<3`C%cl&SFO)y$jcsXbGq_-h^&dz@wAF@nsli!(@
zUWRkoFC5;vZ^q5lQ#0SVamgJl(7Ll`2LIi2QynhGUinyF=8zTOy!_!|sT&_9KfS)X
zrkLqhn7GaD<~h3IS3}ndag;8|>VB~N+uBFzdO5~1ww=|N0-q(luiu<2&-z?{;l1e!
z+0_@1p55`#t7JQ~aqouPn||{aeVAjU{%ens>wW(>1@|{AYrIzcs<>*efT_TtSW_lj
s>$i&wlC|F0A5OR@X83er>#z8YU(Zgq>zKcZfq{X+)78&qol`;+0CCqUtN;K2

literal 0
HcmV?d00001

diff --git a/installer/resources/themes/console/snark/images/config.png b/installer/resources/themes/console/snark/images/config.png
new file mode 100644
index 0000000000000000000000000000000000000000..565a9330e0a156dff5bed2c9fad8c95a44344ba4
GIT binary patch
literal 584
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R
zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGf$^57i(`nz>8X=<X9ow$
z9RFNz;i1XrCo3CUD&nZax3sxqa{1&-S!aJI%2g#NCCPD^U3<lPRBbJ1U~*nul8Hc)
zQ7UI+j%15M#ZvkD@D{FG6<NOLN1y-xJ@38cai)l6TT86gs!Tqar!>*v(Z?Mh|KAI-
znChj;<kxms@$ttQ878MXSy<lju`#<X7W`Q=ufU?ls4+q(ZN}B;wPLGQO*^|a!Jy;*
z`{U0)O9rzZ`SiYSzyH=KRS~XQE*7R;%QC-I+1|<f{*h^-$CIXrd#_8ZOr&_bjw-b}
zH5TpkSsHZkWl0%-d;HxH^_kMT8*{F_E}eB&EiHca)eEI_gI2a2emLVsj@eU%J*Ba!
z*ST(**5%w=bT@DE>8Bs6_Es-TU72;`?YDJTvqJgWc4QtZe|TH0rj~Kmp&uuO<ocg4
zKmBx;{h7D_R5q{Kv{`LKgS`BK-@h+Za7my3Q#Ai~O^DzB2dY!wXqn7E+^&$*eZg8i
zM0i3R%j=ud-MMXcFWa<NslaU&+k>?|<!=@oSF9Ahc0S|y-6^eCQh#h>blv#pnc0(f
zoHD{cxbDonzHF~B_r&gi>6_nqU43IUMcz5aCH#5Z`A-*hY;5kEH2>nBCg=D@Xw95?
socH)I?)(tjBy_r%Y5pupv)l6bCjNN&?mEkK1_lNOPgg&ebxsLQ02NXT(*OVf

literal 0
HcmV?d00001

diff --git a/installer/resources/themes/console/snark/images/create.png b/installer/resources/themes/console/snark/images/create.png
new file mode 100644
index 0000000000000000000000000000000000000000..44ccbf812879c42cb1f9587d865bcfc337ce6361
GIT binary patch
literal 570
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R
zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGf$@x|i(`nz>8X<rdMhPL
z9NQl(az!zzBsFsBVWHDPii*27tk8VbWOdE=%{)oh>9OCow7s|(?eTm8-@K@msU3G6
zm%UgJa_rPLogM$UO>29M+dtgQSG(2S_w*sV{^yU?_olZiGMot3NIz%zG$(KA{o4$g
z_s&Js&q!Z<>gDY=L+{I%L#noZN;%MM@qKb<lhRq4mD9TeRF11hZM_>b(c4!4!581K
zy<U#L_cE^i$~w1OV}-@dh4<Bu`7+<wsedCZaAKVE-X{zHo_(Cs@4k3bPgtqw++R#j
z<QGrqKY8u}pNjjo%Mpi8)-lamw($1bM~||(UVW8HY5bF9;lsS*%cRAjs|C7`2CTon
zaFy1qvudk$2WHgUIsJ3fIDFZ>VQR|qM<J>cJrw5pEsoGx6r=YzBfatD{L-KE3iaeC
z>0aipm}j2Sf4td2p`pTt@2O3f^~E;pM5dzF8@}E(Q|{)O|EaUr5$oPpIy-ky`kv$>
zXFG+N`xsBA2(>yLoKR~gZ_(HMZ*J%NnHn!XpJkLxta-uN;i7cn`Dfct%065(|D8IR
zAh0urPj5PR-1_bAax5oPj54<0F0h)*(dy)U@;`IdRw=KglLBuTY!VdUYd8P8d2QJ1
d3!Bc_2k>m(%FnpIjDdlH!PC{xWt~$(69Dqb15N+{

literal 0
HcmV?d00001

diff --git a/installer/resources/themes/console/snark/images/details.png b/installer/resources/themes/console/snark/images/details.png
new file mode 100644
index 0000000000000000000000000000000000000000..12cd1aef900803abba99b26920337ec01ad5c267
GIT binary patch
literal 778
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R
zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfoYDXi(`nz>7|oTXI}}I
zIci_-vnIty&5&zmr&<5S6&e`}JA-sMj`}JFS%)|-(u*mXnkyRfQ=Ws%E^Ob1r6sf0
zwMNaF(spi<^vq)hSC5$VUz9LDsq**io%egczjpGd*&=OwT0h=S#^Sj|=+oMe&(9Q#
zOHFhS%7%;kg{|FU!K<;5<KeRMhvy#L^q1TBD?hIE!_lb|d$tyBR9<*;-ZnR>YwH*j
z6pMI7=M~gfRkAJqyYut>)cZ^_`{ta#;gKhED@^?U-Kg_d<}BSI@UVH(ifCu8jeUnU
z8!_A4$1H0L-pSp*S-at$_jha8I~NwN{dncuw5p<H)j7i7wwN|*)%TrEPHKxi`Sp)+
z{Ilh|TQf~+X6-Kf63FAw^!jzig)4n2%!gZ_-#DRk)#3ed&#K+Q9l|+RC(YNnxX;k>
z`n9$xZkN~vm^a*;f8+YSGZBTHf{snc*^l=h7EWnb-;lKN+$Is%p7VM|3Hj2;ZV78^
z-Z-(%?CSM^8JZ9GxbIn@c%giQFl(FpvWo%?&V_js*Ih}w;=Xn@-zqWQuHX&pygtkm
znDXaw<-fHSdrB)lS`=DnuVCDh&dN}imABKWc#qg(LlcdI)p2S|DhgQyn<9ih@>gt%
zI5xvzE7yj1*AnU`ZSyVUV4PEwQg3Z-pR*`0R`;*_Hw7gNL8~Ys9^SvaFV<dF3tMzs
zng3M$^2xm`=dJVoGj0Bp-|_B0zuk*pVG+XI_37d_-Ja=Ul~eS6q<8#{nz+lqe)`3t
zr^lYhzw0Z{Tl4(j<H)r6(>e7vEZo?a8$C->U$^jmd;B!Rt;>s;@2A{fRrG!1Yso8d
zKJUHM_}_S6-czT$z$SKu!H?e>!aoo77;gM`=fKQ2^?8g7p0C!<46T>pRp*>4W|GjO
o$z;x3^t`{Z_`m(K@{8On?3=11w<+#qU|?YIboFyt=akR{07JHBGXMYp

literal 0
HcmV?d00001

diff --git a/installer/resources/themes/console/snark/images/eta.png b/installer/resources/themes/console/snark/images/eta.png
new file mode 100644
index 0000000000000000000000000000000000000000..f4c3f99d90440da920da4cce9ad8b5a21e0bdc59
GIT binary patch
literal 561
zcmeAS@N?(olHy`uVBq!ia0y~yVBi5^4mJh`hOp9@=L`%CoCO|{#S9F5he4R}c>anM
z1_s8*o-U3d6?0+(eY1rFMQlGC&E$M*v2aFPfLE&?kH~IAt{{P3Q!j08Qb=34-;rmE
zzzXZ>@0g?hJ9d@@HwSPX6<fO2SGBEUaiP)A8T~%O>Cbx0O+-H)sJ&Be@%~=%eNlsB
zWrfja?wxsN{q@}4f79<R`h2+aX4~g`IkQr8<E!IbF7}r=m0XFt7PLqwukM!B-g|d)
zqn4#@GGOtJnPBTVaZ=god&Ru9OFNdg3514Ce)Z1tY0AR5wcGzr{68b>47Y%h;vrc>
zxoV}=pSIk)$bUbvzO%6XxpcmCxPAC*EBTKxoJ)DxVuS?z+%3N!y0gLlimJzT5sk`g
z*<aq(|Nn6Ii(6e|jnw0bmlRu8YIN>Uc+e`5bWI@ryUXj<I}^6&o;zT6-o8Qk%!PtN
zq5BI~dk1nJv=vXE?z%el?-RS1%6BDroU~Xbx!5l9<K>H6CcsuO<3{c`zf{*Km87X#
zr0a90Jp0IhZNs)#2gFLZ^v_^>+xmJ(mQTX#6vfv64s)FLe|^Jod==wjnYWI6nr~Zg
zp0U@ck#la?W;ul$T}KL!<g<R@Hoc;^@6c;!?rWFcA3d9(<{EfXX|}iW-RX*~F4eIm
zPm^orSRFWckD*!gQP2Lh(>Lm<O{nnTUsXKgb=rhX-=t5xrIi9ZEw2A%+K_O)Ni<fn
Rl7WGN!PC{xWt~$(69B79{>A_R

literal 0
HcmV?d00001

diff --git a/installer/resources/themes/console/images/graytile.png b/installer/resources/themes/console/snark/images/graytile.png
similarity index 100%
rename from installer/resources/themes/console/images/graytile.png
rename to installer/resources/themes/console/snark/images/graytile.png
diff --git a/installer/resources/themes/console/images/hat.png b/installer/resources/themes/console/snark/images/hat.png
similarity index 100%
rename from installer/resources/themes/console/images/hat.png
rename to installer/resources/themes/console/snark/images/hat.png
diff --git a/installer/resources/themes/console/snark/images/snark_add.png b/installer/resources/themes/console/snark/images/snark_add.png
new file mode 100644
index 0000000000000000000000000000000000000000..f02fe118c860535d700c098325c2f3008c9f6de0
GIT binary patch
literal 3562
zcmeAS@N?(olHy`uVBq!ia0y~yU<e0c4mJh`hQbp!a~K#HI14-?iy0XB4ude`@%$Aj
z3=F(;JY5_^D(1YM<6R)*E_wXF?fSX3UPVhL{E$`OCL%N4a)C&|oCjijevH>!tXJN#
zm{`23sLd#SQp`%G`9%vRF|(?O2Fp09ZsXyr^EkwBtMj&6?rzEVJ?ZINFTL~H-1c|3
zo3*ud|GWD&f4^RjKQA#OYt_nSvyh4Zl@s@HZ<wz4;0dSflO0?^$y|{^f8Xkf)}K87
z|G?bYmSXt}irT9=)2DO1Sl#8cswH9N0;$l=2|A(OX{8H;4m+)F%Rh5wQJBfkphIuj
z`9EC0t-WLW#!kJ|>(&AHb{j98P~5z`<7k%W*1ErIjh9c4ul>j*rWHD)jn6ss;>Or5
zyJT~&yuNW`W%BC4<9@4K-=+!QeycXikA2$fCL^}l85t{|nLfI(di9R2)52>vP2s-d
zdM5nzl28ABwmui{KY#Ag!E@_cuDvU}SeRQP>;CTe$CLhCY;&9Sr*Xe1lYI5ojQuui
zxp=^j_|q#6KFThb!yo?g?DtPAf~OTVR&y?|k2dx`eMIF(rpZIAlKaPJEn}?xXLIfP
z{uU=)i3<y~)U1}W?l{9(`Zhazu6|u*$I<)Sr!3z0z;#ZPSxN5AOENY$b7eTztkQT<
zqO;*#vccjOz3rKqcV#wR&UH#`SSPxE&g$Cyp8~5l<Y&6qI<h`#SI}!evbM)aW_8#>
zYoiyd+M;%<)G&12vGR^`d>5}RwovoV`fb)flD_JhN$=iZRa#=<vvKoT@kq{h?YVh7
zxgMT#GQRgDdYydf-Ah(QI~bxLJ!9RTnV49{c7Oj5UlEhosHF_6wX{qeXGbq&SSsYY
z?!CyY6}h&P3S#SmB|huSJK4IPd-{QB#>c;fum3%G@%rj;%LA?KJ*$&uRs6eQ$QOE`
z$-Qg6cUThp$CH1WBfjmtBy>S?^Rf6BiX~6%%oj4GZP45QTPBig&Hw24oND1e4}DdQ
z-obK0X#?X4hF2-YXF}c;IF}!Y;4n<wxGy__`NgF_t1m77bJvMSC%N!ON6kBj*P&Im
z$5=G}-}W^=aO&;E_e*nxF7k%yU379X?C3b?+tBM=-&OKt+U#uy=bccvp~+|V=7W%X
z>nYo<*WG{aYPGd8;GFjBH_w}MYQZ}X@&4LW!ai-o4Tfy_?ba*9w5Qa!U*pet(IL3`
z!4@^iT)%=?DdnkBQ@{2cd!%?H_?dK3r<hRYu?V?^$7NNLZtp#8c=vzE--kz3=TvIv
zT4nuG2ox(!TXp59WS)hBdH9AP`-IY8St&cF7k*+1ymGx#I9BYWj;mro#|-%Z2NNdW
zHJ@`^>a%L1Pj8z(EAP0qMcPE$gvS>dlTS)mER~Pl)w8pRb=Rr&3s=OY`G(f569^Pr
zZxgrkkLx?<CtLGuBM#qxfA8qtwY~zY9@$I_(>TGtz3?&r;!TpA?^Neh{k?hX&2Ib1
ze|+ccb}MKrC~*0|FfD%N&g9c4+GO`XT)w_#cfZ+_sx)@7a&D%a`4?x-c=q$<(fr3(
z&e*JYeW*|~=eX<iTbI6exTc(pnYnsF(K+8a=f9r5TB?&{CcQyM+BKH>byv=;%{SDZ
z?LJ=k(6@Wy{M?>|lg@{y8gq61Tjyx{=birigUhZwKjgGvVq(#bjbXW&VOwlPi@rwW
zSj7m(TdvjOs$es%DSMq=v#h4}z@=*0g{RLeKYN{1@8`Vi)6b(_M;tF}=u7du|2)60
z=D_53DJebuW6@n+8yuw?HvWIiqO$t&ulNaXxte$)Wpa4*3T1Vs@M>s%UdS_T#@7wG
z>XFP>cbf#B-mq(roXqBebgiukTBZS8H&k5v@$Pl`tNDCSmD-xBh19#-R_c~l6c@cd
z-2dD6?uV)=jR`Zq+*LihyL*wd$mQ3M1s>YnFsaNpD3-h3zweR5j^j`No2+hJx3J5o
zLv!)sW^3-EJ5Q!vzPH67cvV8(G9C4uOCOyz=U~3{m_f_Rj#b~j+Gtzx7M99c3~O$r
ztzbKM)<%7PctMQ%t`Il(=@MR>uk`=>s{1P8bl#%VN1mjKSDkE9{bljY>-E*SdfOjQ
zvpD#O@nehBKIhM;|D57pUhwnI&Wu%VQ88ye1$pM*Y`kcvIQ`DExfZrX!gH_Bi9GnU
zRs4q~vv>bHDPNVkh#$hAPfzZc`twquZq3y_{lDk(zN@Zu-|<)8qK-9YU$fr1gVr`1
zpQ`B1VTg)e9g!=~a`D8%866oy#R<%l?$sto%IBQuaeMx$!Z6RDOKX<oJAHq_k~YN%
zsbgn_bP@w41rCZOE?ilW=k_aE>g;aT*uoDt8E@V_;BB^{O2KR~zfzEx;DH<A=M?TO
zd7O}JuDK@dkoxcC1(R=A9Z-^f^WaQXQN-KUWbNOoLRmTmhb^w8CO-Yu)LWi#u+C(b
z^=TGq`}jLazZ+9GW~c0E-;gS^$*oP=sk5=y|7^vZUkzW+Ur65g?%+YC9c6B-JsN!d
zYt&5Q9yuT0s%xLtQ?65JFMV3lB|%V@`Mrf(a6;sk%Z<8a0yl2#T>Sb=R?N<AAAj8W
zAv0sY?uHi^vK~+U=BW12RZO<;)3L;jFJCBIL@qke{#f<cBvEg(Y?sR>ofEicCLE41
zli70A*~&$1+NZ}4w=!?ocuhFxyRejPu*a0Ihf4Sr&22<t<R)(sJu7Wua_jCA)_2NJ
zPD!c!s8-E8r_lYD+w9rx$qA84a`z4!zbOvbyS>e8+WH6ocGVR4b)`0+^*VN<_R(3B
zcU%IITk2<o+)BF1u;Js69r`z(7)CBi-tc7MU8axg-|jHn-_H2*@H|JSf|ygM{`gk~
zbf0~*=K{CcwJIf7_MYsjw2U2dGUqa{`}g~!bHujC2cJEitvPL>cHp`CeHOyo%IB_F
zA$lrMH8W)CJU$&>Gd6>s<cW9gy-tqI%8>cYT39c4*~0eyg@V`CXZ_Dis$6>W&4X*s
z?``=fK2=xQ_5RV*i3=7f{a$jcKG-B?j(zX+XY*e3?ld}ZD!t(FTOH0l>-*m_o8^7o
z7x82IlI`*}8PBpacF3G~uX}o5kdA1AgqF@}PT@y=k56n#nEmdq?w_{@_kVbFrkMFa
zm3nEcxc2Vs9hYl(+Vd|jOmfq2eXb?M>^f2V!_2E&7F9$mm3S6=9gY5Y{{1P*u78XY
zoc1>_<a6-ye)qn!e_zV{KO6GO?`3Ss>G*fnWRFWnnubQ`p3-(_z07-G7M@6(c_(T2
zAGeYyv2xva`(hohZ{2w9-l1h%rKcqxzV~pgVv*y$+qQwPFZ`LN^mgLJBl}ccj|*>q
zDZBjhZG|)TZ(3}(9C>}sPHx&okHUApYxaFN>bqWf@m_((+Dm;sL5UxoN~8L6P9^=>
z@-%o++~Z>}PsNl>syK0#d0LyEbIF{(`$9)z=2n!hy8Y0+!*%WA<#U(RX1)2Xr^>M@
zZtJYhw`I(m&!0cA>pIIu*BzP+yI;TFVgJSD>51kJ>4^QiI)3tth)fT;Fg<p|s_)#9
z-~LAQ{*U}pQF--Z<-x-&@eF3!5z>6Ulc#X7-+rcgJ#Fu!?hOG;=WWfbiQU2T>bJ(l
zBAI%v_#E!Gw~JI3$<LUp{Wx%U>&@=s8P$nw-{0MvW}Io3F*o|%?Zq1;Pjlq5N+-2_
zv0~ffSj?C{oo7e>r@Z%G8+2J_OH8~Np+5c1o+Ue;+U0dv>U*D)`f)e5;`5&eeop$5
z7g^%hrZ{O<hU!VHnQfQavHiD;pTAu8ln)>LUkAwEWD47L;P&hY`Io(ClxsDfh`qbB
zrz7|zQ+gxop9mANywn!ILt(ygtaF+9793OTR<U>+P%nM-vESkUt~H-)wr>dfcrBnf
zRoY7QeDs9Zw>Mba=$$Cfck=7cI|VTl*j_I?u;{q4f?w2*Mz-}`4Qs2^qs<?7g_Yd7
zpW5lX*6q8-E9MrFdp9$ER(^i>&fI*%w}U%gP5*!Rd}P9Aw>aicVSVzdH|_~$mlx`P
z77hKlr}ajAvkhaupnIL(qWOWVCN4eMFq>_*gu)N)<Wro-6y$zMPy2aTmc>kB;aACZ
zew#kEO80meA5`M}s>!T9<^SiMkqLh{{=b~Dw(u#_^kehRpJnlmJQWowe`50Al*)g0
z+mDMb*&MBN$}+`+FNlA4k8_sMy-tQ-D!V2p{I2XcJR?S?{nPfC1^J6+v-w})c<WhU
zbl3S^!S7v79|D*5+&RP`IN@vI^kNCwozV#j=Cbt}+LNx9ZhvVXC;!&*vZwTq*Cq8W
zH#s=p6}~#5d)@VQF|(^i8`tfkk1xO38?K%npr&@p%ki9C$Ifk=l9~dTf-fF^IqUBN
zS<{2IezKM^6X(^iE?+;@yH&gI?y=<GoiQygzXE)&cKkGDw$hT>;Aj%!DX4qPb$aDY
z=AUYPAuYG-PdDm+xn=dv|H%Id({I<`TDIz_z1?S@rLS)Atb6Nm{lSfOJ~^B3iAeY)
zomhS#b>6m^1J278<M|ACvpfnjNxgOP?-Ru^cdvr};K=uTWp|lf-1IEs>G|HY?^~B$
z*4?thH7HK#?v;RbB7rLlx=l-7%wh`t9JhDVO67x6tjzu~+{@#wnWLUh+w-`nI`lyP
z`K|2{zg^|NzFZ#jfGc;=KEwW*{T!~nmm`aId^NKcD~rm_=_o%O^Pg3%bzy)>z^YjS
z?-OnE%oD{mxOVlu%i>;j^a5k`bH;1ypM_4Zn>B+W@JZy#InBz)cj}9te49E^zxe4I
zMrV_|FMp=Z{m`medarixXVYtHi<rH$lOCjb{`tRi!iKxyl~+zQ22Z>rmVbTC=ZJ4s
t|KGmSUE}9+!}MxMurCVnfB7$c+hgY!c>nrzhJk^B!PC{xWt~$(698l8_v!!u

literal 0
HcmV?d00001

diff --git a/installer/resources/themes/console/snark/images/snark_create.png b/installer/resources/themes/console/snark/images/snark_create.png
new file mode 100644
index 0000000000000000000000000000000000000000..1e767b9b2210b179316c02a86627570cd3d44bd6
GIT binary patch
literal 1087
zcmeAS@N?(olHy`uVBq!ia0y~yU<e0c4mJh`hQbp!a~K#HI14-?iy0XB4ude`@%$Aj
z3=GU4JzX3_D(1YMW1kW1C~@HZ-j*B7G<h#67H;766WS!gZhq8prJLuHPK%e5T&+B(
zb6r~dZmEd6AX5;F;)R8m77B>yZ1G<CC?i`oi`&)X)`dUSb@#KCR{AFU#=rZ|Z})CT
zxuX33n0vc-e;0Bxk?M6@d@;ksCNc8JSu1u)1IHzqQ%}yVV!k5pB$zN`vdN4#$5jDr
z4zHv;*aPHSx5=-KW0CJ@_p1^LklrgTAa>++*m72jYpk_y8PC*p6i%~mio1FwDaW~{
zX-E4d>0e)OrA~}#O*Y<YmY*ztHvYlSYg!Yt6*M`%GM&o1bzW)ug9^4s;zt@o6|)15
zWj@!|QP95o>BqyDkELDs+zr<5S;FunHm`DzOJ38BDWwjF0_q*L^;Hi9yF352IUUo&
zvSeq(a|Q0>>%WK^EqcE3+=U#eQod=T{vWgXjhg~B^aIX&xxINA(Q31Od5VRy#^l{=
ziYGDc_!ZASQ-9%~plF|*h8+9XdzLUQaZ{X@$YS68>22n@{l&$_aZ)=u`8jHNxLdT#
z?kc^j@4dHj<;veTbGA)6nKJLf$$$ihXGbr8la-h6Z@h8p)TyqmTegH;ZR$_j^83)q
zlP4o=<m%Z&i}Ul(=V?zreeK${YZ*FXvkSExCuUZ=pMLytMs02Fk@w#x&zmQ=`|R5?
z=|+cysQw4ex8izrb#!WY*_!7oPxM%{d-v@XVXK#fXbE06;az{d+FGjj-I;Ue^sHyD
z$(WP5ay9GrXJ>wMM144EvB`5WtNHPbvIe?8Ec){Fw+X!|+S%6L*0$;M=g-o9`_#`{
z>?^<R^Woh)J<sKr-SnnQd#X*AUvR#B`TgncR+|j(Y3vBlkXRYgm6MkzblAW~z%!Jk
z{LMP&*bhgJ99ety>eY3>wER>L=IYn~Z{|3n<YK?>iPORfvdzuSKN}kxA8y>Zv0tPp
zfvNX*>TQAdib4g2pI4bQW!~)x2{Jfqz4sL7vRdg_&4W7g0t4I(R<k=y5jgYdrPNE-
z&2=T7SqIlVRl3CW%u!EiX+qo+rAwU8JoS{OCfs|Xbcy3xpk9&7hkyU}-PM?t5cgE6
zo<+RdRgv|xj<{fy!TTb?MAmKvalxPs8byK+S-Mrk1-&+86bUA>bZdwUI&D}{B>0ZC
zTSxq1)P@&Df_bc`6~rF~ZO|zae8+NHMf{=HhMXe7JeJcM;t!oRtSJ(F)|5J}+dx!j
zcTCI71koo-J}j%1#24yCsO~(`+2niKM@@*+oprUEc&3&_LCl7(B0;UD(5c-eF&j=5
zP3+^kR{zKEgwzq<j-xep_xJDH7ngs0|7R{okKf8JvmWT%mMiGYKOfH7ez-qET}4{s
shkA?HZN;ic^#vC*z`4)Tct2yqw3!~a3z&8>FfcH9y85}Sb4q9e0H~zoZ2$lO

literal 0
HcmV?d00001

diff --git a/installer/resources/themes/console/images/snark_thead.png b/installer/resources/themes/console/snark/images/snark_thead.png
similarity index 100%
rename from installer/resources/themes/console/images/snark_thead.png
rename to installer/resources/themes/console/snark/images/snark_thead.png
diff --git a/installer/resources/themes/console/images/snarknav.png b/installer/resources/themes/console/snark/images/snarknav.png
similarity index 100%
rename from installer/resources/themes/console/images/snarknav.png
rename to installer/resources/themes/console/snark/images/snarknav.png
diff --git a/installer/resources/themes/console/images/snarknav_on.png b/installer/resources/themes/console/snark/images/snarknav_on.png
similarity index 100%
rename from installer/resources/themes/console/images/snarknav_on.png
rename to installer/resources/themes/console/snark/images/snarknav_on.png
diff --git a/installer/resources/themes/console/snark.css b/installer/resources/themes/console/snark/snark.css
similarity index 100%
rename from installer/resources/themes/console/snark.css
rename to installer/resources/themes/console/snark/snark.css
-- 
GitLab