Thread: E CVS: docs technikolor (2024)

Thread: E CVS: docs technikolor (5)

Brought to you by:atmosphere,azundris,codewarrior,digitalfallout,and 9 others

  • Summary
  • Files
  • Reviews
  • Support
  • Mailing Lists
  • Donate
  • CVS

Menu▾▴

  • enlightenment-announce
  • enlightenment-cvs
  • enlightenment-devel
  • enlightenment-git
  • enlightenment-intl
  • enlightenment-release
  • enlightenment-review
  • enlightenment-svn
  • enlightenment-users

enlightenment-cvs

E CVS: docs technikolor

From: <enl...@li...> - 2004-02-20 08:18:40

Enlightenment CVS committalAuthor : technikolorProject : e17Module : docsDir : e17/docsLog Message:Directory /cvsroot/enlightenment/e17/docs added to the repository

E CVS: docs technikolor

From: <enl...@li...> - 2004-02-20 08:20:36

Enlightenment CVS committalAuthor : technikolorProject : e17Module : docsDir : e17/docs/edjebookLog Message:Directory /cvsroot/enlightenment/e17/docs/edjebook added to the repository

E CVS: docs technikolor

From: <enl...@li...> - 2004-02-20 08:20:36

Enlightenment CVS committalAuthor : technikolorProject : e17Module : docsDir : e17/docs/edjebook/imgLog Message:Directory /cvsroot/enlightenment/e17/docs/edjebook/img added to the repository

E CVS: docs technikolor

From: <enl...@li...> - 2004-02-20 08:20:36

Enlightenment CVS committalAuthor : technikolorProject : e17Module : docsDir : e17/docs/edjebook/pre-renderedLog Message:Directory /cvsroot/enlightenment/e17/docs/edjebook/pre-rendered added to the repository

E CVS: docs technikolor

From: <enl...@li...> - 2004-02-20 08:20:38

Enlightenment CVS committalAuthor : technikolorProject : e17Module : docsDir : e17/docs/edjebook/xmlLog Message:Directory /cvsroot/enlightenment/e17/docs/edjebook/xml added to the repository

E CVS: docs technikolor

From: <enl...@li...> - 2004-02-20 08:33:05

Enlightenment CVS committalAuthor : technikolorProject : e17Module : docsDir : e17/docs/edjebookAdded Files:Makefile edjebook.xml Log Message:Initial commit of the Edje Book... commonly found here: http://cuddletech.com/edje/

E CVS: docs technikolor

From: <enl...@li...> - 2004-02-20 08:33:05

Enlightenment CVS committalAuthor : technikolorProject : e17Module : docsDir : e17/docs/edjebook/pre-renderedAdded Files:edjebook.pdf Log Message:Initial commit of the Edje Book... commonly found here: http://cuddletech.com/edje/

E CVS: docs technikolor

From: <enl...@li...> - 2004-02-20 08:33:06

Enlightenment CVS committalAuthor : technikolorProject : e17Module : docsDir : e17/docs/edjebook/xmlAdded Files:bookinfo.xml edc_ref.xml edc_tour.xml edje_api.xml edjebook.html guidelines.xml overview.xml parts.xml positioning.xml preview.xml programs.xml Log Message:Initial commit of the Edje Book... commonly found here: http://cuddletech.com/edje/

E CVS: docs technikolor

From: <enl...@li...> - 2004-02-20 08:33:07

Enlightenment CVS committalAuthor : technikolorProject : e17Module : docsDir : e17/docs/edjebook/imgAdded Files:positioning.dia positioning.png positioning.svg Log Message:Initial commit of the Edje Book... commonly found here: http://cuddletech.com/edje/

E CVS: docs technikolor

From: <enl...@li...> - 2004-02-21 07:49:47

Enlightenment CVS committalAuthor : technikolorProject : e17Module : docsDir : e17/docs/cookbookLog Message:Directory /cvsroot/enlightenment/e17/docs/cookbook added to the repository

E CVS: docs technikolor

From: <enl...@li...> - 2004-02-21 07:53:07

Enlightenment CVS committalAuthor : technikolorProject : e17Module : docsDir : e17/docs/cookbook/xmlLog Message:Directory /cvsroot/enlightenment/e17/docs/cookbook/xml added to the repository

E CVS: docs technikolor

From: <enl...@li...> - 2004-02-21 07:53:10

Enlightenment CVS committalAuthor : technikolorProject : e17Module : docsDir : e17/docs/cookbook/imgLog Message:Directory /cvsroot/enlightenment/e17/docs/cookbook/img added to the repository

E CVS: docs technikolor

From: <enl...@li...> - 2004-02-21 07:57:36

Enlightenment CVS committalAuthor : technikolorProject : e17Module : docsDir : e17/docs/cookbookAdded Files:LICENSE Makefile README eflcookbook.xml Log Message:Initial EFL Cookbook framework checkin. Still needs lots of work.

E CVS: docs technikolor

From: <enl...@li...> - 2004-02-21 07:57:37

Enlightenment CVS committalAuthor : technikolorProject : e17Module : docsDir : e17/docs/cookbook/xmlAdded Files:bookinfo.xml ecore_recipes.xml edb_eet_recipes.xml edje_edc_recipes.xml edje_recipes.xml esmart_recipes.xml estyle_etox_recipes.xml evas_recipes.xml ewd_recipes.xml ewl_recipes.xml imlib_recipes.xml intro.xml Log Message:Initial EFL Cookbook framework checkin. Still needs lots of work.

E CVS: docs technikolor

From: <enl...@li...> - 2004-04-01 10:11:02

