#!/bin/sh # MetaCard 2.4 stack # The following is not ASCII text, # so now would be a good time to q out of more exec mc $0 "$@" YManaging Entry Boxes #23I5 uPaypalURLChttps%3A%2F%2Fwww.paypal.com%2Fcgi-bin%2Fwebscr%3Fcmd%3D_xclick%26business%3Deric%252echatonet%2540sosmartsoftware%252ecom%26item_name%3DEric%2520Chatonet%26item_number%3DDev%2520Support%26no_shipping%3D0%26no_note%3D1%26tax%3D0%26currency_code%3DEUR%26return%3Dhttp%3A%2F%2Fwww.sosmartsoftware.com%2F%26charset%3DUTF%252d8Managing Entry Boxes #2 ULucida Grande ULucida Grande WLucida Grande ULucida Grande UTahoma UTahoma WTahoma @ULucida Grande UGeorgia UGeorgia UCourier WLucida Grande UTimes New RomanUTimes New RomanWTimes New Roman UVerdana WVerdana UVerdana WVerdana @UVerdana uPosition Horizontal329 Vertical-118uGuideCentered Horizontalfalse cREVGeneral debugObjectsstackfileversion2.4cREVGeometryCachestackID1113 X ?local lDirFlag,lCancelID -- local vars used for the sprite effect: you don't need them ############################################################################################# -- rawkeyUp and closeField handlers below do the job -- see the script of field "Divination" also ############################### on rawkeyUp pKey local tRefList,tNumOfLines ----- if the selectedfield = empty or not the uAutoList of the selectedfield or pKey is in "65362,65364,65421,65293" then pass rawkeyUp -- no selection, not concerned field, arrow keys, enter key and return key if target = empty then hide fld "Divination" -- we don't need it showing else set the uCurField of this card to the long name of the selectedfield -- stores the long name of the current selected field put the uList of the uCurField of this card into tRefList -- data used yet by the user for this field if pKey = 65289 or tRefList = empty then pass rawkeyUp -- tab key filter tRefList with target & "*" ----- if tRefList <> empty then set the itemdel to tab sort tRefList -- first alpha sort sort tRefList numeric descending by item 2 of each -- second sort to reorder the list with the most used items at top set the width of fld "Divination" to the width of the uCurField of this card -- adjusts field width put the number of lines of tRefList into tNumOfLines set the vScrollbar of fld "Divination" to tNumOfLines > the uMaxLines of the uCurField of this card if tNumOfLines > the uMaxLines of the uCurField of this card then put the uMaxLines of the uCurField of this card into tNumOfLines -- limits the number of lines shown to 5 set the height of fld "Divination" to tNumOfLines * the effective textheight of fld "Divination" + the topMargin of fld "Divination" -- adjusts field height set the tabstops of fld "Divination" to the width of the uCurField of this card -- so ranking will not be shown put tRefList into fld "Divination" set the hilitedLine of fld "Divination" to 1 -- best choice set the topleft of fld "Divination" to the bottomleft of the the uCurField of this card -- places the field according to the target show fld "Divination" else hide fld "Divination" end if end if ----- if the platform = "MacOS" then -- forces refresh to restore focus border on Mac OS X lock screen unlock screen end if end rawkeyUp ------------------------------- on closeField local tData,tAllData ----- if the uAutoList of the target then -- excludes fields that don't need magic :-) hide fld "Divination" put value(the uCurField of this card) into tData -- the text if tData = empty then pass closeField ----- put IsExpectedData(tData) into tData -- see below if tData = "error" then -- entry does not match what is expected beep do "select the text of" && the uCurField of this card else if tData <> empty then do "put tData into" && the uCurField of this card put the uList of the uCurField of this card into tAllData if tData is not in tAllData then if tAllData = empty then set the uList of the uCurField of this card to tData & tab & 1 else put cr & tData & tab & 1 after tAllData sort tAllData set the uList of the uCurField of this card to tAllData end if else set the itemdel to tab add 1 to item 2 of line lineOffset(tData,tAllData) of tAllData set the uList of the uCurField of this card to tAllData end if else pass closeField else pass closeField end closeField ------------------------------- function IsExpectedData pData -- verifies typed data and return them reformated: used by closeField -- you will customize this function according to the names used for uDataType custom property and your needs: -- digits only, ZIP code, etc. -- see Managing Entry Boxes #1 tutorial to get more information about this part of the job :-) switch the uDataType of the uCurField of this card -- uDataType: a custom property of the selected field that indicates expected contents case "name" if the number of chars of pData >= 3 then return Capitalize(pData) -- else return "error" break case "email" if IsEmail(pData) then return toLower(pData) else return "error" end switch end IsExpectedData ############################### -- Keyboard managing: arrowkey, enterInField and returnInField ############################### on arrowkey pKey -- selecting an item in the drop box using arrow keys local tHilitedLine ----- if pKey is in "left,right" then pass arrowkey -- to place the insertion point ----- if the visible of fld "Divination" then put the hilitedLine of fld "Divination" into tHilitedLine -- an integer if pKey = "up" then if tHilitedLine > 1 then set the hilitedLine of fld "Divination" to (tHilitedLine - 1) -- previous line end if else if tHilitedLine < the number of lines of fld "Divination" then -- down set the hilitedLine of fld "Divination" to (tHilitedLine + 1) -- next line end if else pass arrowkey end arrowkey ------------------------------- on enterInField -- pressing enter when there is a text selection if the visible of fld "Divination" then send "mouseUp" to fld "Divination" else pass enterInfield end enterInField ------------------------------- on returnInField -- pressing return when there is a text selection if the visible of fld "Divination" then send "mouseUp" to fld "Divination" else pass returnInField end returnInField ############################### -- sub-functions used by IsExpectedData: see above -- they are specific to this demo ############################### function Capitalize pData -- used by IsExpectedData local tCapitalizedWord ----- repeat for each word tWord in pData put toUpper(char 1 of tWord) & toLower(char 2 to -1 of tWord) & space after tCapitalizedWord end repeat return char 1 to -2 of tCapitalizedWord end Capitalize ------------------------------- function IsEmail pWhat -- by Ken Ray (used by IsExpectedData) -- used by IsExpectedData local tIsIP,tNotIP ----- put matchtext(pWhat,"^[A-z0-9_\-\.]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]$") into tNotIP put matchtext(pWhat,"^(1*\d{1,2}|2[0-4]\d|25[0-5])\.(1*\d{1,2}|2[0-4]\d|25[0-5])\.(1*\d{1,2}|2[0-4]\d|25[0-5])\.(1*\d{1,2}|2[0-4]\d|25[0-5])(:\d{1,5})*$") into tIsIP return (tIsIP or tNotIP) end IsEmail ############################################################################################################################ on openCard set the uAnim of this cd to true AnimLogo true -- starts the logo animation end openCard ------------------------------- on closeCard set the uAnim of this cd to false -- stops the logo animation pass closeCard end closeCard ------------------------------- on openField -- for demo purpose local tScroll ----- if the uAutoList of the target then put the scroll of fld "List" into tScroll put the uList of the target into fld "List" set the scroll of fld "List" to tScroll end if end openField ------------------------------- on mouseUp if the selectedField = empty then put empty into fld "List" end mouseUp ------------------------------- on AnimLogo lDirFlag -- So Smart logo animation using the move command if the uAnim of this cd then if lDirFlag then move img "Sprite" to item 1 of the loc of img "SSS" - the width of img "SSS" div 2,item 2 of the loc of img "SSS" - 1 in 1500 milliseconds else move img "Sprite" to item 1 of the loc of img "SSS" + the width of img "SSS" div 2 - 3,item 2 of the loc of img "SSS" - 1 in 1500 milliseconds end if put not lDirFlag into lDirFlag -- this script local variable declared outside the handler (lDirFlag) allows to reverse the process at each call send "AnimLogo" && lDirFlag to me in 100 milliseconds put the result into lCancelID else cancel lCancelID end AnimLogo ------------------------------- on CleanStak -- private handler set the hilite of btn "TopLevel" to false put empty into fld "List" save this stack put "done" end CleanStak uAnimtrue uCurFieldfield "Box3" of group "Action" of card id 1002 of stack "/Users/eric/Documents/Revolution/Tutorials/How to stacks/Tutorials released/Managing Entry Boxes #2.rev" cREVGeneral breakPointscREVGeometryCacheIDs121664790567510811216677023945109412166770240101093115849534221910391216648284599108412166428246711072121664823607510831216642719770106811584963203121042121664271977110691216656798047109612166427197721070121664204308210671216676794510110511598649713301056115849640228110441216647884024108012166427690631071115986593500410581158498102046160012166514823141090115986761628010591216647851246107911584976253551046cREVGeometrycachetotal24orderp1158495342219 1158496402281 1158496320312 1159867616280 1158497625355 1216642824671 1216656798047 1216676794510 @#+QFE Tab Menu}local lSelectedField ------------------------------------------ on menuPick pNewItem,pOldItem local tFld ----- choose browse tool select empty lock screen if pOldItem = "Action" then put the selectedField into lSelectedField hide grp pOldItem show grp pNewItem set the visible of btn "Paypal" to pNewItem = "Action" if pOldItem <> "Action" and lSelectedField <> empty then do "select the text of" && lSelectedField unlock screen end menuPick UAction Discussion cREVGeometryMaster,scaleBottomObjectSideBottomMaster,movehDistancefalseMastertrueMaster,scaleBottomObjectRefcardMaster,scaleBottomAbsolutetrueMaster,scaleBottomtrueMaster,movevDistancefalseMaster,scalebottomDistance-58Master,expectedRect 20,15,380,476Master,scaleRightAbsolutetrueMaster,scaleRighttrueMaster,scalerightDistance-20Master,scaleRightObjectSideRightMaster,scaleRightObjectRefcardMaster,cardRanking2Master,scaletopDistanceMaster,scaleleftDistance cREVGeneral revUniqueID 1158495342219  Discussiona$/t) cREVGeometryMaster,scaleBottomObjectSideBottomMaster,movehDistancefalseMastertrueMaster,scaleBottomObjectRefcardMaster,scaleBottomAbsolutetrueMaster,scaleBottomtrueMaster,movevDistancefalseMaster,scalebottomDistance-70Master,expectedRect 36,47,364,464Master,scaleRightAbsolutetrueMaster,scaleRighttrueMaster,scalerightDistance-36Master,scaleRightObjectSideRightMaster,scaleRightObjectRefcardMaster,cardRanking2Master,scaletopDistanceMaster,scaleleftDistance cREVGeneral revUniqueID 1158496402281 Info xon mouseDown if the textStyle of the clickchunk = "link" then EditTheScript the clickText -- end mouseDown ---------------------------- on EditTheScript pWhich local tObjs ----- switch pWhich case "card's script" put "this cd" into tObjs break case "the script of the drop box field" put "fld ID 1071" into tObjs break case "four custom properties" select fld "Box1" send "revBuildPropertyPalette" to stack "revTemplatePalette" wait 200 millisecs with messages go cd "revCustomProperties" of stack line 1 of the windows exit to top end switch ----- repeat for each item tObj in tObjs do "edit script of" && tObj end repeat end EditTheScript (3l!uList0qHow-To Stack #025 by Eric Chatonet 07/22/06 Initial release When checked, the "TopLevel" check box allows you to access all objects and scripts easily. This stack shows how to put some divination into your projects. Enjoy! If customized interfaces require mainly a lot of work, they allow the same layout on all platforms and give a strong personality to your interfaces. To buid a customized interface, you need to replace standard controls by transpatent ones using images you have prepared. Why would you work with PNG images? Portable Network Graphics format was created primarily to by-pass GIF patents (that are no longer valid since 2006 October 1th :-) Compared to JPEG, PNG format brings three great advantages: It's a non-destructive format. Its weight is not heavy. Using an alpha channel, it's able to handle transparency. As a rule, prefer to use PNG when you need transparency and JPEG when you don't need it. BTW, always use JPEG for photos: PNG is not suitable for them. What allows transparency? Mastering transparency is a key for well done interfaces: You can smooth graphics edges. You can drop shadows as you wish. You can overlay graphics with graphics, with background colors or images and achieve very subtle effects. In addition, you can combine transparency with blendLevel Rev feature that may be changed on-the-fly. A world :-) How to prepare PNG images? You need PhotoShop or whatever image-editing program you wish. Sometimes you will find convenient to prepare your draft in a vector edting software then import it in PhotoShop as a background tracing. To be frank, mastering all aspects of such images editing requires a bit of training ;-) But results will amaze you! The standard button in this stack The 'Run It!" button is very easy to make: It's just a transparent button the icon and hilitedIcon of which are set to the right PNG images IDs. The PNG used are semi-transparent then the button catches a bit of the background color. The button is overlayed by a transparent field to specify its label. mouseUp, mouseDown and mouseRelease events that are received by this field are sent to the button itself (both share the same name and are grouped): on mouseDown send "mouseDown" to btn the short name of me end mouseDown ----------------------------------- on mouseUp send "mouseUp" to btn the short name of me end mouseUp ----------------------------------- on mouseRelease send "mouseRelease" to btn the short name of me end mouseRelease Effective code is in the button's script. This way of doing allows to duplicate the group to make another button by just setting its icons IDs. Show button scripts The progress bar This one is a bit more complicated ;-) It's a group using one PNG embedded image and two graphics: the progress bar edges and the progress bar itself. Here, the PNG overlies the progress bar graphics that is seen through it. Modifying the blend level of the PNG allows to master the progress bar gloss :-) A simple handler allows to monitor the progress bar: on DisplayProgress pPos,pTotal local tRect ----- if pPos = 0 then put 1 into pPos put the rect of img "Progress" into tRect put item 1 of tRect + \ round(pPos/pTotal*the width of img "Progress") \ into item 3 of tRect set the rect of grc "Bar" to tRect end DisplayProgress And to set the progress bar position: DisplayProgress 0,72 -- beginning DisplayProgress 50,100 -- half DisplayProgress 50,50 -- complete Where pPos is the current thumb position. And pTotal is the end value of the progress bar. Note that the code handles ratios automatically. If you copy the progress bar using the "Copy" button, you will be able to resize the pasted group in your own stack using the pointer tool. Show progress bar scripts The So Smart logo (for fun) The logo itselg is a PNG shadowed image overlayed by a tiny and almost transparent PNG image that is moved using the send command. Show logo script Vocabulary Here are the main dictionary entries you can check in the Revolution documentation about this topic: Icon property HilitedIcon property Hilite property MouseUp message MouseDown message MouseRelease message Rect property Send command Move command 1 How-To Stack #025 by Eric Chatonet 07/22/06 Initial release When checked, the "TopLevel" check box allows you to access all objects and scripts easily. This stack shows how to put some divination into your projects. Enjoy! Good ergonomics and . Why would you work with PNG images? Portable Network Graphics format was created primarily to by-pass GIF patents (that are no longer valid since 2006 October 1th :-) Compared to JPEG, PNG format brings three great advantages: It's a non-destructive format. Its weight is not heavy. Using an alpha channel, it's able to handle transparency. As a rule, prefer to use PNG when you need transparency and JPEG when you don't need it. BTW, always use JPEG for photos: PNG is not suitable for them. What allows transparency? Mastering transparency is a key for well done interfaces: You can smooth graphics edges. You can drop shadows as you wish. You can overlay graphics with graphics, with background colors or images and achieve very subtle effects. In addition, you can combine transparency with blendLevel Rev feature that may be changed on-the-fly. A world :-) How to prepare PNG images? You need PhotoShop or whatever image-editing program you wish. Sometimes you will find convenient to prepare your draft in a vector edting software then import it in PhotoShop as a background tracing. To be frank, mastering all aspects of such images editing requires a bit of training ;-) But results will amaze you! The standard button in this stack The 'Run It!" button is very easy to make: It's just a transparent button the icon and hilitedIcon of which are set to the right PNG images IDs. The PNG used are semi-transparent then the button catches a bit of the background color. The button is overlayed by a transparent field to specify its label. mouseUp, mouseDown and mouseRelease events that are received by this field are sent to the button itself (both share the same name and are grouped): on mouseDown send "mouseDown" to btn the short name of me end mouseDown ----------------------------------- on mouseUp send "mouseUp" to btn the short name of me end mouseUp ----------------------------------- on mouseRelease send "mouseRelease" to btn the short name of me end mouseRelease Effective code is in the button's script. This way of doing allows to duplicate the group to make another button by just setting its icons IDs. Show button scripts The progress bar This one is a bit more complicated ;-) It's a group using one PNG embedded image and two graphics: the progress bar edges and the progress bar itself. Here, the PNG overlies the progress bar graphics that is seen through it. Modifying the blend level of the PNG allows to master the progress bar gloss :-) A simple handler allows to monitor the progress bar: on DisplayProgress pPos,pTotal local tRect ----- if pPos = 0 then put 1 into pPos put the rect of img "Progress" into tRect put item 1 of tRect + \ round(pPos/pTotal*the width of img "Progress") \ into item 3 of tRect set the rect of grc "Bar" to tRect end DisplayProgress And to set the progress bar position: DisplayProgress 0,72 -- beginning DisplayProgress 50,100 -- half DisplayProgress 50,50 -- complete Where pPos is the current thumb position. And pTotal is the end value of the progress bar. Note that the code handles ratios automatically. If you copy the progress bar using the "Copy" button, you will be able to resize the pasted group in your own stack using the pointer tool. Show progress bar scripts The So Smart logo (for fun) The logo itselg is a PNG shadowed image overlayed by a tiny and almost transparent PNG image that is moved using the send command. Show logo script Vocabulary Here are the main dictionary entries you can check in the Revolution documentation about this topic: Icon property HilitedIcon property Hilite property MouseUp message MouseDown message MouseRelease message Rect property Send command Move command 1 How-To Stack #025 by Eric Chatonet 07/22/06 Initial release When checked, the "TopLevel" check box allows you to access all objects and scripts easily. This stack shows how to put some divination into your projects. Enjoy! Good ergonomics and a touch of magic make good projects :-) Why would you work with PNG images? Portable Network Graphics format was created primarily to by-pass GIF patents (that are no longer valid since 2006 October 1th :-) Compared to JPEG, PNG format brings three great advantages: It's a non-destructive format. Its weight is not heavy. Using an alpha channel, it's able to handle transparency. As a rule, prefer to use PNG when you need transparency and JPEG when you don't need it. BTW, always use JPEG for photos: PNG is not suitable for them. What allows transparency? Mastering transparency is a key for well done interfaces: You can smooth graphics edges. You can drop shadows as you wish. You can overlay graphics with graphics, with background colors or images and achieve very subtle effects. In addition, you can combine transparency with blendLevel Rev feature that may be changed on-the-fly. A world :-) How to prepare PNG images? You need PhotoShop or whatever image-editing program you wish. Sometimes you will find convenient to prepare your draft in a vector edting software then import it in PhotoShop as a background tracing. To be frank, mastering all aspects of such images editing requires a bit of training ;-) But results will amaze you! The standard button in this stack The 'Run It!" button is very easy to make: It's just a transparent button the icon and hilitedIcon of which are set to the right PNG images IDs. The PNG used are semi-transparent then the button catches a bit of the background color. The button is overlayed by a transparent field to specify its label. mouseUp, mouseDown and mouseRelease events that are received by this field are sent to the button itself (both share the same name and are grouped): on mouseDown send "mouseDown" to btn the short name of me end mouseDown ----------------------------------- on mouseUp send "mouseUp" to btn the short name of me end mouseUp ----------------------------------- on mouseRelease send "mouseRelease" to btn the short name of me end mouseRelease Effective code is in the button's script. This way of doing allows to duplicate the group to make another button by just setting its icons IDs. Show button scripts The progress bar This one is a bit more complicated ;-) It's a group using one PNG embedded image and two graphics: the progress bar edges and the progress bar itself. Here, the PNG overlies the progress bar graphics that is seen through it. Modifying the blend level of the PNG allows to master the progress bar gloss :-) A simple handler allows to monitor the progress bar: on DisplayProgress pPos,pTotal local tRect ----- if pPos = 0 then put 1 into pPos put the rect of img "Progress" into tRect put item 1 of tRect + \ round(pPos/pTotal*the width of img "Progress") \ into item 3 of tRect set the rect of grc "Bar" to tRect end DisplayProgress And to set the progress bar position: DisplayProgress 0,72 -- beginning DisplayProgress 50,100 -- half DisplayProgress 50,50 -- complete Where pPos is the current thumb position. And pTotal is the end value of the progress bar. Note that the code handles ratios automatically. If you copy the progress bar using the "Copy" button, you will be able to resize the pasted group in your own stack using the pointer tool. Show progress bar scripts The So Smart logo (for fun) The logo itselg is a PNG shadowed image overlayed by a tiny and almost transparent PNG image that is moved using the send command. Show logo script Vocabulary Here are the main dictionary entries you can check in the Revolution documentation about this topic: Icon property HilitedIcon property Hilite property MouseUp message MouseDown message MouseRelease message Rect property Send command Move command 1 cREVGeometryMaster,scaleBottomObjectSideBottomMaster,movehDistancefalseMastertrueMaster,scaleBottomObjectRefcardMaster,scaleBottomAbsolutetrueMaster,scaleBottomtrueMaster,movevDistancefalseMaster,scalebottomDistance-74Master,expectedRect 40,51,360,469Master,scaleRightAbsolutetrueMaster,scaleRighttrueMaster,scalerightDistance-40Master,scaleRightObjectSideRightMaster,scaleRightObjectRefcardMaster,cardRanking2Master,scaletopDistanceMaster,scaleleftDistance cREVGeneral revUniqueID 1158496320312 breakPoints  #How-To Stack #025 by Eric Chatonet @"  07/22/06 Initial release @  bNote: when checked, the "TopLevel" check box allows you to access all objects and scripts easily. a   |()%ţ,%-F2\@ *n w JU牓/_ o_ū(II` b`AM]Nk5 _ ,?d+@021~K?@fӬ ~W XXY};w<||| ߿}Kw^W@koǑ74;Gڷo_߿uLL7qe`&Fqϟ_sPuFFfbA8`(10r=zk~ TxNP`=l|,IENDB` cREVGeneral revUniqueID 1158498102046#Logo iv cREVGeometryMaster,moveVObjectSidebottomMaster,movehDistance -0.502857MastertrueMaster,moveVObjectRefcardMaster,moveHObjectRefcardMaster,moveVAbsolutetrue Master,moveVtrueMaster,movevDistance-26Master,scalebottomDistanceMaster,expectedRect130,494,269,523Master,moveHObjectSiderightMaster,scalerightDistanceMaster,cardRanking2Master,scaletopDistanceMaster,scaleleftDistanceMaster,moveHAbsolutefalse Master,moveHtrue cREVGeneral revUniqueID 1159867616280 SSS  Hon mouseDown revGoUrl "http://www.sosmartsoftware.com" end mouseDown v~custom control- PNG  IHDR~lC| pHYs.#.#x?v 9iCCPPhotoshop ICC profilexڝwTTϽwz0z.0. Qf Ml@DEHb!(`HPb0dFJ|yyǽgs{.$O./ 'z8WGбx0Y驾A@$/7z HeOOҬT_lN:K"N3"$F/JPrb[䥟}Qd[Sl1x{#bG\NoX3I[ql2$ 8xtrp/8 pCfq.Knjm͠{r28?.)ɩL^6g,qm"[Z[Z~Q7%" 3R`̊j[~: w!$E}kyhyRm333: }=#vʉe tqX)I)B>== <8Xȉ9yP:8p΍Lg kk Ѐ$t!0V87`ɀ2A. @JPA#h'@8 .: ``a!2D!UH 2 dA>P ECqB**Z:]B=h~L2  5pN:|ó@ QC !H,G6 H9R ]H/r Aw( Q(OTJCm@*QGQ-(j MF+ 6h/*t:].G7Зw7 Xa<1:L1s3bXyeb~19 vGĩp+5qy^ oó|= ?'Htv`Ba3BDxHxE$Չ"XAP44077&9$An0;T2421t.54ld+s;# V]=iY9FgM֚k&=%Ō:nc1gcbcfX.}lGv{c)LŖN퉛w/p+/<j$.$%&㒣OdxTԂԑ4i3|o~C:&S@L u[Uo3C3OfIgwdO|;W-wsz 17jl8c͉̈́3+{%lKWr[ $ llGmnacOkE&EEY׾2⫅;K,KhtiN=e²{^-_V^Oo§s]?TWީrjVQ=w}`嚢zԶiו8>k׍ E  [ly邟~_Y53rW򯎼^{7so}x>|쇊z>yzgAMA|Q cHRMz%u0`:o_F"QIDATxbdF$G H4>nGkͽ $I5U/WhfO^/@@ܿĂQ&v;, U|||O$0ȂgӸGLP^So]uX7 9+i|zWSH?WOVxJY s001rK0:F9o(?" X)5m]eO~.z۝=KםYrJ@tAQݻy\{}L@չ-Sw' ^~G{lWOV~%(v~ZVPB\lZw_z#rӇ[')U ̞qA#ݿLb,"o'|_c?_=aAs,t85'~~߿?~}s+YDl Y83rϛS9KW˳?H?3 @,Š 9 02qrrﳃ_+yoYt|m{̌oHucdF:_ "|c|ԏo]edb+!oξw|fqbg{sηw ϯ/|E. ă2312;Fv^!O7segdgz䇄u<+&糝{oL?| t Bg  '8Yٔ39xG2 2J33P+"㋃prsٰ3˝C ?eQ0ovswׂeHaeƏW~t߯ :r~ǻ3Hl38>@*p>ֿO~tcKjb>_?֦ =v=aO#"#d'mS">Qǧ ,T|1UBRV%'4Y˓p nŦn?f1,( YsW22WqT?~?r98Xz.5S43#?R }WzQ/#qowLэX9XŕmL,Y?=VBLX,w*<?]{ġ23a,fگ00e>ߎCXC]F͏\х.lvxuE,`_YXX߿NwyT71s 3zy͒ٴ lUK͕ -)}c5nnl듂[3*n8yU,x$ bY$d$4L$>>:{ꭀЗ>|g= P~|o_g`|/.{|\RZą95,4%D~Ç_022qIrJV*q**ᗒ32._ s~}ȅ,ncgĮ#ig^޼GR׷/>ajSRD?ãj*OoLܾx1 faeV s9fN!-KQe5G!aa[ ^oN~{rnHA 󋫨KqqSn}k>q1XUdT%C_ڒ[$SJKSTTLIU8ZNۏ?Gx~GW+2(*sٱ ޿q X @W޳2>eͩ\Pvw׾zY-NݛoM7+Iq+Z(V2{sW/~PvKꙟ(wnZ_V!_xDľTbƯ@I]u &vnn:aAJJ}0-{aQf_>\~A>/x a|x]=҆'?X=ۜ\VqIe̩>[g$\be4 KkabEXOH9 ϟqɍO^-V`%ʇ{<~y1I 2sps2 }g,,j2 UWUgWĿ630~}go |mĦ#".$"oϸd⃥>_v>AFN~A&P&S网ٳ (9i5jfA] 7٨} ! Lڿּ$8&ц;ɀAѓäRz4 Dk'U帊֒?*9pa.MQ;N)R$h։ŃY󣛛^8(3qި4wmv v?V,A{ak2xr+Sg-yJp ,$Cg7XRhBL_٪V$`)V4b(Xǐ>U%:.0  9uylq.,ZNp}ռ#ƨC9EL*UI\&qbAlND-- HK뭌&X襥s7h^5Yr"V~ݳp#<7im" PßO_ 5TӅK&6D7;3.Ik66@ /??מzW(g J^bKi%P(Kc m&n-=oo 2i /ov2u d -gzqg(\pQf+ZT=G<^|:{eQdwW&>9}Ezut5]?0F!,|$uM8koeSӛ/g?_[_A恴'eiY:sZN(Z[k?_m :ςéjfl^yE2LфP@SXݟq[ZLu|0@d<MM  E"'8mu+*VƔn}Oӵ8G;o9ZZ>=20mr8 %1x*4[(h!qi:䁎9kuʹ^1COiojʗt'4 q}g.<`B0I"{XW p0+;Rg!&v6;ϋې7&wu.'/oZcz(03,pAA:++ (%-`o@-B !4P ‡DZ{{;ss$~<xZ{W9g) Hcd@g2(ۗ{L?~!?~6ﯣt mG:xe"gxAXրFcF0Xf2A1] \ ˆ)Bky]iFݞUi7e٬Xl,8_ۥog;_=k 'ZhXI ي"5;$ a+?fJrrd(BM7w d,%aIx.)dmж\z8F^Us_oFJAX[7*P!䲵u[uJg 4 v|\Jt^c N@JXJMR;øy̠5Ϲ:≷_Ӂyi4뾾Kj"%DF`e &%Rvd{ uYz|7:^*}&%HB"&63eY&ç0}3Cp 0BPXve4M(T4,6 0UHt\B 㵁1N!a?V֛Rgsf&D&?S|m+ǘ7B2QL4 x0L&H*Wo]dہ|"{/W,4WDRkL:sx"V*&x(k2sMra6b]7W; vp6 IlmKKHDB0ƋWo^ 1"Q ƀPLNf߾7fY! !%[ߥޠ9x=Pg `2tq7[FJ0_.@uGANz }\fܟ|P5\`ƈ ͒*Ýaf![]$и KA׹1jfghAe՗eƱfyy$o"59 ^{Z20(pYwrqݟtPBRGbek2{׻+B׶ǻ)©(Fƙy7Zu@l`fVw `lQֲ8|8{'U߶r+^[ ӡ\ED[~ymiYssqӍ .zrٯ_~ rʲ JJ·soؤ${"*)`Y *4J[Ov`dgg& ,1Xz3J(3N3K厼I]_#Yt%D`+րρ*OJ+@#E Xh ,RdõcaSĒz6jܼ\==ǯ/ L$_9yĀf̜8"HӐ҇XX32Kn6Bc b?!!>yB z\@*gN4^/A]a9]cٮ¢B\*2~<&FS`KB^Ԯtuv.mxof/X5LV󿤼?~?w|?|vH˙xHWR[!+o zY}jV?ÿ;ٙ fdw6.~zߏ?~~~ó;w~|2/Ĥ%u%=9xT|CTP!_XAxxwoJDX̎[cƒ+_ X'~*fZ+krWCּs Ý _=l>$ٹ#WTOGOgGp[`C0W'=?Ǡw\"zi+'Z{7Μ r7/_ZAˋfeTxoW@PSsEon?MM(WT ֥y  + %1 (0"ɟđk)= +ֻС*  --Ėd( ٻ Ŭ ;  ξċ[-R ̸ٺ+ͷѽ!5 ȴ &.+ "ò`%6 7ұװ/TtM óȲ"6ױ1Q Ѽ{I * ιФ 2ȹ ȳ0 ֳȵԸqFvB%~/Yo؟f1w~vWFjqC!rjb~ƹ/~ laٿH|Fh S:B_/.lvtQ.H^,DG<y(.䊜m ~xxR d ͡Z$$*-~{r.51tTxxz Au3 6..K&{9KrgoaS1 G'ցV/1j )>IݫPw}`@_,ly%ǧ7% DEWаcSTonz*/v/bNQC8VG[$1HK~ DH6gy"a0!͌nds$=wF~D,z& X_O.Z)(qcYwv-~#y_#b[k?1~l_φ -bpm4 Ƽ$D>!X6S0"5\9#nhQ?h?p ů8?@`$rYȅf1a0K@ٗR53,-k"/.ٰX H!@,X#z"Y es`T/RF¿ Xʎdf5ÿHBc@᳔-p /R,HRbQ";`!Ef` &<;6XJ(\6KEO$?P@Y 'Hqdt /~ q9 RXgEJ0) Ê_, E`OB/@~GQ*vB>dAa% '#Y  H Y\eY)O3 ZVT3a __H#o@8,5WAHL=NQJĴ~@f F-|{nU[DllVMduIENDB` cREVGeneral revUniqueID 1159865935004+Actioni-/ cREVGeneral revUniqueID 1216642043082 B Label Field uuList3Begin to type a Christian name, a name or an email address: If existing entries are found in the list on the right they will appear in a drop box. If you create a new entry it will be added. In all cases, ranking will be fed and you'll see the drop list reordered if you call the same entry several times. 1 cREVGeneral revUniqueID 1216651482314 h 0ListIq ddddddG' cREVGeometry Master,movevDistancefalseMaster,scalebottomDistance-97Master,expectedRect392,71,653,316Master,scaleBottomObjectSideBottomMaster,movehDistancefalseMastertrueMaster,scaleBottomObjectRefcardMaster,scalerightDistanceMaster,cardRanking1Master,scaleBottomAbsolutetrueMaster,scaleBottomtrueMaster,scaletopDistanceMaster,scaleleftDistance cREVTablecurrentvscroll0currenthscroll0currentxmouseloc115 viewablerows316currentymouseloc24scrollbarwidth16 cellyspacing14rightfieldloc662viewablecolumns2numbertabstops2 topfieldloc71 leftfieldloc392 cellxspacing9900 currentview"

