[Ovirt-devel] [PATCH server] Updated look and feel for empty grid views

Jeremy Perry jeremy.perry at redhat.com
Thu May 21 14:38:05 UTC 2009


When empty grids are shown (ex: no VMs in this pool) a specific graphic, message and improved action button are shown. For Task views, the user will see the current filter and an explanation that no tasks match that filter.

Signed-off-by: Jeremy Perry <jeremy.perry at redhat.com>
---
 src/app/views/hardware/show_hosts.rhtml      |   11 ++++-------
 src/app/views/hardware/show_storage.rhtml    |   15 ++++++---------
 src/app/views/hardware/show_vms.rhtml        |   17 +++++++----------
 src/app/views/network/list.html.erb          |    9 ++++-----
 src/app/views/resources/show_vms.rhtml       |   25 +++++++++++--------------
 src/app/views/search/results.rhtml           |    4 ++--
 src/app/views/smart_pools/show_hosts.rhtml   |    9 ++++-----
 src/app/views/smart_pools/show_pools.rhtml   |    9 ++++-----
 src/app/views/smart_pools/show_storage.rhtml |    9 ++++-----
 src/app/views/smart_pools/show_vms.rhtml     |    9 ++++-----
 src/app/views/task/_show.rhtml               |   19 +++++++++++--------
 src/app/views/user/_show.rhtml               |    7 ++++---
 src/public/images/no-grid-items.png          |  Bin 15004 -> 0 bytes
 src/public/stylesheets/components.css        |   25 ++++++++++++++++++++++---
 14 files changed, 87 insertions(+), 81 deletions(-)
 delete mode 100644 src/public/images/no-grid-items.png

diff --git a/src/app/views/hardware/show_hosts.rhtml b/src/app/views/hardware/show_hosts.rhtml
index fb54373..18ee4a6 100644
--- a/src/app/views/hardware/show_hosts.rhtml
+++ b/src/app/views/hardware/show_hosts.rhtml
@@ -109,14 +109,11 @@
 <% else %>
    <div class="data_section">
        <div class="no-grid-items">
-          <%= image_tag 'no-grid-items.png', :style => 'float: left;' %>
-
+          <img src="images/jumbo_hosts.png" alt="hosts" width="145" height="145">
           <div class="no-grid-items-text">
-            No hosts found in this pool. <br/><br/>
-            <%if @can_modify -%>
-              <%= image_tag "icon_add_host.png", :style=>"vertical-align:middle;" %>  
-              <a href="<%= url_for :controller => 'hardware', :action => 'addhost', :id => @pool %>" rel="facebox[.bolder]">Add first host to this hardware pool</a>
-            <% end -%>
+            <h2>There are no hosts in this pool.</h2>
+            <p>Hosts belonging to this hardware pool will be listed here.</p>
+            <div class="no-grid-items-button"><div class="button_left_blue" /><div class="button_middle_blue"><a href="<%= url_for :controller => 'hardware', :action => 'addhost', :id => @pool %>" rel="facebox[.bolder]"><img src="images/icon_plusbutton.png" alt="Add" style="margin: 5px 2px 0 -5px">Add Hosts</a></div><div class="button_right_blue" /></div>
           </div>
        </div>
    </div>
diff --git a/src/app/views/hardware/show_storage.rhtml b/src/app/views/hardware/show_storage.rhtml
index c9f46ad..94560d0 100644
--- a/src/app/views/hardware/show_storage.rhtml
+++ b/src/app/views/hardware/show_storage.rhtml
@@ -93,7 +93,7 @@ ${htmlList(pools, id)}
                 }
 		if (storage.indexOf($('#storage_selection_id').html()) != -1){
 		  empty_summary('storage_selection', 'Storage Pool');
-		}   
+		}
                }, 'json');
     }
   }
@@ -110,7 +110,7 @@ ${htmlList(pools, id)}
                 }
 		if (storage.indexOf($('#storage_selection_id').html()) != -1){
 		  empty_summary('storage_selection', 'Storage Pool');
-		}   
+		}
                }, 'json');
     }
   }
@@ -144,14 +144,11 @@ ${htmlList(pools, id)}
 <% else %>
    <div class="data_section">
        <div class="no-grid-items">
-          <%= image_tag 'no-grid-items.png', :style => 'float: left;' %>
-
+          <img src="images/jumbo_storage.png" alt="virtual machine" width="145" height="145">
           <div class="no-grid-items-text">
-            No storage volumes found in this pool. <br/><br/>
-            <%if @can_modify -%>
-              <%= image_tag "icon_add_storage.png", :style=>"vertical-align:middle;" %>  
-              <a href="<%= url_for :controller => 'storage', :action => 'addstorage', :hardware_pool_id => @pool %>" rel="facebox[.bolder]">Add first storage volume to this hardware pool</a>
-            <% end -%>
+            <h2>There is no storage in this pool.</h2>
+            <p>Storage associated with this hardware pool will be listed here.</p>
+            <div class="no-grid-items-button"><div class="button_left_blue" /><div class="button_middle_blue"><a href="<%= url_for :controller => 'storage', :action => 'addstorage', :hardware_pool_id => @pool %>" rel="facebox[.bolder]"><img src="images/icon_plusbutton.png" alt="Add" style="margin: 5px 2px 0 -5px">Add Storage</a></div><div class="button_right_blue" /></div>
           </div>
        </div>
    </div>
diff --git a/src/app/views/hardware/show_vms.rhtml b/src/app/views/hardware/show_vms.rhtml
index c6c8b4e..8ddde73 100644
--- a/src/app/views/hardware/show_vms.rhtml
+++ b/src/app/views/hardware/show_vms.rhtml
@@ -55,14 +55,14 @@
                 }
 		if (vm_pools.indexOf($('#vmpool_selection_id').html()) != -1){
 		  empty_summary('vmpool_selection', 'Virtual Machine Pool');
-		}   
+		}
                }, 'json');
     }
   }
   function vmpools_select(selected_rows)
   {
-    var selected_ids = new Array() 
-    for(i=0; i<selected_rows.length; i++) { 
+    var selected_ids = new Array()
+    for(i=0; i<selected_rows.length; i++) {
       load_widget_select(selected_rows[i]);
       selected_ids[i] = selected_rows[i].id;
     }
@@ -92,14 +92,11 @@
 <% else %>
    <div class="data_section">
        <div class="no-grid-items">
-          <%= image_tag 'no-grid-items.png', :style => 'float: left;' %>
-          
+          <img src="images/jumbo_vmpools.png" alt="virtual machine pool" width="145" height="145">
           <div class="no-grid-items-text">
-            No virtual machine pools found in this hardware pool. <br/><br/>
-            <%if @can_modify -%>
-              <%= image_tag "icon_add_vmpool.png", :style => "vertical-align:middle;" %>  
-              <a href="<%= url_for :controller => 'resources', :action => 'new', :parent_id => @pool %>" rel="facebox[.bolder]">Add first virtual machine pool to this hardware pool</a></li>
-            <% end -%>
+            <h2>There are no virtual machine pools in this pool.</h2>
+            <p>Virtual machine pools belonging to this hardware pool will be listed here.</p>
+            <div class="no-grid-items-button"><div class="button_left_blue" /><div class="button_middle_blue"><a href="<%= url_for :controller => 'resources', :action => 'new', :parent_id => @pool %>" rel="facebox[.bolder]"><img src="images/icon_plusbutton.png" alt="Add" style="margin: 5px 2px 0 -5px">Add Virtual Machine Pool</a></div><div class="button_right_blue" /></div>
           </div>
        </div>
    </div>
diff --git a/src/app/views/network/list.html.erb b/src/app/views/network/list.html.erb
index 0451a9c..fab8111 100644
--- a/src/app/views/network/list.html.erb
+++ b/src/app/views/network/list.html.erb
@@ -60,12 +60,11 @@
 <% else %>
    <div class="data_section">
        <div class="no-grid-items">
-          <%= image_tag 'no-grid-items.png', :style => 'float: left;' %>
-
+          <img src="images/jumbo_networks.png" alt="networks" width="145" height="145">
           <div class="no-grid-items-text">
-            No networks found. <br/><br/>
-            <%= image_tag "icon_addhost.png", :style=>"vertical-align:middle;" %>  
-            <a href="<%= url_for :action => 'new' %>" rel="facebox[.bolder]">Add first network</a>
+            <h2>There are no networks to display.</h2>
+            <p>Networks will be listed here after you create one.</p>
+            <div class="no-grid-items-button"><div class="button_left_blue" /><div class="button_middle_blue"><a href="<%= url_for :action => 'new' %>" rel="facebox[.bolder]"><img src="images/icon_plusbutton.png" alt="Add" style="margin: 5px 2px 0 -5px">Add Network</a></div><div class="button_right_blue" /></div>
           </div>
        </div>
    </div>
diff --git a/src/app/views/resources/show_vms.rhtml b/src/app/views/resources/show_vms.rhtml
index 996d3fb..0003bd4 100644
--- a/src/app/views/resources/show_vms.rhtml
+++ b/src/app/views/resources/show_vms.rhtml
@@ -72,7 +72,7 @@
                 }
 		if (vms.indexOf($('#vms_selection_id').html()) != -1){
 		  empty_summary('vms_selection', 'Virtual Machine');
-		}   
+		}
                }, 'json');
     }
   }