Enlightenment CVS committalAuthor : technikolorProject : e17Module : docsDir : e17/docs/edjebook/xmlModified Files:bookinfo.xml edc_ref.xml edc_tour.xml edje_api.xml guidelines.xml overview.xml positioning.xml preview.xml programs.xml Log Message:Commiting a patch sent in by dan sinclair <ze...@pe...>.Many thanx Dan.===================================================================RCS file: /cvsroot/enlightenment/e17/docs/edjebook/xml/bookinfo.xml,vretrieving revision 1.1retrieving revision 1.2diff -u -3 -r1.1 -r1.2--- bookinfo.xml20 Feb 2004 08:22:10 -00001.1+++ bookinfo.xml1 Apr 2004 09:58:59 -00001.2@@ -40,8 +40,8 @@ <abstract> <para> A complete guide to designing interfaces using Edje and utilizing them -effectively in your EVAS applications. Includes complete overview of Edje -Data Collections (EDC) and Edje API, including sample code and reference+effectively in your EVAS applications. Includes a complete overview of Edje +Data Collections (EDC) and the Edje API, including sample code and reference material. Utilizing Edje effectively can simplify and streamline application development and make nearly any application completely skinable by even non-programmers. </para>===================================================================RCS file: /cvsroot/enlightenment/e17/docs/edjebook/xml/edc_ref.xml,vretrieving revision 1.4retrieving revision 1.5diff -u -3 -r1.4 -r1.5--- edc_ref.xml8 Mar 2004 20:16:43 -00001.4+++ edc_ref.xml1 Apr 2004 09:58:59 -00001.5@@ -64,7 +64,7 @@ <entry>images</entry> <entry>image,</entry> <entry>"image" STORAGE_METHOD;</entry>- <entry>Where storage method is of the following: COMP for lossless compressed, RAW for lossless uncompressed, or LOSSY for lossy compressed follorwed by+ <entry>Where storage method is of the following: COMP for lossless compressed, RAW for lossless uncompressed, or LOSSY for lossy compressed followed by the quality level (0-100) ex: image, "button.png" LOSSY 85; ex: image, "backdrop.jpg" RAW;</entry>@@ -74,7 +74,7 @@ <entry>group</entry> <entry>name,</entry> <entry>"group_name";</entry>- <entry>Name used to access individual interface in an EET</entry>+ <entry>Name used to access an individual interface in an EET.</entry> </row> <row>@@ -107,7 +107,7 @@ </entry> <entry>"part_name"; </entry>- <entry>Symbolic part name, used for later reference in EDC+ <entry>Symbolic part name, used for later reference in EDC. </entry> </row> @@ -118,7 +118,7 @@ </entry> <entry>TYPE; </entry>- <entry>Where type is: IMAGE, RECT, TEXT or NONE. If no type is specified IMAGE is the default type.+ <entry>Where type is: IMAGE, RECT, TEXT or NONE. Defaults to IMAGE if no type is specified. </entry> </row> @@ -152,9 +152,8 @@ </entry> <entry>0; </entry>- <entry>Boolean value specifying whether a part repeats an event to the part below it. When repeat is set to 0 (off, the default) and two parts that acc-ept events- are on top of each other the top most object will recieve the event and not any parts below it, turning repeat to 1 (on) will continue to send the+ <entry>Boolean value specifying whether a part repeats an event to the part below it. When repeat is set to 0 (off, the default) and two parts that accept events+ are on top of each other the top most object will receive the event and not the parts below it, turning repeat to 1 (on) will continue to send the event down to the next part below it. </entry>@@ -168,8 +167,7 @@ </entry> <entry>"part"; </entry>- <entry>Clip to the size of the specified part. Any amount of the current part that exends beyond the size of the clipped to part will be clipped off. C-lipped text parts+ <entry>Clip to the size of the specified part. Any amount of the current part that extends beyond the size of the clipped to part will be clipped off. Clipped text parts always truncate the text string to "...". </entry> </row>@@ -203,8 +201,7 @@ </entry> <entry>"name" INDEX; </entry>- <entry>Descriptive name for the individual state, the default state must always be named "default". The INDEX value is a double between 0.0 and 1.0 whic-h indicates levels of completion, that defaults to 0.0. Multiple states can have the same name yet with a different index value.+ <entry>Descriptive name for the individual state, the default state must always be named "default". The INDEX value is a double between 0.0 and 1.0 which indicates levels of completion, the default is 0.0. Multiple states can have the same name yet with a different index value. ex: state, "default" 0.0; </entry> </row>@@ -227,7 +224,7 @@ </entry> <entry>HOR_VAL VER_VAL; </entry>- <entry>Specify alignment of the part within it's container as specified by rel1/rel2. Values are specified as doubles from 0.0 (align left/top) to 1.0 (+ <entry>Specify alignment of the part within its container as specified by rel1/rel2. Values are specified as doubles from 0.0 (align left/top) to 1.0 ( align right/bottom). ex: align, 0.5 0.5; (Aligns part in center of container) ex: align, 0.0 1.0; (Aligns part to bottom left of container)@@ -266,7 +263,7 @@ <entry>HOR_VAL VERT_VAL; </entry> <entry>Integer stepping values in integer pixels for horizontal (arg1) and vertical (arg2) scaling. When stepping is enabled the width or/and height of -the image will always be divisable by it's stepping value when scaled. Default stepping values are 0 0 (ie: stepping disabled).+the image will always be divisable by its stepping value when scaled. Default stepping values are 0 0 (ie: stepping disabled). ex: step, 20 1 (Image width must always be multple of 20, ie: 0, 20, 40, 60, etc. Height can be any value) </entry> </row>@@ -278,8 +275,7 @@ </entry> <entry>MIN MAX; </entry>- <entry>Double min (arg1) and max (arg2) aspect ratio values. This controls the aspect ratio (ratio of width to height) of a scaled part, typically image-s. The default ratio is 0.0. If both values are the same the ratio is fixed.+ <entry>Double min (arg1) and max (arg2) aspect ratio values. This controls the aspect ratio (ratio of width to height) of a scaled part, typically images. The default ratio is 0.0. If both values are the same the ratio is fixed. ex: aspect, 1.0 5.0; (Minimum aspect of 1:1, maximum of 5:1 - Width:Height); </entry> </row>@@ -291,8 +287,7 @@ </entry> <entry>LEFT RIGHT TOP BOTTOM; </entry>- <entry>Border scaling values for an image part as specified in integer pixel widths, for each four sides of an image. This will stop Edje from scaling t-he outside edge of an image when scaling an image part.+ <entry>Border scaling values for an image part as specified in integer pixel widths, for each four sides of an image. This will stop Edje from scaling the outside edge of an image when scaling an image part. ex: border, 10 10 10 10; (Scale the edge of the image part 10 pixels on all sides) </entry> </row>@@ -340,8 +335,7 @@ </entry> <entry>HOR_VAL VERT_VAL; </entry>- <entry>Doubles representing the horizontal (arg1) and vertical (arg2) positioning of top left corner (for rel1) or bottom right corner (for rel2) as rel-ative to the part specified by the "to" keyword. If no "to" keyword is present, the values are relative to the corners of the interface.+ <entry>Doubles representing the horizontal (arg1) and vertical (arg2) positioning of top left corner (for rel1) or bottom right corner (for rel2) as relative to the part specified by the "to" keyword. If no "to" keyword is present, the values are relative to the corners of the interface. ex: relative, 0.0 1.0; (For rel1 with no "to": top left corner of part is positioned at the left (0.0), bottom (1.0) corner of the interface.) </entry> </row>@@ -353,7 +347,7 @@ </entry> <entry>HORZ_OFF VERT_OFF; </entry>- <entry>Integers specifying deviation in pixels from the position as defined by the relative keyword, both horizontally (arg1) and vertically (arg2)+ <entry>Integers specifying deviation in pixels from the position as defined by the relative keyword, both horizontally (arg1) and vertically (arg2). ex: offset, 5 10; (Position 5 px to the right and 10 px down from the position as stated by the relative keyword) </entry> </row>@@ -377,8 +371,7 @@ </entry> <entry>"part_name"; </entry>- <entry>Specify another part as the reference to be used for the positioning of the current part. Same as "to", but relativity applies only on the X axis-.+ <entry>Specify another part as the reference to be used for the positioning of the current part. Same as "to", but relativity applies only on the X axis. </entry> </row> @@ -389,8 +382,7 @@ </entry> <entry>"part_name"; </entry>- <entry>Specify another part as the reference to be used for the positioning of the current part. Same as "to", but relativity applies only on the Y axi-s.+ <entry>Specify another part as the reference to be used for the positioning of the current part. Same as "to", but relativity applies only on the Y axis. </entry> </row> @@ -413,8 +405,7 @@ </entry> <entry>"image_name"; </entry>- <entry>Name of an image to be used in an animation loop. Images are dispay in the order they are listed. There is no limit to the number of tweens tha-t can be specified.+ <entry>Name of an image to be used in an animation loop. Images are dispay in the order they are listed. There is no limit to the number of tweens that can be specified. </entry> </row> @@ -438,8 +429,7 @@ </entry> <entry>Doubles representing the horizontal (arg1) and vertical (arg2) position from which a fill (tile) should start within it's container as defined by rel1/rel2. Tiling- then occurs in all directions from that point of origin. This is similar in use to relativity by rel1 except that it is relative to the parts con-tainer rather than+ then occurs in all directions from that point of origin. This is similar in use to relativity by rel1 except that it is relative to the parts container rather than the whole interface. ex: relative, 0.5 0.5; (part starts tiling from the middle of it's container) </entry>@@ -465,8 +455,7 @@ </entry> <entry>HOR_VAL VERT_VAL; </entry>- <entry>Doubles representing the horizontal (arg1) and vertical (arg2) position of the bottom right corner of a fill (tile). This is similar in use to r-elativity by rel2 except that it is relative to the parts container rather than the whole interface.+ <entry>Doubles representing the horizontal (arg1) and vertical (arg2) position of the bottom right corner of a fill (tile). This is similar in use to relativity by rel2 except that it is relative to the parts container rather than the whole interface. ex: relative, 1.0 1.0; (Tile fills entire space) </entry> </row>@@ -478,8 +467,7 @@ </entry> <entry>HOR_VAL VERT_VAL; </entry>- <entry>Integers specifying a pixel offset horizontally (arg1) and vertically (arg2) from the relative position specified by size{relative,}. This is si-milar in use to offset+ <entry>Integers specifying a pixel offset horizontally (arg1) and vertically (arg2) from the relative position specified by size{relative,}. This is similar in use to offset used in rel2. </entry> </row>@@ -502,7 +490,7 @@ </entry> <entry>"font_name"; </entry>- <entry>Font used for text, where "font_name" is the name of the font file minus its extension. Path to font is determined by your applications+ <entry>Font used for text, where "font_name" is the name of the font file minus its extension. The path to the font is determined by your applications evas font path. ex: font, "Impact"; (Font used is Impact.ttf found in the evas font path) </entry> </row>@@ -536,8 +524,7 @@ </entry> <entry>HOR_VAL VERT_VAL; </entry>- <entry>Boolean values specifying whether the current text string should define the minimum size of the part, such that all future changes to the text st-ring can+ <entry>Boolean values specifying whether the current text string should define the minimum size of the part, such that all future changes to the text string can be no smaller both horizontally (arg1) and vertically (arg2). </entry> </row>@@ -549,7 +536,7 @@ </entry> <entry>0.5 0.5; </entry>- <entry>Alignment of text within its containers as defined by rel1/rel2, horizontally (arg1) and vertically (arg2).+ <entry>Alignment of text within its containers is defined by rel1/rel2, horizontally (arg1) and vertically (arg2). </entry> </row> @@ -571,7 +558,7 @@ </entry> <entry>SIGNAL; </entry>- <entry>Specifies signal(s) that a should cause program to run. The signal recieved must match the specified source to run. Signals may be globbed, but + <entry>Specifies signal(s) that should cause the program to run. The signal received must match the specified source to run. Signals may be globbed, but only one signal keyword per program may be used. ex: signal, "mouse,clicked,*"; (clicking any mouse button that matches source starts program)@@ -608,8 +595,7 @@ </entry> <entry>TYPE LENGTH; </entry>- <entry>Defines how transistions occur using STATE_SET action. Where type is the style of the transistion and length is a double specifying the number o-f+ <entry>Defines how transistions occur using STATE_SET action. Where type is the style of the transistion and length is a double specifying the number of seconds in which to preform the transistion. Valid types are: LINEAR, SINUSOIDAL, ACCELERATE, and DECELERATE </entry> </row>@@ -621,8 +607,7 @@ </entry> <entry>"action-target"; </entry>- <entry>Program or part on which the specified action acts. Multiple target keywords may be specified, one per target. SIGNAL_EMITs do not have targets-.+ <entry>Program or part on which the specified action acts. Multiple target keywords may be specified, one per target. SIGNAL_EMITs do not have targets. </entry> </row> @@ -633,7 +618,7 @@ </entry> <entry>"next-program"; </entry>-<entry>Specifies a program run after the current program completes. The source and signal parameters of a program run as an "after" are ignored. Multiple "after" statements can be specified per program.+<entry>Specifies a program to run after the current program completes. The source and signal parameters of a program run as an "after" are ignored. Multiple "after" statements can be specified per program. </entry> </row> ===================================================================RCS file: /cvsroot/enlightenment/e17/docs/edjebook/xml/edc_tour.xml,vretrieving revision 1.3retrieving revision 1.4diff -u -3 -r1.3 -r1.4--- edc_tour.xml8 Mar 2004 20:17:36 -00001.3+++ edc_tour.xml1 Apr 2004 09:58:59 -00001.4@@ -8,10 +8,10 @@ be. When determining how to design your interface, it's common to use GIMP as a layout tool, this is particularly helpful for designing your interface with Edje as you can see exactly how each element is going to be positioned and relate-to other parts of your interface, which is espcially helpful when learning Edje.+to other parts of your interface, which is especially helpful when learning Edje. Next, it's time to actually build your real interface. This starts by creating a file typically labeled with a .edc extension. Once you've created your EDC,-you will generate the EET that will be used by your application using edje_cc,+you will generate the EET that will be used by your application. This is done using <command>edje_cc</command>, the Edje Collection Compiler. Edje_cc will pack your EDC plus all of the images your interface will need into one tight compact EDC, and will even compress images if you specified compression in your EDC. This generated EET will@@ -24,7 +24,7 @@ </para> <para>-Before starting off with Edje on your own, you should look at the example in+Before starting off with Edje on your own, you should look at the examples in the Edje source tree. In the <filename class='directory'>edje/data</filename> directory you will find a script named <filename>e_logo.sh</filename>. Run that script and an EET will be generated. The script simply runs <command>edje_cc</command> with the appropriate@@ -198,11 +198,11 @@ </para> <para>-The images section is the first section to examine. It simply contains a list of images that we with to+The images section is the first section to examine. It simply contains a list of images that we wish to include in our interface. Each image will have a line describing how to store it, in the form: image, "filename" STORAGE_METHOD;. The storage method is a description of how Edje should store the file in the generated EET. Valid storage methods are COMP, RAW, and LOSSY. RAW stores the image in raw format, note that this doesn't mean unmodified format, a RAW stored PNG will-be uncompressed and stored as the raw image, thus you tidy 1K PNG may be stode as an 8K raw image.+be uncompressed and stored as the raw image, thus your tidy 1K PNG may be stode as an 8K raw image. The COMP method will use lossless compression on your image. And the LOSSY method will use a lossy compression on your image. The LOSSY method is followed by an integer between 0 and 100, defining the quality level. </para>@@ -213,7 +213,7 @@ applications interface or diffrent looks for your one interface, all in one EET for easy distribution. Each group is given a name, in this case "test". Any time you reference your EET you will specify both the EET file name, and the group to use so choose your name descriptively. The next two lines are the min and max size of our interface in pixels. The arguments to-min and max are horizontal size then the verital size. So our interface case a minimum size of 32x32 and maximum of 1024x768.+min and max are the horizontal size then the verital size. So our interface has a minimum size of 32x32 and maximum of 1024x768. </para> <para>@@ -229,24 +229,24 @@ A part will contain one or more description sections. Each description is a diffrent state of our part. The descriptions define how our part should look, what images or text the part uses, where it should be positioned, how it should be tiled, etc. In this case our background only needs one state, which we call default, using the state keyword. The number following-the state name defines an index value which is currently unused, simply use 0.0. Next we see two sections define the+the state name defines an index value which is currently unused, simply use 0.0. Next we see two sections defining the positioning of our part, rel1 and rel2. Each rel section will contain the keywords relative and offset, and optionally to. If the to keyword is omited then the position is relative to the full size of the interface as described by min and max in the group section. rel1 is the positioning of the top left corner of the part and rel2 is the positioning of the bottom right corner of the part. The relative keyword is followed by two doubles ranging from 0.0 to 1.0. As with min and max, the first-value is the horizontal and the second is the vertical. The offset specified the pixel deviation from the relative point.+value is the horizontal and the second is the vertical. The offset specifies the pixel deviation from the relative point. In the case of our background, the top left (rel1) of our part (image) is relative to the top left corner of the interface, with no offset. The bottom right (rel2) of our part is relative to the bottom right of the interface, offset by 1 pixel left and 1 pixel-up. Therefore, this part fills the entire interface. More information about positioning can before later in this guide. The last+up. Therefore, this part fills the entire interface. More information about positioning can be found later in this guide. The last section in this parts description is the image section. This section describes which images to use. One or more images can be specified, the image that is first seen is denoted by the keyword normal. More images can be added using the-keyword "tween" to form animations, but we will discuse that more later.+keyword "tween" to form animations, but we will discuss that in a later section. </para> <para> While parts may seem confusing and complicated at first, hopefully you now can look at the part we just reviewed and simply-say that it's an image part named background that doesn't accept mouse events, fills the interface completely using the+say that it's an image part named background that doesn't accept mouse events, and fills the interface completely using the image background.png. </para> @@ -256,10 +256,10 @@ rectangle we will use as a button, or in otherwords, the unclicked state of our button. The second state is the clicked state. You'll notice that the default and clicked states look almost identical, the only change is the color and name. This means that when we change from state default to state clicked, the only thing that changes is the color of the rectangle.-States are changed using programs, which we will discuse later. You'll notice that the descriptions contain min and max keywords,+States are changed using programs, which we will discuss later. You'll notice that the descriptions contain min and max keywords, these are used to define the size of the part. If they are omited, like in the background part, the part will fill the maximum-ammount of avalible space (ie: the whole interface, as limited by rel1 and rel2). The alignment keyword specifies alignment-of our part within its avalible space (container). Values for align are again horizontal alignment followed by verital alignment,+amount of avalible space (ie: the whole interface, as limited by rel1 and rel2). The alignment keyword specifies alignment+of our part within its available space (container). Values for align are again horizontal alignment followed by verital alignment, using doubles. So in this case the rectangle will be an absolute 100x50 pixels, with a container the size of the whole interface (as defined by rel1/rel2), and is positioned in the middle of that container. No matter how big or small the interface is the 100x50 pixel rectangle will always stay in exactly the middle of the screen and never resize. The color keyword is applicable@@ -274,12 +274,12 @@ the bottom right corner of the part by 1 pixel to the left and upwards from that point. The text section describes the text itself. The text keyword describes the text to display ("Press Me"), the font to use ("redensek"), the size of that font (14), and the alignment of the text within the container as defined by rel1/rel2. The font specified to be used must be added to-your EVAS font path in your application, and the font name is the filename minus it's extention (ie: .ttf).+the EVAS font path in your application, and the font name is the filename minus it's extention (ie: .ttf). </para> <para>-A word about layering. There is not specific keyword for layering in EDCs on a part-by-part basis. Each-new part is layered on top of the previous. Therefore in our sample EDC the text is rendered ontop of the button, which+A word about layering. There is no specific keyword for layering in EDCs on a part-by-part basis. Each+new part is layered on top of the previous part. Therefore in our sample EDC the text is rendered on top of the button, which sits atop the background. If we had defined the button before the background it would not have been visable. While this is common sense for the mostpart, it can be a common cause of confusion when modifying a large EDC if you aren't careful. Whenever you modify or add parts to your EDCs check whats above and below it.@@ -289,27 +289,27 @@ The final section in our EDC is the programs section. Programs breath life into the static parts that make up our interface. Programs are largely based on the reception of signals. Signals can be generated by user interfaction, Edje itself, or an external force (usually your window manager). For instance, a user generated signal would be-mouse in (when the user moves their pointer over a part), or mouse down (user depreses mouse button over a part).+mouse in (when the user moves their pointer over a part), or mouse down (user depresses a mouse button over a part). An Edje generated signal would include a "load" signal (Edje loads the EET), or "program,start" (when some other program starts running). An externally generated signal would effect the entire Edje interface, generally from a window manager, such as "move" (your interface window is moved) or "show" (your interface is displayed). </para> <para>-The first program in our example is to change the state of our button part when it is clicked on. The program-name is "button_click". The program is run when it recieves the signal "mouse,down,1", meaning when the left mouse button is+The first program in our example is to change the state of our button part when it is clicked. The program+name is "button_click". The program is run when it receives the signal "mouse,down,1", meaning when the left mouse button is depressed over your part that accepts mouse events the program activates. Signals are globable, meaning if we wanted the program to run when any mouse button is depressed on our part we could use the signal "mouse,down,*", in fact we could use the signal "*" meaning that ANY signal effecting the part would run the program. The next keyword is source,-which defines the part (or program) from which the signal will be recieved, in this case button. Sources are also globable.+which defines the part (or program) from which the signal will be received, in this case button. Sources are also globable. The next keyword is-action, this what the program actually does. Actions can change part states, stop the action of other programs, and emit+action, this what the program actually does. Actions can change part states, stop the action of other programs, or emit signals. In this case the action STATE_SET still change state to "clicked". The following double (0.0) is currently-unused and should simply be set to 0.0. The target argument that follows is the part or program on which the action acts-apon. The final keyword, after, optionally defines another program to be run after the current program completes.+unused and should simply be set to 0.0. The target argument that follows is the part or program on which the action acts. +The final keyword, after, optionally defines another program to be run after the current program completes. When a signal is received all the programs which accept the incoming signal and match the source will be run, and in this way very often the keyword "after" is not required, however it can still be used for some crafty purposes which we'll explore later.-After's can also be used as a looping mechignism, by specifying the current program to re-run after it completes, however it+After's can also be used as a looping mechanism, by specifying the current program to re-run after it completes, however it should be noted that any signal specified for the program must be met on every run of that program, even if it loops back to itself. </para>@@ -318,7 +318,7 @@ Looking at the first program again, we can now clearly see that the program "button_click" will be run when the left mouse button is depressed on our "button" rectangle. It will change the state of the target "button" to "clicked" (which will change the color as noted earlier), and once it completes will run the "do_me" program. Thus, looking at the next program "button_unclick" we can-see that it will change the state of target "button" to the "default" state (back to its origonal color) when the+see that it will change the state of target "button" to the "default" state (back to its original color) when the left mouse button is released over the source part "button". Hence we have an animated button! Typically images would be used instead of simple rectangles, which would simply omit the color keyword and add an image section to both states, one image for the default state and one for the clicked state. Lastly we see that the after keyword is used to run the program "stop_doing_me" after "button_unclick"@@ -331,11 +331,11 @@ The third program as referenced by the "button_click" program. This program will accept any signal (as denoted by a * for the signal). The source is defined as a program in this case, rather than a part, so the program will run when any signal is accepted from the "button_click" program. The action defined is SIGNAL_EMIT, which will send the specified signal, here "PANTS ON", which-is typically used by your application code. The third argument of of action for SIGNAL_EMIT is the source from which the signal came.-In your application code this signal would be recieved by a callback handler, which would call a specified function based on the recipt of+is typically used by your application code. The third argument of the action for SIGNAL_EMIT is the source from which the signal came.+In your application code this signal would be received by a callback handler, which would call a specified function based on the recipt of a specified signal from a specific source. We'll learn more about these signals when we discuse the Edje API later. The keyword-"in" accepts two arguments, both doubles. "in" specifies a delay on running your program, the first argument is the number of seconds-to wait before running the program, and the second argument specifies a the maximum random delay which is added to the first argument.+"in" accepts two arguments, both doubles. The "in" keyword specifies a delay on running your program, the first argument is the number of +seconds to wait before running the program, and the second argument specifies the maximum random delay which is added to the first argument. This is useful when you want the program to wait for a random amount of time that is at least a half a second but no more than 3 seconds, which would be described as "in, 0.5 3.0;". Delays always occur before the action specified by the program is preformed. Our final keyword is after, which will run the program "do_me" after the current program completes, which in this case is a loop.@@ -352,9 +352,9 @@ <para> You should now take the sample EDC above, and use Edje_CC to build an eet. You can get the background image here: BACKGROUNDIMG. Using the edje_cc build your EET like this: "edje_cc -v -id . sample.edc sample.eet", putting the image in the same directory with the EDC.-You should put the font "redensek.ttf" in a directory named "fonts/" where your EET will be used with edje (the viewer) from.+You should put the font "redensek.ttf" in a directory named "fonts/" where your EET will be view with edje (the viewer). You can then preview that EET with Edje, specifying the EET filename and the group name: "edje sample.eet test". Play with the EDC-alittle untill you think you are familar with the syntax, layout and basic functionality of Edje EDCs.+a little until you think you are familar with the syntax, layout and basic functionality of Edje EDCs. </para> </section>===================================================================RCS file: /cvsroot/enlightenment/e17/docs/edjebook/xml/edje_api.xml,vretrieving revision 1.1retrieving revision 1.2diff -u -3 -r1.1 -r1.2--- edje_api.xml20 Feb 2004 08:22:10 -00001.1+++ edje_api.xml1 Apr 2004 09:58:59 -00001.2@@ -89,7 +89,7 @@ application needs to catch that signal and then do something with it, this functionality is provided by Edje signal callbacks. The Edje API provides you with two calls, one to add and one to delete signal callbacks: edje_object_signal_callback_add() and edje_object_signal_callback_del(). Both functions take 4 arguments: the Evas_Object (your edje), the signal thats emited,-the source of that emission, and the function that should be called when the signal is recieved.+the source of that emission, and the function that should be called when the signal is received. These functions will not allow you to pass NULL arguments, and therefore if you want to create callbacks for several sources that emit the same signal you will need to add a seperate callback for each of the sources. The add function allows one more argument, a void pointer to any data you want passed to the callback function.===================================================================RCS file: /cvsroot/enlightenment/e17/docs/edjebook/xml/guidelines.xml,vretrieving revision 1.1retrieving revision 1.2diff -u -3 -r1.1 -r1.2--- guidelines.xml20 Feb 2004 08:22:10 -00001.1+++ guidelines.xml1 Apr 2004 09:58:59 -00001.2@@ -3,7 +3,7 @@ <para> The purpose of Edje is to abstract as completely as possible the design of the interface from the application code. Always-keep this in mind when using Edje. While at times Edje's API seems inadiquate or frustrating in its lack of customization, it+keep this in mind when using Edje. While at times Edje's API seems inadequate or frustrating in its lack of customization, it is this way for a reason: to keep you as a coder from taking power away from the themer. If at any point the API seems like a restriction realize that what you want to do is possible, but should be done in the EDC not in the application code. </para>@@ -17,7 +17,7 @@ <title>Edje Spec Files</title> <para>-Once you have created you application and a default EDC you will want to make it as easy as possible for other developers and+Once you have created your application and a default EDC you will want to make it as easy as possible for other developers and themers to create new interfaces for you application. While developers can read your code and figure out what does what, many of the themers can not, therefore a standardized method of describing what the application requires and provides should be utilized. This is done by creating a flat text file named README.edje. Below is an example of the format that should be used in your README.edje:@@ -134,11 +134,11 @@ </figure> <para>-This scheme allows the themer to have an understanding of what functionality is avalible and what+This scheme allows the themer to have an understanding of what functionality is available and what parts will be accessed by the application code and therefore must exist, even if hidden. A changelog should be present to list the changes in the application that could effect themes past and present. A "Features and Notes" section is optional but allows a place to outline various functionality of the application-as well as notes from the coder to the themer as to now the app is intended to be used, their wishes, etc.+as well as notes from the coder to the themer as to how the app is intended to be used, their wishes, etc. This file should be present in the top level directory of your codebase. </para> @@ -161,13 +161,13 @@ <para> An important consideration for themeing was how to deal with distribution of themes. Due to the ugly nature of using-renamed tarballs for data distribution Edb and then EET came to live. EET provides a simplistic manner of distributing-complete themes and interfaces in a convinient single file package. Because EET will compress your images there is no need+renamed tarballs for data distribution Edb and then EET came to life. EET provides a simplistic manner of distributing+complete themes and interfaces in a convenient single file package. Because EET will compress your images there is no need to re-compress an EET, though it is the distributers discretion to do so. When hosting themes pre-compiled EETs should be provided.-The images and source EDC does not, but it is recommended that you make it avalible on request or in the same place as the EET-using a simple and clear file convension such as: theme.eet and theme-src.tgz. Providing the source gives back to the community+The images and source EDC does not need to be provided, but it is recommended that you make it avalible on request or in the same place +as the EET using a simple and clear file convension such as: theme.eet and theme-src.tgz. Providing the source gives back to the community not only a nice theme but also a valuable learning tool for others. Themes should <emphasis>not</emphasis> be distributed in-tarballs as it defeats the purpose of single file, one step distribution.+tarballs as it defeats the purpose of a single file, one step distribution. </para> </section> ===================================================================RCS file: /cvsroot/enlightenment/e17/docs/edjebook/xml/overview.xml,vretrieving revision 1.1retrieving revision 1.2diff -u -3 -r1.1 -r1.2--- overview.xml20 Feb 2004 08:22:10 -00001.1+++ overview.xml1 Apr 2004 09:58:59 -00001.2@@ -12,7 +12,7 @@ These EET's are generated from an Edje EDC file in which diffrent parts of the interface are described and laid out, and how those parts interact with your application. This allows for the interface to be completely changed simply by creating a new EDC and-generating from it the EET that your application can use. In more popular terms, Edje+generating the EET for your application to use. In more popular terms, Edje makes every application that uses it "skinable". Raster describes Edje as "an attempt to find a middleground between themeing and programming without turning the theme itself into just yet another program".@@ -26,7 +26,7 @@ <para> The Edje EDC contains every detail about your interface. An EDC is a simple text file that uses C like syntax. The file is broken into-three distinct section: images, data, and collections. The image section contains+three distinct sections: images, data, and collections. The image section contains a list of all the images your interface will use. When you compile/generate your EDC into an EET all the images specified will be loaded into the EET itself allowing you to distribute your interface (or skin if you prefer) as a single file. When@@ -40,16 +40,16 @@ <para> The collections in an EDC are comprised of one or more groups. Each group contains parts and programs. A part is a single element of your interface, such-as a text element, or a rectangle, or an image. Each part is thuroughly described+as a text element, or a rectangle, or an image. Each part is throughly described for one or more states. For instance, an image part might actually have two images-in it, each in a diffrent state, one for a normal state and one for a clicked (mouse down)+in it, each in a different state, one for a normal state and one for a clicked (mouse down) state. A part may have as many states defined as you like. </para> <para> These parts are then referenced in the programs. Programs are descriptions about how the interface should respond to both the user and the application code itself. A-program can accept interface event (such as mouse button 1 down), and then change the state of+program can accept interface events (such as mouse button 1 down), and then change the state of a part described earlier (change to state clicked) to create an effect. Programs can also emit signals to your application. In your application code you would define a callback for that event. Each program is concise and distinct. For example, to@@ -60,10 +60,10 @@ <para> Because of the abstraction Edje provides, your applcation only needs to-know the name of the EET to use, what signals it will recieve from-the interface so that callbacks can be defined when that event is recieved, and+know the name of the EET to use, what signals it will receive from+the interface so that callbacks can be defined when that event is received, and what text parts in the interface can be modified. This allows maximum flexability in-interface design, including the ability to offload interface to graphic designers and+interface design, including the ability to offload the interface to graphic designers and themers freeing the application coders, allowing users of the application to modify the interface without hacking or forking your project, and a much quicker prototyping and design tool than modifying your C application directly.===================================================================RCS file: /cvsroot/enlightenment/e17/docs/edjebook/xml/positioning.xml,vretrieving revision 1.1retrieving revision 1.2diff -u -3 -r1.1 -r1.2--- positioning.xml20 Feb 2004 08:22:10 -00001.1+++ positioning.xml1 Apr 2004 09:58:59 -00001.2@@ -3,9 +3,9 @@ <para> The Edje positioning model is based heavily on relativity, and is difficult for many new users to adjust to. Simply put, every-part defined is relative to something else and is positioned relative to it. If you do not explicitly define what a part is+part defined is relative to something else and is positioned relative to that thing. If you do not explicitly define what a part is relative to it is relative to the entire interface. The sections rel1 and rel2 are present in every part description and-define the positioning. Each part should be thought of as a container, and the contents of the part whether may not neccisarily+define the positioning. Each part should be thought of as a container, and the contents of the part may not necessarily fill the entire container. Thus we can think of the interface itself as a container, which simply contains other containers. rel1 defines the positioning of the top left corner of the part container, and rel2 defines the positioning of the bottom right corner of the part container. Doubles are used with the keyword relative ranging from 0.0 to 1.0 representing a percentage of left-to-right@@ -24,7 +24,7 @@ On top I have provided an Edje compass which is a helpful tool to visualize positioning. Looking at the compass, notice that the left and northern directions approach 0.0 moving negatively, and that the right and southern directions approach 1.0 moving in the positive direction. Again, this is because everything starts from the top left corner of the parent container, regardless if that parent container is the entire interface or just-another part. So the part in the middle of our figure would be positioned starting at roughtly 0.4 0.4, not 0.5 0.5. 0.5 0.5 would place+another part. So the part in the middle of our figure would be positioned starting at roughtly 0.4 0.4, not 0.5 0.5. A position of 0.5 0.5 would place the top left corner of the part exactly in the middle of the interface, not center entire part. To better illistrate this lets look at some examples as you would see them in an EDC. </para>@@ -86,13 +86,13 @@ <para>The second part in the example above is very similar to the "background" part, it is not relative to anything, and therefore is relative to the whole interface. However, notice that an offset is specified-for both rel1 and rel2. These values are possition modifiers specified in pixels. These offsets are based+for both rel1 and rel2. These values are position modifiers specified in pixels. These offsets are based on the positioning defined by the relative keyword. Again, the two arguments specify horizontal positioning followed by vertical. So by using an offset in rel1 of 10 10, we're moving the top left corner of the part (rel1) by 10 pixels to the right and 10 pixels south of the position specified by relative. In the same way, rel2 is placed at the bottom right corner of the interface, and offset by 10 pixels to the left (-10) and-10 pixels north (-10). Remember that these values are negative because all positioning origionates from the-top left corner of the container, so in this case we move backward toward it making the values negative.+10 pixels north (-10). Remember that these values are negative because all positioning originates from the+top left corner of the container, so in this case we move backward thus making the values negative. </para> <para>@@ -108,8 +108,8 @@ <para> To create a line of buttons in Edje we are presented with some positioning decisions to make. Each button could be positioned absolutely to the corners of the interface, or instead the first button would be positioned absolutely and-each following button positioned relative to the first. Which method is right for your interface is important descision-as it will effect the ammount of effort needed to modify the interface later if you choose or if you move those parts using+each following button positioned relative to the first. Which method is right for your interface is an important decision+as it will effect the amount of effort needed to modify the interface later or if you move those parts using a program. If you position each button relative to the first you only need to move the first buttons position to move them all as opposed to moving each button individually. In this way we can group parts together to make them act in a unified positioning manner.@@ -163,30 +163,26 @@ </figure> <para>In this example we have two buttons. Looking at "button1" we see it's top left corner (rel1) is positioned at the top left-corner of the interface (relative) and then offset 10 pixels to the right and 10 pixels south (offset). It's bottom right corner (rel2)+corner of the interface (relative) and then offset 10 pixels to the right and 10 pixels south (offset). Its bottom right corner (rel2) is relative to the top left corner of the interface as well, but then offset 30 pixels to the right and 20 pixels south. We position-both corners from the top left corner instead of from both the top left and bottom right corner of the interface because since we are using-static offsets we want to ensure the button stays in the same place even if the interface is resized. Notice we are not specifying the+both corners from the top left corner instead of from both the top left and bottom right corner of the interface. This is a result of using+static offsets, we want to ensure the button stays in the same place even if the interface is resized. Notice we are not specifying the min and max size of either buttons, all sizing is happening based on the position of the corners of that part. The result of the positioning scheme used for "button1" is a container that stretches from the top left corner and is 20 pixels wide and 10 pixels high. If we had specified a min and max size for the part of 10 pixels the rectangle would only fill half of the container, and unless an "align" keyword was used that rectangle would start from the top left corner of the container like everything else, thus the left side of the container would be filled with rect and the other half of the container empty.</para> -<para>Button2 in our example uses the "to" keyword in both rel1 and rel2. The top left corner of "button2" is positioned at the right top corner of "butt-on1",-because rel1 is relative to "button1" and the relative keyword specifies that the top left corner of this part is relative to 1.0 0.0 of it. An offset is+<para>Button2 in our example uses the "to" keyword in both rel1 and rel2. The top left corner of "button2" is positioned at the right top corner of "button1",+because rel1 is relative to "button1" and the relative keyword specifies that the top left corner of this part is relative to 1.0 0.0 of "button1". An offset is also used, which moves the "button2" container to the right by 10 pixels horizontally, which is going to act as the button spacing. The bottom right corner (rel2) is again positioned relative to "button1" but this time relative to "button1"s bottom right corner. An offset of 30 pixels is used which-provides 10 pixels for our button spacing, and then another 20 pixels for the containers width. In the end this gives us two buttons space 10 pixels apar-t-that are 20 by 10 pixels in size. If we wanted to add another button we'd make it relative to "button2" so that each button is relative to the next which- is-positioned ultimately by the first button.+provides 10 pixels for our button spacing, and then another 20 pixels for the containers width. In the end this gives us two buttons spaced 10 pixels apart+that are 20 by 10 pixels in size. If we wanted to add another button we'd make it relative to "button2" so that each button is relative to the next all of+which are positioned ultimately by the first button. </para> -<para>Suppose we wanted to create a button bar, but rather than using static buttons like in the last example we simply wanted them to fill the width of t-he+<para>Suppose we wanted to create a button bar, but rather than using static buttons like in the last example we simply wanted them to fill the width of the interface completely reguardless of how large or small it was resized. In this case we could use something like the following example. </para> @@ -238,11 +234,11 @@ <para>In this example we are creating two buttons and positioning them relative to the interface. The first button defines its container from the top left corner of the interface (rel1) over to the middle of the interface, and 30 pixels south of the middle top (rel2). The second buttons container starts half way across the top of the interface (rel1) and extends the rest of the way across the interface and-south by 30 pixels (rel2). So we have two buttons that fill the entire width of the interface and is 30 pixels in height. No matter how+south by 30 pixels (rel2). So we have two buttons that fill the entire width of the interface and are 30 pixels in height. No matter how thin or wide we resize the interface the button bar will look exactly as it should.</para> <para>If we wanted to modify the example to place the button bar on the bottom of the interface we would change the veritcal parameter of the relative keywords from 0.0 to 1.0 placing everything relative to the bottom of the interface, leaving the horizontal parameters alone and then-changing our offsets from a posative 30 pixels to a negative 30 pixels in order to push back upward rather than down.</para>+changing our offsets from a posative 30 pixels to a negative 30 pixels in order to push them upward rather than down.</para> </chapter>===================================================================RCS file: /cvsroot/enlightenment/e17/docs/edjebook/xml/preview.xml,vretrieving revision 1.1retrieving revision 1.2diff -u -3 -r1.1 -r1.2--- preview.xml20 Feb 2004 08:22:10 -00001.1+++ preview.xml1 Apr 2004 09:58:59 -00001.2@@ -2,9 +2,9 @@ <title>The Edje Preview Program</title> <para>-The <command>edje</command> program serves provides an easy to use tool for previewing, testing and debugging EDCs.+The <command>edje</command> program provides an easy to use tool for previewing, testing and debugging EDCs. The tool accepts two arguments, the first is the name of the EET to use, the second is an optional argument specifying-the Edje group to use specified within the EDC. If no group name is supplied you will be presented with a list of+the Edje group to use within the EDC. If no group name is supplied you will be presented with a list of all the groups within the specified EET, you may click on one of the groups to preview it. </para> ===================================================================RCS file: /cvsroot/enlightenment/e17/docs/edjebook/xml/programs.xml,vretrieving revision 1.1retrieving revision 1.2diff -u -3 -r1.1 -r1.2--- programs.xml20 Feb 2004 08:22:10 -00001.1+++ programs.xml1 Apr 2004 09:59:00 -00001.2@@ -4,8 +4,8 @@ <para>Programs define how your interface reacts to events. These events can come from Edje, user interaction, or an external force like your window manager. All these events come to Edje as signals. Signals from user interaction would include mouse clicks, key presses and mouse movement. Signals from an external source would include window-moves, window resizes, window raises and lowers. And signals from Edje internally would include programs starting or-stopping, and the loading an EET. Each signal must come from some place, whether it is a part or another program or+moves, window resizes, or window raises and lowers. Signals from Edje internally would include programs starting or+stopping, or the loading of an EET. Each signal must come from some place, whether it is a part or another program or in the case of a window manager move anywhere. The place from which a signal come is known as the source. If a user left clicks on an image part named "button", a "mouse,clicked,1" signal is generated from the source part "button". </para>

E CVS: docs technikolor

From: <enl...@li...> - 2004-04-27 10:57:05

Enlightenment CVS committalAuthor : technikolorProject : e17Module : docsDir : e17/docs/cookbook/pre-renderedLog Message:Directory /cvsroot/enlightenment/e17/docs/cookbook/pre-rendered added to the repository

E CVS: docs technikolor

From: <enl...@li...> - 2004-04-27 10:59:38

Enlightenment CVS committalAuthor : technikolorProject : e17Module : docsDir : e17/docs/cookbook/pre-renderedAdded Files:eflcookbook.pdf Log Message:Two excellent sections submited by Dan Sinclair (ze...@pe...)One is an Ecore_Config intro, the other is an Esmart Trans intro.Also added a pre-rendered PDF for those who don't have DocBook setup properly.

E CVS: docs technikolor

From: <enl...@li...> - 2004-04-27 10:59:39