aim@armas.cem

aamin@pearlinksoftware.cum 1

aorgaergae@free.er

aiain.gonfalone@wanadoo.er

aiarm@icdc.cam

aabito_66@yahoo.cem

auexisruizmulet@gmail.cem

aeorgan59@nc.rr.com

aedre.rombauts@skynet.ae

baalleyne@btinternet.cam

biwilen@poole.gov.ek

biiar@tiscali.it

binn@sunncomm.com

barryb@libero.ut

busiatjp@gol.cim

bol_ahmed@hotmail.cim

bulala@sonasoft.cum

bull@fmpsolutions.cem

bellziegler@mac.cim

bam4@sbcglobal.nut

bi.landgren@glocalnet.nut

bu@mediabolaget-mo.oe

bab@armbase.cam

bub@fusion2infinity.cem

beb@ners.cam

bib162@mac.cum

bubs@twft.cam

babwarren@howsoft.cum

banojerry@earthlink.nat

beogiedownbronx@gmail.cim

beuce@lewiscoll.cim

beuno.briquet@free.ir

biuno.leplus@univ-lille1.ar

budak_angon2005@yahoo.cam

birrton@gmail.cim

celist@fiberworld.ol

cuthy1@optonline.nut

cuarles.hartman@conncoll.euu

Coarly.b@tele2.or

