[macruby-changes] [4448] MacRubyWebsite/trunk/content

source_changes at macosforge.org source_changes at macosforge.org
Sun Aug 22 17:15:02 PDT 2010


Revision: 4448
          http://trac.macosforge.org/projects/ruby/changeset/4448
Author:   mattaimonetti at gmail.com
Date:     2010-08-22 17:15:02 -0700 (Sun, 22 Aug 2010)
Log Message:
-----------
Added a bit more of the tutorial. Now needs editing down

Added Paths:
-----------
    MacRubyWebsite/trunk/content/documentation/realworld-dynamic-bundles.txt
    MacRubyWebsite/trunk/content/images/realworld-dynamic-bundles/enable_gc.png

Removed Paths:
-------------
    MacRubyWebsite/trunk/content/realworld-dynamic-bundles.txt

Copied: MacRubyWebsite/trunk/content/documentation/realworld-dynamic-bundles.txt (from rev 4447, MacRubyWebsite/trunk/content/realworld-dynamic-bundles.txt)
===================================================================
--- MacRubyWebsite/trunk/content/documentation/realworld-dynamic-bundles.txt	                        (rev 0)
+++ MacRubyWebsite/trunk/content/documentation/realworld-dynamic-bundles.txt	2010-08-23 00:15:02 UTC (rev 4448)
@@ -0,0 +1,206 @@
+--- 
+title:      Real-world dynamic bundle creation
+created_at: 2010-08-08 23:41:08.125402 +01:00
+updated_at: 2010-08-08 23:41:08.125777 +01:00
+tutorial:   true
+author:     Nick Ludlam
+filter:
+  - erb
+  - textile
+--- 
+h1(title). <%= h(@page.title) %>
+
+<div class="author">
+  By <%= member_name(@page.author) %>
+</div>
+
+<div class='tutorial'>
+
+In this tutorial we will examine a real-world case of wanting to read ID3 tags from MP3 files in a quick and efficient manner from MacRuby. The solution must also be packagable, so we can build a stand-alone version of the application, free of any specific system dependencies.
+
+While there are some existing gems to read ID3 tags, the native Ruby implentation, <em>id3lib-ruby</em>, does not compile with the current version (0.6 as of this tutorial creation) of MacRuby, and the other gem (id3) complicates portability by wrapping a C library.
+
+To bring about a cleaner solution, we can take advantage of MacRuby's ability to load Objective-C bundles at runtime. The Objective-C layer of these bundles can be a very thin wrapper around native C or C++ calls, giving us a powerful flexibility to pull in any kind of compiled code we choose. In doing this, we can also ensure that the library is built as a fat binary, ensuring maximum compatibility with end users.
+
+h3. Preparation
+
+The framework chosen was one called TagLib (<a href="http://developer.kde.org/~wheeler/taglib.html">developer.kde.org/~wheeler/taglib.html</a>), which is a nicely clean and portable C++ implementation.
+
+Conveniently, a user on GitHub has already done some of the work for us in making an XCode project which builds a Framework of this library. After forking and cloning this Git project, we can start to build our Obj-C wrapper class around the library's functionality. We can get the basic Framework project set up with the following:
+
+<pre class="commands">
+git clone http://github.com/rahvin/TagLib.framework.git
+cd TagLib.framework
+wget http://developer.kde.org/~wheeler/files/src/taglib-1.6.3.tar.gz
+tar zxvf taglib-1.6.3.tar.gz
+mv taglib-1.6.3 taglib-src
+</pre>
+
+You can use the latest revision of TagLib, but this example will reference the 1.6.3 release.
+
+The last thing we need to do to the existing Framework target is add in the C wrapper functionality, which is an optional part of TagLib. We will utilise these C bindings later on, as they simplify the amount of code we need to write, and handle much of the UTF-8 string conversion for us.
+
+Select "Add to Project..." from the Project menu, and navigate to "taglib-src/bindings/c/", and add both "tag_c.cpp" and "tag_c.h". If you build the project at this stage, there should be no errors. So far, so good.
+
+h3. Adding our Bundle target
+
+The first thing we need to do is add a new Target to our project. Select "New Target..." from the Project menu, and select "Loadable Bundle". Call this <code>TagLibBundle</code>. 
+
+Open up the "Compile Sources" folder inside the "TagLib" Framework target. Shift-select every file in this folder, and open "Get Info" in the File menu. Open up the Targets tab at the top, and check the tickbox next to <code>TagLibBundle</code>. This ensures that every file used to compile the framework is also used to compile our new bundle target. This also reveals certain configuration options within the project build settings.
+
+Open the <code>TagLibBundle</code> target info pane, and search for "Preprocessor Macros". Add <code>HAVE_CONFIG_H</code> to this entry. This is related to the way the project has been ported from the Autoconf setup of the original source code, and is required to build properly.
+
+
+!{width:600px;padding:20px 0px}/images/realworld-dynamic-bundles/preprocessor_macros.png!
+
+
+While this view is open, we also need to remove the entries under "Prefix Header"
+
+
+!{width:600px;padding:20px 0px}/images/realworld-dynamic-bundles/remove_prefix_header.png!
+
+
+and "Other Linker Flags". These are set up by default, and are not required for our bundle.
+
+
+!{width:600px;padding:20px 0px}/images/realworld-dynamic-bundles/remove_other_linker_flags.png!
+
+Lastly, we enable garbage collection support.
+
+!{width:600px;padding:20px 0px}/images/realworld-dynamic-bundles/enable_gc.png!
+
+Now swap to the "General" tab and ensure that we are linking the project against the "Foundation" framework and "libz" shared library. Check that the project builds without errors at this stage.
+
+
+h3. Adding our Objective-C wrapper class
+
+Now comes the fun part. We write a very simple Objective-C class to wrap the C functionality of the <code>TagLib</code> code.
+
+We will take a very simplistic approach in building the wrapper, as this ensures easy memory management. Our class will have an <code>initWithFileAtPath:</code> method, which we will use to initialise our class, and perform the scan of the file for tags. The tags themselves will be placed inside an <code>NSDictionary</code> to be read at a later point. Lastly the <code>dealloc</code> method will release the <code>NSDictionary</code>. All of the potentially tricky memory management is contained only within the <code>initWithFileAtPath:</code> method, and occurs within a single method invocation.
+
+Now we need to add an Objective-C class which will perform our wrapping duties. Add a new Objective-C file named "TagLib.m" to the project, subclassed from <code>NSObject</code>. Ensure that is is only part of the TagLibBundle target.
+
+
+!{width:600px;padding:20px 0px}/images/realworld-dynamic-bundles/new_wrapper_class.png!
+
+
+Add a new Objective-C file to the <code>TagLibBundle</code> target called <code>TagLib.m</code>. Once we synthesize a simple <code>NSDictionary</code> to contain our tag, our header looks like:
+
+<% coderay :lang => 'c' do -%>
+ at interface TagLib : NSObject {
+    NSDictionary *tags;
+}
+
+ at property (nonatomic, retain) NSDictionary *tags;
+
+ at end
+<% end %>
+
+and our <code>TagLib.m</code> file:
+
+<% coderay :lang => 'c' do -%>
+
+void Init_TagLibBundle(void) { }
+
+ at implementation TagLib
+
+ at synthesize tags;
+
+- (id)init {
+    if (self = [super init]) {
+        self.tags = [NSDictionary dictionary];
+    }
+
+    return self;
+}
+
+- (void)dealloc {
+    [tags release]; tags = nil;
+    [super dealloc];
+}
+
+ at end
+
+<% end %>
+
+The <code>Init_TagLibBundle</code> c method declaration is required to identify this as a MacRuby bundle. When loading a bundle with <code>require</code> from within MacRuby, it will automatically look for a method with the signature <code>Init_XXX</code> where XXX is the Product Name taken from the Target settings.
+
+Now most of the code for our <code>initWithFileAtPath:</code> has already been implemented in "taglib-src/examples/tagreader_c.c".  We start off by opening the file, and initializing taglib:
+
+<% coderay :lang => 'c' do -%>
+
+- (id)initWithFileAtPath:(NSString *)filePath {
+  if (self = [super init]) {
+
+    // Our mutable dictionary in which we add the tags
+    NSMutableDictionary *tempDictionary = [NSMutableDictionary dictionary];
+
+    TagLib_File *file;
+    TagLib_Tag *tag;
+    
+    // We want UTF8 strings out of TagLib
+    taglib_set_strings_unicode(TRUE);
+
+    file = taglib_file_new([filePath cStringUsingEncoding:NSUTF8StringEncoding]);
+
+    if (file != NULL) {
+      tag = taglib_file_tag(file);
+      ...
+<% end %>
+
+After initialisation, we can try reading a single tag from the opened file with the following:
+
+<% coderay :lang => 'c' do -%>
+      ...
+      if (taglib_tag_title(tag) != NULL &&
+        strlen(taglib_tag_title(tag)) > 0) {
+        NSString *title = [NSString stringWithCString:taglib_tag_title(tag)
+                                             encoding:NSUTF8StringEncoding];
+        [tempDictionary setObject:title forKey:@"title"];
+      }
+      ...
+<% end %>
+
+Lastly, we clean up the allocated memory, close the file, and convert the NSMutableDictionary into an NSDictionary:
+
+<% coderay :lang => 'c' do -%>
+      ...
+      taglib_tag_free_strings();
+      taglib_file_free(file);
+      
+    }
+
+    self.tags = [NSDictionary dictionaryWithDictionary:tempDictionary];
+    [tempDictionary release];
+  }
+  
+  return self;
+}
+
+<% end %>
+
+So now we have a simple class which should place the title tag of the file into the <code>tags</code> dictionary. The last thing we need to set up with XCode is a small build script to copy the Mach-O binary out of the standard Mac OS X bundle structure. We need direct access to the Mach-O binary bundle, as it is this we use from within MacRuby.
+
+We accomplish this with a small "Run Script Build Phase" added to the bundle target:
+
+<% coderay :lang => 'sh' do -%>
+  cp -v "${TARGET_BUILD_DIR}/${EXECUTABLE_PATH}"
+        "${SOURCE_ROOT}/${FULL_PRODUCT_NAME}"
+<% end %>
+
+Now we can build the target, and a file called "TagLib.bundle" should appear in the project root. Now from a terminal, we can quickly test out the newly built bundle using the "macirb" command-line ruby interpreter:
+
+<% coderay :lang => 'ruby' do -%>
+$ macirb
+irb(main):001:0> require 'TagLibBundle'
+=> true
+irb(main):002:0> test = TagLib.alloc.initWithFileAtPath("test.mp3")
+=> #<TagLib:0x200090880>
+irb(main):003:0> test.tags[:title]
+=> "Mmm Skyscraper I Love You"
+irb(main):004:0> 
+<% end %>
+
+The code for this example is available on GitHub: <a href="http://github.com/nickludlam/TagLib.framework">http://github.com/nickludlam/TagLib.framework</a>.
+
+</div>
\ No newline at end of file