Enlightenment CVS committalAuthor : technikolorProject : e17Module : docsDir : e17/docs/cookbook/xmlModified Files:ecore_recipes.xml esmart_recipes.xml Log Message:Two excellent sections submited by Dan Sinclair (ze...@pe...)One is an Ecore_Config intro, the other is an Esmart Trans intro.Also added a pre-rendered PDF for those who don't have DocBook setup properly.===================================================================RCS file: /cvsroot/enlightenment/e17/docs/cookbook/xml/ecore_recipes.xml,vretrieving revision 1.1retrieving revision 1.2diff -u -3 -r1.1 -r1.2--- ecore_recipes.xml21 Feb 2004 07:45:56 -00001.1+++ ecore_recipes.xml27 Apr 2004 10:59:32 -00001.2@@ -41,10 +41,129 @@ <title>Ecore</title> <para>-Ecore provides a power event handling and moduled abstraction layer which -ties and bind your applications various componants together in a nearly seemless-mannor. +Ecore provides a powerful event handling and modularized abstraction layer which +ties and bind your applications various components together in a nearly seemless+manner. </para> +<!--+#######################################+Introduction to Ecore_Config+#######################################+-->+<section>+<sectioninfo>+ <author>+ <firstname>dan</firstname>+ <surname>sinclair</surname>+ <email>ze...@pe...</email>+ </author>+ <date>25 May 2004</date>+</sectioninfo>++<title>Recipe: Ecore Config Introduction</title>++<para>+The Ecore_Config module provides the programmer with a very simple way to setup+configuration files for their program. This recipe will give an example of how to+integrate the beginnings of Ecore_Config into your program and use it to get+configuration data.+</para>++<example>+<title>Simple Ecore_Config program</title>+<programlisting>+#include &lt;Ecore_Config.h&gt;++int main(int argc, char ** argv) {+ int i;+ float j;+ char *str;++ if (ecore_config_init("foo") != 0) {+ printf("Cannot init Ecore_Config");+ return 1;+ }++ ecore_config_default_int("/int_example", 1);+ ecore_config_default_string("/this/is/a/string/example", "String");+ ecore_config_default_float("/float/example", 2.22);++ ecore_config_load();++ i = ecore_config_get_int("/int_example");+ str = ecore_config_get_string("/this/is/a/string/example");+ j = ecore_config_get_float("/float/example");++ printf("str is (%s)\n", str);+ printf("i is (%d)\n", i);+ printf("j is (%f)\n", j);++ free(str);++ ecore_config_exit();+ return 0;+}+</programlisting>+</example>+<para>+As you can see from this example the basic usage of Ecore_Config is simple. The system is initialized with+a call to ecore_config_init(PROGRAM_NAME). The program name setting control where Ecore_Config will look for+your configuration database. The directory and file name are: ~/.e/apps/PROGRAM_NAME/config.db.+</para>++<para>+For each configuration variable you are getting from Ecore_Config, you can assign a default value in the case+that the user does not have a config.db file. The defaults are assigned with the ecore_config_default_* where *+is one of the Ecore_Config types. The first parameter is the key under which this is to be accessed. These keys+must be unique over your program. The value passed is of the type appropriated for this call.+</para>++<para>+The ecore_config_load call will read the values from the config.db file into Ecore_Config. After which we can+access the files with the ecore_config_get_* methods (again * is the type of data desired). These routines+take the key name for this item and return the value associated with that key. Each function returns a type+that corresponds to the function call name.+</para>++<para>+ecore_config_exit is then called to shutdown the Ecore_Config system before the program exits.+</para>++<example>+<title>Compilation command</title>+<programlisting>+gcc -o ecore_config_example ecore_config_example.c `ecore-config --cflags --libs`+</programlisting>+</example>+<para>+To compile the program you can use the ecore-config script to get all of the required linking and library information+for Ecore_Config.++If you run this program as is you will receive the values put into ecore_config as the defaults as output.+Once you know the program is working, you can create a simple config.db file to read the values.+</para>++<example>+<title>Simple config.db script (build_cfg_db.sh)</title>+<programlisting>+#!/bin/sh++DB=config.db++edb_ed $DB add /int_example int 2+edb_ed $DB add /this/is/a/string/example str "this is a string"+edb_ed $DB add /float/example float 42.10101+</programlisting>+</example>+<para>+When build_cfg_db.sh is executed it will create a config.db file in the current directory. This file can+then be copied into ~/.e/apps/PROGRAM_NAME/config.db where PROGRAM_NAME is the value passed into +ecore_config_init. Once the file is copied in place, executing the test program again will show the values+given in the config file instead of the defaults. You can specify as many, or as few of the configuration+keys in the config file and Ecore_Config will either show the user value or the default value.+</para>+</section>+ </chapter>===================================================================RCS file: /cvsroot/enlightenment/e17/docs/cookbook/xml/esmart_recipes.xml,vretrieving revision 1.1retrieving revision 1.2diff -u -3 -r1.1 -r1.2--- esmart_recipes.xml21 Feb 2004 07:45:56 -00001.1+++ esmart_recipes.xml27 Apr 2004 10:59:32 -00001.2@@ -45,5 +45,275 @@ to your EVAS and EFL based applications. </para> +<!--+#######################################################+A simple recipe to get an esmart trans window up +#######################################################+-->+<section>+<sectioninfo>+ <author>+ <firstname>dan</firstname>+ <surname>sinclair</surname>+ <email>ze...@pe...</email>+ </author>+ <date>25 May 2004</date>+</sectioninfo>++<title>Recipe: Esmart Trans Introduction</title>++<para>+Transparency is increasingly becoming a common trait of applications. To this+end, the Esmart_Trans object has been created. This object will do all of the+hard work to produce a transparent background for your program.+</para>++<para>+Esmart trans makes the integration of a transparent background into your application+very easy. You need to create the trans object, and then make sure you update it+as the window is moved or resized.+</para>++<example>+<title>Includes and declarations</title>+<programlisting>+#include &lt;stdio.h&gt;+#include &lt;Ecore.h&gt;+#include &lt;Ecore_Evas.h&gt;+#include &lt;Esmart/Esmart_Trans.h&gt;++int sig_exit_cb(void *data, int ev_type, void *ev);+void win_del_cb(Ecore_Evas *ee);+void win_resize_cb(Ecore_Evas *ee);+void win_move_cb(Ecore_Evas *ee);++static void _freshen_trans(Ecore_Evas *ee);+void make_gui();+</programlisting>+</example>+<para>+Every application that uses an Esmart_Trans object is going to require the Ecore,+Ecore_Evas and the Esmart/Esmart_Trans header files.++The next four declarations are callbacks from ecore for events on our window, exit, delete,+resize, and move respectively.++The last two declarations are convenience functions being used in the example and do+not need to be in your program.+</para>++<example>+<title>main</title>+<programlisting>+int main(int argc, char ** argv) {+ int ret = 0;+ + if (!ecore_init()) {+ printf("Error initializing ecore\n");+ ret = 1;+ goto ECORE_SHUTDOWN;+ }++ if (!ecore_evas_init()) {+ printf("Error initializing ecore_evas\n");+ ret = 1;+ goto ECORE_SHUTDOWN;+ }+ make_gui();+ ecore_main_loop_begin();+ + ecore_evas_shutdown();++ECORE_SHUTDOWN:+ ecore_shutdown();+ + return ret;+} +</programlisting>+</example>+<para>+The main routine for this example is pretty simple. Ecore and Ecore_Evas are both+initialized, with appropriate error checking. We then create the gui and start+the main ecore event loop. When ecore exits we shut everything down and return.+</para>++<example>+<title>exit and del callbacks</title>+<programlisting>+int sig_exit_cb(void *data, int ev_type, void *ev) {+ ecore_main_loop_quit();+ return 1;+}++void win_del_cb(Ecore_Evas *ee) {+ ecore_main_loop_quit();+}+</programlisting>+</example>+<para>+The exit and del callbacks are the generic ecore callbacks.+</para>++<example>+<title>_freshen_trans</title>+<programlisting>+static void _freshen_trans(Ecore_Evas *ee) {+ int x, y, w, h;+ Evas_Object *o;++ if (!ee) return;++ ecore_evas_geometry_get(ee, &amp;x, &amp;y, &amp;w, &amp;h);+ o = evas_object_name_find(ecore_evas_get(ee), "bg");++ if (!o) {+ fprintf(stderr, "Trans object not found, bad, very bad\n");+ ecore_main_loop_quit();+ }+ esmart_trans_x11_freshen(o, x, y, w, h);+}+</programlisting>+</example>+<para>+The _freshen_trans routine is a helper routine to update the image that the trans+is shown. This will be called when we need to update our image to whats currently+under the window.++The function grabs the current size of the ecore_evas, and then gets the object+with the name "bg" (this name is the same as the name we give our trans when+we create it). Then, as long as the trans object exists, we tell esmart to +freshen the image being displayed.+</para>++<example>+<title>resize_cb</title>+<programlisting>+void win_resize_cb(Ecore_Evas *ee) {+ int w, h;+ int minw, minh;+ int maxw, maxh;+ Evas_Object *o = NULL;++ if (ee) {+ ecore_evas_geometry_get(ee, NULL, NULL, &amp;w, &amp;h);+ ecore_evas_size_min_get(ee, &amp;minw, &amp;minh);+ ecore_evas_size_max_get(ee, &amp;maxw, &amp;maxh);++ if ((w &gt;= minw) &amp;&amp; (h &gt;= minh) &amp;&amp; (h &lt;= maxh) &amp;&amp; (w &lt;= maxw)) {+ if ((o = evas_object_name_find(ecore_evas_get(ee), "bg")))+ evas_object_resize(o, w, h);+ }+ }+ _freshen_trans(ee);+}+</programlisting>+</example>+<para>+When the window is resized we need to update our evas to the correct size and then+update the trans object to display that much of the background.++We grab the current size of the window (ecore_evas_geometry_get) and the min/max +size of the window. As long as our currently desired size is within the min/max+bounds set for our window, we grab the "bg" (same as title again) object and+resize it.++Once the resizing is done, we call the _freshen_trans routine to update the image+displayed on the bg.+</para>++<example>+<title>move_cb</title>+<programlisting>+void win_move_cb(Ecore_Evas *ee) {+ _freshen_trans(ee);+}+</programlisting>+</example>+<para>+When the window is moved we need to freshen the image displayed as the transparency.+</para>++<example>+<title>Setup ecore/ecore_evas</title>+<programlisting>+void make_gui() {+ Evas *evas = NULL;+ Ecore_Evas *ee = NULL;+ Evas_Object *trans = NULL;+ int x, y, w, h;++ ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, sig_exit_cb, NULL);++ ee = ecore_evas_software_x11_new(NULL, 0, 0, 0, 300, 200);+ ecore_evas_title_set(ee, "trans demo");++ ecore_evas_callback_delete_request_set(ee, win_del_cb);+ ecore_evas_callback_resize_set(ee, win_resize_cb);+ ecore_evas_callback_move_set(ee, win_move_cb);++ evas = ecore_evas_get(ee);+</programlisting>+</example>+<para>+The first portion of make_gui is concerned with setting up ecore and ecore_evas.+First the exit callback is hooked into ECORE_EVENT_SIGNAL_EXIT, then the +Ecore_Evas object is created with the software X11 engine. The window title is+set and we hook in the callbacks written above, delete, resize and move. Finally we+grab the evas for the created Ecore_Evas.+</para>++<example>+<title>Creating Esmart_Trans object</title>+<programlisting>+ trans = esmart_trans_x11_new(evas);+ evas_object_move(trans, 0, 0);+ evas_object_layer_set(trans, -5);+ evas_object_name_set(trans, "bg");++ ecore_evas_geometry_get(ee, &amp;x, &amp;y, &amp;w, &amp;h);+ evas_object_resize(trans, w, h);++ evas_object_show(trans);+ ecore_evas_show(ee);++ esmart_trans_x11_freshen(trans, x, y, w, h);+}+</programlisting>+</example>+<para>+Once everything is setup we can create the trans object. The trans is to be created+in the evas returned by ecore_evas_get. This initial creation is done by the call+to esmart_trans_x11_new(evas). Once we have the object, we move it so it starts at +position (0, 0) (the upper left corner), set the layer to -5 and name the object+"bg" (as used above).++Then we grab the current size of the ecore_evas and use that to resize the trans+object to the window size. Once everything is resized we show the trans and +show the ecore_evas.++As a final step, we freshen the image on the transparency to what is currently under+the window so it is up to date.+</para>++<example>+<title>Simple makefile</title>+<programlisting>+CFLAGS = `ecore-config --cflags` `evas-config --cflags` `esmart-config --cflags`+LIBS = `ecore-config --libs` `evas-config --libs` `esmart-config --libs`++all:+ gcc -o trans_example trans_example.c $(CFLAGS) $(LIBS)+</programlisting>+</example>+<para>+In order to compile the above program we need to include the library information +for ecore, ecore_evas and esmart. This is done through the -config scripts for each+library. These -config scripts know where each of the includes and libraries resides+and sets up the appropriate linking and include paths for the compilation.+</para>++</section>+ </chapter>+

E CVS: docs technikolor

From: <enl...@li...> - 2004-06-30 08:58:19

Enlightenment CVS committalAuthor : technikolorProject : e17Module : docsDir : e17/docs/edjebookModified Files:Makefile Log Message:Stupid makefile fix and new pre-renders.===================================================================RCS file: /cvsroot/enlightenment/e17/docs/edjebook/Makefile,vretrieving revision 1.1retrieving revision 1.2diff -u -3 -r1.1 -r1.2--- Makefile20 Feb 2004 08:22:09 -00001.1+++ Makefile30 Jun 2004 08:58:06 -00001.2@@ -38,7 +38,7 @@ #HTML_XSL = $(PREFIX)/docbook-xsl-1.61.3/html/tldp-html.xsl HTML_XSL = $(PREFIX)/docbook-xsl-1.64.0/html/docbook.xsl# Gentoo DB HTML -all: $(PDF) $(HTML)+all: pdf html fo: $(XSLTPROC) $(FO_ARGS) $(FO_XSL) $(FILE).xml > $(FILE).fo

E CVS: docs technikolor

From: <enl...@li...> - 2004-06-30 08:58:19