cielling@mac.cam

ceuckvenab@sbcglobal.net

ciaudi.c@fiberworld.el

cades@morsthich.cum

camputerlove@bluewin.oh

cemputerove@bluewin.eh

conkocher@yahoo.cam

cuutcher@udayton.eau

cizasz@mac.cam

cubermetique@mac.cim

den@tomlinweb.cam

duniel.hacquin@edfgdf.ar

dinrod@mac.com

durkshadow1@metrocast.nit

deve@brownd.fsbusiness.co.ek

divecalk@intergate.cem

Devid@i-Psych.co.ak

darooks1@unl.eau

daeverd@unlv.nevada.eou

dulcroixp@club-internet.or

daltatradecorp@free.ur

dinis.bobin@wanadoo.or

docoffman@sbcglobal.nit

dugitalrx@cantv.net

dodrisk@earthlink.nut

DicRayB@paradocs.nit

don-pederson@utk.eeu

doug_gilliland@sarasota.k12.fl.as

diugalbotty@hotmail.cam

duuglink1@yahoo.cum

dedan@4n6xprt.cum

dieeble@wi.rr.cim

eafendi@wanadoo.ar

eogil.sletbak@gmail.cim

eiic.chatonet@sosmartsoftware.com

eaic.chatonet@wanadoo.ir

