diff --git a/resources/celerity/map.php b/resources/celerity/map.php --- a/resources/celerity/map.php +++ b/resources/celerity/map.php @@ -7,7 +7,7 @@ */ return array( 'names' => array( - 'core.pkg.css' => '9d3a79f4', + 'core.pkg.css' => 'c61091b0', 'core.pkg.js' => '573e6664', 'darkconsole.pkg.js' => 'e7393ebb', 'differential.pkg.css' => '2de124c9', @@ -32,10 +32,10 @@ 'rsrc/css/aphront/typeahead.css' => '0e403212', 'rsrc/css/application/almanac/almanac.css' => 'dbb9b3af', 'rsrc/css/application/auth/auth.css' => '0877ed6e', - 'rsrc/css/application/base/main-menu-view.css' => '2f670a96', + 'rsrc/css/application/base/main-menu-view.css' => 'd00a795a', 'rsrc/css/application/base/notification-menu.css' => 'f31c0bde', 'rsrc/css/application/base/phabricator-application-launch-view.css' => '95351601', - 'rsrc/css/application/base/phui-theme.css' => '6b451f24', + 'rsrc/css/application/base/phui-theme.css' => '981a58f8', 'rsrc/css/application/base/standard-page-view.css' => '7b0d68d8', 'rsrc/css/application/chatlog/chatlog.css' => 'd295b020', 'rsrc/css/application/conduit/conduit-api.css' => '7bc725c4', @@ -155,7 +155,6 @@ 'rsrc/css/phui/phui-workboard-view.css' => '95a54f74', 'rsrc/css/phui/phui-workpanel-view.css' => 'adec7699', 'rsrc/css/sprite-login.css' => '60e8560e', - 'rsrc/css/sprite-main-header.css' => 'f07bbb87', 'rsrc/css/sprite-menu.css' => '9dd65b92', 'rsrc/css/sprite-projects.css' => 'e5ad842a', 'rsrc/css/sprite-tokens.css' => '4f399012', @@ -336,7 +335,6 @@ 'rsrc/image/phrequent_inactive.png' => 'bfc15a69', 'rsrc/image/sprite-login-X2.png' => 'e3991e37', 'rsrc/image/sprite-login.png' => '03d5af29', - 'rsrc/image/sprite-main-header.png' => '3673af44', 'rsrc/image/sprite-menu-X2.png' => 'cfd8fca5', 'rsrc/image/sprite-menu.png' => 'd7a99faa', 'rsrc/image/sprite-projects-X2.png' => '853552c7', @@ -753,7 +751,7 @@ 'phabricator-hovercard-view-css' => '1239cd52', 'phabricator-keyboard-shortcut' => '1ae869f2', 'phabricator-keyboard-shortcut-manager' => 'c1700f6f', - 'phabricator-main-menu-view' => '2f670a96', + 'phabricator-main-menu-view' => 'd00a795a', 'phabricator-nav-view-css' => 'a24cb589', 'phabricator-notification' => 'ccf1cbf8', 'phabricator-notification-css' => '9c279160', @@ -829,7 +827,7 @@ 'phui-status-list-view-css' => '888cedb8', 'phui-tag-view-css' => 'e60e227b', 'phui-text-css' => 'cf019f54', - 'phui-theme-css' => '6b451f24', + 'phui-theme-css' => '981a58f8', 'phui-timeline-view-css' => '2efceff8', 'phui-two-column-view-css' => '39ecafb1', 'phui-workboard-view-css' => '95a54f74', @@ -853,7 +851,6 @@ 'releeph-request-typeahead-css' => '667a48ae', 'setup-issue-css' => 'db7e9c40', 'sprite-login-css' => '60e8560e', - 'sprite-main-header-css' => 'f07bbb87', 'sprite-menu-css' => '9dd65b92', 'sprite-projects-css' => 'e5ad842a', 'sprite-tokens-css' => '4f399012', @@ -1054,9 +1051,6 @@ 'javelin-install', 'javelin-event', ), - '2f670a96' => array( - 'phui-theme-css', - ), '327a00d1' => array( 'javelin-behavior', 'javelin-stratcom', @@ -1852,6 +1846,9 @@ 'javelin-workflow', 'phabricator-drag-and-drop-file-upload', ), + 'd00a795a' => array( + 'phui-theme-css', + ), 'd19198c8' => array( 'javelin-install', 'javelin-dom', diff --git a/resources/sprite/main_header/applebloom.png b/resources/sprite/main_header/applebloom.png deleted file mode 100644 index 29721ef8fd95bcd738be9dfc679a4c95456dd1b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@8U}fi7AzZCsS>JiUK@c978H@C9Mp+knX^$^I!4;qcF3flg|JD!b`b=I~pI_ ze?9Zdzh~8diD$x@HWS|+de-qjq{Oz;vE!d^_!U5uW<@r7Gz*#WBB{e Vz|x4FPX=f8U}fi7AzZCsS=07??FOLn2Bde0{8v^KRwL~E) zH9a%WR_Xoj{Yna%DYi=CroINg1v55FG|-pw6wI;H!#vSGSUUA&@HaaD@m--%_~-hnc$LIoLrPyP?DLSrvTz7Cgqow z*eWT(ypUVq>kBtHuNWFoz#!AFNG#Ad)HBe}&DDpgE-nd5O~bFcIHa;5RX-@TIKQ+g z85kdF%1Bn>*9uYybd8luesXDUYF>$_i>(q+L@y;X#mdCU!ra-+&C$ui+`!P#)x^oz z&D7P+#LUpi&CSWc)Ci{6Gq1QLF)uk4rZ*Fz*AlN@E9aur#FG4?ko^1{SnLI4g_38s1qmLHdFd<+X0x{u<7s!Dp|I|ES znlAz-Zr*aqGzJDnVNVywkcwL&L7jz195|fiR(W%;R9(Bcp`s?e`r2=X)$IR&{@wik z`NG0wDYeJguL(DZoOcf43Sg~VO$??QP%vwk?mR@wk8%=gqF8$Aa>vvs^9;G2U3{qAhe+t?b+5 z0@2;q+;T596>UBE=#h!bTivRd;2G^Q@2qc4P1oAPR`cyh3I9J<2?p^)A}@Hq^oM{7 N4o_D5r zVuV42?Lr|!VyQ6gR1eXu937(y>mr7pL=*8To3^^6GZYnvBTUicZ!>$5at3jvn}TEb z>NskaW=-CPB&J-aqt?t&tis9)KOG0x-b&$c2vh}52~D`gtawh$vh2}>-+GMGaZHJh zZ8*y9h-rCIm9oo{a*4Tw#kcd6eO+QH!?Bco6&bfTCu{eZ>u%j}@t{3Y{g2trdd$-i zH?8%nZDAAIG2nqj&mxoIVLcAV_o?bVc1ImJA+bAZ9h>!NiXLA}Q@c9W3+sE_zxV7H vvB6*Xp-`$^_+F|T|0-U8)&DvIPXPu1Bl#9LOr}f}00000NkvXXu0mjfZpW@L diff --git a/resources/sprite/main_header/dark.png b/resources/sprite/main_header/dark.png deleted file mode 100644 index f676a0d1b8754fbc335ef6a760dcfc7079fcd7f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@-*h<&}idC-0 z7tujfVd{0O5D{WoH1eZRwG8>oUFnVr>d4>tAQ0lfq`Ip&L=Y_+Uqpl*I~2qi5D4R^ zsv0Lz--x#vo6f|0=RU--0VG&GiQ$<(dE7~in@S?W03G`vrV^itJ>CHm_FuWZ;_6+i zoUiQmT)lOijc}A)raCG%^2Dd8|JYuyw5A~98j4u=5ybuU2!XJ-f8$Sp0RS2)N`jg2 RYRLcq002ovPDHLkV1nFKx<~*3 diff --git a/resources/sprite/main_header/fluttershy.png b/resources/sprite/main_header/fluttershy.png deleted file mode 100644 index 796158d39b1bf0d53f0440f3ed2cc1d7561ecd6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@8U}fi7AzZCsS>JihMm?978H@C9Ul7OLt(^;rV~jMPi18M27%V)*t^VT2Zr( zev%LFV04x=>rJ`cv2vn^{lEYI>E#pOFZ`e4CKdL$vxo1Nny}H?LrN?H2@KDpb(R*Y S3vB`#%;4$j=d#Wzp$P!7GdRrv diff --git a/resources/sprite/main_header/green.png b/resources/sprite/main_header/green.png deleted file mode 100644 index 6c84d1deaa8e700665eb696aca98f1646f5cc700..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@vX# a0t^6V_A#{cbr?th0000 diff --git a/resources/sprite/main_header/indigo.png b/resources/sprite/main_header/indigo.png deleted file mode 100644 index ac38dfbdcd5db30ce2a871e8688432af345286f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@kkr^&Pp-DF}iwP~-! zJD)&&312|O>%}{-#Fton11D`$Md;2jKj-j$XU?4Y=0m6be1GrJ9>;O}cFXLt^)4I7 zySLbU_38BswmhWGK0PNxIzut$>K++jUS-DwcY-Mx;E^Bd{PmY_Jn%i8e^qisCo=HZZ!KbczG(N{#l%%T{`48BrWy+n zV2VH*T!x93>ijaU#`c*T@?Z&}6P;fr)pt6;ATb6dpw(W zv=Al-c?1(DZtO?YCn3meG$2!|^L&1VAliftlXaO`!C;CaCA*d4ypXCuADC?BRw789CC77$ZvJ9wC=`6+2@>Nirr8FpOo@z>$MoKg^s@mn_H8 z>@cAybg^yfJo5;??`dUAF)YPW8&c7dq-L?9l{}y{zOaidHxaM!qrLsMj71!IIi?WpqSu*gy=gwVBL)msCUS@3Mk3**U zn2G!A&+8WZ7>{kU-b;TCe*Xw@?atY~2N%6D>$@NC*WT@L-w$_QJ{kD6>quf_suql1VqT$;4#pW_v7N z{0LsW^e%WScu>6cEBFDt`UwOl+f6M}Iw6^PZ{F{{U*4Y&dpj?em!2*Og0S4%b_aaF z$KUn)3;cWe@y#yZo-l93_G!!}xFA9&q5%QD6d#fS!O`^XCD{;!#j|8MVx#^mC#0#2 zYa6*rbD>@vn^lg(Bf>yH4wI}c{{H$+1WD8uUz>f{&%0!tY@Zfn|8!>+o}}Rzxr}VMlH8iqxpT2fDN%z?5532vq}ENLJ03g{*a; zaan=3qCp8F$J8CDf%y`7v?7X~f$Ps>aj7ki8Ot3-nM@|~M3-rCsHg}b1!{_>N!&sz zry0YQl$EQE2bYv#k>o6)8K`9(&=b}c#pV~%yx+feoR#xL@sueQ&J|ULN}4K-b;$-K zzT3JSPIICRNJ&qMkk=z#y%FkeXl=;ZIJ-r{i-M0`8lI#iV?DPm@*6oyBF9I*<(tre znr^77XWF)_`o5-jpzUpWomS)HHY~JkggU+lHM><~`B6v6Qw_^AEgk9&wwIL*XCY~@ z$v>=nC)Vi}1T$I;DLrmFU~fzrEypwm-R`X7V6BhCB&(Ir>LShgk|KFWBEO(1m}S{X zZed{>fuZBjmcjsOl7TE;LV>AEQ2=9XLlWsmB+l{CjSO6MDc5ixc|*w23agu6RXuS3@j>~qViuOH7een_3?TvxNtpKB;(Um@UdBY{OJoHxs{&V t8CE}o>7QRKi_Z^&@51?3{am~k79I%a4;R6YN9>{=&Yrj9e%?Ab`wLO#J=OpK diff --git a/resources/sprite/main_header/nightmaremoon.png b/resources/sprite/main_header/nightmaremoon.png deleted file mode 100644 index 2e985507955cdf356c0c9ae570794d9a4d60b771..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@`vTH9&?-7t*h6|Goa(5n3zt>91J&zLR+cf_!A2MjB_N6Xs|Em!PP z)L>{$M9Z2DT1E%7j0ve#B2vm@sFX`ASs;=sMbaQ5(g~6pZ(>antsk1rM}PqU3{>zC TERKm+00000NkvXXu0mjf;ah0& diff --git a/resources/sprite/main_header/red.png b/resources/sprite/main_header/red.png deleted file mode 100644 index 2620221ec655518287de1b8f4a2868d9bb7c3e1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@sRQ=zK03QIE;X3q;k-;LTR zs^QW8jzD8uzs~qWY%ycGU1k28SmpUG*7_4*0AD`{XX+VU761SM07*qoM6N<$g0M2T AuK)l5 diff --git a/resources/sprite/main_header/scootaloo.png b/resources/sprite/main_header/scootaloo.png deleted file mode 100644 index 32e724ec5e50eed5a07a0ee1338d0823a288e169..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@8U}fi7AzZCsS>JimW|d978H@C3Rl^oaDgj!z0nq`tX1Kq7cIi7j)J*NhBS~ zQn@c^vTb74vB_(@j=fuy<{+Fc#;kjmiNk<_$5hv&%&1o%Xbgj=tDnm{r-UW|4<;~# diff --git a/resources/sprite/main_header/yellow.png b/resources/sprite/main_header/yellow.png deleted file mode 100644 index a8a4d67f0ba9333444611b48287d8de0258b4a8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@!b(Pd8;U3M)xpd?T$y*QgJ}hX!M5TK#cB+?A1`aPIC}_0;s(aq}3$P zPiio1Rg(B2XdK+TGlgd~;Hd6+?;C-4Z|Z^;s8nTdfp>J29#NCnx9n>wUig`X$T;0S z81W&%7K(<2rTX2Rsc6~YTxJTCSx12DEGZ>2u}%VV4sQ>*%wgwqp6g~!Kl=fmk)oAUjYUHKshK>m#Nv_ P00000NkvXXu0mjflZC*R diff --git a/resources/sprite/manifest/main-header.json b/resources/sprite/manifest/main-header.json deleted file mode 100644 --- a/resources/sprite/manifest/main-header.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "version": 1, - "sprites": { - "main-header-applebloom": { - "name": "main-header-applebloom", - "rule": ".phui-theme-applebloom .phabricator-main-menu-background", - "hash": "64822776b129e724709983db1ac5a712" - }, - "main-header-blindigo": { - "name": "main-header-blindigo", - "rule": ".phui-theme-blindigo .phabricator-main-menu-background", - "hash": "8c4f5b1f1f3faceb6ca6e8278a1b082f" - }, - "main-header-blue": { - "name": "main-header-blue", - "rule": ".phui-theme-blue .phabricator-main-menu-background", - "hash": "b5dd317b7bd35e0592b3f4b66267437c" - }, - "main-header-dark": { - "name": "main-header-dark", - "rule": ".phui-theme-dark .phabricator-main-menu-background", - "hash": "817815d84c0c935b4875f6ecc7dbb526" - }, - "main-header-fluttershy": { - "name": "main-header-fluttershy", - "rule": ".phui-theme-fluttershy .phabricator-main-menu-background", - "hash": "55d4e9f813cf354693290105cf83cf78" - }, - "main-header-green": { - "name": "main-header-green", - "rule": ".phui-theme-green .phabricator-main-menu-background", - "hash": "c230f09e307d167fab3ea0d8c3b33755" - }, - "main-header-indigo": { - "name": "main-header-indigo", - "rule": ".phui-theme-indigo .phabricator-main-menu-background", - "hash": "a27394ff1eff4d24398ec57e54d7f5fd" - }, - "main-header-light": { - "name": "main-header-light", - "rule": ".phui-theme-light .phabricator-main-menu-background", - "hash": "3c41fbfbe13cae2451467a1e307115aa" - }, - "main-header-nightmaremoon": { - "name": "main-header-nightmaremoon", - "rule": ".phui-theme-nightmaremoon .phabricator-main-menu-background", - "hash": "9e7cc7b18d2132d2dd47586ba0cd6400" - }, - "main-header-red": { - "name": "main-header-red", - "rule": ".phui-theme-red .phabricator-main-menu-background", - "hash": "3f12cc098afddb8e6c830ef761dcaa61" - }, - "main-header-scootaloo": { - "name": "main-header-scootaloo", - "rule": ".phui-theme-scootaloo .phabricator-main-menu-background", - "hash": "8cedc359dccab1bbd49cbc69940f566a" - }, - "main-header-yellow": { - "name": "main-header-yellow", - "rule": ".phui-theme-yellow .phabricator-main-menu-background", - "hash": "d920e70a6d2662cfb83e1d7e4b4000fd" - } - }, - "scales": [ - 1 - ], - "header": "\/**\n * @provides sprite-main-header-css\n * @generated\n *\/\n\n.sprite-main-header {\n background-image: url(\/rsrc\/image\/sprite-main-header.png);\n background-repeat: repeat-x;\n}\n\n\n", - "type": "repeat-x" -} diff --git a/scripts/celerity/generate_sprites.php b/scripts/celerity/generate_sprites.php --- a/scripts/celerity/generate_sprites.php +++ b/scripts/celerity/generate_sprites.php @@ -29,7 +29,6 @@ $sheets = array( 'menu' => $generator->buildMenuSheet(), 'tokens' => $generator->buildTokenSheet(), - 'main-header' => $generator->buildMainHeaderSheet(), 'login' => $generator->buildLoginSheet(), 'projects' => $generator->buildProjectsSheet(), ); diff --git a/src/applications/celerity/CeleritySpriteGenerator.php b/src/applications/celerity/CeleritySpriteGenerator.php --- a/src/applications/celerity/CeleritySpriteGenerator.php +++ b/src/applications/celerity/CeleritySpriteGenerator.php @@ -150,33 +150,6 @@ return $sheet; } - public function buildMainHeaderSheet() { - $gradients = $this->getDirectoryList('main_header'); - $template = new PhutilSprite(); - - $sprites = array(); - foreach ($gradients as $gradient) { - $path = $this->getPath('main_header/'.$gradient.'.png'); - $sprite = id(clone $template) - ->setName('main-header-'.$gradient) - ->setSourceFile($path) - ->setTargetCSS('.phui-theme-'.$gradient. - ' .phabricator-main-menu-background'); - $sprite->setSourceSize(6, 44); - $sprites[] = $sprite; - } - - $sheet = $this->buildSheet('main-header', - false, - PhutilSpriteSheet::TYPE_REPEAT_X); - - foreach ($sprites as $sprite) { - $sheet->addSprite($sprite); - } - - return $sheet; - } - private function getPath($to_path = null) { $root = dirname(phutil_get_library_root('phabricator')); return $root.'/resources/sprite/'.$to_path; diff --git a/src/applications/config/option/PhabricatorUIConfigOptions.php b/src/applications/config/option/PhabricatorUIConfigOptions.php --- a/src/applications/config/option/PhabricatorUIConfigOptions.php +++ b/src/applications/config/option/PhabricatorUIConfigOptions.php @@ -20,15 +20,18 @@ } public function getOptions() { - $manifest = PHUIIconView::getSheetManifest('main-header'); $custom_header_example = PhabricatorCustomHeaderConfigType::getExampleConfig(); $experimental_link = 'https://secure.phabricator.com/T4214'; - $options = array(); - foreach (array_keys($manifest) as $sprite_name) { - $key = substr($sprite_name, strlen('main-header-')); - $options[$key] = $key; - } + $options = array( + 'blindigo' => 'blindigo', + 'light' => 'light', + 'red' => 'red', + 'blue' => 'blue', + 'green' => 'green', + 'indigo' => 'indigo', + 'dark' => 'dark', + ); $example = <<user; require_celerity_resource('phabricator-main-menu-view'); - require_celerity_resource('sprite-main-header-css'); $header_id = celerity_generate_unique_node_id(); $menu_bar = array(); @@ -137,7 +136,7 @@ $application_menu = $this->renderApplicationMenu($bar_items); $classes = array(); - $classes[] = 'phabricator-main-menu sprite-main-header'; + $classes[] = 'phabricator-main-menu'; $classes[] = 'phabricator-main-menu-background'; return phutil_tag( diff --git a/webroot/rsrc/css/application/base/main-menu-view.css b/webroot/rsrc/css/application/base/main-menu-view.css --- a/webroot/rsrc/css/application/base/main-menu-view.css +++ b/webroot/rsrc/css/application/base/main-menu-view.css @@ -16,13 +16,11 @@ } .phabricator-main-menu-background { - min-height: 43px; - background-color: #ebecee; - border-bottom: 1px solid rgba(0,0,0,.1); + min-height: 44px; } .device-desktop .phabricator-main-menu { - height: 43px; + height: 44px; padding-right: 4px; } diff --git a/webroot/rsrc/css/application/base/phui-theme.css b/webroot/rsrc/css/application/base/phui-theme.css --- a/webroot/rsrc/css/application/base/phui-theme.css +++ b/webroot/rsrc/css/application/base/phui-theme.css @@ -2,11 +2,39 @@ * @provides phui-theme-css */ - .phui-theme-light button.phabricator-main-menu-search-dropdown .caret:before { +/*--- Base Colors ------------------------------------------------------------*/ + +.phui-theme-blindigo .phabricator-main-menu-background { + background: #41506e; +} + +.phui-theme-dark .phabricator-main-menu-background { + background: #171c20; +} + +.phui-theme-indigo .phabricator-main-menu-background { + background: #4a2b85; +} + +.phui-theme-red .phabricator-main-menu-background { + background: #650404; +} + +.phui-theme-blue .phabricator-main-menu-background { + background: #004377; +} + +.phui-theme-green .phabricator-main-menu-background { + background: #124A1B; +} + +/*--- Light Colors -----------------------------------------------------------*/ + +.phui-theme-light button.phabricator-main-menu-search-dropdown .caret:before { color: {$lightbluetext}; } - .phui-theme-light .phabricator-main-menu-search +.phui-theme-light .phabricator-main-menu-search button.phabricator-main-menu-search-dropdown .phui-icon-view { color: {$lightbluetext}; text-shadow: {$whitetextshadow}; diff --git a/webroot/rsrc/css/sprite-main-header.css b/webroot/rsrc/css/sprite-main-header.css deleted file mode 100644 --- a/webroot/rsrc/css/sprite-main-header.css +++ /dev/null @@ -1,60 +0,0 @@ -/** - * @provides sprite-main-header-css - * @generated - */ - -.sprite-main-header { - background-image: url(/rsrc/image/sprite-main-header.png); - background-repeat: repeat-x; -} - - - - -.phui-theme-applebloom .phabricator-main-menu-background { - background-position: 0px 0px; -} - -.phui-theme-blindigo .phabricator-main-menu-background { - background-position: 0px -45px; -} - -.phui-theme-blue .phabricator-main-menu-background { - background-position: 0px -90px; -} - -.phui-theme-dark .phabricator-main-menu-background { - background-position: 0px -135px; -} - -.phui-theme-fluttershy .phabricator-main-menu-background { - background-position: 0px -180px; -} - -.phui-theme-green .phabricator-main-menu-background { - background-position: 0px -225px; -} - -.phui-theme-indigo .phabricator-main-menu-background { - background-position: 0px -270px; -} - -.phui-theme-light .phabricator-main-menu-background { - background-position: 0px -315px; -} - -.phui-theme-nightmaremoon .phabricator-main-menu-background { - background-position: 0px -360px; -} - -.phui-theme-red .phabricator-main-menu-background { - background-position: 0px -405px; -} - -.phui-theme-scootaloo .phabricator-main-menu-background { - background-position: 0px -450px; -} - -.phui-theme-yellow .phabricator-main-menu-background { - background-position: 0px -495px; -} diff --git a/webroot/rsrc/image/sprite-main-header.png b/webroot/rsrc/image/sprite-main-header.png deleted file mode 100644 index f0211bd79ef90e5418ca9d92e2bca916a4807b5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@0P)$00006bW%=J00000 z003^L2ax~(2a`!eK~#7F?ODf`?79skDJaYzIOiO<&N=(NA9&7r=d^NM`e&WCBZ(B@ z0*cepgnMqEKJ7d@YN-GgssO4d^~68C?W5uTAsQYYDV&oM)w5WSQz7W}wDcU7s$M34 zW?xS=p;zqwvMm(7df*0Ep?utk4@wUE5br{)wi)kg* zxb$GVnwrA?0FLhoketPIJ8^a^q)1v;({}d&Ku4XMV}N3l-_87jk~&I6IZgnC zN5|H)=)OCx6pp1idd~>OJ1pq%p(C%j(NVEEAff~SX~At?3m=bXJE8Es89||A+a)+^ zbClhYW_v9iC+U_o&ubpLq_xV_cXQ6oG3TilNHj-nGrA*)Q~|IVp?-_(;4`kxaoUxnxoFiQg1* zkrSV-@~h)mbh+cxNBsC_zqqdJDISI)(dTHJmSyRCQLQ)u5Q^5Y%xgakAOIYHZdbgB zlWOSuepxb30EE)_-MY+FUY89DQmbxtH|?sXbzO$O=i>lC2zy;DYmNZ!SgZN@m00M= znE-OmBGQr1Ldc22?%=5IxPqvD09aVHF6#<9C;*4IT(t|av3e1VhyWm$B9c&_sSSXv zPoG2NGGNEI>1(>gJWrqK6CffjKv)RaRMMTqpfV6bOcX3CcHqw`iYwu zQ=3@{UUBcss%&r+^)vuNbM%fI;BzFs-I}9_&=H_Hmb)1N5T5yE_1ka#>=@JW!oRJ8 z>RGI7YhCbnN6_mzqVTdARsY3(T|SUr_|PO=^f>+nZ<7nP&it}^@2juJZRkc^*KM^z z^?2D9oI^KgP_eiyEb;6p``5Z7oM|cZAR`w5=4}=r%XU)$$n*X0Opyw^<4gsF(su*u zsXdo@>?U_?hV<5i73)yd9S4L0JeOtkKIXibqjR-6YGo4v6z~xMV7TNr#A*t8wizqf zyCog-t#?RADBKDVvZG9(05o~?I_y!ZK_PjYZ&3mOU2{YLPE&xRnLpv!O`H)XbPTxB z@s^JC;z5Ok+t^RHdB!>RH<(^Vxgj41vXe}31b?@y8qzJa!FR!_zoDZUO>$#}D;QQpH~mBvDhT-q2wwChddFw0w`G3vBa09I>Fh7j=hSoRId#qv|MJ(rU)S+D^_+VC zvikJ>eBEYHDsBQ_=njqhRn6*R^@^NfALm`38)5>X5eT9EvSmBxlh>l)J$A|x6 zYmR1QU^qE~Psi1Cp+!CiZH}A~7>>3pV6_f|19yy%KG7w=tZRXSh$6)1lD|8;uF{Z) z?P@m+6iUOe(XlKm`Ub1)yV~rUf&hZDEi1%0Y(fl2b_dXAy#L93;EaPZ=$j+>_jeVl z`d~&FcQ9I4oSpPGGFnGK7IYEHzM*#liBF7iM@JCah?JD_4$3(Z6d~L<=edHVexu5Y}|3jrKG;w{$>&suxx@uq7-{=dq!gaM? zdc5lq;#cx-$