Enlightenment CVS committalAuthor : technikolorProject : e17Module : docsDir : e17/docs/cookbook/pre-renderedModified Files:eflcookbook.pdf Log Message:Stupid makefile fix and new pre-renders.===================================================================RCS file: /cvsroot/enlightenment/e17/docs/cookbook/pre-rendered/eflcookbook.pdf,vretrieving revision 1.1retrieving revision 1.2diff -u -3 -r1.1 -r1.2--- eflcookbook.pdf27 Apr 2004 10:59:32 -00001.1+++ eflcookbook.pdf30 Jun 2004 08:58:06 -00001.2@@ -50,10 +50,10 @@ >> endobj 11 0 obj-<< /Length 748 /Filter [ /ASCII85Decode /FlateDecode ]+<< /Length 808 /Filter [ /ASCII85Decode /FlateDecode ] >> stream-Gb"/jc#;&b(l.SU.ss[c`(^*"E2.93pp^;94!5#;Rnc7b!_kSXs.22AYpnN@6<YZ2;_QJ_VJg2uIN1Ff(4#Q=V'*uYSre==`T/LX,jmjT(f"S8F\5T38A6=@B)0F-FYP7Vg_cJ0-HW@GrXpjLW\(6ZR?PrBJ)-r%KZ.5_0(U5:j0h7sKJLH"[#E]ab-oW&<UINWgoT89Y.@Z-Zu*2U%,Z\&+OHa:8SO<H-9AGn0[;l;\'OKR]]:u5&6&<'"9P,@NV;@?HZAH>,s6Nc+('E";3F]Qs$7dSWRGN8EGVno=Yo.jp:aXq?]4)BAT*Gf(G*^Ddl_dC9iG(o^M>LlbNsCSNLgFd-\<E0)BWSV=Lr9Q;X_2%fDC"A742#X!!E@SNeAa3PI=*&"-`FSWt"$nY-t/c:EOH@.`nRU.gYd7A#R-k:^M>U85X=#X;3F5ijEEE(J(Xm5p4N].7f4/A=-;Wp(c*D0(s,u$Z2d/!=/fh9cED1_M\sG5I:\V-u=k6rC,8\Ym:B$(u7-*L-#C'\hR`o2gj?Uq`M@qC"g25p^<o1+OJ4D*t,0e'imqOopps.Qh/b_5)t7_5TnFLmL%QI.IL2kVS9Z#?bFDufkP4q`ir;A!eL@(7c>6u`Ooq]('er7X]c8A1p+IZH.X-a<M%Ead4[S2C\%flFU(/Sd/QlH;5mDl=WVu1hKSB^AL+%.aI_FPp'',=n"N7"I%Zd)"HPX3:W/bY7[0Ro%,rdUh)Trb0.N3F~>+Gb"/k:N+]9(l.SY'L&3k@OD)HE2.93#$c\7*>""/9;eF?)+c`kDbo/a`3cBD+Z3s3WL)dj;n&(`5)JYcSL1*JY6A?hnrP,t;*_9SN!.C`&]8<J[#SfF'hR!;o/KlXhP:g*`f6[S@Zl\.eM#m_aQk[dWsSSgOuH+eMQic<V<N9[/*"'(bE+Ksg27e9SLE5V50rQ#\@Pnq=ckYF6>>1h%qsi*JO#mKLe2<CFXGhIO"e7q\8.`09m4Wq7m[VI!Y>WZRag#KqsD@FD_L)%/,o2+UQ*-(khcmPJPMasMht_tD43=\]u<12bNq-8frOIVqToJr/AJ3Vp[MOSjk'C`o6`=-DeGhXK#<G<,G*r_Prb$*3A.:P?7q.VZ]Lp!Ta(Q!JNu:`PMV5+MSt((p.q`siN1+%R<+qU=kZl=%6[`'kkI.PnitHoo@rAX"QDcZ'En7sW(T/4]an2!odQf;PATo*+$=Vuj.lu,(=GGjcp$u;HdTUCW-$D`7_?C6er-hO@\M&n6ND[&:S5(qg=o;;B-T/m1`P-EWf*']O]N4?kWr"3*_@1\r^F]VK#gBHVr_i\7Mn/XJ3b<-$>BJ,/U,A#%!Bkp](eJZcDR`>@8f1F\iLDdjJh_YO8OH8:4ZX5qW20MZ*bQj#RCPOdTn'd].7jCg*5-S='qMH]m)`I-=^-]"G&i<Ca8sLKT)E&6l(#hKRF+;#W/Wrr!tj1d&Ap6mSi-8`B2h8^sXY;"?N!M[a06;allt+B,MXe)9Jg$El111AP-!upS2H.H_?[(G`UUJ:B[1C7[0Ro[,T9sqsXF`"E1Qj~> endstream endobj 12 0 obj@@ -81,6 +81,8 @@ 36 0 R 38 0 R 40 0 R+42 0 R+44 0 R ] endobj 14 0 obj@@ -146,7 +148,7 @@ 26 0 obj << /Type /Annot /Subtype /Link-/Rect [ 120.0 589.001 181.11 579.001 ]+/Rect [ 144.0 589.001 267.58 579.001 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 27 0 R@@ -156,7 +158,7 @@ 28 0 obj << /Type /Annot /Subtype /Link-/Rect [ 120.0 578.001 158.33 568.001 ]+/Rect [ 120.0 578.001 181.11 568.001 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 29 0 R@@ -166,7 +168,7 @@ 30 0 obj << /Type /Annot /Subtype /Link-/Rect [ 144.0 567.001 282.59 557.001 ]+/Rect [ 120.0 567.001 158.33 557.001 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 31 0 R@@ -176,7 +178,7 @@ 32 0 obj << /Type /Annot /Subtype /Link-/Rect [ 120.0 556.001 186.67 546.001 ]+/Rect [ 144.0 556.001 282.59 546.001 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 33 0 R@@ -186,7 +188,7 @@ 34 0 obj << /Type /Annot /Subtype /Link-/Rect [ 120.0 545.001 152.77 535.001 ]+/Rect [ 144.0 545.001 299.26 535.001 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 35 0 R@@ -196,7 +198,7 @@ 36 0 obj << /Type /Annot /Subtype /Link-/Rect [ 120.0 534.001 170.83 524.001 ]+/Rect [ 120.0 534.001 186.67 524.001 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 37 0 R@@ -206,7 +208,7 @@ 38 0 obj << /Type /Annot /Subtype /Link-/Rect [ 120.0 523.001 153.33 513.001 ]+/Rect [ 120.0 523.001 152.77 513.001 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 39 0 R@@ -216,7 +218,7 @@ 40 0 obj << /Type /Annot /Subtype /Link-/Rect [ 120.0 512.001 156.66 502.001 ]+/Rect [ 120.0 512.001 170.83 502.001 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 41 0 R@@ -224,25 +226,43 @@ >> endobj 42 0 obj-<< /Length 776 /Filter [ /ASCII85Decode /FlateDecode ]+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 501.001 153.33 491.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 43 0 R+/H /I+>>+endobj+44 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 490.001 156.66 480.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 45 0 R+/H /I+>>+endobj+46 0 obj+<< /Length 1781 /Filter [ /ASCII85Decode /FlateDecode ] >> stream-Gb"/j9okbt&;KZO$6PI!]boK@XrF38X'Vgfeub#9-L39+.?J5n?XHK_E"GXl6Ufa*g,"9fdejL29I6A_E(c`,q.3\h?!K&YQ7=0e4\,-^^4R=8!KK*K^70WOnqP9U(NS\qIi/eV,<`O;XDVnuEaAoQ9?W$I#X3;/q]-:P>92X]:K[0`o"?BOpQs`jIRk(NeD+]cW2Q:F+DlPSAq_<GrX*lRX/jW':&uNPA&eGW$*"g1!Z9b&q8MX^Id^(40WJZ>RAZMkP9I<b:a>3,qN:Wl-!s/P8;E:@N3V@6S;bQ6$NAp+2>b(6%<0Pi.d#RYfC3S0Q)CO3%:3X3nH!VFSE66Q.!>*WHW5@Si.f?>eoL#&-a4-'TQcsa()hM$8\ZG\1d4CuB^N?595kdWuXMqiR$+"2[O0jVjjk>ZrMg#.("E^8XgV$j,]9b[\X#FliiKJg<++luDq+`9?Ai*qL0&8,k&C<)t+IKP=*dY780ZsscXB*T(.c[t'rG;i360gd$G=f8L,TsORE6C[2&(*U@S=&Jf9X(AJ!!35uGA4:TE8H>&CYOqhfhbP:"r$P/0HhP]TKd<a4LFKH=Ea>4g>cTMPrXird!s+$,gFRLVdeoQJ:R'WDTeLQ[_)]8hO@]j<gVCZ_JN5m\rEKD;9G!&G2H8.T".be/_qogd,.LQ=c((fQQd0Q'LPNNe+6(`HrZU&1Xq13('s-=U8_"+,Nnt"rI`rU"='9Yf!F+.X\e/-FrmFC6D%[I]C+Z@e>6HB;p<25G>@0OrWL[-Mn]~>+Gb"/l>>O9['SYH9/,VpZRdmr`f!c-`'iccl,18Sq.a)g,Jd5X\a&"V-^:qP.52ecJ0Z`0)+ed3e@W[^_ZEq7<cH#bA_p?2/hMh?_Ho812on6IkrP^=KcYUetJls3:CS"[YSc+jjX/YaopUjYe0PR'm/+)ic50>d_g.ncbXnf0nR2q4=oh"E^pEsOb=`>C2`]VhC<R06u3K;McjQn@1:9d$tLl5/bk=**Wf)*ul=ffdpWttp1Rt]u5h2afDOGT?h%Eb5(%jWSe.S3A\H!Y$N,`Sh"aS1U4O_%D(X;@\m%)"G.#c+HT0rnQh<98_1r:%QB\!Pn'Ej9!*`auHTp;`fO(:QlH%-,l!>V9XCld+&"%r=/rrr<0_72=UOWfTU`h<jCe-76T#'9uW`:<CbZMR#[O*Pi!<.0qb*H<S3[;@P]8C,h-7I"/M'ea94ooEX81#k\+1-XG=T?!C.i\hB4a>[NGj,[VY-TK*KY.KYTcSlCsgE2kDV7B07&V+4'pkUhEPj.r654gUN(7`F_d.->BP%b5u*KlL&9&Rt7SJjAdiSee>=;kXCC$FRIB("ap/(K#RdD)<b_mg9-0=J&?],nK@?"hI^qSLVml?5Wl5D\WD$YI'LmDjIBP"%"gfoGj9fbIQ&P@R6Y'X&E\7+\'@9VlTDt`O:+ZHgD7@NrXaF5raEu3*_C!0UfcPetT66;&0:\D<3N),/fLPKH=Chq?lT]6$9)fY_U.:BU&.rW,+&l_iBCn*f0+/C8o*j9a$$-92Ggrp4aI&2ah\kedEZ)>!G9F=!lcQR+Z'Xq]tCcC<`!0H(<_DRtf.9V/+c<*@t3\7V++4p)0WdC't=>WZ(#3%==%KQkiYF2'4jV(-j"hq!!T7\MgiF>/Jhu>R._Vl.#K/>r"/,IR,*<Y'ja0^'pt6Bb<I4Q"kZJnusU=p>(CD+`%^'oQ8#,KMO1PQM>758A;+,-UE'!k^@tHT_CackEomb8a]I%U!GR$ibmp=gkXp?5bRT34j9bZ6eecIqPb[pTkYXPIV?KOl7Qgm$NdjB&Ep60flj<[C"N%RK@'J62N,^-SF=TB]@CB\7E%tu<&f9hc%83!Q[1*La*WY.;CU&.lGLH'=`gE>8N2[U`UsoJ)AO8I$=@I\.,*U-=r^-Y%Kuo^5J`fOPR1-H0@KcmhXC.rFoqes`^NB;b14@s>.aZCSlA:G-=?Y9#UqH;!X/?A;=>RgM,V:=nrd2&s4-dZ[4M;oI"MZK*!l[t*q^?@0HMCE9Vs_9i)>fjp+eK0Y9!7QJj=7BNX27ma\$Dr6LtU2>i-mWk2WsJ`WUiXO8=c[1k]7?MGbN*Z2?q[\=V/u/rm@N&85%M1CA"@5Tsqqo#PM,0eW#H8odpdm72jg#3!B@5bJ_9e$d$o/Nq3hI.F2s;@cR#.T:U]Or77cR*Kt=mi>ts*Y-P1WRhnACWk>hOGr<F_l]rU9&2G*@m#_RJO%Pe)Y:TXmV.5E:'6biW`E+:Vb)9BCZFRH)\?\Ye2rA0e,sp&,U]K]cEL!nf=FtT%KHQiJWAB7UX-BEn]<Ja<*$bB8QB#p[Q<X1UC]\`;,Qcmjt:F%[=BO#!Qd@(r*:kC%tbG0i;3P+5js>cGRrECPFR@TkDqfLka)4(b'("A*.3ei&EpV/R+o54drL\Cjs]p"O7"1QIc6X!BEpR))e13[TJoBSnBIM,gsuOeS-Bs_h[bj3\A3_^T]\:/hl:ZNTDULMXnAKr)GdZ,A'(&(RS%.n-@\cSc4>EPPqukH^#$>R/a@IKbbWi.fA6EZrWcqUi&L~> endstream endobj-43 0 obj+47 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 612 792 ] /Resources 3 0 R-/Contents 42 0 R-/Annots 44 0 R+/Contents 46 0 R+/Annots 48 0 R >> endobj-44 0 obj+48 0 obj [-45 0 R-47 0 R 49 0 R 51 0 R 53 0 R@@ -253,32 +273,44 @@ 63 0 R 65 0 R 67 0 R+69 0 R+71 0 R+73 0 R+75 0 R+77 0 R+79 0 R+81 0 R+83 0 R+85 0 R+87 0 R+89 0 R+91 0 R+93 0 R+95 0 R+97 0 R+99 0 R+101 0 R+103 0 R+105 0 R+107 0 R+109 0 R+111 0 R+113 0 R+115 0 R+117 0 R+119 0 R+121 0 R+123 0 R+125 0 R+127 0 R+129 0 R+131 0 R ] endobj-45 0 obj-<< /Type /Annot-/Subtype /Link-/Rect [ 120.0 665.001 260.82 655.001 ]-/C [ 0 0 0 ]-/Border [ 0 0 0 ]-/A 46 0 R-/H /I->>-endobj-47 0 obj-<< /Type /Annot-/Subtype /Link-/Rect [ 120.0 654.001 229.45 644.001 ]-/C [ 0 0 0 ]-/Border [ 0 0 0 ]-/A 48 0 R-/H /I->>-endobj 49 0 obj << /Type /Annot /Subtype /Link-/Rect [ 120.0 643.001 304.99 633.001 ]+/Rect [ 120.0 665.001 260.82 655.001 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 50 0 R@@ -288,7 +320,7 @@ 51 0 obj << /Type /Annot /Subtype /Link-/Rect [ 120.0 632.001 239.14 622.001 ]+/Rect [ 120.0 654.001 229.45 644.001 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 52 0 R@@ -298,7 +330,7 @@ 53 0 obj << /Type /Annot /Subtype /Link-/Rect [ 120.0 621.001 157.5 611.001 ]+/Rect [ 120.0 643.001 304.99 633.001 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 54 0 R@@ -308,7 +340,7 @@ 55 0 obj << /Type /Annot /Subtype /Link-/Rect [ 120.0 610.001 223.87 600.001 ]+/Rect [ 120.0 632.001 245.8 622.001 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 56 0 R@@ -318,7 +350,7 @@ 57 0 obj << /Type /Annot /Subtype /Link-/Rect [ 120.0 599.001 196.37 589.001 ]+/Rect [ 120.0 621.001 252.2 611.001 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 58 0 R@@ -328,7 +360,7 @@ 59 0 obj << /Type /Annot /Subtype /Link-/Rect [ 120.0 588.001 175.26 578.001 ]+/Rect [ 120.0 610.001 288.02 600.001 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 60 0 R@@ -338,7 +370,7 @@ 61 0 obj << /Type /Annot /Subtype /Link-/Rect [ 120.0 577.001 174.16 567.001 ]+/Rect [ 120.0 599.001 245.53 589.001 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 62 0 R@@ -348,7 +380,7 @@ 63 0 obj << /Type /Annot /Subtype /Link-/Rect [ 120.0 566.001 231.63 556.001 ]+/Rect [ 120.0 588.001 254.7 578.001 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 64 0 R@@ -358,7 +390,7 @@ 65 0 obj << /Type /Annot /Subtype /Link-/Rect [ 120.0 555.001 257.48 545.001 ]+/Rect [ 120.0 577.001 260.52 567.001 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 66 0 R@@ -368,411 +400,1017 @@ 67 0 obj << /Type /Annot /Subtype /Link-/Rect [ 120.0 544.001 203.33 534.001 ]+/Rect [ 120.0 566.001 253.01 556.001 ] /C [ 0 0 0 ] /Border [ 0 0 0 ] /A 68 0 R /H /I >> endobj-69 0 obj-<< /Length 127 /Filter [ /ASCII85Decode /FlateDecode ]+69 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 555.001 259.41 545.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 70 0 R+/H /I+>>+endobj+71 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 544.001 297.44 534.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 72 0 R+/H /I+>>+endobj+73 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 533.001 250.53 523.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 74 0 R+/H /I+>>+endobj+75 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 522.001 283.29 512.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 76 0 R+/H /I+>>+endobj+77 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 511.001 267.73 501.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 78 0 R+/H /I+>>+endobj+79 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 500.001 236.65 490.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 80 0 R+/H /I+>>+endobj+81 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 489.001 239.14 479.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 82 0 R+/H /I+>>+endobj+83 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 478.001 157.5 468.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 84 0 R+/H /I+>>+endobj+85 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 467.001 223.87 457.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 86 0 R+/H /I+>>+endobj+87 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 456.001 196.37 446.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 88 0 R+/H /I+>>+endobj+89 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 445.001 175.26 435.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 90 0 R+/H /I+>>+endobj+91 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 434.001 174.16 424.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 92 0 R+/H /I+>>+endobj+93 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 423.001 231.63 413.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 94 0 R+/H /I+>>+endobj+95 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 412.001 257.48 402.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 96 0 R+/H /I+>>+endobj+97 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 401.001 203.33 391.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 98 0 R+/H /I+>>+endobj+99 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 390.001 244.14 380.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 100 0 R+/H /I+>>+endobj+101 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 379.001 162.5 369.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 102 0 R+/H /I+>>+endobj+103 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 368.001 193.61 358.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 104 0 R+/H /I+>>+endobj+105 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 357.001 183.06 347.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 106 0 R+/H /I+>>+endobj+107 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 346.001 216.65 336.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 108 0 R+/H /I+>>+endobj+109 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 335.001 181.94 325.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 110 0 R+/H /I+>>+endobj+111 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 324.001 202.77 314.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 112 0 R+/H /I+>>+endobj+113 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 313.001 205.27 303.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 114 0 R+/H /I+>>+endobj+115 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 302.001 279.16 292.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 116 0 R+/H /I+>>+endobj+117 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 291.001 178.61 281.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 118 0 R+/H /I+>>+endobj+119 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 280.001 199.71 270.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 120 0 R+/H /I+>>+endobj+121 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 269.001 205.27 259.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 122 0 R+/H /I+>>+endobj+123 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 258.001 202.49 248.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 124 0 R+/H /I+>>+endobj+125 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 247.001 176.1 237.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 126 0 R+/H /I+>>+endobj+127 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 236.001 218.6 226.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 128 0 R+/H /I+>>+endobj+129 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 225.001 221.93 215.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 130 0 R+/H /I+>>+endobj+131 0 obj+<< /Type /Annot+/Subtype /Link+/Rect [ 120.0 214.001 178.6 204.001 ]+/C [ 0 0 0 ]+/Border [ 0 0 0 ]+/A 132 0 R+/H /I+>>+endobj+133 0 obj+<< /Length 127 /Filter [ /ASCII85Decode /FlateDecode ]+ >>+stream+Garg^iGoCd.c`?]8EV`b1=.gR0K1`91K?+0ZOMGdU/Zh'Y!=Te%#&:?HH'(;l+<?5(kRE.dNH[IJ1;6A'oWT\oF)0D9TA^=bS<Hb'r!S.1,TeU'gfPu7KWX?!ZVF~>+endstream+endobj+134 0 obj+<< /Type /Page+/Parent 1 0 R+/MediaBox [ 0 0 612 792 ]+/Resources 3 0 R+/Contents 133 0 R+>>+endobj+135 0 obj+<< /Length 250 /Filter [ /ASCII85Decode /FlateDecode ]+ >>+stream+GarW4b79+X&4Q?lMHRg5YqOh:`Fu!&$^:";$QgM08@@IW><kM#[[ZN'cFp^3/=E[EE/DR?YQ^_>,n+J>$oCH]b+tu3#(),RZm^ur-MK7=\CR#cROX+1rgq_aj5&gFDCS`.DudKV*XOM=e:PT2c?S)?8g;_u05o&!eS6Dt9ltFDLAgtk9Md0-FR+<<U/`.@TU(m+qfd1MQ4+Fg>tm]JF"#+iA9L!NP)6qp6OZ7LkU-FempW!O#PI(L4o~>+endstream+endobj+136 0 obj+<< /Type /Page+/Parent 1 0 R+/MediaBox [ 0 0 612 792 ]+/Resources 3 0 R+/Contents 135 0 R+>>+endobj+137 0 obj+<< /Length 287 /Filter [ /ASCII85Decode /FlateDecode ]+ >>+stream+GarW4bAP3?&4Q>@`@RQK-G0c\2Gl!4]1VFa/r5H,,TF?PBn*nY@GsZfS%88'#A1E!CgI9aM,bk;["Lb9(sm@ABT<d+<MP]qbQ.NLGI5i@`>,JbelZ"\<`!c5YMY)k+8?1,_7V.A$&g3+@aA<!08<@;RBCJdq9GFqQ`QS6pu<=fSK5<Ja'TY;F.XHh3ZhVXm232!KC'H-@"Y)s]fl0G/F]@T,.c.2kX1.".:*GY\uk,kFY+Js+KmXs<HQTN&$e'RNG1fNZu99)THa3.^j3g[^\A&A0OAY~>+endstream+endobj+138 0 obj+<< /Type /Page+/Parent 1 0 R+/MediaBox [ 0 0 612 792 ]+/Resources 3 0 R+/Contents 137 0 R+>>+endobj+139 0 obj+<< /Length 1521 /Filter [ /ASCII85Decode /FlateDecode ]+ >>+stream+Gat%#9p=Ta&A@sB.&Z`;fnqsEg!4GICQ`L38StcYAu[UH?jTuc+JArq)Xjj?&kFht9p.)6qE7-n4D8DG:TJEKO1f5i*tGQ".TV+E=bU1T^<kV)Ic.&XUS$uJhPp)F>/)Rb,;Ht'[aBQm*tQ1Bp"$D:ik&!)5MgX7H`*L#n&,S9j[FG9]nTB[V!6/8pIFWEmKna,7iM0enT[0@CGNfKKdG`(LH+.b/Ai0C,]W7\aADiPl.Za;?(t`^-186lOud73XJ7>/I,Wp.EfR_6aL*9t6jXLtfHbp3)j_0PA$VVED:;-@#WWPOM62$$mbPp=`8C69c<Gk"L13E2$=0mg=9?mI7,'N:FUhP_m1*(+r$U[/!Jkm+7?Ufc'r8QG=>O8,i:9&?/SI,CLa5bu^mS`0)o7[K]>t?,OQQs._`X]is1>/(*aBV^PqmmM9VVAM@0<hX1_:,9TKOa*I:Y!Dq!Q$A(-iBHNgc,A@"<7SJs[[BN.LLJlhojI8)_YH8O>WJJfmrDcU)Z:aZ3X6?(rD'2_gK+pp"G%b>`dfSC(Fh?)f^F!Z[QZ,r2<M$5%>'jJ^GtP8,^AjIVb9O-i.?ras_9-_d;J2GL%;AgtG?@F\L<$(KsEBB1*bXL?.UC8A.nA/7?@d3:%kJRu9pLk)'C'#$d^/Wt+r"DF_JY[C_F^"G3Welce8\22@=^b5;cNoB;`Ti&fXj.PYS)GV$`DU5-40$9P$O&j9/HFW523)':t*.Q2OXhZPDU`/Src5P>XL:r7uCF3<gc+NT_&$oR6mCV`PCp4lqW26g$a;iMM'(&,Y_tpD0)EjfKFbsgp!;BkrBdap'4uJPA_6+=JgoB+-?[/7dNuL^GaI;A"qCEVO)e"*5(2^11T2h?/.r\jIL?beUs3p/7=GdME3gV_s$i<7=7=_r0O8O#&UW^lj8..Khc"7'mU6V`o-ET>'DoLYmX(,[rcIbISB/kCNnLaFJYdR+lK2hC17TtTrAXQ^(bM\hsQP+D-eluVcH9YloJ6sd`2D[:qAk_oc36;te=Rf"i.5)*GiETSefMFMo-/m;%$HFmD8orJ$_i7G(W@^52PW`20?IT)@8g:NYnYmeL;2;:nMtGu.D,[0C!,mUC?o8qlWcD[tbV035(&7eDJ\i!I(f+F['rh';BM#6MZ!-DP5aBCTOO]2km:f9Or:Im2$XfSTH+fE@'b/NZfm(leY<f)4<Xmae[c6>m1]\pB(bGa8mZh5@kcFM3LsWX+8'F7E#Qhj=dpbn`*I(86N+8qj=4^:qPFr%gTT2Cjb]*f$YGnJKc'jA"Q(`j3[ura=FPoq$8ij+iCfTSac(uXuARe=ZI5:u/3@P:]5Ri/M,26OB0g2PdK.ZTeE=/=<_db8)Pu,)F(?0P.OTp;Z@if:[+PhD1TCLGXDUjA0f?BO"CNi&.8):q+\pI=pMuS2#mF6dZOMj3".@EJ]U@%4Q7I4[XNH'Aj>(+ujeA:$kV[>M(2qW\e3;/6[Dl_XA]V4%InRB*b^,Uo`hrh%cm`'FgIfR2lQ;d~>+endstream+endobj+140 0 obj+<< /Type /Page+/Parent 1 0 R+/MediaBox [ 0 0 612 792 ]+/Resources 3 0 R+/Contents 139 0 R+>>+endobj+141 0 obj+<< /Length 1977 /Filter [ /ASCII85Decode /FlateDecode ]+ >>+stream+GasIi>Ar7S'RnB3cnZ#KJsP!dZ?=,i,:tsLm?W&oo3a7-AMKH=O-8nA_tMi/6rG3T9+>>5r!phiq+)PJlLj^_rl29L+2tKt/[Ht^g0Qe*%=aBQ\]D4r3'j5[=j*B/kA6:@I80Krp"YNNPf._X=u.8nnQj9s\Zu.>QG8%B^iF6f"0,S5NnXiVcppiq8A/c\F3f&,CtlC6c1[YJl%W/c.38n,-c32Wd?g"@.I4\ra5s1kj`[<!h"1b3[Q,%he$!</JKLn\j0Y\blus0=/GLneVjsW0?W>L45_c-XkYQ;3#Hh_[:`"AF3kX>d1rYGeN<qOW7a-l("?RHPPjS1G"C;L>c*jFnj`3s"/Ti#uAk=[0c5Kc;lj?W.Wckm'#tNgO_j7T*jFua-bO+A:aS'-.q`RO8T)@5YT?%M;DYofq"Y2C?mE=@O22B^[9CgSEZXX[ST!Z)F7[+W>dfNJ)WCSXAKJ5FSlZhrbE;%JHn9mU:d/&\<hnFKdN?F7gMIeE8N01/m?5mkkWS!6N.-!uL8Y,Uf[iFj[l@95pM:T4,=>u:oT/EY4DJr]>@AC/@`^!EDp)9gFird?eA12FeMoNr&]c0A5VBBBce&4_I3[Zq]"-Eotoqfj%<db8jH`8Y[dA#ht[e)Nr,<(7pj9ok)cpF&kER%;]a&sM5Z6nLQ9ePGk$QdBTQ6dfRlIuO?qdYT:0[RIaFf)XXbTe];HlD0Qj;eC6'f!![D<;2]L9+f1QGF&miXN&q:'VAU3I2f1#C2H,/cj50e,^?gdc_A3pC<8.+M?t!/1g[TLV-Gdrk:r*LJ=O+["XqbVKS3=*9Gt:4Lc<#NcR@3LM=<aM_O%ccSS=:bVcuFm0u1\DD_?*B\W8#gS'CsGg&)EBm]te)MtLAA-KljPfJV0c2X*)J\uFI:/$7C_Wsb7oT[mb#YsK9=jrPbX4_X8fX2UaG<bEeh;[Jnh0SV]_jbjgf6?u`lVE!](>knl1,X=7prIBQflJ8`"%*I+TpSDM8I]2_2u%G+RT+,#-u:?nO9g-22)sW<G_qKUQG\3mLI;/JM/(+^UO'Ts)*S`D<V$EpoQ4qd-"k/'W>KZ-'9=SseUsB%lE2;(cJaQAZ>Vp9kk^M,)WO?A$NfD"A+mii1X-6BQjjkBm\G:b5bU?<+1,lcZcRJ&jMpVhBNrJW]:^0bglV(uolc/X2JcdiB`j6AARgo".>)LN,,a6qO&)7/lmlk"jsNm=2=::Y1Xle->eo1Krh3NOXB)1.PV@D]I2J^:ieZ#SjdQY>FAd5mU<"@TI[jB.?)W4B<:*,qDYIMX$!D[47OLOjq!#s4onK$[koK*D&b;hTNI<NOgdY$OTjX7%VJB$VM"E$?-!hs<9L;T/BTS,B8-(.9297c3BiN9%9Hd\/Fkm7H^_KR$4B-Q@oSUd][0KdGP+%\Ih28RIBj.O^<D@Ys1Rn;<E?Us#@s%Re+]DB_#WGC!X(^$WZ)B>k&k.suO'HkCh1'g!s6BRZ_lNNUWuIkT8uEEN"e$'gG\;+c!FEs)D!M.<?:'A_-[=(%nX(GMFtjHINFI.:FX=@\"_4/^P3'7VWiB$3=9U0o;[($YMZm!&)/Iu&Tkpp#G_mi2/4Wp&ZnOs",2.U\Gr^mR#o,uIjaV>>k3tjCjsKtHkqCaQTQ(^TVcCBlY8"M%^ad1[D6M;tnLMQ&lPi'e@PptuBn3bAZgH=B$.QdhaBYQS'DbUCfZ$o[[jK[#FoRnZ('h_lC.o9gG(c:%e\n7c]G=sI=\1D:Pa!1D]&6T)2;0bSJlP>WAI@MnBM?=Tfr^SV21#F>\24Yp8.@A<o+hUl`&A_`;$YluIO+^@dD>S&p[).*le.-A-r47ZDfnuj+k^J(0h/$(fiAthJmf^"6dC$V+cViNP`51Un7I_)V%EIeDT%O+[Emp8_4fYGp>a6Mo'1/hJP`Q_q$s2>?aOZ`EFNK\^L+Z\%L7aX+rD?PZKo>H$fEaqg@(!7[eN'VkSOX~>+endstream+endobj+142 0 obj+<< /Type /Page+/Parent 1 0 R+/MediaBox [ 0 0 612 792 ]+/Resources 3 0 R+/Contents 141 0 R+>>+endobj+143 0 obj+<< /Length 2563 /Filter [ /ASCII85Decode /FlateDecode ]+ >>+stream+Gat%%h36kU&q?Og,/?@c;DX1pj-To5G*h0FWrh^T<)F?&%>l_b@M6j7gRHGNgu",C[B-f,fg*eEpt(\?>HLqU.'GNfbAYiu(m&.1WG[=,mNu0Al7ZCqd6Pp-LkOGjF'SWhHeS(#s'fsi#73s;\)!Xb%cQkO\F2"jhm=e6gTlu%dUpg/1ujF`&YERjG(*27c/81"Mt]n+F;@#+N>+HGO&M_^]Vc"YWM+s!rdBV1mp7UBD6`p2b[@J6*"CJiRt5XF%Kj2I;49>)dn]K>C*fYX?rB5n4WK8b8/@.Nlt4a-ja"RHgp07;p/m-^ik*6`T]L9?i&[^)pm`P]HrW+lU<V7aBpBCQ/'ElTUtj6ro##8fYJH,db(JR&CVsO@oWmc?r8"6/ZhfWIk0Bgrq.0#7U'7Y>0Ws]Ffa**o>;UN_h>Y:8a]X#j\7;'K40i`W9#To[/_s9aPka$^nk6Pr+#?H7."%AgUBn,j93/cT5o^=dT?g!KHF/eKIE--0iH7b5-'LMIK_>\M$g^,QO(\e]h(I]C+n+(2+^13B8CmI>^*(\W?+[=X75<XP6aMPX=4;&]/90m)(2.=1f1!_KNA\9@gFCM(NE<]c)beZ0T#:]2#@)?o-#4GsQY<LEs)C)'M`#R,_P+g2(W&YO)E"(1B"RND;Oe:k*/BdNR4oVrYb'2:9JjdK(bIeXE;ToYRIV&8JHZ0t7pmE`f@oUE^Wk8/9eMoQ4^EhR[9f?95CB-Ek('rg,U*`3(<;.Okfh'+Ggq`[K(:X1c3,FJ=_/^h<tpP0.aT1'L&7HDT8i,`A<\33^Zu4#Kf,Y@E*lQL\na%^^pi_"UXJBQV1Y.'<p>T-ctlE#^$E[kAg#aYUB*Ca6VrUUXbD#"6/Q!X1><15gHtJ.6VEM=2Mu5LY&=;n^ZRp/He/eecVY1bIc<5J#Z8X&DC(Q\mk%0&a;Kofb#seV<t^er=#SJ-R&;MYIoj1!@l==m8":\q!cmu=!_%`die/JNGKZQmN5'"-"9N(6[hAQJ8^Jp>B+]9s7Z1[;e\O$bCX<d0D$\adA/4JB?0e,_;NF_,35U`!JJNmQ)=UU`dfgo9;%8($)(-R4:Un$P(>KaWWf0!WR(CV0RnN+SO"/aNqqqh&7WaZC&Ita9M"r6g3NDD-08WVjjf=<%01M)m-U&RDkisdt_/F8$4[50l7C@In\"qipI;q,6`d(%Z25p0#-d+*FQ`\#)Mq*4a<\X39='m,1I'_9ZM%c9$b3bt<nIQ-/n]`QhBSf3Eb-R^1@7>8\o#jsC;R6<!nqLqn<<%'nG#J.mnsOGcGMlC*"'./K9d`RJX&&\O`bVl;rk>+ll6!V#g1djFM5n,holi:>7(J2X<fN_G=V7RZ:gM>Ya:4L@b^?`-XQWB(B1G&XD>P0&`iBH6U*8<F(m8`$J1FM+=r:ApX%KK`1/!m4MG?]J8-3Y7a#[!VlY,9<TP0lVb<Wn/7+i,RFPdJ`KkS!Q5%*T;!<%C=fM],FmIEJ[If.feQet%,nFHI3-/L8u4RJP)D"2Vc]QN+n,n,=0gUE/YjgO,OBpBe2+:'1CeiCmKf\n^>d2n97`((M$&P'&P7Uk(#*pkj_AVurZ/_JlQ3ULd_:AC1\*A]>`Lte;;&CL2qLh*%,B?F6>9\JiVDMuEf*<lMqL`=!*ftDQjf,*"t)&f_:U0XXREq9QE#j1Nl_oF*Ci^giJr+Y7hUd<b>JlcSTTLa-(?_?eK7-U=EZ-uZ(TCL??Eh.<@%X",A\)#64]JjAGGQPh2LhF-52KKgJ)cmL2c&SJaMuppsF3:;rE6LMfWdmPP?/quZO;Cs6iV78c3gJ)^R\;5Yie<ha`@DqFZ_>$f_O(IOC)4K[LY8mb#'!d8ngmmSYjX%*];Cr-l;!5BLGniudKik$aGmuuU5l>:F`F'ZI]V=,Xbgfh&;Mq=a/&KC_kbFfWcL99+a7:#=(+oG5IX'q:(hW!brNZW*I6uo0Mr"-pUi=Y.?7#u:l;B#pV^!hB/p$o.UI(XM@fS/<VSM5Jeh#,ce!C?D7kUhG9e9\0c_+A\7L_.Kr^IrQ>4^`ah1j^,^0-[#11f_mhT(f%Jj\B6K2_-4S/[rRe"2TKtbc%NpYpbfILLilc^caN#Ft)BJb=,d/_:HV_aLlobEpr/;c<Q/DU\2&dM,oi3QCO>"_G8Q(2pM3+:1ZFDT91Q.fBWcK=f5fcI4^QY3t-;!8uj?\59=?Wq(P`;eO*`eiO-ch7Mk+7'";(F$X6SO'#ph4Y]b#*O0D#1S'qSS0RMGFJ+K(hsrlC6(965L#LMm2rA#_n1FDdqJ&#OMWES7PP(HEKkT6;Y+e>Yn*TSAWF7$T^\J'-Il%R1<W3=kd+:Fa$nB)F@O1%^e$MKb2^/!&&[PtY%qV?eOU6/].-.dMnYT6(I#jQ,7#N@"<bk$4'J6p+8efK_69D^X.k@%rpYH0Fmm[o<7X+2h@6g1&$(YtkN`Sil@>)fo#kTre=#GCFL/`$KLWN.EBCm64D\olRG[t%YTtLY,15;!qN>Ylh>I$0e]+(!UHDEP[T_a@/V!i[j1S?S]rWft3/A;4NCa2q;TIuspsT&.~>+endstream+endobj+144 0 obj+<< /Type /Page+/Parent 1 0 R+/MediaBox [ 0 0 612 792 ]+/Resources 3 0 R+/Contents 143 0 R+>>+endobj+145 0 obj+<< /Length 1852 /Filter [ /ASCII85Decode /FlateDecode ]+ >>+stream+GauHL>B?;m'Roe[fX`a%N3+5jUmDrH+WYcs\@$=RSSj4F6+a)85_.Zbg?F*j5QVtWYh:;N`"17>,TV:o3]HbXE:idf2o?Q^B#4%/S#q_?9]LVIL@n#LHTH2L=n"-BA,\('U3%F)PM)A+23[Y#r?s<J8q&mjrAb77hVIM_aRf,o%53TPEkcH6h%BNe<i`>;>D;]4X2F.=1#M%C<`;e';Nk%5#Q*^3X?RC59^cepS&NKnj'4,;R<XBX6F&SIAQ[?#_uCs$r7*3`#-t=k;i5;ceL2:>ZFp>gn`0X6:/>5"]giV/=W[;caY-1'B/CSAfsA6]@jP6_'MPh?N.iLs8lFbc]EPnkOsuKS%@A>:6n=q;"tF@YXDr<#&mJom"\ZC#OFi*8/_=-)ZTJ>fCfq*'h[PT+)gtP@LN$n1+sedUn#]frd8Nrl;Sd3:1PPTU(mp7QRbj1j^/?.Q;?`4G^PBDP"mTIDiFGDbdr^\P\UpCPSid]9ctFU2.F]^a5Ug8$X.LiW"2CHp's6(VcbZ+A.*Y,>kDm'"UMV_"O`D0;(QK,+!Z-;@=NLGDiI?"ma#(?ZoK;1Ph>OqnL,Wt.!Q?8H*_!0WiG(p(*WMti[?uG2>EpaLojYWpfuqEZ)dSJY$qok88q-Hp@Xbu8aB]/DId?9IN&)=3c$>49G!(po_u[<$bg+ieJ"JJp]CEfCq.n]TOo?A.@VEj;DZan.:U#J3OnPVp#bsN:CC?(5mVF%i<6;_3o53'_SCjWGA/LqN5f:L\FS6X"E&"ZgJ.(3&fF#6thc<2G`RV@<qJZ<k6$RJ@e!osPd/WJW!!*,c3fq(d]t?HQ\JlkrY'f(Q)UE4EO]14q:o"mNU86kt?_.>@7V"0'l6K`?&r#)I0#o_cabc22/6d[.2&$?$9GPP2\B:feR9@CL"cibm7Y4mjjEH+$W(*ORgb;!Phc>?3a^<=6k!^^Kl+8f'Br*)L,"WpK@L)MdN\Uc@?.!bNPTWL6cjIfJIia<PXA0HRi+s`]]YmNE!AnjT*p0U3]3nFf"WG89@A7sG?]8btga)0$+JIjH&Q(p;YLAW7n`.96eE"R]/EFCsLR'o,%S4"!,%2S?&o4CtV1;uOPW;N5]RBrkgF\@'8om:\BWZmB[f7KE_CQ>^C:qi$J4TB"J`at2V!N"D:5%?@Q.61'[E*Vc71.5H7t?FIUD@sB#iJX@hHKXnFmI*H$0W(Dcien07.bsAa@8q!<CnCG>c6fk-#5#l*6T1X5McP-[Z2?FSns#F05?*5P*.H4_%$;<U:)?2\qqD4d].IOOrnj_>n[J6dt!duN+]H!>[73t,/!VV?Nkn'oD;8?^HUJ!/&Q8,J9fZ!o!m^:kDu.o<IG:uLr]Ni<g=]rRY<TC5,b&1"JrU'f5LWRnGMCkEK8\X&2pB9a.J=rEl5&6FS@T%^%<s*\2b<[ol4mIqsdL#[Y6:0F1IhHk7co-$TZoD\`$'=TtLNI(,@q9(MsZ1q$4XV1]l&gStoa%`hF!*!!GnQXbJ-MaD8:fppa"Ho&(LN!/pa4OZ4Qrio<s&i9X&q:^iU(H!)ZIKZ&+L`1![l,KmO3AXMq*qo[Q$=h]H_08[B<X$F@+3qV/B)m"F[]H<'Z:`/Qa>I(Q7LSBBbgfh+eT9Jmh;/<nHLD!a5HOQNc`.";Ob]cQg!p/f1EgdCU[m+DFGakoc!EbWsM;#0*%L=lbB_`(0"7rAIa$8m:IVRp)eI,\9qgE*(?eaAL<9)fR[leu!RVk2'3PHtVG&q`("C"bQ5W4:lnr'H9DgSROXWJOr'>I#FF<05l>;NT+COB+0g%+@YUZXpmXelOc9YSkBfE!#K\3?B8hQ+rK$ncIIo97=5V<C.2$8lo~>+endstream+endobj+146 0 obj+<< /Type /Page+/Parent 1 0 R+/MediaBox [ 0 0 612 792 ]+/Resources 3 0 R+/Contents 145 0 R+>>+endobj+147 0 obj+<< /Length 1852 /Filter [ /ASCII85Decode /FlateDecode ]+ >>+stream+GauHLlYkN9&HA?:_C.)h),`qB=W98lmF%[qJN`"@RKnD+Bq)4MWg%=t)tq%-:[o%MEV?(3i:)cI]ArGLpnM.K/oKOCZS2BqCpC\[At+]t(9kPm(.Og^#8%75fqOo5H$NU+MTU-KFZ"L`V$2ZfQNu.^U*<<eCUCZ2XP5\Kr-hkaqt3\Za5(TXGPBsWL92WeOVni/ouaRjLTR8)/[FcO/ZK"K/4IJ>cB9$#,u"skX?#%JE9sd]ib*3(=V6\+2qGdOC`\P@$ftt'Z60DsmPdQUX+GKMHW%eYOU*r#UNS&pY[,e8Q>j68?7rEd_&a&tcF5cAmiGLO4e$4RT3/V?lSYE\#>^@Kg=&LAT)[Se:ZgSL5N',EN[Hn,*D_qAS:*t+L%$.m)oGiXdMPSp5S-)QHUNEn]^k4oXclm!/C$;?-%4pe'ro[>X<dG6D`4_,/?#,A'FmrPh9F]E77c"1(U5@hfmKr[o`6sVD-9LsDM>p/A\kB]bT-E/0H,aO6_SZ\H;KP@A+Um8(aGSa+Np#T14+"BQ#`Yd?d!Ik&j/?/"1[@C)CO)q3+MmG4WtmVfg'>U-"bpuQA@2qaY7(.IHTdagd@BY,'EUp"&[X&FQG[>i0N!POgRajUA3C?=_d0f+&rm8+J&ksFuQMDiKWFP#ANBQ4C_6UK1p3KZ5u>:/'O(*La5WG*9;fWoC&%Yl/R^6i^q-JUrD5k;@#S6ME`rZ0J^3[m7=GWb/dS2`EJ!Z#pckUq?cgM`Ef(=MJ&pV/gD%@A:s_"DER%G)D[0S89J,p/s.Md2!&.#%pN:UcWKs_o#QtN1M7gK:<lHme\,$_'_NL*7BRL1!JZ\;RNfa2.b_g.0gnjg\9C?kIBH;s>)tKKES5'DUhSIM3.1lV8S[YaKX*S/"+Gm=O!<%0.=>"2fUMOZZ0+N>`gQ-;3_WL0"+DBbqNLtt*<Bi.'T#Jm6LOJF(uiJe@9gg9,qD5]'PpB%D)%\Vb$=.m-`*!O0_iWJ.2&mGY.;T&,N,k0CA"1T%T:r`H^+5q#O%jJh;Ii<KK8"g\S3Y1W$`i`on8W$$sa'9LChGe&6)=?kXe_q;W)V,LgtI.,8aB:Cd58?V](c,nC%kGZiVk,Tf_>VfociIGBNl;AT.&ZH'/@3.RjL^E3j=bk.4"mp`A%3n2+TmCBA]Enlpk:7N]iR"<#8u,KO1&()6)GI_#X"%'P_-?EFGMdip]P7M-sj,],D\acPK1_Xc!6eA7;W'=J\3b!VXPW3MRja.&893OCK)aqeOt@`u4&FJVBuCLA"Jen5keeu#0#%nuW"Ib9LO_[Os3qLHdlia"p@(Re9HOs]oFfG!Q(&l9FaE;W5ggj&tdINjRF8RkmMQH,39aYKqjEqEi;lASlNO!,A]Q$?E'Tgna?lo&'dhD,$eJra(#0#Hs'JtG7@_=r1Qo"uuYqbu-QfT$;nHNRguMi:_.d*f54g_7=U;r@'P^k1+^3j^R9,LMtR(8JRQNYVB9,Y!dU3=(da)NM/\2]RU^;4`DZSk[,WE#RS&*3Vib\aVM7=O=GM_Kjqi5u[5p1%A](>Hb[?l)t)N8O^jjn't/l9?_g_n]3h`C14r)EKV;9[GmURju?n"CNq&h_DD9%YY8SurnsL.S+uFAV3?u?VKq0Lr[Mj*(R[ALfW1:4eVq7%_rZ0%QWIibS]W*k%!eckkpY<NH?o>G-Xpp0=p:t]Y+Dr$I+9g8Xo/r'07Pt[-k.EPH.(bVFVKQ]Ko3gN,?L[36'S!]o&A@#V,)Q3Jg<I,n3<ZDru\ncfKT)b`Pj5#+]a&B9gX#;-Xt;l5SVJo(Va7g?;,O=W*n7B@>j:9=5.HF)&&T@XjtAk7gs)?&u@-<MZ*_;&nQR~>+endstream+endobj+148 0 obj+<< /Type /Page+/Parent 1 0 R+/MediaBox [ 0 0 612 792 ]+/Resources 3 0 R+/Contents 147 0 R+>>+endobj+149 0 obj+<< /Length 1825 /Filter [ /ASCII85Decode /FlateDecode ]+ >>+stream+GauGa?#SIUn3+NQlO^ia&m!Mkeu_2qVF1)9e3G+U_Or29@O"OK,eM0QrV)Eu-(YgnEIk7=$h&1]]K=sdq.=d>ia$A/)qieWHXU-f(YH%hLFqk<*#[H?$F."m=e?K,R[*7u=ZlSpC7!Lo?jj+@dE@9q7p9[fUP/n)pIS7H]@$t2rCSgjbEklfZaKX>Z?HjA..ZKV2/NkHWL<9$(.[;8a?aes=oL-S">4^]8\r[!&p$r_"g-BSVfbI4Ot;V.b;@=^JHQaIpuueS53s`n4^k5.A?!D[bpN<?ns$b)d]021p\T&\F/3BZrZDr&bB8>5p%gV\9[;]oQLm/sI*Y6qJ*Pr6Sb>VHj^,,T?*_f>6-8,l8X=FK1</_&QV*o?b.H:<b.B85<#>m5<`TmrLA_::.TrQ-WQ1%0IauEQ>];_VMVRY.:@+]7*!bYbGQ*\P@qn6h#GA"s3Gl]#]=rn!CXM9%"^jr[@RJSUk"=Y\d7ghs=X;19!hQD*!rd\@\kA&9S9sN>.(#tZ#GVP%^_psg[XnO,-kZ_]%AX0&?",7mgRFJ;)T1sm!#=JKBXjoCBk[d)=#1d)!Nb3ti1I;FBiL?D9d`8i#&Zu#CM;S/rg]Wu!$J,kBg*T.7[g2HRBhnRG*$4g=?0fKC>/NGo!n&'*8kH:_s8j8O77!fe,`hk-mlVjHdMY320/UID7H'>_Ff+'$HL;+<UWK%W_t)#>'a9O]c2:[[\:YURC0s&T\[YY$AiX3lS+Fd/ZY@AK.7Eh6H5<pkC?FMQJn`%3PdU':k2;7L:i0t5Sh&2ks:$#`,Ol(S&uP$.;.)VNWpR^]S>g)>:[DD!"Y8MX`jSn2*&q*NqK,c&Gf_16A/Uu[N1nK!s5:VJD8S<W#V4<<$rj,iY8)sc:rrmIqrlhF.h2S2Y=]&6N7.h3!4u8l*]2o@5.KFl[dTWpc_%P9$5&#`ppeC.&(u#f1qHYG'OUb=ee:5`I#mF7Z&hHL7a3<!B>Y:-)Pmn5uR/[Uer4T-EF6ORCR!W]LhkCBQMaT)KAPt!/$C4EbI__k[ki#hGcR%CFhtd;]UCA;+93dVBNEF6<B?NF.&TB.ba13d5uYTGWcg5TJ7\end(@IX@@]?m"Es:TmK!&Zk'r^D!YN36[8p%W+H_f)r@nlQdd8MeWFDs$T;D!Y-FX.QjTs5rd-Iq\P\=P-rS<')?Co=,M5D]BNDpG/s:]%),58n+[k];c\uirn(r5dG5dnpBlV50bl4Y"+Fdrb=4b@2_+u`m9kOVh(jU+3\F)3?G"qF.]1t<brADVXs10&B^bmRi(CV1EZ6B2iSSX8%n-kl!`pmP\Eaju:I#^u%b8p9;P?/Df9Vf@RYIir503k3LjDD%C<QQO0<PFptX0Ou8E_8+?V'O:#/h.Ae+KNrV>M<hBO"7l#c>3iu7R':IBS^:n8ID7*X%/W%'Jpo/R"BZlBrcgc`P#8l?.5M%.h$>R)Beo?+Pr6mI_tF/K=i6t5[H_:\t;&G!#@JH.bLUFo`G7`l7sS-@D%=or+X)'QZg^[lp^C;"Wum+q/5+MZ1a'4)Vo/J?0LP<Naj0aDD5GRnTS%.*FU8lh2TEM'RK,$aE@VPed?-5(e*`E'P-1`n_s;"n;M!)m"G]M_=Xo'@IcbV>T.@+d(iD44Km@dX1=D4:UCeWY@amRSknVb6p_[OGCV*/]H4a2XIu6?FSRk[.0f+&fMB-])+p^[^^a5o48\:*Qd3B+6rEEJ7rO%NYqn`AZj4*>:O1o2Fn&HqU37[lo(MJBiCp=u'sMFfD(kn$GdB0V<[[U&lZ"8S"hZa_AI"aX.!g+EZh[:.M>'Ca/CK.L"Xa^hPl~>+endstream+endobj+150 0 obj+<< /Type /Page+/Parent 1 0 R+/MediaBox [ 0 0 612 792 ]+/Resources 3 0 R+/Contents 149 0 R+>>+endobj+151 0 obj+<< /Length 1361 /Filter [ /ASCII85Decode /FlateDecode ]+ >>+stream+Gat=+gN)%,&:N/3E;Uu(*/#,YQZi4ufM"dU`CXq/dO@6tMLm,''VLPPPYS+U?B?95:a.4)p4KV(cJmdK@^1:o$sp^A1d_MZ(+][$[N$-Qc@6;JY['HWkU(6W/Qce<%6#/u`?H;Y/7Oe%q+,jDlQpLP0KCJE'[ji)bA`\")M[l2*;qY@rml\YO7oe@'=^U"+TV=Q>KkclL;R>VCBDfqQjaecN64kS'*s7;`3Fi$$-7VP/!'q-Tb>1'9T*R!ds6hW.%\c&Tmuh9d?"3$r^.5[9n%F+:F#n_,e0-:k@>IhDkr2PR54[/EB9A_H2SL!<'QHub6cq-J6nEF<[?iL9I-E6`l/9X,ELH6(&':Q;Sl5)^pn8$"ZKpQ$kE1TcDQRBEa4,g<tP#=`Tp6uli@,W8^jkBS88g\f5-5KTB4!P-<).ViOC"PGml\%nkO>.Jqp!/OAYUa0TGkB*iC::,`u3)7Wn:\/pd0I]at&)l-H9CJ#C6R-=oc=Y#o#c.'jupkmd1q5t_G@Ej&*=P))Z6]BQ-h1VUV*[V69sU*];4%QoE)pHfAarj8<8*2hD/i:6E?QZ<oJj"ht?,(@@nK+:\JL=&M[P34Tq/W85=jpKXnf]Q:1/6LK0oT4[4]iY3R:T,+NR$,+t<(0f`[2s6g<_0:84D?P(6Xq,a.mfL--')%s`jX(@OcO\TKN-$V;K4p8Gu$T4s'g[,+I=qX9NZY9_Q/TUV9L58NC/Q+mCKG,j.LL2Ze7Q&.?qeFNjlPck;."$<;`p:H^5H3gH!0T\lF?b<9`_7ACYI05n@)Jo0D>8g3!ng[rSL/TJ5M=Z+q6SM)$I,U1<_e`n0nmMcs;RHY)G*<YpYj-10tik3=Qe[E)PA6mtjc=?.R0FN\,R;O/^1nWWu$bIlKso(rN3r]VO<s8B4J^HY&YhY.8ABm8O8Z"sPbBWDlLF:tF/D5%nSP4$=Y?m,T;fto4?L0)d,cKAL=(';iHF`=Kp&jR*2>IUg(ZNS?7^hJgTgh>q"QmtFgNe$HLm7s^sqO1Y`fIUrb4Ro]lRoV=%k><KrFci,)LL&[0eAo:'P(:nrDgTHEU=GBjl.q<A-g(gD,,U^5gU%B^l``Uci=C*59f&fJ_5m8\:7a*C`ir/;&SqN$:S%%d[nN@\#TX0=;S_9mCPl+?4WE%sWZ%`:4NHei(&af*D&0OPq74@>nSgYLfej4*Q1(NtL+XJ6(fA#PIQHb2>&_-4MLRQeq=bI<n#@edk4d0%mcqU7)iYaF,/7m;mKB``]]HN,^CIFLLEjHIb(h&I^5?jT8gO]\!,8YUo>XJIYdPDH0mF@Rk,RZ3?pP9CJ`/$D]7&F]EMr-BS].3;Um3$R[51T>qB,J0_8$~>+endstream+endobj+152 0 obj+<< /Type /Page+/Parent 1 0 R+/MediaBox [ 0 0 612 792 ]+/Resources 3 0 R+/Contents 151 0 R+>>+endobj+153 0 obj+<< /Length 1713 /Filter [ /ASCII85Decode /FlateDecode ]+ >>+stream+GauGaCN%rcn9]V<(+cCI`/Gu,R:-9Q/d8[:gG",X$C?n=R#=Y;P2\)5p>8B&P^%KX#s&IuMS%?Nms''%g[3\Eqq,q*A6[geR;LcN3L28r3L8]NJf*2o$6<o/Zp(S6MXb;NXNo:b;;SCV9jkG^X,GEABu)f()k%XB;]*$AeVR<u_TskEO`"JUQ-&n"[Iqr$r]K`qLg:_jb);-8%i%%?c:#Tfks=C)3*%7'b]<n(\Y8"j0Ur7(=\c#gnnFH<4B\3^"sWmr,7OYS%)hCEf0#?5Hl`UC;mJ=Fht%HW(jS122ec.:h+qUn]/d8/]i0CY89:`Z^crYiH(Ju\VPf-lHPlSX$gO@hHDUl><H7s%-GUH%n]RB:`@/T!2M(6=a*C,fLk>[,?/WaEErDoJ5ksg`D(q2\mK5]E&<:,E#PI#uLC<hGH!%A`W0?mPD[^>MnjcP_Nr6kVg\Mk8aOc\q3>n0R5e(EU_<N;HoK]Eb/iKnEfbaM4pH95TetFk49VbbaM[2O?B)T^Lp&Jnn"$ZaMn>8,=0DlcVVKgKgnULJBq<;B2fq\@gp"o.=`K8gfNS;(jm@eA`2\]&kI0Q\^1n'Ri^Er,mD+LH(lnpl1>a@YhjR26i6W$3W9"DbTLQ$bcDplp;=X&J-S37L`-"Hg8XXHsG#HOO5dOa%8;3,4W8[9/#Ok)\;<m'#=Usn>hq,0/9A;3qI%D;RD%b6CqRPu4rUO$?GfKa\MAHqD!ALK<_%=^CZr-*`XXNPjDX*jt9AQ:Tm4B)M^S)Fts@Eeho6!#kQ_A6FjV2X:4c_:<3/;orSF<&M0VL5;fPch8`YN[Qe[.nBHW*:[5WG1*90J7PQ#0#F8PsKMl2+En&BZEl]A5Krc%7@m0ee^@NgO9!<<)GA$Kg^SoK?13cj-j,Mk2W+bP4Ad4Aqbe+6GOFG=r>?&)B#.66+8XNXf#(K=d7df-,bX76cb3U%`kS8PYkrsDe]C?T%7"Z=*:MiF@FYnQV<dE1AA1%'fj]s<ktl*6J#$04)_N-ea:*OPB$[CPWp.+l!tt'[+S<K2S"fAqt4D=TqZl&cI$#a&&-Y,_.tGSm!cgfjD:-SAU>5dIc6!H4=;H`%u^>%[3L*grCN#\%Q''41&s\75JF;:b:SaN=EP''G],->fWH%raGI=0GOK->]Xp"kbrZ]4GbLE<cfH(:BPdtl]PE*:/T)Q$d+;HcgdDaC3$<,M2[WC23WEq?r.fLbB(F\q:2NMs,bOa!bh5.k"%kK94stP3Uu^mNr\P]i&0e$qLl2"SS:m_@r"*<"3O+N=A#&b4N<P*YO8E$-iRd[]]-.Ndk,Tgn`>3c-q;-0:Obcc)So$4!@(&Y.&FZ\UW/TB%iY&:F%E]Rh"-pa<8"bLa!7Q!]_WjQUrS53e'-*B0#(o5&Kq?>B%t&Y%f*YIa@Y^JjS'>ckS1lXrCE6HVdhuCP''jt[1c01pQhdDm)*\l1h4`lEPq.tuUF+H#ct#;9D6d5t+T+G:54D;8=pNo@$@uRVqOdU.r0U8Ni1#CIIUEloK3EM"&QO<L-qSI[(X?EgkD\:sYZM_Y=4C*mf_OR)I2o"?mOf].E%q>O#C*(B2>P):))U(>X<Tu1f?2S.m%L:PU]>G4'd_,c._Y,>F_=`;[4VVAgU#5k07>S\U$!QUng&#ZW1qlBm'j=1gHJ]Api2'P_&/$>$2tbrY:gI2:TD=@,Ca'X[A9$I[aF_#8HJMT~>+endstream+endobj+154 0 obj+<< /Type /Page+/Parent 1 0 R+/MediaBox [ 0 0 612 792 ]+/Resources 3 0 R+/Contents 153 0 R+>>+endobj+155 0 obj+<< /Length 223 /Filter [ /ASCII85Decode /FlateDecode ]+ >>+stream+GarW34U]+l%#4NR'q(j<N0jFU[9<eo+e(G>ZrU#MlMnn?CQTCSP2o?o-Ri0![MkCH&2\>X,[:J'9L7SO8oPrJ1EQ<$LMYe:*q-,R@B$o[(h@`M=e+()VO07W1VMihNki8[[QlT6&pT(ml5Iqc,Td7@2c]$K4!D4AcS,4aQRn`G`VkrYKGI7RbETCLe7('<Se!/hrHE-A6;'q>eMo`foL"'-Xn+cA~>+endstream+endobj+156 0 obj+<< /Type /Page+/Parent 1 0 R+/MediaBox [ 0 0 612 792 ]+/Resources 3 0 R+/Contents 155 0 R+>>+endobj+157 0 obj+<< /Length 1802 /Filter [ /ASCII85Decode /FlateDecode ]+ >>+stream+Gat=,gQ(#H&:O:SW9K3RC`(t]D&TcQ*Ag44TS\"_>o9q:g[*Xg6HS*W(B*uf7*uug,qlRVLZJq)LVq$gbfI!NP8A.#bOnFHHe*R-Z)u9hZ#'2VXN2]r'ugOdrQ(GrXhU`O[^<!#HtkfgUPL2#SV5QN,[G[rm]!:Z>(9cJ*s"O/*#ihs>N7b^XU%:d3)QE#[EWbON!Nf*;B0u%8u&(lGbgM/l=:T<D8rp>^ADT>*irKB_pSmc<a0m"=(KT83FDBBk'30$;&$AK_Mh:M+NI`\H%r3QrmVS1,:2gf.4\T-`[7X^VR.api(CsW?BR+XE-X?u]FYaX0$a-GmDfS!"&!pU^=!f4fjSD7dZ&,sBjPs_n+').m#]d;5CBMT9]Eid]4NlYm[$%3GEg9,6uj@n"QR"Mna_]3nSQ*QZ"(8U3Y<MoY9%d1La*#LS>i0Ej_5_lSfcNb^e6N0;opG4\CmPj/!c&Uk_t7b+\_9=5."Qdat"\p+fVTT(T5f)JZQ?5*L:>>G`EY-h:]*IVL]![U<oE8`Hr8A54Pc>QBk!B0pWcX-D4fc0q,ZDWKm<V2gi(j;C9VTiedAC2IglkZR[duBL6%#Ka=eo@Lj>S[-i=HaKZISY;]?!EWj,mEgWp^0P'FgX25VFh+5+)_fib4m*<quM\6Z0?5[`YY8Iu-gJe7#.gEVaQ_frsFOZ]O@*aUFQ(>f2:gp0n<#X)9U/;u"4;eI^_20$!:N75K_".s<3Q$\G?(W%9YX3D8/EgW>6ks04.-'Dl`tDsIRT5SV%MD@2g1;iUMQGi'o11`f3TA[#cSKQnN6oGT39%g_'Jko;r2t<4D0h(iXJ,:I-OK;eVi@<Q\qf?Y?p`ia,JA`:H"]k0!%f(@XK"Uc]TcUM^7dp,Yhf%HY)iZ7Zl?*5AX.7$[]]mRg^bA;f]0uX<(Jo^loWQ`4CGgl*GINki&N'?0-E*tn-)RKb<HtZ'X#.f9a,Il</UlJIp&,,A\)&=O+M"Vl5@MQ]eXWKNZFJ:WF0DNB?ZBoVdBrrA%T\0e97r:'UK]l29m&%0Ie#/ob*U9r[=e(ejfb]0(It!i;/-i$8uutUp$Sq+K!UB/sgAC*YQ>q8Kj_@;rEgLR.!)@/2mgJQl>#T5/W"$3kpN>:8C'1EVFLU;RR$I.ih5^)Hm6MY$:(sp0<8TRA7<Pd&i2Z8=6YmT+5*]lie"?m]LlAk47kBf!?E,eOBjSi&N^g3%!!MDAg^Q*kIKcI)eigjE]K/1d]K*/$r9bfT"D*ITfAj1/FScWQQQU?V@X_'!'?:2aI0)#iuh)MB%Td_bGiSfS0T18Xc(PNL=G6[L9$q?$[uFiiHTPV0\guAXiXXU4."SljAO^IUp&(kt\Y1)T@`&<EE,TLq[e5P*%E'LR*f;(urtWpEnIH4N01X7p4Y`BZa@L"gTc=SW=nRH@Sc4B)O45XcfV/aTZD[`]KM%)rC6sRlFaF>sBI?PDkfT(R=n]jnXP:gpJA9gW;\]X3DGd'pY7&'rD\VDj2ZBFV[</1@i3Yqh!*0r[/:tr1UeM6c(coB\uJ$$4&gOI9-NQc2,EOMrn:tH-WHO(LM7k*[LZ=:[9->YmLeTXV]G61FWJgCCS>KNo-fQe"s\5C9bjP$ks,(*CM1$A<3;/)6rkn>?$fo&P\4l(:,sg5KoE8J,"0crVPK%*hgZUIp$L1ru5;(`5E*<Z,e&WIh%b5"n(-+Vm>"E&t_`h!rm7^`\@e[8$a)P,^+NFcK:<dlA)S*@7APC#+"/*+d6,n=mO0_PLoF*6MS"]#1j=W$[$Hj^RBuX/^8:[pAY5qT>$T~>+endstream+endobj+158 0 obj+<< /Type /Page+/Parent 1 0 R+/MediaBox [ 0 0 612 792 ]+/Resources 3 0 R+/Contents 157 0 R+>>+endobj+159 0 obj+<< /Length 1578 /Filter [ /ASCII85Decode /FlateDecode ]+ >>+stream+GatU4997gc&AJ$CW&ZEq^gTXEeY8D;%Z27;B^6jtWXr^1QIrT:LSF0YMZ3?J-7+\bdUptF(OkGX3AVZNh/`)[IHk2V\^#4WELh-%*EW3DK7cF+`ib)+ln%nV+4GZ.5k=J:ZY;>pDW^l]/3hod8#_9,:fEQ8(F7lSPiY!P&,D*IPWco&q[!(\Q(3^mYH+GRnFJ?/f9dS44pm7&M]_A:?0&d!o_\4"qi<sk400k";:r5F=WNsOo2/tU'1<lFRlPC2[o)&@&]:i6dTA=(@jp3J&%c6DWC,csBW.74;=],MqTtWg&[Y*uUSJ;<Dn3);<j];k4;Rh3%a`)1K<e]f/?W\SMsSHXM2d2mgYA=\$["ac!)g#1XFOVH,qX<41YL">m[6D1ip^P6MIGRgEB+;R&@@O#76!cAnkfZ5!"INp=[,_`,.mL[:s4_M5V,H%QE1'_H#A1Q?@uDs6B6#mQXu+k6YPD70Yl=?"gkUKgF__9Q1]*D6JTQCgi.Ms2(b;n[RdA5(R6#B[!PNi>GPO]5j(,lOu?@`#*W(jk9c$7^+S6#PR.'jR%R\$;7@]1$eE:7[jor>Ff.AC.@D;ROW,8,oGUn3P;Or`7UNl9A^_<j)gh4';oiEcEK?0NEd9YVE.#Ps:>*k.^B^5s&>dIca`&'oFJNricNI[6r%K"+1jHOT"@7os2!Ob&)\OemE>tjj7qZD#$NDt[]rLK_-84j*V^VLYO0r]HeV;1=];2W>)n"b<:&anZlA,V*,GEJI0I#^!BJF(D/*tHUiqjn9EAUiK!@X4\.nHer5qYUB^0CnL)C$4>dAf:MX2T\tgm@q'Y1uZZjL`f)m6-'d\Ua>jXK1=PpYm"n5oZT]q7g;87Fja!CHfTQW]'+Lk%lV:2Z9NANioAo.=Qm(egW;+P_AL^'Gn/RWD$]L\:a5+6%A?r_fsX5aa7?GE9f<h*8eZ:Uhnu@8E?l)PC-$V-L2Uq[4@^IQ*46MX&5^2JqB,(nRjL>;A!qgR\6lZ\?1(?RG;C(o/>kkL))=_qR2dK>UJJ2D#'31!;!4@W-Q+'B3E6/][Q!h$&\W3psKA*irg[qD*2O0RRHC2P?*"C=2TQkVYh%d[_B$rT7:EDN-.[mh?<160C=i<-ajZ3+Gh<W4ma`d4r>aA"pKd9>ukK[+Q=8&amJqLfX.uM5(f0JI8T^`$9:Fu@k+jeY13B$/7)BHoLsHjMcO@JZnCP\9eRl?`f7-fA*,LuLg;e<l*T&gD8"Mf+,'lhf2)4f.K[#3l_>#+<8:c0A@<XHQ3i`5<pbF0Okj-Ve*W:"-0;q/;A?2.7b0hHdKftG>LYc4EIcJL_YQqWi`j#Q&#]]@8'UFuH(6s:As$h=on]QLHPgQ_+,3=U->??+#VF3QO/,'F3i9UYOVP?9"5um>)a:%8=0m5$k)s&;oE:8t(Cdt22d@[OT?=Cq0cI(s2a\@\Cg_;l$QsN2Y9*lL-RQY6/a7/i?o<8\ZCVRG-]'HD6[J-di09_`/XDSrqX92TnDZ]]eYp$d=hADpLpNZM13p@qK']=+J0-75omW@uT7rCk,V]Xfs/\KC`Q]3YNrgO8qc;.[3'nbp~>+endstream+endobj+160 0 obj+<< /Type /Page+/Parent 1 0 R+/MediaBox [ 0 0 612 792 ]+/Resources 3 0 R+/Contents 159 0 R+>>+endobj+161 0 obj+<< /Length 1580 /Filter [ /ASCII85Decode /FlateDecode ]+ >>+stream+GatU4;/bJQ%"?O+0`"VALRr86Z>=%:J@csDDCA\)Q`U@U_,+U[nLh(f[aV#kp>8AE[O!;!dpgCV.#T/rl4ZVKj)fD7K4eU3g"(7*ZE7Yj/K9/k_G38YgCD*72;MAaN0a]$=$4+#hE,'BD-X3Q'[dF`'QMFI/<OD3QJ49DjtXHQrj8OeJQX'g#dZm^Pkp1?JZq-pYg%?ni)8VZ.=k"Rh`P)dHdo:WbRpig,3lY9:O*i\#dkV5I@<SfctkgIj9:Sk:TTdRhJk`kP2\^.\_[H4[0[hI!4O<'XAUTSbOOj:]s8ZQd*jF^dS/0rd0Ka\67i=%$m=3=!9&ViEni;@&;'+SrYJoi;"&Eb^6QV5?gmCkOM6^e4t94)1)lhl.Lg-8C*VHOKf;N>CVLLRDg58E_k=#lY(s`Y`Ci'$Q`JfiM;,m"&BkY\m5?eP1XOdf4?BHF2WGGiKrt`S*OPUZA#s5t^4VQC&,U1UQf<4u6`-h1Ed=XaXc,lQ="/QE4(P!eBl?rPpKjXh=D&<YA)qrjXm>6+KKa=Q*bB0*ULfn5ZQ\3U6!34K0':8Em832u^^g\!g(,,IdSi]A+Hd3/U0nF.K]u<)L_9#Fo<7l!OT6W`IsHm3;:n_jC9r4c'eClS(/KlJ)3dr'Y'5Q#^)fefJUm^<I;IdM$;%CM2hV1a2pV.q:.mS_JVo`3MIOTU03'XF]5>bAAS&S+UqfE.f;K/6Js.iUibKoV:Sbq7GbCFlXUeg/-nCn6hs4d3Q)rRai4u57URTGHql2+f=%lc.fe$6&b*VBS/ql;iHqB3CQdq.<2u0C'8.%76kUq#iVG+8JL?Y5QmaO+@GJd8FI:g_!=%sDpOCR$'mLM]\FN$g9!K$(G;TNg_4&n;i\GQu"E#fB85EnN\S[[.1FRWs491h4lL3!5TS;uP<'KeSBG("4L_$gA_b^EZsdY=_%<%@jtKV3ug9[%9APYs,Z-&#o:8>4js&4CcGPmPE#b9WYW3giTS2D--^9:75h<,&a@5:%l*"<CZi\rrmo+K-FdO](hVnpMCVZr5&jLMWZKTS'PZ_&JWM,([.5Dk8g>GUr1s`<BJL%@G&'XOt[><LTnYjDlg#cM?J4YK#['DQ<$can_+U,qa9Ge6'"T-'k%uku@o!CO6=cC+@k?R/^$d4/%F7S%eP5F92sb6=9Tu3lFC/\,=Y/507I,PXY7O@m,a]8+;`RDsGn1KOCWB[>E7r6*=BRT;RDG@IYa#;SuS7nX3IjXV@8KIj=Rb=it.06(USgPhE8o4A'cGP^mD'JYCGa+d#K\9!!U=WWi`U%LUu$:=%M#64sNW5'a,%lVbcm?sU:^QtRDZK2S7(S#TKk.!Ca-7C,'LGite9jQ/6P+r3PB4o,*9QUs%0D/qk#5(EG!rki"uq>JcAJM5ItieOmm97PIHBl7Zq3HUtTmgSMLX>XD\ZJ#D]UBAM5`qQh"`mK7SfX4]cSn=1)JVsS'::e4&BoC,tf'hV^3+K\E0-p7%3r1?*]FfYI&<&_"_!<`15-*VmEqJtej&DMG*,$f'f)r.Js/Td1DHKd#d4%Aa(;'`kU$mR#a$ldm_aG^I#K_L&WW~>+endstream+endobj+162 0 obj+<< /Type /Page+/Parent 1 0 R+/MediaBox [ 0 0 612 792 ]+/Resources 3 0 R+/Contents 161 0 R+>>+endobj+163 0 obj+<< /Length 2122 /Filter [ /ASCII85Decode /FlateDecode ]+ >>+stream+Gat%$;30Hi%">ru@2-V@""pSogPNUP%rIFZXsdIi%>Fr-O?/DbBU@ANlnk%0qsT_;g7fTJfA_=55"bZB;%uUbp$Ci&II)22F.M"\`cX0uT&Zh8cgcTP$-2Rl7A2Nl4+@]aRS1BQhi_H2-G/(h8KSa!^>gMH8H/;'MfM\aE^&FZma`89h26;n&m;VUOY5h+^YV#$40s-:("%iVEPDk&$h5n=TuP2)lk?":IR!]ns455mVlh_/4psJ`<h*dnDe;O>DEs&PH[-\kSo:PtQ!itSbXLgMQ7KOD4CPti\g(jl(:#@CU-gP+O_8N>^2DtZo#MW:UM*:hdDfmlV-IV[eJ=cF\SY!(cUs=:g;;mDNV2hrU*NrGen>l)p;Hpk6-HDepljnmWGf4lBAcm9e2UL$h"Sk5EsCA]J(-tX/@%#iB_plO+4J4$cfp5<imYg"&$OhCVOnrBG@lQ7.r-<6=W_Ph!J7V)q%$7oU5mHoOs_Q`"^Q',0(O-FZlV&_^#kuc"R\OgZcF#3p,iG%[LjBi7Y&kj5Ws^!IPSDIjc3#%keL:hK)p5984%K!DC56:6;@.(=%N*^;NrIT)j7%DSTb9*+sI*0$lu*ZSr2=C;q6fXc3X+']bd*BjD4s<()Ut#Z8;jS#CtJ-d5mUWlc`A(^r-RqEl:B!C!.)s&@-6hJ`5(UA:N5Dl7n4<6/GRun?J^b@\:_^0p>0u9Wd=f<QCHj8S>caSZpI.eKn*qEZaMl$PlO0\&e>YY+=%.;?QTNa'iM!l2iNbWH\oQ8<S/\\<f"?YXrZiga-Sc+n^&9LLDjjAAVg5_NlKpDC9e9gq;jI$R7R04kZhMq4<rD>Sdi9p[]%%B*qBJCjU:/&bBj7L)4oV!(u"l3f;SBk*TVIT9-C'Y8=IcjO+F?Q'TYf5!P'qgRP&YD/488Q'O)L6QLFNJTL*hk=78ul>ZUgfh1Z_B/e64;3b2\f[TMlZ36NWEa(b$/VB8p@hh[6:'$s-ehkJScrn<F3lM)4*k6rD-d2j.<u+_EF?.;0P'<1paJQ&ZOsVVm,h:l=/d#8&G(9D]q6ml6l576-NaWpJ\o^4U2%l%.;C&l_:g4@Q&ma5E]#lhcQ;mQTN.mW1X'3nRP.0thK\/9nL'j'53d@-Aj*$KC`l;N.b,4R91P-:.XAZ,c\uW\fOnZpiFdg2*KZkJ-64be#aW/_d,*f=q<6NMGiP;:@42*&[.KV@XkI6*PH4L-1-Cs/<*')(o,_kW6"[SEpm=+`F9>@L&#M3Bf3[:[\Ip4ZM5T=A^`r^QM,LN&V*>"3PL)m.RS2qEn6UE%77]&[)H.K55gE_*2oeS_m*Hk-&<Yq\";C*@VGUX*)q_m1<\3]inJk01)a]o+@bG_=[18ar;%Ms,]RMgpb&5ardUJ)6$@/5\aPKd)ZlS5,D4?0TqS&I+WfXE.uaReG,kGuIY'/Nlp*Njr^aU`S"@`a1d:ecqB:@9$VIBk"Mmou]NH;NKD=aDFCSEPV+WHj?R(q_r9nX-GglqsU^f)BA_I1J0[_XAFWIuE*@iNj0;Ud`:d%*^n;^J\Y4q5/R>oj6Lb[qUmpe,DqGB<1Lq[Fk"bm5ZRl@c'U#DslMtHMcsXet7H>OYTmCr+iPlio)RsmugE8Ks"D&oR.*iM7^4GFsCa!&>6l.+("u?\N@(o*b-jhopON:31kDSNiTeb@[Dc\)ElkuCV084hSa!Q)#'tPi>696l]'H(H[UC51aTTlAdk,Q'14Z4,C=p/@k?idCP7tf/($/4D"W9_)ta1q2(=B.lOr(t5^3qr:@nEM5R?E2Q2k4R$p;U9<Ns.KSB,6\nHZ$$*?n.#a&S`AFd4_EB=_>rNpi1of.nqr06@1Tb3h;-CRsibh:VK+l^nfDFgoDMTPdR,d;duZ!\1Z75Amo/5\<a+U7b&R30](*N`0/EUkB'Qd5$Rq5K*Pgl'.%g[,o_BPN'[YV)BOeogd*WN:CQ]n1G(n6&,LAiru!W8oFY5eJOGuS[iTPPCnb+K,!eieL8T^U!h\_:"5lpOH`tD$a5(/ZZmme(_=G]d;`;jOm25p/,UTp=&/lnOTg'4163ZjZbH86k4Pfa*Q9(Xr(sMSQoDi"UP$q=3"D=*Q-a`glIR)L"j#h[L?X1T-h[<~>+endstream+endobj+164 0 obj+<< /Type /Page+/Parent 1 0 R+/MediaBox [ 0 0 612 792 ]+/Resources 3 0 R+/Contents 163 0 R+>>+endobj+165 0 obj+<< /Length 2133 /Filter [ /ASCII85Decode /FlateDecode ]+ >>+stream+Gb!#]D/\2f%/ui*@:W`.+BAA`ITa9ll];SoL(,)>T:4c4ZZTog55SsXo!2^(I?Z$"C"H+3TtlB_#t]saBo8W5jmDX"jh&=u>o![-ZeV(\cM#1t>kmiZfOq?#])cu*e6240pLh6t9^]mOkKXH"N`d:4;='fY[6*6DU$VZf;I!7s)2bUJe^XC<;mNROSIa$:7kh\s4;SEWn_UM5CI+11/."[R3TlZ^>3LOD<`WAFATNMq5DP%[3>l;=r_kZH[sQNh95uW8"07pYS#>(u@Y@i!U(Q3?--UGUA;g)R4n,b)5QOA1(TjKZGD.TeE-PU/C.jdA6LXZecL9@UWuC5>;]k_SB(^%C'+e#uSZ#L\Q+''pG)<<J*1;E9&f5!91#A]#/0^$ka*wke8QO?C+6N(JB@6b9?4R-X3%'OF5$U`%A7TpNRdY8\`Jeg,/MM<4KTb3Q1c'nt!$Vlf864aC.7W9YoimY;]Q=;IQ9SY*&@&W^\$iM4LN.lF,/R?.aF:$BV'nQoR6u<GVg`fs@B!fe)>b]"b[Uiu,UR(FN&GS>Vs1Ojf3j7d9=ACnF&NCX/T88L=q;o\YW@.u0<5P'OYcf!O>[!A6&[A];(;jZ>3K/bQA6dn?;71FM&t.Q!(''Y7.l^41duJ_TXW/[AFZ"/Ef6>N/Y*]]1GHrcTP-)A;c*8@AJi.IX2?GgENVoKXjTS)M`#t,1#A(pmZ(ZP*p0f0r54X)>9)VRG%KcZ(BA;q3pk-,'.SQ[8dqdn<\-=kG]X0agKHNt%,FmFTL:4_10Y,tT?is@87E5P<4Oi1E`1g&E-P==P+3K-uM7Ag&WQ*S`NJ6KF'\cU>IcOom5`=.0!+"\.4,kq*YsqatEZ(BbCS#rh;.N:bV$j#Sb;_6*Cmu;:\gab;<%]E"Q#"5A@7"B^\XB^BBIS=0b3Y<7Ltrs!S!o@?iaU+Yb(r2rfs/#B6#ip6=G.7o,2WV)T'uB[fL--/&nJ2>krIgVPdWk8ap%E*9qQ\%NKGs^-7i8$_d>uf$s8YH@D0Ctl:/#;c/e&CBu7aZ$0B^f/T586TIl(R7h?dRB6BmkM;q*J]/'*.r)k%%J6=jF'N8ok%XOpsY@b0c9tWY(Xb,bLW-_al*4[*i,Z`ZP][7VG.NF!;cldN5WO`a%kHCcM"Xsh2BA#B/j_B4*AUX_o4>FuOBKn,3*t7;YXEHc'gk6-dS66[,P_JY6>[4['XV@;3s2qlT#GBpBhQn4^lrO8:D0;pu2eP0o=21h$MN$3$W+QRN:b*=-1YBccTiPID=_6ogDYSg2**8YX3,sUFW\4UX4O,6.;s\\5D9YBW*"N]G*i(5XqWrVMWN?\*2Og!u$GW4"QE*o"r]^F6hd64,!YDspG\55m-$GAp-%(ots6BYQctY5J6i]RPKJ4&>4:oSW&n2%oJAZN4ISB3(]mj\1I#kgZlS8omXID#%Y/gJ#Sf*j^<]-pU[d*er'Rk\q?`/57OnVVm160BPe+&%cTcW]s>mpNhO*#tDnA72u`++^M)K0WlpT#[68,U`O/bE?#*(%i>@eXQGg:fCGp?LI0aOkBml3a?[XUmMAmMQoRlQ0'hg#\%Ynr=&oO)$`093R([@%SEb;hX:(%_>Xb')0k!Im5'PVJGg_:T6&qOI9fjE'b^mDXRg"n3bg&+Q$N4%(@S9d/)nCClL9AIe=_eS!k2\Db#Q202$`G3^G2F1(:3D'*1(ZZ.Oq7hajXuc5ng0a-f.ZJ"XF/fOn&ogiU>d[<H&sC^u_Y=mRHmMlP=FSuUQ\1+NWGYEFWE'0'[5ZUV)dNhV[eqd*m.">P'iFLQksCgZFQLF#6J3YD!i_=[+NiCIDda3rTK_N6?c/fJaTmZ?+fopV5ghss8%LPcj9p>XTL-:J@!VhgmD2"b9]fGeHV,Lc&BALL^0iP$QMQ^`^o+=l1a@(j&99mbUQWCXu?7]KImqoK"5Or*3DLS1OuC`ZQf.%S,VH/u]Jj0F"%,3HE:M\6+OBQLTT\1MU,)*RbMLX3qIipFuN3I&Q[JfqX")R./PYhXBYP6[KPfoanf,lpZ6$(te+r]&Q\o&L>QItoX#0nacP[g5^?5W-F3SG[^(FuagRl16S8(8.KsL0YYnO>V_5Ke/SomfE+W%enu`mP"jiM\,+p[43*+~>+endstream+endobj+166 0 obj+<< /Type /Page+/Parent 1 0 R+/MediaBox [ 0 0 612 792 ]+/Resources 3 0 R+/Contents 165 0 R+>>+endobj+167 0 obj+<< /Length 1421 /Filter [ /ASCII85Decode /FlateDecode ]+ >>+stream+Gat=+D/\/e&H;*)U#o#7,%\_P]k#cN[W$d-7>GaJ0OPe#>,#i9[cH_MBf>=mmj(aRX[mUJ":06bhXTQGjMTI$ea2u+d(q>TSQ.^lS]qR)0)T,_1BpV3--4-PC@D'\=';qM??pEEH(M%lc<*<"U&2aEq9)q>1e?\]"9j/u;'DtfjTu2"_i[(O`-e1$9Y:,j<YQn=A[ReM3P+p^cQ>AHUuN.Dc,]3Pm:8&7k4*,JNND\<(!T1PM6DjWb\rem+g.$poX_WJL_eCTpg7-k?=E_tItthPTE3%\igScq<`SZ*E1IDiJj:0LaO>7NU9s-o'URF(&;%SBKMW@r7`A,>ZI.Kd.Tb";#_;kCM]nKL';d2M]1hNWMD#K"D_^gE+i6`(-5.5A^_#&N8lQto9'+C>aaJn'4cbd_'];iYknHlP<2&1&jGeI"7*:W2Sqi+^UAcRZC'p]Y&_FX`^+j2!,k^+98euI.nZsX3cV^Y::1Pj>>r@Y%H150Zk>6[KUs],"F7pp'DlmaVVPEDY<g@Nr.(bkbaZW&].@fdrA'@;>Ds+l4\R<oS/3Gop(A.88<,+Zf&',gUds4MmY(o>+@-<`<M062LE3L>OXtlE(Zde*7ToWHlIJI0"e29QMY+%9;&KVMRqE;TCH1#=/`^,/X?dE%q)cQt"M)/M^NQO#TSoNkk)-?Oe]hk-%dQ6\_5^PbgbDFU6`)se:FnLP*j*\TX=^i@4T[6e[1$ZHrlrB*YQUcSk_dJa><]co2f(V;kMZQ2o$]tZ/<97O9mZ?tO.F%W?YDj-PbS[1@=2qh:AmEE\22J5O#W(h.:N,BnJ?63%JeI8>/huMB9!]=jD<:KNE1l;&hB-.tC7H<]mb'%c.,o)nE861I6^W%qXK4gj_>T>dji@fU9B5A3k1\p8NOk@.4n3LDWE@pt\m``3j'C9%SPrZojEIjnm&X2:n\p6(KKtFcDO_&YBmV=I`Ea.n4)O=bmL6e:c:IONmM=fq4rbGegW[oeD>Al'>'H`_oQPpl)NF0M_$An.b!>k9;)d]^Z8C?Y=Zcga`r(pt8jSC+O"Q%0*BmGn<hfr<LkNU3(;GqcS@ol,2(Eh*W/YRGTboL&%)hn2a=aT\[7P#4FpY3*>`4g29*e#Bf.0NPd<HiNA*E3#lm?YoV^%LWHruA$3,pZpnA2*E%#5[gF$6@p$uWlj#[_iZlLpkeL)(M7eo'K.47nleU1osl*Yn#T7/TsePM\e(KW8IA5^38#WjV.T^3#_Ukgc;,3m7jdm$"9X=hae/fB!-@'L'@sklQH3?p)8=o(Q(#!-Tf5m8)aT<d6`b+b^^3GpEU`X[LKSGdI>Hc#8%*E]*aJI3#dHjF^?LLUCV.7YPs4fe9\@X3mMn^o[m8:\7e?Y\s-"j^&YOG]jV3>t1%P#q=ZJVWC<AB>_I*oKOjiXS)~>+endstream+endobj+168 0 obj+<< /Type /Page+/Parent 1 0 R+/MediaBox [ 0 0 612 792 ]+/Resources 3 0 R+/Contents 167 0 R+>>+endobj+169 0 obj+<< /Length 1440 /Filter [ /ASCII85Decode /FlateDecode ] >> stream-Garg^iGoCd.c`?]8EV`b1=.gR0K1`91K?+0ZOMGdU/Zh'Y!=Te%#&:?HH'(;l+<?5(kRE.dNH[IJ1;6A'oWT\oF)0D9TA^=bS<Hb'r!S.1,TeU'gfPu7KWX?!ZVF~>+GatU3gQ(#H&:O:Sk\9!-[Tm)eWC7nl_C8@c>r6QT!d,[5&oBGP`M"],2b!^/UFW<LEh/pY?uRO>RG6\ZoQ%XTI2,tHNGNCD>M.MUiE/#9*6[l#fF2U5KoWPnXM:*/Y-!2TorjEOi7LIqd%?ua#Fb!=.B$VX9kl.99*a/%f([g79e:5E'#Xb3qF<\\kTS"40amQ7-MrO7QJt.;C/i"jEl230X\(l]8U7UY=IsAq,\R#F7bZ-)Vl='h]!l0pD?T\s'T=cD'rOV(pdndla(.j;XP>A'lKtW[9'?E<[N!kRYQgI24$bl/p\bqSee7nSm)7&[gk'LAOB+e9b"Q^6&>,0mh_t]j7=?ETc?+e@9'OEtPYqZY<-$5U-5\#pZe63k5;eP=R5\>F32<VSH2bCj"5q6;po;SGl_YVCH10g)FX"6KlQ[D\!3)%os.jZeJ/aAf:]uqmXK=1uj^'P&;+fA6Gs[5Kj4.SG*_<9j[hLh7Xa@XX6YD;QY"Unt+?#h<HXTN+C&M'*CUo2j+*/nGXg><.3@3Yd]\N;DrG*kK.W3TXa!6b1U2hA(j]G6<UeO-eJE^t0OP5/]c+>T4ck+35c*BRiAu0U/O9-poqMo]"MqYe?PccIa1!)eR("L1F-B/OMPplqdWL<T^`QbH*jom7E<p2\\bA:RM(I)?WTQ[(-5oaM7A]elTl(Qn2ZPj_'PoHH7DMEL`-;:DU5buLHkXG>a<,('*2"f!&_UJ2#_"JA[dEj]G`(1FJj$Do9mgb>uWcL1o`_S[8f>rB!&Ip!r>1J8*g;2sDpc_0P2gY&HlZKN0q<mW"=oImMh%/4ZiHl`R_ap=7'`-RnfQ'=>"]&qPbh+*0j-c=Y(;)%`@Am;T@s_X?@V7[?WG$N*7jZ4\E#^$JFT9P'H0Df4XN"GW#u06SNLQr\j)FnS.OlZRX(^q%8i[9CD@c-GT\MA0lA7RJ>po<be:MYL:7!Er`\?gJCo4G?N\sjh)tSEe-0`JH3DT<\JcIfU0E]T,QHE)kF-K#9p'JEF,"]85jf)^WI.U]6"M$8Nd8M51N`:<%8=?&-f2DNJb:(sQOCr)%9,,$7#VB\9<A-UV$h\%PoMfqg!!Nrm]Xd`+li9JO`6BMhK;0=/]>Vs#=JcMRb8G8.N9pS7J^.7CC?b;*1dD*&]AFS;V`"?Fs(=Rt7_tJ-).Ur!<t>)$69$C#Fijk<<IGEQ&0=<'YD"+n1C/#>JoIEoO#1QLOPF\;^pelXM+Xq#P0;b>^Nj=>KXU5B=kQB3c142!g[8dpd+%5(l"7u-<q',.+(-6qTUWJBB(8Jf`77/kYg+eYKtr1Q[Nc)X5\'NQ;4UnD#S5qu7j`J$YD&V#Ya#sueU$bbs'G*F+8QHS/AGEDYi=0d/Uh'>>\hB@)`oJ=!mlgt6P%/>$g?o&FR6n8NXgF>oPCFP777')k!TjH.sd/f=9~> endstream endobj-70 0 obj+170 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 612 792 ] /Resources 3 0 R-/Contents 69 0 R+/Contents 169 0 R >> endobj-71 0 obj-<< /Length 250 /Filter [ /ASCII85Decode /FlateDecode ]+171 0 obj+<< /Length 1541 /Filter [ /ASCII85Decode /FlateDecode ] >> stream-GarW4b79+X&4Q?lMHRg5YqOh:`Fu!&$^:";$QgM08@@IW><kM#[[ZN'cFp^3/=E[EE/DR?YQ^_>,n+J>$oCH]b+tu3#(),RZm^ur-MK7=\CR#cROX+1rgq_aj5&gFDCS`.DudKV*XOM=e:PT2c?S)?8g;_u05o&!eS6Dt9ltFDLAgtk9Md0-FR+<<U/`.@TU(m+qfd1MQ4+Fg>tm]JF"#+iA9L!NP)6qp6OZ7LkU-FempW!O#PI(L4o~>+Gatm<HZ.Xs&HCX[685XZ*ZRW`ou%n:)`U9D+N66O(bcDNCf@cG=\9u$G$"=JmmK<0aeI5mJUr>!np^<s*qOP0]"7DgX<V"T6mH!lN3K1s%r9g@iM5cXaL/Co:A]AN7oSg'f#tB5++=G\rq_OTn)Eut:Bc/d+gZ$N9\]#FqH7D;O(Xgi8g[A1B)=X>rm;MML#l\u=RI*Ko7ejC"=YMCVm$H4j[Zmk5oT0)&B3nfT?pT(dsu@S-j,q7e!],4e+H3l/i>,$l6p+L]2Z]l#a7jm=[Z#Cpg4BN872[:%BfN+DcmfRRioVJ!5J2&QtCW\,07]['1RgrRflkppVbUAeRh_JZjnG4Vsil4JWbcL+pSgZ@U2g=J!A#j-Z*a79(R9R5-2UH=b`tQL%rSAZ!L&8qgtuISM(Vr<]]qnMZg<;`Y.hc:6K&P%K\f5CaR4\/QeT9ike[CUP`F1TZ]W6>EFr+qmab5Sik/62IW-$"Pr:ZM1)W>'1'o^mK?Ck08Xd-g8?G:B5*3.8(.M/6d`7l#MHOikqbPY]13a[##uuJG2XeeD"_k,l7$bl_B-"b)RWrrj2%m>q'h6REX>g7raZ0>1U44=L:Nt+"CLNZfh1G\DWr3_]Z)"k0F<>S8?(81+7APlb)=0*SqfEP_$(p*_+LZDrSnkC*,oH0lR^4jO$M$^Fi^ZdajC]7]M.Q_orrRL2P)Dqek>f^-g\i1&3C*,9CnL%&06&+;5.s21hFK=at'02&?__mcEBJ14qHe*cL2Rc+1L_,hqSD,^MXjNPDXSuPQ`#-QF!aLJ]:ha`Y`.Q]^qq:?Xsa1KKpP4%T7WB3Og>-s,JtaA]iMFV/eUdK_4%$>-OA?1aoAn8%s2M:]4W:o2m;k\/<nIf7T$Z(C+`E:e'DYqRhU?2^%c)Vr])k\Pe07O^jrE;>!WeG.i/*hT!WRA#QEqTfZJ0B0pNS9(V=?l:!]BR?Spr@rCd]m0pfC!tkH9Kp<V%(r3Jke5WE@@3F$>:Bu\]p&sDCM5A?^-)>E$Voc@7E$VJ"`GOa[L%*)5k@30RTH_G&9P8a-1!7&V))-pY?:-K;3GWjd1<Lc`P5O1pnT9A3>3A0fo:ji\0<-a-+efsg][Of:-(JSS5D`>$:O?!X=1,,MJ0P0aBnjX!+obnG3<qUC7^[8C7uBUj'r$X^G^P5/?ioB&.QS^225?q90[UD!Vq>U:ap_;3@Fp1Sghd;b[Nd%$IBI1dA&?Gro02<0B&lb-%r&OIj?=k!-eT_=A]oNNjN<Fe]\h*t"n)9P\6nkXQXJQ9G3aUeQ2SfN<]\&PO\=Ktl_AY,rd%:F#5i$EnAK%5%F=g;=9oGmFEN7kq"PP]%1=%S:Gqg_#bp#7on$N^"S0pj-LW!n"]8%*EPW"P-&]^1aaA04C-BKBp9M6KksiLr$I]JPbR0e,1\%/b[g^E[_VT0a9Mbt.Vg^n]e5G#R(L>"cg1g/tk]?D-$197_`5pA#^=H_X;_8pd2L;tHY@S5^G%/9Z(N/;[<\AQ(c@uoSj2b@g!YZ<]%\T$:B\3thrrK[u3,8~> endstream endobj-72 0 obj+172 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 612 792 ] /Resources 3 0 R-/Contents 71 0 R+/Contents 171 0 R >> endobj-73 0 obj-<< /Length 287 /Filter [ /ASCII85Decode /FlateDecode ]+173 0 obj+<< /Length 2406 /Filter [ /ASCII85Decode /FlateDecode ] >> stream-GarW4bAP3?&4Q>@`@RQK-G0c\2Gl!4]1VFa/r5H,,TF?PBn*nY@GsZfS%88'#A1E!CgI9aM,bk;["Lb9(sm@ABT<d+<MP]qbQ.NLGI5i@`>,JbelZ"\<`!c5YMY)k+8?1,_7V.A$&g3+@aA<!08<@;RBCJdq9GFqQ`QS6pu<=fSK5<Ja'TY;F.XHh3ZhVXm232!KC'H-@"Y)s]fl0G/F]@T,.c.2kX1.".:*GY\uk,kFY+Js+KmXs<HQTN&$e'RNG1fNZu99)THa3.^j3g[^\A&A0OAY~>+Gat=-D/\Gm%0#*j&bK"?kkY,la2+tjG?orG34.<]gONQ>J`8)7GIEdi:356qs#sS[9\PbX0.9Z\TdZ(u.$@Wf/2(?.1n=c`k>.DU$\,Is#U[:`$RS0l&SHRV"gc=VS@lVZ7+Kk_GVOJ(STT!Ti`%-NfV:F6*YObDNhBo)q0IP5Og7&K=dt<V.1L277&M8i>:M+47Bp:S8&Dn"]=d--,d<8Q+A5g*k-CG^Q8^&Q+"#0<7XIqn6,3._->L8$4Kui3o1Dl7pV+d2h;N2<V3@r9)'@K56$cT43mibj_)=KgHc'*PH#Ua1h#P-4QO2E]#SNWAGh,bn7aO.KMQp'b<Wr[-)&P$o5+BiET0_[/^3$+V*<9?5[FWp1fli8eSLY95%?=3n-[`$=CQ&A>*7`PWg#1#hfH&O#6@E&9U21sE[D];OW&Rq)VO[43N7?O.(8njl,YtD05)m8&pO0U=a;Va76HcDQhE29&_uLFGpZ`n*_@[+FWX]>Si^bc>7.c9_C.:Nm^3sHoWVlFZ\X-T.@P[rJ2?.bYp.*A"hN%?*@c]V<'e:=(O(K68410lT-ij-JW9a[AYF9j^*P@<LP0W8QVU:g9_&Wb=JRdq57n*iKV\prW@_D=;PQ^FFJfsG.4bb2:<Pfo^48*HCB/0YRD-?MHMA%A;FMrX1Z.(+7X?HZCO=(!_TUJl-Wd?,Yd5mb8rFt_)G!')pF+TmU$edn:?,nSrj<=G2(`jES@<Q)l18kAF,cYJkIY4%ab201kB$q!s>o5W!X/8IW6G<<8b%!^_a^@e)QT7"7&Pt7OH]jMS..iZ?-tul9k*ZpIpe&b_:^I9O>.JOQb"(p"Q-.qKH^!]FpH,X+J`u"]TuV/N3Xi\Y!7eG)2>Osq7B`I:;QD<fNUe\0^2)>'O_5ahY=Gn97*1`ISPMQFLqV[VP1SBA9\fU?p?h.apNE>1aReTPA9=C2&'nH#cQb*%N7B0PhJ>OY,.lAca(aU'k+)J;_d_m:M`@%%1[M]"#h,b3Pnfr-HW^H4?of*`9LksWHPQlZVXom=K=e!PXDM*`d,c%oPN=C(U/-[cMMfVD`j)W1%\-YJGn?Z55[mHqI85@<a&.@^"3'l]S'.V[*>u_#Z\DYiLBQl2L9*9Sen@E_TJ$DC]`g1;H(,hq*&VAuf3E_S]OHTE?1NjiVlR%5<SnQ#/L<HgAD,[B,QIM@0qJif=f3II$1&Ui#&2d8_p/i&@n;_3cDbc6j-"s\/:t=3AVbT![k/=>IHap,U.4*I/P8DJVIm"@Q.d7Zbut#cSY_B/NKl9%/"&j1K0DuHo79Z.ag+6hO,.mJUrR't$7pY=6.!"@*l947`$:0F7tr;Ak#3;],LoHq*-^Rk9e<ET%P\-&g&^6/eWE]FQc>0MN1]fqkI`g:H;0jE%H/M'!mlX!:2:sAq&1?s]H>H5GE&5W)NT=Bk*-\:cdqe<9Y<>Z^8/2u7'F2XiN107UsKMsqde\qOJ,XTO$`!Aa3Q[JOmHhG&8WDD.9(Nop]6/a]hh4Jilr+*T_rTDK_*-Oqapfqdh"guJ^pRXl+-oZTV%,1C9p:F9R[#=W'R&.<=!M8<m/qK+'-A,X"1?!9&?saHeqB=="dhG9:3r9aLG;'JbGr;5jK?$'q.C7(E)).p<kC<3qHh@o-_QOJ`>80ZT'h\1GA9()Z"42et?-8dcJO5/9XTLb*FZ`p28R"Q].KH_jQjg0&=d7A^B[caph7p%pa4th/pg]>[Y105\A`k\&;:_*]rt!U4&rT2"fl--qKtYlo*4\AVLq*lpH=]EJcJsD+SWDbh`(!Z1OA[%.@f%gmf\hRL)mAJ-$a\=kLKOC"umg+pjjU1sjPO!;*<'!%;N2Geq#5Dig+qKA\1lXOBPjdd_#ma?.fH6gY#"R`]6op\iIO'I)\@GoT[2ES;Lh1h`lpKaj`$N^SbRGU-`Mq/FE[cQD5U):H+=4Hc`U":;tag&WR:TAR<IM'J,$)#ZF-V0-o>Db@HeK#EK050+[sN\AhLS-QaKnF6S]l%\j%gh5M,/9]A]W73K'J82gY2'6X,#"GchD"E]P7K;05:TD0fjTRQe/<'6;!,1Zu$lT_anrToL+/&0CN4Fm3[1g?VX.0!ujm1[5`Okf(\*k(kbM2p+p$[f_bM/N<DimhW26ass*']L(6N``@hnQf%ZWm6+og=l>Cm;6^/&;5Xh:6$1C&jL'7_a1`a==d"7Bk_^p_rk^.q&-IkuD\s6'N[k+AF9VD\5HK1KnGEH5bbnoc$.1cW/7GB@J'+A4HbS@1I5^p1WCEYia38'DTA$`t'6>+`WR-&iI<ML^>YE+(SnV11=]9HZZ@./?HLi=C1p-Ig"7crl'FI<St[A=`RL5amS0?M`4:V#FYm()GMM*r[b<N=jAWsIQg0G$B4mJ^%-G'8.0j1oKUB`&\\~> endstream endobj-74 0 obj+174 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 612 792 ] /Resources 3 0 R-/Contents 73 0 R+/Contents 173 0 R >> endobj-75 0 obj-<< /Length 1521 /Filter [ /ASCII85Decode /FlateDecode ]+175 0 obj+<< /Length 2281 /Filter [ /ASCII85Decode /FlateDecode ] >> stream-Gat%#9p=Ta&A@sB.&Z`;fnqsEg!4GICQ`L38StcYAu[UH?jTuc+JArq)Xjj?&kFht9p.)6qE7-n4D8DG:TJEKO1f5i*tGQ".TV+E=bU1T^<kV)Ic.&XUS$uJhPp)F>/)Rb,;Ht'[aBQm*tQ1Bp"$D:ik&!)5MgX7H`*L#n&,S9j[FG9]nTB[V!6/8pIFWEmKna,7iM0enT[0@CGNfKKdG`(LH+.b/Ai0C,]W7\aADiPl.Za;?(t`^-186lOud73XJ7>/I,Wp.EfR_6aL*9t6jXLtfHbp3)j_0PA$VVED:;-@#WWPOM62$$mbPp=`8C69c<Gk"L13E2$=0mg=9?mI7,'N:FUhP_m1*(+r$U[/!Jkm+7?Ufc'r8QG=>O8,i:9&?/SI,CLa5bu^mS`0)o7[K]>t?,OQQs._`X]is1>/(*aBV^PqmmM9VVAM@0<hX1_:,9TKOa*I:Y!Dq!Q$A(-iBHNgc,A@"<7SJs[[BN.LLJlhojI8)_YH8O>WJJfmrDcU)Z:aZ3X6?(rD'2_gK+pp"G%b>`dfSC(Fh?)f^F!Z[QZ,r2<M$5%>'jJ^GtP8,^AjIVb9O-i.?ras_9-_d;J2GL%;AgtG?@F\L<$(KsEBB1*bXL?.UC8A.nA/7?@d3:%kJRu9pLk)'C'#$d^/Wt+r"DF_JY[C_F^"G3Welce8\22@=^b5;cNoB;`Ti&fXj.PYS)GV$`DU5-40$9P$O&j9/HFW523)':t*.Q2OXhZPDU`/Src5P>XL:r7uCF3<gc+NT_&$oR6mCV`PCp4lqW26g$a;iMM'(&,Y_tpD0)EjfKFbsgp!;BkrBdap'4uJPA_6+=JgoB+-?[/7dNuL^GaI;A"qCEVO)e"*5(2^11T2h?/.r\jIL?beUs3p/7=GdME3gV_s$i<7=7=_r0O8O#&UW^lj8..Khc"7'mU6V`o-ET>'DoLYmX(,[rcIbISB/kCNnLaFJYdR+lK2hC17TtTrAXQ^(bM\hsQP+D-eluVcH9YloJ6sd`2D[:qAk_oc36;te=Rf"i.5)*GiETSefMFMo-/m;%$HFmD8orJ$_i7G(W@^52PW`20?IT)@8g:NYnYmeL;2;:nMtGu.D,[0C!,mUC?o8qlWcD[tbV035(&7eDJ\i!I(f+F['rh';BM#6MZ!-DP5aBCTOO]2km:f9Or:Im2$XfSTH+fE@'b/NZfm(leY<f)4<Xmae[c6>m1]\pB(bGa8mZh5@kcFM3LsWX+8'F7E#Qhj=dpbn`*I(86N+8qj=4^:qPFr%gTT2Cjb]*f$YGnJKc'jA"Q(`j3[ura=FPoq$8ij+iCfTSac(uXuARe=ZI5:u/3@P:]5Ri/M,26OB0g2PdK.ZTeE=/=<_db8)Pu,)F(?0P.OTp;Z@if:[+PhD1TCLGXDUjA0f?BO"CNi&.8):q+\pI=pMuS2#mF6dZOMj3".@EJ]U@%4Q7I4[XNH'Aj>(+ujeA:$kV[>M(2qW\e3;/6[Dl_XA]V4%InRB*b^,Uo`hrh%cm`'FgIfR2lQ;d~>+Gat$:?$"Ian3+P'is-n[7S)+.Tm[1a")3CYJf2^=7\eW!pkgW%P)Ores*OK(FLRE/8K\Q!md9E9md8+L(+2mbq?+dHm(m.P@Lm?PS:M-!cG1;RA8%#U-QF[\K28BMR\j_M-Y&ccSDFgj?C/bWZd&cI#E.J$%"cPt%*gdh.H-L1KiTleXg^\#CKcm$:%M&R%VWHuFjIlLV75-<A8"3bo['c3XA3Fu8k\1[pFrX>RTB1Q6V;8gM(%ZEm$5pu?=D-3!u'G>r$=U+_N_#NNEY9=,-NJBP9S6&,i+YV_b!FkC$9"i>F]'GVJkMdX34SNpgQ9g9](kj#bIEKp*WIH`StY/EkrRqdF]?Z96bgZlLeH[Mtsd;9X=='AWJ<IFKEWCq-l(.A+?qu/0"QhRh)m_[P>Y:#dG_GA=qFiA=@nlp[tJ;,b#:3:`1EKHFrRkjB;>mF/gY".$c85OuE*#PVl_mBcF,DDfh%@F^CI6k_@6@boos?H!TSp%4`AWV"NoDe6QnTjYedV&#LN8)BFgVOgO!-qqE]sJu%QuL#c+&ecpu(lF*Vb3.\C'P4\r";Tk>bV-,/gC9:pi=g%K6,#%WL9fF#iEo&)f8u.B"X47tX(U;eZX9Bbb,5juCrDr_X7HtV%Z8*p6acW%:+B;2LftMLQ/h-*g"Xb)J`'q8PV-+5OGM/"H$_E=^Vo((=Ol>k)@oW==T^7sG@)NtXeUtq20/nt!h9]c:f+9o_7edWmRCq23)[uB>NW>PaRb_]]`T`/=i_)P2QjK^YL6DG<8#aj89$K.5?Is>%M)&05l@uAs:=O(^i6+cf9#L^')YNU&MI\$72)-_Hot%O]Jn!Ze\e%Rc'P'WkPcQHrj)Hc`-.&EBf"c>Hb8!`G0]R!N@>-ls1/Te4Q'D*9)gKsp."I2X]?&5[Vm$C[?1R)Js%U5r:hBME.I!jl/<UXo$2S*'XM)GfUQO5P^)jl\KnR#h^C!qM4mr-37^OX5Vhd_h]eGEODdTJ#ThltEI3?0U8jkK(TW61]=Q*-&j8i<m=<I=CaH\kC%5B1dgS92]&-7T\;kMRT7ZP=e.e8h,^2')`M<S,Xrfjq3<cf*+&pmHJ[eZVP*HmcK^Ecp`MR%]I>*6oqNZRB%I2_YoYd#cJo;DdkqueF"A"[Vl)5=rI!bcP<(cAfq=:VJHdUV=\bH%]=H@C!^nM-W[B@B_9aF)D2[[n6DD#TesYN,4uf@(*kWB)Xg*ktJt?iO]11Q1rR+WaUD3.9la8)>7eZ8Eh@1=Wpc@/$Cg:\a8OS,',LD#XF)\UM3,n(pXr0Yi5L\dop?'%nheRscdK6ij=UY>GPC9U=F=@M!Gp;</E?@-JJM3^\i:0H5iuHCt_8/-nsenr^,2$*sOL25aJZD7(s/RV9e+c3[)X2(:Y9)1j^83q#UpndV<a7e^,m.oIVt!["+2Ibn>%&tU.%>!,Zk1qq?)OW$sDpB%1R#;;'f$W$^DPT$A\!.iC?r2,h(du+,Iq$-i%@EtZKc,W>bqc#5\A=r57bHp<`o55t0kg6RY7uH0ajmnWSV;'>h)H$F4Q_6:7H2JM[pMX,X&2E-p@nlkJ&mphP^<#ndXcFJlHG)Hs5k+7da:ld-Ie,LWHhuYR[F$1aG]D#C@i1ApVdu'Z,USJh/XtK$0tL(MFl@nu6k"-g4+PE4J48`f@PHP*\Cpb[X'Q*Bk`JSIkQ^4dOZ`WeW(1^Z3jOM2c5SO6mKh$ieVjm$'DMe'=Dl)>GhLkq76\SnHF,Ps,rjXh.r<)AI4[IGK^isO>dAga4?FOXHMR.O4M99_XII/h)cT>X(>64>in*HYc5OTq#t2WV3d(qWi^.DNXZd4k7h"*K<D,OugF*40Y3#Ka+'()cJ=PJ;^2&"RmqIMLKZ6Gdp9^AKjmm6.mY$jC7m%p-1>-O18ssm]dD08*FF"gci=0>gH3J5t,`UKXr[(cr&[gHc4fug96BVC-=V&+T!S?H"*U&NCO,m'n]].KPg>J:jl0c>sg23?HWm2spR2U'C'I6n,^)oo>L)>jHG9YB(Rf*0rFbH!/P.<B2S^=]p`hc*1EJ<Tdhb]\"q%]i1U"%V+QL2k,2XE:^n>t!$[;1pDP?&S)ZU-Lr"rUU@j8##.riFA-^!"F'LYDY;CF.lCDn40>==['bI*;-YXQ;CLA,DSLlOZfHnZC1*m11\=qIY?#\"^kgXEF%S[M3(?:_'MO.[n\*EUo1c/O]L@i]/^UH[K\JW[*5Aae'q6g:s2W1mu--iqdU$IA5lC@HJ'qj;OGe9"#c>TS7t/gr>B:oKPK;?4m~> endstream endobj-76 0 obj+176 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 612 792 ] /Resources 3 0 R-/Contents 75 0 R+/Contents 175 0 R >> endobj-77 0 obj-<< /Length 1940 /Filter [ /ASCII85Decode /FlateDecode ]+177 0 obj+<< /Length 2142 /Filter [ /ASCII85Decode /FlateDecode ] >> stream-GasaqD/\/e&H88.Tk,)!'J6H]Q`Vdh#48Vqh+R'Po+3SgAMKH=Q'1OG_tMi/+t8Y;V6idTn2ZYU]SFPf;6MlZlSkEsqC%@eCQi,Yf'^\cD"r"Oa@3NP`X*"NaP-!_^K.fIY$8b]XClDbTd7(1cs$6YN*iKAP8ih+C\'&)%kPa*25%N^laWK.%"72)M:AT'4S*q*`O9WqeuIm!82J\QV0FbOSI!OPj]G-8Uh[rE!`rMrX5-0JQ&ProQ5rTAl";d9_"URHES=;kNB9a[(46sn;aJlA/8FF',?*(cF=K;W"'7<SW!b^^*Nn^kVRTi5B>P+h&Z[-9_%)2BAc%or^l'@OfoEFngeK;lQ#:*fX9dtM=lY6uI7Y>EeK.d,iFpkd#Up]]?>/c=$n'Xo[NE]#^EY20anL5Y7!9CViF@a_=d@Il=S>D<EnDtO-!q!;4%=5J8ZN^e]PM8HQC.5/7<5@OKZWada7IW1Z_)!Ll]QXim27XmHh#'d"EC5;C^TE<N*PK:S`-K.MJtCA).u9-g1&jNj*8=?#?8c>Zn4,O\p5S!XAM@Z[;"lYNR!h-"%dj<2,(uH%ihX6Tu8rC]2d.pD@hMjJt.[_-8tGE3@P6)Lm1hO/DV#I),%JqV6TATbAo/edGnbr$jM^5-eqXoKe+>+Jt44rB4FW9QGBe1EoGnXE)1YaWZX#RNuK(Z`uM9kTQp_,9S^.%,<\qP)WtAd*<co^0sX)\jpKq!XC3HA8H_S(L0Lb.5m46Y4V43;]Z<s:J7`-QJ-uEmoU_(iVak@YhXYY%QMn`h?DoE)gEhD<egV,HU#rnb*>L5>3VOa/Y"!'^>Yj6e>&D;(b]i;M%FYB"NLi6M%6SNH2#_-&g\3eaTnf@ec8PW0IKEamM5qua-,[`eLP725hk$UbK&JaqQisgM2is3g.GGRLSB?AmUD7XTX6Z:\CX_$VIai63;&UQ-K/L\>ISW>UJVY;1hSO-J9M-dL+EM>7p4XG`Z0e<jVi*pjj-A3Rbe*9h5)O[#rgb,D"`XF>+X90+P2ep_!\YQGC\W+O;UMla2U9NmV.)Fa:AgJgfJ1H'SaI8Vk8Jg>>0>DPL9BElXuUs,]c]S3qj9MYA">X-R'Y`qf3Qnp"Xpb@oRjSg]3:`f5TUojKskQGeOUY?Z8p&De_;7QHaeR>Y;>Y_e1V\]P7Ta&9Kdco\HV+39u*%\qpR>XE_]lJ_`@_!g"pPSQ+</6H;T)-U>Y$edRE9NKlXc'3XAUD:/sM0Wm37s5:ii.,%UH<QZGL%O8A'.aIPJB?$3XsXf`ZfIjrRn(N[Nsj!53DVHINAk&c2G#LH-6$@sE7MR#L"<0TZU5^BP!cIlO!<n:O`kuqfb2S_InBWC$b_)nDn<&gm@\]U2eZm=s9U]h^d;KH_ZZCdcBjaN([q4sLTdl.c(Wg6#^<<?;TX(I5X-)ltSL/`N^;Z#M1mm"R6q=a6cQZ$5LDic"j(Ti3?`0?q3H_VMem8cDQq^&K7`FH"/"A^s3mh6tm_5@UM;%*uATeofKAF+q<Z7K'B<K@J]X$%csW]f!PYsCu-II6n\PijV30+K:kAS5qDQH!T,6pHcW0>ok(U!adjr,7S9)W&?Ug15[bf8Hq]1p=di[#-g52$+R5==%(^i>&pTEeV#MA`J,;PQm!s%59_eG/JbYJN?m?RCi*56!oKYgULt]cG[;nDI@OVjhY%+25Z3D42XbOC1:'l?3N'ZXJD=/9#grM?1<0u)J)UT<#(Q"R0!OU)Ukp.%f<(k?#1Vm2l8n&WF88:h?1TVpm.[#l@>@^T5d&<[.CW39inKEFs8cc;qOI47qNptAsG)?VEW[6),l-$*`PMP2///l)fnVHH.-M1@n8%:I\N<7`lQj=En9/FAYf>3np5BM;18cbCdbu>l,FNV)d8b6q:2*=Y;Xj\+]SHIj*Gl33,SaZqG@2TdFT06#7SZb+9~>+Gau0E>Ar7S'RnB30`7.D.ArYX_6A\OF#OV8]EQ1G0Fn4:d5Dr#oHZG72se;?+t<%9Ok+Ep:nZ`j7%QKd3HST*(LOmJB!-cV=h;4aB);s[k(nNTbk4#+jEN(nB5'7#p%#;efl+4hHZ<LLS?R3mTne$/qi7;PB!;-Z(\GoEJ6RZO`2jLE&KknU3G0q@N7?J>#BS,)\Y:dNi>(!88l?8P2F&-tem#AbTZsa[+%UqkD2Ik:6$ro3JjNRD;Z^K+p11)ng_4TXgqd2h>A#7!3[]1\8"*E/pk+,$fa2:*i&fSlFO=Jhp67;Sp4ajc*nu%Cq7ak6+e37L6<6?X;*aZ98N2Ya*?k^u2dd)TOnZYK,Hb6-mO@$24S=FZ^'bV_^T6kr8;5b/cGZgURc"rhCmL$M%9OD7^b3?L7rlD-1UHM/<lZ8$K+.[3=SipLVVS2bEO1+%r&hfdi<h'BS(K&Q23DZl13db.9+\4("2bIu$9Y2kkQE)5@EK#DS9AaW"1Xk0Amh!36la@6K<n=NCem;SS.AT>FsJd]\?k4*gB=Wl0Eq/5ipoLWPAHB"K8X:8I*Y6t&AB49*rt52X].&g%+s20F>U4[ARXM%BC4K93.m/A?6WBBTR[@]i22nc6Wre!/(tiI_mBR9%)a-$b()KXW?(S4*"<r6Fj8m!B>EbccjD+_<@q/O9S=Z"#6?b]eK@0*m'>]X\nQi6(M/8'pT6lX*C!,d1t5i3@#0nr<_/hReX]2<Dd-*[>JQUn^3D^_Z7C)p\_7%+cSX"K>hduG)L%OH!kl3V(<C<a,NJ-UeHdS%b$(G:9"c%SVu\gqhI>gA=g>@"\Wm(B9umqVn#fZ1nl&igeQqD_H7nQ)<mEQ->ti<#:#qccR!b),4@$&!>?dU^(lGmoqQ%/ZMU3D43pdH4!"3("pC*BkcSFf6(V*CGd"AbAh9BEQTb([`C1+_3:]_=WQ'!,ofCK5oqZ7]?.-s%1>'IQX*hb:DRC.4>!cojZ6IlDGEoE+jq4NZN*#e<@a&Ja<c)V0=?&q8UVXPPLNbrXkOEk#_a9<\`B8-HkDD<u5ffg6oRVRX_&>PB[[B^9IjIsI'2R-CAAXN9>boa`,jkptfcU8TOD8@ZEWj\#ToVa.<s!J[17_OPC'+Hfib^@$7q,@H@Xu0&0>cs2UV!cN9l_j"EF>VfY;C`*?FPO[:"s8nZ'irQsZXe,7iK)&RZ)Q0umA;crf[Ju%D$W:'$#GkQ8ZO8k6_0F>07baCIc\-@o(;fM,>ka^$kDh(!GDOpl/rXTK8I$:iKibV<#TTKWVmX1N)(5*_MkO]M[oq,0RBVINeZ;W2m^e2=kBFqn</ca5W&%p%D2\[?E>tc^;nb9cBf[ej"t:?g._0'br1u7+T$/7@Q3`4I):*<?kYT$?ZJ0+C,@X3'!sN<>`*!:D6W]<TXC`3+s<@*6i?PTMh@[$,mmMTkUdLPQYbKmFnE3t_"qiQK\]>W^s+1IGtg'BYn.S]^gqMo\b^&GC)A*Ad8IUA!G(6r>Qa6h=?jVM&@6#F)9Io7cY\USJGMP2g\"iuZasAtBA]fYQac3oI@'oF]MDV<2fCdefttV9'BVeud>&1bhi/7(86rS\ne2;R>\0ti0PE>!4!$sFEWDHt8V_R'$MuN>Z?b#bP_*e+U?)>NnA&i97sAmL<V45IaVbVC9\,8YiTBOmgUlfqH'^/P-N`5F1%ILa!)aWV[TjM^;GZ$n6jJS1qVfm$="DbmO&IAX@MJYlD.:\Le+WSl9&,c@n+A_9f0;rskU";Q]X3N"hR:(c[aGbi`.(o?moSCqQVJC^-4($RQSu.Hqa3GZUDo&ViSnEcI(Ob^Bk!I&pbStqEt_3P)mrL#:,`mepJLk`&(.QDcbj>B0*S&\DtWCe,US=J9I5G?iWo9`D@b]On-W.ufPNH::LP/`L/uk;ob&<U%L8dA?:&k/=$O`>7[?c54V9F2;[69l@Bf>$`Lru4laN_mqBoc`.&m2G8KkTmGEVo1,A`YTeH;)V3NoFr'9,gM;NoG64\VfJ?Uu9feq@h#A6dn?6e_(f;j,5s7qB]Tl0$&tHL\WD@u:%,8`6=s(`Brn,??[im4Nk!Gb#?B4Rj,CrIrlA,<+%,=&[3_5/oR>GJ!m9%"60]^K64hUUYT@iUf&Iqccb~> endstream endobj-78 0 obj+178 0 obj << /Type /Page /Parent 1 0 R /MediaBox [ 0 0 612 792 ] /Resources 3 0 R-/Contents 77 0 R+/Contents 177 0 R >> endobj-79 0 obj-<< /Length 1892 /Filter [ /ASCII85Decode /FlateDecode ]+179 0 obj+<< /Length 1452 /Filter [ /ASCII85Decode /FlateDecode ] >> stream-Gat%$997gc&AIV::t$ID795`IYcL2&fjn$g5ajSg:__a&Td@i.es<tE'ZZR>p/9sJ1XaEK"SRE(OIR0uL\&m[l>$#Fn`GBEGcUBbn?uD>0@7JE2\.uZ)MJ)Poi;=dTBjs$jL^c89bbNpls2P3Tb,Uk;r`,?EQn!D/&_l<8ZNk5AAnX8'0_1P2:J)L8j'Nbf:TTAFKSi"Nj@M6Fr1QTn<rYmV^(LaS3C"[daRMVs*C_Q7g<1.oA3m"q:KZsPA]BK*OR4a.9L*T"1>3V!\c'rSF-(M[#d-.Kt,%aHciX1l!<nnQ@,7T<@PBBIEdZ.FN8Mp3JfIZo'rkp/B*uN%;DZ?&'o'uCAGh\Zr?<]$Uk5*e5PeZ\_^Em_l;7!"8@k3ZHbLB]Hfk22YWD)h2UQu6==(6YrrAC:0TJt'$]j]b/%A"H*dJ^k75/XeHOoQJ'GDq&1,D,ECgu0@hopmKlOpI7M&Wfo&BYFO#2*/;`9N"]o?RY2PRJ^?7(,uA[2P9d#J,)J.YcI5c2?Gh'PE)MM<2aZ)U&3H.0q$Ji*4Fh+"7+]RO:Sjt=^AB$ESD+42+Pai^oknj_+De`:>r<`+`-?L(3i0I'A?&.... [truncated message content]