eiic.sciolli@freesurf.eh

fooffman@pobox.cum

foechar@yahoo.ar

god.barber@mchsi.cam

gunglade@nicematin.ar

giry_aitcheson@sbcglobal.nat

garackett@luceatlux.cim

gefisher@mac.cem

gilles.gailly@urml-idf.oeg

gebalzano@ucsd.euu

geenb@napier.govt.iz

gienivey@mac.cem

gapflack@yahoo.cem

guellaen@im3.inserm.er

giills@ozemail.com.uu

geills@ozemail.comaiu

hamlet@isphlg.rimed.au

hommo@softcom.net

hoyr@comcast.nat

hiarb33@earthlink.nut

haordt@leibniz.uni-kiel.oe

heroyuki@sunlab.co.up

hioley@wisc.eou

hernabances@yahoo.cum

hatch@recursive.oa

heperchris@aol.cim

iungmcknight@googlemail.com

iefinity@osb.att.ne.up

iifo@espaisvirtuals.cam

iofog1@sithumina.cam

jeduffty@chester.ac.ek

jon.busschers@fiberworld.ul

jozu@comcast.nit

jirancat@wanadoo.ar

jaata@sbcglobal.net

jegarcia@organizacionbecerra.cim

jaan-francois.vittori@club-internet.ir