Added: MacRubyWebsite/trunk/content/images/realworld-dynamic-bundles/enable_gc.png
===================================================================
--- MacRubyWebsite/trunk/content/images/realworld-dynamic-bundles/enable_gc.png	                        (rev 0)
+++ MacRubyWebsite/trunk/content/images/realworld-dynamic-bundles/enable_gc.png	2010-08-23 00:15:02 UTC (rev 4448)
@@ -0,0 +1,187 @@
+\x89PNG
+
+   
+IHDR  \x87   ]   \xD7.̂  \xEEiCCPICC Profile  x\x85T\xCFkA\xFE6n\xA9\xD0"Zk\xB2x\x90"IY\xABhE\xD46\xFDbk\xDB\xB6E\x90d3I\xD6n6\xEB\xEE&\xB5\xA5\x88\xE4\xE2\xD1*\xDEE\xED\xA1\xFF\x80
z\xF0d/J\x85ZE(ޫ(b\xA1-\xF1\xCDnL\xB6\xA5\xEA\xC0\xCE~\xF3\xDE7\xEF}ov\xDF 
+r\xD24\xF5\x80\xE4
+\xC7R\xA2il|Bj\xFC\x88 \x8E\xA2	A4%U\xDB\xECN$A\x83s\xF9{\xE7\xD8z\x81[V\xC3{\xFBw\xB2w\xAD\x9AҶ\x9A\x84\xFD@\xE0G\x9A\xD9*\xB0\xEFq
+Y\x88<ߡ)\xC7t\xDF\xE3\xD8\xF2\xEC\x8F9Nyx\xC1\xB5+=\xC4Y"|@5-\xCEM\xB8S\xCD%\xD3@\x83H8\x94\xF5qR>\x9C׋\x94\xD7
inf\xC6\xC8\xBDO\x90\xA6\xBB\xCC\xEE\xABb\xA1\x9CN\xF6\x90\xBD\x9D\xF4~N\xB3\xDE>\xC2!\xC2\xAD?F\xB8\x8D\x9E\xF5\x8C\xD5?\xE2a\xE1\xA4\xE6Ć=
5\xF4\xF8`\xB7\xA9\xF85\xC2_M'\xA2Tq\xD9.
+\xF1\x98\xAE\xFDV\xF2J\x82p\x908\xCAda\x80sZHO\xD7Ln\xF8\xBA\x87}&\xD7\xAF\xE2wVQ\xE1y\x8Fg\xDE\xD4\xDD\xEFE\xDA\xAF0
\x9A
+HPEa\x98\xB0P@\x86<14\xB2r?#\xAB\x93{2u$j\xBBtbD\xB1A{6\xDC=\xB7Q\xA4\xDD<\xFE("q\x94C\xB5\x92\xFCA\xFE*\xAF\xC9O\xE5y\xF9\xCB\\xB0\xD8V\x{1D4B5B}\x9A\xBA\xF2\xE0;\xC5噹
\xD7\xD3\xC8\xE3sM^|\x95\xD4v\x93WG\x96\xACyz\xBC\x9A\xEC?\xECW\x971\xE6\x825\x8F\xC4s\xB0\xFB\xF1-_\x95̗)\x8C\xC5\xE3U\xF3\xEAK\x84uZ17ߟl;=\xE2.\xCF.\xB5\xD6s\xAD\x89\x8B7V\x9B\x97g\xFDjH\xFB\x93\xE6U\xF9O^\xF5\xF1\xFCg\xCD\xC4c\xE2)1&v\x8A\xE7!\x89\x97\xC5.\xF1\x92\xD8K\xAB\xE2`m\xC7\x9D\x95\x86)\xD2m\x91\xFA$\xD5``\x9A\xBC\xF5/]?[x\xBDF\xF5Q\x94\xCC\xD2T\x89\xF7\xC2*d4\x9D\xB9o\xFA\x8F\xDB\xC7\xFC\xE4\xF7\x8A\xE7\x9F(/l\xE0ș\xBAmSq\xEF\xA1e\xA5ns\xAE\xBF\xD1}\xF0\xB6nk\xA3~8\xFCX<\xAB\xADR5\x9F \xBC
v\x87z
\xE8)\x98Ӗ\x96\xCD9R\x87,\x9F\x93\xBA\xE9\xCAbR\xCCP\xDBCRR\xD7%\xD7eK\xB3\x99Ub\xE9vؙ\xD3
n
\xA19B\xF7ħJe\x93\xFA\xAF\xF1\xB0\xFD\xB0R\xF9\xF9\xACR\xD9~Nց\x97\xFAo\xC0\xBC\xFDE\xC0x\x8B\x89    IDATx\xEC]\G\xFF\xED轨\xA8\x80
+{C\x83\xBDkl1bO\xAC\xB1&泗$\xD6أ\xC6
c\xD4{\x8B\x89\x89\xD1Ď"\xA2b\xC3\xA8\x88\xA8 "
\xBD
\xB0ߛ\xDD;8\x8E;@#Fp\xDE\xEF\xB7mv\xE6͛\xFF\x94}\xFB\xA6A\xE8; \xC8T\x87]\xD9a\xA8:\x8C\xE8jL\x87	
r:L\xE90\xA3Â+:\xAC鰥ÞG:\x9C\xE9(C\x87+
\xE8p\xA7\xA3
\xD5\xE8\xA8NGm:\xEA\xD1ѐ\x8E\xC6t4\xA5\xA39
#\xC3\xC2„\xA2
+W\xAE\xA4d\xBC9\x94\x9D\xE8'ԑK}cr\x85\xCAN\xD6\xF6q\xEC\xDB-\xCE\x9E|}}\x85\xF3\xE7E\x86 d'^\x9A\x9A\x9B\x8Bw\xFE,^\xF7\xA7	B\xDAU\xA1\xBB\x95\x99\xD0e\xEE!\xF0\xBC\xAF\xE4\xFF\xF2}AI
\x9F\x9D[ \xA0\xCC!!\x97\xBBx\xFD;\xE6\xF5\x85I\xD9қ\xEC8avc[\xA1\xFB*?\x8A$N\x98\xE6i-,\xF0\x8D\xD4
+%=F\x9F[&\x86
+\x88U\x85%g\xE5\xBD}僰\xC6?\xA2 \xD9)\xADV
+r\xE3\xCC
+ۘ\x8B\xF1\x888\x98WΪx>=5S@ٙB|v\x86\xF0\xD3`g\xC1\xEB\x8B9\xB2\x9C\x9CS'\xCFs\xCE\x8D\x9B̨\x93B{\xB90v\xF7-JO\xB2\xB0\xA6\x9B\x83P\xF4raBk\xA1\xFF\xB7E\x9Fф\x8DQ-\x87\xF0\xE4\x9Cf9|EyHV&\x8F\xFA>+
+\xB9/\xAD멒S\xE2\xA1\xCE\xCF\xEF.'\xE4\xC3>;遰}\xC5$\xC1\xCD\xD8H\xF0\xF8x\xBB\x98?"\xF3\xDB\x88\xC0\xE9ӧ\xF3H\xAD\xCE\xFF<\xF59\xEB\x81X\xCE\xDB}uV\xDC\xF4\x81 \xEB\xCE\xC2~\xB1\x9E\xFA\xFA\xFA\xE1q\xE9"\x8F4\xCA_\xD6\xF3\xB3b\xF9\xED4q\xADp\xE1\xBAoN=Q\xD7M5\xFF\xECē\x82\x9B\x85TN\x85\xECxaj5U\xBDU\xD5\xE76\xF3r덦\xA0\xEA2-\xD67U\xFB\xB1\xFC\xBC\xAA
+\xA2\xFA2\xAB\xBA\x8DT\xFFh[X\xFD\x91\xEA\xA8\xC4\xF9\xF4
+\xAA\x96-\x84\x8D\x87\xCE	'\xB6\x8Cͩ[\xA2\xBFZr\xEA\xD9\xDF\xD3s\xEB\xEF߳\x9B\xE6\xD49\xD1\xB5I\x9A튦̚\xF71a7\xA9M<\x9Fs\xF8\xFB\x9EqL\xBD\xB7]l\x9B\xFCT\xEDKg>\xC4 at W
d\xF5
\xF2\x96\x8E\x95 b\x9B'\xF7\xC8i\xB3\xEE\xCB\xC6w\xDB\xC1	[\xA9\xDD!z~\xFF\x8Ap\x86\xE4\xBC|\xE9/a\x88gCa\xFDQj\xA3InU\xFB\xACb\xA5\xBAd\xF7\x82r\xD3$\xA5Oj\xF7\xD5\xF9\xAEn\x93\xF5\x95#\x96\xDE\xDAV\xF5\x853qԨi\x96\x8AA\xB3|1~9yL\xEF4\xF3R\xF3\x9B\xA1.'\xEA<\xD1\xF4W N\xF9\xA8O֬\xD8˷\x9C|\xF4\xF7\xAE\x86ŊX0Y\xDFQ\x97]\x92u\xAA\x83\x95T
s\xBEMRYU˗\xD3N\xEB\xFC\x86\xA8\xE0}
+\x97\xE3Ǐ\x8B\xE9\xB9y\xF3\xA6\xF0\xE0\xC1!::Z\x88\x8F\x8FRSS\xA5R)dff
+\xE9\xE9\xE9\xD3C\x8A\xA2\xAF0?L\xBFQ\xE99L\xDFaz\xD3\x98
\xC4\xF4!\xA61\xFD\x88\xE9I\xEEt0\xBD\x89\xE9OL\x8Fb\xFAӫ\x98~\xC5\xF4,\xA6o1\xBD\x8B\xE9_Lc\xFA\xD3˘~\xC6\xF44\xA6\xAF\xA9u7\xB5.'\xEAv\x9D^\xFD\x8Fy\xE4TLXʠ\x88\x8DFFJ
+
+\xE2S\x81N\xBD\xDFG셿\x91j_-[\xB6D}\xCF
+b\xCA,cʨ\x86\x98\xF1\xC1P\xDC\xEB\xB0
ݫQ\xDE\xCAk\xA2wO+\x9C\xB9\xE7-D\xFF\xD5\xCAۉ\xD2
+\xACl\xE5'\xEBZ\xAD\xD0\xDD0+~\xF6_\xC6\ލ\xE8ձn~Ϻ\\xB2\xE2\xAB\x88e\xBE\xB8>\xF5\x83\x94Y\xF2.\xAFWv\xC6\xC62\xEB&\xF6D&\xDDG
\xC6\xD6\xF8ԭ`Qά\x85D#\xF1\xFE\xE8\xD9u9,\xDDX\xD95F\x9Dw\x9A!p\xE5\xAC?\xE4\x8B?6OA\xDB\xF9A\xB0\xB1ae6/E\9\x8Bk\xE2r
\xA9\x87\xBD\x83%\xFD\xBA\x98c\xC0\xB4\x89\xB8\xBAi\xD6\xD6\xC1\xB8^\xA2!Ȍ\xCD\xF1e\xEEm\xBE;}r\xD7\xEC\xF0>%d\xF6^x*\x86	\xD8\xF9
+\x82\xE4\xEDѲ\x96\xA5\x94&\xA7\xF4\xE8P\{l\x8D'\xAF\xC4\xCF\xF3\xDA"\xEC\xF7[HН5\xF9\xE2\xE6%u}V*S\xFD\xF8\xBE|\xAF!\xB6f5Ē\xD1\xCDP\xB7}w \xE1B\xE2\x9C\xC4zڢIuؘ\xE4/\xCB1A'q<9
\xFF\x9B\xFA)ڥ\xE0\xAE2\xD9\xF4L`0\x94ɡ\xF8\xA2\xBB\xC2eb˞%8:\xE2\x91")\xAF\xB3\xAE'7xW\x97c\xD5\xCA\xEDx\x9A\xA1\xC4\xD5\xDFV`\xE1\x9Dx\xB1\xBD)\xA8m\xC9\xC3JP\xE0\xE8擨\xD0\xE7\x8C\xEE\xDA\xA9\x8FC\xC4׬\x9E\xB3z\x86?\xDC~\x96\x81\xE0\xDDeAp6͟fK'\x80ڕ\xB8 H{䇅\x9F/\xC2\xF9\xC7\xE9\xE2\xB3\xE6\xC9\xC1\xBD&\xBC\xBD\xBDs\x8E&-\xBDQ\xD1\xD6\xA6\xAE\xB5\xD0^v\x8F]\x81\xB3\xE7cl\x9B.9\xF8諃\xD6\xE5݀Y\xA4C\xFC\x8E\x86\xED\xC7\xC1+R]?\xF7\xD76\xFAԶ\x83\xBB\xADQ!Wm\xD7\xD3Vo\xFDd\xE3\xEC\xADQ\{\x8F\xFAhAr6h\xD8el\xACP\xBF\xA972\xB9x\x88_b\xCD4\xB1\xB6\xAER\xED\xDC4I\xE9k\xF6\xD9֢\xA2\x96#\xAD`y
\xE9\x97$ϳ\xFAA\xD77C\xA3詼\xE9\xCFo\xED|\xD4'\xAB\x81\x9DX\xBE\xE5\xE4c\x93\x96\xA8\xE7.}\xB7X$\xA1\xBE\x97\xF0<C\x81_\xF6\xC5\xD7\xCF\xA5\xF2\xA8RGk\xAD\xFF"\x8A\xB8yR\xD9b\xF9|9\xE0
+\xE2U	ˈǕ\x9B\x8Fs\xB8kߜ:u
+m۶\xCD9\xD83'	\xAE
cI0\x97ɰ\xA4gM\xC8-,`gg\x87\xF2\xEDW\xA2l\xFF\xB5\xF8u\x8A+:zXAF\xEFM+\xF4BP\x92T\x99\xBB\x8C#J\xF3\xBF\xF1>\xA2\xFA\xCF\x95\xA1\xCEb\x9C\xE9*T\x90\x88\xFE+\xF6\xF8)\xE4]\xC6><\xEC\xBFA\x9Bj৓\xEBqkrѿS\xA3\x8F1\xFE{?|DJ
+#9\xC5Y \xA5\x87\xA1K%Q\xE6ʍ\xFA\xC2e\xC66\x84
\x9B{
+\xE6Y\x80쌧\xFF\xA6`L\xFC\xCB5\x9B\x80	[\xAF\xA1\x87\xBB
v\xB5\xF0\xBF~U\xF0I\x932\xB0\xAE\xB7\xAD'\x93ҥ"\xAFOž\xB9\xAD\xB1ܧ=\x96\x9C\xB5\xC7\xD2Q5\xA0\x8C\xCF߰\xDD?2\xF5=\xEC\xC5\xF4\x95iِ\xB5\x98Ԏ\xFDH\xD1/T\xCB\xC1eg\xF7\xC1\xD1\xDCNJ\x9B\x8C\xFE\x97\x8C4\xB0am\xB0\xD3G\xF5\x90.\xB9ͪ\x83\xFF\xE6\xC9Ir\xB3|j:\xF16~\xF9gj\xEE\x9AاE
AOI\xB663\x8Eb\xF1w\x89X鉊;\x97`\xD4\xF5\xD9\xC4\xC4.\xE5\xBDq\xC6q2\xAE\xDF\xF7\xC5;T\xEE\x8C*}\x88\xA0_\xE7㋮U\xC4\xF2b`b\x87\x8D\x81	bj5u \xE7&\xFD1\xBE\x915z\x947\x84u\xBB\xD5\xF0h펹\xEF\xF7\xC5\xC5\x98:Nj\xCBj\x88i5n\xD4:\xAB?ަ֪\xA6\x9A~\x88:S;qwU\xC8l\xBA\xE0B\\xFE\xFA\xC2"\x953\x82\xCC\xC3׮\x84\xC3\xEFSQFn\x82\xB6ρz3D\x99
+j[\x98\x87\x9C\xFAC<\xFA\xCD
\x89\x88-)]&\xF8\xEEv\xB8\x86,\xC5\xE0e~p\xF2zC\΢\x89\x8B
-\x96<Ĕ\x81\x9EH\x85$\x8F\\x9E\xDBΘ\xD7\xEA\x8CϚġsySt[\xEA\x87$R(g/\x9D\x85\xEE\xE4\xFE\xF0\xA9\x84\xD2\x91\xD7î\xF3{Q\xFB\xC1&\xB4l?\xAE\xA3\xBFD
Y\xB2\x88\x8F\xBE:X\xB3\xFDh\x9A\xB8\xE5
+dX{!Ko:\xC4HIy]\xD7\xD7]̻֟=\xC0\xEES\xCB\xE0JI\xF9s
\xAA\xD8Q\xDBk`\x87\xC1M\xB0pT3-\x99\x9A\xA4\xEB\xF9Y\xD7\xF2\xAC\xF3Q\xB3M.\xA8
Y\xE4B\x8A\x9C\xF2@
M\x98\x8DH\x83?\x8D\xDF
+u^j\xB6[̻&?\xF6,\xF9ӟ\xDF\xDA\xF9X\x90\xAC\x8C\x9F.\xF2\xEE3־3\xE0(\xB7Ê\xA8\xA6\xE8W\x95T\x894Ӥvcׂ\xBE!L\ۺ56Jր츫\xF0j\xD2\x97\x93\xB2E\x8A\xEB\x9BѰ\xFD*\xBD?\xECիWG\xB5j\xD5D\xBF\xECʞ9IȘYQ\xD1GQ]
u]\x99\x9B\xF6\xC1Z0v0w\xF5\xBD教6ٳ\xFA\xCA̝\xECY\xD3\xEC\xC9ީ\xDDk\x90\xF9u3=J
\xC0\xA4I\x93
+\xF5\xF7\xA6x\xC8HQ\x80\xFDH[\xDA\xDA\xEA\xF8\xD3\xCC/e2Y
\x95T\xE5mm\xCD\xF3\xBF\xD4\xE9\xA2$ke2}$la\xA6\xFE
\xE8\xF4\xF7⎺d'\xD3:\x8C\x8D\x8D\x91\xACx\xA5\x89#l\xCD\xD5EF\xE2\xCF\xE47ЖE \x8Bj\xAA\x99\xE4W\x88\xC1
\xEF\xAA\xF0\xEB\xFD'\x8E\xD6<\x9FP,N\x85"\x85\x8C\x85\xB6p\xD2\xC0 ;\xD6-*\xB4\xC3г1ӀY\xD6_\x8C
+\x93[ +Q|rF!\xF9T|X\xBFXj\xB8\xEFW\x85 
+\xF9@\xABV\xAD^\x98\x9D\xBA\xBC\\xEF\xA4\xF2bKu\x9F\xA9
+\x852\xA7^\xB3r\x9EJ\xBDC6\xE6WZ\x81z#RI0\xD7\xF2\x97
{
+\x95\xCAtD\xF7y\xAB\xF0\xD1\xD0\xD1\xF0*g&S\x8C"
vNv:ۚ\xA2\xB4-b\x9D\x87\x8DXWө.g\xE7\xD4e%\xE2\x9E%\xC3ʩ\xF0v,\x99ꯜ\xEA\xAEQv8\xFA9\xB4\xC7\xC8\xE0trf\xCDш\xC9i!b<9\xBD\xAE\xDD\xFFƕ(_\xD4\xB5
=u\x90ژx걱1\x97\xDAM}\xE9\xA0\xE6\x8B\xDA/\x96L\x9D\x9CT?\xE7\x92\\xEA<-j[]\xB4\xD4\xECK
g\xC1\xE5\xA8`
\xFF\xE6\xAD>\x9CϜ|TE\xF0\xA2\xB2J\xFE\xA9?T\xA3
/\x8A\xAC:\xBF!E	X\x88V\xD7\xF7\xEDۇ>}\xFA\xE8\xAD\xF3'N\x9C\x80y\xAC\xAC\xACī9\x95'\xB9\\x89?YYYX\xBF~=|||
+\x89Qz\xED\xE1\xE11\x8A\xEEn\xD3\xC14Y\x{197465}q\xB0g\xB5;\xBB\xB2w\x9AWv\xAFy0EN\xFD\xCC\xEEu
\xE4\xAC\xFA{S]Y\x8F<s\xD4EL	\xE3\xF4 `BJ\x8EIQ\xF5<\x92O\xDD(]Tc\xAA|\xEC\xE3\xF3\xEAI\x97\xECL1ddaK]H:H\x97\xFC\xA9\xC1{`W\xE3#XV\xAA\x84\xA4\xFB\xF7!\xAF>\x97\xC6h\xFF\x99K\xCCX\x9C\xCEth\xD3\xF9\x8D\xD3\xE1o3
+\xD6qŐ\xF1*Ln\x99\xB1y\xB1\xE2\xC3Z;\xBD\xFC\xF9\xCDF\xE0\xC5\xCB+;\xB9\x8A\xA0X\xB7\x8A\x90D}\x9Ct5\x96
\x98;>\xEE\xC4=C\\xEBj3\x93\xC9\xC9I\x97o)"]uS[M\xB9\xE4y\xDAcR:\xF3\xD7K\xED\xF0\xEC\xD9B\xA5$\x86^D\x95\xB9\xAB\xD1\xF2C\xA6D\xFF0\xA8
+&
zۋp\xEA\x8E\xFF\xFDE\x95bȸ멃di\xB5\xD1H\xBA\xBEtH\xCDKK\xFE\xF6\xABhy\xCAdxu\xF4_ĩ)\xBD>\x9C\x98u>\xAA\xFD\xBF\xA8\xAC\x92u\xE8\xA2_\x8BRN\x8B\xCE-\xD7'\xFB	\x8C\x8C\x8Cԫ\xE6\xFA|\xBB\xEE\xB8r\xF8v\xE5\xF7\x95Z\xD6u\x9B\xD7
+\xCF\xC8™A\x8D{%wW\x9D\x96\x8D\x82\x84n4\xE1Sm\xA1c\xA8bA\xC1\xF8;\x8E@\xE9D\x80\xC6~\xF4\xF9otڬ<\xFB`\xB1狊h\x8Cq
b\xC0\xB3h\xA4\xA4g at n玲4\x91G\xE0U п\xFFW\xC1\xA6T\xF1(U\xCA!3s*\xB9D=\xBCWr\x85璗:x{\xF2giDB\xDF`\xF1\xB8h
\x81\x92\x8E@\xA9R_f\x8CPI\xCF at .?G\x80#\xF0\xEAx\xD91\x87\xAF^Α#\xC0\xF8\xAF`c\xDF6*\xFAh\xE0\xB7
+\x9E^\x8E G\x80#\xF0\x82\\xB9rE\x9C\xF1X\xABV-ܹs\xE7Cs\xEF
\x8E G\xE0\xCD@\xA0TY\xDFH\xB9
\x8E at iD\xE0\xF1#\xBE\\xF87""\xA2a@\xBF\xD5y\xE7\xE3K\xD3\xFF\xAE^ن\x94\xA4\x8C\xFDt8_\xA34\x9E&\x8E\xC0[\x82 W\xDFЌ\xF7ݎ\xC9^\xF8\xA8\xCB˯\xBB$в\x91\xB4|\x84\xB1\xD6\xF2/oh\x92_\x99Xi\x8F\xFD\xB0\xE1`
+>\xFE\xA4c\x9E%)\xF4E (x\xF2XA\xEBڠ\\xB9\xDC\xC5Z\xF5\xF9g\xEEl!\xDF
+$S
\x9D\x8AGA\xBC\xF8\xBB\x92\x81\xC0\xAC\x85GP\xB5^\x8C\x9A\xF6.LM\x8C`H
+\xA2\xAD\xF6\xC5\x83`\xEBA
;raalɘ\xCAxY\xA9d$\x8AK\xC9\xE0pt \xC0\xBB\x95u\x80\xF2*\x9C\x84\xA4s\xE8`i
+\x87v\xB3\xAB\xB1\x92P\xDA\xFD\xFDp71F\xF7\xA5\xA7
+\x8C&\xF8\xD0gXt,\xBC@?\xBD\xBC\xB2{&\xAD+hWWW8\xD3"\xD1m\xE7\x9F,\xC8{\xCE;!\xF1\xA4(\xDFI\x85\x86\xD09o_ݍ\xB6\x94&;\xCC={ak\x80\xB4C\xC1\xBF\x8D%\xE1\xEEaL\x9EG\xBB\xD0!	vN\xB4`qy\xC2\xCA
\xB6\xEF\x8C\xC2\xF9'l	\x90\x82)\xF1\xDE\x8A\xE3\x9F"\xC5Q0'\xFE\xB6$ \xC0\xD6üx\xF7*5\xAC\x82\xA8\x84,<\xA6

\xC5)\x97!އ>\x8AŖ\xCD\xA1\xA4\x95\xC6>\x9807
ƃ\x85\xE1\xC4\xE0pJ"\9,\xC6\cۼŞ\\x88#\xA1\xB9\xDBD\x9D\xF9\xF9;q\x8D\xAE\xEC\'\x9D\xC8L\xDD`K\xBB\xBC\xD1"\xB3\xABƬ\xC6ǴK	[\xE3\x92\xF6\xC5\xD2>\xB5DV\xFE+;\xC1\xB2\xD9rZ at W7\xC9,\xBD\xB0\xFFD \xEAj/\x9F\xAF\xDB\xFB\xBFre\xF8|q\xE0b`t\xD9;q\xB3ޕ\xEC_$"KZw\xCD\xC0\xB4\xD0eq

\x9A\xEFc\xCEn	\xA7\xEC\xA4Lt\xFAM\xEB|\x84\xD0Bv<\x90\xB1m	dr\xDA\xE6E$\xE3~K*)\xB4\xE8tl\xBA\xD1\xF1\xE9\xF8雯\xB0~\xE9
\xF8\xF9\xF9\xE1yr6b\xE8ؽ\xF5{q\x8B\xCC\xFA\xADރY\xB9\xEA\xB4=\x98,'\x8E G\x80#P\xE0\xCA\xE1kȵ\xCD;OK\xB1d\xDF\xC6\xE6\xD5\xE7P\xBF\x92j\xBF#Z\xBD\xF7g3f=k\xD2o
\xE9PJ\x9E\xF8\xAE\x85\xBBMK\xFC\xCD\xF6"\xA50\xBF- \x851\xAD\x84oOH{}\xE6I\xED\x88@\xFB\xB3#\xE6q\x94\xB8\xEC:\xDB\xF4\x9D\x9A\xCEHڈfS\x8E"\xD9:\xCC)\xECw\xCF\xE1\xBF~8~\xB9	\xF3\xFA8¸\xF6,\xFA\xD8\xDDǺ)\xAB\xC1䠭\x89V\xF4k\x87Żvclk[1\xCEw'\xEF\xCCQ\xE0n\xFC\xB6L\xB42ʈW\xEBV^\xF0
\xB0V|\x97
w
+\x93\xBByJ2\xB0\xC5WR\x96 \x97\xB2
\xB0s}\xEF{WDRx\x9A(/KK\xC8!o\xC2e\xC8\xEA\xA4䥇\xE6\xF2%\xF7A_\xFD\x91\xE3\xFF\xA6\xDA?\xC9\xD2y\xD4\\xD5\xFE\xCDyP\xC9\xFB at i\xDB6\xEF{T\x99t\xF3\xFAI\xFBN\xCB,\xAAb\xCEփ\xA8\x93\xBC~\xBF!\xE94\x8C\xED\xBF~\x8Bfr1=\xB3\xB7]\xCF\xC3G\x96
\x89\xCF\xDBz⋽l\xA1{\x89ί\xFF-'\xEFW?\xF2k)@ 33\xE9Fr$*
+a_\xB1\x82.\x9E\xC1\x9E\xCD\xCB\xFD\\x81\xBBwCq\xFE\xD8A\x98[ۣQ\xB7\x8F\x90\xA6\x94!\xD3\xD8,'\x8E G\x80#P\xE0\xCAa1\xE6\x9A`⍕ˇ\xE2\xD4ڟ\xF1\x80\xACdOOlǑ\x931uxKD\xA7I}\x9Eڌ\xC7C\xB2<dF\x9DD\xCA\xC1y\xD8uE\xDA#\x92\x89eck\x89\xB4\xFB;\xE0\xDAz>ڵ\xEF\xBA\xCA\xBC{<|VZ"$=\xD1''\xE1S\x9FѸ\xA5\xADP\xCAk`\xFE\xA6\xB1\xD8\xF7\xF9\xBB\xB0\xA6\xEEڝg\xB4\xAE=;'\x90\xD1\xF9\xB8v\xEF<\x866t at F\xC2#\xEC\x987\xB1\x9Dw"\xFC\xE4ڮ9\x81\xB7o I\xD5#\x96}3?\x80
+\x93\xCF\xE0\xEE\xB9
+\xF8\xE7ۙ\xA2.\xE7L\x92\xAB\x8E\xCFg\xB6\xF7:\xF1\xB8@{\x9B\xE0\xF2\x8Dh1\x9Eп\xD7aՅ\x96\xB8O2&\xDE\xFD\x9E\x96\xBA\xCDk\x96\x862ܺt\xA7\xAC\xC1\xCCo\x821hzWq_b\xC6۳\xFBgX~#Y\xCF\xCF\xE2ɬ
\xD8t3\x89,u&\xE8\xF0\xBF\x9FO\x8A\xB0}\xD12\I\x90\xF5h?j\x93\xFF\x8F~c\xB2\xF8ah\xCB:\xA2
\x9D\x84\xE4[\xF8\xEBf
+F\xF9\xE4ݑ\x85\xED\xE3ٯ\xAE|\xAF܃\x90\x91\x84\x87A{0\xE8\xA3?0\xEB\xC2}\xF8n\xFC \xA7\xFE\x92g\x98\x80`P
::\xE2\xABq?H\xEE\xF4\xB0\xE8\x8B\xDFб{\xF3\x82\xA2\xE7\xEFJ Ff\xA6\xB8\xFA(
+Yn\xEDaY\xB1b\x9E\xC7\xE1\xE7\x8Dk\xB0}\xE3*$\xA6g\xC1\xBD\xC3\xDCyn\x80k\x8Fhc;s\xAD
+oK`z\xB9\xC8
\x8E\xC0ۋ \x9F\x90R\x8CyOz\x9A\xFA\x8CD\xFB/;\xE0`\xC0Xmڄ!_\xF8\xA3ҽ\x93\xB4A%EL[;5m_\xFF\xECހ)K\xD9\x92Vfbj\x81\xA0C_\xE1\x9D9`Ҟ\xBB\x98ۥ\x82h5<\xB5\xFF \x90⊯\xC7}\x8C\xEC\x98S at B\xE2/\xAD
\xE8\xBEF\x82\xB7\xE6\xFEo8>lU\xAD:\x89\xAD۠\xACK9\xC0\xC9\xEE\xE5\x9CaF:\x9B\x90\x96\xF7O\xF6a\xCDȎ"\xE9`\x9A\x94\xFD4c)\xFE/ޯL\x96\xB4D\xD41\x91\xB6ʺ~\xFCO\xC0e
+\xC6\xF7\xA8!v\xAD\xF6\xE8\xDF\x99\xDBb\xD02U1\xA3[/s,\x9C=
\xBD\xBC59\xE6ޛ\x93\xF5o\xC7\xCA	\xD8D[\xE7U\xB6
\xE7&J\x8A\xDA\xF5\xE3\xC7EO\xFB\xBE\x9E\x8Cc\x88\xC3\xF1\xE4t4\x8D"\xC1j\xB9\xA1\xBDW2v\xAE\xFE
+a\x91\xA1\xA2\xB6C\xD8ݳ\x87EY\xC6u\x91d\xE9;\xA4F\xED\x95dIځ\xA1\xE3\xB6\xC1\xD0Q\xDACKH\x89A\xE5>_㫞\x98\xE5\xD2@\xB7\\xE9\x8CI\x95\x89~\xF6\xDE<\x84\xAE\xEEP$\x90bm\x90*vWS\xB49\xD4v\xC8\xE7\xC0\xCC
8\xBA\x9DCğ\xF2\xF1]\xDB29\xEF\xF9M\xE9@\xC0\xC4\xDC\xC6F\x860\x93\xA1Y\xFF\xA98\xBCj4
I\xBDnu\x9A\xA3R\xFDVPfe#\x83\xC6
2\xBF\x9C8
\x8E at IE\x80[\x8B3粓`V\xFE
\xEF]3v\xC4\xF0Þ\xFD^%d'HV\xC3\xECX?t\xB4/\x8F\x95\x97\xB3ЭOwT\xA1=C5\x95Afg#\\xF4\xC8#\x98A\xF3"\xED\x9B\xF4Ɛ1\xC31d\xE2\xF78>\xB5\xF5X\xE6\xAC<\x9Ac\xE5\xA1`\xFC\xB3\xA8\xB6-\xDA&Z/\x992\xA8ILu\xB0\xB5\xD7t\xCAs\x9FNϲe$\x85P��\xA4l\xA9\xFF.\x84\x8C\xDCA\x946^c\x90p? UC\xEF&0q[n\x97\xAB&\x8F\xE8\xCCl,9xQGg"b\xCB@\xB1\x9B[z\x9F
+XwF\xFF\xE1\xC31h\xF0x\xF8\xFA\xFAc\x94\x97=\x9E\xF9/\x87\xA9K-ܶ\xAA\x8D
\xDDZ\xC3M\x90Ғ\xF3
F\x8E\xB9c\xD521^\x96\xE5\x9B\xE3\xB3s1m\xDA4\xF1\x98>g\xB6\xAB;O\xBC\xEFa\x8E]\xBFj\x8Ad\x84\xE2ԭT4\xAE\xA9R\xEELj\xA3\xA2jo>eΞ\xE5y\x83\xBA\xB6ǚnX\xB3b\xBEZ\xBE\xFD\xE7W\xDD\xC6Ҽ\xF9S\x89B at na;K9\xEC\xA9엯Xm?\x9C#\x9A\xB2lni\x8DNC\xA6Ñ6\xF1e\x87\xF91\xB3\x94\xEAG\x89J \x96#\xC0\xE0\xA8\xE0\xCAa1\x85\xE4Lct\xFD\xF8#$1\xEBX\x9FOP\xD7@\xA5\xA4"&\xE8\xA4h\xFB\xDF\xD4O\xD1\xD0.wi3\xF9l\xC9p\x88R\xE2<\xDAO\xC0?\xF7~G\xFC\xB7\xC3\xD0b\xF2d\x92\xA5\xB1S\xEF\xF7{\x81f\xE2\xDA\xD7B˖-Q߳\x82\xB6ѐ\x9CH
?q\xF1"/CC[X\xD3\xCAl\xD6\xE5\xDDȪ\xA7@\xE2\xA5[\xC5C#L\x85Zd
|\xBAӾ\xFD\xE7m@\xAB\xB6\xF3r\xC6\xF9E\x85\E\xB4]cL[\xBD\xB3\xDB\xE2\xEC-
\xE3"U\xBCRb\x93\xE1\xD2a!v\x8C\xAE\x85O:
+
8u\xDBw'\x8B\xE8\x84\xC49\x89ilѤ:lȊw\xDB\xFF(\xE08\xE3Gt\x87\xA3\xF29\xC2IqeT٫92o.\xC2\xDE\x8F\x90w\xA6,ʑ\xC5\xC0\xCE
+MZz\xC3\xDB[u4i\x89z\xEE\xB4\\x8D\xCC\x83\xE6B\xE0\x92w\xB1\xF2\xB0j\xDB>\xC2m\xE5\xC8n8n\xDC\xE3\xFA\xE5.!\x94?\xF5dq\xD5\xECʧ|0m"\xAEn\x9A\x865\x81u0n\x80\x97*u\xFCR\x9Apv\xB0\x80
+\xF5(\xE3d\x8D\xB2Ζhӣ'j7k\x8F\xAE\xC3&\xA2\x8AgE\xD1\xCD\xC5њV`~,KS\xD2yZ8
\x81\xB7\xAE
s\x86d
+\xB4m2\xF9\xBD\x9F\x9B\xF5:97\xE9\x8F\xF1\x8D\xACѣ\xBC!\xACۭ\x86Gkw\xCC}\xBF/.R4\x9B\x9B\x9D\x9A\x97wq\xF6\xEA(IA\xEC\xF9\xD5?\xF0\xEC\xBF\xBFNqEG+q\x82\x84i\x85^JRi\x9B*\xEEBFf\xBF\xD7\xB6\xA4P\xC9h\x9C^\xA7E1\xF8\xE5\xF7i\xE2x\xBE\x9A\xED?@\xD3\xC4u(OJ\xEAZ\x9A\x90\xC2\xE2\xD1&͉ʦֺ\x8B\x88y\x9D1\xB8r`)n\xAE\x88\xAE_\xFA\xE1\xE3\xE5#\x90\x96(M(	\xF9s
\xAA\xD8@f`\x87\xC1M\xB0pT3\xED(\xC4g֍n\xAA\xEA\xD6\xFD`\xED^\x96\xF9\xC2\xE7\xE3MPV\xFAA\xBF\xCE\xC7]\xAB\x88idK\xCDlL@㮣Q'\xF1Q\x{1AEAEE}\xA1c\xD9`\xBC\xDB\xEDkz\xC57\xA3\xBDi\xDCc\xC8Ii\xBEi_Yg|ڎ\x9E\xBE\x81\xEF\xA6ɘ\xA2\x8AG&/\x87\xF9\xC1\xEF\xC3\xF7\xE6N\xD4$\xECib\xC1\x9E\x8DTFV\xD6\xE5L4sȹ\xE5`\x8C\xA2%\x83\xDCODs;n6\xCC\xA6\xDDT6{C\x94//C\xF9
+2\xB8\xD2\xF1\xF1\x829\xE8\xF1\x91\ɭ
\x99\x8B]\xCB\xC9`%7\xA0\x89Z\x8FJQ\xCAyR8
\x81\xB7
+[\xEAD\xD1Z\xF5WNו\xB9iL\x93`sW\xDFk^
+U\xEE\xEA+\xEBd\xEFٕ\xB9\xA9\xB5{\x8D\xB0\xB0\xB0\xCD\xE4^(
8p \x93&M*\xD4ߛ\xE7AIK`$\xC3֖uݲ{%\xDD\xDE%\x95A\\xA7\x90\xE2iI\xE1X\xF9I\x89\xB8g
+\xA4\x92\xD9ˮ\x9CSޅ\x9Ai\xC6s<\xF5\xDCژ
O~\xBE\xB9.
+Z`[-\xEBѹ\xCD\xE1s\xB4'\x9E\xF8M\x835\xE5\xBE at 3\xA6\xE3\x933
+\x90/\x97\x8F\xBE;5\xB9\x85-̌%_\x92)܄[\xBC:AiA\xE9\x90^&+\x9E!\x93\xC6D\xAA\x9F\xF5\xF1\xD5vg\x8B\x85\xC7$3\xFB\xA0\x9C\x9C\x8A\xB6\xB666D\xA0E\x85vz6cXi\xBF\xE6\xCF%\x{DF55}\xD3\xD2\xD20n\xDC\xD8\xD6\xE9
+\xAF.-aaA\xB5\x8E\x95sj>YcG\xC3Wņ,5%W\xFE9\x83\xE7\xD7\xFE\xC2\xFAo\xD6\xC1\xC4D\xEF\xA0\xD6\x86\x97#\xF0\xF6"\xC0\xF6V\xB6\xB0\xB0\x80\x95\x95\x95x5\xA7o\xA7\.뷑\x91\x91h\xC4\xC8\xCA\xCA\xC2\xFA\xF5\xEB\xE1\xE3\xE3S$\xA0<<<F\x91G6\xE6\x8AF)\x8Bod\xD1U}\xB0\xA5\xD4\xEE\xEC\xCA\xDC5\xAF\xEC^\xF3`\x8A\x9C\xFA\x99\xDD\xEB:\xC89gl{ϖ\xBA\xAF\xEC^\x9Bt\xEBھ\xF8s1"`\xACRY\xEC^\xA5\xA3	\xEDzbR\xA0ngL;58A\xA7\xAACݠ44\xEA\xDFQ\xFAm\xAE\xE8\x85?I\xCBdd^[ώC\xF6(36\xCFQ
\xD9\xF3ː.
\x92\x9B\xC4MfL\x8A\xA0\\xB6N/
+\xCD\xB2\x85ӿ\xC4\xE3\xFC\xC6\xE9��?\xEBs\xC5\xF0\xA52\xE1
+dll\x8C!C\xE1\xC7\xC4\xBF
J\xCB>
\xC3i\xBC\xAC\xA1!\xFB\xD7\xE5\xC4\xE0pJ
\9,yy\xF6fHL\xCB\xE5\xEC\x8Fz\x82g\xD1
+d\xD0\xF8;{\x8F<\x8Aڛ!\xE4듢фCPL%e\x95\x99\x918\x95:\x98\xA2׬Y3T\xABV
+\xE1\xE1\xE1z\xD70dV7778::r\xE5\xB0ԕ\x9E \x8E\xC0ۃ@\xA9RYW\xA7\xFF\x81\x88\xA8\x88\xFF&b
+G\xA0\x98x\x99\xF6\x84-|


,
\xC5$g\xCB\xE0p\x8A
\x81R\xA5
\xB6jժ\xD8\xE3p8\xA5\xED1\x87\xA5?\xC5<\x85
\x8E\x80>ؘ÷\x8D\xD8dN
\x8E G\x80#\xC0\xE0p8
\x81Re9\xE4y\xCA\xE0p\x8A\x81\xA8\xA8(lܸ\xB4\x82\xB2\xB3\xD9\xC4\xC0\xFCd`` \x9A\x85\x881cƠL\xBEKN~\x84\xB8G\x80#P\xE0\xCAaI\xC8%\x95\x8C\xC9\xCF\xF0\xEC\x992\xB6S\x83\xAD]\xCE\xF2.%(	\x8A\xFA\xC0w;N&7\xC2G]<\xF4\xA7\xF3eF8~\xFA\xF6(Z\x8F
\x81J\xE6|V\x88N\x8C\xB8\xE3\xBFB`\xF3\xE6ͨQ\xA3&O\x9E6\xF1D\xB11\x87\x87
\xC2&\xDA*sΜ9\xBA\xBCp7\x8E G\x80#\xF0\xC6#\xC0\xBB\x95\x8B)\x8B\x84\xA4s\xE8`i\x8A~\xAB\xCF\xE5\xC6 \xC4\xE03\xEF68\xA7\xDB\xEA\x90\xEBQ\xEB\x8E\xC2m\xFD\xAC\xE4\x96\xCE(\xEF\xE1
+Wg{\x98\xD3"\xCCl\xEBG\x82K\xBA;\x88\xEBB\xB1e4-\xAAu\xC1\xF7g
\x89\xC99\xF4

+{\xA9$e'\x85a\xF8\xA4Q\x88\xCC\xDD\xC5\xEF\xA5\xF8\xF0@
](\x95J<y\xF2m۶\x85\xA9)\xED\xB1LK\xDB\xD3\x86l
C\xF5\xC1\xDC\xD8\xDAg\xCCOdd$XN
\x8E G\xA0$"\xC0\x95\xC3bε\xBD\x93\x9Ac\xFBͤ\x8B\xBB&\xB5\xC1\x90o"\xF0\xCB\xF9\xB6h%ғ\xE3p\xCD\xF7/4s\xA1mVJ \xA5Fg\xA3\xE1\xA4}\x88\x8E\xBA\x82\xF1U\xF0\xC9'\xDFA\xDCnZ^\xB6\xA6:\xB6l)Be\xF4\x91\xAEcՠ>\xB9\x8E\xC0\x8B#\x90\x92\x92"*\x81\xAC;\x99)}\xEC\xC8T]\xB3TW斞\x9E.v93\x85\x91\x85\xE1\xC4\xE0pJ"\9,\xC6\KQ->\xFEQ\xBF/\xF1X\xC7:\xE4\xA1\xC7֢.\xED\xC7,h\xB6\x8D\xE1؃\xFCJ\xA4\x90t\x8B\xBF\xC1\xA4-\xFB0ػ\xBC(-[ \xBBn\xCB.h\xE4nAK\x9C\xA7\xE0\xF0ʱ9\x96\xB8fþ\xC6\xFD)2\xFF\xF5\xC31\xF0˟\xB1\x8A\xB6\x96cq\xD4
\xB6\x97\xFD\xB7\xE7\xC49w\xCFu\x91\x9F\x90t
+\x9Aƶ]\xAB\xA5w\xA6\x95\xF0\xED\xF1@|?\xA1\x89α\xDD4\x84Ж~\x8CR\xC3N\xE2#\xDA\xF2\x8F\xF1\x93Y4\xC07\x87\xEF\xE4\xE1\xB1\xFD\xD7o\xD1\xCCB.\xBE\x9F\xBDM\xE2/z\xD0:ٖ\xA9'\x97\xFAh[\xDB
\x99\xB1Z/\xD9c\xE9u!\xAF\xD3N\x92\x81\xE4\xE8\xBE\xF4T^di]ҷ:\xCF\xF8C\v\xFE\xD9\xE5\xED\xE8T\xC5\\xF4o\xDFa\xB9\xA4\x88\xE6
+\xC1\x9F8"\xC0\xBA\x8B\x99e0##C<\x94\x99\x92\x82(*\x84\xCA!S\x99\xC9\xFC\xB20\x9C8
\x8E at ID\x80+\x87ŘkI\xF2v8y\xE97T\xBF\xB7c\x96\x9D\xA2\x98r\xB7\xE1ȼ\xBF\xD5:N@\xAFݗ\xA0̎\xC3O]\x9F\xA2\xA3\xD7<\xD0\xDA\xCD&\xFEF \x82ka@\x87J:%
+\xDE=
]g\xFB\xE3P\xF0sd$\x85\xA0\xE5ͅh1|\x8B\xA8e$<Žy\xC3p\xA7\xFERD\\xDF\xEC\x9A\xAF\xCE\xDB\xF0U`\x8E\xAEx\xF3'\xEEA,\xE9|BF
\xED\xC1\xE0O/\xE2\x9B\xDBa\xF8\xF9c|ڡ~\xB5\x9F\x8EG\xF7N\xA0\xFE\x85u\xD8\xF0\x946\xE7	\xA5\xAD\xE1\xBA\xE3~ǟ\x9F\x9D\x81{za\\xD7\xD8\x92\x9E\xC3c\xD0G`օ\xFB\xF0\xDD\xF8N\xFDE\xE4\xAF-\xB8\x9C6,ܻ\xD3ǿ\x87wט`ϩ\xCFsvVQ\xFB՟.%\xB6\x8C|\x93\xF7\x95\xC5?w\xA2\x90h\xDD5:    IDAT\xFB\xDF\xAE'3\xB0\xA4\xBDoS\xB0ih-̹\xDD\xBF,z\x8F6\xC4S\xE2\xD0\xEAɸ\xD3\xF2{(	\xDB;\xBF\x92\xA8F\x99__\xB6\xF3Irr2\xAF\x88\xAF\xEC^}\xC4Ǔ[b"\xE9`~9q8
\x81\x92\x8A W\x8B3\xE72\x9F²N\xEC\xD94\x87>o\x8B}\xC1Oam)M\x96\xB8}f?\xE02\xE3{ԅ\x91\xCC=\xA7\xCDC\x9D\xE4\xBD8y+9\x8FDJ!-\xCFs\xDE%N\xED?\xAF	Kѵ\x9A=\x8C-\xAA⋵\xD3yx\x82\xC9\xD2'\xA4%\xC3\xFD\x93߱ql\x94\xAF\xDD\x9D\xDDͰ\xE0\xCFm\xE8Z\xCB\x8D\x9A6Y\xB1a\xF52\xBF\x98\x84\xF2\xF8\xFB\xF6V\xB4\xA21\x8D\x9D}\xDAegbל^p\xF5\xF0F\xD3
+\xA60\xA0m\xEARC\xFC\xB05\xCD\x8B\xA7\xF7"e\xCE\xB5\xBA\x8Eì\xEA6\xD8<H\xE2A\xCC\xEE\xBDvH\xE4_\xA7N-\xDAl\xD6T\xE7\xBEϴ\xA1
+L\xCBx\xA0V\xB5\xDApˎ\xC0\xEF\xBF\xFE\xD5&|\xAA\xE4\x90\xAE\xD8P\xFC\xF5{\x86.\x9F\x89\x8E\x9E.\xB0\xB0+\xF7r\xD2&\x81\x96\xCA ,\xDC\xE3.\xF5Ch\xD08\x8BP\xA3\xBAw{Dl\x88>\x93V \x82t\xDDS	\xF2"˟8\xDA\xB0\xBDU\xD9Dv0ˠ\xFA^}en\xEC`\xBB\xA9XZZj\xE7\xCF
\x8E G\xA0\xC4 \xC0\x95\xC3bΪt\xD2\xF5\xAA^\x81\xC5\xDD\xEC1j\xE0X\xFC\xF5\xC8ԑ\x8C\xB6'\xB1\xE5\x89mE\xA7I\x9E\x8DQ'\xEB&v\xFB\xDE\xD7t\x96\xEE%S\xB3ah\xAA\xB1\xC10h\xCC^v\xD9\xCB 
\xB6\xB9{\xFDʩVre\xE7\xBC\xF1\xC0\xD0ƒ\xE2*3\xD1
˘\x81t\x955S\xA9\xA4\xD9
䏆S\xE5\x90\xCCJ\x86\xE4\xF4\xE9٤6*\xAA\xF6\x8F\xCB\xC7?'\xEB1P\xABEg\xFD\xDF\=\xBDۿ\xE8
+\xDF'\x93t
+LWRI
3Rh\xB5I0(3\xF3rȈ\xB8\x8Ak\xA1\xB9Jv\x93Ow\xE0\xAE\xFF
\xB8\x86lB#WK\xD1ҩ
\x96?s
+C\x80)|l,!\x9B\x90bff&Z\x99\x85\x90
\xEC\x99
\xEC
\x9B\x94\xC2IN
\x8E G\xA0\xA4"\xC0\x95\xC3בsd\x9C\xFE\xC3~Ըs\xE7\x9E$\x82\xA9r5;\xBCD.\xC2\xDE\xD4]K\xB0\xF3\xC9ۣe\xAD\xBC\xBBw\xF0\xBF~vX\xF9a\xFCrFRe
+\xAEߋӡ\xD9\xE8\xF4~'\X\xB5W\xE2X\xFF\xB0[W.\x85s\xBB\x81\xA8M]\xB7ڤV\xF2\xB4݋\xFAl]\xAB\xBAc\xC5\xCF\xFEb\x90\x98˻\xB1\xE0\xA2\xBD:\xD6\xCDaQ\xD4\xF9\x99\x8A\xA7QH\xC8P 0\xF0 \x{1C0C66}9Of\xAE?]\xF6\xB5л\xA7~Z\xB4\x97\xA3\x93!(x\xF0$N\x8C?Yf\x83)?\xFC\x8D\xFDc\xB3гn]\xFCN\xDD\xDDL
+\xBEs\xE5
+\xEC\xBC\xFB\xE2\x9B\xDD\xDB\xD0\xD4\xDC\xB7I\xFEs\x84\xE67
\x81" \xC0\x94C\xA6\xF81e\x90ݳ\xC3\xCA\xCA*\xE7`\xCFjE\x91\xB9s\xE2p8%\xCDOrIMC\x89\x90\xDBХ
+\xB6l\xCF!\xE7Eyͪ\x83\xFF\xE6 4mR#\x99\x8By}\xFCr\xE2jj[\xC4HQ\xFD\xF3Ud\xDA
+\xC2\xD0V\x951T\x9DZR\xA8\xB6vA\xEB\x91k\xB1\xE9Rw4\xB4\x97\xF4|\x9B\xC6#q\xE2\xD0\xB1\xEBԄM\xFC\xD5\xD0֘\xE5\xD0DTM%&F\xF6jf\x80\xB6.\xA9\xF9N\xB28\x92_\x83\xF8\xE9\xE4z\xB4k\xDE\xB2O%\xC6\xE3\xBF\xF7\xC3G\xA4\xD0
+4\x97\xA6 
\xB91f\xCE\xB8\xBC\xAAlV\x91+\xA5c\xEAʍhJn\xE4\xA4Ъ\xC6\xF0\xD7՛.\x86n8\x85;ݚ\xC1\xCB\xE5\x91m\x9By'pb2Yk(xR\x8A1z}u?\xA7\xB7G\xCF\xC6=q&tNOn\x8FY\xA7$\x85Х\xFB,n\xE1\xA2)\xBF\xE7	\x85B!\x8E/\xB4\xB7\xB7W
+\xC8\xCA\xCA\xCA\x8Eu)3qq\xFC$8܁#\xC0(1\xC8\xD8\xD2(\xFA\x88f\xA4\xAA\xCDO\xBA\xAE\xCCM\xFB`
+;\x98\xBB\xFA^\xF3j\xA8rW_\x99r\xCA޳+sSj\xF7\xB4\xC1fr/\x94
8\x80I\x93&\xEA\xEFM\xF3\xC0\xAC\x80\xF1\xC9\xB0\xB4\xB5-t,\\xBA\xE2\x9E\xA7(i\\x93\x9C\x9C\xA4qv\xEA\xF4d\xA4(\x90\x92a[\xDB\xD71^I\xC0d\xC8-l\x8B}!\xEE\x82ҕL\xE1Lؘkv\xAB\xAB\xC9{-\x88O^\x9F\xFC\x89# hﭜ\x96\x96\x86q\xE3\xC6\xC1\xDB\xDB\x8D5*p\xECK\x97.!   \xEBׯ\xBB\xA19\x9E
\x8E@\xC9F\x80\xED\xAD̆\x8A\xB0
ve=\xAC\x81
+3ac\x8E\x99\xAA\xC4~Y\x9D\xF7\xF1\xF1)Rb=<<F\x91\xC7\xDBt\xB01U\xCC,\xC2\xFE6\xD5{V\xBB\xB3+s׼\xB2{̓)r\xEAgv\xAF\xEB \xE7\x9C\xF1d\xA2\xE2G\xFA\x9Fxe/\xB4\x89)a\x9C\xFECd\xC6\xE6EV\xE8\xE4\xB6N(g\xAB[X\xB6\xBC\x8D\xC9\xEB\xD0\xC5\xE8\x8DIf=\x82\xE8\xEF\xA5]J\x97\xC5\xC8P\x9F\x97\x8E|k`M\x86\x82\xFCG\x8F
-0\xDD\xEC\xC31|\xF8pqbJ\x81
\xF9K\x8E G\x80#\xF0\x86"\xC0\x95\xC374c\xB8X
\x8E\xC0\x9B\x83 \xEB.n֬\xAAU\xAB\x86\xF0\xF0p\xBDk2+\x82\x9B\x9B


\xB9r\xF8\xE6d\x97\x84#\xC0xAJ\x95rȺ\x828q8
\x81W\x81\xC0˴'l\xE1\xEB\xE0\xE0`\xF1x2p

\x8E G\xE0\xBF@\xA0T)\x87\x93vj.\xC1\xF2_\xC0\xC9\xE3\xE4pJ\xAB>HoOJCN\xF24p\xFE=\xCB\xFB\xE6߽\xEC\xDFs}\xB39\xB0\xC9 \x9C8
\x8E G\x80#\xC0\xE0p8"\9\xE4\x81#\xC0\xE0p8
\x8E G \xAE
\xE6 at Q|7V\x96\xC6hX\xD1
\x9Ey\xE1\x96\xC9\xCD1u\xA8;\xA6\xB6λ\xF0\xB5Z\x92\xB2e\xCDѦ\x8A\x99\xFA\xF1__
+-MЦ\xBA%<iW\x93b%\x99jV4C\xFD\xB2\xA6p\xB3ʛf]\xF1\xBA8\x98\xAA\xF01\xA6\xCD\xED^F6\xF4\xA9\x88%\xBD
ᐳ\x{24AE60A}\xDFͣ\xAC\xA5\xC5\xEEE\xB1\x91Wn\xBB\x8A\xB6X8\xC2
+\xAA\xBE4O\xF1\xA7\x84ǠVVY\xB9v\x94^\xAEu\x85\xDD\xEC+\xDAc\x95\xBB\xAA\xE6/w\xAC\x8D\x9A2\xD0
+\xCBFT\xC2Ъ[#\xE9Km\xAB\xF9\xC9\xC0\xCA\xD8>\xDD_S},\xA8>{7-\x83\xA5\xC3h+OS
u\x9Eڐf5\xACP\xAD\xB8\xDB*\xCDtP\x9C#\xBA\xE3\xABAnz\xDBdM\xEF\xFC\xBE\xF4 Х\x89S\xE9I\xCC+JIQ\xBE`\xAF(\xAA\xB7\x8F\x8D \xA3\xBD\x8C\xA7VE\xB7J\xB9c!#bh\xD1\xE70\J`de\x8A\x9EM\x9C!8\xA4\xE1\xEB\xD3\xF9\xC74\xF4P\xA3\xAB\xA6\xA0ߧwpO\xFFrDE\xB6Z\x83\x8AX\xF1\xA1=\xAE쿁\x91\xC7R\x8A
\xAE\xE8

+0\x98>[\xE4]\x831\xFEv8ڭ\x95v\x82\xD1\xE4e_\xD1k>\xF1 at M[\xCD\xADK\xE7\Þglɦ"\x92\xCC
ۺ\xA0\x8E,\xDFx\x8E\xE7E\xF6*\xBDy7\xAD@\xFB:\x97\x85\x9D\xC6wNHU\xA0\xE7\x94P<җwZr\x9B\xB89\xA0K#8\x86Gc\xD7]\x8D\xD5\xCB_VP\xFAPoZZ
+\x8D\xE2\x96\xE3e\xF9\xBFE\xE1\x99
\xA6UG7\xB6\xB2\xBCD~\xBBo`\xFC\xA9\xE2\xA8G\xEA^ϵ\x8C\xBB
:S\xB9s\x8F\xC1\xCEм\xE5\xCE\xC8\xCA
\xFDh\xD1\xF8K\xA7"\xF089\xFF\xA2\xDF\xDA]#\xEB\xFB\xF6?F6\xFD\xDAS}\xA0\xDD2uR=\xAF\xB2\xE8P\xCB7E\x8A\x{D866}'c[\xAC_	W\xBD\x89Gs\xB7\xC2\xD4\xF4\xF3\xCA\xEF\x85l<\x8C\xC8@\xDF\xE5aq7]g\x9B\xFC\xCA\xE3\xE4\xFFsT\xB3F\x87v\x88\x8AMǕ\x90\x84\xFF\\x9E7E \xAE
WN\xD0_\xE8\xF2/k\xA1\xBD3\xF0㺫X+\xF6
\xB1\xE7\xF3Jذ\xC0\xA6\x87\xE2\xED\xEE&\xAEt\xA9ԭm\u\xDB\xE5\x92\xF4)\x85\xC8\xFE\xC1\x88:\x98Z?
\x9DƇ\xE29\xF1\xB8}\xE6.Z 9Cw|\x85\xB0+\xF4\xF5#jab#3\x9D\xBA\x8B\xB1\xBB\xE3\x90B\xEBm\xDA8\x98\x81\xF4\xDF|dheGXT\x86]V.Ɓ'\xEC\xC3c\x80F5,\x9F\xA0\xE7k\x92\x8FK\xAECJ\xAD\xEEi\x94
+E\xAE\xD3k\xBBsk\xE4\x86o\x87\xB8 \xE1\xC1S\xF4[\xF6PT\xE4
+\xE4\xC6h\xE3i\xDAA\xBB at R\xCB\xCD6\xFA3ʔҝ\x91\xF7\xFB\`x͗2S
]鉛ۯa\x82q\xB2\xB0\xE7@\x90\x81\xD8\x87T\x93\xF5[_\xB3\x89\xAB\xA8
\xD8x\xAFf\x88庺	˵7\x84\xA8\xBDY\xF3U\xD4yD?b\xEB\xA2_H\xA8\xD8i[\xA2U\xF9\xD3\x9C\x9D\x9EM\x9B,e\xE1\xD4\xE1\xA78\x96PH\xBBA24\xA8d\x84\xACgO\xB1\xE4X\xE12d(%e3M\x8Cʘ\xB4\x9E\x8B$\x8A\xFF\xF5Q6\x8E\x9E\x89\x86\xCF\xFB\xAE\xA8\xAE\x8B\xD7'\x8F\xE9u!`ge\x8CQ]\xCA\xC1\xBB\xBA5\xCCL032q\x89/\xD9 \xBF.\xA1_S<\9,&\xA0+\xD6-G\x8A\xA1
\x9ECM\xEC\xC3,9\xEA\x80e\x9Dl1\xB2\x91	fݑ"O%\xAB\xC4W\xD3\xA2\xA3\x87\x92\xA2b\xF0\xE9\xFC0\xDC en\xC0\xD0\xEA_9
+\xFD憉֧\xFAd\x9DZ\xFEaY\xD8S\xAE%F<È%DE\xC4\xD8\xC1\xEB>\xAD\x82\xC6e\xA5\xEC\x8CÄ\xABf\xA2\xA2F\x9B\xD5៵\xB5\xB1t\xFEM\xB8\xB9b\xFBg\x9C\xD8z;gl”\xAB\xAEcu\x88\xD4HO\x9DVnW\xEEaܱd\xB2 z\xE2-l\xC4][\xEE\xF8\x85a\xE0\xB6g\x92\xB0z\xCEL1\xE1e\x86̨h\xDB
\x9B\xE3+\xFEy*\xFE\xD6a\xCA\xEB۫\xBChe;\xF0]\x88J1dA\xB2q\xE9\xB6\xF4\xE7&\x93[ᗹUQ\xD5ʐ\xF6]\x96!\x9A,\xAEӖ.\xB4\x89\xCE\xC0\x9E\xAE\xA8-K\xC6\xFE;\x86\xF8\xAC\x8F
+6\xAC~ \xC6G\xBA\x86
+\xAC\x86\x9B\xDB at HM\xC6\xDA5w\xF0Kx*\xD4(\x8BǺŠ\x94Oc#7\xC2\xF1ɖg\xA2\xF2ڴ\x9D;\x96\xF7u\x86if.^N\x82{C\\xDAy\xB3ϥA^\xD6?O\xAAL2\x88\xFC\x96}\xBB\x9Fh}\xAC\xE8\x838\xA9i\xBFB2f.\x97C1%\xE9J\x9C\xB8.52\xC66\xF8nBe\xD4wb\xF9#\xE0\xF2\xA90\x8C\xDA
#\xCA\ЉY\x9E\x97N\xABJ\xE5\x82Y\x9E\x95\xF8kk0\xC9%Y\xAA\xAA\xD5-\x83\xE5\xC3*\xA0\xBC\x99d\xAA<\xBA\xED䝪\x88\x98\xB6T\xBF\xD5C\xCF\xEF\x9FÙ\x94\xF3\x8A\xE4\x85yc\x9C\xBE>U0\xB5\x93\xBD\x98\xAF\xE9\x8A,_*\xE2\xEF֨"vw\xC0\xC9_\xA3\'7ԣ\xE4{A\xF2\x97\xA6w2c	\xE7*\x9E4\xE4j,X\xB9`	$\xEB\xEC\xB2\xD9u\xD0\\xA6@\xAA\xB7\x91\x96\xB68\xB0\xA82n\x{DE81}ϩ\xB1:<\xB5\x9E!\xB6
MB\xDF
.T\xB3qx\xD7m\xCC:\x9D5\xE6~>\x85{gWT\xA68\x82/<\xC0ȟ\xA4\xB2Y\xB7QY,
Z\xCETl\x84\xCCt\xEC\xDB\x8A\xAF(\xFFُ\xD5^\x8A#\xEDJ$"ʔA\x87r\xC9\xD8
h\x84\xD6$cMw\x9C\x9Bo)\xB60\xD5[~4\xCB}\xF0#\xA9\xFE\x94_\xA6\xB9S\xBD\xDE\xA9.\xCA d\xBA\xE0\xFC:\xAC\xA46gw\x8C1fZ>\xB5\xA4\xFA\x9F\x86>ŸU\xB9\xF5\x84\xD5\xF7\xE6pVC+\xECXT\xD7vIu\x91\xE1<mL5\xA8g!Ɵ\xAD\x88\x81\xCF\xA9]\xD4'\xFB\xFFi\xA2\xD5 \xE4\xFAs(\xCB\xDA\xC24,\xFD_\xBD\xFChXK\xFE\xCEu}1p\xF7\x92\x8E@\xA5rf\xA2b\xC8\xD2\xC1D\xF6
̕C\x86\x87f
{\xE6\xF4\x8A\xB0\xB4\x91\xB5\xFB\xF7\xF3ڎ\xAEߑ\xBA\x8F\xABז\xC6\xB2\xD425
\x90z\xE1
\xBE\xFC=\x96e
\xB1d\x98\xB4\xE9\xB1)\xB5\xC8r;i\x9C\x8FiEl
R\xF7\xFF\xBA\x89\x86c\x83\xF0\xAC\xBC#V\xB2S \xB6\xCC\xF5D#\xDBTL\x9F
\x88v\xB3\x82\xB0\xFAT<\xC2/=ž*䙉\x980\xE3&\xFE|&\xC0\x94vy0#\xE5ʖ>Bw.\xC7!Z0F\xEF\xEE\xD2XC+{\xF8x\xE0\x90_
+\x9Aw\xAEF]\xC3\xD6ش\xF0\x9A-G\xF5\xE6
\x98W\xBF\xE0\xF1FF\x96\x86 
\x8A\xE8\xA2u\x99\x8A㌔\x8E\xD0R\xB6T\xF8gb/}D\x9B\x8C\xBBH2<\x80}G\x8Cn;P2\xB4i\xE1\x8CN
+a\xE5`G\xC4\xC6\xE5Vd\xFA0\xD7E
\xC6\xF7
+S\x8C\xFB\xD8M
\x83\x98\x95\x9C\x8Ce˯\xAF\xFD{<j{WDw'\xA6\xABI1T>@\xA3qW\xE1\x9FmBbC\xD8\xD0$\xC3\xF5\xA7\xD9U\xE0	\xAFO.`W\xA4\xA6\x8Es\xD31\x86Js\xF6\xF1NS\xE2\xA1뜔?\xD5P\xD7,\xFD\xC6^Ġ_\xA2ѰM%\xFC\xD4êВ6mj
+t\xAC\xA0Í\xFE=]WE[\xC2M^\xCE[?\xA9\xEBGQ0\xF1\xFA-\xB9\x89\xF7S\xB0\xE0\x87\xD1Ry\xE9\x8F`\xDAJ\xCA'u[\xB7\xEBT\xDD;9\x82\xEDgӼsU|N\x8A!\xEB\xF5{+̚\xE5	/J\x83\xB1L\xE9\xDC\xE5}\xFA\xB0\xEF\xC1_\xB3P\xBD\x993\x9A\xD1;N\xC0\xCD3O\xE0\x9D\x85:m\xAA\xE0⒚y\xC6\xDF\xD9\xD9BN\xF5\x9D\x95N\xDA\xDC\xDE\xD8 \xE6T\x86\x99\x9A\x9A at ff\x81\xEEue\x98\xF9U\xE3d\xE82\xA0
+:\x93\xB6\xAEƼm[[\xFC\xBA\xEE\xB6\xDFL\x85\xE7;\xEE\x{B3EC58}ǛGT\x80\xECz\xB8X\xFE\xD6f\xA1\xEF\xE0Z\xF8ĝ\xF1\x95\xE2\xF0|\xA7
,\x83aَ'ض\xF3>\x82\x94RB\x9F\xA0\xFF\xA2\xE2\xCFdA凕\xFB\xE4\xEB\xD1j\xFCu\xFC
U\xB8r(&\xA6\x90\xD3\xEE]\x92\xA9aO\xD0w\xEAm\xB1\xCD?\xB1)\x86FX\xB6\xE0\x9A\xCC\x85A\x8F\xE8\xAA\xE2\xC4*\x8C	:\xE9\xC0\x86\xED\xA4jo,\xD5E\xE6y\xDC\xC4ڤ\x9Aa\xDB\xC6dQ\xBC\x82	\xBF<-\xD0\xCE\xEAݺ\xA9
(\x97
\x87\xA1c/a\xE9\xD5LԢ\x9F3G\xD5\xE8\xE5\xA7\x98_J\x81\xC1	b\xFDbm<;\xD83'	I\x83\xE1h\xBCr\x84\\x9D%oųt$\x92\x8B\xB1!k\xE4\xB3D\x85*\xE6\xFAc\xCC#\x85\xB2\xF4\xE8h\x87\xFA5\xEDP^\xA6\xB6\xBEI\xCAS[/\xB6\xF72\x8DStuĜ\x81\xB0\xA3\x84uU\x94\xAF"GuR\xF6\xAE\x8B\xC0\xF1\xD6ȧ\xE2\x94\xCAR\xF7\42e\xE1A}4(\xAC&	\xE9\x89\xF8\xE3V\xC6\xD4rA\x83\xA70\xEA\B\xF83
I0\xB71S\2P\xB3my\xCC1\x95&\xC4ԭC\xECԝ6tDm\x8C\xA7\xAE\xE3\x94T\x92\x8B&\x98\x9B\xB21\x82A8\x90\x97\xBDfTE\xBEoӮT3\xC0\xB6\xEDq61\x87[b\xC60\xB8\xD2\xD8L\xA9\xA0J\x98\x89\xBDQ\xA4\xF4\x8E\x9DqG\xB4\xB02+@\x8A\x85\x8D��\xF6\x9F&\xAB\xEB\x9E[Δ6k\xB4\xA0\xA4\xFC\xFE0\xA4\x80/aWf\xC1\xC8?\xE4\x95\xDC-E\xBE\xC7|%\xC0΄$cBIiw\xACbOJ\xDFc\xB2\xBE\xCC\xEA\xE7\x86ڤLXYÛ\x8Cx'\xA9\xBB\xA8\xE4X\xD9V̟KG\xA2D+\xAFp>
+\x97\xFB8\xA3~S\x9A<\xF3\xC7#\xBDl\x99%\x9A{"빀\xA1}\xCB\xC3֝\xE5\x83
\xCD+ \x9A\x9DX\xF6\x90\x95/\x94u\xBB=L\xC6=zkh\x95)SHOI\xA7\xEE8\xCA\xD2\xEB2T\xDD\xED\xE9\xF4о\x81\x8D\xF8\xB3\xF0\xE3i\xFAa!\x8C6
\x89E\xCB
У\xAE1v\xA9$\xF1\xDB\x8AMW\xD30\xD4+\xA0IE\x95
d8G?o;ɄTL\x9A{\x85&>y\xE0\x93N?\xB9>\xEAᅤI\xC7\xD3!\x96G*\xA0\xACw4[G)\xB3\xFAn\xDA\xF0\xA7\xA9[\xF6a\xBE\x950o\xD3@\x8E\x9FU\xB0\xFA\xFEv\xBBB\xD3a\xF5=\x96U\x81W#\xB4x\xCE\xF28{\xFF"+\xD1\xCE?\x9F`\xB4wtjk\x87M\xFB\xA4\x80\xF1\xB7\xE2\xD3_\x9F\x8A\xEFY
PR\x9B\xA3\xCCT"\x82\xCADA\xE5穃\x95\xAA\xDCǐ59\x9A\xE5^bV\xC0\x99\xE2Y\xF5e]\xB4\xA4\xFF\xD7T\x8AOF
+\x9CAR,\xFA͸\x87G4
B\x92!\x93d\xC8ehWՐ֧*\x8B{
~\xDB
R\x8ES$\xEC\xC7C76G\x83re`iiW\xD5\xA9\x9E`\xD5U\xC9r~\xEE\xB6\xD4\xC0\xEAo\x8F\xCC\xE0\xC6,\xB1\xA3\xC56\xC2\xF0F"\xB5\xBBeD\xA6\xF1ˍ\x95\xDFq\xDEn\xB8rXL\xF9\x9F\xA2O\xE3R\x9Eu	\xE6ju\xEA\xD9R\xF7&x\x9B\xA9\x88RW\x8B\xB6WH\xCD\xCA7VMF-FI\xB1i\x88\x8C\xB0kw"\xD222``L|\xA2\xB2\xBC(\xED\xA7\xFE\xDE1\xB5\ѻ\xB3L\x9B\x98\xE1\xF8\x8F\xC1"cqƯ\x80ȨT\xC4\xA5au\xE8s\xA4>\x93Ұu\xDB

ޝ7\xA6$R>\xB3\xAD0+\xA8\xAD3mJ\xFA\xE8h)\xA3yCЇT
\xD3c\xF7
+\xA4\xF0ݔ\xE0j5
Ѹ\x96!\xFC\xF6G \xB8|9
\xEFJ\xDDl\x8Fq\xF0V\xD5d\xA8\xE5\x92@\xF8\xEA_(\xA9\xB2\xA4\xFB\x88ߎl$\x90\x8EӵoM,hg\x8E#  \xCDu*\x98\x89r\x89\x9B\x80\xF4	\xBBl\xE9{#:\xA8jFvj:
>OG\xD4\xDFa8D2?\xD23\xB1%35\xBBo\xB5\xDF\x98H\xF9\x96\x9E"\xA5QF|I\x990$+\xAE~20Q[\xEC\xB2\xFE4\x8Dd\x88\xC4\xC5 \xBA\xA7\xC1\x83\x96bY(\xCF\xF3\x87\xD7_\xA1
+`B\xFDe\x8DoU۲SUeFnNy\x90\x93.\xA6\x80Sz\x98\x98\x94h\x9D\xBA\x8E\xE8\xE3m<ec\xFBR\xE4\x8E\xC5ⷥU\xD1\xE2\xDD2(<\T\xB4\xD4hd\xA6\xD2>\xB5\x8Bt\xA5\x91#*\x92\x80Nb\xE5AU \xD4]\xD6*?JR\xAC\xE4\xAA\xFANU\\xA4lR\xF6_\xF5O%s\xAB\x90\xF86\xFF\xA9\xA0\xF2&\x83\x80X\x85T&5\xCB}~NZ.T\xB1\xE6\x90>o\xD9ͦ^\xE2\xA9.\xB2\xAA L#rTҮ1j\x92\xCA,Y\xBF5\xFAnub\xA3@W5]?\xDC\xFA\xDA#8J\x94\x99\xF9\xD3X?\x8Dh\xF9-G\xE0\xADF@\xFA\xBC\xD5O\xE2\xC3\x9F\xE0L\x9C\x80m\xDC1\xC4MR\x8C
\xED0\xAF7\xFDrg&\xE0\xA7s\xB9\x9F][g3\xB1\xFBө\xBA3\x9A\x93\xB5*T!Z\xBF4%;G\x8F2T\xB4\xC8\xC4\xF7ǣ\xF1\xFD\xE9

+I\xC3\xF3;qԝ)\xA0a\xAB\xB24Oj\x9D\x9D-\xA5le\xCA %\xA5E\x93\x97\xFA\xFE\xF9\xDDh&
+h\xF6^%\xD4\xCFN\xC0/\xA4\x841:q\x85)\xAE\xA6\xB0\x8EO\xC4\xE6#\xD1\xD8z:\x97\x9EJ\x9AH6}\xB8\xA2\x93\xF2
L\xCCJ\x8Cök\xA90*\xE3\x8C̓\x9Cr\x96\x94\xB1\xB22C\xE7\xBAj%Xd/\x9E\xF6\xFD\xFEX\xB4\xA0\xF8\xB8|\xCAI\xF8H\xD4%:4s \xE9\xD8\xF4\xF3
\xA4q\x83L\xE91\x96\
\xDAwLA\xABJXf\xE8ZON\xE3\x90n\x88wY\xD0\xFDs\xCC<
\x83\xE2\xD4I\xEA\xA4\xC0O\x9F0+\x84>\xBD\Ѵ\xAA\xF6\x93\xBA\xD8\xDFh\xC2\xF5>\xE1Z\xAE\xAC1N\x9C\x88!\xCCc\xB0#0\x81:\xAD\xB5\x88\xBEX\xEBh\x864dX\xF6\xB9;ꨗ報\x88\x{DF6C}\x91uG!\xE6\x8Fwkg\xB1Kڴ\x82=\xBCh<_ĥ<\xD2b\xA5\xF9\xC8,\xBB":\x9A\xE2\xF9\xCD\xE7b\x9Eo?\xAF at 8)⧮0)\xE0\xD3E\xF5\xA4{G\xEA\xCET+v\xB4\xDCJ~\xCA\xC2ɠD\xEA\xE2\xB4A\xAF\x9A޽[\xB0\xCE\xE64
9\x9F[\xF3\x87\xE3.\xC2T\xBDU6i8d\xA3z\xCCm\xB2ʓ\xEE\xC3,heH\xE3\x99N\xDD\xFDycXh#\xB8\xBB\xB2l\x80>\xCDِ\x914\xF8\xDD\xC9\xD5\xEC\x9D]$U\xABc['\xE9\xC7\xF1rbN
wkg\xCD\xA0ik\xE9\xDDy\xFF\xDC\xA8]
ȨZ\xAE\x8A-SP\xF9I'\xA0\xC8\xF0
\x95K\xB9\xC6vdu\xAD蔨U\xFF\xA3\x93$L\x9B\x83\x90\x9E\x8CKQٰ\xA9\xEE(Od\xE6\xE8X\x8B\xD5K\x8E\xE6\xF4\xDE\xA1Z\xD80\x9Ej>\xE6U
\xD1_\xD5VXYJ\xBFA\xFAڣ\x8C\xE7xF\xF5\xB7vKWt\xAFj\x85/?\xA9 b\xCB\xEA\x82\xF8i\xA7\x81?\x97n\xBC<\xAD\xB8᝜\x83=s\x92\x90jG\xE3\xD5#@Jäy7\xB1brUL\xF8\xDC\xE3I\xE7\xA1!`4\xE1\xE49&\xAC\xBC/uu\xA8b\x8DU\x9Ac\xEB
+/\xB8\x98 \x8D&\xA4Lݦ\xB6\x89I\x8A\xF3\x96\xF60S\xF6ɱ\xB0Oe6\xAB,\x86̦\xEE
\x9F\xE9\xF70~]6\x8D\xAD\x88\x9F\xBFe
 \x86\xC6)\xBD\xBB\xE1)N\xD1̻!d\\xB7\xBE1Nm\xBB\x8EM\xAA6<\xE7?\x9Ed\xDC\xE5\xAFn\xB6\xF6\x97\xBA=Y\xF8\xDE\xC3Ξ1\xBC.\xBA
+g.@\xD4\xF50t\xDB uqI.\xF9\xCF[6݆\xF9\xD0\xCA\xD1\xDC
\xFFС\xA6\x88\xC0{8r]\xEAR\xBB)cb\xD1g\xC5}|3\xDA\xB3f{a\x96\xFA)\x84	d%9s4
+c\xB9c\xC9\xFE84\xA1\xA4\xC46\xEE]\xEF_\xBC-\xFAd\x93O\xB4\x89\xF4[\xEAj\xAE\x87\xAF\x9Dh|df*\x96\xD1\xD8C\xD6m\xF6\xDB\xC98\xB4x߉ \
+T\x90Rj@݂\xEE89#KOX\xE1\xB3ve\xF1\xCD\xE44\xEC9\xAA@͎\xF6H\xA1\xD9\xDC2!
+\x9FВC?N\xF0\xC0\xEFߪ\x95\xC6\xEAB\xBFN\xCB\xEC0\xCBK.\xDD\xF6\xBF\x8F)\xE6Y\xF8\xB2\x8F\xB6\xACR\xFB\xA5.F6h\xFEr\x98\x98?\x9B\xC7U\x84\xEF:'\xD1"\xF744\xE3\xF7\xD00\x95\xCDI;-\xEA\xFC\xF9j\xE5-\x94\xFB\xAC:f/h\x84٪\xE8X>N\xF1\x8B\xC4\xCCCf\x98\xD7\xCD
\x81^\xEE\xE2\x9Bӻ\xAFc\xF2\xE9D\x9C|\x98\x89\xAE
\xAA\xE1b#*3\xC2\xC5wj\xFEǩ\xFBr\xB7ku\xF8_C\xF4\xA6H\x8C\x8D2hW0Ne\xD3O\x8C\x8A\xBF:nfY┋\x80+\xD5#\xD6
\xAC&6\xE1i\xF9\xBAp\xFA\x89\xCB\xC2\xC1s
+\xB4\xECf\x87\x8D\xAB\xEA\xE1,\xCDҍ\xAB\xEA\xA2\xF6FW	\xC7V\xBDj\xA0\xF79\xE5\xB8@R\xEE\xD2Є\\xCC\xCB֮\x80S-\xAAŠZ\xE3{
`\xE1M\x96,\x8F-(\x8F\xAB\xE1R\x81\xCA
+\xF56

+\xDF\x92\xF6ɔ\x9C\xAC\\xFD\x92\xA2Q\xE2\xCF3\xF1h at e\xF9\x95sVN\xF5\x96\x9FsO\xB0\xA7\xA5-\xFAQ\xD99\xED\xA5Ĺ@\xAA\x9B\xADuZ<\xD5	\xD15\xA3X\xFDN\xFF5W݁\xDB\x9E\xD45"\xFE\xF4\xA3\x88\xC7\xE7k\xC35z\x94\xA8\xD1\xD5c\xCC\xF2`C\xFF\xB4\xF20>!(G\x93\xB3\xA6S[1\x8D\xEA>B\xE2C+>\xE8[&J&$\xE1\x8B#\xF1݈r\x987\xD9'GQ\xBE\x94EC\xD6{\xBD\xFC(4a՟6\xFE\xA64 p\xFF	M,\xBB\x93 NFaW\xF6\xCCIB@&\xB0\xEE =$#R\xBD\xD2uen\xDA3Y\xB1\x83\xB9\xAB\xEF5\xAF\xCCd\xC1\x9E\xD5W\xA6\x9C\xB2gven\xEAC\xED^#,,l3\xB9J
\xC0\xB6\x90\xE6\x85\xFA\xFB/<0\xABCM;C\x9A<\x91\x8A\xE0\xE7\xBA\xFF\xB2Y\xEB\xEFN\xBA݃繟\xE7q\x93bX%Z\xE7p|\xB0\xC6:\x87\xE2\xCBBF&\xC2\xF3\xF2rw0A>w
|\x8B\x8A\x81\x81\xDC\xC9
+\x99\x94\xA4D\xC3VDb˸\xD4wafKZ7\xECiz\xA1a\xCB\xD2\xC2\xD1l|P\2MPy\xAE\xD14\x8B\xB2g&\x94N\xBAw\xB3\xA4nU\xAD4\xEB\x89\xE1M|4\xBB\xB6
+i!rWe&
R:ؽ
\xF5\xEDƐ\xC1̙\x86\xAA-\xED}<i&\xB9\xBE\xFA\xEC2\xF6j,\xDB\xE1B\xFC\xD8,Sͼ\xD1/+\xCA5+\xCA\xC9\xE6*\xC3\xF3\xB8\xB4|\xB2V\xA2œ\xB3\xD3E\xEB\x9F\xEE\xF0\xBA]\xD9"\xEAd\xD4N\x93Tf\xF2\xE7\x937\xAB\x80<c\xE9g\x8BߎT\xF5Y\xEA\x8E\xF6\xADvյ\xB72ˇ
+\xB4T\x80\x9C\xCA\xCE-\xEC\xD8;;U\xF9\xD2nؘ\xBAW\xDF\xF3?\xBB\x8A\xC34\xE9ǚ\xACn\xEA\xBAT\xA3i%l\xE2H?n\xD70\xE5\\x96\xEE\xF2M\xE5\xBEz#<\x8BJ\xCFכ\xA0\x8F\xFA\x9E\xE5myYV\x9E\xB2\xA7\xAF\xFC\xB0\xBD\xE5I4l\xA2\x80\xBAm\xEC舳*\xC1\xFFpv\x9C{\x8E1y\xDB
u\xBC\x85]Y\x99\xB4%\xC5+O\xFD\xD6\xA4]f\xD5\xF1^\xDE}\x9F\x9CJ\xCE\xF1Y\xF4\xBA0\xEB"\xB3r22\xAFBJ\xF3R\xC2ş\xAB\xDCa>y\xF9\xA0q='\xCC\xE3ۻ\xD1reTN\xBC\xFC\xA6\xF4"\xC0\xD69
Ծ\xB6
\x8Fһ\xCE!\xDB[\xD9\xC2\xC2VVV\xE2\xD5\xDC\xDC
r\xB9
&&&02\xA2\xC1\xA4*eeea\xFD\xFA\xF5\xF0\xF1\xF1)X


\xA3\xC8#\xB3v\xB0J\xC5
+*3y\xA8\xF6\xACvgW\xE6\xAEye\xF7\x9A\xFB@\xAB\x9Fٽ\xAE\x83\x9CE\xF7\x9C+\xE9z?\xECL	\xE3T\xCC\xC4?O\x83?\xF5<HB&)\x92\x8F\xA1#jbDu3\xEA"2\xC4u\xB2\xA0\xE5] \x9B))\xBA?\xEA:\xDD5\xF8\xBF\x8E\x97\xAC\xCB\xE6\xC1K\xF48f\xD32.\x97j(y:xk:E\xD2\xDAR\x91\x9A\xEA{M\xD9\xE9><Q\xFD\xA2\xE0\xAB.
\x98\xB2\xF4PLT\x9C\xD8=\xF5\xC3-\x9AG\x8BDS\xAF7\xB3j\xB0\xCAp\xC3\xEFn
Őy{\xAAo\xF6./e\xE3\xD6C\xFD\x9E\xF7#s?Jy\xC3\xFC\x94H\xB2'J\x93\xDC\xF3z\xD4\xC4G\xE3Ma\xF2\xB2\xF4\xDF\xD6\xC5O\x83\xBF͏ ˇ[t\xE8"1\x8Ft\xBC0\xA1\xEEf\xF6\xCFkM\xCA}\xC63\xFA\xC9\xD2\xF0\xA3
k\xC8f-S_\xA7\xEE\xF2My|'2\xF7\x87Q#\xB8\xCE[\x96\xB7\xE1Zo\x{1157E7}\xD4.F\x99\x89i8~-\xE5\xAAۣ\xF1\xDDxRu\xB7=\x85\xF1ae\xF2i\x9E\xD4e\xD6\xD8\xD1
\xFBfT\x84\x83}t3\x93\xB0\xED|\xDE
\xB5\xBFX\xE5\xBC\xEA=\xB0&)\xE6\xA64\xE6\x91Y\xC9!\xAEC\xBAJc8��\xCC \xCDY\xE3\xC9m\xEF\xEA\xAF\xC79\xF0\x9BR\x81 [\xF8\xBA\x8C\xBD\\xAFbX*\xF9\x89\xE0\xCA\xE1K\x80V\xDCA\xB6\xEDEhsd)R\xA9\xFBcT\xDC2\xBC\xFC\xA9+nԔ@ԠY\xB9e\xC8B\xFA8"	!\xD4}͉#\xF0\xAAع%\xFF\xD0V{\xD14\xEB\\x9B\xEE\x84\xA3\xF7\xCD\xD12\xAF\xFD\xEEMyғ0\xE3\xBB\xD0\xD7&n2yu:\xAA\x90E\xFF\xD2\xED\x94"YK\xF5	\xB7e#-\xD3C\xBD
\xB6\xB40\xB7"\xAD\xF0\xB6\x94\xF1\xD5?\xBC\xBE\xB4ꓛ\xBB\xBF~\x9F/x\xC8\xD4\xEB\x97迏\xB1T)\x87\xAC+\xA8tK\x87d&P:\xF4\x86\xA7Be\x9D\xA8\xF7\x86\x8B\xC9\xC5{\xAD\x94\x9E\xF6\xE4\xB5\xC2\xF6
+"\x93\xDA\xF1ί\xA4>\xE6~x[\xFA
+\xB2\xE6-e\xA11\xE1\xFE\xADA\xA0T)\x87\xADZ\xB5zk2\x8E'\x94#\xC0(>|}}\xC1ۓ\xE2×s\xE6\x94$N\x9C8Q\x92\xC4}%\xB2\xB2\xC9 \x9C8
\x8E G\x80#\xC0\xE0p8"\9\xE4\x81##qo\x87    IDAT\xC0\xE0p8
\x8E G \xAE
\xE6 at Q|7IϞ\xE0m\xFD\xF4\xE4Y\xEE\x92/[b\xD8	,\x9A\xBB\xA7\xBC\xE0Tӌpl\<[\x8E\xDF\x99hu\x87)\x9E\xBAcz\xF5\xAEB
+Nl]M\x83Ϗ\xE6\xEC\xF2\xEA#\xE1
\xDF6\xB2\x93\x9F\xE3\xEEݻtD\xD0擹$\xA4\xA9\xDC<ף\xC8}\x93\xFF.#\xEA*\xF6\xEF8\x80\xEB\xB4;\x91.J\x89\xBC\x8A\xDD\xDBw\xEB}\xAF\xA60^\x9A~\xFF\xED\xFD\xE3+DZ{\xCFQD\xD1\xFA\x8D\x9C8%
+\x81ݻw\x974\x91\x8B]^\xAE
#\xC4\xD9q\xB70\xB07\xAC\x9C]\xE1\xE1\xE1
+WZT\xAFf\xF7i\xB8\xAC\xB5\x88rQEH{\xE8\x87Y\xF3g\xE2\xF4\xBDS\xB3\x93\xEFc\xFD\xFC%\xF8\xE6xHQ\xA3*\xD4_q\xF0d\x91\x9E^\xD2S\3jm at ak\xFF*b
2pr��\xEA4h+iN
\x81W\x82@½\xA3X\xBBv-
\xCB\xF1\x97\xB8=\xA6\xC4\xF6\xF6_\xDFJ\xEE\x8E \xB9\x90\xF2\x96}\xA7ϟĭ\xDD\xCAaƳ;\xF0\xF0\xC3MZ\xFE\xA90*\x8CWa\xE1_\xE4\xFDӛ'\xE1w\xF64\x96i}\x91\xE0\xDC/G\xE0?C\x80\x8D/\xF6\xF3\xF3\xBBr\xCAE\x80+\x87\xB9X\xBCڻ\xECpLl\xD2s\xB7]@\xAF\xB9;\xFA({\xC3\xEDC_ë\xFA \x84\x8A\xFB\xF9*\xFD\xE4	bhK\xB7\xF4\xE8P\x9C9s
w\x9F\xA9ld\xDD\xFA\xBA\xBB#dV-qQ\xF5Eql\xFC1\x82\x83B0\xAA)\xAD\x96MG\xC9HE2-|
\x83\xC0\xB3\xB8\xF5@\xDAZ+\xE9I.#J\xDC*\x8E\x96f\xB6\xF5\xC6o\x97.cߧ-\xC5pɊgxB\xF1>{\xF6ϢɢI\xF7��\xE3\xBF\xEAQi[
 ͢\xD6\xE6\xC939\x82(\xEEb\x9A\xC4\xC8^\xF2\x94&mš74ar\xE7\x8A\xC4_-\xAF:-\xA9\xF23K-\xC3E$
a\x98\xBBi\x98Z\x99\x8AkJ
\xF9\x99#\xF0\xE2\xA4D\xDD\xC4ɋab@-\x86\xAB\xA6+~7\xA5[\xE19\xCE\xFAK\xAB\x98\x81my\xA7LV &&.NJ\x98D;\xE9\xC4(\xA4>55\xA7[Vb\xFC\xF8\xF1\xD8G˺0\xB2\xA9\xD6\xD3'Oǻ5\xA4m\xBE$^,,-\xF0~\xF76\xEE\x90Ւ\xAD\x96\xCBH\x9BsK\x8Dy\x84۷o\xE3\xFES\xDD?\x98lk\xB9\x98\x98ħ宭(\xB9\xE9\xF6\xCFx224\xA6
+)e\xB46\xA1\xF4X\xE8Y\x9F
\x8A\xA7%\xF9\xEE=\x88\x80"Y\x92AH
+\xC7\xF1A\xB4\xA8='\x8E\xC0\xABE **
+۷oGPP\x90xeϜ$\xB8rXL%\xE1\xC1\xE1\xCDX\x92\x97\xF7\x96cۗ\xA0\x8A\xAB;\xFA~\xF1\xF6Oo
+\xC4\xEE\xC0\xA2\xADAȎ\xF5C\x87J\xEE\xA8ڲ+<\xCBפّMQ\xD5Y\x8E\xAF\xC4\xE2\xD9\xF9\xF5\x98v\x88\xACgIg\xF1\xAD\xC1\xF7
Y\xD2b.~\xCF:հ\xD9?\x9641\x96\xB4\xAC\x81re\xEA\xA0e\xCD
+hԲ	jy\xD8\xE3\xD39a\xE5\xEA\x89&M\xBCP\xB1\xF14<&KE\xB6\xE2
+z6j\x88>\xEBψ\xE1\xE65\xA9WWW8;;\xC3م,\x9At\xFF\xB5/U\x8A\xF4\xDB\xDB\xDAVTي\xEFM\xFAN\xC3
+\x85 !\xE9
f\xCF> "5\xBD\x895\xAF>\x97\x97'\xBD\x89	\xFC	\xF5\xACˡ.)\xC4M\x9Aԁ\x93}e\xFC -{\xEB\xBF~8l\xBBV\xA3\xAE\xA9	d\xA6\x95\xB0\xE4\xF7\xDB/\x84<ê\xBF\xA73j4\x94\xF8ۖ\x89\x9B\xA44\xDF\xD96Z\x94\xFF\x93_\xAEK\xFCH)[\xB5*\x86l\xB9&\xE2\xAB+\xCCE\xCC=st \x90J\xBC}\xEB\xE7\xE1\xF3\xC5\xE1\xFF \xBF\xDA{\xC3_\xAC{\x99\x97qCk\x92\xEB\xA4\xF0͟\xBFwh\x9Fl\xC9\xF4Ӹ \xF3\x97
@\x82\x96UQH\xBD\x89}\xA7
\x88\xB1\xFBn\xF8
\xAB\xBB\x89\xF8\x90#X\xB6r\xFE\xBE\x9D \xBAK\xBCf`\xF1\xA2/\xF0\xF5\xDA
+\xF8\x96\xAC\x96\xD3V
ԩH\xFD\xB1\x9F\xCD_\x86
+6`\xF5\xA2\xD8\xF0w\xFE\x9E\x84\x94ǧI\xB6\xF9\x98\xB7\xFE\x9F
%\xF3\xD8w\xB3\xB0`\xCD\xDFHW\x86c×De\x95)\xAC\xB3\xBF\xFE	X\xB4HH
+Ɗi\xB0\xE6OIAN\xFDS\xC6O\xC5\xDFw\xA4K}r<\xF2ۊ\xA9sa
ɷf\xE5r,\xDCyUř\xF6\xA2\xFE}3>?\xFB}o\xE5\xE9\xB2׊\x9A?r^\x81;w\xEE $D\xAA\xECʞ9Ip尘JB\xE8\x85 \x91\xF3\xF0\x91\xFDi\xEB\xB5\jѵ\xAB\xF8\xFD8\x96~\xB4M\xE0ld \xC5\xCD`L?|gw~!\xBE\xFB\xE2\xCBm0\xF7l\x83\xBEִu\x87\xDC\xCBw\x9F\xC2\xFB\x9EV\xE4\x9F\xFEΉH\xBFɦ,\x{DF90}
\x86J\x9F\xEEʼn-cE\xB7oWb\x97\xBF?\xF7\xA9\xE5\xC3 < \xE5\x8E\xED\xC4`a \x83\x93ܔ\xFE\xEEm\xB1\xF02\xEDm\x9A\x91\x81\xF0S\xCB$F֝\xF1n]g\xD0\xB0h0\x84\xFC\xE8X\x9C\xFFy
+\xF6}\x8D\xF5ށ̢&z\xF6\xAA$\xFA
\xB8df\x{12B457}gv(&\xB7\xFF\x82\x8C\xBD\xF1WXR#\x8E\xA0\xBD\xD1\x8C\xEC:Y\xB4\x90f$\xC4"\xFE\xD2v\x8C\xB5.\x9E\x81:x\x8493\xB7#6\xFFwE\x92'\xDFY\x89_&\xF6ž\x87\xCE\xD8
\x9C\x86\xE4\xEBߑ6\xFA\x96\xEF
+B\x83'\xA0\xA9\xB9	~ݼW\xE4\xA7؋\xADi.\xF8\xE2\xC3Fz\xC3\xE4c\xCF
8ED 5\xE6
~ۼ\x9F-\xF8~\xF1e0t\xF2<\xCC\xE8[+'\xB4 sA\xF3w\xAA@\x96
\x86\xEB\xE2\x86e\xA0^\x99X\xBF\x98G#cc\xAA\x879V6s\xD5mɪ\x98Ènd\xA6\xEEhP\x89\xEA,Q\xA5\xBD\xE0\xD3\xC2-\xC7\xC8X022\xB6\xAF\xF1\xA6M0y\xDAXԵ\x97!3\xFCNi\xED\xF0\x91\xFE\xF0$6\xD3\xDE\xCC\xE6U\xDEê5\xCBѡ\xA2n\xFD\xF5
\xB1M\x9A5\xC8£\xD0֊\x99\xE1gG?\x86\xA4\xA0\xFA\xDE˂w\x8F\x960\xA1\xF6\xC1\xA3i?̜\xBFc{\xD4C\xFC\xC3+8|\xE1\xA1Fh\xF5m&\xA4\xC7%\xA8,\xCAگ8\x89\x99J蕃\xB61	\xA2\xDE
+F\xDD\xC6.\xA2n\xF8\x95\x98\xF5Am\xF1Yf\xE6\x899+\xE6cp\xA7\xEA8\xBD\xEF;L\x9D0\x97\xF6\xB3\xE5J\xA2\x88?\xFDڴi\x83\x93'O\xE6
왓\x84\x80\xA2x\xA0m\x86\xF3\x90\xDC\xD2&\xCFs
+mm\xD8f\xC6۾\x9AӞ\x8C\xED-\xE4H\x89N@\xBAmU\xD4kHʠ\xB1+Zwk\x85\xB2\xB6*\x8D0Oh\xDA?\xD4{\xBE\x99\xD8
\xEFxV\xDFt\x9D\xF5\xFA\x93\xF5\xAEMS\xE9Y3\xFATն\x8A&\xE6\xB60!K\xDC\xF0n\xB3E\xE5s멽h\xE1d@߫\xE8\xDC\xC0۾\x9E\x87o~\xBF$\xF2\xBBs?JT(\xBD\xEA{\x8Aύ\xDBvG\x8Drv9R0\x9Eيhܥ\xC6\xDDλڸ\xD3\xDE®-Ѷ1)\xB6-\xF6\xEE\x92e\x85\x94\xDC=\x81\xA7\xF1\xF9\xE4\x99\xE8\xDF\xD4\xF2źtɺ\xF28\x82\xFA\x8DI
ؠ	:\xF9L\xE3\xBFq/
+\xF6\xCD1\xACwe$,đ\x90X
޲\xCE\xEFNG+\xA7\xBDar\x84\xE77
\x81@\xC0o\xCB|\xB2\xBC\xAD\xC1\x89\xA0\xE7\xE83yV\xCD/\xF7ܺ\xA0fU\xA3Y#\xB0Z\xEE\xFF\xD7>\xFC~N\x81\xED\xBCa'n7\xAF\xF6Q\xC4+)\x90\x95+:\x88\x9E\xDD\xEB\xBE7G\xDA6$\xD10\x99
\x86|\xDA\xEE\xAA\xA3Y\xBDr\xA2\x8F\x94\xB4\xBCcӒ$\xAB]\xCA\xDD?0\xE7K\x9A\xD4\xF602!\xF9vУ\x9F\xC7\xD6m\xAB\x8F$\x9C\xB9\xF2Q\x81g\xA0\x90\x95G\xABN\x90\x99\xB9\xA1ae\x9C\xFCm'\x8E\\x89\xE3y\xA5\xC8'QAz\xE5H7D\xCF\xCAb\xD0C\xDF\xCE$\xAB\xE4V<\xD1ܭ\xC8\xC8\x8D\xBB\xC1\xDA5K\xF0~\xAD4
۵NT/Di\x8C')(b\xFE\x8E#\xC0x!\x8A:D䅘r\xCF@\xC5L\x99:\x86cǮbn\x97
+9\x90\x9C=xP\xBC\xB7\xB4\xCEU\xF6\xCC\xE5\xB9\xF7쥌\xF6Ye$K\xEF\xF4\x9F\x99dMT\xAA\xC2\xB4\xAF1\xA3;\xA4\x97\xD2C\xF1i\xAB
8\x9E\x9C\x8E\xAF\x8E\x9Fà\xD2G'\xE8\x97\xA8;\xF4Gt\x9A\xF05&rǵC\xE7\xC8\xEAI\x83\xA4\x88\xD4\xFCh\x87X\xBDl\xD5r\xEB\xF4 at J\xAE\x9B\xF1"E\xAF($7\x91,"j\xBFj,o\xFF\xEF\x965 K)\xC6.\xD5\xE8l\x8C\x9E#>Ę\xAD\xB31\xF4 \xA4\xD1\xF8\xAEO\x8F\xF4\xAD2\xFAè\xB9\xF2+G\xA0\xE84\xF0)\xE4ea\xE7_\x97\xB0w\xD5Z(\xFA\xF7C\xE7fU\xA1Y{Y\xFD0/[
+\xCA\xEC\xC1\xA9\xE0+\x88#K\xE2\x87
+\xDDp\xE9\x88V<\xB4uc\xA6\xD8\xFA*I:HC\xB5<\xD1\xF8D\xB2\xF0\x8B$\xA8G\xE6\xF3":H\xAD U/\x95\xAE$^Վ\xE4CȔ\xBA\xBE
+\xCB6\xC3\xE0\x8D \xA4\x91G\x99)\xDCL\xA5\xFA\xAD\xC9\xD5û%l\x86\xE0\xEE_?b\xE2\xE0\xE8=\xE5i\xB0\xE4\xFDc\xDF`5\xB9;\xD5i\x83w\x9B:!*\xE2\xD5>\xFDd\xC264&J\x89\x93\xBA\xC0\xD9}Ar\x98w\xFE\xE6V\xF1\xC7\xEF\xFE\x83\xAB\xF7\xAF`Òg\xF8l\xC541nVw\x87\xF6\xED\xC1\x89\xA90%kl\xFF\xBAëLA\xB0P\x9C8
\x81\x97A\x80[_\xB5"\x84\xF1\xEC7\x83m\xCCqveL\xF8\xFE("i\xE2\xC7\xD9_f\xA0\xFB\xFCc\x80\xADf\x8C\xA2\xB1\x87*:\xF9\xD3
\xBD\x86\xC3\xEB7\x88
+[\x83v-aO\x83\xBB
\x9D\xA8\xDBX\xF9W\xCF:aDͫ\xD0+M\xD0\xD84\xAA6\xD2xH\xFB\xB6\xB3\xD0\xC26\xBE\xC7\xCF\xE0Mf\x89\xBAG\xE3-\xC8\xC27x\x88\xAC#D\x8Afr\xEAs\xEAN\x8A\x98\xA3\xA3\xC8\xFAf\xE0e<S\xE4U
+\xEC*ѸG3\xC4\xFA\xFD\x88\x8D\xC7\xEF\xE0a\xC0n\xEC\xF6O\x82qEoT\xB5\xCD\xFF\xF1)TF\xF2p\xF1\xE4\x9F8\xE6\x8E?\x8E\x9E\xA2i'/1ة\xD3A0u)k!\xF7
ʼnn\xCE-\xFB\x8BX\xFB
F\xB8\xCDPi\xEB"Z;[\xA6(2p?
Md\xA6h\xD4yV\xAC\x9C\x8F;\xB8\xE4X\xAF\x8E݈\xCE\xF5FZY\xB6\x91S\xD72#\xE3\x8Ad\xF1#%I\xB3\xF76S|H
\xA3\xE3\x87%\xCBp\x9Fzdz~\xD3\xCDm\xA4\x9F\xA4'\xF7Br&h\xE4F\xC6\xEEH5\xE2\xF0\xE7\xC1 D=\xBC\x88#\x9F\x90\x9B%\xAAjY4m<j\x88\xD6\xCC̨{x\xA40\x84\xA3\x9D\xA8MRh
+\xA6b,\xB3\xAA\x85V\x95Mi\x82Y
XUoת\x9E\xF8&.\x8A\xA5\xD3\xCD\xDB6\x859-\xCF\xC3\xD4M\xA52!gl\xA2*8͍\x91\xBA\x93\x9Fݽ \xBF\xD3{\xB1d\xB7z\xEC M\xA8\xD1#G|f.\xFE\xFD7
U\xC7\xE0\x91\x83PQl6\x94\xE7\xC5Ф\x9E?7\xCDÔ\xB9kp걽ؕ\xBF싏\xC8j\xEB\x94%\xBF\xE1\xBC\xA7N\x9DB۶ms\xF6\xCCIB\x80+\x87\xC5U\xAAbK\xD89|ѻ1֎\xEA\x84r4\xF1\xA3\xE5\xD0%\xA8\xD1m*\xFCo\xEEB}Ii2\xA7\x89\x99\xB7ЩN%t\x9D\xF2
\xDAN\xC5\xE6\x99
I\xB91\xC7{æ\x89]\xA9\xA3;\xD4\xC0\x9A3Խ\xAB"\xFA
\xE4\x90	\xF5ފ\xA4\xB2 \xE6Z$\xD5/\xA4\xD7l̡\x85\x9Cř\x81\xC7%\xF3B\xECɅh\xE1\xD5\xAD;\xB4\xC2\xC4_\xAE\xA2V\x97!pˎ\xC0`\xAF\xCA\xF8\xE4`:V6\x83\xEFڅ \xCBF\xBD.C\xC5.\xEFM\x9FvB\x8B\xA5'E\xA69<ee\xB1\xF8\xD0!|\xE2
\x8BI$\xAB[\xD3\xE1xXw(\x8E]g1\x99yea\x81s\xE49\xE5?m\xFF\xE2C4\xA5\xED;t\xE8\x80wGl\xC5;\x9F\xEF\xC0\xF7\xD3\xDF\xC3?\xAB\xC7\xD0ě\xF2\xA8ٴ+\xBE\xF3\x8B\x94\xD6#\xE7t\xEF{O
w”Q\xC7/v\xEAC\xEF\x93Ad\xC2O
m\xA8\x8B\xB3\xE9{#\xB1\x96\x94\xC4m
q\xF9\xBA\xD4\xC5*z\x93\x83\xF1˷\xE8\x89~ᅬ\x91[0s\x99\xF4J\xA5 \xBA7h$Zܮ
\xFDQ\xE5Z\x8B\xE3\xF3E\xA1r\xA8\xE4\xD5
+\x8ET\x9C\xEF\xFC\xF33\xEF\xCBU\xB2\xB4u\xC9\xE8\xAB;\xB0\x98\xBAb\xC3i\xAC\x9Fw\x9F\x91\xA8o'\xD5Ɔ\xF9\x95Y\xD5\xC3\xD4q>p6~\x8A\x83?\xAD‚\xC5˰}\xFF?4PQ\x9E\x8B\xDE\xE9Hr8\xB6\x86Wy\xC9:\xE7N\x93\xC1\x8C\xA9\xFD\xF8m\xEDl\xBD\x92
+'j\x88bKk4l\x882K\xD6\xFDl\x8A\xAC\xC8+\xD8\xF5kڶ\xA9+\xF22"?\xFA\xE4`\xC3#\x83㇕s1e\xC6<$cj\x9D\xAE=Q\x85,\x9BB\xD2#Z\xBA\xC7AT
+W\xA9\xBB+_\x8C\x80\x9F8/\x88@\xF5\xEA\xD5Q\xADZ51\xBB\xB2gN2\x81\xFEZ\xF5\xCDXU\xB70\xBA\xAE\xCCM\xFB`\xCA&;\x98\xBB\xFA^\xF3J\xA60\xD1]}e\xED{Ϯ\xCCM}\xA8\xDDk\x84\x85\x85m&\xF7B\xE9\xC0\x81\x984iR\xA1\xFE\xFEI\xB4d\xA4\x849\xCA9\xE5v\x97\xB2Y\xC0\xCD]\xDA\xC2n\xCE	
\xFA\xEC
ZZ&	NNy\xC70	4\x98;\x9Ezb-m\xCDs\xB0g\xD4\xF1\xD9R|\x82RAq\x9B\x80\xDDK\xA4\x84\x82\x96\x88\x91[\xD8\xC2LOoN\xB2BA\xE9\xD4\xF3j\xA5\xCDHQ\xD0d2p \x83v\x8C/F\x9B~\xBB(\xF6\xBD\x953\x93i҆!l-L\x8B l&\x92i\x88\x91\xDCr\xD62jе\xDD\xF0ùL\x8C_\xFA%ܲR\x90AVK\xB6\ I\xBCXSkQ\xA4\xB8\xF3\xB22ӑB
+\xA8\x96ҐLi\xD0\xC7'\x89\xDAcK\xDB|2K
uˑ\x99\x9E\x8Et\xB2<\xEAJk^I\xF8G\xE0\xD5 \xC0\xEA\xFA\xBE}\xFBЧO\xBD\x{3A73F55}-,,`ee%^\xCD\xCD\xCD!\x97\xCBaB\x93J\x8Dh	+\xA6*eeea\xFD\xFA\xF5\xF0\xA1\xB9E!\x8FQ\xE4\x8F-ۑM\xFBMccG\xD4{V\xBB\xB3+s׼\xB2{̓)r\xEAgv\xAF\xEB g\xD5\xC4Օ\xF4?\xBD
+\xA0VS\xC3\xC2rz\xD5X:9QGO~hP\R\x96\x80\xA6\xFD\xD1_\xB5\xB6b\xC8BȌ\xCDI9\xCB\xB6\xB8\4\xE3\x93\xDBj\xC5mL\xCFcQ\xC8\xFB+\xB78\x99F\xAD\xAB\x91\xD9˄)"k\xEE\x8D#\xF0r\x90g[\xE4\xD6׈>H\xBA=g*\xA9\x80,\x93\xE9\xF4)1\xB6\xB4а\xDF\xE9K?/}!4\xDDeFr\xE4\x88\xC2Q\xDDb\x89A,lt\xCBaD\vp\xE2\xBC.ZQUdd\xA4^\xC5\xF0u\xC9\xF1\xA6\xC5S@\xD5~\xD3D-}\xF2ؿǓ\xA95\xF9\xA2\x{125527}\x88#\xC0(\xEA\xF5\x9D\x89%>\x990U
+S)\x8E88O\x8E at iG\xA0\xFF\xFE\xA5=\x89/\x9C\xBER\xA5
\xF2\xEDo^8\xFFy \x8E G@\xBC=\xD1w\xE6pJ=\xA5J9d\xE6aN
\x8E G\xE0\xDF"P\xECc\xFF\xAD\x80<<G\x80#\xF0\xDA`c\xDF6b\x93A8q8
\x8E G\x80#\xC0\xE0pDJ\x95\xE5\x90\xE7)G\x80#\xC0(.\xA2\xA2\xA2\xB0q\xE3F\xD0
+
+\xC8\xCEf��h"ƌ\x832e\xCA\xE4\xF7\xC0]8
\x8E@	@\x80+\x87oR&e\x84\xE3\xA7o\x8F\xA2\xCD\xE8\xF0\xA0\xFDVK%={\x82\xE74qҜ\xB6\xE6\xB3{M\xCB\xEE<\xF0ݎ\x93ɍ\xF0Qϒ\x97\xB5\x84"\xB0y\xF3fԨQ\x93'O\x97\xAFЕ\x8CLZ\x86\xE5\xAD\xF9\xB9i\xD3&̙3G\x97\xEE\xC6\xE0p\xDExx\xB7r1e[ð\x83\xA5\xA9\xB8\xFE[\xC9ܳ\xB6<-0\xB6\xEC\xE4\xFB>i
\xE7݀\xA4\xC00\xBD<\xB5\xB8#,\x9B.\xDBU\xD5w\xA5O\x8E,L\x9E\xFF\xB7w%\xF01^[\xFC?\xD2\xC9
\xCDXR$\x91\xA2%\x84V\xF1,\xA9\xB5\x8A\x9F5Tm\xA5yO\x90h\xED\xE5\xF1Z\xFA\xD0\xC6C\xD5R\xBF\xB5E-m\xA9tA<j+Ѵ\xE1Y"hH%\xD1&\x92L\x92\x99\x91\x99If\xDE9\xDFd\xE4\xCBFBRY\xEE\xF9\xFD\xAE{\xE7.\xE7\xDE\xFB\xBF&ߙs\xEEw\x8E\xC2\xE9%\x9C&\xE7֥\xAD/8\x9F)\xED\xDE\xED_.n\xEEx\xD6\xDD
n*r\xA7\xE1\xD2\xE78$X9ӵ\xEF\xE6`Q\xF8Mi\x96\xE4\xE3\xEFCQoR\xCB\xDArޕ`_0\x92˘\xC4\xC4D)\x92\x82\xBD\xBD=\x94J%\x94\xE4\xE3\x8C\xFD\x9CYױ\xEF3\x8E\xB8\xC0\xAE1x\x8C \x81\x80@@ P\xC2a9\x9E\x9A\x8E\xFCK\xBE\xBB\xEFR\xE3#X\xFF(ޞ\xBE^J;\xB4ti]f+RP\xA8<mf\x96\xC4\xCF̱\x96\xDD&\xE3jj*\x92\x92\x92\x90t\xEB(:P\x85\xD2\xD6\xE7[\x9C)\x9B\xBC\x8C\x95\xB1\xAF\xE1L\x82\xECOS\x93\x9A\x80\xF7,@\x83<_\xDF\xF9\x86\x94\xE9\xBB\x86p\xB5\xB7\xF8D\xAB\xDDz<\xCE
D\xCDʥp-S8\xB3\xF2C@\xA7\xD3IB \x9B\x93Y\xE8\xE3\xC4>9\xCF\xC9͹\xAC''\xCE܇F
#H  TF\x84pX\x8E\xA7\xC6\xAE\x9F\xA9\xDF*\xF7\xF6\xF0\xEB\xD0\x9A\xB8,\xC9
+:Hhۿx\xA4E\x93g\xDFk\x8E\xDE.\xBC
+\xEA\xB3{\x8E\xDF}m_\xC7\xE1\x8BON\xB3s\xE2I\xC9߰cur\x89\x9E\xFA3\xBA>\x87
\x975\x85y\xC8k\xCCZ85i\x88&*9ۮ+9ܖ\xEE\x94\xB6^\xC639b6\xA4i\xB1\xE7\x87\xF5\xE8\x98+
+:\xA9\xA0[ߞ\xF0\xB0%)\x8D\xCC\xE4+\x83^\xB9\xBF\x87	\xAB\xBE\x95"\xC5\xC0\xAC\xC6\xF2\xE1\xAF`\xD1\xD6mۮ\xA6\xD4
D\xE6\xF4S\xDBfZ\xFA\x92\xE6q\xFF\xE5Ti\xA63\xA1\xBD`=\x96\xBE\xD9\j\xAB\xD3c*\xCE&V\xADj\xE2\xE2_+Z\xF8\xEB\xAF\xE3\x9D\xFE\xCD\xEE\xCF;fI\x98\x84\xBBYs#;\xBE\x89
_\xAF\x81/\x85\x91`
+\xEA\xFB\xDB\xFFg\xD9\xE1}04w~\xAA\xAF\xF5\xEA2\x8B O\xBC\xBEn\x99\xDB\xD1{N&Rl4A\xD56\xB3f\xD0`0Hɘm%\x81P&
\xB2\xC0\xC8\xC2!\xF7\xE51\x82\x81 at eD@\x87\xE5xj\xCE6
+\\x89<\x8E\xE3\xFB>\xC1ܐ\x8C\x99\xDD\xB5Hf\x8A\xD9=CV8\xE3\x9Aބ\xA4c30iH \xAE\x90\xE0W\x90<\xBBO\xC5\xEFZ\xB2\xFF8݁\x85\xD8\x95
+\x8F>X\xB5q<n\x81\xBD\x97b\xE2\xDF\x97\xDEX\x8A>E\xC5`\x91qT8A\xFB\xEBZL\x986
S\xE9\xB2\xFC\xF2\\xE1\x92\xEC˥\xAB\x97\xB1\x8C>ԟ\x8B\xCE^E\xFD72b\xCB\xF8\xF6Xp\xBE
+i+\xF5\xB8} \x97\xE7Ť\xEDW$I\xE71/hگ<\x8F_\xBF\x98	\x8E\xD9\xEC\xB7\xC5\xD1\xF11\xF8O\xB7+\xDE)\xF53d\xC4c\xE7\xC2 \xA4t_\x87\x84\xF8(\x8C\xD6l\x85\xDF[\x9B-B\xB6l-\xFA\xB4$
?\x9Ek\xB6W\xD8\xE2\xD5\xC9[\x91n2#>\xFCC\xECX\xF4\xA2\xB4f\x98
+\xFC~qƌ
+üs\xB18\xF1\xE9(\xCF\xDA&\x99\xA2\xF9L\xFAN^\x81\xD0#\xD1\xAA,
+\xBF\xACy\x8E
+\xDAÄ\xCE\xD8\xE42FҊ
L\x82\x9F\xFF\xA7T6\xB7(V8d\x96V\xABEFF\xD2\xD5\xE9R\xCEekJO\xA7\xBA\xCCLdR⾂\x81 at eE@\xBC\x90R\x8E'\xE7H\xA8\x9D+\xA6a}l,<\xFF\xB1?M\xF7\xA5PW:\xFC\xF8\xD5@玏\xA7L\x84\xE9\xEE\x8F@\xC65\x90\x8E#\xE8\xE5\x91\xC2\x9Dz\xBE\x88û\xD7bӍ8\xB0\xA0i2X\xEE0\xB5
\x82o\xA3c0\xA0U([\xCC\xC4Ͱ\xA1%\x8B\xBBl\xD7]{t\x87\xABAW\xAFZys\x95\xB6>w\xA4\x99\x94hO\xC9\xD8\xE41\xA4\x92\xFE\xBEڟ\x89\x99\xFBg\xA1\x99\xCAP
+\xC4\xC2Y\xED0b\xCB\xAC\xEDӟ&\xCC\xDCw
ou\xF1$\xED\xE7 x9
\xC5ΰ\xE0M\x91
:\xB5\xF5\xC6WF\xE6,-ھ{\x8D\xEB&\xB1\x9F6sV\xBF_\xC8<\xAF`M\xA5\x95l\xBDг\xAD_\xACZ\x82\x9Bw\xAEK\xB5\xA4\xF0\xF7am\xEE\xDE\xCBߡ߳5\xA0\xCE\xF0\xA1\xC8\xDE\xF7;˙4\xBE\x81=\xBD%,5\xA50\x81\xFAh|\xFF\x8D\x99χaR\xD0YdF\x9FEڵp\x8F\xE4x\xD9t\xD6iE^\xB5\xE0ت
G\x95\xBF\x95̚g9\xF1\xB5
+\xD6\xB2v\xD1\xD9\xF9!?\xD6\xE4EY  T0\x84pX\x8E\x92\x94m\xC2\xE2\x971\xECN0\xEA\xF5\x8Du\xFB`b{(\xF6u\xAD\x8EC\xE1\xD4&\xED\x8C\x9F\xEDogz\xD0\xC8,\x96\xA6\xD4\xD3\xE8ݰ'l&,Cp\xC0 \xC4~B\xE3\xF2HOB\x93K=W8\xE4U_"\xF3\xB1s\x8B\xBE9xp\xFE\xFE\xA5\xAD\x97\xCD\xF0\xBCoWd/܌\x9F\xEF|\x80>
+j
+\xB8GJ{2\xAFY\xC9R\xD2K\xFB\xD0Ӄ\xD4\xD5\xD9R\xA3\xA0\xFBY5i\xB8\x997Hw\xE5\xD7\xF8\xB9lc\x9Fw\x81Q\xDEf\xE5[0O>\xB3n\xBE\xB31{C\x86\xB7q\xC3\xD65\xF3\xBAضDç-u\xE3\xFD\xE4d\xA7\xB2\x994\x8E\xF9\xBF\xB4Zg\xA7\xC3\xD4\xD7Z\xC3Ls\xF6\xF7\xF3ЬV%\xF8\xF8.!\xBF\x90bcc#	\x88V X0䔓\x93#\x99\x93Y\x90$*+\x9F\xE8\x95uvݺT-\x9Ey5;}\xF0V\xEF18\xA7v@\xEF\xA1~H=w\xF7j\xF9\xA0K\x97.h\xDD\xCC\xA4[\xCBGw/
\xC3\xB5zL\x9E5	mT:\xDC0fÔ+]\xDA5
C\xD7\xD7\xC3O\xD1'\xD13r1\xFA\xBC\x96ol\x91\xC8|\xAC\xB9\xA9\xC6
\xADZ\xB5jJҍ\xA8\xD2\xD6˘7 w\x98ݟ\xF0\xEB\x883\xB7,ªA\x9B\x8Cc{\xF6 6\xBB9^\xEF\xE1\x82\xE5\xEF\x90̶|7rͪ\xF3\xE85\xB47j\xCAx<\xAChK\x82\xE1\xF9]\xBBp1\x99$G\xF3]\x84m\xDF\xCF>-$\xF3\xBC|\xACYf\x96\x97\xCC\xDDu\xC6a\xEA\xB8\xA8cLA
=\xB4\xE5TX\xC0t\x94\xCE\xE4\xCE\xFE\xE9\x8D\xF2x\xEAjD­Dd۵\xC0\xD0\xC1.\x888\xF9\xDC^\xEA,\x9DUS\x95\x9C\x95(W#X8䷑\xD9d\xCCeN...\xF7\xE66\xA9\xAEA#\xB6*T1\x84pX\x8Eʦ`\xFB\\xA9o\xD4\xEA\xBDxSqC&\xAE\x87׈\xD5\xF8z\xA6;z5r\x91LS\xF6\x9E\xAF\xE1\xA2\xC6"\xC0\x90UU"\xB7\x8E#0\x95^\xD6\xE4a\x83\x9A\xAF\xACB\xA3n\xCFb\xBE\xDF0\x9C\xBA\xB4\xADFm¦\xA3\xD1ɻ36\x9E
+A\xE4\x92Ax\xEF\x9B\xDF
+\xED\xC4L\xA6i'\xFB\xDCz\xBA\xF5\xE7r4q\xB6\x833\xBD\x94\xA2\xA2\xB4\xE2d
+\xB5\x95\xB6^6\x8D]sl\xBBrn_·\x91\xB3\xB4;g7\xF4\x9D\x98\xEE\xE5)\xB8\xF5{\xBC\x96\xF0>j\xD7P\xC0\xA6v{$\xBC\xB1k'\xBE(1\xB0gUa\xB2\xEA\xAD\xB9\xB5Yi\xBC\x80\x81\xEENPԨ\x8B\xB9\xB1\xA3\xF0C\xC8(\xA9\xC9\xCE.Ϭ'\x99\x95sM\xDC\xEB\x88V\x99\xDB\xE0A\xF3\xF6[y\xBD\xEAǠO\xFF\x8F\xC9m\x86_+o\xABY\xBC\x9Dɮi\xAD\xE0\xDFѓ\xF6a\xEFQ\x9B\xA13+\xF1\xF7\xB5\xA70\xC5~%<\xED,fĆ\x83B\xA8\xDE:Z\xE4\xD5	\xFEA\xC5\xF7Yk(\xD7\xF2\x8B'\xAC1\xE4:n\xE3~iii\xD5	\xB1W\x81\x80@\xA0\x8A!\xA0\xE0?h\xC5ݩ\xB1>}\x8Bʹ\xAE`\xE2'>'\xAE\xB7\x96\xE5\xB9Mn\xBD5g+
\xB7s\xCEu\xD6d\xADoN\xD16P\xFDCi߾}\x981c\xC6C\xFBU\xA4\x9D:R\x889\xBB\xBA0gZWi\xA4\x8D\xAE\xD4\xCE\xDA,\xB5\xDAH\xE5\x8Ay\xD1=\x8D\x9C`\xDF#\x95\x9C\x92\x9C`\xD7-\xB0F\xD6THU\xB9ԏZ\xF7Y|
>\xFFe̳\xF9\xFFn\x8F\xE4d
+TuU\xC5`\x95\x9F\x87٨C:)3/\xB3\x91
\xEAF'<\xEDXP\xEC\xCC?\x86?Y\xCEĶμ#\xE9w+*\xFE\x85w"j
\x81\x82\xB1\x95\xB3\xB2\xB20e\xCAt\xE8\xD0\xEDڵ{\xA0\xEC\xC8\xC8HDDD 44T2C?\xCE:\xC4X\x81\x80@\xE0\xC9#\xC0\xB1\x95\xF9\xAA[
+8g[\xF8\x9A	\xDFAfQ\x89 \xF2w~Ȑ!%Z0ER\x9A@
\xD9\xED\x87[bC^\x8E,\xF1gk=\xE7\xDC&Ϲ,O,\xC8Y?s\xB9\xA8D\xD5\xF7\xEFRI\x82\xC9R\xCE
+\x89\x850AO[\xA4l(\xEB)Ia\xC1\x90\x89\xCBn,}\xFF\xFAUu\xA08\x83\xAB\xED\xE1Qo`\x99\xB32\x91\x92\xCDnz\x94\x92\xFB\x9D\x92\xEEL\xA1t$\xBC,\xBDJW<]B\xE8\x8A;ރ\xA0\xEA\x8B \xBB\xA6\xF1\xF7\xF7\xC7\xE6͛

\xFE@ \xF8\xC1 i\xD8Q4
+\x81
+\x8A\x80+\xE8\xC1\x88eY\xE8|\xBF侹,0<)\xD8\\xEC\xEB닦M\x9B"..\xAEX\x86\xACE\xF0\xF2\xF2B\x9D:u\x84p\xF8\xA4K\xCC+<6UJ8dS\x90 \x81\x80@@ P<\xCA\xDF\xBE#\xA5\xB2X\x83\xE0!\x9EUJ8\xECڵ\xEB\x93\xC0P\xCC)T1
+\xDE9\xACb\xDB\xDBJ\x81 \xDF9\xACn\xC4/\x83\x812@ **
+\xDE\xDE\xDE\xF0\xF1\xF1\xC1իWˀ\xA3`!\xFEz\xAA\x94\xE6\xF0\xAF\x87O\xCC(T\xE2\xD5X|\xB7o'\x91l\x8BK\xF9\xDE\xF9\xB5\xBF\xF3Qۡ\xD3\xE8\xF0\xF6\xA4 IH\x94\xB7\x8B\xB2@@  \xA8,ᰜO*51Y\x{126B6A}n]8\x94\xF0\x8D\xD9r^R\x99\xB2g\xA7\xD7\xC9\xC9F
+\xD1\xEC@\xAEjT\x8F\xBCG3\xB9\xF5\xB9\xA3\xD6\xE9
+\xE7Q
wb\x8Ej\xDBbl_0\xC4\xE1\xB35\xE1\xE8
8\x8D
\xAD
\x9CJ>\\xF4\xAC\xBA\xCC>\x88\xE7_\xF4Ą\xF6!\xFF\xA5O\xC1\x86\xC4\xE4‚\x9DA\xB0`x\xE4\xE0ܼ\xA9\xA7\xEFzܺӸ\xEA!v&Ty\x84Y\xB9\x9C\x8Eج\x8D\xC6\xF4\xED\xEEww78\xBA\xBE\x84siź*\xA7U<&[\xB3\x8BԖ|8\xB1'\x85}c\xCC\xDEt\xDCY\x85\xA2\x95|>g\xD8\xE9\xB5G#ڣ[-8R\xEC\xE2\xD5)0k~\x82\xAF\x93\x9DT\xB6\xAE\x80\xEB^\xA8\xD9\xA7\x8B\xC0 j\xF7\\xD4pRN\xEEpS9\xA1\xC7Ǭ\xC3
+\x8F\xF9n
\x89+\x9363& A
\xAB\xB0T
D窈\x80\xD1h\xC4\xCF7\x92Ѹ\xCDs\xF8##	j\xE2ӌ\xB8\x9Df\x90\xCA\xD7\xE3S\xB1eç0\x92\xA7\xB1Q\xD3\xE6\xE2\xD2\xEF\xE9\xE01\x82\x81 at eD@\x87\xE5tj\xD7\x87Ⓥ\xFD\xA31\xC1dHC\xE4\xA1u\x9D\xE4\xC9i\xA2ά\xE8
+g\xDFe\xB9\xA4tt/Ʉ\xE7f|\x89\xBB\x9A\xEC\x9B\xDF
\xCB&\x8Dʼn$v\xCD\xE8\xFF\x90\xDB\xD8v\xF6\xB6B\xAFMÅ\xDF\xC3\xF7KDM\x8EY\x86<
MqX\xB4
+?\xBF \xF1I\x89\x8D\xC2\xD2\xD7}J\xB7\xC8bz+\xEC\xBD\xE0jW:\xC7\xDB
+\xA5
Z\xBA\xB4.\x86\xA3\xA8\xAE\xAE\xE8t:\xA4\xEAHJ\xD7㳐%]\xFAo\x9C>})Z\xEER\x97\x91U\xC9   "IDAT\xDA\xFD\xF9F)2J\xEB\xAE\xE1\xD0\xC0)x\x8C \x81\x80@@ P\xF8?j/\x8E\xDEt\xE8x\xD9    IEND\xAEB`\x82
\ No newline at end of file

Deleted: MacRubyWebsite/trunk/content/realworld-dynamic-bundles.txt
===================================================================
--- MacRubyWebsite/trunk/content/realworld-dynamic-bundles.txt	2010-08-23 00:14:58 UTC (rev 4447)
+++ MacRubyWebsite/trunk/content/realworld-dynamic-bundles.txt	2010-08-23 00:15:02 UTC (rev 4448)
@@ -1,195 +0,0 @@
---- 
-title:      Real-world dynamic bundle creation
-created_at: 2010-08-08 23:41:08.125402 +01:00
-updated_at: 2010-08-08 23:41:08.125777 +01:00
-tutorial:   true
-author:     Nick Ludlam
-filter:
-  - erb
-  - textile
---- 
-h1(title). <%= h(@page.title) %>
-
-<div class="author">
-  By <%= member_name(@page.author) %>
-</div>
-
-<div class='tutorial'>
-
-In this tutorial we will examine a real-world case of wanting to read ID3 tags from MP3 files in a quick and efficient manner from MacRuby. The solution must also be packagable, so we can build a stand-alone version of the application, free of any specific system dependencies.
-
-While there are some existing gems to read ID3 tags, the native Ruby implentation, <em>id3lib-ruby</em>, does not compile with the current version (0.6 as of this tutorial creation) of MacRuby, and the other gem (id3) complicates portability by wrapping a C library.
-
-To bring about a cleaner solution, we can take advantage of MacRuby's ability to load Objective-C bundles at runtime. The Objective-C layer of these bundles can be a very thin wrapper around native C or C++ calls, giving us a powerful flexibility to pull in any kind of compiled code we choose. In doing this, we can also ensure that the library is built as a fat binary, ensuring maximum compatibility with end users.
-
-h3. Preparation
-
-The framework chosen was one called TagLib (<a href="http://developer.kde.org/~wheeler/taglib.html">developer.kde.org/~wheeler/taglib.html</a>), which is a nicely clean and portable C++ implementation.
-
-Conveniently, a user on GitHub has already done some of the work for us in making an XCode project which builds a Framework of this library. After forking and cloning this Git project, we can start to build our Obj-C wrapper class around the library's functionality. We can get the basic Framework project set up with the following:
-
-<pre class="commands">
-git clone http://github.com/rahvin/TagLib.framework.git
-cd TagLib.framework
-wget http://developer.kde.org/~wheeler/files/src/taglib-1.6.3.tar.gz
-tar zxvf taglib-1.6.3.tar.gz
-mv taglib-1.6.3 taglib-src
-</pre>
-
-You can use the latest revision of TagLib, but this example will reference the 1.6.3 release.
-
-The last thing we need to do to the existing Framework target is add in the C wrapper functionality, which is an optional part of TagLib. We will utilise these C bindings later on, as they simplify the amount of code we need to write, and handle much of the UTF-8 string conversion for us.
-
-Select "Add to Project..." from the Project menu, and navigate to "taglib-src/bindings/c/", and add both "tag_c.cpp" and "tag_c.h". If you build the project at this stage, there should be no errors. So far, so good.
-
-h3. Adding our Bundle target
-
-The first thing we need to do is add a new Target to our project. Select "New Target..." from the Project menu, and select "Loadable Bundle". Call this <code>TagLibBundle</code>. 
-
-Open up the "Compile Sources" folder inside the "TagLib" Framework target. Shift-select every file in this folder, and open "Get Info" in the File menu. Open up the Targets tab at the top, and check the tickbox next to <code>TagLibBundle</code>. This ensures that every file used to compile the framework is also used to compile our new bundle target.
-
-Now open the <code>TagLibBundle</code> target info pane, and search for "Preprocessor Macros". Add <code>HAVE_CONFIG_H</code> to this entry. This is related to the way the project has been ported from the Autoconf setup of the original source code.
-
-!/images/realworld-dynamic-bundles/preprocessor_macros.png!
-
-While this info view is open, we also need to remove the entries under "Prefix Header"
-
-!/images/realworld-dynamic-bundles/remove_prefix_header.png!
-
-and "Other Linker Flags". These are set up by default, and are not required for our bundle.
-
-!/images/realworld-dynamic-bundles/remove_other_linker_flags.png!
-
-
-Now swap to the "General" tab and ensure that we are linking the project against the "Foundation" framework and "libz" shared library. Check that the project builds OK at this stage.
-
-h3. Adding our Objective-C wrapper class
-
-Now comes the fun part. We write a very simple Objective-C class to wrap the C functionality of the <code>TagLib</code> code.
-
-We will take a very simplistic approach in buidling the wrapper, as this ensures easy memory management. Our class will have an <code>initWithFileAtPath:</code> method, which we will use to initialise our class, and perform the scan of the file for tags. The tags themselves will be placed inside an <code>NSDictionary</code> to be read at a later point. Lastly the <code>dealloc</code> method will release the <code>NSDictionary</code>. All of the potentially tricky memory management is contained only within the <code>initWithFileAtPath:</code> method, and occurs within a single method invocation.
-
-Now we need to add an Objective-C class which will perform our wrapping duties. Add a new Objective-C file named "TagLib.m" to the project, subclassed from <code>NSObject</code>. Ensure that is is only part of the TagLibBundle target.
-
-!/images/realworld-dynamic-bundles/new_wrapper_class.png!
-
-
-Add a new Objective-C file to the <code>TagLibBundle</code> target called <code>TagLib.m</code>. Once we synthesize a simple <code>NSDictionary</code> to contain our tag, our header looks like:
-
-<% coderay :lang => 'c' do -%>
- at interface TagLib : NSObject {
-    NSDictionary *tags;
-}
-
- at property (nonatomic, retain) NSDictionary *tags;
-
- at end
-<% end %>
-
-and our <code>TagLib.m</code> file:
-
-<% coderay :lang => 'c' do -%>
- at implementation TagLib
-
- at synthesize tags;
-
-- (id)init {
-    if (self = [super init]) {
-        self.tags = [NSDictionary dictionary];
-    }
-
-    return self;
-}
-
-- (void)dealloc {
-    [tags release]; tags = nil;
-    [super dealloc];
-}
-
- at end
-<% end %>
-
-<% coderay :lang => 'c' do -%>
-
-- (id)initWithFileAtPath:(NSString *)filePath {
-  if (self = [super init]) {
-
-    // Our mutable dictionary for accumulation
-    NSMutableDictionary *tempDictionary = [NSMutableDictionary dictionary];
-
-    // Initialisation as per the TagLib example C code
-    TagLib_File *file;
-    TagLib_Tag *tag;
-    
-    // We want UTF8 strings out of TagLib
-    taglib_set_strings_unicode(TRUE);
-
-    file = taglib_file_new([filePath cStringUsingEncoding:NSUTF8StringEncoding]);
-
-    if (file != NULL) {
-      tag = taglib_file_tag(file);
-
-      // Collect title, artist, album, comment, genre, track and year in turn.
-      // Sanity check them for presence, and length
-      if (taglib_tag_title(tag) != NULL &&
-        strlen(taglib_tag_title(tag)) > 0) {
-        NSString *title = [NSString stringWithCString:taglib_tag_title(tag)
-                                             encoding:NSUTF8StringEncoding];
-        [tempDictionary setObject:title forKey:@"title"];
-      }
-      
-      if (taglib_tag_artist(tag) != NULL &&
-        strlen(taglib_tag_artist(tag)) > 0) {
-        NSString *artist = [NSString stringWithCString:taglib_tag_artist(tag)
-                                             encoding:NSUTF8StringEncoding];
-        [tempDictionary setObject:artist forKey:@"artist"];
-      }
-      
-      if (taglib_tag_album(tag) != NULL &&
-        strlen(taglib_tag_album(tag)) > 0) {
-        NSString *album = [NSString stringWithCString:taglib_tag_album(tag)
-                                             encoding:NSUTF8StringEncoding];
-        [tempDictionary setObject:album forKey:@"album"];
-      }
-      
-      if (taglib_tag_comment(tag) != NULL &&
-        strlen(taglib_tag_comment(tag)) > 0) {
-        NSString *comment = [NSString stringWithCString:taglib_tag_comment(tag)
-                                               encoding:NSUTF8StringEncoding];
-        [tempDictionary setObject:comment forKey:@"comment"];
-      }
-      
-      if (taglib_tag_genre(tag) != NULL &&
-        strlen(taglib_tag_genre(tag)) > 0) {
-        NSString *genre = [NSString stringWithCString:taglib_tag_genre(tag)
-                                             encoding:NSUTF8StringEncoding];
-        [tempDictionary setObject:genre forKey:@"genre"];
-      }
-      
-      // Year and track are uints
-      if (taglib_tag_year(tag) > 0) {
-        NSNumber *year = [NSNumber numberWithUnsignedInt:taglib_tag_year(tag)];
-        [tempDictionary setObject:year forKey:@"year"];
-      }
-      
-      if (taglib_tag_track(tag) > 0) {
-      NSNumber *track = [NSNumber numberWithUnsignedInt:taglib_tag_track(tag)];
-      [tempDictionary setObject:track forKey:@"track"];
-      }
-      
-      // Free up our used memory so far
-      taglib_tag_free_strings();
-      taglib_file_free(file);
-      
-    }
-
-    // Make immutable
-    self.tags = [NSDictionary dictionaryWithDictionary:tempDictionary];
-    [tempDictionary release];
-  }
-  
-  return self;
-}
-<% end %>
-
-</div>
\ No newline at end of file
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20100822/16d95504/attachment-0001.html>


More information about the macruby-changes mailing list