E CVS: docs technikolor

From: <enl...@li...> - 2004-06-30 08:58:42

Enlightenment CVS committalAuthor : technikolorProject : e17Module : docsDir : e17/docs/cookbookModified Files:Makefile Log Message:Stupid makefile fix and new pre-renders.===================================================================RCS file: /cvsroot/enlightenment/e17/docs/cookbook/Makefile,vretrieving revision 1.1retrieving revision 1.2diff -u -3 -r1.1 -r1.2--- Makefile21 Feb 2004 07:45:56 -00001.1+++ Makefile30 Jun 2004 08:58:04 -00001.2@@ -36,7 +36,7 @@ #HTML_XSL = $(PREFIX)/docbook-xsl-1.61.3/html/tldp-html.xsl HTML_XSL = $(PREFIX)/docbook-xsl-1.64.0/html/docbook.xsl# Gentoo DB HTML -all: $(PDF) $(HTML)+all: pdf html fo: $(XSLTPROC) $(FO_ARGS) $(FO_XSL) $(FILE).xml > $(FILE).fo

E CVS: docs technikolor

From: <enl...@li...> - 2004-06-30 17:44:55

Enlightenment CVS committalAuthor : technikolorProject : e17Module : docsDir : e17/docs/cookbook/xmlAdded Files:etox_recipes.xml Removed Files:estyle_etox_recipes.xml ewd_recipes.xml Log Message:Changes due to EWD being moved into esmart and estyle into Etox.