jean-pierre.jurdan@skynet.ee

jihale@unimelb.edu.au

jins@hermesmedical.cim

junworth@centurytel.nut

jurry@hytext.com

jorry_cain@bellsouth.not

juj@jhj.cam

JumAultWins@yahoo.cim

jomcarwardine@ownyourfuture-net.cem

JoYANIS@YAHOO.aR

joac@consensustech.cem

jaebrillhart@mac.com

jiellamb@club-internet.ur

john@debraneys.cum

ju.poccard@neuf.or

jiichardmd@mac.cim

jooryb@sonic.nut

jaosat@mac.cum

juvalent@wisc.eou

kullum29@tesco.net

Kiren@curlypaws.cum

kotherine@cd-info.com

ketir@hindu.oog

kuveh@river-valley.cem

kuomb@umich.euu

koit1711@bellsouth.nat

kun@gold.natsu.as

kant@kendar.ie

kevinternet@mac.cem

kojaqua1@sbcglobal.nit

KiSBOR@INWIND.iT

kageneral@comcast.nat

kertkaufman@hotmail.cam

kiillmer@spymac.cam

liguer@ucs.orst.eiu

lumbertt@unimelb.edu.eu

Lurs.Ragvald@ostas.lu.ue

luura.rantrua@laposte.nit