@@ -81,7 +81,7 @@
     var vms = get_selected_vms();
     if (validate_selected(vms, "vm")) {
       jQuery.facebox('<div id="vm_action_results">');
-      $('#vm_action_results').load('<%= url_for :controller => "resources", 
+      $('#vm_action_results').load('<%= url_for :controller => "resources",
              :action => "vm_actions", :id => @pool %>',
              { vm_ids: vms.toString(), vm_action: action });
     }
@@ -89,7 +89,7 @@
   function vms_select(selected_rows)
   {
     var selected_ids = new Array();
-    for(i=0; i<selected_rows.length; i++) { 
+    for(i=0; i<selected_rows.length; i++) {
       load_widget_select(selected_rows[i]);
       selected_ids[i] = selected_rows[i].id;
     }
@@ -119,16 +119,13 @@
   </div>
 <% else %>
   <div class="data_section">
-    <div class="no-grid-items">
-      <%= image_tag 'no-grid-items.png', :style => 'float: left;' %>
-          
-       <div class="no-grid-items-text">
-            No vms found in this pool. <br/><br/>
-            <%if @can_modify -%>
-              <%= image_tag "icon_add_host.png", :style => "vertical-align:middle;" %>  
-              <a href="<%= url_for :controller => 'vm', :action => 'new', :vm_resource_pool_id => @pool %>" rel="facebox[.bolder]">Add first virtual machine to resource pool</a></li>
-            <% end -%>
+       <div class="no-grid-items">
+          <img src="images/jumbo_vm.png" alt="virtual machine" width="145" height="145">
+          <div class="no-grid-items-text">
+            <h2>There are no virtual machines in this pool.</h2>
+            <p>Virtual machines belonging to this virtual machine pool will be listed here.</p>
+            <div class="no-grid-items-button"><div class="button_left_blue" /><div class="button_middle_blue"><a href="<%= url_for :controller => 'vm', :action => 'new', :vm_resource_pool_id => @pool %>" rel="facebox[.bolder]"><img src="images/icon_plusbutton.png" alt="Add" style="margin: 5px 2px 0 -5px">Add Virtual Machine</a></div><div class="button_right_blue" /></div>
+          </div>
        </div>
-    </div>
-  </div>
+   </div>
 <% end %>
diff --git a/src/app/views/search/results.rhtml b/src/app/views/search/results.rhtml
index 1537b60..7eb25ef 100644
--- a/src/app/views/search/results.rhtml
+++ b/src/app/views/search/results.rhtml
@@ -93,9 +93,9 @@
 <% else %>
    <div class="data_section">
        <div class="no-grid-items">
-          <%= image_tag 'no-grid-items.png', :style => 'float: left;' %>
+          <img src="images/jumbo_find.png" alt="find" width="145" height="145">
           <div class="no-grid-items-text">
-            No results found. <br/><br/>
+            <h2>No results found.</h2>
           </div>
        </div>
    </div>
diff --git a/src/app/views/smart_pools/show_hosts.rhtml b/src/app/views/smart_pools/show_hosts.rhtml
index 8b13c2b..65a3500 100644
--- a/src/app/views/smart_pools/show_hosts.rhtml
+++ b/src/app/views/smart_pools/show_hosts.rhtml
@@ -66,12 +66,11 @@
 <% else %>
    <div class="data_section">
        <div class="no-grid-items">
-          <%= image_tag 'no-grid-items.png', :style => 'float: left;' %>
-
+          <img src="images/jumbo_hosts.png" alt="hosts" width="145" height="145">
           <div class="no-grid-items-text">
-            No hosts found in this pool. <br/><br/>
-            <%= image_tag "icon_add_host.png", :style=>"vertical-align:middle;" %>  
-            <a href="<%= url_for :controller => 'host', :action => 'add_to_smart_pool', :smart_pool_id => @pool %>" rel="facebox[.bolder]">Add first host to this smart pool</a>
+            <h2>There are no hosts in this pool.</h2>
+            <p>Hosts belonging to this smart pool will be listed here.</p>
+            <div class="no-grid-items-button"><div class="button_left_blue" /><div class="button_middle_blue"><a href="<%= url_for :controller => 'host', :action => 'add_to_smart_pool', :smart_pool_id => @pool %>" rel="facebox[.bolder]"><img src="images/icon_plusbutton.png" alt="Add" style="margin: 5px 2px 0 -5px">Add Hosts</a></div><div class="button_right_blue" /></div>
           </div>
        </div>
    </div>
diff --git a/src/app/views/smart_pools/show_pools.rhtml b/src/app/views/smart_pools/show_pools.rhtml
index de8741b..f120fa2 100644
--- a/src/app/views/smart_pools/show_pools.rhtml
+++ b/src/app/views/smart_pools/show_pools.rhtml
@@ -62,12 +62,11 @@
 <% else %>
    <div class="data_section">
        <div class="no-grid-items">
-          <%= image_tag 'no-grid-items.png', :style => 'float: left;' %>
-
+          <img src="images/jumbo_pools.png" alt="pools" width="145" height="145">
           <div class="no-grid-items-text">
-            No pools found in this pool. <br/><br/>
-            <%= image_tag "icon_add_pools.png", :style=>"vertical-align:middle;" %>  
-            <a href="<%= url_for :controller => 'smart_pools', :action => 'add_pool_dialog', :id => @pool %>" rel="facebox[.bolder]">Add first pool to this smart pool</a>
+            <h2>There are no pools in this pool.</h2>
+            <p>Pools associated with this smart pool will be listed here.</p>
+            <div class="no-grid-items-button"><div class="button_left_blue" /><div class="button_middle_blue"><a href="<%= url_for :controller => 'smart_pools', :action => 'add_pool_dialog', :id => @pool %>" rel="facebox[.bolder]"><img src="images/icon_plusbutton.png" alt="Add" style="margin: 5px 2px 0 -5px">Add Pools</a></div><div class="button_right_blue" /></div>
           </div>
        </div>
    </div>
diff --git a/src/app/views/smart_pools/show_storage.rhtml b/src/app/views/smart_pools/show_storage.rhtml
index da553a1..ac5aff3 100644
--- a/src/app/views/smart_pools/show_storage.rhtml
+++ b/src/app/views/smart_pools/show_storage.rhtml
@@ -91,12 +91,11 @@ ${htmlList(pools, id)}
 <% else %>
    <div class="data_section">
        <div class="no-grid-items">
-          <%= image_tag 'no-grid-items.png', :style => 'float: left;' %>
-
+          <img src="images/jumbo_storage.png" alt="storage" width="145" height="145">
           <div class="no-grid-items-text">
-            No storage pools found in this pool. <br/><br/>
-            <%= image_tag "icon_add_storage.png", :style=>"vertical-align:middle;" %>  
-            <a href="<%= url_for :controller => 'storage', :action => 'add_to_smart_pool', :smart_pool_id => @pool %>" rel="facebox[.bolder]">Add first storage volume to this smart pool</a>
+            <h2>There is no storage in this pool.</h2>
+            <p>Storage associated with this smart pool will be listed here.</p>
+            <div class="no-grid-items-button"><div class="button_left_blue" /><div class="button_middle_blue"><a href="<%= url_for :controller => 'storage', :action => 'add_to_smart_pool', :smart_pool_id => @pool %>" rel="facebox[.bolder]"><img src="images/icon_plusbutton.png" alt="Add" style="margin: 5px 2px 0 -5px">Add Storage</a></div><div class="button_right_blue" /></div>
           </div>
        </div>
    </div>
diff --git a/src/app/views/smart_pools/show_vms.rhtml b/src/app/views/smart_pools/show_vms.rhtml
index 48ae800..f3bd6ed 100644
--- a/src/app/views/smart_pools/show_vms.rhtml
+++ b/src/app/views/smart_pools/show_vms.rhtml
@@ -65,12 +65,11 @@
 <% else %>
    <div class="data_section">
        <div class="no-grid-items">
-          <%= image_tag 'no-grid-items.png', :style => 'float: left;' %>
-
+          <img src="images/jumbo_vm.png" alt="virtual machine" width="145" height="145">
           <div class="no-grid-items-text">
-            No virtual machines found in this pool. <br/><br/>
-            <%= image_tag "icon_add_vm.png", :style=>"vertical-align:middle;" %>  
-            <a href="<%= url_for :controller => 'vm', :action => 'add_to_smart_pool', :smart_pool_id => @pool %>" rel="facebox[.bolder]">Add first virtual machine to this smart pool</a>
+            <h2>There are no virtual machines in this pool.</h2>
+            <p>Virtual machines associated with this smart pool will be listed here.</p>
+            <div class="no-grid-items-button"><div class="button_left_blue" /><div class="button_middle_blue"><a href="<%= url_for :controller => 'vm', :action => 'add_to_smart_pool', :smart_pool_id => @pool %>" rel="facebox[.bolder]"><img src="images/icon_plusbutton.png" alt="Add" style="margin: 5px 2px 0 -5px">Add Virtual Machines</a></div><div class="button_right_blue" /></div>
           </div>
        </div>
    </div>
diff --git a/src/app/views/task/_show.rhtml b/src/app/views/task/_show.rhtml
index 521ab8e..f4e001d 100644
--- a/src/app/views/task/_show.rhtml
+++ b/src/app/views/task/_show.rhtml
@@ -70,14 +70,17 @@
          </div>
      </div> -->
   <% else %>
-     <div class="data_section">
-         <div class="no-grid-items">
-            <%= image_tag 'no-grid-items.png', :style => 'float: left;' %>
+   <div class="data_section">
+       <div class="no-grid-items">
+          <img src="images/jumbo_find.png" alt="find" width="145" height="145">
+          <div class="no-grid-items-text">
+            <h2>There are no tasks that match this filter.</h2>
+            <p>Type: <strong><%= task_types.select {|type| type[1]==task_type}[0][0] %></strong></p>
+            <p>State: <strong><%= task_states.select {|state| state[1]==task_state}[0][0] %></strong></p><br />
+            <p>Choose another filter to display tasks.</p>
+          </div>
+       </div>
+   </div>
 
-            <div class="no-grid-items-text">
-              No tasks found.
-            </div>
-         </div>
-     </div>
   <% end %>
 <% end %>
\ No newline at end of file
diff --git a/src/app/views/user/_show.rhtml b/src/app/views/user/_show.rhtml
index 306d1d4..decb498 100644
--- a/src/app/views/user/_show.rhtml
+++ b/src/app/views/user/_show.rhtml
@@ -54,11 +54,12 @@
 <% else %>
    <div class="data_section">
        <div class="no-grid-items">
-          <%= image_tag 'no-grid-items.png', :style => 'float: left;' %>
-          
+          <img src="images/jumbo_find.png" alt="find" width="145" height="145">
           <div class="no-grid-items-text">
-            No users found associated with this pool. <br/><br/>
+            <h2>There are no users associated with this pool.</h2>
+            <p>Users associated with this pool will be listed here.</p>
           </div>
        </div>
    </div>
+
 <% end %>
diff --git a/src/public/images/no-grid-items.png b/src/public/images/no-grid-items.png
deleted file mode 100644
index 49b42110d1354582477f516f59167d53beaaf2c9..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 15004
zcmV;NI%CC&P)<h;3K|Lk000e1NJLTq0040S004Ig1^@s6G$*gk00001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iOJz
z7YzndRA)p003ZNKL_t(|+U&h)uw>_b-uHXAv-Ntn*)W5RBmnLdDT$FRi=-HtqT@<r
zs~pLZMEirBd`aX~tcp`{rBbfM6<5BbDt48X$Z=e9HpLa$u_Tfb7pW}L3 at M5tNP-K9
z0cM}O-`@Ky?~)Ji>7F~lfFwWywlVA~)W!64-|0Tj`R~vFd4+Q>gb?`t<KNte3?cAB
z5G4TL2lw9)5CMb`&wJVvLb%8CFYoca`aR!&d<zf(g1Gx>Ap}B%?}<fz-=bgHhY0a;
zm$i8B!H2aqN~Q3 at udV9&mi6td_Iqj7-+#Oai1)haAq1q95CHK)Yg&O40Sbg5z7N#D
za(8+PBq0Redrrn9>ZZQS0-tY*@&D!b0sL3^&@YyJ937ANhrj-hF<Hu`^A|XCW|P5S
zK)>Io*XuFp^)SYuge1hf;AOkid&SJ}-xMzc#8p-bk`UnV at Pt47%x9^*rI}R#^!r`<
zgD!(^kB#Ag&B2i2aL8aVWP4}8U@%w%on;wGl8~C at +k&#P{O at PB-xCmJd*R^VV3)eA
z at VdhrfACL{`ik2}Cmc;CT-)EnHP`UICJ_#kDAFXS7<B07UGlVGW6)>N>o6E>Fx(n)
zW)Lm7JLuEz78FH6mKGFw8vkV}PZu}{1kbn6Hax%J|6k0~?>y&EM~>Gzh<6^lySq%M
zQ}V%p|Li~f5U+n|i<9Y+lgW~k<0-p`$L#JMv3qpD;lVMZ$(ZrUh}%bV>gqPZUPelR
zQVOj#xsl{)M&2ptbaOg+L8ln7v$er+7y<4LHrO0==@%)TPLEEvOJdX-2yqGs at jRgJ
z0J!odr*45D??(K70rA%UA>La0!%fcZbdeIe-JDJ*=fMk`yg59Ca{=oGWn~#nmy9M$
z4o at Z=kH#Dxj5r>RIT`IS8yzz*=S-IiPL7tyqd9nomI0$BnHDIMlH`Ug%P4e*yh!PG
zyL1O#x}827{S7uYyYzYq{eGV!?~^AfX=X4=pRzW2$_;z0btt6}uVEDL38MF&gQF9I
z^K5Q!kQWKd%2PEKCnU~7(==Eoa26ba5G37hL8n*n(4~tsHc&fDS=P*F6~|@GWV&QB
zI$=6HVLlx(pHErL=ggN2f?Xn~C1F+qC8 at L+;gMRPwMGj`s#A<kF=;{G&FOXw-ENmb
zr^Cj^2L0ZEPB)|18_>-&`u#qMQLp(rRo^S-)MdkLGC>Hz*_|^ODJZQ&U~tyqT)+v5
z1!@9~i_cjX at E)pW(E==~(b!be(>Zz3XSltMZJ at NCy0Xm5ip8R&T22{{PgpFcROO8M
zazRth33Z9AN|Y2BS(B)eWPU<A)+m{wl}AXA5ulX9n-2Y=gVch|DE{(a`u91zedhj2
zY*zQ`csik6&d{A651u`b0IUl*93cd}_c$-`-r+<0TnIQ9sGX$on#Ovpm6Rf|^d2nK
zHsAu(*5Mmyyg{UjBuNO}9=(mT6ph7OOI5?7shBSp)YXD=K4H9A;_4-#nj>t93^iKT
zBs!2Mf_{>-DP|muE!tbIUcJieE?(qk{=!e+KOnB$&S*TvyMXESxp4Lj0jSy%z<ELK
z1<rb!;IS at Xoual57X(!Z_ at MAY(io4j4LuxI8x(>?BMBnV=s+DTrS<qAASjfOc#{&8
zKq^a;b_ksTiS-mVP<l^UH!Pcqx@@qEIaNKUspc%ZXL-G`bSED{Q{h#DP7IUD{QfC1
zy!VIzD8XbhLF<HJe}kQ~Thwg{7d$jBV4cT#kM+ at gdcb)IHl+}AMAlF>Da|afH}~v~
zE&J1wlSRd7ZkgLa?FHTmT<{3)^k|h9C?!aYLMt%BgA{nF2+APSlqBgPbBF5%43dS1
za~nHc7=4!d>Wn7O(3!-0==HkySxgiX0ZbQj(yU-J>C at Znv#h}RfDImJ72XFL9NtSB
z6u!3PT0v5CYb^Q770;KhA8=)N&f(Ous11wS0uH1?5-km*kWwPO1mSR01f`KuqC`N7
zKv0rY8!`<t at uVh@w2t3vgTs+(!Ju%c+s`qZPjS*SP!gpSTU#5i`G&z7L at 8z4HIY=+
zoHR2G^cMXh$2Q<SIHzzfP!Vtrgj4jAz)S|dc%|ag-x%}x=O*l)gy`<1ATiMIz=MN8
zFU{%Zk|aq;i~=DDQlNsT_JP_5YzS0NQd>u99gP>%J}_+>T<tMhqJ&0EkjVm+Ce;EN
zJa&A-#Mb1c!kLULNf{1 at gy0ZD-6x4nd&jx}MYm74*d$F;YHzU~ocGZJ>p*T&e7E6?
zPcQjrpPBRN>mx?f1}PGf3@)5cdEFV!1KVBBb`9NJt^dKwIZE$wt$S{)q6&`M1$>Y+
z4oWYmoCIrPEVP29lQd3Jx`xI}8mFlnN60hq4a<`Q>Sc+N2H){WAs7q>ujy{hT_CRF
zM$=T_9sO>B>GcpYp|TCug_vDB#a2ghZCvuJzjeaLzHrRaE-<>o=1}p@^9ApEU55+j
z1i9|uT*JI7Su~2J3(V_4<Dm`#XC+M#R34h3WAbF7 at tzuia}w_zApla6N`X=VB at E8T
zxT;+sHxd;Z%Gn5S9nLxGx+d>*84ic{k301Q6oRU;2ohAD)9H7R!QvZF?LlclmP<bT
z<S~EmqlaAHE6KFt%wWj7pAh`mV>>*sRbXw+tP+f;bCzCEdPT4f8^981oWKV`6QFVd
z=RH0EK41g55dZ9hpuy1uL5;+^03qNA$Ph?S1ZhZ&!q^4Ns=}yfb at Tb0tznOTuXDdO
zz at cgaN*R>N=yZoT4GSOW$po)!{+AEm=GXpUm*ZgBG(Fz+M3+DR?jetErp%T#lV!uQ
z3RKSFM4X6tAMgmAkBxx_uwGC(M-u`rNL=tVAz*323vtlwgT!-Z!eLvlQ48<^ngCiz
zsAt$}hE at tGHRJJ=-Wwi4X?_2IDBFzBRwYU&<VjAq=;2G~3CUb7_&dLGz;AwbLP!h`
zcRKvy`wD*i&70V{VQ*H`SWobZ+6SBm=LEG2;K2HTZ332n_kj>}3$P~yg`)+|1*`)H
zc<-=Y;Jw7sX2&A7`GnUrQs4xrM8RT2hC`YhwB+REh;Fyb{V>RS!BDue4x=SP3(`Cx
z(+x*b@;85dk57Dl42kE59?1Bm4_ at RATPcTQ%ZY99HiEHi8iKbFKodxmrbeI$I34g-
z;Dg2@@WJB(SUkZCG=f at 6oR3AR69R<7ivZpc1Tj7aiO116MGzpAK-E*SR3LOp6QC{^
zY;A4bHQ9LWCpM>w{<Mg9_ at I#3#PGL&{W>4}!Vy7ue*7&1{`#MLgsz`+bL?0;3trL$
zi3l~BQItNRtl^-BlX1!M)G}@?mGzW1CP+R6ob&`CQ9*zPArw-AQgS_Ba?(YPj}Q^O
z&@%G`co*l6S_u+YqKXbA1$Htec*oY6oi=F`i2Gp_wf>II<F&>#Lv}V&{@zFT`JI2c
zk1&Qm^R_;J;{#`zImgwdflv|%NFnJc!BL~RaZvK~Ud_#uhU2AWQ9BwT;w(@JkO3h>
zbl+0qWwbzH1%dc?Lih+`0B<6=TFbR9`Beu-3Y36EdJ<n at x*c57V=<kPBncNToV&}*
z+!u+Bb%Dk^QVW}#hEIOI;a5L$ol3%co+$X0KYJEyVLbC70t$tZiW`%fKe{sJslAfJ
z<C4lNlul8?p|l`T3aJHNfNWWDUWC|A6QF~@D*-{^ga_Ioued|daxP}2VKo32apq#A
zAd!MXdx}n%I@{oA|0Y|*4bGjr at akR3=TQw#xB6b`w%^^UTW|zdA%$aiV)?aCe}kiC
zpSM3+ at GF1zBDHrMR06F^3X^baB>Ci5_xQrIOU84JNdhWKD3kykK`2B3Ap&0dn5}x%
zS_dr&LtqgIABe^(2_hz1L4a?+yp$3bLX3ej#1^4<NTra<v#Bhyzd>dSv`X1Ie~!(;
z5b${aDp_N=8^jRY3u5sr at j33cMDJqz$_f6D5B~{YSw6z+FKqMIKDdd_72}blClz&o
zfAN(Qe(TFK4kjf@(Wl$@n9$J3h)@t9WqSt(f%Fn90tgRMw(!N9H^gNEf{eTxFT$FU
z?ujnb14w}&TB;;~R-hmamO&;#Zs9$oY0kNGXDRYL=H0IXJ7Z;tchg1WdUW at ySz=vQ
z2nG9-C4X{#2Io?K?nkzH`}u9Ik7|0k<HkwN|MsapK7XwuO(eZuA1MW3X at pn<C`5!w
zcv`n9BdF~ccH+)mDce$E73YEo#DPlu9lixQzFgepri|2dM9r`$aA`{8EJ>a)91ht%
zJR$@~5Pt0eUKP*U60gVOG3U0oICpmE)r*OBU6M%2{_%)e6?pIKxB01eY_dO@(dndo
z^~#dJ`v)f+O&0XK2|{|5Z@@bca&1X5=0%q&)rz#_ku3mHM9@|)lh*0 at cq_*@64urS
zG1<AppHXd(DS$R~R7IzoVV$R{DmJ=9L{R+E=RS|e(|C6mo9-0_P{c08Y&HW4 at A;7*
z;oRAsS2Ql(1>(GM2xqx|Yk^XVUwGexq%u$@icdX##6SGKeHIw{odkg+c!iS=Ayy3V
zfDjTyYc*2f2_T|X#Td5&Y1L&A1RoGmAY at A<ma>hdf`Dr;jzYGHO$ZJz6(TsK)O2+d
z8}cslS9`q<`-eyT-tT=JPr$zlO`DY~l|rL~BFMlGzWbe|X&S%BE4Wm2w<XRd1l#b{
zYsb9pEf4XQOG9i}@<*4){OU&z at H(NN$0-NIS>OtfXo2x=_bq^@<3kWJnyq4oL=aSb
zr%=&yeVg%!5Y}#UW!bHNMYLUB?*mF&65-g&B)ufTikz}qVvM0`8m7y#{kLBQ5Q9f3
ziM2~6qdDi#@1Uh#gD3C7qkRP?`<BIg%Dk-D8_oH5e*9f%<N5t>l>FK!4?%14Jm7?i
z_1x;>C}6cr)4I`UfgogT=7|<Sq(De<$L#>V{qw41Kyr#+DAulXeIbNuty-Y8B9kyk
z1X*e#Da$!Tu>8`8{sSI- at WB^lmcJ5~sI=y(Z#>Q4`S1USww)MWm9 at S#h}L?_*_ at lB
z5qZ|(hu`!N&+bn72cNvbiB}8?j|>KnJ5|H2%??C}wchhm>9DdU8NX?uE%ZhERuN(&
zK=^niL|ES>UIaw&C at Ikz5-lPVKsj8HBs!tnQJl#e(xgB*P4J#1NqG3uMRv|?zv_ke
z*^@H_;bRzq^^WJO0^)p8vshN_?TvZ;Lz`^$Q~s;p*<)`a==TCb=ysaW7VE3kx7L}i
zEs9lU8trFQ^Q}B0>tu!X&EN?Lp<4GDyEX)Yk`^r$S)wpnp#=y$LP&xT7$w+9pl3iQ
z2H7ZFU6E%ACQa6D#Cz>jzEY36t~t#>e>KvnHHg#2oXLE~Xjby(*S(1kKQ-eE&(-t_
zgAjHd- at J%3K`k}3iAazFFWby>H4#}QHBz*F&-NR&uU%W|I;KX`mNHtUk%3N{APpEH
zkiw#cibcMRH&bq4Bk^>UAOR}vsmmE at qRBf&>>@gcG3He(E$+IJU!@yoeWR4~83&^&
z083f$Pd~RyPg#ud_ at D_$Xsty`Nsw_g6m+B at u0HT8R{H0Ck=VZ$cjD#h`L?4YSFZ^H
zttCaCkZMID1xh+Htw<9^o`|^DVW5*FbWI>{cRp<0Fq_TdM%JlqtXFH@{9X$^uPTU>
z`HabAMxr!- at ReH}jAxjl4?)syAjYiJ3sjpcNUhppT_M}z+_%Zf+Kq<xr;>Ml*;Uo2
zgg~NVK_225EH{c&N{k8^Eyxlb0o9NiNnsR463C3EqapD&@?4vS(R4=M?X6QIt at ZuW
z03RQpAhBHDTk_ePW6aJQv0;G-9wRhX#!x1uh?QIGCgmw$!l|b9x|JveP73t832>*Q
zvr2k`i1R}&S5~G`xHw``pru5c*jJTOV%h|#lR!^9l=pZ6^W}n*lM~W3y}O<HD)3HE
z_rLGCV)tr*I5|0HzOXzsJ41HnEj)6z!?a#7D;3sSgln(_gkL2#Iu^JhtZN`~%AKCJ
zI3ZVAPHS=E)N9vcB~PwXip(ID$KXkg#z-(yU?eCdFsij|Dd;4Ep>inU5jtTsnJ}Bp
zD2jr+M{KXWC5mt1Mq{1(3K#p!WySTIhn$R0c>Tr(Z`wYl*DERMun0MeS~0PnQSGR#
zV_7e0EY#jdibV+M)`iA8J!XVni3qUwcr+-#j)5T7d{8Gmi8SP?MhZ(RB&pV<TBDR8
zRiI at cRiI>?h!oP0rGgHYN_di{W;B{mInTz%#*1I!*Qz@`JUZg?t?QJ>6V4C5N?3dm
znGERU1Ge)nF5Si#X9)d16VYQqkEu(T*088Ov$CPGf+ZE+dwio1DiWN8kO(O-p{)r8
z>)vR*YaKEK(!?NDyxv*~v=nOq)3sX#(@y<!Eyxo|ST3kUg$<J9<6{Jhjdld}TIZYI
z1>zUJ at CBaw%98}I=`Z?pvXrhFA>{<E1Ze^)Nin*^*(^nNhS=^I>U>D(ZLk!5Mm}e5
zbCzB+t~}GyVjHmDQ#oj;5h3<gLtAUEtWrotqT|TPAW5{qC`lp%i4-I%kVr_ARjmk_
z7HDaqoKo8*0?n;kyLj(g)_353S at +i=1Uf~=<8OK!`+L`z93OG87m!+!rivoZ$@2~J
zEMUYEtqocolIUm1j6@|lSw3JRA40l;&$pNkH(9724G9yMa#9DDbwX)<q-!({A$Xin
zc%evyMG1|P?TAoFqy(cNHHt(BGU+ffx^1H*9b?eK63PjS#1Z_0r=NbB{xGhI-%oN4
z8sPo!e?Ra2iT81IGUoW;kY}!3<(X%m;qo`1V|V{H`}^0hb%W6<NtTjj1z8eTvr|=J
z%$!W`BeW;chGCMindZ2BfavWI(joKi7E4_)mj%<%VNwegm8EPfK`3%5NVG$>qbngn
zO1*9!8?EnvC_HH*5p_*d&zVSrUC!9syUoRm7r5W_HuNex)KYPFYm>8Eo4oOf#|XS1
z+c-v}30H64;JIfm^UQP4a`oCxZtb72cd$>0QzE)WMw)l%<eDr`P%Ow2g;F;#vLHz^
z21d}yGPa8$qS(M?+blcVEYv2}q^KmN!V-c+A!7aL9R^E6T$qU&Di{HUmdq9v^<qv*
z!D3#L7hN8G=wa at +hmJ+OkHd%{)+K^OVvJ;GXN#SkEq?GFZzqI6<7#g09&+>MO|D(L
z!PDP-hU?dFvcJE}@o|YqVA6!5C at 8X=JhLb@!x%$q6j~m}IA;ufle3j~kZF&q*dTPb
z3EeG{&IT&a5hg*Y94#cld8Bs;X%W(qW|H|~$zm}hm6~$7<m}nAJoeaQ_aBH-%2NgV
zi)ZAkxn81E9(v#c4_|zMKlSb(CWOFrI_3EIn5(z;c;=bQT>j=W+`4^}(a8yi2PIjN
zV at wyN6nSEhT9GA?=mw*w=&*-Q3_ at uVE$~^Frs$&wTlnr4YOq1xA7Y9jrpU;3V2~@O
zmnW1>#jIMgTrTP585bWoe~(Xp_gLukn%j5U1bDH@{7T!7wy$-%MwH<@`yKac)xDJF
z#CJUN7BA8x6hhGN_v!chJoNCxyyr*X9XT}KarMe|{`iYe^3Q+kx0uZqcwjLN7$s0b
zq7y at E5=^QwDj`cWK?&4+N^-o9xpf(35*8*wm=3zzA?=-|Gu);;v(038k7QKSNXKNc
zKuXQl&h`tHiipE&A!s*~?*ZT`A;NoIz!$ryaq at C%0(xrn<WK*4!FMFX@^U&$-!*Yz
zHT;ZPF)*D at xq15*w{PBHF`r|E<y~)o8(;X!*YVyXr6x2r-g~O1j-#7tWVdOpNlXW0
z3^Es}G(puhsZey}95ItD_HJ+hB%Q#<J9bzKN48&5PUrM`J^J0j3tY))Hpf~UB~hfj
zH&Ca#Om{0$efxouxa;S=Un^SX`nS`#d(}WZO~G4j7+<}1gRgz{tL*OWwKFxqS%i|D
zJ+sZ*-t<PEyLydf;|V6gdy8;s`vpD0Ib36@>M`@mBgc>$14)W9no*|7Ly9p5Cq3Qw
zHhk%gPcfLCr}xpbRMRErE^X0!-YQ!Nfsg*~C;8$R|CmP~ev~t3HyCVevNPPI-|Nxs
zX7svUv`O!p#C$vOPP=C*Wz>fiw6dWA8M6#r`<m0O$nT{UzAO+|A3T-;lB1Jjo_z92
z_V*4+l7yX|9i$L6HZsr3vZSmkcDB1@$s^o8KA~<LwQVA3Ra{_2cw|)}ouN>Q`FO(K
z!4X-JB2APQn}#UBkTxlH1X~*kYTmGaG(k=0JaGQa?V at ah))FD25YbalJ;kR#`^Wr$
zfATc5`3e0Zr(5J~47wD(9-CV`Z1oHJ{UMthTWo9&84mk&yIuPIKAk*`ZvWI=^7-?^
zAbcEb`?&n$y={l)@?}}sOL_fE260V%3V~-XKf~9*_B45(^Y~+rMNUntm{`}*RnBHJ
zrqel#<%qm6T+o}8WldQ%*rvg{xV~nsrM8a7SzKfBUUL2RF4OrW#xm!*_{c?4sYnY!
z`6&U<4Y_ at 7pT(6up15$HOP3zu*=L_Y>x48-+1lEmE*;aOLz*DCaPd)o{IQ3)y?emn
z(E&HcBdXn-)L;H4N`jG+#3+g^B`;Enyicc-(;sx$=nv>`3>gdtY!3$vd;KUj*y%<o
zv!WntHF*?qXb?icoKm!UDImTgiOuuxkf)!1hRc^Pv%S3?_W*?;NfNY<>KCh(>!K(~
zvlC|1jM;2PqAN08QzlF5%CIcwxW-a at k2Zpk7N9j}&+Z_E<I3fy(OQ#b30u7Zh0uiD
z^JjkS&(Sd%&zh^;81D0?H$KAF#*p!J7Pn84ESF2h<1sgG-DGq$;^%+%2l!8Z>1SBf
zj at f+9@wnpnV9MV95jT&<>>ccLbaKqe$qCcxn9*oPwR?o~C8;t%AWJk!qDf5>wdXoH
zS(dRm*kosC3l{`$dHdT)vJ~e9`v)WX{ULd3NVIv$@o at EgXp8cD2}r#3m?#7{Zr<kV
zwQFpjJCBqS8=%N at 5^YEmjY$$h2+Yf6q;pt{vjST;%$>s|60apfS%g+pRfStFY3hn{
zJ^>l<Ny4C;^4Oz~P;@#t=diV-k%4Ml^RbWrF8|SA{UsiG;$fPm!Fx|xmTQK22=OMm
zeDwym_V;K4Yz(^u;%IBw?bGkV#f#e at AH_CMSAk_|nat)KPv(rqbM}vq8I7kL9v*Xi
zvd>~NqFhdy)g{LVGxWh2O+bpv7^BFtjA4I(^A+Fx+E;nz>2K2Mbm(_;y4^0lUZ25W
zgN=<1dc6*vPC=gM^z(!yNnSv5UIDve?Fn&*kM!~_(R;r5<u9?fcfj7kF(%Puc}~CA
zW6<r8=Q*8D2cgwEb4AH0vX>Z?Gx(-KV-Sg4(>;_@=u)GlqAW`mvpL>-@?Mv^tZ*)}
z?40!^Nye>PxA^Gq{VqTK(?890I*r-!smwCQY|Zh}3CraYB~o0l%;yyj6PH_Eg>AQ(
ztH!l5FAlU}V`Gcqa5K^#1I(I+<+5TiFPTgi9M4Lo(=p at mn8kd`Vm6|zri{uthbIe+
zZ_v`BLRe2<lolvyBITsLCTUTS7hSsDA>AUS+aE9-4%zHQ&<BG7MUgQW^byVxf^XL*
zz6(n{JU+sE%YzSJ!Zp4v8)DkNsM^w at s&ELbtywG<Os7*O(>crK5 at +v_u2$ed%nX%^
zF~t~zGMaL+q+XUl6yICD*LzD|6ny>bUuU^olBOw5)7;HFX+P7X6&mafx at 1|w-rhdl
z&9f+N at F9vhI2+k}K6tE9Sf^N4mc~o0w^U7o3j*&Iq+K%8;anfixJy)xWnpU;wPik^
zQ!Z=f%LVh<gymw2t!K;@Q+(y{%@WNN;T?$#7}b!?$7E`RRyR;eAw&GGK^b(CQWP1B
z*^>AD=^y2TKlwhqd*PWSFB!zTvT^uYdmO|*r&8#up-yV*Bq7VP_(70plad!9N at vzJ
zWm!^HHLkId70?2?+9FcQP!tNS6B3<Lss+<Utn&hrAU!CF7qDC|@!qfBze=iBH-z&I
z)A0x;C7n*6?Ow6YF#Sp`5<%lFK6n}@a9+|hHZHO{k9Q6T_ at F5pM`In<2Wm%D)M~YL
zyi_FFCc=1R$C3^lje|Nks-~n`mMoVQ%jKMUF=M=#()cC5UO-c#WFV!aqb+$>u$cw&
zs-kHc_V at Ss@P|LlpZ<||)9V(`6XbmvAa*-BH*el#HeaIC6xr at fNV!_kW}V<@ty|?`
z(^^?dmgPW<lhf&xvMgEF6~Wrrh*zrRoNDr{Ak_&vO_)xnESJl;q at xwH*^Jjc@(@K)
zFq_TRmbZ#2Aq48WWHy_jmEp{pb3AbIB6+WmK+-seb&-|e39Z-?@j35t4$9#0K_FcY
zAx>C~5LoMwqG3`yEK!r7^3b>jCp1ndgfe&<giMe+B{c=AD at d)Rv<*w=2~AB?RV=Fo
zRkdWaTr&5D&ej>;HT?u?F+nF$l(%UbmgSsYw^%nKR=w_*4B~J&<nh-%%FVrf-tmri
zG9HhyHWFr?b6DqTni^{@P18`fG(zVb*4nk@<$28NvMi(1G}LuPRaMk=6B_|Swlqg5
ziUK8dRJW>2s;c7X=!n1aiyyj+F29O}(Ha%CZLq=9A8zo_>t4sjOBYyHj>dUv at 3F0p
zj`v`l!1_o(u at 0n!p%RovFfB_CPnH~v1-Ivcy_sh*Z<tmUb1UNVtBw1WQYoZxNG(uW
zqNO0w5 at QmS3@B>6OfX7PnGU1 at 6F@o#F3>YM5A_4d=f^C{B_;%HU6FM+Ns@%q3d<{x
zs$WjG=Kb$~Kfn4v|4&?f_A-w@{y3x2s8t_sFCrPvIh+k^tBWN^LseBQmrEv-3EulS
zlS~t|HV7fn+E6wXO=FSmnwyl8G)*ZwIg7=NKm5Z#<bxmlAa8%iTNxd{7vf<602&ZU
zL_t)a+>tYLZXFMcB1hMTUa!Z_+4H>a;fKjm!DMP_yr5|nBC!%19Ch&cCMs5?x#nc-
z`O4mmFW;E+jawBr$Bt>)u(V*kLWW3UmJ+0j18cM-2!;1?rzA*62m&dhM>0yFv?o<@
z9;&sBv`;A^c&xW{@|=!8VmaN%*_eq2=VCV79o(}Vd08M11_S=ehklX2|EvFi8 at G3P
z>s#MSl4z{8lyw<>wvQsVs|)LV%&O8fB}o!Gog%u@<&w#yBuUb>YDQ)f6cTGKS{jf7
znRs at 0Z}H4CPxFgE|CjjLpZ!^OZ{5Ziv$ni6HKb`uw_7k63^+QTFx=SWWZJO3wS}ug
zyU_)~ORTez0PO+=0y>`SM}bfN(TLAJeaz*(CF4pXgFz&oJdvCq3N|~6ER|#?C(AXa
zb>Xh1?^n)K`)Ki%Rn#sD at VZv7Zs7ydnME53vWYWNEzy8h2D_}N$1{QuG%CRf$=248
z7hAE^FSXEDDt05zo;}as_|JcZ|NEc(KYa4zALZeP9_8Z2i*$NjthFo_CC<4vzPK2B
zyl?BBn1E=l>2x}6d#;M{Q!0dnG)>8~6k9di-rM8G&FgfFg#YxHf0_5Z=RJ7uxp3hE
zRaLE%nKVsF)7W1XLa?_#BFR&FgCYIFkg|!1iwzbRqBtPJGw9|#cUbe!KQ-p#Up`>>
zB(SUnsmZxG2wdFJJao>m)6W=mQxX+7k5}KPv4PS_taU8CqY8p1s3 at WBB~5_R8+ at aw
z8(4UldrM<2we$F(sA|s=!3K)u?2x8jVud1c4UO{*2ZNPd6mb>pWr7%0EFv&X(~##m
zfB8edz|&9vFdzTK at AH|@e1^2h**SBLt<51xlEsX+t_jwz0bRwg)qiP{AdxiAf)rTi
zSd6Fa?e8)jov^vF!C(CI|1KZ+zz67bI_q+x+wIcrcJDdg3jt=!1>L+urx4`*4$Hd2
zw#tr`gG@<+%J at G&ca#79_s8rWG+;pGf*-h)^Ug<lJn=xmMj`P8s?swp1&b0I8#U*u
zAgP_l`B-OGPT at SQ^rwunXI at eVi4TFGz~IP*BvmPu_cVCC1Lq}qA`r_Xs%lBl1=d=Y
zWktW=U(d9j-`RP|?sS#T-_b{fH at x8uJoeaQT)%#uC%^O+zVziUa`noyG3K at HDWOfY
z5P3(8z&qC_Ke5j`o=jLS7AOM!exEl!_6FYlZ~YK&eB&GG7M=Bn*WW^~Extyy{niR)
zQqrDbm}wSPQimEGY;-lx9xnMGfBP!`;wvSUvt)(fEe~$+fw%N{)A=Z8J*xua(z9$V
z);pTuaDWv8>pj-RT@~x&x}C-0h#O?y2k^ub at 0`HlsYTp<4jx=Ptft-R)JkHELYId)
z=g^77TZ^qLdc9t>Ll;o$yNrqJ(F?qwMRe)XB`#gM#7}+TCmBt~T)TFS8`rM0ySvNv
z+xr~tA5c|Qj6-d3R>Yp`*474Ze&TV?UpUL74?n`iix<hV?4CWvd-osj=9z{NHRZCb
zAZ-Gv$)a?bmuwFWpZ>~(zxn^(;Kp8slr^tEx4~cd(LO))Xct1wXlbbGKxvz`@}nbQ
zgQgBqiMjCsOO&a0LAE7|XhjDFjfeshK0qU5JoZ6E!gc$1&IJe(2N)3`IQ(LYlJWXB
zO+#ZVhQt0nuldW0iQn!}uhq}3jZL;Uw|M6}eqjCgWm!_zv4F+L_-c$<Cp*voUDn#z
zG`I&X{>48_1k<}Fx at v7m5((O15o{HTk9_`s|Kc}pFl(Tb1m64hhxvscFX*U*+lv}o
z>F6a|7uf_s<01&wdc2o}RZFowXVL|alak;i&PQocXXARG3(-|N1R;1l9vk9K01}VD
z2M}6dti>%Rv5#sD%SA;9Va;k^ZC`&^G4VSZjc9%Ms<VuA{#9N0tp=>8o4qRlSD>A~
z3t#wI<Xt~&3tmQ at 8=0g?tr(_)|Lb$d{H=d-n?)meAb0%y`yS-qepiQj0f&nvs+82^
zl*|ZCXjc&&iH0VqDEZk08ls+E>FioSHw2=)4ed6Vh#jFoTs`n!MoaYVl5UVRqLm88
zqlH0Jk at yOocM)06@$n(uZik)Ct+qiE?xJ~w5cr<zN}RTk?`C!u`>A*T&X+1-Vncf~
znT$RKo1Ki`{`@h2`!}w$be4y at 1%Lf#9_Ag7rtBVD$}(D9Ej`jL=wPU`ig^R0g<^LS
z7%xhW7fa at ir?Qg91}fUU%hmS~v6n1cb*v~RA`nu>^>rVji*4Ph4FVr*JPAu=Xm?Cu
z0#$E_G at 7bh^6<qA6rJo&{CwWEd)f2E?-Y>ll;QQgqb)>tYHf{Hg1YjY*;IV}>WKgP
zpI&292Oi$Y`7eL&Jdd3>+&rkLT#Q at 7LM{~(U32@`^W1L5vxj5$W{O$e5Q3l)5 at j?x
zYF~kp>jm1lr7qW7({Xd!AzMKusRCxT)~6)|8MSznj?16glGvI&QE1b{dyn-E=P#U%
zzax00kl%f=e-|a;TMRPqMPc|}b4y+%?P?p`H6m0fC2+FC-}=p)>>t%UIMn>g&pg0m
z=OqXGfu`N!>Lw{CzTwGhW4>^?;qrJ%*@S3Ki6>DSiK5k`$4P;ds$CE|CHp1f{$>=%
zl7Nl`DGlBW>Q>VZA1%m>fcI?+Ee&*h&9Lawq?-A3hSUicE?l^a&-DCjroUVF`O1Ux
z5<Nw{i)d;vL6B?sUq5!4KlnzM?IPi?{?tX@`cTU4BZrkWnKqObKK}HGPkm#-%~3 at V
zkYs^EiRczv>6OS<b8+ig5~V&*9ml)k9m$m<mS8QaL>#LUlx#V?V8co|Bp?YSA|sJA
zimoB(f>2wA-5!@NKJ<dh;Co70{MYRvT7ICjOVTXikH5CZM?ZCdy7V^wy>~y%d)`uT
zaN^L?k*677yE*4KKRe>fhaROGirgcGA$T8|=dEQ0eTR4))<o-YO8JU*dzzTaw9R`~
z+h4L(jEq_oQM0aP#|h&4Un(WN(9jzU38KSdv7q1YbN1ZME6Y3m*YOcTAT%X5SibPw
z0plv+J(n)<bMH-<O-iJKM)vq;e|(eQ{^Ej>s~Bb}CMaxsN{?u*EQAo_m*6gitMwtA
zD^Wrv?jj1W6h$O=tAwnj)1aNyctR95AXN=RAsO}uR21aXV>UK6*x5dNe}Nc6Y`Ry@
zQ!Z<6A1}za&her54A9n45~!WwAARCFpZvy%PRDRwr`X`|s- at naX1J>;Jb1Sf$f-K@
zlnTgc0N2tkt>zE38VB- at JXoYz#Pw<^1X?+^jG)jxR8S;|VP|KDt<B;61LEq!+9r;?
z=97}=_8jm3(H-9OXovZ<<e*CUM<0EL&t3Nn`vZ(x&;&=20xcwta7V9or9}{k0)pXg
zYxJj?;}S$@PeKk+LBxx-e{Z!~BR`e(`&)4Fq*9V;M?aGkp^G9aX`S8PdO?5qwQq?)
zSvl&e;+ew(Y6O4r#~wu}!FU<?yC1#IQ#U*tLr{JmrxDVlxpUFOy7p@|d0GHO>mG%O
zgJ9&HEwYs|2&c5|+AWaiiV<t6Fxd((dGFS%0zpZ7NV*+K5(;D!`9#Cbtrv8&Ub7&E
zQ*Lgum}2WC&t4w$_BWj44G(T{d{XlFKXJ_0cb9Ar6SNCB<8b&^dpu^fLW%V{`dU=*
zlq)?g+ag-m7$kTl2tGcy7F!Z8Y|112y62*lLMj11s$LB=bTUQo2GI^aHwVMJnjf!i
zOAHR@<As^dXUrxuZk{aokvBhq>1zJ*C$96kE5~dMG7{eqgn^)1<^MK|gebNoPXUN(
zmtn$PE?c(Nxe}wthgM%uAXGpG(Y_~Yv|0p41(fg at qezrOBS0r0ELo=6?3DCOm&U<F
zlnCJ%48Q#`Nv|0YBcV1rti@!?Xj!q42|xMxIX?C$`+V#xQ~E_89UNAAys&o_=<A<S
z;N<CY#jo3D>;A5|vpeU-ojr_b(XB+bywmdyI5J}>5{;5k*2Sz!6crbGyIQcR1*ujD
zE%9SZaE^YrcmIG0zU^qhVzS_5Jm#UTEtYAYU;p?%K_wVnW2I?TAAQUs+k|DcODI=*
zJR%AMo>rAyl at XFy?E5xehR_}XFJc4Wj^t-_rQJLuRRSd=y;2EKtAC$BA|)Ly=$n9{
zLa3aosR<#pM+e?FAjVFJwKb#plF?|wX7>Ug`O*=$CZ4UXz=S}JZS_<Y_?S(udY!Z}
zZlzHdguG*+A{O?@cr20>vYpPX`lg~S?tRQ|LqICX(}YyT^1<lXri%=4-8Kdksr2Nj
zVxTRA*!@||%Qcbg+x3=TQ`xBi7R!p`lOuc(Tt6Q3nJXE+d<zgXB8^8fv at TLgffe^|
z6Do11p7XLTGl-j_Ld!e#VOyw+)tMb_?I>i3nguGLq{nC#m9a!T7D>uhfLAI~8R(>j
zuJlN$aCpX}5#B+TW#6`q`P#`&+q?B-GNoQjnOM&sTs~pOCHfi~UlB0zn4=KZt+BhB
z^eYRLcjP at +<$_wB*`eB^{nYzhSP9tsR#G&OC6aFHkscB)(aMqNNCeYLqEtW=5W-Pt
zLC-XFq>Jo!?>Rg^z&Ur%`Ri-GPMl7sEUN{#XB{T$ZM^Q`M<7fo>y&xbP`emE+v0-6
zN9|UGiOT=-6sWR2Js_<5ob5p^;?B?u;gR at LZ8eWpP$UK=0*MB#14bzlqex{uQ74fx
zwki?GjHIIj33cS_*oN`Rh^^tqU1Ec;{p>W_3kL at W+}u5($O1oc at qob=c-5tp9i}d4
z>H at Q+XW2OBrKhwW>mAlxq>uBx(4G(g5*b$KQ~6e$SDlgtjYrkXcJD9*hZK$?$w;(B
z1&>saXiX*ssfaq}TFS^0moZDtQ%M&`?LFSr%$Fr6Cu1&MdI%-eePoG3;hf{@wd>rx
zy~p;}g1+8Ij7z$vORw1COuk9T2H0YUI^AGF!8mkT_`qb at FtdVXqgYlksh~Z9)dz<c
z at icNNBB3dWfIzL8ccG1sT5D1jk3lk8k|>E50;46Vj4F{vgO(a0As116Hw$sOrj`kl
z at r=oI%COge0UhHt4WbWl`}S at A<)=Q)l^a(W&3g>8K3UR1rE{d3QRr)E<uOT4n)T_W
zJ<eqVe73=|IEPDmEXf$tVP*}Breaw;X0>HuEsbli2x>ISi|B at Z%x-mi^sdqgQh1Dz
z7^yJElPG~v9-|amL8>KMMW&w?o-|P;iv_M6Q<<~u?jLcmzt3PW_%@`l*BFShjahGf
z^AjXV#_rw$`}>E~b{}mZ$x=GqA$gvY>KUn7qQo9rf=UdT(WIusAm8GAv4PKf%!?h$
z-Ug-YFlWHb2F7(@ZUaqasj7;~Sxk^r!6F2tGN6Qx!{o%E6;bwDHKdvt8<iqav92{T
z(9KfB)H1J1R9SNE#x)KO4(N7^@94X~rh2CjJn#U2?U(;!s;c7P at R-}TZ*%qPRlf1f
zXSw{`6^@S&**!RjEihxq(}XNf$g>VQNy)S$krTAOijt5do?f<z&$@`Lk0`cS7H25C
z8!TnPOyrCj&Aif#YKspQLm3DXBo6!%bb^!$C1u<WPGT~nl)y+&t|W<YG}VMf8Bk@#
z=;Q<+0$W>K(F$K6uJoGiorZN?m!>HfA2`p&2hQ_DKln}{a$ffjj(Fy|D?Iz$l}K#9
zaf{u<0}c+4Avm<kD6)i3rxVxd(gL$Mp^zhl2q>e;5<|zN$Yg-;ZQ-(LwTu21r5<3@
z0;Hmmf+jdpFVLYzg($!)sZm0bMK&cS%_*d3vY1d;6^r?jx~_TPfs33!e||lq{8mv>
zgjY-V|5d0HPyf90d|X#M{pVGDna}6kxOtnKH*WCkmCHQ+%oT3k-skxEkg}<PKvop=
zvVtTlNV1ev2#it~EzmmdS{e-|--NUSSqIhKB6K&Qw+(q8nPu@*0FxnnK!*zD8x#VW
z=j3k5;gi2de>q2|8DIL+mk>hm-~G4$4O-ntG4X|JP|xq>+}-O2=yW<f{@Ckz{IS>b
z6TBDa8ph)(`}_M`e(qVmdG#jGJ@*{9clS9yJd78tU1yit#A$?%>XFI(m_!~UWI!2-
zP=+MQ&}o71ZqoG6qI(;3hJCW$21(u{Pb9sLrkrRFCrc_{;ibhkjt3t&^Bn>Bnk at Fe
z)6UM_B7Tvps+3`KbCb=@O&)*z@%6<UogDGaE7$q$-}xwC{_>Y;swK^0(bkNykY9;L
zWJyYr#?nKJIX*c?jc$^NuajxRLZ_&Ffaq<I_IB9V-lD;>98XcHWT7OB*_fTJH^ooZ
zY7*QxiH&#(7W;e^#?xQ|R8_^T+k4#Jy~)wh5p`Md`iCB1KAmx6caM%S>xCCvM<Iz>
zT{7{YRf0B>#AN6+A<;2;DUBc`o?<aa9z91TdmQLM?}?1!&3#7KMr6}2wX4}VzjNpF
z-Y<!bcsbTc<dNc6C+J8<qY+O%^%PgGTw__5ch1Oi4QZP4rYGKj5Q5Qcjz<uLjEWrI
z$KkKF;4Ri#=CcW5Di8`pYEVj$tCX=xQK=&H$7GLpxb>q~n1>nX!xOkqH{`m*0}otU
z-&kRN0`tA~Q13f;`og#wXM<%~^3+pb<Jsq)125Rv+-6J0M5rtmQ6Q-*A$Z>Kx`)|6
zo-mz9!K7s!)vKDuB1}W at 6~ZQ%JSryd?(QN&Ly{y^NfHZqDbPMeq$3^_l8s)U$;p)C
zv8C5f+1}iss;X9IP2BUdulHVFE7|FH^Ef&l@#K?FQkFH_+nZ!*8W&;PZLP8_Su7UJ
z=X2(ZDa%De?JQ+kVyl|U1<E=qhJ<#L`u}h5e0tkB&N%$c%+8LM6iG=;<v13kIBD#Q
z>%ytq1_q2cEov0~4n at 8}kyHA$g1|QyHGFB}q=Dt6ap5|F11Od3%5)@A`+tX<!|X0s
zag-E6TEHL&;DHA&0lu7>_uub%Q(F)xuG#5}2cI+A`8Nx`CeBipmzQ~A?IcN(Fc?0E
zcwQ0}5u-a#SX4cJ|A#kt<MJi)Jg3|3Hm~E#QZu;|YYG;?S9=G1w0Xy|ZceV?c}}hC
z>xCvSnq?Vr95X)L#~cJ4s6CP-V?lewUW~CBMi!)LNsc8iCn(=R?TsHW=ovQC7 at MXH
z20d0*Rv2{pXstN+(#u at FaGB4xxA@QE7S@;i^1^uz$6q;M!(qtCQ*^uC1``$pLF4TF
z=+d at l!U3u%Q9=uHTky%<e>&Zy30xXXYn0aL1w-H)q?8SWH?sw4ZZSoGMPQQ>)9IoL
z4blV8Fo{F*GNH&)@+c?e0MGN-cyY}o$32ZL3bHgt2+8}mZn3nq#BYE18<Oa31scq-
z6UV at r;F_TisySHu`}-^{EioKUTN!6>CrW`rBLr-1ZE^43Js0;$Ne~1CfuY}ZK!>c`
z#n;*ugDXOZ=XuW1UNMCN3J(JfMavjN6h*{wOrE4fQA7{~6h+a{J|>mQ*ciiKuK$%Y
zXV0=U=n=;uQhE(FN+PFI?#hxd42hzMvMf1u>eOuRL{SYWqlAYKAF{r_j at G)tZECG3
z$_Y{G5H7OvIHN2j49ASeA%};Dq^To#I2_tk>FjwDPb at UXjN=#;$An>swWX_1*4XI^
zgZB9GW4?IsfJ>KNBTeJ#d7=q-+PTyEWT*}KgG8p!dZ1rceV|eZ#^W)&qkTNBQOaww
zIa+I1?eKlqou(8 at X^iQT<t15e$#Y8-$7ETKwM8 at CTUOFGDKwsjjt~wusC?%fC9&%u
z048OQ6b>YqWz{(OQdEMQmi(PcCs_dqYr<AT6PeA>!u_?CQhfUH9ePX46uCudMct__
zrK*^u4lXDwQK{#-%*<l1Pp?046s;sCjuVn3CP~t&J-<e^NPKM&9qBp%v`07&DJBI1
zMLC&3DcRWAAWhRFp+g%f+U6Jx1_Oq};p}>+HBd=P$=O%VaO?dKx%BJT5JE7HLZos%
zE_t3;kinvPpXZKgy0^FI3cyNLFbPAq+hJj0fuhJO9BA5rm+HIN7=!P57~dxhLxh66
zcRt}~=gzUdzRq|&KEhaU6GZB?-tzJ?!{HEP%v3czYjI+m$S8#1`t|Gl?Y&!ExpD;|
zM0MQBBlJdVEtDm;B4X9>B*&&pnw{tS2H)3i98+HZ5gbaz=@Ol;-{uzONp9c%h_bN!
z`R%vyeUB{5n$V}lrfKaUPJ_XKe!o9u$+ogi^I#vicI_HBZ{Fm>s~0)(!b!5MMt!=`
z2o7iF>XkLWX3{cn&8Dl5!<yyoK36cAl-MFiDg{cBgb{Z?{RgK`tn$`de?n``?(Xi9
zl$tSyPNze!*K_xC>kfR{S(|Yq){esF<|gmF^DZTD`t)g5S63UzyhE224Un%aONthw
z4%`u)=NU<oQWS-ovQzCUr5w!f$&(S=J71EFL$193I&Z%DN3`)BCOgZTXKSse80}UC
z<Jb{Mvus31Cw7_#V+=)6aO1`eKKS78uG?(5!s_aCEH3s at N;mU9thMenas0MPVV#b#
zx})lF#ii^rMx$LuqY+99F1~u6t5>gb=BKX!Q$}m;z#NyTZ%+k!3X?YLMr=C~^^cgQ
zDfjQ+=l15ueD?Xj9Du$Q1VPsgFR2_2A)F at BT8k~+v6^QYVH7!}wJ7NrH%aan7k|b1
zpP%EzPgY$;qQX|!-(Sao$5&g*V>{pGcjEVys<JHO(W6H^*!q&4ogKEfx7pp at C63dE
zs9f)kz}NKqeO6CC&)V7=8yg$ExV}a==uExNR at v-_4)~fMr~ick+o4EVmQSHMYwxo@
zijSn at zEOp*ou4V_{>Nwh%#HXRyP_SAe0$R1+gF=K{>^94jrff1<nQw;=SG~bX36<a
m at c-GFb0a>(s~tl8uh!QUw3PPevRJtQ0000<MNUMnLSTa4edT)q

diff --git a/src/public/stylesheets/components.css b/src/public/stylesheets/components.css
index 540c413..41ad3d0 100644
--- a/src/public/stylesheets/components.css
+++ b/src/public/stylesheets/components.css
@@ -127,19 +127,38 @@
 }
 
 /***  the no grid items block ***/
-.no-grid-items{
+.no-grid-items {
     padding: 45px;
     margin: 50px;
     height: 150px;
     border: 1px solid #c9e7f7;
     vertical-align: middle;
 }
-.no-grid-items-text {
+
+.no-grid-items img{
+	float:left;
+}
+
+.no-grid-items-text{
   float: left;
-  padding-top: 35px;
   padding-left: 20px;
 }
 
+.no-grid-items-text h2{
+	margin: 0.8em 0 0;
+	font-family: Arial, sans-serif;
+}
+
+.no-grid-items-text p{
+	color:#999999;
+}
+
+.no-grid-items-button{
+	margin: 2.5em 0 0 0;
+}
+
+
+
 /***************************
  *      Graphing Style
  **************************/
-- 
1.6.0.6




More information about the ovirt-devel mailing list