E CVS: docs technikolor

From: <enl...@li...> - 2004-06-30 17:45:26

Enlightenment CVS committalAuthor : technikolorProject : e17Module : docsDir : e17/docs/cookbookModified Files:eflcookbook.xml Log Message:Changes due to EWD being moved into esmart and estyle into Etox.===================================================================RCS file: /cvsroot/enlightenment/e17/docs/cookbook/eflcookbook.xml,vretrieving revision 1.1retrieving revision 1.2diff -u -3 -r1.1 -r1.2--- eflcookbook.xml21 Feb 2004 07:45:56 -00001.1+++ eflcookbook.xml30 Jun 2004 17:44:47 -00001.2@@ -8,8 +8,7 @@ <!ENTITY evas_recipes SYSTEM "xml/evas_recipes.xml"> <!ENTITY ecore_recipes SYSTEM "xml/ecore_recipes.xml"> <!ENTITY esmart_recipes SYSTEM "xml/esmart_recipes.xml">-<!ENTITY estyle_etox_recipes SYSTEM "xml/estyle_etox_recipes.xml">-<!ENTITY ewd_recipes SYSTEM "xml/ewd_recipes.xml">+<!ENTITY etox_recipes SYSTEM "xml/etox_recipes.xml"> <!ENTITY edje_edc_recipes SYSTEM "xml/edje_edc_recipes.xml"> <!ENTITY edje_recipes SYSTEM "xml/edje_recipes.xml"> <!ENTITY ewl_recipes SYSTEM "xml/ewl_recipes.xml">@@ -35,8 +34,7 @@ &esmart_recipes; -&estyle_etox_recipes;-&ewd_recipes;+&etox_recipes; &edje_edc_recipes; &edje_recipes;