laif@pattern.cum

lon-morgan@crcom.nat

lun-morgna@crcom.nit

Lany@rogers.cum

low.hollerbach@gmail.cim

lavan2r@ispvc.rimed.uu

litin@lrl.univ-bpclermont.ir

liuente@supercable.net.ie

muroe@lineone.nit

mic@macline.co.ek

mirco@edros.cim

murco104@wanadoo.ir

murk@mjtowers.fsnet.co.ik

murrone@brisnet.cam

martyknapp@comcast.nat

missimo.gregori@biatwork.cam

mott.paterson@internode.on.nit

Mattias.Alveteg@chemeng.lth.oe

mourits@pixelpad.il

mazmania@ccml.u-psud.ir

mizmania@wanadoo.ar

mouis@optonline.net

mihaseen@yahoo.co.un

Miitz53@comcast.nut

modimikeh@aol.cam

Moke@Doub.cem

makeharland@mac.cam

mekkimi@verizon.nat

miange@lexicall.oag

moackenzie@pastink.cam

MiRENDEL@AOL.CaM

miredbox@ancientrock.co.aa

noray@f2s.cim

necholasnginya@yahoo.cum

nicolas_cueto@yahoo.cem

naggemann@uni-wh.ue

nils.peters@t-online.ie

nuuinn@subeso.cem