E CVS: docs technikolor

From: <enl...@li...> - 2004-07-04 00:17:41

Enlightenment CVS committalAuthor : technikolorProject : e17Module : docsDir : e17/docs/cookbook/xmlModified Files:ecore_recipes.xml imlib_recipes.xml Log Message:This cleans up the errors left behind by the previous update.===================================================================RCS file: /cvsroot/enlightenment/e17/docs/cookbook/xml/ecore_recipes.xml,vretrieving revision 1.8retrieving revision 1.9diff -u -3 -r1.8 -r1.9--- ecore_recipes.xml2 Jul 2004 22:17:45 -00001.8+++ ecore_recipes.xml4 Jul 2004 00:17:34 -00001.9@@ -18,14 +18,14 @@ </para> <itemizedlist mark="bullet" spacing="compact">- <listitem>Ecore X</listitem>- <listitem>Ecore FB</listitem>- <listitem>Ecore EVAS</listitem>- <listitem>Ecore TXT</listitem>- <listitem>Ecore Job</listitem>- <listitem>Ecore IPC</listitem>- <listitem>Ecore Con</listitem>- <listitem>Ecore Config</listitem>+ <listitem><para>Ecore X</para></listitem>+ <listitem><para>Ecore FB</para></listitem>+ <listitem><para>Ecore EVAS</para></listitem>+ <listitem><para>Ecore TXT</para></listitem>+ <listitem><para>Ecore Job</para></listitem>+ <listitem><para>Ecore IPC</para></listitem>+ <listitem><para>Ecore Con</para></listitem>+ <listitem><para>Ecore Config</para></listitem> </itemizedlist> <para>===================================================================RCS file: /cvsroot/enlightenment/e17/docs/cookbook/xml/imlib_recipes.xml,vretrieving revision 1.4retrieving revision 1.5diff -u -3 -r1.4 -r1.5--- imlib_recipes.xml2 Jul 2004 22:17:45 -00001.4+++ imlib_recipes.xml4 Jul 2004 00:17:34 -00001.5@@ -14,30 +14,30 @@ </para> <itemizedlist mark="bullet" spacing="compact">- <listitem>Load image files from disk in one of many formats</listitem>- <listitem>Save images to disk in one of many formats</listitem>- <listitem>Render image data onto other images</listitem>- <listitem>Render images to an X-Windows drawable</listitem>- <listitem>Produce pixmaps and pixmap masks of Images</listitem>- <listitem>Apply filters to images</listitem>- <listitem>Rotate images</listitem>- <listitem>Accept RGBA Data for images</listitem>- <listitem>Scale images</listitem>- <listitem>Alpha blend Images on other images or drawables</listitem>- <listitem>Apply color correction and modification tables and factors to images</listitem>- <listitem>Render images onto images with color correction and modification tables</listitem>- <listitem>Render truetype anti-aliased text</listitem>- <listitem>Render truetype anti-aliased text at any angle</listitem>- <listitem>Render anti-aliased lines</listitem>- <listitem>Render rectangles</listitem>- <listitem>Render linear multi-colored gradients</listitem>- <listitem>Cache data intelligently for maximum performance</listitem>- <listitem>Allocate colors automatically</listitem>- <listitem>Allow full control over caching and color allocation</listitem>- <listitem>Provide highly optimized MMX assembly for core routines</listitem>- <listitem>Provide plug-in filter interface</listitem>- <listitem>Provide on-the-fly runtime plug-in image loading and saving interface</listitem>- <listitem>Fastest image compositing, rendering and manipulation library for X</listitem>+ <listitem><para>Load image files from disk in one of many formats</para></listitem>+ <listitem><para>Save images to disk in one of many formats</para></listitem>+ <listitem><para>Render image data onto other images</para></listitem>+ <listitem><para>Render images to an X-Windows drawable</para></listitem>+ <listitem><para>Produce pixmaps and pixmap masks of Images</para></listitem>+ <listitem><para>Apply filters to images</para></listitem>+ <listitem><para>Rotate images</para></listitem>+ <listitem><para>Accept RGBA Data for images</para></listitem>+ <listitem><para>Scale images</para></listitem>+ <listitem><para>Alpha blend Images on other images or drawables</para></listitem>+ <listitem><para>Apply color correction and modification tables and factors to images</para></listitem>+ <listitem><para>Render images onto images with color correction and modification tables</para></listitem>+ <listitem><para>Render truetype anti-aliased text</para></listitem>+ <listitem><para>Render truetype anti-aliased text at any angle</para></listitem>+ <listitem><para>Render anti-aliased lines</para></listitem>+ <listitem><para>Render rectangles</para></listitem>+ <listitem><para>Render linear multi-colored gradients</para></listitem>+ <listitem><para>Cache data intelligently for maximum performance</para></listitem>+ <listitem><para>Allocate colors automatically</para></listitem>+ <listitem><para>Allow full control over caching and color allocation</para></listitem>+ <listitem><para>Provide highly optimized MMX assembly for core routines</para></listitem>+ <listitem><para>Provide plug-in filter interface</para></listitem>+ <listitem><para>Provide on-the-fly runtime plug-in image loading and saving interface</para></listitem>+ <listitem><para>Fastest image compositing, rendering and manipulation library for X</para></listitem> </itemizedlist> <para>@@ -49,10 +49,88 @@ </para> <para>-Imlib2 can run without a display, so it can be easily used for background image -processing for web sites or servers - it only requires the X libraries to be installed -- that is all - it does not require an XServer to run unless you wish to display images. +Imlib2 provides a powerful engine for image manipulation and rendering. +Using loaders it can handle a variety of image formats including BMP, GIF (via unGIF),+JPEG, PNG, PNM, TGA, TIFF, XPM and more. </para> +<section>+<title>Recipe: Example</title>++<para>+This is the first paragraph of the recipe.+</para>++<example>+<title>Imlib2 WaterMark Program</title>+<programlisting>+#define X_DISPLAY_MISSING+#include &gt;Imlib2.h&lt;+#include &gt;stdio.h&lt;++int main(int argc, char **argv){++ Imlib_Image image_input, image_watermark, image_output;+ int w_input, h_input;+ int w_watermark, h_watermark;+ char watermark[] = "watermark.png";++ if(argc $lt; 1) {+ printf("Input image is: %s\n", argv[1]);+ printf("Watermark is: %s\n", watermark);+ }+ else {+ printf("Usage: %s input_image output_imagename\n", argv[0]);+ exit(1);+ }++++ image_input = imlib_load_image(argv[1]);+ if(image_input) {+ imlib_context_set_image(image_input);+ w_input = imlib_image_get_width();+ h_input = imlib_image_get_height();+ printf("Input size is: %d by %d\n", w_input, h_input);+ image_output = imlib_clone_image();+ }++ image_watermark = imlib_load_image(watermark);+ if(image_watermark) {+ imlib_context_set_image(image_watermark);+ w_watermark = imlib_image_get_width();+ h_watermark = imlib_image_get_height();+ printf("WaterMark size is: %d by %d\n", w_watermark, h_watermark);+ /* Modify alpha of watermark by half */++ }++ if(image_output) {+ int dest_x, dest_y;++ dest_x = w_input - w_watermark;+ dest_y = h_input - h_watermark;+ imlib_context_set_image(image_output);++ /* Src Image is watermark, destination is clone */+ imlib_blend_image_onto_image(image_watermark, 0, 0, 0, w_watermark, h_watermark, dest_x, dest_y, w_watermark, h_watermark);+ imlib_save_image(argv[2]);+ printf("Wrote watermarked image to filename: %s\n", argv[2]);+ }+++ return(0);+}++</programlisting>+</example>++<para>+Another paragraph. Don't forget to replace less-than and greater-than+symbols with the proper &lt; and &gt; even in your program listings.+</para>+</section>++ </chapter> 

E CVS: docs technikolor

From: <enl...@li...> - 2004-07-04 00:17:41

Enlightenment CVS committalAuthor : technikolorProject : e17Module : docsDir : e17/docs/cookbook/xml/ewlModified Files:ewl_intro.xml Log Message:This cleans up the errors left behind by the previous update.===================================================================RCS file: /cvsroot/enlightenment/e17/docs/cookbook/xml/ewl/ewl_intro.xml,vretrieving revision 1.1retrieving revision 1.2diff -u -3 -r1.1 -r1.2--- ewl_intro.xml3 Jul 2004 02:39:29 -00001.1+++ ewl_intro.xml4 Jul 2004 00:17:34 -00001.2@@ -139,42 +139,67 @@ The final setup of the window is done by setting the fill policy with ewl_object_set_fill_policy. This sets how Ewl will pack widgets into the window, with a possible values of:+</para> -<itemizedlist mark="bullet" spacing="compact">+<variablelist>++<varlistentry>+ <term>EWL_FLAG_FILL_NONE</term> <listitem>- EWL_FLAG_FILL_NONE <para>Do not fill or shrink in either direction</para> </listitem>+</varlistentry>++<varlistentry>+ <term>EWL_FLAG_FILL_HSHRINK</term> <listitem>- EWL_FLAG_FILL_HSHRINK <para>Shrink horizontally</para> </listitem>+</varlistentry>++<varlistentry>+ <term>EWL_FLAG_FILL_VSHRINK</term> <listitem>- EWL_FLAG_FILL_VSHRINK <para>Shrink vertically</para> </listitem>+</varlistentry>++<varlistentry>+ <term>EWL_FLAG_FILL_SHRINK</term> <listitem>- EWL_FLAG_FILL_SHRINK <para>Shrink both horizontally and vertically</para> </listitem>+</varlistentry>++<varlistentry>+ <term>EWL_FLAG_FILL_HFILL</term> <listitem>- EWL_FLAG_FILL_HFILL <para>Fill horizontally</para> </listitem>+</varlistentry>++<varlistentry>+ <term>EWL_FLAG_FILL_VFILL</term> <listitem>- EWL_FLAG_FILL_VFILL <para>Fill vertically</para> </listitem>+</varlistentry>++<varlistentry>+ <term>EWL_FLAG_FILL_FILL</term> <listitem>- EWL_FLAG_FILL_FILL <para>Fill both horizontally and vertically</para> </listitem>+</varlistentry>++<varlistentry>+ <term>EWL_FLAG_FILL_ALL</term> <listitem>- EWL_FLAG_FILL_ALL <para>Shrink and Fill at the same time</para> </listitem>-</itemizedlist>-</para>+</varlistentry>++</variablelist> <para> After all the window properties are defined a callback to catch the@@ -246,11 +271,11 @@ In this case we are using EWL_FLAG_ALIGN_LEFT, but could have used on of the other available alignments including: <itemizedlist mark="bullet" spacing="compact">- <listitem>EWL_FLAG_ALIGN_CENTER</listitem>- <listitem>EWL_FLAG_ALIGN_LEFT</listitem>- <listitem>EWL_FLAG_ALIGN_RIGHT</listitem>- <listitem>EWL_FLAG_ALIGN_TOP</listitem>- <listitem>EWL_FLAG_ALIGN_BOTTOM</listitem>+ <listitem><para>EWL_FLAG_ALIGN_CENTER</para></listitem>+ <listitem><para>EWL_FLAG_ALIGN_LEFT</para></listitem>+ <listitem><para>EWL_FLAG_ALIGN_RIGHT</para></listitem>+ <listitem><para>EWL_FLAG_ALIGN_TOP</para></listitem>+ <listitem><para>EWL_FLAG_ALIGN_BOTTOM</para></listitem> </itemizedlist> So the menu will be aligned with the left side of the main box. </para>@@ -291,9 +316,9 @@ The ewl_scrollpane_set_[hv]scrollbar_flag() calls tell Ewl how the scrollbars should behave. The possible values are: <itemizedlist mark="bullet" spacing="compact">- <listitem>EWL_SCROLLBAR_FLAG_NONE</listitem>- <listitem>EWL_SCROLLBAR_FLAG_AUTO_VISIBLE</listitem>- <listitem>EWL_SCROLLBAR_FLAG_ALWAYS_HIDDEN</listitem>+ <listitem><para>EWL_SCROLLBAR_FLAG_NONE</para></listitem>+ <listitem><para>EWL_SCROLLBAR_FLAG_AUTO_VISIBLE</para></listitem>+ <listitem><para>EWL_SCROLLBAR_FLAG_ALWAYS_HIDDEN</para></listitem> </itemizedlist> Once the scrollbars are setup we tell Ewl to show the widget. </para>@@ -708,7 +733,7 @@ <example> <title>Complication</title> <screen>-zero@oberon [ewl_intro] -> gcc -Wall -o ewl_text main.c \+zero@oberon [ewl_intro] -&lt; gcc -Wall -o ewl_text main.c \ `ewl-config --cflags --libs` </screen>

1 2 3 .. 6 > >> (Page 1 of 6)

Thread: E CVS: docs technikolor (2024)

References

Top Articles
Latest Posts
Article information

Author: Barbera Armstrong

Last Updated:

Views: 5987

Rating: 4.9 / 5 (59 voted)

Reviews: 90% of readers found this page helpful

Author information

Name: Barbera Armstrong

Birthday: 1992-09-12

Address: Suite 993 99852 Daugherty Causeway, Ritchiehaven, VT 49630

Phone: +5026838435397

Job: National Engineer

Hobby: Listening to music, Board games, Photography, Ice skating, LARPing, Kite flying, Rugby

Introduction: My name is Barbera Armstrong, I am a lovely, delightful, cooperative, funny, enchanting, vivacious, tender person who loves writing and wants to share my knowledge and understanding with you.