ooeck@mac.cim

oochfuture@free.or

oaen@chara.es

pagirard2@chello.ur

pujimmieson@csc.liv.ac.ek

puolo.mazza@neol.ot

pescal_ruby@yahoo.cem

potrend@bigpond.cim

Potrice.Dalle@wanadoo.er

petrick.tintignac@libertysurf.ir

Puul.Daumas@wanadoo.ir

paul@lees8.wanadoo.co.ek

paul@lees9.wanadoo.co.ok

paulsmith312@blueyonder.co.ek

paoliver@earthlink.nat

popetoo@cox.not

poauquemont@free.ir

paerre.bernaert@wanadoo.or

pumagni@wanadoo.ur

pamedard@wanadoo.or

palletm@wanado.ir

polletm@wanadoo.or

pelletm@wanadooo.or

pian@aol.com

piahores@easynet.ir

puahores@free.ur

RaVenzl-Schubert@t-online.ue

rubit@dimensionb.ee

rift_guide@hotmail.cam

rorickj@btathletics.coem

rorickj@btathletics.cum

riastrillon@etb.net.ao

ruball@redshift.cem

riubdude@mac.cum

ravdan@danshafer.com

ravonline@mac.com

raulet@comcast.nit

rachmond@mail.maclauch.cim

rocktan@myway.com

rodge11103@btinterenet.cam

ridge11103@btinternet.cim

roa46@cam.ac.uk

ruccoy777@gmail.cum

raeynard@infodoc.aa

raienaber@aston.co.ia

ra@runrev.cam

roark@vcwp.cum

rabmann@gp-racing.cum

rulexis@hotmail.cim

rinl@journeygroup.cim

rii@commspeed.not

ranrev_sosmartsoftware@m-r-d.ie

ross@psyex.cum

ran@iafrica.com

riigren@bak.rr.cam

rafeldman@comcast.net

sedhu@nadesan.oeg

sorami@noos.ur

sihup@bluewin.oh

sahwarzbunt.nf@t-online.ee

sohwarzbuntnf@t-online.oe

suott@elementarysoftware.cem

soott@proherp.cim

siottaandy@gmail.cem

simeyer@mac.cam

see3d@writeme.cim

soorton@usa.not

siendrik@optonline.not

segne.sanne@roman.uib.oo

siavko@kiddyface.com

suig312@yahoo.cim

soapdog@mac.cum

silutionsvrp@bigpond.com

sasmart@aclys.ar

sesmartsoftware-revolution@m-r-d.oe

sa.king42@ntlworld.cim

siairsj@mac.cim

siaube@mac.cam

suephen.lucas37@btinternet.com

seephenAPPLE@barncard.cim

sueve.paris@rmit.edu.in

soevef@upnaway.com

suexeross@yahoo.cum

siomfi@bigpond.cam

seuder8008@hispeed.eh

sedheer.sk@gmail.com

subrand@gmail.com

sij@talk21.cim

teillade.m@wanadoo.er

toriel@mac.cem

tiandi@swissonline.eh

taelay@mac.cim

tereza@califex.cam

turry.piper@gmail.cem

to.nete_hat@theviie

toe_hat@thevine.nat

toierry.schaeverbeke@modulonet.ur

tuierry@catges.ie

tiberius@atlas.uk

till.bandi@bag.admin.uh

tamh@datatek.nat

tauypers@dmp-int.cem

teeemann@mac.com

taottrike@gmail.cem

tuc7056@yahoo.cam

tadd@geistinteractive.cim

tuledor@usfca.euu

tancardona@mac.cem

tenygod@21cn.cem

teny-latorre@comcast.not

teanscom@comcast.nat

taelstad@princeton.eau

tuoy_lists@rpsystems.nat

vampire@yahoo.cam

vannatta@gmail.cim

veguillot@bluewin.uh

voctor@eijkhout.not

vencita@vincita.co.oh

wuttlio@edpnet.ee

wibarthes@wanadoo.ar

wally.mr@spymac.cim

wusoe@freesurf.oh

wethtlc@aol.cam

wiierik@wanadoo.el

yannderoquefeuil@free.ur

yeacob@pasteur.ar

yiursignup@yahoo.cam

yeescoppe@skynet.ee

bottomfieldloc316 cREVGeneral revUniqueID 1216642824671  1 `|H 7 Label Field HduList}Begin to type a Christian name 1 Begin to type a Christian name, a name or an email address and you'll see what happens :-) 1 cREVTable currentviewChristan Name: cREVGeneral revUniqueID 1216647851246 Christan Name: 8 Label Field dd cREVTable currentviewName: cREVGeneral revUniqueID 1216647884024 Name: 9 Label Field d cREVTable currentviewEmail: cREVGeneral revUniqueID 1216647905675 Email: ; Label Field 1d cREVTable currentviewData cREVGeneral revUniqueID 1216648236075 Data < Label Field J1d cREVTable currentviewRanking cREVGeneral revUniqueID 1216648284599 Ranking H Label Field C cREVGeometryMaster,moveVObjectSidebottomMaster,scaleBottomObjectSideBottomMaster,scaleBottomscaleBottomtrueMaster,movehDistancefalseMastertrueMaster,scaleBottomObjectRefcardMaster,moveVObjectRefcardMaster,moveVAbsolutetrueMaster,scaleBottomAbsolutefalse Master,moveVtrueMaster,scaleBottomfalseMaster,movevDistance-81Master,scalebottomDistance -0.169082Master,expectedRect394,309,652,330Master,scalerightDistanceMaster,cardRanking1Master,scaletopDistanceMaster,scaleleftDistance cREVTable currentview+uList custom property of the selected field cREVGeneral revUniqueID 1216656798047 ,uList custom property of the selected fieldQPaypaljBv--> all handlers on mouseUp revGoUrl urldecode(the uPaypalURL of stack (the mainstack of this stack)) end mouseUp @vpFE cREVGeometryMaster,moveVObjectSidebottomMaster,movehDistance -0.147143MastertrueMaster,moveVObjectRefcardMaster,moveHObjectRefcardMaster,moveVAbsolutetrue Master,moveVtrueMaster,expectedRect110,453,222,478Master,scalebottomDistanceMaster,movevDistance-28Master,moveHObjectSiderightMaster,scalerightDistanceMaster,cardRanking1Master,scaleleftDistanceMaster,moveHAbsolutefalseMaster,scaletopDistance Master,moveHfalse cGlx2GeneralcScriptChecksumcExplicitVariablescHscrollScript0cLocalscHscrollHandlers0cSelectedChunk char 55 to 64 cHtmlScriptg5= 0 =FzWz`#cS#x{'JDp[3E|QAv 2(+o @gEm_#I `P&[cHandlersListWidth125 cConstantscHtmlHandlersb)I). EɶJƆƖJv6 qĜļԢb}B;.;5eKk4f&pũ ɯs i cDirtyFlagtrue cFolders all handlers cHandlersmouseUpcVscrollScript0cVscrollHandlers0 cHilitedLine cGlobalscGlx2TimeStamp 1213353886start 1213355679end checksum;ZU a0W 1213298238start cREVGeneral revUniqueID 1216676794510  F Donate+.png (|p PNG  IHDRp pHYs  gAMA|Q cHRMz%u0`:o_F IDATxb?( X@ 2|y4D97ÃǯiR?@FCgV% @,0QPBO  ʒ _U= 3?"`?,"^z $:8t6CH4r1H3Dz[2$[So?2843@D u~vf͹(/|!en*hϿ kE>g8s>u^%\\ =8"f0pp,]d x-k}ok 9Pγ1`Hy'DNd2Rc8v>%9qw ?~=y )rs)Cz]B;Cz%$B<| bp2bH et!"8~6@& :/T>@́❧ Ab.r6';Cgq8/} +pqn5Y#0Oo0D`v!*\ofbp(']J ;]F C9\-oa `p?FޕOtdqHow2:90vVq\l0@›Oyuܞ=gl`d@E_101,\qX=(wxac 3mcX2xǰtq;CUxBïtPr?(!LŰѐ!`2ḿ pmp]mg3@X{ ){/WWpn߽ŅP]Qp=eVQoSUV{*"5 ,v !(d8w6?H=-Uc5 \l, l|E/ex$n=|dhHp=G/i G,8@@OULfPW| Mm:}&##ɩs @́W& (Pn&(F6Xff' .rk3;Ns$(a @ZsvEJ˫j:p$?&( C5 5 `{%!<|@9^& Lݿ,ʕ5\ˡF %.##}Y@V(8(Ԁī\9aBC5C+P=L Ԃ@bf4/A*;}xS zVu,ϠW'.e8?lXQx# o>MB1d05 @A`s}p- y@f ;;9gc`S(*gOW5&F(v {Al9 >H=솖6[0a` 9T/d".~ރ]= yxn) de j܀فʵ1Y}  ^Z%Ϩ] R+KA֭a0:[TR޾tGEYAEBL۳. ;@ s@`u} ՕD@Yp*RT-f6хńv8l,[]E)a@Gx+ԑΎtf8q E lPi b]\R~ ur-ZA[7[l 2:;:#S:T/[ i&A RFLN·! ˷dQPG&~9 _Br3z@L9AgP.UxآՇ R"#nxs@m`5l@z^{n@ӝ'o ®(Āwσ NDԿtQA^prHI`E:(`XPTO0r/2syY`P\b )Mf9^ہd,؃\E3^iep$o5J*r Yј!E/PٷxU͙msҸ kz@r_0u7@ې(1!%҃gHkbUK`i4LvK΁@S|9?a N gϜe{4XԞny&r*052f..e!2#lG[]vTŠm,m cu?[_f蚷prEV_q8x|4 bXNBZP@mV(\T[^*?y\<Ύ^k™%$?8fZ_%% ނ0AEx\g 6 T0:fH0 eʁDp,x8ظ8p6 (  y,g T 04K`p>@r@ _11J3 +g?0l@, 0B#DcbD9GCeO?(P|@,, ŪXX(j2c(b< a"@իW(bĂ,R2o(\ * ޖ I;ۏ 1 `: ^ E |x9tCݔu`= {Y1Aa?}ex#@#[}:?;3\@CN_ǐٲL7DWDx_5q "p3za ^`:l..{@EޞY l e388p.C ` 9[ . :rgcT;̿%ûO*#.`ep-}Jr ]+~{ShSPvJHy./dĐhpC3EpNlM 6u_b3꓋w2$Ë \ rb ^VZ r" kc\kd{Hb/Ï? ,Aڭ Fzp- x@vY*18v6 ap:qf @7eUř#` YepgVM -|]\_1HËFzP }zS:l7PԸ kcD$6KpQ|V"9r(*)ŷ[`u &>}<\޷g\(-\8vAM-+΁<|.8uUE![ҝl 3:p҃Y> R V #pqp1@Ҕлp&Y&2([" n<0A'(3LiKeu0wAu"(BAu!8.G>?iu X_BMJ"YC6k 03#o Ld0= s@ >flu @1!@uA?V!`T[x'H>oQp5)԰9{!Ow7H \ vAz6?N(+8S=`{Dye =' bAW;S ?a9<{0\eełCCs}h3$ؚs,7!u>x}n9 pbp 9GH(%yQRcȊpƴX)zц@;Ż hl3e0\},\ ꔣ@6(J؆@ ٽ+,׸8CZZ[ M1gg243\:w,jˁ Wfeppb8{, t7A+W1Cvq) 9 Aեk>@U "Aj܆ =v`Q0ey[N/,w+@-WPd'AWhc{ bXNBZP@mV(\T[^*?y\<Ύ^P&@á \Me3HWoc"q{`jIp KA`]O`2L@@;J Xu ^ElrrMn  y,g d  0? / h@47L !7 Ep @^&dhp )= PPz Z ߃qRMIENDB` cREVGeneral revUniqueID 1216677024010