pax_global_header00006660000000000000000000000064125756212520014521gustar00rootroot0000000000000052 comment=756fcc03847e883a4c03aab37884877e131f1e57 psychopy-1.82.02.dfsg/000077500000000000000000000000001257562125200144735ustar00rootroot00000000000000psychopy-1.82.02.dfsg/.gitattributes000066400000000000000000000000741257562125200173670ustar00rootroot00000000000000*.txt eol=crlf *.bat eol=crlf *.nsi eol=crlf *.py eol=lf psychopy-1.82.02.dfsg/.gitignore000066400000000000000000000023311257562125200164620ustar00rootroot00000000000000######################################### # Editor temporary/working/backup files # .#* [#]*# *~ *$ *.bak *.kdev4 .project .pydevproject /.ropeproject/config.py /.ropeproject/history /.ropeproject/objectdb /.spyderproject # Compiled source # ################### *.a *.com *.class *.dll *.exe *.o *.py[ocd] *.so # Python files # ################ *__pycache__* # setup.py working directory build _build # sphinx build directory doc/_build # setup.py dist directory dist # Egg metadata *.egg-info # tox testing tool .tox # OS generated files # ###################### .directory .gdb_history .DS_Store ehthumbs.db Icon? *.orig old Thumbs.db nonSVN .hg* *.log # Things specific to this project # ################################### PsyScope* psychopy1 psychopy/demos/coder/misc/frame* psychopy/demos/*.psydat #psychopy/demos/*/*/*.csv psychopy/*/*/*/data/*.xlsx psychopy/*/*/*/data/*.psydat psychopy/demos/*/*/*.pickle psychopy/demos/*/*/*.psydat psychopy/tests/*Out.* psychopy/tests/data/*_local.png psychopy/tests/*htmlcov* /iohub_docs/*.bat /iohub_docs/*.txt sitePrefs.cfg appData.cfg *.iohpid *.paths *.EDF *.mp4 *.hdf5 *.7z # Documentation generated files # ################################# .coverage .idea builddocs.sh nonSphinx psychopy-1.82.02.dfsg/.hgignore000066400000000000000000000000041257562125200162700ustar00rootroot00000000000000.svnpsychopy-1.82.02.dfsg/.svnauthors000066400000000000000000000002651257562125200167130ustar00rootroot00000000000000jon.peirce = Jon Peirce peircej = Jon Peirce yarikoptic = Yaroslav Halchenko jrgray = Jeremy Gray psychopy-1.82.02.dfsg/.travis.yml000066400000000000000000000043271257562125200166120ustar00rootroot00000000000000# vim ft=yaml # travis-ci.org and coveralls definition for PsychoPy tests language: python python: - "2.7" virtualenv: system_site_packages: true before_install: - sudo apt-get update -qq - sudo apt-get install lsb-release - source /etc/lsb-release - echo ${DISTRIB_CODENAME} - wget -O- http://neuro.debian.net/lists/${DISTRIB_CODENAME}.us-nh.full | sudo tee /etc/apt/sources.list.d/neurodebian.sources.list - wget -q -O- http://neuro.debian.net/_static/neuro.debian.net.asc | sudo apt-key add - - travis_retry sudo apt-get update -qq - sudo apt-cache policy # What is actually available? - travis_retry sudo apt-get install -qq xvfb xauth libgl1-mesa-dri - travis_retry sudo apt-get install -qq python-pyglet python-pygame python-opengl - travis_retry sudo pip install -qq gevent # Don't use apt-get (too old version of gevent) - travis_retry sudo apt-get install -qq python-yaml python-xlib - travis_retry sudo pip install -qq psutil # Don't use apt-get (too old version of psutil) - travis_retry sudo pip install -qq msgpack-python #not apt-get (no permissions for universe) - travis_retry sudo apt-get install -qq python-numpy python-scipy python-matplotlib python-lxml - travis_retry sudo apt-get install -qq python-configobj python-imaging python-openpyxl python-mock python-wxgtk2.8 libavbin0 python-pyo - travis_retry sudo apt-get install -qq python-pandas install: - travis_retry sudo apt-get install -qq flac - flac -version #- travis_retry sudo apt-get install -qq language-pack-en-base # English locales - travis_retry sudo apt-get install -qq language-pack-ja-base # Japanese locale #- sudo dpkg-reconfigure locales #- locale -a # list available locales - if [[ $TRAVIS_PYTHON_VERSION == 2.7 ]]; then pip install -q coveralls; fi - if [[ $TRAVIS_PYTHON_VERSION == 2.7 ]]; then pip install -q pyserial pycrsltd; fi script: - if [[ $TRAVIS_PYTHON_VERSION == 2.7 ]]; then xvfb-run -s "-screen 0 1024x768x24 -ac +extension GLX +render -noreset" coverage run --rcfile=.travis_coveragerc psychopy/tests/runPytest.py -v -s -m "not needs_sound"; else { echo "TODO while avoiding duplication"; exit 1; } fi after_success: - if [[ $TRAVIS_PYTHON_VERSION == 2.7 ]]; then coveralls; fi psychopy-1.82.02.dfsg/.travis_coveragerc000066400000000000000000000001041257562125200201770ustar00rootroot00000000000000[run] branch = True omit = /usr/* /home/travis/virtualenv/* psychopy-1.82.02.dfsg/EnvVarUpdate.nsh000066400000000000000000000241011257562125200175470ustar00rootroot00000000000000/** * EnvVarUpdate.nsh * : Environmental Variables: append, prepend, and remove entries * * WARNING: If you use StrFunc.nsh header then include it before this file * with all required definitions. This is to avoid conflicts * * Usage: * ${EnvVarUpdate} "ResultVar" "EnvVarName" "Action" "RegLoc" "PathString" * * Credits: * Version 1.0 * * Cal Turney (turnec2) * * Amir Szekely (KiCHiK) and e-circ for developing the forerunners of this * function: AddToPath, un.RemoveFromPath, AddToEnvVar, un.RemoveFromEnvVar, * WriteEnvStr, and un.DeleteEnvStr * * Diego Pedroso (deguix) for StrTok * * Kevin English (kenglish_hi) for StrContains * * Hendri Adriaens (Smile2Me), Diego Pedroso (deguix), and Dan Fuhry * (dandaman32) for StrReplace * * Version 1.1 (compatibility with StrFunc.nsh) * * techtonik * * http://nsis.sourceforge.net/Environmental_Variables:_append%2C_prepend%2C_and_remove_entries * */ !ifndef ENVVARUPDATE_FUNCTION !define ENVVARUPDATE_FUNCTION !verbose push !verbose 3 !include "LogicLib.nsh" !include "WinMessages.NSH" !include "StrFunc.nsh" ; ---- Fix for conflict if StrFunc.nsh is already includes in main file ----------------------- !macro _IncludeStrFunction StrFuncName !ifndef ${StrFuncName}_INCLUDED ${${StrFuncName}} !endif !ifndef Un${StrFuncName}_INCLUDED ${Un${StrFuncName}} !endif !define un.${StrFuncName} "${Un${StrFuncName}}" !macroend !insertmacro _IncludeStrFunction StrTok !insertmacro _IncludeStrFunction StrStr !insertmacro _IncludeStrFunction StrRep ; ---------------------------------- Macro Definitions ---------------------------------------- !macro _EnvVarUpdateConstructor ResultVar EnvVarName Action Regloc PathString Push "${EnvVarName}" Push "${Action}" Push "${RegLoc}" Push "${PathString}" Call EnvVarUpdate Pop "${ResultVar}" !macroend !define EnvVarUpdate '!insertmacro "_EnvVarUpdateConstructor"' !macro _unEnvVarUpdateConstructor ResultVar EnvVarName Action Regloc PathString Push "${EnvVarName}" Push "${Action}" Push "${RegLoc}" Push "${PathString}" Call un.EnvVarUpdate Pop "${ResultVar}" !macroend !define un.EnvVarUpdate '!insertmacro "_unEnvVarUpdateConstructor"' ; ---------------------------------- Macro Definitions end------------------------------------- ;----------------------------------- EnvVarUpdate start---------------------------------------- !define hklm_all_users 'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"' !define hkcu_current_user 'HKCU "Environment"' !macro EnvVarUpdate UN Function ${UN}EnvVarUpdate Push $0 Exch 4 Exch $1 Exch 3 Exch $2 Exch 2 Exch $3 Exch Exch $4 Push $5 Push $6 Push $7 Push $8 Push $9 Push $R0 /* After this point: ------------------------- $0 = ResultVar (returned) $1 = EnvVarName (input) $2 = Action (input) $3 = RegLoc (input) $4 = PathString (input) $5 = Orig EnvVar (read from registry) $6 = Len of $0 (temp) $7 = tempstr1 (temp) $8 = Entry counter (temp) $9 = tempstr2 (temp) $R0 = tempChar (temp) */ ; Step 1: Read contents of EnvVarName from RegLoc ; ; Check for empty EnvVarName ${If} $1 == "" SetErrors DetailPrint "ERROR: EnvVarName is blank" Goto EnvVarUpdate_Restore_Vars ${EndIf} ; Check for valid Action ${If} $2 != "A" ${AndIf} $2 != "P" ${AndIf} $2 != "R" SetErrors DetailPrint "ERROR: Invalid Action - must be A, P, or R" Goto EnvVarUpdate_Restore_Vars ${EndIf} ${If} $3 == HKLM ReadRegStr $5 ${hklm_all_users} $1 ; Get EnvVarName from all users into $5 ${ElseIf} $3 == HKCU ReadRegStr $5 ${hkcu_current_user} $1 ; Read EnvVarName from current user into $5 ${Else} SetErrors DetailPrint 'ERROR: Action is [$3] but must be "HKLM" or HKCU"' Goto EnvVarUpdate_Restore_Vars ${EndIf} ; Check for empty PathString ${If} $4 == "" SetErrors DetailPrint "ERROR: PathString is blank" Goto EnvVarUpdate_Restore_Vars ${EndIf} ; Make sure we've got some work to do ${If} $5 == "" ${AndIf} $2 == "R" SetErrors DetailPrint "$1 is empty - Nothing to remove" Goto EnvVarUpdate_Restore_Vars ${EndIf} ; Step 2: Scrub EnvVar ; StrCpy $0 $5 ; Copy the contents to $0 ; Remove spaces around semicolons (NOTE: spaces before the 1st entry or ; after the last one are not removed here but instead in Step 3) ${If} $0 != "" ; If EnvVar is not empty ... ${Do} ${${UN}StrStr} $7 $0 " ;" ${If} $7 == "" ${ExitDo} ${EndIf} ${${UN}StrRep} $0 $0 " ;" ";" ; Remove ';' ${Loop} ${Do} ${${UN}StrStr} $7 $0 "; " ${If} $7 == "" ${ExitDo} ${EndIf} ${${UN}StrRep} $0 $0 "; " ";" ; Remove ';' ${Loop} ${Do} ${${UN}StrStr} $7 $0 ";;" ${If} $7 == "" ${ExitDo} ${EndIf} ${${UN}StrRep} $0 $0 ";;" ";" ${Loop} ; Remove a leading or trailing semicolon from EnvVar StrCpy $7 $0 1 0 ${If} $7 == ";" StrCpy $0 $0 "" 1 ; Change ';' to '' ${EndIf} StrLen $6 $0 IntOp $6 $6 - 1 StrCpy $7 $0 1 $6 ${If} $7 == ";" StrCpy $0 $0 $6 ; Change ';' to '' ${EndIf} ; DetailPrint "Scrubbed $1: [$0]" ; Uncomment to debug ${EndIf} /* Step 3. Remove all instances of the target path/string (even if "A" or "P") $6 = bool flag (1 = found and removed PathString) $7 = a string (e.g. path) delimited by semicolon(s) $8 = entry counter starting at 0 $9 = copy of $0 $R0 = tempChar */ ${If} $5 != "" ; If EnvVar is not empty ... StrCpy $9 $0 StrCpy $0 "" StrCpy $8 0 StrCpy $6 0 ${Do} ${${UN}StrTok} $7 $9 ";" $8 "0" ; $7 = next entry, $8 = entry counter ${If} $7 == "" ; If we've run out of entries, ${ExitDo} ; were done ${EndIf} ; ; Remove leading and trailing spaces from this entry (critical step for Action=Remove) ${Do} StrCpy $R0 $7 1 ${If} $R0 != " " ${ExitDo} ${EndIf} StrCpy $7 $7 "" 1 ; Remove leading space ${Loop} ${Do} StrCpy $R0 $7 1 -1 ${If} $R0 != " " ${ExitDo} ${EndIf} StrCpy $7 $7 -1 ; Remove trailing space ${Loop} ${If} $7 == $4 ; If string matches, remove it by not appending it StrCpy $6 1 ; Set 'found' flag ${ElseIf} $7 != $4 ; If string does NOT match ${AndIf} $0 == "" ; and the 1st string being added to $0, StrCpy $0 $7 ; copy it to $0 without a prepended semicolon ${ElseIf} $7 != $4 ; If string does NOT match ${AndIf} $0 != "" ; and this is NOT the 1st string to be added to $0, StrCpy $0 $0;$7 ; append path to $0 with a prepended semicolon ${EndIf} ; IntOp $8 $8 + 1 ; Bump counter ${Loop} ; Check for duplicates until we run out of paths ${EndIf} ; Step 4: Perform the requested Action ; ${If} $2 != "R" ; If Append or Prepend ${If} $6 == 1 ; And if we found the target DetailPrint "Target is already present in $1. It will be removed and" ${EndIf} ${If} $0 == "" ; If EnvVar is (now) empty StrCpy $0 $4 ; just copy PathString to EnvVar ${If} $6 == 0 ; If found flag is either 0 ${OrIf} $6 == "" ; or blank (if EnvVarName is empty) DetailPrint "$1 was empty and has been updated with the target" ${EndIf} ${ElseIf} $2 == "A" ; If Append (and EnvVar is not empty), StrCpy $0 $0;$4 ; append PathString ${If} $6 == 1 DetailPrint "appended to $1" ${Else} DetailPrint "Target was appended to $1" ${EndIf} ${Else} ; If Prepend (and EnvVar is not empty), StrCpy $0 $4;$0 ; prepend PathString ${If} $6 == 1 DetailPrint "prepended to $1" ${Else} DetailPrint "Target was prepended to $1" ${EndIf} ${EndIf} ${Else} ; If Action = Remove ${If} $6 == 1 ; and we found the target DetailPrint "Target was found and removed from $1" ${Else} DetailPrint "Target was NOT found in $1 (nothing to remove)" ${EndIf} ${If} $0 == "" DetailPrint "$1 is now empty" ${EndIf} ${EndIf} ; Step 5: Update the registry at RegLoc with the updated EnvVar and announce the change ; ClearErrors ${If} $3 == HKLM WriteRegExpandStr ${hklm_all_users} $1 $0 ; Write it in all users section ${ElseIf} $3 == HKCU WriteRegExpandStr ${hkcu_current_user} $1 $0 ; Write it to current user section ${EndIf} IfErrors 0 +4 MessageBox MB_OK|MB_ICONEXCLAMATION "Could not write updated $1 to $3" DetailPrint "Could not write updated $1 to $3" Goto EnvVarUpdate_Restore_Vars ; "Export" our change SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000 EnvVarUpdate_Restore_Vars: ; ; Restore the user's variables and return ResultVar Pop $R0 Pop $9 Pop $8 Pop $7 Pop $6 Pop $5 Pop $4 Pop $3 Pop $2 Pop $1 Push $0 ; Push my $0 (ResultVar) Exch Pop $0 ; Restore his $0 FunctionEnd !macroend ; EnvVarUpdate UN !insertmacro EnvVarUpdate "" !insertmacro EnvVarUpdate "un." ;----------------------------------- EnvVarUpdate end---------------------------------------- !verbose pop !endif psychopy-1.82.02.dfsg/MANIFEST.in000066400000000000000000000020631257562125200162320ustar00rootroot00000000000000recursive-include psychopy *.txt recursive-include psychopy *.png recursive-include psychopy/app/Resources *.icns recursive-include psychopy/app/Resources *.ico recursive-include psychopy/app/Resources *.ttf recursive-include psychopy/app/Resources *.desktop recursive-include psychopy/app/locale *.mo recursive-include psychopy/app *.spec *.xsd recursive-include psychopy/monitors *.ico recursive-include psychopy/iohub *.yaml recursive-include psychopy/iohub/devices/eyetracker/hw/sr_research/eyelink/win32 *.pyc *.dll *.pyd recursive-include psychopy/visual/textbox/fonts *.ttf recursive-include psychopy/demos/coder *.mov *.jpg *.ttf *.yaml *.py *.part *.xlsx *.xls recursive-include psychopy/demos/builder *.psyexp *.csv *.xlsx *.wav *.yaml recursive-include psychopy/preferences *.spec recursive-include psychopy/tests *.mp4 *.mov *.jpg *.psyexp recursive-include docs *.rst *.py recursive-include docs *.rst *.py recursive-include docs/source/_static * recursive-include docs/source/_templates *.html prune docs/build prune docs/source/nonSphinx prune windlls psychopy-1.82.02.dfsg/PsychoPy2_screenshot.png000066400000000000000000003520551257562125200213100ustar00rootroot00000000000000PNG  IHDR$$B iCCPICC Profilex{<03f c9 CBL)i(*#fƄ< ($B $yrzȡSKIϹ{g}޿{-@_8?ggpr$P@(8ll GLiX[KV}j;Ei)N&ǃFl `*[ 8<$0a 8b B6Še38",!ϳ^Lo%5>~8Q@VL A G#EєX8#fGY A Iɕ)CǦ3ZYA'Nj}?z~nWЧ(|jq΅’Ҫ UVV\p%*:ƾvUկuJ#lmny#ɱYyf-V֥ۃm#;hwb;gk_U֞^Le:\o1OK6~?4~S߾y>|i͝;5{y?p;X ލA|JHd#ՋBIP0Mg8R\lJ(^!%E )t%-'=Lɖʻ*h*GtdAm*$5/k45hHm:=mymh3|Ca\ }kcY5x˧w'X Xɷ[x34;;󐆧1X?}сZx!apZ^=cG;x J\LM#e*YO؞zj]\.&Gi~3W枋/)_dz^XpabR%3WU51̫ukS5(BoߴYEKM[[kcvKqw3O5`=za}~@ '|; W7)S_`1/_JQ+n l= w(İPPp R鎬E.vQh;t zY^p1]XEl  m'OI%^< 3HI) YEZ-,g']N_㩂RUgj5jtN4m42a<ގ Z*S^;>ܝlcJ.wkw/fEq8K|nϭ^(Aﳇ>J>}K8TABA<`Jpw/ D0""HQѻ'cbɱqqG"%5?2!"x5*Crz -e wL4t-۲ҳ'֟;ϥm9햟zWRE.Jإ 1K]Uؚu  {nrn-.h7 _`CGc}'ԧg9/dFh7MO̽x4#SY?X?~_w@P:G48g 49lpoJֱD2p=0\EhIFmDDcN`Ofı\ G'KNJhG[,t%) PF TShN.Ѯ3^8/]~G5#Uc,$$LMys Ůew+Ujڛ [7u~ۋxE7oޗp?~4o'k~Tr_p@m ʄqHoχ^T^bͧ_7}ki`\*^9E# E>G|úŊ]kB) $KH=!yɉbg)k)2β(r% TIleE.䵮4Nnކ& ~y%r7zv2: ʉNlOIM3˘*8iE dK/Th_תԅ65|nh|uOv/>R'& ^˜;{|{Xכcpou7XPݤ3HBs6A`\ ns` ng.u?GFե8}G@'?ǿX|Da IDATx}Uյw 7ADEłƒ< X~'DIH4&HbFE#%ψF"M@@Pd}oserg5;ΜkgskMI&qL$ɱ~=ޓФ?z86000000000tRTu}GArO67Fn Z# G~x_|QnnyH@ *>~'+W\fu"[*o?`'@0@_!`6!Ɏwy ,d!n?яnś2Wt          ZbJKKk|뭷v!0f6            DHIIAz (&s5'8{7܍(8dIW_,l6Lǫ?P'-ufdb"2F+e'ϵc_n4:'6:2"C遽hO:8'vZ#}=xq`o  GFK>1F!/cb"7:*܇ c#u *!@]Ab͢1dp~wDqؒ]+WӅ"_iiHQ~ui)***v;`%+).bV;ҳ2CިԕEG cn#/$l6.Ǣ% k#HOˀC958|;qK)( BWN$rFM̋#C?ν g>q^z;f/[]oOK5~gZ2wC-M<3?)Sdrm3lxqw?pm܉Y/-ugĞZ4ϑ//?8 V9v)~{p'U+:|"`BMWb}i 7NMC˿BU\;ktkh{E 0ˑpo #(% ,x% y鱘4a 12/M,(_wx9o?X?yI4WG$qo`kjobεؿ2)JIW|vZㆁi!`F%Xa$bߊ’†G/ybScz#֗۱? bǘy] ]p''oR_Ӈ}5[ /h;>yߘNx_+^-bY> >ea(p&4m^ͩ7.[ CSۅ- x?&݈bٸ[v_IWJ'V<*ZkOڊ \s;~BG}wYW{~ckzDl ` 𯍀N;v}A+ChmYԋ#Gb񈎎c, |ʔB"D:+_ 0 I?ǏRHOI1L:wqHT_Q#"c0uL*3#ekUC92#\AHbެ1h$*W:8/Ȣe$zT8Jp7݌qHƾe*㑓9N 3nezaw'1Lx66_}jЄ뺀EVh-Y,WQ?yêizaRڋbB2 L>jj>5qQy_uT]F: HAjȋ/f>Cq,Dấpe5@IRz0E(Pt:upɼ_౫Æ?N MR _OccsqC8R%e 7ێm80-ˮ~^ in$|hlvc-OM_߯ G^Vx@@$DQYYi|;v,b(7Q}?uٚ>'$GER]&[ʈ2$s`~SgԠR1#y噮RHiH_{dV_G7[qDWYI+t'v?&_1iP/ʵ[MJD%ِ/A呼 6T]]27NlQ1J/C3f`Fp[V䀻t}Z]}u(Y/kkkZyH_6j  P;v ~rx2"JIHq;P4V"TZ]Pg8]rH* OR[[-[mbx d?ޗLgztLt `bSq^u-*GTfQ> >3 IOEl\$LTz[LbԽD y+>{ FuRU?o^*^d{1}sb5xw"LʊBĠɘB [ cw'^Ũb>B}Hl>Ø ,|{,ij_JE ..¥kfBL,nlʼZ;u̴ֲ`?+ Pxՙ<+GغeڅmvUκAZsgcrK{L:5{ 僚cp5cMbup: z,x6]Eo;ADCWVH잟ۆϓOC/ E_St(UuLIH&Qk s\ws &|A՞Ш?]ۀ0L~:nFKؼqdwLL0,fN&8t"!{ #R>p3”lRBH}N9 f[aFo^ɲ9:ծbqS.\ˇpvk)=/хokQtO?|.=o ~T5^lUgwg1W y!Ƕ[ֲ)֪zXvxf@t6؛E ǖO92fD#allq7{ئp+wu/7\qռEx;P_^4Ĥ Lm)8|%~Hc0[QX@_l]ӭ0uߑd鲏q5W~'QoKWS£HgWɫ-@@@;$f  9iTB"KW)"Jظ6LhifPjD&jGfjG6jR͜7"%UntFח&~?tFŵK"+$?,V* f2~LWfdYF͊h*RH*%@V V.. tE38rR@Ɗ2p ۀYxmܻsy}{>,8Mp;}5MF1) (0wƹ@u@8YjqrRcnFk?_"iG]񳧞 ٣ s: 7!B~@%U]ˏDcޒRF7Xb"sfbU1aaj0GNa&@_Olvx~ptUc>rwo<838|VS[HWh ",<-995%譳l|xmI&}< 0r \DEEk&ILB)&rtB#N@I%6*#v*#""S53o&tIs̐(?\ςh*%1hڹqc'JA3hނ:2K<ǧ b"?ZP@iJغ NSO F^.6l4Zm?np-C܎"ƧBߗ\p4 yWG-?=+1mQWt3q#,{ 3q̈́V~_{%>or(*Fiq1!^bxOqh{+?q@:e'GuPOv"k?kIqWe!ڿk?ZRs#%i:ëQ\E w_^8!ǖ $FQ qY) NťWr2N?o mκ5k7b'U󉯆 c[NЊUWӅ]-ǟe- &ӠsT_Z/HK¿>sgb%~tzlA="1HƷ ^{}6 ٱ(fvU_N^t!jg] p: GdF lyԔܙ4؞tYW1ov/sJ!.\A\. ?|qxLȣuf?'0am4P`U)k 'ӂg):i\7rhkYOJ&?v?c/?$+S~cC>qyw4#X;潆Cu!wT՞Szׁ{o<#VyH)Jn) `J42'"0AoA++?!WC}yMݑGW,xjrC $M% <ˇ4t1]ßz8>,}雧WL<pu{}Ȣ IDAT0HM/Fր׌Y ]ŝ??ժ\zgw0Şnj54|=Uw?&tyɭEeF.ٔF ~sck<=QvNy|w a7ݏ[h f:8PFǙC-G }^+NAkXzR0Mo_16e咾©:{;>JڗWE͗k(]O ɸG0=3g儯˟/=^3A ]Ēkx|Ȫ)sMۣ)p0"-x[ "]t l{xrssՔOAzÇqFeZWMR b+Wr.5/Wc̠υ e !7`籣StY@ Y$4@Y_1~c'Ώpc G9zoB-$,,߇;c fgнVsp"G1ɷcH.ivƿq@ 9;nu8^ݮDmg BCu%钡(sPbhi"V(&6X9d^V:LNRAe?LpfXڕA-÷-~uхiПq]G?LNaieeaIAՃZMHJrxnYu_65ea͍Jƛ)c`GcC3P5X$ 'e%<'ZL@] 9HKKBI~hբLyJB29D#3:,v Zv^xv61&D&!, ekiWZ9_z4Ob`Ɵip|XbepfH>x#vXNɭ7&v-5s]S[w6Q$fd!J7`?8aY.N,d[mSE#,;.U+Y2+wk$ed"̶JvGF"< y?-詓>hNBzZPAJ& ]s`ͼo`e վ ,&1 $  wV  1(Hɘ1c0`ōH_|4?` TH"sX !c7{䤤O408#O e$шdΒ],4+ >%`t$&QJb:r26|j48/2/ @m]3JKp玼g-7|Qan34wONaF9??A21n /k"uxo)?y:tX#Exu={,c啈c̘¹L^2㓯>qW̜,]^Wxe^^+&ɤ={Zn'qΣa"n/0Ϊ+~f ! boaapVM_ga,Fyjysc3WE"+gDdx΂ˉB e-}ƭEd($㸍XbbWI8e5k\Ñ벪Ͽ.R9ѦtOV!姇4!g~-!MC tm~/G (¦.=jKᄿ Ǝ׀ǐ0|-SF;b0693Uswt b1b '#W%: I\NJ|EyQHFfVZ~Z9-ѐ[gN4"Ɯ5>'(هa|A@?E Md$yV_=g/륄 F,_p j%I4?cIF堕D9Gwk          NK/FꑁE5V8$EpqQ:jkԚ亮C'4Ͽ PcF uHOXg;w]=a!UF           Gh Iܦd ` ` ` ` ` ` ` ` ` ` ",$2x1$_!sE&S2gT_~ޫ*Ol*q:Ӂr>IiLsPnKnF1 'S679'd1`eJ=!Q^[u{Up{]va@܎rMhjjBeU%몹CiʪȌ&Ucߕ-#4F200000z]L\t+VǙ8g6eoe|,Z\9O^C=L{9661QLwp%W'-[MزcWX[ٹ)k0q$ ]L=k^5QXT[RP;/W*_D۶mäI QBނ ar#RG- ze+DfDa\t9u6>c!$ Q\J(%T97&.FsVmkpvdS/%RQ]d-:GS9p zGF6p~"\ͣyKl$D3IFL,dֽ,"SB>CL˦ 4% M8f32nUAΓE$?p .fH;0J`aE^eZ)@Y}_4Kaz_C4?̵v4q>YM+p8f;F_F]Lp pj3B@#*Kɪ1%RL?ڀqݹw 1>J.~ˑSs]&'e"WIcAmp4xCc&,L@@@@@@+Eu[HDe/$#r.^~v[H7ôT)*M,WBkG{0eqoK$uBۇ&R%.ۈ<#p# g@"CTGl+pкʱ-jq):buט/} 'gaݷ )2>$C5(Oˠ0a`p^Sd}`Ν?~|io޹bOH m;~ԳHOB"7hnXacH˄5ʊߚg5F~{͓qndggSi ߢpPQ aSx56GTJA}Nh51W@-$P c~.fS5-ʨP17QvLrC-RҊ`"1YuKwk:?sD!ڍ*$q\#7D(bUеJ,6aߢpOz%Qw 3*MAw/G%/dzQH"$©*XHA(=54o cvb_-@UZV_M ([4~gGeX_h78o2;CLetpVj,M MJI,CeP2O,yC~4"`G<~y,1!ג*Kȷ|rf; TB/9D+^ ,$"SB**Cu,Fs!yK`'iD-1 zZ^F@[^wc|ۣU [ԁ9v$&CeVnO*< `PBISheO;O#.!o6BtimaO/qGBB<ޣ !zf哖q%ە̞՚D#-$ؾ%.FbT{ ymXJB3     4Z-$'ZQniU:B:II[8B!nZ$M1ֲP.0Sݺ<cI*u'KDP1"2 #IqAg̃ 11? XEE| }H,E'e^PXwgQt9JvXsfzG|lg~%6vl,1RT9L:nZd8رc{DO1449i䔾dZwb^I dEldpY%Ji!H,y <=M߾}J*?-#2YLkf*C9[e+)I4_1ƈ75"#1IY;a"=`Qs め@"$8Tѝ޾X}$]ʇׯXO' 3E%,I<3?f=]ꈄΗ^.5e!D,$+pk˫+<S>uY_D9$+$5V|RpWNBwvž(bƎi~RԂم'+ʉ /n]ax[IG,M2".M> ף(bYP8֭pq׽};qQ?W&RFm[h{ .zVo}2'̌38#$^F Y)"JMI+.RN_3\~W= (m*Fss#!򾕢fG㙇k.5-p8mȘpaQݵ7r$qjƵrqj,5 y(&s )ޱG))ݠA )1ܷy=F":lpFY.@zM^n&J|'T׫xk b+g{g=IJ@#D<&@e+ uKN b̫Ay>pي-'z>D2~͇Ot[? fѣK.}ʲtAY 3 KbC^{cV 3v'{QajÒ)@Kc/|~o=ggQb K+W3Uo -1CCr D$2n$>hqЬ$D9Lx[ 0u0߮}yZG+CivĤzQW!TE_iٛ%VIܤ]uHcSbM?t{wRMoy@ W`cs]e]QFpz^7 yohyX BE\TJ b 1eW Rϛ)L{"cCւ!L #|)Ea{M#{0)?)4pl8 @*&p{JHOx4q=^;mԜR )+NЭWH (#~ Q%ϋ+K,xeKjĘ|֬b+#%aHӱsN&-xz x;>jy Y0f>?xh n~> ]xEm`wr@)GtS(w]I{pdAq߅FO)m8z3X8a[S,` @RD؇{(v ۬r 8*#V*EfEsy*%-՜gg"eNTSvo@Z48=R@E){Z5qTG6fj%\?ɚe"b!zuxҒڞLX/W,G?~|4KOkHh~|i,7WAqTNi9巑       Z-$=j- "ٳ#.!I;B@& %>Qʑ>M7zU5@:FLLWI)N?|tDc\t 228h9OONף=?Ҡ+8^ b%鎎aey2 g]X?p 7+0#؊{;yrx-mD= /ǵϊD,i"-*&lO|Iꖺ?~NfCbYHLvʼ.ׇ%PM0rŸ|MT_]h;%rOܠG}pSret=bGwcCq){ah 4F8!C`@etNǠS *&/{ߟ#EJ;y.č_|Tׯ|?_W%mP6N=Κ43c/]N##ɉƋaR|s㵎R*cNj=韚k5G.a'vD߸f ` ` ` ` ` 9"+$DHԢEGJȩ讅~RIk$5GmE|B*D]gWBCU]SB&.>nPd\k #@(47qڡL11$EqWF{*@( >fe%#6z2۹ Ue8s52 /t%Km x  ubRrQ@NuZBoubE XQ]8&~ ױwQA_x)T|UTDqҔ'HSW]cP~0E[Uvm e!id_[[2ԗ.*$"! ln0ӝuXx^r>wIE;Tdpe>|5T^8 5\szt'}q2TnRXqejK&pa ʄDDń>eOdw"%lݾFWReF0lzDbXkmElV2# Q~rfRJXx[)rr*l/lRזTUZIHϚqIUnh j˖|KtFZ[iO9z+\Tprum?j?J?!Wʊ@q?2*[+W:G+nnPk'HfGsI7T ?BK;"W{4LN8|ɷz! ǧKl"R5GaCl 1"L?ɉ8t 'Cooɲj#2( I/?1)@6J,GI r^KB!3m/>}FS7r&"fQH!xV3-h^{i`=r20;c,3K8k2҉CiDϠDT,FedNd&E48\7r8)M3{6[H\l.cn-0T^QhEK)"+Er1 w6uY_Q`ōn'R[c~̙Mj_2r,)Aժ_h DMTDB!qh ` ` ` ` ` G![Mon~p]hyG>I5".[RQF9"üᏜ`.0/D?٫M?R=_2ͰH|ye۸pz`W d'%c7g*f̈3wQ2⥲÷Ƽ\+&6)'!1owI"}Hzm!D]񐽞kr_.@/WC!D-PqPv7UME]>)7!N3y Ƣ]jLB%3󿬜mn:C.\]Gv5.6,CJo+1b&88x x_|5$*ViC:&.LY"6sWR7! D 4LF3)3fiDֻGrҰc[9H#)fuR"ޖe{ɮEI6@P_ڏȳPWۈ=?d<$6/ :4lzvK9` y(S"l yR{*&\JH5M4USG" /(">N']_\̉L]/c/+M6y'*k-LP]tRC奣de&ؠڸ("bw-$Xz:g\3000008-D(B+#M}g qt<"ڻmʿH, fI:9MA]Z 1pUԛenXD?"b.'B"x?-YQ幂m4"Ơ32TM\4\'NT(w6Wkcǻige:yv'Qjj*#SQYQu86cqĚO z|$-p#(ܗ 6'VE hYp~kk/xEȈBRd lx^{E&J#p5m_RK.R]/b$$%b'V*U>t@@@@@@Z]z+BBQ]Я^gs2<{lG!'']{2\eg~fl=\xT6z2"rֆ+ m+$@ ѹ9Y*d}:Ui=r"#=U(H,<&pq x1'Wua5HS\Xb1fDLݻܮ9\ &a|yx;5հsZU;\dsן=d83m dg70gKS LSP~\\krRѱh36SiӂcNJQRrgzh>MBя0x`}j|: .EV6=(%T85=מuFd5f+z s߹rqźc}pPl)n~э͢RLrex#1Y?/-Ke<+۹}!C$/L G0oyt*ظ"IeWǤT[ލa$h~OBk.:HJG0+9$~*d P"d/-cQk:1rArhu\I&ƍ{V CPTRԟӋqEaTM?ηzjJP"q+{:IYBr 0SُRnZ.4S)pL(n Nq jQH)ASEry.|YU`Bl9c#Q,yz# 536J*ao壆.oSO0Y~h-C 6xD#iQ'7*kXH\<3IEIM1l[[q3'/U]Pa4WWWf3.%6-GwS|Ű bPm]_4*# =IJB m-0nD,$]ɸT]q=q0D%ň@@@@@6.[a -:^"XBĉP*tT?ec\ד(H(Ǣ4Ȩp-M\Ix1Uh^qE{VZu Zur)|VqF,QfEJM1\O*."L ex|4e&d$7 ^0C ͛cv|bZ/ ~91y#5ܥ^dQ9PF<zz=}HG8#BD1hAxcP+%myv.Ȁ%)sE.JdFm}1bbPSzݴ8Ү7OE{ÉLr+3 :=dOg%qQW)Iٸvuyt ~CSK3Ռ[+bP'/ΧbNB"7خC% / CGw?q^/ӄK{Ӗ4Qiμ._C/Bz.j*6+aV W_U>ƤD?iT}KX^7Z]PaSԌ?A@j񳺀*IWPAKg%U%\˞B+X ]IJP3zu5zVSJT9n%4&u3BK6V*E4i4|ǎg)gN§?Euu%V\I /5K\ud`S !WY'c}s'9(9gzj@ARF.6XGPᕂd6G ZS[ҾEڷiy@¡<:[2XMKH""[!xQ0sqè w%JUW?TKH9h11<ܦa.3}/:/<*c Z~8pZ10 E2l؀=줅ʆĔC#j:qD㌌Xvgʟc݁B8y0@FG6 ;1**x7l&MfeK055KH@ ݴ?^ I8 h46-q\?]imI*m[G$Qa1)YF˴l4}($귺?"pm] Vs=O"K0Ϋ8 BWg_}]ɣîh#_koZtEKxˤ=Ow- @/"3Vvªz0GxίrIyfk'Ô3'`֥siXn-vEZL:{鎽6(I[}wr(V/%'"Jw#.CUgU?ORG4ْ#"ʆ@բ 7O罓PuQD;=hBbb6N'40pBFJ{OzY"{w9glz6:}4C8搜UcEP3IeDRJ+c"v)PЂ DI'!\#%wv.Sq@(=ifZ2Zv#8eN 5kh#fe3RٖzW#  ֭pM NDV"eY2 FGm$ƌB@{t8)?eCo|U0;oj%펥\lEAi)x;.469 laҤBCjE "xjfy~ RmOuTѪ3- VvTS&])Sruغu-w/q`W[萁C-&|u*&a2 f(^.ӯJ)FVƔͨc3đ{yVNB^^k'1QBN+۟өJΛY)Wh^yүI8tQ/*Letסx-\Kńn[&Ob (ՀU-\gp>E"*ƛ#ϋe@K)ַ'I9;0F4- B쇩|5)KgrdN2ݰ&>떍 ~^F^b{:'<y      z@kP;{YZTarΑa(( ⇬`\Y5UtU~i]u "&VQ@I`yz=v{nW׼7u>ꤪz:T[@5.rd nᐶqH|vPoc΍]vўw-x+XͬQ|UUd2X-vpnDZŌ|;!a*I e"$𲝿o)}/]zϧ{~; oj5 `o۶8}GJ27"SJQl'>>K_8a'Mki4N \M5ɞ3"NdDNr>I(<֗ N6rؒAݏR9sƬٴU.M BvxN  &8v@}oXa$ky33#ԏ#|tϡd*" 3o7{n]^Wpdž}ay:G/6S:1؅y+`Wyr/_W1=b.BtEbI2쳩Aפ("(DH[,!бKe'_ g!x/91u5'waWA߾}qD|SrPh =*4̖֭[G= Hoysk&N; ysg@@ XDRx"=H[},+ ^{Ow?m޼~z zB?q~skL(ya¶.psWŀy/M7' v`:Ic"}XA1h LF !ecBI7f^N4PBζ8GY &eTG=[6c%vxun"|Vcc+5ԶU-;~8XpH'E#svXxJ66-)8;#iJ#}q N4QĿpp OV䞉d=pJ;0O32m8ڢIPE@PqH*r| X57X(a!(t^laqJ(N=l s?dtUw~;oV,]jҠ:t!qaƅw`Y`,I7faQ;f.v/c \ yOMabr؀f㉲| w?YЁd)h"5ĎA _J?7" +m 9>~퉬_~o;dL]NGY{TLu|o .=YDwt.G3%A .x$:zPI?0c=ϟM#CPE@Pm?+o\|#}yզl4sCkm o8Ë5-(#G\ e,x<1VZI3qyT/Yd. O8*R,aݲȔvv{vWS'8/9˗g??DPe- 4+H#tsZ!-6ѥm#dQFBI% uyq7iu'Im⛩z]D-vP?yV|8vn hU:Z:yŨf IDATtXo[)/Iȕ&xa)@5)"("wIMc)"#X,aq)rm÷X":2Z& l(@9 mSb'Ӛy0(E۠!+$9ʢ' _ ɡS,M2ڏnZuY\#`;s[. 60Os zr#IȸQG\hIr)KmvovYJmKYعϝv18vܷPvy& 4,v B]{dŐ!2le (K.:6$:nܺȉ~5sWZi̙e5ՔLPבNIwQ&n"$SM &j6S4>0xBf-D b.2/ i7g5դ("(# X.|pcR}~0>8ׯ2DC@E(yiiʐw:J]oE@PE"olW'?ڸ"("("L ̖-o3':TE![O~׆E@PE@("$)SuFNVE@P&rdO ,u"("("P!ynPUE@PE@PE@y䓟,"("("p!pgͳ>[E@PE@PEbV^]* "sϙ8$,X /K{ U.T~[m{s_۞[=~zW*_K٫_x*/՟j+՞˯JzK+mRj_^JS|T^\~W*֫mϵ_^iWR*W:JKJ+mRy={{qɾuj9oڲ )KH/5-K/r/#H;9KɻíGjϵ_?c&eon^jU*G^m{}:1t{Y_ N{m;.ϭgyH̙/KaR,Cw*yE-0a[[ b/Ň韎?JW1&?} MRݱ?: Rݱ?װc5[;s-%qRWP qH KRw^:U}22w],:I$[ޝߐ䥬_̟Ouhe68qH_x!q:x ͚5jkk?hmѮ_ُf|6Oʒ6\K?$w#tzcQ~H^dmo'e\ѮK?$w#t}zcQ~H^dmo'e\ѮK?$w#t}zcQ~H^dmo'e\ѮK?$w#t}zծNsmJvm`|]Z1|yPD@8|C— +4I?o@~1~KKر:, RRSSSӃ 3Π 6qGc`%FkժUqFZd.5]Ֆ/e_JW[RJWj㩴^j˗W_x]JW[R|w<+_mRJ++_j˗Wz-_^)~u+',TEavI#w| ?:eOpH&VC·s[F%ԋ"+9dE;B, Ɗq"9!a2GM2G/rE|\䅆#}UhO"9dܲ耇mȊ}rNn 'eH2mEu$?Ywe,>_ؒf'}Kh2r$6Mʢ:DVn!'4JYW;_B#I%iRԑd&bߕt|#:%e4;_B#I%iRԑd&bߕw9AV2R|m䤌I-M蠎'+4|с-) >m䤌I-M蠎'+4 RCNn 'eHomEuBOi AIr/^, 8!PĂ$|)KVnۖWbg ,x6i4ڀM۾Х,9~)䏤?PItACٕw"'6*mHWBV=Wo~4^/#Xu96vY?Ȝ^~IO勜ت/}?oPO=t~T.Rr%؀ %+O7{MGM<M2V\NZ]&^5;?+4Kg>cβ|_cǎNO< [/UZUt2/\>EƯ4?VNmOjvŖ1bpc|o+,G)P%?y줿CZr9zG-&3Qx[n2Tԗ-[6V-ooF(ے4_ڵk[_~ !#e^:pIm}v馛G1Koko喒/G>rRSA1\;w;d9+C M+վٹnuCAFHvbxz?;mNE΋ׯki9 B$mKnӤ,:,m͋ɋ.rIv۶-)'6$/)5a\rqL }ch}}}fW~J[o5۰?oTַyGO>$4}׿f,s=t 7=nB_1&q8J)Wε|>]ve?1/Ix&W6W(#!zի^eaT'> 3.BͭW·s\7~?骫2?<҂O7\M挔]uƺR8uƺ=ؘǺ?cݞߘmXg۳Wu{~cicݟWOGDB4?DVΐH,$X?Ώ >|g}3׾ ;MLӦM#l]3Â_"71Ewu?UP?.%~zs]C=dfc7 Js7d?!t [̰G!wGC" G8zgb,Hg8[_~q0/^>~AS^> /8&_W[ɤpT!C W>|V!'2\hu.ߵyd苌IPm_hIx"ݺ-u]y>o2\;wP/rM{.߭w>uf{̕rg>E9p;翍h֭}ktSSSQx-nQ gC\lWoGM$ɻ\P37aoڴg$_>sVsBnh9 d2'D~@zKC%6mj챣<["Pm|ǻ?ޟW(w, Aw<;j!cv8. $9Θ<5,J>) p챠wwb6(\73 x#ɒ$B"((F(^*{۸p]ݾo~uI=^q.67b Ko|-X8??x#Ǝ M3OJDvEN*b"6l]ۆ]eS9\-n'e[J>R{n2V>[2'nnu;<3 GW"-J(xG |zG=jΆ HcńTq;" 8D&nB2vХ,P!F$Dp(#XQ 6Qe)4H0cq9bGyH4O\Z9Q \ӌ+R s-%QJn{-Ǖw]7nn{n\y^Jn{-Ǖw]7nn{n\y^Jn{-Ǖw]7nn{n\y^Jn{-Ǖw]7nn{c=fEy˚q n>K#-fkÖCT]yv eM'DHEݘЫy Rԇ [lKKi<_HWdIkkaQ $)1?ͮ*d?\BD!^hBCIYr?yfJYr>x;TP.&_mKǯ_?oq%琱 we 7QmMGY֗B/֦- sٱ'&rA۱8.} %Ş_l9|; WJr݆V)ӑ/dԼ~Je+I~bW䘻n+?Xeb荗Teܒ)ʏqK?J_-;R{r숱o%asdAՕ+W}+Gm¶.uHP46^dlq$4_r!L7irBl'ulVu7r]Mĺ<?m<ȳp]r)y+rEյm/wʸs]_J^)9ݲKrAi"CNl'.ߵQJ^)9ݲ?~. B+ʻ|WUrei<)#ʃnD/ Os]kSrei<)K]ꅒ?Wmϕw~)ywxRF.ɕݦ_9ʻ|F)ywxRɻ4 %۞+]R2Vɡ \+M9rbӏ/V*uyrJg,9~b KCkϥ.u'e+ŎAN?,KZ\d%yR~e?Z1ۅn2fؓ_/+R/~6OʒCޯG+f\h8#p(ST8J:vΟD͵TS_KI⇨aӾ(.9{52d)7ROx' MЙVSKl=E8 Lmjzf<6x1AMx0Q\PE@PE@PP&ۦrK2x=RϾ 5564MD/D6Mȳ/1>Oi44vy'h3SmS]E/v.9l6P,L;$6XKka;]}ѓ4!FHF b5("("p:#mJ,wnt@|\0SIα+HX zgˣachzn>j;N]=GE3if^ vR*bV13~ ek)!J} {I'A,C_WOtyA< XW'qHd !E@PE@PBo߮Cpc|Nڲiڳe#8uЮ݇;>@:~;6 - fS?BOw2.P0eY~ZET[_CZv6AJGԟJӪ|p8@Ra'3~v<XD[{@3(F 8$U5E@PE@P@5G%zAj߻v8@Lmܻ JݘEC+;#i;{:oP"Cp&FHSDi䩔 $(}M=PxsV GABv~b cʱȼ줰<;%u7i}2@F1, !():NE@PE@P#Ph]iCVVv օhٴd,:Um6Z4y~1iߵ._AP mu+Ϣ+ϦMOm)u>{2$Q7Gqd$oi>Po0%'$-]p)vJjhct.%UJYuHQE@PE@{FEƕ:FuMʹdB4o\sx_zi)B -ysWqNAm/f7lg֭p۩eZul]ޢaY>b Gk2Kgl3QX.cOoksRAGJ"("(@ka[ BNˬI ڋQd4yz=im|#4cdv2tq$3z t}EioD9WiI#"X4ISS;',z!)[d6E)֥p8'x΁GiJӵ2sb!)۠ *"("(wq=\,7jl LbP-;===AjmnvB ъ=9j7s C;෸('a6H8rl}237eAbK[HbfΫHIϔ6<+wHЄ[M"("("p8qzzhGm҉$Cs¾_7xU5P>NG;8ȰwO!m'FcD|GAX?́V.(N|=dCO bMl-\GҏSCdGM%YKe$eK#UR("("(C C.v< mX,;'|/GL+g(X}:z`(#KE.fMS'=I4O]]| u8mϒ.T/ś3X7gN&T+jJ("("(r&ݺ{N+ q4$4pķ]7p,C$g$g0" %i0!1f PӼ][ķSw\ I12ĀVE@PE@PSJ1r LwH72m|u#)@K8! N?xΤS&M5ay_XJ]Qz-}|iO)6d82G,;6\7n^ۘߥaE@PE@PE4EQ l WMh, $lpt&<~S;d؉c*FgY©&Z\{a:!BR5jHPE@PE@P"p}W9'7-\!~H#')78> DV$`g$gOr[ۻ%|ҼK+}&ħyWO=cw![!IHH S!L$BhRE@PE@P "[COC]̹u#ź=YЅ9ЅziFRzݬ/^(I7q_Exɗ^؎3'F9+AT%G쐼u-4O˭K]8$ܴ&E@PE@PE@w-6q.2n.2|ԋvwӱ}gz q$˵+Cb-sn "$ɞ];tĜo^oxhR%*"("(M-(3ё0GH CŹ!v6sd32\!CIPE@PE@PNsOZ ΟQx -o+#G qHF5("("( )5mIOLz}Rw 4Gfshi:|ϋTs4TM("("00OUˎQisZ6y5ۄ-^Vq+"("(e"gY`jR]\BsȈ+_n$׶Бyʢcq^"("(" 8$!e/+-z۶lM^_);y%.l3̐qv /<מ8$z˖"("("P&X\Ŷwf&V6U|i373 SK"("("P[nWYe ^))QE@PE@P#-[>jQPE@PE` 8?JْU)/P`3,#]?{~bmu37vRFCˊ"("(@P2$6eq϶2ڱS6mYgi@+W̎gǵ!ͫC2("("(#)*؋qw#z Rwtytž3:ڄmMuHF+"("LXp-&,9bS'I<[^d+]}Ju;$#+tE@PE@PE@*~ԓqjj9pQqJuvG/ҍQa'wj_X,fNZY8';ڰ"("("01sMu2= |PXj| +/wlCmmmpB_&CF^SE@PE@8p7U2D"Aa>_seX(av lϝHw:ͯgxEZLB#>ME@PE@PE`#`n%Ol2! \ R6u۩ӁsӖ ReSiIS4EIJ!f9E@PE@PE@ջ2B`D \>KPzmocG3E2pZ^r!鼽H0e=hvh+RI2g. g'\SoF0CjӤ\'2v׎:$6BZVE@PE@Pǩ>ˎE6M?SRav@SO^é;i߲mh3%Q=|;z#j|DD$[hEɪCRe)"("(4B`da GHz}9o.&Ol{N{)Tđ oJʕ+ >ڴa[ߢ9RK /?]d%:$'Ih"("(8;ܬ ޢejrz@/6'ȵ/`dYÛ9' h";wLWXA줍:]p986e+Q C ^f$\8dEqH|WnL5E@PE@Pa8edr^痃jiB)`M\n!=-GIϚ81xp8:!4;9_oΑ~chNGG?yDK0 +l1|M"("("P)<ғ'D}YWO+9a;9Ё|9saʁt4mZn S2k9 7 N/~ LMq,d<҅K%alitBD@9.ѓ"#hF7XUSFȴn馑 RyGDı1 pd'oyK ;fͦB_d, |(~o~4|$֬!r dE8wwv/ɢ-[) 232A曵'>)_P *~MTʆWpi%NXVx;c6s65b /O8UL|;nB ΃a;3[¬v@T q8[ IŊ("("(G`%4oƊ-$8 v-NB; }•K{;vЋ/hqi{ܯZs='x8x"qtsbREyѲeh\q֭)}CZIiZ۷7E@PE@8p ku_%qh%8)]WZ8@(IT.M[ᾀflL@>s𩶑; IDATvl)"("p#UA>,;_O>D,됔r.?|wk0p~ Qj%qH0M|[0ذ+iI_xa/CycdoMdy$X yw]kNH3E@PE@P 1LjLR ;'ssoy/"!ضसAl>l-Z>OF5kJT˞A!aO?߲qF쐅7s/<1Q_`{9G^̃&E@PE@P& R6X]{q!locd޼y͠DH$X'~K.geBXCRqL$摸 x5ﭒR tŒ(CNLc`0!,OE@PE@PNgdM1e,m'2rBC.Sm%y}]Y @|]ۖ/'C˪Cb#tá xT6v ۻd@Y.Fۓq,L!I$ΉÛd^kҤ("("0F#Q9\{!9Od!  @ \lx95GחkG@.Ohl#9x6C"h3El\\tUp/Qʹ'\:9iF>.ӊpH7' ԩWVME@PNQvFa5e,jvwz!m:!ZYtKֳ%6"(傔$=FG6+ǖ&xg s\?(a։DKq@ϐ 40'2D=g "rӂ3`B=:!lKyڦ)|@|q;eoOG>xg9|eTE@(YTqU{zh9TmX4JP?%)dT5gQ_ztN+iwfV3$U38^ >{w~a:|_?^6~o_![3&ɹDj:a`ij(A/70ҜVE@PE@8G`ɓK.ϮC./(B 3ݶwi+^w95Olm>JG$l24AIHдG||Km[~4 Sn>>H ox-_/ҿV}W_}5=U[ f$ԇ:"'G -@Q~;p"HN|aB\3 @'˚E@PE@P^`N%l!)UtF?Bhұ>h~bZH^JG{(l,AM}qz{qFHy袋hʕ%K ދ/H^z)=sfAS̼(r4Dvb)D1&  Szky!o8똢ٗm߂GV 7oX佾OE@PE@PNod 4Z}|Ly r6/.~ K/=jjx bIp$/Fbu1;ֹ:BP0NP}xGrKhK!iUO~G?]uUsu7DAtazL~tӺus\>L|k1tMaMӟdk׮w~a{^BS]|/})ϫE+Bq9"\z|Qa0L=Knnlb(花&EE¬-b 1\@DJ"_xTVPE@PSB쑎'JQ2E=zzsvJ">Av;]}+SsdvDe'A0;P|-dӼyQ~{NLkWDCOtҫ^* >^x!utt1I璘~/|^Pccϛ7/?ogM={(Γi׮] Wyސ?M>};1:FpTG( q$0ߞhag$tj ~PDp$X99=l1΍8:`K"eM"("L$؟Rce2t莫7WŸx?laΐ |^5Zn'җk%tWo1}H~C{;]+_`#ep$C,;&@hKcԗ4Xtbţ?6*&M2cU!3%8x؊WRիWӖ-[fĩ5e+/ȅ9 w:ˈ ɶnJ .4r!=ImV\ǩcH| EWΦzv=4Y%sZl5fD5KBed1@ ݔBDkaמ9JtEL1yV?  0\ئ h-thmac?[bM"("Fˋb l KT,օk5,װN]|x_߳pg"˼3oZadSY~In]^Fe=Vu+Et^e"%pJf|ð6zB$<p;W;<3VD,=i9rɓM4D{zz۴Qf?1.G0aTv lBGWW?_JuZ4*='+h;'nYwYpgx 1x_v{>ڻ88رhRE@PE@>I^=AOd4n*K sĻ+W.և#DqGplNO8"'9:pI?A lY‘ѡAM8Tq㓟9~z %y^GG)SдihΝo>U(X` [.2g΅,XnQj0\! d&;IJn#gm|)LZxe6M8<⛷Sg{'͜fY@M91sgm6ڱJGA8]2!%6,m=q4)"("ůx;[0GL"|{2KX|Yfʲ+MaQ+@,aP1]]l/_rOd~ ҄tHpԩSAvۮn C˖-37f}4u]zMo5kc92sL3ppNL5SwHƩId%R'Qcs-Ҿwҁ!jzo1J´մhޒT_h"-ǏCKK/o+cAR$4ٞ OuE@PE@PK(۳׸׉{(:lBT~4}$ghIF?!MACpvL؁-=[6MS'oڵ0u(ZowAw ˖;Y7؉\G4MQ?m+ F(oC5t d4y2fOS'd+>P5q)vSPE@P{ek4ƙ;Pd _V-n1B o8&@׈|ބeጰ^ޱE7b:)eKkY2xUOw9H|^cׁ-/ۨ//agZO vˇbP>E1&O$ߚζg7Miu>?F[%-(NM_p0=}d']4L~Q(qRLF=mIR[FuqE@PE@W8[LhtZ$)ƃ<^c~˳Zg~-[)۸<[izh[i )XfӒY3V6 kv@iet :X#1E=OVEWML{w ~[38|@#hJ&G[y:cmz|tyi+AP]/ZM"("LȖ3,X3$"  ^_[a9 I` thOͫ )/ ,g9hvr!23;쐼u-֥.[4:Nokj%sP$y 60K54q25Zhἥ4o*kwi {i [huk-9vjFђ!M,֞{&vsVt'E )S_>(}S("(Hpb˦c1nEEFrz1:tȼ"S($~'stڕ۪e"$=vI׉5߼X A%OZfMH oˌڋQS4ȡ.jH);L'؋=NlTKЌ|W$HL9j7@wP[[6l>NNi>-9&Zx | t=kx֭;3tHRkKua:s͒ JPE@P @}}= ; (x;0Oki##Bp;z[56=bߔZ{zTHPÈao_롇v> P1gO4om年sh./Kg;HO6*vZ2Y+FMh?EQ,֤("("pRCؼzԙ=@|6uIR^t7#'D2ַҕ?J͑9f3uH[{]_en=J!cLPpq1rGC¸?SFD6PGAI #qLI ("("PDBMf>ej6ͦ3Kio߳ԝ<`|0YڰܦŮp dw@"u5gMX#& 3R>H \]sؑ"TD3IN>{ |wBm~Jb B#~q >up$o Wc?pDe%DE@PE@q~w t@{3k]7ْl\p: $CO<$3)LC2de/$@ Z`c VeYՖ%Ye[m=6ouqm>>wᮝp<[czt unq[B20U%/j_̯G&?(Yi-}}dZP1F-OKosWGmYl("('.$$VCN~49n1m?6G|:{n S8+qٶdzE@!PI%ϝ;G )2!C'CYTE8D5s}Pv V>ڏ4\X`:>crKHhUoƸZH ž+KF8Z6?\;G;dFE@PN:|-!qu1F6("("('JHN_TGPE@PE!|X$^;MlpGc{{l{彶?Pq_qX]JH,zTE@PE@PF@KK K'.0m>{op?zל>7QB@COE@PE@P ގmL6[w õys:ܹwq78ؿ"EOE@PE@P %` Sw qZo` w࣌NM4ފ"("(0-Iɡ s{cv^yd;~眣89C IDATg.oZ("("(CD#G ^XPE@PE@PCKÍm%zX+=R_W.ΖV{t"("&nߞƲǃwz:X$Ncoo[+<2X SQwotm;ƛo@QrK$ #*"("pb#FCۤzT^L-%%]fdIfV6dd G%$G1-[e˖-RӧMT ሐ#̔Ҳ2iYZy'eWE\xy2y E@PE@PÅ޵Ku;vgc9xlgcƏFBzA@"!{#FGy'HAWIL~$9E2N_qϷ_ f%$filn/@&MhG451y_<^̙p &ȶm[eժǛnŋ()"("p`oW:}˟ΛE%eٕϐQּL\"woI U7 㑊_ESRcrd ~ؘ ZZZv>ɑ9" čt>,Ϭi B'ܳ+/$7˧?}5("("ptq<455ȢgKIMOloYJf̑YV||TWVIWWؘW);+vJ-(H( ϒy)&%d~7_UU2}'a3KH zj9Q ֎;eHnNM($HGgtwwKWG h/'$Ԗkႅ2]-< &S>VJh29s%--DLCPE@PcG3];% 2[H$&-Y DŠe¤b%jee՛Kks;Gxŋd>hNzqiimwfd }k$/'Kۤ0/GrmSf?KHTC2wvMo)*,¢"H%DgWbI0TGЖ$st}N=<)//Fٺm4Cr֙K-)Iܠߊ"("0C˕o~_%,}[GR)($yAƞ)R"`b)x_8I!JE$^ikm@)-!_Hbw 2lL/$,["S e GQQMa&I+]`8ﷄJCݫvħG aM&B B?̴|ޘ&1a_X=]Ǧas% SKJFJ70k֮&~]"("(GȆsFAǯ%gϔνP Q||?2Z.yWO>"Y)x\CVr (x!Λ(h %EΚ0aRIry I*4/>O;{>ě$ʵW- ?)xn^HȍO~,KHuz~"@FhEȰ͕P0$hF||tA;BsNl-= /a o~8Uݒ&^!mAȐ"Dlq6jYtq.YPE@PCHr ~ziX%=䰰(d ˙_ ,Xa|;e'_AbR9 _+(*Cz%^r>B$0vHck쨪mzt͒=$ ZQȑxc=sI%$#En+߹ *6Ȇf$;++AB#K-FG{'[Fjv6ZðpJzF!)(,~%)} ;98O={J]]#LtՔmKSE@Pq@O[҂)S/[S|ykRGiG~'dIFNuz;|9L 6 mC0]{%5wD:E h쭮4Naj5)pf0JR'SZZxmA`i\M?Z \~9m w Ò'^( Htg>=oeEӑ}p`oSd B$jF*v?ODbx5jOĒd"hI !a./x75 ,9,֬1MngrJxEB7P%("("0!z 6X#2)?`|wc϶C`/ 1xCH:5ʺJ~A,7AL9ezLR"/]<1l4hFN\\u<'[+/3d{fL0$O^1Lηc[֘:kC`߾:C0& j jøU! ?I@3GHHL#"tN"!BEBuF"!F}pMτ^f=y$ [d$PlSdME@PEFJ! VԷ4/9l\rb iF, ļh\ߚ"Hn݅E=FÛd C{j8,^\Rѐ,euu5]݈-EI2oBil-'2mj|3^D9 !!];M)4"Z#|aie TЩA^yi9FCh7yxIJͤ:y9k,8i!EջO>&Es,Y!'u$_N8{6a-$)ZE@PE@PG X< "Ekee sם/xQEX^xt !bC[tGr&H 0עHgbY1IJ-0(̺2A5%.F5{*3 ]J#DPvi35P@B8CB?Km;܂5}KHHNIE=|eRMǼ#`O$[`;v. $At ' !۶n+Ve_{EFlHBB|AV%$WaO~|("(H=+i'[$ Ń(!t_%f_ƺTlڴi1I'¼1{Aƴfvy) J/ͺ^RVf4+)'9}$HG[^  *"("p,v #xմ/7X'a`UmS6d#'3]>T%H. pr͂J MHDKdLh5era̷"& E҉DY9>hSOpGrD{/o#}9}"W߈B2iR1Aċnny2Hݸ8Lyc44+˖-d0_Œ%K;KwQmcpfMLv> G-Ƀ\ ##թhNIA8L &C{7:;;Ƅćc&0±Y)iu'pjÚ Vբ("(ɂ[zD:{O/e%gA g_]'{䉅oo@ R('Մk041MK H9R=NqL:n8{% :òiG3- Jf gNES&A6L=xapb߽3іfN< L>Ȟ:n>`m:1m'O~y;NxGע_.%1a~-X-ͫЎЙq;a$M`Hcyyΰ<V7|J܅؂s0nC:WWW1Ⓦ%-]"("(jȎ^]$;2ZڈvdnؕȠlh|Cb),ϼZ%=Aw@4yWd50-ʏɂHMGr*^௒'ӊ @BD~n8'uۥ/[͋U++#9DD#2+׾&}~׌ꫯʥ8yժU|EcWa:/. Hdey=҃1ysU df"{,;8n7#Ujk( 1.aYQ̽R{u"%Ͼ2Loz%+-Sڻ=R[ׁ~L'fmns2ȗ}N ,!@؝TTTOS[{1!mx衇?75W7 \yg~}VTy7+۷6͇Y<ㆸr/oZwuKp&0Zma< 7t򗿔+Q ?]юiD! $]] Bb> $ x&sloQdŐoщ8ś1 bB2/"yqR Q"("(Ah0/,_,ue pjG "FȆy_ pBu{#~h/o4,Ȱ$ܲWyo6LKvN>iR:P? d oL+yi2uB&#_^qbi09&ЍOB2@[J͉%%8vrp-Zl@ PvmԤhQE@PEdAid&|v{nLh ϥxBHː$Q8G%9% /[&9-o$m )^dwxW\#u$f# 0;Ň1":!(áIM.lխϊu1/Rٔ{{S{Օ^ Erµۣ}6gt}uVjd'[V\)Nρ&ZbHUUOezjO ͵뢋.oFkoˍ7h/|:.GyhWABBʳ>k`:peT+[JJJ&^K"˜}d&[ d<$4$fèwvfXNGYW"muBCBbBBB#I>8ñq_ bqqGޡ("(څ/32卧+W$SJgKAt)0 Ѝ [`gb!*^N[+&de6H2=4y%)%Y0HGVrפpq5OB"UBFFvH#(.tˮ=FKwK4C[B|83fȯkg9Mhsϙz%i 5$(U#Y| ݇$*?яeuf:pQSrh(@tRHx5?䩈UM # % ,&VH;/)Z0հ173bޘ$œ &vs^P_SE@PEDB /\&*ݷߑ^^.=IqY_P*ϒPz>SS 7/}1 % \kl $'*)El/ԷD/ kzeR3S&#{̇\Kdo%͕V_D `S*2U2wr5]vqr; ] 3f?Su֙#ʔ)SƂ6 Ͳ> LMO<6&gϖ1I\}Q #Tl̖kךuӁޒ:6H7 $<͸a;?l˅cT26!D0[y -6o齩W-}ԂAd8?MhFGmbx>TjQE@PEd@φ:C\(cަyLKB]v)s`K@0j巿wƝW~W©[|1+WJkS#LXrʌRV6YfM+k/[ 3oYS%+${uHoU6lC?Oav6Jumw9+CaU<DžH_Ư\|o|Cnꮻ2팶E- ͬ]?~9Fr: IDATf3  A&q~fƧP; 9s yOS2kň_ ʧ>i5)6D*ql$aѤ9HJw(FMNHV¼d V ӦK _x71d#  IiI ǹ" @iQE@PE@ʚ $4k\y2/f,qiŗܧ|]mL<2c|5ol߶].?VI~I\ԞABN͂&$El1W0&pTJ|Iš*^:!Krgf)NZ,!€cq `Ba 漠9eW_җ[n7Ybj XHX*pM]1d2:Hl^qDϰԜN1֎œ%3+(H k" )H!䒓e/mvWUI3b\'-Us $NTz:oјP)мp!~;uThhЇ8JHϠ_"("p @P  {5&p;h/2}z?ZZ֬x ©\r]* e\4Z&CNuċ٧e5R"H7Ig,GijFFA =5.-ӷKwf7=C-!9tݫ8|#&ЌZj>FSZn>Q9G3/@3̬r}G(S-ņV8I R+2id#҄D5B LB"g<ِ>FςljUhLC xdb3[%|dld2\PE@P !=&_eq^dQhK/z隰o>"|HJ^ wHKs>/1A(#t0cPGd ΐH\݆['LA6ډjb$!X pd OIFyXfx~9gA'c8]B=PG?1$ZN>&ZPkA`Ñ$gw}|0) + Nyy-Awc}X;PD IrȚӱ;$ #O?Řqlvq2"("('8nb/[  ɓ!#iыCe%Sk™t HqUN su [L!42}hgI"("('->>Qox<ٌhze0%FcdX mId썐OxI,AZs/< 0zВ`~ʠs}A;ޕWFucAB8D `!!fdSLÝȇ -FW4 q 03(3]b4"}AGfދ]ˈZ L-K?}THvjyҤI7PE@PE@8 y&, I$ =0rZzd/re8jJHT^ RAe ֭MV?̻@& s{o d$!+@*ɺU}yX<"\a4%$%^ZHRBx&Gı[,,@?C%zmCmǤ>?~lR9HHH9&ͷhEUaN̸i )N@䭞^$\r 34GXGasTE@PEX!(> d ho.MM ͺ [/CdማL?c 3rʦff`a.iz|8 ,ai&'8o%$1 ՃM<<k4()PAU[2N<-IӎdGT2nf|u 8{aL l153Ne|Zօk$+"("p `-N~n@9XG,"q`,$ADUܒ/q d6D"]Bב(2?ͳS uζhLkt'd d<ӮW~n h~ڵ8= 9GNx0QAn&fQ̋?~#-R4PΙ)̒ul8:"("(G =㜒u*Ny9Ҕ:QalAV%1[_g ?{jXh>>].]ZaA*RA +8g #>1 Ǻ=1v$+==Rdw?-C_[B24ZC߫-4Fg?&Ij~ih6T? cW':l/nr:O6 xb׃d$Dv:k"("('{c|D\aP8uթHNKg5雓`8S܇ vogi{W6IXP"!VhW QY+[6&^wECHg_|8se8֌oHe$bڵ`Cf~"IsYvؼg~a~ C:E@PE@P 2P̐[ ~V"_.b0z08c&̸ ‘Iap?ALB zc;do<("@ៅDZ4Zf{)p,iV!!aCC1ʆ  )I 5mWE@PE@$r h8~!Vg4 ˂Oˆ$ B#OP'1x %}QXlٙIȗ7,!1=t7 \$Tzǎg7o9ؚHm,:jE֭[gO|qNvd(Ĵ^PE@PNtĀ;XP8oLD$r{?Hh0_iEߗ ^P Iw$ c-Fiu(H.+B%Β+%fKHl?=gpY!9`2+VXBE@PE@P +kt @A@1(%ˀ\ jIfD~*[ߖʎ-Zo&ʔԅrJ9ptOu7&[N4 n>j:Xxfش k[ǣE@PE@Pd_sd9FJ Sf_m>C>#XɖjGF nhNGQE@PE 0RSb` C[w8uw'l\vlqmyt6ԹsE@PE@PE@ $$VCySXc9lq0߶;wq=E@PE@PQ"Fr"("("(GՐqnci[MFȴǡ:"t F5HBߠm=xU?G2Тg"("(D&Ip*wy0L{{l{彶?Pq_qXj Fd|0wr[zx6)4.~!IXBINI>+>lLɓ'׬"("("---W0m>{op?zל>7b [uq G.Z&9Dz{x,b8j9IZ;TPE@PE"@9) MG><~P?\s sgnNg_9ϝkpn}{ :%$Hnz~D"okinx8lKvG;v2I:qmZӁ}0xHDœ$hT| >["("(~ 4gO0iykkw~6ܽv2c; GdW棛@{Yy# #02Ąܣ]*Az#@&CcqI$k"0B=K/;z;[CpSAIɑ,eyJKDRSAxhƢvF"("(0-Iɡbs{cv^]{/ Hvv69`G[aG8HjDViyEL(Ѭ,񥤈A@۰^OF@x lȞX}YP c%wxe@/D$3S$hDUC2Nv.CPE@P5dJd5n={[o%|ꜳ% 0:/OpSc Ѷ; .5윌}$"40/E,)$ujޮ.پeo%LmjOE@PE@OlܸI6o,N9EO&)r { 0,d.7{o`<'eWe\ Slj+!?$O oqhm-uW]-7_s7M*hˈHO'ް{f_qŭ^f,ЭstSE@PE@PkWqoq8`{=oh .P&Mh5:{np~A̜9 A0al۶UVZ%6moI: &Gϣ(:]ER]HR%@_OaN:`HCh<{x[ѪhkY.{Zl5F $h)oyAk裏L Fze)48ZE@PE@P& S̬l9u\CDRaO+a-G#l1 V2|Gܳȫ,hYUҫ@OW` Hg4g,h8 j7'lݷO}y/7] 8dzct2e7ʒ%K_{z("(qXs_꺴ݝmnu[l3d$7'[&IJrlP+ҁ_\iϱ Q[Bs 崅Y>kVn_l\|Ecwqg4mh7([Ti|AʡhaæIŒA }HPaU mod]w[so2k5Ȇ1 }m?w}ӷ kQE@PE@+۳V6ld"-K+RYY)%ͦ$1)%Fb7E0ݺss3\^^nLn!-mrΧ΂dhɖjGԇ9nj3ϔ_[Y `#[`% B҅\I,/w* %NBC,p۝ol 'SDy+"("p" lQ.;w[ xJ`d,^/!2b}y> !A 6>"jL-)[Stw(gqƑx33lYt&ՁIpBlIppBZ1l4 b/6`'M ;nPwdg1L󳐜p¾V&0~)"(" 'lz ʔ\ Cd1""AF0%1FÙ= H*|L,`EG젱)((5-ɞ=BrƄT9V8G T3RiõIBIfRL>a$$'~ L"N"a -f"tY Ͳ׿ʋ/(W\q?c~#^vTE@PE8Ar};ܒGyۤh5f9W `sNXH-kv6mn p  J:,eh_ ?߂"̐4ȕHTRd5r%e>sQBD>G>}ppWeѢEr 7HII!4"s~'D~-9(֤ y矗zJƄ}Xh"("0"BB`䢾јg##侥Ր7lۥ$KoƇ /[%(P((y2{;o>I&$YrJ\8[Yv\=P>] f$$k֬1nC4% Y6`sHPAÍF5$6oΜ9%FuV3>#YQBbQ:co*"›?ia%E@PE@8H#ȭ%!ykI1a 9>%[jaU4׭9H/4ToHQ]& ?6C A;Q!!ܘ ӽKIyI YK&$7|`!C5H ͼxCd ins )"(c0OB,Fz$9[&v4QSӑZfc\ #+FRy2~'> QȆ '(尚L[Ra` A΂)*%c֬YFh?JS]yBhZ5TBʂ V("(" 5ͰPIc2"?hF*vUX"|KIX2BFҧ1#1!ItpT IDAT7 (MMHRXz&7}泉yfieuvn^Gx\H1ܲez W]u?_;͘h4۶mF4Fxo$*MnZsü Z ie?>cԩĬ_^MjI("("p""6?~H,wOM (L(*Ddi,U FgoZr?|%Դ{EFBL'hW)S&*+*'A>HN]t?D~`ooGl^FZz!$$#^{Kf o|[2`[jOXx'O<n/h3NY"9i5PAB k d_}qiQE@PE@jB< axI;𼔫Iؗw>eRXP$Hѷ:xu! L/O8Cm"+˯^ȃWR_={^JA12 mW}t.h5{l7)L1j*H<(3 Rr뭷=c|o\wu>Fb!= q{z!S?ؼg UL;sp\}f~ݠFx4ڹs}:~T&Wo4>soiH ر*5qeTkpL6+"("p ` 8u4>NiiHIh<*j'\!4r|œ袋/24"{`MIjJ,=lY|Rs5,4b#ƢI;k!s; }A[w4ԯ}9ǔPp% #FZzɠYկʅ^h( мOd ͬ$9s1Y 㐤s=l&[p\veF/}ٴiVkx;0d{N%~R yP V4qL_]]%E?̒QSs$5ٲH1ŲN6, #yP_t?6Nt:bGZ3lN v%K5b}FH6b5&fBvtC>s~jK2= KȆIՀmpShmiޜӆmЖtdaQfXf|"AVa}n\\c-!9&QnI~g?Y׿u뮻Lo[#",ThrizFM2j2}C|;ߘ^ejHɘN)"(" %DdD^ < ɀGj>aAJHH~ B҅$n> $ $v\RŐo1q>+B܋F n#}6cu̴#\z-$~-3)hW^0G״i )`]SS{¨V,$&{ iV垗I/,ԀȝB.4rx 7 mD4$#]u z("("p@7 $ 0Vx 0)N `ErHvdZ,raIqp22~!*Ɔ+3)?t~qvrsz8}-&3/̀NM M%.{^wp׼MF?ڸ_z"("(tx'3i$>mʏh!Õ}8oԎPrT̡9&ܐH܉y=6vSE@PExꩧLN '#5p|MII@u u@_H 2n' }GDj#i1~'%rZRo$)lyD9 277~lKaEPE@PE`xMλ)%SrW\rZΝ7Rga_?2b-T%2Ldh} ˇH4!D0 sƴ H\>Bbߡijh|(;}M=\وЕ!RĜ5&%| ]7b9l㞐d}vٰqhG!Na woX٬1ďT(7gVE@PIbmIt={0 iAa"ĀHUe12^$4b_0IIYQ. 0ꄛBLU&[ppI")6]<Ж}$ٲ(kd z4XXn\6+d;e3Tq|\o%?@OLlم^tk@H.,o=k*A\CK'CB{-"("(LC%Zk c]  Gp@%3+Ә[E^0Sg&ORB_P(xe/ﮪF!$+;̩KAQ4O@RNiy%).!Ȑ1_ܕ#IHi!~$L"*qmuyV*,sEPE@P $ U(CYe|0=E.3!O̜9S>ټH`I͹q|*AJr%#=/&&k$"C.=#)$USKvHf'J< ‚1 y z`#qOx&WJ>vɎ8q?m 'KH\64ay>ێ_?`'Ũgn?n.Т("("0ЩfZ`L %E hOB&=II$Q3l!y=/?O%ps~҃>,;2^]# q`쀐TEKWNhXHH2:,itֶFnso,!hc5s=~UD*~0>?[g&6]%$ dLEPE@PE`+W Y)AfaBƢE˪WKL(eQT奬F-א ' Gy46&YlTH䏤 e HX`?tl >`0 Ӣ("("`J>xq0bS ;Q '.ә= 3.jNB&WIRH(1Z>+ٯJzj6Lc†pH |< 2sM>_6[0o. A"S+FǏls ,/p̶XtoaVLAE8 )º4#q8I+ A$-3*) ]v %$HENNΘ=萐|87 Z1TRE@PE8DpB}$weۀ03;wJ~J> 9}֭wTDuO?@;CN?{אg=; l~9E@PE@8~l޼ل%>|iA( mZ$"8cH3aKJ Y #Hx]&\uՒ9K.^hH&L/|6(]u0 .7|0+xY^cAq$6Db#)Ea%=s9΍ɖjG\lT1GxjJ"("('#d)&^gͶemDk5Ԭ$!;Ba>=4ydAR"yʦ່҅n ʵ'XGEdlvC~"$1/>S?~.s9u4R}R0r}NSn>T!QˍP}^PE@PE`P`+1jccHAAuxˡ(H h1/]:`X-jEh$t'lALB zI%͑ܭ}{(cl<VZE@PE@PKJ(gQ^ bPjjjkٍ =I`%3/"k~).hJKB=M ?`zY3L( ,$KlCSBrH87q3X19q'QE@PEMx`ui>oĄ-$% 0f kb X ={D1ICmGZV-IT.@Í\PPD&[p\QtOFL}{mJH,zTE@PE@PFlNB,ֹm=VXg<ǶGKLX \IN4Z{җ@//HS{LavL'^@A * % $_d bak>}>ۇG%$N4\PE@PE@%nALG{=6^C,+hZLH^Y,vNKJ|_x}f:Z`"M#Xh˽ng,!H[N\PE@PE@XrYaI xb cߛ&@ ȟj {;v 1I8ofZwB3r02b&=/KHHsm{$8%qhZm-AW5ƫZXό0Ch"("(1@jq%>)s2 {Mִ<)] !gԐhZgg}^./d ,!Q axowr[zx@W8;3?$,D$7GmHeG3*@3rJڧL4-q9ROn [=R鸇 KI-Ϝy, BOV8wSW#\$i&1b("("#@5j'iUXc'M d¬ֹc9'rg {^g0ZBݤ|͍ K0X5I?}NM 8c_ga 0^godFYpOwKtWt44Hosl@&±}LB%R-!)|"I̲<%" <XΰqRE@PE@P $$VCGc9s0s`{x笳Qc9ϝmsWBb.hGR]L#im[dĉbLG r݆hxO0q=FٳpTNj-{e/-~%"Ф%%vՐݡSE@PcnRZkl\gT g3`t C=yrҥm2rf?} hB w]RVVfQs-ۡAI9k-uӖ}m{x㾶9<`-ՎX8:!P/KEj"#SCr : &Xjky`q~#h1HPp\F˙K=\o߾2|YnL_3p.JcS%A=NȀ OE@PE@pDٖĹ:uv-!^Yk}h9ɱND= ~73J. kEa)EB AMdݲ}v96\G2x`K yeǎ- 1`Ӈ(lr71 KPE@P3DߞۣIXgŶsHh_4aDZ 5y?9iۜ̑9s.4$,݂UiEBŤp΅l2Y`$>IB%9Yz ]$6mt˲[e+Ȝ9s|sX~)"("4 bDs1IH6qVUU)%%{鑟/l+eԟ/?̓`I :h@ IG!)A%3V1x 8q\}ҿC2Viz/s=g9%$\$3ӧO[r~hH-˿/y$77hLؖ}tšSE@P.q6tP3 $̆~#M6Խ=h%cƌ+Y0np01m%bt,!997?IȤW\iHM7$f͒ldyw'|b3I%$z\PCb*~F2Ć-[-YQBbQ:cDWp6y|yyGEPE@PEmtlK=C2|PX4 [<ʖ̐\yŋsYФpFSҫW/ۺuAde糄D#mu4ҝlb$8^YYl۶MfϞmLd& /D%4h\D?H}HZBHF^WM=Z Iki"("p 9jabdO~<3̞XRRS,^ !:tlD$׼OM>i'?rkɏccjt<}'dΝӥC2G;d ̪@BӪxBS+vXޚ;7aԲ0▊"("(g*| ևZ>^&TUUKODYd/K$$%L,9Ɯk0^#MDO0Q*_ {5&間#@Vιֵ}Z3K_Wdذa;Q+6޽yf9rQ.L~6AS&9ub֭1Tc`#Rk|G=UvED.x!iMg*k׮5ra0("("GoUw9f/FF( "l!Q̴R-ɔܼ\`hq:g4P(,p GU-[,_\=\1bD77m2dDuS@bO+dƌ Fs0Z0 !z&oԄ'%Ii>ٷoɷF|_E@PE@ 8Jj DzS|G콬OH^PO-bl#𢹆/k_ҽ. \sА8Ƭ'|R}YW_`#<"?Qe]uUol/wyɧ3zԇ~h ȕW^)>/YDӍan=veҤIf޻woSGˡC̜GJݽ+h䂤%9쳛'uC5ޠ:8Ӭ>'_,Z$ۛUhs.\, Knr^$$t,4$9qfV72q:>|k%\i4^PE@PΌ_ޒ$a;秭}A1+ [3=Z$2c͚)V>\ _ &( 3(,gL Q/u5Юk#ox"aDZ}jqtS&xGnɉIHfU&c;I٩ i6Ǣa$N2fmoy}m۵vti6:NkHI(I~~lYKG;P B:Sɠŋeʔ)f\ Y.D +!a۩("("(Dž@,AH BMbЂnfX~+IPJJ;W|0EՁTV!/]AD"4:bL(3gjyɓ'5b{lP F-e̙PCpBCSkb6} 0X`祗^2&a6~N7E@PE@PNz!M8|$M[ +aS332A.jྐ {ɾ={x>⥽0٢| P)fhYmw:4:#? .2a뮻y[_EaI4ae}ϐ&x衇m>~ߕ_RnݦCIFM7zSLPE@PVS~x嶝筙Hd ġ",!,+I4)//!CKHe>Ip`n%1ڑTV\ ÜnY$6qs~vG[n}Hu<'?9jތ7H7}˖-/r9OSq I$2Mˆ[n a~JdD gkE@PE@P:9{xmY Ƈ$5-"!!JD(>Y/Sgʠd凫Wcbo[$Y`M|iVEEdg¼+Yv|r jG $aG'quĵ?6n~|~N7QE@PET#@'X$&YH!ټy#}Cn49Hdo"a^È(]ٿ=zG(+yӃS&B p$`xM("("СwtNgp$~ǁȌI ve[˖.wu^IWIKI20h)Dٿ|AT* J!4pѶj6W㾁7"g!͵**R+ {QÑ`,91眜vxikǰV]eLB  + urgᗾ0EȻqDV_ϫTE@PEೄ_*yv!;ի9C2re H.5D%[&bJS:hGjAHMp^(e% <ΉGӁ%$GF?w{tu3+ R+dh_5~IpB%ayVYdW("("p,V;`5Ƕn )1kQN Eˆ۶亣$V1 ! dx`sYBR]]j]V"M;ʬn\_JW;)i'D6:fAr1&zTE@PE@hBny>')a,8_rK^l[{ܰlؾaV|x1 1Cy6?9>#ӸM8 {Yޮ G%vcKz}Z*Nϻd`OPHԇc./XIU$Î椖?B?"("(E KK$ zq+6m&'M?@X ?+= LXBdp.N_= %?@!"Wf\ttOj.>g&JH,]A"Pᓈ-܎8tQ1B` +("("ЈMfHnh_rt9kI`:%&&!/WȞOB8 8QRQV!%%%2h$-`C#,p4}$ڴtow/L۷"1%$U&\Lп.`ba{'a6yمľSU*m\PE@PE!#+bzjj/M( ߑbP, I3n/=\,y$L0O;_ JHN{Hj.$ ɇܩ5{8"("te/l;o92o"} 1⾌azis-A.|1"yAQJ*JZ*%mR߫\JRd9ȌH~b?~dazyy4g[ffq A,"0 _-|HYyTR$?RcOGV͹$D"OJ~BY[T,+zh9W[Rؾ%HT;b{-nNz&#\Tvaم׭[E"B "("(A!S@49T\ 3OH ES{ ͵O!Y}V$%-GHFA^_ʠMñ#{k. AH˔mȒҿ[;!Iu-:$;v0~!ΙԀMhI ZEPE@P*HgrjMH/{֭p!5ӻٖV,^h+ GvjW4l+$?xRBȌHᅙ|OFN3|QUW2:!Z0jhS OPr7l xuJH:jtqd̘1w^Kmz8l;\z&oI6Z("(@MvG?o&b.-;I0Js;|A< ԐD)a" }C rtITHԇ 9*6Q% Iy%-%C(;4;:PgF_]- U*"("|Vp>^[.{]cMH>q*å $9ˤ1h>p`&iĨ<߄9 D&]|A&F²} WIXa;_pͧ0QB g󄋆9L:2gI}jE@PE@,"`kzvF=ԖUv4HL )b~A 9T|Y6ND(B- 9QMuBh`dc'aiBCi>Ȇ?  NfD#%a1 I 1/ʼ{{2&sN[}L=|NJ E@PE@PE>Ua{H|Xo2g%&Kw%H ~YY $ ![IA䬘7&n_5HBHELϾQΕ/ Lc4%$%z =!BbVQE@PE@PΈ@~~A"\ޛ腅K7[$ 3$I\%5N!a1`Hu<#MM* 7Xtzȇ/8YaD5$("("t<={C@C"1$F̒r&%#$pg  /#gPx%(Gv$_<9x T$K.8}%$7"g("("|>n-^HkPq,F=vTh>*A>%PYi(PHIA||MʁA>LD2-\#h^z >([ E朎h!_2R{ z7,kK,!i+"("( n&٤v8dƖ3/HeEdgg#GdӺyJbFgf+0a!ș(Uz{Ӭ$ U%ʕCiodɖ?ċ:8 O$\Oqms]J("("( IDATk"̒yŃ%dA 4JQw AHX=j ç^b28mjGE"("("t &9sd%rBǂdhՈ. :Ճ=X^BF ,Q$P4`I8 $hK27%&I>="("("04Ar!ٲ8-wgΜi2?|Y*ʔcFʤ2$2f]q^&`JB_Bh9`ze8„+u4R*CY7P]c C29vt۶s("("( M\)ܖm961ݛx3ٳeEg#S Yx׬>96R<4ZVUKr5?Ԃf!a 5 ZnΓ#(nIQIdA7?3b!5n϶1f I#=UE@PE@Ppomgy q쨣cGU6]X3i$үX^ֿ$n(`*HM] {e+ϟ#;dqnGztZ`$$$t|G`fS-!IB&\ҔZw:޺ 5'c(f?jxypɦk#(5,fsۗE&,~7Kȶ}^44#u]MRPE@PE$HJBBDJ~[b⩩1 cS' /}$SrȂ#|oю!`h'8CSB3۠i#5DkӍID}uݻw⑈EC&IatZP74HfZt͕@]H w wH&@LHJ(Q#Q0)ke߾}5:E@PE@PD/7{;NDCvI98k&Oݗ*u]uL^>kYYn8FӚ}\Zpd Npmw#!QBԀR@&J@ :ݻx0uAxHB)* KгgO)):y޽Ą; CE^Q^.ݲ$IM9xxjINN>`gՒDE@PE@8%$`%9-F́#-_ f^8M'.+ZTv׭Pa Ifi%$S06704j=hzzj2ta%yݻR8}An؈a%=d;!C !&ڔ02$'&%\>,Ç={ !Ƀp"8q&e$OY觢("(_Ҽ-aƱžD%͟%/3xcuxYα)!i'x'/ġOWUV[ah#ٺuYnKPE@P3wkGg?v;?w{\[vl[f,1v:;s%X ɩ5 sQO*kAI0DIL#$4^tE'5Max$1u*BąEgjӗј$%7iň^^DJKO*0$Ԟ*"("ps^psfןě5%$bvzleanX~پ}N|su 7P^~eYn\L1]^{5ٽw3I剿?!ŇMby͓NΔM`u皲%$G\皟ƁMA>}!0zd=R(]Æ y2d0rfed͖C#G {JLJNB}AEF!40p>*ШtmBƧd8"6l:|3r饗Η#FgkV.]* WGyL c' 9brsO]f̘!Օղh" _^xAƏ/7zSCDLf?C/gu;sB D4$A("("p"@kX87n,vwOoKT=ۚύS8t ymML6MLgk>|P>cC8nPA&z֎;diҿ_dmܴQf?ӄ_HUy?_7]^u${ MƏowl/jK<E@PE@8QN[fܽqo-scvsl=Oޓc; 'ħq3ino|Cz-׿.{o!_|L:U~=#&M /YEYƯ*Yr9$; &_ng?!Ϛ19BoOje޽r-}{&`se{NRB` 0ܼ\9oyrEߎ;׿̚9K y߾r5sF31onrUWqTo)yyrIg K"HDn&3ȍ7(={+.Bu&cǎZ6ss?'i 3 ("("p"$%-}Xg?-ճߞ%# =G{~}h΍GXBҥlڵK~_M?7UUUPyy'巿}$??:< ~L7|/)wy?0Idnַ6wm2sLf%CO2,_ .Mr~06[xqs]{NXpʪINN6왙?l~$==Iş7j9]-337 I 烒&<є1*Mm[R"24&x aa!cnIIMn&GI!,յf܆@{M("("|6h6rQ9s^{58qDk׮5T x8p@z}M75d4K_j4&lGs6jA)t/Q wޑQFZcP!B Fzg;hnч!d7$_tk3d- O{1Hπ#*E{@kؗa)((|J2Ӥ4yG9X>hOg{̋|2kld tv}Vm("("@ >$]J;bƌ弦&I)/Yhu mf#q BmSPJ CZ:9`=Ø}ߕ o~CfHaA+:zIv@HʑOd萡wh6a͚5f05\c',6~!K->}?W}J&L ׯ7N|vjpΝ+[lfa_v+b 6o,'N6ݻ &_R 2Mv=6RE@PE "Ɉ=ǶƵǶ}vv$$'S<ҏѤp MhEztX͊mxĉhH؎D~jQHFh>|E>#QWW' i8Ǵ=ϛ U5Uh0xx${v3,FʁC[V7;SZ\*pDv)ii ־dp`ٲe01b"Pq 2Eٽ{O%ʡn$*3#+S|~"("("2և.Rz%sĠpc :eF31fcnesd1PC@M I(hpB3}V .0m['5 e$Bo[s3$hB\VYmE假0 ͻՅeᄑ?8sԠPK$HdŇ+&c˶-gɓ/7Uh2A0,_<x=gFLg?ܹSo(8K!Җ"("(g2iýnNqk=n{:sgv9s3bHX4blD~" MH[VhjňYwlڴ8(Z̼1W[{S+qAg{:S8&ݟz)1x`֘>0564%۱}5Rwv5&awyL<+($8ᝊ1[Zq _}Pk2n8ӯt]"4$5%UzS7WČM?E@PE@P8=s>_>7exRMF[GFKB-0?-ajT1B5Vnv{jSB6|0dVHQ{4οR^}Uai5G&JAV͙;ǐ:9JJ9aD늁0`n.~Ԣ!G3deMmhZ&N$۷n3->,6zdr 4'#j[E@PE@PG흺?ɺ1;aw9$Naj0Hgxr?zFwkWY9xlټ!R'~RLhWLĄ-/y!Q")-[lhS!t,z|ٷ3Ak-6n#!DPE@PE PXbܗqfg櫩5P%5|Ͻ tY5ŚYr^ssۗEf }1?7 z}0IXBrOrޝamiՕ~Ѿ܌HV\8S  J(t`' h!(! ;V"sӌ눐4e6p>ӌE( Cca1Kqq94S$?*"(" VЭp6憿'X#X|Ny dE >G@@'C֊{ -huڳ53XB܅:sSϢ+Ё8S"d)p!H#hdэz伉jgM+򈸗6*Z6=qoq9@fd#ov,d1qLPE@P3nйۗI^^. /\} D Jry7|Ka_ x_3EV4`öw^S^ bBWjWHb:PhܫE1=)|>R:DRe&&f=I%ss?Yo I#:=t 3WO&1/R42k h*LRBBFb̳ ெlD<1N:,H{]fIEPE@P3}ڳ!|>L~M!i`7իFa!FK$yp+ t_6bBR`NyHT&ۼ0L8&cq aڋ݈:KCBsg'yaIC_h9Lv|؝Ux;&ye=`L_2ڒ>В)?h*A`s"rb X'9 <I $e@{C1fY1}ѐd(>R';2)"(" u } `C$j9U1)Ĵ!\\R,yz("(@WE >'^}N[_V^&iB᠉jJD/&74"&]Qh1I,)V0E bH2YL@I;Kapt4u jASSe3&PQoiGTG[ G?vp܉q˞^<:CE@PE@8ުrwYIqq^g 6gc?$i)irc{0#2} k&䈻ߟ'!>oe$ ΖۣxܶGx>\"("(/w)ӧOٳgۃqS!CMŨѣd옱Y2fee_/}ɞ{R'Æ y2ɪkkj%{vPQE@|Z][S']kʔ)XSˤɓiWA~ :TRLC3/ @S-FE=t1Ǻpf%Bk3"I$X%B WVTJ~}%ƌC232eРAf>+V0GLaxr"8dK#rE@0 槣dK/U#Gvp>Ng_?("!`{d'H5fVeeƬꢙɢɦ͛g|2c xBl ?DڱcѮH6g [U^%<&߻aӰK 0Ns2>#>$9("("|߮=F y)!dgoP¨F2}3C֭_g4%h+tz'K$p yfsa-&Uw ĉ%#=hPX9Hn&y뭷dr7B-EBn8TrHfM% bcD/̷BXgwܨDkE@PE@PE8nv㹽GgZv>8{}VɄdƉ~[Ν+[l5Y׭]g+̙3Mԭ[7䉓eҽ{w1v7YJ2FcydӶq?--!H[ndZPE@PE@8 RUS% {!N@M=;#^UUU,nYݤAJK%;%-9Mh>\9Xlb̴HhwIa޽%ʡZBRA132@sұ^hSt|E@PE@P3 ޹I4!8rYf 1\VZ*7^ֻ2ٲՅeԩ?QtӗЧL6 9s< =AV|dr߲mrd˥v*$ Wr;%+=%{rsnMIC 401v:[.D5$DHEPE@PE@8NvJZDbwQ#yJn\Γ]w%'O6*$5)8QCikwzyuH,Dd/I2bX hHFEH,eO ɠsTfՐX("("&RS͝*W_ &ȆMdϞ=jwyG&N(E (aZ5gyꩧKKKTz)!dX$wYߛ|؏}XBT6&--?{d%CԭDz% mMɞ4Zҫ[nm弜qrCt`:"("("YCfJ+޳ۏ}.5B*;+V-J r`v+e r*y8g+1Gce|f=HFϨXJPb:cл1pI#$@lXBPz$ekkr^d\HYx8)!u_BW,lS}.=W 1REݚp&--*3q\sE@PE@PG!b֭܌HVavxPH\%Ib8mb S0CZhEy$9R+9IH41& $v @N#z IF4S>o N0uWL I!y x܄8 XY=}i\zuZLJv6^|%^,m[z}T^("("4"O#|`Ha_Q >X$r!8_$,Gy#-gM;^ lUuHnv!2'2Zo#&#RBdWrz CKB I@kH,5-=wKevqX:ċ](  68fܴ%\~.n]Ľ%IFkSQE@PE@88c)y+?9$lˀmͳ֬DɊ< /AR yoԆR= d${D4y t1p;I4$$!.ԁ$DqT~~o?*w m##f Ir4bXD:}3.Zk-CaGd0xA|xoE@PE@Pö ^E;dw^$Xfxb DILl+ ( I'<bhv (4Ojwm^`aD'1C"Ў@Lb LoHJXv.pm9r84l= K:7yp}Hqk VGL\vKy%{9"`Ѵ+mp!0DIɑle% /H ƒIXΨ("("Rmmw qĈuuu/َ/4O3-uvlf>O"/= ! İՋ&찼9ƐH$, !G$F0Ƽ(}-YsŹ63&[xFҶ#iT@DAΚʓeW/dg=Xx W}V.Q$ mD.}47NI |Ɛsk 1kHVbV0,5X*"("("\8JaҧOa' K6lXamypіL@&Fo_mzAM*Pzzr|\>-ʃsS}!1p}dK#.P:eI-m=R uȜ9sDf&>ϰfwn$"40M"$3X\@@m,O< Jy3L_+7("("pZFGK:,ukkgk {ɀTAQ'I:ޒ|IJC|$9iUPК g 4+5Í;tP:ĩD dOI=-L6'%].]qa{Sݷ Gz#1bD8c;w= AyB=} #>&r.GGs8Q~'~̃*"("(ǏQ:Ɉ ۱ӫp T$Rͳ M$rօAc";'LĘ0SBbN~ _$ 1cHԝqӦIaa137d"V]e*۫kvZĹbo*vr*Lr_\`A(&Jl̍Q60s(͛'SQQE@PELDq>%29ۦܓ{xbg$pHrh>6JJI&?B_´>([ E朎hA~d8(ޓ%$ESnTå"uR)áhmZRfق\"; 3?_zo vHB\Wr5>X-g.qV}{TDjU<+93K*ai~8X$(%Nvw y2PHD؞~'_^8("("|:d dlI|PD8 Ks1&Tt4kg\7pL( >'_[KXlԬ$>8FMO/pBa!ahP/ )EB BMdݲ}v9$xЏdr饗5 HF^|Eٱc?!9< `mYN&0~)"("p `PiYǖڵVR{]c|#:#u1|ԡ!u$ٛF LΘwE@@B8sH([^1Z*7oKHZeiHXO %)98Sl2Y`$>IB!!9Yz dYBBri&IOO7VfY+2g9~*$!3Dz KPE@P3w5۟Öu_rfl[:cu{G{¹/LAa&Y"n'l Axiwd[AHA8}__ k4&d%$]tE@PE]7ض&m>6uku-e.}fE/%a-:#Vѐ$ ~!sõxlmn,!iq@- j>HR$Ԑ 8EFe 5+[l1Ɋ Er`ÆT ;ꘊ"(5?ܤ{v d$\%Fhu4#mE+Յɶmd$MFX$$%qh$ +!($@CRZI@H()GwiE@P>K^>kYYjAL lJjHa47˥Oĺ$!&wѢE&hu]w~ƯߗJOzlH!j LyBhZOhjwt1^';V~a!ahbFRQE@PE@<&\l]*HuĨH=L!L4x/;ih-dҥ׿U~7t~'v!$10B38H]þYYY&IqHҨ9m$^ϐkךf$O("(H/%'qi>.2ecGޓcdzel:sϕ#Ftuix<'[j1 HӫWVx &Ź`HL!d߾}&I;)"(#@2/ɭeׇeccrml?w֮}8ضG)>ꫯOx4;?i!U3r"[aĊ IFv?|)4b"("(g"+sSgunm?{t,ki6͜kkN8,:r;51RnvI.|D-`P̅#C=dp/~a̮x@/^,]v0w`-L{zº?BCA!!XbݏorΩָz{Ov Mvgo1''< g̘aBѩZn8{1&L?nj#3g4c1$)ӦM}k_\uUA袋LILr֭ްS-ܿկ:OsqĻ9I"("(@|ܖ0[jM<I.QNBcyVIIܹlY3hnL*HIPa7 $@- Č[je"("(ϴsp͚5fbg!C"/}KDŽւ$fYݻw&k0SHLh0_$V#7nK.5l4'w}Ʉ9("("(eڎQйk䩧CT/ bb>X3)Sfgm7o6^ty׌yyC-#~QH|(˂ dӦM\_o~Ә?逊"("(!pF?ȯJKC3D3$`Μ9rF)5kqz?쳏A"TqLѵ^kI,V\iN\8*r>O MɬI_󗥿PKE@PE@PAluH[?OzznYFAM˭g^0!l~6))T0~3IOO7.rDb-g)@guL_:[ AGf,Max+M ?_}}J'+"("(#` IH,pvkf,oI8Ɉmpel<##V;t^X O^"("( KHt+_%$)'az.TE@PE@XBrFhH/p &Ms4OA=$DZTE@PE@P KH6\A0 )7%U I=Z? ɞۥGAřwQPE@PE@8(!9螦!X$RoȠRQ{-e9 Sdɯ1hM7*!$"("("p)!9h[: _̬0ěK<*FV4>~IR%Ҳ$,eB `mG^3Nj"("("A$(! $?a<^$1 9ZI!>aN!!)//w"("("pRXBnO=X|'(aJ$ZITbFzrD,!q&ndz^QQE@Ps IDATE@P:fw4szw YX 8hIDHi野)~С#tq QVx]Q0E@PE@PEc0&[^w-tSågaa3y 0hP Nfʜa$.]iFPEoN࣪@1"/.oT[-<>XV[GZ*.DInr'30Ng!ߜ" ?GöpOoh2+ H,V^@@0 x%%%Z~Zn]ZP:glܸQ- 4߸ e4?U;v<lF@ T$#4U\\,rJoH߾}1% UG=xqZ^?@ :ؿ;o@D IR<<O?cںeYPo}Kv .]/jb*,  G>Z o.]ԳgC#-999^X b-,,  WHir ͛vZo\Hp,$//{}m۪; DA૯anfh/uhLJ?/,3mGyEBh! H/ ˞aҵkWoJC9D}uAɇG@c=_/tgYywtc嗲'?z;}]wy ?ӼǶv.;yyG j~@ pb@@.RG&MSO=us~V3w}pX ?=㵲^_fcE-9r{==j߾7[fmܹ-Z87Id9/  Pla-[z-T?dݺu̖`7|ӛtTl,p ڵkJ믿fm3l8eױZ˗/Ν;+ (ǐD_リ;8g[I@ӧOZTkԩ:t.]͘yGz7mڤN: @+?;m[,DQ $:qz}Ҙ,p;;?N@}u浐ٳ'0L^duKm۶ƌ<#-ecC-ׯ_elHhr@@6̚5kiݪ 򷤤צ;vw;ꨣ4h ͜93b bl5jV^^eeeūs1uY@=l`޽{oEY#  NA< /ߚ2eLuY޸Nuebmv{gS?mٚlyc, hp <*  4Isa@@    @  3m5Ypa@@WHi+y9G@@&+.  @  -$[9  M&$M.  +@@eO@@hjr.  @ $os@@\Heɋ   t.[̲teO@@hr#M^$@@.[$gٓk@@\C !   |$W@@ !  $I99F@@ fbHH  #$̴  $u%GK.ڲesa@@ nҋ/%_&z @(rJ@ ;wD[nab\ BEdN$@-d/ J5kY$O  $bF   "HlB6@@'|b- HJ lΉ  aRB}݋   @m]t/4RmsQF˲@@Ek׮fR6lP>nC˖7VH I񧺡יtISjƐwuDiكĜ*A8|D@@ uVZ}.[#!-$n^]q ZZkϸ#g鎮Բ=PCսp}~ϝ|t[TxD  ĭ+iݻn%$Ww? 񢌐ŵ`fi!inWؾi :󜡮-'h=uj~F_!㫳իvxZci1 @@O>S>}1݂Tf:۽,X;,x[?+ Ş   sʗ-[Vc߯JFgEjshܚMh@@HO?T?`vl-~@b-%؟@@@ D`ҥ/oumMW@@@ x~ H)= #   ( H:wr PC-Ҷm̺r_& kNC љg4z@@M`֭䔐$8~ 2w\&cǎرw#//`af90atuYG  @$ %%%zᇵyf|:S%>JPZ0h;s9z5sLZJ?,g,  ė@VߏرCwu:I^@wJQ`n&TX7}t Cukڴi^8a8._ $e+:buZnLi_ʾ4]U^6ڶmWj޼y^tѫɕ@@ݽ;ojjٲ7Nd-#֑jn~s̬eo?K=\ly.R ΍^b׾L9Bۘ{oݦW^uցХ9   QH >󫯾\ 0UTTo{ٻZyϼ-EK^mϵ6g\3s=rD yE&ҐnMJլ"ւAeYTס_'L  @, YfE().QV~OOo^0nj4&qͩVih MCEgwޮҿx\~zjsKC+_Ў+̤ wHyY˛zX6zeh;@@ž1ҵkW65-ջ-,(RAA;^Wara[EMfy_v9uzyee/^c-GO|%mOTm;sߴr;c59z擽svo[stħ%(]~QC{/*sreZ-MWi_o 9stQznm_> fM^zxB r^(/?O{ʢ#سH,Xr X@@$++KmڴnrF^b+ː FgB͘t.gdezz +IأqWΩ/mul>Kz/t~JOu)NfXZjov7KCzf12H=3Y]u0}yZm@+{Gkv^Z^Vy,vU+y|%u΅ӵ䭛ԥ,]n2 `.tV.yed-%ga-  #PqGbKu <,([win_n2nSKv ڰTzPhjEwAcr_+'?(o-Z ^V~j֮٪nK~ n^0 Ll,_o-S\  Ē@c-8po7~d0K״XyXظEi֭^YY+   "ැx\ :Tf͚s=W;w̴/Ktݶ,y罠Oʍ֑D-u $@Tiϲ֭UkŚ:u7.SϞ=emL K[?,Ek۶mZz7gŊׯVn,  ę@$7UnK.'ܹs5g7 +⒒oG֭թS'ϲ>kSZ,+1cƨk׮wkϹEuK*ZTv$6}ܿ7=]tDz[5t]qo]nS[T3<A5 IDATR1*{2_:Z@&$:nnd…^0ҫW/?V޽ձcGZH|:[uVw}W+Wrc>ȺZյƆdffz Xh/ 3RBHC}T%֪՘j=|oO``x];T%+W{qOݎh)9@ ]B.`?ڼy~ӟz |QX קOs93gk믿k8 LyH,q~U_psr5])n<n,^o-ݦC]ʂ @, Ը{]wݥNv|nc)1r+~n#envN?=dq?h„ u Jb>$QvI:,Fo}K\ɖɷMT‚ @$o/K2e{paJ˴/r_4, gȲ){m,kS5o_-fi M_h +iZ}E =ھld 3Z񜾨iϞ=^׬bSd˂RLk,4TP9Cg/deeM6ލ,[|Cpף2rҵgB͘t.gd H\=m=54}|I}n6Ez/~s_?bNrRWKK iγr(nkbA@@ B`7F9+v쯳TkQqaةCuHe ˾RZ%?]fߣ'aܯ%[jŒn` :\{ͼ]f~j]y^vŹSTV^њ.T~б XҭX-ń[]fN0igY-vmkA[-$PX@@EeStv{6{{-$R VwRV}}ݍm\/lX_/k3^cmVH롏=Zm׶U;ˮSB[{tW,R;*ف7&/Qiʲy'( ߕڍSJ`]ř`o"ׂ]exC@@ B̲an%v\w= RRU!:=4/`IQt=6,U4hS+l {']9YHEy[lbtu73_klUkXV֮ZK޹u_ɵ Ԣ'GW nyM;LZvyvvjâY0_`P`A@H{Iv{no6YM#o[Z{--.8[, m%zu_5ⷽ}Dk,V{}iZ*#k;xn۝k|x8tIϲYtCB6L[E>_O\Glgֿ5ᤎ؞fRգ2gM_eIinX#ivء<6@@$(ݫς ?Xr77WC￯YfsUΝeвn:[gn eA?%'xgNHX2V" $@H@byat몵xbM:Uzq={}ޘwhֶm۴zjoΊ+ԯ_? > ̜@@dX+ wE-[x=w\ܹS%%%<5LmJ_ecƌQ׮]2T-O{666$33ӛ$ ;;[)njL򊚹2no倁pRS m_*|=9R9W^հr~Q[ߘ(P7Uo y}O=_^}>peWDZgjGil.u? `"1QդDGJ.EL[D0%~"7?E<6C\h)LmH:F=L~dGߩǍ-@ X& mݴr_u|XN YMUwhz ~[HyoncF p[sb>,'uztpu'dGMz\$ٴZO0[ |XN t#ߡީM%uH^$*{ڷIgf>!F (LhdG !rr28@9Ɂg7;Z{ KM8)R3]uz(B > t H! i\e3IC$e2罡㰬M&뱏1W@PYB]  tbcs@@l:7@@h${:#e@ ^TV\%6-##^M:k,/+>~JK5Sl@F@ ׊ɳ5mQ]{x,֎Nw{8xq+jq\/Po i2ehӋ " jAt_)~7G-@@m8>ٮ=߾MbQd$4_|QYip&AHD:D8 Z(LɬIM8ШX;fEW}2WןS}ElLHGIF&@1W4M|p/xZj$$bIT٦3bD%z_& @ 3m%NF,'ś^7PJF;e綮:om徧+#IJ7ж-Wi[ݼZwzڱt(yZVF#Ԫg ŻU -SjV[vWwʝ|ھhvuHUS ԵlWe_ޠjeZޯNfXE_nPڻm;ջ8Ӡzb]($٫߬ןڵh6N׳k_һuM};V;[[{.֞u߸͕C:)Ìq!U/ 3~@B II$@[$FVcYeJ׽?}˹!\6<8$;zDz7xMնuR?NW{Qk*[K~dPZ.I_>X>5m$fVײ km&,=?Up7Y]@K~Ub/_7ͨc[nu1!Up.|a֣,k܇7a'oRKuԔ#{\o貵ujY8lOWDX==;k/~<?#1ͫ~7@]6z08tAT+oVݕ\NU;Am\USZZ6?Ua/I{Y}ܭT##'`D`Se fZlCbBc"M$"]jOX֥7i(#}6~۬jw)(Ю]nA٭q# VɯN:ӕS6i#WtyJ=\%^aOթ!WPR[SZ*{U8nZꢴk0>R޵1*z$ojrRZ}Osn}M>֮[* kuܭ.iU ̈Iݐ@P3p@ i\ZI!jPpFwϪ|n ]S#9M99U>+0'E<56uDu]qeI"R:Q˟0 [ͪzy ]Z~7=sW*BR&6Q-w8@(SSWw#hX?Zl֦?[Euh #u?=c_ 뺟ImyYʊTZx0gx߬V#gV@7n0O. ;V|CD eh$Y\4R:WOnSΈAy]MS4D|{Z;j ܦ^3V{Q?8!$h}ڍ5u6^CڎNgV]nHk&;j@R֑/LAF:{5/cJLW ^7tĩyM!FOr/MVmO$gquȪ} W~&B^ZG'aFo6;bZV 1/K e[ņHVK7lS:LV7bL Z&VWN أ7\۶ QkuAJur.|@DC$&PnLMVVWqA@yiWJtTET\l$dFl;=wڲzזgk>lֿ*ЈѪGP*z0׽u4 3Wz]|6,X;TFX{/P) > @L )#k[Mesɽ-Y||-#}+%ҪGGֳbw Ŋ@`R}H5z'Y-+ 7(Nۍu(zt0'Pg_0x]g=9-WGc*f^ 7Ni_6;a5Ark,Cu=ke  B)hRxk^__SRkƴ)U'L)C]9PSv2qSW9ƭ-8+bHe[UյԲ_(Um<{jT)߭:TUuCK l=oV )߮C^UV،XԞ㋼9RƚEo4T3},XpߠAU}M*A\7z_^vzѻ@J{&4S-rs=5OV^CKQ6-xLͳԾfŏW3$g=?R̬Y:餓hQ,MIAF@bNo!zxXvyꩧ4n8eddx/y ֯WG q"wcf"m)Zao}+sjjjL5X#>GHbyNT]rZA*䮋 @DRH"|=W? /W#yd˗)E E<66~^ZI|{H>H:Ə=#^׭_|zMXM+@ J~@Blcmл?W,%Ӳ#b>Xk YY fu$szdw5dƍ^=[IDAT (ڶ: )vWCH\]޶GW_ x9lb>,'uztpZ;4wqcs=, uH+RKd%b-EޯNDF (2YUc78C` Fv> ,oРA;4Sf:Cret]"Q6eM+O4MZF"[ZǨG5:kEӬ.E}@ K,ѨQn! t tN\By/ z﹩,mn uz݊S [ѿR "@0oKR}?)LfW:ָމz5Q,B*bsJ@@BHNR'D@@ H,  !$$Fy @@JHh!b#  $$Fn  ĕI\E@@  H<   q%B@WEb@@H,? a*Wr  @<l1V<iD@@ .[$V@@Fl:7EB@@H, Ib   @\E1H@@S$1˕\!  $qQL$@@fJ%W  Ĵ0VLC@@ 1,_r  @L  -$1]L$@@B@@ !q  $@9IB/C@@ RHb|H  -$̲L@@E@-fي!M  $e֑.dr  @ X-ZGbxH  -!I\;@@I,  @r$G9K@@bR$&D!  ~@L[Q@@fڊb!1  $BM.@@)? $   ~@%   S$1U$@@(' I&  Ĕ@ ILA@@ Y-   ,[P@@l:\Nn@@EH A@@ 1$ɕkr  1!@@@"@@HN,wr  @LD1@@SHi+9˟\#  Ф~@L[MZ \@@ZH5  M*$4i1pq@@SH3@@TI8  '~z?$>   u FΝ_'H  QXn??BbO;  D\yɂl镟e'@@"*f⋁`$h ek-$%d   `V!l:B]A@@ X0`@ڵk! jg I9!  -.?~ 8 !In-r  /k F컿BK  -`Ɓ N*   Re^yr~{rM~ՠr   QFMd{vu_lw[w:{V}Qj?U?O}TϿcen ž}u{ `IENDB`psychopy-1.82.02.dfsg/README.md000066400000000000000000000022571257562125200157600ustar00rootroot00000000000000# PsychoPy PsychoPy is an open-source package for creating psychology stimuli in Python (A real and free alternative to Matlab). PsychoPy combines the graphical strengths of OpenGL with the easy Python syntax to give psychophysics a free and simple stimulus presentation and control package. The goal is to provide, for the busy scientist (including me!), tools to control timing and windowing and a simple set of pre-packaged stimuli and methods. The code is platform independent, using Python and C libraries that are widely available. ## Contributions To contribute, please fork the repository, hack in a feature branch, and send a pull request. For more, see http://www.psychopy.org/developers/repository.html. ## Code status * [![tests status](https://secure.travis-ci.org/psychopy/psychopy.png?branch=master)](https://travis-ci.org/psychopy/psychopy) travis-ci.org (master branch) * [![coverage status](https://coveralls.io/repos/psychopy/psychopy/badge.png?branch=master)](https://coveralls.io/r/psychopy/psychopy) coveralls.io (master branch) ## More information - Homepage: http://www.psychopy.org - Mailing list: https://groups.google.com/forum/?fromgroups#!forum/psychopy-users psychopy-1.82.02.dfsg/buildCompleteInstaller.nsi000066400000000000000000000131661257562125200216630ustar00rootroot00000000000000; Script generated by the HM NIS Edit Script Wizard. ; HM NIS Edit Wizard helper defines !define PRODUCT_NAME "PsychoPy2" !define PRODUCT_VERSION "1.82.02" !define PRODUCT_PUBLISHER "Jon Peirce" !define PRODUCT_WEB_SITE "http://www.psychopy.org" ;!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\AppMainExe.exe" !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" !define PRODUCT_UNINST_ROOT_KEY "HKLM" !define PRODUCT_STARTMENU_REGVAL "NSIS:StartMenuDir" ; MUI 1.67 compatible ------ !include "MUI.nsh" !include "fileassoc.nsh" !include "EnvVarUpdate.nsh" !include "Library.nsh" ; MUI Settings !define MUI_ABORTWARNING !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico" !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" ; License page !insertmacro MUI_PAGE_LICENSE "psychopy/LICENSE.txt" ; Components page NB having multiple components was annoying with uninstall ;!insertmacro MUI_PAGE_COMPONENTS ; Directory page !insertmacro MUI_PAGE_DIRECTORY ; Start menu page var ICONS_GROUP !define MUI_STARTMENUPAGE_NODISABLE !define MUI_STARTMENUPAGE_DEFAULTFOLDER "${PRODUCT_NAME}" !define MUI_STARTMENUPAGE_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}" !define MUI_STARTMENUPAGE_REGISTRY_KEY "${PRODUCT_UNINST_KEY}" !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${PRODUCT_STARTMENU_REGVAL}" !insertmacro MUI_PAGE_STARTMENU Application $ICONS_GROUP ; Instfiles page !insertmacro MUI_PAGE_INSTFILES ; Uninstaller pages !insertmacro MUI_UNPAGE_INSTFILES ; Language files !insertmacro MUI_LANGUAGE "English" ; MUI end ------ Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" OutFile "StandalonePsychoPy-${PRODUCT_VERSION}-win32.exe" InstallDir "$PROGRAMFILES\PsychoPy2" ;InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" "" ShowInstDetails show ShowUnInstDetails show ;Request application privileges for Windows Vista RequestExecutionLevel admin ;if previous version installed then remove Function .onInit ReadRegStr $R0 HKLM \ "Software\Microsoft\Windows\CurrentVersion\Uninstall\PsychoPy2" \ "UninstallString" StrCmp $R0 "" done IfSilent +3 MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \ "A version of PsychoPy2 is already installed. $\n$\nClick `OK` to remove the \ previous version or `Cancel` to cancel this upgrade." \ IDOK uninst Abort ;Run the uninstaller uninst: ClearErrors Exec $INSTDIR\uninst.exe ; instead of the ExecWait line done: FunctionEnd Section "PsychoPy" SEC01 SectionIn RO SetShellVarContext all SetOutPath "$INSTDIR" SetOverwrite on ;AppDir is the path to the psychopy app folder Var /GLOBAL AppDir StrCpy $AppDir "$INSTDIR\Lib\site-packages\PsychoPy-${PRODUCT_VERSION}-py2.7.egg\psychopy\app" File /r /x *.pyo /x *.chm /x Editra /x doc "C:\python27\*.*" ; avbin to system32 !insertmacro InstallLib DLL NOTSHARED NOREBOOT_PROTECTED avbin.dll $SYSDIR\avbin.dll $SYSDIR ; Shortcuts !insertmacro MUI_STARTMENU_WRITE_BEGIN Application CreateDirectory "$SMPROGRAMS\$ICONS_GROUP" CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\PsychoPy2.lnk" \ "$INSTDIR\pythonw.exe" "$\"$AppDir\psychopyApp.py$\"" "$AppDir\Resources\psychopy.ico" !insertmacro MUI_STARTMENU_WRITE_END ; File Associations !insertmacro APP_ASSOCIATE "psyexp" "PsychoPy.experiment" "PsychoPy Experiment" "$AppDir\Resources\psychopy.ico,0" \ "Open with PsychoPy" "$\"$INSTDIR\python.exe$\" $\"$AppDir\psychopyApp.py$\" $\"%1$\"" ; Update Windows Path ;add to path variable ${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR" ${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR\DLLs" SectionEnd Section -AdditionalIcons !insertmacro MUI_STARTMENU_WRITE_BEGIN Application WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}" CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\www.psychopy.org.lnk" "$INSTDIR\${PRODUCT_NAME}.url" CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Uninstall.lnk" "$INSTDIR\uninst.exe" !insertmacro MUI_STARTMENU_WRITE_END SectionEnd Section -Post WriteUninstaller "$INSTDIR\uninst.exe" ;WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\AppMainExe.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}" SectionEnd ; Section descriptions !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} "PsychoPy itself, including python" !insertmacro MUI_FUNCTION_DESCRIPTION_END Section Uninstall !insertmacro MUI_STARTMENU_GETFOLDER "Application" $ICONS_GROUP Delete "$INSTDIR\${PRODUCT_NAME}.url" Delete "$INSTDIR\uninst.exe" RMDir /r "$INSTDIR" ; NB we don't uninstall avbin - it might be used by another python installation ;shortcuts Delete "$SMPROGRAMS\$ICONS_GROUP\Uninstall.lnk" Delete "$SMPROGRAMS\$ICONS_GROUP\www.psychopy.org.lnk" Delete "$SMPROGRAMS\$ICONS_GROUP\PsychoPy2.lnk" RMDir /r "$SMPROGRAMS\$ICONS_GROUP" DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" ;DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}" ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR" ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR\DLLs" SetAutoClose true SectionEnd psychopy-1.82.02.dfsg/buildRelease.py000066400000000000000000000062231257562125200174500ustar00rootroot00000000000000#!python """This script is used to: - update the version numbers - update the psychopyVersions repo: - copy over the code - commit, tag and push(?) It should be run from the root of the main git repository, which should be next to a clone of the psychopy/versions git repository """ import os, sys, shutil, subprocess from os.path import join from createInitFile import createInitFile MAIN = os.path.split(__file__)[0] VERSIONS = join(MAIN,'..','versions') def getSHA(cwd='.'): if cwd=='.': cwd = os.getcwd() #get the SHA of the git HEAD SHA_string = subprocess.check_output(['git', 'rev-parse', '--short', 'HEAD'], cwd=cwd).split()[0] #convert to hex from a string and return it print 'SHA:', SHA_string, 'for repo:',cwd return SHA_string def buildRelease(versionStr, noCommit=False, interactive=True): # createInitFile(dist='sdist', version=versionStr, sha=getSHA()) dest = join(VERSIONS,"psychopy") shutil.rmtree(dest) ignores = shutil.ignore_patterns("demos", "docs", "tests", "pylink", "*.pyo", "*.pyc", "*.orig", "*.bak", ".DS_Store", ".coverage") shutil.copytree("psychopy", dest, symlinks=False, ignore=ignores) #todo: would be nice to check here that we didn't accidentally add anything large (check new folder size) Mb = float(subprocess.check_output(["du", "-bsc", dest]).split()[0])/10**6 print "size for '%s' will be: %.2f Mb" %(versionStr, Mb) if noCommit: return False if interactive: ok = raw_input("OK to continue? [n]y :") if ok != "y": return False lastSHA = getSHA(cwd=VERSIONS) print 'updating: git add --all' output = subprocess.check_output(["git", "add", "--all"], cwd=VERSIONS) if interactive: ok = subprocess.call(["cola"], cwd=VERSIONS) if lastSHA==getSHA(): #we didn't commit the changes so quit print("no git commit was made: exiting") return False else: print "committing: git commit -m 'release version %s'" %versionStr subprocess.call(["git", "commit", "-m", "'release version %s'" %versionStr], cwd=VERSIONS) print "tagging: git tag -m 'release %s'" %versionStr ok = subprocess.call(["git", "tag", versionStr, "-m", "'release %s'" %versionStr], cwd=VERSIONS) print "'versions' tags are now:", subprocess.check_output(["git","tag"], cwd=VERSIONS).split() ok = subprocess.call(["git", "push", "%s" %versionStr], cwd=VERSIONS) if ok: print "Successfully pushed tag %s upstream" %versionStr else: print "Failed to push tag %s upstream" %versionStr #revert thte __init__ file to non-ditribution state print 'reverting the main master branch: git reset --hard HEAD' print subprocess.check_output(["git","reset", "--hard", "HEAD"], cwd=MAIN) return True #success if __name__=="__main__": if "--noCommit" in sys.argv: noCommit = True else: noCommit = False #todo: update versions first versionStr = raw_input("version:") buildRelease(versionStr, noCommit=noCommit, interactive=True) psychopy-1.82.02.dfsg/buildWinDistributions.bat000066400000000000000000000013521257562125200215240ustar00rootroot00000000000000rem build simple distributions rem python setup.py bdist_egg rem python setup.py sdist --formats=zip rem python setup.py bdist_wininst --install-script=psychopy_post_inst.py rem install the current version to site-packages python setup.py install del C:\Python27\Lib\site-packages\psychopy.pth xcopy /I /Y psychopy\*.txt C:\Python27 copy /Y C:\Windows\System32\avbin.dll avbin.dll rem build the installer makensis.exe /v3 buildCompleteInstaller.nsi rem moving files to ..\dist move /Y "StandalonePsychoPy*.exe" ..\dist\ move /Y dist\* ..\dist\ rem reinsert my dev .pth file ECHO F|xcopy /I /Y ..\psychopy.pth C:\Python27\Lib\site-packages\psychopy.pth rem uninstall psychopy from site-packages pip uninstall psychopy -y psychopy-1.82.02.dfsg/buildingOnAMac.txt000066400000000000000000000144651257562125200200620ustar00rootroot00000000000000 Building on a mac ================= Standalone PsychoPy is currently built using Framework Python 2.6.6 (not system python or enthought distributions). The following deals with how to set up a complete working python using that distribution under Snow Leopard (10.6). To get PsychoPy working on other python installations see the additional headers below that. Framework Version ~~~~~~~~~~~~~~~~~~ binary installs ================= Download double-click installers for these: - pygame - numpy - scipy - matplotlib - wxpython easy_installs =============== Install setuptools by downloading http://peak.telecommunity.com/dist/ez_setup.py and running it with:: sudo python ez_setup.py Then:: sudo easy_install -Z -U setuptools sudo easy_install -Z -U pyglet sudo easy_install -Z pyopengl sudo easy_install -Z pyobjc-core sudo easy_install -Z pyobjc sudo easy_install -Z pyobjc-framework-qtkit sudo easy_install -Z py2app sudo easy_install -Z bdist_mpkg STATIC_DEPS=true easy_install -Z lxml #optional extras for hardware sudo easy_install -Z pyserial sudo easy_install -Z parallel sudo easy_install -Z openpyxl sudo easy_install -Z ioLabs sudo easy_install -Z pyxid #optional, mostly for dev purposes sudo easy_install -Z ipython sudo easy_install -Z sphinx sudo easy_install -Z nose sudo easy_install cython If you get build errors trying to easy_install:: cc1: error: unrecognized command line option "-Wno-long-double" edit the file lib/python2.5/config/Makefile and remove that flag from the BASECFLAGS. Also in this file set:: MACOSX_DEPLOYMENT_TARGET=10.5 and CC=gcc-4.0 ? manual installs =================== Install avbin for movies labjack (you might prefer to use my fork of that at https://github.com/peircej/LabJackPython so that each file installs under site-packages/labjack) compiled libs ================== #hdf5 (needed for pytables or you get errors about symbols not found) cd hdf5-1.8.9 CFLAGS='-arch i386' LDFLAGS='-arch i386' ./configure --prefix=/usr/local/ make sudo make install #ioHub also requires # greenlet, gevent, msgpack-python, pyYAML System python ~~~~~~~~~~~~~~ The following cannot be installed to 64bit python because they use carbon: - wxpython (cocoa support expected in version 3.0) - pyglet (cocoa support half-built last JWP looked) - pygame/SDL BUT, change to use 32bit python2.6 or 2.5 by adding the following to bash_profile: export VERSIONER_PYTHON_VERSION=2.6 export VERSIONER_PYTHON_PREFER_32_BIT=yes Python should show compiled on GCC4.2 (sys python) and sys.maxint should be 2147483647 (32bit) Install these to Framework python (from python.org) and then copy over ================================================================= - numpy (downloaded from SF) - scipy (downloaded from SF) ENTHOUGHT VERSION ~~~~~~~~~~~~~~~~~~ - install EPD version 6.1 - install avbin - install pygame (see below) easy_install ============= sudo easy_install -Z bdist_mpkg sudo easy_install -Z py2app sudo easy_install -Z pyobjc sudo easy_install -Z pyobjc sudo easy_install -Z pyobjc-framework-qtkit Note: This approach has worked well to created the manual version but the standalone app doesn't run on other machines It complains about numpy/lapack not loading correct object Problems with installing ~~~~~~~~~~~~~~~~~~~~~~~~~ installing pygame ================== I downloaded the version for pygame-1.9.1release-py2.6-macosx10.5. This complains that it can't install on this system. Open the installed bundle and from Contents/Packages install each of dependent frameworks: - pygame-SDL - pygame-SDL_ttf - pygame-SDL_mixer - pygame-SDL_iamge - pygame-headers - pygame-smpeg Then open the contents of bundle - pygame-platlib and drag the pygame and egg.info folders to your site packages. This worked for me on a clean-install (no rosetta) 10.6 using the EPD6.1 If easy_install is not downloading things check ================================================ 1. that your http_proxy is set in .bash_profile 2. that sudo allows http_proxy to be used: type visudo to open the sudo settings editor add the line (with same formatting as others): Defaults env_keep += “ftp_proxy http_proxy https_proxy” Problems building the app ========================== DistutilsFileError: /Library/Frameworks/Python.framework/Versions ------------------------------------------------------------------ This is caused by py2ap trying to find python2.5/pyconfig.h which may not exist. Hack: add the following to the begin of py2app/util.py copy_file (around line 100): if path=="/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5/pyconfig.h": path="/Library/Frameworks/Python.framework/Versions/6.1/include/python2.6/pyconfig.h" You may also get messages about not being able to locate pyconfig.h during copy_file caused by the fact that py2app thinks that enthought python(6.1) should be installed TypeError: 'NoneType' object is unsubscriptable (in modulegraph.find_needed_modules) ------------------------------------------------------------------------------------- This indicates that one of your required modules couldn't be found. Check your easy_install.pth to make sure that all the required modules have their paths there. To make avbin work from the mac standalone: -------------------------------------------- In pyglet/lib.py, around line 166, do this: search_path.append(os.path.join(sys.prefix, '..', 'Frameworks')) instead (or as well as) of search_path.append(os.path.join( os.environ['RESOURCEPATH'], '..', 'Frameworks', libname)) To build a 32-bit ffmpeg dylib -------------------------------- For each codec, download the source and do: CFLAGS='-arch i386' LDFLAGS='-arch i386' configure --disable-static --enable-shared make sudo make install Then for ffmpeg source do: configure --disable-static --enable-shared --disable-outdev=sdl --enable-runtime-cpudetect --disable-indev=jack --enable-zlib --enable-libx264 --enable-libxvid --enable-libvorbis --cc="clang -m32" --enable-gpl make sudo make install psychopy-1.82.02.dfsg/changelogUpdate.py000077500000000000000000000013121257562125200201370ustar00rootroot00000000000000#!/usr/bin/env python # this script replaces hashtags with a sphinx URL string (to the github issues or pull request) # written by Jon with regex code by Jeremy import re expr = re.compile(r"([ (]#\d{3,4})\b") def repl(m): g = m.group(1) return g.replace('#', '`#') + " `_" with open("docs/source/changelog.rst", "r") as doc: txt = doc.read() print "found %i hashtags" %(len(expr.findall(txt))) newTxt = expr.sub(repl, txt) with open("docs/source/changelog.rst", "wb") as doc: doc.write(newTxt) #test: #text = "yes #123\n yes (#4567)\n; none of `#123, #3, #45, #12345 #123a" #newText = expr.sub(repl, text) #print newText psychopy-1.82.02.dfsg/createInitFile.py000066400000000000000000000110411257562125200177310ustar00rootroot00000000000000#!/usr/bin/env python """Writes the current version, build platform etc to """ import os, copy, platform, subprocess thisLoc = os.path.split(__file__)[0] def createInitFile(dist=None, version=None, sha=None): """Write the version file to psychopy/version.py :param:`dist` can be: None: writes __version__ 'sdist': for python setup.py sdist - writes __version__ and git id (__git_sha__) 'bdist': for python setup.py bdist - writes __version__, git id (__git_sha__) and __build_platform__ """ #get default values if None if version is None: with open(os.path.join(thisLoc,'version')) as f: version = f.read() if sha is None: sha = _getGitShaString(dist) platformStr = _getPlatformString(dist) infoDict = {'version' : version, 'shaStr' : sha, 'platform' : platformStr, } #write it with open(os.path.join(thisLoc, 'psychopy','__init__.py'), 'w') as f: outStr = template.format(**infoDict) f.write(outStr) print 'wrote init for', version, sha #and return it return outStr template="""# Part of the PsychoPy library # Copyright (C) 2015 Jonathan Peirce # Distributed under the terms of the GNU General Public License (GPL). #-------------------------------------------------------------------------- #This file is automatically generated during build (do not edit directly). #-------------------------------------------------------------------------- import os, sys #version info for PsychoPy __version__='{version}' __license__='GNU GPLv3 (or more recent equivalent)' __author__='Jonathan Peirce' __author_email__='jon@peirce.org.uk' __maintainer_email__='psychopy-dev@googlegroups.com' __users_email__='psychopy-users@googlegroups.com' __url__='http://www.psychopy.org' __downloadUrl__='http://code.google.com/p/psychopy/downloads' __git_sha__='{shaStr}' __build_platform__='{platform}' __all__ = ["gui", "misc", "visual", "core", "event", "data", "filters", "sound"] #for developers the following allows access to the current git sha from their repository if __git_sha__=='n/a': import subprocess #see if we're in a git repo and fetch from there try: thisFileLoc = os.path.split(__file__)[0] output = subprocess.check_output(['git', 'rev-parse', '--short', 'HEAD'], cwd=thisFileLoc) except: output=False if output: __git_sha__ = output.strip()#remove final linefeed #update preferences and the user paths from psychopy.preferences import prefs import sys for pathName in prefs.general['paths']: sys.path.append(pathName) from psychopy.tools.versionchooser import useVersion """ def _getGitShaString(dist=None, sha=None): """If generic==True then returns empty __git_sha__ string """ shaStr='n/a' if dist is not None: proc = subprocess.Popen('git rev-parse --short HEAD', stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd='.', shell=True) repo_commit, _ = proc.communicate() del proc#to get rid of the background process if repo_commit: shaStr=repo_commit.strip()#remove final linefeed else: shaStr='n/a' #this looks neater but raises errors on win32 # output = subprocess.check_output(['git', 'rev-parse', '--short', 'HEAD']).split()[0] # if output: # shaStr = output return shaStr def _getPlatformString(dist=None): """If generic==True then returns empty __build_platform__ string """ if dist=='bdist': #get platform-specific info if os.sys.platform=='darwin': OSXver, junk, architecture = platform.mac_ver() systemInfo = "OSX_%s_%s" %(OSXver, architecture) elif os.sys.platform=='linux': systemInfo = '%s_%s_%s' % ( 'Linux', ':'.join([x for x in platform.dist() if x != '']), platform.release()) elif os.sys.platform=='win32': ver=os.sys.getwindowsversion() if len(ver[4])>0: systemInfo="win32_v%i.%i.%i (%s)" %(ver[0],ver[1],ver[2],ver[4]) else: systemInfo="win32_v%i.%i.%i" %(ver[0],ver[1],ver[2]) else: systemInfo = platform.system()+platform.release() else: systemInfo="n/a" return systemInfo if __name__=="__main__": createInitFile() psychopy-1.82.02.dfsg/docs/000077500000000000000000000000001257562125200154235ustar00rootroot00000000000000psychopy-1.82.02.dfsg/docs/Makefile000066400000000000000000000107421257562125200170670ustar00rootroot00000000000000# Makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = BUILDDIR = build # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " dirhtml to make HTML files named index.html in directories" @echo " singlehtml to make a single large HTML file" @echo " pickle to make pickle files" @echo " json to make JSON files" @echo " htmlhelp to make HTML files and a HTML help project" @echo " qthelp to make HTML files and a qthelp project" @echo " devhelp to make HTML files and a Devhelp project" @echo " epub to make an epub" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " latexpdf to make LaTeX files and run them through pdflatex" @echo " text to make text files" @echo " man to make manual pages" @echo " changes to make an overview of all changed/added/deprecated items" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" clean: -rm -rf $(BUILDDIR)/* html: $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." dirhtml: $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." singlehtml: $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml @echo @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." pickle: $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle @echo @echo "Build finished; now you can process the pickle files." json: $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json @echo @echo "Build finished; now you can process the JSON files." htmlhelp: $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp @echo @echo "Build finished; now you can run HTML Help Workshop with the" \ ".hhp project file in $(BUILDDIR)/htmlhelp." qthelp: $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp @echo @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ".qhcp project file in $(BUILDDIR)/qthelp, like this:" @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/pp.qhcp" @echo "To view the help file:" @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/pp.qhc" devhelp: $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp @echo @echo "Build finished." @echo "To view the help file:" @echo "# mkdir -p $$HOME/.local/share/devhelp/pp" @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/pp" @echo "# devhelp" epub: $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub @echo @echo "Build finished. The epub file is in $(BUILDDIR)/epub." latex: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." @echo "Run \`make' in that directory to run these through (pdf)latex" \ "(use \`make latexpdf' here to do that automatically)." latexpdf: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo "Running LaTeX files through pdflatex..." make -C $(BUILDDIR)/latex all-pdf @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." text: $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text @echo @echo "Build finished. The text files are in $(BUILDDIR)/text." man: $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man @echo @echo "Build finished. The manual pages are in $(BUILDDIR)/man." changes: $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes @echo @echo "The overview file is in $(BUILDDIR)/changes." linkcheck: $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck @echo @echo "Link check complete; look for any errors in the above output " \ "or in $(BUILDDIR)/linkcheck/output.txt." doctest: $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest @echo "Testing of doctests in the sources finished, look at the " \ "results in $(BUILDDIR)/doctest/output.txt." psychopy-1.82.02.dfsg/docs/buildEpydoc.config000066400000000000000000000012021257562125200210500ustar00rootroot00000000000000[epydoc] # Epydoc section marker (required by ConfigParser) # Information about the project. name: PsychoPy url: http://www.psychopy.org/ docformat: restructuredtext # The list of modules to document. Modules can be named using # dotted names, module filenames, or package directory names. # This option may be repeated. modules: psychopy monitors __init__ exclude: demos setup* _win* app* serial.serial* MonitorCenter visual.AlphaStim _parallel _shadersPygame _shadersPyglet makeMovies visual.calib ext tests* configobj* preferences # Write html output to the directory output: html target: build/html/epydoc graph: allpsychopy-1.82.02.dfsg/docs/make.bat000066400000000000000000000057611257562125200170410ustar00rootroot00000000000000@ECHO OFF REM Command file for Sphinx documentation set SPHINXBUILD=sphinx-build set ALLSPHINXOPTS=-d build/doctrees %SPHINXOPTS% source if NOT "%PAPER%" == "" ( set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% ) if "%1" == "" goto help if "%1" == "help" ( :help echo.Please use `make ^` where ^ is one of echo. html to make standalone HTML files echo. dirhtml to make HTML files named index.html in directories echo. pickle to make pickle files echo. json to make JSON files echo. htmlhelp to make HTML files and a HTML help project echo. qthelp to make HTML files and a qthelp project echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter echo. changes to make an overview over all changed/added/deprecated items echo. linkcheck to check all external links for integrity echo. doctest to run all doctests embedded in the documentation if enabled goto end ) if "%1" == "clean" ( for /d %%i in (build\*) do rmdir /q /s %%i del /q /s build\* goto end ) if "%1" == "html" ( %SPHINXBUILD% -b html %ALLSPHINXOPTS% build/html echo. echo.Build finished. The HTML pages are in build/html. goto end ) if "%1" == "dirhtml" ( %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% build/dirhtml echo. echo.Build finished. The HTML pages are in build/dirhtml. goto end ) if "%1" == "pickle" ( %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% build/pickle echo. echo.Build finished; now you can process the pickle files. goto end ) if "%1" == "json" ( %SPHINXBUILD% -b json %ALLSPHINXOPTS% build/json echo. echo.Build finished; now you can process the JSON files. goto end ) if "%1" == "htmlhelp" ( %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% build/htmlhelp echo. echo.Build finished; now you can run HTML Help Workshop with the ^ .hhp project file in build/htmlhelp. goto end ) if "%1" == "qthelp" ( %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% build/qthelp echo. echo.Build finished; now you can run "qcollectiongenerator" with the ^ .qhcp project file in build/qthelp, like this: echo.^> qcollectiongenerator build\qthelp\PsychoPy.qhcp echo.To view the help file: echo.^> assistant -collectionFile build\qthelp\PsychoPy.ghc goto end ) if "%1" == "latex" ( %SPHINXBUILD% -b latex %ALLSPHINXOPTS% build/latex echo. echo.Build finished; the LaTeX files are in build/latex. goto end ) if "%1" == "changes" ( %SPHINXBUILD% -b changes %ALLSPHINXOPTS% build/changes echo. echo.The overview file is in build/changes. goto end ) if "%1" == "linkcheck" ( %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% build/linkcheck echo. echo.Link check complete; look for any errors in the above output ^ or in build/linkcheck/output.txt. goto end ) if "%1" == "doctest" ( %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% build/doctest echo. echo.Testing of doctests in the sources finished, look at the ^ results in build/doctest/output.txt. goto end ) :end psychopy-1.82.02.dfsg/docs/source/000077500000000000000000000000001257562125200167235ustar00rootroot00000000000000psychopy-1.82.02.dfsg/docs/source/_static/000077500000000000000000000000001257562125200203515ustar00rootroot00000000000000psychopy-1.82.02.dfsg/docs/source/_static/default.css000066400000000000000000000202601257562125200225070ustar00rootroot00000000000000/** * PyMVPA stylesheet derived from: * * Alternate Sphinx design * Originally created by Armin Ronacher for Werkzeug, adapted by Georg Brandl. */ #header { margin: 0px; padding: 60px 15px 30px 15px; background-color: #596DA2; font-size: 1.75em; color: #fff; font-weight: bold; border-bottom: 5px solid #822; } body { font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva', 'Verdana', sans-serif; font-size: 14px; letter-spacing: -0.01em; line-height: 150%; text-align: center; /*background-color: #AFC1C4; */ background-color: #ccc; color: black; padding: 0; border: 1px solid #aaa; margin: 0px 40px 0px 40px; min-width: 740px; } a { color: #822; text-decoration: none; } a:hover { color: #596DA2; } pre { font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; font-size: 0.95em; letter-spacing: 0.015em; padding: 0.5em; border: 1px solid #ccc; background-color: #f8f8f8; } td.linenos pre { padding: 0; border: 0; background-color: transparent; color: #aaa; } table.highlighttable { margin-left: 0.5em; } table.highlighttable td { padding: 0 0.5em 0 0.5em; } cite, code, tt { font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; font-size: 0.95em; letter-spacing: 0.01em; } hr { border: 1px solid #abc; margin: 2em; } tt { background-color: #f2f2f2; border-bottom: 1px solid #ddd; color: #333; } tt.descname { background-color: transparent; font-weight: bold; font-size: 1.2em; border: 0; } tt.descclassname { background-color: transparent; border: 0; } tt.xref { background-color: transparent; font-weight: bold; border: 0; } a tt { background-color: transparent; font-weight: bold; border: 0; color: #CA7900; } a tt:hover { color: #2491CF; } dl { margin-bottom: 15px; } dd p { margin-top: 0px; } dd ul, dd table { margin-bottom: 10px; } dd { margin-top: 3px; margin-bottom: 10px; margin-left: 30px; } .refcount { color: #060; } dt:target, .highlight { background-color: #fbe54e; } dl.glossary dt { font-weight: bold; font-size: 1.1em; } pre { line-height: 120%; } pre a { color: inherit; text-decoration: underline; } div.document { background-color: white; text-align: left; background-image: url(contents.png); background-repeat: repeat-x; } /* div.documentwrapper { width: 100%; } */ div.clearer { clear: both; } div.related h3 { display: none; } div.related ul { background-image: url(navigation.png); height: 2em; list-style: none; border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; margin: 0; padding-left: 10px; } div.related ul li { margin: 0; padding: 0; height: 2em; float: left; } div.related ul li.right { float: right; margin-right: 5px; } div.related ul li a { margin: 0; padding: 0 5px 0 5px; line-height: 1.75em; color: #335; border: 1px solid transparent; } div.related ul li a:hover { border: 1px solid #666; } div.body { margin: 0; padding: 0; } div.bodywrapper { margin: 0 240px 0 0; padding: 0.5em 20px 20px 20px; border-right: 1px solid #ccc; } div.body a { text-decoration: underline; } div.sidebar, div.sphinxsidebar { margin: 0; padding: 0.5em 15px 15px 0; width: 210px; float: right; text-align: left; /* margin-left: -100%; */ } div.sidebar h4, div.sidebar h3, div.sphinxsidebar h4, div.sphinxsidebar h3 { margin: 1em 0 0.5em 0; font-size: 0.9em; padding: 0.1em 0 0.1em 0.5em; color: white; border: 1px solid #86989B; background-color: #596DA2; } div.sidebar ul, div.sphinxsidebar ul { padding-left: 1.5em; margin-top: 7px; list-style: none; padding: 0; line-height: 130%; } div.sidebar ul ul, div.sphinxsidebar ul ul { list-style: square; margin-left: 20px; margin-bottom: 0.5em; } p { margin: 0.8em 0 0.5em 0; } h1 { margin: 0; padding: 0.7em 0 0.3em 0; font-size: 1.5em; color: #335; } h2 { margin: 1.3em 0 0.2em 0; font-size: 1.35em; padding: 0; color: #335; } h3 { margin: 1em 0 -0.3em 0; font-size: 1.2em; color: #335; } h4 { color: #335; } h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { color: black!important; } h1 a.anchor, h2 a.anchor, h3 a.anchor, h4 a.anchor, h5 a.anchor, h6 a.anchor { display: none; margin: 0 0 0 0.3em; padding: 0 0.2em 0 0.2em; color: #aaa!important; } h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, h5:hover a.anchor, h6:hover a.anchor { display: inline; } h1 a.anchor:hover, h2 a.anchor:hover, h3 a.anchor:hover, h4 a.anchor:hover, h5 a.anchor:hover, h6 a.anchor:hover { color: #777; background-color: #eee; } table { border-collapse: collapse; margin: 0 -0.5em 0 -0.5em; } table td, table th { padding: 0.2em 0.5em 0.2em 0.5em; } div.footer { background-color: #999; color: #666; padding: 3px 8px 3px 0; clear: both; font-size: 0.8em; text-align: right; } div.footer a { color: #86989B; text-decoration: underline; } div.pagination { margin-top: 2em; padding-top: 0.5em; border-top: 1px solid black; text-align: center; } div.sphinxsidebar ul.toc { margin: 1em 0 1em 0; padding: 0 0 0 0.5em; list-style: none; } div.sphinxsidebar ul.toc li { margin: 0.5em 0 0.5em 0; font-size: 0.9em; line-height: 130%; } div.sphinxsidebar ul.toc li p { margin: 0; padding: 0; } div.sphinxsidebar ul.toc ul { margin: 0.2em 0 0.2em 0; padding: 0 0 0 1.8em; } div.sphinxsidebar ul.toc ul li { padding: 0; } div.admonition, div.warning { font-size: 0.9em; margin: 1em 0 0 0; border: 1px solid #86989B; background-color: #f7f7f7; } div.admonition p, div.warning p { margin: 0.5em 1em 0.5em 1em; padding: 0; } div.admonition pre, div.warning pre { margin: 0.4em 1em 0.4em 1em; } div.admonition p.admonition-title, div.warning p.admonition-title { margin: 0; padding: 0.1em 0 0.1em 0.5em; color: white; border-bottom: 1px solid #86989B; font-weight: bold; background-color: #596DA2; } div.warning { border: 1px solid #940000; } div.warning p.admonition-title { background-color: #CF0000; border-bottom-color: #940000; } div.admonition ul, div.admonition ol, div.warning ul, div.warning ol { margin: 0.1em 0.5em 0.5em 3em; padding: 0; } div.versioninfo { margin: 1em 0 0 0; border: 1px solid #ccc; background-color: #DDEAF0; padding: 8px; line-height: 1.3em; font-size: 0.9em; } a.headerlink { color: #c60f0f!important; font-size: 1em; margin-left: 6px; padding: 0 4px 0 4px; text-decoration: none!important; visibility: hidden; } h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, h4:hover > a.headerlink, h5:hover > a.headerlink, h6:hover > a.headerlink, dt:hover > a.headerlink { visibility: visible; } a.headerlink:hover { background-color: #ccc; color: white!important; } table.indextable td { text-align: left; vertical-align: top; } table.indextable dl, table.indextable dd { margin-top: 0; margin-bottom: 0; } table.indextable tr.pcap { height: 10px; } table.indextable tr.cap { margin-top: 10px; background-color: #f2f2f2; } img.toggler { margin-right: 3px; margin-top: 3px; cursor: pointer; } form.pfform { margin: 10px 0 20px 0; } table.contentstable { width: 90%; } table.contentstable p.biglink { line-height: 150%; } a.biglink { font-size: 1.3em; } span.linkdescr { font-style: italic; padding-top: 5px; font-size: 90%; } ul.search { margin: 10px 0 0 20px; padding: 0; } ul.search li { padding: 5px 0 5px 20px; background-image: url(file.png); background-repeat: no-repeat; background-position: 0 7px; } ul.search li a { font-weight: bold; } ul.search li div.context { color: #888; margin: 2px 0 0 30px; text-align: left; } ul.keywordmatches li.goodmatch a { font-weight: bold; } psychopy-1.82.02.dfsg/docs/source/_static/favicon.ico000066400000000000000000000021761257562125200225000ustar00rootroot00000000000000 h(  @A@Azxz=~xkhj2?Ү[Z[nnnspr.g%%%000///;;;~MGsssXXXYYYkkkRRRurt.KIKݠ$$$444111&&&AAARkkkiiivvvSSSEEErnp2srr444&&&EEE^^^xHHH\\\FFF(((FFFdddaaaJJJaaa}}}878[[['''KKK(((888~]mmm^^^???=VTV vvvuuuxxxfffKKKPNP\|||fffIHI?ooog\虖zyyݙG\Z\ ]RZYZpsychopy-1.82.02.dfsg/docs/source/_static/nott_logo.gif000066400000000000000000000141101257562125200230410ustar00rootroot00000000000000GIF89a2?D_ Z%e 5cUJ-l)_-e*Dx)ArUg_q̲'l"^!Z#a%^*e &Y0a6kBYi}!UO'e%X*d *a ,d $Q 2n .f0e2g3g9q;k/Gm6Py:TMdTlZnOa~)b&],j)a0k)Z+^ .e -b 0h ,\ .b 2g 1d3g4j2b2^5e:f"Cr!@l.M|/Lw:W5MrEaU`J'I7X!Vk44^G_ Q'*6q8@@r!pP#P(A}60 nc0L1~c*pt) SPK10N?K/{vt 8bvjb%@`CU d4 #P:D/pP:@lK? XK-0^<]:2~ h OSRh0k l<'phM20B @<5 &^ҺsNjL(P3E'ЃL" - 15l$,)N*ep$ˆ14qQ7$Rc ^³&,qB̼ ۠0v7A $8!hDr&-L=(XA#w1!8`XXQ*ЇBNы'p 1 lRGhaJQ#\ ǡq/mR|.@Ч>p%(@-lU (bp 8CtAX"0O-@F)R4 H78cB !bXC @wـFƐBaVxB@=q*XX`(ȖI[M 8Qy=@vp00f9GShdp `@. HF8Vp2tD:|C75ioExS"2-@X!mx( j0 c09i8{>,"ð\2,\jPl`(@7.}B2 d(COX8PD F%o7@0(A@?@'@З/+ .1A{'hm0_6_ީ dc z 5T h,ࠋ 4 4 *h)TnzC=уH TA" @ y<6P<;(*D_t U(LV@@[ !2PWq[*4x7 N%}^gȃJB3 CkfS܂ 8 +(T0Ubhq |A @fxAZB&R @:T@ cL BE&G VU(z. TU%R Ab1\Z Z a܀;>vdX@E(A4 E(z[$0QL`=걌P,@8Bat`.`щ E-1NxZpb)%Ȁ2n!,|YV+,Ai)`96.XyY)6B ;޾hc@'~PF}eC"Q$PZ*G9!cB3N*Q$J#Q$ p FZa+py."G-~ 0(9P`Zr,  ƀ4e8G0Ր _ 2ѠE`E2݆ \`,` dc \@ D45AڠGxI P$vhx0}qЁ! qo'0z-V 4Xp 0 ! pW" |ܐ, PqA6)55ǰQXQ$ KGA2 u s| 9QlQPAx@/0u"ppM fd% ` U` KpSb@ @x f(`nI@ː f@ PJ`ePf b @ 0 i!0Omu HP5P<@A>?>@=@B?CDBGCCDFCIFIFHEIJHJLJNLPLNKNPMQOQPROQSPVRRTUSXTTVXU[WVWYV\XYY[XZ\Y\][_\_]_\^`]a_c`b_ac`bdagcadfchfifgejfdghfhjgjliqlkpmqmoloqnspqqspursstrxsrtvswuyvwuyw{|wvwyvxzwz|y|~{}z~}þ! ,hr H*\HPÇ#JHŋ3jȱD lPLMtH͛8sӟ=ЎuKV[&E-ÞeWիXj݊]5fhlX`z)U챷|rz똵s\˷/O{֊݊EmVZxUeزejLϠClXQZgs*5SN<UqۄiM3grULhwszɒkXU5iMN ARRQymka{Y{u&%j5l,OTlURH!@bI(@X*"T eg Ӟ{8#)TN3Ac)T5#Kb8&CM:T8I xxRI,uo` -bM [1@c%l$(Ɇu$b /ЈNc5B oIPQO Tce,ç)#Dv;ڗ6*T&"xEd$B5ç> 2jhD=]Q(FZV P LٖU1r -Z!pdQGd /h<Ԏ8$~*CJH:KlM72/*P`?|(2"S;K0@"vk`o1kફ@d 1prHh`A QLrI%Se7t1ĂDz ]B }d YY3K&2+*ʸe6Ȳnxl8># 7=+)F CE0au.&, 8SM,!:L"&D4Hu$QL("$Q7b Q W{>D` K \m(#<V<:Ωg`d6A V"A栢{!*NB V4IP.`b]" j@/㠇|_W8'iBS :: ;'f?v),/8Q=䢜pGS*- :5~ h@# a 1qAqN}i LL(9$V aHF+\8m4AjF*8=8a^ uBR uN 67ANU/pPL5?6'@>$:ex`W/ F!B@sI@a,1 2F3>=na;>*s-8A* :1tA.*<d "A!s "v2 8 )*;lL@#!XAaDpLHW7H6 )q; b RYJĔ1LWd™df~˄*aلŭgF?Q``Ap;汍<C-# &x0T FVT"~",!HPH3<RHd8 AA{@ 0Ղ$",hF=ҎT"<%1ü 40rpLQFS`Q8YjM@ՅeRjd0 x=A.xF\Dz780aʁ}FQ@4"}E>qzA0w*pOV@0V@(d(;p#1:Q)VBH밆1pA Zassl3 *(aZ7!4>w9A 9x4" axFIA2|1DPAgb)  z6X)A` v)`WP y&0x1?,nЂOI Uw[yuWH)/x|A 6Q4E?DkF^XapOF+%@_pSZH_@o B+ h A (0@T@`1 )s GVPoPRs0`8` ֠ <45Eu$j5  FyP,ǒ,;Hlt^8p5/N0B ܔ`>-F{p R39CSuL|:< #papJ`zF{@CaQG,4B^JZ j7@uh3'}YeW$&f9 ^8wWf6PPEJ(Bp(*DUIhE!fΝ=ZRfruB](5[QI=~EDp)ƮfFys5 P1Qر6*ceKٷvoӆ ֤>jb(dO&oL,*Gmr `at^I*- ͬfɻāDTj^PxLfDydxsFBIF#H#_zEO$bP!ύ0n b (qkƉGD{SP -("^x!>( G# VxL B@!GPFt眎L9D;uzY$=! TW_=EXoWqh &'ф[2Yn*arB 5`]g' .a "p B6ޡnĂ2&0hω4'VHE0bщQ(Ƀ`3A@IxxA k8@ RxC"d@**6O[<F`/p"26WXѕ\9KФXE'JB$ ar0  @ g)1L6(D[$.$AI Qs@DcCNH<6 ;$2\QpX,ԴLf SvV~wبE/@aap.K' XX& 14? HF ~ u9440adf@̀ h(nHsL^B"Ѐ 1F!8"h{ j\%b#5}*$^SmEsۣ6*4.@3x VR/,z0U9C @#v8ҺzAiLf5HnZԶ0 3Q {ݴ̇މFSJa CAQUp&a1yiPM@FքxCSTewqj(!}C{#!y;`X [ T"?#@bgGgI e Av,J$``(@ d`Hb<35(ͿP@];ڑo)}86ժjb%inFf0F'|nt ,D@Kk!He[9A Ϡأ }І kx8\Xp=0xX57C5qJH'$l02ȾvHqЖ5R;0b{b3;^Xs6p%nHaP?H*x!8WYX@(Z8>+ !=Ђ؁: 0q-H j`HmOX؉/'<;X ;: jtBjAfӣ ҅izA!Xc+Xp.Lvx hixv0[ss@kHqdx4 `h5fhiv`ishvH v ?k І|s@8fhcj<J|H2  + Cxd!{mfH}Pep(x`x@ NcXH2P "4po҅i ݓ"2 p!*=a&ms?P($3E X;UsJaN ۙ hgdxdP iĀ ؀"mPCHtp`Ͱ PȀH,0tLxLzx)yF(t= W؁T8VA;Hx80]p#F8 q<Q uy HNvP:ȴCJ欇7Ѓ9%+08/]`{H 4*X@b@I I ӢX6phG0 7`x(43#%]s .hq#ml]؟8 =2Hn<5c$<90 (;gN8hAvH('^ `0H& "v05wGX ,v08WІ`P `m[X 2*8L:أ$mh7 @p3<P.#`&B5PU.Ї|`/ H% ] hP mȀ DsF Q }/ 7H0 N Z\`(`0*4o^Zh8 pTpp.cP@TZ8ZH/8E!px-$ `~ \#: Da5#;} K' ^tBD!Q|]S XKYM/ ŀj_M bx7to Y 4P=U7ä=]xߵ!X@ 10ä xvP &(fHi2@`ȤxJN50@V_Pp @x Ud#H k7 T`LXs?e p^؃Ѐ(3eJx`!27% >C bm@eDО"A % ';sV|E Fl'{? %n&5L0 bl2/lrxLq<j>5dH ixsX{ /TUTpc8E}H0J7pPo>x,4&e{j8T j@Q 0*؀ *?~nk h^hdPkNCXܫhPX8J& @`\.c ?E Ј\`ȅ^ "PcJ>  L'K `eRfkaɛ7f`i@KR"OR )`\pNQ@F ׫0І8s8C.VդX Ѐ  8* S&Mzq$ XDX]^@}r6jMrhxS"m] rc[tzxf27^`sR`0ȃIs36.yR1Gdjd e n^PntnhPh;P '>8eMx!kv"H7P <͍GWHC096wa0@spq1zxp@vHu:8^k\S0l}q b %%0 q2 XwJWȷE ؀I_洊 v d v؀UrE, %hp^~g4p"z ǵt~ͣ~q+oeL4hxHM+6HX`*$LFx5frY@́ÃdE/c9U+V^m!8C!ANDx 6Dh چ e(8x1mhڰ }`Ĉ  B2PyJca8m~WO?>ǿQ?u}*xb,Lk ,ħ|>Ǩ31` ZHA qq2RpI:@:R.L1x NH J`B2EC6P! [PD:2AL 10B gdKpp2!7v*`hvuAv܍.X CF,qaT 8 ehc0T1 )#DGQ@CD1 ^(:& @ <,$T2e`N ]nxȀCp^)B#X'xl=B82qXA T8!قD"@l#FB| \В@$-x n1ae,IG ]4DV!qDI$ џUHJ6yfj$*R*T \P肓u/L!`Yȁ@ jȃ "r H,0ᘓ@2&DP$FL3Į o`.T`*f3r֐X3exB/8a brB/4 *f ]`P HFf&08a uH'|X[r, ,AQ b=/zӫ^ʃp|J)P."*L+F4B@vjЃ#@ [$."S]CDȠZx2M[^4v&b\$Z<׫*F,! vB6!0GA I@bbeJ tt)`a !tv_;v@:"E)QD%ldBJ@d4HE)FQnІ>4g ·xE [N d2[bk@0(T1 "ȃpU `X k`-łqa Upy@~ u/00Bb(: F"־!{A l813S$b\Pq*Aʀ %]1,T}plK 8 ,Ȳ-a HPX# O |C+ mD\8ȩfSt[F!NB 8MVA *\ T@_B^ (qQP$p F,` \ L/5MN8 # HIhA0,LLZo]fg=cǾp7vF 'dWe4%@H@Ε )|@HrRB/x+ `08`C)A|^)ݬ9#d(| (aT%@HU_Z((4!Z$ d@m}DxAO%L ֡"U0C9T"P@ `]͖^E^(PBAб"@ pXD́0%(,`"ܛ(q]Ŏ6(2B'`!.=B-t8C9, %X=A"f#B L@^a\]؁wQ'p# $QiMAx(B'.?M51AC/tA_Ixh*cD<8l 'A$$PB&P4ځ@m WB%?O:M/B5:C9XN!"(rD:bāD9G6@@)1IN#@baHy%)&c!O%`"t:e9h @9B&4R#TAPF^q ȀH3#LZ8 6rP`I^pAl%,C,ܘ''R`f?(B9:C7 B@ fIN'b;bxtdX@(#8B"PX\ef\}^L"-#'3tB0;C7'9B9N#AjJd>F.g@h9&#0zځVF\  ~vHB!I."',qrB D^'Trd$#yMy $B" a ,!̨P(b/3C9T (Au$dƒ&B[feWR~'X AA!xA{*lrR g~&e>3<;C*4A @c#:Nc5ZffW|RjAZ* AhA6X" l,(B,;ЃC0HAD9fv2wv`@@ Hjh) *AB(,i{:)Fwn( `JAAADnPanhxhBOj%JZ[1tq=8" a%!(j:@ g&+(AFXf@iwm@ A/]-"/.3x*`;?:AX kN߱ Am؁A$,h*flA)P*k'$h/ڙ*:QC9Ld7+Z|f0nXoAm -@ @LA%-VoR0 ;C* @PaGiAA4"A&4LA$t[. "(-& W9C*B0d9@ ͎Ё4pž8t'4Zv8Y <(:ЃR;8&@0Tq?00_ "3BC[BB. ra-*HC">=4r) p @ھAA0<\B.t0hIA[' "7#5Ђ'^9p,.:0,\ ܁AA ,B$B.,ۭeZ6+B*7/a 6s:Ӄ<̃EC<8<-B/{Ş90dA+(4C4aCvB,C5:Ȫ;̪Q$A8tCI0B.B-$J!B'B7ôTZ;B/O YhS0Q'MJ"TB,,CM[cp8*`*>X4R'MkJp:äa\;xIB#Ҩ&6B/47PaoC:C7PC3$C2i2HC'g..lv6m߶?;psychopy-1.82.02.dfsg/docs/source/_static/robots.txt000066400000000000000000000001501257562125200224160ustar00rootroot00000000000000# robots.txt for http://www.pymvpa.org User-agent: * Disallow: /files/pymvpa_exampledata.tar.bz2 psychopy-1.82.02.dfsg/docs/source/_templates/000077500000000000000000000000001257562125200210605ustar00rootroot00000000000000psychopy-1.82.02.dfsg/docs/source/_templates/layout.html000066400000000000000000000252261257562125200232720ustar00rootroot00000000000000{# this is modified from sphinx/themse/basic/layout changed: sidebar, rootrellink, header, footer, order of titlesuffix (this couldn't be done by extending sphinx template) #} {%- block doctype -%} {%- endblock %} {%- set reldelim1 = reldelim1 is not defined and ' »' or reldelim1 %} {%- set reldelim2 = reldelim2 is not defined and ' |' or reldelim2 %} {%- macro relbar() %} {%- endmacro %} {%- macro sidebar() %} {%- if not embedded %}{% if not theme_nosidebar|tobool %}
{%- block sidebarlogo %} {%- if logo %} {%- endif %} {%- endblock %} {%- block sidebartoc %} {%- if display_toc %}

{{ _('Table Of Contents') }}

{{ toc }} {%- endif %} {%- endblock %} {%- block sidebarrel %} {%- if prev %}

{{ _('Previous topic') }}

{{ prev.title }}

{%- endif %} {%- if next %}

{{ _('Next topic') }}

{{ next.title }}

{%- endif %} {%- endblock %} {%- block sidebarsourcelink %} {%- if show_source and has_source and sourcename %}

{{ _('This Page') }}

{%- endif %} {%- endblock %} {%- if customsidebar %} {% include customsidebar %} {%- endif %} {%- block sidebarsearch %}

Quick links

{%- if pagename != "search" %} {%- endif %} {%- endblock %}
{%- endif %}{% endif %} {%- endmacro %} {{ metatags }} {%- if not embedded %} {%- set titlesuffix = " — "|safe + docstitle|e%} {%- else %} {%- set titlesuffix = "" %} {%- endif %} {{ title|striptags }}{{ titlesuffix }} {%- if not embedded %} {%- for scriptfile in script_files %} {%- endfor %} {%- if use_opensearch %} {%- endif %} {%- if favicon %} {%- endif %} {%- endif %} {%- block linktags %} {%- if hasdoc('about') %} {%- endif %} {%- if hasdoc('genindex') %} {%- endif %} {%- if hasdoc('search') %} {%- endif %} {%- if hasdoc('copyright') %} {%- endif %} {%- if parents %} {%- endif %} {%- if next %} {%- endif %} {%- if prev %} {%- endif %} {%- endblock %} {%- block extrahead %} {% endblock %} {% block header %} {% endblock %} {%- block relbar1 %}{{ relbar() }}{% endblock %} {%- block sidebar2 %}{{ sidebar() }}{% endblock %}
{%- block document %}
{%- if not embedded %}{% if not theme_nosidebar|tobool %}
{%- endif %}{% endif %}
{% block body %} {% endblock %}
{%- if not embedded %}{% if not theme_nosidebar|tobool %}
{%- endif %}{% endif %}
{%- endblock %}
{%- block relbar2 %}{{ relbar() }}{% endblock %} {%- block footer %} {%- endblock %} psychopy-1.82.02.dfsg/docs/source/_templates/layoutPrev.html000066400000000000000000000104461257562125200241250ustar00rootroot00000000000000{% extends "!layout.html" %} { set customsidebar = 'sidebarContent.html' %} {% block rootrellink %}
  • PsychoPy home | 
  • {% endblock %} {% block header %} {% endblock %} {% block sidebar1 %}{{ sidebar() }}{% endblock %} {% block sidebar2 %}{% endblock %} {% block footer %} {{ super() }} {% endblock %} #this is modified from sphinx/themse/basic/layout {%- macro sidebar() %} {%- if not embedded %}{% if not theme_nosidebar|tobool %}
    {%- block sidebarlogo %} {%- if logo %} {%- endif %} {%- endblock %} {%- block sidebartoc %} {%- if display_toc %}

    {{ _('Table Of Contents') }}

    {{ toc }} {%- endif %} {%- endblock %} {%- block sidebarrel %} {%- if prev %}

    {{ _('Previous topic') }}

    {{ prev.title }}

    {%- endif %} {%- if next %}

    {{ _('Next topic') }}

    {{ next.title }}

    {%- endif %} {%- endblock %} {%- block sidebarsourcelink %} {%- if show_source and has_source and sourcename %}

    {{ _('This Page') }}

    {%- endif %} {%- endblock %} {%- if customsidebar %} {% include customsidebar %} {%- endif %} {%- block sidebarsearch %}

    Quick links

    {%- if pagename != "search" %} {%- endif %} {%- endblock %}
    {%- endif %}{% endif %} {%- endmacro %}psychopy-1.82.02.dfsg/docs/source/about/000077500000000000000000000000001257562125200200355ustar00rootroot00000000000000psychopy-1.82.02.dfsg/docs/source/about/compileTestimonials.py000066400000000000000000000023411257562125200244330ustar00rootroot00000000000000import csv, codecs from psychopy import gui filename = gui.fileOpenDlg('.', allowed='*.csv')[0] #use csv from python (not from numpy) due to handling newlines within quote char with open(filename, 'rU') as csvFile: spamreader = csv.reader(csvFile, delimiter=',', quotechar='"', dialect=csv.excel) headers = spamreader.next() print 'headers:', type(headers), headers entries=[] for thisRow in spamreader: print thisRow thisEntry = {} for fieldN, thisFieldName in enumerate(headers): thisEntry[thisFieldName] = thisRow[fieldN] entries.append(thisEntry) companHead="Your Company or Institution" nameHead='Your name (or anon, but a name is nicer)' testimHead='Your thoughts on PsychoPy' posnHead = 'Your position' with open('testimonialsText.html', 'wb') as outFile: for thisEntry in entries: outFile.write('
    %s

    \n' %(thisEntry[testimHead].replace('\n', '
    '))) nameStr = ' - %s' %thisEntry[nameHead] if thisEntry[posnHead]: nameStr += ', %s' %thisEntry[posnHead] if thisEntry[companHead]: nameStr += ', %s' %thisEntry[companHead] nameStr += '
    \n' outFile.write(nameStr) psychopy-1.82.02.dfsg/docs/source/about/contributing.rst000066400000000000000000000061171257562125200233030ustar00rootroot00000000000000.. _contribute: Contributing to the project ===================================== PsychoPy is an open-source, community-driven project. It is written and provided free out of goodwill by people that make no money from it and have other jobs to do. The way that open-source projects work is that users contribute back some of their time. Why make it free? --------------------- It has taken, literally, thousands of hours of programming to get PsychoPy where it is today and it is provided absolutely for free. Without someone working on it full time (which would mean charging you for it) the only way for the software to keep getting better is if people contribute back to the project. **Please, please, please** make the effort to give a little back to this project. If you found the documentation hard to understand then think about how you would have preferred it to be written and contribute it. How do I contribute changes? ----------------------------- For simple changes, and for users that aren't so confident with things like version control systems then just send your changes to `the mailing list `_. If you want to make more substantial changes then it's often good to discuss them first on the `developers mailing list `_. The ideal model, is to contribute via the repository on github. There is more information on that in the :ref:`developers` section of the documentation. .. _Sphinx: http://sphinx.pocoo.org .. _contribForum: Contribute to the Forum (mailing list) ---------------------------------------------------------- The easiest way to help the project is to write to the forum (mailing list) with suggestions and solutions. *For documentation suggestions* please try to provide actual replacement text. You, as a user, are probably better placed to write this than the actual developers (they know too much to write good docs)! *If you're having problems*, e.g. you think you may have found a bug: - take a look at the :ref:`troubleshooting` and :ref:`gotchas` first - submit a message with as much information as possible about your system and the problem - please try to be precise. Rather than say "It didn't work" try to say what specific form of "not working" you found (did the stimulus not appear? or it appeared but poorly rendered? or the whole application crashed?!) - if there is an error message, try to provide it completely *If you had problems* and worked out how to fix things, even if it turned out the problem was your own lack of understanding, please still contribute the information. Others are likely to have similar problems. Maybe the documentation could be clearer, or your email to the forum will be found by others googling for the same problem. To make your message more useful you should, please try to: - provide info about your system and PsychoPy version (e.g. the output of the sysInfo demo in coder). A lot of problems are specific to a particular graphics card or platform - provide a minimal example of the breaking code (if you're writing scripts) psychopy-1.82.02.dfsg/docs/source/about/credits.rst000066400000000000000000000037111257562125200222260ustar00rootroot00000000000000 .. _credits: Credits ===================================== Developers --------------- PsychoPy was initially created and maintained by `Jon Peirce`_ but has many contributors to the code: **Jeremy Gray**, **Sol Simpson**, Yaroslav Halchenko, Erik Kastman, Mike MacAskill, William Hogman, Jonas Lindeløv, Ariel Rokem, Dave Britton, Gary Strangman, C Luhmann, Hiroyuki Sogo You can see `details of contributions on Ohloh.net `_ and there's a visualisation of `PsychoPy's development history `_ on youtube. PsychoPy also stands on top of a large number of other developers' work. It wouldn't be possible to write this package without the preceding work of those that wrote the :ref:`dependencies` Support ----------- Software projects aren't just about code. A great deal of work is done by the community in terms of supporting each other. Jeremy Gray, Mike MacAskill, Jared Roberts and Jonas Lindelov particularly stand out in doing a fantastic job of answering other users' questions. You can see the most active posters on the users list here: https://groups.google.com/forum/#!aboutgroup/psychopy-users Funding ---------------- The PsychoPy project has attracted small grants from the `HEA Psychology Network`_ and `Cambridge Research Systems`_ . Thanks to those organisations for their support. Jon is paid by `The University of Nottingham`_ (which allows him to spend time on this) and his grants from the `BBSRC`_ and `Wellcome Trust`_ have also helped the development PsychoPy. .. _Jon Peirce: http://www.peirce.org.uk .. _The University of Nottingham: http://www.nottingham.ac.uk .. _BBSRC: http://www.bbsrc.ac.uk .. _Wellcome Trust: http://www.wellcome.ac.uk/ .. _University of Nottingham: http://www.nottingham.ac.uk .. _HEA Psychology Network: http://www.psychology.heacademy.ac.uk/s.php?p=256&db=104 .. _Cambridge Research Systems: http://www.crsltd.com/psychopy-1.82.02.dfsg/docs/source/about/index.rst000066400000000000000000000023621257562125200217010ustar00rootroot00000000000000About PsychoPy ==================== .. only:: html .. toctree:: :maxdepth: 1 overview testimonials ../screenshots credits contributing .. only:: latex or latexpdf or epub .. toctree:: :maxdepth: 1 overview credits contributing .. _citingPsychoPy: Citing PsychoPy ----------------- If you use this software, please cite one of the papers that describe it. 1. Peirce, JW (2007) PsychoPy - Psychophysics software in Python. `J Neurosci Methods, 162(1-2):8-13 `_ 2. Peirce JW (2009) Generating stimuli for neuroscience using PsychoPy. `Front. Neuroinform. 2:10. doi:10.3389/neuro.11.010.2008 `_ Citing these papers gives the reviewer/reader of your study information about how the system works, it also attributes some credit for its original creation, and it means provides a way to justify the continued development of the package. psychopy-1.82.02.dfsg/docs/source/about/overview.rst000066400000000000000000000045031257562125200224370ustar00rootroot00000000000000 Overview ===================================== PsychoPy is an open-source package for running experiments in `Python`_ (a real and free alternative to Matlab). PsychoPy combines the graphical strengths of OpenGL with the easy Python syntax to give scientists a free and simple stimulus presentation and control package. It is used by many labs worldwide for psychophysics, cognitive neuroscience and experimental psychology. Because it's open source, you can download it and modify the package if you don't like it. And if you make changes that others might use then please consider giving them back to the community via the mailing list. PsychoPy has been written and provided to you absolutely for free. For it to get better it needs as much input from everyone as possible. Features ---------------- There are many advantages to using PsychoPy, but here are some of the key ones - Simple install process - Precise timing - Huge variety of stimuli (see screenshots) generated in real-time: - linear gratings, bitmaps constantly updating - radial gratings - random dots - movies (DivX, mov, mpg...) - text (unicode in any truetype font) - shapes - sounds (tones, numpy arrays, wav, ogg...) - Platform independent - run the same script on Win, OS X or Linux - Flexible :ref:`stimulus units ` (degrees, cm, or pixels) - :ref:`coder` interface for those that like to program - :ref:`builder` interface for those that don't - Input from keyboard, mouse, microphone or button boxes - Multi-monitor support - Automated monitor calibration (for supported photometers) Hardware Integration --------------------- PsychoPy supports communication via serial ports, parallel ports and compiled drivers (dlls and dylibs), so it can talk to any hardware that your computer can! Interfaces are prebuilt for; - Spectrascan PR650, PR655, PR670 - Minolta LS110, LS100 - Cambridge Research Systems Bits++ - Cedrus response boxes (RB7xx series) System requirements ---------------------- Although PsychoPy runs on a wide variety of hardware, and on Windows, OS X or Linux, it really does benefit from a decent graphics card. Get an ATI or nVidia card that supports OpenGL 2.0. *Avoid built-in Intel graphics chips (e.g. GMA 950)* .. _Python: http://www.python.orgpsychopy-1.82.02.dfsg/docs/source/about/testimonials.rst000066400000000000000000000016311257562125200233030ustar00rootroot00000000000000 Testimonials - what do people think of PsychoPy? ===================================================== OK, so we know that `PsychoPy has quite a lot of users `_ We know that quite a few people have written `manuscripts that cited PsychoPy `_ But did the users actually *enjoy* using the software or was it a painful experience? This page will hold the (roughly honest) opinions of users. If you'd like to add your own testimonial then go to this `google form `_ (Updating the testimonials will be done periodically so don't expect your comment to appear here instantly, but we'll try and remember to do it every now and then. Please don't swear!!) .. raw:: html :file: testimonialsText.html psychopy-1.82.02.dfsg/docs/source/about/testimonialsText.html000066400000000000000000000370771257562125200243210ustar00rootroot00000000000000


    PsychoPy is one of those things that improve the life of an experimental psychologist. Really. #python #neuroscience

    - Davide Massida, via twitter


    It's wonderful to have a product that makes stimulus presentation easy (and is free!) while also providing Python as the underlying language so we can add the power we need.

    We've used PsychoPy in several studies and we're super happy with it. Thanks, team!

    - Nate Vack, Research Programmer, UW-Madison


    The developers of PsychoPy have provided a valuable service for the scientific community. PsychoPy is a powerful presentation software package built on the foundation of one of the most ubiquitous open source programming languages in use to day. PsychoPy's builder interface makes it accessible to beginners, and the easy to use API makes it helpful to even the most advanced Python programmers when programming experiments. I say this as a former professional computer programmer. When I came to neuroscience, I spent a lot of time and consideration regarding which software packages I would use to program my experiments. I chose PsychoPy, and I have not regretted that decisions.

    - Jared Roberts, PhD student, University of California, Irvine


    What made me switch was the combination of Builder and Coder options. Students are not scared of the Builder, but I can still write code when needed (and even hide it in student experiments).

    - Harriet Allen, Lecturer, University of Nottingham


    PsychoPy is excellent. I came to it from having used Macromedia Director (Lingo) and PsyScope for my experiments before. Director was very powerful but also too big, and PsyScope -- as any 'experimental package' really -- too limiting. PsychoPy fit the bill: It is flexible, yet relatively easy to learn, and it is free, and cross-platform compatible.
    What never ceases to amaze me, me, though, is the dedication of its developers to continually improve it, and the extremely helpful and fast responses I get to any queries.
    I am mostly using it for my own research, and with my PhD students, but I have once also used it for a UG project. The student did not know the first thing about programming, but needed to use a BART. Fortunately, there was a BART demo with PsychoPy, and the student could very easily adapt this to her needs.
    Thumbs up all around for PsychoPy!

    - Marc Buehner, Reader, Cardiff University


    PsychoPy is a fantastic tool for creating experiments. It combines the elegance and power of Python programming for experts with a graphical user interface for novices, that the PsychoPy team has put an enormous effort into developing. Because it is open source, its growth in popularity must have already resulted in many labs saving thousands of dollars in software licenses for alternatives they would have had to buy, like MATLAB. Because it is Python, which has emerged as the standard open-source language for interdisciplinary efforts in neuroscience, it is furthering closer integration of psychology with neuroscience. Because there is a helpful community of expert users on the forums, the PsychoPy community helps many new researchers get their start with experiment programming. For my department's postgrad students, I am currently planning a 3-day workshop taught mainly by Software Carpentry, a group of expert programmers, volunteers teaching for free (who are only interested in teaching open-source solutions) to skill up the next generation of scientists with advanced programming techniques that facilitate replicability, using R (which plays nicely with Python) and Python and PsychoPy. In any field, it is generally difficult to get much traction against established legacy solution with thousands of users ( in this area, including MATLAB), but PsychoPy has done so.

    - Alex Holcombe, Associate Professor, University of Sydney


    The great thing about PsychoPy isn't that it's free (though it is), or that the people who make it are very dedicated and helpful people (though they are), or that it can be extended to use a huge range of paradigms and hardware (though it can). The great thing is that PsychoPy is all done in Python.
    I never took any CompSci or programming courses. I didn't grow up soldering together transistors. I just about know where the "on" switch is. And yet, I was able to put together an experiment that uses a keyboard, a touchscreen, an eyetracker, and a microphone for input. With other psychological experiment software, that required kludgey workarounds, advanced programming skills, and probably a punching bag next to your desk. With PsychoPy, with the demos that come with it, with all the diverse applications that get posted to the usergroup every day, it's just a bunch of lines of human-readable Python code.

    - Daniel Bürkle, PhD student, University of Canterbury, Department of Linguistics


    PsychoPy is great. I use it for almost all my experiments now. It transfers between Mac and PC, has a great GUI but is easy to customise with a bit of scripting, a helpful user community, can be explained to a student in an hour or so, is constantly updated by people who are active reserach scientists, is free and - well - actually, what more could you ask for?

    - Fenja Ziegler, Senior Lecturer, University of Lincoln


    I have used PsychoPy to present audio and visual stimuli for fMRI and behavioral experiments. PsychoPy made it very easy to put together presentation scripts quickly with their demos that cover most elemental usecases. Being free and independent of Matlab makes it possible to run my experiments anywhere without worrying about licensing issues.

    - J. Swaroop Guntupalli, Postdoctoral Researcher, Dartmouth College


    I learned PsychoPy when my advisor decided to move away from MATLAB due to cost. It was intuitive to learn, and I now love PsychoPy Coder for stimuli creation.

    Its extra tools, such as the Monitor Center gui really make setting-up and calibrating less of a headache.

    The thing I love most is that PsychoPy is one of the most portable platforms to code in; I can code on my PC laptop and then put it on a lab Mac and things almost always run without extra debugging. NOTHING that I've tried has such a good track record.

    - Andy Silva, PhD student, UCLA


    I have been using PsychoPy since 2005. There are many reasons why I use PsychoPy---a few of them: 1) The design decisions underlying PsychoPy's organisation, feature set, and implementation make it simple and powerful to implement experiments, which I believe stems in a large part from the developers and maintainers being active and working scientists. 2) PsychoPy has a supportive and responsive community of developers and users, leading to software that is actively maintained and is welcoming to new and experienced users. 3) PsychoPy's foundation in the Python programming language integrates it with the outstanding infrastructure and community of the Python ecosystem, allowing PsychoPy to be a pivotal link in a cohesive pipeline of software for carrying out, analysing, and publishing scientific work. 4) PsychoPy's open-source architecture allows for precise understanding of how the software operates, and its free license makes it much simpler to deploy PsychoPy in a variety of environments and be confident of its stability.

    - Damien Mannion, Lecturer, UNSW Australia


    I have migrated to PsychoPy for all of my experiments and get my students to create experiments using PsychoPy in my psycholinguistics classes. It is the fastest way to get an experiment up and running and despite being fast and easy is still capable of being extended endlessly to achieve pretty much any research goal you might have. I think it's the best experiment software available (at any price) and the fact that it's free is just the icing on the cake.

    - Mark Scott, Prof, United Arab Emirates University


    We just recently started to use PsychoPy for experiments in developmental psychology, but we have been very impressed so far by its capabilities, pace of development, and the responsiveness of its developers. We will definitely continue to use it for future studies.

    - anon


    Psychopy is a very useful tool. It combines a great experimental control with a gentle learning curve. Its multiplatform capabilities together with its open access approach makes it a great contribution, helping researchers in ways that few other software can. Its impact is more than remarkable. Currently we are changing all of our experimental tasks from other programs to Psychopy and we could not be happier with the results and process. I'd personally recomend Psychopy to any researcher and will use it both as teaching and research tool.

    - Joaquín Morís, PhD, University of Barcelona


    I intend to make the switch to psychopy from psychtoolbox over the next few years. PsychoPy is definitely the most mature package for conducting psychophysical experiments using Python. The function libraries are impressive and the community is growing. I have started using Python in favour of Matlab for other areas of my work. With PsychoPy's help I hope to be Matlab-free in a few years time!

    - Thomas Wallis, Postdoctoral Fellow, University of Tübingen


    PsychoPy represented a welcome and much needed reprieve for our lab when we heard of it a couple years ago. We used closed source alternatives prior to that point, and we were constantly frustrated by problems with site licenses and proprietary data formats. It's hard to describe how gratifying it was to code a fast, solid experimental paradigm completely in python and then have all our output files be csv's. PsychoPy has only gotten better since then, with the addition of more built-in functions and improvements to the Builder GUI functionality.

    One project I helped create involved twenty or more subjects simultaneously performing a delay discounting decision making task while being paired with other subjects from one trial to the next based on religious group status. This was relatively easy to do with PsychoPy due to the flexibility of the software and the ease of including pure python code in the experiment. It would have been much more complicated with other software, if it would have been possible at all (not to mention dealing with program licenses for 20+ machines).

    As a side note, the help forum for PsychoPy is one of the best I've been involved with. I've asked several questions, and frequently the developers of PsychoPy themselves have responded quickly and solved my problem. Prior to using PsychoPy, I struggled to find answers to my queries about closed source alternatives, and it was always a frustrating experience. Worse still, I didn't learn anything new, whereas my understanding of experimental methods generally and of python programming in particular has expanded by using PsychoPy. I also frequently see users answer questions posed by people new to the program to help them orient themselves. It's a friendly and helpful community, and unfortunately that's not always the case with this kind of thing!

    - Andrew Poppe, PhD Student, University of Minnesota


    Psychopy is an attempt to provide a usable psychological presentation suite for experiments developed by non-expert programmers. It has a great tutorial that walks new users through the interface and how to successfully create presentation paradigms. It's open-source and based on a programming platform that is skyrocketing in its adoption.

    - Keith McGregor, Assistant Professor, Emory University


    I programmed my first experiment using PsychoPy around February 2011. Since then I have basically only used PsychoPy for all the experiments I was responsible for and see no need to change this in the future.

    PsychoPy came at the right time for me and (a) is comparatively easy to use because of relying on the great programming language Python, (b) offers a wealth of ever increasing functionality, and (c) hides exactly those technical issues behind a comfortable API that I am not interested in dealing with. Consequently, I can only recommend it to anyone who wants to use free software to program his or her experiments.

    - Henrik Singmann, PostDoc, University of Freiburg


    PsychoPy is the best software for experiment programming that I've seen. The Builder interface greatly eases the learning so that I can explain the basics for undergrad students in 5 minutes. And the power of Python makes the possibilities for power users virtually unlimited. Its free, fast-developing, and have a wonderful support community.

    - Andrey Chetverikov, PhD student, researcher, St. Petersburg State University


    I have been using psychopy since 2010 and it has been a great boon for my research. The design of the software library is elegant and intuitive, making it easy to get started, and easy to use, The software is powerful, enabling experiments in which complex stimuli are presented with accurate timing. The user and developer communities are helpful and welcoming to new-comers.

    In addition to the effort that has gone into making installation of pyschopy easy and uniform, the implementation of an easy-to-use GUI has made collaborations with colleagues in other institutions a simple matter of sharing code, without needing to worry about complicated operation instructions ("just press the big green 'run' button"!), and without installation hassles.

    The use of Python as a basis for the implementation of psychopy promises a bright future for the project and for its increased use in neuroscience and psychology experiments, as the language is rapidly becoming the lingua franca of reproducible computational data analysis in neuroscience and psychology.

    - Ariel Rokem, Postdoc, Stanford University


    Thank you very much Jonathan Peirce, we are starting to use psychopy instead of E-prime and it's really nice to work with your software. Having everything that we need in your software is amazing, we really appreciate your hard work, its impressive. You are doing lots of people work easier and faster.

    Keep working like this, and keep it open source!!

    - Dario, Student, Brain House Institute


    I remember the days when there was a need to deal with made-up "scripting languages" to implement psychophysical experiments. I remember the waste of time learning these additional tools, I remember the pain associated with the "maintenance" of licenses, I remember the "community" of suffering souls that also could not get things done in reasonable time.

    I am so glad that these times are over. Thanks to PsychoPy and thanks to its developers for being a team player in the larger eco-system that is scientific Python software. With PsychoPy I can do simple things in a simple way. At the same time, PsychoPy can channel the combined power of a mind-bending number of specialized Python packages available to be utilized in any experiment with a few lines of code -- in the very language I use to analyze and visualize acquired data.

    You won't believe it, unless you try it.

    - Michael Hanke, Prof, University of Magdeburg, Germany


    PsychoPy is more powerful and more accessible than many proprietary experiment control software. It is one of the best choice.

    - Attila Krajcsi, associate professor, Eötvös Loránd University
    psychopy-1.82.02.dfsg/docs/source/api/000077500000000000000000000000001257562125200174745ustar00rootroot00000000000000psychopy-1.82.02.dfsg/docs/source/api/api.rst000066400000000000000000000004261257562125200210010ustar00rootroot00000000000000.. _api: Reference Manual (API) ================================== Contents: .. toctree:: :maxdepth: 1 :glob: core visual * .. only:: html Indices and tables ~~~~~~~~~~~~~~~~~~~~~~ * :ref:`genindex` * :ref:`modindex` * :ref:`search` psychopy-1.82.02.dfsg/docs/source/api/core.rst000066400000000000000000000003611257562125200211560ustar00rootroot00000000000000:mod:`psychopy.core` - basic functions (clocks etc.) ====================================================== .. automodule:: psychopy.core :members: getTime, getAbsTime, wait, Clock, CountdownTimer, MonotonicClock, StaticPeriod psychopy-1.82.02.dfsg/docs/source/api/data.rst000066400000000000000000000044731257562125200211470ustar00rootroot00000000000000:mod:`psychopy.data` - functions for storing/saving/analysing data ============================================================================== .. automodule:: psychopy.data :class:`ExperimentHandler` --------------------------------------------------------------------------- .. autoclass:: psychopy.data.ExperimentHandler :members: :undoc-members: :inherited-members: :class:`TrialHandler` --------------------------------------------------------------------------- .. autoclass:: psychopy.data.TrialHandler :members: :undoc-members: :inherited-members: :class:`StairHandler` --------------------------------------------------------------------------- .. autoclass:: psychopy.data.StairHandler :members: :undoc-members: :inherited-members: :class:`MultiStairHandler` --------------------------------------------------------------------------- .. autoclass:: psychopy.data.MultiStairHandler :members: :undoc-members: :inherited-members: :class:`QuestHandler` --------------------------------------------------------------------------- .. autoclass:: psychopy.data.QuestHandler :members: :undoc-members: :inherited-members: :class:`FitWeibull` --------------------------------------------------------------------------------- .. autoclass:: psychopy.data.FitWeibull :members: :undoc-members: :inherited-members: :class:`FitLogistic` --------------------------------------------------------------------------------- .. autoclass:: psychopy.data.FitLogistic :members: :undoc-members: :inherited-members: :class:`FitNakaRushton` --------------------------------------------------------------------------------- .. autoclass:: psychopy.data.FitNakaRushton :members: :undoc-members: :inherited-members: :class:`FitCumNormal` --------------------------------------------------------------------------------- .. autoclass:: psychopy.data.FitCumNormal :members: :undoc-members: :inherited-members: :func:`importConditions` ---------------------------------- .. autofunction:: psychopy.data.importConditions :func:`functionFromStaircase` ---------------------------------- .. autofunction:: psychopy.data.functionFromStaircase :func:`bootStraps` -------------------------------- .. autofunction:: psychopy.data.bootStrapspsychopy-1.82.02.dfsg/docs/source/api/encryption.rst000066400000000000000000000010711257562125200224170ustar00rootroot00000000000000 Encryption ============ Some labs may wish to better protect their data from casual inspection or accidental disclosure. This is possible within PsychoPy using a separate python package, pyFileSec, which grew out of PsychoPy. pyFileSec is distributed with the StandAlone versions of PsychoPy, or can be installed using pip or easy_install via https://pypi.python.org/pypi/PyFileSec/ Some elaboration of pyFileSec usage and security strategy can be found here: http://pythonhosted.org//PyFileSec Basic usage is illustrated in the Coder demo > misc > encrypt_data.py psychopy-1.82.02.dfsg/docs/source/api/event.rst000066400000000000000000000006201257562125200213450ustar00rootroot00000000000000:mod:`psychopy.event` - for keypresses and mouse clicks ============================================================================== .. autoclass:: psychopy.event.Mouse :members: :undoc-members: :inherited-members: .. autofunction:: psychopy.event.clearEvents .. autofunction:: psychopy.event.waitKeys .. autofunction:: psychopy.event.getKeys .. autofunction:: psychopy.event.xydist psychopy-1.82.02.dfsg/docs/source/api/filters.rst000066400000000000000000000003121257562125200216720ustar00rootroot00000000000000:mod:`psychopy.filters` - helper functions for creating filters ============================================================================== .. automodule:: psychopy.filters :members: psychopy-1.82.02.dfsg/docs/source/api/gui.rst000066400000000000000000000012571257562125200210170ustar00rootroot00000000000000:mod:`psychopy.gui` - create dialogue boxes =================================================== :class:`~psychopy.gui.DlgFromDict` ------------------------------------ .. autoclass:: psychopy.gui.DlgFromDict :members: :undoc-members: :class:`~psychopy.gui.Dlg` ------------------------------------ .. autoclass:: psychopy.gui.Dlg :members: :undoc-members: :class:`~psychopy.gui.fileOpenDlg` ------------------------------------ .. autoclass:: psychopy.gui.fileOpenDlg :members: :undoc-members: :class:`~psychopy.gui.fileSaveDlg` ------------------------------------ .. autoclass:: psychopy.gui.fileSaveDlg :members: :undoc-members: psychopy-1.82.02.dfsg/docs/source/api/hardware.rst000066400000000000000000000007071257562125200220270ustar00rootroot00000000000000:mod:`psychopy.hardware` - hardware interfaces =================================================== PsychoPy can access a wide range of external hardware. For some devices the interface has already been created in the following sub-packages of PsychoPy. For others you may need to write the code to access the serial port etc. manually. Contents: .. toctree:: :maxdepth: 1 :glob: hardware/* .. autofunction:: psychopy.hardware.findPhotometer psychopy-1.82.02.dfsg/docs/source/api/hardware/000077500000000000000000000000001257562125200212715ustar00rootroot00000000000000psychopy-1.82.02.dfsg/docs/source/api/hardware/cedrus.rst000066400000000000000000000016041257562125200233110ustar00rootroot00000000000000Cedrus (response boxes) ============================================= The pyxid package, written by Cedrus, is included in the Standalone PsychoPy distributions. See https://github.com/cedrus-opensource/pyxid for further info. Example usage:: import pyxid # get a list of all attached XID devices devices = pyxid.get_xid_devices() dev = devices[0] # get the first device to use if dev.is_response_device(): dev.reset_base_timer() dev.reset_rt_timer() while True: dev.poll_for_response() if dev.response_queue_size() > 0: response = dev.get_next_response() # do something with the response Useful functions ------------------ .. automodule:: pyxid :members: Device classes --------------------------- .. autoclass:: pyxid.ResponseDevice :members: .. autoclass:: pyxid.XidDevice :members:psychopy-1.82.02.dfsg/docs/source/api/hardware/crs.rst000066400000000000000000000005531257562125200226150ustar00rootroot00000000000000Cambridge Research Systems Ltd. =================================== .. automodule:: psychopy.hardware.crs .. currentmodule:: psychopy.hardware.crs For stimulus display ------------------------- .. toctree:: :maxdepth: 1 crs/BitsPlusPlus crs/BitsSharp For display calibration ------------------------- .. toctree:: :maxdepth: 1 crs/ColorCAL psychopy-1.82.02.dfsg/docs/source/api/hardware/crs/000077500000000000000000000000001257562125200220605ustar00rootroot00000000000000psychopy-1.82.02.dfsg/docs/source/api/hardware/crs/BitsPlusPlus.rst000066400000000000000000000042031257562125200252220ustar00rootroot00000000000000.. _BitsPlusPlus: :class:`BitsPlusPlus` ------------------------------------------------------------------------ .. currentmodule:: psychopy.hardware.crs.bits Control a CRS Bits# device. See typical usage in the class summary (and in the menu demos>hardware>BitsBox of PsychoPy's Coder view). **Important:** See note on `BitsPlusPlusIdentityLUT`_ Attributes ============= .. autosummary:: BitsPlusPlus BitsPlusPlus.mode BitsPlusPlus.setContrast BitsPlusPlus.setGamma BitsPlusPlus.setLUT Details ============= .. autoclass:: BitsPlusPlus :members: :inherited-members: .. _BitsPlusPlusIdentityLUT: Finding the identity LUT =============================== For the Bits++ (and related) devices to work correctly it is essential that the graphics card is not altering in any way the values being passed to the monitor (e.g. by gamma correcting). It turns out that finding the 'identity' LUT, where exactly the same values come out as were put in, is not trivial. The obvious LUT would have something like 0/255, 1/255, 2/255... in entry locations 0,1,2... but unfortunately most graphics cards on most operating systems are 'broken' in one way or another, with rounding errors and incorrect start points etc. PsychoPy provides a few of the common variants of LUT and that can be chosen when you initialise the device using the parameter `rampType`. If no `rampType` is specified then PsychoPy will choose one for you:: from psychopy import visual from psychopy.hardware import crs win = visual.Window([1024,768], useFBO=True) #we need to be rendering to framebuffer bits = crs.BitsPlusPlus(win, mode = 'bits++', rampType = 1) The Bits# is capable of reporting back the pixels in a line and this can be used to test that a particular LUT is indeed providing identity values. If you have previously connected a :class:`BitsSharp` device and used it with PsychoPy then a file will have been stored with a LUT that has been tested with that device. In this case set `rampType = "configFile"` for PsychoPy to use it if such a file is found. psychopy-1.82.02.dfsg/docs/source/api/hardware/crs/BitsSharp.rst000066400000000000000000000017101257562125200245100ustar00rootroot00000000000000.. _BitsSharp: :class:`BitsSharp` ------------------------------------------------------------------------ .. currentmodule:: psychopy.hardware.crs.bits Control a CRS Bits# device. See typical usage in the class summary (and in the menu demos>hardware>BitsBox of PsychoPy's Coder view). Attributes ============= .. autosummary:: BitsSharp BitsSharp.mode BitsSharp.isAwake BitsSharp.getInfo BitsSharp.checkConfig BitsSharp.gammaCorrectFile BitsSharp.temporalDithering BitsSharp.monitorEDID BitsSharp.beep BitsSharp.getVideoLine BitsSharp.start BitsSharp.stop Direct communications with the serial port: .. autosummary:: BitsSharp.sendMessage BitsSharp.getResponse Control the CLUT (Bits++ mode only): .. autosummary:: BitsSharp.setContrast BitsSharp.setGamma BitsSharp.setLUT Details ============= .. autoclass:: BitsSharp :members: :undoc-members: read :inherited-members:psychopy-1.82.02.dfsg/docs/source/api/hardware/crs/ColorCAL.rst000066400000000000000000000005011257562125200242040ustar00rootroot00000000000000.. _ColorCAL: .. currentmodule:: psychopy.hardware.crs.colorcal :class:`ColorCAL` ------------------------------------------------------------------------ Attributes ============= .. autosummary:: ColorCAL Details ============= .. autoclass:: ImageStim :members: :undoc-members: :inherited-members:psychopy-1.82.02.dfsg/docs/source/api/hardware/egi.rst000066400000000000000000000002001257562125200225570ustar00rootroot00000000000000.. _egi: egi (pynetstation) ============================================= .. automodule:: psychopy.hardware.egi :members:psychopy-1.82.02.dfsg/docs/source/api/hardware/emulator.rst000066400000000000000000000004531257562125200236550ustar00rootroot00000000000000Launch an fMRI experiment: Test or Scan ========================================== .. automodule:: psychopy.hardware.emulator :inherited-members: .. autoclass:: psychopy.hardware.emulator.ResponseEmulator :members: .. autoclass:: psychopy.hardware.emulator.SyncGenerator :members:psychopy-1.82.02.dfsg/docs/source/api/hardware/forp.rst000066400000000000000000000001651257562125200227730ustar00rootroot00000000000000fORP response box ============================================= .. automodule:: psychopy.hardware.forp :members:psychopy-1.82.02.dfsg/docs/source/api/hardware/iolab.rst000066400000000000000000000001531257562125200231100ustar00rootroot00000000000000iolab ============================================= .. automodule:: psychopy.hardware.iolab :members: psychopy-1.82.02.dfsg/docs/source/api/hardware/joystick.rst000066400000000000000000000004061257562125200236620ustar00rootroot00000000000000.. _joystick: joystick (pyglet and pygame) ============================================= .. automodule:: psychopy.hardware.joystick :members: .. autoclass:: psychopy.hardware.joystick.Joystick :members: :undoc-members: :inherited-members:psychopy-1.82.02.dfsg/docs/source/api/hardware/labjack.rst000066400000000000000000000012061257562125200234110ustar00rootroot00000000000000.. _labjack: labjack (USB I/O devices) ============================================= The labjack package is included in the Standalone PsychoPy distributions. It differs slightly from the standard version distributed by labjack (www.labjack.com) in the import. For the custom distribution use:: from labjack import u3 NOT:: import u3 In all other respects the library is the same and instructions on how to use it can be found here: http://labjack.com/support/labjackpython .. note:: To use labjack devices you do need also to install the driver software described on the page above .. autoclass:: labjack.u3 :members: psychopy-1.82.02.dfsg/docs/source/api/hardware/minolta.rst000066400000000000000000000001561257562125200234700ustar00rootroot00000000000000Minolta ============================================= .. automodule:: psychopy.hardware.minolta :members:psychopy-1.82.02.dfsg/docs/source/api/hardware/pr.rst000066400000000000000000000003511257562125200224430ustar00rootroot00000000000000PhotoResearch ============================================= .. currentmodule:: psychopy.hardware.pr Supported devices: - :class:`PR650` - :class:`PR655/PR670 ` .. automodule:: psychopy.hardware.pr :members:psychopy-1.82.02.dfsg/docs/source/api/hardware/pylink.rst000066400000000000000000000010751257562125200233340ustar00rootroot00000000000000.. _pylink: pylink (SR research) ============================================= For now the SR Research pylink module is packaged with the Standalone flavours of PsychoPy and can be imported with:: import pylink You do need to install the Display Software (which they also call Eyelink Developers Kit) for your particular platform. This can be found by following the threads from: https://www.sr-support.com/forums/forumdisplay.php?f=17 for pylink documentation see: https://www.sr-support.com/forums/showthread.php?t=14 .. automodule:: pylink :members: psychopy-1.82.02.dfsg/docs/source/api/info.rst000066400000000000000000000003061257562125200211600ustar00rootroot00000000000000:mod:`psychopy.info` - functions for getting information about the system ============================================================================== .. automodule:: psychopy.info :members: psychopy-1.82.02.dfsg/docs/source/api/iohub.rst000066400000000000000000000026111257562125200213340ustar00rootroot00000000000000:mod:`psychopy.iohub` - ioHub event monitoring framework ========================================================= ioHub monitors for device events in parallel with the PsychoPy experiment execution by running in a separate process than the main PsychoPy script. This means, for instance, that keyboard and mouse event timing is not quantized by the rate at which the window.swap() method is called. ioHub reports device events to the PsychoPy experiment runtime as they occur. Optionally, events can be saved to a `HDF5 `_ file. All iohub events are timestamped using the PsychoPy global time base (psychopy.core.getTime()). Events can be accessed as a device independent event stream, or from a specific device of interest. A comprehensive set of examples that each use at least one of the iohub devices is available in the psychopy/demos/coder/iohub folder. .. note:: This documentation is in very early stages of being written. Many sections regarding device usage details are simply placeholders. For information on devices or functionality that has not yet been migrated to the psychopy documentation, please visit the somewhat outdated `original ioHub doc's. `_ Using psychopy.iohub: ----------------------- .. toctree:: :maxdepth: 2 :glob: iohub/requirements iohub/starting iohub/devices psychopy-1.82.02.dfsg/docs/source/api/iohub/000077500000000000000000000000001257562125200206025ustar00rootroot00000000000000psychopy-1.82.02.dfsg/docs/source/api/iohub/device/000077500000000000000000000000001257562125200220415ustar00rootroot00000000000000psychopy-1.82.02.dfsg/docs/source/api/iohub/device/analoginput.rst000066400000000000000000000001351257562125200251130ustar00rootroot00000000000000.. _iohub_analoginput: Analog Input Device and Events ================================= TBCpsychopy-1.82.02.dfsg/docs/source/api/iohub/device/computer.rst000066400000000000000000000000711257562125200244270ustar00rootroot00000000000000.. _iohub_computer: Computer Device =============== TBCpsychopy-1.82.02.dfsg/docs/source/api/iohub/device/eyetracker.rst000066400000000000000000000001341257562125200247270ustar00rootroot00000000000000.. _iohub_eyetracker: Eye Tracker Devices and Events ================================= TBCpsychopy-1.82.02.dfsg/docs/source/api/iohub/device/keyboard.rst000066400000000000000000000020201257562125200243650ustar00rootroot00000000000000.. _iohub_keyboard: .. module:: psychopy.iohub.client.keyboard Keyboard Device =============== The iohub Keyboard device provides methods to: * Check for any new keyboard events that have occurred since the last time keyboard events were checked or cleared. * Wait until a keyboard event occurs. * Clear the device of any unread events. * Get a list of all currently pressed keys. .. autoclass:: Keyboard :exclude-members: getDeviceInterface, getIOHubDeviceClass, getName :members: :inherited-members: :member-order: bysource Keyboard Events ================ The Keyboard device can return two types of events, which represent key press and key release actions on the keyboard. KeyboardPress Event -------------------- .. autoclass:: KeyboardPress :exclude-members: id :members: :inherited-members: :member-order: bysource KeyboardRelease Event ----------------------- .. autoclass:: KeyboardRelease :exclude-members: id :members: :inherited-members: :member-order: bysource psychopy-1.82.02.dfsg/docs/source/api/iohub/device/mouse.rst000066400000000000000000000001201257562125200237140ustar00rootroot00000000000000.. _iohub_mouse: Mouse Device and Events ================================= TBCpsychopy-1.82.02.dfsg/docs/source/api/iohub/device/serial.rst000066400000000000000000000001271257562125200240520ustar00rootroot00000000000000.. _iohub_serial: Serial Port Device and Events ================================= TBCpsychopy-1.82.02.dfsg/docs/source/api/iohub/device/touch.rst000066400000000000000000000001271257562125200237150ustar00rootroot00000000000000.. _iohub_touch: Touch Screen Device and Events ================================= TBCpsychopy-1.82.02.dfsg/docs/source/api/iohub/device/xinput.rst000066400000000000000000000001321257562125200241160ustar00rootroot00000000000000.. _iohub_xinput: XInput Gamepad Device and Events ================================= TBCpsychopy-1.82.02.dfsg/docs/source/api/iohub/devices.rst000066400000000000000000000010131257562125200227510ustar00rootroot00000000000000.. _iohub_devices: ioHub Devices and Device Events ================================= psychopy.iohub supports a large and growing set of supported devices. Details for each device can be found in the following sections. .. toctree:: :maxdepth: 3 Keyboard Mouse Computer XInput Gamepad Eye Tracker Serial Analog to Digital Input Elo Touch Screen psychopy-1.82.02.dfsg/docs/source/api/iohub/requirements.rst000066400000000000000000000066371257562125200240730ustar00rootroot00000000000000.. _iohub_requirements: psychopy.iohub Specific Requirements ====================================== Computer Specifications ------------------------ The design / requirements of your experiment itself can obviously influence what the minimum computer specification should be to provide good timing / performance. The dual process design when running using psychopy.iohub also influences the minimum suggested specifications as follows: * Intel i5 or i7 CPU. A minimum of **two** CPU cores is needed. * 8 GB of RAM * Windows 7 +, OS X 10.7.5 +, or Linux Kernel 2.6 + Please see the :ref:`hardware` section for further information that applies to PsychoPy in general. Usage Considerations --------------------- When using psychopy.iohub, the following constrains should be noted: 1. The pyglet graphics backend must be used; pygame is not supported. 2. ioHub devices that report position data use the unit type defined by the PsychoPy Window. However, position data is reported using the full screen area and size the window was created in. Therefore, for accurate window position reporting, the PsychoPy window must be made full screen. 3. On OS X, Assistive Device support must be enabled when using psychopy.iohub. * For OS X 10.7 - 10.8.5, instructions can be found `here `_. * For OS X 10.9 +, the program being used to start your experiment script must be specifically authorized. Example instructions on authorizing an OS X 10.9 + app can be viewed `here `_. Software Requirements ---------------------- When running PsychoPy using the OS X or Windows standalone distribution, all the necessary python package dependencies have already been installed, so the rest of this section can be skipped. .. note:: Hardware specific software may need to be installed depending on the device being used. See the documentation page for the specific device hardware in question for further details. If psychopy.iohub is being manually installed, first ensure the python packages listed in the :ref:`dependencies` section of the manual are installed. psychopy.iohub requires the following extra dependencies to be installed: #. `psutil (version 1.2 +) `_ A cross-platform process and system utilities module for Python. #. `msgpack `_ It's like JSON. but fast and small. #. `greenlet `_ The greenlet package is a spin-off of Stackless, a version of CPython that supports micro-threads called "tasklets". #. `gevent (version 1.0 or greater)** `_ A coroutine-based Python networking library. #. `numexpr `_ Fast numerical array expression evaluator for Python and NumPy. #. `pytables `_ PyTables is a package for managing hierarchical datasets. #. `pyYAML `_ PyYAML is a YAML parser and emitter for Python. Windows installations only #. `pyHook `_ Python wrapper for global input hooks in Windows. Linux installations only #. `python-xlib `_ The Python X11R6 client-side implementation. OSX installations only #. `pyobjc `_ : A Python ObjectiveC binding. psychopy-1.82.02.dfsg/docs/source/api/iohub/starting.rst000066400000000000000000000017111257562125200231670ustar00rootroot00000000000000.. _starting_iohub: .. module:: psychopy.iohub.client Starting the psychopy.iohub Process ===================================== To use ioHub within your PsychoPy Coder experiment script, ioHub needs to be started at the start of the experiment script. The easiest way to do this is by calling the launchHubServer function. launchHubServer function -------------------------- .. autofunction:: launchHubServer ioHubConnection Class -------------------------- The psychopy.iohub.ioHubConnection object returned from the launchHubServer function provides methods for controlling the iohub process and accessing iohub devices and events. .. autoclass:: ioHubConnection :exclude-members: addDeviceToMonitor, getHubServerConfig, getExperimentID, getExperimentMetaData, getSessionMetaData, initializeConditionVariableTable, addRowToConditionVariableTable, registerPygletWindowHandles, unregisterPygletWindowHandles, wait :members: :member-order: bysource psychopy-1.82.02.dfsg/docs/source/api/logging.rst000066400000000000000000000005671257562125200216640ustar00rootroot00000000000000:mod:`psychopy.logging` - control what gets logged ====================================================================== .. automodule:: psychopy.logging :members: :func:`flush` ---------------------------------- .. autofunction:: psychopy.logging.flush :func:`setDefaultClock` ---------------------------------- .. autofunction:: psychopy.logging.setDefaultClockpsychopy-1.82.02.dfsg/docs/source/api/microphone.rst000066400000000000000000000044451257562125200224000ustar00rootroot00000000000000.. _microphone: :mod:`psychopy.microphone` - Capture and analyze sound ====================================================== (Available as of version 1.74.00; Advanced features available as of 1.77.00) Overview -------- **AudioCapture()** allows easy audio recording and saving of arbitrary sounds to a file (wav format). AudioCapture will likely be replaced entirely by AdvAudioCapture in the near future. **AdvAudioCapture()** can do everything AudioCapture does, and also allows onset-marker sound insertion and detection, loudness computation (RMS audio "power"), and lossless file compression (flac). The Builder microphone component now uses AdvAudioCapture by default. **Speech2Text()** provides speech recognition (courtesy of google), with about 1-2 seconds latency for a 2 sec voice recording. Note that the sound files are sent to google over the internet. Intended for within-experiment processing (near real-time, 1-2s delayed), in which priority is given to keeping an experiment session moving along, even if that means skipping a slow response once in a while. See coder demo > input > `speech_recognition.py`. Eventually, other features are planned, including: **speech onset detection** (to automatically estimate vocal RT for a given speech sample), and **interactive visual inspection** of sound waveform, with playback and manual onset determination (= the "gold standard" for RT). Audio Capture ------------- .. autofunction:: psychopy.microphone.switchOn .. autoclass:: psychopy.microphone.AdvAudioCapture :members: :undoc-members: :inherited-members: Speech recognition ------------------ .. autoclass:: psychopy.microphone.Speech2Text :members: :undoc-members: :inherited-members: .. autoclass:: psychopy.microphone.BatchSpeech2Text :members: :undoc-members: Misc ---- PsychoPy provides lossless compression using FLAC codec. (This requires that `flac` is installed on your computer. It is not included with PsychoPy by default, but you can download for free from http://xiph.org/flac/ ). Functions for file-oriented Discrete Fourier Transform and RMS computation are also provided. .. autofunction:: psychopy.microphone.wav2flac .. autofunction:: psychopy.microphone.flac2wav .. autofunction:: psychopy.microphone.getDft .. autofunction:: psychopy.microphone.getRMS psychopy-1.82.02.dfsg/docs/source/api/misc.rst000066400000000000000000000042601257562125200211630ustar00rootroot00000000000000:mod:`psychopy.misc` - miscellaneous routines for converting units etc ========================================================================= .. automodule:: psychopy.misc `psychopy.misc` has gradually grown very large and the underlying code for its functions are distributed in multiple files. You can still (at least for now) import the functions here using `from psychopy import misc` but you can also import them from the `tools` sub-modules. From :mod:`psychopy.tools.filetools` ------------------------------------------------------------ .. currentmodule:: psychopy.tools.filetools .. autosummary:: toFile fromFile mergeFolder From :mod:`psychopy.tools.colorspacetools` ------------------------------------------------------------ .. currentmodule:: psychopy.tools.colorspacetools .. autosummary:: dkl2rgb dklCart2rgb rgb2dklCart hsv2rgb lms2rgb rgb2lms dkl2rgb From :mod:`psychopy.tools.coordinatetools` ------------------------------------------------------------ .. currentmodule:: psychopy.tools.coordinatetools .. autosummary:: cart2pol cart2sph pol2cart sph2cart From :mod:`psychopy.tools.monitorunittools` ------------------------------------------------------------ .. currentmodule:: psychopy.tools.monitorunittools .. autosummary:: convertToPix cm2pix cm2deg deg2cm deg2pix pix2cm pix2deg From :mod:`psychopy.tools.imagetools` ------------------------------------------------------------ .. currentmodule:: psychopy.tools.imagetools .. autosummary:: array2image image2array makeImageAuto From :mod:`psychopy.tools.plottools` ------------------------------------------------------------ .. currentmodule:: psychopy.tools.plottools .. autosummary:: plotFrameIntervals From :mod:`psychopy.tools.typetools` ------------------------------------------------------------ .. currentmodule:: psychopy.tools.typetools .. autosummary:: float_uint8 uint8_float float_uint16 From :mod:`psychopy.tools.unittools` ------------------------------------------------------------ .. currentmodule:: psychopy.tools.unittools .. autosummary:: radians degrees psychopy-1.82.02.dfsg/docs/source/api/monitors.rst000066400000000000000000000036241257562125200221050ustar00rootroot00000000000000:mod:`psychopy.monitors` - for those that don't like Monitor Center ====================================================================== Most users won't need to use the code here. In general the Monitor Centre interface is sufficient and monitors setup that way can be passed as strings to :class:`~psychopy.visual.Window` s. If there is some aspect of the normal calibration that you wish to override. eg:: from psychopy import visual, monitors mon = monitors.Monitor('SonyG55')#fetch the most recent calib for this monitor mon.setDistance(114)#further away than normal? win = visual.Window(size=[1024,768], monitor=mon) You might also want to fetch the :class:`~psychopy.monitors.Photometer` class for conducting your own calibrations :class:`Monitor` ------------------------------------ .. autoclass:: psychopy.monitors.Monitor :members: :undoc-members: -------- :class:`GammaCalculator` ------------------------------------ .. autoclass:: psychopy.monitors.GammaCalculator :members: :undoc-members: -------- :func:`getAllMonitors` ------------------------------------ .. autofunction:: psychopy.monitors.getAllMonitors :func:`findPR650` ------------------------------------ .. autofunction:: psychopy.monitors.findPR650 :func:`getLumSeriesPR650` ------------------------------------ .. autofunction:: psychopy.monitors.getLumSeriesPR650 :func:`getRGBspectra` ------------------------------------ .. autofunction:: psychopy.monitors.getRGBspectra :func:`gammaFun` ------------------------------------ .. autofunction:: psychopy.monitors.gammaFun :func:`gammaInvFun` ------------------------------------ .. autofunction:: psychopy.monitors.gammaInvFun :func:`makeDKL2RGB` ------------------------------------ .. autofunction:: psychopy.monitors.makeDKL2RGB :func:`makeLMS2RGB` ------------------------------------ .. autofunction:: psychopy.monitors.makeLMS2RGB psychopy-1.82.02.dfsg/docs/source/api/parallel.rst000066400000000000000000000011011257562125200220130ustar00rootroot00000000000000.. _parallel: :mod:`psychopy.parallel` - functions for interacting with the parallel port ================================================================================= .. automodule:: psychopy.parallel :members: ParallelPort Legacy functions ~~~~~~~~~~~~~~~~~~~~ We would strongly recommend you use the class above instead: these are provided for backwards compatibility only. .. automethod:: psychopy.parallel.setPortAddress .. automethod:: psychopy.parallel.setData .. automethod:: psychopy.parallel.setPin .. automethod:: psychopy.parallel.readPinpsychopy-1.82.02.dfsg/docs/source/api/serial.rst000066400000000000000000000015741257562125200215140ustar00rootroot00000000000000:mod:`psychopy.serial` - functions for interacting with the serial port ================================================================================= PsychoPy is compatible with Chris Liechti's `pyserial `_ package. You can use it like this:: import serial ser = serial.Serial(0, 19200, timeout=1) # open first serial port #ser = serial.Serial('/dev/ttyS1', 19200, timeout=1)#or something like this for Mac/Linux machines ser.write('someCommand') line = ser.readline() # read a '\n' terminated line ser.close() Ports are fully configurable with all the options you would expect of RS232 communications. See http://pyserial.sourceforge.net for further details and documentation. pyserial is packaged in the Standalone (Windows and Mac distributions), for manual installations you should install this yourself. psychopy-1.82.02.dfsg/docs/source/api/sound.rst000066400000000000000000000017441257562125200213640ustar00rootroot00000000000000:mod:`psychopy.sound` - play various forms of sound ============================================================================== .. module:: psychopy.sound :class:`Sound` ------------------- PsychoPy currently supports a choice of two sound libraries: pyo, or pygame. Select which will be used via the `audioLib` preference. `sound.Sound()` will then refer to either `SoundPyo` or `SoundPygame`. This can be set on a per-experiment basis by importing preferences, and setting the audioLib preference to use. It is important to use `sound.Sound()` in order for proper initialization of the relevant sound library. Do not use `sound.SoundPyo` or `sound.SoundPygame` directly. Because they offer slightly different features, the differences between pyo and pygame sounds are described here. Pygame sound is more thoroughly tested, whereas pyo offers lower latency and more features. .. autoclass:: psychopy.sound.SoundPyo :members: .. autoclass:: psychopy.sound.SoundPygame :members: psychopy-1.82.02.dfsg/docs/source/api/tools.rst000066400000000000000000000003311257562125200213630ustar00rootroot00000000000000:mod:`psychopy.tools` - miscellaneous tools ============================================================================== .. automodule:: psychopy.tools .. toctree:: :maxdepth: 1 :glob: tools/* psychopy-1.82.02.dfsg/docs/source/api/tools/000077500000000000000000000000001257562125200206345ustar00rootroot00000000000000psychopy-1.82.02.dfsg/docs/source/api/tools/colorspacetools.rst000066400000000000000000000010241257562125200245760ustar00rootroot00000000000000 :mod:`psychopy.tools.colorspacetools` ---------------------------------------- .. automodule:: psychopy.tools.colorspacetools .. currentmodule:: psychopy.tools.colorspacetools .. autosummary:: dkl2rgb dklCart2rgb rgb2dklCart hsv2rgb lms2rgb rgb2lms dkl2rgb Function details ~~~~~~~~~~~~~~~~~~~~~~~ .. autofunction:: dkl2rgb .. autofunction:: dklCart2rgb .. autofunction:: rgb2dklCart .. autofunction:: hsv2rgb .. autofunction:: lms2rgb .. autofunction:: rgb2lms .. autofunction:: dkl2rgb psychopy-1.82.02.dfsg/docs/source/api/tools/coordinatetools.rst000066400000000000000000000006311257562125200245760ustar00rootroot00000000000000 :mod:`psychopy.tools.coordinatetools` ------------------------------------ .. automodule:: psychopy.tools.coordinatetools .. currentmodule:: psychopy.tools.coordinatetools .. autosummary:: cart2pol cart2sph pol2cart sph2cart Function details ~~~~~~~~~~~~~~~~~~~~~~~ .. autofunction:: cart2pol .. autofunction:: cart2sph .. autofunction:: pol2cart .. autofunction:: sph2cart psychopy-1.82.02.dfsg/docs/source/api/tools/filetools.rst000066400000000000000000000004611257562125200233670ustar00rootroot00000000000000:mod:`psychopy.tools.filetools` ------------------------------------ .. automodule:: psychopy.tools.filetools .. currentmodule:: psychopy.tools.filetools .. autofunction:: toFile .. autofunction:: fromFile .. autofunction:: mergeFolder .. autofunction:: openOutputFile .. autofunction:: genDelimiter psychopy-1.82.02.dfsg/docs/source/api/tools/imagetools.rst000066400000000000000000000005661257562125200235400ustar00rootroot00000000000000 :mod:`psychopy.tools.imagetools` ------------------------------------ .. automodule:: psychopy.tools.imagetools .. currentmodule:: psychopy.tools.imagetools .. autosummary:: array2image image2array makeImageAuto Function details ~~~~~~~~~~~~~~~~~~~~~~~ .. autofunction:: array2image .. autofunction:: image2array .. autofunction:: makeImageAutopsychopy-1.82.02.dfsg/docs/source/api/tools/monitorunittools.rst000066400000000000000000000010361257562125200250360ustar00rootroot00000000000000:mod:`psychopy.tools.monitorunittools` ------------------------------------------------------------ .. automodule:: psychopy.tools.monitorunittools .. currentmodule:: psychopy.tools.monitorunittools .. autosummary:: convertToPix cm2deg cm2pix deg2cm deg2pix pix2cm pix2deg Function details ~~~~~~~~~~~~~~~~~~~~~~~ .. autofunction:: convertToPix .. autofunction:: cm2deg .. autofunction:: cm2pix .. autofunction:: deg2cm .. autofunction:: deg2pix .. autofunction:: pix2cm .. autofunction:: pix2deg psychopy-1.82.02.dfsg/docs/source/api/tools/plottools.rst000066400000000000000000000003051257562125200234230ustar00rootroot00000000000000 :mod:`psychopy.tools.plottools` ------------------------------------ .. automodule:: psychopy.tools.plottools .. currentmodule:: psychopy.tools.plottools .. autofunction:: plotFrameIntervals psychopy-1.82.02.dfsg/docs/source/api/tools/typetools.rst000066400000000000000000000003741257562125200234340ustar00rootroot00000000000000 :mod:`psychopy.tools.typetools` ------------------------------------ .. automodule:: psychopy.tools.typetools .. currentmodule:: psychopy.tools.typetools .. autofunction:: float_uint8 .. autofunction:: uint8_float .. autofunction:: float_uint16 psychopy-1.82.02.dfsg/docs/source/api/tools/unittools.rst000066400000000000000000000003251257562125200234260ustar00rootroot00000000000000 :mod:`psychopy.tools.unittools` ------------------------------------ .. automodule:: psychopy.tools.unittools .. currentmodule:: psychopy.tools.unittools .. autofunction:: radians .. autofunction:: degrees psychopy-1.82.02.dfsg/docs/source/api/visual.rst000066400000000000000000000026111257562125200215310ustar00rootroot00000000000000:mod:`psychopy.visual` - many visual stimuli ============================================================================== :class:`.Window` to display all stimuli below. .. toctree:: :hidden: :glob: visual/* Commonly used: * :class:`.ImageStim` to show images * :class:`.TextStim` to show texts Shapes (all special classes of :class:`ShapeStim`): * :class:`.ShapeStim` to draw shapes with arbitrary numbers of vertices * :class:`.Rect` to show rectangles * :class:`.Circle` to show circles * :class:`.Polygon` to show polygons * :class:`.Line` to show a line Images and patterns: * :class:`.ImageStim` to show images * :class:`.SimpleImageStim` to show images without bells and whistles * :class:`.GratingStim` to show gratings * :class:`.RadialStim` to show annulus, a rotating wedge, a checkerboard etc Multiple stimuli: * :class:`.ElementArrayStim` to show many stimuli of the same type * :class:`.DotStim` to show and control movement of dots Other stimuli: * :class:`.MovieStim` to show movies * :class:`.RatingScale` to collect ratings * :class:`.CustomMouse` to change the cursor in windows with GUI. OBS: will be depricated soon General purpose (applies to other stimuli): * :class:`.BufferImageStim` to make a faster-to-show "screenshot" of other stimuli * :class:`.Aperture` to restrict visibility area of other stimuli See also :ref:`visualhelperfunctions` psychopy-1.82.02.dfsg/docs/source/api/visual/000077500000000000000000000000001257562125200207775ustar00rootroot00000000000000psychopy-1.82.02.dfsg/docs/source/api/visual/aperture.rst000066400000000000000000000002421257562125200233560ustar00rootroot00000000000000 :class:`Aperture` ------------------------------------ .. autoclass:: psychopy.visual.Aperture :members: :undoc-members: :inherited-members: psychopy-1.82.02.dfsg/docs/source/api/visual/bufferimagestim.rst000066400000000000000000000014741257562125200247100ustar00rootroot00000000000000 :class:`BufferImageStim` ------------------------------------------------------------------------ Attributes ============= .. currentmodule:: psychopy.visual .. autosummary:: BufferImageStim BufferImageStim.win BufferImageStim.buffer BufferImageStim.rect BufferImageStim.stim BufferImageStim.mask BufferImageStim.units BufferImageStim.sf BufferImageStim.pos BufferImageStim.ori BufferImageStim.size BufferImageStim.contrast BufferImageStim.color BufferImageStim.colorSpace BufferImageStim.opacity BufferImageStim.interpolate BufferImageStim.name BufferImageStim.autoLog BufferImageStim.draw BufferImageStim.autoDraw Details ============= .. autoclass:: BufferImageStim :members: :undoc-members: :inherited-members:psychopy-1.82.02.dfsg/docs/source/api/visual/circle.rst000066400000000000000000000002371257562125200227740ustar00rootroot00000000000000 :class:`Circle` ------------------------------------ .. autoclass:: psychopy.visual.Circle :members: :undoc-members: :inherited-members: psychopy-1.82.02.dfsg/docs/source/api/visual/custommouse.rst000066400000000000000000000002511257562125200241120ustar00rootroot00000000000000 :class:`CustomMouse` ------------------------------------ .. autoclass:: psychopy.visual.CustomMouse :members: :undoc-members: :inherited-members: psychopy-1.82.02.dfsg/docs/source/api/visual/dotstim.rst000066400000000000000000000003341257562125200232140ustar00rootroot00000000000000 :class:`DotStim` ------------------------------------ .. autoclass:: psychopy.visual.DotStim :members: :undoc-members: :inherited-members: :exclude-members: setContr, setDKL, setLMS, setRGB, set, setPospsychopy-1.82.02.dfsg/docs/source/api/visual/elementarraystim.rst000066400000000000000000000002541257562125200251170ustar00rootroot00000000000000 :class:`ElementArrayStim` ------------------------------------ .. autoclass:: psychopy.visual.ElementArrayStim :members: :undoc-members: :inherited-members: psychopy-1.82.02.dfsg/docs/source/api/visual/gratingstim.rst000066400000000000000000000013161257562125200240620ustar00rootroot00000000000000 :class:`GratingStim` ------------------------------------------------------------------------ Attributes ============= .. currentmodule:: psychopy.visual .. autosummary:: GratingStim GratingStim.win GratingStim.tex GratingStim.mask GratingStim.units GratingStim.sf GratingStim.pos GratingStim.ori GratingStim.size GratingStim.contrast GratingStim.color GratingStim.colorSpace GratingStim.opacity GratingStim.interpolate GratingStim.texRes GratingStim.name GratingStim.autoLog GratingStim.draw GratingStim.autoDraw Details ============= .. autoclass:: GratingStim :members: :undoc-members: :inherited-members:psychopy-1.82.02.dfsg/docs/source/api/visual/helperfunctions.rst000066400000000000000000000003761257562125200247470ustar00rootroot00000000000000 .. _visualhelperfunctions: Helper functions ------------------------------------ .. autofunction:: psychopy.visual.helpers.pointInPolygon .. autofunction:: psychopy.visual.helpers.polygonsOverlap .. autofunction:: psychopy.visual.helpers.groupFlipVert psychopy-1.82.02.dfsg/docs/source/api/visual/imagestim.rst000066400000000000000000000016401257562125200235110ustar00rootroot00000000000000 :class:`ImageStim` ------------------------------------------------------------------------ As of PsychoPy version 1.79.00 *some* of the properties for this stimulus can be set using the syntax:: stim.pos = newPos others need to be set with the older syntax:: stim.setImage(newImage) Attributes ============= .. currentmodule:: psychopy.visual .. autosummary:: ImageStim ImageStim.win ImageStim.setImage ImageStim.setMask ImageStim.units ImageStim.pos ImageStim.ori ImageStim.size ImageStim.contrast ImageStim.color ImageStim.colorSpace ImageStim.opacity ImageStim.interpolate ImageStim.contains ImageStim.overlaps ImageStim.name ImageStim.autoLog ImageStim.draw ImageStim.autoDraw ImageStim.clearTextures Details ============= .. autoclass:: ImageStim :members: :undoc-members: :inherited-members:psychopy-1.82.02.dfsg/docs/source/api/visual/line.rst000066400000000000000000000002331257562125200224560ustar00rootroot00000000000000 :class:`Line` ------------------------------------ .. autoclass:: psychopy.visual.Line :members: :undoc-members: :inherited-members: psychopy-1.82.02.dfsg/docs/source/api/visual/moviestim.rst000066400000000000000000000012541257562125200235470ustar00rootroot00000000000000 :class:`MovieStim` ------------------------------------------------------------------------ Attributes ============= .. currentmodule:: psychopy.visual .. autosummary:: MovieStim MovieStim.win MovieStim.mask MovieStim.units MovieStim.pos MovieStim.ori MovieStim.size MovieStim.opacity MovieStim.name MovieStim.autoLog MovieStim.draw MovieStim.autoDraw MovieStim.loadMovie MovieStim.play MovieStim.seek MovieStim.pause MovieStim.stop MovieStim.setFlipHoriz MovieStim.setFlipVert Details ============= .. autoclass:: MovieStim :members: :undoc-members: :inherited-members: psychopy-1.82.02.dfsg/docs/source/api/visual/patchstim.rst000066400000000000000000000003211257562125200235210ustar00rootroot00000000000000 :class:`PatchStim` (deprecated) ------------------------------------------------------------------------ .. autoclass:: psychopy.visual.PatchStim :members: :undoc-members: :inherited-members: psychopy-1.82.02.dfsg/docs/source/api/visual/polygon.rst000066400000000000000000000002411257562125200232150ustar00rootroot00000000000000 :class:`Polygon` ------------------------------------ .. autoclass:: psychopy.visual.Polygon :members: :undoc-members: :inherited-members: psychopy-1.82.02.dfsg/docs/source/api/visual/radialstim.rst000066400000000000000000000014521257562125200236640ustar00rootroot00000000000000 :class:`RadialStim` ------------------------------------------------------------------------ Attributes ============= .. currentmodule:: psychopy.visual .. autosummary:: RadialStim RadialStim.win RadialStim.tex RadialStim.mask RadialStim.units RadialStim.pos RadialStim.ori RadialStim.size RadialStim.contrast RadialStim.color RadialStim.colorSpace RadialStim.opacity RadialStim.interpolate RadialStim.setAngularCycles RadialStim.setAngularPhase RadialStim.setRadialCycles RadialStim.setRadialPhase RadialStim.name RadialStim.autoLog RadialStim.draw RadialStim.autoDraw RadialStim.clearTextures Details ============= .. autoclass:: RadialStim :members: :undoc-members: :inherited-members:psychopy-1.82.02.dfsg/docs/source/api/visual/ratingscale.rst000066400000000000000000000002401257562125200240210ustar00rootroot00000000000000 :class:`RatingScale` ------------------------------------ .. autoclass:: psychopy.visual.RatingScale :members: :undoc-members: :inherited-members: psychopy-1.82.02.dfsg/docs/source/api/visual/rect.rst000066400000000000000000000002331257562125200224640ustar00rootroot00000000000000 :class:`Rect` ------------------------------------ .. autoclass:: psychopy.visual.Rect :members: :undoc-members: :inherited-members: psychopy-1.82.02.dfsg/docs/source/api/visual/shapestim.rst000066400000000000000000000013061257562125200235260ustar00rootroot00000000000000 :class:`ShapeStim` ------------------------------------------------------------------------ Attributes ============= .. currentmodule:: psychopy.visual .. autosummary:: ShapeStim ShapeStim.win ShapeStim.units ShapeStim.vertices ShapeStim.closeShape ShapeStim.pos ShapeStim.ori ShapeStim.size ShapeStim.contrast ShapeStim.lineColor ShapeStim.lineColorSpace ShapeStim.fillColor ShapeStim.fillColorSpace ShapeStim.opacity ShapeStim.interpolate ShapeStim.name ShapeStim.autoLog ShapeStim.draw ShapeStim.autoDraw Details ============= .. autoclass:: ShapeStim :members: :undoc-members: :inherited-members:psychopy-1.82.02.dfsg/docs/source/api/visual/simpleimagestim.rst000066400000000000000000000003211257562125200247160ustar00rootroot00000000000000 :class:`SimpleImageStim` ------------------------------------------------------------------------ .. autoclass:: psychopy.visual.SimpleImageStim :members: :undoc-members: :inherited-members: psychopy-1.82.02.dfsg/docs/source/api/visual/textstim.rst000066400000000000000000000002331257562125200234100ustar00rootroot00000000000000 :class:`TextStim` ------------------------------------ .. autoclass:: psychopy.visual.TextStim :members: :undoc-members: :inherited-members: psychopy-1.82.02.dfsg/docs/source/api/visual/window.rst000066400000000000000000000003161257562125200230400ustar00rootroot00000000000000 :class:`Window` ------------------------------------ .. autoclass:: psychopy.visual.Window :members: :undoc-members: :exclude-members: go, whenIdle, onResize, fullScr, update, multiFlip psychopy-1.82.02.dfsg/docs/source/api/visual/windowframepack.rst000066400000000000000000000006511257562125200247140ustar00rootroot00000000000000:mod:`psychopy.visual.windowframepack` - Pack multiple monochrome images into RGB frame =========================================================================================== .. automodule:: psychopy.visual.windowframepack :class:`ProjectorFramePacker` ------------------------------------ .. autoclass:: psychopy.visual.windowframepack.ProjectorFramePacker :members: :undoc-members: endOfFlip, startOfFlip psychopy-1.82.02.dfsg/docs/source/api/visual/windowwarp.rst000066400000000000000000000006011257562125200237270ustar00rootroot00000000000000:mod:`psychopy.visual.windowwarp` - warping to spherical, cylindrical, or other projections =========================================================================================== .. automodule:: psychopy.visual.windowwarp :class:`Warper` ------------------------------------ .. autoclass:: psychopy.visual.windowwarp.Warper :members: changeProjection :undoc-members: psychopy-1.82.02.dfsg/docs/source/api/web.rst000066400000000000000000000006101257562125200210000ustar00rootroot00000000000000:mod:`psychopy.web` - Web methods ========================================= Test for access --------------- .. autofunction:: psychopy.web.haveInternetAccess .. autofunction:: psychopy.web.requireInternetAccess Upload a file over http ----------------------- .. autofunction:: psychopy.web.upload Proxy set-up and testing ------------------------ .. autofunction:: psychopy.web.setupProxy psychopy-1.82.02.dfsg/docs/source/builder/000077500000000000000000000000001257562125200203515ustar00rootroot00000000000000psychopy-1.82.02.dfsg/docs/source/builder/builder.rst000066400000000000000000000043721257562125200225370ustar00rootroot00000000000000.. _builder: Builder ================================================ *Building experiments in a GUI* You can now see a `youtube PsychoPy tutorial `_ showing you how to build a simple experiment in the Builder interface .. note:: The Builder view is now (at version 1.75) fairly well-developed and should be able to construct a wide variety of studies. But you should still check carefully that the stimuli and response collection are as expected. .. image:: ../images/builder_sm.png :width: 100% :target: ../images/builder.png :alt: The Builder view Contents: .. toctree:: :maxdepth: 2 :glob: concepts routines flow components settings startStop outputs gotchas compileScript * Future developments ----------------------- The builder view still has a few rough edges, but is hopefully fairly usable. Here are some of the ways I hope it will improve: * More components. Several of the stimuli and events that PsychoPy can handle don't currently show up as components in the builder view, but they can be added easily (take a look inside the components directory to see how easy it is to create a component). * Dialogue entry validation. Dialogue boxes currently allow you to type almost anything into their windows. The only current checking is that a name is given to the component and that this is unique. More checking is needed to reduce errors. * Similar to the above, I hope to add suggested entries to go into dialogs, as a form of help. e.g. on right-clicking an entry box, say for stimulus orientation, a context menu should appear with ideas including numeric values, known local variables (e.g. "thisTrial.rgb", based on the existing loops in the :doc:`Flow `) and global variable ideas (e.g. "frameN*360") * Better code output. I hope that the builder output code will illustrate best practice for precise timing and stimulus presentation (it will probably always take more lines than a man-made script, but it should be at least as precise). At the moment that isn't the case. e.g. The builder should strongly recommend an interval between trials where only static stimuli are drawn (e.g. fixation) and update components for this trial in that interval. psychopy-1.82.02.dfsg/docs/source/builder/builderMonitors.rst000066400000000000000000000015541257562125200242710ustar00rootroot00000000000000.. _builderMonitors: Set up your monitor properly -------------------------------- It's a really good idea to tell PsychoPy about the set up of your monitor, especially the size in cm and pixels and its distance, so that PsychoPy can present your stimuli in units that will be consistent in another lab with a different set up (e.g. cm or degrees of visual angle). You should do this in :ref:`monitorCenter` which can be opened from Builder by clicking on the icon that shows two monitors. In :ref:`monitorCenter` you can create settings for multiple configurations, e.g. different viewing distances or different physical devices and then select the appropriate one by name in your experiments or scripts. Having set up your monitor settings you should then tell PsychoPy which of your monitor setups to use for this experiment by going to the :ref:`expSettings` dialog. psychopy-1.82.02.dfsg/docs/source/builder/commonMistakes/000077500000000000000000000000001257562125200233425ustar00rootroot00000000000000psychopy-1.82.02.dfsg/docs/source/builder/commonMistakes/generalAdvice.rst000066400000000000000000000022251257562125200266260ustar00rootroot00000000000000.. _generalAdvice: General Advice -------------- - Python and therefore PsychoPy is CASE SENSITIVE - To use a dollar sign ($) for anything other than to indicate a code snippet for example in a :ref:`text`, precede it with a backslash ``\$`` (the backslash won't be printed) - Have you entered your the settings for your :ref:`monitor `? If you are using degrees as a unit of measurement and have not entered your monitor settings, the size of stimuli will not be accurate. - If your experiment is not behaving in the way that you expect. Have you looked at the :ref:`log file `? This can point you in the right direction Did you know you can change the type of information that is stored in the log file in preferences by changing the :ref:`logging level `. - Have you tried compiling the script and running it. Does this produce a particular error message that points you at a particular problem area? You can also change things in a more detailed way in the coder view and if you are having problems, reading through the script can highlight problems. Reading a compiled script can also help with the creation of a :ref:`code` psychopy-1.82.02.dfsg/docs/source/builder/commonMistakes/greyScreen.rst000066400000000000000000000005031257562125200262000ustar00rootroot00000000000000.. _greyScreen: My stimulus isn't appearing, there's only the grey background ------------------------------------------------------------- - Have you checked the size of your stimulus? If it is 0.5x0.5 pixels you won't be able to see it! - Have you checked the position of your stimulus? Is it positioned off the screen?psychopy-1.82.02.dfsg/docs/source/builder/commonMistakes/loopFail.rst000066400000000000000000000004161257562125200256420ustar00rootroot00000000000000.. _loopFail: The loop isn't using my Excel spreadsheet ----------------------------------------- - Have you remembered to specify the file you want to use when setting up the loop? - Have you remembered to add the variables proceeded by the $ symbol to your stimuli? psychopy-1.82.02.dfsg/docs/source/builder/commonMistakes/plainSquare.rst000066400000000000000000000003311257562125200263550ustar00rootroot00000000000000.. _plainSquare: I just want a plain square, but it's turning into a grating ----------------------------------------------------------- - If you don't want your stimulus to have a texture, you need Image to be Nonepsychopy-1.82.02.dfsg/docs/source/builder/commonMistakes/snippetFail.rst000066400000000000000000000010541257562125200263520ustar00rootroot00000000000000.. _snippetFail: The code snippet I've entered doesn't do anything ------------------------------------------------- - Have you remembered to put a $ symbol at the beginning (this isn't necessary, and should be avoided in a :ref:`code`)? - A dollar sign as the first character of a line indicates to PsychoPy that the rest of the line is code. It does not indicate a variable name (unlike in perl or php). This means that if you are, for example, using variables to determine position, enter $[x,y]. The temptation is to use [$x,$y], which will not work.psychopy-1.82.02.dfsg/docs/source/builder/commonMistakes/stimChange.rst000066400000000000000000000004011257562125200261510ustar00rootroot00000000000000.. _stimChange: My stimulus isn't changing as I progress through the loop --------------------------------------------------------- - Have you changed the setting for the variable that you want to change to 'change every repeat' (or 'change every frame')?psychopy-1.82.02.dfsg/docs/source/builder/commonMistakes/unicodeError.rst000066400000000000000000000012171257562125200265350ustar00rootroot00000000000000.. _unicodeError: I'm getting the error message AttributeError: 'unicode object has no attribute 'XXXX' ------------------------------------------------------------------------------------- - This type of error is usually caused by a naming conflict. Whilst we have made every attempt to make sure that these conflicts produce a warning message it is possible that they may still occur. - The most common source of naming conflicts in an external file which has been imported to be used in a loop i.e. .xlsx, .csv. - Check to make sure that all of the variable names are unique. There can be no repeated variable names anywhere in your experiment. psychopy-1.82.02.dfsg/docs/source/builder/commonMistakes/windowClose.rst000066400000000000000000000005701257562125200263730ustar00rootroot00000000000000.. _windowClose: The window opens and immediately closes --------------------------------------- - Have you checked all of your variable entries are accepted commands e.g. gauss but not Gauss - If you compile your experiment and run it from the coder window what does the error message say? Does it point you towards a particular variable which may be incorrectly formatted?psychopy-1.82.02.dfsg/docs/source/builder/compileScript.rst000066400000000000000000000006421257562125200237220ustar00rootroot00000000000000.. _compileScript: Compiling a Script ---------------------- If you click the `compile script` icon this will display the script for your experiment in the :ref:`coder` window. This can be used for debugging experiments, entering small amounts of code and learning a bit about writing scripts amongst other things. The code is fully commented and so this can be an excellent introduction to writing your own code.psychopy-1.82.02.dfsg/docs/source/builder/components.rst000066400000000000000000000051351257562125200232740ustar00rootroot00000000000000.. _components: Components ------------------------------- Routines in the Builder contain any number of components, which typically define the parameters of a stimulus or an input/output device. The following components are available, as at version 1.65, but further components will be added in the future including Parallel/Serial ports and other visual stimuli (e.g. GeometricStim). .. toctree:: :maxdepth: 1 :glob: components/* Entering parameters ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Most of the entry boxes for Component parameters simply receive text or numeric values or lists (sequences of values surrounded by square brackets) as input. In addition, the user can insert variables and code into most of these, which will be interpreted either at the beginning of the experiment or at regular intervals within it. To indicate to PsychoPy that the value represents a variable or python code, rather than literal text, it should be preceded by a `$`. For example, inserting `intensity` into the text field of the Text Component will cause that word literally to be presented, whereas `$intensity` will cause python to search for the variable called intensity in the script. Variables associated with :ref:`loops` can also be entered in this way (see :ref:`accessingParams` for further details). But it can also be used to evaluate arbitrary python code. For example: * $random(2) will generate a pair of random numbers * $"yn"[randint(2)] will randomly choose the first or second character (y or n) * $globalClock.getTime() will insert the current time in secs of the globalClock object * $[sin(angle), cos(angle)] will insert the sin and cos of an angle (e.g. into the x,y coords of a stimulus) How often to evaluate the variable/code ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If you do want the parameters of a stimulus to be evaluated by code in this way you need also to decide how often it should be updated. By default, the parameters of Components are set to be `constant`; the parameter will be set at the beginning of the experiment and will remain that way for the duration. Alternatively, they can be set to change either on `every repeat` in which case the parameter will be set at the beginning of the Routine on each repeat of it. Lastly many parameters can even be set `on every frame`, allowing them to change constantly on every refresh of the screen. .. _Python: http://www.python.org .. _numpy.random.rand(): http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.rand.html#numpy.random.rand .. _numpy: http://numpy.scipy.org/ psychopy-1.82.02.dfsg/docs/source/builder/components/000077500000000000000000000000001257562125200225365ustar00rootroot00000000000000psychopy-1.82.02.dfsg/docs/source/builder/components/aperture.rst000066400000000000000000000020511257562125200251150ustar00rootroot00000000000000.. _aperture: Aperture Component ------------------------------- This component can be used to filter the visual display, as if the subject is looking at it through an opening. Currently only circular apertures are supported. Moreover, only one aperture is enabled at a time. You can't "double up": a second aperture takes precedence. name : string Everything in a PsychoPy experiment needs a unique name. The name should contain only letters, numbers and underscores (no punctuation marks or spaces). start : float or integer The time that the aperture should start having its effect. See :ref:`startStop` for details. stop : When the aperture stops having its effect. See :ref:`startStop` for details. pos : [X,Y] The position of the centre of the aperture, in the units specified by the stimulus or window. size : integer The size controls how big the aperture will be, in pixels, default = 120 units : pix What units to use (currently only pix). .. seealso:: API reference for :class:`~psychopy.visual.Aperture` psychopy-1.82.02.dfsg/docs/source/builder/components/cedrusResponseBox.rst000066400000000000000000000037621257562125200267550ustar00rootroot00000000000000.. _cedrusButtonBox: Cedrus Button Box Component --------------------------------- This component allows you to connect to a Cedrus Button Box to collect key presses. *Note that there is a limitation currently that a button box can only be used in a single Routine. Otherwise PsychoPy tries to initialise it twice which raises an error.* As a workaround, you need to insert the start-routine and each-frame code from the button box into a code component for a second routine. Properties ~~~~~~~~~~~ Name : string Everything in a PsychoPy experiment needs a unique name. The name should contain only letters, numbers and underscores (no punctuation marks or spaces). Start : The time that the button box is first read. See :ref:`startStop` for details. Stop : Governs the duration for which the button box is first read. See :ref:`startStop` for details. Force end of Routine : true/false If this is checked, the first response will end the routine. Allowed keys : None, or an integer, list, or tuple of integers 0-7 This field lets you specify which buttons (None, or some or all of 0 through 7) to listen to. Store : (choice of: first, last, all, nothing) Which button events to save in the data file. Events and the response times are saved, with RT being recorded by the button box (not by PsychoPy). Store correct : true/false If selected, a correctness value will be saved in the data file, based on a match with the given correct answer. Correct answer: button The correct answer, used by Store correct. Discard previous : true/false If selected, any previous responses will be ignored (typically this is what you want). Advanced +++++++++++++ Device number: integer This is only needed if you have multiple Cedrus devices connected and you need to specify which to use. Use box timer : true/false Set this to True to use the button box timer for timing information (may give better time resolution) .. seealso:: API reference for :class:`~psychopy.hardware.iolab` psychopy-1.82.02.dfsg/docs/source/builder/components/code.rst000066400000000000000000000206541257562125200242110ustar00rootroot00000000000000.. _code: Code Component ------------------------------- The `Code Component` can be used to insert short pieces of python code into your experiments. This might be create a variable that you want for another :ref:`Component `, to manipulate images before displaying them, to interact with hardware for which there isn't yet a pre-packaged component in `PsychoPy` (e.g. writing code to interact with the serial/parallel ports). See `code uses`_ below. Be aware that the code for each of the components in your :ref:`Routine ` are executed in the order they appear on the :ref:`Routine ` display (from top to bottom). If you want your `Code Component` to alter a variable to be used by another component immediately, then it needs to be above that component in the view. You may want the code not to take effect until next frame however, in which case put it at the bottom of the :ref:`Routine `. You can move `Components` up and down the :ref:`Routine ` by right-clicking on their icons. Within your code you can use other variables and modules from the script. For example, all routines have a stopwatch-style :class:`~psychopy.core.Clock` associated with them, which gets reset at the beginning of that repeat of the routine. So if you have a :ref:`Routine ` called trial, there will be a :class:`~psychopy.core.Clock` called trialClock and so you can get the time (in sec) from the beginning of the trial by using:: currentT = trialClock.getTime() To see what other variables you might want to use, and also what terms you need to avoid in your chunks of code, :ref:`compile your script ` before inserting the code object and take a look at the contents of that script. Note that this page is concerned with `Code Components` specifically, and not all cases in which you might use python syntax within the Builder. It is also possible to put code into a non-code input field (such as the duration or text of a `Text Component`). The syntax there is slightly different (requiring a `$` to trigger the special handling, or `\\$` to avoid triggering special handling). The syntax to use within a Code Component is always regular python syntax. Parameters ~~~~~~~~~~~~~~ The parameters of the `Code Component` simply specify the code that will get executed at 5 different points within the experiment. You can use as many or as few of these as you need for any `Code Component`: Begin Experiment: Things that need to be done just once, like importing a supporting module, initialising a variable for later use. Begin Routine: Certain things might need to be done just once at the start of a :ref:`Routine ` e.g. at the beginning of each trial you might decide which side a stimulus will appear Each Frame: Things that need to updated constantly, throughout the experiment. Note that these will be executed exactly once per video frame (on the order of every 10ms), to give dynamic displays. Static displays do not need to be updated every frame. End Routine: At the end of the :ref:`Routine ` (e.g. the trial) you may need to do additional things, like checking if the participant got the right answer End Experiment: Use this for things like saving data to disk, presenting a graph(?), or resetting hardware to its original state. .. _code uses: Example code uses ~~~~~~~~~~~~~~~~~~~~~~~ 1. Set a random location for your target stimulus ==================================================== There are many ways to do this, but you could add the following to the `Begin Routine` section of a `Code Component` at the top of your :ref:`Routine `. Then set your stimulus position to be `$targetPos` and set the correct answer field of a :ref:`keyboard` to be `$corrAns` (set both of these to update on every repeat of the Routine).:: if random()>0.5: targetPos=[-2.0, 0.0]#on the left corrAns='left' else: targetPos=[+2.0, 0.0]#on the right corrAns='right' 2. Create a patch of noise ==================================================== As with the above there are many different ways to create noise, but a simple method would be to add the following to the `Begin Routine` section of a `Code Component` at the top of your :ref:`Routine `. Then set the image as `$noiseTexture`.:: noiseTexture = random.rand(128,128)*2.0-1 3. Send a feedback message at the end of the experiment ================================================================= Create a `Code Component` with this in the `Begin Experiment` field:: expClock = core.Clock() and with this in the `End Experiment` field:: print "Thanks for participating - that took %.2f minutes in total" %(expClock.getTime()/60.0) (or you could create a Text Component with that as contents rather than printing it). 4. End a loop early. ==================================================== Code components can also be used to control the end of a loop. See examples in `Recipes:builderTerminateLoops`. What variables are available to use? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The most complete way to find this out for your particular script is to :ref:`compile it ` and take a look at what's in there. Below are some options that appear in nearly all scripts. Remember that those variables are Python objects and can have attributes of their own. You can find out about those attributes using:: dir(myObject) Common PsychoPy variables: - expInfo: This is a Python Dictionary containing the information from the starting dialog box. e.g. That generally includes the 'participant' identifier. You can access that in your experiment using `exp['participant']` - t: the current time (in seconds) measured from the start of this Routine - frameN: the number of /completed/ frames since the start of the Routine (=0 in the first frame) - win: the :class:`~psychopy.visual.Window` that the experiment is using Your own variables: - anything you've created in a Code Component is available for the rest of the script. (Sometimes you might need to define it at the beginning of the experiment, so that it will be available throughout.) - the name of any other stimulus or the parameters from your file also exist as variables. - most Components have a `status` attribute, which is useful to determine whether a stimulus has `NOT_STARTED`, `STARTED` or `FINISHED`. For example, to play a tone at the end of a Movie Component (of unknown duration) you could set start of your tone to have the 'condition' :: myMovieName.status==FINISHED Selected contents of `the numpy library and numpy.random `_ are imported by default. The entire numpy library is imported as `np`, so you can use a several hundred maths functions by prepending things with 'np.': - `random() `_ , `randint() `_ , `normal() `_ , `shuffle() `_ options for creating arrays of random numbers. - `sin()`, `cos()`, `tan()`, and `pi`: For geometry and trig. By default angles are in radians, if you want the cosine of an angle specified in degrees use `cos(angle*180/pi)`, or use numpy's conversion functions, `rad2deg(angle)` and `deg2rad(angle)`. - `linspace() `_: Create an array of linearly spaced values. - `log()`, `log10()`: The natural and base-10 log functions, respectively. (It is a lowercase-L in log). - `sum()`, `len()`: For the sum and length of a list or array. To find an average, it is better to use `average()` (due to the potential for integer division issues with `sum()/len()` ). - `average()`, `sqrt()`, `std()`: For average (mean), square root, and standard deviation, respectively. **Note:** Be sure that the numpy standard deviation formula is the one you want! - np.______: Many math-related features are available through the complete numpy libraries, which are available within psychopy builder scripts as 'np.'. For example, you could use `np.hanning(3)` or `np.random.poisson(10, 10)` in a code component. psychopy-1.82.02.dfsg/docs/source/builder/components/dots.rst000066400000000000000000000076071257562125200242530ustar00rootroot00000000000000.. _dots: Dots (RDK) Component ------------------------------- The Dots Component allows you to present a Random Dot Kinematogram (RDK) to the participant of your study. These are fields of dots that drift in different directions and subjects are typically required to identify the 'global motion' of the field. There are many ways to define the motion of the signal and noise dots. In PsychoPy the way the dots are configured follows `Scase, Braddick & Raymond (1996) `_. Although Scase et al (1996) show that the choice of algorithm for your dots actually makes relatively little difference there are some **potential** gotchas. Think carefully about whether each of these will affect your particular case: * **limited dot lifetimes:** as your dots drift in one direction they go off the edge of the stimulus and are replaced randomly in the stimulus field. This could lead to a higher density of dots in the direction of motion providing subjects with an alternative cue to direction. Keeping dot lives relatively short prevents this. * **noiseDots='direction':** some groups have used noise dots that appear in a random location on each frame (noiseDots='location'). This has the disadvantage that the noise dots not only have a random direction but also a random speed (whereas signal dots have a constant speed and constant direction) * **signalDots='same':** on each frame the dots constituting the signal could be the same as on the previous frame or different. If 'different', participants could follow a single dot for a long time and calculate its average direction of motion to get the 'global' direction, because the dots would sometimes take a random direction and sometimes take the signal direction. As a result of these, the defaults for PsychoPy are to have signalDots that are from a 'different' population, noise dots that have random 'direction' and a dot life of 3 frames. Parameters ~~~~~~~~~~~~ name : Everything in a PsychoPy experiment needs a unique name. The name should contain only letters, numbers and underscores (no punctuation marks or spaces). start : The time that the stimulus should first appear. See :ref:`startStop` for details. stop : Governs the duration for which the stimulus is presented. See :ref:`startStop` for details. units : **None**, 'norm', 'cm', 'deg' or 'pix' If None then the current units of the :class:`~psychopy.visual.Window` will be used. See :ref:`units` for explanation of other options. nDots : int number of dots to be generated fieldPos : (x,y) or [x,y] specifying the location of the centre of the stimulus. fieldSize : a single value, specifying the diameter of the field Sizes can be negative and can extend beyond the window. fieldShape : Defines the shape of the field in which the dots appear. For a circular field the nDots represents the `average` number of dots per frame, but on each frame this may vary a little. dotSize Always specified in pixels dotLife : int Number of frames each dot lives for (-1=infinite) dir : float (degrees) Direction of the signal dots speed : float Speed of the dots (in *units* per frame) signalDots : If 'same' then the signal and noise dots are constant. If different then the choice of which is signal and which is noise gets randomised on each frame. This corresponds to Scase et al's (1996) categories of RDK. noiseDots : *'direction'*, 'position' or 'walk' Determines the behaviour of the noise dots, taken directly from Scase et al's (1996) categories. For 'position', noise dots take a random position every frame. For 'direction' noise dots follow a random, but constant direction. For 'walk' noise dots vary their direction every frame, but keep a constant speed. .. seealso:: API reference for :class:`~psychopy.visual.DotStim` psychopy-1.82.02.dfsg/docs/source/builder/components/grating.rst000066400000000000000000000106211257562125200247230ustar00rootroot00000000000000.. _grating: Grating Component ------------------------------- The Grating stimulus allows a texture to be wrapped/cycled in 2 dimensions, optionally in conjunction with a mask (e.g. Gaussian window). The texture can be a bitmap image from a variety of standard file formats, or a synthetic texture such as a sinusoidal grating. The mask can also be derived from either an image, or mathematical form such as a Gaussian. When using gratings, if you want to use the `spatial frequency` setting then create just a single cycle of your texture and allow PsychoPy to handle the repetition of that texture (do not create the cycles you're expecting within the texture). Gratings can have their position, orientation, size and other settings manipulated on a frame-by-frame basis. There is a performance advantage (in terms of milliseconds) to using images which are square and powers of two (32, 64, 128, etc.), however this is slight and would not be noticed in the majority of experiments. Parameters ~~~~~~~~~~~~ Name : string Everything in a PsychoPy experiment needs a unique name. The name should contain only letters, numbers and underscores (no punctuation marks or spaces). Start : The time that the stimulus should first appear. See :ref:`startStop` for details. Stop : Governs the duration for which the stimulus is presented. See :ref:`startStop` for details. Color : See :doc:`../../general/colours` Color space : rgb, dkl or lms See :doc:`../../general/colours` Opacity : 0-1 Can be used to create semi-transparent gratings Orientation : degrees The orientation of the entire patch (texture and mask) in degrees. Position : [X,Y] The position of the centre of the stimulus, in the units specified by the stimulus or window Size : [sizex, sizey] or a single value (applied to x and y) The size of the stimulus in the given units of the stimulus/window. If the mask is a Gaussian then the size refers to width at 3 standard deviations on either side of the mean (i.e. sd=size/6) Units : deg, cm, pix, norm, or inherit from window See :doc:`../../general/units` Advanced Settings +++++++++++++++++++ Texture: a filename, a standard name (sin, sqr) or a variable giving a numpy array This specifies the image that will be used as the *texture* for the visual patch. The image can be repeated on the patch (in either x or y or both) by setting the spatial frequency to be high (or can be stretched so that only a subset of the image appears by setting the spatial frequency to be low). Filenames can be relative or absolute paths and can refer to most image formats (e.g. tif, jpg, bmp, png, etc.). If this is set to none, the patch will be a flat colour. Mask : a filename, a standard name (gauss, circle, raisedCos) or a numpy array of dimensions NxNx1 The mask can define the shape (e.g. circle will make the patch circular) or something which overlays the patch e.g. noise. Interpolate : If `linear` is selected then linear interpolation will be applied when the image is rescaled to the appropriate size for the screen. `Nearest` will use a nearest-neighbour rule. Phase : single float or pair of values [X,Y] The position of the texture within the mask, in both X and Y. If a single value is given it will be applied to both dimensions. The phase has units of cycles (rather than degrees or radians), wrapping at 1. As a result, setting the phase to 0,1,2... is equivalent, causing the texture to be centered on the mask. A phase of 0.25 will cause the image to shift by half a cycle (equivalent to pi radians). The advantage of this is that is if you set the phase according to time it is automatically in Hz. Spatial Frequency : [SFx, SFy] or a single value (applied to x and y) The spatial frequency of the texture on the patch. The units are dependent on the specified units for the stimulus/window; if the units are *deg* then the SF units will be *cycles/deg*, if units are *norm* then the SF units will be cycles per stimulus. If this is set to none then only one cycle will be displayed. Texture Resolution : an integer (power of two) Defines the size of the resolution of the texture for standard textures such as *sin*, *sqr* etc. For most cases a value of 256 pixels will suffice, but if stimuli are going to be very small then a lower resolution will use less memory. .. seealso:: API reference for :class:`~psychopy.visual.GratingStim` psychopy-1.82.02.dfsg/docs/source/builder/components/image.rst000066400000000000000000000062361257562125200243610ustar00rootroot00000000000000.. _image: Image Component ------------------------------- The Image stimulus allows an image to be presented, which can be a bitmap image from a variety of standard file formats, with an optional transparency mask that can effecively control the shape of the image. The mask can also be derived from an image file, or mathematical form such as a Gaussian. **It is a really good idea to get your image in roughly the size (in pixels) that it will appear on screen to save memory. If you leave the resolution at 12 megapixel camera, as taken from your camera, but then present it on a standard screen at 1680x1050 (=1.6 megapixels) then PsychPy and your graphics card have to do an awful lot of unecessary work.** There is a performance advantage (in terms of milliseconds) to using images which are square and powers of two (32, 64, 128, etc.), but this is slight and would not be noticed in the majority of experiments. Images can have their position, orientation, size and other settings manipulated on a frame-by-frame basis. Parameters ~~~~~~~~~~~~ Name : string Everything in a PsychoPy experiment needs a unique name. The name should contain only letters, numbers and underscores (no punctuation marks or spaces). Start : The time that the stimulus should first appear. See :ref:`startStop` for details. Stop : Governs the duration for which the stimulus is presented. See :ref:`startStop` for details. Image : a filename or a standard name (sin, sqr) Filenames can be relative or absolute paths and can refer to most image formats (e.g. tif, jpg, bmp, png, etc.). If this is set to none, the patch will be a flat colour. Position : [X,Y] The position of the centre of the stimulus, in the units specified by the stimulus or window Size : [sizex, sizey] or a single value (applied to x and y) The size of the stimulus in the given units of the stimulus/window. If the mask is a Gaussian then the size refers to width at 3 standard deviations on either side of the mean (i.e. sd=size/6) Set this to be blank to get the image in its native size. Orientation : degrees The orientation of the entire patch (texture and mask) in degrees. Opacity : value from 0 to 1 If opacity is reduced then the underlying images/stimuli will show through Units : deg, cm, pix, norm, or inherit from window See :doc:`../../general/units` Advanced Settings +++++++++++++++++++ Color : Colors can be applied to luminance-only images (not to rgb images) See :doc:`../../general/colours` Color space : to be used if a color is supplied See :doc:`../../general/colours` Mask : a filename, a standard name (gauss, circle, raisedCos) or a numpy array of dimensions NxNx1 The mask can define the shape (e.g. circle will make the patch circular) or something which overlays the patch e.g. noise. Interpolate : If `linear` is selected then linear interpolation will be applied when the image is rescaled to the appropriate size for the screen. `Nearest` will use a nearest-neighbour rule. Texture Resolution: This is only needed if you use a synthetic texture (e.g. sinusoidal grating) as the image. .. seealso:: API reference for :class:`~psychopy.visual.ImageStim` psychopy-1.82.02.dfsg/docs/source/builder/components/ioLabs.rst000066400000000000000000000050641257562125200245060ustar00rootroot00000000000000.. _iolabs: ioLab Systems buttonbox Component --------------------------------- A button box is a hardware device that is used to collect participant responses with high temporal precision, ideally with true ms accuracy. Both the response (which button was pressed) and time taken to make it are returned. The time taken is determined by a clock on the device itself. This is what makes it capable (in theory) of high precision timing. Check the log file to see how long it takes for PsychoPy to reset the button box's internal clock. If this takes a while, then the RT timing values are not likely to be high precision. It might be possible for you to obtain a correction factor for your computer + button box set up, if the timing delay is highly reliable. The ioLabs button box also has a built-in voice-key, but PsychoPy does not have an interface for it. Use a microphone component instead. Properties ~~~~~~~~~~~ name : string Everything in a PsychoPy experiment needs a unique name. The name should contain only letters, numbers and underscores (no punctuation marks or spaces). start : The time that the stimulus should first appear. See :ref:`startStop` for details. stop : The duration for which the stimulus is presented. See :ref:`startStop` for details. Force end of Routine : checkbox If this is checked, the first response will end the routine. Active buttons : None, or an integer, list, or tuple of integers 0-7 The ioLabs box lets you specify a set of active buttons. Responses on non-active buttons are ignored by the box, and never sent to PsychoPy. This field lets you specify which buttons (None, or some or all of 0 through 7). Lights : If selected, the lights above the active buttons will be turned on. Using code components, it is possible to turn on and off specific lights within a trial. See the API for :class:`~psychopy.hardware.iolab`. Store : (choice of: first, last, all, nothing) Which button events to save in the data file. Events and the response times are saved, with RT being recorded by the button box (not by PsychoPy). Store correct : checkbox If selected, a correctness value will be saved in the data file, based on a match with the given correct answer. Correct answer: button The correct answer, used by Store correct. Discard previous : checkbox If selected, any previous responses will be ignored (typically this is what you want). Lights off : checkbox If selected, all lights will be turned off at the end of each routine. .. seealso:: API reference for :class:`~psychopy.hardware.iolab` psychopy-1.82.02.dfsg/docs/source/builder/components/keyboard.rst000066400000000000000000000054141257562125200250740ustar00rootroot00000000000000.. _keyboard: Keyboard Component ------------------------------- The Keyboard component can be used to collect responses from a participant. By not storing the key press and checking the `forceEndTrial` box it can be used simply to end a :ref:`Routine ` Parameters ~~~~~~~~~~~~~~ Name : string Everything in a PsychoPy experiment needs a unique name. The name should contain only letters, numbers and underscores (no punctuation marks or spaces). Start : float or integer The time that the keyboard should first get checked. See :ref:`startStop` for details. Stop : When the keyboard is no longer checked. See :ref:`startStop` for details. Force end routine If this box is checked then the :ref:`Routine ` will end as soon as one of the `allowed` keys is pressed. Allowed keys A list of allowed keys can be specified here, e.g. ['m','z','1','2'], or the name of a variable holding such a list. If this box is left blank then any key that is pressed will be read. Only `allowed keys` count as having been pressed; any other key will not be stored and will not force the end of the Routine. Note that key names (even for number keys) should be given in single quotes, separated by commas. Cursor control keys can be accessed with 'up', 'down', and so on; the space bar is 'space'. To find other special keys, run the Coder Input demo, "what_key.py", press the key, and check the Coder output window. Store Which key press, if any, should be stored; the first to be pressed, the last to be pressed or all that have been pressed. If the key press is to force the end of the trial then this setting is unlikely to be necessary, unless two keys happen to be pressed in the same video frame. The response time will also be stored if a keypress is recorded. This time will be taken from the start of keyboard checking (e.g. if the keyboard was initiated 2 seconds into the trial and a key was pressed 3.2s into the trials the response time will be recorded as 1.2s). Store correct Check this box if you wish to store whether or not this key press was correct. If so then fill in the next box that defines what would constitute a correct answer e.g. left, 1 or `$corrAns` (note this should not be in inverted commas). This is given as Python code that should return True (1) or False (0). Often this correct answer will be defined in the settings of the :ref:`Loops`. Discard previous Check this box to ensure that only key presses that occur during this keyboard checking period are used. If this box is not checked a keyboard press that has occurred before the start of the checking period will be interpreted as the first keyboard press. For most experiments this box should be checked. .. seealso:: API reference for :mod:`~psychopy.event.Mouse` psychopy-1.82.02.dfsg/docs/source/builder/components/microphone.rst000066400000000000000000000033421257562125200254350ustar00rootroot00000000000000.. _microphone: Microphone Component ------------------------------- Please note: This is a new component, and is subject to change. The microphone component provides a way to record sound during an experiment. To do so, specify the starting time relative to the start of the routine (see `start` below) and a stop time (= duration in seconds). A blank duration evaluates to recording for 0.000s. The resulting sound files are saved in .wav format (at 48000 Hz, 16 bit), one file per recording. The files appear in a new folder within the data directory (the subdirectory name ends in `_wav`). The file names include the unix (epoch) time of the onset of the recording with milliseconds, e.g., `mic-1346437545.759.wav`. It is possible to stop a recording that is in progress by using a code component. Every frame, check for a condition (such as key 'q', or a mouse click), and call the `.stop()` method of the microphone component. The recording will end at that point and be saved. For example, if `mic` is the name of your microphone component, then in the code component, do this on **Each frame**:: if event.getKeys(['q']): mic.stop() Parameters ~~~~~~~~~~~~ `name` : string Everything in a PsychoPy experiment needs a unique name. The name should contain only letters, numbers and underscores (no punctuation marks or spaces). `start` : float or integer The time that the stimulus should first play. See :ref:`startStop` for details. `stop (duration)`: The length of time (sec) to record for. An `expected duration` can be given for visualisation purposes. See :ref:`startStop` for details; note that only seconds are allowed. .. seealso:: API reference for :class:`~psychopy.microphone.AdvAudioCapture` psychopy-1.82.02.dfsg/docs/source/builder/components/mouse.rst000066400000000000000000000044331257562125200244240ustar00rootroot00000000000000.. _mouse: Mouse Component ------------------------------- The Mouse component can be used to collect responses from a participant. The coordinates of the mouse location are given in the same coordinates as the Window, with (0,0) in the centre. Scenarios ~~~~~~~~~~~~~~~~~ This can be used in various ways. Here are some scenarios (email the list if you have other uses for your mouse): Use the mouse to record the location of a button press Use the mouse to control stimulus parameters Imagine you want to use your mouse to make your 'patch'_ bigger or smaller and save the final size. Call your `mouse`_ 'mouse', set it to save its state at the end of the trial and set the button press to end the Routine. Then for the size setting of your Patch stimulus insert `$mouse.getPos()[0]` to use the x position of the mouse to control the size or `$mouse.getPos()[1]` to use the y position. Tracking the entire path of the mouse during a period Parameters ~~~~~~~~~~~~~~ Name : string Everything in a PsychoPy experiment needs a unique name. The name should contain only letters, numbers and underscores (no punctuation marks or spaces). start : The time that the mouse should first be checked. See :ref:`startStop` for details. stop : When the mouse is no longer checked. See :ref:`startStop` for details. Force End Routine on Press If this box is checked then the :ref:`Routine ` will end as soon as one of the mouse buttons is pressed. Save Mouse State How often do you need to save the state of the mouse? Every time the subject presses a mouse button, at the end of the trial, or every single frame? Note that the text output for cases where you store the mouse data repeatedly per trial (e.g. every press or every frame) is likely to be very hard to interpret, so you may then need to analyse your data using the psydat file (with python code) instead. Hopefully in future releases the output of the text file will be improved. Time Relative To Whenever the mouse state is saved (e.g. on button press or at end of trial) a time is saved too. Do you want this time to be relative to start of the :ref:`Routine `, or the start of the whole experiment? .. seealso:: API reference for :mod:`~psychopy.event.Mouse` psychopy-1.82.02.dfsg/docs/source/builder/components/movie.rst000066400000000000000000000027621257562125200244160ustar00rootroot00000000000000.. _movie: Movie Component ------------------------------- The Movie component allows movie files to be played from a variety of formats (e.g. mpeg, avi, mov). The movie can be positioned, rotated, flipped and stretched to any size on the screen (using the :doc:`../../general/units` given). Parameters ~~~~~~~~~~~~ name : string Everything in a PsychoPy experiment needs a unique name. The name should contain only letters, numbers and underscores (no punctuation marks or spaces). start : The time that the stimulus should first appear. See :ref:`startStop` for details. stop : Governs the duration for which the stimulus is presented (if you want to cut a movie short). Usually you can leave this blank and insert the `Expected` duration just for visualisation purposes. See :ref:`startStop` for details. movie : string The filename of the movie, including the path. The path can be absolute or relative to the location of the experiment (.psyexp) file. pos : [X,Y] The position of the centre of the stimulus, in the units specified by the stimulus or window ori : degrees Movies can be rotated in real-time too! This specifies the orientation of the movie in degrees. size : [sizex, sizey] or a single value (applied to both x and y) The size of the stimulus in the given units of the stimulus/window. units : deg, cm, pix, norm, or inherit from window See :doc:`../../general/units` .. seealso:: API reference for :class:`~psychopy.visual.MovieStim` psychopy-1.82.02.dfsg/docs/source/builder/components/parallelout.rst000066400000000000000000000033671257562125200256250ustar00rootroot00000000000000.. _parallelout: Parallel Port Out Component --------------------------------- This component allows you to send triggers to a parallel port or to a LabJack device. An example usage would be in EEG experiments to set the port to 0 when no stimuli are present and then set it to an identifier value for each stimulus synchronised to the start/stop of that stimulus. In that case you mgiht set the `Start data` to be `$ID` (with ID being a column in your conditions file) and set the `Stop Data` to be 0. Properties ~~~~~~~~~~~ Name : string Everything in a PsychoPy experiment needs a unique name. The name should contain only letters, numbers and underscores (no punctuation marks or spaces). Start : The time that the stimulus should first appear. See :ref:`startStop` for details. Stop : Governs the duration for which the stimulus is presented. See :ref:`startStop` for details. Port address : select the appropriate option You need to know the address of the parallel port you wish to write to. The options that appear in this drop-down list are determined by the application preferences. You can add your particular port there if you prefer. Start data : 0-255 When the start time/condition occurs this value will be sent to the parallel port. The value is given as a byte (a value from 0-255) controlling the 8 data pins of the parallel port. Stop data : 0-255 As with start data but sent at the end of the period. Sync to screen : boolean If true then the parallel port will be sent synchronised to the next screen refresh, which is ideal if it should indicate the onset of a visual stimulus. If set to False then the data will be set on the parallel port immediately. .. seealso:: API reference for :class:`~psychopy.hardware.iolab` psychopy-1.82.02.dfsg/docs/source/builder/components/patch.rst000066400000000000000000000101751257562125200243730ustar00rootroot00000000000000.. _patch: Patch (image) Component ------------------------------- The Patch stimulus allows images to be presented in a variety of forms on the screen. It allows the combination of an image, which can be a bitmap image from a variety of standard file formats, or a synthetic repeating texture such as a sinusoidal grating. A transparency mask can also be control the shape of the image, and this can also be derived from either a second image, or mathematical form such as a Gaussian. Patches can have their position, orientation, size and other settings manipulated on a frame-by-frame basis. There is a performance advantage (in terms of milliseconds) to using images which are square and powers of two (32, 64, 128, etc.), however this is slight and would not be noticed in the majority of experiments. Parameters ~~~~~~~~~~~~ name : string Everything in a PsychoPy experiment needs a unique name. The name should contain only letters, numbers and underscores (no punctuation marks or spaces). start : The time that the stimulus should first appear. See :ref:`startStop` for details. stop : Governs the duration for which the stimulus is presented. See :ref:`startStop` for details. image : a filename, a standard name ('sin', 'sqr') or a numpy array of dimensions NxNx1 or NxNx3 This specifies the image that will be used as the *texture* for the visual patch. The image can be repeated on the patch (in either x or y or both) by setting the spatial frequency to be high (or can be stretched so that only a subset of the image appears by setting the spatial frequency to be low). Filenames can be relative or absolute paths and can refer to most image formats (e.g. tif, jpg, bmp, png, etc.). If this is set to none, the patch will be a flat colour. mask : a filename, a standard name ('gauss', 'circle') or a numpy array of dimensions NxNx1 The mask can define the shape (e.g. circle will make the patch circular) or something which overlays the patch e.g. noise. ori : degrees The orientation of the entire patch (texture and mask) in degrees. pos : [X,Y] The position of the centre of the stimulus, in the units specified by the stimulus or window size : [sizex, sizey] or a single value (applied to x and y) The size of the stimulus in the given units of the stimulus/window. If the mask is a Gaussian then the size refers to width at 3 standard deviations on either side of the mean (i.e. sd=size/6) units : deg, cm, pix, norm, or inherit from window See :doc:`../../general/units` Advanced Settings +++++++++++++++++++ colour : See :doc:`../../general/colours` colour space : rgb, dkl or lms See :doc:`../../general/colours` SF : [SFx, SFy] or a single value (applied to x and y) The spatial frequency of the texture on the patch. The units are dependent on the specified units for the stimulus/window; if the units are *deg* then the SF units will be *cycles/deg*, if units are *norm* then the SF units will be cycles per stimulus. If this is set to none then only one cycle will be displayed. phase : single float or pair of values [X,Y] The position of the texture within the mask, in both X and Y. If a single value is given it will be applied to both dimensions. The phase has units of cycles (rather than degrees or radians), wrapping at 1. As a result, setting the phase to 0,1,2... is equivalent, causing the texture to be centered on the mask. A phase of 0.25 will cause the image to shift by half a cycle (equivalent to pi radians). The advantage of this is that is if you set the phase according to time it is automatically in Hz. Texture Resolution : an integer (power of two) Defines the size of the resolution of the texture for standard textures such as *sin*, *sqr* etc. For most cases a value of 256 pixels will suffice, but if stimuli are going to be very small then a lower resolution will use less memory. interpolate : If `linear` is selected then linear interpolation will be applied when the image is rescaled to the appropriate size for the screen. `Nearest` will use a nearest-neighbour rule. .. seealso:: API reference for :class:`~psychopy.visual.PatchStim` psychopy-1.82.02.dfsg/docs/source/builder/components/polygon.rst000066400000000000000000000042601257562125200247610ustar00rootroot00000000000000.. _patch: Polygon (shape) Component ------------------------------- (added in version 1.78.00) The Polygon stimulus allows you to present a wide range of regular geometric shapes. The basic control comes from setting the number of vertices: - 2 vertices give a line - 3 give a triangle - 4 give a rectangle etc. - a large number will approximate a circle/ellipse The size parameter takes two values. For a line only the first is used (then use ori to specify the orientation). For triangles and rectangles the size specifies the height and width as expected. Note that for pentagons upwards, however, the size determines the width/height of the ellipse on which the vertices will fall, rather than the width/height of the vertices themselves (slightly smaller typically). Parameters ~~~~~~~~~~~~ name : string Everything in a PsychoPy experiment needs a unique name. The name should contain only letters, numbers and underscores (no punctuation marks or spaces). nVertices : integer The number of vertices for your shape (2 gives a line, 3 gives a triangle,... a large number results in a circle/ellipse). It is not (currently) possible to vary the number of vertices dynamically. fill settings: Control the color inside the shape. If you set this to `None` then you will have a transparent shape (the line will remain) line settings: Control color and width of the line. The line width is always specified in pixels - it does not honour the `units` parameter. size : [w,h] See note above start : The time that the stimulus should first appear. See :ref:`startStop` for details. stop : Governs the duration for which the stimulus is presented. See :ref:`startStop` for details. ori : degrees The orientation of the entire patch (texture and mask) in degrees. pos : [X,Y] The position of the centre of the stimulus, in the units specified by the stimulus or window units : deg, cm, pix, norm, or inherit from window See :doc:`../../general/units` .. seealso:: API reference for :class:`~psychopy.visual.Polygon` API reference for :class:`~psychopy.visual.Rect` API reference for :class:`~psychopy.visual.ShapeStim` #for arbitrary vertices psychopy-1.82.02.dfsg/docs/source/builder/components/ratingscale.rst000066400000000000000000000107471257562125200255750ustar00rootroot00000000000000.. _ratingscale: RatingScale Component ------------------------------- A rating scale is used to collect a numeric rating or a choice from a few alternatives, via the mouse, the keyboard, or both. Both the response and time taken to make it are returned. A given routine might involve an image (patch component), along with a rating scale to collect the response. A routine from a personality questionnaire could have text plus a rating scale. Three common usage styles are enabled on the first settings page: 'visual analog scale': the subject uses the mouse to position a marker on an unmarked line 'category choices': choose among verbal labels (categories, e.g., "True, False" or "Yes, No, Not sure") 'scale description': used for numeric choices, e.g., 1 to 7 rating Complete control over the display options is available as an advanced setting, 'customize_everything'. Properties ~~~~~~~~~~~ name : string Everything in a PsychoPy experiment needs a unique name. The name should contain only letters, numbers and underscores (no punctuation marks or spaces). start : The time that the stimulus should first appear. See :ref:`startStop` for details. stop : The duration for which the stimulus is presented. See :ref:`startStop` for details. visualAnalogScale : checkbox If this is checked, a line with no tick marks will be presented using the 'glow' marker, and will return a rating from 0.00 to 1.00 (quasi-continuous). This is intended to bias people away from thinking in terms of numbers, and focus more on the visual bar when making their rating. This supersedes either choices or scaleDescription. category choices : string Instead of a numeric scale, you can present the subject with words or phrases to choose from. Enter all the words as a string. (Probably more than 6 or so will not look so great on the screen.) Spaces are assumed to separate the words. If there are any commas, the string will be interpreted as a list of words or phrases (possibly including spaces) that are separated by commas. scaleDescription : Brief instructions, reminding the subject how to interpret the numerical scale, default = "1 = not at all ... extremely = 7" low : str The lowest number (bottom end of the scale), default = 1. If it's not an integer, it will be converted to lowAnchorText (see Advanced). high : str The highest number (top end of the scale), default = 7. If it's not an integer, it will be converted to highAnchorText (see Advanced). Advanced settings ++++++++++++++++++ single click : If this box is checked the participant can only click the scale once and their response will be stored. If this box is not checked the participant must accept their rating before it is stored. startTime : float or integer The time (relative to the beginning of this Routine) that the rating scale should first appear. forceEndTrial : If checked, when the subject makes a rating the routine will be ended. size : float The size controls how big the scale will appear on the screen. (Same as "displaySizeFactor".) Larger than 1 will be larger than the default, smaller than 1 will be smaller than the default. pos : [X,Y] The position of the centre of the stimulus, in the units specified by the stimulus or window. Default is centered left-right, and somewhat lower than the vertical center (0, -0.4). duration : The maximum duration in seconds for which the stimulus is presented. See :ref:`duration` for details. Typically, the subject's response should end the trial, not a duration. A blank or negative value means wait for a very long time. storeRatingTime: Save the time from the beginning of the trial until the participant responds. storeRating: Save the rating that was selected lowAnchorText : str Custom text to display at the low end of the scale, e.g., "0%"; overrides 'low' setting highAnchorText : str Custom text to display at the low end of the scale, e.g., "100%"; overrides 'high' setting customize_everything : str If this is not blank, it will be used when initializing the rating scale just as it would be in a code component (see :class:`~psychopy.visual.RatingScale`). This allows access to all the customizable aspects of a rating scale, and supersedes all of the other RatingScale settings in the dialog panel. (This does not affect: startTime, forceEndTrial, duration, storeRatingTime, storeRating.) .. seealso:: API reference for :class:`~psychopy.visual.RatingScale` psychopy-1.82.02.dfsg/docs/source/builder/components/sound.rst000066400000000000000000000020741257562125200244230ustar00rootroot00000000000000.. _sound: Sound Component ------------------------------- Parameters ~~~~~~~~~~~~ name : string Everything in a PsychoPy experiment needs a unique name. The name should contain only letters, numbers and underscores (no punctuation marks or spaces). start : float or integer The time that the stimulus should first play. See :ref:`startStop` for details. stop : For sounds loaded from a file leave this blank and then give the `Expected duration` below for visualisation purposes. See :ref:`startStop` for details. sound : This sound can be described in a variety of ways: * a number can specify the frequency in Hz (e.g. 440) * a letter gives a note name (e.g. "C") and sharp or flat can also be added (e.g. "Csh" "Bf") * a filename, which can be a relative or absolute path (mid, wav, and ogg are supported). volume : float or integer The volume with which the sound should be played. It's a normalized value between 0 (minimum) and 1 (maximum). .. seealso:: API reference for :class:`~psychopy.sound.SoundPyo` psychopy-1.82.02.dfsg/docs/source/builder/components/static.rst000066400000000000000000000044021257562125200245570ustar00rootroot00000000000000.. _static: Static Component ------------------------------- (Added in Version 1.78.00) The Static Component allows you to have a period where you can preload images or perform other time-consuming operations that not be possible while the screen is being updated. Typically a static period would be something like an inter-trial or inter-stimulus interval (ITI/ISI). During this period you should not have any other objects being presented that are being updated (this isn't checked for you - you have to make that check yourself), but you can have components being presented that are themselves static. For instance a fixation point never changes and so it can be presented during the static period (it will be presented and left on-screen while the other updates are being made). Any stimulus updates can be made to occur during any static period defined in the experiment (it does not have to be in the same Routine). This is done in the updates selection box- once a static period exists it will show up here as well as the standard options of `constant` and `every repeat` etc. Many parameter updates (e.g. orientation are made so quickly that using the static period is of no benefit but others, most notably the loading of images from disk, can take substantial periods of time and these should always be performed during a static period to ensure good timing. If the updates that have been requested were not completed by the end of the static period (i.e. there was a timing overshoot) then you will receive a warning to that effect. In this case you either need a longer static period to perform the actions or you need to reduce the time required for the action (e.g. use an image with fewer pixels). Parameters ~~~~~~~~~~~~ name : Everything in a PsychoPy experiment needs a unique name. The name should contain only letters, numbers and underscores (no punctuation marks or spaces). start : The time that the static period begins. See :ref:`startStop` for details. stop : The time that the static period ends. See :ref:`startStop` for details. custom code : After running the component updates (which are defined in each component, not here) any code inserted here will also be run .. seealso:: API reference for :class:`~psychopy.core.StaticPeriod` psychopy-1.82.02.dfsg/docs/source/builder/components/text.rst000066400000000000000000000031231257562125200242530ustar00rootroot00000000000000.. _text: Text Component ------------------------------- This component can be used to present text to the participant, either instructions or stimuli. name : string Everything in a PsychoPy experiment needs a unique name. The name should contain only letters, numbers and underscores (no punctuation marks or spaces). start : The time that the stimulus should first appear. See :ref:`startStop` for details. stop : The duration for which the stimulus is presented. See :ref:`startStop` for details. color : See :ref:`colorspaces` color space : rgb, dkl or lms See :ref:`colorspaces` ori : degrees The orientation of the stimulus in degrees. pos : [X,Y] The position of the centre of the stimulus, in the units specified by the stimulus or window height : integer or float The height of the characters in the given units of the stimulus/window. Note that nearly all actual letters will occupy a smaller space than this, depending on font, character, presence of accents etc. The width of the letters is determined by the aspect ratio of the font. units : deg, cm, pix, norm, or inherit from window See :doc:`../../general/units` opacity : Vary the transparency, from 0.0 = invisible to 1.0 = opaque flip : Whether to mirror-reverse the text: 'horiz' for left-right mirroring, 'vert' for up-down mirroring. The flip can be set dynamically on a per-frame basis by using a variable, e.g., $mirror, as defined in a code component or conditions file and set to either 'horiz' or 'vert'. .. seealso:: API reference for :class:`~psychopy.visual.TextStim` psychopy-1.82.02.dfsg/docs/source/builder/concepts.rst000066400000000000000000000126121257562125200227230ustar00rootroot00000000000000Builder concepts -------------------- Routines and Flow ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The Builder view of the PsychoPy application is designed to allow the rapid development of a wide range of experiments for experimental psychology and cognitive neuroscience experiments. The Builder view comprises two main panels for viewing the experiment's :ref:`routines` (upper left) and another for viewing the :ref:`flow` (lower part of the window). An experiment can have any number of :ref:`routines`, describing the timing of stimuli, instructions and responses. These are portrayed in a simple track-based view, similar to that of video-editing software, which allows stimuli to come on go off repeatedly and to overlap with each other. The way in which these :ref:`routines` are combined and/or repeated is controlled by the :ref:`flow` panel. All experiments have exactly one :ref:`flow`. This takes the form of a standard flowchart allowing a sequence of routines to occur one after another, and for loops to be inserted around one or more of the :ref:`routines`. The loop also controls variables that change between repetitions, such as stimulus attributes. Example 1 - a reaction time experiment ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For a simple reaction time experiment there might be 3 :ref:`routines`, one that presents instructions and waits for a keypress, one that controls the trial timing, and one that thanks the participant at the end. These could then be combined in the :ref:`flow` so that the instructions come first, followed by `trial`, followed by the `thanks` :ref:`Routine `, and a loop could be inserted so that the :ref:`Routine ` repeated 4 times for each of 6 stimulus intensities. Example 2 - an fMRI block design ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Many fMRI experiments present a sequence of stimuli in a `block`. For this there are multiple ways to create the experiment: * We could create a single :ref:`Routine ` that contained a number of stimuli and presented them sequentially, followed by a long blank period to give the inter-epoch interval, and surround this single :ref:`Routine ` by a loop to control the blocks. * Alternatively we could create a pair of :ref:`routines` to allow presentation of a) a single stimulus (for 1 sec) and b) a blank screen, for the prolonged period. With these :ref:`routines` we could insert pair of loops, one to repeat the stimulus :ref:`Routine ` with different images, followed by the blank :ref:`Routine `, and another to surround this whole set and control the blocks. Demos ~~~~~~~~ There are a couple of demos included with the package, that you can find in their own special menu. When you load these the first thing to do is make sure the experiment settings specify the same resolution as your monitor, otherwise the screen can appear off-centred and strangely scaled. Stroop demo ============== This runs a digital demonstration of the Stroop effect [1]_. The experiment presents a series of coloured words written in coloured 'inks'. Subjects have to report the colour of the letters for each word, but find it harder to do so when the letters are spelling out a different (incongruous) colour. Reaction times for the congruent trials (where letter colour matches the written word) are faster than for the incongruent trials. From this demo you should note: * How to setup a trial list in a .csv or .xlsx file * How to record key presses and reaction times (using the `resp` Component in `trial` :doc:`Routine `) * How to change a stimulus parameter on each repetition of the loop. The text and rgb values of the `word` Component are based on `thisTrial`, which represents a single iteration of the `trials` loop. They have been set to change every repeat (don't forget that step!) * How to present instructions: just have a long-lasting `TextStim` and then force end of the :ref:`Routine ` when a key is pressed (but don't bother storing the key press). .. [1] Stroop, J.R. (1935). "Studies of interference in serial verbal reactions". Journal of Experimental Psychology 18: 643-662. Psychophysics Staircase demo ============================== This is a mini psychophysics experiment, designed to find the contrast detection threshold of a gabor i.e. find the contrast where the observer can just see the stimulus. From this demo you should note: * The opening dialog box requires the participant to enter the orientation of the stimulus, the required fields here are determined by 'Experiment Info' in 'Preferences' which is a python dictionary. This information is then entered into the stimulus parameters using '$expInfo['ori']' * The phase of the stimulus is set to change every frame and its value is determined by the value of `trialClock.getTime()*2`. Every :doc:`Routine ` has a clock associated with it that gets reset at the beginning of the iteration through the `Routine`. There is also a `globalClock` that can be used in the same way. The phase of a `Patch` `Component` ranges 0-1 (and wraps to that range if beyond it). The result in this case is that the grating drifts at a rate of 2Hz. * The contrast of the stimulus is determined using an :term:`adaptive staircase`. The :ref:`staircaseMethods` are different to those used for a loop which uses predetermined values. An important thing to note is that you must define the correct answer. psychopy-1.82.02.dfsg/docs/source/builder/flow.rst000066400000000000000000000261361257562125200220620ustar00rootroot00000000000000.. _flow: Flow ---------------- In the Flow panel a number of :doc:`Routines ` can be combined to form an experiment. For instance, your study may have a :doc:`Routine ` that presented initial instructions and waited for a key to be pressed, followed by a :doc:`Routine ` that presented one trial which should be repeated 5 times with various different parameters set. All of this is achieved in the Flow panel. You can adjust the display size of the Flow panel (see View menu). Adding Routines ~~~~~~~~~~~~~~~~~ The :doc:`Routines ` that the Flow will use should be generated first (although their contents can be added or altered at any time). To insert a :doc:`Routine ` into the Flow click the appropriate button in the left of the Flow panel or use the Experiment menu. A dialog box will appear asking which of your :doc:`Routines ` you wish to add. To select the location move the mouse to the section of the flow where you wish to add it and click on the black disk. .. _loops: Loops ~~~~~~~~~~~~~~~ Loops control the repetition of :ref:`routines` and the choice of stimulus parameters for each. PsychoPy can generate the next trial based on the :term:`method of constants` or using an :term:`adaptive staircase`. To insert a loop use the button on the left of the Flow panel, or the item in the Experiment menu of the Builder. The start and end of a loop is set in the same way as the location of a :doc:`Routine ` (see above). Loops can encompass one or more :doc:`Routines ` and other loops (i.e. they can be nested). As with components in :ref:`routines`, the loop must be given a name, which must be unique and made up of only alpha-numeric characters (underscores are allowed). I would normally use a plural name, since the loop represents multiple repeats of something. For example, `trials`, `blocks` or `epochs` would be good names for your loops. It is usually best to use trial information that is contained in an external file (.xlsx or .csv). When inserting a `loop` into the `flow` you can browse to find the file you wish to use for this. An example of this kind of file can be found in the Stroop demo (trialTypes.xlsx). The column names are turned into variables (in this case text, letterColor, corrAns and congruent), these can be used to define parameters in the loop by putting a $ sign before them e.g. `$text`. As the column names from the input file are used in this way they must have legal variable names i.e. they must be unique, have no punctuation or spaces (underscores are ok) and must not start with a digit. The parameter `Is trials` exists because some loops are not there to indicate trials *per se* but a set of stimuli within a trial, or a set of blocks. In these cases we don't want the data file to add an extra line with each pass around the loop. This parameter can be unchecked to improve (hopefully) your data file outputs. [Added in v1.81.00] .. _trialTypes: Method of Constants ^^^^^^^^^^^^^^^^^^^^^ Selecting a loop type of `random`, `sequential`, or `fullRandom` will result in a :term:`method of constants` experiment, whereby the types of trials that can occur are predetermined. That is, the trials cannot vary depending on how the subject has responded on a previous trial. In this case, a file must be provided that describes the parameters for the repeats. This should be an Excel 2007 (:term:`xlsx`) file or a comma-separated-value (:term:`csv` ) file in which columns refer to parameters that are needed to describe stimuli etc. and rows one for each type of trial. These can easily be generated from a spreadsheet package like Excel. (Note that csv files can also be generated using most text editors, as long as they allow you to save the file as "plain text"; other output formats will *not* work, including "rich text".) The top row should be a row of headers: text labels describing the contents of the respective columns. (Headers must also not include spaces or other characters other than letters, numbers or underscores and must not be the same as any variable names used elsewhere in your experiment.) For example, a file containing the following table:: ori text corrAns 0 aaa left 90 aaa left 0 bbb right 90 bbb right would represent 4 different conditions (or trial types, one per line). The header line describes the parameters in the 3 columns: ori, text and corrAns. It's really useful to include a column called corrAns that shows what the correct key press is going to be for this trial (if there is one). If the loop type is `sequential` then, on each iteration through the :ref:`routines`, the next row will be selected in the order listed in the file. Under a `random` order, the next row will be selected at random (without replacement); it can only be selected again after all the other rows have also been selected. `nReps` determines how many repeats will be performed (for all conditions). The total number of trials will be the number of conditions (= number of rows in the file, not counting the header row) times the number of repetitions, `nReps`. With the `fullRandom` option, the entire list of trials including repetitions is used in random order, allowing the same item to appear potentially many times in a row, and to repeat without necessarily having done all of the other trials. For example, with 3 repetitions, a file of trial types like this:: letter a b c could result in the following possible sequences. `sequential` could only ever give one sequence with this order: [a b c a b c a b c]. `random` will give one of 216 different orders (= 3! * 3! * 3! = nReps * (nTrials!) ), for example: [b a c a b c c a b]. Here the letters are effectively in sets of (abc) (abc) (abc), and randomization is only done within each set, ensuring (for example) that there are at least two a's before the subject sees a 3rd b. Finally, `fullRandom` will return one of 362,880 different orders (= 9! = (nReps * nTrials)! ), such as [b b c a a c c a b], which `random` never would. There are no longer mini-blocks or "sets of trials" within the longer run. This means that, by chance, it would also be possible to get a very un-random-looking sequence like [a a a b b b c c c]. It is possible to achieve any sequence you like, subject to any constraints that are logically possible. To do so, in the file you specify every trial in the desired order, and the for the loop select `sequential` order and nReps=1. Selecting a subset of conditions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ In the standard :ref:`trialTypes` you would use all the rows/conditions within your conditions file. However there are often times when you want to select a subset of your trials before randomising and repeating. The parameter `Select rows` allows this. You can specify which rows you want to use by inserting values here: - `0,2,5` gives the 1st, 3rd and 5th entry of a list - Python starts with index zero) - `random(4)*10` gives 4 indices from 0 to 10 (so selects 4 out of 11 conditions) - `5:10` selects the 6th to 9th rows - `$myIndices` uses a variable that you've already created Note in the last case that `5:8` isn't valid syntax for a variable so you cannot do:: myIndices = 5:8 but you can do:: myIndices = slice(5,8) #python object to represent a slice myIndices = "5:8" #a string that PsychoPy can then parse as a slice later myIndices = "5:8:2" #as above but Note that PsychoPy uses Python's built-in slicing syntax (where the first index is zero and the last entry of a slice doesn't get included). You might want to check the outputs of your selection in the Python shell (bottom of the Coder view) like this:: >>> range(100)[5:8] #slice 5:8 of a standard set of indices [5, 6, 7] >>> range(100)[5:10:2] #slice 5:8 of a standard set of indices [5, 7, 9, 11, 13, 15, 17, 19] Check that the conditions you wanted to select are the ones you intended! .. _staircaseMethods: Staircase methods ^^^^^^^^^^^^^^^^^^^ The loop type `staircase` allows the implementation of adaptive methods. That is, aspects of a trial can depend on (or "adapt to") how a subject has responded earlier in the study. This could be, for example, simple up-down staircases where an intensity value is varied trial-by-trial according to certain parameters, or a stop-signal paradigm to assess impulsivity. For this type of loop a 'correct answer' must be provided from something like a :doc:`components/keyboard`. Various parameters for the staircase can be set to govern how many trials will be conducted and how many correct or incorrect answers make the staircase go up or down. .. _accessingParams: Accessing loop parameters from components ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The parameters from your loops are accessible to any component enclosed within that loop. The simplest (and default) way to address these variables is simply to call them by the name of the parameter, prepended with `$` to indicate that this is the name of a variable. For example, if your Flow contains a loop with the above table as its input trial types file then you could give one of your stimuli an orientation `$ori` which would depend on the current trial type being presented. Example scenarios: #. You want to loop randomly over some conditions in a loop called `trials`. Your conditions are stored in a csv file with headings 'ori', 'text', 'corrAns' which you provide to this loop. You can then access these values from any component using `$ori`, `$text`, and `$corrAns` #. You create a random loop called `blocks` and give it an Excel file with a single column called `movieName` listing filenames to be played. On each repeat you can access this with `$movieName` #. You create a staircase loop called `stairs`. On each trial you can access the current value in the staircase with `$thisStair` .. note:: When you set a component to use a parameter that will change (e.g on each repeat through the loop) you should **remember to change the component parameter from `constant` to `set every repeat` or `set every frame`** or it won't have any effect! Reducing namespace clutter (advanced) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The downside of the above approach is that the names of trial parameters must be different between every loop, as well as not matching any of the predefined names in python, numpy and PsychoPy. For example, the stimulus called `movie` cannot use a parameter also called `movie` (so you need to call it `movieName`). An alternative method can be used without these restrictions. If you set the Builder preference `unclutteredNamespace` to True you can then access the variables by referring to parameter as an attribute of the singular name of the loop prepended with `this`. For example, if you have a loop called `trials` which has the above file attached to it, then you can access the stimulus ori with `$thisTrial.ori`. If you have a loop called `blocks` you could use `$thisBlock.corrAns`. Now, although the name of the loop must still be valid and unique, the names of the parameters of the file do not have the same requirements (they must still not contain spaces or punctuation characters). psychopy-1.82.02.dfsg/docs/source/builder/gotchas.rst000066400000000000000000000003541257562125200225350ustar00rootroot00000000000000.. _gotchas: Common Mistakes (aka Gotcha's) ------------------------------- .. toctree:: :maxdepth: 1 :glob: commonMistakes/* If you are having problems getting the application to run please see :ref:`troubleshooting`psychopy-1.82.02.dfsg/docs/source/builder/outputs.rst000066400000000000000000000007501257562125200226300ustar00rootroot00000000000000Generating outputs (datafiles) ------------------------------- There are 4 main forms of :ref:`output ` file from PsychoPy: - Excel 2007 files (.xlsx) see :ref:`Excel Data Files ` for more details - text data files (.csv, .tsv, or .txt) see :ref:`Delimited Text Files ` for more details - binary data files (.psydat) see :ref:`PsychoPy Data Files ` for more details - log files (.log) see :ref:`Log Files ` for more details psychopy-1.82.02.dfsg/docs/source/builder/routines.rst000066400000000000000000000021351257562125200227540ustar00rootroot00000000000000.. _routines: Routines ------------- An experiment consists of one or more Routines. A Routine might specify the timing of events within a trial or the presentation of instructions or feedback. Multiple Routines can then be combined in the :doc:`Flow `, which controls the order in which these occur and the way in which they repeat. To create a new Routine, use the Experiment menu. The display size of items within a routine can be adjusted (see the View menu). Within a Routine there are a number of components. These components determine the occurrence of a stimulus, or the recording of a response. Any number of components can be added to a Routine. Each has its own line in the Routine view that shows when the component starts and finishes in time, and these can overlap. For now the time axis of the Routines panel is fixed, representing seconds (one line is one second). This will hopefully change in the future so that units can also be number of frames (more precise) and can be scaled up or down to allow very long or very short Routines to be viewed easily. That's on the wishlist...psychopy-1.82.02.dfsg/docs/source/builder/settings.rst000066400000000000000000000105241257562125200227450ustar00rootroot00000000000000.. _expSettings: Experiment settings --------------------- The settings menu can be accessed by clicking the icon at the top of the window. It allows the user to set various aspects of the experiment, such as the size of the window to be used or what information is gathered about the subject and determine what outputs (data files) will be generated. Settings ========== Basic settings ~~~~~~~~~~~~~~~ Experiment name: A name that will be stored in the metadata of the data file. Show info dlg: If this box is checked then a dialog will appear at the beginning of the experiment allowing the `Experiment Info` to be changed. Experiment Info: This information will be presented in a dialog box at the start and will be saved with any data files and so can be used for storing information about the current run of the study. The information stored here can also be used within the experiment. For example, if the `Experiment Info` included a field called `ori` then Builder :doc:`components` could access expInfo['ori'] to retrieve the orientation set here. Obviously this is a useful way to run essentially the same experiment, but with different conditions set at run-time. Enable escape: If ticked then the `Esc` key can be used to exit the experiment at any time (even without a keyboard component) Data settings ~~~~~~~~~~~~~~~~ .. _dataFileName: Data filename: (new in version 1.80.00): A :ref:`formatted string ` to control the base filename and path, often based on variables such as the date and/or the participant. This base filename will be given the various extensions for the different file types as needed. Examples:: # all in data folder: data/JWP_memoryTask_2014_Feb_15_1648 'data/%s_%s_%s' %(expInfo['participant'], expName, expInfo['date']) # group by participant folder: data/JWP/memoryTask-2014_Feb_15_1648 'data/%s/%s-%s' %(expInfo['participant'], expName, expInfo['date']) # put into dropbox: ~/dropbox/data/memoryTask/JWP-2014_Feb_15_1648 # on Windows you may need to replace ~ with your home directory '~/dropbox/data/%s/%s-%s' %(expName, expInfo['participant'], expInfo['date']) Save Excel file: If this box is checked an Excel data file (.xlsx) will be stored. Save csv file: If this box is checked a comma separated variable (.csv) will be stored. Save psydat file: If this box is checked a :ref:`psydatFile` will be stored. This is a Python specific format (.pickle files) which contains more information that .xlsx or .csv files that can be used with data analysis and plotting scripts written in Python. Whilst you may not wish to use this format it is recommended that you always save a copy as it contains a complete record of the experiment at the time of data collection. Save log file A log file provides a record of what occurred during the experiment in chronological order, including information about any errors or warnings that may have occurred. Logging level How much detail do you want to be output to the log file, if it is being saved. The lowest level is `error`, which only outputs error messages; `warning` outputs warnings and errors; `info` outputs all info, warnings and errors; `debug` outputs all info that can be logged. This system enables the user to get a great deal of information while generating their experiments, but then reducing this easily to just the critical information needed when actually running the study. If your experiment is not behaving as you expect it to, this is an excellent place to begin to work out what the problem is. Screen settings ~~~~~~~~~~~~~~~~ Monitor The name of the monitor calibration. Must match one of the monitor names from :doc:`../general/monitors`. Screen: If multiple screens are available (and if the graphics card is `not` an intel integrated graphics chip) then the user can choose which screen they use (e.g. 1 or 2). Full-screen window: If this box is checked then the experiment window will fill the screen (overriding the window size setting and using the size that the screen is currently set to in the operating system settings). Window size: The size of the window in pixels, if this is not to be a full-screen window. Units The default units of the window (see :doc:`../general/units`). These can be overridden by individual :doc:`components`. psychopy-1.82.02.dfsg/docs/source/builder/startStop.rst000066400000000000000000000044561257562125200231170ustar00rootroot00000000000000.. _startStop: Defining the onset/duration of components ------------------------------------------------------ As of version 1.70.00, the onset and offset times of stimuli can be defined in several ways. Start and stop times can be entered in terms of seconds (`time (s)`), by frame number (`frameN`) or in relation to another stimulus (`condition`). `Condition` would be used to make :ref:`components` start or stop depending on the status of something else, for example when a sound has finished. Duration can also be varied using a :ref:`code`. If you need very precise timing (particularly for very brief stimuli for instance) then it is best to control your onset/duration by specifying the number of frames the stimulus will be presented for. Measuring duration in seconds (or milliseconds) is not very precise because it doesn't take into account the fact that your monitor has a fixed frame rate. For example if the screen has a refresh rate of 60Hz you cannot present your stimulus for 120ms; the frame rate would limit you to 116.7ms (7 frames) or 133.3ms (8 frames). The duration of a frame (in seconds) is simply 1/refresh rate in Hz. `Condition` would be used to make :ref:`components` start or stop depending on the status of something else, for example when a movie has finished. Duration can also be varied using a code component. In cases where PsychoPy cannot determine the start/endpoint of your Component (e.g. because it is a variable) you can enter an 'Expected' start/duration. This simply allows components with variable durations to be drawn in the Routine window. If you do not enter the approximate duration it will not be drawn, but this will not affect experimental performance. For more details of how to achieve good temporal precision see :ref:`timing` Examples ~~~~~~~~~~~~ * Use `time(s)` or `frameN` and simply enter numeric values into the start and duration boxes. * Use `time(s)` or `frameN` and enter a numeric value into the start time and set the duration to a variable name by preceeding it with a $ as described :ref:`here `. Then set `expected time` to see an approximation in your :ref:`routine ` * Use condition to cause the stimulus to start immediately after a movie component called myMovie, by entering `$myMovie.status==FINISHED` into the `start` time. psychopy-1.82.02.dfsg/docs/source/changelog.rst000066400000000000000000003372051257562125200214160ustar00rootroot00000000000000Changelog ==================== .. raw:: html .. role:: blue .. note:: Version numbers In general, when a new feature is added the second number is incremented (e.g. 1.00.05 -> 1.01.00). Those releases might break previous code you've written because new features often need slight changes to other things. Changes to the final digit (1.00.05 -> 1.00.06) indicate a bug-fixing release or very minor new features that shouldn't require code changes from the user. :blue:`Changes in blue typically indicate things that alter the PsychoPy behaviour in a way that could break compatibility. Be especially wary of those!` PsychoPy 1.82 ------------------------------ PsychoPy 1.82.02 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ released Aug 2015 - FIXED: TrialHandler wasn't saving extraInfo (was overwritten during trials) `#815 `_ - FIXED: don't have pickle file re-saving itself when it comes back from pickling `#833 `_ - FIXED: Mouse Component could crash data saving if no response was made `#839 `_ - FIXED: memory leaks in MovieStim2 (opencv backend) `#838 `_ and `#919 `_ - FIXED: checked that window positions are integers `#854 `_ - FIXED: OSX "10.10" incorrectly looked older than "10.9" `#866 `_ - FIXED: RatingScale would show "False" for scale description in some cases `#870 `_ - FIXED: problem with microphone saving files that end with w, a or v `#875 `_ - FIXED: MonitorCenter failing to create new monitor `#887 `_ - FIXED: universal line endings in csv outputs files `#889 `_ - FIXED: unicode in conditions files `#892 `_ - FIXED: `iohub` not detecting Linux mouse events `#894 `_ - FIXED: if output file is set to be `stdout` this should then be closed `#902 `_ - FIXED: don't abbreviate the path name of conditions files `#913 `_ - FIXED: minor error in logging for `rush()` under win32 `#914 `_ - FIXED: unicode issues in user preferences panel `#930 `_ `#932 `_ - FIXED: MonitorCenter won't lock you out if given an invalid screen number `#937 `_ - FIXED: mono++ mode in CRS Bits++/#/Display++ is now using full dynamic range (previously 8bit blue gun overlay was overriding the 16bit screen buffer) PsychoPy 1.82.01 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Released Feb 2015 * FIXED: problem with MovieStim2 showing black box instead of movie on certain systems * FIXED: problem with Tobii eye tracker not closing calibration window (Sol) * FIXED: better timing for non-slip routines that follow dynamic routines (Jeremy) `#822 `_ * FIXED: problem with stimuli (e.g. shapes) not appearing if a texture had just been created and not yet drawn * FIXED: pygame sound engine complained about "global variable loops not defined" * ENHANCED: Filename collision handling for ExperimentHandler (Richard Höchenberger) * :blue:`CHANGED: for text data outputs that give delim='\t' the file extension '.tsv' is added instead of '.dlm' (Richard Höchenberger)` PsychoPy 1.82.00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Released Jan 2015 * ENHANCED: slightly faster rendering of movies for high-rate HD stimuli * CHANGED: `pandas` is now a strict requirement for the `psychopy.data` module * FIXED: Builder sounds from file no longer loop indefinitely * FIXED: Builder: microphone recordings are explicitly stopped at the end of every trial * FIXED: Static Components could become hidden by having unknown durations and then couldn't be changed. Now they are always shown even when times are unknown (Jeremy) * ADDED: improved support for Cambridge Research Systems Display++ and Bits# devices: * Color++ and Mono++ modes now supported using shaders * fixed some bugs with search for identityLUT in Display++ * ADDED: Psi adaptive staircase method (thanks Joseph Glavan for writing this) * ADDED: `bidi` and `xlwt` packages to the Standalone distribution * ADDED: support for Mouse.setPos() under pyglet back end (Jeremy) * ADDED: support for PST response box (Richard Höchenberger) * FIXED: extraInfo was not being saved in wide-text format * FIXED: Builder was not respecting order for drawing polygon - it was always drawn first * ADDED: Builder now supports 'degFlat and 'degFlatPos' units and documentation has been added for these PsychoPy 1.81 ------------------------------ PsychoPy 1.81.03 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Released Dec 2014 * ADDED: Sounds in Builder can now have a duration set by a variable (changing each repeat). The work on this may cause some systems to have a periodic 'tick' in the sound if they last longer than 10s (probably dependent on sound card and driver) * IMPROVED: RatingScale will always display a custom description ('scale') if provided by the user * ADDED: Monitor Center can now calibrate non-primary monitors * FIXED: components in Builder can now be 'stopped' at the same time as they are started and never show up (previously at least one frame was always required) * FIXED: several issues with Bits++ causing a rendering glitch and not being able to calibrate from Monitor Centre * FIXED: choice selection boxes stopped working in monitor centre (caused by hardware.crs.bits importing pyglet.gl) * FIXED: Bits# can be set to do gamma correction in the PsychoPy LUT ('software') rather than using the on-board gamma table file ('hardware') * FIXED: bug with monitor calib files not returning their linearization method correctly * ADDED: psychopy.qtgui as alternative to gui which doesn't duffer from problem with choice boxes and pyglet clashing (thanks Sol) * FIXED: data files now correctly include the originPath (the path to the script that created them). Thanks Alex Holcombe for the fix PsychoPy 1.81.02 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Released Oct 2014 * FIXED: bug with gamma not being set from the Monitor file * FIXED: MovieStim2 warnings about dropped frames were crippling the output window * FIXED: new issue (in 1.81.01) with several drop-down menus in Builder not allowing to select that option PsychoPy 1.81.01 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Released Oct 2014 * FIXED: bug with rendering of Movies from Builder (autoDraw() not working) * ADDED: option to use new movie backend from Builder (there is now an option to select `opencv` or `avbin` for movie rendering) * FIXED: MovieStim2 couldn't load frames fast enough it ran slow (should drop frames but stay synchronised). (Sol) * FIXED: fix spurious warnings about GratingStim.__del__ * FIXED: pyo audio crashed on windows if no mic/input was found (Sogo Hiroyuki) * ADDED: serial port device in iohub (Sol) PsychoPy 1.81.00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Released Sept 2014 * IMPROVED: cross-version compatibility: * In Builder experiments from 'future' versions can be opened and unknown objects will be ignored (but kept) * In Code you can now do `import psychopy; psychopy.useVersion('X.XX.XX')` to switch to any version greater than 1.76.00 (including versions not installed and future versions). This only affects the lib, not the application. (Thanks Erik Kastman for most of the work on this) * IMPROVED: better unit tests for visual stimuli to prevent future bugs * :blue:`FIXED: MovieStim was right-left flipping movies and this has been corrected. If you had been working around that by setting flipVertical=True then you'll need to undo that correction` * IMPROVED: Can now select a subset of conditions in Builder loops and in `data.importConditions()` function (thanks Mike MacAskill for help) * IMPROVED: In Builder, loops that don't reflect trials (e.g. stimuli within a trial or blocks of trials) can be flagged as such, resulting in neater data files * ADDED: support for additional hardware: * basic support for interacting with BlackBoxToolkit v2 psychopy.hardware.bbtk * :blue:`added basic support for CRS Bits# in psychopy.hardware.crs. New way to interface with Bits++ as well, using a class rather than a Window argument. See demo in demos>hardware` * labjack digital outputs can be used as a Parallel Port Component in Builder * the screen rendering can now include a warping step to simulate spherical, cylindrical or custom warping (Jay Borseth) * the screen now supports 'frame packing' whereby sequential frames can be packed into one, as the red, green and blue channels for monochrome high-rate projectors (Jay Borseth) * ioHub eye tracker interface for GazePoint GP3 (Martin Guest) * ioHub Serial device: * Support for simple fixed width or marker delimited serial rx stream -> device event parsing. * Demo created showing usage with PST Response box added (Richard Höchenberger) * ioHub ioSync device: * Use Teensy 3.0 / 3.1 MCU. Connect via USB 2.0. * 8 / 8 digital inputs / outputs * 8 analog inputs (~12 - 13 bit effective resolution) * 1000 Hz sampling rate for analog and digital inputs. * Keyboard Host support (useful for testing keyboard delay variability from software alone) * IMPROVED packaging: * can now install on OSX using miniconda/anaconda distribution (Erik Kastman) * pyopencv (cv2) added to Standalone as an alternative to avbin * PySoundCard and PySoundFile added to Standalone * application is now compatible with wxPython 2.8, 2.9 and 3.0 * IMPROVED: stimulus attributes: * Nearly all stimulus attributes now support new syntax, e.g. `stim.pos = [0,0]` as well as the previous `stim.setPos([0,0])`. All docs are update to reflect this change. * All numeric stimulus attributes now support operations. Use e.g. `stim.pos += [0,0.5]`. Read more in :ref:`Operations `. * Many more stimulus attributes can now be set after initialization. They have the same name as the init parameters. E.g. `stim.win = mySecondWindow` changes which Window the stimulus is drawn to * IMPROVED: logging * CHANGED: `log=None` and `autoLog=None` inherits from parents, with `visual.Window` at the top of the hierarchy. None is now default for all stimuli and setter methods. * FIXED: removed unneccessary (e.g. duplicate) logging. * IMPROVED: unnamed stimuli are now given a default name in the logs for easier identification, e.g. "unnamed ShapeStim". * IMPROVED: you can now specify the standard deviation (default=3) for gaussian mask in various stimuli by setting e.g. `maskParams={'sd':5}` during init or after init. * ADDED: language localization (Builder and Coder) * Can now display the app menus, tooltips, and so on in a language other than US English (selectable via prefs -> app -> locale) * Almost all displayed text can be translated (Jeremy Gray, Hiroyuki Sogo) * A Japanese translation is available (Hiroyuki Sogo) * Other translations will be easy to add; see online developer notes on using Poedit * FIXED: several other minor bugs (that would have given exceptions if encountered). Thanks particularly to Philip Wiesemann for finding several of these * FIXED: machines that didn't support shaders or framebuffer objects were raising an error on win.flip() if the useFBO argument was not manually set to False. Machines that don't support the new rendering methods are now handled more gracefully PsychoPy 1.80 ------------------------------ PsychoPy 1.80.07 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Released Aug 2014 FIXED: bug with timing of keys when using the `timestamped` argument PsychoPy 1.80.06 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Released June 2014 * FIXED: problem with using the framebuffer object (nothing was rendered at all) * ENH: added support for using a stencil when the framebuffer object is turned on PsychoPy 1.80.05 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Released June 2014 * IMPROVED: better unit tests for visual stimuli to prevent further regressions of the issues below * FIXED: machines that didn't support shaders or framebuffer objects were raising an error on win.flip() if the useFBO argument was not manually set to False. Machines that don't support the new rendering methods are now handled more gracefully. * FIXED: further fixes to greyscale coloring (some images were not correctly detected as greyscale by PIL so tests weren't working) * FIXED: machines that didn't support shaders or framebuffer objects were raising an error on win.flip() if the useFBO argument was not manually set to False. Machines that don't support the new rendering methods are now handled more gracefully * FIXED: named colors were not interpreted correctly by the visual.Window (but worked fine for stimuli) * FIXED: the error message about TextBox/FontManager not working doesn't show up any more * FIXED: reinstated the requirement that wx is version 2.8.x only until we get time to check 3.0 compatibility more deeply PsychoPy 1.80.04 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Released April 2014 * FIXED: buglets in logging. Logging wasn't encoding unicode correctly for console targets (but file targets were OK) and some duplicate messages were occurring for stimulus autologs * FIXED: buglet with GratingStim/PatchStim when texture was not a square power of two (was crashing due to incorrect global variable) * FIXED: ElementArrayStim was not updating its position using .setFieldPos() PsychoPy 1.80.03 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Released April 2014 * FIXED: Shader code was ignoring opacity setting for ImageStim * FIXED: Mouse clock was not the same as PsychoPy's general events clock (so out of sync) (Sol & Jeremy) PsychoPy 1.80.02 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Released April 2014 * FIXED: ImageStim did not use its mask on some machines (nVidia and ATI?) or did not render at all on others (intel graphics?) * CHANGED: Sound object now checks if the sound is a note name before checking for file names (only affects cases where the file name was something like A.wav) * ADDED: Aperture now supports contains() and overlaps() methods * ADDED: Image/Grating masks can now also be 'cross' (Suddha Sourav) * FIXED: Unicode problem for microphone on non-English installs of win32 * FIXED: StairHandler first reversal now changes step size correctly and added option not to use the initial 1-up,1-down regime (Jon maintains that you should though!) (thanks Nathanael Larigaldie) * FIXED: emulator LaunchScan uses new RatingScale syntax PsychoPy 1.80.01 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Released Mar 2014 * FIXED: buglet with movie glPopAttrib() on Intel gfx cards (thanks Bryan Cort) * FIXED: problem trying to use FrameBufferObject (FBO) on Intel GMA graphics cards * FIXED: problem with ImageStim not respecting setColor() and setContrast() * FIXED: some stimuli were failing to switch to a second window when requested * FIXED: some rendering glitches with ShapeStim caused by interpolation settings (thanks to Soyogu Matsushita for finding this fix) * FIXED: automated import of gamma for known monitors, which was failing on some monitor calibration files * FIXED: a single-line conditions file is now imported correctly by Builder (Jeremy Gray) * IMPROVED: a Routine not included in a loop now saves its data to a default 'loop' (Jeremy Gray) * IMPROVED: Coder checks for consistency of end-of-line options (thanks Wilbert van Ham) PsychoPy 1.80.00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Released Mar 2014 * Improvements to user interface: * the glitch that prevented scrolling the Routine view is gone (win32) * dialog boxes in the Builder now have tabs for categories of controls * Code Components have much more space for each piece of code (again due to tabs) * ADDED: In Builder you can now customise the data filename/path in the Experiment Settings. Any variables in the `expInfo` dialog box can be used to create this path. See :ref:`dataFileName` for further info * ADDED: support for advanced rendering modes. Can now 'add' rather than average when using transparency. This is better for visual compound stimuli like plaids, and essential for colored anaglyph stimuli where the resulting image needs to be the sum of the left and right eye images. * ADDED: new visual unit options: 'degFlatPos' and 'degFlat' provide more accurate conversions from degrees to pixels for drawing stimuli (although they're more accurate, accounting for the flat screen, they may look strange because 1 degree gets larger with greater eccentricity on a flat screen). The previous unit 'deg' still exists and remains default as, for many studies, these are expected * ADDED: wider support for the functions `contains` and `overlaps`. Most stimuli now have these methods. Also they can now be used irrespective of whether the stimulus and other object have the same units (they used only to work for units of pix) * ADDED: support for other shapes in the Aperture stimulus (and its Builder Component). You can either specify the number of vertices `nVert` and a `size` to get a regular polygon aperture, or you can provide a set of arbitrary vertices as your `shape` argument * :blue:`CHANGED: Size of 'square' or 'triangle' apertures used to represent the radius of the circle on which their vertices lay. It is now a height/width as you would more likely expect. This means aperture code in scripts may need rewriting to be smaller.` * IMPROVED: stimulus duration is now more precise when using `duration (s)` or `time (s)` although using `nFrames` option is still advised for brief stimuli * IMPROVED: there are now fewer irrelevant lines in the log file as stimuli are initially created * IMPROVED: Staircase loops in Builder now initialise just before the staircase is run, rather than at the start of the experiment. This means they can be controlled by an outer loop and, effectively, restarted * FIXED: ElementArrayStim can take Nx3 or 1x3 values for colors again * FIXED: variable names in Builder are now case-sensitive again (they were being forced to lower case when importing csv files) * FIXED: incorrect equation for the Cumulative Normal fitting function * FIXED: If your variable had a new line character in it this was causing a new line to be started in the csv data file. These are now handled correctly * ADDED: RatingScale markerStart position can be arbitrary, e.g., can start between items or beyond the end of scale * ADDED: RatingScale tickHeight can be used to control the height of tickMarks, including no tick marks (tickHeight=0) * ADDED: RatingScale marker='hover' is similar to HTML-style hovering over clickable elements *psychopy.visual.RatingScale Changes* : * :blue:`CHANGED: Builder: remove option: choiceLabelsAboveLine; change lowAnchorText, highAnchorText -> labels` * :blue:`CHANGED: skipping a rating now adds None as the final element in the history` * :blue:`CHANGED: the default minTime is shorter, now 0.4s` * :blue:`CHANGED: more info in the log when creating a rating scale object` * :blue:`CHANGED: removed showAnchors: now use labels=None (instead of showAnchors=False)` * :blue:`CHANGED: removed lowAnchorText & highAnchorText: now use labels=['leftAnchor', 'rightAnchor'] or with optional 3rd midpoint label` * :blue:`CHANGED: renamed several parameters: stretchHoriz -> stretch, textSizeFactor -> textSize, ticksAboveLine -> tickHeight, displaySizeFactor -> size, markerStyle -> marker, customMarker -> marker` * :blue:`CHANGED: removed showScale: now use scale=None (instead of showScale=False)` * :blue:`CHANGED: removed allowSkip: now use skipKeys=None (instead of allowSkip=False)` * :blue:`CHANGED: removed escapeKeys; no longer supported but it's easy to implement (as now done in the coder demo)` PsychoPy 1.79 ------------------------------ PsychoPy 1.79.01 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Released Dec 2013 * FIXED: startup crash in 1.79.00 * FIXED: long-standing memory leak in MovieStim * FIXED: fixed problem with MovieStim not displaying the image but playing the audio * ADDED: volume attribute to MovieStim (Frank Papenmeier) * FIXED: experiments were crashing if first line of a conditions file contained a float but the rest were integers * FIXED: QuestHandler.addResponse() should not try to replace existing intensity on first trial (Richard Höchenberger) * FIXED: Window's viewPos and viewScale attributes could not be changed * FIXED: Builder code generation for Cedrus Box when user provided a limited set of available buttons * FIXED: multiple issues causing fatal errors when setting stimulus parameters (Pieter Moors and Damien Mannion) * FIXED: Builder experiments would crash under certain conditions when there was no 'participant' in the info dialog box (Philipp Wiesemann) * FIXED: bug toggling readme file window in Builder (Philipp Wiesemann) * FIXED: further fix to the Coder raising excessive 'this file has changed' warnings * FIXED: Component names now update on the Routine panel after being changed in a dialog (Philipp Wiesemann) * FIXED: bug importing conditions if the first row of numbers was the only float. (importFromConditions now uses numpy instead of matplotlib) * FIXED: further fix to the extra "file close" queries during shut-down PsychoPy 1.79.00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Released Dec 2013 * ADDED: attributes for some stimuli can now be updated using e.g. `stim.pos = newPos` rather than using `stim.setPos(newPos)` to make things more like standard Python (thanks Jonas Lindeløv). This version also involved some major restructuring behind the scenes that should not be visible to users (thanks Todd Jennings) * ADDED: Builder Components for * ioLab Systems button-box; refactor PsychoPy's ioLabs code (Jeremy) * Cedrus button-box (tested on RB730) * parallel port output component * ADDED: option for sounds to `loop` * ADDED: volume argument for MovieStim so that sound can be muted (Frank Papenmeier) * ADDED: window now prevents system from sleep/screensaver on windows and OS X * ADDED: builder demo for mental rotation task * ADDED: Alternative Text stimulus, psychopy.visual.TextBox (Sol Simpson) * Two demos in psychopy.coder.visual.textbox * Requires: freetype lib (included in Standalone) * Advantages: Very fast update following text change; very precise character placement. * Disadvantages: Supports monospace fonts only. * IMPORTANT: TextBox is still being finalized and completed; expect to find (and please report) issues. API changes guaranteed. * FIXED: misaligned responses in csv output for QuestHandler (Zhili Zheng) * FIXED: bug when using ElementArrayStim with numpy 1.7.1. Most elements were receiving SF=0 * FIXED: 'semi-automatic' calibration (thanks Flip Phillips) * FIXED: shut-down issues. Builder now remembers its last experiment and you don't get multiple messages about the scripts that have changed * FIXED: bugs with MultiStairHandler that were making it unusable (in code and Builder) * FIXED: lists of key presses can now be considered `correct` (Ian Hussey) * FIXED: certain further cases of bitmap images appearing desaturated * FIXED: mono sounds now duplicate to both channels correctly * changes to Standalone packages (require fetching the installer): * pyFileSec for uploading files to server using encryption (this is Jeremy's module) * pandas on win32 is now v1.3 (was already this version on OS X) * pyxid now includes Jared's upstream bug-fix * FIXED: many user interface tweaks, documentation and help string corrections (Philip Wiesemann) * FIXED: PsychoPy Coder view now closes the iohub process when the experiment script is terminated using 'Stop'. (Sol Simpson) * FIXED: Builder use of single staircase loops now respects the min/max values * CHANGED: data curve fitting functions are now using scipy.optimise.curve_fit and should hopefully be more robust to local minima(?) *psychopy.iohub Changes* : * ADDED: Initial release of the new Touch device: * currently supporting Elo brand Touch Screens. * any Elo model supporting the SmartSet protocol should work (Elo 2700 model used for testing to date) * Touch Events (TouchPress, TouchRelease, TouchMovement) are provided in a separate event stream * Touch and Mouse device events are independent of each other, so both devices can be used in parallel without interference * Touch screen calibration routine provided; calibration state can be saved to device hardware for persistence * See the demos.coder.iohub_extended Touch script for example of calibration graphics front end. * ADDED: Keyboard and Mouse events can be restricted to those events targeted at a PsychoPy Window. Currently supported on Windows and Linux only. * NEW: PsychoPy TrialHandler can now be used to feed experiment condition variables to the ioDataStore. * NEW: Device configuration file can now be specified to the launchHubServer() function when starting the ioHub Process. * NEW: Simple examples of how to use iohub within a Builder project using a Custom Code Component. * FIXED: Analog Input Event delay calculation error that was causing incorrect time correction to be applied to this event type. * NEW: LabJack AnalogInput interface now handles dropped samples and sampling rates that cause multichannel samples to be split between USB packets. * FIXED: Gaze position calculation fix for the SMI eye tracker interface during binocular tracking. * NEW: Enhanced Tobii eye tracker setup and calibration graphics: * Head position within the 3D eye tracking head box can be visualized before and after calibration * Animated fixation target support added during calibration routine * ADDED: Following EXPERIMENTAL stage implementation (Use at Own Risk): * ioDataStore -> Pandas Data Frame based post processing API: * Creates a set of Pandas Data Frames for device events, experiment messages, and experiment condition variables. * Filter, Group, Join data using the Pandas API. * Access event information with associated condition variable states. * Define Interest Periods (IP): * filter event temporally based on start and end time criteria. * define an IP's start and end time criteria using experiment message events, or experiment condition variable columns. * re-occurring IP's supported. * overlapping IP's supported. * Define Regions of Interest (ROI), * filter Mouse, Eye Tracker, and Touch device events based on screen location. * circle, ellipse, rectangle, and general polygon ROI shapes supported. (ROI functionality is dependent on the shapely python package) * IMPORTANT: The ioDataStore->DataFrame API is still being designed and developed. Expect to find issues. API changes guaranteed. PsychoPy 1.78 ------------------------------ PsychoPy 1.78.01 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Released Aug 2013 * FIXED: Image Components were showing up a pastel versions when no actual image was provided * FIXED: MultiStairHandler wasn't working on Builder, and had insufficient data outputs when using wide-text csv files * FIXED: loops couldn't be deleted from the Flow if their conditions file couldn't be found (e.g. had been moved) * FIXED: setting of color values was not honouring the autolog setting (was always logging) * FIXED: gui choice boxes now handle unicode in their options as well as ASCII strings (thanks Anne Peschel) * FIXED: Scaling bug for SMI eye-tracker in binocular mode (thanks Sol) * FIXED: Builder Code Components that were showing up in unreadable, single-line boxes * IMPROVED: All Builder Dialogs now appear close to the top of the screen (so they don't shoot off the bottom in most screens) PsychoPy 1.78.00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Released Aug 2013 * ADDED: option to preload during Builder scripts using :ref:`static`, which uses :class:`~psychopy.core.StaticPeriod` class * ADDED: Polygon Component to Builder for drawing regular polygons (including simple lines) * ADDED: TrialHander can now fetch previous trials as well as future ones (thanks Mike MacAskill) * ADDED: BufferImageStim accepts mask and pos params (thanks Jeremy) * ADDED: generated Sounds (not sound files) now use a Hamming window to get rid of sharp onset/offset noises (thanks Jeremy) * ADDED: microphone component able to play & identify a marker tone (for vocal RT), compute loudness, compression (Jeremy) * ADDED: sound files: lossless compress / uncompress (requires flac executable installed separately) (Jeremy) * ADDED: microphone compress() audio recordings; requires flac download (not packaged with PsychoPy) * ADDED: new preference `flac` = system path for flac, e.g. c:/Program Files (x86)/FLAC/flac.exe (not always needed) * FIXED: greyscale images were being distorted during display since 1.77.00 * FIXED: reduced number of queries when closing down and provides filenames of changed files in msg (thanks Piot Iwaniuk) * FIXED: movieStim.contains() and .overlaps() can work, requires that the visual.Window has units of pix PsychoPy 1.77 ------------------------------ PsychoPy 1.77.02 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ released July 2013 * FIXED: problem with Builder Images appearing grey unless they were 'constant'. This is a bug that was introduced in 1.77.00 with the faster loading of images. * FIXED: having a monitors folder with a unicode character in the path doesn't break the app (thanks Sebastiaan Mathot) PsychoPy 1.77.01 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ released June 2013 * Standalone package changes: - fixed pytables version on Win32 (to be compatible with WinXP) - pyo upgraded to 0.6.6 on OSX and Win32 * FIXED: The recent files list in Builder now contains recent files! (Thanks Piotr Iwaniuk) * FIXED: Timing issue with LC Tech eye-tracker in iohub PsychoPy 1.77.00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ released June 2013 * ADDED: preview of Sol Simpson's **ioHub** for faster (asynchronous) polling of hardware including mouse, keyboard, eyetrackers and other devices. See iohub demos for example usage. This provides many advantages over previous event polling: - asynchronous process allows constant polling (not tied to refresh rates) in a way that won't impact the rendering of your stimuli. It even runs on a separate CPU core if possible. - provides up/down/duration for key presses - provides unicode character (rather than simply key name for keyboard) - provides a unified API for eyetracker classes - provides async access to the parallel port - provides an alternative data output format (using hdf5) particularly useful for high-output streaming data (e.g. eye-trackers) * DEPRECATED: opensslwrap will soon be replaced by pyFileSec, a much-improved version of the same package (= file-oriented encryption) * IMPROVED: substantially (~40%) faster loading of RGB images from disk (by using byte format rather than float). May also allow storing of more images on graphics card than previously * ADDED: :class:`AdvancedMicrophone` class to add and retrieve a high-frequency tone to indicate the start of recording (e.g., to allow accurate vocal RT estimation), with demo (Jeremy Gray) * REFACTORED: parallel port support. Support for Windows via inpout32/inpout64 and Linux via pyparallel added. Existing API maintained for single port usage, but new PParallel classes added to provide more flexibility when dealing with multiple ports. see :ref:`parallel` (Thanks Mark Hymers) * ADDED: :class:`MovieStim` now updates its `status` attribute to FINISHED, in line with other stimuli * CHANGED: microphone default file names include milliseconds (to avoid two files with the same name) * ADDED: color-word speech-recognition demo (coder > input > speech_recognition.py) * ADDED: in Builder components dialog boxes, text that will be interpreted as code is displayed in monospace font * ADDED: remove and warn about trailing whitespace in Builder component values (but not Text fields) * ADDED: support for pyglet version 1.2 alpha (but 1.1.4 is still recommended - it appears to render faster) * ADDED: more sound.SoundPyo methods (get & set duration, volume, looping) * FIXED: event.Mouse() can obtain a default visual.Window(), if one has already been created * ADDED: Builder components generate a compile-time warning if a field's value looks dynamic but its updating is constant (Jeremy Gray) * ADDED: better simulated scanner-noise in launchScan (just for fun) * ADDED: RatingScale.getHistory() returns intermediate time-stamped ratings; allows "continuous" ratings * CHANGED: RatingScale.getRating() no longer returns False prior to an accepted rating (now returns the currently selected value) PsychoPy 1.76 ------------------------------ PsychoPy 1.76.00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The compatibility changes in this release below are likely to affect very few users * ADDED: :func:`Window.callOnFlip() ` function to allow arbitrary functions to be called, timed precisely to the point where the frame flip has occurred (see Coder Demos>Timing>callOnFlip) * FIXED: a scaling bug in RatingScale descriptions (Giuseppe Pagnoni) * ADDED: support for mirror-image text, and mirror-image BufferImageStim (Jeremy Gray) * ADDED: support for lower latency sound with the pyo library. For now pygame remains the default but this can be changed by setting the order in preferences>general>audio * :blue:`CHANGED: PsychoPy Standalone is now being built using python 2.7.3 (rather than 2.6). Under OSX psignifit has been removed from this distribution, as have the libraries to create .mov files using Window.saveMovieFrames(). If you need those features then install the 1.75 Standalone and then update to 1.76 using the auto-update system.` * ADDED: sound objects (either pygame or pyo) now support autologging * FIXED: a bug in the generation of the LMS color space conversion matrix. It seems nobody was actually using this for real, but if you were contact Jon for details! * CHANGED: various changes to RatingScale (thanks Henrik Singman): * CHANGED: choices are now displayed at the tick marks by default (instead of above the line). To restore the old behavior set labels=False. This does not affect experiments created in older versions of the builder. * ADDED: check box "choiceLabelsAboveLines" to the RatingScale component of the builder (advanced tab) to still have the choice labels above the line. * ADDED: arguments tickMarks and labels to RatingScale class to control where tick marks (for quantitative rating scales) should be placed at the line and how these should be labeled. * ADDED: argument ticksAboveLine to RatingScale class. Controls where the tick marks should be plotted (above or below the line). * FIXED: problem with unset exp.name (was causing wx.Dialog error "TypeError: String or Unicode type required" on new experiments) * :blue:`CHANGED: exp.name is no longer available from Builder scripts (use exp.getExpName() instead)` * FIXED: problem with tiling of depth values for ElementArrayStim (thanks Yuri Spitsyn) * FIXED: Fix to setContrast for certain visual stimuli (Jonas Lindeløv) * FIXED: inability to launch scripts/experiments if the Mac Standalone was in a folder with a space in it * FIXED: Aperture Component now honours the 'units' (Hiroyuki Sogo) * :blue:`FIXED: stimulus contains/overlaps functions now use stimulus 'units' and take stimulus orientation into account (Hiroyuki Sogo) NB if you had code in place to perform these corrections yourself you should now remove it!` * FIXED: some data outputs were not honouring the 'matrixOnly' option (Mike MacAskill) * FIXED: when loading a psydat file of an ExperimentHandler the file automatically saved new copies of its csv/excel outputs. This no longer occurs (if loaded using misc.fromFile) * ADDED: timestamp option to event.waitKeys() (Jonas Lindeløv) * ADDED: a first-run wizard to check the system, report as html (somewhat experimental) (Jeremy Gray) * ADDED: a benchmark wizard (Tools menu) to test hardware & software, option to share on psychopy.org (Jeremy Gray) * ADDED: info.getRAM() (Jeremy Gray) * FIXED: Fall back to primary display if a secondary one is specified but unavailable. (Erik Kastman) PsychoPy 1.75.01 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * FIXED: Bug with not being able to play sounds of blank (infinite) duration from Builder PsychoPy 1.75.00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * CHANGED: New Builder experiments will, by default save a single csv file, a single psydat file and a single log file. Was previously also saving an Excel file (wiht one sheet per loop) and many psydat files (one per loop). This can be changed in settings. Psydat files can still be used to re-output any format of data file. * IMPROVED: Experiment info dialog box easier to control now from experiment settings (user doesn't need to write a dictionary by hand any more) * IMPROVED: Components in the Builder are now arranged in categories, including a special 'Favorites' category * IMPROVED: Code Components now support full syntax highlighting and code folding (but still aren't quite big enough!) * ADDED: Builder undo/redo now gives info about what is going to be un/redone * ADDED: Window now supports a `stereo` flag to provide support for quad-buffers (advanced graphics cards only) * FIXED: bug with copying/pasting Routines that was breaking Flow in certain situations and corrupting the experiment file * FIXED: fatal typo in QuestHandler code (Gary Lupyan) * FIXED: data outputs for multiple key/mouse presses * ADDED: Microphone now supports `stop` to abort recording early (Jeremy Gray) * ADDED: beginning of error reporting when generating Builder experiments (thanks Piotr Iwaniuk) * FIXED: csv files now generated from Builder as expected not dlm files (tab-delimited) PsychoPy 1.74 ------------------------------ PsychoPy 1.74.04 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * IMPROVED: larger Code Component boxes (and fixed bug with being only one line on linux) * FIXED: Builder code syntax error when using Mouse set state 'every frame' * FIXED: Builder was erroneously using 'estimated duration' for constraining non-slip timing * FIXED: Builder couldn't open Experiment Settings if the expected screen number didn't exist on this system PsychoPy 1.74.03 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (released Aug 2012) * FIXED: the multiline text entry box in the Builder Text Component was broken (thanks Piotr Iwaniuk) * IMPROVED: serial (RS232) interface to fORP button box to avoid recording repeated presses (thanks Nate Vack). Does not affect use of fORP box from USB interface. PsychoPy 1.74.02 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (released Aug 2012) * FIXED: bug leading to message: `IndexError: string index out of range.` This was caused by problem saving excel files * FIXED: bug leading to message: `AttributeError: ImageStim instance has no attribute 'rgbPedestal'.` Was only occurring on non-shaders machines using the new ImageStim. * FIXED: problem loading old ExperimentHandlers that contained MultiStairHandlers * FIXED: Builder Text Components gave an error if letter height was a variable * ADDED: Window.flip() now returns the timestamp for the flip if possible (thanks Sol Simpson) * ADDED: misc.sph2cart (Becky Sharman) * ADDED: warning when user presents SimpleImageStim that seems to extend beyond screen (James McMurray) PsychoPy 1.74.01 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (released July 2012) * FIXED: the pyo package is now included in the windows Standalone distribution (making audio input available as intended) * FIXED: error saving excel data from numpy.int formats (Erik Kastman) * FIXED: error at end of automated gamma calibration (which was causing a crash of the calibration script) * FIXED: misc.getDateStr() returns numeric date if there's an error with unicode encoding (Jeremy) * FIXED: added partial support for non-ASCII keyboards (Sebastiaan Mathot) PsychoPy 1.74.00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (released July 2012) Highlights (and compatibility changes): * :blue:`CHANGED`: Builder experiments saved from this version will NOT open in older versions * :blue:`ADDED: 'non-slip' timing methods to the Builder interface (improved timing for imaging experiments)` See :ref:`nonSlip` for further info * :blue:`ADDED: Long-wide data file outputs, which are now the default for all new Builder experiments.` See :ref:`longWide` outputs * :blue:`CHANGED: The psydat output files from Builder` have also changed. They are now :class:`~psychopy.data.ExperimentHandler` objects, which contain all loops in a single file. Previously they were TrialHandlers, which required one file for each loop of the experiment. Analysis scripts will need slight modifications to handle this * :blue:`CHANGED: The summarised excel/csv outputs now have an additional column for the order of the stimulus as presented.` This may affect any automated analysis you perform on your spreadsheet outputs * :blue:`RESTRUCTURED:` the generation of 'summarised' data outputs (text and excel) were also rewritten in this version, so make sure that your data files still contain all the data you were expecting * ADDED: basic audio capture (and speech recognition via google!). Builder now has a Microphone Component to record inputs, but does not yet use the speech recognition facility. See :ref:`psychopy.microphone ` library, Coder demo "input/say_rgb.py" and Builder demo "voiceCapture". (Jeremy) * ADDED: HSV color space for all stimuli * :blue:`CHANGED: in Builder the default :class:`~psychopy.visual.DotStim` has signal dots='same' (once a signal dot, always a signal dot).` Only affects new experiments * :blue:`CHANGED: data.FitCumNormal now uses a slightly different equation that has a slightly different equation`, which alters the interpretation of the parameters (but not the quality of fit). Parameters from this function before version 1.74 cannot to be compared with new values. * :blue:`CHANGED: pygame is no longer being formally supported/tested` although it will probably continue to work for some time. Additional changes: * ADDED: contains() and intersects() methods to visual shape stimuli (including Rect etc) to determine whether a point or array of points is within the present stimulus boundaries * FIXED: missing parameter name in conditions file is detected, triggers more informative error message * ADDED: fORP: option asKeys to handle button presses as pyglet keyboard events (when using a serial port); faster getUniqueEvents() * ADDED: basic file encryption (beta) using RSA + AES-256; see API encryption for usage and caveats * ADDED: upload a file to a remote server over http (libs: web.upload) with coder demo, php scripts for server (contrib/http/) * ADDED: Builder demo (dualRatingScales): show a stim, get two different ratings side by side [unpack the demos again] * ADDED: rating scale options: 'maxTime' to time-out, 'disappear' to hide after a rating; see new Builder demo * FIXED: rating scale bug: skipKeys was not handling 'tab' properly (no skip for tab-key, do skip for 't', 'a', or 'b') * ADDED: new locale pref for explicitly setting locale, used in date format and passed to builder scripts (Jeremy, Hiroku Sogo) * ADDED: 'enable escape' option in experiment settings, default is 'enabled' * ADDED: support for :class:`~psychopy.visual.ElementArrayStim` to use the same set of color spaces as other stimuli * CHANGED: removed python 2.4's version of sha1 digest from :class:`~psychopy.info.RunTimeInfo` * CHANGED: removed any need for PyOpenGL (pyglet.gl now used throughout even for pygame windows) * FIXED: Builder was ignoring changes to :class:`~psychopy.visual.DotStim` FieldPos (thanks Mike MacAskill) * FIXED: Builder Flow is smarter about Loops and now stops you creating 'broken' ones (e.g. Loops around nothing) * FIXED: MovieStim used from Builder was not working very well. Sounds continued when it was told to stop and the seek(0.0001) line was causing some file formats not to work from Builder only (those that don't support seeking) * FIXED: Mouse component was not saving clicks in Builder experiments if forceEndOnClick was set to be False * FIXED: DotStim.setFieldCoherence was having no effect if noise dots were updating by 'position' * FIXED: TextStim.setColor() was not updating stimulus properly when haveShaders=False * FIXED: In Builder, sound duration was not being used in creating new sounds * CHANGED: Under linux, although you will be warned if a new version is available, it will not be auto-installed by PsychoPy (that should be done by your package manager) * FIXED: csv/dlm data outputs no longer have a trailing delimitter at end of line * FIXED: all test suite tests should now pass :-) PsychoPy 1.73 ------------------------------ PsychoPy 1.73.06 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (released April 2012) * FIXED: xlsx outputs were collapsing raw data from trials with non-response * FIXED: monitor gamma grids are now returned as arrays rather than lists (Ariel Rokem) * FIXED: bug with Window.setColor being incorrectly scaled for some spaces * FIXED: buglet preventing unicode from being used in TrialHandler parameter names (William Hogman) and saving to data files (Becky Sharman) * FIXED: StairHandler in Builder now saves the expInfo dictionary (Jeremy) * FIXED: can unpickle from either old-style or new-style data files (using psychopy.compatibility.fromFile()) (Erik Kastman) PsychoPy 1.73.05 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (Released March 2012) * FIXED: Joystick error when calling :class:`~psychopy.hardware.joystick.Joystick.getHat()` or :class:`~psychopy.hardware.joystick.Joystick.getHats()` (fixed by Gary Lupyan) * FIXED: BufferImageStim crashing on some linux boxes (due to bug with checking version of OpenGL) (fixed by Jonas Lindelov) * FIXED: fMRI emulator class was providing old-format key events (fixed by Erik Kastman and Jeremy) * FIXED: Win.setRecordFrameIntervals(True) was including the time since it was turned off as a frame interval (fixed by Alex Holcombe) * FIXED: using forceEndtrial from a mouse component in Builder wasn't working (thanks Esteban for the heads-up) * FIXED: visual.Circle now respects the edges parameter (fixed by Jonas Lindelov) * FIXED: having IPython v0.12 should no longer crash psychopy on startup (Jeremy) * FIXED: non-ascii month-name (eg Japanese) from %B is now filtered out to avoid crash when compile a psyexp script (Jeremy) * ADDED: support for usb->serial devices under linux (William Hogman) * ADDED: option to vertically flip a BufferImageStim upon capture (esp for fMRI-related presentation of text) (Jeremy) * ADDED: option to play a sound (simple tone) during fMRI launchScan simulation (Jeremy) PsychoPy 1.73.04 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (released Feb 2012) * :blue:`CHANGED: Builder scripts now silently convert division from integers to float where necessary.` That means 1/3=0.333 whereas previously 1/3=0. This is done simply by adding the line `from __future__ import division` at the top of the script, which people using Coder might want to think about too. * FIXED: problem with loading .psydat files using misc.fromFile (thanks Becky) * FIXED: issue on OSX with updating from 1.70 binaries to 1.73 patch release PsychoPy 1.73.03 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (released Jan 2012) * FIXED: problem with loops crashing during save of xlsx/csv files if conditions were empty * FIXED: bugs in Builder setting Dots coherence and direction parameters * FIXED: problem with strange text and image rendering on some combinations of ATI graphics on Windows machines PsychoPy 1.73.02 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (released Jan 2012) * ADDED: loop property to :class:`~psychopy.visual.MovieStim` for coder only so far (thanks Ariel Rokem) * FIXED: buglet requesting import of pyaudio (thanks Britt for noticing and Dan Shub for fixing) * FIXED: problem with avbin (win32) * FIXED: problem with unicode characters in filenames preventing startup * FIXED: bug with 'fullRandom' method of :class:`~psychopy.data.TrialHandler` missing some trials during data save * FIXED: :func:`Mouse.clickReset()` now resets the click timers * FIXED(?): problem with avbin.dll not being found under 64-bit windows PsychoPy 1.73.00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (released Jan 2012) * :blue:`CHANGED: psychopy.log has moved to psychopy.logging (Alex Holcombe's suggestion). You'll now get a deprecation warning for using psychopy.log but it will still work (for the foreseeable future)` * ADDED: new hardware.joystick module supporting pyglet and pyjame backbends for windows and OSX. Demo in Not working on Linux yet. See demos>input * ADDED: support for CRS ColorCAL mkII for gamma calibrations in Monitor Center. * ADDED: data.ExpHandler to combine data for multiple separate loops in one study, including output of a single wide csv file. See demos>experimental control>experimentHandler. Support from Builder should now be easy to add * ADDED: ability to fix (seed) the pseudorandom order of trials in Builder random/full-random loops * ADDED: auto-update (and usage stats) can now detect proxies in proxy.pac files. Also this now runs in a low-priority background thread to prevent any slowing at startup time. * FIXED: bug when passing variables to Staircase loops in Builder * FIXED: mouse in Builder now ignores button presses that began before the 'start' of the mouse * FIXED: can now use pygame or pyaudio instead of pygame for sounds, although it still isn't recommended (thanks Ariel Rokem for patch) PsychoPy 1.72.00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (rc1 released Nov 2011) * :blue:`CHANGED: gui.Dlg and gui.dlgFromDict can now take a set of choices and will convert to a choice control if this is used (thanks Manuel Ebert)` - for gui.Dlg the `.addField()` method now has `choices` attribute - for gui.dlgFromDict if one of the values in the dict is a list it will be interpreted as a set of choices (NB this potentially breaks old code) - for info see API docs for psychopy.gui * ADDED: improvements to drawing of shapes (thanks Manuel Ebert for all) - ShapeStim now has a size parameter that scales the locations of vertices - new classes; Rect, Line, Circle, Polygon * FIXED: error with DotStim when fieldSize was a tuple and fieldShape was 'sqr' * FIXED: calibration plots in Monitor Center now resize and quit as expected * FIXED: conditions files can now have lists of numbers [0,0] * FIXED: buglet with flushing mouse events (thanks Sebastiaan Mathot) * FIXED: Builder components now draw in order, from top to bottom, so lower items obscure higher ones * FIXED: problem with Patch Component when size was set to be dynamic * FIXED: problem with Builder loops not being able to change type (e.g. change 'random' into 'staircase') * FIXED: data from TrialHandler can be output with unicode contents (thanks Henrik Singmann) PsychoPy 1.71 ------------------------------ PsychoPy 1.71.01 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (released Oct 2011) * CHANGED: the number of stimulus-resized and frames-dropped warnings is now limited to 5 (could become a preference setting?) * FIXED: Builder now allows images to have size of None (or 'none' or just blank) and reverts to using the native size of the image in the file * FIXED: occasional glitch with rendering caused by recent removal of depth testing (it was getting turned back on by TextStim.draw()) * FIXED: opening a builder file from coder window (and vice versa) switches view and opens there * FIXED: problem showing the About... item on OS X Builder view * FIXED problem with loops not showing up if the conditions file wasn't found * FIXED: runTimeInfo: better handling of cwd and git-related info * FIXED: rating scale: single click with multiple rating scales, auto-scale with precision = 1 * IMPROVED: rendering speed on slightly older nVidia cards (e.g. GeForce 6000/7000 series) under win32/linux. ElementArrays now render at full speed. Other cards/systems should be unchanged. * IMPROVED: rating scale: better handling of default description, scale=None more intuitive * ADDED: new function getFutureTrial(n=1) to TrialHandler, allowing users to find out what a trial will be without actually going to that trial * ADDED: misc.createXYs() to help creating a regular grid of xy values for ElementArrayStim PsychoPy 1.71.00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (released Sept 2011) * :blue:`CHANGED: Depth testing is now disabled. It was already being recommended that depth was controlled purely by drawing order (not depth settings) but this is now the *only* way to do that` * CHANGED: The Builder representation of the Components onset/offset is now based on 'estimatedStart/Stop' where a value has been given. NB this does not affect the actual onset/offset of Components merely its representation on the timeline. * ADDED: Builder loop conditions mini-editor: (right-click in the filename box in a loop dialog) - create, edit, and save conditions from within PsychoPy; save & load using pickle format - preview .csv or .xlsx conditions files (read-only) * ADDED: RatingScale method to allow user to setMarkerPosition() * ADDED: Builder dialogs display a '$' to indicate fields that expect code/numeric input * ADDED: Text Component now has a wrapWidth parameter to control the bounding box of the text * ADDED: Opacity parameter to visual stimulus components in the Builder, so you can now draw plaids etc from the builder * FIXED: can edit or delete filename from loop dialog * FIXED: bug in RunTimeInfo (no longer assumes that the user has git installed) * FIXED: bug in BufferImageStim * FIXED: bug in Builder Ratingscale (was always ending routine on response) * FIXED: problem with nested loops in Builder. Inner loop was not being repeated. Loops are now only created as they are needed in the code, not at the beginning of the script * FIXED: rendering of many stimuli was not working beyond 1000 elements (fixed by removal of depth testing) * FIXED: mouse component now using start/duration correctly (broken since 1.70.00) * FIXED: when changing the texture (image) of a PatchStim, the stimulus now 'remembers' if it had been created with no size/sf set and updates these for the new image (previously the size/sf got set according to the first texture provided) * FIXED: putting a number into Builder Sound Component does now produce a sound of that frequency * FIXED: added 'sound','misc','log' to the component names that PsychoPy will refuse. Also a slightly more informative warning when the name is already taken * FIXED: Opacity parameter was having no effect on TextStim when using shaders * FIXED bug with MovieStim not starting at beginning of movie unless a new movie was added each routine PsychoPy 1.70 ------------------------------ PsychoPy 1.70.02 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * FIXED: bug in Builder Ratingscale (was always ending routine on response) * FIXED: problem with nested loops in Builder. Inner loop was not being repeated. Loops are now only created as they are needed in the code, not at the beginning of the script * FIXED: rendering of many stimuli was not working beyond 1000 stimuli (now limit is 1,000,000) * FIXED: mouse component now using start/duration correctly (broken since 1.70.00) * FIXED: when changing the texture (image) of a PatchStim, the stimulus now 'remembers' if it had been created with no size/sf set and updates these for the new image (previously the size/sf got set according to the first texture provided) * CHANGED: Depth testing is now disabled. It was already being recommended that depth was controlled purely by drawing order (not depth settings) but this is now the *only* way to do that * CHANGED: The Builder representation of the Components onset/offset is now based on 'estimatedStart/Stop' where a value has been given. NB this does not affect the actual onset/offset of Components merely its representation on the timeline. PsychoPy 1.70.01 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (Released Aug 2011) * FIXED: buglet with Builder (1.70.00) importing older files not quite right and corrupting the 'allowedKeys' of keyboard component * FIXED: buglet with SimpleImageStim. On machines with no shaders some images were being presented strangely * FIXED: buglet with PatchStim. After a call to setSize, SF was scaling with the stimulus (for unit types where that shouldn't happen) PsychoPy 1.70.00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (Released Aug 2011) *NB This version introduces a number of changes to Builder experiment files that will prevent files from this version being opened by earlier versions of PsychoPy* * :blue:`CHANGED use of allowedKeys in Keyboard Component.` You used to be able to type `ynq` to get those keys, but this was confusing when you then needed `'space'` or `'left'` etc. Now you must type 'y','n','q', which makes it more obvious how to include 'space','left','right'... * CHANGED dot algorithm in DotStim. Previously the signalDots=same/different was using the opposite to Scase et al's terminology, now they match. Also the default method for noiseDots was 'position' and this has been changed to 'direction'. The documentation explaining the algorithms has been clarified. (see :ref:`dots`) * CHANGED `MovieStim.playing` property to be called `MovisStim.status` (in keeping with other stimuli) * CHANGED names: - `data.importTrialTypes` is now `data.importConditions` - `forceEndTrial` in Keyboard Component is now `forceEndRoutine` - `forceEndTrialOnPress` in Mouse Component is now `forceEndRoutineOnPress` - `trialList` and `trialListFile` in Builder are now `conditions` and `conditionsFile`, respectively - 'window units' to set Component units is now 'from exp settings' for less confusion * :blue:`CHANGED numpy imports in Builder scripts:` - only a subset of numpy features are now imported by default: numpy: sin, cos, tan, log, log10, pi, average, sqrt, std, deg2rad, rad2deg, linspace, asarray, random, randint, normal, shuffle - all items in the numpy namespace are available as np.* - if a pre-v1.70 script breaks due to this change, try prepending 'np.' or 'np.random.' * :blue:`CHANGED: Builder use of $.` $ can now appear anywhere in the field (previously only the start). To display a '$' character now requires '\\$' in a text field (to prevent interpretation of normal text as being code). * ADDED flexibility for start/stop in Builder Components. Can now specify stimuli according to; - variable values (using $ symbol). You can also specify an 'expected' time/duration so that something is still drawn on the timeline - number of frames, rather than time (s), for greater precision - an arbitrary condition (e.g. otherStim.status==STOPPED ) * ADDED the option to use a raised cosine as a PatchStim mask (thanks Ariel Rokem) * ADDED a preference setting for adding custom path locations to Standalone PsychoPy * ADDED Dots Component to Builder interface for random dot kinematograms * ADDED wide-format data files (saveAsWideText()) (thanks Michael MacAskill) * ADDED option for full randomization of repeated lists (loop type 'fullRandom') (Jeremy) * ADDED builder icons can now be small or large (in prefs) * ADDED checking of conditions files for parameter name conflicts (thanks Jeremy) * ADDED emulate sync pulses and user key presses for fMRI or other scanners (for testing); see hardware/launchScan in the API reference, and Coder `demos > experimental control > fMRI_launchScan.py` (Jeremy) * ADDED right-clicking the expInfo in Experiment Settings tests & previews the dialog box (Jeremy) * ADDED syntax checking in code component dialog, right-click (Jeremy) * IMPROVED documentation (thanks Becky Sharman) * IMPROVED syntax for using $ in code snippets (e.g., "[$xPos, $yPos]" works) (Jeremy) * IMPROVED Flow and Routine displays in the Builder, with zooming; see the View menu for key-board shortcuts (Jeremy) * IMPROVED Neater (and slightly faster) changing of Builder Routines on file open/close * FIXED demos now unpack to an empty folder (Jeremy) * FIXED deleting an empty loop from the flow now works (Jeremy) * FIXED further issue in QUEST (the addition in 1.65.01 was being used too widely) * FIXED bug with updating of gamma grid values in Monitor Center PsychoPy 1.65 ------------------------------ PsychoPy 1.65.02 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Released July 2011 * FIXED Builder keyboard component was storing 'all keys' on request but not all RTs * FIXED Aperture Component in Builder, which was on for an entire Routine. Now supports start/stop times like other components * IMPROVED Sound stimuli in Builder: * FIXED: sounds could be distorted and would repeat if duration was longer than file * ADDED volume parameter to sound stimuli * FIXED: duration parameter now stops a file half-way through if needed * FIXED buglet preventing some warning messages being printed to screen in Builder experiments * FIXED bug in the copying/pasting of Builder Routines, which was previously introducing errors of the script with invalid _continueName values PsychoPy 1.65.01 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (Released July 2011) * FIXED buglets in QUEST handler (thanks Gerrit Maus) * FIXED absence of pygame in 1.65.00 Standalone release * ADDED shelve module to Standalone (needed by scipy.io) * ADDED warnings about going outside the monitor gamut for certain colors (thanks Alex Holcombe) PsychoPy 1.65.00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (Released July 2011) * ADDED improved gamma correction using L=a+(b+kI)**G formula (in addition to industry-standard form). Existing gamma calibrations will continue to use old equation but new calibrations will take the new extended formula by default. * ADDED MultiStairHandler to run multiple interleaved staircases (also from the Builder) * ADDED createFactorialTrialList, a convenience function for full factorial conditions (thanks Marco Bertamini) * CHANGED Builder keyboard components now have the option to discard previous keys (on by default) * CHANGED RatingScale: - ADDED: argument to set lineColor independently (thanks Jeff Bye) - CHANGED default marker is triangle (affects windows only) - ADDED single-click option, custom-marker support - FIXED: bug with precision=1 plus auto-rescaling going in steps of 10 (not 1) * FIXED errors with importing from 'ext' and 'contrib' * FIXED error in joystick demos * FIXED bug in ElementArrayStim depth * FIXED bug in misc.maskMatrix. Was not using correct scale (0:1) for the mask stage * FIXED buglet in StairHandler, which was only terminating during a reversal * FIXED bug when loading movies - they should implicitly pause until first draw() (thanks Giovanni Ottoboni) * IMPROVED handling of non-responses in Builder experiments, and this can now be the correct answer too (corrAns=None). ie. can now do go/no-go experiments. (Non-responses are now empty cells in excel file, not "--" as before.) PsychoPy 1.64 ------------------------------ PsychoPy 1.64.00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Released April 2011 * ADDED option to return field names when importing a trial list (thanks Gary Lupyan) * ADDED Color-picker on toolbar for Coder and context menu for Builder (Jeremy Gray) * ADDED CustomMouse to visual (Jeremy Gray) * ADDED Aperture object to visual (thanks Yuri Spitsyn) and as a component to Builder (Jeremy Gray) * CHANGED RatingScale (Jeremy Gray): - FIXED bug in RatingScale that prevented scale starting at zero - ADDED RatingScale "choices" (non-numeric); text size, color, font, & anchor labels; pos=(x,y) (Jeremy Gray) - CHANGED RatingScale internals; renamed escapeKeys as skipKeys; subject now uses 'tab' to skip (Jeremy Gray) * ADDED user-configurable code/output font (see coder prefs to change) * ADDED gui.Dlg now automatically uses checkboxes for bools in inputs (Yuri Spitsyn) * ADDED RatingScale component for Builder (Jeremy Gray) * ADDED packages to Standalone distros: - pyxid (Cedrus button boxes) - labjack (good, fast, cheap USB I/O device) - egi (pynetstation) - pylink (SR Research eye trackers) - psignifit (bootstrapping, but only added on mac for now) * ADDED option for Builder components to take code (e.g. variables) as start/duration times * ADDED support for RGBA files in SimpleImageStim * IMPROVED namespace management for variables in Builder experiments (Jeremy Gray) * IMPROVED prefs dialog * IMPROVED test sequence for PsychoPy release (so hopefully fewer bugs in future!) * FIXED bug with ElementArrayStim affecting the subsequent color of ShapeStim * FIXED problem with the error dialog from Builder experiments not being a sensible size (since v1.63.03 it was just showing a tiny box instead of an error message) * FIXED Coder now reloads files changed outside the app when needed (thanks William Hogman) * FIXED Builder Text Component now respects the font property * FIXED problem with updating to a downloaded zip file (win32 only) * FIXED bug with ShapeStim.setOpacity when no shaders are available * FIXED *long-standing pygame scaling bug* * FIXED you can now scroll Builder Flow and still insert a Routine way to the right PsychoPy 1.63 ------------------------------ PsychoPy 1.63.04 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Released Feb 2011 * FIXED bug in windows prefs that prevents v1.63.03 from starting up * FIXED bug that prevents minolte LS100 from being found PsychoPy 1.63.03 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Released Feb 2011 * ADDED Interactive shell to the bottom panel of the Coder view. Choose (in prefs) one of; * pyShell (the default, with great tooltips and help) * IPython (for people that like it, but beware it crashes if you create a psychopy.visual.Window() due to some threading issue(?)) * ADDED scrollbar to output panel * FIXED small bug in QUEST which gave an incorrectly-scaled value for the next() trial * FIXED ElementArrayStim was not drawing correctly to second window in multi-display setups * FIXED negative sound durations coming from Builder, where sound was starting later than t=0 * FIXED a problem where Builder experiments failed to run if 'participant' wasn't in the experiment info dialog PsychoPy 1.63.02 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Released Feb 2011 * ADDED clearFrames option to Window.saveMovieFrames * ADDED support for Spectrascan PR655/PR670 * ADDED 'height' as a type of unit for visual stimuli NB. this is likely to become the default unit for new users (set in prefs) but for existing users the unit set in their prefs will remain. That means that your system may behave differently to your (new user) colleague's * IMPROVED handling of damaged experiments in Builder (they don't crash the app any more!) * IMPROVED performance of autoLogging (including demos showing how to turn of autoLog for dynamic stimuli) PsychoPy 1.63.01 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Released Jan 2011 * FIXED bug with ElementArrayStim.setFieldPos() not updating * FIXED mouse release problem with pyglet (since in 1.63.00) * ADDED ability to retrieve a timestamp for a mouse event, similar to those in keyboard events. This is possible even though you may not retrieve the mouse event until later (e.g. waiting for a frame flip). Thanks Dave Britton * FIXED bug with filters.makeGrating: gratType='sqr' was not using ori and phase * FIXED bug with fetching version info for autoupdate (was sometimes causing a crash on startup if users selected 'skip ths version') * CHANGED optimisation routine from fmin_powell to fmin_bfgs. It seems more robust to starting params. PsychoPy 1.63.00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Released Dec 2010 * **ADDED autoLog mechanism:** * many more messages sent, but only written when log.flush() is called * rewritten backend to logging functions to remove file-writing performance hit * added `autoLog` and `name` attributes to visual stimuli * added setAutoDraw() method to visual stimuli (draws on every win.flip() until set to False) * added logNextFlip() method to visual.Window to send a log message time-stamped to flip * **FIXED bug in color calibration for LMS color space (anyone using this space should recalibrate immediately)** Thanks Christian Garber for picking up on this one. * FIXED bug with excel output from StairHandler * FIXED bug in ElemetArray.setSizes() * FIXED bug in running QuestHandler (Zarrar Shehzad) * FIXED bug trying to remove a Routine from Flow when enclosed in a Loop * FIXED bug with inseting Routines into Flow under Linux * FIXED bug with playing a MovieStim when another is already playing * CHANGED default values for Builder experiment settings (minor) * CHANGED ShapeStim default fillColor to None (from (0,0,0)) * FIXED DotStim now supports a 2-element fieldSize (x,y) again * CHANGED phase of RadialStim to be 'sin' instead of 'cosine' at phase=0 * FIXED rounding issue in RadialStim phase * FIXED ElementArrayStim can now take a 2x1 input for setSizes(), setSFs(), setPhases() * ADDED packages to standalone distributions: pyserial, pyparallel (win32 only), parallel python (pp), IPython * CHANGED Builder demos are now back in the distributed package. Use >Demos>Unpack... to put them in a folder you have access to and you can then run them from the demos menu * FIXED bug with ShapeStim initialisation (since 1.62.02) * UPDATED: Standalone distribution now uses Python2.6 and adds/upgrades; * parallel python (pp) * pyserial * ioLabs * ipython (for future ipython shell view in coder) * numpy=1.5.1, scipy=0.8.0, matplotlib=1.0 * UPDATED: Builder demos PsychoPy 1.62 ------------------------------ PsychoPy 1.62.02 ~~~~~~~~~~~~~~~~~~~~~~~~ Released Oct 2010 * FIXED: problem with RadialStim causing subsequent TextStims not to be visible * FIXED: bug with saving StairHandler data as .xlsx * ADDED: option for gui.fileOpenDlg and fileSaveDlg to receive a custom file filter * FIXED: builder implementation of staircases (initialisation was buggy) * FIXED: added Sound.setSound() so that sounds in builder can take new values each trial * FIXED: when a Routine was copied and pasted it didn't update its name properly (e.g. when inserted into the Flow it kept the origin name) * FIXED: color rendering for stimuli on non-shader machines using dkl,lms, and named color spaces * ADDED: data.QuestHandler (Thanks to Zarrar Shehzad). This is much like StairHandler but uses the QUEST routine of Watson and Pelli * **CHANGED: TextStim orientation now goes the other way, for consistency with other stimuli (thanks Manuel Spitschan for noticing)** * FIXED: Problem with DotStim using 'sqr' fieldShape * ADDED: MovieStim now has a setMovie() method (a copy of loadMovie()) * FIXED: problem with MovieStim.loadMovie() when a movie had already been loaded PsychoPy 1.62.01 ~~~~~~~~~~~~~~~~~~~~~~~~ Released Sept 2010 * ADDED: clicking on a Routine in the Flow window brings that Routine to current focus above * ADDED: by setting a loop in the Flow to have 0 repeats, that part of your experiment can be skipped * CHANGED: builder hides mouse now during fullscreen experiments (should make this a pref or setting though?) * FIXED: rendering problem with the Flow and Routine panels not updating on some platforms * ADDED: added .pause() .play() and .seek() to MovieStim (calling .draw() while paused will draw current static frame) * FIXED: bug in MovieStim.setOpacity() (Ariel Rokem) * FIXED: bug in win32 - shortcuts were created in user-specific start menu not all-users start menu * CHANGED: data output now uses std with N-1 normalisation rather than (scipy default) N * FIXED: bug when .psyexp files were dropped on Builder frame * FIXED: bug with Builder only storing last letter or multi-key button (e.g. 'left'->'t') under certain conditions * FIXED: when nReps=0 in Builder the loop should be skipped (was raising error) * CHANGED: mouse icon is now hidden for full-screen Builder experiments * FIXED: Builder was forgetting the TrialList file if you edited something else in the loop dialog * ADDED: visual.RatingScale and a demo to show how to use it (Jeremy Gray) * ADDED: The Standalone distributions now includes the following external libs: - pynetstation (import psychopy.hardware.egi) - ioLab library (import psychopy.harware.ioLab) * ADDED: trial loops in builder can now be aborted by setting someLoopName.finished=True * ADDED: improved timing. *Support for blocking on VBL for all platforms* (may still not work on intel integrated chips) * FIXED: minor bug with closing Coder windows generating spurious error messages * ADDED: 'allowed' parameter to gui.fileOpeNDlg and fileCloseDlg to provide custom file filters PsychoPy 1.62.00 ~~~~~~~~~~~~~~~~~~~~~~~~ Released: August 2010 * ADDED: support for Excel 2007 files (.xlsx) for data output and trial types input: - psychopy.data now has importTrialList(fileName) to generate a trial list (suitable for TrialHandler) from .xlsx or .csv files - Builder loops now accept either an xlsx or csv file for the TrialList - TrialHandler and StairHandler now have saveToExcel(filename, sheetName='rawData', appendFile=True). This can be used to generate almost identical files to the previous delimited files, but also allows multiple (named) worksheets in a single file. So you could have one file for a participant and then one sheet for each session or run. * CHANGED: for builder experiments the trial list for a loop is now imported from the file on every run, rather than just when the file is initially chosen * CHANGED: data for TrialHandler are now stored as masked arrays where possible. This means that trials with no response can be more easily ignored by analysis * FIXED: bug opening loop properties (bug introduced by new advanced params option) * FIXED: bug in Builder code generation for keyboard (only when using forceEnd=True but store='nothing') * CHANGED: RunTimeInfo is now in psychopy.info not psychopy.data * CHANGED: PatchStim for image files now defaults to showing the image at native size in pixels (making SimpleImageStim is less useful?) * CHANGED: access to the parameters of TrialList in the Builder now (by default) uses a more cluttered namespace for variables. e.g. if your TrialList file has heading rgb, then your components can access that with '$rgb' rather than '$thisTrial.rgb'. This behaviour can be turned off with the new Builder preference 'allowClutteredNamespace'. * FIXED: if Builder needs to output info but user had closed the output window, it is now reopened * FIXED: Builder remembers its window location * CHANGED: Builder demos now need to be fetched by the user - menu item opens a browser (this is slightly more effort, but means the demos aren't stored within the app which is good) * CHANGED: loops/routines now get inserted to Flow by clicking the mouse where you want them :-) * ADDED: you can now have multiple Builder windwos open with different experiments * ADDED: you can now copy and paste Routines form one Builder window to another (or itself) - useful for reusing 'template' routines * FIXED: color of window was incorrectly scaled for 'named' and 'rgb256' color spaces * ADDED: quicktime movie output for OSX 10.6 (10.5 support was already working) * ADDED: Mac app can now receive dropped files on the coder and builder panels (but won't check if these are sensible!!) * ADDED: debugMode preference for the app (for development purposes) * ADDED: working version of RatingStim PsychoPy 1.61 ------------------------------ PsychoPy 1.61.03 ~~~~~~~~~~~~~~~~~~~~~~~~ Patch released July 2010 * FIXED: harmless error messages caused by trying to get the file date/time when no file is open * CHANGED: movie file used in movie demo (the chimp had unknown copyright) * FIXED: problem with nVidia cards under win32 being slow to render RadialStim * FIXED bug in filters.makeGrating where gratType='sqr' * FIXED bug in new color spaces for computers that don't support shaders * ADDED option to Builder components to have 'advanced' parameters not shown by default (and put this to use for Patch Component) PsychoPy 1.61.02 ~~~~~~~~~~~~~~~~~~~~~~ Patch released June 2010 * ADDED: Code Component to Builder (to insert arbitrary python code into experiments) * ADDED: visual.RatingScale 'stimulus' (thanks to JG). See ratingScale demo in Coder view * FIXED: TrialHandler can now have dataTypes that contain underscores (thanks fuchs for the fix) * FIXED: loading of scripts by coder on windows assumed ASCII so broke with unicode characters. Now assumes unicode (as was case with other platforms) * FIXED: minor bugs connecting to PR650 PsychoPy 1.61.01 ~~~~~~~~~~~~~~~~~~~~~~ Patch released May 2010 * FIXED: Bug in coder spitting out lots of errors about no method BeginTextColor * FIXED: Buglet in rendering of pygame text withour shaders * FIXED: broken link for >Help>Api (reference) menuitem PsychoPy 1.61.00 ~~~~~~~~~~~~~~~~~~~~~~ Released May 2010 * CHANGED: color handling substantially. Now supply color and colorSpace arguments and use setColor rather than setRGB etc. Previous methods still work but give deprecation warning. * ADDED: Colors can now also be specified by name (one of the X11 or web colors, e.g. 'DarkSalmon') or hex color spec (e.g. '#E9967A') * REMOVED: TextStimGLUT (assuming nobody uses GLUT backend anymore) * ADDED: 'saw' and 'tri' options to specify grating textures, to give sawtooth and triangle waves * FIXED: visual.DotStim does now update coherence based on setFieldCoherence calls * FIXED: bug in autoupdater for installs with setuptools-style directory structure * FIXED: bug in SimpleImageStim - when graphics card doesn't support shaders colors were incorrectly scaled * CHANGED: console (stdout) default logging level to WARNING. More messages will appear here than before * ADDED: additional log level called DATA for saving data info from experiments to logfiles * ADDED: mouse component to Builder * ADDED: checking of coder script for changes made by an external application (thanks to Jeremy Gray) * ADDED: data.RuntimeInfo() for providing various info about the system at launch of script (thanks to Jeremy Gray) * FIXED: problem with rush() causing trouble between XP/vista (thanks to Jeremy Gray) * AMERICANIZATION: now consistently using 'color' not 'colour' throughout the project! ;-) * FIXED: problem with non-numeric characters being inserted into data structures * CHANGED: stimuli using textures now automatically clean these up, so no need for users to call .clearTextures() PsychoPy 1.60 ------------------------------ PsychoPy 1.60.04 ~~~~~~~~~~~~~~~~~~~~~~ Released March 2010 * FIXED build error (OS X 10.6 only) PsychoPy 1.60.03 ~~~~~~~~~~~~~~~~~~~~~~ Released Feb 2010 * FIXED buglet in gui.py converting 'false' to True in dialogs (thanks Michael MacAskill) * FIXED bug in winXP version introduced by fixes to the winVista version! Now both should be fine!! PsychoPy 1.60.02 ~~~~~~~~~~~~~~~~~~~~~~ Released Feb 2010 * CHANGED ext.rush() is no longer run by default on creation of a window. It seems to be causing more probs and providing little enhancement. * FIXED error messages from vista/7 trying to import pywintypes.dll PsychoPy 1.60.01 ~~~~~~~~~~~~~~~~~~~~~~ Released Feb 2010 * FIXED minor bug with the new psychophysicsStaircase demo (Builder) * FIXED problem with importing wx.lib.agw.hyperlink (for users with wx<2.8.10) * FIXED bug in the new win.clearBuffer() method * CHANGED builder component variables so that the user inputs are interpretted as literal text unless preceded by $, in which case they are treated as variables/python code * CHANGED builder handling of keyboard 'allowedKeys' parameter. Instead of `['1','2','q']` you can now simply use `12q` to indicate those three keys. If you want a key like `'right'` and `'left'` you now have to use `$['right','left']` * TWITTER follow on http://twitter.com/psychopy * FIXED? win32 version now compatible with Vista/7? Still compatible with XP? PsychoPy 1.60.00 ~~~~~~~~~~~~~~~~~~~~~~ Released Feb 2010 * simplified prefs: - no more site prefs (user prefs only) - changed key bindings for compileScript(F5), runScript(Ctrl+R), stopScript(Ctrl+.) * ADDED: full implementation of staircase to Builder loops and included a demo for it to Builder * CHANGED: builder components now have a 'startTime' and 'duration' rather than 'times' * ADDED: QuickTime output option for movies (OSX only) * ADDED: script is saved by coder before running (can be turned off in prefs) * ADDED: coder checks (and prompts) for filesave before running script * ADDED: setHeight to TextStim objects, so that character height can be set after initialisation * ADDED: setLineRGB, setFillRGB to ShapeStim * ADDED: ability to auto-update form PsychoPy source installer (zip files) * ADDED: Monitor Center can be closed with Ctrl-W * ADDED: visual.Window now has a setRGB() method * ADDED: visual.Window now has a clearBuffer() method * ADDED: context-specific help buttons to Builder dialogs * ADDED: implemented of code to flip SimpleImageStim (added new methods flipHoriz() and flipVert()) * ADDED: Butterworth filters to psychopy.filters (thanks Yaroslav Halchenko) * ADDED: options to view whitespace, EOLs and indent guides in Coder * ADDED: auto-scaling of time axis in Routines panel * IMPROVED: Splash screen comes up faster to show the app is loading * FIXED: bug in RadialStim .set functions (default operation should be "" not None) * FIXED: on mac trying to save an unchanged document no longer inserts an 's' * FIXED: bug with SimpleImageStim not drawing to windows except #1 * FIXED: one bug preventing PsychoPy from running on vista/win7 (are there more?) * CHANGED: psychopy.filters.makeMask() now returns a mask with values -1:1, not 0:1 (as expected by stimulus masks) * RESTRUCTURED: the serial package is no longer a part of core psychopy and is no longer required (except when hardware is actually being connected). This should now be installed as a dependency by users, but is still included with the Standalone packages. * RESTRUCTURED: preparing for further devices to be added, hardware is now a folder with files for each manufacturer. Now use e.g.:: from psychopy.hardware.PR import PR650 from psychopy.hardware.cedrus import RB730 PsychoPy 1.51.00 ------------------------------ (released Nov 2009) * CHANGED: gamma handling to handle buggy graphics drivers on certain cards - see note below * CHANGED: coord systems for mouse events - both winTypes now provide mouse coords in the same units as the Window * FIXED: mouse in pyglet window does now get hidden with Window allowGUI=False * FIXED: (Builder) failed to open from Coder view menu (or cmd/ctrl L) * FIXED: failure to load user prefs file * ADDED: keybindings can be handled from prefs dialog (thanks to Jeremy Gray) * ADDED: NxNx3 (ie RGB) numpy arrays can now be used as textures * FIXED: MovieStim bug on win32 (was giving spurious avbin error if visual was imported before event) NB. The changes to gamma handling should need no changes to your code, but could alter the gamma correction on some machines. For setups/studies that require good gamma correction it is recommended that you recalibrate when you install this version of PsychoPy. PsychoPy 1.50 ------------------------------ PsychoPy 1.50.04 ~~~~~~~~~~~~~~~~~~~~~~ (released Sep 09) * FIXED (Builder) bug with loading files (monitor fullScr incorrectly reloaded) * FIXED (Coder) bug with Paste in coder * FIXED (Builder) bug with drop-down boxes * FIXED (Builder) bug with removed routines remaining in Flow and InsertRoutineDlg * MOVED demos to demos/scripts and added demos/exps (for forthcoming Builder demos) * CHANGED (Builder) creating a new file in Builder (by any means) automatically adds a 'trial' Routine * FIXED (Builder) various bugs with the Patch component initialisation (params being ignored) * FIXED (Builder) better default parameters for text component PsychoPy 1.50.02 ~~~~~~~~~~~~~~~~~~~~~~ (released Sep 09) * FIXED bug loading .psydat (files component variables were being saved but not reloaded) * removed debugging messages that were appearing in Coder output panel * FIXED long-standing problem (OS X only) with "save unchanged" dialogs that won't go away * FIXED bug with 'cancel' not always cancelling on "save unchanged" dialogs * ADDED warning dialog if user adds component without having any routines * ADDED builder now remembers its location, size and panel sizes (which can be moved around) PsychoPy 1.50.01 ~~~~~~~~~~~~~~~~~~~~~~ (released Sep 09) * FIXED problem creating prefs file on first use * FIXED problem with removing (identical) routines in Flow panel * FIXED problem with avbin import (OS X standalone version) PsychoPy 1.50.00 ~~~~~~~~~~~~~~~~~~~~~~ (released Sep 09) * ADDED A preview of the new application structure and GUI * ADDED performance enhancements (OS X now blocks on vblank, all platforms rush() if user has permissions) * ADDED config files. These are already used by the app, but not the library. * ADDED data.getDateStr() for convenience * FIXED bug on certain intel gfx cards (shaders now require float extension as well as opengl2.0) * FIXED bug scaling pygame text (which caused pygame TextStims not to appear) * BACKWARDS NONCOMPAT: monitors is moved to be a subpackage of psychopy * BACKWARDS NONCOMPAT: added 'all_mean' (and similar) data types to TrialHandler.saveAsText and these are now default * ADDED TrialType object to data (extends traditional dicts so that trial.SF can be used as well as trial['SF']) * converted docs/website to sphinx rather than wiki (contained in svn) * FIXED bug with MovieStim not displaying correctly after SimpleImageStim * FIXED incorrect wx sizing of app(IDE) under OS X on opening * CHANGED license to GPL (more restrictive, preventing proprietary use) * CHANGED gui dialogs are centered on screen rather than wx default position * new dependency on lxml (for saving/loading builder files) PsychoPy 1.00 ------------------------------ PsychoPy 1.00.04 ~~~~~~~~~~~~~~~~~~~~~~ (released Jul 09) * DotStim can have fieldShape of 'sqr', 'square' or 'circle' (the first two are equiv) * CHANGED intepreters in all .py scripts to be the same (#!/usr/bin/env python). Use PATH env variable to choose non-default python version for your Python scripts * CHANGED pyglet textures to use numpy->ctypes rather than numpy->string * FIXED systemInfo assigned on Linux systems PsychoPy 1.00.03 ~~~~~~~~~~~~~~~~~~~~~~ (released Jul 09) * FIXED initialisation bug with SimpleImageStimulus * FIXED "useShaders" buglet for TextStim * CHANGED IDE on win32 to run scripts as processes rather than imports (gives better error messages) * ADDED mipmap support for textures (better antialiasing for down-scaling) * CHANGED win32 standalone to include the whole raw python rather than using py2exe PsychoPy 1.00.02 ~~~~~~~~~~~~~~~~~~~~~~ (released Jun 09) * ADDED SimpleImageStimulus for simple blitting of raw, unscaled images * ADDED collection of anonymous usage stats (e.g.: OSX_10.5.6_i386 1.00.02 2009-04-27_17:26 ) * RENAMED DotStim.setDirection to setDir for consistency (the attribute is dir not direction) * FIXED bug with DotStim updating for 'walk' and 'position' noise dots (thanks Alex Holcombe) * FIXED bug with DotStim when fieldSize was initialised with a list rather than an array * FIXED buglet using event.getKeys in pygame (nothing fetched if pyglet installed) * CHANGED image loading code to check whether the image is a file, rather than using try..except * FIXED buglet raising trivial error messages on closing final window in IDE * FIXED problem pasting into find dlg in IDE PsychoPy 1.00.01 ~~~~~~~~~~~~~~~~~~~~~~ (released Feb 09) * FIXED buglet in windows standalone installer PsychoPy 1.00.00 ~~~~~~~~~~~~~~~~~~~~~~ * ADDED ShapeStim, for drawing geometric stimuli (see demos/shapes.py and new clockface.py) * ADDED support for the tristate ctrl bit on parallel ports (thanks Gary Strangman for the patch) * ADDED standalone installer support for windows (XP, vista?) * FIXED minor bug in Window.flip() with frame recording on (average -> numpy.average) * FIXED minor bug in sound, now forcing pygame.mixer to use numpy (thanks Konstantin for the patch) * FIXED visual stimulus positions forced to be floats on init (thanks C Luhmann) ~~~~~~~~~~~~~~~~~~~~~~ PsychoPy 0.97: ------------------------------ PsychoPy 0.97.01: ~~~~~~~~~~~~~~~~~~~~~~ * FIXED bug with IDE not closing properly (when current file was not right-most) * ADDED parallel.readPin(pinN) so that parallel port can be used for input as well as output * FIXED bug in parallel.setPortAddress(addr) * ADDED check for floats as arguments to ElementArrayStim set methods * CHANGED: frame time recording to be *off* by default (for plotting, for Window.fps() and for warnings). To turn it on use Window.setRecordFrameIntervals(True), preferably after first few frames have elapsed * IMPROVED detection of the (truly) dropped frames using log.console.setLevel(log.WARNING) * FIXED bug that was preventing bits++ from detecting LUT on the Mac (ensure screen gamma is 1.0 first) * FIXED buglet with .setRGB on stimuli - that method should require an operation argument (def=None) * ADDED fieldDepth and depths (for elements, releative to fieldDepth) as separate arguments to the ElementArrayStim PsychoP 0.97.00: ~~~~~~~~~~~~~~~~~~~~~~ * ADDED options to DotStim motions. Two args have been added: * signalDots can be 'different' from or 'same' as the noise dots (from frame to frame) * noiseDots determines the update rule for the distractor dots (random 'position', 'walk', 'direction') * dotLife now works (was previously just a placeholder). Default is -1 (so should be same as before) see Scase, Braddick & Raymond (1996) for further info on the importance of these * ADDED options to event.getKeys * keyList to limit which keys are checked for (thanks Gary Strangman) * timeStamped=False/True/Clock (thanks Dave Britton) * CHANGED pyglet key checking now returns '1' as the key irrespective of numpad or otherwise (used to return '1' or 'NUM_1') * FIXED bug in event.py for machines where pyglet is failing to import * REMOVED AlphaStim (after a long period of 'deprecated') ---------- PsychoPy 0.96: ------------------------------ PsychoPy 0.96.02: ~~~~~~~~~~~~~~~~~~~~~~ * FIXED bug introduced with clipping of text in 0.96.01 using textstimuli with shaders under pygame * FIXED bug with rendering png alpha layer using pyglet shaders PsychoPy 0.96.01: ~~~~~~~~~~~~~~~~~~~~~~ * FIXED problem with write errors running demos from Mac IDE * ADDED frameWidth to textStim for multiline * ADDED setRecordFrameIntervals, saveFrameTimes() to Window and misc.plotFrameIntervals() * FIXED had accidentally made pygame a full dependency in visual.py * FIXED MovieStim was being affected by texture color of other stimuli * FIXED window now explicitly checks for GL_ARB_texture_float before using shaders PsychoPy 0.96.00: ~~~~~~~~~~~~~~~~~~~~~~ * FIXED pygame back-end so that can be used as a valid alternative to pyglet (requires pygame1.8+ and PyOpenGL3.0+, both included in mac app) * CHANGED default sound handler to be pygame again. Although pyglet looked promising for this it has turned out to be buggy. Timing of sounds can be very irregular and sometimes they don't even play Although pygame has longer overall latencies (20-30ms) it's behaviour is at least robust. This will be revisited one day when i have time to write driver-specific code for sounds * FIXED image importing - scaling from square image wasn't working and CMYK images weren't imported properly. Both are now fine. ---------- PsychoPy 0.95: ------------------------------ PsychoPy 0.95.11: ~~~~~~~~~~~~~~~~~~~~~~ * ADDED sound.Sound.getDuration() method * FIXED spurious (unimportant but ugly) error messages raised by certain threads on core.quit() PsychoPy 0.95.9: ~~~~~~~~~~~~~~~~~~~~~~ * FIXED further bug in sound.Sound on win32 (caused by thread being polled too frequently) * FIXED new bug in notebook view (introduced in 0.95.8) PsychoPy 0.95.8: ~~~~~~~~~~~~~~~~~~~~~~ * FIXED bug in sound.Sound not repeating when play() is called repeatedly * IDE uses improved notebook view for code pages * IDE line number column is larger * IDE SaveAs no longer raises (inconsequential) error * IDE Cmd-S or Ctrl-S now clears autocomplete PsychoPy 0.95.7: ~~~~~~~~~~~~~~~~~~~~~~ * ADDED misc.cart2pol() * ADDED highly optimised ElementArrayStim, suitable for drawing large numbers of elements. Requires fast OpenGL 2.0 gfx card - at least an nVidia 8000 series or ATI HD 2600 are recommended. * FIXED bug in calibTools with MonitorFolder (should have been monitorFolder) * FIXED bug in Sound.stop() for pyglet contexts * FIXED bug in running scripts with spaces in the filename/path (Mac OS X) PsychoPy 0.95.6: ~~~~~~~~~~~~~~~~~~~~~~ * DISABLED the setting of gamma if this is [1,1,1] (allows the user to set it from a control panel and not have this adjusted) * FIXED gamma setting on linux (thanks to Luca Citi for testing) * FIXED bug in TextStim.setRGB (wasn't setting properly after text had been created) * FIXED bug searching for shaders on ATI graphics cards * FIXED - now no need to download avbin for the mac IDE installation PsychoPy 0.95.5: ~~~~~~~~~~~~~~~~~~~~~~ * FIXED bug in event.clearEvents() implementation in pyglet (wasn't clearing) * FIXED - psychopy no longer disables ipython shortcut keys * FIXED bug in sound.Sound initialisation without pygame installeds * ADDED core.rush() for increasing thread priority on win32 * ADDED Window._haveShaders, XXXStim._useShaders and XXXStim.setUseShaders * FIXED crashes on win32, running a pyglet context after a DlgFromDict * ADDED gamma correction for pyglet contexts (not tested yet on linux) PsychoPy 0.95.4: ~~~~~~~~~~~~~~~~~~~~~~ * CHANGED PsychoPy options (IDE and monitors) now stored the following, rather than with the app. (monitor calib files will be moved here if possible) * ~/.PsychoPy/IDE (OS X, linux) * //Application Data/PsychoPy * FIXED bug in text rendering (ATI/win32/pyglet combo only) * FIXED minor bug in handling of images with alpha channel PsychoPy 0.95.3: ~~~~~~~~~~~~~~~~~~~~~~ * ADDED a .clearTextures() method to PatchStim and RadialStim, which should be called before de-referencing a stimulus * CHANGED input range for numpy array textures to -1:1 * ADDED sysInfo.py to demos PsychoPy 0.95.2: ~~~~~~~~~~~~~~~~~~~~~~ * FIXED quitting PsychoPyIDE now correctly cancels when saving files PsychoPy 0.95.1: ~~~~~~~~~~~~~~~~~~~~~~ * FIXED problem with saving files from the IDE on Mac * FIXED Cmd-C now copies from the output window of IDE * even nicer IDE icons (thanks to the Crystal project at everaldo.com) * FIXED bug in the shaders code under pyglet (was working fine in pygame already) * (refactored code to use a template visual stimulus) PsychoPy 0.95.0: ~~~~~~~~~~~~~~~~~~~~~~ * FIXED linux bug preventing repeated dialogs (thanks Luca Citi) * REWRITTEN stimuli to use _BaseClass, defining ._set() method * MAJOR IMPROVEMENTS to IDE: * Intel mac version available as app bundle, including python * FIXED double help menu * cleaned code for fetching icons * fixed code for updating SourceAssistant (now runs from .OnIdle()) Older ---------------------- PsychoPy 0.94.0: ~~~~~~~~~~~~~~~~~~~~~~ * pyglet: * can use multiple windows and multiple screens (see screensAndWindows demo) * sounds are buffered faster and more precisely (16ms with <0.1ms variability on my system) * creating sounds in pyglet starts a separate thread. If you use sounds in your script you must call core.quit() when you're done to exit the system (or this background thread will continue). * pyglet window.setGamma and setGammaRamp working on win and mac (NOT LINUX) * pyglet event.Mouse complete (and supports wheel as well as buttons) * pyglet is now the default context. pygame will be used if explicitly called or if pyglet (v1.1+) isn't found * pyglet can now get/save movie frames (like pygame) * TextStims are much cleaner (and a bit bigger?) Can use multiple lines too. New method for specifying font * added simpler parallel.py (wraps _parallel which will remain for now) * removed the C code extensions in favour of ctypes (so compiler no longer necessary) * converted "is" for "==" where appropriate (thanks Luca) * Window.getMovieFrame now takes a buffer argument ('front' or 'back') * monitor calibration files now stored in HOME/.psychopy/monitors rather than site-packages * Window.flip() added and supports the option not to clear previous buffer (for incremental drawing). Window.update() is still available for now but can be replaced with flip() commands * updated demos PsychoPy 0.93.6: ~~~~~~~~~~~~~~~~~~~~~~ * bug fixes for OS X 10.5 and ctypes OpenGL * new improved OS X installer for dependencies * moved to egg for OS X distribution PsychoPy 0.93.5: ~~~~~~~~~~~~~~~~~~~~~~ * added rich text ctrl to IDE output, including links to lines of errors * IDE now only opens one copy of a given text file * improved (chances of) sync-to-vertical blank on windows without adjusting driver settings (on windows it's still better to set driver to force sync to be safe!) * added center and radius arguments to filters.makeMask and filters.makeRadialMatrix * implemented pyglet backend for; * better screen handling (can specify which screen a window should appear in) * fewer dependencies (takes care of pygame and opengl) * faster sound production * TextStims can be multi-line * NO GAMMA-SETTING as yet. Don't use this backend if you need a gamma-corrected window and aren't using Bits++. * changed the behaviour of Window winTypes If you leave winType as None PsychoPy tries to use Pygame, Pyglet, GLUT in that order (when Pyglet can handle gamma funcs it will become default). Can be overridden by specifying winType. * turned off depth testing for drawing of text (will simply be overlaid in the order called) * changes to TextStim: pyglet fonts are loaded by name only, not filename. PsychoPy TextStim now has an additional argument called 'fontFiles=[]' to allow the adding of custom ttf fonts, but the font name should be used as the font=" " argument. * updated some of the Reference docs PsychoPy 0.93.3: ~~~~~~~~~~~~~~~~~~~~~~ * fixed problem with 'dynamic loading of multitextureARB' (only found on certain graphics cards) PsychoPy 0.93.2: ~~~~~~~~~~~~~~~~~~~~~~ * improved detection of non-OpenGL2.0 drivers PsychoPy 0.93.1: ~~~~~~~~~~~~~~~~~~~~~~ * now automatically uses shaders only if available (older machines can use this version but will not benefit from the speed up) * slight speed improvement for TextStim rendering (on all machines) PsychoPy 0.93.0: ~~~~~~~~~~~~~~~~~~~~~~ * new requirement of PyOpenGL3.0+ (and a graphics card with OpenGL2.0 drivers?) * much faster implementation of setRGB, setContrast and setOpacity (using fragment shaders) * images (and other textures) need not be square. They will be automatically resampled if they arent. Square power-of-two image textures are still recommended * Fixed problem in calibTools.DACrange caused by change in numpy rounding behaviour. (symptom was strange choice of lum values for calibrations) * numpy arrays as textures currently need to be NxM intensity arrays * multitexturing now handled by OpenGL2.0 rather than ARB * added support for Cedrus response pad * if any component of rgb*contrast>1 then the stimulus will be drawn as low contrast and b/y (rgb=[0.2,0.2,-0.2]) in an attempt to alert the user that this is out of range PsychoPy 0.92.5: ~~~~~~~~~~~~~~~~~~~~~~ * Fixed issue with stairhandler (it was terminating based only on the nTrials). It does now terminate when both the nTrials and the nReversals [or length(stepSizes) if this is greater] are exceeded. * Minor enhancements to IDE (added explicit handlers to menus for Ctrl-Z, Ctrl-Y, Ctrl-D) PsychoPy 0.92.4: ~~~~~~~~~~~~~~~~~~~~~~ * fixed some source packaging problems for linux (removed trademark symbols from serialposix.py and fixed directory capitalisation of IDE/Resources in setup.py). Thanks to Jason Locklin and Samuele Carcagno for picking them up. * numerous minor improvements to the IDE * reduced the buffer size of sound stream to reduce latency of sound play * fixed error installing start menu links (win32) PsychoPy 0.92.3: ~~~~~~~~~~~~~~~~~~~~~~ * new source .zip package (switched away from the use of setuptools - it didn't include files properly in a source dist) * Fixed problem on very fast computers that meant error messages weren't always displayed in the IDE PsychoPy 0.92.2: ~~~~~~~~~~~~~~~~~~~~~~ * have been trying (and failing) to make scripts run faster from the IDE under Mac OS X. Have tried using threads and debug modules (which would mean you didn't need to import all the libs every time). All these work fine under win32 but not under OS X every time :-( If anyone has a new idea for how to run a pygame window in the same process as the IDE thread I'd love hear it * removed the messages from the new TextStim stimuli * fixed bug in IDE that caused it to crash before starting if pythonw.exe was run rather than python.exe on first run(!) * improvements to the source assistant window (better help and now fetches function arguments) Known Problems: * The IDE isn't collecting all errors that are returned - a problem with the process redirection mechanism? FIXED in 0.92.3 PsychoPy 0.92.1 ~~~~~~~~~~~~~~~~~~~~~~ * fixed minor bug in IDE - wouldn't open if it had been closed with no open docs. * fixed problem with pushing/popping matrix that caused the stimuli to disappear (only if a TextStim was rendered repeatedly) PsychoPy 0.92.0: ~~~~~~~~~~~~~~~~~~~~~~ * 'sequential' ordering now implemented for data.TrialHandler (thx Ben Webb) * moved to pygame fonts (with unicode support and any TT font onthe system). The switch will break any code that was using TextStim with lineWidth or letterWidth as args. Users wanting to continue using the previous TextStim can call textStimGLUT instead (although I think the new pygame fonts are superior in every way). * improved IDE handling of previous size (to cope with being closed in the maximised or minimised state, which previously caused the window not to return) PsychoPy 0.91.5: ~~~~~~~~~~~~~~~~~~~~~~ * fixed minor bug in using numpy.array as a mask (was only working if array was 128x128) * faster startup for IDE (added threading class for importing modules) * fixed very minor bug in IDE when searching for attributes that dont exist * fixed minor bug where scripts with syntax errors didn't run but didn't complain either * IDE FileOpen now tries the folder that the current file is in first * IDE removed threading class for running scripts PsychoPy 0.91.4 ~~~~~~~~~~~~~~~~~~~~~~ * fixed the problem of stimulus order/depth. Now the default depth is set (more intuitively) by the order of drawing not creating. * IDE added recent files to file menu * IDE minor bug fixes * IDE rewrite of code inspection using wx.py.instrospect PsychoPy 0.91.3 ~~~~~~~~~~~~~~~~~~~~~~ * added find dialog to IDE * added ability of data.FunctionFromStaircase to create unique bins rather than averaging several x values. Give bins='unique' (rather than bins=someInteger). Also fixed very minor issue where this func would only take a list of lists, rather than a single list. PsychoPy 0.91.2 ~~~~~~~~~~~~~~~~~~~~~~ * fixed IDE problem running filenames containing spaces (only necessary on win32) PsychoPy 0.91.1 ~~~~~~~~~~~~~~~~~~~~~~ * added reasonable SourceAssistant to IDE * added a stop button to abort scripts in IDE * IDE scripts now run as sub process rather than within the main process: slower but safer * added an autoflushing stdout to psychopy.__init__. Where lots of text is written to stdout this may be a problem, but turing it off means that stdout doesn't get properly picked up by the IDE :-( PsychoPy 0.91.0 ~~~~~~~~~~~~~~~~~~~~~~ * PsychoPy now has its own IDE!! With syntax-highlighting, code-folding and auto-complete!! :-) * gui.py had to be refactored a little but (I think) should not be noticed by the end user (gui.Dlg is now a subclass of wx.Dialog rather than a modified instance) * gui.Dlg and DlgFromDict now end up with an attribute .OK that is either True or False * fixed bug in data.StairHandler that could result in too many trials being run (since v0.89) PsychoPy 0.90.4 ~~~~~~~~~~~~~~~~~~~~~~ * resolved deprecation warning with wxPython (now using "import wx") PsychoPy 0.90.3 ~~~~~~~~~~~~~~~~~~~~~~ * used the new numpy.mgrid commands throughout filters and visual modules * sorted out the rounding probs on RadialStim * fixed import bug in calibtools.py PsychoPy 0.90.2 ~~~~~~~~~~~~~~~~~~~~~~ * fixed new bug in the minVal/maxVal handling of StairHandler (where these have not been specified) * changed the default console log level to be ERROR, due to too much log output! PsychoPy 0.90.1 ~~~~~~~~~~~~~~~~~~~~~~ * fixed new bug in Sound object * changed the default log file to go to the script directory rather than site-packages/psychopy PsychoPy 0.90 ~~~~~~~~~~~~~~~~~~~~~~ * sounds now in stereo and a new function to allow you to choose the settings for the sound system. * LMS colors (cone-isolating stimuli) are now tested and accurate (when calibrated) * added logging module (erros, warnings, info). And removed other messages: * @Verbose@ flags have become log.info messages * @Warn@ commands have become log.warning messages * added minVal and maxVal arguments to data.StairHandler so that range can be bounded * @import psychopy@ no longer imports anything other than core Psychopy 0.89.1 ~~~~~~~~~~~~~~~~~~~~~~ * fixed bug in new numpy's handling of bits++ header Psychopy 0.89 ~~~~~~~~~~~~~~~~~~~~~~ * optimised DotStim to use vertex arrays (can now draw several thousand dots) * optimised RadialStim to use vertex arrays (can increase radial resolution without much loss) Psychopy 0.88 ~~~~~~~~~~~~~~~~~~~~~~ * fixed problem with MonitorCenter on OSX (buttons not working on recent version of wxPython) Psychopy 0.87 ~~~~~~~~~~~~~~~~~~~~~~ * added sqrXsqr to RadialStim and made it default texture * fixed a minor bug in RadialStim rendering (stimuli failed to appear under certain stimulus orderings) * changed RadialStim size parameter to be diameter rather than radius (to be like AlphaStim) * namechange: introduced PatchStim (currently identical to AlphaStim which may one day become deprecated) Psychopy 0.86 ~~~~~~~~~~~~~~~~~~~~~~ * distributed as an .egg Psychopy 0.85 ~~~~~~~~~~~~~~~~~~~~~~ * upgraded for numpy1.0b and scipy0.50. Hopefully those packages are now stable enough that they won't need further PsychoPy compatibility changes Psychopy 0.84 ~~~~~~~~~~~~~~~~~~~~~~ * NEW (alpha) support for radial patterns rather than linear ones * changed Clock behaviour to use time.clock() on win32 rather than time.time() * fixed a bug in the shuffle seeding behaviour * added a noise pattern to bacground in monitor calibration Psychopy 0.83 ~~~~~~~~~~~~~~~~~~~~~~ * NEW post-install script for Win32 installs shortcuts to your >>Start>Programs menu * NEW parallel port code (temporary form) using DLportIO.dll can be found under _parallel * NEW hardware module with support for fORP response box (for MRI) using serial port * added iterator functionality to data.TrialHandler and data.StairHandler you can now use :: for thisTrial in allTrials: but a consequence was that .nextTrial() will be deprecated in favour of .next(). Also, when the end of the trials is reached a StopIteration is raised. * added the ability to seed the shuffle mechanism (and trial handler) so you can repeat experiments with the same trial sequence Psychopy 0.82 ~~~~~~~~~~~~~~~~~~~~~~ * rewritten code for bits++ LUT drawing, raised by changes in pyOpenGL(2.0.1.09) call to drawpixels * minor change to exit behaviour. pyGame.quit() is now called and then sys.exit(0) rather than sys.exit(1) * bug fixes in type handling (from Numeric to numpy) Psychopy 0.81 ~~~~~~~~~~~~~~~~~~~~~~ * changes to gui caused by new threading behaviour of wxPython and PyGame (DlgFromDict must now be a class not a function). Psychopy 0.80 ~~~~~~~~~~~~~~~~~~~~~~ * switching numeric code to new python24 and new scipy/numpy. MUCH nicer * new (reduced requirements): * numpy 0.9 or newer (the replacement for Numeric/numarray) * numpy 0.4.4 or newer * pyOpenGL * pygame * PIL * matplotlib (for data plotting) PsychoPy 0.72 ~~~~~~~~~~~~~~~~~~~~~~ * tested (and fixed) compatibility with wxPython 2.6. Will now be using this as my primary handler for GUIs * ADDED ability to quit during run of getLumSeries PsychoPy 0.71 ~~~~~~~~~~~~~~~~~~~~~~ * FIXED filename bug in makeMovies.makeAnimatedGIF * slight change to monitors that it uses testMonitor.calib as a default rather than default.calib (testMonitor.calib is packaged with the installation) PsychoPy 0.70 ~~~~~~~~~~~~~~~~~~~~~~ * FIXED bug in setSize. Wasn't updating correctly * ADDED ability to append to a data file rather than create new * bits.lib (from CRS) is now distributed directly with psychopy rather than needing separate install) * ADDED db/log/linear step methods to StairHandler * ADDED logistic equation to data.FitFunction PsychoPy 0.69 ~~~~~~~~~~~~~~~~~~~~~~ * ADDED a testMonitor to the monitors package so that demos can use it for pseudo*calibrated stimuli. * REDUCED the attempt to use _bits.pyd. Was only necessary for machines that had bits++ monitor center * ADDED basic staircase method * CHANGED dlgFromDict to return None on cancel rather than 0 * CHANGED the description of sin textures so that the centre of the patch had the color of dkl or rgb rather than the edge. (Effectively all sin textures are now shifted in phase by pi radians). -Demos removed from the main package - now ONLY distributed as a separate library PsychoPy 0.68 ~~~~~~~~~~~~~~~~~~~~~~ * FIXED toFile and fromFile so they work!? * Demos being distributed as a separate .zip file (may be removed from the main package someday) PsychoPy 0.67 ~~~~~~~~~~~~~~~~~~~~~~ * ADDED toFile, fromFile, pol2cart functions to psychopy.misc * CHANGED waitKeys to return a list of keys (usually of length one) so that it's compatible with getKeys PsychoPy 0.66 ~~~~~~~~~~~~~~~~~~~~~~ * serial is now a subpackage of psychopy and so doesn't need additional installation * REMOVED the code to try and query the graphics card about the scr dimensions. From now on, if yo uwish to use real world units, you MUST specify scrWidthPIX and scrWidthCM when you make your visual.Window * ADDED flag to data output to output matrixOnly (useful for matlab imports) * REVERTED the default numeric handler to be Numeric rather than numarray (because it looks like numarray hasn't taken off as much as thought) * FIXED minor bug in text formatting for TrialHandler.saveAsText() * CHANGED visual.Window so that the monitor argument prefers to receive a Monitor object (rather than just a dictionary) or just the name of one. MonitorCenter makes it so easy to create these now that they should be the default. * CHANGED Photometer initialisation behaviour - used to raise an error on a fail but now sets an internal attribute .OK to False rather than True PsychoPy 0.65 ~~~~~~~~~~~~~~~~~~~~~~ * MonitorCenter now complete. Plots and checks gamma correction. * can write movies out to animated gifs(any platform) or mpg/avi (both windows only) PsychoPy 0.64 ~~~~~~~~~~~~~~~~~~~~~~ * ChANGED monitor key dkl_rgb_matrix to dkl_rgb (also for lms) * ADDED code for PR650 to get the monitor color calibration and calculate the color conversion matrices automatically. Will be implemented via the MonitorCenter application. * ADDED pyserial2.0 as a subpackage of psychopy so that it needn't be separately installed * Much improved MonitorCenter with DKL and LMS calibration buttons and matrix output * Double-click installer for Mac now available PsychoPy 0.63 ~~~~~~~~~~~~~~~~~~~~~~ * ADDED ability to capture frames from the window as images (tif, jpg...) or as animated GIF files :) see demo * ADDED ability for elements in DotStim to be any arbitrary stimulus with a methods for .setPos(), .draw() PsychoPy 0.62 ~~~~~~~~~~~~~~~~~~~~~~ * FIXED the circular mask for DotStim * FIXED bug in the new text alignment method (was being aligned but not positioned?!) PsychoPy 0.61 ~~~~~~~~~~~~~~~~~~~~~~ * FIXED minor bug in MonitorCenter (OS X only) PsychoPy 0.60 ~~~~~~~~~~~~~~~~~~~~~~ * ADDED a GUI application for looking after monitors and calibrations. SEE MonitorCenter.py in the new package monitors * MOVED "psychopy.calib" subpackage to a whole separate package "monitors". Calibration files will now be stored alongside the calibration code. This makes it easier to develop the new calibration GUI application that I'm working on. Also means that if you delete the psychopy folder for a new installation you won't lose your calibration files. * ADDED optional maxWait argument to event.waitKeys() * CHANGED TextStim to take the font as a name rather than font number * ADDED alignment to text stimuli (alignVert, alignHoriz) * CHANGED waitKeys to implicitly clear keys from the event queue so that it only finds the first keypress after its called. As result it now returns a single character rather than list of them * CHANGED visual.Window so that it no longer overrides monitor settings if arguments are specified. Easy now to create a monitor in the monitors GUI and use that instead * ADDED the circular mask for DotStimulus psychopy-1.82.02.dfsg/docs/source/coder/000077500000000000000000000000001257562125200200175ustar00rootroot00000000000000psychopy-1.82.02.dfsg/docs/source/coder/codeLogging.rst000066400000000000000000000076601257562125200230030ustar00rootroot00000000000000.. _codeLogging: Logging data ------------------- TrialHandler and StairHandler can both generate data outputs in which responses are stored, in relation to the stimulus conditions. In addition to those data outputs, PsychoPy can created detailed chronological log files of events during the experiment. Log levels and targets ~~~~~~~~~~~~~~~~~~~~~~~~~ Log messages have various levels of severity: ERROR, WARNING, DATA, EXP, INFO and DEBUG Multiple `targets` can also be created to receive log messages. Each target has a particular critical level and receives all logged messages greater than that. For example, you could set the console (visual output) to receive only warnings and errors, have a central log file that you use to store warning messages across studies (with file mode `append`), and another to create a detailed log of data and events within a single study with `level=INFO`:: from psychopy import logging logging.console.setLevel(logging.WARNING) #overwrite (mode='w') a detailed log of the last run in this dir lastLog=logging.LogFile("lastRun.log", level=logging.INFO, mode='w') #also append warnings to a central log file centralLog=logging.LogFile("c:/psychopyExps.log", level=logging.WARNING, mode='a') Updating the logs ~~~~~~~~~~~~~~~~~~~~~ For performance purposes log files are not actually written when the log commands are 'sent'. They are stored in a list and processed automatically when the script ends. You might also choose to force a `flush` of the logged messages manually during the experiment (e.g. during an inter-trial interval):: from psychopy import logging ... logging.flush()#write messages out to all targets This should only be necessary if you want to see the logged information as the experiment progresses. AutoLogging ~~~~~~~~~~~~~~ **New in version 1.63.00** Certain events will log themselves automatically by default. For instance, visual stimuli send log messages every time one of their parameters is changed, and when autoDraw is toggled they send a message that the stimulus has started/stopped. All such log messages are timestamped with the frame flip on which they take effect. To avoid this logging, for stimuli such as fixation points that might not be critical to your analyses, or for stimuli that change constantly and will flood the logging system with messages, the autoLogging can be turned on/off at initialisation of the stimulus and can be altered afterwards with `.setAutoLog(True/False)` Manual methods ~~~~~~~~~~~~~~~~~~~~ In addition to a variety of automatic logging messages, you can create your own, of various levels. These can be timestamped immediately:: from psychopy import logging logging.log(level=logging.WARN, msg='something important') logging.log(level=logging.EXP, msg='something about the conditions') logging.log(level=logging.DATA, msg='something about a response') logging.log(level=logging.INFO, msg='something less important') There are additional convenience functions for the above: logging.warn('a warning') etc. For stimulus changes you probably want the log message to be timestamped based on the frame flip (when the stimulus is next presented) rather than the time that the log message is sent:: from psychopy import logging, visual win = visual.Window([400,400]) win.flip() logging.log(level=logging.EXP, msg='sent immediately') win.logOnFlip(level=logging.EXP, msg='sent on actual flip') win.flip() Using a custom clock for logs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **New in version 1.63.00** By default times for log files are reported as seconds after the very beginning of the script (often it takes a few seconds to initialise and import all modules too). You can set the logging system to use any given :class:`core.Clock` object (actually, anything with a `getTime()` method):: from psychopy import core, logging globalClock=core.Clock() logging.setDefaultClock(globalClock) psychopy-1.82.02.dfsg/docs/source/coder/codeStimuli.rst000066400000000000000000000201601257562125200230310ustar00rootroot00000000000000Presenting Stimuli ---------------------- .. note:: Before you start, tell PsychoPy about your monitor(s) using the :ref:`monitorCenter`. That way you get to use units (like degrees of visual angle) that will transfer easily to other computers. Stimulus objects ~~~~~~~~~~~~~~~~~~~~~~~~~~ Python is an 'object-oriented' programming language, meaning that most stimuli in PsychoPy are represented by python objects, with various associated methods and information. Typically you should create your stimulus once, at the beginning of the script, and then change it as you need to later using set____() commands. For instance, create your text and then change its color any time you like:: from psychopy import visual, core win = visual.Window([400,400]) message = visual.TextStim(win, text='hello') message.setAutoDraw(True) # automatically draw every frame win.flip() core.wait(2.0) message.setText('world') # change properties of existing stim win.flip() core.wait(2.0) Setting stimulus attributes ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Stimulus attributes are typically set using either - a string, which is just some characters (as message.setText('world') above) - a scalar (a number; see below) - an x,y-pair (two numbers; see below) .. _attrib-xy: **x,y-pair:** PsychoPy is very flexible in terms of input. You can specify the widely used x,y-pairs using these types: - A Tuple (x, y) with two elements - A List [x, y] with two elements - A numpy array([x, y]) with two elements However, PsychoPy always converts the x,y-pairs to numpy arrays internally. For example, all three assignments of pos are equivalent here:: stim.pos = (0.5, -0.2) # Right and a bit up from the center print stim.pos # array([0.5, -0.2]) stim.pos = [0.5, -0.2] print stim.pos # array([0.5, -0.2]) stim.pos = numpy.array([0.5, -0.2]) print stim.pos # array([0.5, -0.2]) Choose your favorite :-) However, you can't assign elementwise:: stim.pos[1] = 4 # has no effect .. _attrib-scalar: **Scalar:** Int or Float. Mostly, scalars are no-brainers to understand. E.g.:: stim.ori = 90 # Rotate stimulus 90 degrees stim.opacity = 0.8 # Make the stimulus slightly transparent. However, scalars can also be used to assign x,y-pairs. In that case, both x and y get the value of the scalar. E.g.:: stim.size = 0.5 print stim.size # array([0.5, 0.5]) .. _attrib-operations: **Operations on attributes:** Operations during assignment of attributes are a handy way to smoothly alter the appearance of your stimuli in loops. Most scalars and x,y-pairs support the basic operations:: stim.attribute += value # addition stim.attribute -= value # subtraction stim.attribute *= value # multiplication stim.attribute /= value # division stim.attribute %= value # modulus stim.attribute **= value # power They are easy to use and understand on scalars:: stim.ori = 5 # 5.0, set rotation stim.ori += 3.8 # 8.8, rotate clockwise stim.ori -= 0.8 # 8.0, rotate counterclockwise stim.ori /= 2 # 4.0, home in on zero stim.ori **= 3 # 64.0, exponential increase in rotation stim.ori %= 10 # 4.0, modulus 10 However, they can also be used on x,y-pairs in very flexible ways. Here you can use both scalars and x,y-pairs as operators. In the latter case, the operations are element-wise:: stim.size = 5 # array([5.0, 5.0]), set quadratic size stim.size +=2 # array([7.0, 7.0]), increase size stim.size /= 2 # array([3.5, 3.5]), downscale size stim.size += (0.5, 2.5) # array([4.0, 6.0]), a little wider and much taller stim.size *= (2, 0.25) # array([8.0, 1.5]), upscale horizontal and downscale vertical Operations are not meaningful for strings. Timing ~~~~~~~~~~~ There are various ways to measure and control timing in PsychoPy: - using frame refresh periods (most accurate, least obvious) - checking the time on :class:`~core.Clock` objects - using :func:`core.wait()` commands (most obvious, least flexible/accurate) Using core.wait(), as in the above example, is clear and intuitive in your script. But it can't be used while something is changing. For more flexible timing, you could use a :class:`~core.Clock()` object from the :mod:`core` module:: from psychopy import visual, core #setup stimulus win=visual.Window([400,400]) gabor = visual.GratingStim(win, tex='sin', mask='gauss', sf=5, name='gabor') gabor.setAutoDraw(True) # automatically draw every frame gabor.autoLog=False#or we'll get many messages about phase change clock = core.Clock() #let's draw a stimulus for 2s, drifting for middle 0.5s while clock.getTime() < 2.0: # clock times are in seconds if 0.5 <= clock.getTime() < 1.0: gabor.setPhase(0.1, '+') # increment by 10th of cycle win.flip() Clocks are accurate to around 1ms (better on some platforms), but using them to time stimuli is not very accurate because it fails to account for the fact that one frame on your monitor has a fixed frame rate. In the above, the stimulus does not actually get drawn for exactly 0.5s (500ms). If the screen is refreshing at 60Hz (16.7ms per frame) and the `getTime()` call reports that the time has reached 1.999s, then the stimulus will draw again for a frame, in accordance with the `while` loop statement and will ultimately be displayed for 2.0167s. Alternatively, if the time has reached 2.001s, there will not be an extra frame drawn. So using this method you get timing accurate to the nearest frame period but with little consistent precision. An error of 16.7ms might be acceptable to long-duration stimuli, but not to a brief presentation. It also might also give the false impression that a stimulus can be presented for any given period. At 60Hz refresh you can not present your stimulus for, say, 120ms; the frame period would limit you to a period of 116.7ms (7 frames) or 133.3ms (8 frames). As a result, the most precise way to control stimulus timing is to present them for a specified number of frames. The frame rate is extremely precise, much better than ms-precision. Calls to `Window.flip()` will be synchronised to the frame refresh; the script will not continue until the flip has occurred. As a result, on most cards, as long as frames are not being 'dropped' (see :ref:`detectDroppedFrames`) you can present stimuli for a fixed, reproducible period. .. note:: Some graphics cards, such as Intel GMA graphics chips under win32, don't support frame sync. Avoid integrated graphics for experiment computers wherever possible. Using the concept of fixed frame periods and `flip()` calls that sync to those periods we can time stimulus presentation extremely precisely with the following:: from psychopy import visual, core #setup stimulus win=visual.Window([400,400]) gabor = visual.GratingStim(win, tex='sin', mask='gauss', sf=5, name='gabor', autoLog=False) fixation = visual.GratingStim(win, tex=None, mask='gauss', sf=0, size=0.02, name='fixation', autoLog=False) clock = core.Clock() #let's draw a stimulus for 2s, drifting for middle 0.5s for frameN in range(200):#for exactly 200 frames if 10 <= frameN < 150: # present fixation for a subset of frames fixation.draw() if 50 <= frameN < 100: # present stim for a different subset gabor.setPhase(0.1, '+') # increment by 10th of cycle gabor.draw() win.flip() Using autoDraw ~~~~~~~~~~~~~~~~~~~ Stimuli are typically drawn manually on every frame in which they are needed, using the `draw()` function. You can also set any stimulus to start drawing every frame using `setAutoDraw(True)` or `setAutoDraw(False)`. If you use these commands on stimuli that also have `autoLog=True`, then these functions will also generate a log message on the frame when the first drawing occurs and on the first frame when it is confirmed to have ended. psychopy-1.82.02.dfsg/docs/source/coder/codeTrials.rst000066400000000000000000000023421257562125200226430ustar00rootroot00000000000000.. _codeTrials: Handling Trials and Conditions ------------------------------- TrialHandler ============ This is what underlies the random and sequential loop types in :ref:`builder`, they work using the :term:`method of constants`. The trialHandler presents a predetermined list of conditions in either a sequential or random (without replacement) order. see :class:`TrialHandler` for more details. StairHandler ============ This generates the next trial using an :term:`adaptive staircase`. The conditions are not predetermined and are generated based on the participant's responses. Staircases are predominately used in psychophysics to measure the discrimination and detection thresholds. However they can be used in any experiment which varies a numeric value as a result of a 2 alternative forced choice (2AFC) response. The StairHandler systematically generates numbers based on staircase parameters. These can then be used to define a stimulus parameter e.g. spatial frequency, stimulus presentation duration. If the participant gives the incorrect response the number generated will get larger and if the participant gives the correct response the number will get smaller. see :class:`~psychopy.data.StairHandler` for more details psychopy-1.82.02.dfsg/docs/source/coder/coder.rst000066400000000000000000000022741257562125200216520ustar00rootroot00000000000000.. _coder: Coder ================================================ .. note:: These do not teach you about Python `per se`, and you are recommended also to learn about that (`Python `_ has many excellent tutorials for programmers and non-programmers alike). In particular, dictionaries, lists and numpy arrays are used a great deal in most PsychoPy experiments. You can learn to use the scripting interface to PsychoPy in several ways, and you should probably follow a combination of them: - :ref:`concepts`: some of the logic of PsychoPy scripting - :ref:`tutorials`: walk you through the development of some semi-complete experiments - demos: in the demos menu of Coder view. Many and varied - use the :ref:`builder` to :ref:`compile a script ` and see how it works - check the :ref:`api` for further details - ultimately go into PsychoPy and start examining the source code. It's just regular python! .. _concepts: Basic Concepts ~~~~~~~~~~~~~~~~~~~~ .. toctree:: :maxdepth: 2 :glob: codeStimuli codeLogging code* .. _tutorials: PsychoPy Tutorials ~~~~~~~~~~~~~~~~~~~~ .. toctree:: :maxdepth: 2 :glob: tutor* psychopy-1.82.02.dfsg/docs/source/coder/tutorial1.py000066400000000000000000000012111257562125200223100ustar00rootroot00000000000000from psychopy import visual, core, event #import some libraries from PsychoPy #create a window mywin = visual.Window([800,600],monitor="testMonitor", units="deg") #create some stimuli grating = visual.GratingStim(win=mywin, mask='circle', size=3, pos=[-4,0], sf=3) fixation = visual.GratingStim(win=mywin, size=0.2, pos=[0,0], sf=0, rgb=-1) #draw the stimuli and update the window while True: #this creates a never-ending loop grating.setPhase(0.05, '+')#advance phase by 0.05 of a cycle grating.draw() fixation.draw() mywin.flip() if len(event.getKeys())>0: break event.clearEvents() #cleanup mywin.close() core.quit() psychopy-1.82.02.dfsg/docs/source/coder/tutorial1.rst000066400000000000000000000076571257562125200225140ustar00rootroot00000000000000Tutorial 1: Generating your first stimulus ============================================= A tutorial to get you going with your first stimulus display. Know your monitor ------------------------ PsychoPy has been designed to handle your screen calibrations for you. It is also designed to operate (if possible) in the final experimental units that you like to use e.g. degrees of visual angle. In order to do this PsychoPy needs to know a little about your monitor. There is a GUI to help with this (select MonitorCenter from the tools menu of PsychoPyIDE or run ...site-packages/monitors/MonitorCenter.py). In the MonitorCenter window you can create a new monitor name, insert values that describe your monitor and run calibrations like gamma corrections. For now you can just stick to the [`testMonitor`] but give it correct values for your screen size in number of pixels and width in cm. Now, when you create a window on your monitor you can give it the name 'testMonitor' and stimuli will know how they should be scaled appropriately. Your first stimulus ------------------------ Building stimuli is extremely easy. All you need to do is create a :class:`~psychopy.visual.Window`, then some stimuli. Draw those stimuli, then update the window. PsychoPy has various other useful commands to help with timing too. Here's an example. Type it into a coder window, save it somewhere and press run. .. code-block:: python :linenos: from psychopy import visual, core # import some libraries from PsychoPy #create a window mywin = visual.Window([800,600], monitor="testMonitor", units="deg") #create some stimuli grating = visual.GratingStim(win=mywin, mask="circle", size=3, pos=[-4,0], sf=3) fixation = visual.GratingStim(win=mywin, size=0.5, pos=[0,0], sf=0, rgb=-1) #draw the stimuli and update the window grating.draw() fixation.draw() mywin.update() #pause, so you get a chance to see it! core.wait(5.0) .. note:: **For those new to Python.** Did you notice that the grating and the fixation stimuli both call :mod:`~psychopy.visual.GratingStim` but have different arguments? One of the nice features about python is that you can select which arguments to set. GratingStim has over 15 arguments that can be set, but the others just take on default values if they aren't needed. That's a bit easy though. Let's make the stimulus move, at least! To do that we need to create a loop where we change the phase (or orientation, or position...) of the stimulus and then redraw. Add this code in place of the drawing code above:: for frameN in range(200): grating.setPhase(0.05, '+') # advance phase by 0.05 of a cycle grating.draw() fixation.draw() mywin.update() That ran for 200 frames (and then waited 5 seconds as well). Maybe it would be nicer to keep updating until the user hits a key instead. That's easy to add too. In the first line add :mod:`~psychopy.event` to the list of modules you'll import. Then replace the line:: for frameN in range(200): with the line: .. literalinclude:: tutorial1.py :lines: 11 Then, within the loop (make sure it has the same indentation as the other lines) add the lines: .. literalinclude:: tutorial1.py :lines: 17-18 the first line counts how many keys have been pressed since the last frame. If more than zero are found then we break out of the never-ending loop. The second line clears the event buffer and should always be called after you've collected the events you want (otherwise it gets full of events that we don't care about like the mouse moving around etc...). Your :download:`finished script ` should look something like this: .. literalinclude:: tutorial1.py :linenos: There are several more simple scripts like this in the demos menu of the Coder and Builder views and many more to download. If you're feeling like something bigger then go to :doc:`tutorial2` which will show you how to build an actual experiment. psychopy-1.82.02.dfsg/docs/source/coder/tutorial2.py000066400000000000000000000101001257562125200223060ustar00rootroot00000000000000"""measure your JND in orientation using a staircase method""" from psychopy import core, visual, gui, data, event from psychopy.tools.filetools import fromFile, toFile import time, numpy, random try:#try to get a previous parameters file expInfo = fromFile('lastParams.pickle') except:#if not there then use a default set expInfo = {'observer':'jwp', 'refOrientation':0} expInfo['dateStr']= data.getDateStr() #add the current time #present a dialogue to change params dlg = gui.DlgFromDict(expInfo, title='simple JND Exp', fixed=['dateStr']) if dlg.OK: toFile('lastParams.pickle', expInfo)#save params to file for next time else: core.quit()#the user hit cancel so exit #make a text file to save data fileName = expInfo['observer'] + expInfo['dateStr'] dataFile = open(fileName+'.csv', 'w')#a simple text file with 'comma-separated-values' dataFile.write('targetSide,oriIncrement,correct\n') #create the staircase handler staircase = data.StairHandler(startVal = 20.0, stepType = 'db', stepSizes=[8,4,4,2,2,1,1], nUp=1, nDown=3, #will home in on the 80% threshold nTrials=1) #create window and stimuli win = visual.Window([800,600],allowGUI=True, monitor='testMonitor', units='deg') foil = visual.GratingStim(win, sf=1, size=4, mask='gauss', ori=expInfo['refOrientation']) target = visual.GratingStim(win, sf=1, size=4, mask='gauss', ori=expInfo['refOrientation']) fixation = visual.GratingStim(win, color=-1, colorSpace='rgb', tex=None, mask='circle',size=0.2) #and some handy clocks to keep track of time globalClock = core.Clock() trialClock = core.Clock() #display instructions and wait message1 = visual.TextStim(win, pos=[0,+3],text='Hit a key when ready.') message2 = visual.TextStim(win, pos=[0,-3], text="Then press left or right to identify the %.1f deg probe." %expInfo['refOrientation']) message1.draw() message2.draw() fixation.draw() win.flip()#to show our newly drawn 'stimuli' #pause until there's a keypress event.waitKeys() for thisIncrement in staircase: #will step through the staircase #set location of stimuli targetSide= random.choice([-1,1]) #will be either +1(right) or -1(left) foil.setPos([-5*targetSide, 0]) target.setPos([5*targetSide, 0]) #in other location #set orientation of probe foil.setOri(expInfo['refOrientation'] + thisIncrement) #draw all stimuli foil.draw() target.draw() fixation.draw() win.flip() core.wait(0.5) #wait 500ms; but use a loop of x frames for more accurate timing in fullscreen # eg, to get 30 frames: for f in xrange(30): win.flip() #blank screen fixation.draw() win.flip() #get response thisResp=None while thisResp==None: allKeys=event.waitKeys() for thisKey in allKeys: if thisKey=='left': if targetSide==-1: thisResp = 1#correct else: thisResp = -1 #incorrect elif thisKey=='right': if targetSide== 1: thisResp = 1#correct else: thisResp = -1 #incorrect elif thisKey in ['q', 'escape']: core.quit() #abort experiment event.clearEvents() #must clear other (eg mouse) events - they clog the buffer #add the data to the staircase so it can calculate the next level staircase.addData(thisResp) dataFile.write('%i,%.3f,%i\n' %(targetSide, thisIncrement, thisResp)) core.wait(1) #staircase has ended dataFile.close() staircase.saveAsPickle(fileName) #special python binary file to save all the info #give some output to user in the command line in the output window print 'reversals:' print staircase.reversalIntensities print 'mean of final 6 reversals = %.3f' %(numpy.average(staircase.reversalIntensities[-6:])) #give some on screen feedback feedback1 = visual.TextStim(win, pos=[0,+3], text='mean of final 6 reversals = %.3f' % (numpy.average(staircase.reversalIntensities[-6:]))) feedback1.draw() fixation.draw() win.flip() event.waitKeys() #wait for participant to respond win.close() core.quit() psychopy-1.82.02.dfsg/docs/source/coder/tutorial2.rst000066400000000000000000000174341257562125200225070ustar00rootroot00000000000000Tutorial 2: Measuring a JND using a staircase procedure ======================================================================== This tutorial builds an experiment to test your just-noticeable-difference (JND) to orientation, that is it determines the smallest angular deviation that is needed for you to detect that a gabor stimulus isn't vertical (or at some other reference orientation). The method presents a pair of stimuli at once with the observer having to report with a key press whether the left or the right stimulus was at the reference orientation (e.g. vertical). You can download the :download:`full code here `. Note that the entire experiment is constructed of less than 100 lines of code, including the initial presentation of a dialogue for parameters, generation and presentation of stimuli, running the trials, saving data and outputting a simple summary analysis for feedback. Not bad, eh? There are a great many modifications that can be made to this code, however this example is designed to demonstrate how much can be achieved with very simple code. Modifying existing is an excellent way to begin writing your own scripts, for example you may want to try changing the appearance of the text or the stimuli. Get info from the user --------------------------------- The first lines of code import the necessary libraries. We need lots of the psychopy components for a full experiment, as well as python's time library (to get the current date) and numpy (which handles various numerical/mathematical functions): .. literalinclude:: tutorial2.py :lines: 3-4 The ``try:...except:...`` lines allow us to try and load a parameter file from a previous run of the experiment. If that fails (e.g. because the experiment has never been run) then create a default set of parameters. These are easy to store in a `python dictionary`_ that we'll call expInfo: .. literalinclude:: tutorial2.py :lines: 6-10 The last line adds the current date to whichever method was used. .. _python dictionary : `http://docs.python.org/tut/node7.html#SECTION007500000000000000000` So having loaded those parameters, let's allow the user to change them in a dialogue box (which we'll call ``dlg``). This is the simplest form of dialogue, created directly from the dictionary above. the dialogue will be presented immediately to the user and the script will wait until they hit *OK* or *Cancel*. If they hit *OK* then dlg.OK=True, in which case we'll use the updated values and save them straight to a parameters file (the one we try to load above). If they hit *Cancel* then we'll simply quit the script and not save the values. .. literalinclude:: tutorial2.py :lines: 12-16 Setup the information for trials --------------------------------- We'll create a file to which we can output some data as text during each trial (as well as :ref:`outputting a binary file ` at the end of the experiment). We'll create a filename from the subject+date+".csv" (note how easy it is to concatenate strings in python just by 'adding' them). :term:`csv` files can be opened in most spreadsheet packages. Having opened a text file for writing, the last line shows how easy it is to send text to this target document. .. literalinclude:: tutorial2.py :lines: 19-21 PsychoPy allows us to set up an object to handle the presentation of stimuli in a staircase procedure, the :class:`~psychopy.data.StairHandler`. This will define the increment of the orientation (i.e. how far it is from the reference orientation). The staircase can be configured in many ways, but we'll set it up to begin with an increment of 20deg (very detectable) and home in on the 80% threshold value. We'll step up our increment every time the subject gets a wrong answer and step down if they get three right answers in a row. The step size will also decrease after every 2 reversals, starting with an 8dB step (large) and going down to 1dB steps (smallish). We'll finish after 50 trials. .. literalinclude:: tutorial2.py :lines: 24-27 Build your stimuli --------------------------------- Now we need to create a window, some stimuli and timers. We need a `~psychopy.visual.Window` in which to draw our stimuli, a fixation point and two `~psychopy.visual.GratingStim` stimuli (one for the target probe and one as the foil). We can have as many timers as we like and reset them at any time during the experiment, but I generally use one to measure the time since the experiment started and another that I reset at the beginning of each trial. .. literalinclude:: tutorial2.py :lines: 29-36 Once the stimuli are created we should give the subject a message asking if they're ready. The next two lines create a pair of messages, then draw them into the screen and then update the screen to show what we've drawn. Finally we issue the command event.waitKeys() which will wait for a keypress before continuing. .. literalinclude:: tutorial2.py :lines: 39-47 Control the presentation of the stimuli ------------------------------------------------------- OK, so we have everything that we need to run the experiment. The following uses a for-loop that will iterate over trials in the experiment. With each pass through the loop the :data:`staircase` object will provide the new value for the intensity (which we will call :data:`thisIncrement`). We will randomly choose a side to present the target stimulus using :func:`numpy.random.random()`, setting the position of the target to be there and the foil to be on the other side of the fixation point. .. literalinclude:: tutorial2.py :lines: 49-53 Then set the orientation of the foil to be the reference orientation plus :data:`thisIncrement`, draw all the stimuli (including the fixation point) and update the window. .. literalinclude:: tutorial2.py :lines: 55-62 Wait for presentation time of 500ms and then blank the screen (by updating the screen after drawing just the fixation point). .. literalinclude:: tutorial2.py :lines: 64-68 Get input from the subject --------------------------------- Still within the for-loop (note the level of indentation is the same) we need to get the response from the subject. The method works by starting off assuming that there hasn't yet been a response and then waiting for a key press. For each key pressed we check if the answer was correct or incorrect and assign the response appropriately, which ends the trial. We always have to clear the event buffer if we're checking for key presses like this .. literalinclude:: tutorial2.py :lines: 71-83 Now we must tell the staircase the result of this trial with its :meth:`.addData()` method. Then it can work out whether the next trial is an increment or decrement. Also, on each trial (so still within the for-loop) we may as well save the data as a line of text in that .csv file we created earlier. .. literalinclude:: tutorial2.py :lines: 86-88 .. _data-output: Output your data and clean up ----------------------------- OK! We're basically done! We've reached the end of the for-loop (which occurred because the staircase terminated) which means the trials are over. The next step is to close the text data file and also save the staircase as a binary file (by 'pickling' the file in Python speak) which maintains a lot more info than we were saving in the text file. .. literalinclude:: tutorial2.py :lines: 90-92 While we're here, it's quite nice to give some immediate feedback to the user. Let's tell them the intensity values at the all the reversals and give them the mean of the last 6. This is an easy way to get an estimate of the threshold, but we might be able to do a better job by trying to reconstruct the psychometric function. To give that a try see the staircase analysis script of :doc:`Tutorial 3 `. Having saved the data you can give your participant some feedback and quit! .. literalinclude:: tutorial2.py :lines: 93-109 psychopy-1.82.02.dfsg/docs/source/coder/tutorial3.py000066400000000000000000000031151257562125200223170ustar00rootroot00000000000000 #This analysis script takes one or more staircase datafiles as input #from a GUI. It then plots the staircases on top of each other on #the left and a combined psychometric function from the same data #on the right from psychopy import data, gui, core from psychopy.tools.filetools import fromFile import pylab #Open a dialog box to select files from files = gui.fileOpenDlg('.') if not files: core.quit() #get the data from all the files allIntensities, allResponses = [],[] for thisFileName in files: thisDat = fromFile(thisFileName) allIntensities.append( thisDat.intensities ) allResponses.append( thisDat.data ) #plot each staircase pylab.subplot(121) colors = 'brgkcmbrgkcm' lines, names = [],[] for fileN, thisStair in enumerate(allIntensities): #lines.extend(pylab.plot(thisStair)) #names = files[fileN] pylab.plot(thisStair, label=files[fileN]) #pylab.legend() #get combined data combinedInten, combinedResp, combinedN = \ data.functionFromStaircase(allIntensities, allResponses, 5) #fit curve - in this case using a Weibull function fit = data.FitFunction('weibullTAFC',combinedInten, combinedResp, \ guess=[0.2, 0.5]) smoothInt = pylab.arange(min(combinedInten), max(combinedInten), 0.001) smoothResp = fit.eval(smoothInt) thresh = fit.inverse(0.8) print thresh #plot curve pylab.subplot(122) pylab.plot(smoothInt, smoothResp, '-') pylab.plot([thresh, thresh],[0,0.8],'--'); pylab.plot([0, thresh],\ [0.8,0.8],'--') pylab.title('threshold = %0.3f' %(thresh)) #plot points pylab.plot(combinedInten, combinedResp, 'o') pylab.ylim([0,1]) pylab.show() psychopy-1.82.02.dfsg/docs/source/coder/tutorial3.rst000066400000000000000000000020751257562125200225030ustar00rootroot00000000000000Tutorial 3: Analysing data in Python ========================================= You could simply output your data as tab- or comma-separated text files and analyse the data in some spreadsheet package. But the `matplotlib`_ library in Python also allows for very neat and simple creation of publication-quality plots. This script shows you how to use a couple of functions from PsychoPy to open some data files (:func:`psychopy.gui.fileOpenDlg`) and create a psychometric function out of some staircase data (:func:`psychopy.data.functionFromStaircase`). `Matplotlib`_ is then used to plot the data. .. note:: `Matplotlib`_ and :mod:`pylab`. Matplotlib is a python library that has similar command syntax to most of the plotting functions in Matlab(tm). In can be imported in different ways; the ``import pylab`` line at the beginning of the script is the way to import matploblib as well as a variety of other scientific tools (that aren't strictly to do with plotting *per se*). .. _matplotlib: http://matplotlib.sourceforge.net/ .. literalinclude:: tutorial3.py :linenos: psychopy-1.82.02.dfsg/docs/source/conf.py000066400000000000000000000150621257562125200202260ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # PsychoPy documentation build configuration file, created by # sphinx-quickstart on Mon Jul 27 12:08:21 2009. # # This file is execfile()d with the current directory set to its containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. import sys, os, psychopy # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. #sys.path.append(os.path.abspath('.')) # -- General configuration ----------------------------------------------------- # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx.ext.autodoc', 'sphinx.ext.autosummary', 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.pngmath'] autoclass_content='both' # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. #source_encoding = 'utf-8' # The master toctree document. master_doc = 'index' # General information about the project. project = u'PsychoPy' copyright = u'2015, Jonathan Peirce' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = psychopy.__version__[:-3] # The full version, including alpha/beta/rc tags. release = psychopy.__version__ # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of documents that shouldn't be included in the build. #unused_docs = [] # List of directories, relative to source directory, that shouldn't be searched # for source files. exclude_trees = [] # The reST default role (used for this markup: `text`) to use for all documents. #default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. #show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. #modindex_common_prefix = [] # -- Options for HTML output --------------------------------------------------- # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. html_theme = 'sphinxdoc' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. #html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. #html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". html_title = "%s v%s" %(project,version) # A shorter title for the navigation bar. Default is the same as html_title. html_short_title = "PsychoPy" # The name of an image file (relative to this directory) to place at the top # of the sidebar. #html_logo = 'psychopyLogo.gif' # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. html_favicon = 'favicon.ico' # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. html_use_smartypants = True # Custom sidebar templates, maps document names to template names. html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} # If false, no module index is generated. #html_use_modindex = True # If false, no index is generated. #html_use_index = True # If true, the index is split into individual pages for each letter. #html_split_index = False # If true, links to the reST sources are added to the pages. html_show_sourcelink = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. #html_use_opensearch = '' # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = '' # Output file base name for HTML help builder. htmlhelp_basename = 'PsychoPydoc' # -- Options for LaTeX output -------------------------------------------------- # The paper size ('letter' or 'a4'). #latex_paper_size = 'letter' # The font size ('10pt', '11pt' or '12pt'). #latex_font_size = '10pt' # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ ('documentation', 'PsychoPyManual.tex', u'PsychoPy - Psychology software for Python', u'Jonathan Peirce', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. #latex_logo = 'psychopyLogo.gif' # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. latex_use_parts = False # Additional stuff for the LaTeX preamble. #latex_preamble = '' # Documents to append as an appendix to all manuals. #latex_appendices = [] # If false, no module index is generated. #latex_use_modindex = True # path to mathjax on a public server (or could put on our own in static path?) mathjax_path = 'http://mathjax.connectmv.com/MathJax.js' psychopy-1.82.02.dfsg/docs/source/demos/000077500000000000000000000000001257562125200200325ustar00rootroot00000000000000psychopy-1.82.02.dfsg/docs/source/demos/face.py000066400000000000000000000023271257562125200213060ustar00rootroot00000000000000#!/usr/bin/env python2 from psychopy import core, visual, event #create a window to draw in myWin = visual.Window((600,600), allowGUI=False, rgb=(-1,-1,-1)) #INITIALISE SOME STIMULI faceRGB = visual.GratingStim(myWin,tex='face.jpg', mask=None, pos=(0.0,0.0), size=(1.0,1.0), sf=(1.0, 1.0)) faceALPHA = visual.GratingStim(myWin,pos=(-0.5,0), tex="sin",mask="face.jpg", rgb=[1.0,1.0,-1.0], size=(0.5,0.5), sf=1.0, units="norm") message = visual.TextStim(myWin,pos=(-0.95,-0.95), text='[Esc] to quit', rgb=1, alignHoriz='left', alignVert='bottom') trialClock = core.Clock() t=lastFPSupdate=0 while True: t=trialClock.getTime() faceRGB.setOri(1,'+')#advance ori by 1 degree faceRGB.draw() faceALPHA.setPhase(0.01,"+")#advance phase by 1/100th of a cycle faceALPHA.draw() #update fps every second if t-lastFPSupdate>1.0: lastFPS = myWin.fps() lastFPSupdate=t message.setText("%ifps, [Esc] to quit" %lastFPS) message.draw() myWin.flip() #handle key presses each frame for keys in event.getKeys(): if keys in ['escape','q']: print myWin.fps() myWin.close() core.quit() event.clearEvents() psychopy-1.82.02.dfsg/docs/source/demos/face.rst000066400000000000000000000007461257562125200214710ustar00rootroot00000000000000Draw a rotating face ===================================== This demo shows a couple of uses of bitmap images. You can use them either as textures for images or as the mask for another texture (the face on the left is used as a mask for a blue and yellow grating). To work the demo needs a square image called face.jpg (e.g. :download:`../images/face.jpg`) .. image:: ../images/demo_face.jpg :target: documentation.html :alt: draw a drifting plaid .. literalinclude:: face.py psychopy-1.82.02.dfsg/docs/source/demos/plaid.py000066400000000000000000000015061257562125200214770ustar00rootroot00000000000000#!/usr/bin/env python2 from psychopy import visual, core, event #create a window to draw in myWin = visual.Window((600,600), allowGUI=False) #INITIALISE SOME STIMULI grating1 = visual.GratingStim(myWin,mask="gauss", rgb=[1.0,1.0,1.0],opacity=1.0, size=(1.0,1.0), sf=(4,0), ori = 45) grating2 = visual.GratingStim(myWin,mask="gauss", rgb=[1.0,1.0,1.0],opacity=0.5, size=(1.0,1.0), sf=(4,0), ori = 135) trialClock = core.Clock() t = 0 while t<20:#quits after 20 secs t=trialClock.getTime() grating1.setPhase(1*t) #drift at 1Hz grating1.draw() #redraw it grating2.setPhase(2*t) #drift at 2Hz grating2.draw() #redraw it myWin.flip() #update the screen #handle key presses each frame for keys in event.getKeys(): if keys in ['escape','q']: core.quit() psychopy-1.82.02.dfsg/docs/source/demos/plaid.rst000066400000000000000000000006011257562125200216520ustar00rootroot00000000000000Drifting plaid demo ===================================== The following code also checks for a keypress. The timing method simply uses a Clock object with the .getTime() call. This is very easy to code, but not quite as accurate as using the frame tick. .. image:: ../images/plaid_OSX.jpg :target: documentation.html :alt: draw a drifting plaid .. literalinclude:: plaid.py psychopy-1.82.02.dfsg/docs/source/demos/text.py000066400000000000000000000041341257562125200213720ustar00rootroot00000000000000#!/usr/bin/env python2 from psychopy import visual, core """ Text rendering has changed a lot (for the better) under pyglet. This script shows you the new way to specify fonts. """ #create a window to draw in myWin = visual.Window((800.0,800.0),allowGUI=False,winType='pyglet', monitor='testMonitor', units ='deg', screen=0) myWin.setRecordFrameIntervals() #choose some fonts. If a list is provided, the first font found will be used. fancy = ['Monotype Corsiva', 'Palace Script MT', 'Edwardian Script ITC'] sans = ['Gill Sans MT', 'Arial','Helvetica','Verdana'] #use the first font found on this list serif = ['Times','Times New Roman'] #use the first font found on this list comic = 'Comic Sans MS' #note the full name of the font - the short name won't work #INITIALISE SOME STIMULI rotating = visual.TextStim(myWin,text="Fonts \nrotate!",pos=(-5, -5),#and can have line breaks color=[-1.0,-1,1], units='deg', ori=0, height = 2.0, font=comic) unicodeStuff = visual.TextStim(myWin, text = u"unicode (eg \u03A8 \u040A \u03A3)",#you can find the unicode character value from MS Word 'insert symbol' color='black', font=serif,pos=(0,3), wrapWidth=20.0, height = 2) psychopyTxt = visual.TextStim(myWin, color='#FFFFFF', text = u"PsychoPy \u00A9Jon Peirce", units='norm', height=0.2, pos=[0.95, 0.95], alignHoriz='right',alignVert='top', font=fancy) longSentence = visual.TextStim(myWin, text = u"Very long sentences can wrap", wrapWidth=0.8, units='norm', height=0.15,color='DarkSlateBlue', pos=[0.95, -0.95], alignHoriz='right',alignVert='bottom') trialClock = core.Clock() t=lastFPSupdate=0; while t<20:#quits after 20 secs t=trialClock.getTime() rotating.setOri(1,"+") rotating.draw() unicodeStuff.draw() longSentence.draw() psychopyTxt.draw() myWin.flip() psychopy-1.82.02.dfsg/docs/source/developers/000077500000000000000000000000001257562125200210735ustar00rootroot00000000000000psychopy-1.82.02.dfsg/docs/source/developers/addingdocumentation.rst000066400000000000000000000021621257562125200256460ustar00rootroot00000000000000Adding documentation ===================================== There are several ways to add documentation, all of them useful: doc strings, comments in the code, and demos to show an example of actual usage. To further explain something to end-users, you can create or edit a .rst file that will automatically become formatted for the web, and eventually appear on www.psychopy.org. You make a new file under psychopy/docs/source/, either as a new file or folder or within an existing one. To test that your doc source code (.rst file) does what you expect in terms of formatting for display on the web, you can simply do something like (this is my actual path, unlikely to be yours):: $ cd /Users/jgray/code/psychopy/docs/ $ make html Do this within your docs directory (requires sphinx to be installed, try "easy_install sphinx" if it's not working). That will add a build/html sub-directory. Then you can view your new doc in a browser, e.g., for me: file:///Users/jgray/code/psychopy/docs/build/html/ Push your changes to your github repository (using a "DOC:" commit message) and let Jon know, e.g. with a pull request. psychopy-1.82.02.dfsg/docs/source/developers/buildercomponent.rst000066400000000000000000000203401257562125200251750ustar00rootroot00000000000000.. _addNewComponent: Adding a new Builder Component ===================================== Builder Components are auto-detected and displayed to the experimenter as icons (builder, right panel). This makes it straightforward to add new ones. All you need to do is create a list of parameters that the Component needs to know about (that will automatically appear in the Component's dialog) and a few pieces of code specifying what code should be called at different points in the script (e.g. beginning of the Routine, every frame, end of the study etc...). Many of these will come simply from subclassing the _base or _visual Components. To get started, :ref:`addfeatureBranch` for the development of this component. (If this doesn't mean anything to you then see :ref:`usingRepos` ) You'll mainly be working in the directory .../psychopy/app/builder/components/. Take a look at several existing Components (such as 'image.py'), and key files including '_base.py' and '_visual.py'. There are three main steps, the first being by far the most involved. 1. File: newcomp.py ------------------- It's pretty straightforward to model a new Component on one of the existing ones. Be prepared to specify what your Component needs to do at several different points in time: before the first trial, every frame, at the end of each routine, and at the end of the experiment. In addition, you may need to sacrifice some complexity in order to keep things streamlined enough for a Builder (see e.g., ratingscale.py). Your new Component class (in your file `newcomp.py`) should inherit from BaseComponent (in _base.py), VisualComponent (in _visual.py), or KeyboardComponent (in keyboard.py). You may need to rewrite some or all some of these methods, to override default behavior.:: class NewcompComponent(BaseComponent): # or (VisualComponent) def __init__(...): super(NewcompComponent, self).__init__(...) ... def writeInitCode(self, buff): def writeRoutineStartCode(self, buff): def writeFrameCode(self, buff): def writeRoutineEndCode(self, buff): Calling `super()` will create the basic default set of `params` that almost every component will need: `name`, `startVal`, `startType`, etc. Some of these fields may need to be overridden (e.g., `durationEstim` in sound.py). Inheriting from VisualComponent (which in turn inherits from BaseComponent) adds default visual params, plus arranges for Builder scripts to import `psychopy.visual`. If your component will need other libs, call `self.exp.requirePsychopyLib(['neededLib'])` (see e.g., parallelPort.py). At the top of a component file is a dict named `_localized`. These mappings allow a strict separation of internal string values (= used in logic, never displayed) from values used for display in the Builder interface (= for display only, possibly translated, never used in logic). The `.hint` and `.label` fields of `params['someParam']` should always be set to a localized value, either by using a dict entry such as `_localized['message']`, or via the globally available translation function, `_('message')`. Localized values must **not** be used elsewhere in a component definition. Very occasionally, you may also need to edit `settings.py`, which writes out the set-up code for the whole experiment (e.g., to define the window). For example, this was necessary for ApertureComponent, to pass "allowStencil=True" to the window creation. Your new Component writes code into a buffer that becomes an executable python file, xxx_lastrun.py (where xxx is whatever the experimenter specifies when saving from the builder, xxx.psyexp). You will do a bunch of this kind of call in your newcomp.py file:: buff.writeIndented(your_python_syntax_string_here) You have to manage the indentation level of the output code, see experiment.IndentingBuffer(). xxx_lastrun.py is the file that gets built when you run xxx.psyexp from the builder. So you will want to look at xxx_lastrun.py frequently when developing your component. **Name-space** There are several internal variables (er, names of python objects) that have a specific, hardcoded meaning within xxx_lastrun.py. You can expect the following to be there, and they should only be used in the original way (or something will break for the end-user, likely in a mysterious way):: 'win' = the window 't' = time within the trial loop, referenced to trialClock 'x', 'y' = mouse coordinates, but only if the experimenter uses a mouse component Handling of variable names is under active development, so this list may well be out of date. (If so, you might consider updating it or posting a note to psychopy-dev.) Preliminary testing suggests that there are 600-ish names from numpy or numpy.random, plus the following:: ['KeyResponse', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'buttons', 'core', 'data', 'dlg', 'event', 'expInfo', 'expName', 'filename', 'gui', 'logFile', 'os', 'psychopy', 'sound', 't', 'visual', 'win', 'x', 'y'] Yet other names get derived from user-entered names, like trials --> thisTrial. **Params** self.params is a key construct that you build up in __init__. You need name, startTime, duration, and several other params to be defined or you get errors. 'name' should be of type 'code'. The Param() class is defined in `psychopy.app.builder.experiment.Param()`. A very useful thing that Params know is how to create a string suitable for writing into the .py script. In particular, the `__str__` representation of a Param will format its value (`.val`) based on its type (`.valType`) appropriately. This means that you don't need to check or handle whether the user entered a plain string, a string with a code trigger character ($), or the field was of type `code` in the first place. If you simply request the `str()` representation of the param, it is formatted correctly. To indicate that a param (eg, `thisParam`) should be considered as an advanced feature, set its category to advanced: `self.params['thisParam'].categ = 'Advanced'`. Then the GUI shown to the experimenter will place it on the 'Advanced' tab. Other categories work similarly (`Custom`, etc). During development, it can sometimes be helpful to save the params into the xxx_lastrun.py file as comments, so I could see what was happening:: def writeInitCode(self,buff): # for debugging during Component development: buff.writeIndented("# self.params for aperture:\n") for p in self.params.keys(): try: buff.writeIndented("# %s: %s \n" % (p, self.params[p].val, self.params[p].valType)) except: pass A lot more detail can be inferred from existing components. Making things loop-compatible looks interesting -- see keyboard.py for an example, especially code for saving data at the end. Notes & gotchas ---------------- syntax errors in new_comp.py: The PsychoPy app will fail to start if there are syntax error in any of the components that are auto-detected. Just correct them and start the app again. param[].val : If you have a boolean variable (e.g., my_flag) as one of your params, note that `self.param["my_flag"]` is always True (the param exists --> True). So in a boolean context you almost always want the `.val` part, e.g., `if self.param["my_flag"].val:`. However, you do not always want `.val`. Specifically, in a string/unicode context (= to trigger the self-formatting features of Param()s), you almost always want `"%s" % self.param['my_flag']`, without `.val`. Note that it's better to do this via `"%s"` than `str()` because `str(self.param["my_flag"])` coerces things to type str (squashing unicode) whereas `%s` works for both str and unicode. 2. Icon: newcomp.png ------------------------ Using your favorite image software, make an icon for your Component with a descriptive name, e.g., 'newcomp.png'. Dimensions = 48 x 48. Put it in the components directory. In 'newcomp.py', have a line near the top:: iconFile = path.join(thisFolder, 'newcomp.png') 3. Documentation: newcomp.rst --------------------------------- Just make a descriptively-named text file that ends in `.rst` ("restructured text"), and put it in `psychopy/docs/source/builder/components/` . It will get auto-formatted and end up at http://www.psychopy.org/builder/components/newcomp.html psychopy-1.82.02.dfsg/docs/source/developers/demoStyleGuide.rst000066400000000000000000000111011257562125200245420ustar00rootroot00000000000000.. _demostyleguide: Style-guide for coder demos =========================== Each coder demo is intended to illustrate a key PsychoPy feature (or two), especially in ways that show usage in practice, and go beyond the description in the API. The aim is not to illustrate every aspect, but to get people up to speed quickly, so they understand how basic usage works, and could then play around with advanced features. As a newcomer to PsychoPy, you are in a great position to judge whether the comments and documentation are clear enough or not. If something is not clear, you may need to ask a PsychoPy contributor for a description; email psychopy-dev@googlegroups.com. Here are some style guidelines, written for the OpenHatch event(s) but hopefully useful after that too. These are intended specifically for the coder demos, not for the internal code-base (although they are generally quite close). The idea is to have clean code that looks and works the same way across demos, while leaving the functioning mostly untouched. Some small changes to function might be needed (e.g., to enable the use of 'escape' to quit), but typically only minor changes like this. - Generally, when you run the demo, does it look good and help you understand the feature? Where might there be room for improvement? You can either leave notes in the code in a comment, or include them in a commit message. - Standardize the top stuff to have 1) a shbang with python2 (not just python), 2) utf-8 encoding, and 3) a comment:: #!/usr/bin/env python2 # -*- coding: utf-8 -*- """Demo name, purpose, description (1-2 sentences, although some demos need more explanation). """ For the comment / description, it's a good idea to read and be informed by the relevant parts of the API (see http://psychopy.org/api/api.html), but there's no need to duplicate that text in your comment. If you are unsure, please post to the dev list psychopy-dev@googlegroups.com. - Follow PEP-8 mostly, some exceptions: - current PsychoPy convention is to use camelCase for variable names, so don't convert those to underscores - 80 char columns can spill over a little. Try to keep things within 80 chars most of the time. - do allow multiple imports on one line if they are thematically related (e.g., `import os, sys, glob`). - inline comments are ok (because the code demos are intended to illustrate and explain usage in some detail, more so than typical code). - Check all imports: - remove any unnecessary ones - replace `import time` with `from psychopy import core`. Use `core.getTime()` (= ms since the script started) or `core.getAbsTime()` (= seconds, unix-style) instead of `time.time()`, for all time-related functions or methods not just `time()`. - add `from __future__ import division`, even if not needed. And make sure that doing so does not break the demo! - Fix any typos in comments; convert any lingering British spellings to US, e.g., change `colour` to `color` - Prefer `if :` as a construct instead of `if == True:`. (There might not be any to change). - If you have to choose, opt for more verbose but easier-to-understand code instead of clever or terse formulations. This is for readability, especially for people new to python. If you are unsure, please add a note to your commit message, or post a question to the dev list psychopy-dev@googlegroups.com. - Standardize variable names: - use `win` for the `visual.Window()`, and so `win.flip()` - Provide a consistent way for a user to exit a demo using the keyboard, ideally enable this on every visual frame: use `if len(event.getKeys(['escape']): core.quit()`. **Note**: if there is a previous `event.getKeys()` call, it can slurp up the `'escape'` keys. So check for 'escape' first. - Time-out after 10 seconds, if there's no user response and a timeout is appropriate for the demo (and a longer time-out might be needed, e.g., for `ratingScale.py`):: demoClock = core.clock() # is demoClock's time is 0.000s at this point ... if demoClock.getTime() > 10.: core.quit() - Most demos are not full screen. For any that are full-screen, see if it can work without being full screen. If it has to be full-screen, add some text to say that pressing 'escape' will quit. - If displaying log messages to the console seems to help understand the demo, here's how to do it:: from psychopy import logging ... logging.console.setLevel(logging.INFO) # or logging.DEBUG for even more stuff - End a script with `win.close()` (assuming the script used a `visual.Window`), and then `core.quit()` even though it's not strictly necessary psychopy-1.82.02.dfsg/docs/source/developers/developers.rst000066400000000000000000000013161257562125200237760ustar00rootroot00000000000000.. _developers: For Developers ===================================== There is a separate mailing list to discuss development ideas and issues. For developers the best way to use PsychoPy is to install a version to your own copy of python (preferably 2.6 but 2.5 is OK). Make sure you have all the :ref:`dependencies`, including the extra :ref:`recommendedPackages` for developers. Don't *install* PsychoPy. Instead fetch a copy of the git repository and add this to the python path using a .pth file. Other users of the computer might have their own standalone versions installed without your repository version touching them. .. toctree:: :maxdepth: 1 :glob: repository * Happy Coding Folks!! psychopy-1.82.02.dfsg/docs/source/developers/localization.rst000066400000000000000000000221301257562125200243130ustar00rootroot00000000000000Localization (I18N, translation) ================================== PsychoPy is used worldwide. Starting with v1.81, many parts of PsychoPy itself (the app) can be translated into any language that has a unicode character set. A translation affects what the experimenter sees while creating and running experiments; it is completely separate from what is shown to the subject. Translations of the online documentation will need a completely different approach. In the app, translation is handled by a function, ``_translate()``, which takes a string argument. (The standard name is ``_()``, but unfortunately this conflicts with _ as used in some external packages that PsychoPy depends on.) The ``_translate()`` function returns a translated, unicode version of the string in the locale / language that was selected when starting the app. If no translation is available for that locale, the original string is returned (= English). A locale setting (e.g., 'ja_JP' for Japanese) allows the end-user (= the experimenter) to control the language that will be used for display within the app itself. (It can potentially control other display conventions as well, not just the language.) PsychoPy will obtain the locale from the user preference (if set), or the OS. Workflow: 1) Make a translation from English (en_US) to another language. You'll need a strong understanding of PsychoPy, English, and the other language. 2) In some cases it will be necessary to adjust PsychoPy's code, but only if new code has been added to the app and that code displays text. Then re-do step 1 to translate the newly added strings. See notes in ``psychopy/app/localization/readme.txt``. Make a translation (.po file) ------------------------------ As a translator, you will likely introduce many new people to PsychoPy, and your translations will greatly influence their experience. Try to be completely accurate; it is better to leave something in English if you are unsure how PsychoPy is supposed to work. To translate a given language, you'll need to know the standard 5-character code (see `psychopy/app/localization/mappings`). E.g., for Japanese, wherever LANG appears in the documentation here, you should use the actual code, i.e., "ja_JP" (without quotes). A free app called poedit is useful for managing a translation. For a given language, the translation mappings (from en_US to LANG) are stored in a .po file (a text file with extension `.po`); after editing with poedit, these are converted into binary format (with extension `.mo`) which are used when the app is running. - Start translation (do these steps once): Start a translation by opening `psychopy/app/locale/LANG/LC_MESSAGE/messages.po` in Poedit. If there is no such .po file, create a new one: - make a new directory `psychopy/app/locale/LANG/LC_MESSAGE/` if needed. Your `LANG` will be auto-detected within PsychoPy only if you follow this convention. You can copy metadata (such as the project name) from another .po file. Set your name and e-mail address from "Preferences..." of "File" menu. Set translation properties (such as project name, language and charset) from Catalog Properties Dialog, which can be opened from "Properties..." of "Catalog" menu. In poedit's properties dialog, set the "source keywords" to include '_translate'. This allows poedit to find the strings in PsychoPy that are to be translated. To add paths where Poedit scans .py files, open "Sources paths" tab on the Catalog Properties Dialog, and set "Base path:" to "../../../../../" (= psychopy/psychopy/). Nothing more should be needed. If you've created new catalog, save your catalog to `psychopy/app/locale/LANG/LC_MESSAGE/messages.po`. Probably not needed, but check anyway: Edit the file containing language code and name mappings, `psychopy/app/localization/mappings`, and fill in the name for your language. Give a name that should be familiar to people who read that language (i.e., use the name of the language as written in the language itself, not in en_US). About 25 are already done. - Edit a translation: Open the .po file with Poedit and press "Update" button on the toolbar to update newly added / removed strings that need to be translated. Select a string you want to translate and input your translation to "Translation:" box. If you are unsure where string is used, point on the string in "Source text" box and right-click. You can see where the string is defined. - Technical terms should not be translated: Builder, Coder, PsychoPy, Flow, Routine, and so on. (See the Japanese translation for guidance.) - If there are formatting arguments in the original string (``%s``, ``%(first)i``), the same number of arguments must also appear in the translation (but their order is not constrained to be the original order). If they are named (e.g., ``%(first)i``), that part should not be translated--here ``first`` is a python name. - If you think your translation might have room for improvement, indicate that it is "fuzzy". (Saving Notes does not work for me on Mac, seems like a bug in poedit.) - After making a new translation, saving it in poedit will save the .po file and also make an associated .mo file. You need to update the .mo file if you want to see your changes reflected in PsychoPy. - The start-up tips are stored in separate files, and are not translated by poedit. Instead: * copy the default version (named `psychopy/app/Resources/tips.txt`) to a new file in the same directory, named `tips_LANG.txt`. Then replace English-language tips with translated tips. Note that some of the humor might not translate well, so feel free to leave out things that would be too odd, or include occasional mild humor that would be more appropriate. Humor must be respectful and suitable for using in a classroom, laboratory, or other professional situation. Don't get too creative here. If you have any doubt, best leave it out. (Hopefully it goes without saying that you should avoid any religious, political, disrespectful, or sexist material.) * in poedit, translate the file name: translate "tips.txt" as "tips_LANG.txt" - Commit both the .po and .mo files to github (not just one or the other), and any changed files (e.g., `tips_LANG`, `localization/mappings`). Adjust PsychoPy's code ---------------------------- This is mostly complete (as of 1.81.00), but will be needed for new code that displays text to users of the app (experimenters, not study participants). There are a few things to keep in mind when working on the app's code to make it compatible with translations. If you are only making a translation, you can skip this section. - In PsychoPy's code, the language to be used should always be English with American spellings (e.g., "color"). - Within the app, the return value from ``_translate()`` should be used only for display purposes: in menus, tooltips, etc. A translated value should never be used as part of the logic or internal functioning of PsychoPy. It is purely a "skin". Internally, everything must be in en_US. - Basic usage is exactly what you expect: ``_translate("hello")`` will return a unicode string at run-time, using mappings for the current locale as provided by a translator in a .mo file. (Not all translations are available yet, see above to start a new one.) To have the app display a translated string to the experimenter, just display the return value from the underscore translation function. - The strings to be translated must appear somewhere in the app code base as explicit strings within ``_translate()``. If you need to translate a variable, e.g., named ``str_var`` using the expression ``_translate(str_var)``, somewhere else you need to explicitly give all the possible values that ``str_var`` can take, and enclose each of them within the translate function. It is okay for that to be elsewhere, even in another file, but not in a comment. This allows poedit to discover of all the strings that need to be translated. (This is one of the purposes of the `_localized` dict at the top of some modules.) - ``_translate()`` should not be given a null string to translate; if you use a variable, check that it is not '' to avoid invoking ``_translate('')``. - Strings that contain formatting placeholders (e.g., %d, %s, %.4f) require a little more thought. Single placeholders are easy enough: ``_translate("hello, %s") % name``. - Strings with multiple formatting placeholders require named arguments, because positional arguments are not always sufficient to disambiguate things depending on the phrase and the language to be translated into: ``_translate("hello, %(first)s %(last)s") % {'first': firstname, 'last': lastname}`` - Localizing drop-down menus is a little more involved. Such menus should display localized strings, but return selected values as integers (``GetSelection()`` returns the position within the list). Do not use ``GetStringSelection()``, because this will return the localized string, breaking the rule about a strict separation of display and logic. See Builder ParamDialogs for examples. Other notes ------------- When there are more translations (and if they make the app download large) we might want to manage things differently (e.g., have translations as a separate download from the app). psychopy-1.82.02.dfsg/docs/source/developers/menuitem.rst000066400000000000000000000065521257562125200234600ustar00rootroot00000000000000.. _addMenuItem: Adding a new Menu Item ===================================== Adding a new menu-item to the Builder (or Coder) is relatively straightforward, but there are several files that need to be changed in specific ways. 1. makeMenus() -------------- The code that constructs the menus for the Builder is within a method named `makeMenus()`, within class builder.BuilderFrame(). Decide which submenu your new command fits under, and look for that section (e.g., File, Edit, View, and so on). For example, to add an item for making the Routine panel items larger, I added two lines within the View menu, by editing the `makeMenus()` method of class `BuilderFrame` within `psychopy/app/builder/builder.py` (similar for Coder):: self.viewMenu.Append(self.IDs.tbIncrRoutineSize, _("&Routine Larger\t%s") %self.app.keys['largerRoutine'], _("Larger routine items")) wx.EVT_MENU(self, self.IDs.tbIncrRoutineSize, self.routinePanel.increaseSize) Note the use of the translation function, _(), for translating text that will be displayed to users (menu listing, hint). 2. wxIDs.py ------------------------ A new item needs to have a (numeric) ID so that `wx` can keep track of it. Here, the number is `self.IDs.tbIncrRoutineSize`, which I had to define within the file `psychopy/app/wxIDs.py`:: tbIncrRoutineSize=180 It's possible that, instead of hard-coding it like this, it's better to make a call to `wx.NewId()` -- wx will take care of avoiding duplicate IDs, presumably. 3. Key-binding prefs -------------------------- I also defined a key to use to as a keyboard short-cut for activating the new menu item:: self.app.keys['largerRoutine'] The actual key is defined in a preference file. Because psychopy is multi-platform, you need to add info to four different .spec files, all of them being within the `psychopy/preferences/` directory, for four operating systems (Darwin, FreeBSD, Linux, Windows). For `Darwin.spec` (meaning Mac OS X), I added two lines. The first line is not merely a comment: it is also automatically used as a tooltip (in the preferences dialog, under key-bindings), and the second being the actual short-cut key to use:: # increase display size of Routines largerRoutine = string(default='Ctrl++') # on mac book pro this is good This means that the user has to hold down the `Ctrl` key and then press the `+` key. Note that on macs, 'Ctrl' in the spec is automatically converted into 'Cmd' for the actual key to use; in the .spec, you should always specify things in terms of 'Ctrl' (and not 'Cmd'). The default value is the key-binding to use unless the user defines another one in her or his preferences (which then overrides the default). Try to pick a sensible key for each operating system, and update all four .spec files. 4. Your new method ----------------------------- The second line within `makeMenus()` adds the key-binding definition into wx's internal space, so that when the key is pressed, `wx` knows what to do. In the example, it will call the method `self.routinePanel.increaseSize`, which I had to define to do the desired behavior when the method is called (in this case, increment an internal variable and redraw the routine panel at the new larger size). 5. Documentation ---------------- To let people know that your new feature exists, add a note about your new feature in the CHANGELOG.txt, and appropriate documentation in .rst files. psychopy-1.82.02.dfsg/docs/source/developers/repository.rst000066400000000000000000000243441257562125200240530ustar00rootroot00000000000000.. _usingRepos: Using the repository ------------------------------ .. note:: Much of the following is explained with more detail in the `nitime documentation `_, and then in further detail in numerous online tutorials. Workflow ~~~~~~~~~~ The use of git and the following workflow allows people to contribute changes that can easily be incorporated back into the project, while (hopefully) maintaining order and consistency in the code. All changes should be tracked and reversible. - Create a fork of the central psychopy/psychopy repository - Create a local clone of that fork - For small changes - make the changes directly in the master branch - push back to your fork - submit a pull request to the central repository - For substantial changes (new features) - create a branch - when finished run unit tests - when the unit tests pass merge changes back into the `master` branch - submit a pull request to the central repository .. createClone: Create your own fork of the central repository ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Go to `github `_, create an account and make a fork of the `psychopy repository `_ You can change your fork in any way you choose without it affecting the central project. You can also share your fork with others, including the central project. Fetch a local copy ~~~~~~~~~~~~~~~~~~~~ `Install git on your computer `_. Create and upload an ssh key to your github account - this is necessary for you to push changes back to your fork of the project at github. Then, in a folder of your choosing fetch your fork:: $ git clone git@github.com:USER/psychopy.git $ cd psychopy $ git remote add upstream git://github.com/psychopy/psychopy.git The last line connects your copy (with read access) to the central server so you can easily fetch any updates to the central repository. Fetching the latest version ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Periodically it's worth fetching any changes to the central psychopy repository (into your `master` branch, more on that below):: $ git checkout master $ git pull upstream master # here 'master' is the desired branch of psychopy to fetch Run PsychoPy using your local copy ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Now that you've fetched the latest version of psychopy using git, you should run this version in order to try out yours/others latest improvements. See `this guide `_ on how to permanently run your git version of psychopy instead of the version you previously installed. *Run git version for just one session (Linux and Mac only)*: If you want to switch between the latest-and-greatest development version from git and the stable version installed on your system, you can choose to only temporarily run the git version. Open a terminal and set a temporary python path to your psychopy git folder:: $ export PYTHONPATH=/path/to/local/git/folder/ To check that worked you should open python in the terminal and try to import psychopy:: $ python Python 2.7.6 (default, Mar 22 2014, 22:59:56) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import psychopy PsychoPy depends on a lot of other packages and you may get a variety of failures to import them until you have them all installed in your custom environment! Fixing bugs and making minor improvements ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ You can make minor changes directly in the `master` branch of your fork. After making a change you need to `commit` a set of changes to your files with a message. This enables you to group together changes and you will subsequently be able to go back to any previous `commit`, so your changes are reversible. I (Jon) usually do this by opening the graphical user interface that comes with git:: $ git gui From the GUI you can select (or `stage` in git terminology) the files that you want to include in this particular `commit` and give it a message. Give a clear summary of the changes for the first line. You can add more details about the changes on lower lines if needed. If you have internet access then you could also push your changes back up to your fork (which is called your `origin` by default), either by pressing the `push` button in the GUI or by closing that and typing:: $ git push Commit messages ~~~~~~~~~~~~~~~~~~~~~ Informative commit messages are really useful when we have to go back through the repository finding the time that a particular change to the code occurred. Precede your message with one or more of the following to help us spot easily if this is a bug fix (which might need pulling into other development branches) or new feature (which we might want to avoid pulling in if it might disrupt existing code). * *BF* : bug fix * *FF* : 'feature' fix. This is for fixes to code that hasn't been released * *RF* : refactoring * *NF* : new feature * *ENH* : enhancement (improvement to existing code) * *DOC*: for all kinds of documentation related commits * *TEST*: for adding or changing tests NB: The difference between BF and FF is that BF indicates a fix that is appropriate for back-porting to earlier versions, whereas FF indicates a fix to code that has not been released, and so cannot be back-ported. .. _pullRequest: Share your improvement with others ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Only a couple of people have direct write-access to the psychopy repository, but you can get your changes included in `upstream` by pushing your changes back to your github fork and then `submitting a pull request `_. Communication is good, and hopefully you have already been in touch (via the user or dev lists) about your changes. When adding an improvement or new feature, consider how it might impact others. Is it likely to be generally useful, or is it something that only you or your lab would need? (It's fun to contribute, but consider: does it actually need to be part of PsychoPy?) Including more features has a downside in terms of complexity and bloat, so try to be sure that there is a "business case" for including it. If there is, try at all times to be backwards compatible, e.g., by adding a new keyword argument to a method or function (not always possible). If it's not possible, it's crucial to get wider input about the possible impacts. Flag situations that would break existing user scripts in your commit messages. Part of sharing your code means making things sensible to others, which includes good coding style and writing some documentation. You are the expert on your feature, and so are in the best position to elaborate nuances or gotchas. Use meaningful variable names, and include comments in the code to explain non-trivial things, especially the intention behind specific choices. Include or edit the appropriate doc-string, because these are automatically turned into API documentation (via sphinx). Include doc-tests if that would be meaningful. The existing code base has a comment / code ratio of about 28%, which earns it high marks. For larger changes and especially new features, you might need to create some usage examples, such as a new Coder demo, or even a Builder demo. These can be invaluable for being a starting point from which people can adapt things to the needs of their own situation. This is a good place to elaborate usage-related gotchas. In terms of style, try to make your code blend in with and look like the existing code (e.g., using about the same level of comments, use camelCase for var names, despite the conflict with the usual PEP -- we'll eventually move to the underscore style, but for now keep everything consistent within the code base). In your own code, write however you like of course. This is just about when contributing to the project. .. _addFeatureBranch: Add a new feature branch ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For more substantial work, you should create a new branch in your repository. Often while working on a new feature other aspects of the code will get broken and the `master` branch should always be in a working state. To create a new branch:: $ git branch feature-somethingNew You can now switch to your new feature branch with:: $ git checkout feature-somethingNew And get back to your `master` branch with:: $ git checkout master You can push your new branch back to your fork (`origin`) with:: $ git push origin feature-somethingNew Completing work on a feature ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ When you're done run the unit tests for your feature branch. Set the `debug` preference setting (in the app section) to True, and restart psychopy. This will enable access to the test-suite. In debug mode, from the Coder (not Builder) you can now do Ctrl-T / Cmd-T (see Tools menu, Unit Testing) to bring up the unit test window. You can select a subset of tests to run, or run them all. It's also possible to run just selected tests, such as doctests within a single file. From a terminal window:: cd psychopy/tests/ #eg /Users/jgray/code/psychopy/psychopy/tests ./run.py path/to/file_with_doctests.py If the tests pass you hopefully haven't damaged other parts of PsychoPy (!?). If possible add a unit test for your new feature too, so that if other people make changes they don't break your work! You can merge your changes back into your master branch with:: $ git checkout master $ git merge feature-somethingNew Merge conflicts happen, and need to be resolved. If you configure your git preferences (~/.gitconfig) to include:: [merge] summary = true log = true tool = opendiff then you'll be able to use a handy GUI interface (opendiff) for reviewing differences and conflicts, just by typing:: git mergetool from the command line after hitting a merge conflict (such as during a `git pull upstream master`). Once you've folded your new code back into your master and pushed it back to your github fork then it's time to :ref:`pullRequest`. psychopy-1.82.02.dfsg/docs/source/documentation.rst000066400000000000000000000013521257562125200223270ustar00rootroot00000000000000Documentation ===================================== .. only:: html A pdf copy of the current documentation is available at: http://www.psychopy.org/PsychoPyManual.pdf Contents: .. toctree:: :maxdepth: 1 about/index general/general installation gettingStarted Builder - building experiments in a GUI Coder - writing experiments with scripts api/api Further information: .. toctree:: :maxdepth: 1 troubleshooting recipes/recipes faqs/faqs resources/resources For developers: .. toctree:: :maxdepth: 1 developers/developers psyexp .. only:: html Indices ----------- * :ref:`glossary` * :ref:`genindex`psychopy-1.82.02.dfsg/docs/source/faqs/000077500000000000000000000000001257562125200176555ustar00rootroot00000000000000psychopy-1.82.02.dfsg/docs/source/faqs/bits.rst000066400000000000000000000032231257562125200213500ustar00rootroot00000000000000Why is the bits++ demo not working? ===================================== So far PsychoPy supports bits++ only in the bits++ mode (rather than mono++ or color++). In this mode, a code (the T-lock code) is written to the lookup table on the bits++ device by drawing a line at the top of the window. The most likely reason that the demo isn't working for you is that this line is not being detected by the device, and so the lookup table is not being modified. Most of these problems are actually nothing to do with PsychoPy /per se/, but to do with your graphics card and the CRS bits++ box itself. There are a number of reasons why the T-lock code is not being recognised: * the bits++ device is in the wrong mode. Open the utility that CRS supply and make sure you're in the right mode. Try resetting the bits++ (turn it off and on). * the T-lock code is not fully on the screen. If you create a window that's too big for the screen or badly positioned then the code will be broken/not visible to the device. * the T-lock code is on an 'odd' pixel. * the graphics card is doing some additional filtering (win32). Make sure you turn off any filtering in the advanced display properties for your graphics card * the gamma table of the graphics card is not set to be linear (but this should normally be handled by PsychoPy, so don't worry so much about it). * you've got a Mac that's performing temporal dithering (new macs, around 2009). Apple have come up with a new, very annoying idea, where they continuously vary the pixel values coming out of the graphics card every frame to create additional intermediate colours. This will break the T-lock code on 1/2-2/3rds of frames. psychopy-1.82.02.dfsg/docs/source/faqs/faqs.rst000066400000000000000000000001741257562125200213430ustar00rootroot00000000000000Frequently Asked Questions (FAQs) ===================================== .. toctree:: :maxdepth: 2 :glob: * psychopy-1.82.02.dfsg/docs/source/faqs/timing.rst000066400000000000000000000003561257562125200217020ustar00rootroot00000000000000Can PsychoPy run my experiment with sub-millisecond timing? ------------------------------------------------------------ This question is common enough and complex enough to have a section of the manual all of its own. See :ref:`timing` psychopy-1.82.02.dfsg/docs/source/general/000077500000000000000000000000001257562125200203405ustar00rootroot00000000000000psychopy-1.82.02.dfsg/docs/source/general/colours.rst000066400000000000000000000124671257562125200225720ustar00rootroot00000000000000.. _colorspaces: Color spaces ==================================== The color of stimuli can be specified when creating a stimulus and when using setColor() in a variety of ways. There are three basic color spaces that PsychoPy can use, RGB, DKL and LMS but colors can also be specified by a name (e.g. 'DarkSalmon') or by a hexadecimal string (e.g. '#00FF00'). examples:: stim = visual.GratingStim(win, color=[1,-1,-1], colorSpace='rgb') #will be red stim.setColor('Firebrick')#one of the web/X11 color names stim.setColor('#FFFAF0')#an off-white stim.setColor([0,90,1], colorSpace='dkl')#modulate along S-cone axis in isoluminant plane stim.setColor([1,0,0], colorSpace='lms')#modulate only on the L cone stim.setColor([1,1,1], colorSpace='rgb')#all guns to max stim.setColor([1,0,0])#this is ambiguous - you need to specify a color space .. _colorNames: Colors by name ---------------- Any of the `web/X11 color names `_ can be used to specify a color. These are then converted into RGB space by PsychoPy. These are not case sensitive, but should not include any spaces. .. _hexColors: Colors by hex value -------------------- This is really just another way of specifying the r,g,b values of a color, where each gun's value is given by two hexadecimal characters. For some examples see `this chart `_. To use these in PsychoPy they should be formatted as a string, beginning with `#` and with no spaces. (NB on a British Mac keyboard the # key is hidden - you need to press Alt-3) .. _RGB: RGB color space ------------------- This is the simplest color space, in which colors are represented by a triplet of values that specify the red green and blue intensities. These three values each range between -1 and 1. Examples: * [1,1,1] is white * [0,0,0] is grey * [-1,-1,-1] is black * [1.0,-1,-1] is red * [1.0,0.6,0.6] is pink The reason that these colors are expressed ranging between 1 and -1 (rather than 0:1 or 0:255) is that many experiments, particularly in visual science where PsychoPy has its roots, express colors as deviations from a grey screen. Under that scheme a value of -1 is the maximum decrement from grey and +1 is the maximum increment above grey. Note that PsychoPy will use your monitor calibration to linearize this for each gun. E.g., 0 will be halfway between the minimum luminance and maximum luminance for each gun, if your monitor gammaGrid is set correctly. .. _HSV: HSV color space ------------------ Another way to specify colors is in terms of their Hue, Saturation and 'Value' (HSV). For a description of the color space see the `Wikipedia HSV entry `_. The Hue in this case is specified in degrees, the saturation ranging 0:1 and the 'value' also ranging 0:1. Examples: * [0,1,1] is red * [0,0.5,1] is pink * [90,1,1] is cyan * [anything, 0, 1] is white * [anything, 0, 0.5] is grey * [anything, anything,0] is black Note that colors specified in this space (like in RGB space) are not going to be the same another monitor; they are device-specific. They simply specify the intensity of the 3 primaries of your monitor, but these differ between monitors. As with the RGB space gamma correction is automatically applied if available. .. _DKL: DKL color space ------------------- To use DKL color space the monitor should be calibrated with an appropriate spectrophotometer, such as a PR650. In the Derrington, Krauskopf and Lennie [#dkl1984]_ color space (based on the Macleod and Boynton [#mb1979]_ chromaticity diagram) colors are represented in a 3-dimensional space using spherical coordinates that specify the `elevation` from the isoluminant plane, the `azimuth` (the hue) and the contrast (as a fraction of the maximal modulations along the cardinal axes of the space). .. image:: ../images/dklSpace.png In PsychoPy these values are specified in units of degrees for elevation and azimuth and as a float (ranging -1:1) for the contrast. Note that not all colors that can be specified in DKL color space can be reproduced on a monitor. `Here `_ is a movie plotting in DKL space (showing `cartesian` coordinates, not spherical coordinates) the gamut of colors available on an example CRT monitor. Examples: * [90,0,1] is white (maximum elevation aligns the color with the luminance axis) * [0,0,1] is an isoluminant stimulus, with azimuth 0 (S-axis) * [0,45,1] is an isoluminant stimulus,with an oblique azimuth .. [#dkl1984] Derrington, A.M., Krauskopf, J., & Lennie, P. (1984). Chromatic Mechanisms in Lateral Geniculate Nucleus of Macaque. Journal of Physiology, 357, 241-265. .. [#mb1979] MacLeod, D. I. A. & Boynton, R. M. (1979). Chromaticity diagram showing cone excitation by stimuli of equal luminance. Journal of the Optical Society of America, 69(8), 1183-1186. .. _LMS: LMS color space -------------------- To use LMS color space the monitor should be calibrated with an appropriate spectrophotometer, such as a PR650. In this color space you can specify the relative strength of stimulation desired for each cone independently, each with a value from -1:1. This is particularly useful for experiments that need to generate cone isolating stimuli (for which modulation is only affecting a single cone type). psychopy-1.82.02.dfsg/docs/source/general/dataOutputs.rst000066400000000000000000000131251257562125200234110ustar00rootroot00000000000000.. _outputs: Data outputs ==================================== There are a number of different forms of output that PsychoPy can generate, depending on the study and your preferred analysis software. Multiple file types can be output from a single experiment (e.g. :ref:`excelFile` for a quick browse, :ref:`logFile` to check for error messages and :ref:`psydatFile` for detailed analysis) .. _logFile: Log file ----------- Log files are actually rather difficult to use for data analysis but provide a chronological record of everything that happened during your study. The level of content in them depends on you. See :ref:`codeLogging` for further information. .. _psydatFile: PsychoPy data file (.psydat) ------------------------------------ This is actually a :class:`~psychopy.data.TrialHandler` or :class:`~psychopy.data.StairHandler` object that has been saved to disk with the python `cPickle `_ module. These files are designed to be used by experienced users with previous experience of python and, probably, matplotlib. The contents of the file can be explored with dir(), as any other python object. These files are ideal for batch analysis with a python script and plotting via `matplotlib`. They contain more information than the Excel or csv data files, and can even be used to (re)create those files. Of particular interest might be the attributes of the Handler: :extraInfo: the `extraInfo` dictionary provided to the Handler during its creation :trialList: the list of dictionaries provided to the Handler during its creation :data: a dictionary of 2D numpy arrays. Each entry in the dictionary represents a type of data (e.g. if you added 'rt' data during your experiment using :ref:`~psychopy.data.TrialHandler.addData` then 'rt' will be a key). For each of those entries the 2D array represents the condition number and repeat number (remember that these start at 0 in python, unlike Matlab(TM) which starts at 1) For example, to open a psydat file and examine some of its contents with:: from psychopy.misc import fromFile datFile = fromFile('fileName.psydat') #get info (added when the handler was created) print datFile.extraInfo #get data print datFile.data #get list of conditions conditions = datFile.trialList for condN, condition in enumerate(conditions): print condition, datFile.data['response'][condN], numpy.mean(datFile.data['response'][condN]) Ideally, we should provide a demo script here for fetching and plotting some data (feel free to :ref:`contribute `). .. _longWide: Long-wide data file ----------------------- This form of data file is the default data output from Builder experiments as of v1.74.00. Rather than summarising data in a spreadsheet where one row represents all the data from a single condition (as in the summarised data format), in long-wide data files the data is not collapsed by condition, but written chronologically with one row representing one trial (hence it is typically longer than summarised data files). One column in this format is used for every single piece of information available in the experiment, even where that information might be considered redundant (hence the format is also 'wide'). Although these data files might not be quite as easy to read quickly by the experimenter, they are ideal for import and analysis under packages such as R, SPSS or Matlab. .. _excelFile: Excel data file -------------------- Excel 2007 files (.xlsx) are a useful and flexible way to output data as a spreadsheet. The file format is open and supported by nearly all spreadsheet applications (including older versions of Excel and also OpenOffice). N.B. because .xlsx files are widely supported, the older Excel file format (.xls) is not likely to be supported by PsychoPy unless a user contributes the code to the project. Data from PsychoPy are output as a table, with a header row. Each row represents one condition (trial type) as given to the :class:`~psychopy.data.TrialHandler`. Each column represents a different type of data as given in the header. For some data, where there are multiple columns for a single entry in the header. This indicates multiple trials. For example, with a standard data file in which response time has been collected as 'rt' there will be a heading `rt_raw` with several columns, one for each trial that occurred for the various trial types, and also an `rt_mean` heading with just a single column giving the mean reaction time for each condition. If you're creating experiments by writing scripts then you can specify the sheet name as well as file name for Excel file outputs. This way you can store multiple sessions for a single subject (use the subject as the filename and a date-stamp as the sheetname) or a single file for multiple subjects (give the experiment name as the filename and the participant as the sheetname). Builder experiments use the participant name as the file name and then create a sheet in the Excel file for each loop of the experiment. e.g. you could have a set of practice trials in a loop, followed by a set of main trials, and these would each receive their own sheet in the data file. .. _textFile: Delimited text files (.csv, .tsv, .txt) ------------------------------------------------- For maximum compatibility, especially for legacy analysis software, you can choose to output your data as a delimited text file. Typically this would be comma-separated values (.csv file) or tab-delimited (.txt file). The format of those files is exactly the same as the Excel file, but is limited by the file format to a single sheet. psychopy-1.82.02.dfsg/docs/source/general/gamma.rst000066400000000000000000000120621257562125200221550ustar00rootroot00000000000000.. _gammaCorrection: Gamma correcting a monitor ==================================== Monitors typically don't have linear outputs; when you request luminance level of 127, it is not exactly half the luminance of value 254. For experiments that require the luminance values to be linear, a correction needs to be put in place for this nonlinearity which typically involves fitting a power law or gamma (:math:`\gamma`) function to the monitor output values. This process is often referred to as :term:`gamma correction`. PsychoPy can help you perform gamma correction on your monitor, especially if you have one of the supported photometers/spectroradiometers. There are various different equations with which to perform gamma correction. The simple equation :eq:`simple` is assumed by most hardware manufacturers and gives a reasonable first approximation to a linear correction. The full gamma correction equation :eq:`full` is more general, and likely more accurate especially where the lowest luminance value of the monitor is bright, but also requires more information. It can only be used in labs that do have access to a photometer or similar device. Simple gamma correction --------------------------- The simple form of correction (as used by most hardware and software) is this: .. math:: :label: simple L(V) = a + kV^\gamma where :math:`L` is the final luminance value, :math:`V` is the requested intensity (ranging 0 to 1), :math:`a`, :math:`k` and :math:`\gamma` are constants for the monitor. This equation assumes that the luminance where the monitor is set to 'black' (V=0) comes entirely from the surround and is therefore not subject to the same nonlinearity as the monitor. If the monitor itself contributes significantly to :math:`a` then the function may not fit very well and the correction will be poor. The advantage of this function is that the calibrating system (PsychoPy in this case) does not need to know anything more about the monitor than the gamma value itself (for each gun). For the full gamma equation :eq:`full`, the system needs to know about several additional variables. The look-up table (LUT) values required to give a (roughly) linear luminance output can be generated by: .. math:: :label: simpleLUT LUT(V) = V^{1/\gamma} where `V` is the entry in the LUT, between 0 (black) and 1 (white). Full gamma correction --------------------------- For very accurate gamma correction PsychoPy uses a more general form of the equation above, which can separate the contribution of the monitor and the background to the lowest luminance level: .. math:: :label: full L(V) = a + (b+kV)^\gamma This equation makes no assumption about the origin of the base luminance value, but requires that the system knows the values of :math:`b` and :math:`k` as well as :math:`\gamma`. The inverse values, required to build the LUT are found by: .. math:: :label: fullLUT LUT(V) = \frac{( (1-V)b^\gamma + V(b+k)^\gamma )^{1/\gamma}-b}{k} This is derived below, for the interested reader. ;-) And the associated luminance values for each point in the LUT are given by: .. math:: L(V) = a + (1-V)b^\gamma + V(b+k)^\gamma .. _deriveInverseGamma: Deriving the inverse full equation --------------------------------------- The difficulty with the full gamma equation :eq:`full` is that the presence of the :math:`b` value complicates the issue of calculating the inverse values for the LUT. The simple inverse of :eq:`full` as a function of output luminance values is: .. math:: :label: zhangPelliLUT LUT(L) = \frac{((L-a)^{1/\gamma} - b )}{k} To use this equation we need to first calculate the linear set of luminance values, :math:`L`, that we are able to produce the current monitor and lighting conditions and *then* deduce the LUT value needed to generate that luminance value. We need to insert into the LUT the values between 0 and 1 (to use the maximum range) that map onto the linear range from the minimum, `m`, to the maximum `M` possible luminance. From the parameters in :eq:`full` it is clear that: .. math:: :label: minMax m = a+b^\gamma M = a+(b+k)^\gamma Thus, the luminance value, `L` at any given point in the LUT, `V`, is given by .. math:: :label: lumsLUT L(V) &= m + (M-m)V \\ &= a+b^\gamma + (a+(b+k)^\gamma - a - b^\gamma)V \\ &= a + b^\gamma + ((b+k)^\gamma - b^\gamma)V \\ &= a + (1-V)b^\gamma + V(b+k)^\gamma where :math:`V` is the position in the LUT as a fraction. Now, to generate the LUT as needed we simply take the inverse of :eq:`full`: .. math:: :label: fullInv LUT(L) = \frac{(L-a)^{1/\gamma}-b}{k} and substitute our :math:`L(V)` values from :eq:`lumsLUT`: .. math:: :label: fullLUTderived LUT(V) &= \frac{( a + (1-V)b^\gamma + V(b+k)^\gamma -a)^{1/\gamma}-b}{k}\\ &= \frac{( (1-V)b^\gamma + V(b+k)^\gamma )^{1/\gamma}-b}{k} References -------------- .. [#1] Pelli, D. G., & Zhang, L. (1991) Accurate control of contrast on microcomputer displays. Vision Research 31, 1337-1350. psychopy-1.82.02.dfsg/docs/source/general/general.rst000066400000000000000000000004771257562125200225170ustar00rootroot00000000000000General issues ==================================== These are issues that users should be aware of, whether they are using Builder or Coder views. .. toctree:: :maxdepth: 1 monitors units colours prefs dataOutputs gamma rendering .. toctree:: :maxdepth: 2 timing/timing glossarypsychopy-1.82.02.dfsg/docs/source/general/glossary.rst000066400000000000000000000051631257562125200227420ustar00rootroot00000000000000.. _glossary: Glossary =========== .. glossary:: :sorted: csv **Comma-Separated Value files** Type of basic text file with 'comma-separated values'. This type of file can be opened with most spreadsheet packages (e.g. MS Excel) for easy reading and manipulation. VBI (**Vertical Blank Interval**, aka the Vertical Retrace, or Vertical Blank, VBL). The period in-between video frames and can be used for synchronising purposes. On a CRT display the screen is black during the VBI and the display beam is returned to the top of the display. VBI blocking The setting whereby all functions are synced to the VBI. After a call to :meth:`psychopy.visual.Window.flip()` nothing else occurs until the VBI has occurred. This is optimal and allows very precise timing, because as soon as the flip has occurred a very precise time interval is known to have occurred. VBI syncing (aka vsync) The setting whereby the video drawing commands are synced to the VBI. When psychopy.visual.Window.flip() is called, the current back buffer (where drawing commands are being executed) will be held and drawn on the next VBI. This does not necessarily entail :term:`VBI blocking` (because the system may return and continue executing commands) but does guarantee a fixed interval between frames being drawn. Method of constants An experimental method whereby the parameters controlling trials are predetermined at the beginning of the experiment, rather than determined on each trial. For example, a stimulus may be presented for 3 pre-determined time periods (100, 200, 300ms) on different trials, and then repeated a number of times. The order of presentation of the different conditions can be randomised or sequential (in a fixed order). Contrast this method with the :term:`adaptive staircase`. Adaptive staircase An experimental method whereby the choice of stimulus parameters is not pre-determined but based on previous responses. For example, the difficulty of a task might be varied trial-to-trial based on the participant's responses. These are often used to find psychophysical thresholds. Contrast this with the :term:`method of constants`. CRT **Cathode Ray Tube** 'Traditional' computer monitor (rather than an LCD or plasma flat screen). xlsx **Excel OpenXML file format**. A spreadsheet data format developed by Microsoft but with an open (published format). This is the native file format for Excel (2007 or later) and can be opened by most modern spreadsheet applications including OpenOffice (3.0+), google docs, Apple iWork 08. psychopy-1.82.02.dfsg/docs/source/general/monitors.rst000066400000000000000000000060361257562125200227510ustar00rootroot00000000000000.. _monitorCenter: Monitor Center ==================================== PsychoPy provides a simple and intuitive way for you to calibrate your monitor and provide other information about it and then import that information into your experiment. Information is inserted in the |MC| (Tools menu), which allows you to store information about multiple monitors and keep track of multiple calibrations for the same monitor. For experiments written in the Builder view, you can then import this information by simply specifying the name of the monitor that you wish to use in the :ref:`expSettings` dialog. For experiments created as scripts you can retrieve the information when creating the :class:`~psychopy.visual.Window` by simply naming the monitor that you created in Monitor Center. e.g.:: from psychopy import visual win = visual.Window([1024,768], mon='SonyG500') Of course, the name of the monitor in the script needs to match perfectly the name given in the Monitor Center. Real world units ----------------- One of the particular features of PsychoPy is that you can specify the size and location of stimuli in units that are independent of your particular setup, such as degrees of visual angle (see :ref:`units`). In order for this to be possible you need to inform PsychoPy of some characteristics of your monitor. Your choice of units determines the information you need to provide: ====================================== ============================================================ Units Requires ====================================== ============================================================ 'norm' (normalised to width/height) n/a 'pix' (pixels) Screen width in pixels 'cm' (centimeters on the screen) Screen width in pixels and screen width in cm 'deg' (degrees of visual angle) Screen width (pixels), screen width (cm) and distance (cm) ====================================== ============================================================ Calibrating your monitor -------------------------- PsychoPy can also store and use information about the gamma correction required for your monitor. If you have a Spectrascan PR650 (other devices will hopefully be added) you can perform an automated calibration in which PsychoPy will measure the necessary gamma value to be applied to your monitor. Alternatively this can be added manually into the grid to the right of the Monitor Center. To run a calibration, connect the PR650 via the serial port and, immediately after turning it on press the `Find PR650` button in the |MC|. Note that, if you don't have a photometer to hand then there is a method for determining the necessary gamma value psychophysically included in PsychoPy (see gammaMotionNull and gammaMotionAnalysis in the demos menu). The two additional tables in the Calibration box of the Monitor Center provide conversion from :ref:`DKL ` and :ref:`LMS ` colour spaces to :ref:`RGB `. .. |MC| replace:: Monitor Center .. _windows: psychopy-1.82.02.dfsg/docs/source/general/prefs.rst000066400000000000000000000107351257562125200222170ustar00rootroot00000000000000Preferences ==================================== .. _generalSettings: General settings ------------------- winType: PsychoPy can use one of two 'backends' for creating windows and drawing; pygame and pyglet. Here you can set the default backend to be used. units: Default units for windows and visual stimuli ('deg', 'norm', 'cm', 'pix'). See :ref:`units`. Can be overridden by individual experiments. fullscr: Should windows be created full screen by default? Can be overridden by individual experiments. allowGUI: When the window is created, should the frame of the window and the mouse pointer be visible. If set to False then both will be hidden. .. _applicationSettings: Application settings --------------------------- These settings are common to all components of the application (Coder and Builder etc) largeIcons: Do you want large icons (on some versions of wx on OS X this has no effect) defaultView: Determines which view(s) open when the PsychoPy app starts up. Default is 'last', which fetches the same views as were open when PsychoPy last closed. runScripts: Don't ask. ;-) Just leave this option as 'process' for now! allowModuleImports (only used by win32): Allow modules to be imported at startup for analysis by source assistant. This will cause startup to be slightly slower but will speedup the first analysis of a script. .. _coderSettings: Coder settings --------------------------- outputFont: a list of font names to be used in the output panel. The first found on the system will be used fontSize (in pts): an integer between 6 and 24 that specifies the size of fonts codeFontSize = integer(6,24, default=12) outputFontSize = integer(6,24, default=12) showSourceAsst: Do you want to show the `source assistant` panel (to the right of the Coder view)? On Windows this provides help about the current function if it can be found. On OS X the source assistant is of limited use and is disabled by default. analysisLevel: If using the source assistant, how much depth should PsychoPy try to analyse the current script? Lower values may reduce the amount of analysis performed and make the Coder view more responsive (particularly for files that import many modules and sub-modules). analyseAuto: If using the source assistant, should PsychoPy try to analyse the current script on every save/load of the file? The code can be analysed manually from the tools menu showOutput: Show the output panel in the Coder view. If shown all python output from the session will be output to this panel. Otherwise it will be directed to the original location (typically the terminal window that called PsychoPy application to open). reloadPrevFiles: Should PsychoPy fetch the files that you previously had open when it launches? .. _builderSettings: Builder settings --------------------------- reloadPrevExp (default=False): for the user to add custom components (comma-separated list) componentsFolders: a list of folder pathnames that can hold additional custom components for the Builder view hiddenComponents: a list of components to hide (e.g., because you never use them) .. _connectionSettings: Connection settings --------------------------- proxy: The proxy server used to connect to the internet if needed. Must be of the form `http://111.222.333.444:5555` autoProxy: PsychoPy should try to deduce the proxy automatically (if this is True and autoProxy is successful then the above field should contain a valid proxy address). allowUsageStats: Allow PsychoPy to ping a website at when the application starts up. **Please** leave this set to True. The info sent is simply a string that gives the date, PsychoPy version and platform info. There is no cost to you: no data is sent that could identify you and PsychoPy will not be delayed in starting as a result. The aim is simple: if we can show that lots of people are using PsychoPy there is a greater chance of it being improved faster in the future. checkForUpdates: PsychoPy can (hopefully) automatically fetch and install updates. This will only work for minor updates and is still in a very experimental state (as of v1.51.00). .. _keyBindings: Key bindings ------------------ There are many shortcut keys that you can use in PsychoPy. For instance did you realise that you can indent or outdent a block of code with Ctrl-[ and Ctrl-] ? psychopy-1.82.02.dfsg/docs/source/general/rendering.rst000066400000000000000000000265471257562125200230650ustar00rootroot00000000000000.. _rendering: OpenGL and Rendering ==================================== All rendering performed by PsychoPy uses hardware-accelerated OpenGL rendering where possible. This means that, as much as possible, the necessary processing to calculate pixel values is performed by the graphics card :term:`GPU` rather than by the :term:`CPU`. For example, when an image is rotated the calculations to determine what pixel values should result, and any interpolation that is needed, are determined by the graphics card automatically. In the double-buffered system, stimuli are initially drawn into a piece of memory on the graphics card called the 'back buffer', while the screen presents the 'front buffer'. The back buffer initially starts blank (all pixels are set to the window's defined color) and as stimuli are 'rendered' they are gradually added to this back buffer. The way in which stimuli are combined according to transparency rules is determined by the :ref:`blend mode ` of the window. At some point in time, when we have rendered to this buffer all the objects that we wish to be presented, the buffers are 'flipped' such that the stimuli we have been drawing are presented simultaneously. The monitor updates at a very precise fixed rate and the flipping of the window will be synchronised to this monitor update if possible (see :ref:`waitBlanking`). Each update of the window is referred to as a 'frame' and this ultimately determines the temporal resolution with which stimuli can be presented (you cannot present your stimulus for any duration other than a multiple of the frame duration). In addition to synchronising flips to the frame refresh rate, PsychoPy can optionally go a further step of not allowing the code to continue until a screen flip has occurred on the screen, which is useful in ascertaining exactly when the frame refresh occurred (and, thus, when your stimulus actually appeared to the subject). These timestamps are very precise on most computers. For further information about synchronising and waiting for the refresh see :ref:`waitBlanking`. If the code/processing required to render all you stimuli to the screen takes longer to complete than one screen refresh then you will 'drop/skip a frame'. In this case the previous frame will be left on screen for a further frame period and the flip will only take effect on the following screen update. As a result, time-consuming operations such as disk accesses or execution of many lines of code, should be avoided while stimuli are being dynamically updated (if you care about the precise timing of your stimuli). For further information see the sections on :ref:`detectDroppedFrames` and :ref:`reducingDroppedFrames`. .. _fastAndSlow: Fast and slow functions -------------------------- The fact that modern graphics processors are extremely powerful; they can carry out a great deal of processing from a very small number of commands. Consider, for instance, the PsychoPy Coder demo `elementArrayStim` in which several hundred Gabor patches are updated frame by frame. The graphics card has to blend a sinusoidal grating with a grey background, using a Gaussian profile, several hundred times each at a different orientation and location and it does this in less than one screen refresh on a good graphics card. There are three things that are relatively slow and should be avoided at critical points in time (e.g. when rendering a dynamic or brief stimulus). These are a) disk accesses, b) passing large amounts of data to the graphics card, and c) making large numbers of python calls. Functions that are very fast: #. Calls that move, resize, rotate your stimuli are likely to carry almost no overhead #. Calls that alter the color, contrast or opacity of your stimulus will also have no overhead IF your graphics card supports :ref:`shaders` #. Updating of stimulus parameters for :ref:`psychopy.visual.ElementArrayStim` is also surprisingly fast BUT you should try to update your stimuli using `numpy` arrays for the maths rather than `for...` loops Notable slow functions in PsychoPy calls: #. Calls to set the image or set the mask of a stimulus. This involves having to transfer large amounts of data between the computer's main processor and the graphics card, which is a relatively time-consuming process. #. Any of your own code that uses a Python `for...` loop is likely to be slow if you have a large number of cycles through the loop. Try to 'vectorise' your code using a numpy array instead. .. _speedTips: Tips to render stimuli faster ----------------------------------- #. Keep images as small as possible. This is meant in terms of **number of pixels**, not in terms of Mb on your disk. Reducing the size of the image on your disk might have been achieved by image compression such as using jpeg images but these introduce artefacts and do nothing to reduce the problem of send large amounts of data from the CPU to the graphics card. Keep in mind the size that the image will appear on your monitor and how many pixels it will occupy there. If you took your photo using a 10 megapixel camera that means the image is represented by 30 million numbers (a red, green and blue) but your computer monitor will have, at most, around 2 megapixels (1960x1080). #. Try to use square powers of two for your image sizes. This is efficient because computer memory is organised according to powers of two (did you notice how often numbers like 128, 512, 1024 seem to come up when you buy your computer?). Also several mathematical routines (anything involving Fourier maths, which is used a lot in graphics processing) are faster with power-of-two sequences. For the :class:`psychopy.visual.GratingStim` a texture/mask of this size is **required** and if you don't provide one then your texture will be 'upsampled' to the next larger square-power-of-2, so you can save this interpolation step by providing it in the right shape initially. #. Get a faster graphics card. Upgrading to a more recent card will cost around £30. If you're currently using an integrated Intel graphics chip then almost any graphics card will be an advantage. Try to get an nVidia or an ATI Radeon card. .. _shaders: OpenGL Shaders ------------------- You may have heard mention of 'shaders' on the users mailing list and wondered what that meant (or maybe you didn't wonder at all and just went for a donut!). OpenGL shader programs allow modern graphics cards to make changes to things during the rendering process (i.e. while the image is being drawn). To use this you need a graphics card that supports OpenGL 2.1 and PsychoPy will only make use of shaders if a specific OpenGL extension that allows floating point textures is also supported. Nowadays nearly all graphics cards support these features - even Intel chips from Intel! One example of how such shaders are used is the way that PsychoPy colors greyscale images. If you provide a greyscale image as a 128x128 pixel texture and set its color to be red then, without shaders, PsychoPy needs to create a texture that contains the 3x128x128 values where each of the 3 planes is scaled according to the RGB values you require. If you change the color of the stimulus a new texture has to be generated with the new weightings for the 3 planes. However, with a shader program, that final step of scaling the texture value according to the appropriate RGB value can be done by the graphics card. That means we can upload just the 128x128 texture (taking 1/3 as much time to upload to the graphics card) and then we each time we change the color of the stimulus we just a new RGB triplet (only 3 numbers) without having to recalculate the texture. As a result, on graphics cards that support shaders, changing colors, contrasts and opacities etc. has almost zero overhead. .. _blendMode: Blend Mode ------------ A 'blend function' determines how the values of new pixels being drawn should be combined with existing pixels in the 'frame buffer'. blendMode = 'avg' ~~~~~~~~~~~~~~~~~~~~ This mode is exactly akin to the real-world scenario of objects with varying degrees of transparency being placed in front of each other; increasingly transparent objects allow increasing amounts of the underlying stimuli to show through. Opaque stimuli will simply occlude previously drawn objects. With each increasing semi-transparent object to be added, the visibility of the first object becomes increasingly weak. The order in which stimuli are rendered is very important since it determines the ordering of the layers. Mathematically, each pixel colour is constructed from opacity*stimRGB + (1-opacity)*backgroundRGB. This was the only mode available before PsychoPy version 1.80 and remains the default for the sake of backwards compatibility. blendMode = 'add' ~~~~~~~~~~~~~~~~~~~~ If the window `blendMode` is set to 'add' then the value of the new stimulus does not in any way *replace* that of the existing stimuli that have been drawn; it is added to it. In this case the value of `opacity` still affects the weighting of the new stimulus being drawn but the first stimulus to be drawn is never 'occluded' as such. The sum is performed using the signed values of the color representation in PsychoPy, with the mean grey being represented by zero. So a dark patch added to a dark background will get even darker. For grating stimuli this means that contrast is summed correctly. This blend mode is ideal if you want to test, for example, the way that subjects perceive the sum of two potentially overlapping stimuli. It is also needed for rendering stereo/dichoptic stimuli to be viewed through colored anaglyph glasses. If stimuli are combined in such a way that an impossible luminance value is requested of any of the monitor guns then that pixel will be out of bounds. In this case the pixel can either be clipped to provide the nearest possible colour, or can be artificially colored with noise, highlighting the problem if the user would prefer to know that this has happened. .. _waitBlanking: Sync to VBL and wait for VBL --------------------------------- PsychoPy will always, if the graphics card allows it, synchronise the flipping of the window with the vertical blank interval (VBL aka VBI) of the screen. This prevents visual artefacts such as 'tearing' of moving stimuli. This does not, itself, indicate that the script also waits for the physical frame flip to occur before continuing. If the `waitBlanking` window argument is set to False then, although the window refreshes themselves will only occur in sync with the screen VBL, the `win.flip()` call will not actually wait for this to occur, such that preparations can continue immediately for the next frame. For rendering purposes this is actually optimal and will reduce the likelihood of frames being dropped during rendering. By default the PsychoPy Window will also wait for the VBL (`waitBlanking=True`) . Although this is slightly less efficient for rendering purposes it is necessary if we need to know exactly when a frame flip occurred (e.g. to timestamp when the stimulus was physically presented). On most systems this will provide a very accurate measure of when the stimulus was presented (with a variance typically well below 1ms but this should be tested on your system). psychopy-1.82.02.dfsg/docs/source/general/timing/000077500000000000000000000000001257562125200216275ustar00rootroot00000000000000psychopy-1.82.02.dfsg/docs/source/general/timing/detectingFrameDrops.rst000066400000000000000000000065031257562125200263160ustar00rootroot00000000000000.. _detectDroppedFrames: Detecting dropped frames -------------------------- Occasionally you will drop frames if you: * try to do too much drawing * do it in an inefficient manner (write poor code) * have a poor computer/graphics card Things to avoid: * recreating textures for stimuli * building new stimuli from scratch (create them once at the top of your script and then change them using :meth:`stim.setOri(ori)`, `stim.setPos([x,y]...)` Turn on frame time recording ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The key sometimes is *knowing* if you are dropping frames. PsychoPy can help with that by keeping track of frame durations. By default, frame time tracking is turned off because many people don't need it, but it can be turned on any time after :class:`~psychopy.visual.Window` creation :meth:`setRecordFrameIntervals`, e.g.: from psychopy import visual win = visual.Window([800,600]) win.setRecordFrameIntervals(True) Since there are often dropped frames just after the system is initialised, it makes sense to start off with a fixation period, or a ready message and don't start recording frame times until that has ended. Obviously if you aren't refreshing the window at some point (e.g. waiting for a key press with an unchanging screen) then you should turn off the recording of frame times or it will give spurious results. Warn me if I drop a frame ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The simplest way to check if a frame has been dropped is to get PsychoPy to report a warning if it thinks a frame was dropped:: from psychopy import visual, logging win = visual.Window([800,600]) win.setRecordFrameIntervals(True) win._refreshThreshold=1/85.0+0.004 #i've got 85Hz monitor and want to allow 4ms tolerance #set the log module to report warnings to the std output window (default is errors only) logging.console.setLevel(logging.WARNING) Show me all the frame times that I recorded ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ While recording frame times, these are simply appended, every frame to win.frameIntervals (a list). You can simply plot these at the end of your script using pylab:: import pylab pylab.plot(win.frameIntervals) pylab.show() Or you could save them to disk. A convenience function is provided for this:: win.saveFrameIntervals(fileName=None, clear=True) The above will save the currently stored frame intervals (using the default filename, 'lastFrameIntervals.log') and then clears the data. The saved file is a simple text file. At any time you can also retrieve the time of the /last/ frame flip using win.lastFrameT (the time is synchronised with logging.defaultClock so it will match any logging commands that your script uses). .. _blockingOnVBI: 'Blocking' on the VBI ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ As of version 1.62 PsychoPy 'blocks' on the vertical blank interval meaning that, once Window.flip() has been called, no code will be executed until that flip actually takes place. The timestamp for the above frame interval measurements is taken immediately after the flip occurs. Run the timeByFrames demo in Coder to see the precision of these measurements on your system. They should be within 1ms of your mean frame interval. Note that Intel integrated graphics chips (e.g. GMA 945) under win32 do not sync to the screen at all and so blocking on those machines is not possible. psychopy-1.82.02.dfsg/docs/source/general/timing/millisecondPrecision.rst000066400000000000000000000106221257562125200265400ustar00rootroot00000000000000 Can PsychoPy deliver millisecond precision? --------------------------------------------- The simple answer is 'yes', given some additional hardware. The clocks that PsychoPy uses do have sub-millisecond precision but your keyboard has a latency of 4-25ms depending on your platform and keyboard. You could buy a response pad (e.g. a `Cedrus Response Pad`_ ) and use PsychoPy's serial port commands to retrieve information about responses and timing with a precision of around 1ms. .. _Cedrus Response Pad: http://www.cedrus.com/responsepads Before conducting your experiment in which effects might be on the order of 1 ms, do consider that; - your screen has a temporal resolution of ~10 ms - your visual system has a similar upper limit (or you would notice the flickering screen) - human response times are typically in the range 200-400 ms and very variable - USB keyboard latencies are variable, in the range 20-30ms That said, PsychoPy does aim to give you as high a temporal precision as possible, and is likely not to be the limiting factor of your experiment. .. _monitorTiming: Computer monitors --------------------------------------------- Monitors have fixed refresh rates, typically 60 Hz for a flat-panel display, higher for a CRT (85-100 Hz are common, up to 200 Hz is possible). For a refresh rate of 85 Hz there is a gap of 11.7 ms between frames and this limits the timing of stimulus presentation. You cannot have your stimulus appear for 100 ms, for instance; on an 85Hz monitor it can appear for either 94 ms (8 frames) or 105 ms (9 frames). There are further, less obvious, limitations however. For ''CRT (cathode ray tube) screens'', the lines of pixels are drawn sequentially from the top to the bottom and once the bottom line has been drawn the screen is finished and the line returns to the top (the Vertical Blank Interval, VBI). Most of your frame interval is spent drawing the lines with 1-2ms being left for the VBI. This means that the pixels at the bottom are drawn '''up to 10 ms later''' than the pixels at the top of the screen. At what point are you going to say your stimulus 'appeared' to the participant? For flat panel displays, or (or LCD projectors) your image will be presented simultaneously all over the screen, but it takes up to 20 ms(!!) for your pixels to go all the way from black to white (manufacturers of these panels quote values of 3 ms for the fastest panels, but they certainly don't mean 3 ms white-to-black, I assume they mean 3 ms half-life). .. figure:: ../../images/TopOfScreen.jpg Figure 1: photodiode trace at top of screen. The image above shows the luminance trace of a CRT recorded by a fast photo-sensitive diode at the top of the screen when a stimulus is requested (shown by the square wave). The square wave at the bottom is from a parallel port that indicates when the stimulus was flipped to the screen. Note that on a CRT the screen at any point is actually black for the majority of the time and just briefly bright. The visual system integrates over a large enough time window not to notice this. On the next frame after the stimulus 'presentation time' the luminance of the screen flash increased. .. figure:: ../../images/BottOfScreen.jpg Figure 2: photodiode trace of the same large stimulus at bottom of screen. The image above shows comes from exactly the same script as the above but the photodiode is positioned at the bottom of the screen. In this case, after the stimulus is 'requested' the current frame (which is dark) finishes drawing and then, 10ms later than the above image, the screen goes bright at the bottom. .. warning:: If you're using a regular computer display, *you have a hardware-limited temporal precision of 10 ms irrespective of your response box or software clocks etc...* and should bear that in mind when looking for effect sizes of less than that. Can I have my stimulus to appear with a very precise rate? ------------------------------------------------------------ Yes. Generally to do that you should time your stimulus (its onset/offset, its rate of change...) using the frame refresh rather than a clock. e.g. you should write your code to say 'for 20 frames present this stimulus' rather than 'for 300ms present this stimulus'. Provided your graphics card is set to synchronise page-flips with the vertical blank, and provided that you aren't :doc:`dropping frames ` the frame rate will always be absolutely constant. psychopy-1.82.02.dfsg/docs/source/general/timing/nonSlipTiming.rst000066400000000000000000000047311257562125200251600ustar00rootroot00000000000000.. _nonSlip: Non-slip timing for imaging ------------------------------ For most behavioural/psychophysics studies timing is most simply controlled by setting some timer (e.g. a :class:`~psychopy.core.Clock()`) to zero and waiting until it has reached a certain value before ending the trial. We might call this a 'relative' timing method, because everything is timed from the start of the trial/epoch. In reality this will cause an overshoot of some fraction of one screen refresh period (10ms, say). For imaging (EEG/MEG/fMRI) studies adding 10ms to each trial repeatedly for 10 minutes will become a problem, however. After 100 stimulus presentations your stimulus and scanner will be de-synchronised by 1 second. There are two ways to get around this: #. *Time by frames* If you are confident that you :ref:`aren't dropping frames ` then you could base your timing on frames instead to avoid the problem. #. *Non-slip (global) clock timing* The other way, which for imaging is probably the most sensible, is to arrange timing based on a global clock rather than on a relative timing method. At the start of each trial you add the (known) duration that the trial will last to a *global* timer and then wait until that timer reaches the necessary value. To facilitate this, the PsychoPy :class:`~psychopy.core.Clock()` was given a new `add()` method as of version 1.74.00 and a :class:`~psychopy.core.CountdownTimer()` was also added. The non-slip method can only be used in cases where the trial is of a known duration at its start. It cannot, for example, be used if the trial ends when the subject makes a response, as would occur in most behavioural studies. Non-slip timing from the Builder ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (new feature as of version 1.74.00) When creating experiments in the :ref:`builder`, PsychoPy will attempt to identify whether a particular :ref:`Routine ` has a known endpoint in seconds. If so then it will use non-slip timing for this Routine based on a global countdown timer called `routineTimer`. Routines that are able to use this non-slip method are shown in green in the :ref:`flow`, whereas Routines using relative timing are shown in red. So, if you are using PsychoPy for imaging studies then make sure that all the Routines within your loop of epochs are showing as green. (Typically your study will also have a Routine at the start waiting for the first scanner pulse and this will use relative timing, which is appropriate). psychopy-1.82.02.dfsg/docs/source/general/timing/reducingFrameDrops.rst000066400000000000000000000056271257562125200261560ustar00rootroot00000000000000.. _reducingFrameDrops: Reducing dropped frames -------------------------- There are many things that can affect the speed at which drawing is achieved on your computer. These include, but are probably not limited to; your graphics card, CPU, operating system, running programs, stimuli, and your code itself. Of these, the CPU and the OS appear to make rather little difference. To determine whether you are actually dropping frames see :doc:`detectingFrameDrops`. Things to change on your system: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #. make sure you have a good graphics card. Avoid integrated graphics chips, especially Intel integrated chips and especially on laptops (because on these you don't get to change your mind so easily later). In particular, try to make sure that your card supports OpenGL 2.0 #. shut down as many programs, including background processes. Although modern processors are fast and often have multiple cores, substantial disk/memory accessing can cause frame drops * anti-virus auto-updating (if you're allowed) * email checking software * file indexing software * backup solutions (e.g. TimeMachine) * Dropbox * Synchronisation software Writing optimal scripts ~~~~~~~~~~~~~~~~~~~~~~~ #. run in full-screen mode (rather than simply filling the screen with your window). This way the OS doesn't have to spend time working out what application is currently getting keyboard/mouse events. #. don't generate your stimuli when you need them. Generate them in advance and then just modify them later with the methods like setContrast(), setOrientation() etc... #. calls to the following functions are comparatively slow; they require more CPU time than most other functions and then have to send a large amount of data to the graphics card. Try to use these methods in inter-trial intervals. This is especially true when you need to load an image from disk too as the texture. #. GratingStim.setTexture() #. RadialStim.setTexture() #. TextStim.setText() #. if you don't have OpenGL 2.0 then calls to setContrast, setRGB and setOpacity will also be slow, because they also make a call to setTexture(). If you have shader support then this call is not necessary and a large speed increase will result. #. avoid loops in your python code (use numpy arrays to do maths with lots of elements) #. if you need to create a large number (e.g. greater than 10) similar stimuli, then try the ElementArrayStim Possible good ideas ~~~~~~~~~~~~~~~~~~~~~ It isn't clear that these actually make a difference, but they might). #. disconnect the internet cable (to prevent programs performing auto-updates?) #. on Macs you can actually shut down the Finder. It might help. See Alex Holcombe's page `here `_ #. use a single screen rather than two (probably there is some graphics card overhead in managing double the number of pixels?) psychopy-1.82.02.dfsg/docs/source/general/timing/timing.rst000066400000000000000000000045301257562125200236520ustar00rootroot00000000000000.. _timing: Timing Issues and synchronisation ================================== One of the key requirements of experimental control software is that it has good temporal precision. PsychoPy aims to be as precise as possible in this domain and can achieve excellent results depending on your experiment and hardware. It also provides you with a precise log file of your experiment to allow you to check the precision with which things occurred. Some general considerations are discussed here and there are links with :ref:`specificTiming`. Something that people seem to forget (not helped by the software manufacturers that keep talking about their sub-millisecond precision) is that the monitor, keyboard and human participant DO NOT have anything like this sort of precision. Your monitor updates every 10-20ms depending on frame rate. If you use a CRT screen then the top is drawn before the bottom of the screen by several ms. If you use an LCD screen the whole screen can take around 20ms to switch from one image to the next. Your keyboard has a latency of 4-30ms, depending on brand and system. So, yes, PsychoPy's temporal precision is as good as most other equivalent applications, for instance the duration for which stimuli are presented can be synchronised precisely to the frame, but the overall accuracy is likely to be severely limited by your experimental hardware. To get **very** precise timing of responses etc., you need to use specialised hardware like button boxes and you need to think carefully about the physics of your monitor. .. warning:: The information about timing in PsychoPy assumes that your graphics card is capable of synchronising with the monitor frame rate. For integrated Intel graphics chips (e.g. GMA 945) under Windows, this is not true and the use of those chips is not recommended for serious experimental use as a result. Desktop systems can have a moderate graphics card added for around £30 which will be vastly superior in performance. .. _specificTiming: Specific considerations for specific designs -------------------------------------------------- .. toctree:: :maxdepth: 2 nonSlipTiming detectingFrameDrops reducingFrameDrops timingTestByOS .. _millisecondTiming: Other questions about timing -------------------------------------------------- .. toctree:: :maxdepth: 2 millisecondPrecision psychopy-1.82.02.dfsg/docs/source/general/timing/timingTestByOS.rst000066400000000000000000000053751257562125200252570ustar00rootroot00000000000000.. _osComparison: Comparing Operating Systems under PsychoPy ================================================ This is an attempt to quantify the ability of PsychoPy draw without dropping frames on a variety of hardware/software. The following tests were conducted using the script at the bottom of the page. Note, of course that the hardware fully differs between the Mac and Linux/Windows systems below, but that both are standard off-the-shelf machines. All of the below tests were conducted with 'normal' systems rather than anything that had been specifically optimised: - the machines were connected to network - did not have anti-virus turned off (except Ubuntu had no anti-virus) - they even all had dropbox clients running - Linux was the standard (not 'realtime' kernel) No applications were actively being used by the operator while tests were run. In order to test drawing under a variety of processing loads the test stimulus was one of: - a single drifting Gabor - 500 random dots continuously updating - 750 random dots continuously updating - 1000 random dots continuously updating Common settings: - Monitor was a CRT 1024x768 100Hz - all tests were run in full screen mode with mouse hidden System Differences: - the iMac was lower spec than the Windows/Linux box and running across two monitors (necessary in order to connect to the CRT) - the Windows/Linux box ran off a single monitor Each run below gives the number of dropped frames out of a run of 10,000 (2.7 mins at 100Hz). ================ =============== ============== =============== =============== _ Windows XP Windows 7 Mac OS X 10.6 Ubuntu 11.10 _ (SP3) Enterprise Snow Leopard ================ =============== ============== =============== =============== Gabor 0 5 0 0 500-dot RDK 0 5 54 3 750-dot RDK 21 7 aborted 1174 1000-dot RDK 776 aborted aborted aborted ---------------- --------------- -------------- --------------- --------------- GPU Radeon 5400 Radeon 5400 Radeon *2400* Radeon 5400 GPU driver Catalyst 11.11 Catalyst 11.11 Catalyst 11.11 CPU Core Duo 3GHz Core Duo 3GHz Core Duo 2.4GHz Core Duo 3GHz RAM 4GB 4GB 2GB 4GB ================ =============== ============== =============== =============== I'll gradually try to update these tests to include: - longer runs (one per night!) - a faster Mac - a real-time Linux kernel psychopy-1.82.02.dfsg/docs/source/general/units.rst000066400000000000000000000135431257562125200222420ustar00rootroot00000000000000.. _units: Units for the window and stimuli ==================================== One of the key advantages of PsychoPy over many other experiment-building software packages is that stimuli can be described in a wide variety of real-world, device-independent units. In most other systems you provide the stimuli at a fixed size and location in pixels, or percentage of the screen, and then have to calculate how many cm or degrees of visual angle that was. In PsychoPy, after providing information about your monitor, via the :doc:`monitors`, you can simply specify your stimulus in the unit of your choice and allow PsychoPy to calculate the appropriate pixel size for you. Your choice of unit depends on the circumstances. For conducting demos, the two normalised units ('norm' and 'height') are often handy because the stimulus scales naturally with the window size. For running an experiment it's usually best to use something like 'cm' or 'deg' so that the stimulus is a fixed size irrespective of the monitor/window. For all units, the centre of the screen is represented by coordinates (0,0), negative values mean down/left, positive values mean up/right. .. _unitsHeight: Height units ------------------- With 'height' units everything is specified relative to the height of the window (note the window, not the screen). As a result, the dimensions of a screen with standard 4:3 aspect ratio will range (-0.6667,-0.5) in the bottom left to (+0.6667,+0.5) in the top right. For a standard widescreen (16:10 aspect ratio) the bottom left of the screen is (-0.8,-0.5) and top-right is (+0.8,+0.5). This type of unit can be useful in that it scales with window size, unlike :ref:`unitsDeg` or :ref:`unitsCm`, but stimuli remain square, unlike :ref:`unitsNorm` units. Obviously it has the disadvantage that the location of the right and left edges of the screen have to be determined from a knowledge of the screen dimensions. (These can be determined at any point by the `Window.size` attribute.) Spatial frequency: cycles **per stimulus** (so will scale with the size of the stimulus). Requires : No monitor information .. _unitsNorm: Normalised units ------------------- In normalised ('norm') units the window ranges in both x and y from -1 to +1. That is, the top right of the window has coordinates (1,1), the bottom left is (-1,-1). Note that, in this scheme, setting the height of the stimulus to be 1.0, will make it half the height of the window, not the full height (because the window has a total height of 1:-1 = 2!). Also note that specifying the width and height to be equal will not result in a square stimulus if your window is not square - the image will have the same aspect ratio as your window. e.g. on a 1024x768 window the size=(0.75,1) will be square. Spatial frequency: cycles **per stimulus** (so will scale with the size of the stimulus). Requires : No monitor information .. _unitsCm: Centimeters on screen ---------------------- Set the size and location of the stimulus in centimeters on the screen. Spatial frequency: cycles per cm Requires : information about the screen width in cm and size in pixels Assumes : pixels are square. Can be verified by drawing a stimulus with matching width and height and verifying that it is in fact square. For a :term:`CRT` this can be controlled by setting the size of the viewable screen (settings on the monitor itself). .. _unitsDeg: Degrees of visual angle ------------------------ Use degrees of visual angle to set the size and location of the stimulus. This is, of course, dependent on the distance that the participant sits from the screen as well as the screen itself, so make sure that this is controlled, and remember to change the setting in :doc:`monitors` if the viewing distance changes. Spatial frequency: cycles per degree Requires : information about the screen width in cm and pixels and the viewing distance in cm There are actually three variants: 'deg', 'degFlat', and 'degFlatPos' **'deg'** : Most people using degrees of visual angle choose to make the assumption that a degree of visual angle spans the same number of pixels at all parts of the screen. This isn't actually true for standard flat screens - a degree of visual angle at the edge of the screen spans more pixels because it is further from the eye. For moderate eccentricities the error is small (a 0.2% error in size calculation at 3 deg eccentricity) but grows as stimuli are placed further from the centre of the screen (a 2% error at 10 deg). For most studies this form of calculation is preferred, as it does not result in a warped appearance of visual stimuli, but if you need greater precision at far eccentricities then choose one of the alternatives below. **'degFlatPos'** : This accounts for flat screens in calculating position coordinates of visual stimuli but leaves size and spatial frequency uncorrected. This means that an evenly spaced grid of visual stimuli will appear warped in position but will **'degFlat'**: This corrects the calculations of degrees for flatness of the screen for each vertex your your stimuli. Square stimuli in the periphery will, therefore, become more spaced apart but they will also get larger and rhomboid in the pixels that they occupy. .. _unitsPix: Pixels on screen ---------------------- You can also specify the size and location of your stimulus in pixels. Obviously this has the disadvantage that sizes are specific to your monitor (because all monitors differ in pixel size). Spatial frequency: ```cycles per pixel``` (this catches people out but is used to be in keeping with the other units. If using pixels as your units you probably want a spatial frequency in the range 0.2-0.001 (i.e. from 1 cycle every 5 pixels to one every 100 pixels). Requires : information about the size of the screen (not window) in pixels, although this can often be deduce from the operating system if it has been set correctly there. Assumes: nothing psychopy-1.82.02.dfsg/docs/source/gettingStarted.rst000066400000000000000000000201521257562125200224450ustar00rootroot00000000000000Getting Started =============== As an application, PsychoPy has two main views: the :doc:`Builder ` view, and the :doc:`Coder ` view. It also has a underlying :doc:`API ` that you can call directly. #. :doc:`Builder `. You can generate a wide range of experiments easily from the Builder using its intuitive, graphical user interface (GUI). This might be all you ever need to do. But you can always compile your experiment into a python script for fine-tuning, and this is a quick way for experienced programmers to explore some of PsychoPy's libraries and conventions. .. figure:: images/builder_sm.png :width: 40% :alt: The Builder view #. :doc:`Coder `. For those comfortable with programming, the Coder view provides a basic code editor with syntax highlighting, code folding, and so on. Importantly, it has its own output window and Demo menu. The demos illustrate how to do specific tasks or use specific features; they are not whole experiments. The :doc:`Coder tutorials ` should help get you going, and the :doc:`API reference ` will give you the details. .. figure:: images/coder.png :width: 40% :alt: The Coder view .. _python : http://www.python.org The Builder and Coder views are the two main aspects of the PsychoPy application. If you've installed the StandAlone version of PsychoPy on **MS Windows** then there should be an obvious link to PsychoPy in your > Start > Programs. If you installed the StandAlone version on **Mac OS X** then the application is where you put it (!). On these two platforms you can open the Builder and Coder views from the View menu and the default view can be set from the preferences. **On Linux**, you can start PsychoPy from a command line, or make a launch icon (which can depend on the desktop and distro). If the PsychoPy app is started with flags ----coder (or -c), or ----builder (or -b), then the preferences will be overridden and that view will be created as the app opens. For experienced python programmers, it's possible to use PsychoPy without ever opening the Builder or Coder. Install the PsychoPy libraries and dependencies, and use your favorite IDE instead of the Coder. Builder ------------ When learning a new computer language, `the classic first program `_ is simply to print or display "Hello world!". Lets do it. A first program ~~~~~~~~~~~~~~~ Start PsychoPy, and be sure to be in the Builder view. * If you have poked around a bit in the Builder already, be sure to start with a clean slate. To get a new Builder view, type `Ctrl-N` on Windows or Linux, or `Cmd-N` on Mac. * Click on a Text component .. image:: ../../psychopy/app/builder/components/text.png and a Text Properties dialog will pop up. .. image:: images/textdialog.png :width: 220 * In the `Text` field, replace the default text with your message. When you run the program, the text you type here will be shown on the screen. * Click OK (near the bottom of the dialog box). (Properties dialogs have a link to online help---an icon at the bottom, near the OK button.) * Your text component now resides in a routine called `trial`. You can click on it to view or edit it. (Components, Routines, and other Builder concepts are explained in the :doc:`Builder documentation `.) * Back in the main Builder, type `Ctrl-R` (Windows, Linux) or `Cmd-R` (Mac), or use the mouse to click the `Run` icon. .. image:: ../../psychopy/app/Resources/run32.png Assuming you typed in "Hello world!", your screen should have looked like this (briefly): .. image:: images/helloworld.png :width: 220 If nothing happens or it looks wrong, recheck all the steps above; be sure to start from a new Builder view. What if you wanted to display your cheerful greeting for longer than the default time? * Click on your Text component (the existing one, not a new one). * Edit the `Stop duration (s)` to be `3.2`; times are in seconds. * Click OK. * And finally `Run`. When running an experiment, you can quit by pressing the `escape` key (this can be configured or disabled). You can quit PsychoPy from the File menu, or typing `Ctrl-Q` / `Cmd-Q`. Getting beyond Hello ~~~~~~~~~~~~~~~~~~~~ To do more, you can try things out and see what happens. You may want to consult the :doc:`Builder documentation`. Many people find it helpful to explore the Builder demos, in part to see what is possible, and especially to see how different things are done. A good way to develop your own first PsychoPy experiment is to base it on the Builder demo that seems closest. Copy it, and then adapt it step by step to become more and more like the program you have in mind. Being familiar with the Builder demos can only help this process. You could stop here, and just use the Builder for creating your experiments. It provides a lot of the key features that people need to run a wide variety of studies. But it does have its limitations. When you want to have more complex designs or features, you'll want to investigate the Coder. As a segue to the Coder, lets start from the Builder, and see how Builder programs work. Builder-to-coder --------------------- Whenever you run a Builder experiment, PsychoPy will first translate it into python code, and then execute that code. To get a better feel for what was happening "behind the scenes" in the Builder program above: * In the Builder, load or recreate your "hello world" program. * Instead of running the program, explicitly convert it into python: Type `F5`, or click the `Compile` icon: .. image:: ../../psychopy/app/Resources/compile32.png The view will automatically switch to the Coder, and display the python code. If you then save and run this code, it would look the same as running it directly from the Builder. It is always possible to go from the Builder to python code in this way. You can then edit that code and run it as a python program. However, you cannot go from code back to a Builder representation. To switch quickly between Builder and Coder views, you can type `Ctrl-L` / `Cmd-L`. Coder -------------- Being able to inspect Builder-generated code is nice, but it's possible to write code yourself, directly. With the Coder and various libraries, you can do virtually anything that your computer is capable of doing, using a full-featured modern programming language (python). For variety, lets say hello to the Spanish-speaking world. PsychoPy knows Unicode (UTF-8). If you are not in the Coder, switch to it now. * Start a new code document: `Ctrl-N` / `Cmd-N`. * Type (or copy & paste) the following:: from psychopy import visual, core win = visual.Window() msg = visual.TextStim(win, text=u"\u00A1Hola mundo!") msg.draw() win.flip() core.wait(1) win.close() * Save the file (the same way as in Builder). * Run the script. Note that the same events happen on-screen with this code version, despite the code being much simpler than the code generated by the Builder. (The Builder actually does more, such as prompt for a subject number.) **Coder Shell** The shell provides an interactive python interpreter, which means you can enter commands here to try them out. This provides yet another way to send your salutations to the world. By default, the Coder's output window is shown at the bottom of the Coder window. Click on the Shell tab, and you should see python's interactive prompt, `>>>`:: PyShell in PsychoPy - type some commands! Type "help", "copyright", "credits" or "license" for more information. >>> At the prompt, type:: >>> print u"\u00A1Hola mundo!" You can do more complex things, such as type in each line from the Coder example directly into the Shell window, doing so line by line:: >>> from psychopy import visual, core and then:: >>> win = visual.Window() and so on---watch what happens each line:: >>> msg = visual.TextStim(win, text=u"\u00A1Hola mundo!") >>> msg.draw() >>> win.flip() and so on. This lets you try things out and see what happens line-by-line (which is how python goes through your program). psychopy-1.82.02.dfsg/docs/source/images/000077500000000000000000000000001257562125200201705ustar00rootroot00000000000000psychopy-1.82.02.dfsg/docs/source/images/BottOfScreen.jpg000066400000000000000000000503371257562125200232370ustar00rootroot00000000000000JFIFOOExifMM*C    $.' ",#(7),01444'9=82<.342 ]"[ !1AQTr"45Ua26q#Bst$3RS%C&DVcduEb?,SKZ^\"UXؖRHsZ6÷4oۍbia{NFmzי#׵{;.B򈈈ST;VYm 6 Gm<^:(%h:&X[. S]j < 9!Y`^ ۧZq Y@%]+]2e{;.hISCO+AKw0|Đ.X9Lb=z1+)nH.u۟ۛ[;?ݏUM&`4 `X#qTARʨ XCh!u|SֲUh說à@WQ$q&]ºZQ5!,(rGe٬Ժ%V:LGRaLPgֺpgtx>v8F<;Q CmSRURZYvyK]qv;qY/8x4Ϧ٧u$AksN!~2Ϥ=fNd4`Yo`u_ʯP4TԕTֲ]RW\]AoVIVjFe*ŴJ[16KG[e%E%7Z[صv&+0FhV1CD&lλCH &EkyY*ڍ<ڲ1׵eʬ"TIQIQ:`{Ԑ X3ZtDDDDDDDDDDDDDDDDDDDD[J:ggUUIO qa.i{#u_~g1khc,lPX͛ #k~dd9un<0ekhs䧀o. X4o{Jj0 {a.D77&.Ƣq9Am'5pfZ˧rJ(ᮥն&Mឳ3{uYcHv#ms }Q/9#suC~Cv^bJhqPѲVHkKs\^׷Bgvv~s<9mm[{e{-ᎋc"ᲾI9u-)3TSOH1)hphh$;\zik9UO,\7Zh6ߞy/_˟^ջּɤ7Z` :M͏*$¹qG f#9Vt%&a\@S‡ërzOzz-`Z:,i[X4 ָZ~I⍮㎮kF7_̘ƑR@a[YTԖ $7y=}tqjxK[Z͎F spwq'~fshH${Aq$4gC ff=jdlRJǘCskwzGFFlkԏ2H4HkCF}@d>`""""""""""""""""""""""""""""-~7[Sat͞H]j .=v }fGU h|2GocM6'CG¨s괻vaŤxi6Ҁ5 nA12ﺉ:hp9c^kjY#}eƥsl52@K{ZkXflųW( l4*W\٠t֪:+rkf/>;TaA+_,51EFg}1a 8ڗ:/s\9i-wިk6 >jV73ceHON"H_biǫijL2743 MƲ*ZQM,2B'8!g DF%0T Ì @Ǩe ZEMPzjW4 ozΚ:vO2YT8"pJE;2C 6_yeQ6\͵ nIe|tags)=͚x7A>h $sZ\ZkE_1hm;駅5HjWBj iYzGlx4{,l!~k@uԿkŰژ[ t܀i{^ m]dN1CCn3\"yh]󱶂8bl.FtOTWK<2$u#cuI -ao&Rhij\׶2ꊉIYۆmo7 ҪLVJzzZYj(lLPK@$zmaqB97v,:U,G \(hv69i+jmCk ? s͢T6:@5DεCY۬PHS"@@rSSIM A.GOQ+eH`NY|l}@p y*xsC j+]WEP]x U'EP]x U'EP]l +FDqwU,T?WgCv~I,T?WgCv~I,T?WgxތᏧAIOZ@p&ۺo:B7HZI?B,T?WgCv~I,T?WgCv~I,T?WgpL&L:? ss&O`?$O`?$RKkp"ֹӷ/z^Cv~I,T?WgCv~I,T?WgCv~KQUa ㅰG12&~یPN,T?WgCv~I,T?WgCv~J\GYD3 khUx U'EP]x U'EP]x U'EP] 002-̚vX?~<*X?~<*X?~KOa.i(ZNܼQUx U'EP]x U'EP]x U)f0ҴaAl;lwz^Cv~I,T?WgCv~I,T?WgCv~KU>WKI{ h ߠJ1v9Iܓx;h+GDDQ}w}V""(*'(txp.ez""wb""(5:_/ DEtIUO_%|a}?Żbsғ'V""(? w}V""" ]?qX=DDPTO qZPX Z\2'VDE' DDQ~k+t_]g9IܓJK?z_'0CNg5N6s6b6>&GڠۨT@ujnPqjcҸTBZs,7*>&GڠۨT@ujnPq}ʈ\fdVGڠۨT@ujnPqm} MA \6<:70^ A Q86>&GڠۨT@mmcD!suIx A Q86>&GڠۨT@4\ ʭA Q86>&GڠۨT@k)D沢;YAUQ86>&GڠۨT@ujnPq  BnPqm} MA Q86>)i)[XQkR^3BnPqm} MA Q86>)f8+D%l:rnPqm} MA Q86>-NSI5eD.qNk|-`Δ? Gx_DE/wb""x[҇JZׇ:W"(? w}V""" ]?qX=DDQJN䟅XU_8=Q[.G?);~b""wb""(5:_/ DED"ulDDQ~@=DDE~GK{!XΔ? i!/qz{ ]"":Rw$*DE' DDQ~k+t_]g n+J+k^ D^{AX&GڠۨT@ujͭq5n/UQ86>&GڠۨT@ujVSF¢ֶKqaUQ86>&GڠۨT@uj8%C~?ujnPqm} MA Q86>)phZx/tZO] rֳl៬oܳ} MA Q86>)i)[XQkR^3BnPqg WV&{6oY>&GڠۨT@4\ ʭA Q86>&GڠۨT@:OYM&׵#` 9/qz{ ]"":Rw$*DE' DDQ~k+f%W蔒WH6]bNOE Q}w}V""Z(O?h%yl7[Au5V:Vּ8 ղq|?t~N>OTaDDQJN䟅X{AXApֈˆxP猟pΔ? i!/qz{ ]"":Rw$*DE' DDQ~k+IJyED̓(34jGK{!X TT&i<6Rm|4GO qZPX Z\2'VDEic##hX ½kG50x̞F &DDQ~k.[Fc06xG^[]"(|d+IͶ*L>b^2lΔ? i!/yS8xTg<mV.nPqm} MA Q86>)f8+D%l:rnPqm} MA Q86>)qg9fAUm} MA Q86>&GڠۨT@k)àk!ksۨT@ujm!«9T5Gx`ɂ8댜atujͭq5n/UQ86>&GڠۨT@(8VI`x7, f8+D%l:rnPqm} MA Q86>-S& #7^ x6̫΋VQD1ECN۞qo>&GڠۨT@ujnPq  B0ڸNJKm,]ۨT@ujnPqm} RS6Ƣ9gVGڠEUGM|,C 5n먣)j(05Fז"EfۨT@ujVSF¢ֶKqaUQ86>&GڠۨT@ujI)њ8l'5N>OTaDDQJN䟅X{AXHm %iqJwEfcO['Uн=e(|d+jp-n=v>pщe|l@g5o]R""`@eY(cξN>jGi?V ̳Dusm]B"(|d+ϸ]0 m 7E(ㅥVG4PΔ? i!/qz{ ]"":Rw$*DE' DDQ~k+j1X4EMMA ĩ x[/wb"-^sµ3[O.+0WV) 8ե< 3[tdcFsDDZZO_d|:M3褢ަ DE/wby+3ej,JB":Rw$*DEү޾0]5>TsEj;xnZ5t,6 )biKZY-Q0,ǂs6^>/bTrX_U4n%F͢1@xYVSF¢ֶKqag27NfkZ4:Nښ+0.ha76岋&hx|q*7HmBŝQV3huŅX1g9fAUm} ^"Ĩ副#f>kUi{kesl\\]3+kJ-xژ khnTqF_F ۭ{ۨT@k)àk!kstf \Y_,ؕec6ΰ'XhJ=DcPrge|GbTm#:`an֗5'smW-v9UոN?Fl9u_I_־%G,M~5^FTn# ;+;lf uTqF_F ۭ{ۨT@f3,n?fx/AWa Xθ~nܚit652vCFNx.\J(ߘc9u{uj*9bk٬/GϚOYLC\wbTm#:`an֪f3 XmF|:STp:9#;GZbĨ副#f>hJ=DcPrge|X&8+D%l:r.%GeDo 1ͺ׽A YV3R8 CeCrr:V|3H0Zyf0C  ]QV3huŅZ'Fkʈ\Ǘw:= ʗhӹt}ͦee s3@lm,L2v nD"lqUFHtﰲ:Rw$*bdіH۴m~u-8n5s0^-71HߦC־L!lKAeA/Mkl.7adtLt`!Sb~@=^"Dn, 7hcک$;)ߡI4)M5;bª#O f]\QܻbdіH۴m~uGlLd{[gHAq #cd{ 7}rS;fHmdDnw;ADUf=1_14Ӑ0 =tLt`!IbdіH۴m~ux&Ach1|bg8׾ kZD`JǺWY~ %FY#nA׵(M6걢^ؘΐ}GDJ no/8}Kpb/һyL~8xRgC\9N< 8n#\oY!mCM_ܒɣ,i F9'3@hy$)UaQ1ug1-p#GE',My 1^vgsC4 5b&1s]YMIUWG_\)x\XMH׳i7O.ӼGT6a[AzXJW85fZ:Zs9.7rcD$\`>WH[xi+XUk0\lƇIkX_־DzH$nk \pAzD\*m$z.66((I8$ғI\.zw0k hWVCS[}x>E/wb`RRiRZ-YShVaUS8G7QI#^$oH;]j:Rw$*ZM >sl2.3[n¨YHI%rKUPE^rC+dS:Y7}F\! lpTEQ,oN]N^VM9Ǵ'h&hV9Wh4Ύї"滛?xwtyܥ_Q#X3blQZܚ ;/QK7iJ7K9A|N ya88aԿ8Csa،jimz L[=3+mꖼнrՆ;B61GhI61_hh5v)6)N ,Dش 0_c\ΙFki x5 h.aVK:nUL0 3s8<|~KN? B]lEnF%C2?U?H iIDx UDA(lNyk5aZZ4\8 _{ENaF}ّ~{⦫\|dd3Vw٬TZ G{4+Q^vha++t>-TV_`&F)[R3 r4d=:䚓}(kH6c{wZ80YXq CUxqCwS[;S*aWEKˉ Vױm0?FI9`'-aO mmمj= +H^aytɠ_^sZ9hs\,A/Vrsz)KWuE/6y/x\iqh\Z*Y%[9cu*1izC~nvT;e688UۨT@ujnPqm} MA Y)#JQ k[%θܪۨT@ujnPqm} MA \FNk*!sx?[ujnPqm} MA Q86>)phZx*>&GڠۨT@ujnPq5%?*>&GڠۨT@ujnPqjcҸTBZs,7*>&GڠۨT@ujnPq}ʈ\fdVGڠۨT@ujnPqm} MA \6<:70^ A Q86>&GڠۨT@mmcD!suIx A Q86>&GڠۨT@4\ ʭA Q86>&GڠۨT@:OYM&׵#` 9/qz{ ]"":Rw$*DE' DDQ~k+t_]g n+J+k^ D^{AXV=V՞ZN]4e5RMK0HZZ][C˦x.$~kwvƣÇ67+u?9~QX@`8MPoFr4568Fdu-|諁!i6m9t W+DG)i)[XQkR^3BnPqm} MA Q86>)f8+D%l:rnPqm} MA Q86>-NSI5eD.qNk8U#71=;bJ9;cjXZVA1uȈ9IܓIhİ 91c^n#] L9.б'E({+з9$/P͐ݣ^=ϭcg$:Ƹw?1nav^$z]@sϵ??ۺCGp'hg!B ,(_ i7w^_6<:Hf$ŵ^yX$]qxtCvj_2nm {p9@W~42\Y=NKt1a+=bG%4aDG#>sZ=$7uXtR6Hn$G&HoY@y0ЪjDǗka_GJ~3Qqda'3 k`.Jl#*В"Y2aM |L`bns|y{&~l$u.?Jط ap8e9drYe !~,̦h4hHetu휒c5o؂uv~-lzoՒH96A9Cgg{Vï5eC#8KۓI*E,{O':)AkhCQl6!àj=DDQJN䟅XU_ Wa\19T:{-B`mVtԱ01vQR*9I 4 zFy\\9q1.[JmۗGIX ſYt|ӄTKx|Ņ_&8pI ˦Iyv'}D&"upp;o/>@֤nF y|c˶) cPx=]{ֺ>_00TJgul $ ,2EڥkF{tVs36RHuj؂-YGE6=͢^H>9{l޵DDDQ~k+t_]g n+J+k^ D^{AXo妗݄ITErRLrVъr焓hhF`Q]a;CTB ZzG(m y1GV4 c LŎGbw&z `48a"[ɦ8$N^ON^&/ϽD)fI?X{Zϭm~hƹ*m;e~Xoh74n"zQc v2r׻ve{@tNɣXDlmo䥛-FI }a-n;MU}3@vjӟ|}/ʘ!'l9juujnPqm} MA Q8K5e1i\*!-kdjnPqm} MA Q8KS>eD.v2nPqm} MA Q86>&Gڠ.YM_Q \/VGڠۨT@ujnPqm} RS6Ƣ9gVGڠۨT@ujnPqm} RYLqW KZ.uņVGڠۨT@ujnPqm} R5ϢsYQ ̃ۨT@ujnPqm} MA Q8KSG@B !UQ86>&GڠۨT@ujͭq5n/UQ86>&GڠۨT@ujVSF¢ֶKqaUQ86>&GڠۨT@ujI)њ8l'5N>OTaDDQJN䟅X{AXh>Ou>h>Ou>h>Ou>h>Ou>h>OuO_8 ԎduqsM:U wc' wc'Ҍ&_dzKksTVf4W}Bq<3KUw'4W}BqMAA1s^؍c>*_򫾡?*_򫾡?*QP+u^/@?ֳ6H}|6H}|6H}|6H}|6H}]1]_M ׇfLk~ϩQG}!2{G}!2{G}!2{G}!2{G}!2{z1fs#m¨m=m=m=m=m=m==0PCklG3!*;O;O;O;O;S8 *6G42gfGmmmmm xqd wc' wc' wc' wc' wc'` e5=nGO?9 KqzRFC,sxiKG;ݑt3jnem$MVFpKmoشZSs5, 4fgsw꽮Ї8"۴\TV6Jba!_5!/=EPjg,15kgw-%TU@h`{OT5aM:I[8ܒ/~EneUDMs#P0Fpi2A7ܿ'GR붕юqs4 6g51$X]bGW/uqb |RR8仉'>.:niFk]NZ* se24AQ,u1݌\`2ߚٮgtFJMV h0k lf-ADZHpN ?il%ٛ]\0Yjjk'0xHs`ہ[ ٱJgi9ȋ_ ĸZi=DxV-,DʪheYg7e4Tt s [-I"PdnYbX&{_(hszHUΡ*YOU4%/cZxCqmJhĠ8,A-@p(jiM%o%l`1?1_#^Vf- "mTI-Ue[ZʊV4 ٭}cQE]Oc ltm ˬ5ՌB gA7;/ Wvڎ+5⸋l.YҽZMc*v9~^Wn㷯k9WTvk#q*vڌׯ Wvڎ+5iSΐA "`isp """"""""""""""""""""""""""Ϝ'H:2 ׆|lY5d_i]eԽ"ۀmo^-[ָnk;EP__8W^ TDDDDDDDDDDDDDDDDDDDDDDDDDEќ)[qsM%;.+rI?rGN&a/Sx6q~ $ Xbllrʋ7i.rQdl S"""""""""""""""""""""""""%/$5ycX_WQtӱtZ.cd/2O k'd/2O k'd/2O k'd/2O k'e,HdP$@6y'2IYpsychopy-1.82.02.dfsg/docs/source/images/TopOfScreen.jpg000066400000000000000000000556521257562125200230760ustar00rootroot00000000000000JFIFOOExifMM*C    $.' ",#(7),01444'9=82<.342 ]"X !1ATr"5QUa246q#BstR$3b%CSc&DEu?Vg:RVT{*)$ Dqx$cȇI +HÁ+L<~eV'*GmzˉqIJҰ i"Ҕ)JR)JR)JR)JR)JR)JR)JRz+gDXsLmː̢MUb]_mfO723a9Btd~6KGrZe,6P>]uaC-+[do²$ԃW?egArW;#uw6WzQU8 蒢5]*ʫ\6Ҽ{.S۳sJBR$iI65<͗"%̼%^ktڪ*FIQ]eUЮ_iOrNgDNe\ I_^,=%Wܑ<إ>{q^9)M3K1CiSoT$dZ)m)boV$) HOcz0.7DVo+.dm:_[Ss\)JR)JR)JR)JR)JR+Ӌ.8$HJBF`4 0KiPQʫ\ݞѡzqeI HH攥)JR)JR)JR)JR)JR)JR)JR~76NH2_qeR *>{yaW3 )C H&Mc؜{%w09RUÉXeb7%IQs!M6H#9uԁ[N38Xs)qԄ)y|6㭪3;Jfl4 8sVY5NmEW&לIKQVQpnWdl<%6鷮eN)nf 6_>;HÞa[8(2񍖛 @p,HbdWQZ̖H6Ne}F#3pޕ*emksOr Y}{s\2BS+[eƐӁ» O.=ZMSnDaIH20НG&ƕm[JAA)JR)JR)Jp4-j)EiJCٌ6Y%|Aqj>$YDg^Aq9@`tPt&1'bŠ$9̀ 򁡺i %QIy ʴTpT >]lHnTt>,iqcYjK8xDu: #1ϟf"r8q"W7Ω+sJQܒ, =G2(RTQA~^8;:iƖa)*)P%YE_SnLu}g@s.|*sU9Dk3jygH%@\_ʱ1Cܣ6LHy%|ʽ1h2iqr`Օƽb±g桔\Cak[Z)IBJ@H$N6$7(h*L %A[EKpw%ÌփgUGO@3z+.*6r+-C?0dAkwSS^`4'<>F:V\ӎH*غVm51+#Jsg+o}84KnsQiNP@Mt&oc[%se4aiAU[Pj x0d!LFmxM=t5BY B pz|9OlRj2ԧ3BRJt'yuN129 LN<^&퐐xGtw}*ZK Ժ*G t𧂤Nue9Q *NUXD 4&~ä1d+KeR$8XuI!d=CVv 3[~# 8¢ke.tb2TKm+J]d(Nn@69ƀ6[.,n=[ۉ_#i 7'OI)JR)JR3VL|KR'wp/PuFFmow^[Q'-gaêIt$+!6:0i×E:pp{{X$@׉TXQ12c0GJ u.ha-e%+I˨XH7?kYC5J\) 7 n lĜ2JTN(U^,P~ʞ,P~ʞQ+YNhE<շ :SX?]<*SX?]<*T 2U=UWEA?*x T򧀰EA?*x T򧀰EA?*x Tp saK!)E:$Ux T򧀰EA?*x T򧀰EA?*x TcJI!I tUU,P~ʞ,P~ʞ,P~ʥ{F## qLJ?WGO`t~T?WGO`t~T?WGZ6rsq-]+C +N>/Hm^+)J*D9jR?+hU)J \~YJR_e)JTe8PP RT4'-R?+hU)J \~YJR_e)JToR'aVRi!#+|^ڽWaJRTsՔ)QWmЫ)JR*8G*R$>qXNa@hN[U)QWmЫ)JR*8G*RNß)JW|CG﯌W<8uУ)FXQ]f1 o1 o1 鑎#BC%)K9Ň ~֘7}iS~֘7}iS~֘ǨJJ$2fF`}iS~֘7}iS~֘7}iS~֘ǨW!'PVV1 o1 o1 <ɛ1FC!*Rr*Zcߡ;MZcߡ;MZc+#F*JR.sV1 o1 o1 pHeJ̍Uo1 o1 o1 9C)PN*Zcߡ;MZcߡ;MZc,y6bBT%c_U[>x)CLw>x)CLw>x*WF8U .\*Zcߡ;MZcߡ;MZcyٙDTѰ kN>/Hm^+)J*D9jR?+hU)J \~YJR_e)JTe8PP RT4'-R?+hU)J \~YJR_e)JToR'aVRi!#+|^ڽWaJRTsՔ)QWmЫ)JR*8G*R$>qXNa@hN[U)QWmЫ)JR*8G*RNß)JW|CG﯌W8#{”*7)JR=VR*x)CLw>x)CLw>x*WF8U .\*Zcߡ;MZcߡ;MZc.#22)(ʕªߡ;MZcߡ;MZcߡ;MZc.23xs \RAXU[>x)CLw>x)CLw>x*X#&l IJƾ(}iS~֘7}iS~֘7}iTLq)J\,8U[>x)CLw>x)CLw>x+S#93҉ E` :ǫ|^ڽWaJRTsՔ)QWmЫ)JVf6>#"{eYO VRy{D9CFͩa\WZݴ{")JEwV!lzњ4+HRT JR=VW1{^Q|);؏((8A WuGhEYJRTsՔ)Z}'6aRF"v5e)JTxG*R^砥I<ʘXJSk#2紥k]G.?b)\,G*Q18o2 XZE|=VRqvX A%SJAP|׽orFLyl gJR=VW 43rYBŬ#WsJRVW~dꆄC\Ф5WqJTq~;dU)QH? YJRگ_qzGj])JToR'aVRG]{B*lEjo R I -0]*޽uqX6:q%\-)T?箦/v슲+'Pqfk AV2k.i=TT)[ >"ԛ|m[R'v ͓Ġj9vvdҔ%UmImFdT#%8Lrk*8G*RNß)JW|CG﯌W<8uУ)FXQ]f1 o1 o1 鑎#BC%)K9Ň ~֘7}iS~֘7}iS~֘ǨJJ$2fF`}iS~֘7}iT؊¦)K s&Xd[$lVRQZOCLwfFoa+T+~֘7}iS~֘7}iWimcK-r`PG3f(d%JNRV5EUCLw>x)CLw>x)CLw}iJdAb9kdA2'3-d{CLw>x)CLw>x*\FdeRQ!+24 UCLwLH: 9ŒS(}iS~֘7}iS~֘ǨW!'PVV1 v@r&>Ը1 Kan[תq-0~tߡ;MZc,y6bBT%c_U[>x)CLw>x)CLw>x*WF8U .\*Zcߡ;MZcߡ;MZcyٙDTѰ kN>/Hm^+)J*D9jR?+hUIy&o -ٗRsxec?Mura'g(/(R[5zK!mi[ R2I=. K_z%cib\ QaXzfG]{BR)A)`qJُogHmM报 |ZJTx_*eF˜`O]-[Be%FNn6(Zңݴ{")J*D9jR>|W?~}??W)JRʑ;~*T)Qcq* $ t)Z e.Iw0<[_8vhz,I HA'f])Jhz3 MsafKYyo !zJTx_*-Nj>Efu/BPԏ] *8G*RNß)JW|CG﯌W8#{”*7)JR=VR_=ǰj-N\ A+RO %7%Ux_*R¼:i jZ#P]PRsĆ` 2yKxP\ZV$r噆ذ3n!Bgk)QWmЯO3?d=I'Y%FS6?5]cQ1 )ȎۦH7RAtqXl%rJu`YӉCSF@XX4o b}h% רB:y1 ؄W&c\ĐXۻ>geD{OIh nKwpji74%bP6ss y6+^Y m{>x+X7ZJј_*.N% N-c!bkZ#$4R?r'C1N!3Ѕ$[P Go bPi+Fa|X|858o +KCKF ,-ְb3#. YX?)ΈpJd&Rb *{,3#.Mb v>![:"9u ʱ(iu99ŅJM P,u6׽Zc.23xs \RAXVtPѼ62.V,/C'9Hpd$6֢ñ(h.Ϧ,`KF͋].1 % ֒fʵG˭`22fQJkάJ]B7`N`ao>we{k !`M~;a]2{ Ge9KԆ3ͺJZ7Bŕְ=21bHd)r8Yġ^X'So={ߡ;^ġW6Vuq(jqh+VZ6%=4[ Sodp~C|.̌J$2X$_qzGj]jBC7Z 7~?u|j!x;j&uEa<]_VJ$$ 妐ImBE薐p~6Nßu s[R\R29ŸڽdS]|W?~.TJ@fXNk8#{¹? CSy؛5>/)MF[G'D7l.mcXJE6/h\ei~>Y%=!"++BRM-]JR8Ŀwۜ.T"t9x\2 tNjlaW?y*$*jR')mv Ҟ@_7 UDqEo]m4HR$ƾum;a7A}[!!nJ=)QWmШ5֠.M( BZm-Y) yj{ی7i\8T A`_ OIwqeƝ/ĐԆU\iai?!VjTx_*`J<) }يoq}إ2\aa={ͮ#Ru)ɌU㴱<+>wmȫ)ZM+T $wMӋ>s{Zö^kIn[<滨c̎_i.XRT=DhkTsՔ+{8$8tXm,KzRR[k9;%c,Č,1< N8f*+ qYp-j̬FRHDeʛeJ9gNPt$kSƲHڮR{+4n(Lh\Ǎ| JF*?,@-n(M8Ңlnfk7Qo\s9hj<A!.GN`:u:ׄ'ƇCdN!oXRmEO[ƭF-\Zq L>_UjZ}gd!C `kf7#Wtvx7XR,%,:&xEvX žq&^2Ij#Wv/ovJ.$++ Hey@XVBhm5֮[ڮN%) mttG}+8^ #L-{ZOҲY [jXS9I՛*oÇmV0 wZ D% !*ȀJC`1-7`=e$zD]=^:Li6R}EauŠG->+\P;zO״q);c6ssvm0\*e[-q}a};5PYոbTN<8|նݴ{"=䥙ݛq0JS( ҹƔCsc5}V.*xߝ{ylXOȸߪ=j<~c iy rg6EP_L>! rKACxʹ&Vce.i 7=`iZG- h)QvKPmI_8gہN`]6P5S֔Ex`e>qe jYX*R⽁ gAu2LNFꅆXD0xPBDx*@ny?&cQBi9! da_뛑z x<@8yߓ,3>_m 2lmo1 o1 o^1T$2RsXp}iS~֘7}iS~֘7}iT˄C*Vdh ~֘7}iS~֘7}iS~֘7}iTl%rJu`Uo1 oUw"̺δ=bčd2')+ߡ;MZcߡ;MZcߡ;P!XtI0b8)J{Asz~֘7}iS~֘7}iS~֘ǨJJ$2fF`4I2C9w2sHMz&1 o1 o1 9C)PN+,pm p@(c~֘7}iS~֘7}iTFLي2 R|QUo1 2#\eeY)H7&äk.1 o^1T$2RsXp}iS~֘7}iS~֘7}iViFsfgRF,uW8#{”*7)JR=VR*wmȫ)JR)b:R9mWҔG]{B)JTx_*R>wmȫ)JRʑ;~+O_1_O" RNß)JhYJR%U)Q|=VRA!S u+ CBrگ)JhYJR%U)Q|=VRF"v5e)JVj+?}|bKJ6R6ʊ7}iS~֘7}iS~֘7}iTLq)J\,8U[>x)CLw>x)CLw>x+Ulξ`%%({ /6AiiJO5EbG/|g楬$/X <~U%͡+[m/~:a1ѽDRnm9x#^˦Ċ&"JHY- (Ljx :+@a<'&^b_5l-ɽYb:e[7h%Z[#V^c))Cz9{م"ěW C0x˞H( )7S~y}\a|'KO޺_vz<-u}tGzpy=e&M,}n__fRʩO/;(R ml㨛ge`uhM)@_ I˅L&?p~[gyqk <5>x)CLw>x*X#&l IJƾ(}iS~֘7}iS~֘7}iTLq)J\,8U[>x)CLw>x)CLw>x+S#93҉ E` :pB!rJS"xǡGA㓴)J T%{*7)JRA#_t+q7l|r4=+A޹%rGj:Ey>!ʲxp_M-Zlz4?W?U{l3}UE‘ROE~JDAğZ>!Ôrͩ×xןdr);UpN:,~JF8y 7Zξ-U['fOvQR^B/OVcɞCksWraIh]U\l  #0k+|lsjQ2uf_<>Z98,0V~Ng1XtpgIy\tVUraIl]U iyniX.)mBq9 ~jʞJ9.%*[SpxN^nuSɾ$Y8+@X'r}R H8P꬇=Rԥ`Vml\] c<ֳ~M~$" x^:kLJjT~V@2혇;_/՝L=..5 Ӄ/T19;YX}%('eaIm'Iqw{5cy IJPyċ~UataӧJHr?@l҂i͒| Kj.-5uYIrZH]c[yΤVg/2\)q[$ߧAa+5 ^_CMHÔ$h-GE m2 ԓJ>0-[f9{dh~媢rÂ㒘COIy iq}>JR%U)Q|=VRA!S u+ CBrگ)JhYJR%ULeYX)Eq lUT ^b9d:psi Fo \ic{XzK|{œC~l<<П *D}_ְ!cS!*F@$74HE MӭR/c[_*3]W&x @_B0┢3Z޾>7/Bda.*Ȳ-uyh=UgMZ\cB#m̴0&9 $zի@aA^. 9tXO09 <\{Z_ 1pu͑SM^\$jґ|g Ɩ\!HU[iXXZ1 Js~53㩇 G(mI9`"]6`8N1ȓaѥ(s6d\ϯ@[ )'⣛h -m|^'_]yw`Q90tW m ڧG&",::a=eke二RMRJM\6WgG  Mʦ{fp@ܪKѻ |2 )o~5\l'K=bO& -GaY%VNAהiaZ)&[!q 7aE2~ Svoe1eԌn:RS]8u)JTx_*R>wmȫ)JR)b:R9mWҔG]{B)JTx_*ʗá=gm\bVx)CLw>x)CLw>x*WF8U .\*Zcߡ;MZcߡ;MZc.#22)(ʕªߡ;MZcߡ;MZcߡ;MZc.23xs \RAXU[>x)CLw>x)CLw>x*X#&l IJƾ(}iS~֘7}iS~֘7}iTLq)J\,8U[>x)CLw>x)CLw>x*\FdeRQ!+24 UCLw>x)CLw>x)CLw>x*\6df A:}iS~֘7}iS~֘7}iTFLي2 R|QUo1 o1 o^1T$2RsXp}iS~֘7}iS~֘7}iViFsfgRF,uW8#{”*7)JR=VR*wmȫ)JR)b:R9mWҔG]{B)JTx_*R>wmȫ)JRʑ;~+O_1_O" RNß)JhYJR%U)Q|=VRA!S u+ CBrگ)JhYJR%U)Q|=VRF"v5e)JVj+?}|b͊,+:W4)a<ڕTGg}!.~{H}wb駻mعig}!.~ݱU>3}Є(.i{[}UGmعig}!.~{H}wb駻mعjycHn}Tne΅ݶC\4m?M=l>Ov;sݶC\4m?MOlp 2ۓ)ˇwb駻mعig}!.~{H}wb-S̹jv;sݶC\4m?M=l>Ov;s%aGsK߻=l>Ov;sݶC\4m?M=l>SCss.t(wb駻mعig}!.~{H}wb駻mعjxcܟiM\?m?M=l>Ov;sݶC\4m?MN()jdel?T{H}wb駻mعig}!.~{H}wlpOt!+ <˚^UQg}!.~{H}wb駻mعig}!.~YMfF7;7 .~R+TN>'yʑni>MK5Jm~Ci}|}U$\MqR$2iZ[,Cee}dmB kr,bldh\#Pꭒ6r^<RB:,+;W yHARЗH}Mɨ!f x*[*y ^5)JR)JR)JR)JR)JR)JR)JӣgcuBKr4GCGZR/\7YN>#NYqBP ^đ~.ao> RP.  :t-"]bDRӭfPQ0ݚ<(PEmmoa絮kڰU5q-6Ϋ(<5!7@zZ[y9TP@ zSHI*B^a,-ԑ<=]>oV4` 3 ̩le q E$ ؀k{3 Nw[ )!JWtH7̖JZBm,' niJR)JR)JR)JR)JR)JR)J?bhSM/O9$!c޶НoSaXf`@11S! ¶k峆Nu5եب_ڊ8V 7:W1I&iKMz͗͛YMjvRFPkQrf'(J0ٓ(GC!㔂8׆/(XڜA2T(0$zXU[O(-%,е֠J@Vqa.>!!l>\m\d\x)vGzΥeKIlm\d.)m]qŐlT&eq$ d1 HHC/)ǽm١:D¿|%;U֫hvp;ߜFKރjN@u1'Aq!)7:sn74L[rBA<JR ^j/n֬iGD Uk }2,V]BAms5xJw]ޫ󧄧u:6R0Ɍe8i%JJV` -o~dy[iko[n(A< mM®¶XЇUpzAЏ5AWB%Z>dFU"$r 3R\͏6\C>A HRm.MdFErьJSMҲؠ%̬@o"OX!a /!\i ZHP w-b /H6QUrc*F3(d: 3[Kk?6' 9bw2[&lR[9%8[W4#8 A#[p"XRS6yIIJ_i. (^ֳҔ)JR)JRnvg.`ˁ!3yM(='%kk U03؃83ͭ#0$6ku+#(:ؖp):˱ (96 x\J򍉶w1 U}ijgpg9^>}1c#hU>Qj! _\' wcdGer㲆y2ą }"8S`Nr[ZJ[.t+)9I1ЍNW-p%{lWRߓ.p"|Ve;nmJV $*dxTxLƜci곤%WS6zS1Ł%жfsdr+I ҫf y[ 83s湛_BSw-moW73f-.sSdGä'C¸f2c 66+:.ư8IV`ҜTHD1czqM]k\RJ777c@0T}CfJՠ6Ċ!!k MfDe !$%$ PƱK'{S R#i H5_T D m%/'H^: k|DB3!G:*ZQT~pj6oj 3,+mCq@ԄR@'8"qEZUfg]Ğ>a_N1s/*2]x[rl8yµ|62eVH+ټw[VH4Oںir-CD5W/h;Frq[i,攰.ei(*BVfqXjZ_Ld<i)Fde\4aKf!҄ H|»XK6Ȓ%s%2Ba$/N~n"ښKj S/F6 RGBrujvcX01)]swGu%! '"tS%oÕ0aFQB}ǶV)sYI3qEYVƶ -[IRݛ/rByo)ZRJ͈ H"TlEw-kc&$ +f<1^B,+Qu(N^9 mZ씾 A>2ejuapmcNbҰ8rb̈́HhoRs E8rV%%}n~\SW+IJlGE6:v`JpE#s+6Rr IB|{[o6/7'xS2 䓨$Zxu0pBTk MpT J Z9E_JR)JR)JR8j BhbWMqB}+rR~C𿨹x_hz?O [}x_\zGa2Km6!4_hz?O [}x_\O1Wh'1-F,J6IM iYiJR)JR)JRpsychopy-1.82.02.dfsg/docs/source/images/builder.gif000066400000000000000000001541021257562125200223100ustar00rootroot00000000000000GIF89a<&@`|;`/+_ fGkG!""$#B$(27*+-+G/]1`2223##3335:6x8e9*%9::: ;!; >?7@EN@iB}CBBF$HYHs/K.0KKMLL5MaQQQRRC9TrTWNZ[Q\\\`j`q`a{ccOdddfqTfg_jA=kQRkkmk}kmmoU:q\Wqqhrscas3t--tu|ttusswcynfyvz{1{z||}}}h~=ꄹm튽ČKᏳx}i[ʘg0poIIaFe^/+ #"ۣ줣53اɨx7}FÌVmdaqpö~~-+eĻۼ+Žƭ22:;ɸɽg[\ʽ|TSijusFÈ̍ΕΜΤωDЦ׬׹٦(%\86RJIs8XV Hqm|!!ICCRGBG1012applmntrRGB XYZ  ,acspAPPL-appldescPbdscmcprtwtpttrXYZgXYZbXYZrTRC aarg vcgt ndin>chadD,mmodp(bTRC gTRC aabg aagg descDisplaymluc nlNLdaDKplPLenUSnbNOfrFRptBRptPTzhCNesESjaJPruRUsvSEzhTWdeDEfiFIitITkoKRiMactextCopyright Apple, Inc., 2011XYZ RXYZ zR?_qXYZ YXYZ ""curv #(-26;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Kmparaff Y vcgt%<Z~~ohl  k bMj!N"$&C')+B,.0F135368_9;m<>^?AABCE&FWGHIKL8McNOPQS T+UEV_W{XYZ[]^_=``abcdeghi.j>kMlYmfnto~pqrstuvwxyz{|}~ -B]z،"HnÓEnڛ4K`ræէ   ˔h>ФтcG-٬u6݉V%pCOFn5oRB;I[ u,c&c"8SuU!5 Z :Kbh[NJ "]#%{' (*2+-X.0l13q46Y79/:;==>?@BCD6EQFjG}HIJKLMNOPQRSTUVWYZ%[8\J]^^p_}`abcdefghijklmnopqrstuvw~xwyqzk{h|i}k~oxć҈'A\tҔ %7H[m}°бܲ %,/* ǯȟɏʀrdXMC;5*׵أٓڂo[D*_7U"x?@pAFBBCDEsFKG HHIJKLMzN`OFP+QQRSTUV|WiXUYBZ2[[\]^__0``abxcMd"defgh_i?j kklmn]o/ppqrsetAuuvwxyyJzz{|s}E~:751* Έs[B,   *$ϧѲ %8J\m}ċŗƟǥ"FfχЩ ,Lm؎٬O޴ BpO0"ndin6WJ)Q$3P T9z}p1Rn#8Mcx:Vr +Lm=b#Kt#PH~'c  b D C P  q <|]F5,(*.=UzH.~( !/!"#I$ $%&b'+'()*b+2,,-.s/E00123V4)4567w8O9#9:;<=j>L?1@AABCDEFGHIKLM%N8ORPrQRSUVPWXZ[\\^_S`ac*dqeghhik'lmo_pr@su)vxy{&|~g=މxA ϒ\2rˢ3Tzز\)aƇɩ ^5Z{$:Pf|)Fc&Jm%LtCn(Y+dV  g  [  m - b <! .@Rm+bKK Y! !"u#6$$%&|'Q()))*+,s-Q../ /0123f4I5/67789:;<~=i>V?G@;A/B#C!DEF%G.H=ILJVKhLwMNOPRS-T[UVWY=Z[]^e_`b8cxdfgJhikElmo[pr&stvfwyAz|L}-҄}'҉/ߎBV ՚[3 ħ{|ķ#VBťʗ&_׶G|ު&o.%Q`;e:Vs1U{Kw._,b I N+{ z A    ~:m RB/7[Y !q"9##$%&'()*+,-./0124506\789;<2=_>?A BNCDFVGIJ;KbLMNP"Q_RSUAVWYOZ\]~^`Kabd9efhHiklzmoKprstvXwy!z|*}w ńj =Ќ`{šG^ VHWϵd Y ^t*ˠ]Ңh4I9߰#ILp{aA_'q3sf32 B&lmmodk,< ˖ *\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0c$(@8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`Ê&ٳhӪ]˶۷pʝKݻx˷߿ LF"tBTLPL K) ]hAӨS^ͺׇQr$s*U()QTZHOao@Т 7aKN+Hՙ^WaOޭl܅ѣGn;{3VlܸdߍEds.@WށƄ%CÃ<ԂCÃ>4O G6 S1x,f' /$!4/4K 4M40R,< G949#H4 hTA{A`-)&X|[J9l@AIp#~N☈&Z/_$JA eJ_R!Uc :3:hZ!<25L3$#BAlAh+Tʔ(F6hAi E !O"A@ zⴿv\ C9 GQm{ f<d9KoD+D|+8QWf -18@1s) 4  r6#\&Kq !!JLq1g\aMお\u6gq Ć"10N^M1:Cm6ː,: @JWLOĹDXT&Ǭ#yN.OL֫r`T>7i|[eǠ%;a+}PJIO|;y'4<}$w'`_3(̉-A:%8 Dc'9bPaH? `(ߨ8ip*XNs) EF!A},4x2k<35El'ѩVYS;s N֬qegI"s.XˆF4}.0k $bo^Qk2)&XS2]hk23$FYH|}t9QPA vVޠ6̵$W] a}L&0hQ nvؠ0ʒ τ2 b{ ؃rq1 ζn{MrN]qi"x'Ή urd'30Q-Gq :ۼQxeq ޷\ I7qs&~8W0gNs4j;)\&"-E PԧN[Oy!^lOOaP0 *X@o\gVy1ovv[ϼ7/jda {) mWXXpD,bzOݳ9OϽwOO;ЏO[Ͼ{OOWȿ m(p y 0n8xuopo 8n"8#x&x(|l5 c0{Y0JymV3xHJ(>  1TXnmYm mcax[mix$؆nHf. Bp+l+DS ְ ~p)Xx.# G P |84 ?ȃIyP)(N^x@vI͠ XnH pE8XX88).Bh`` ֘긎؎8XxǘGxU@ ِ58xyHsЊ(C(``ph 訏 p]( S 8Xш8!9 E 9ٔNPR9TYV9Qc00c @Hl9yI<;@vC8 G\'x# BxQbEȘ pĘĸ{ƈ2p.H PY@ Ly9Yyș[I^ bPUhY nq =s8yi}i0~8mٰ0@3ـC6  )Р<_9xGHD(IQ8 ֛(Ӱ٢.02:Ȝ]=d Shؒ)F:$⹊i(ZFђ("IY90q@ن:@F x XW0MPM0c `@J0?.0 AH P@ pZ;x:$[&{J7YAZ r9Fob*8 YDW h L{`R()CpB &?Jz~ 0ڒ nxС_I,,`mH P0 @ H `[p\K ({HeȲ<ƪ! .PP[@ f$\0.0ü< c9g 㻉 Iz0"{  =RzD `ۨC!m,ۆe`] $ v|  o : tKg+4n Ő G ;`A{08ٟ k|*q   b jMP0 )P,\~ \#m|һyp#=z91<8:|,8=놚@I << Ԅ\V}X`\\O`P ]j lD֓ v}xv Y [(0(M ' @ {K Zβ؀ \]kٞ٠ q0Uձ W p궁}Lȫ\ \ Gx{ (Ҟ ZGٚ #-9 !=.Gxԭ[r81 J >^~ _]-镬 mqE_0rBז-8Ǒ"P س`< L\ڰM -߱@ &0k˶8`oۛ@{mA]` lܻ m=P3x0mo 2` . jބ@@ `> >^Z_٣c< rM)_`|`"‭(; @3N8AtR+ِ >'Տ F>!&p|0WU, a.9` Y]!-M@-ݼ9 ֞CK;a .⹎JL>"0S߄/V1.TO(>D7D*.ڋ%:` <.pp F%ӠVMRn|т_Pip kp909 FF e /]]ݤ #>o$&铮+p/ȟʿ_cZ>Z@s^DFָ_r[O0`W1^ړ-0 h_١ De#HpOEd-ОN$NX_aQ#gpMvni5ʆ1A`H!ybٳ'?pxr< :ԩ'r2l"HP0HecEOn 4xзA'X7o2""4e!ȇJ YTn*2dB&]iԩUfkرeϦ]mܹ'I{\;'Nd ILnuةoObT EHW/Ƌ^iY5k\5ezϬDhz("P{d 6 cIR9 8&$:03C()a|ar0+pv CrlT)R]Ì'A.w00)"ƞ3ɆQa!'BKM8sN:N<7~ 8@;N5Y3( @D31벰;$aހLH$pJ-5+L@=ރ/?(l˦*hT(@=+zD 6@G&iwdjJc)sp0 Fby4 E.(Pw]_lj# *.2Bo|R%^iwXR+PTz0)l nK5˔҂xQsM7Uye[vecY/z3PA5D]8p9E3bT;^A$,iy!1H9R5ԤM-Ufɥ[HfQ? $cՊ"4=(6Pjpf̈́4 '@[q XjH']vSW7N),F 9gbHE%MdxKĝ: 7n [zԖ?Kyf|7?Ϛf4R'縆JdJ레Y8)B^xR򎉲fakf#04DM@\ujVHdoڛXXbQpXP#$ ez =’"t W 1B,#X8ASbz꒝.~4vCx <%qlFb5O% BP6 a CȆ "ac݋̗HHFR̲` 'h Pg9Jau VZфKN#@/EUYsA^`>I"fhU+Yf0H5Ij M0.v"=Ag%@XOFa7X6$EV.BŬxc0!=XƎlU v0XP,L*Ra ]D1Sta ʰ4߫dO}S5%錨D&M83%8JaHBWq(R"pInU~sl5B%‹84Tk_I!NT3>r_B6{0a6 *2ܠx1xfa,H]xF3~-Q*Ёt*@VVaM0."zO#˵(Oq% )aǐBl.(RBJ sڊDi٨FxwVo}{_Wo_X&p \M)gpbԧ" UխzիYNj~eR m嗢7ts17eȂt"n:Bx<4|(9n[,P__$XJra0t/%LQ!l#@Z5t&+ۊg<ЅVb rhHGZғt-}i';c? *.եjY{$:5VϘ&K˷6~nS v_-@*&: c`K~- `͙</iUy^awnvC}v5!dp~pGٺAuG@9ϔF6hc\̇q\#'yM~hj^c7 .%8ΑJ>A ]@5QU&a@'j5Lb䠘$ hx;b髉ElsZo|kֳ:A A.IBByES,}">%~g|lp =/v¹g 00 }魻ȠLs! h<쥑D}}{CrjBh9bD&A]W!RCzUV`x=XA!KY';(/! 㿩_e'>GP;+ˡ¶т 3˿K"60ԽRP\@¶jyh, 99KDrp75/`X҃A3Ek+B\E]E^E;4z!|ɻ0W&P .(X*!@75mm|Fp|j0q9+Hvl$?gCyt6G0|9Ȁ :L#<89TIb>jQO0NOOOO PP-P=PMP]PmP}P\O1K PP P PPP Qmɧ,Q=QMQ]QmQ}QQQQQQQQQ R!R"-R0$MR%]R&mR'}R(R)R*R+R,R-R.R/R0 S1S2-S3=S4MS5]S6mS7}S8S9S:MRdSS?S@ TATB-TC=TDMTE]TFmTG}THTITJTKTLTMTN-N UQUR-US=UTMUU]UVmUW}UXUY5OU\U]U^U_2AaVb-Vc=VdMVe]VfmVg}VhViVjVkVlVmVnVoVp WqW|\m(SIWu]WvmWw}WxWSrW{W|W}W~WW XX-rOEWy]XmX-z5XXXXXXX sU5xX=Yyu%/V%ppUI%YHYS%8ZmWY٤u=Z-ڕZUڠUZeWZZڧZZZ[۱ڭ]ZE[M׶-[}ۥ [[ْ۸[=Zۿܻ لMWr(HuUY\ܞA뱹_\՗-]=]ԽBm]}]%]؝]ɽ]]]]] ^^WM<%&@e-^r1`XʝWz\P^^ \EX-_%_M_)^m_}____=^P5f%C"Ȇo0D (SpJSA `650 bp  (Àl8(v^^}^m]a6aY b!b".b#>b$.\ՂP?(lXhl b?P.bȆ(*bdlHȟ4Vc6N `7Ο1cua˕adCCNdURQdBNbHdIdJdKV%V&b爁+ Ob/lP6l hxbOeQRΆN"HlY6l^Ѓ=~u]쵠zB->E]uf3GUk]UlUl(]R`xUGdw~gxgydB"b`NXeRO@&Ve~NeQ0eS /PY 8hZր1>6fFhFn&߀r>ia >/]Nݚm!]i^iԽi_ @sNXngznj~jjygX^=.lNfTe/fެc&vcR&Wlpb4H0(zm ALhfijFݜN]M(jm֕]ׅ_lU4jt>v.R1%pUFծVNپVԶۮnvX2fF\~nhYhOnk^(khЄ xlXKڜ znf\}(?f!@$$9 X9 0ήsh,`p(Ap4P,8 (\a#oRQ-_Omp4M0`$@q !% "Gq$qӮUD`A^ ls$ 7gq^j4X^ltKtLtMtNUvAցW޸^h#Uh@l@o]umSlH݁jdf!OvX^s9D w=q/r9mlȂ8.|vjfǞiu/v vxFw}w|wsxfW5 Op`g$%OAD 2Rw}O? jtzz/zghRU [ߞ ^zveD3?ʞ!g7xOՖ6%h?78ltGtwlцϝsw|g%GWOE Px_7{X{h>l||||B| +_h{ /t}?zo~~~}z[zuxq^5#{D_mG|j~>ySv^?φ! 4;¹ 5IP(˹l%1 "P"s+DƓ*WZh`$| "2&J#Nxlk̚7s3ТGg37aWMVn.O4`fߟW I A=Gs4. D\auK8ܵ[O89 yA@ީQ;\_$MDTK)UW]JE%_BYQ!w 藀l!*ItDZ4DyWP) `Vv#9#=#A e,v$I*iz?ܽ?ܴ|@e %qVk~Q |}0P ƔDQwWCto0y-IĞ!ɗ >鑒Mhauxi6CEE\f:Ul0Ѭ$0%=@8щ8ˆ*" $+6)T;.{.[^Ź.;,0f io٬ U^ژ$L$\yU6Hpe@ O80 $ 4h AV!Y E@@sҐDw tDw0H5tBC@zS| )2.7 JM>-^_6+ wm23:l籥IeB9{9w9梛~:ꟓyꭻZ>;~㾻?mEq^<$"E2!&Fs y#zcմ*9B4)O9T둮|%,c)Yrd,뵃3J/HL12e|&4)ib<8EpG׌U644d oؔL;"2:r'3O(S/һ'>}'@*Ё=(BЅ2go_a2 oiBs&=)JSҕ.})Lc*әҴ6)Nsӝ>)P*ԡF=*R T\SOttMa# FU iR=*ֱf=+ZӪֵR@Q6@hyjV (H*=,bŭkfT!1 . 5KX/=-jSղ}-lc+Ҷ'eՌ l*%J.ۂ 4!]Є$4Y@vr.x+񒷼=/zӫ}/|+ҷ/~/,,1S.~1c,Ӹ61s>FRG7 A=%'`DAK2|_?2,1f>3Ӭ5nq' KƷG= }-AK6NV0e>!} M#^Җ43MsӞ4܎VsfPg. b 4 YӺֶw9PDZ_5e3~6Q?ālla6mZ%(,a+ׁ]Ť-yӻ71S[?B݆CN40.^՝ag3s8R}pe5# \ Cc._.≘x-c>9Ѓ.{,9Կݗ;|; S}vhֳ$V4Gg9Ӯnޮ"U{̯tG׋2]<#/[Cz;.z:p=vwNճ=lyn|qu=GOs8U3>gڻ/ֿ>E߇>(Ç$~eg>ӯҗ$ݫW霱 N]_E F$]d]%&  CB A$B6X$_f|`1 a6"$8#|$`n J n!vaae2!@z _y!֡hT#ABF$N"%:h ## @"v^V",Ƣ,]bf͉5$UVUʡL֝gA HҰ ,O)ZW|<2%!d d-} ^%__`V.@B@0T@d  8#  Hnd]nU$$j&k~AN-LH@Xmdt$8% =2NS)%% d^f5&vfv]`C|ЀX&BX A$&|̂-$ #\Hg^n.(\wb~|AhHhPl,H@)( |&|7 dnn(M?f(樴u()(hi*_%BZV^iu l)ri|)n)@@v)*A>)v b)kJ 闚iNa.A+u֩>*5lTj@Ꙣi)R%X!*_jޢ,?j"!᩾"htgΪժIf-b:">+fqM+Vqq*KB~ʤec*꨸fTΫ+Q'+++_ΩAKfu2*>,jVQi"^?&hfR%6>Ũ_knɞ,vުb),ʮ=*+,,FBIl@BƑ0 GK ܋ GؾBfX!۾-4rb#}\-1`-yeN&Jmm  Yd!­^n nkqftD[dA@ۛDim>c.*5&_ዷj L)LjxN,ekaflJf@jMx/!@0H@=-n.1 0,A*:lof$f-},p HX~/)z=0NRTrnhosѼn4noMyJf؄ &%ƻf dqv\fGtmƉ 1,qm1a$4.6A [m f0$@'ۛM}  Yf`۞dU%ak̢+@LFΰ%L1nЈ oƉ(C@@ɾH 7ЁApI./hdOJ%d Yl4!7sf*B7]2âC3;erpdiBe}P2's_Tn3@4* <#Yo׽h>u?+[FF[G{}tUg@,~YBkYf0X?m$IN[OOuH5٦gA4t6 &Y$K&NuuX{FڗEf $`-)t@֎0${I[/Ks۪ 6YW_;_\9:D|O>>7d|[ö-|ɗO'sFRUfKö|C6$h kN->`|$TD+:#iL:CϽ}˛ۯYY꿝f*=~',g.-'(P}OKσG˜YYKyd1컡=` M2\3"P=:DゕC4Th 'd h@ ĀtY `AS6 6tpC)Vxcƅ5vdE!I4IqI+IdȘ3i:tYgN! \Px9l )rjT>|VRI=KB~ng\Zg)Э[ 4qbŋy ɛs)_\˙9oY3hўG\u?-RaV'NlV%I֮C%c :j|GJnݪk=t&IP |x_+ I$G|=NiΧ?@V׶l|GEH'N,,k-B춋M\Ԅ5ADFG࿉zH!5*ȌLҢ%D(O5BaA 6 ҐC,`h-2:a|{d)Jke|PV>ԕA1]@"> - T@+Lb`@0@ D H`ws 8PNĎ0^fH"!E<| (D )T!W&"a$YfAC49%MLWDX%…ByH G~R/G ! fc"Ht3opd=ox3Ї V^n{kjܸsD1mVQlq ?oHа/aH`ܞY&g9= "[X[,K.F4fV\ Y=1\Ew4(NsbNR,ha %ްY0xQ/h@M{`G# _Icak`M@"XH86dB!a\X!^ }x4)..sş Y 'U9fG; &Gҙ`Wxn4N":YDˣ*.HiltV Aa9v.Egck Y{\83>**PWogo{mrwȆ A-e,;y0D@;0H{^ $" }`{صxL|lS6e6BrI4-{mpd|Ny1 I?zAV8?1K#x+dvKY||ʖw;;?O3|3_OhdBTLe2k+ i.!.KoMH+3bZgay$P#(~2pn!>-Eb 4SpZbڡ!'˯xj@ ) o AOk 0 +C͎u-(`0 itQ"+  * e0[G%1."i5ky)`.M!!rQw#21,$}:nE1u[+ZrsP!H>( 9 D`$yqĚP_p?FQ UJjO2 0ћO! D Y"1!s"$CR$L#C C1`2&q&S2&>R$sR'$&H-~&1r`%i2dr)&qp'2'{RC%I%Dڃ)Q/-)+WE.../Rn߲"¾1f fQ-rֲ1.J2/3r/$ $xZ4J#!32]s@S%p*krNvP6' 8TRX36s9a#{(󮨑:sh s!"11$2R6Rӓ;;`=>S>>˯3)P6<G(/Mnb# @g!b#vb f8V'HH@RiE6ja"!`_l 0+BdԄ2gf 4<`6j7%qjjIc)a  6[uL*_886+ϙbmr7k1 Ggv :)o w6: ^7)ǴC9wxF%76 5ka ` 0!)bH7/Pw3 2f%z"w/@5 4 1Ib 4, !6Tx&})Y5D6__`LE0Y0One;duY .b//c0 0<cq;eqmDjBVBnˆ+X*z8E*C6 :CE;ȃYi؀W 8qg<" H" ^{A A4 ! xa4y(ހD ^B'fyˊNeOe. PEQRIiЙIsZٕ)[9 )byBy`!SSd%YY Ʈ%[ #&<]`y_ӝE5 6z Aa|l4xآ)FyympJdRfeZe sfjfrfgzƔK!@r<E:L9[Yb z!p3-G|B'by֍{2 Bpc +9S1p&qq }tj X=ڬY@;%_yJzSvQ 9M WQ({G|:|&;}P7h:{"?ۍX;Zp@xpehe'QpYL j R)0[YK{t( n:!w"ۉ\_R>rBX/77yд4A6m|"fgpa+{_al|7:

    4ۅ?Ӎ\C}KIlB4Mr` ^!>-EB/ ~~,R }'-Ŷ0%{J@%&2 .D9@~b%i.}t:beo>swDeb!2!2YcxynW9HAC=yj{}/ET{% &\!p-m`>U5եPw-Y/t|`h$M{z YI3 <0… h1D*Z1ƊC6z2ȑ$Av,2ʕ&Y| 3ɘ4kڼ3[;ax ?Old#L,^!*֞\{>E4, h?A`ǒDAc) f[Ajb AŌEc"R$ I(7'.{[y ٴ69u<?^oi.o}IN=;=8wO":0iԾS'?Q?He[qUŗ_!0!񂑃A(UiDEڴZk[m]v&DFȭ"BŵcDʝHG)ֈݍ8R>O>yZـ9?)ɤcNQEXsE[wȕ`^=e"@Fס b$1㛸iQ~"⟂44iM&ZӢ>wCUQenixfeQ鴓N:@ \fYk*ASFw(,-:hj젅 ]̦%E+m#IPD?Nm.^坘e&^i&hm"O3EuHLR+1./ 7 ?\DnVSIC k r" $2 Iᩪn]pGE,a ?F«1kp-03R +1ץE|]q9|JQ8|u<8VowH7m0Ӏt5*xAUQNNّ%Xas6L+4RHm-NHgC)>Wx|>R {yV>{2Kq!܃}k%>^K;//~uWü]vjOH "Џ~: 6}<,7VN~y1c 0: o[Ph`60Ӂ aF,Ae0 D(,(JFI ,j- c*6[(4xV 8@E#Gf-1q"(@2Jv|D˙Bk%֙+$x= ~ ! uJ=R)9"_BF΅.vdXY#4pAhUI?"f1%i% q%,L0 ϙmqh# !,S@ j΄QlC&x.6\$a _G=F MAOtRԈ)hCNYNV{-1a~Ӟ=gJfG9b%ST4Q/3HWrh$|d0rZGV\VժbH͹X/ X^a SA Wvor Jve!*s)cq"vMksL *9vXv-e1fkZ`֔n5I#v̽-7@{R .;^׸,`56wmޭv^rw=!w<͚ҽh}_i-Lv!J.XOH f܂{`>Q.yo\[˅,gۛ tcD&<$+Y`DNbŽqwiL51i}cd.lyLobf+9$ );%|7 >mNl)];Zp$H?eDЉo`4pEQ%tǜ4Rk?V-l  %/\ɵN ӌes:wKKʉL>" YeƱ "Ɇ.tF:::S+;>heB|Bq mXf= @=ᓠ [W;D'/}BQ]tr @Aљ!Mefmҩ)mԃ-H$s3S 4GܜVC8;C>DB\9EMȊGkm<QkOc,,~$؁-=+D!+ܙ5&U F"0.L`2= ftFEFΧ-Gtd>~WZP ;%TM)TeTI^4On.?g\Κ1\uU9VeMg]m~ʌqH^޶aa.~U5Xl(!ZtM6ޭ>Z.֒srrNK7[X20pȨ^nކ~-ƉԲD^_R2<<ӳcR뼾'9.HF#exNLXJVo6ca\l^^`7jOh/s?Y:OӤp=plnlB3E|rO)v/tt\ h/"~__ U>ÀO?EB_N}`%%b-H |ݶ?|cv` v))^Ee%O\s%P}8HOmdn߿l xsȯ]; n=~2%MDRJISL/ięM=}SКDTR= TxUV]~ܟS_]SВ3}> vMUCۙא?pfk' A^^if9hѣ96uj֭?>ZvUpmƝ[7ձϦf ʥZ9NOFR^aީWW/A)׹zR돶wO~?~aK$*,>ԒB :.HA^ fCR9^! ¯B1&klFY1&~2H!$D2I%dI'&ɖ@,BcGF,ecZLz)SyRSe)Q" @|-—c}Aƃ #-҅WH'm0,lS_!J_az3m=Uv [#Q_9K2Rj- Kryy9 UfqA}&M `0zĢ'}Uz(= wTeroC^վ+?_M#yMґt)=iD:p{y.I?l'~ۋqg:5:!'9q̿g}x2+@ r5YI?;dqbފ.2#%c9+!T Pmm0S0AHlA;A0vH\eA8PXd/@;8 \D (| D-B1PHoAO`?1L$TA\1̆\,$SO($!%?':*,B,D,-$?E<.|(8Ddv(SPq#TA#l1ToH4d|(^.3 X4Z|pvCE\#bS(J,0d\L mXCļ<@@| Ծ qDI ˆd(T 6HWTp!ɖHd'ɜ< lɢL?[>\Flʞ? X ld\:A*$K̠sX䭺$+jļ[ckZKQB+CLl ,KJL8JʼˮKD+̫8&dL\̨LLŌ\MȪ ̪,+x|(ll""8+s(|.KlהEdKM$YOx"hNᬰ,N+X{NVKL*LHOET MJ(/SN0ULV O! % 5UePu5QQ "=̖pL2L&mvx|ЉM>$!K ,D#m70%1-->LFR;-NLu 56=SC@U) oԻԆWE R TՙTU9 H\%b5cEV$^B(2eh㣊6nZ{(%ڒ")p@$ )8C8'@'h_dYc'iubf|&fk-  K/HЀxpl$hY^-Cp#8p +kF:k(궶˦׷/0!(s@lڂ p78.x3ia x890pp]X=0 U0iˆ.܆lXiH6ַ@h]0(]sȆUn$mhHFgpbu-kAGs]xn Ɇ].0q'_p pO՞/PGXF@l _v . '؈j!׃ӪmVk.=X.@v ll0]boߞe/'BE4phLH(]8Up i{/]ȃ!G߅?z6Ugf{p]PNJj@ ?H  ]@qGȃpsHPSVk'p *t(ѢF"Mt)ӦNB*u*ժV^m'lǮlxMf!@h|mHdyCˋ_?/C_0jƿEO \ i56aA0 +hAPmk ;A-=["! KpdPr [̈́2 S(0: O E"@ nJ\"90&Adx$Z"ďd#L@E+"Ɯ|#C$L14Q+|#8$0XB=nЏ\8Dd l`HhH"rg$'YG1ds.I.\%+ɗR$;x-ki[2Q)52<+_2LrQx3uWδ%/?ab3Ջa4 3 Ȝd6)Hiِ+iA,We4{ul9d~sX;Lv AyPZƳRt^~|b4fXQbcA' a4'$LwS$(8 J]S:ݩ8ED/Γ5j0JPd?Bb^唧ZݪئP@v$9ۉPXջi>H-ͧF-][J2UмDUz5^5ׂ^.QTsq-,LUZbLd[ڂ}&mkK nՠ=_߮+-qivs,R LB7Ϫl;Po`]:Ы2F7]/{Re-xk/ #}_ƉWadӯ#xD% CX= f0 cLkf 8ğpa8V!q[W2SX⣽41bc Br+$8JʏL!7K2;aEUY/Y$MٓC&0$>+6f7m52;'RgN3Q< ptòBк/>Cz6Q)}K?j+h1$xmK+ feAY,^651UîՋfns/5Z;$.vkP_J篃Ҟv{?\`';8ow7F6c)ng^7p=nYʎmֺZgk{n͘oq_d^bT %kToc\3 ^Dbşk3{ G93q ߌ;yf^kEЊ;:7)깨{cOz~FW:ٸu+G ^=|Tnw *Ch|.]w<[#fʉV79ijwj7I; !6%cw |[G0(w0=d&~K׼@"1do-v.忽%QA44_???o??` `"`*2 A`JR`Zb`Jr`N⩜DLLGd)) %錩I@ `a a"a*2a:BaJRaZbajraza@ p$d:  WL"C5F_eBb+.c45V4b->125jc1c8v88r4c9#8:R#4#c?=864A\@ PldD 6̈́١M zqHKhH6""A"XBM$(ЄM$N΄NdN%LPOeLeRRN>OdP2K8T"eTdUU%UjQb%TT~eVV%WfW*%XX%YΥY%Z֥Z%[eSe^]ҥ`ڥ_%a%`_"f``>faZ%cFfb6bfe:df&gBgJfWR&hZfdPd B4 Jh ń ,+PJ}G &Ad HA"$Mc*'sڤs*OJ'tduRg>gvfMngsjtgwZwFgxZ%`xMu'wwy{g|Nz|g}} h~hzhg&.(6>(V^|n~'(~('N(v(2h荦hv(t&qHޒ2i2L& Q\IFqΘ8Rm$)n&pJeTheq@<'~~(Щ'iQ(i頦giQ*'.*j"0:jebOjjvj >hB*Jj"*ꤾ***~*j檭*j k*"*k>:kbjkk* i CߺZDk2I dAl~v(i)p$  @NXHHRTfZl~ņ,NbƢl,˞Ȧlɶ.ɮ,Ⱥ,¬lΚl ;l,6m-:N2mf-b-&mJ׊mrm~m*mڎՂ-ے֚ۢܪmٶ޾-m--->2n*nB..jn^nn.vvlĚq )e LHI ԫ.F9_1d lZo*&Ѱdqzb>/HH/<DVfv/Pb/do/bojo/~///ϯo0o7"/'03p_p sGp Cw[ c p0 0{ 00  p ϰ0 / 0?q#301K1SkqWqg1 C ˱?@9s:/4;At?OD;tC3=SEkEgtDt:O @EJq@6|A!>y8e8@&D٥4P eX`ǦA(*UWVg5N`5WWoXwM|5YYZM5[[\uM5]ǵ]ϵ^5M5__`L5aabL6c'c/d7vL<6eGeOfW6L\6gggohwK|6iiouV_l!Kv׹1uB(DNW?% 2htxqǑ'WysϡGZZzuױg׾{w?|y󴩫&'yǗ?~}==4LPl!t )fP 9A QMO1Lðb4`tPUy_ Va-cF+$i&Hb( mo Wq-e)}UlNPhcp0{W}W .NX5^!X)\^,X9mI.QNMUnaYfYqY;矁Z衉&碑NZ饙覡ZꩩF骱Z뭹[&N[>[ݞ`7 /7o~\)|L-\ƜAlE/ӓVܐ"\ h^5WGq'Vq/>_u %w y]ud-0 'S{L'0OH u9@G#L wI2Ҳ!@|ˆ,ZtMR,Jf `@t ,& O *d!r v[@XgA%.{Iл"),Xe#DЅ6z\' /:$x1-&ΑàCiZ`ZU.c&U(HcrG$| IM~y^ T,Irc>A20*%G}-+W.CX7GBr OYj-  Ad$t`$=A b78'fe8}x|QI]ºije-Pt^BƖ%b  ͒CJrpF40QnGAR%%3AnU&uKQ@5MoӕZ=O*RRAP VPaӨ6UNUUUn]j5aQl pWњVlU~*YWիluX֧ҕ}_jWK`U0c!ٴR#0c+YRֲ{¬fAZ^5i:b}Z4lTZ;`vjn[7p\WXU.Vۯϵo bUWͮ]b xk %vFM[_Ns ,i kZ` 5Šp+| Oطֆ9bzW /X=N譈aXf,j8X9ֱyL7ȿ@N a9yRlZ+ YeW&1yNbr+77r [gUt2*?@eR!/Y~t!Gt1iMoNo48jG{sQjQ=akHղLlTnέ44buwg/H6k:%{٤hv\q*}0aM 6 ;]wx1MNd~W_" 6/ wS&M8p4)+=GM~xw-Ӌ^es?ql 'UrVntKΐ`tVW,׽רw +x>tɎ=MGOc[*t$K|KA  }B/lW Е^>u7)Dw21VarF4g0M^a fW+D@pEW֓ jS5|ʉl ΫeE,k9IhiXIpA?k&M~l OM *v~On߰Td/ Q#TtIЉ2Y`z/^'ŕFo\Aﰌ PV`9P@(0mϫ, #k{  0P<0 ^BBVHKHύtQ>H `WzpJa0A {j7_,\&jjPЪKbQ9[n  eq(ѻ6qɋj^pNaF1a3[ Gq jSQ,q  0Onɼj1}Qb)x~ iXހ^aba hz'Sғ3(QQ)Ar6ӱ1*Aq3K28CcCB3t9ɫ -iK3Ա6RGi6,-_%PE\t`B1TC6Nn23@v6>>3@4tKhtDA_=MG4Ae?9dD':Nt@K!I5qFrNJK&K L2H:7<*2J_ҪS} S5Y3)]3k?*%GV{Nx$0q8 6e4 !ZZ+4OۓT_TjYWs4B4`@2k03V3k[ so^^uΈUeUTOaUJ OXV+`ֵ]]Ue2A!,pܴa]5tees^CmUQDBXN $D)Xr65 FYf_dhVj^OV3SVg)y6i @i ksv4%_3fUNiv5eagV,jh iYc wvlSE>bA_DyS6^]ev+ni vWYS9U{N`rQhKWu DdDB[ S'oBV vqw^\ѳ=vNH! 6̶ˈZsu A`Ѵ -p-MUn/ov(7oN^7hphi7 &usNcfr0"LѶ};eW/om7w׊~muUuk!NhcGopgwPgN7RU~iuTXMW5׃W9'c/uV,PJwhzzh xv_7m aZ}u$M jAE8IXcq5xi_u5۴=vsp} XU7{wHvfNVY7m3Dk^_j1y^{ Yl'4x6|s|[p`A`1sxNHYpٍՑWR$Ip21xasՀ+4Zp+QJ߷NH`w )Y[B8-4sqju8Hy D"٪xn9 xL8YOnV[(sd[뙤ᄡD>=Bst*xA3k]y^!BSIUC4MO_sYN4FPЊ3[ XTݹwBx*IߺpW m:s˺@r{13sEyNd딱fuGi8㶉 A3Wzow{٧X:N@ບMzYֳ䰛GU- ([A*w;=󱬋s+yyk8)_cOZ0;˗NN[yw5]ۺYs҉['ە2{aG|ɛ%9ѽ{ *aMlW|Cs[! Gi+e{mK;R{Mr;f9OdKquj|Z?kdhӄ߆xQ֕$oƷ9ת屌N` ²$M]Yi %kN:@^NFK~=R^E>1ǝ[N2M+N~^ڃdskkÆ= =3uk^߭ސKDc|&3+:KObOjDKϸl G5Gouހ݁!`ffJ 2xsv!z4x+Tbq$w/}hJ!X"I(8[#(#qxHIаPF)TViXfP`" \ihn IabpzdOar6Y曎+Gd衉f#2KA2Т d>ʡ4Y*Rh"+v*%g*hCH,h,Ȣl6bR:8b @Ů.0D9H6<+H  {o`h QXZ/mRX;,CM2 dm6!0.#zdm2;PiKPLs8l²vg Fll X6xfDK hBp "l[,@2U2ǫri6.gk1mrS"-) X6 $+$`>754W ^Xtw~YC)0LC _BԺqՔ2@n,g21-z.~CEl1 X[ C[⯃qNZ/ ~Y`AoN1/b8cjb YmxX 2eoYՈ[)C%PaH`00 @0CL'~!h[%ægt`q:iRl $f)`ٺqDŽIi۟_.X `f6d×M=Bt6"WXҘδ7N{ӠGMRԨNWVհgMZָεw^יvtMbNMI 6+ a;A Zp xMrNvMzη~N>A gҨMHyvX .& FNr>oywrCЍt3Ki]VGu;\ׯ.<_/{՞O=c:Sqw=}voߺ /w~Oy3^%>|WC?g^Gxԃ\ MZ]XwX̣_B",!͏}CAW_> "~K֧>?g>?~ß ~gǀXw؀8؁h~# H",X*3x57؂164?H:(8HAk@+W|TXV( VT@c* |}&xi|kxm|r5Ȇv(xw|~}8P{(Ht8y(}8h؉|艍ȉ8XwȊ芢(H`èȋ(H،8XژȌxHbcx@8XxY V V ėpmP| @*mlxIh}˨ّ8}g"$ɑ)ْ(*Y,y6Y}8; 8.)0yD &ɓGBMiOK=I?ɔE)QYɕHYXWISiU9[d`]fYhml9vIx9byN~ )ٗ)y)9|*- u[tYi<Xh l_h0*ɚKK X ٚ:)ɚA0 )iIy͙ɜֹٝЉY9i䙝ɝyɞY))ڹY9ʟ ڟ :iJj *! Z: "J':& *Jj:-*5.+zicO# tė hXڙU<`|ӅY@Xi ljf@j`l ikڦosZw n rʦ|sz*X`ڧty*Zꨊʨ:jJꩣꪦ:ʪZګڪZʫJJ źjתʬz ƪZ܊ت:J*jz KZ jɎ|;{T1Z 4б+ ۱— _i`0n0}P6[u036{92K?8jDG+=[FI;>[M;OkRU˴[KP{\_^ch jK kkp];X5+l{tKqQue z++~۷m{˷۸i+k{빈 ˹ [{[ K[Kۺkۻk1ki:&"[{w +saq)piu a}0k +k  ,l| ,l!l#%')\+ -,/l1L3579<; =,?lA,CEGI 5+}fY㓽\^|{kiw{{ "4pqƤ7iPzL}@i8,ń\ًqbmіFD]k D0wsmNPR=T]V}XZ\^`b=d]f}hjlnpr=t]v}xz|~׀؂=؄]؆}؈؊}؎ْؐ=ٔ]ٖ}ٜ٘ٚٞ٠ڢ=ڤ]ڦ}ڬڮڰ۲=۴]۶}۸ۺۼ۾=]}ȝʽ=]}؝ڽ=]}Z=]}MX~.V:~ d>>^.~=` V&~(*#02>4n-~=^:<>7D^F~HNWBNNPRTL9>XZ>;psychopy-1.82.02.dfsg/docs/source/images/builder.png000066400000000000000000003633601257562125200223370ustar00rootroot00000000000000PNG  IHDR<h8V[iCCPICC ProfilexXi8U__{qp8yg32d:yL !P%A()"y><Ϸ˻kwu>}nX=Ãa!ёFyqS8HzOJT9m~v>9u>Q k;^GF qlt8Q# "O^q/zxgԏ;a2*XPP֤{zHq {zz3? O"/ <-$8~5N =_zYZpxazO?zZGQ x?vC?hf@w~$2?WYe>&iI^yY9o{_my_xܑ=/S-F d~Pb"Y`]K@Hyԁ60 N P? $ d\p P Ept6 `Li0 *  A<$C*&dCAP <Ku64B/`"s° fGp* Up ߆4ŌCITPz(+3JFe QUVT7 jBcd4/Z 6Fۣ)t2݀DߢW?04NF c9b0:Lf3bX2 &`Oa˰m^(vp8 KÝõnpM<5/7;C)B|?oSԨPPPuSPRm " B 8JCxIJMMOJmC@}>[-"QGt%^ WamghlF~4dZiZZoڣi;iht Ѝ-H$=')tt4AZ'[чПog130x32T33̐QdB>A!!2bEM/23210cr`c:ti,l̜|w. V1oڬ>mx ؂ΰubG۰Dza_`Ppdr\99m9898׹¹qs-q3sksrpp/y4yx xn|e -]3Oo%@P(XLlR*'MXDQ8]Kx^UD$^Y(hhS1XXcqX\Q_,$ Q&1*T "JHjz+,m."%,#(,sFYE`)99Sn/Oh *\SObϾ}Ɋ}JJJJ ʂʥ***TbTuUPRSRV.ޤ>_d3Ӛ4&޳#۹5m=s`^>ƾρաᛣcAI:;8]s9;89uuUtMs}vHPܡA7v`tW<0M;VU^&^^=Je[ۻ{G'gW7wO/o_˿)@/$sq`E `|GPРЁ0pfuQPԡkьH"3#WÚތuG7tDHƑxt%//x$d(+ԣnj5':(E6%/eTc3՜F6^q}2pBƹޙd vNQN=8-w^opRNy.6743 yyy3kg+("M_;'x.Nymʼʵ[+**_ҨJ[}CCͽZ:ۆF&Φf9yŵEZZ+ۘ۲A{LK]6wEJUNHj5kMuww-w o2!݊޻tL{T6wܿkxν[5T@ACCCu + w(\{{thϘ'O>5ypr|ϽϿ~yԱH _sz#mZi[CMPfGߙM@pgq^~Ƃ.g>*]]2zpus/}_۷ַnz#dc[&fÖֽcwp;Żb?~ ; zh\ _Hz$O?$wdB`?pɠLAP2?6wEQz}O's1^f`d dgIPXOdI,OBWrEBPnIጢw!4ݴFttt>:40yoF2WXY5Z?Y9 aop!؍]3ū= d~*4):&{qyĩW.r|U*_RiNgz~G6qn虒EguL)c-Wav2XuIMKmx|FLl!_dmhlgttpձֹ޵wMM[콬iwpw1Pу`އC4F>M<1z*58labɘ)͗2^;z>}mLg>Yη"E%ťOa˴m++u?/|uaܺF7MfVw;]ݕ]{_*Ā2=t惫P%LwLKF{dFŸͅ}Ӓ>)(!eh=3r_"}TrR*^CCMw@S_0(8פҴݬ|brͼʁkNB.*ݓ<2< )u->}zG^ 9l>|2AdwTK􅘂'cbD%'$%;vxNJɉ ʢ=%rZ'5':ԙڼ[cgY (7.u) )OȼPTYYXVsZ]W}GÕKM 5-Z?ܕ]kTi[28f<{^Fy?:8l1X}TqL Staųϫ_OLtyZ ݛӣo[ޥ͸W%|K__bz«C/aMv~s97ʷv vv~t/I f: :H&`C> } EEj=55&~::DE!(! E6$QIYE=[<;={31g&4SdQ1ޣ|2|LB焽D$D+%JHG2ɾ"Baؾ-!*X+UqYZrڜ:8/ z_L2`ne7'[YXZGްpv:8yTzPĽ#|ng?Ԏ;|!Hvpjc)~iYqur#y \ 9vKK#/{Ml[ qfiy3Vۯ < AH | @>ASL ! N+>xF LϠ:P=.Et2 Ŝ b6®!*W{g;~T 0p:z(E#nx #_+"HhZFiƿ12a a&6sq!:ی{׉#$|"T/(b#*&{-~]d QfQ\|>E%6eʄ-&ZF:2z|\܆BF&f,zmvR\O9rqp>r{ǖ %/g_d\~;R8*7zo͓JKMJI8%sMvnH/i),wPE]v1ńKW;Vn8~׽S{A#1qDMs3³as.}Xުſ: GjB#»l'H g Ń2CŢjPHTF |Hb00cX 6{G^% GTTT :\ԹD (q&ͤc#CZȶMj&],2,Yؔ٫8\8Y8' xx6E l . ~!2&:"6,>gR2e\U.Nckk!Z5t036U72?ia9oon[gjPdx(m̳k['q@K98>d&,3'*#zG œƏMFH||ܽ9E}%'Jʶ+Z+ݪj.9o7^h6nYoiwD2ё.k7znv' ߍ/>8£C#\ߎU=obEתo ;=2kdGOe+M $|\YY_vv}Kdk{vĎn㏼G*""{{_{foojoo/ ][%P?JJM} pHYs   IDATx}^ +""EAMciHD?I,1H`bG-mae{{z>}&12Ν[͝s9^nӦMfZu:,0 C!`0 /pC[$ HIMMy{/euC!`0 C!  UZZZ4EE1 C!`0 C!%AB &j8P`0 C!`01 z$I,Rc$FP(ji9n]ѣ`W!xTZ^8.V*47_;qdY>k95-⭮mםj(ES5 (-+bOx a0 C!`0"|q%lg 6%)BM'O]Vk۲A]Zi xR2FH8xd5jed_|+ڔ+(HNO Ykl}MKa0rijGivCo8|ڗa}@y=+Y=1 @WפX:m/]cJ,;7+(V\u'jq㹑ӦA+xέoaR^6-/l[ٸޖ^!1=/' ,1wZeoc϶eN&M[nP?}MD!0d씹s/. eϽ_CU/П5TrÞoۺߐPn_7)5u 2򣼼ĉ5ˊ\GYRRb4Z͸Ozd߇u&=2WVw"l<=< #z2d3&j,omi_jV7\cJ4HC9>HuD M+__ݲj٦FUJM["?jue 2fm=F0 A!ص``.NBTM4} eه}˳۞~/,˵w!sC#k;OE/z:J:<}Mfn cr )J z!e^C!$ 6ϛ7oĈ:`]Ԁ~o=K% OGp \.k-vy85js!ڼ+ڴSjpjʹ2 [B;7 z`tjr]g'.RSYҴ4.!+b Cs#о/|8E*R$£ Q q9qH`9ϫ;}JWUi 5Z 2'׵a5ٌ6͊Nh0X1ժ&"pʼԌdnљŰ:n%'SӓrҐ-nq`0AηoV+W|󱝄Xx*|;?Xt"K,^nraK{%+vn]~s\-_A`ֳ鮓/.Vk]&5rԲo݋`!$6[GY|g6;~hӏ MMǚٵnC jhe-uEo齓ܻۭ/.^:wooZׁ-K5H)3 Ngk36c m!YA3I-` V@o䷕$:'j}dsWP,<.XtgDs[ҍRm͂QكnY3JݳgvCOQ}JpKD[g^`00lpC. ZrjG^PL0VC3]jmZ[hlVmCﰛVɘZxqfϖe3V}UdXZ}Uj%d0iogӲVl6jی3LjY!M`f7q,!`޵tǞ-+-e4\0&IK|-=-{~͖-+_@xŦ%w>Kog#ٽ~Yw5bmi>mO.7xśy՚?5Uxk5<;k I߳c6ٖΎ?Ό'ݽ_S{twp7=Gic̽h.4~ V\=e7}a]ϯmysمYԐ@?-hxi73r)/挗b:=-(:7R2,m_=Vz7]0gw$uUU#Ȣ;./Bm]Q)v|N`]EyP9tEEWҬ^h[ֿyMS]IlŲC!"`6a- Zk1b q  QUB `t#]rdC ~"M&!"il&ݬY56b-"XM+:;M2h2 @o5`O5Eo4 Ʉ2?(qc C"ۜmGjǍ+2p;ચG:է#~hA^H-fb%6+_8û=x} P]eFyNc1 &`r:-#\D4a"ZD--}NQ7:44PP$"{R @OMrъ%d^yiz_l>?FTB8yQRiYZ[+pN{i VZdSSk;#~8(ˍ]\g߳PmsiIkShs;#g2cHe%Ad*)[3tAG%bNSogBĸ R˛>A5:ƨP=>}^ws4}Rz @wĠaؕU^|xWecvœ5տP-)V7$,S)rQ߳&9J.}nuFJp9nuà`DV4{HrYAPF6->WSSo*P黦 m $T;qRn>keB3;.RH zZ: 6Z CK/n-VkY~"(|*K(A"x)Djj6#3'-,!`@ T棚Se۳NLk$cD)ǽ77toN͍41 La`;?TN2Ag%vM߹KF-iGޤoo%V ]Cȯy7ӭO!LAI z7~eZ&`eﮑhxU߇i㵋]ЬpƷwG{iTcҤh =9y_~㓹&0,{߻"]$Snʊ@RO1G}NO۔|nGX̽9[{ybrJX o7z䙛f ֝ >ޡTA1G$v ¡VlAG #.gѮh-5gI{ΗFȭYYg/AD Af*q%FSvTa7Nܑ]`t`0ޚ2e -}b"@Dzk׮dsK"Tsf5YMZH,z=5V+QפѤ\:StǩY׬9YC9[**56k< {YwZ-^c^0G F?dU%0 ~hkߛLHZ2֢ΕdO^f{< ֒+07uE2-"ὛV[ND}QV~5ߥu76KB T= yWn{G亿}VMP4)xol.gZm0W'@ʁ{2pHСXyh6 Pr7Uv0qWGצR2F9. {Bg2G_{yuj99f60I Pی6ߘyKb0= )kw ɩ&˧1.xMfGYQlF[ZoLMF-.u(RuOs;0mXxZZoYu/+1۵vR!lRja&W',JƤ4^IعW͇. SSm$ni\s̏\.k"nnK6γ?+aոQ\!(&MtI-x\O\>bm,0U}m}9=]-7HE0qO`~^gJr._hvޑ yMq:}DaWs6[TIoԪAS81RmHK3:ád7eD['!`|f,E J䐾dCfXI =)lݺ5nQU1=5|XRt2iGը!V\M7 j9>V楏8,qt|yvg cBQCaa) C .K Z.3W;z5%n]&^8YcZ{%w/ɾ;XxË so~<_eK2_Ii^Wﮝz {Xp]=l>oK]گ~]{k>e^xf6^];R׫0jFf]E9>~>'X=T<}%5swEKg0T)%s[l[z%@mu2- ۋ)`03HK]G?v ?fLه%Һ8w^+*?-+u@t^!xz_EҘI}ZW.*lœ 5:RUso|Z CK@B TD wk}icW C!`0 \=1#A{r"=a C!`0  -A]b2 C!`0Mt.'C!`0 Ci/+ C!`0 F (KO쾉%1z(m}A߿Yx 7b8K8U[:]SR cCݤ['--/V[tW~uVPmSFĕVaN"/nذarsϯ,C5˱Fi{F5J}Ix3kO-L3L sr_]sWߖ|MPlqGakF=sGAnkl/ݸİDC!` @ O,sj-CjDz4_D(jl6HCht`C?ݰمXbV#EOx`PhAl>F]k4v($-zdH;Qd$5 X ٌ&$ӍBÑ^gDdR=2. %]ɹ:&0ssAZ'Br{bv3fL03X5W_s~mݞ`BB1j;?!L8.$4+:|e,cdTuph Am}CԁXxaGkjʐ!9(A?_"KԒ4Ӛ.j>Gd)_ #)i׮]cƌ7nݺZXwرvI(XW[u{FJBJTa {jD=ѢO}7-w1;r*?***>|ɢk]kQ"L:5JiϘؙׯߟ4u.o(0ե_PA+LiQ0苋ƚNh]2 $:Z 52H*b0|>])bbm6_ KyT)WLvs hN6,$ʈKRiii7 Co ʼƎsTBHn^^QE#PW?m4S]]8qؑȑ76H3jBbP#R8"  (aB-e޵tw0 Cs 08 QDZa&yVa\2$^(%Y?ɐXXGqħ LS%?9 /"A{SP&k:H2Gºi*r(!3T%@7;ۓ$ɫ6R9ebBs)xItREZڼ?528 [,f%,AFkk}'qTԕ0Qdh9wDDE 4biƁj ыtq(`,8\y{<:q PEr먬B[71#IkZx[FP5I/$,fWGt$>7ro,[ڊ{r%H,Q fp\$mo inwzR.+3}Ln" C!G QEek)jDc_eUda@>\3]b`uDѢʾ`/+ &~d2%ww{}O;TB0bOF*P1$Ə;zXq-jچ)}MNl4ZEXg CE>8E2D2 >ʱ>: Q#5xĪJ) "aov¹b NJU*J->`9'O%)7iNWTغ减]X6~QAXG NlvIAƤ10">^ x"R$ DP3(X 't%XWKJ+k.8`!8SJ)Q1DT asV Đe!kpCb$<y*)E8(Ba6C 3> <]o{PޠS~jfznV=Qx(d_C3{rgq~T{RX>%M]:vڪl6A׹=CwqL>4'#G Vgdo&^p5184$C!`|>Z vة edm.Gd GhTt=B\G `8{H`s>@N3v W aybx&bMAfU.hi3+UWSc6f^zIʼnϰTfVȂN@ՂASȸ@C#-iWHڠu!o(Ʉ#+6։[d=#]b.\Hi8m~昳MG!o:g_{iqm4lʤww[ddfN4))):l TPz#GтwB/sGZrQo0=9 %!҇3" 9 60)d3vG|H(H2d]Ud*͇@"P pa`0M$)i!dݓL1\i<4VQ!Jd(Ij"A!W Nٌm䨳#S#d3ZjKkИߕ#{o~WA H2A_?v|_-cIe33^/ܚ TYM.~P >gt*nĄ7"ŭǎ522~ Kwh$4))YYڹUQNvV^f벤r޸qu8 APFcDT4`0 /i+cj1:XC) A:Jehmk`ߟ-I9[ߕQh2)]| tJ"APޣ@%e{I{WFYCvM]HꝹk (fa` Qo}iinHOa_w= Ҫ TVk](o؆R Q1"tDR%XOx7M8Oaa:ksXUdm}Xc4̐|74d 5Pb(!AyhjJN[{cڹ-K,hnP;QR_qc8hKJk<MMͮVp8Yta%9aļ ޭn>$+e'e;<`'3-j+|YpXL:qǐQ9Kx<>u 3Sz#t"D[>^sEM&F;F&5͠ 5g=e$*(bWee-}qmI|..^f˨V~[j T"a 1.*_P #pF:66)GܩH__ FOg2c18MZ$i~qў}ƃ$+߷ξni ̀eE$_QծZ XϷvXn%["nnoC>C.W=fY C!OA`ZCbA:˅5xO^6$\`]#%%q{(v[ӟ‰Z)j(Igԕ,{JeK^ ɂ7h5h<&Xeb1f3a}inU.&ܡmNFeAAt!S~F&UzK6G So‚3 R tb0*'|-yJ}t/>#Qi+ I7P&SACC7"BA˛R q<Ѫ9K_ѣ?\y&OLtz]:$3+~͍v%vIAMK+QEXZH".C' zbPR?ѶzgtQqE@RK9G{$]aYp9>{ ՚?jaPQe *(x(>N!?Z>Ry dfil,T ┍%ic-[o'uD1Q*uJs ;;H\H4Q;E|oYV3aϛ3<͇(TIGxE/rj˲[i) _úiβĚ@Ē5 5ң6UUƍғUfbm9V C!!085H@y%%(I *sF|։ʾqqI0б] :3> -kn#,l D#_PzB!_>?FNY} [=x}`X~ߏA2`fPQ+ѨY&OI?S/zkF؏PGYQt*)>u, ~GPjI5(ds vks6}{7b;NTT6 NE("CpkS]Zi'CtQ$ *X덷hJ[7<[p+dLb9L|<1n%z@<J>xvٗ_n6UK׎k۰ATȥ >Kt kFMyUۏ54ԴÜKDE#bHQd.j;k!P 6U1}b2 숈~2!{NG}Ez؍UrB%0 (B $Eh {d®n5N|_EQvI Vʚ?rj7K_uفӾu<2cG?}X!`0F !~}Ӯj]DIDN_ujr*N ra. xS3SrAOop̲VQABRnlȚhMy(JOK{k2;=}OnYUlܴ.y mtuʘI-MQs8t(O$zZǸlxPF~r`3C`冱K^[U7rÒ,T9]5~ˁ]>;Oá%X7U4CpQa&D.D؆QKU1HD V%AûWJ;G [q={uZ*Uުܢ?5:PDŽ]e0 !9CTDո8 ͱ IDAT߹5=rRjm2+LdLI+6Mm `k_[-I(} ibs ?1A*aJ[^M,-ZR4l)6ĉS՟mٝԁW8&K-UoMI{L >r RKyrFK@}<+:-e"Aoɨu^D|zN˭QW|W^'4&Qj]&u%O]V`w)b<`* WٌNJFc郂e̊>Qة7AT%G>O>p˚0b˻oUn֜!C>dd&F.>1+R__;Z jsGo\ZoIi8D٣;4aqk"R 3V'<_[1-eݵP@bQf DBD֡בZz[0/YNiyE Jo<7nzXM:B= }0 C!HTӂtS#ص]O{ԖiSEVXh[ʻ@6APx.EYSO'%QKhavFPgfT҅WR Gm2ltbgqr:F'`KFN0n8yiʏfPhSdF0mQEyW ~2U J8A[3JBwdh4x,pȞ6ӡi%~PbB s[y6:h?` #Mg𗘸[C¢lP5CH}|PszYDNRjk*,C',?t%v`P];b[iÜ&XvR;`(*#mѥ}zFS~d?Aχ:FSZ:O>Ŗ[Y akڝDGH^T4I- Tr an6R Z 6NK5\ BT z MYMFj8t^nfk vu)YϜ9`AeY,+:[$EK~$-\[cvҴTi~)SZ{b5 >? vlocB-zepaXPl6 K5[YYp"#baU zwgXA2`fPX2bCD9y%&a`@!"R/vM4J?.- PP $Ts v)SّSuj݇4 [@Fb*{lɴq{e ² YX,ٗ^Z3`+P0-VkKk׬xm%)Rt(n, C!g"0dՁGG^ Z+i}MdJRqlopWHlyyyW2j+mRm¦ NڧLJ.N.5nZ}ۤSܹveO_ђ%dŕoOYD1;Jo87q bEkiUNEh$vz3^VvW2Ba0P555!sz 2/6=7:bTGxA@C~i(9XMMqH-G>]L0`*TZU+\R~A6_:g ?h:Q vӦ2)6Bs[)kSAL8詵hȨYkg]gK^ bHVOk*+r d1Xӵٵ}t}bvwTY gCXA `2-tU@mJ*'T_-Ɣddn\NOW͂$pXDŷ,!`0tgL@?<"G5%n|<8*Z:M@ ~dFk;۔`^:~l? pI(|QK8j Ȁ/=#t1sL]i$sL!Z'cCI̜9phݻʏ$ h:V:i0L*ݯ6BlQ%OH?KxPi#!D*! v d,&!llVPuZG.尃"h@_c ,:XWɦ<ǘ"{i6Sǰ\:˳jO뮩>G#~ V_¾w&3#;Q߁>+'.i_X b-hknnv:]:(kHՍ׬Ș?#iԒI&pĮIuE&R#`5vg.9k߾}o'z 6H!a[s*D J֣hdHr5S~f+׸[&W0 G CԜL4ox_'h*Igp8N'0U@1D+lH06W4* :AAcZZW\ XizC]8+,I`0 /AhZmSKDrbċpD$AfT4`r]fFbFExx`3؝]TӻbE={677wljAe ,/|jqd05u^s˱ C?צλ7{ea#5g/=zj o8[[|jwdI!V+Ts/)ZNqAhP`gie̸ʠ4 @Kp5[߮J.Ixvat=bh{Vv}V?0{]ҋw¡#N5,wxxK ;O}SPf" MȝRQiNqE­U4ϗC `IL'B x+_`uԾzAb%#HJ՘Cjl04 ItZcjj{ @$ݮ,"ʫDr!?J9tPm-ݞ=h0z$93`0  iZEP'I?鱀Į><#ޅB!C"-ǩZd&S,o?4v!x*4 CM?T: ^I18pK? yԯLq_ٴq ˂”"hB*ȅM@U+Q}DH􊥸`/նp+gtz-GAQc@-Y0ICF!Io6:)C-RF&+SRHW@ K,ͼ|JD8fa i`_\ nA*|De[hw+M7>[vg,~ 83LMM۱c+B!%d޼n "P/Ct` 6/F!xUF$u,'TWÁt#D@5AA^akq4E,.6m׮x~MHqƥPHU <@S`Gr5NIndnxs˰:iwvj;I_zʣOgu J/x>o͉Z,p,4>wCј3|;Jd wN(&Lhmklfka?F 5[2{uSŽ{|mB8<3N{Gqw{]Œ,["˽nK?5@h _JHBH> }CB ₍㊻eImIVi4=ݩؒ͛7;oߔp^WD!@!p4H+҂txћ<L #J ,^xHDSw~4G݁fFZX6蘶ae/p(𻃝vx_ /}YY 4sΜ3k,_n=К3g6s [L)S" nsI?3fX3z7naBL`_fa*b+=GnzNn3,<:c7B἖6wGC AfJwu5FN勄k<˅+ Q"7%:WVVX4~{9dR30<& ,.|l7Uy=Cˢؿesb{67mbu~$.첼|WZ:l8. 3r1}p,rr'\x"Fk6n' ț0C4;%,s͞5gMoz; ӷmC<ȉ U 'ftIncpYMd5f{e'lu7K a۶`|hxm-M7nǏ ѪsØʾEf}jlW0`ΙF6mT,J~_F٨0,[/ZmkXD`<%sf(B B PyG*[+B<(^3 gV C+5gKmC9>/qc vaD7`["_K4:xښZ +\D7;2Æ^LD0k ?iO>߸i/*_sI'mݺ̞x rf'`h>X9M@Y X-jn#$~⒧BΌYq+`P#:zDTdO3dS9-zVXoiVY ևļepAfD\K 1o;<[g>ٯc'3`v^g=;U4hkna~7_=~Xj'~tl_I`rHOc ܌%uAe:cuI'4,zMde9dCC<,.! [Eya6dh!А[dâ~i l_{wr [0+_@k2*D[謊zqm{v)͇|,f8~ϫ]>Ex6Ŗ r+(vX~pyyy]|~=tckldJh..G+x7[ &wKKSќ9@l;XP2!@!!z#ްs =Ia`z }GFDۍ.8L\ 1GD {CYka Ҳ5洳ւ  h38eb{aCKnY^:n }#qk (wv9\Qyxhlh~´3g,_b֭><#>-~)'ϝ\#8 qh~d:as8` !#J0}wǬk$A3Tv~ErGsVbGk>w)'ԸN# v}=l+ h-Bܭd6q%vǻ5ZܒcGD;nPew IDAT'I:®(# 7|θ1wʜ5IHJ4` 0!F0-DEԹ0L?dV?l`` Yl+fΜ^V6cmdiMt0-uYO ӷczԩ}DE& l}\4~Zӻ~YٞB;`j(\<`a{M/T ڢ~ `G@x䤓>ZjNN%e X\bwB)ZU]4d\ B 1GZnt%].CL#Z~G v_"ifGFيX7ߜr 477`||9HR2ۚn/sW ޅ1nܘ-['}@a ԄCSV"v#gsZbl&O-[uG|jk7ڽwG@B&y& e5bu@c*6P_hEl>)i)xc͢G1 71"›/ a#ܢ-ioԩ&]BQ\ y}ʥ$1㦒&%*1:|W֤aJϯkwGb50oȣ^`IQhAQpҁE!McNRWži9o~qrG"e6??K?# fai=!@!MCZ@WEO7]dr ނ1eUvDdg7O;(qO}8~*. 2Hӏ?^4h&LR{83ċ@)8^r 0K!sYN"* D45rA].K-#6m'ASW;` X Sce.Bn/606WGPUqºM, ۽gMƏϟoG.mםO_<|PHLׄP$nV_ %"|se!-CAQ6@@J ڒ`Z'f/þ;Bj0E=f &(505 0|Y]΢Q8P~HC!@l-j`~ojƉ{qV800Oiz]&6D{h0l͚5cȑ"ϰLQ:/(tre9?$-K E(ݙ{dđr[K.c7&e,F40S}Fdd|ouMZ_@dٳuGmA]@QXw~6m,3$!@@"^z)QKB B B z]3 U B B DZ3;:lxuʋSzSqn B  mВcB B B ߧ+J!!@!@!@t_ B B Gw)T!@!@!@dԩS|gʾbt!@!@@oB`ĉMbeذasE B B B(//OKl̝¦/%H3rpO&0GIM%-!-9Jj(mQ oQRG hb `:ԥ꺞ڠv%iɉ : KX }r >o$@Û\Oj?)GI~HR⮑ělj';+fHUU!8e,))x&' L&@89?fȋ,8eԓϟK?GUn3d=ៈj?"}M'#?-;~E8-ON}AHN>eRwvBQNv^;rႷ]6ΝQ"`r 555ǏcD"ܠQ[^X,j;aĵz]͏U 2B8Xo.;pD!$:IBHFd+.3.\"Iۈ,Byť}مK$ !}E<Bt4"s$!o#BHFdBb.$mD!R>шBH%"W\ !g:]DҷYK!$LG# !1HB6"x^q)DhDv!$IBHFd+.=H ?Ey&0L5ujWvyr n~kzɴ|->b_tO3w;zs/fkPa,]ĞQy3;j*0 yw'g9W楏bV`[3_ PH x h%;3nMEQgZV;G5r(tH 7;Nⷉ5? q7X")Jj? Z !}=/yx IZxS9α-V~y.@7"]G~TQ~>e@u39|:}Ɇm>x;t蝻p靫N9g,((sN>rշ=xuwq7HL^et655q),?V~GU$O?---⌯SN9nw]._|ֻE81cƤp(믿~۶m~W^خMK.k1; {0NޝJSfїH\#w2ns&J8!aIO|. '[x P#Y6pC ;(cUO!9@9.T{"D9#F131#VPx5&8=`3DK? |4`(g~M;"5"Fuݳqo,~/[~4?EwF(L>KvDRREp{,q$ %ʰfyͩ@dq踙8쉰 pB Yو,@HƢBINp)\%[CYl1 KnWU^QyQ(#|EX _QP #  ܕ8*Q6y;Y-+lJ$XqJmع*>~=T[_wJ+YiTW{wg=LמQ5"WMǜWf(k0U{˜cF# Wv4 H})__<;ŤT;I?Ox:tФf/r8>IS;[IŕLbȑ#Y?e˖u]|IgnK tW]x]eرV5uzGՆ+'Kք qo+u ?EI'*}w) DW6˜/e(NLVvgw K_D]DDRw\#m1..)'f5mCnw]rɏ ~x1;经!S:Kt3c/R̚> 5?M<Ӆ|Y}☙}Зn=KO~?ry?u3?A*Hvn{đ̒{z 衇g͚N+?O~կ~GZ,Yr饗bMɓ'#ƘLE8H* <ӯSO=uŊ< +;r-a_(q~gp ?Oq7hѢ/g7^_s͋/@0K8/i8|z饗^,`ŦMfΜy/uCm/2T۾};w݀< (7o 6lp5נ N0w}5?᪱G A ._n߁3GNzVTTFŀ qx?<}a@Q@COW\p-ïk<8<^{ __#Fb % Z… 1+ 1 .ϸRA:,С~ D.g4.%ZK2.tFnS'Sݩw#?εjh=yWb6rK){G]u-gf3cמ|xStzL;겧_f>}:,СG_W\ ؋~o|ʻu8DzܥЧ4@E=ElΜ9~D&*@j#++W䖘=VFOwРA ?rYp7_3|zl1"b#Ti/jz1 rA8oĠ8t1e76|g?$@=*a 7P#A/;;; =b™GUy7uH 3P% ]s=9QQOP2!x谱+d7:+0m4r<>(P~|uM7q%(x>Z;~ Tcx`Qt^IY+#QYVyU,MΔeJf22LYVyU,MΔeJf22LYVyU,MΔeJf22LYVyU,MΔeJf22LYVyV̪nT6ݧ9Fi1"JpG緁H0C^(KAwsE'Yt"EYrA+˕-RЃzpD?re @»gI'gWQpųtI}a8$t'`8p`b* *?np0). )bxL r׾5o 7@@?kxi袋@01-'m.a:Q>%m FFMG}7nܗ%QnG/S8^veJ/絒3͛\U^+J4orVyr^+9ӼZyLfj/kJ/絒3͛\U^+J4orVyr^+9ӼZyLfj/kJ/絒* zj˾#-"J?B~211{ 08 c (1d߾}WJxm#M1'XCƊ"#&N皺Sys\IFu$["ޒ,N1M`!4wļ\]^A<&x ǘ(I_}>DH0& W06>bhd]]%J:vLvJAc|&A!n+UIaF>q7f. N+  //AF6DZ(A_]O0 D|&nӅ`P$F(vƌ{ba`C$+L}!?k ?&p/err .SxI!8q)SAX )򊂸 .\zX2J 8@h32D$b"YE'M 劕+h$A1?wu;S<ř {iHC {w_ K.oo|ދ=l,x$t IDATbSoS.1 *Q-iAӂN?&cL?X@ĆJ5&6` y4ڕW^ٯ_?`]&yȒ !/ 6na}'eX0c*4@@?px.xȒ*Qn؀!FN!,$gW'i01$kawߍ zȡl0}΁ђ~# }d#&*Ĭ3LCdKSeY\ƹJ&.L^jWT@!Lsdf#6#PLL^}夤2IS{u+B;x1W`/X2g,K ~W q9XXfjڴiwJ^ zIs{(PzN6xW\>63d촍3! " qɳ`,ԜIxs:Jj%OJX,!Iml$XͪByl$E}xt .!a&䖍#I(K ˅ O D)xN9ė@#}FI@/ dzÄ:MBv$ỏ ]FMTJ_@,O 5\F.6le/e{gWerY,[z^U6٧\l#V^}v_)%Ȳe]e#}e6le/e{gWerY,[z^U6٧\l#V^}v_)%Ȳe]e#}e6le/e{ko&}g0 ,cKYTy%)a V"X^'FZZoAZOf4pB i&j(" Ћ, ώ3+< I`GyA@vbut`wKaɝpxCD^+3hYj}:kקXf,piq38½v4 N.ŚTq]J̒a"4g% x5DTѠ%7KJc#3IФI^8On$*HL p6DEI'lӱIYD p6DEI'[2 /rᏝl|ZK% I} TJO^jgJcAG2Pdqŋ$炸)afobDH2gYo`(hho ?!ptq~. CJRPhʈ*BR{#@SO$ZR*פ~u[ J]!0!Y_@!-IKJy lle ׃7Jx-Yj:tRk9!1D" 2hDҬO}'S{j23Sԥw>5dji}2O]zS3Oaj'Sԥw>K([\x\(c.$͂s8I[;rc\"؂P41iGS[(B{Tݎ&T!@FqgX˸\V6܊KُPB#ۤd^)˲Or^^ce^)˲Y/GIG/4Se{YN=弲&SSe?^l^i^+{٧,>zye{ُMz٧,~d\&'ӼVOYe}:+LOYz>M =S9mp -V|ϙnLv؟S1Z0#G%0$9-r8Vr iW.+ٞdB8~?]r%͠NC% .NCQCp߿Uh=R?g|z/au;_P'=`ed ٫['زY~5U>Į آ}hN(+VolUX0|%*{ pa^Iޚ[Qw >NJkPdL!@RXײgONgwZ!KB B B8pzZ5P@ ^5ovcpSC+a}c^p" `Re8Q-dfٸ͹@-i9uyn_'3+-Ōo'HKLΪ<!@!@E`Æ  ÆռšJU9hH-;O+=gW&L+$- Ts P\AдÇH˿l=kR!@!@@w#XGsi N Aw;nD޻|}+oߴ{\ϟ/RH_RlE3%-x=팢}pN_777SS6?z12eʔ'M%%!@!@!@M*G#%Q#IQF-"0?@1, i)B0?@kKL1yc)\asŠFm[񩊮^-:JWq-ow(ĽHKqqqYYYyyyB B B#ny]]]$¬w`ucϕRw[j?q"Ƃf=vK)* 6c,| '2M¸QXb^Pyp1Ey2(2oe:Uݥ(^y]KѤFf̧H N.HC!@!@Gt9K^Ԅ"8=T<[lbEb qX̮v%jc\Pv*Nu+c>GDZ<%!@!@!@"]Wrk*Þ-Q܁ᴫ'=kɖhj6;bvB{a֌0L6,!fZz'Ft,a7"81HiI3Y!@!@@OA3~.*8cԗ?GesG|^î1({n9%BD~Obԅ}XM 4猅s1 3'?Gzİk!cTkzI!@!@!+?rp֕\O5tdt*^^S8@hi`yD19yӜ.b!myb^Y29銡+if#Q- 5U%l.(iV%B B z7Gʊ=7uX?5JgFK8ciŦǴ^%vGVX6$+c3r2 uޑ銪(M j=e4&b fFZB B B#f<); /60 =Cccب0 5uaSi̴#cf.Lwx0Ш00* \% 3vl#-Gԣ̀$B B B8zt[:0UՌ[|`01EZhӓub\z&[bg惥%Xb";X٩(QCVm:S1HKɒ B B -I :MuC?[OL-[  ČKb~¥`EaL])l#i%l "bbU8(H B B z7 #6ф|b=hle-\Dbm4nJE'ǩݑ`Y!b7B:8fJAsAE@A!@!@!kO` B B ރ@8YaiP p#%æT|)7<]r]hD1i2 P$1포WR#bWlN *,('4EH B B ^f8U;.&`ώ8 KUoa?[  NJFϘRڰ54` 8G$BDZ$H$B B z3XwuT'9-懁!_Z}rЅPJcc`xiQ:߻pbM?͜o9 .,eWέ[ׯ^{5G#~K;A`U5eQM?MS*nƼ"-mXD!@!@j*W1Y"<0J#VxPa۾*((ȆףBe CK u WCt%߽s5/VCJBTzw@8mmiVP5݈-*^"S"-!@!@=P0#+ [y#.>PV?;yUXiW:{޽6jsN9u漅FʱCU՟}ܴ{[=b`^Y榺} 8t@u{uCi-0=%#he[-KYB B @+3UFՃ;ƄŮ+۪dư|ylW2jصu揗r},,>8'/+3}Oc]Y^w(: 8L !W<,nvɄ9ECEF!@!@!rfhJ+WNG 57n[W|۾C5 M -sJGL(ͯmZz-mqcac`ҨqÆ775bǦp۳=> 4iF+!@!@hG͍V-e(`+ٶ|G MwY cǕ F'kGzmG_lQ4{+KFރBF$0f ,KņtDU3옅A$]Br0tLI쉓bԠCl^1`߮}cǍh?l 7m+0o3O-ټv=РZ8RM}BwxI6-Xg?nT!?%[bSInsbCqbȪ́%˩*mRJ,!@!@!I'Z6TUe:q "i*3(0םW6l쁅;bÇťƕ(?fjU-9>ONnaer6u6c|73d7n^}_e)ҳ܋>dX#OQ &`ca;H hj(FJi9"?]!@!@@G w`2#0㔱.{KsCVn(7Thi?0OK$fGe{]4EWW4߸Q#gLwO8Tċpʤ Y4]q:SU6la|`.8(H B B z`l u[UA ~~i3!CVzϦ#-cL5hҽ\Mk #^%fq SSף.3WGQ}"3>e&**Q;[`4aAE@A!@!@!лnlQ^[4lDl)Nx#J>T<9l;WQ]JIoiiP#ۥJsiJ9iar"='[ۿ9RkKa!XhAghTl DZZOB B B# ) AѨ|+n(ѐԤ8A?_͚-[S-[SphPsť(كA (.5LKёðXsZWaP0']i B B8$C_Eha`u_.nTnQ7a Yª6V &"-CBTCs*Ed&a`JEC=wq}Νz{{h\ѣGsxc5<… x ђN&;;yX%&hÆ B!`,z+14ǃ V^M] d̛7i7/t}OF5+f_ K !"{*wl$`kQT8wԐ1<#P( #a H@i ?@_Tp--~V%H.AbQ WdDW82 I)%W^y%%.Bկm5%E̘1O:;^aj>?O;q1N -x'Jx{{1s.MĒbG: q䠦ʊ79a:K>\//׿La Źm-v̇*^kj3FeE%F 8k`)vK&`xf]bV$賫 0K.u(d.2 >7I|w}v-aϟϽb?o|ϸV!M0|MVZϭ~v؁1 Cw'skL51,zekٳi'HK3w?,\/ M"*9Y^dt=` Ɯͣ'f8y, Kܱ7bDn_kײw\`o:+ܤ Q(Z >1'9!x/$wẺ}  ^R+ K ,|И-Hi="A݃n=WB`^Z R4@{iI<#^Kׄ\r$lm͇A-Ђߞ}$=@qmfzɋORpj .q1,0d~Сo*IM.b: 2CU̱jQÁqa&'!@!@=L$۾}ܹs;S5,!/3zx-ukGy{]sF58*ʳsѐV)[v8tP,oU`=2LqbCqjsթѶwm.fJ 0OQq@& б,:FFJOd{'1)# ƫcm̹(W7攀mo<#Q|}+oߴ{\DPa+UjZldYEEEee%W.3h?F-X AZ@cTCqJ;JxlM!@!@!Е7yWzgqFGb^xaIKQʎuˣК[MU.[^X1"H9*!1_(áH+!-Uņ .cA^/b+v6Q0_źÂ-b˱h"SX"}!@!@݌E~mlE YfYxm5[n}'?#LSgCxúXÀ~JO<ᅬqy̰MD=PH[3ҥeW7V\Y -u!Ƃ3U{]J/T`a98p2̝*+L)}ղOoqbN?\.VF `SniAbai*B B ,X>SSN]nP U=#ra +n&iZ`<;F}T ^IJ@.paj* ӵ-ZG n+֖wF䝞V.ՇnG?Յ,K11de9&_j'LЄ:`0^qS\0S`@PqlF`xHK*wFtUVu"q@' б,:F! wx<%8L=z ZrI'uKDT@x^zlt2sL.@Z/u~EAQ3lW`M{QCCňV ]=qYKF X=wFV؇A`QV`ꅳˆgOyi0[z2vcciA\EZ00 .1EDZ=BX#ի 5aa6! ~Y YO8wĠ!溝硌aQ [e<osXX0\{e5@M}}}~~~baXp`[K,(MosvDMMұ@[9?|e@%ubXkMIlVmi^\9ƶ/߹U& B z/"0/XA?|[ˣ>0[c̈#cB?;/5w\O5td *^^S8@h ++͛JLN/L=a$mybjVmJÇڹ3e`ICgT̉a(0'HGHpC'N2X&!'L*%bje~|ͳCcښ> B BY 6lӦMu.xE7 2vcHf…=&_r%` 3vf3ūAK^xᅉRf<w^ּv Mr]%d GGgg]FXZ8b&=SQ墙e3"z2Å).|wJ3&`l|EuCÀ6*AE&F%ca!F%2gDM -e8a``2Dfx:#a9*lI B B' pb 6Qyy.~NNw,ue`'N<묳AP駟~Qؿ/"V|W1~ %ulhu"ςAnA  bbZ(H1c+fTᜆi1?L3´ek> \2x#FpvƆVPtMǴ5QMD7*!DZ$0v( hiԄͦ7om`D^t kWa؝n_aal#lXUDX&O!@@uuux?O1 C` w2ydv P"• 6Xj #??KKK3up/"T׌B *F]Bk+)&q䦊kvbL*_}=ueË_̘[)OL%(ͮ騯_ƃ 8(lnF _ilhyEj7 9 jW7n8u`%IX3996|QA{uW_ꐒsS偷xZ4*Հ B 4t>u];vse"'""l= }@H 6Ԛ,d`.wpv-LX 1sRC';:A?X͗@Hvv &VR$AI1ݜւ 8 #VшYaLE@qMA4+Vzkjv*b7 dB&i]*HK`=ߟ 55;< > `,fӥl}\j8RUa= a9t% 32!~%pn[ۢ5!@!@;P(Gfٚ\Jp*|/4i%#`GL>513>c7k:9GvEiҼ;TxpQ>e:0Eg hFi hS1l űl7,wf1it!W =P]MMOnRQF|1DTy 2⡚/U .cX˲8,w!ρAjB B zxZ8E UA`"uVP-u13c0eu##7';q1ppT 1?aL*6,gf1 4&x RZ"-HH8vH͇ss<0 b>տSsKna4777,[ "D!@!@hsè,S=Ђ dN@`j>ۡVVW~ nv`d~fo a&p#?Dޫd q`\;wTd`(+.bĖc(ҒGŪtƌO{êÇ ]_Td8 ;:3ܹMX-E{\f I la7K6!}M4vC'a!lv)aC ƀqeK\Ԭru̝;XՕ˒71WgΜ9s|D#9UU.a T+`xoLK^}Q 0CYN(:ܷ\D! B"),ݟOg7|vӽ#:OԾ&€qku]S~킳NMz9<=_TPEgeI ',Ԃ."nuт-2Ǫ .ٯL}j펡3qKouuuddWLrJ|֬Y\r )͛裏nٲP{NB5e ]E,B@! #=10GJHAuqȘ~|.k*-hD9jXPM;vS\͒?ݡ& zgGl׶mlZNGKW!sbzc VSWǶs,9Fn ïI$M2e hv\A ! B`8i,`kL,OP3Ń&^4 pזsxoؘ/-usfiafbbI QkOVu7lߐw[]//6uqN$Lm-LC<  E3|9Y74Ӊ>ZZzjx0f=N<:Aoz㪫:쳽+VUU=-A )lA۸Ϙ15klذĴG B@!0 ފdwO=IZʷl :Dkssw{ {7=KY|%M65/@7M{YY074tɱHWgk} +ǔٱ D8`a9h\Őr 8UK D]*oޱcSwq9Ðz.OX꾔Cmmm}-[h"b&0Aai;.&Mz!/& ! B@4J Z1 -q&`?jت7-,KYV½- |SWTeh^MmXbn!!ցҡ IDAT3j+ JJpGk{ʌuvErB,j[X0}f4s½k99_bq RaXF*Ѳ~zBqs $u]/>\тٷo_uuu?#S<ÖP'BMf̛7bb|Y[JB@! !>F3;1z~ђpv71= - @nohjnlTOS]}l!!ҖΛ6k䮎:DXs@>0nhw|[$2y7(t[p&"ioڂlS+.)v@\7 [)۴l%;2&ӏ>zD 2J+\@Ԕ~~ H|+7`/[on듟$jkkoVdҥYi ?>K />"g8:w\.`2c뷎)AwIP&}]1o3j'oɔ˳J'JB@! `0ki\vwc4սy{" d@*$p6L dW]TYTh =4nܢim>|ƹFd_U]yb_ƤbIiKۚ[+++re0Nb:vXlT/-_]`9-X]"Z}]"q¹*{4-X~a,O=ջf{V[U__ Abք].\)! B@# *eecZ[Ɩ?qʃ|!'L|EE~m+Q{ n|w<da%埴؈F#㩜BnvI;Т^hڒC S.N:=5脉U}D70IN$-$U˱$Fe Ï??k=Aߓ&_f~IT8O>p:SN9HRB@! dž6mZ_RZ%[>߷M-̸a-'mBM-_ajFPKtjqgaHBA-׺bNM[Jk8w@/˧ %5gt]-{gϞ}iXr0aEIb=0mQȘ$ls ool"*vW^ᶉ'pM6}%̜9%M/]g;bWzO2ϖoH$ ! B@jjf߷/''*Kgbzl?o٫uwiy1!(Cš(:vR2)AY[OWJCbE#Z[%7stX68RffU,ʎ{i9.{Cedroak֬Q]tH,oGGpcd7V/No=FBbԲ'yyynd$sC ѝqHA! B`.sZ&yyjMknۻeݑc 6 îo|ra5h2mgmhe&ʜ70-٢Kh%9КT ;UnE[ԐYW4u  h8tQ%Z R,}AAA'pSf=h9L/! B@\U 's+Nnh\DYTVV+x#B;:7=L9fpԦydVW$L:\YJj=n!Z1X߳y=UwD@#z28! B@cMjBV;jwb۶mԔ"Hm۲}v';Ο7#Qwh>p~#`~wTtK#t = x @B@! X6}OcMM>kw<97DQR))) h7|…'X֕{r4'ht?1$w"1¸[h=O Ad>3I=6驐B@! 18-lin޴aIgϞ5j۶mhb"]FWGU}4|@G FM[Ǝ-;o:]t:x4 0 0GpmҔKn寺۟62(h|v*s)ɨZZ|Ao5Y>v,cΆu-p*W! Bx!0i-dhucXlZKeUՂ QTWW=Sekmm!p,kknt{̚ʊ09=[ٷ};َ]ŗG.JzE[%E`͓O2 鱖UQڹs_;k-|4:kqKA! B`TJo{MVֶʪ9s"Z::I:x,Ƀ͇(I C7X1%ZYU9~I~?:@ƮwHeV!ŧ>at4 Nh~oC-,Fft*k'co ;t  WlC۱7`Cz;iAvwwz ! B@ZT$1l'W~~~N8!.چVY*Ŵbf x%1!Wܮ,fN9 ? cZ z)VJi0 _V#W*c -S1c x!{B@!  N6{޿wGG;K9˻2)[GBK ~A #Wf+emS2S։H^VDK/Y2mڸc^+[bI;aTm:#)^[Zqqׄ'eTB@! 8fKqc+:P o,=~ŹEBeo%-'w1UX4-,gPk9aĽ%=|4'Nf[@@j:S$B@!p8=cB56-{۸ƝzP"©',zI:9+6 L^^QaJ 0b ccWYq[{6%B@! H uRꄬGlتIEG: vÒZ2)y͋hHGh$9 o >l/9n·nx;hW@n_! PLOEpdԫS22T[v-UcQ)|qvP/Ex2># TQQgϞD"qd*Fr3B@! 8n Ij8zuzge,k|+'%币,iډeh˱$$?㡎x<~w#Hxlقe޼ynX6mիo&L.[aVXQPP0j ȍ! B@?oI +N0Rٚa>1I-CbTeRʢEP~zNNN_un9IэA\ID˨xrB@! 8B&SR[3* 1P9<=+|ĉӧOGpWUب R.̨Ƈsi+B@!0zx1Y Rͧ_kCS6t?+`@C牥(۷oxDAtuut{5!e! B@/ @0ZN/[Șm(gmVwꤿrz] hI(->D 2ư',*V9s&ǰs5{5ZlЭrz ! B`D- 2f} ʐ%\*z>kn^Uz3.ͮmŧ9$~#`~G8bMDb4_|y$b,U-'4=! B`7,C%u@ҝX|,f8%D(FCB h! B@ X$p-m@nqt=pr`hл(FԊL-wۗB@! 8Viẙƞ:Ss*T?V?8md;&ciAX.JzEKBm*! B@! _3-7+ Or5fOL%[=Te>'^dDm>?A0͂o.r7OL['! B@! 7 3Vh]ubgkϪ0SOFݑ$Tbt@X=J) o=kiZNL}vjksk2 !]z)&'/&B@!0U ++ON=hҶB`U+҃kv?U8{\7 M60N"1ײ4S Q6,x뭏hc5yjCuA;JiͿھX***j)! B@\y3nU5k_8v6/>( 7 Y+mh0!oRff Lg,SKZZйXZ*+γ!=6Y?H$(:3SO *j{K+B@!0j][[Z ePWll/Xqso3᱿]pP` 9j*}f滽SiǗMDKqq@c#X$$1WK9` 9 ;e7>U~B@! #Jݝ;UL]LaWݻޅI|~OgyDEF}V6YOt["Rl-kfqͳd2)yˋhq ODgkH$9ҒBir%KqZ*-Tk:%Qܲɓ)5,bcˮJ7H$ bx~nnii)B$MӉAHQ2+fM;ž#D Mv"iIb >coIxė.ƣѰȴΎ_HuןxqaagS^#P&-ySv9n; /w@-B@! 8zɒ6K'W}Ϻ\8۷YR^*eنOȟycq,3}R^^gϞq5bdill;vl$E (..DHTVWR=5UYfp GUmݾG%1h:R`ô}D#cLuVo}{cL ]m;wK/JFz:cF"4 4&N|{޹N#gSNw;B@! H&P..իޮ{eĥv?Cal,O`|=`Ţ+J+!1q„Drܸ_~yicaA+ 1I ZЀAYwI'ptQ[[wFpIc/h"?Wwv=E/c ,C];7y:~x -wSliؽʴ^.,zN<`Ss"w#YG@p`KK o+N:$便,B@!0+geOly`iS.YcKUN?M~WMeec#XA~A}]}I13愶mۆnvwmctuu1,(,D0ܵkט1<rbb+\/%G9JtVZ -PhF d"]Ij+,Df7cۑ{޶nӅ˪.< 2ƨ Ry+4r'?9|$6ް9sq[lٸqF B@!  &]sM_vw,^:F;qg԰٫W~`w7W _{5Gott].nڸX{=ǷoJ&z!Y=L]oΎ;il9>!3.':vZ-">솯"YG֮z[Մi:ZY]Tc-Mej>LJLgL2+B@!0ԌΝ׵h ,0tv`v_%k-ŗ;0d4 Q.~ 94- eS,kZ4ҙS5.KIT,}c86,ՅN'?#*HV! B`;uYd IDAT)S(ozg '>#5t饗Nx5ׯKoyrXb?G~]?+-8qwݳ:.XsOϛ{Y8ul )h^?lr-;Nb~G`q7-./ >&t8+1tFw$H/Yf]r%t rGźhLlj.e ! B@ Pt%K{  0f̘Sb3wμbݱK6|lĪոEciӦ+:ejw۴B2]z3|~_ŸX5x옱DOwη֬យa#rϲ0 P~|ZXzn"ZzH( 1p%"Q$/c=F"Yj/.e%ZP#֭CUTTO$Kݟ'x!M%䐈>vS#{|C6ւFpѐQB%>RA˗ hjjڴi _}Uߺc+ vOgϜ/_}ՔbK5qF'V奿̝3_/((M3_yLYf}X酑4+Z2鎶`;SNL v҂tA]PFzζ,f9KG>Bc^^~-1%ZP8(b'>A  ;O>$=?eЌms ! B`48iy,0Ѵ{sè ,1\l+={̙3y~죯 _V>>gؙgerj,aOf7Νϝr) X pР hZ|/N4  v+ZO XHtQ荫Fc y6тQC [~~>m6c v׬YamӒ=*! B@cI`r5jO }ys-4 \O(3Fts /i˦qǭ^%gI&z- Gk&v駝ػge[s9!+:4䌧zng]4mlh\`z҉';v YJ&a"`Db/SQӓ=̑Ay 0*{OӔ5kl\;͂"_j6f޼y,kʏV6-R! B` (; +۟ǫ'U;nL٘3N;Oo}[T2qے%>k~Z~B|+qa1BW^IÌyr3t1%LKn. R 1Nbl}QC>o`̋߬R! B` L_tZ|fb\ZR =rrs?Rbݱ7./L̙KK}1!| "YG?qxP c"P50s; ?q8!- ,hǾšɔ槔5{!g*{׾5BJxԣUnF%(s{&@.,V27O=Tii)uuSY[UpW:;\pn% |__XÌ'匞'ǏzE \oB3*1y9R! B`6u5?:ctd7hft)a5[77|G H6ķVo^O:qƍ[/袋o^V^a"cs9|ߺ}“B Sn5ܻ3sjUP,6*ŗ/ήS= Ҟۼ{a,,_9ߑ.clݺU ǻ+q ɲ>v$ y:+kK>VWa;y(",hW\q)-f.} ~MNEǗ(Zsl1fP*B@! F"Vf4X4΂|&.;v645o"Jf1Ue ];w$K6k$1:swnں7m'~a=wcipu׵% noF$M'uXJm0mQȘ$l#T OC`ָܷ0|_vkTlkaJ:$LeƉbH| t8B@! <c&7tʄ5{߸'.z4$~L_.\HmrCDSw g7x2]~r*Νn{tTY3zY$e5ba,ۏ_;񹍷~(Jʣ:r- 3َG"okڅ"[oU9emQCl)D =Y11`bCAzOSvB@! P@onss¹n޲!a&pºڝ{gԍisEdh.iB?[[}6'6w~_zaEw7?wG~b,, !n V:kCS6t 1ezf&t ;tp4 -Q/[7L4Y[28\bs׿fa|0yd=&Y;HC{=z{XQ]XzB@! qT5 }5gΫ )*.*]暼ܼ[^RRkN8ĝuX> 8I&&9'8ŧw.oÔSPolٲ\zw͝a&DxCr RCP # nuт1l-PR5?0nJo{ԓ4ꫯV(i 'v0zUCe֖NoC4һv2c>lz) vQD/p<4!=Q! B`pDr߾1{'6r2 3TJ0p^>Xi(bܛ3?OWqzH91=&jIV$tOي:ǗAJ h6c 6BE nqs_\| LՐM?l}[f{bSB /D҅B@! FՓ?㈄}?7fRGT=ɐ# s i i{Si=K7s}HM%3_38yYdQAQQqaiqAxAn+G-I'1dD":[`cs8x^.s! B@| 驧.f=P8f/pI*nQBd8XF"KGDQM1G]L#좄5Xbإ'Z8m+ϒC9ta_q !?5ZdhAI6E Y}Hj gIYܷZf &! B@ #gcoݱ}wÞh;"Ȟmg5p0,i"ř_lO/ 4aΉq1Y6My_'¡NvlDc<ϱ?q(ZI!gƴ#ݍg6qk B@!!Urv!˪c$2"a')2DsF)`qRӞ6h=LQUU@^W]_J(׉fa^K^Bv'fx)v_?%Vw,;ɳFS`QUȯB@! B`򬪀U&YE'6%*((&4SPG%~ 5RvE"GU !YtscA^q|_[]k|R`0N̬ ;kVѵs'zwZRȨk;k07! B@cChM˕~pL%iq~Jlܫm(ݣ:dJi~S p0YL66T fEMiߧ1O;$p@?ozrw{64׋?nS^/qw B@!0 xJl-+UIcUe6E2PPj֨k.:$313)\IZNl$:Kf>zKꇗioqtbI;a򔝧MH75'd QX=GRE_! B@\U |o1[CKUSٹYGH!T: řd2LuXZAUX4^pP(C IB7qTly4"C p_8,94nO"B@!A%; J勳z@xhHFLШ|v]oE$p!! B@!0fI9n`LVHP|q- ZGwTJQQёuIrP(ZZTmWYr'pE#|C5;xOaz~B@M%cV4ackiG$pgKKQR__ӂسgO"2nZnH! [pS`U>==׭:$YH2fUX5 m?~aήg6 *wߍ =l˖-Y͛,OٳL6m7t. aVX/i%B@! ^I-8k\1>c7|:+ Z~-`h~ʆ'on@ 4;{XZzYR,C,ZO?='''/O1Gʕ+D/ B@ZEc|2ѿ_ݣt-LWbIv"iIb &[@| @Xr9YlӱE"͉NM;-Ys(?`mXb۾@(h$}J FjтuM7i ! B@P,JjMA޾w.jjMkq?6v 4PچYRB@! !$d 3'D 2ưg*ett4 IDAT_vn0N=uގNRImgҋ/ ʫvMcsrrp#/~qN8!9WB@! %WpQ\/>.ɯ*YǰGgġhcMyagKAc8 BMOEoqCiq18>b>C|M\I(0&E1Dggm<Y֧mUfg>Nԁ/^}0pm,E%P2~J6GI:BB@! F2H[[kutꎮ]xuujl/Xqso3_Xr^T>-ug P\+*z9ñdPNM39b!i.a a|A dKђpUU/Zgo|Cnj#Hbq'_ӢΜIvUnT+`0P4pmYԫ IYVf ! B@jo<9c9뒩?;]t*^Li+=LssٳgӆI#}7?'{91nnA]u ze=ԧ`bZ8crvQ2&E1\~9⁡rss'bkw эXz۶m[cc#.]9pY.my tʣ>eB9 e7gsk.kʯB@! vvV$:'34Y6!@sd#HKˆ;nWX)F6(0TX#{EKF]*t4HwY #%Y"Z2 >{ 4 L8+K_NN.MK/=c0n8R$sYV^jՒ%K(+тYnr?OO<ĥ^zRI'd2#cB@HZ pvEGv\9ܔ!7itܺg/A#'6JhwK>'w8ޖ|N d{UVΣ;¬'XN9Q,0v:i$ORJ#L߿=> 1?O?o[dr,agu'> ^M|Iz i)Sh@36uB@! ڱ17V7u9ݾM̒3e[)' Bo˗΂%~ h!d߾}dž#1lYݘJJJJ^hZZیyu]bSTY[JB@! "P3mZ7":Y/}ִѪᷫnI]݄y||9AAج1ㄵ``A؎cXRK4?%Ie&]vx=ޠr73f믿{ޫ1eG߮ܢ",=aO( yXZ2ڨ]|h4^eeeͲ+B@! ǘfxܰ~m6\k]1rFݗks1y2A߻@ffL)[@u|NU(^dt Fu V:`7C"Z~Ι3ܻd%Պ+N9.F=9v#~a_G~ӟk\u}CַE%Pd Dǯ7>ϢUh|E?N@WfqwXc./ށpѻロgƀ!7pz;$|뭷W\tI0t뷎)K`;ROWD?r_S;UV q ! B@  =2;q5Y3N-#ܹsf L4,||NX/2fJt|NL>շoN,) ޒHZf|,;=hHD˞={Pȏ}k/f*;7R8S( Ը1Y|onnwSOyٶ-AUWo|_-܂fwڴi)… o~c#g/l2vM74w/^6oߐ җtww}`OF3zVH?^ ,\WW`_xXJvB@! F>w7PW^$,LsB`p{^x̙3׮]sZ|l I +N갔ۚa>1I-$#A`غu 9yJ bٮ[`٫h`Vꬬ-98$Gj+Q=eNbh\}ƍnTCVӻmIR gu)alq"M6`"8*B@! #`Is:U,ŌY:/5} Sq۷o3aҢ.= 2C8ښV, \2-]558ucb@qU/o¦MhPr&RL.~:Y[R G0IW˜ AF?jsSߐz[ԏG!B@!  2}Y}vD$|NL1 & f~-`h~ʆ5#fD{٨:5nL֨V^tXi&_ˌkwq2a^ &A8*1mߐcJA! B@0O`PkoDPʯQ,l&L^Wo&h jGETC~',ԢiEILZ-0OY{#VՁUq!{rp3TXp\KnX֖};T5 b 鯁'xxUẆ=`pҡBF2qW/e :$vލ;ܡȞB@! )T>'Ɣ<^Z|M~3gf} œ #U< XqW3FǶ|Y_0w R:YMqEqD hFS'#a7Me2]>9b]~_#3<3vW_}5YWrF?|AZ2'A!w饗B|g>󙌮.5Kut^B@! Up\Lz!%甗<<#Axg bhOuv΄# {+?>qrz@=I Rx(+[Wem:D#n!-*Z.(psŌfnf3ЗCmjhɥpH(_LB@! T> 97ߟ6ęZŝ{^u Ip ` s johfN*B ԢwB֖ьa03:aaz$7# $6Y_W㟈#'(g ! BA@*0k"dS)Lv{v҂tA] haǬ)ܫGL+^V^"j ӷU38ooUcQ)|qvQ/}ki/^Ug5%&4Gк3M핥x[,-4B@! 8\D޳%I aųsJ&9t)'70$YҴILo6% !{UzcP(}(iiN:O3Na@ ʭܞB@! bɤb)-^46ٗ{'L`nn0m1%܁V4a)M5ô}D#c[<_E >B˃QRd^'(7r~~>t΢R?WCB@! B`Iݟ'zf OĪ#gLȒWuœV@wܴk>u79{ꪓBM+FXI\ۏrv{#4-|( RTTtdnj \K ?l/9n,! nho;_ Ʈh|G@MܚƏ"SZHls␺)\e0nnO';l~Z0($PEEŞ={XqrB@! Xs"}9 |u 蓴ˤ ->D 2ưg-a<YFtlقe޼yݚ6mիo&L.(`0+V(((pHA! B` 9M =tl+)F0Ϗq-⻛h(b1ʢE֝~999f;nr2+W655h _A! 5"/,_0'qgQ*uӜ:>SDOXsJ/A\Y>&qWP}nnĉӧOGp7^łVa6JJJ!3rB@! `P;3vOZhrMr7W{,Wؼo>y<уY5a_Ah1574ӣҒݷos7}{dIB@!ppu൙@gQhsQ=ed;&҂tA]hqQB89s&0eH1˖-CFL ! B@|p&y挘ϩ'Gϗ\C~UYh"uI; |BT#cA ?B/B@! <D09ܰa-`'ӪU.R}g?eX=$b N8)VJx%&FxB@! p t9]p|NvkD +aVRi&C 6+X)ÆMk ! B@Fժ/00ss `ř33#͌nɺ-Y Ä;IG6 Y6^H/ $y݄dnnl!I!@!`cmlmɖ,c=eڣ,˒%1꧟`ꯧ*,/cղ(XF턂Z+EɺkKH $@$@$@$@$0}%|7 ?mj )/Sv) W̛qSz\; B]ږ<2K0IHHHHƋ ˑpš;j$[CؤLkA0'RNK$@$@$@$@$062,hWׇч$$x)aAQr@@P)΄|1/͂Hk1]6@?IHHHHJXF*di`XLՌk*reLC%Dq@&HHHHH` Ё|+b7Wp>>IGRE`Er`鰸0$Y3‡Qo3Ғ$@$@$@$@$0=NHywl/&< P@ugHk 慙)kv     F@Y $IIJk]ZԦn(*’ <\`~"!bJىa|ZQdIbTρ~~~ꉙX #ɲvajD+)) G5-?/nXQ 悂`8 % IKĢ%% CQI?mmmiiiP76|UIHHH`F14JL1_:i02ΖeQ2 78\-{$ԅdSxӅfN *fe^BXEbR4Ubiiw!Q5g‡ teePpZL-),\sgρØ}!Z IDAT5˃)YYh*.WWWFhese~<}`?HHHHR/0HusxHUuЖ$KD]-pM٦tW؅c -9aHpOtbfuIHu(Z›daFBp̙0ū;ݓ`X:+3=?  # ц9a]p;S[[ ;';+7//@ddfB`ّ#Gr1esW)|db-%IHHHd0lK+'1 1ch";HfXErr )RCyWzMLƦ۷Cl W^Alm=MM۶nx7 k[q߷. DxmX4zСwѴػヒΝ;> {O"A$@$@$@H)q:rU`LrKYV!q%2Cnh0BbMkG¡BW!|T-;͜oTd:I/=;=p7ë2J^*nC z\ǂ {tX`7qxZ=ܕ m>yM䱟'pv wmim$}Fz⋼.6:u,Ed4Y &p`Lbٷg_k>|?#oW_{gv9] lcQ){Ԩ3Ϭjկ_[zM_ߏ~Y/7S!瞞 k֮;G)    iHኍ /ӹpE ~}"j/HxA)I/%k)6^d#‡WЇ>teUUU-Y$//oو,\pőPK/Ŝ奕*\r~aYCfhLM.ys9gqaqqQ1|K˳s _VR媫پv\oaZ ȗ&  X^9%9q5Õyky7oww+ػq)ʵfZ ,,6SRK J)W S>ooo߿?r=7Y5H/).沲]0uW7oٌmڰ ߇`7l\p[oٲeKff͛trլ۷l<رc=J IHH&(]j]o6,.˩z}6S qȆ}˿8mZ-A{sZ*P,T3!_K'Z2p Nsr x"'dkz=X'\uުg}dO<'6mB _z.x٧KKګwy*}O?srsV>G/^Ŵm۶-Zp?lF VOSIHHHO`rS$,Î`iv-"K7;/ߺ}ӊ kzqO( {vQ>{Pa-fjFL59f>-  2kaf\rJ 3gZ|2^f._F8ܹsmQSvs9  a'ˍelWV^ScK- P;00ß9k,< g<3>H$@$@$@$0 :4w@MW >J͍ ZίŽO߼b:³0HE`Er`鰸0$Y3‡QoS b~`z'^y%~#Ө Bg?{ױ^~0… SO=W7=vOd.7i{wǥ[vwvc9. ?p֭}Y6߃wyݪ*;\wx֖V1쒋.ys˛HYoniFX hy7o^tY$9|JIv* JʛїHHHH` I }5 .j 5Kf=W {7_Wb'oEp"ɞrpc=nOYD: }dH vEnya-4ZK_1$eݺu%K̶h6D˿C=f |OM*GVά,,(D#Qiiٙ|?ݿwչz{1$c+ Ox_ -[@&++ ʛnoPYcTv^xy|ukƒHHHH`za-ryfһdD1jTRr:pH.YRPC]Ȳ s_`Nˀ?A?׬Y9ZQ{6h0uj߾}{Ao7Ϛ)\6N R!ePvbq80 %h--pV\ `6YPPP]\rs!gQaKvw=<(T3 %18D 3+Z/~~x=b,c͝G.7O[Ꞩkݱ7\>ĺ#[-1!lJaeaq т~;0 `ξ;::I#V\\,!D2"ȘS:[6B DvHEA'7'yto /F*(,ӟ@8Av_rsB}A2} DG/UX\\qyz)"GAe_S9IHHH$ 0 B؂өȎ@$ţ۩oolook_P2m։ˑ#eK6k![_WK8_؈5$ᴴ؞BoxNSkV=V'& C    ߰Xֺ^Q/g]yyg]P~/jje?ajcz|ūEJN܂2 ;ağ|+?< KPO܀F=p}YgwqV5 +f3̂lNSp67/<~02@boȿ?~ӟb0$<]Az Y'A<XN;wb"'Poچ+rM͚XjfTd9ِ"؃hh$p-rs6yJfVC}?]Kz橦MHȹ{X4f~oA$@$@$@$0`;/?l|9]={|2'CyE;08|7o&$/gVĐ׳|KAƯc7\5Ȟ- PQ?P=F! 8@X9-H(yhPH% D=DPnn {>na .C`y퐕vN_S/HauT[$XLE+w|eŊ쾪h+%K]ٹX-FioEڵ332Nt&   8Ę3i Yr9wEz/baع 诳XwB?1 dbS6m􍻿=#/wwcښ!x0<2E#GGO>:5w4 ~b$fd0-gd{IR,֧]aC9k@VF:́66ƴ؆ V i*=v W\R4Qga8 E;;:y~+V]wp0-^_TB=(scxV!   Pbg=ºĨ0+-ϾݲX>(`]\,=1u_K̾GZ `o?)^w@媏\ζw0 B`X7h8ڀKLꪫyPE[pHy ;Hq3Ņa0F"EdRSD(\{ȁ]\kU/\ͻzvVm}^_Z|99۶m?k#OOOaX5LDM\59#;|k/ӻᄋxczیŚ"} #RX]DB ZfA*i탿0a:HԂ8`?A@\ybe0OX[n'&A`"X oa g̳ͅc`mAc.!eu*cc9y7Y2&qa%d=7ׄ3?B咑oVLb*[;5 plrwf qċ̊hq Ѻ4i-6, #`썶gxF RVVoK/Qd+Xft|NX.,aFm4M5I%9<(ZYL |FVF:(IR7 ?̻8Jf.DA&."q:3AZ aYYYٙqL+ԈED$酬V-Qߺ5uq$EDݤ 1n"hsԋ=%ոd;EKI(/}SKs+bim C` : p@`*"x_@uP0[ c*_=$,*"u2lNs8Ҋfϼk&O$@$@$@$~'Z0U΄|1/͂Hk~E-氘 |6],' m"LuMOZD#h0[ y ),UafLR<>$@$@$@$@O`r0:\ ;^@wӅ|o8qοzѥ-{=7ajF Wmn3Kay '>?\aӬO^@Y|FT>C IVA 7/2S>B=çKqCk~(,V-QJ3 L-ޭ~n3?n Yǣ߼غ)\4g4I_g ?>eo;-9 .w=.!QXιk?p+Jno= mY9kcv>%hQrhLQp:φH.YV.١ m%]H )[ Vŭ$kE2 $@$@$@$@S󮃐py_y >Í >U^Y\i%;/ 1@W < _vw-.RpMKyy5+ƥ?GҼY(>F-X: :t2F6$-0)()ݦ˲W$@$@g&:F0qf?n@ ʾba@]@xWw5B@i tb /myn#2JG#xܢKn?wpSF>;[·pK."cBT `` ræ_, $@$@$@$@$@Ӎ 2Oy|P&(9SŞ!l~$i݆y_KA ݽ!#|e4ߟu Ew$=l!,+(h1珍071؎CqJ.T2X#- HHHHH``^e]8/w_F<& o_uXwo.ύ$ z LW |j>O3L_1 P`M%Ȓf~h $@$@$@$@$0Xb^qdgqגCVEa9ww6G~,V;FN *fe^BXE    fJ8Q.w.$Ori h*T3sÐ[  $@$@$@$@$~ v~ƿ>cynє)hͦ{t`IlnXdw "9DBIc ۊFHHHHH%ho]5 _M532Ӯ[RI$~K.<"_>P W07 a=nhA g]4a-CB$@$@$@$@Ӏ@\~ng(?桂 ϒ\kjz߯]XJ}WrBXu!E`޵Kƽ-8㪅h?K\VU*V){h5+X.,űkq4I$U<;-X"    E DugGoX_sO q/)t߯[^x3Os {U~*ZV" 2?߿lYw@{7s꽳 21uOs>rzYݰNba8Zi$uPP$D$@$@$@$@ӎ@JUp?2+Ϗw)L,*nE?o߽^ PT/HGĬ% 4.ryIuGH1x"hÜJj\RP%32F"    iF?a4"-_}rpGDZ Z@lT& .!]wݲ/-=vwce1Di0 S6_4e e*c1R b^=b?(ZHx7'mÄ6m V_1p#4BK"pw&Yx9^ 9o 64b=f݁>ǟ<#_ΫrCءp4`N}g`qif^X IDAT3ߞۉ++JYXv}Ki1Y4x*+K%!ɚD>dx-02v`HHHHH` rXn: !WRvFe Y@ *E®Fׂ3._$ru)Hg1<Ɛ4h]t]7 3/$@$@$@$@$0 "gY|( u$psSIÅ{ErɒPѤKr$L9~@      3Na.ĺ#[-1!lJepz#A!Ic @` UM4T!1p#4BVy0tINW.)Kݑ闼iK>JQے6·#    +{q|m U \תb0ʩ7mFTӵxI,WԨjD $kت22Ȃ%    F^>+9[J#dOL%U21 KQ kkX8Ui%/ڡhI&     %`DH۳H4)E`$吹d,")D$QLgIHHHH @xhm}8=AHUUE%wxbޗr!-% IHHHH&&}eַeJ_Ti8rPUM;Άn<: L+p[>y{4 g5<ž.}UwԿ1yGr{3]Na8ª#(K}%%-vz, !R\_w=.9^dɊK? k476έѧTh9%\t&    HZ We5e @f+ܰePs-.ףyiFFL~nntQa~n~QksKUUYNvFG    8а43Zn_ow;Ac(E#;/,x-͝Dc}>WzKwCirzܩu* ̟9w̫\U9p9g7[S'9wٙ^eEOHQb_lylKVⱰ+#3?pF%  1+;waήcmJڭ\M{e E;;zm7LooO.ZtoVO\h3:V$    B08-aKnz{ brʫʯZx^-7~qs#P={}i5/UhbfN_Х4(h7pXM}!ReY>&55z,&a-Õ 1qe%.v@֟?늖#3^9_vKWy4'/W0z'ݯkҥ\Ȼ?>*w8gVVSijn֤}!$~UE[gWwG˟}֢P(p)+7_vʢ3{3B Tp\<7w BͽOogdž֍GXt/T32uu8 o0͟==a KE"`ñ'm ĜuVjee""펗 HHHHH`F9,Yij↾ }}sS5_ܸmUS}ve9\xi܈u'|i^xgk[:{ߵ6E űϧlx酴LaiU4 ǺegZ뇞6U,>z=0`*4٣ح(n[vʃeZ[?XHHHHHF9,OråpFqZҬyiE=Qo׈KX3-Mh%rўLXwլ_Tǡ"#?;tX_$۶̒O~l(-^v2WQZI{l%{#.)űR} hɋHHHHH6=U/PS]섎;+Q=.at:쏽6 E9*{v՛z}+SqΙ_}P vrsfuu_g(7r HX51\ Yg+锼ixFOdCuU|鮸;=o̢P7L;G$@$@$@$@g2FxCrOeE,)$74Ww]U`LJu|gعv~UYRPe-v}JGG Hu D*7 óm ny#Z+yq$@$@$@$@$@Cӽ`_(ҫk;’1jvBzݒS2{9kw#јxZ{wW-ˣ.Eޱ=P{Mݱg{ CBD-Am @%_2{{(,}in3 a9Y٥ug4xFfh@<&zV'0~q5v7}_]dy{gqwLӻ:#u;$3!.2P HHHHH`l9-]6XgKG*aiPtʲß:\_Ww7\^QΜ %ꉫRYrҝP0SV^immh$5t5=3 }hY BD2A`, QN/ln;@Pucz˃ۻ5} nND}v/u4=e#Ol۱/;;M߷P( XVhS͵V\aE # R:Iw~ی򢂂ӡhȢwhhDN[__ 7-!^}=w,kc@ ċ2AuF]o9bfXfO|c@8*=)ut3gF `!07 #-UHHHHH`0qEbszP₲wD.gf{_Rɭyuv8F^nQWp*j1C׎ v[9#/(;ǏE.\'wfEn^8)ŝ EQU&ON$@$@$@$@N\_);܅E@' d`e/0 CCTקagGGP2܊K6*9ѻCEQu-5qI߷{닖X욚Wvv73'/%Iθ{_pt򙾬\3KJ2̵륵QveeeUhz̈;dY\Pi-ܵh]/h qB2. L+ /zg^[VQ=(rWgg,[t).[[\jK6MN;ӟ3 4_IsjR݇1 PX`oۭ8<]U%).c|Y qTBEF$@$@$@$@cGхK&cǺZ[ۺuƍȖ֏H9illrgfeUwvv{\.O+*j_~kKL.ve䪑wQr]NQQ0zΉR{gw?(yg >A2p[|S    c#aRJ*** W"rG[4L(E;׽*Xq, ?eptI3 f̩*ut9*EY3nH֦7Ҡ\*榧'6(ZNJ     C( qRYQ2,1Hp8*.!iBe,ᐁ)]Z,-#I]}{"NŁ"+`&]5bꐜZLU<~$YfV^>n-CuIHHHH`2 Xo5Ýi 4]?1 F#hi*P ` tuuA UkbF#aSc.͘L""n-rR222 WVUY0h9}lHHHH&@*@P7$ā $ N0C@b$A>tP8B }"% Ut(_/ȁzIxAh/lHHHH&(@y'濰@̈n&hѴJ A?!dJJ8"$"lu/!EC\EQ R$:zn[VusXM _y W&'@2P$ L!BWnYČ@(cOQLY>ha_&1@$@$@$@$@g@)+ WŽg[>VeA ,b9;S-C< (H 琠yYG 9Q S->pv{3gb<(ZFMH$@$@$@$@$0^F?,Oi鄔wI6hdl-v+$@$@$@$@$@S@H$i!-d/t׺^?Mq),gQT%)d5xS%F    |/ I:U>\)R$um,-c:$@$@$@$@$0y|:<>,     S&H)#c    tzLi?鳚yoHHHHHG Bཬd+[ΖERYj&.,iIK     i$02$Y"hEmZ>Iw]u]H(AэHHHH K+Ss]~h o %"$ IDATHj>IwG$1\R %jj}SޮmaG=wqs)QteB$@$@$@$@Ӂ@GgƗ [zGq+tl{úonfNHGӒ M$@$@$@$@$0@o~zܥg_Ÿ3rkr~:MhM$@$@$@$&`%CUM/.,u{ZXeg p 5Ѧ8* x-@bfHHHH $yPTfWmѢa- tb=7Wiwd F( qiCv*SIC$@$@$@$@F`_ه5]po[tAC@U}Lvf\7&ڸFHHHHHNBsQқB jVv{ʊ ӓHHHHH` mXǵU9u֊d`=ۤAɔtw̗6ftH$@$@$@$@FFnU|15t+_vXp˛;8F:\w.ʙ?aLhIK    ," /vI̸uZNzn8b̗rÊ\G+++"ZwQ@jvB[[où}pz)U3 !0ofƂ V_vӫ!brʫʯZ4=sI+X|y}}=n\rݺu%,"܆:L2< !hIv?#U[+ZZxI"/=Y/* u48JJJ-[&rKK .RWAᮻr-.^!3g 13D˜9s+**#K>h 4%0#R]R׺^4⹹K$Cjm|ퟺcKPj7|(7oz@_zVt%F{{{gg'B1B,X`ӦMfw02ql2 L{zFc4kAynC]MH$S>'r9hmP/9眳pB TDeSðCUc5. ׯ_d( :E%yI1\2 XHHHH&@HsXW izn9/m?Kj;>~߿֭TWWC '?I<b&@0ZnZl#QJ^Sh9Ub'    i@@$(F @w O}J4 т `\s%\eٷo矏-D8=l"M    X#20J#2U~+QqՖe,D1 /|bV0r'-(ZN$@$@$@$@$0H@,'BOmE$@$@$@$@$0= DX X&zEO?݈2Eދp-J$@$@$@$@$0E }w?cMz֌3,Ir  iV%"޺ZuW%>)ثF n$@$@$@$@$@Cer$@$@$@$@$0!1ݑ;v:uGnyìp L4Q˅r*K,bz9egq7xShֆ mP$u4eu     1a9 UF;rEElycacFNJ$@$@$@$@$@gE˙g 17$@$@$@$@$@B>Y*'VY0˲&tkZshݡmB2JPt#    )Gउ%'upY1eyt. XUNaJ$@$@$@$@$0U@0<|rl$I2)=(e#)ZF[$@$@$@$@$A$R#ܚ8R-ǖ- t%R47h9    5\ꫯZ)-~^ܕ$QKfv`/i=NFaȗ-#]    ARXD׳jn Wv{DA8`:eOYu8 8h5RHHHH:5kk\0"-;7C΢6"|FXtP[-JO    N뮤͂F^/Ζ\AyhSI.T Qt]eYQFqedK$@$@$@$@$0 H01BeBψ[?zH$@$@$@$@g@0>Ԕ3֓wf]LbZ  i!    NR "Vʗ^zɺ$NG-hJrFq*D5im{C, ya9r#BH Ļ -3f@yP?x L°\QR𲈴@"e,"'##ĠhO%    8U ьY%58r]뮽eLz;HPNIO18DXpDQYf(ZHHHH$OQ:tKiII]8r\X s >Ἴ  ;EK@^ L,|@;ttK__&!蒝=y桌<: @LCJJJ NNA,8@g{; IHHHH&&c-ȹx0}IvqiM`ţq$9']*pKjd#Gtvv-Iq<ܹsپ^Qj\ ްn۫[yh;9mBF,C\TTTQQ1gΜgrhQU&;t]5>:|vLh.CK F"+D$@$@$@$0^9D4Z_;w+5(Mv0 #a&/@g!<`e,"v u-ΰ D/X7?d9Ad2/Ͷ?Z~㾝}s ,Z -23 xqXZ)8^oFF>(N-۷o͚oh (͙7KOHpCr8$Y%ɐoX* n`͏'~ ~߇d%#ČЎwz<ƊY5B 7|!~k4t hjjYfIIq9'u{{{O,(`JԦ^^SV:H=wH  .^TR-f9薚+VItFG uF ZdSTga;xT?A@A]|]ycc7igȅʊW-e|!?CL},N+Ɉ7% &'.U0UӁ'~ ~߇0`p 3JJsolhov02oCᆛC')YXĐgʖE,约o4j{ kۖ|wGppNJ o}ȑ;W b(?/7n={矟 *4'(Hh9aV؞={vیtf i;/N!oP_08b1dJ?Cx`R - 21;CIM*Μ{gEi7WuaX_pl%_:t  u'_qK/t嗧PV׵}nÁ@fB}Kji W]cJtx"H]t'IotIwGyhAPSǀ * oZŝ2Y$Vq83҂?hác&a!cԸ1kl@IWL?Cx`q͜"Fk]sOPes4oub+*"R,[0a cfe˖-O=~}TF_ygslahY8sQқB j{*$B$6Y".PsZ}jҧOyڊ}KUK[ R*X]gfͽKN>3g{y3;g3<~!|?=p0GРtlw:RSMX$ R Ds-18NC}Ph*gPc-r={u>,%=xnPo쭆r].bW[ ֮]{M7o'- P$}2 d]J,cF91!d .#Ԡ &k `8)NG`EX;[(O>~`}ߏlD={\8hl ;ᴛEiZ8]';`c@KlHkNծΝ;}]wHM~rQKr!<%yj\fGʩ$srM}}\ozWǂ_t:Hs.L5H[0[oVSr}BAp@т&0&%tMM0&Y)`6& L%OǗ3e~ XDyUd+pa&h2`ˋEg ֟|_(5KXFQ0:4֜N̡tVzIz퉢4 ā{3tVܚ!_@{ f\>XJk .,++S໿;({TN=j܏[Mݯ^QSNԉ&XˠL}{˛I7u~J Uɗ1"nӦMƍFy_x9>)bXC<8̴愢D>)ќ 20EZH^ CFA0!cdQ4kXO ,p`=3ABy.G>/X[D}#èa0Lp&\^ 6GBKJMrrf>J԰'Zh %8͂_t@>p 'uۺu+ Яau@.ǜQFGXEy;۶cG͉E},.iˤ7\禵{WlI&{hqرcH900}ŷtUbs/~ơ`Mx9nX` `FsL[LBBbBb`2 f]bR\L|#,yf>.JawbcI ax L0GyC2mևQI& ヲI9vYlEkPnUv:-XF3 P -?p@DKiYlՁ5<|0 = h+Ԥ}(IU~ywv+Uu9i=RzٷC7Or0@90B`\wuX=6bL87L$~5𬬬tOd}7 z k`F%Ga[-H0)P. C;o?iJo!I, |wp{`'"X) sFl"q*aS|x?ya!vG^BkF :viIX͈r__s 4 dW۔ǁژv7 ǂC +b@N DzEFmáM;k[V6S^3ڂah)_f{l9XbUW]o0Q1ҏTHIIQ;!SH: 1{ X{M0Z0^N}@ ()EB(W*x}yCa}gw.d.w_1x!I m" .iI,IOyE޾C/~dR^çeN>S{ޚF wt4_jumqXVth\TT $`v{;[SzTȸb)AbqV-ٟg7ݱ}ߞ3ڝ.ƌ,f9fcʕG|~P:زeKEEũS ` ئVala J"SˍeX5(B9FR0E/H۶m+/?^g-2HNCg1$@$@$@$wj?MF|PG=q' e(Qe3UېazHdc\AzċS&dtofj΢/VrjwK6n܈ދ4tXPZ^H]Ə*j0ha &$)G9ć\NL @ذa⼼))VM(SF$@$o8%J% X%=ŰOXKdMf" -i`jHH ~ SbM}eSN$@$kk% `<     & 2dHl'#    d\N &    yтI1N&HHHHH8si|m     (hbTďtom̆*LcɓIHHHHH Z\_ǨK*1pK$˄q 4Zk$Y9Y~sp~cƮd*o{oƍěq[ $@$@$@$@$@$^-9)l|d`w>ܵ7.k{O=v֗->Xgc3_?mߒ-#    hIh?rZ]V%+FK0>zpŽ?--G'b}{sk ʹ3_2HHHHHOsxA8*e+8E\n~^yKmg`{G6C $icfr)SZ]is䍂&>,\sxs{˸vz_d3     &i1%JsZ=&,ɉ~Fl9R[>)<0צ;,%     n={ hHHN6r$@$@$@$@$@$~ROK%9Y҆@%     vh9tHHHHHBOFKR# @ h !L"    =-gJ$@$@$@$@$@!$@%0HHHHH h)5 ¤*     zH$@$@$@$@$B4ZBHHHHHBOFKR# @ h !L"    =-gJ$@$@$@$@$@!$@%0HHHHH h)5 ¤*     0v@e7g=5!JT*yK'Gxđ}ڬN+  bܴ)XdyIFs-q1{ŅsȤ%UbAxF!eƍ.J/VO-ihofoϧS0o¼mKf̈́Sey9p{^p4c橿W֨aoS_.ǕQԯgv3;4F؛{kjGveoxp[œ{  @td"[r S_^h#k_1ncz6 fJ7 5<;ar7=9^U}hhÇJQY/,{td& {7-<{UA  \SzER[c%2f19"Ann쎩ŒO6=     -pARiݘޤ;L?4m洹3xsǧwbٌI"LJQhիkә(;w_g5uv`eY1cJ7wy7wJ_et6i njſ$@$@$@$@$@a"2EJHwLyɧ<2Enx=,|1^GK 5%$y)(xs_xrҀ%[&[K04JOwݤ.ǥ3-k.WDᕝ²vZ RA$@$@$@$@$>!#֊U-}\̂Q`us^ljvYoIYBRqSa[ TA^L~[JU_?#}-S0,9(j-iZn[>$@$@$@$@$@!"2o#MQKǟ6e|9z˷I?ÜS~ޫ<wH ɦA,/`w|OdRы p묖+ߛzb+?Y9=_,vO͜|g*&xb4M:Ejv,WϝeI}di%E7IHHHHBD@zn|ME$*06ZFKr]-6;cZZ J*<5EID'n 庬6f%>~Qrs+;[?oHH\';B/2a;OgCCC&#}}ļxwI~b-lW NUJ2sn1uCF#I7L$iw8.ޓFvFFKjB1fKX224N Cg ܙQ)# p[:*Ia"I;$q ư*| .-b0]nnK?MDGZ۞Jmܙ/#mpk/0fK5o/$q{2 Ie>4ZV ]O ZI'CF8Fܙ/#p:${2d(æHetϝ;V4ZvGjCzFV:[.v:Z=4qgF4-n(b$&C m(ĉKJJB FKhyjNw"pi&kH'k|ƣ N3YLFZ{@l6۩S~=gϞmM=~j S1GOM6Vlf>-o8-7M@,"|"s/4kΌdi{#*,Hf7L$i6.ޓmZ-#L?|ӦM7nT=;"bY?x# +X@ژ#{zO.ܲ=;;"eD F>OΝ+V*...,,NMMX,C;3e%n_`!Zֺ͛7w[n6lXsoo&{2$dc(f 3Ǐsj plr cISrH:͛o-~zGD`u]l:-6:-^l#m2ËrW}=NaRv#“O s=`)Z˖i//Yz;| J|&}_A>r{gFCx#ପBK˾is%<ӻgϞwy駟+13oq]d]];]V{%&?n[u_?%U,6ey MdV i6) ^8O/I<;?~m-N[HQYzDkX+ k"ֿ<lRѝsO;s ŗ?5{]-Ed,1nޅNi4յL!ȍiU'/n :ї$Ri`= egS#_^zOӕaMKnƢ(d\!2/Rnnnv\Uxn`.iW #,~B%x~_ Სw5t<oP}"hSEtk`N#n!3Ziw+1zǖ |pO.[+7)6r,枔jdM[ܢɒmeUu -פD/F9Q&ԟ!@i"ؑ.%8Ny.ɸ\gE]3;ݎΓN S6p".MҌS_[q>k )p5 P#aEHIGϜq5=iȋ stc)S'R狧]+#H؂ЎԸҭ|VgJ'oO  ?lkjr| A$EG<:Wu^TREG<tM^MHY o%ܷ'N"x4@p-%:W kk>y;nV.Y">OB?=*kES'_Ō,?~ݽ.ZpU}5Towr~],^+<*8kn^-0Kn[^=caڜP_ )`?pt+o lvpVWWÐ+/Y⪑ ; M YĽ{̏=ؼٹg.%?cN玝SJ^)^=x.Ǻu]N0}pUKF}22-S<~~Gbii2r0rӄUILosk|txO$Ǒ# ɆYlzI1 Y^_M6xߟo8r5:AǪU'?|qbӁ.v{ cik٩>]Z"3QFhǨŤ2|뭂{+*6c§(:o᪫MyJ]}4ˤG;={_MFǟ8O+A >Z]& \Z}j|s֋[(oolLmذW,Is}xe0 n>T)xjAU*O#5W ݺw߭Mv:\)CO㯯 Z}9,0\y%=a}\ ?o'o&?e87޺GȌjYgPFO{"O?w3\4s|\p׀Fn}3e3?s7<:`y9JpƂ>p7/L~rlkcp=u\B gMY8KRShC!覰/^PM_.=>c:8~.#]U}^_X`F!1ycjg+-1)Nm0NQuINrO[|3C0^jv pe>cM&Mgu6}ްR,ax_upKY}<ׯcDze:xD}"[=KI/mQ~,X8N@etz7ㆁQ*]ܽ[,,0 (KK>ȯퟭԩ:iȠdXa:0 ؎ l.Lsc@@ms?dU UWǽI;"mX`sX۰r- +K/_{;v|6>E7ootSG}\55u4N:}Zv ɘȋ}W;PjkW|@ :S _,?RO|%GRF1YOޱ햆z`LNJRK1cS:nޱeRUHNLt6W$GGwlV+9.0csz) 5q-6uwo(uo_׬|j+k%K@9WmW: %Œ', ^KZ.K;>;"FqVw6EKd}#Lp?tm"wnM\2ƻ2Ȭ t?qP;Hb?(/>=ݬcFr~rYyFFKB./Og1c(A0eׯ%%nYD=e9>2G?$aD~ IDATBHM5 y$@}#"矣XDr;n5Z,xfdJ4t1l1qŒr!/^mX` a˥-@Qut9vx܏efm*+1E |2p9DP?$QK4' }8M+4{2kUޣ\|0LȾCn_͍_U1U\\{J) tr'.=CX KOlUGߪ <侂oXd i`aw(\uOW6K?+ }XGxW0_i <,ݟny1DM% ]ȏE̖{90y}I&Lpw4001x-W?ѵ Avxg)_1ZM}ex_#swe笫wr9}{>>T*-l@5>0I7 >5r `!E:vL`>%Q,,,/έ:*"R{`7-<*]{J6c eSoQ]8_#!e68JjՓ p|y)+#oCqToUg5Z c&H!# 8Kn1Si[ ` Џ-F}ŧ-+ٕ<8l>7WklOi*qLW]ts&[QQW3&_DڡGAtFiΘ-C&q¡k;5r B."MUtW /5 : kjE81k]h`yh@}zEׅ]Agϣ&_.<_^o׿>W :-Q, 9ʀo^3l<Ⱦv=;ՏJѹWX:zǑ|D!C%$X!F_|DeĦs\MIs:ůjmG ,?'uK[FguΑ4хOÖdƚ3D ֟Xd=>; +~bwnS\#1k׮=ch?O suGӝ9Wݲ^Xz@L#c>5TڼW*WsTi]x_mtl{.rI養u$E+(ogX0d0ª[ʴ?H{)VG,6s;"FsX_W}.)AK9uwYLq|ƍhC~ )Ik: %c~ذI/[f_XveX[j6'C!ZDvČ=ұ}J,3rc2RWq1M)6:%;7 $`rz=];f8& X./0tTWero 86? `}ᇎUΞ53|\j#y~|ID;fvv_ܳ[t顇Ǡ6G/*ȣ{w?gea3%?M]ۿj i5{/fcki SЪS#IKii$cItKt@0 闖Kt_[ڶF .hދM3!ac;oA5[NGx+roիWwk 2}:9Խc^_*xNTצVx`QS6M#ѡLu5ϢPԦ=Uv; z]ZStJ yAp*':m-Nx/a|\I7S%L].k2!C6.wm3aTUҍۣiM{z:]Opѥ/).Sf6ZXZgMLy<Hٳg= OB%,I'HPG-;ZӜ0"pO?FRי3gRTA+gfbAp @] OEZoE`dWR bTz9`XMa}׮t)踼"KK vK.1IX_ɴŢBcш_>-d̯|`btYI)?WX҃#e,-|Xm@pV9+xh͑ʟh6jF`'h"*ǂު$ȿ$@$@!_;eW9il\Q2Dc-M4.Z.v`  DXwŽhDZ0rn1粥w"Ewf"vkQT `B0!VUQ'dRFQ7V1VbQP\KI/ "7X2QaSDb={VVVfeeES|ݙPFJNDB,tV7LhyV[tI%/it(Z&[zun:Mܲŵk)B;Wc9X=%`֬4lJb׭[W]]}wF:3cZM\pkhD?.]\wu&:{RI+2rMۮ9sFKېQH|ӟ^S_O$t:_z饧~:;;*Cx@ -l[  @[*33sA$rx|b 9X*8Vg& 7h>Zne˖uƜ3$fK.HI;9 -a_:aÆLM6uL3$vxf3H]X [xiac:x_۷oNNNg{h+kjj.^p8\.WhON35ާO:G.Z^ e@ VEcd[?0$v;yS9߫W4R@0jkkO8QVVףG%%#>v~'xbq&_bd-k5& L7<C H޽{~?hOyy9^_=)))qwyCrлwo_"az].'Ob9zjСQO @ NZ4j< 4Z> h3bnjj*9|'sժIΝ;ac<{K1@BZ45 -'1 ={v޼yv}ҤI- #lr7b6H@8F-K *`R‡o$0H DZ45^g7d=L hXjر0]?_9JYp0WFaM1þ1-R Zh`>+_5cAW a:D *Ԣ:[ACO# O ={MVQQQ]]}ҥvɌW^yµӧO?(ze9JHH@c sɎ#!?Fjxb?KndYEAg^C``~~dly z$ 5GE)*mCF(u-uLCj#F /*l4-ԑrGFDlَ#a#5# r/V8/=WZʒ; wMD/ܲJc訑{$:}A$M؏%ԩSL4h׿//z5֬Yt _]@1 @G6l+j|]gͤ>\R기5z@ ;yd]]H2z cC MTWgLɽ^sݧC, ƚS#Vt[zgYTs󤀂ޖٽd%ap{fӕy]zBFn6!ZKΈAg5S-]OL {A$5Ar…Jѫ3mڴ ?#MOhfz tr~ T1o)}'f'%ޱ'i)+,.Ɍ۰M=&8L]@dyd|]xr/mߋr@}AC2-ΓvlUiEQ>L%s/mٰaכ{L҆CVkpߓYt[dnHF5r( @,8~-܂ b+?k.((; j7nkO_uUxaUK,={"ӪZ58>ON2oTO:HH  |Տ>qOwp`+2d~1>[tPC`xVؚmO64܃Xϕ:U3dt Kowl$way<{@<]ֳ%cΗUyh]C1$Qސstf]/߲atIV{F'z`!hla&3JÃHbVj ,x׷mӟ IcFLmix"wIJJ7nᵊ=a0R|CN1VV䥗^B`)aSwIH v`c|QC"UwJ}8Dc;vt3f,^ƌ{JKK? 84cUJ 0PD4i^=}$i-~rc˶8k9vj_pN^q91,5b?uؙ x|UdGitBCH1df[;V4 Q*O_0e`ʽNT73՗(?i% 4|蘅r}mݺUI=䓹8馛rrrӱ)ʾ}G?ϰ#.}'żպ_Ƒ+M$@C@ ˋ[>3<> V[~n~*6 .L\;w.VGz C=1[c fb¬Y0g>O`Q GUC}=\}X:k`z?w<% vS`EW0՗fLY ۶`>ö»v9r$+_pI$O$He HH ތcbK຺:LB_)f* bAپxVC\0WUOHCO-D.|㞜i :P9p+|=j2$%==W^ЫE޽{W:yW cyIɉ`JzdT`c–1AtrDJ)C갑)O>~`}ߏl=Zi@p:XްJ^xk.hat.k9C LJׇ8q2 2ϟGI@a%RDWSSS__/-` J%0_kΌJ18rl֕E)fAR$;DodES:`.td0/X+x>d}0C`OBNL/6Xݽdłuvy\6#,;@90\499FHv zGF0UJ2Z`'F Gj0*lK C79͔QuAԽr@y*_G&(:\.C)CyC/~d{o8Eyds "=՘`5ڏۚ4I*XHb( obbb]]ݡC/o; ƚ5k&NvlL4-_OHHh] Sт? IIIOGa4w1'ꅚWYg0$0(Mݗ¤oHN)3i̛ %.'|^X?>G܏>ٟS ~ouNRGOlq( Y ,-k_/Z!&MrGUd ~)S;]Q@",- . X,𑆎YF̩]L)nQu<<sa>Aق_FC`B/:DO  և|_Zhȣä_NGj +jafU] hgkhV 0p w8pfVO8ϟ?@ůz p@ Ϟ={ݺuw_߾}%,NiD /"ƴ!$0ɺ4X,ƌTsbBɨ7=`2 ?.ii7t8Ä$-'FADL0Eʓ>/X}#lh= D딾֣ka3;vSÈ&4qH?`c2)SŮPpܹwuwuu)zf<|`(?>dĂ a4-'/0h&%tMM0&Y`6&ɬĐt, K& LDyUd+pa&h2`1ˋE>/*X}#RÀa'1_6Ӊ 6j[/I՚=Q\=8arP/5!1p؀SWȑ#Op²2AP~!ᣂϟ:uj^^{ =-1Hܙi' E}R95Z`?0$Loc2f0KCv!t^/'r|?>d{)~ۇ@zÄ ,r͑`RGYo8u~A5KnO =rx1`{n֭~PaOMMŜQF,(fҷ(o6Z C+үj3e^n1 I,MW$Fr./( #,yf>.JawbcI II@>Pj'|^X?>+ ~`{)ۇhe+0JDUd ѢD_.8m۶۳gzR u8d) @%6314''?P^͂F68h2ʁ*-LxL1ZFGahP",-F0 |% ``dɓX @UB_ th m1J[`(S` * aY0"ڑӀ),*Bzv $@$@$@$@$@$ڙ$^HHHHH WSpHHHHH$` Rb$@$@$@$@$@$y˅E>bH$@$@$@$@$@ %ʐ Dg$@$@$@$@$@ %ʐ D@YYbHHHHH X,+V1(HHHHHH >駟>#=-HHHHHP-$h IHHHH"IJ ,i$yE$@$@$@$@$@iig}Qa9-QHHHHH b`|rС+WrNK3"     ZX8%5^&     }ybA )B$@$@$@$@$:X&k֬X,!04ZZG_     P箨V4Ν;0      h I$g4eIENDB`psychopy-1.82.02.dfsg/docs/source/images/builder_sm.gif000066400000000000000000000735671257562125200230260ustar00rootroot00000000000000GIF89a &@`|;`/+_ fGkG!""$#B$(27*+-+G/]1`2223##3335:6x8e9*%9::: ;!; >?7@EN@iB}CBBF$HYHs/K.0KKMLL5MaQQQRRC9TrTWNZ[Q\\\`j`q`a{ccOdddfqTfg_jA=kQRkkmk}kmmoU:q\Wqqhrscas3t--tu|ttusswcynfyvz{1{z||}}}h~=ꄹm튽ČKᏳx}i[ʘg0poIIaFe^/+ #"ۣ줣53اɨx7}FÌVmdaqpö~~-+eĻۼ+Žƭ22:;ɸɽg[\ʽ|TSijusFÈ̍ΕΜΤωDЦ׬׹٦(%\86RJIs8XV Hqm|!Created with GIMP on a Mac, e*\ȰÇ#JHŋ3jȱǏ CIɓ(S80cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKY%p0B2"40TZ\Eն߿ LÈVR=jFѵb]cDIr6azHĨSip24xɤuC}܆#eH}ȓ+)ן$УKsZ,FƢ0Lص_rAE=T\_N>/>?6;_MdlQq42-p'}V/_$APBټ/8b13:#S+SN3Y+1i!c ƍZXA IOfhAED@~ I6'T̄@vU S&idx唣3O*1b0<45.Lm~AM j<䀀ߦ %2 Xw p ,i6pyKd z1 L׍3oBM.0䖍޾/0 ;01!c2)Ȉ0 =-}2°iJ9bH0ė7KP 0.cg0 DbU  /Ȍ&1wA.Es]AbK- BHzuraA (0%?q6Ȇ jc~F+<#e\k286 c8 y!`H^]6៎`Sk"Te0l5J?hikB9$X/a)gl)EUAA%1-Uqp .oyfr‹7x/Nr A `RF”ϼ,{ @{ @JЂMBІ:| 12Q}ec/d %h]QEbȨ@U*aBSE7VԜ1LӶT2 =JԢHMRԕ& ҦZXͪVUV# 0J BuD,Otԡu\J׺xͫ^׾ `KMb:d'KZͬf7z hGKc/$C_r#k04$؛?%+ ?܁H8ܫ+j:nVyz5(\ CDhA׽PoiK"})_M BM0юp;,;C` $pہ$t@m2P01)qĿ1αw1PM\F&;PL*[XLcv0b#m/̓9lCH91E6VHRnv`IR~"ZZMa`15ژ;8Y]W#5;0.l(Źn;3I d8y`[XَKЉFa ?A D;DZ?+\ P&pt'kbr;XZrdM@瘸ůF5Nܨ6jxϻcG<`Zm9L~]8Caȼ7o6v<gQ `{0ك,>ow@XxNovWTp]p=G xޫP+&=D5/ Jsw4YO׏exk}k'~u6bQa4mo@yF0 @F"`77*s: { 4ez#7|5 0mp`&7u{LX'[ @ 5^|Y|%v3gv 0@ /A TH m1 S}~`b8`8oj&k6`G(r]I<h@-hqm  m "@^Db~:Dz@]P0](nn(P 8uT`$^]: sZ BZP5\hJ], 0,0.Z0H#  @ AV@_H5wWxVkco[1U~x%|xV]Ő 9 m(}Hl`H{W> p* - | b uE0 HpQX[Pb$Ɛ<ٓ<B>9]8 1( H8TYVvZxnlq^ [Yf]70 fI;eĀYp (5_1!0`t96 @e P {٘٘@ ZI &p?W&0S P7 @5tf h\e6g A Z0@gEo М2P ܉?4 ȝ@Yy虞깞ٞ9Y oFrja9[pZ#0 mV : _syvL@ (t ym1 $ `8$ yt 0 &NP Wp 9`i0gNzGI89 EY d,0bZP@n11 9nxz|ڧ~iql0ZIV:J*(@h"Jp`{f$zs%  p 5 M H)`C˔ @'*`X \` R^ bE[*`hlnڝ2QvJگ;|V 1Ѩ[j[kz[baʱa60p ~٠٧p 8 P Y `b'R{X M+  y 0]zZaQj[O@ryJ[{iovװpmY_|# wM@n V`"P) * 'ks Q}*:0  [) uY0@h`aдP 'FZQ+߰\8 4Z\ȩht&cq.u {+}  <\_Pcm丏_Gd [;Y 0"` K ^в+ 겍<{ b@* @e ENt]PP<0QaNk`L9Ѓ  g>4 %b۬t9je6a  PD`0 c&fFgȌȎ_LFl Zls ģkP I  ]0P1U`E 6gꘇL z *XZ9 @@&b/( r(za\9 X\0i`he,%gp |\ʦp 9'f?ݥ PЩ<]̒*r4UpёIYN,, M `7j jqʭ,5]Ӳ eʐE_sMR=MK\ ` p [_Y0n*[9m]L<,c PԼ` E-t0y̜vj = pЩdJ+ Mx0բ=ڤ]ڦ}ڨڪڬڮڰ۲=ۤlQ `Ɵ ʚ)ҳ,yA }Cp``8=R4& ]޴7A]= APԺ/l4 zp> ߀ &􀰃[}tc2 b:E [ Ԑ ">@ [,.02>mQ-`\ | ]0-y*_͍@˯` mݤ]޲H-ښ]]:yғp P -5@ h8~nZӯp`oMgJ>\. # IN㨞ꪾ}㆚Q olppzŝyg ` `0%L%Y~p _J3J `:AKpEsNP GN>\_ o^h0H=ٜhM~  , I@Ywњ`0 apCpo`:>o[f! ` >7K Շ I„e[y `bG41)Yo"~Fg=F E@ݘQ0_Z]_YYnb/sD<_o ڈmͰ'^92!h@X_ȟ.`IwOaSmEO}(Ip?7Hp@?ո5;a;poJ@QD-^ĘQF=~RH%MDRJ-]SL5męSN=}TPEEzĥI>UT^ŚUV]~VXe͞EVZmݾW\uśW^4X`… FXbƍ?Ydʕ-_ƜYfΝ=ZhȼLFZj֭][lڵmƝ[n޽}\pōG9̕]tխ_Ǟ]vݽ^x͟G^zݿ_|y5wN~0@3>D0AdA0B 'e@ 7@9ԲGK4qRN?ao1#1GptmԱH2H,I$Q;G2!J.$2L(L1ϼL3L2M,d P?r3J3$'PA%PC-aHįQG4JI/4SM/-M?5TvTTS5ݒOUWeUW_5VYgV[KlNrQYc <QcEs p50`d'XYk8ch/ָcicLdOF9eWZ^ b"O fl6!# ً<8$Ĉ=d5]6R|7 1}elH94G_lG9A1%s@SGfo{c-<:&*N0qF :刮gOij_P$ B uut]`ל70/0$I`N-l) S"!BC"# @ @Ρ;pX!D!"Ca Sfe ж1ghaa+ݰRЀȆBE0L"~ ڲ'< P}³Γe(E9JR2ݓ΢CT6D@ Y` 6b?)LAM9ȂlGRP#l0bâ)HI6R$H@!Kad y7vލ$ pwr Y'7qِ'-Gɬm hcv("#:}a p/٠$ӉӜTgޢ)ҧ?jP:T4W|\I'X ` |@5lfϢ*WVkP  Ӱ}rSl(6G7t9g9Vk w Y>yQQB"s=|lDZ<!dE,0ֵ95js6 =+\KX)4Emnu[vSP@%2T=];iѫuzX `'YkװAxT8[ֳw-;ZM@EցOCIkQާ mhd)[]̙gϑ/i޵.ad\HDҶoE?8T򎸧(yuw_{>vgzufCP*Wn꧋]Ϻ4]~>xG|xf%AKWyq_c/*vyƗG}UgF;dDU 磕{^d z?|G~|7/c'@,Z@!?~Gտ~88s}C@TA$4;!(Sy<^?%/p$4?X1`6Ȇ1ď l&%&H40#D$T%d&t'()*+,-./01$243D4,P@BA! zW8N1,P:H!8 A$B4CDDTEdFSSxA܁ LLND)RCx D>AtXYZ[\܎v562cdTedF1R[!R4S7V 5XmnopF^̴ @̆hvtGglp:PK:FWFqȀȁ$H G_,h8v|GeLȊ|ƊSL>l,ȏɐɑ$IB˷˻H{HkdE<$”\TȻdtL:ˌFW4DL^P̶|LƌLE@LͭF{LjH٤ڴ͑TDM8DȆݔLiK0~tNYMlEHp/ 8M4DONNGpON(LXOWpDŽ;@RlG˰ TxY($.,Op{GmN %Ru0" ) /<؂)FS״LlM+ҳQ(R R X$$JGx"/)J-TN^_uDU!(Q؄8.y$@MP[&`V[R,RopE/@7,Ђ7@Jx-8-؂$o-Ȃ7p,0UF)Sq5؃E`؆xXuXmPVQRLّؐ^DIt؊XUX]ٍXo%ٜٛ]XuٞeؗؠMYYق٥eZQzu JmڭZM۰ۋ{Y ڴU,O+[|J^]۹m۳RشT۾[[J9ڿ5å-;[ą܄֬[5Kʭ\A XnE[5-J\GO^ͱEZEa@BW@@Ea((Z^]Z\UObMy`Da,VDH!]245VsR [\MȆ@`@ЅU8bؑl>˟^DVDfDYDVacM]_1n4FmhqtX^yF~f륔kDC Pe`; `>鵬lhlxH[lHFЇ~ 66y`N.D&D605%?5U (馎틋TpIIʜlPaH}Їy@F|}opo@y؇}enZ ip0__ór,o]ɪK>xKy|^<[|H8yo}8#@$oOp| r )  plo ^xK˺]m(MoG3ȂWx^uxq|8W&r ۽ifHDHp\h !!Ѐ0LtU9;wPoQ_HTguԄ;UJ.HGu`fuU j`!$IvY4uaVWNAX毤uH*g\t tWtG 2o>OfGzgNW]<] w{ `/  Hg{Axxq4ub(p7(/.l-B_qL3f7 Hmg8QWhGWgwz.5Pu@Pܑyu]>ʄg X:$//2'^4ZgŸ\o{QMޯnhjmXHD*t7p{wGz¿ETď]Q "=$]Ry}IJul9dn'F`2g^OpogES.R1-3Ń4])WDo,,h 2l8={RMW )b^6)i$ʔ*WlȘ2gҬi&Μ:wTر'P?9(ҤJ TN,He˖DXи )S<2+UD=@KjWܥ4nB_e x @I^ 1H.`с„|5*Ӯm6s+i7}Zwvؚ 7Ch|I Y_|!<"PMWtf:}N0@^J"0!47"ud9}EךljaIy!^M#X'Squ\mBC8&qX_IC01$zP^|܇&00P6&Ye`6YdhDHZHu ӊygLsӟ%:B-GUrٜ3*A:h6 iZdʓPu%$V硖 I0_ل)LiӃnJH`ru'vH('ꬲA m3p݂ iv]*_Wc+y L' Kh*m9a:d,uF0K)|VmJhz܊<[N麉D҇%Ƃz0q^P=gX3A۴sDhEi"lj*^UH=u=X}TnXa*Iu%u;Q(v!PYwkA2+"aF6퍎,oILryu#&3iG>bя|H JQ&3<%*uRIڬR0%5)KLr2T* %ʹ^cL! a M9|&4)h]e wD |fFqI1'pɢQ|gk`sJ>0QB@ d Q"Bwq.@PB ( G͖:&=)JSz҅Ρ4(LcĐrQF=*pJnT.G6RէAe QԭrlJ5 S5Ժ$*ZrUKh!'Wf}v]}'}QZ@"i]+=iLc]<"+R"+fֈbc5H"EAbV!?F}-lc yd4XgQY~ ҚV|T[m(Hc:|Cvycm>,k B8@'*KҢ~>#>p$ }.xūdW7Ugo2WQ88aAE]PQ}q,XX~qD<2qjB}c a;ڧ1܋ g5ۡpJKAFBvQ (C@ bЁH0, $I :47 i\T5 %5^ Y0A)A@efVLA!;7wͲިuRhMLl/bo R C,>$ʒ\6<m%4PdAc,??lV?B8(aa|}.?/\P}%tX&Ah@||IA0d=P TQX@j|A teC ެ", //޵ &qyb) @+@H e!FB&@6`hiB1ɠzN@_]p ʁ ܹ4 ;ɗa6pXF Ft AdEte) h`hNA,ɑeم(8r0m kh-X&E%% *<M~DP( +@":b U C5ݡAװ A@H4"hF>Fl*JFIcu OMP:΢: ;ߍ;0!R[D呤I"0T#RW%^i&t}.(%pEF+cE K,fndt%];d&h"<]#teWb&h&tX&%"47 cjQ"5B E" ,T!U-AM9afaPbC:42rH3"aL^9S_e-zd %GaWTCr<ʁAjUBDf_g% @op& l @L) S^$of &nf*ٓ&Ou 9ȃXFYmv&Lqg& xQQ~Zi'{vv|OU `!-e#m( hXLhB%j"M"u* &V·~h|dLE*QɊJˌ֨.#LM2ҏF)+iѴ#iZY?h9SI$h$.i6u79).|V*]\J=哓A?թ{&j"E&0Iԧ]*z[ȐG,jgm(GT*ّjW*桴jrR Q*`j;M.^*\\^=F+):;*XʪONET04ke1Ϯ)1il9iμ^|zn)Z9&o?.b\*ǔғ9S)e6x.yo=/ h8sI'k˧ޟڇSHӂ/g/ڣ.5' I3V=w@9~BHH} 篾P};c۩֮F>fk߾,Sᅮ<Һ??MtXkM A.I[7ˈnea=q0yRk3h @k9;? E8bE1fԸcGA9dI'OA2%K#U9fvxO;?:h?:Ͻђ>y%l`M.c`;siͪ58auUoƕ;ǘueR^/oDiaÇ'FxTRtF:߿^ 럦l^W4faT[=vm"޶&o&xÌ :fIMl{^ Ti^ՋѧW~7&Ǘ? ׿| P ,0CNqY$pP')砫=^i3ZcH4pZӊpƁla2>qqtDp' bp" #p) *In1'D!M%4HK5^7tƽp;=QȂ+@,NI Í')x?VMpԳ7xA$Wy#MUUA:uGYi? ȈbB;4DP(Cc!Ϟ1`S:DsLa?@ RD4yE7xax%X{q.XmU~@ᵡF`% J c ^VPɂV@-"eOTC_h4cRjrNu%tUe|TиhZ G-7a~tx(?AwxH|gxЎW ;]9r;FD\&4щNxғd#1-9H<ƒ|c;7@%< 8˨c9Ӝ-Ώ!p3[(H?ZMm^n%-3KpΖDyXniDy> 9dT@q&Ü mݼ7qoLAxLHsDh€.X-fM;lj*g=_!;vR͇v]pd*_*d>8XQ@E߶˝eVN'g{g kqw!~' +ow->{Q < ݆ ` 0CLray˯͋ a :Є5Mwg2NUu"G\PoЮCe7Gnu}X/0q{]aϞw=l~l-@ n`yO+& [YAzoyw>̞qo{GDPa|yhc8v w3\|+o }oGD/N_}Ԯ"2T>m"c 7aaP&υ"0"a '0a f!( .` dBOa0Ff : ^c l  )P U !n0d| C(! ~%. P&.WzB ,0"p@` ` fA  (x` PX / !1Ӄwg 'xnpb` Cq a 1 %]6l `"b  H#p d0W_q.li 8 Ay|p5j _   1&&B'aV! V0A!"@H1"%$B5al )2@^ vO" ъQ'2&e#li l "|!8`a "Eb V2R^"gr*"jrBL6 & n'#b!a22."*R @(98 Ź"4`!-)&r2&!,`r "R3! " 2as*-s0! v6} 2`n$ΡV! Ir`5 c9[2Vp8 t|b69a m9]3*: -23 AVVA |~3=!_3>1V7c8;Ws! ^ .Rl`5].E#іh@- B ! KmXWt ]I :ȑ hx^ =T2MՏ0 jȑ!Bh` C@Bm`l`py9NmrL4 VuP u#_S?U2FTRII5Uϖ!&'&UhVm5 TЉMOMU5XEU+)TeY54X=Z'TWZu~|52u\յ覕E5^][]QU^U5X_=n_-_` v6=a.amavbQLbBb)vcv ycA6c]cMV,6d\Wd] dvfgvd[eqbfyg56ge=5TX96iLriiViVOlivk1jV1kŶ0("kvlٶ//6km햯"p"z% omoq<(0a.Ppwʶ jh6qrW kQ! =q '^/^7=]C1^3~5W^S]>im;^}U^s~gw^~]ނ@ݱgO"dR1#=%XV::f/  ̀̀> @>_ ^_'_##?)C-?O~-U?K7_Gs_G K?W_%?_ 3tԘe  2Lp `@hƌA#fXQǂ/btP%At̙4kڼ3N˖Oph14)H}fk'׹Syh1xͶرd˒D5U²{(ty./ T(F} S'0n vXpcu &Lٲdʕ\\bƙ#c6Ǟ7N:tbϤ_rӹ[Fo7kկNxcf9g?{u¹r?w{㥓SO?|ae'G^~fFXd9Ѕana~L=JZ|aTZi^S=VcV@ѕWB,bXV8M5U[QC`h^zF :FiVe\je`!f6)ez)fekQhypr)gt'fgbuZ@%@A:朖R*h^駜viyshzenRk*T$t<ăT4Tih9U`!ң& &@>EӐ&0F]y]O6oFuKoދoo pLpp / tBMtFtqRIcʻN TH"D WZI6*H/5ea0BJzw~ xNxx/x?yONy_y搿Sz袇.OtN2z<)="J+X@nޒEi TsOM||/|?}OO}_ͮrɜ#LLe"?mMoCGڥROߏ p,*p lBPmZ R*kYQwOI67p,l _p4 op< qD,$*qJw(JqT,jq\0qd,ψ4qll8qt?ؐӯ/z}>ra_/{Eӱ}lOֻa9g./ŻO/[:+G_rg}3}.}5i _ֽ^`yYL~ A7 hxǀ(h ~'&/wl4U}򀹗0<he​'~#s-X/@ 0is0/z0pO/(}h` ~h/ 6jdÖ@f URV 1XR\/6j?w0+@6O' ͗r2/oHr G dW ̀tհK/+civk؆hvqrtx/`s2eI6b)eb(b,b0&cFl6fk_ g`jAsbz6C )X/rАx) r/v8  Gg dG xH "?'rr~~tr2,5eUdYe]eV%R@Rxj"VLezЋW0 ut+G-'nr AЌψs i/爈k׌иrАH0/Y*w/pXrm 8vRƁUU Rrב${0 CI g Ӏ{XrBrLYr0|''tIrr38.pՀ{PvO|%r/v ixH9 (W RiryxԠ\yrli/CpsG|Fِ\ِID {$w@rc|Yrirz pr^ "rHyg &*'4_i)iP 0 e0a]gj,׌Cg yHwh {PTYu)Gp % oi ( ٹ~9 ǰߗ%' Yͨ.G0<-ٌӉ @s}-W9ؐOiɌIY&ן$י/7h.g X2xyIr96xȝZwWrp %Tiƈßi 9Y JCrI/$I&O29l}flol@2ɅV ˹rx Пd V p{X0N9udW' CW6# irSv:1o9 rՠ6' 8ICJroZ؇ Rڠ&/c zH~ njƨРΰӰ* pB:ڨڨI*0j}ZsJ qX 0+49wg1:YkrZXH96K4JW Akxڲ/hp(r':Az1yXZxI{ً% zxr!r&+0A /;10ԥ49ր BRʱwڠ:uy$r*۲Z ʶ"ʴkY<;roir?A o9ɸ0rNKr#)1ʷgI eٵUБdKL:wiK#nm{ŰO vJI띂ڱ j33{ عK9 ,L෵[iKE;10E PW ;vk튫,:ە{kx[[ 00wY O: JvɱS$7ǀ쫚ןSY$0Wx/+{L6ziC&יژZYr$, zE xH/)MC<{S+&OĆ7xz(eZ|//2{\:LZ [* o :wJ `C}9P,Z*y ɩ0 O)&on< 7L}̹w 0 РPלy  `u5wurlΘ||렿Uxj)ϰOls / ,-:zsc\uʡc ssWrvxI|(e9e|sX:&}{iyt2K//8u9ͩm|Ԡ,7Ar2}4PÖÊu''\M#aMքb Z[O/֠Bdur֠:j/v/B؂mcy}{lӐ]vؔ-wؐb\_r lco][I| 0U |W۰ظM۹e7rr|OՕĿuCgp],0mJ3܋7ݮM[ܸGx-0Mx]}xt-m ן M@\'0ڎwq'vհ:0 x~wtٶe9 §zz'z} yv:LoNy9"N0lw-qk[qA. wq]C~o}0OoG0Jk0NW~E^0GNIFFfN/0ŵiۋMլq%\]s>Xv^4eNB}%]NXSmεNS(A;f9R @-0牞Ta{ h^~0nF^0A4l8{>zDaU ~F %Cs4&NUA{ T4h>^>4FN>DLe4".N.HNI eIFـ40 &y`y  @aK+!   bQcyPqD U^5u[4>:Vօb٠@! @Q @ @4 $ tZ@1 N@YO=TfQQ4VbOSQRXd%RECW)߆K Mo^/]1o+زW2OlTnW_S `.RSho"2+SQ$`@0R 03nVFP{_ـZ!٠̿@\P z6R?> "hHiRSRQ$ Os% CJp-dx.C%NXE#1yCJdB>ERO6Y$We$?JyR$yz$ZQI.eӦ f94CR;0ԊU+! }]hA+@[]yK-ChtA." e|cc(!O\eFV%ha_$%0+l0֖=&AܹeϦ] Z8pA#ɕ/gNYϽ7s-lV,a;կg9.8 y>\G]>qp@n8K*|ϡ+BlHÌqDK\AޝWyѱ/tw^ړz쇯|Λ=\fN#Ӷ~?& DH@ $%r@K80"C h T`# ^#|`K@p&\! O2`6(Bܰ!9~0aXC>! 'P$(V1Zh,p`x2r BZ0漂_xG<9 d@RH% 95&␈$"DG0d$E^rԤ!3YGN?$(%PN2)U|"G)Yz2e)IyKL*{)LO"<.}fF󕼜2)Mb~Ԧ1n2e%MtJӜ4e"Ġ ڡg=yO|S&xWh(A:A%DT RC%LAh(D#. Ũ@QJ G3RT"E? Ӛ4MiFWR4%C1ӖzԤ8RSUEZS^Z jTJլ2\թXԩnT/jXSԫ]Zgԣo5\:ԴubU*YU׾U`k[Ӡ"%b؛հ>k`VȺlg9+ˢڄ<W:hڲd!$Bq0 j0r{.`Xiqk:0׹VEnr^-.w]W.t^zW xҁ=~+_Zս.t{_*Wrn} \^7 . o ?p%r~cc:2$C? DADB,DCa؎5eVBl"#Ya@Ņ VHUĂ H(gAZU\8ܧ}zy&j9R<:OHɽH gyx~t?op.$P&W " R.TSd ly|B" I>ةآ(G$@`UR,@".Y2GvX@`B, 8C L0ҿ_pH˕͗K3w!lBa)f "#HL 8?flŢko">!N_puk[Vh]3 Z zy8@P< %b0>3o~@zq@qanvRB1n#Dž)4\,XP"MyRD!ɕ2 w ONl~Xv@~- g42y@+͗\LD*A aD@ $<B AT:18 \p` Aa!:b""aH4 Q"rBj]H#-r9\@ 2G1Qu@Ơst4]k=Kut}c1fa\E`X&cX5V5cX7va$^lGXLXC%#W 1'"O%zxb:XF&!!%^'_H$ɒN !%2I IkHH-S>iL&m O:ňL $RJ5e?2BQͩ:ZImvP/S4u%͛Cˤ-Кigih/t ݃EЗkw Hb(k{/LӗT02goUX**|:V~TUsU?y TU^V}FUP թU6RwRPQ__c FHTc!2eXBrV,kMb[Lvv/{LSCsfffqƱ9ٜJ! {--?-jf~7zھbrup@,:m:u 6Qu>cy Gm7046l18c̐ckihhI'&g5x>fob4ekVyVV׬I\,mWlPW :˶vm))Sn1 9a%m;t;|rtuvlp4éĩWggs5KvSmnz˕ҵܭm=}M.]=AXq㝧/^v^Y^O&0m[{`:>=e>>z"=#~~~;yN`k5/ >B Yroc3g,Z0&L~oL̶Gli})*2.QStqt,֬Yg񏩌;jrvgjlRlc웸xEt$ =sl3Ttcܢ˞w|/9% pHYs  tIME*B IDATx}w]E̜vϭ{ovӓ !$$$#(MT v^P/(X@l)JQ" $$&fy8eIvG}9sO3^bx\u"2(2(2?1|>/5۶m.JJw[8GD"(EȐ1@"Jx| "PevWFeQFe[1f۶R3Muw93 XKaX8I!`LKI$rEcK2(c1@ ) %4۶4ƈ|"CG-Ryˉؖ; "BG"W,I W bAQ af-ўԥ nB-m{d O\1E{__b^sQ"([ (c/e-bh?~/܈(|[|^\+bo("3dՍMHIJ2Vځ 'z.!<6uVz7~G=hƪt*!hhJ k^y gYER*?2sD2e^z N8>'Ɠ٢C#"*iIbJpr:6m_蕵ղ?`d̒^!-HԢb*QNStÖ1%M; ;L):>D1끞HY sLIB2n ʹ 3@3|'Ui,[p}|׵Í&% l)/Z< EOx*1t`{̻&殗\3ɸgKLn-h|ՍMon΁ QK%_"Ce?ݝ'N4A׊B͎FQl߲g2=_g0*OVT؋CC+Wi>`,ʻ׌mL 2L1u{1˲9h4:LvXB`KKˣ>z777uGm8nb CloMiFR)%Ht'g;)RK-ТR. Hrb]@;N顥α4ס!]);nl3ea"Rne%L1w=|e]x18oυdӌ nؖjynz]At䆠s͊Lsm&& +Rܺ݉͜Ѥ9C뷶 oGrkXo 2ܶic/}/Lkf߾ Ӧ\9Ht|5mhklU2OLT5Dm䪎tφ\*M1RR>5UzS.?̑O_9:kw> z:׽mg6TDt.^h7˽e[^LT笹<}ߋ['L7x?+iԚ߹g_u5-^vo[ɦ}T@mݸӱR\sطN}+.>jշ:,mY+J;-]:(3KAPu-{{YbOgbgv3K{׈,oQ?J)4_{s92LRT*L&D2bhtڴiR˗Ϛ5KӴFQ8NCodw3uoɍT7hY}=^rU7iK6l.G|Sr\Z^pE?HԐRiW~uI\;m ʡ~ KyJv,7~) O~퇾yD}7/޻bK:▟^UC"E* mH 16n"aFS]yӲVϗ|۾?&m/Ko7_vhMV}'.y .}re6 m_5_ou?w7 36Ծ၇Vrڼƞͯ]}]E3jw4^mdJe^{г7"1Sp/roΏ6Q;횳Nlt5P~(_X6]`A>ؾ}{[[[[[[sڴiTX,vBa&q+;8p/BNRD̚ RG5 Ry$bgxvdcH$bd2ajfPI. d2d e1VUн3|Gxv:C+\zM*)ǯ"IWri{VmJv78⬕9G$?Q+=R%˲ɋO:+~sUGnG'n9h;R 3/e]v;<񚿭=ခ};m7^zo.qwAn/yxoh?7>qM_|ԭaJ\_}ϱS4%Oӓ8r+$Q,~x̞M՟h[j<377 5_za/l:ط=:;k=^j[o=~s?rӃCY.=mμ_=,iᙇ*;}a:>tfkrō7nVe|uF(&f 1:\HMm/^k˿u$_{[~?[_ >7}V7K7sJΏ_Fe#g[DT$,Kݴub>XJJfjd0Ri!3CC]( Q$|Zd"&5 vHRmnTA&!#nK%rB.Ϊﴌ2BPĺk\{I7|}r}U*2Z E3'Vwnj>;WK#5_t͜^tS./Vӏ\_?u\{[[ar.s)ϤJ hʹsgzҬ1T{ӽw=;}C'8;~tm[gK>>f/$;$}o8ȴS.^?5,"af6l,=@= H)bLoYy_u 5%k;# ο/znƖ24ebUo{{^0-sɱMP?!ituH@2555LfѢEDnjf$R&0!X$Dj{my}uTCmewwk@Bie|x 4`9}@#TBHƤ贪]/l1["ގ]2U[[\Ԋ6֭-Is;z撖Kw}+\A֚i P(nj5tr>2(ˮhTRpDdxnMl그ھSy%;6?~G||*ؼ߼_N ])rrl.P_*dAmdmՍ==>geATx3?{g/[yৗϫ,9"DYY*jȈ۷/_n+7_S,*ŒOכ]ko|xf;O8כ~QʔJ"*ύe/ӦM[v+fϞmƮ"n߾}ŊSL1MS1DE\wHVD׶uOZqJJÅ$1ZASOݸYX'7WvpV#  !};}7n3s6ں,6,A!A92ƦXm'?Uwo.u)}[䑞G^KO3c*/_L.x-?UۓĶ]VO_;UM߿ bm\~"̟{X_.;i#o P_]틮>vIv5eˮ邓'7~|Cg?+>sW7?צ<q421@D$3+3%_!'\uU9+>m~?=ireϞ@cuύr'L5.O? 1\#-/L6 O0R0kjމLjQB1cִG?'] N4Y/_x܉_FI46Uoڷ9]w׿o\pg%^_W}۩r'*'J Ve+simm}ƔBYkx<%;+;ιTbFXLbY O.- G|Wa` d^K2$/hh(jDDĐ-C˳;P@MYy(C*jeIU5i|=bف/ %j*Y _ujJyOrîJRCUt2}.*Sy~Ume~lIUHϝ]gLە*?r?'堊>yپϪk,( yƵ<4WfɊ|`|Zfr~>f*G[g:4mIe: >pI,U֕D]''?$/7W^>P`F1˗RCdc*_vbU1NˠESB@ o{7ᒟ|IH>C) |V][2P =yiUd]FS7/eue Ҩ t{We/sѶm]Gc_ tp;}BMӤLu`\L$})3wj/0"q=M ,V+c;MJ),b 0F; 8'ZFyߥ QIA1R0E4BH5DBI L D®G)$2׶{%{g}hF!_R"?^\pQ"P5$@H4uKƚ>r| 18gJHiR*ōO=-&̞?^9߫Txx$ k{GNu=T J!23RR j-aWu1 UFMqJ9qcXqRqM#)03@  )1R H!Wea|`W3L^z]51 r*wR 5kR I2vesv`hbH"9eEW,*Jb&+hUE#aH%G,;<8MV$CeX*fF ^tJʳVe1tc~J2(]x>ˣ2=L5@ Q!w9VޑM59cSp=EDR#b:Q$iii dB,$B{t]uǿۣ9f ! Up@R1{^qR)=G1yq9S=MvJd~s7 p7anE?;u}scTB1QrK޷TI0*0gJeI0ze$@4@F2qHiev$\%`g{AD]oHࠃURr8V)]7^eG&5M88T=utE%5]o1JiuTB e47GH1HӴΊ }A) ,{oDsҶmn[cDH;EQ>VcP*ń@d8"'`HbZY*2JpQ iR1oHRA,ڟڑ!OʈXTq,"2 #۶D,2Ms5q$uF4gQ];WWz5%mGl{pʔɻ˲| ;o:m潼|>JMּiêa@67r?6ݽL-!{a)mۈ8$,+lSB5ε֬Y=Q1&u]D"omݒ C^߿)=yt (T=\Jw# F5PwU i!`L IL(PRu=ZwߧQFe,D,x`T .*HL-yxPҺԌx}~# SW_`>kJA :&XD~ @Q,We@_HM$,+d9{D)Y]]],: MSs:hT*V^bY?7JV@B+xDJVb#A%KplƍTjW^=oLkB4ieYKRɘm"r1ڡwCu8cA"rzR\.ih=i߱w"D"6G)eK^vD8P#? IDATU,N 5( D3yG-yEG?w]IƼޞzIbjhN" pJhooW zY*2K,THz{{ %UjX\D[e7ߌ,O+V̝;iBc[{{<߉X30Zq6m8JEl}#`2bd{yWIm3NؿZE>h&X,168j\hKҶm[+++#XDتysB`1i9KRjLZ5ZVФSf;B5^gC9qLIQ9kjiks{6gmfұ@PFܲ$ gD)|4efkzCfˈ2(kLLhg?2D7Jv}`k/"~%@@J$H9HC%II)D,sCJ )Dj(9 )R*gu#twU) PrV $@Yw2%LFn)VX At 9+Ȟ@+UB }:7Nڏn+?rγ٬iDbL9VĉokjjO$h ienկ"vsugajk%Ej.ÇƲFlTSS"Ȗ\I(w( Tcʓ*++ǓBT*I1ɔju(4:CCC%0C++#qB)=¬@ pd!)Lp xN8l 1#uL\@dw[p)(ӭzqG.<wΥ TtSI7Ձz7/B!]/_\FDk2C׬I+VeQvvᏰ`! "'0$@$ "dR4ԉP,eFIH/HITwR@J~=`qMSʗ$B.) IAD2M%ǴJRJ!w0wіtP.ެHEr"Je]fK#x?^ ԸX2 T)BP9kR\MA*"AA$øYiիW'nc6W`Z-7wΜ=pY튘"5s3ttk sƁ2`:#xq.ԽVJ9AMMͮ |ܚkj5==N>II AәapΑ39!c9 hZua#8+ LObkV,L:+۞<e!9Gd QcC_;?d낣!<ڊO_OǂwU4@v8Q_9۞{vS2bq;=<Йgo޼}JPǬHP֪A)(XeQ$a1bX'vls*$5iē)8SQh\G2ύ.RQ H԰m'HlP=̤HK ]XBPB);Eyƚa<8y*a0}T,oDP ;jîUA@ vCHw@o*{g.D"k6*$QU)+R=$UTڴ/K%=2 )ro8p5ʲ(c1"%c:)e}}nJ)ƴ)@()X ݿ=aۺm}}ilL "8dPH)-xwl2pUMQ!P]"Lb7>.XxG$JZZcUd<Ɖ=mRd\4d4S­HovX0eɋ'o6*0 A/&ޚCwOs949).e㐔 }?LݽMMu @*Ks@(MmeQƿ- U___G:W0S-酎, I('"R qI "#PIR"88Wd-3#JIEQ‹ Ѵ,3bCwvM-a.d]ӳkG(HIFmW(R"BΗT˦=ttv0D)H*,!0qzz{Y ˜ E@$usuoYVrF}-[Q7' L\z5 5wSV 7*I6QU- ̜(E$s]gZ2"ڽE ȷ*=Y*yHWHah E٢֘0:c>T;^4 x lkH3}6(jW#y.wC9Ok<嶨 9^& W^\ |ۊ$b1+q]#DSXtX)tuui}k`B'F<#2]')/T14ߗȗlĖu+fΙՕ3^}'HmcJMcmDB]4`@G+4ģtPO 䆒UIdHR#e`OR c, EJiHeoR*|'R Sj<;QF \ʑ#E[GR` Ri[\ G/}°(_ҘRR t 4:0ʰkWyUahÌ 4y.5M#Bfi"@U˗iᾳfr %Kq+DJ":(?)I> }CoWJ"JiٮML:F,Nc_LFll 2 ۊF}Q/l+yƐY_3IQP!7 ZsM9ް |aDD"{&S]*~Yyo=_>;?-rb3A,H ߮[c/,be@fYe[;?o~ÚDSr1SarX,6^m{0C@JE}n6'1P ~ufOlWM~pNt^^;eRʲLR vƱ 2]) 8TWoUkӏ>*W}`$Cr׮PVu TH|ʯCxaG< 3 | FL*8%9(1J7 Aaƍ'%a0wwYeQFk7RHF'h1VBw);< A WHgJ=i O8<´S[P sΥRf"gG |%%S;eG !z 9çy_I$*tMS*Ls )}2a:s0Ck Z`krT,B&b#Z|'ִ:)Vϡ 8T ;fv$̸6A1A_9ӫ#~WYBn `R^)`hd,ȉѳFS 4P2!ߑ I3{Sm᪱rMQGEK Kׯ+~6]pRJ BO=|&8E*߸͈9cDj'w" )ATuO8w9}}O?ܳϿoLf0& uiYCC ȕ2˾*+AK)@ʒF$"C(6N_|$r0mˉ0w^ҟ&ʅSD8}4 @Gr|&ξVM߼~s>zo/1󓟡lNWR1뭎`yﺅ" jF EȢRA*U{g/: U]]sȡl۶mp`q:8|Gػc Rd@R()s޻ A-,>M?cf =:q:jG?c]8i3-Z㓦<<mt1D A): a]}Qєߋd3:6q.p}_7nZyiE"&HMZ>F)Ec !"vǙN64ӴHs\chA]CT^*[eQ, Mh4C9(޻ҘA{(.Bf}I" CH0@TJ)Œ:X<FS:B" `L,R; o'1 B.0|AI)|74>?VQ&<3k:( :y, T$jD-vocL/M⽚ML (((,ggv[9?0m^~᝷< c15dB_:t'*VVH)@ # h8@D>o-IqOB0N%k@<H 16(bc W^۷{Ǭy\ow}LI~^κ?B)5vQԀX4 ƚwmٜ\vQ^ir ;BHxq`kބ1(H裭}MgU8tU7*@5Uz++{ݢ<ϭ]!@F 1Tc>VPek`Ȇrǟ7>>o󵵇CP۩u 0 UcLmƘ,lD)E+.rrŞ~0>kئ^~E%) ˼ܨe^ʠduNxu6s%c2@,SUQ0VUbF 5➺A!0tn0tRg:;0b MkwVUUEw]+>\1šxEA4tN#FMYz$#LcK@RU fF m@ ~I19Ka 5I͐N߂ 8 NySX%ϜrN}~^{C#}G/>Ͽqϼ0" IDAT|"͹8%P]m}>OOU:;:\n[RZrdE Meu0KWcz3i|n;!逋7#ј2@;HXҺ؟1A~Iv#Rb88%]|M7b&`a`  S*5Cɫfodk˾= (2@,ϹqYhyF1r}!?.!@{%{w'hwwE1_ GbKu"WՄ}Nݥ*DQbE݂ g㗓%*PAB)j,CF}Y)EQ`DB&k0F F(j # PwI¼H%4 w{{|=7E5UuMu`!iY: !AT AjW:$z>Hhu$WrjJ TeLc:Td`,)5X-AǺV8kEzs!HXhOhه7]=>Ԓob^u:"ᄰ={Yr9ks KbĈfS6A5B)Ϝh4///0 EE`YOY210luO"W)L h 6r;,x|c?Sy͵QF P <~(;8C[9u߇\  # nӾ?Zp5.gσPIK)vNՄoaq>\D яW5sd[[+}oLeA=|a8e6m2cͶ`ʪi ,X8&a F\rX4 X#PA5FIDa= K R!!B5M#Lw:̊+Q0%1 AS` V&!S&5wyٽ{ ?'jjL4 CTM"MJ4j.,4 AGj%c`ҔU\2SUP#8̀2fs2nTe<( ,H`Q6| f\_wꖶޙaQg"oUK.?8?.s)ty%ʪhG~$Jej,5)U5X===''Y$7W|c{ww7Ȁ9ۃgF1QĻ; A ÐeYSV|!!n{{=.: =h {rT LcbpN%bBPY <T@1%`01:t:Q;-ΰaLJ( z0\.- vH8AlGϞcYyr^Ͽ:iw4nWsoڰo7 }þtѾ+¡dQ)7/WQ'NTEӴnSoHBxqt g0PśM*ؔt' #_.`96] (J,SbJ 1, FfȊlI/p\O^1IdQ&[t(%Vpc cA`ϸl0!FM];wsΟXSScԀ܌ e,}}b@@ #7طgKzVyR-0# guw<!Yekw&EBr% vSX\]W `XzW_p8~?Niϥ"zӹ$<cL d#n ܼP ǔ@-gJБP( /3n.`ܜ1_) Y/^̻m*RdTx)$rjq4W!Px@}d?LW)tM5(A0cQ%I6(ܳ &N+*RBXL y2p5̢ȩ%(Ip8MX ZD&BwkE(z40{46bw,I(%&^Ok" !F5tA z`ʂ g/ZJgα#V OOH6AX4nL0:+w6] `!ROٜ ]A!U7Tݦ%AK*+!RBN«$I~|=7s~nLĢ P,QtQ@k >Tg;NZ,Xpf X/RV#DNM(Y*iPOiL'`e>!JS,D=x'c$]F逪hIIh ,X8Đ=G>=|';qGpgDRR9<"xi 35e#fN#ċBJ;g‚ R X|`!(Eh4ޭ@NJq2Z`' UbO]kժURa ,X8ufx X"Cu ,X`=qDM7neYHƸOD"'e^ ,X`),QPt!r1yS-K"(xO7҇׬aԟaqC$I4,(y:7iҩ8B,ڜF9ud`'>P\q$:r=( !/V>A(cX2Ԥ磚Y`0LŞr2Uyyy./ x>$uwwOg^1p8@0|xs{D"mmmHc\^^')_oI__ 6 TՍ|>28Ra~__c,''f?^ϋI'jm`'a7u' kc=scL%7&2vj8MEâMJAD&!Z01Rfgúy7n܍dG}~Q5֦G"ªBsw/-5 =*הbBm"߼+&{jj~$#Fھ9&Dm럆ns_W{W\r[FsכPsssCCCf6UWUUeSuxKǃ6u̘1ǣ'ܝ;w҄<ܶ9\"ey~NNζm4MKd,w7f9&Ǽ1 Mw05GcJniG O$IH$C#kSRKsȝz6L;9xYNa~?J4pgXm mՖ2tڤlr8y`s& hZ+O:;C vԇW>6pUeuyo}g4}3oihw}xkʽ=חV?p;tOԏiOsy6_&{䅗^[۾雷hywٷ]w=6^Z#T)"8AJp@N!߲eK?w}۷o7Es5RFcX,+_dٮڝ;wʲ>OB|G~mÑ"*G#g8$II^t)7Af>KڜMa"ɅlS(ʾ}.]P& ۷oOS{"NgtǓ%aL2~y|>߷o)cps-((Os.k\d%h\?fy<7f1t9poۙ!ΖL6˫ɄdlF&avR~Ny1&eca<2&m1Ǐ6(R'FPTV]gߛҢ<ÈT36 ˅~bڳ/P2r^#/O|ZcwXy޹(<'YRwDH tOt/tvuO[>Dv\EFBA!^}׫rKb&~ ,^xҤI ?O8~Μ9sԨQɊ ?nnnz9sp'n޽/n޼Y4hp\;wիO%c (^Lcaۗ/_k׮_|kll,))YhQss?^[[_˖-=ztNN,+Vя~hѢ#G>?Gyy|0gMϟ_%%%555ҕ+W?޴iy|lG^b֭[_~ 䔕;#F?{Iۯ={UUU%8pj.lݺ>[f?аqƇ~xĈw~'}h4ZWWyu֭]'*//_jU0+_z@ O/_v:{ӧO߾}^iӦrñ`'\ :ujWW[oUUUdɒ|pҥ#G|_)RWWt:s=OQ.st׮]?϶oߞ3qE=hznsΝ?>կXBUm۶=Sƍ+))O{ŋlիW?\`Qmv.Z/;vlJ; nO@,XA"H (++32qOO$I(sh-{\pmú?Ta9%*$)Txg$yM~%EG8nuoYqDQVSZTnҚѳ&5l[I{ VSTY^T4lxz˫+G׹3^V}V:qwn 40NfJyyy1cTVVY?sA!{=^{-\wuAu]p?=O( T円iӦ]|NO_K/}G\/~篿,w]ZZ͛%ܧzjսwy筷zW\PC:8%K̝;!~WW^y塇6mZnnawygaaC=ro/G IDAT^occIfϞ-2!D徾nmǎ&Lկ~Eٻw~oۗ_~9clĉ'O={xW} &?S$-^xݺu |_=|ٳgWWW'|AY[ZZH$2|뮻nÆ &LxGoΜ9W]uՓO>FwM}u]Տ= zWs9g͚5f'Lp]w PRR2qYf׷?;w1cƶm۞}YQ~+1~wK.kx<'O%I2oLiƌ .7ohƌ555\~ 7ܰo>N?|p0~am[tX⦛n:nf\t\[lyG5)SIiIyxω,/Lט̏8f-RZpL92Rhsd!j$koco~oO(zEUs.S`ʹcbلkF[Z{O~??ҥ{}GBx%," ;od?{\UM:k(5u1Upw?p9_?p׭n3(KiL&Lp8.BÝ?jߜ5kֻ_r@BxE"Hoo/Ț֮]vy睻!Y+++ 6uTn{,Ydͳg1b2vͯ+nf9ox6mՙcFy饗/r-|$+**ƏeJ-BLBVUU)RVVpX,gϞu/] /ذaCkkᄏlٲ#G^p_|q%\z#G뮻U---^{mʔ)wuo,;v{~ӟN4e *Z#_)՘ú)՘6ǩmNnc2 oKL)Kh_O`@= h$ܣOĿg`/KPOGhz_ł ТoCt48p~_ =HvGn7E"x\s󆆆5k֌1BeS}e$A;w_p8WX;/-=YŸO ^Fc(c\PPo(vuu޽[cǎꪫvFUUbO;{]]]8]t]Oyr\(J,+))ynӑsiaq`H9K\.]#HNN!$l6d,sw(~JiAAaXLQ]TU7o-rwp:팟x u d9 LvO_Mu 匪{*ϵ3g|ꩧxg`kmmx<\74>kc.qgEOJwrsg7"tͰ+=ƤT3dhLB!ۓUBNmqmT"9=I?rLenpR8)>TM"͔RM՘O-C׵h,js2i20AA àk:_AC7 Ƀׇ+:uO<1k,sp0TU L[[e9^z\JxE!n4E;vMt]7CU={,_ .| ÄrmCh7W^y馛y晲 6|+_SWWK1%0ի_yb1.$_޽{8q7tMO=TEEŨQl`0H&.Q8r.1 >|ƍyeee8k+++_={Ǐ6mÿ]wuvsϕ$i\2XӴ~nP \ >l酅۶m3 {mq.SG|t/0a°a+^`ASS獬\`o"_w<3%%% uuuO<'D&fF"N+ htر3fؼy_j]]ݤIz衫^AXlڵ7oP[[[UUr /k޽7|5\O֎5*zyo}[CĿ4bWГ.MRzsH~hYelզ|dOlhjj>|8cLUUyzyy9>l4iFw{7`08j(VUUUUUjNNԩSCPEEŗeI:::}%Kvm^x!f=m"ȣ>u0#G,..x<\4iҤaÆQJ̙S]] /r`0viӦɲ<~xEQvɓ5MO8x6lp-L28 _sA1TUϟ?^}uuug^re LR[[pªʄΥ1cƍ7mڴI&3g;r뺞;zhE;묳 (--7n\8;vlUUU8.++>|_}Ջ.뮓$iԨQ^~~~MM MMM^7׾6iҤ^x6l0}tЖFHvr_^YYYSSS]]]^^O_dSN?dɒH$2eʔwyomll ΁gťƎ[WWiڜ9sF /޽PQ3gN4iժUSN5-Nf18F7i4Dm,X }>_ ---㫯z cԏ7Y?1c [giرcG}: u:|z"nz=A .uci&.g%yL3q[yL~( Oss(| àjf~y |>nX,n9\+FN+#=Ϛ^Wm  1LUU#ul),޽s7D2 W&>Oe~2dz_u˥( ]>\(|fСdY.hv=Yk 6;vL4Gڵk;;;gϞDGfpm)i_~ᄏ}vB(v***KMd0|+ 0s*CMQv1ƑH+P% 4Wf3Geռ IfRu. sUDܚi pfA~!TUM_ȬU6뷸1ƽUU岦y7.;~|˯2ə*I>&f͙P .}&dfw&ܤ{h!i ^f$1f*>NMСTk'X>ލ9a >sEc28J3 0Đ",RJbFCɔaM!YdZ! Xfr^N&!vtM7nࡈӧOÔnsgOSEd@LN:1Nڙ2-K_ H9hf~F,rXdډRեF^$̿PȢ[Ul!%jݤ 9^ 8Vq[7-GּT^h18Jڜv>i_Q&~KES%b m wO]A(Qͫ;iܫ$[Ƕm@SEٖ_\:rTCn^>4 <0 󓛜2?5eShN#F=_ţͨ1p3<,~|G@>HB;u& R&MMfsw}1 Z8ܗ6X NS1gɚSçmҍ lxy`ozaw|S6Ec$g%o.ݿ6n핒oR+DĮ.yr XT )el6ϊ`$go:S1޹sANسgX`¿*# MHlTWm߯kv̈Mc"<3S"t߿XiCi\`{Xg^7`E0xySCsl ,BӨw~,X!IRkk-[R!#`!4bFPf}qGhs}̈́P(2e4r+>a12Tuʶ2 sCWq+֯-V# ԙ`X+ ,X/7t'%IR?cwEޞ 䢑׵~kqauL/#14(04!ڠizii O̪?~i̫on 2"{]\VRݸyW~Q(͛{{{ p ,X`Ig8h7me B5oR_|toc9Xئ:w4,Υ:P˾}S ͓seEͱ~T.̵9 m^Dj֬Y'ʂ ,X`!Yxoݺ5e66tKd?6t{*C 0`豸ݑ U=ѴQi ^@xbr^/0BHd)zj*,X` 'rf2 Tv!ZMO{Ֆ\o~iY+-Fm\hbtP[ ~=!1 %F|DYH!!":$lWeBӞ= dF!3LR|0)OuߦNI e2 `ߔOEY28U3 3a W,^Yxe*%O1 K%Mfc0`\B鯸A j@dU$" c]E`Y` ,jF K$rI8T0a4nKcLp $cfLXIB":TYNL9y|Ȣ'2!2-?s@:!:e!uיLrT'勒{Y YTr|XYxe+W)y5Œ, ؀:ɬo0 `fPB DX0寁 9 @"@A 4䞕fr+i+W,^MSSYJ$q C00 PA}MeGn!b<ÀlYb! itR #`X@T@ "$b" gO3IikO$I>3·*K:6!/lΡ!w3l{B97W,^Yxej)q" 6IP$&$d& $dAVDgJ玕=CaI(V$H",H K$vr0˜eV8(!$b.qܾ0X` ,zH6J)8A""YBd dd ɢ 9Do㘆J{$,H XIĒe ('{W/}OEA̠bIJ#|9b6'RVT+W,^Y:(dU~1@6I€_;.Qa;ZQ'C#eIcJ? 3@t@ ` 0FX@->v~( e-A%(aT7 @2 cYNZN`9ZxeūS=I1 0F6e[ 5nrcncбkgDvzJ1p Ieh2By>QfPQ d 7 ,Xpz`Pc 7u@Lv̳SCUd_^]6I$#TԎT $2WCc_wŹ!'d(0(dJ(tKJ4j ,XpJ!c4ILE,I‚ Hҽeki:6 G*K=ckv ]GvmjEeY+}DPOt$ FSؑbt:hƀe8llN,(Pdxڧ!F/NXxe+Wg<BvI{{ζ k?ڻq}ޠ&<u9c>EzUݳ7L:oyO۰%JMTBZlQZL3FQ@̀z*%9Gc{>~5 $HmC:a`?Q=,^Yxeȫ,<,z,eͫ0l$7Cu5ZRPxya5^wg]<7vO+DҦMbN-l (FC"L[`%o40 IDAT+q߱z+q+W,^Y:f9c-۳f= )YX]]%VgWΙ+m޺- :l*VQ[Z/izW^?bX^|9͑ngC p LAME5a`Uӟ;BW,^Yxu*BFvZp8*9b99G( *֊hCཝ~#6ޡUT+..P#RӀbj_ٽ+ nGMZĤBH1cYDhT<`Yye 孬2,^YxeD**e0bZʄh0HLr;"4> xp a `wlxx2P*sb?1ЁC)%LD*=c" IY=@A HQEcvB0F+I"R$, bZ SicV Xxeū3WًYh,T7=ZD)1As,j=gl+W=坝NgKKw\=Mӆ R jTA'S"L']5j-^YxeX&T=]sss(3RB(e'a*=S@ BjUT)/9akK7G6yS']HNӳf%D| ;gx+W,^YxbCo2 '?0ό?Bb2J 5(UЂ ,Xp#_Z 7*K 4bS kkZ` ,RŲt&BH4TT1TЂ ,X`ꥣËWA\q'20BF0AO`e-32'MrȌ|X|;ye!'x*%2n'4)elq;e;ϘUTܰ+*Aaiu?VBڔ Qԧ 1a"q,Bu3˒GS2L@) ?(p6qX.(0PjЇ>L&,_EWEEMt]rN#^1DQEYUMj|lyMgW1A$IbacXuyuW|U$IH$r潯T*£_;'W}eZq0Ȭu𸮃>q?{n?ʳc0`% ""= b3W^y%T7cf_7 |>   /C)e(CP\0€DD $$a=쳳gg*:mfzL&d2I,$$A"*W/p_uA+׈rA\@ALBNKgggz3ysN:oWyȔ)Sޫzu֬[ _a/?իW_r%֭[/g1 cΜ9{nee뮮ԻeYnlldM>uBqmABSO=O|bڵaF3 GߤINķ.x< +-,˪z<ߙg9cB););h$IxYn_L2QUuƍ^xaMMpL6m&Gxm(޶mۖ-[!)X4MYj29S^(X駟\TH.BTø -уi]eqk/1/m +.jyp*!thG!!8 E @ HDFP(s'${}:YQUU}>u8 h$n'= L>:O?BwuWUUi,?뮻TU=zw}m]]]w9rw,Z_xe=k֬7rʺY%"{$" R~{?._7轢-ϽzmQb;w Y"@; lL a R"|sw;h/UfͲQ-]t߾}g,˲xUUя~O׿z+w… _y|;?p]]]qqqyyy(ڵkWSS=JT5–ȺBM͕fOΝxkצ$W4]қJ0`Nu cM ߉hUWW "ђdDLrKtfʈ ׳.D6ǂ-f@xckh?$B¡"Ú YWV0asŦk[ᶠi]]]tl߯ic__OV(퓵6 t]@]]]iNb#2 vww3ƭE5k*$Ip\e]W^}sǎ;~{qp8y~W]uU8B\.W? I.ȹU[5sɻG[iw]t͛^Kj+z21%mhmqF"f>\ ECpII bl!$vgY "E8: `͓wS1BBL Sf(U۾sG>F'"d]zK,I6vU\\<|>qf>φ.Iz#E]TUU5YDVX1c|>_4=kkks#`Yanx,*++6%Ks=oQӴ/xڵՔҮ.BFQTTTJ]R{Kv61iM϶-{^W۴lbzxHM+-da!4M/Ak]ϭhIIq>{9 RTd*K@H\dk=1ӟ`@@k0EPݐ aȃG{<Ţ ]!d!D"e>N8 !Mc&4'Iι}jr(p5Mb^wXBMx4=}<33Ǔǘ6mZ$Y~ڵkmeƌׯzSNBTUU]uUJqqieee7pWUUUVetp̥)!./9o?&Y( W*-Ҍ:4 Qh -h^o$)**!,e\XLX䞕!ʹRa }=Ԡ8zR@G3T7U@jerKXG=IB׶K4Z4 l4 O,qWc*dΌ^NN$:렮v[oe'Q/?UU}Ν{WB;gy뭷b9ogmooBl޼ن'D hЍD"N$#l~g\XvR>7=5/H"ݷX|q]qk{W h4(5F mJ=, _˟}i3Psʿ>k`Biڝ^'fO8g\[8Zx}:}Wc*dΘ^Sώ^J+VZDc0f͚я~^{u]gF45MSO~2En ͛wBz{{LrbIϼp(g!xt⒢M*D"mjd[V0؃ۊ 2{g~ #$ (`B"qdf>tdMusLoC_8SBb7"LYw~uѥd`4UOB_QKq]m`948`9Vmyw0 #D"+v5NgJ#錉SۦBFeШ@a mc  "Dڂ<MȔS ZX @g`Xܴc` wbFۅ'>n}h.Bb²,QLUEdr/{/I(H4^.¬r{{{W^rJ˲R8#82V/ݲ1 #_ϖ^e5P@$ . FP $T J6ڷS#o~q_/"$X 8,SA-4M4A Qp!(T\2XilSߩI:1t7ݱLfZqFE./ '  D&%M׏=zp8L͋-?;vl˖-v( P(]mGS"$ d< Ag=M :oI**?2+B}gfBEk%˜g|u֫ƪW'`&uzYs<3z5*bB$r $4w|7lʲYw|oiqy* "@"I@dd0 j=ܲoouY!D!R"L@"ÉF F&Tj恔{*);&wBH9Ӆa Y@ ޗ#4g_RSSSVVr:::ZZZ zoֶm-Z9ÿ/kjj/tV#2x#d 7wONKWݬS"Dߖ:'!n IDAT k/麟" wƅH,uNw2O,>W UŽ^o .We R.4!mC H$Ӌ̪]h $$. ݻmo wj~,ȕ~ *@&DF $ 4W.³#o~4m3˵ܻ(K8I˝snF^=w[׮]kηiZ4]rw]joo_|~DBw( rҒ⺘%sX> X X X*HzrD P+co1IFfԕ ~?2}:$L 6GʊYW Jw!| cH0r!X9LLX,r4T9BUVV(Jccƍ{?ωD⡇~SO͘1C9sٳGykjjjkk?ڵk+**| B~X__r~vYk;J%ZNMfmooʲGo|R1N#)0 !#iK*&LՉb°\{bքN#ZC,0`X1qR8)M|NGΠ^̤*s EKg3O=W魙Rt]~qMO 8p^`s9f͚ITU}W=Cꪫ6m\]]n*++3 D?2B@!(nuRJ1MsD^nyiiiyy5D!r<;!k *&r?"W2ˌ)oN'UΙI9z5~3ƃ ӒeYuc+-]ud_Sp u=$IJ)\ӧzK/˖-bPȎ=Sl%H0* |N #8#|>O4p[v{5$N+09pu= HO?1ߚKO$ Eʪ9@s u &xwLkjju=LVWW\2{~^/|a֭V뮻}+lrUWmݺ;?Yf}K_Zn⮻jnnޱcDzel뢋.6t|E9pJއ+ 1_*6:1ʬ:}zU{EXeej|Ύ"o7f ~ᢇCZP(a "|;kko%9Ûa{|`q8g@Exyet]+wѢE˗/wyaVZfM8׮]k >뚦z뭚^.CD4gΜ9o޼h4 w_,N@m+j`R$ `!'"v I~ %L%AL%H)=u׈xs+QyY#8e✫:vꁃϝt EE. @+5 Hyp86gvc͔d2ay(!TN Lq\gr R5*.vT] ~JSLdШ]P 5``J)lZa~Q'vVU# 7i&(fkXPqrr\sUiҫ0$ ;vOZ{ȡ ߳kD7WEq3W"ttU~#uh̶jM]kZ,@_z}Y@iIS7b8%0O9s|>1w26 DBN$DL0OgG,m=-cK!QbqbmhO%+D€ZL)gX.BIYgq(?`\8drbZ.B,6103)FGqđI(xS 9eyJ͔p8z̭ei Ʌ@ݰbѨnxܮ9s+++Xt^tC6k2% |ExE8΅RǗ鉤Ƞ.k :#1&IY9bp.4`&e`a58|1X)|Dzӊ2Gqđ 28A;J 9ceZe2fY&(*M/)Rmk+ Lb2/HRdhr 1DBH9$<48ABTVVB!,0f B!7X9joarU#8#rD"i:N,xѥDeYvU!4\~@g,&t ,˕БbVuukGIQ$YC۪EKצnB= $!(O1VM4u|r9!D1a8#829f% YF>6ϦO3+3s.i Kɀ/s׻ڵ@Ȱq@$&TQQ(r"$I)8y(KjU{fͨ5 sR˥yﰪ23QBGqđ `F{R)+-OzTGAZ sr 4-094%D 1c|>oCL:5FQYv6 M]Q[3i|2_"t\'Uv9:H0m 6Y1Ml D @d% ܇XNk!eQ_mL.8NZy]CeLޱʤѫBՙ 0_9z5j'?BD#}=.m ̫M-fiyFbS5 "!PDL$R&|r⧽rCs' ɵ=*pVhmֈs#:D(: $C*C8c03M*y4*{bsX8Q^U.Y׫S;_&:\>:Ug3W۸Bӱɬl'P4[_p3>.V./fJ.L!h $$" (X(!UM/ʊM*#H)k C 9AF(𘿼캛Jk058.BE"EЫ<m bjYw{ROYôsvOi&X.*0gc Ԓ'Ǟm쌶{+-n1+sY#GTp&⠛ܰLG",TL]Wdu7C]=X\vlC6Ć!ײ@Q}0oqAtGqđ5%;^.UՖ@:Gur+_[L=J ZRf❯|$q!ɄɄ``r: z B}XZ[NkKB}zQ.xJ(aJ-p.2Ya[c|[[d,tM/barAw,¥K)י,fSGqG&&m#fv_lgU򓝏JuKޓomQ uC#!@@Q.Y"  %%%Ŷf&JAX,'fP`` $Ma40'}䷙_')S|u}}AD.gɄ%;/u-2U~j`!a6YpQ' w' rwܝ e Cܘ[`5mv;?ң۳@yo3q`[ER\.WOoo(`gaq%z>UUd"( 4Mkm=^¸#V̂;H`9zu*ohww7cLX,|}{v===~/K!XӦ:ɞs>Hpk@s@ 6.[nD|镓d${?dҫ\kB3}gn9RQQqࡕ+W,]4B!=ud2y8pN9Ǐ_ep*YYUiZScY…Eavv@ BH]2e(:"}B'{AqݱXLD"q%K̛7ϲS~k̐  lyK\%%%i(뽽Bd2JKK)v||ccm15ԅ 9EKЎj]@"a yb]PHvECeRH18Cv ` AM{g7l ,Mom3JZuٮ  =3(hE${> diE8IWڸrC !a¡x"ёL$ZҭCnޞԒh'A  \ˎ9rx֬&۳3k!!6;'.B'`D9zBP(dReBTUD"D~drIǮJ-[\wuǏ衇ꊊ8`Xqqk6Ms\sMʦ>f80 -୷A~3d6@Ӵ.PU5FsH$/^VTT>֧m_uYT w@ \î@%iEq}CG_/@ dY71pHk_)Ӈea)3MdhMWtP\ ԘfąX<X}[N fzN/,K@I_3gN2lllDDC3f5:zh]]]4- uVZzջv4& 2bX0g64X!,7Ls`1,`l`^ Q26krl"I-r6nܨ{[n)++bO=Զm֮]|r0~_;7x%K}ݮ.4}3={w'xb׮]Wnmm{zz4M馛,Y#[߾[*++ (D?FEpбVV!a bbYViie]}:^܁e7'{~T8^}֯nNҕA8²I3?YlVS3 )Ȗjr5`$#y.fјomBUXvduħpx&sǙΘ^3WK)D"PRRZZ:wܒrEQEyy<ʪʤ={vMMMmmmuubJ{yy}32eC=UZZzWtM=kpBD cL@ pwL>B뺢(6Pd/nhhx/_N)$;אַ>z eelb$ gӿ;k1ʌfr%Y}hYly5dORfub`^=\P=Ã`^vpnen=snM̚S(\QQ^^UU$j"9swM>M@i,PŋaJ\=\0`Bg10Y\)]a'ygϞ~EUUU躮iܹsgϞյ|h4Jy}>W\r]}۶m?L&)9 <744lڴiɒ%---%%%eee^zC>' ())oڴiҥwgPs#O]*Y"ǣG> kՉ;dOLb' 7_:z> rzIG[[[; ,{[Zuvt8x3 !kQd [[[-˪,rymE2\(P LuZ$GFV2eJ"xdoooSS_H$JJJ0n 6D"͛7?c---}>߭Z___> N>O?%$]1l4߉D>̀"FMٰdza{0uQޞX0G { 8P V3YsG9vx1+L66}bMMjFeuexJ,`[[F3=iY_o0L+(DL7H(RK&.(. =\ "^uUǓd8,[n40 (++7ۏ .|#!䮻H$2mڴ%KB{キ_nST<ꩧbxþ(Z$F]wݍ7G)B Pse?5ƱSLC:Ee44a=_0XȦ{^*JV0D !FDAK)kS~#OfD^9S5_91X`1+KBx^BȂ <5y҆aX@, "SBiOؤjjjz{{d|DRM,d2it=zv^ |-Y+_JVo!i ($s 3)A)HU0U\^H!STI!b!baDΌ>UvYkm^÷g1JΒvҚ̇c&9!6I}GMMMBIc###PI AeLpVai\h(] Yp (Uh "/"S/{GeC'4m.?FF%EE)  }Q)D!---i(iE90 Q !!I)\HVvFܶ*ac0k:Pc^YUıeIWC@hpa 498Xe.Pe ۃKI~;WWW*:99iCYvU?R؀nEՄ2;zΗ_ҥ67|ӂ-`XJ(s'58||24g#hX[hX00grjFRu0E@x X W__H$Qd2988(,˒$M7T9W@"kP' y"!D|ٌ>W#7z*f0U @΍^UM)*,(pC)@޹gN.[r,?~mFիWۗ{UUu]җTWW9sC&+nmA]t.eu՛8^!{29`r4^q]OVb]OK%!2J@aʠ`L0C+?t=&o5? !˛%I,9xᆆ;;kϫFaXU rUPrq\B:DaWXogW`YDWN%@)Qd*Ti\>A\mT%YiƵ0`N:'GIR6:Ere/a2K<~WĬk+ xPpz5WaU$<^ v&z*|خW)qYjӫcʧp%msO[ LL K9E;OM~D"aS@CC,}oSSS|J(J(JRJiL?@pZv^2$;!ͺE| ]W%XZ4M6mܸ*0h=qlTU_a|ށfh$+IiyyYEPqѫ7zU^+sW^jBQi0~l^ B EH ()us^AA9w!¤J+S. fȯ6|EK0_9u# LpbU f>4@H0֫Bb!M$F_׼u*aY$厝`Yhr΁4w<Y$z;"(|Z@Dz)%uBA:!M4aޓsazuިC ijӫtdR4m{asM)r/r1'm BBKKy &LS%:BDy'mY.cvA75/] ~]9^ ]'"U1-=t.B]O#D"/u+jGg*#|xYaE+QXsn!H Q(C2tUXuy?,^jj<V-!Ŕ {$#6 r wx| 0}U6Msdd$1JRbg/A' S#"R;* @ %,.,N-f0"i5cAa$6oD="쟞L'!@cuW⥀ȸӤ %PB %7\jj'$dp.dUAMbA|@j0u+yޡ9ani売CahRgQ+~;?a͹kպƴG՛2@׷m}jXçy+;& g-.>dS]pƐ{" ]C)jCËѻ ֬/H7pM/mrOz®2dB$s:t?wE Ѫk0>Ʊq2>LPJgp_³Nsᅯz23(*lYiP-\u 9 Ed]sW+'tB"otUBӐ[H)f&Irb8m'ăY&b3t=?,x]r]v_nf8\'9XM\OzlfW pbUU[*T^I纂{jUrEfWKq׫c^Q׹++5fj+/덶΍^e,.o|ysj5ڔhɮ\egU0D0iF V'Lh"frN(sҷB.BH Qd&KD SH\퍰 x<z\k+vde 13ɱ|VJMNײL#F0 t힞C=^z)c4M!eVyK*6|C^[.?[Q;0z 3+׫X'5֫+/TV?k<m7o{v~7z^%س{|Tf15v4M#(I,6!DeMbi[n4-V!"X!"X3@H]x]?~ Q( s׵rVtjD#N/%f$FP4+ZLjՆYR @$x"XS0LX/i]%`KymJ㎁gvncoh.eTE2IUUW2!DaYG E(i7QG `7GzEOqYl8i@rTlo$cXzK.gygKSQs`6MjU1aBam;Ϻ8~UVKm;n!p ^qHWے ""h.d2-K%9刄RDfmmmhԲh4(*K#P 6"`" X@((2L&QUՎONNq'DFDs>11!PUeYX[SSӯ~5ktttp%I{zzz."ۮ$0ID7M3LLL(R__oY"麮(JCC Iu֎7˝zF>575es">44d[udҹ'r 6=ztϞ=e)B!DB+Df i 0M^qVS5m%XhR3 9m/0!qJPa0ui(llrRjy8M:Ap{蜫1DU3UԲX4OlG_yxPe94gZ_-L#\Gu1f[[[/ReY|սo''' !y:ʀ "G@, arV=Fٳ{nM}+K/}>777p {o~.|kjj[_|}{7x$I/:::~%K\{zzzn믿RϮ_oKRw^|N;kuG?Q{{?Oݻ[)r駯_~wq!u]g>q7mo+5 EuPx ;JRJ *N{缱+[p!s8})?叚[faj}@cŒ|LN@/OvUUq?E8zR,o(38MW7IrcfTiS]t&NzW!9e^@Г],McnoK۳=nz5j=p.)l^qڞ 5F,qKZS3d9*?SO=uUW-_<w}Gilley`` ~Sr/}g͛wv>!%{XO:227|_OO7n-oy|WljDw{\3شiؘe麞Jr\.[hnw˖-_W/뮻nxxsW_jժn__VZooo<[oݴi)yf;쩖E \ ׶Ax,\.$ibb,l6%(bf!C Xf8)k/V !X$S 7vt@^$_nЙ|`!rۖ   P~HٻkТ=7؃[BB}#!( pX ^y[o u{㜧d69-K =kFQM ð,+q4}kll|m(wH@P(J)MT$BX,t]7 1Ŗ/_O0|;?On{'H@ww[[[MӌFHr$Iç]$yGoRFb$eY;֊sf3 ԮSO㌱d2i_r< 3eS<<nJ( X cPU"/8P!pÛUR٫"S{e!>.B,/Pn|:_9Vל*[Xu  `ޅccch65-\m֭J*IR"DU)D2i[HdY>xO<~wtt /14M{A;1|tt>UU=x\ֶgUU2ɻt:ibʕ?k( ciq4I͛c>}{B]vƍ;wD"\Ά{^{Ma 2 +MOvz׀W^^94փ4'+>xvW Wx[mzn5@/:zzfW>땿ԬWuehN]z6t:L:٭"T Jvʧ)x&f(C*+UAD{:Z=zu+W*shpIo=EŊvѣG=:000::4,˒en'?|fժU !PRE@b jVxykk;>{ѢE]tr9O~pUW-]Go7zwg__9s%\~ ,K?ۗ,Y%\acW^y/J]D"566u]>eva@ۿo[Z~+>}xꩧw{N#VƦa!ʔ [6Ϸ,>pt-k֫i`ԫ:s\`́^U`M!@g~&(a14޽H9E*O atܮZ,w+tЃ2 =f+8WnAWs{䏓^{XS8)(Y9p>l;ST"pya\tE^xlĹ.fTB`d $ꝋpZƁeY~M$k׮ݴiS*B.+L&nYR)4{zzoW_mf&ijjWf'''ꫯ,+_Sx;R-bL&O>5k}L&si%D"/}6Ŀjf{$g"% f!PB wog."ij| z#牛}U:3a &I|llLM=JR?IJ `4Pah.M!-]kq);Yt6-bxǦi$$IgSR˲KvY1>>ĄRcƟ~鮮|#hԶ@lrSJc)  Hq 38Y}\9^pi\9zӧi"H3[ns?O |YfW4 3+wܓF rp3$͐ī2 YP"1z7 S GJjm+s5q q]^Xխ ׫ 78tCJ³r>@icѵU`!, (IT,d")+1 KuxߙC{[ i:=ci[% j G&+TQeӨjf'm?>z#jJj ]pa=`+U;gfv58{j CWk|^ֆ.VB*A=j5Z.$!Qg*60ẻ^)6s-ZǿBJ] Λ:Ua;<#a1?aOMӊ<ǶovTF6H+ ɹS!y %PB9~KT40LV.sHVTZ6K튅SNy]@u!q+#\A4JJ'6)Ms c̲zhݧzjcc4忧# v$!UM `r4LaZ`q8\N# ;4"IKf3.z%Y&EG"QF@ ~%>icS~IJ_?2v\a.i9isV^ߣGع=Ó >1N>qPXc+U (+cl||<^gCwTq#n][U;< GKSCJi&?(OB;1<_Hv\J4222]J(rO%*WUy{HjsRV}aOhli_|q[[ RTXqQQBdVIx&vgbqa"49Xh4 FEa}񤩀k~:frW2J)RYmk$ r0=z_K02*`2O<F#\Pں7TƆP)I= 5/MCA QAtHy `_i处 r?͖e !TU(!r{s"7(vxuCOpQrO/ DhXhq,ș``P Dȭ8$,˔Һ:VUurr1( csnYӡJ($ :! E"|vMMVE\!шēϭXy~ 9ztZPB en䤻OiSes" U5N=˗iY" !l## B˨g+T`q a`" ܏Up_U*xUӺAa{>E&A>xlVHdǎG)jfbkhh(3%۹X \" ={^ IDAT~Ww\V4a8Adi 2ioҫt&^FUX0s=7s !fS>X^I/_z05 ``-!8i\aPB %PB J,8|e,]zW ðW#T9Qа40" !&Ugo !zU͙^Dp'{]{p}Tr΀^PQҜIRZ*A 09u0<!MCH?!MCH0+BP^Uh>htqX,%B(!mO?U"!ۡm™>roRJ(lX&u OPJsMeDTJ!@ 5l2 `JiUgH! de6V(J(05=z{KhvڒPR|"BDlfssŋ 3\V²!p Ď6]דɤ,B r.ZZ[ZŅ >|?C@F'ԫ9XLڜUH4zh4-\K/4mm,;֭[+)!Pp <4x!XB>$+JOwĄ,˱xk2dȒ|!yWWibF"Fcf2Y!x]]#\nҥ,gD!i"ia>WA&mn*iMjәxclvթ9 ,/a-UL(e PBH#2F" )veYu h 'B1(J4E h("K$2M˲TUOt(4FQdrp *02EE2VJ.U]-q?M}#CE"qW-cj`V Lk r WUQ7˲&''s\#" T5O6U%(Ĉ*3EFAa.@#*u4y(!֭{zzzI蠄OL`5\ ,FL.w dѱx,>::ZWWG !׆.€߄z5UI3r~LIgV`c9&Nΰќ,sB CcH@K!DQ!N((a2S&r#Y3HKB% z|L.LZ1;X,oy3fx܇r8­.ܔb5Sf?!((/cw)3w >W~t歔P*ayqzrɅ% c :::b=}x.H$򀫕yrQIN?t@|fUUW,_H$P`cSŭii'" F6Al 2isWmlX aPW)VR)(@9$_: %lɹB}yUU5L~+_$T*u?ٷoÿꪫ$IW_}5MDYilh^hњ5kZZZeW7.Y|򆦆D,cut,hkm[beZV_~}x,8'noU^z>)j<ʮ|Ws^9+߾FFS|׮]eEt3P[xLFC+j·zBx(RvRJ1mݑdW/~} >u}-8$1|$I$IQgyFۑH/Jb;tP$\j00E2 `"˲isXwwg~wٲeH9X.KRK"IrlCC}<_bi\v(pUQI!--Kz힌,!_>׫/^ٕd('(  }+PNegւxqT>zYJOiNNN^{/_]Qu߿_looohh0MS#G׿u}xxmo{J춤( MO>|p}C:ԑI%rٜijD$illmttĴL]GGFt]ollLRi9]TUes33i>s^9>i+:/ʽ=gk7Uիڶ|D9LI +IXϴ*VKH{LyRq O!ӹߐЪ r{N !p7٣OxPߜsۏ39`d-g67465g?w?tmvt(ɛ~w\_|?)%tW,L546xu@ebIdBd2"KMW(L{,iŋj;ꪫR'lll\bE,۽{i'z{{? ~_\dAxX6mhhlko?Ǘ-YԹӦhko3Lc(HJ =Mg&IcGZ[[3Lk[$K884xSI45p?Ǡ-'#o:G8hƫTYuM^yui6 |OzyӪΛQ CPyy@P\9fWUu\WKŊ6TL+P$FRR =.%Xv=C1@t *#xGGmErsT'q 3P6W2\3?S?!; -tkӫ$gxXow%F|qigSmO7Aď~죻_=,+Hd3ٳ>gaODrxx뮽ʫccc+Vb?^x;>V9pRB$FlK@\p"4{ҥtZN/򫯾$"~_Br908犢p MMMl6H5ІGH4LNN$'BpJY>M@(nhij4M2̊+dJ(ϫs=&>cFdGԆrfV _]yՕ :lۺ-L~iolljljjfs4bX]]ݓO>)IR2B߷5@("cD̀P\r"4Mg:N2P:S>eY4 ñM\.F['&& x]bhxRJƝ̱ ճp2Br(UH*FcԤ ]E8oʿ0a0A+H 6%!0EP9x)ݽ<B`S' 87'`IKi @n"+Mj`_He̛exM.a3ux5Pnx  T6Cs!= Gg*-D39B]:'PQ! ?1] otIc;*U]4𧪪;wʿ~^pB0E+|s|eY]s5s,kƍdr鲥l[nr6m~׻Nr@ BKŁhd&p-˪ݻgGp ~ʡJ(Κ^e۪ !+!hH4:֫ 6gz~spW6O-x\2]/ޟp ( KUf̸qڍCTcrs^갽#WO[bŊ&ٕ4J($фePp0cW\qŽ,4mgƘMs ι 󌣢0$at]Ka1Ƅ8p N@Q((@,.tƄewp˒[M/,?mK6pSwEH`Zs[`rM0rV ;8w_ 9G$ǧPY2`?!t]GDJ܃5] t ?U?KgIs}w<&z'^A ֫ʾFx8l H RGzMu׽epsk. nz5<_-\Ʈ<##3qeyd3Gڗg?eڗ1?|SJ~W$%I4ǎ,XqfcײoJO=8D8)`%fu6\'^jV]ez\u*`|sꡜYҫXvQT.F!."iO17!&$ZJ ewҲx_|[F HWlr=k|߿Nsfڋ?ƒ_w;?qsʫss?]y>-}5kʜD"D@0Ƞ`4cA ml&qHJ(UE3a}7,h@^I$>ֵ477;\N*F=mUܲB͙AU.6ST22İBVfn:׍/;RsSK%eTpCoZ޿QБɌȱD54/ MR"цG^ֵjeCGJ(#*TDA ѓhtoKmm>hA(ʱ\ 3IOHH;Kicl[sҎq %D60AL͝g^oŦweɑ衉ݲmY|j$޸/= /X~VfbpY/x~M}۟\[Zua.9йvʩ_~B_g[{${B!) a $+ILPC : 37.CaWA&Wɉ93ԉh3iF˚¹A c$g{¡PeV_!*Ʉ²̦UP׾gf7| GҸeB.雄Ra ן{ ELVlrG%%"&H\!L10Nnc 8}[4@H4zdހ W37}p&zBX UE U$?7fjE6-AnqQL@e  JČadRG2NnC t#B E$*3"1 Vd 4C %PB %y(^.!.qg)r$xg,c YS"o@աɺJ(t H"D$H.&bJ}C=x9I8B2B7F 4+dcyR}p{gMkLFTE||WϏN_m}ï^xcbnh63:?΍->>W\.@\qUtV(h41YFp8^} Bp8V,j8N,[}H$8N4F|.FD"X,>mD2\9&L#wo=7ܙ ưξ/ĝwˤSGٸ5ruHqe<>u͞]Id@gxg_gދP!WD(s*H\Ex6ONTZ}.^40q^{p8|ʕUcǎ9344[5<k{{6h2Z#mZ^J޹o뼥qsk쫯^❛>t̝]^}+|PP$C_6Y4`UXf[ޯwo[WŁ,ъ,[i|3NJivoo͛b/^lhhX}F/_D"7oNRW\qgQw7nXg6l\}_ *,c >o=$!`&)jCKRHuE'O|ݝ Y˖[:v7{B` W TBJ TEkߔUhi8V\{yCg2u=[Ѝ u3eYy^:.go'B37}]N٬뺫5ǷƺIfYlk=Zw{i ˸m};=RTI{92ez?>{zAȴ˹jU LB 6^8E6F˟6"LR`̝Tj߾}jJ@W^2Jr-}\eF}8NX}Wt}j-4J^q*zW;!#RK)T>sMJ ukJ r  JfLB6a xLB,H)ѨRJZ1qtA{x(RJDZGAIh`(ZMQ§3,T"\(0 բ} >PR* >S eeX' B qƫWG^׸.ɁcIQ#M_ݱ;>Aܢc3sag뢄TMr(P~4yxk GW\wYcwJ:UWxbfIVG5VL;-|PW+ uJuã|* ǭJc/LynnL&nC6.5||dyW۔_qq'8/@pW+~Zmʗ!@ [gYm, Eվn.oSDQW+ u`To8[H tȀ"ƃ5bk'S1:Az6|oпip"N"aÇ}WBl(Dß输]I䚰ݲ{ƾh4!`zLE]PW+uZ`MOO?o˺NwWJ)IHw5I*1lÉ١H!g "\مFWP> uB]ڋg&G?fϊCV-UnA0Ji:~GK B-3m۲,>@܈(ΦB$L&SI vkÊOw/p%uAB±F]A@ 7ϣRHݵ+CdI)}-Z WɪQW^vc @  LBhK)ŨaRܥDf:dF5 TP%8X0|j`-3U(/Z~f~eiZ,R5(9âw/8 [0`ֹTՒ'ub PW+ uUQW.J)Ss i|Ա-{5ojj YmbO `] uB]uxoʠdz};ĝJ8s}Զ5OB)5-RF)RJ)@II(bP(!J)}r2 : =.{F]PW+՛A$߼+WGfmht-{%˳{7W~FQ!E?jtzb4:x~|m;3SN(Ծӎ5 kzdg 4twps1 uB]PW*"̺4㯏m2Z}_GǞݻݝ/]x?vSe]8c?Nmܲc֝_/>|xb|?= &''7=Rr9#Xuk-O9Tk!,'7OE]PW+vbs'r$Ϳ~XǙ3Rd~zѴ+g4;?0}wv8ɾpƛG'gl6H'ўuw+%dիq絁ᡉ3&F.I{_ڼ>v}wgǚu}o X[n˝"͞@Ph1j='Olڰ^NϞ&kdl%oF]{|kM 'On^sWN6يg'UY@ Gi0d*+Rn /ǢlZQr H&3M1{M' 'FFNM)N^iǺ]25ukS+a k.?@ T^vnIQRB8dv5۵#]&fS{o1LFF#/]|Q;D5G1;v%c^8vB<~홴+V@ Ux0?vh8:3m8% \;vmvHC,w{o`؜w?hss 5 Ƨұ C) `!XiNUQ0I{:˯\ZciCLr961~D2Ta\4Ɲ -`!X>V.@LOO"񰕜 ~v?|z=>Oio=ut&kǴ:D\3۶YuؙL|L:5 pG @  s+C׎hk211aH9sqRgMD((G\`<;؋gWv]6w)&g/LMTRA*]@ wQJ%& ;'ƛǧg$hC$ql˜Nd|LF㍦ۛbJ&ұxxcT&k ш% 3`rl%-ۑ,@ +˾B8ͭ뎳7>ݯ?9E8s0ֵcrz6tlnl~ٙٴ`aàBHӤ\ӋW68vdSsvm[wd21:2*$y,66H!T& P$hPƘa646twu5kPJKB!ܯcuB]PWKW"X5}J) ƈr!Rs)TJJ!|Rz+"d7J)Y7(P(J(Bxcc|9'B|"D]PW+J`2FRzߙi1PW+ uUMW5!/)J*@ RZkRnQJP}\ `U1Cyvq+F p.V{ xxQqxup%j*"8uSaƧ6MuB]PWQ+0QJ"cTwE)R!@J $wHc9;@ |2VΝJi!@@9(_PON ]"`X5ZhXbagӖ?DtUrR4Z1Sc@ #幢 W|,'\-]R.3 ZĢPW+ u*>TjIO I^7 @H&+!G@֐Xhht0c]QOF+' `XޠjE)I!wXR, uB]~>uUKԪ# (,݀.FVE( ΙR (AREQ:Ex]rQTC*6+opES#'zP#Z_ڿuudzi#[]-fpQ uB],2_iej Q)}EK6x^r s@H/9HY-=$cem{<X@ a Q[9IŹEnI8 dBL,%9XQ -*C]PW+ϧ=NV+8@ ~ۂlw^oJ7(\qn@  h)c8[O#\VrȀQW+ uu#Urm{``? w+WObedȨ+ uz uQJ]z[i붵-7@ qC!|^zIe ?c\:X@ Vtkjj*詺fKK/*NV|3,3"U9aqU uB];ՒfzaQ.FUDfyFA pfXSɄ)Ӱh\6ʋ=LV@ɺ4+CBy6ն QَKٺ*4PW+ uU,a^Na'fώUi&M-;Z])ޫ9`CŮU}>! uB]VIڞBP'..77Jf?𭍑mn؉ /kjp9 3nz7OE]PW+Uŏ6a3ӧw8>ٱS77L6~x۞yth*lФUѻ"PHZV%w@ v9Ԧ{'32==5M6uRaT6UJ566,㥫2t>10$w@ 7"Ju򥻱akC=?WO_z ?ҲCp_~6l p(r'߿ǎaY֭[cH$H$_qѹ92 ˞k=PW+jT#X7l]smݥၻ{sa|-9{xfg?Cwvv8psꫯNLL߿ttq)ݻCCCwqmۙL^+Yo8WA]PW+rVVt(~x:#{n]ʅ^;uv箭[s]vR:99iYL$XywD߿vھ;w_~׮]mmmlnnR.LQ侊F+vFQW+ u$ln IDAT`JC)@*FJ6yf:3m1;i)tbjff)L666D"thhի>Ssᆆ{xak"=}y1iFQW+ uUc?wni :y:J·KJoޮ+W9߿ӱX4P(cv(v;ᄏ'B|"D]PW+ `s p'3s Dj1(t!Rĉ]]]'NLMM k׮M$L?h*J&iRJ=ܺu!zKt@ n !D6mkkӳ~PHJfff/^H)8q"WԲim9sƶYƘR-[Do|ssse),@ zN`D"Nҟ 8Y +||_gJ À:wp|h{]4`N uB]jUOG"O|'O VFBhJJ B`D,yd uB]]{ Ny--o h Tj{VhZ5,Znk9w%pyr_-Y*9[73\DZzWKg(2*+ uB]j[Q\19O&JZPޢA>[`+x\ky Z ge>3OuB]PWZTSK\!)B!=?+FyJ/=U\)lڭZ/?m#-_@[+Kt3K/WqQW+ u բL!ս+W䯨'B %u;X{ܷS&b( uB]UAKsF!w@i_ xlp uB]V98' ;pgHr1,¥k_33=%:X3KQ%ZzW:T{Q1E -y^ %dKo*:7~E]PW+Ϲj?CyKvʺÀ̘:;_03iU].t}qqw>QW+ u]1kY iNrJͥC H&^m[JA.KJIq @ +b˗ǣh8f;v,Ξ=N#H,=t{xcc;_ + !cT*ӟԲŮ4p@ +*Or\6mmmF/Rss۶m{7&''׬YޫtW[e:911<2sG}4www_>>vJ'RJ3ӯvхVra22 uB];ՀuGGGciZ0VwuW"հ֬Ys=\>H8J8BZt&*h6[/?Zu.O XYG]?jVNăH-{X&׉\ǡʠPW+ uUQU+U8dff&544(8tzIRJ)-[tl:MbMTM_nffFg_%3t/_9@ q# ׶_z8^N| $P!yO)UO9#X{?B{XWuB]PW%xZUX9q 5GbxWڵ# Zue uB]B]A%|eYw}?\~P^PJ}٧~0o~[nD"%N"A)u]w||<詺Z*uAYKd29߶mW򕹹9mӈFeV[6K+(q~TWZ*pEC}%WPZuB]PWEGZQւCcY؉aY&Q hBqާv߮ڼJ V)1bPE +@ D  Bt(nTʘ\H[";y&I$RJBH"PJ9i F!DuSsϞ+H,o#XT"g($м MP DPE*Bh"@ B*PjA'!(%A*E@Y η<P@D)n0ѝ #!L:Y2aTIx~% HRd飰yP $@ZaM%\r+} ^tQǀ'G'M=_K\c?۷g?뷤 TU[{Z14ׯ_g/Wm4moomA+J鼃Nwf0:ցxrEtμTP* $@@*%jRPK !*#,RJ\+`(A)@ JE+%"L`2%$QJW@&L(| @&%" (' ZsOP@Y0aLla RE1CeRj ,+*G|M*0J ' \҄pIQ&*QJUUT*0܃ࢄe)T"@iiIJ߽QREIŪ뜐tRPe:/&,ȅU)s:HΗcPd eSn-0Ln1܅y1ΙZ0kԹ K T5L=Ruf΋ 둪0Kutiy15Lh @Pyarѹar+!c̲,^z̙;vhEO >|A) Q6}GΆB"N744\<)fǛOOȸ% ビwyb\$W#m333=-ܲk׮X)z3uZ2 t:8N"9!۠k1O !=fP #U&#KpxB Q(Ӡ J*B<%R(aPJ) 0(0&&ƨRH䒘 %#&%.TDIXP#l0B)T PP r籨bD8$x\QB fmXHXq &FԤ |BHWeG @ GX O!D4(Y(D {+'u6s'6E1 + d3O'GKT/d@)9BO%Tk9(%ufl&ʭ0t~Cl 4j*1bB@IŹL5'^u?)}'1=Fg\'D"177F\c=|_{X}kY ͨi<.]T)p(x\L2 1D )5LGaR63J "٘l  YT)WBXOs \5Ϋ.yqk3LQȏYf\a.TaKy]9?  3: D祄 0)[Ԓ(6j:d(ZaTa:Rpͺ J74feY+ťw Bdh4|r!]T;(TT*۷3 snU%޾oM{y|/8-c $|9zCFFF.O;K/񞞞8V5b7nB|SҡV!Df۶eYή{Ʀx(Vc L & ZpTHE@I L p>.h`iA|3'_PW"92 `A sIڀ6WpA<M` $0;w0( H0a-",*3SYBX_"2la_YS: %u}@\Pm%L0YTkp "? Œ_@Y4ɝg03`T5q-aLTgV:>OxqI)w\!h`Etdy  f5{$HX j2fs 0g Y S+6Lh/0=b$n^ufl i0& Ya.Q4L@*|͚W@ٜ#q]BiťatGӧm8RjϞ=w~ꩧ9ޅ8 .7۷O)fu̶ =!ڎ-C7]sifKOjW}[>b^\Y`%Ԏ;\}?L*4={W:;;cz/}ӟ۷?C\`eY㘦I)y-^:깟b  wAROAU%NHU!ao2` +xdF m. $>l|=e. md}8F B/W9d}!#预 V9a]F*+ʄ h&,: &u&3ڹ7  )A>B;E Grr]feRGsхb Eq K<"Mu@5a4LU70 :0 :_ay,0W0 :0}$z D+0:WJg77t˽v޾M0fp xHdݦi:Xōuƕ~ m2)ey$Bd61.F{ON^fLbo0Ys}MO۶mxc=Dm8N__.zرM6Ո:~%au7|8q/H$ %%p!_H?W`Aۢ6 nC@(,lCHWx\Gr9TYaZXFp%4/N*~t @[jbu>:_q׹v)á]}`;O+g8ISŇsί\B) 8fdZSΞ=ں}vq3;;;񎾾k׮K6m?sLCCCؘQlEK3tT<}*"xb4-NҧI)fdx[9 < U q]Q+\ʦ7%礔I)-iRW\{g ᮮ۷o߷oߋ/F"[oSRt:tĮPbbffFwU$Ӌ"?)!DojVb k,[ (Ɏ=:33a!Tڵk:~<H&ų~󞞞!ssaPHWU^v^WH)r]1+c?s] Ҹ @܀;% ۶c9buXz,x+@)M!^UH:jΝ5Jw]@@Wp(챣 K adzz]+q#RJ_{nۿ~;@br {38O(T +&w UK**=/TծUuEl;U} |Z~nZ@O1)|TrJ.Q~o+ j ,kddgs˞X,H$ ;QPW}uULP2~銌@ nX0R]vL&1@ V@kvvu oς @,#?{kl @Diz1$1J@Iml;@ Qe !Rn*=J+3%Wݼg30@ Q+Rpc/ڟvm__Wb# ؄o!S&^$?4qdR-;@ z9JP#[_}翄JxR;/_75o՚'_ ??8=w5 o(@ sm,!p7ٴ"63oD;Ko_ygό/~c?tw?|7&@ :Xj>wRʰ(UBI^zɵ_ү?p|'Z>לym?o|/ܨC@ z[zC{[T"\ӿßx(>z&b:9026yzݳ۞9~o/ۺl4@ ͞s,itr]I7Os_;vm>`6θ+S@ ["=\[[炙A|@(LuE$NN$9kmi3Y0Mˤn5Ld2A @ cRJ)$.J P*N+ N+2(o@ ge\g#@ ` @t}T V?GePV-w mr$"cfI堤Up ӺK92K&Mt\4XN(i:%ͼsU骟骟骟>yt4o7U?]U?]U?]E?Gq(*,ff5 (SJ  d5ORDwRz0^/?GG1X_qǤgHLPE:eHO>=OѮHB x32>5x[#-LGĚg x\ 4+%$?\#49 iH?:nܡw_x[f0Nw$C }t% n:%݁Ӻd\=UU  આx*_̮&=\C?]U?]U?]UV*[hۏT8〦vnkݖPҪM :qPwNc%s' Tro?Gwu۸9F][;omΎ݋Q$7%_OϞuk=q8%`~mZ褖=m8&_2m3@ "-*+ؒ:JO7y?WR9pSnNhVFVwT~ꧫ~ꧫ~g+/|cA%Xl/Op˻pxGbȎ]_t('gquغs_:dlƍ{" TU%;ݹ{8|@-(W}{#[Ѐ{n?Sw]﫲=*ej<7ܴ7c,^z瞹7#y:}?ַqȯWtOr}I){SѯTP5o靎 ڊt,Bwo^Led骟骟ꟙDUMql3"L꺿럥-ouڴov4}E>c;s_|»O߷-~t[~Nrٗ4R@B+0eC/OW/sˍ7sGa}IEKMG=uS_]|J@ڂOso}Ctg[}qʗ[ՀEGpߝ骟骟>q2yT P^?7?b*²c ^.YHZF MG&i^UJ^5~ӫJ@1S7tv$O `m@KCSرaۆPBQq{䴑a=]u#NLF^VO=Ǐo4&G?PHڲH-2[_NY')&{d$N_j}ϼq!" A&bijO_=K}έ_QO[ u:vmk{.*t'^:f!I+NK2⑈a;Faxdc~˯;7w0l*o9@+nI(jͭJH2p/quV9m8!grw 9L(F7 tH?,73O?SV\[3'4I ^UN/UXt~֭hhj1q38uhXߞVfBtvvjNKf|2e^vHfey7"bB1po#_qɁ8 !gN"@2}С=x "=s2F>I'@8S2Iot53)A뻴snjaP9/>>e5v_' @quzkxU1 MCh3:;k9|j-%-?в,EQn /S!e+䌫Ǖo«\]RQهT!r C/?">׆ 0CԂL x\'O]!`SJqDa[.4MO?8+; AB-)|0-qm*D/IQwbki vb&׆]QE0~Uh*X$I$8-XR"?KO>!/s~R@`Uc~Vj 5Ϡ,&_'Tf:th(ʗPĤA}·GAR2<3o12}BEA#2b&KMb3d;¨XΛf W.ŗ9-2}j2vtqTZ,E=x-9!96iy[ hʁBYȳc]2 HJ2Ґ;}4f( m| ϞKY&y ] TmS*'^Z qPsIvr2UhO t08ѳ)dqBP,W^@U+%@> < ;۷aV*®( *t?8""7oO qRWĠb mS‡p)f?h’nW\bMCi(:4 ĺw/R7_=6"4 k7;a?y͏!] )>X J7Ǹ YPDz@tWnelzvM_@7PMjjzTB78c~,1z:THJ8Nmmi~S Q2 /jCl{)!{񈔶ݬ)dY]:nնzS8ȷ3ܛ{CX]x:` DwPm=)%{H_JA ]9a޵ Фd{wa$됣j]Y`\ "v* ]!HR㈽;1r2Gd'_1>?m(!>5Lч{H_EBQWϛ68`C 7lp'?YdiDB\SRbfLڌ^AY* Iŧ1C v:ic$]ښt4@G](3H\Jm( (BA)_%XȦբ`3]*]x[0 K颮A!RmfQ^\x6 SW  }ض]LWeVZo¶kB!¶{ !q>x۶sAO6b@3UƀLJnHD xGG|ntJG@}EurVRA^+bfښ֯) ]51M3L$f)L&+Vx3fb^ X~ڳ垿sPJ.@X&Eo(ޕH(~5ֱ/:v@pGoXv_l2I"`xE-?0m28Vhg4V7h@XSѮX! :%u25.2駟~UW-V*@#W'?EQ#跾g͡D`HW~ڵm3f9rdmmնX,A=S.]DD IDATÎ]{Qpŏ;_*E#}p00T*U-n n̵v~ T )I:,=+TBipU%d )r}C5,7#Jٳgݺuv=z:^; JE er\KqwE>w>tEt~5k#UDH$R8΂ř; %`@,;"&?lێF;vp)S?x)偛6JZ6o|g>}^:qx yNUUm^|y:^l٤I\gPTŔy[?>Au]tEp8b}]Yxd_}T{55W~ ՐJ]u{_=wWwwW^?N:vCMR}/_oޣ .:g}73o}o_W>>, ƶl񬛼go>gl^V4yǔIvɰ(=1*ʦͤ\S٬&LDLn) DE|q7*$[\ \{Ga2)*ۮ*rb9?S _FUUq~|.l„ ]]]D¶m7bW4x!S rg \w(* Q_?ܸFU>&]rgzۇ~9׿u$u${įH$|+DX߯&ߦ'Եm7,u~m.%;6.?}u[aL?.{&ԗwH{ot=o_Ͷ?fkvޞ7ߧEG457]{v\ӧ}eG8:kSWaLhJ(DÔ%ӌ-!l #f;gU9/YOuN_eީ<߸Yx|ҤI]vٟg7aW;~U4$B@Ē]nC.\ou6Z3N'.**R)~%LdٜKIp{vc_B b3V$,"( 1CJ( oۆdFc" Nۦ$Kn[)u][-Wbv<W%{4'HW p"c88ya(ӄ%CDjG9؍30 qN?tUUo+B47*3|1c$IW-yovX(o]2$֪`De__~t;*5]6opQC 3f pM(C>".3k]'br !v2XQbo.uoݽww(D"af+lKwM/g`GBhyŀ'I *qG;|]-4Q`)i)ᅴwlsMP @U w;tb!HQ܍N>IIN{}U׮٫:mκQ GBR;^/r *-G'%t' Z* ]xxܲګڃoˑH3eduĩı2TQYe>X^wϖ)_4N"E $)YHո4AUI)dI׉utiq:Br4JRG46 hgw?A~q")Aȶݦ2cǎ }d2iZэ\ms*ENʉ8HӼFUYd|>v#]~Opv{ tIz>F@ʤ(uN%9"M猗}>Ÿ;B5׿! YP4Eٶ=ٙVFE!8+/U+a;=b5]nהp_b_MӴ BWeoAU]ASbQNKȶXJR*bU#7S8j$~Df/ٶD.]za=>ϵ8d2ŰT‚ f4wHf*0xQg`^]7‹a#?؛H p-j${Y!2 $;á])~̹GnuٷA5}Ħ[q陖JͱG-#OjlЌE6 rp^.XAV#W)3I0L &~%l:l\8o @<.fϣc纇oiV2(T?U+HSΚbh܄{w?@ C9@\4o|@P,>kMPUФ)b^ M.YE3iG9A,9 M'ř ۷cezSX!Y{Y,>FeQ9!5M۵k[o/|<0]UX?*>ݹf6B,;wn=$/IJo皰S˼ MDh$ZzFz ޅ"׽*_\ 4r,zE< 34IQ9G}{8t41! M[G0 "r.DEA[\òh⨣ɑg?i$b|SҐ&mO#B2!=-Ŧ>U-qR ZTi|{n…UƌV&j#DUU>r?#ZHЌ9(ΤR>3X\L=NXUDRF1{͜y͘= SbI4g^AHor~g,SNw\R):b8\~u-{[H#NJŧ#݌sVئ|R^U{>*p|##/C*ŶO=_C( ',x[¹2Z,;Mzѫ_rYM$YvgiZ"wEݻ+EѲao%X|Bч8O_Y˶hCř&MC&ҝx|ҥ[[[[ZZ^ni8v٢E v\746)֡ 7rKmkF،_%no8_8hf2aMZz٥O̜ZqL\ʛfc_{?knqz٢TW};W~~A"MkXF"*ĚUԗK!{Ћ0ܘr\Jw7{Y9UoP8 (GC瞏A9 bT4 U+'QIn?4zXt4 .sO%K"D6r]dl~N"}w{tѼZv6ƎGG;B0M1e+g]˒MK>alx lو %|>!o 5K·F-bl:| |a.{ۋBЊ+FؘH$KE=*\cqfkVϥzl䗟s0hQ8\C'LÚyݫh47ԯ ˹+=r/1eaGݻ店9mRPq)-#iHHryۇνwPs31 n7NYN0(.o"'5Oа4d0H`t1a""y-Kt}O)I邦!B |F}>׳if}ٴ3&zl$tI7t_=Wy{ܥUp6;4y:RynO-4e*-8Es|qޅL^MCyii00#iBæ'WҤ)KW^ӎpx=4H/?`W>V.:XJ$4~"M=7nP,A(-)8yZ9|?#]PUQW/ߝmigrc-Y}/¢K>^u]T.g;):;5N#С8}rch88G24gݷi RϘ1gKl^>ES :+|l,3_t,w '^1UDg-s8w /"d#n;)F:rb{Bζ=fϯ F&17fj_gԩ 񛳇wcѮ~ɯ+Fn&:)*&LeSO7[[10hR(K4sLƎë/"B~%ŧc,  b`fbP-#Lqs >g wn&ѨQHY:S -C؞ K@c#۽BJj!x;Hs~L`F}=@MF2Y(U/-XBh4Df̘!ȂU`%jkY5B&G'DS#pcG;L34MVs$J\olYfn/KpυB!`_-cF޸ƌwh, NMMa=9S&4R47c\z ܐ)fr$; 6hPjjJb`9;# dxULAXCd{[)OǤIM W755mݺʂ=`}8N?Ar4e;B-b^Jy>!M8X7^,;fZnmE[닏)Ŕib2>)C[y^L`R P0hi)0n5T5ZՉN8C\#%!D0x0eq2 DWc"t:gϞ'1U:OzxoF, f͡9JAQ\pl10T#GӀFtvDퟮzkNpgov[[[8Η! ~)5@ dVRX:C!2X<"+HKXz© ȯ#Ȅ mkpRI]rաg#]C6>{? tLq2ABT6oD( ޳0H)g, l 1 2 +Wi"r[n,`L ~iܾMݮ`mC(هx]GB>&fVeݖe5t>=UKJ/tT:  +z:-g|y-m{DW=UL .8 *xr$%:ϯςi4wtl-%40L B!!"/A!ZƑP8 f4 m2 XSIis,1|䭽&LiӦ)S?G,i u؁ѐ&86Bx-n^A?G#^tZ>{*zOM=;-b"7-izB "G@-2$mi`#Ԑvhp6Q} Dpl2)޶BaizGPC(\~IF4hd5t' 8ZXc c}w =^S_BHӴT*ՋU[6۞ U[ZN h(T[m s报g]hkAnE"l>?"]LmpѨ1`x% Pf%}j۷YGuګrAѶ܋}ka+8HU9)7 IDAT)ͧ#&R)uoPPnS;UN3QqI[W=QnZQĒ~du*L:X-E)iQ6u _xN}, d  #6ШQjyhH?,-8&OG>Z MM4v CGLa>FK Fw6bQh4`R)f*`Vˉ":XE+z3/~@ km+*~Sj T jZw2JՕ)oS~WR ;JaX E{w)*bEx_=[̙Ǧ5in/e@# h'~qb܄v N?ODmwFFPR U}{iD  &j0H`jIhpj@ʖlY 'Ӥ#48oaس JD4KIBРK;`50XL8 й ih:B=<%@AI{<#Fe] 0`ڵn ׯF .,{ >?!7$%~jNXF$EAM I]MTW@FC2Ǣy hطS]TUID.EW E#xl2r] fxY{hD-n-F[оFX55q6 h('U3)q:j&C4 %µbq{vi4ftNL(?495P(Dmrh8  ! 7BD4xHlEpכtzw#51^+WGoooomm;wQ+;/?&lC±PN3$d8ZF QyP46 4kMI(\C@4zvidi.>v. #hkjjƍ疥 X${/NHӴzꆆ v@\N6u:kjgB:EM6sLOn~C\r9T `N<5!p‚[&B^Zr] /3@P`ցD FJ~?GҁaxAQalP5N%ů=$˂t"2U(9B2 N6VșxfϽ`0z/}KE(>3~뺞 q}mo1p0M+aWMwa ! ̞@Rv@@]$VbI^YC9,x4ݭ #ZHJ:t `@ Ե, r>/x(c%!a[L~Ne懔PUi6M*FJE/8C{%_k;~6mڴr~Ư\y4ʘ ڌgZψS)n)mCQ8 E NHɴv0M6MAg(RUH= 4i  /HNضIϚFH:T #n[-༖T8$KI)*02?҆ KPN`^~MMrYE͞?@`Æ žosկ~Azwrm6R<(2ҙbW"_U # "0<03T]h(^:G9(bJt9>E#TE ;/СC-Zzǯ*t UɴޥVW>.e>Xpl,wJd鞵d˄k匾Ki%nL?BP:,ܯF~{ 8'nMnfIz: ifvL6eQ mrϿS$wT|UvXccc<ooo=zeYׯw>liXbBi˖6dEF*mgJzL-@+ ]xLC*أLL %6MXex.BeyH{]*8Jeɉxm|*kb0Kt:d"8F`" φg>gT^`*n i9y%`))˵1TiYam" bOO&rI5x`ܓVF5!.c3/Uu'nwf7V3ˈ,8L^5g ?bN=ШQ عsرcʩ겚<\8lY*΁(.$M p:Ln6hv&)N9z)[s=H B (yWw;l7ѧ>Z&d~#sZAi\WO!Z8 \T4.gvw:?<55SԽ^ 6$֓-HEzHWnw7xcŊ?;::tuu'8o[rAʼEw'r8ӴR4T 3bh)*^YOVUn |Gf>z> "׻7?m2{2:=q^pXB8*I{)O|嫩vh~{+VξVp5󶷷3okkb;w(ʁfdbv{wօ(y)_ E-Fԇ䜱d#B*Bnrg!^ϳ[S9nstU>~}GUUmkk;wRXM\J.*0_wUXr!8+"!jΔ^綃WM)WyTPN},uw/JH VF%Y\Dw*k{u't4շDL&,ܲC*PUU˴Е4=Ec9K*4>ւC:ڃ<1JЕp1L}Eȡ0R)Տ%]; PJ0*]qYNUw,'_SKjTUuYs/CUt%ˆ' X!Si,p_ȎOo14jP, 0"$İfJ4AEd%2.X3 傄ſU槺ͅ5\ѥRO=QP!Q>=3  㕽5r[tC# A-aQz o=upU|+2k>kÀFvsAbg,v>]ia<Ȯ[f6Ih_H,%)`gԗ)ǕT*) Ja>SP.33ˎ XbӆĠIh{|{y˝7hԧTyu=}sYӚY ^PJX r{3ad^= W/%uئiKPka9mmΩAӂ.*YUob6_Gx,)l@O\w=D'uvJǞAݸ"A ! C&3JPeBhvP$s>Ю"Mj CrX Yy]jf,`z >}ΥZj<>o2ѦjԎX}Uu4 }4ʮ~Q%GMGUdN]Ҋv #(&+؎AQfRqG$ri])V`r(i1VߢCǽ|]Olѭ be^("pp,8K2( yD>I T^J5ŃG> btt. ERilZ}*"Ȑzͷ">]\][3Z8E`" ^ 0:?<;W[`!O~e.&!n28Tv|N֘<9㘼3jr^xw?Wyԝ3\rk6a2-T rynԧiКW7]!"Ꜯ&Izդ=0%`ͥ,S}C; WB6̾mo4 G@pL,E G +"JRqM EZ^<]WC:Üs98!=ﻟ6n|Πb>u'~"\ @jzgMUwa t ^ǻRU,'0•kabHhcp}(_EѤY V|/fGGG}Z9H _}ÙӰ|d[.RSɏߦmۡP@X_ӎb S,s!N V|MsX.MׯmPuuj֨;chzBZU?0eO|M8tGa.>{ǁŰ6t-|Lxt]k֬ɗS.MW{e86J~il+XE{/utB>g"x!jt^m5{ۈ{q| #<{a:P C]g|vZS8e,ۀ{w, putJA!_wd27h?1kV? | x }&(ݴh q5q̝weXg~zUWYj&P)Kfrs)"Bo6QʄG(D gWJ֯_ȭy^! ҧ;s]>enFYkhi-j󹼼j] ze6ܹKiWW̪V&;nݧd:m۶F-4ϣ[o[oDM褱6ZhQPKcJ:>{ZkPf2G&ў={n =!]i%wP[mLC]TujJ'΍ѮYS#Sw|WT}HxVxU(V\/ _0![&SZ/*^gL/nPRҥ~s=kmm--.zͫ RTCtyJ1XMW12zw ,YaÆ]v=#u,3cUq'aS~wu]~^mЄ,u[[ݻ=ۼy8kbMlt/[y"R&Fւ˝WƑCD=M7twr?xe'OIRsIkbQkl2MEvyWf|zvرm۶xD]ze0xO,]~r\·4 !N:588b:NDRBٹd1]^o~^x//Z[[*̥bVXIޖi]K)M@LXbc}}}De˖q.%۰aC:6p~+4G<;7O|[nOxde>)}o~>ٚY!@!ߟ篿.ug ````޽\k1_9L}^{?NspMe$xt1zdt;J]pnOOwaXNϏt]? ;@DӻKAD䜻׷uq]L9L&S(lwuإZzuIzdRr~T^| R8)Ou]jW1+ҲtҪw򹮛NO>_oWRcJ+d27o^bEKKytF:n9=(AI&mpp_ߴi83=ȩSy睳gvwwMRr95wV'(]R*-\O0$mRx@](q!2P(|! P3! B+֚ C LȰ# $9iEd~#}һAVi"b&9yÇO<9000:::]?|w 󼖖h9Zy3Tʤ!:9S bXӧO"R .[lÆ 磊v֫lܹs:ysFGGth3\.w~wc۵־ﻮ;::Z5$}1?{t:=EkѢEk׮]lY>WJ1ƠqbKūIb8/}(y oزIwHLjou׵؁}J) RZẮ4;pܘ&kg pVnXށxk+$_uWwl(@Y.]q25xC}yŽtzզ{$/ݸiF2Qݱģ q ؂u{r@Lu[ +N㸵U;3$9Cܙ댏/\pɒ%B!Çwwwhf.;9R-+fh "'"JOD49?r##ٕ_vdEou7_vnxGoXo͖-|k޼U qIsLrZA1_7_|#}tް~aʅ[}\aSKn\J0qսwj2\r}u`6JԽԴK$$U DdyBBTL&b#˥R)!RX,:ctڸ ™3gN>Z33M^{s뺮j0To&]-)(m׫+p(Uܛ8qsl0sxx'둑8|~hh(q?Ν;9禪Ҁt:'3|W$V]˗$U8~?Ry4hT{U=m|Me^՞^g A!__pw>3'NؿWg}W_{O$o}[O=_O>lv|ȑniLgcRT*8ٳgx={|+_L4R#tt^iʮWuMթ zBR__9sG}0t;B?ٳgRCCCwnzW_ݷo^kmm}Z뮮}{/҆ hVmP\.w=\wu_Z[[o3/ѣ/6m~Nl6rg޽?яv}w\VIn`Ri0ޔBni ϟxgQt}H2Z0ԙs޽{ z}ۇFt?kWgS-w?GO\wMx_N V۳7|LNs;V\|)7|m>uvv>|ܴiS&9~0 GGG_?7onooz5Rn __8`}'Lˡ;v>|ooLE]+Vf"qR:<#A:6/<844d2K)7lذxxDXZ ,-hYpM!d6n9hY{cD'xOgnز; [0!v 0j^s}ے\?Iyl8kVdR*[rҚrhG/a\nSiXvSKx^&ōl f`cf)k~  ðP(,Z(OٳƛoJz-ΜG^w|&1aΝ{G{͛7޽K_>.\hf]&U c,ge2G_?~y&fk_O<Ѱ&XwWXB&|V}Қe;WJ3Zi RY3DJk/Ӗʚ( MJ Z+"^OZK)RtցTn* b~MbJRD<~ 6ttt?>y}}}/¹s^~zg?fRkM94>>>::j"?ԩSgϞ]vp:޵k;:i|+VfZK"ۿ}32V>B?;~~Ao{ -ZT׾b?#TŘ J Z1eJeHkSCk QooQ"MBjQڳൺ_8SYߡFuhPIjGuGھ$LDƍư\ԽQePc^p+u&J8N__߯~J.\xի[[[WZ8yw[l[;y7պu뮾j/f͚n"\zW_f͚cǎ-ZjՆ zzzr{キiӦz(%ѣ ,0,ze׫ye d7KiӦ7nܸ[ZZ֮]vu֝0kV_<=xlVk=>>n[[IcR#僃J)!DKKȈRuT*5::d28::ae1ȴI&rڭ={^ck+GƳz˖-0\kk+cltt4R(hkk8&'pkk8s\>WNJJӳ`YqDLRK,+v,,Y^D6MgyeyeyeyeyeyeZbŊ+V\Qb ,+VXbŊo`u5g& :N*8$k׺l;u| ԩ L_:U+fbyeyeyeyeyeyu%H4 &l(Li&=fi4N1큪{6uRtjS8ՕƫV# kUw v&FY|>4i*NMBRIS%!> PKW͚ҨZ^Y^Y^Y^Y^Y^]iu-z{lͯMfV]61H)e~<})ed`)~B\.'lkk3QkMDRJK.]x֚1HCEclԈ}e *F40!& .y!p$(IiBMF+ҤQ'rbX]H+ZW G26f3$7 0jHF NU#r$ Tc@TSf.¬.B` %N&b1`MJ'G m mj\y x,LDSLө9SEWd_dlV1?flZ#MXWL!hM02z=>qMPCD B,2)J"r"rnҀHIК!g0DfHHk@I* M!c@) J1Dpd&DDx:ȀtgXdcHZM@46MVUpeb*w>`P,Y:5(IQM6 C*.f"`3Є@ʀ"\p p,τ%y9`], +n@SZ\s@OQ1FNŌw*3~]$dm?C9uK+3 ,c0* CιСC/b޵֞En-!D>Z?AD .Zr9x7^>AW-\,HB@9H A02$"R4 Ҍ` rL&RC(Ii9c  Hk@:*D!C Y@+M@dnDc3 ҚT N 3&&6܍;U0r'̪k`DXS5 X;B IibV N,)MF2`9`ө D-`@#@i6pY@a5Q*,$&*5 <OJ)8oӟ;{0R !uݱ1Ƙy|Y.J{OgDȐAΘbZ*BNj`I3101@j q!g 0j"BF wy 4%5q9rori"FJkh# )Fja<,j;q P&BP t* > \+I d:NMQfr 5pD-Fa@t0!qشTH&&%5p8hb XfScieh8P `e1BhLf9py V\KI(b.(&#13!g,%. "rsh2#YY1lYyE1x.5QLOM1ú1h˳PNb(f-ˀQF<+&NTLX1!Q1aR 50 "^ V)Ŭ)fTdUf#e * *@4PY1V1#N gcbbRdևk:uQ0){EXN&|rO?]RTkkА뺌\.788X,8###>lg0 ] c8hU@gvYgkf=d8 G"B TPPjժ_|ӎx8㺮9x866u]---b<Ӳd`y8rYς#oz}[Ž6sH"PR lL#@ AAjI-@IJ%]ɬV*-%p`PQ{F8+L08<#J0@L) #f8 ks0op !1,f  1$t8ea+Dg%J85_,88K2`.@0p'6(tD+:eHDWBbJ#\RbQ;l<XbXj%y!ϧNDPbr)PX8$*faΆb YŌx^VL3 %ڸO|ׯ0T*}c}c`1n'Τ-G-IDAT9xwϵ}mE 2躕@y3MqH * GҦ6XRH(*p9 VfARBHraT %2|!%)\ |9T%~JC1 B!f8(@PRN 0`Oy `:%#$2[u3`&F9@Щ XB!E MB>,. `bY9\l\2Bw%ܩBui#!T  !)lh#,Vfs# 86MIy>S)(^T ύb+iN1E6qt|Zq|*PT1y^VLQ1K<O&3Vu.0^92S YfMwԘbW]u՗%Ӟ1fpG10ιb3o+…%K}[Gqbh2nh2AAjP 0 ӀMcVQOp y |E(G``#h=0-L:U @9K8o lJK5l3p|̰ iSt=6S\n@bm^iP|"Z'yp5ȦWfZ幢+fYhJ1q*zwID/Ν;.\h_Sl]啝2˫i'^z饝;wr_xÌ1nlШՔy8_y{Gkӟtǎ\znw啝2+jQ؅ ==='Nwww?~u݅ 'nLIENDB`psychopy-1.82.02.dfsg/docs/source/images/builder_small.jpg000066400000000000000000000735271257562125200235260ustar00rootroot00000000000000JFIFHHICC_PROFILEapplmntrRGB XYZ  ,acspAPPL-appldescPbdscmcprtwtpttrXYZgXYZbXYZrTRC aarg vcgt ndin>chadD,mmodp(bTRC gTRC aabg aagg descDisplaymluc nlNLdaDKplPLenUSnbNOfrFRptBRptPTzhCNesESjaJPruRUsvSEzhTWdeDEfiFIitITkoKRiMactextCopyright Apple, Inc., 2011XYZ RXYZ zR?_qXYZ YXYZ ""curv #(-26;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Kmparaff Y vcgt%<Z~~ohl  k bMj!N"$&C')+B,.0F135368_9;m<>^?AABCE&FWGHIKL8McNOPQS T+UEV_W{XYZ[]^_=``abcdeghi.j>kMlYmfnto~pqrstuvwxyz{|}~ -B]z،"HnÓEnڛ4K`ræէ   ˔h>ФтcG-٬u6݉V%pCOFn5oRB;I[ u,c&c"8SuU!5 Z :Kbh[NJ "]#%{' (*2+-X.0l13q46Y79/:;==>?@BCD6EQFjG}HIJKLMNOPQRSTUVWYZ%[8\J]^^p_}`abcdefghijklmnopqrstuvw~xwyqzk{h|i}k~oxć҈'A\tҔ %7H[m}°бܲ %,/* ǯȟɏʀrdXMC;5*׵أٓڂo[D*_7U"x?@pAFBBCDEsFKG HHIJKLMzN`OFP+QQRSTUV|WiXUYBZ2[[\]^__0``abxcMd"defgh_i?j kklmn]o/ppqrsetAuuvwxyyJzz{|s}E~:751* Έs[B,   *$ϧѲ %8J\m}ċŗƟǥ"FfχЩ ,Lm؎٬O޴ BpO0"ndin6WJ)Q$3P T9z}p1Rn#8Mcx:Vr +Lm=b#Kt#PH~'c  b D C P  q <|]F5,(*.=UzH.~( !/!"#I$ $%&b'+'()*b+2,,-.s/E00123V4)4567w8O9#9:;<=j>L?1@AABCDEFGHIKLM%N8ORPrQRSUVPWXZ[\\^_S`ac*dqeghhik'lmo_pr@su)vxy{&|~g=މxA ϒ\2rˢ3Tzز\)aƇɩ ^5Z{$:Pf|)Fc&Jm%LtCn(Y+dV  g  [  m - b <! .@Rm+bKK Y! !"u#6$$%&|'Q()))*+,s-Q../ /0123f4I5/67789:;<~=i>V?G@;A/B#C!DEF%G.H=ILJVKhLwMNOPRS-T[UVWY=Z[]^e_`b8cxdfgJhikElmo[pr&stvfwyAz|L}-҄}'҉/ߎBV ՚[3 ħ{|ķ#VBťʗ&_׶G|ު&o.%Q`;e:Vs1U{Kw._,b I N+{ z A    ~:m RB/7[Y !q"9##$%&'()*+,-./0124506\789;<2=_>?A BNCDFVGIJ;KbLMNP"Q_RSUAVWYOZ\]~^`Kabd9efhHiklzmoKprstvXwy!z|*}w ńj =Ќ`{šG^ VHWϵd Y ^t*ˠ]Ңh4I9߰#ILp{aA_'q3sf32 B&lmmodkExifMM*JR(iZHHѠ,C     C  ," }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?]xMB]-fi8c/8<s5ͮj:fz"`us?_Jb+D(]HߺBtq+8z:+MVSMR}z_OfZM#n^YɇwL8Z< {znfG9RW{6pO#w%ҬvDbBoJ/hI+w~gSިlt9߶74}Ѯ{WMcъڊ[vUfF75ZnkPm'21RGqRvn&MmD2p1h oFMmGt3}ê5Rǹ˞}+qGjէGv)'-_74}Ѭ/.] H}j8o^x)#ԭE $Qդ7~oFVS}bk^94;InomE7&dS\)ΣRw?lohc}\Wo-&5I|vJϲ$˴:M^]*]f9I0y⚧6noi ̲3" 1kZqF*K ,H4?/TԭmgX'%>'m.21R[L4Ȳv3mj@lohc}X_lF75z>@lohc}X_lF75z>@lohc}X_lF75z>@lohc}X_lF75z>@lohc}X_l%KGq?\\Siyh W8b}ޏ{לQXl"gjwqZ[r)Vڠ03]o OjQ[|k"Ɖ0,GZ,>G[ܪWr"տT#iKcv93?wh;;i$Tʧ:W4Ѭ|-m I4VqD p8?k2/<>tCηWAob*U4 4; 8 U$%̚<Sɧ,_iIB=G%K}Ho>7}˹\ gV -Vu)̊7ǐ3֖OPPI!v=zhrmCq7Û:e͌\~33T6iZZZǶ{Y(]C5?S:H uVxaPXVcV]w:̒׏Y1mğ?(Avt`op:=8i2mNq&ӵ돻?:ʭ8VVQn;{y&RQQ 3~ۨ\'| 0Nrrdj jZ~&KݜDW/Buֻ_Ugncw??WFkdVC6ČpsQKsejQ%;}`f0A#$ßggy>s ӏPonΏ'Қeʯ{߯]ʅojխnu-/ŵ(IGNftO: S]d[#Nd=8=Oo@3&?Fad}(ʇ#Ӄsԩq5Ȃ8$DU jG>´7gҸy_ޙsIF8@}-<:=\mP[nɒ2?jրݞMJ kWYRXnn#T\m8 Nx׭­Nxi|2xX5#qYfBz(f5APV[ho-WxcQk}gOiFc9UN҂y"BR3\XmlFzQ o?9;x?7t-yD4Ò$dzX_r4I4ĎO:hg.L4C6$tko?ߚ-?T 8^wG:("E`¯Nڿ_PGQ1w\HU-[M1.Kco80ʃNrj"E-ƕMs=j& Iт,=j燼Q{$myu=7zЂA՝E|o2dYfyfQ3XK%kLAF.ͷlFG<;|6/WIL5W1`&3BO=ARs!6،E|U8C;lǽX% ;GQӊL'QQ(z ztU/Wl_([ӥf0!!#?r~8V+]Zke\3Oȣbu@ :'KmBF,298F6Iʁ2cE|tf%ј-FbE`?G;VigEaD2@a_(ؿ_PZA/)2y_PFXyc cՕVA9%d?Yؿ_QȠѴ[{]jff1oqpN+cBH,m54JJY#wC8QEQEV. tq\^cgP*gn[v9yQEQEg=*{vwmq?hEQEQL#vD2!X}juwy6nmnذ"1 @{b/EQEQYwWQj|1(kIvYX Oe=rEhEPEY'h{>/nȧb0ܒCMa۟JӠ(;f(+Jsj8n>j\FSNMF\},=H&NעrI~%a7첃%!ho98Ueމww$)GQC6hJ/W^c}GoקO?'/׿>1ˏGُ\ oh}?>ݍ yV~s}/W+bu]O$XԫYҽcOk+XVKb6+_MjHktɿ*mjnrc__AS}_Ǭ?RK}_PK\?kǐhUv!@[~ >s}/U([~ >s}/U(l_} ﯩ!֪_?w?X+_?w?X3quh>u_~g?w?$gA4_?w?eo*_?w?ղ?zy¬R>alI'sqV~s}/RijW+IV¬@7ZDM{$wL>1f8RIk>O;0'E"pxstPM>"d`yRH@{ tQ@hیeҶ hlk$_iIڱ,̶*Ye:s1Q.Z !۴#W";խ-enxP𿅵{xmu xIp=#SIR52UOAc"n EScSqON:>T̪rI WDd* @š'dmotlQR9w(8=;X`pA ׏N߼WWq f'#%Nx\؆7eGuP*sm(Ֆb|D8H9*G{QϷk%*dƠARQϷhKF=.K:%0Dds$Rx,RWtޓHjB? WoG\BlX((GZnjSVZnjS@h(?}djV>5f ( Q֒} z/U_B5f ( ( ( Љth 3g֍Οz=ghj]R$:a|̚tnfrwPl C/+S2b3)6Ս+IB6&q^y#(035!X]BV#|D0F,?G EWzGʝML?:z֊ZG,8`)yz՞ bI:1"H =Oz(n?鱙fr#eq->P dimacMdQ@[B-V$Tp:+~6^'v\=ޠV"b9PB}MsrMNҫp lJJV[)j8xT6e;~8\߅vV܉r=LJXbܸ8$$آMwmoJо 6wyG #xcp$D,y'2>Ny8Ҵ"IcQb%:prmEMHէTws\TOGNQEQEVozi}IGjPyC}@5ӅjѫkAFC7O'(| >>r?`vOC_Gyi2hɗO=(_Qؼ``R詼>~O}j?sp>½O'(tDEL(57yUBЅX!B`QEQE(UtjUthQ@Q@? YݟOEPJ>R>WOE}#VjFEPEPEPZVy_-fքLSMe]@B?/@}Ymٷc0ztQRWP[2`MUjH6Cڛ,pCe,Q5(ُJ|{l++@!|$QwG[NEVB }{o5%c}p1eg?*+=3cSqOYgbDg&સāiGʢih#h7eldNw*!xH7=;*8|i’Ew uF\ó;\~xKo0ǻ `GJAm]( PU[K$EqI 팑,3as01=:ci[o 2P3:]\MB[\`0>%v(4k V@#88ⶍoᯆ x..ocyYHc<QQQBP0ψ|U.YLC\epU.s\ ;|g%  ՗,w?Wx#>#Hֹkx#) z`砯x5 ŗ&7SʸR$3#Gp1rAσmsobyǕo!, _8bҵ+M_OLU%[Ȃ+jm&ՙQyFn}/ܚ<*?iUy&U$CuQ@Q@jVo4QES&S/ɿ*mz\A-Ek$EK@Q@WoG\Bb# EPEP>WN?>WN?,EbW\egkɇd&.GoYC$FQ ok{b5?[8qNkI'Ľa6YBw?gk?7Gw/ϥI _V?½\y|W?,gxߦ?gk?7m(o+oK+y獗o|Or?se~jVG _~+uĽb(B6X1rOK ;Y6_Ʃ;d2mHؑR·畷˕w gk?77d+ M5+}y[@ Fo`"Z\x_zsem4,J펙#5bB6ˀˆ9 _+s;(h>앝W`CorR,h)P!J-G¾ vPC+,|8RrrFMx^-/9Ӯv4?і7㑊n ЭtBW!k[V#GOZ[kᾒ4FFס6r-bzכX tOw*tɽ)R%%}v[uGӾ񏉮Ssi#荨`eފ1 b9^㨤xz8O^4c?d^q#SI?3|QGEygz`)\SS$((4Fn `ʅ7dt\'|p4`D1| [I=d:w<+,QF8eٴiUKT*m",May.6SF>ܚY4ң3vXT& 6sqKw$Bsր*ǝroRG?ʣ;ʤZ?:(( B ^C5f7{ ՚()Tdeq6=`IX?"(# UBЅX((GZnjSVZnjS@h)p}* -n1<A5l_j^OַKr{i{A'Vp}+|w~'5a?9>Ҿt]O[h]O[h^_EP8_:}~'4}~'4a?/Ot~ȼF`W1]\~'4a?/O}(>q?>q???ח'x>`WΟkkO~~CJ0}+OƏƏ'??!VhB^|YڽO{̿k}_bV$k>kk~E GVߝhliڀT⫄񏀴Ob\:ı1 qB 1=+G_mGO6`jIF6wcrĢۣj[nT!7+k&^:E<#UOrgAq"2@}5H,n`- Sh Cx?H`g4pQEygz`)\SSQEQET2A3n0XMEVε Ԑn6djZ( MZAR,*=Ax@C O==ȋx~("1ߵ O==ȋx~("1ߵ .`?=?_R}3"߷nvϥ;ȋx~(> > _"/_ȋx~(> d0y2/=*O"/_ D eO/`B@@ycKEy(6;KxR8" lP}D_/GP$XxTAb@\qO ]QE+"1ߵ <_ _az_ʎ %\Tt;H"]PIҝE=+ӖIE.b,vJ]OI M!a!nX=sMlslpׅuf4!İlqֹ_Ư ϷѮ-1m.żrǴg"'JOi#ԣENg2&nVuQ 9^ZNwg:5*QGEu^xh,N?0Tl`) ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ЇA׿Fߝ>C[-ՕC}q%HcD/OPkƍcFXnՋv |9F$'zN!+>/OIi %Kq>%K(߁p3^fiGDhՌ:(x\SSPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPZǧ^x 18|ϭFtMhmkK2'ZOc̽|z\V^%Sv l޸4}W`m\xs/5*)nIyB-l4d*.!+TZdfc++#\ġIL+ѿ3}EhYEP<`)\SS(((((((((((((((((((((((((-gV$䓏.K_=WNA& eF@3\4* k:/.%WN'zwj/lpR;GEF9mnmוZStӨ[;?`cxGNEƣ)C3ma+F?Ug"MNkE,ѐ7m()b̒m*A<YJg'h?7:B$*q uTE}, »ˍ*Nn`!ZT9WoL#=<]jSs1%qoꨨM_7OMJ֪*Hjφӌto=J|7 Uk2xL?E5 _/_M]#zncn?zh$?><__q&l,/0j3cM =GUv;}[T}~!}_"pWgQiL&7;*I0'ߟzo_/~/\]X_a5ۺ}, @ ;z-?vvyo ϯ^?qoj/&}oUGE6eٟ :~ǩOA21#g8W&Hj?wnwШA$H*o_/~/\]X^W>? =G5mۼ?o_/~/\QXoa5+z:)Wf|7v to=J|7 U>X|/gMBkz+L&Oy;!凖+l"@=4}~#XMsUtfanOH\&xoM<3noЩ|E}檈m" •UEWf|7v toR 餂dbGOݿ/o_{<__qmjwH\&5UZEWiޛw۽|@ޚ "FQRk L&wU|ϲG5vzh`_ݿ?iv8?o_/~/\QXnUEWf|7v t[R 餂dbGOݿ/o_{,__qmjwH\&5UݔZEWiޛw۽|@ޚ "FT{|Cb)5UZE |3cM]ޚo=G#ZfݻO-S?[뚪" Q.Wu\5vzibAzk}'T{|CO˨xHg$72[$Tp>`ȮGkOtUnDq2zZuEye6଺.tR2G#3kS_}O,>q?ֲnZ=2V՚8Ē [I.]ԃ¢Ÿum(Eq4"e ;k]>OP4 % Y2b3SBjp$Qq  >QҶE579;%Y`1=&ipzkILfT Ct\-}Nwi4T`$X-NW=>`?]Ϋ{[[WVGFe#< g]YIoFx82sY2M;%{>BM6@VHB[\ЎϨ.I2Yˎln-R?hm5V1lns# eHFew*Fdn7qߠV.0ZJ$֩[cM\IF+<1z@Q58儱'N  EU7 a/T5mNxlϑoqnGEslG??LmA'V)9\]5G,l# TWi݆qToŤenb3B''s#FI}~[ˆۻ4n#yL۴ ӛK?@7@)s˱^—#U\GڮuɑLveLw*G8$v-$ؼi!"f/aO:]5oLnL)*qH#?OZK-$,cҺ=+B_&mJJGÝ?_|o?P1Z#Oms<$ 7Lps{Ai]$ЫzMyF4YkύUs7ڍ6{tG(T\wƸ^v*rbB$&c3bvCO7w d\5.uM $_p<"4@D$pZB]LC0#ڸaK4gp1ҟ\4yE0T;[mWݰsOF?LO< 59 Ф tVKˆVLpEohڜ[: G!Q"*3t{K+A 㬎ép1=gAZړmypܵsHɬo`` VC-)"GW:sTEQ Fk{t,a98Oֺ ^ccUzAji u2kM.yw Y~Se %gݕe$q+k#|\1W_sMsIIJURYXŴOXg&bF '9#G4K]5ť]EjV8ǞOqJl^Uk,o;Q t)hw@*{0~urY,w,".}GҸ6ݭlma@w]΍ /+mN>t?>7U?g[+ה X;n;3W.>k5k»Qܚ6szCG%k[Оf>WA&'7sKBu2UʅWnuWlm6g«jǩ_5oԶnTe9kۅeV tOҰm˘*Ѭ f,_YXޥIwjdI()\=BC+NgDc!H#$q[|㰍IЫ-rW[]籉*.uq;YZ%VCAlS}_*MUx2۰ W1Z&߈ִ9t=Rxiy6{ wd2s۸E (4Z?.G菄OGЭٔ%PFhS #f ]B@F:S < (#JU4)C4A(* 8 ASt"ƛ0O'K~ַqtj~a?_0/Zޢg#kz={֫7F%kVlt(s4H jBWBe%f !)`C#(`@8tUX+9W+u X{yQE-JU#>QXG<&Td9k/ /eAeʏy| gG֫7s5[ȖzVۃ䅐 }MG<]Ҧ3%qQQuTV#PuYyZ!˅'מi4D[.{4qr1A${ ~)EfQEՕZ%Յ83i1\r:-F3 =?ZIIE䍊+  ?Ɠ;]|}?WG SeV8%!8ƁKB `ӹ>_ڟ/آω-0ch>$7G?Gի#SeV9 o2^ghp{j̾b$97_ڟ/آlj-I89-$CyNhp{j̾bn&g?A%a9>_ڟ/آω-Ay/$v9>_ڟ/עlj-I CxqĖ!s4}Z?=?_yEcIiwy_qoz2}h  ?ƏHwm/3s4}Z?=?_yt~T_ڟ/آψAy^ghp{j_̾b$$ G_s4ZHj} %M=~ƃKP0sVmOlQXĖaƏHwm/3s4}Z?=/_yEcڒ@#9-H$CyVmOlQXZmch>$ Os4}Z?=?_yEcZ'9?#ݷȼϧjԿ}!r'~n/P6A>N/W}E];}tbNN/ 8@g~^*('}OM"HA* )7q*('}OS"}#U cd8n/W}E];}tbNN/ 8@g~^/W}E];xW3^/P<v%2yFN/ ('}OS"}#U #d8n/W}E];}tb'ox*WtIzb﨣븟aUwQOF//v׋BN O/W}E];x\Ϥez@ؔW{E];|?Fvn/R/FA>UwQO¾?I^/ :/LX]}w>DpM uc>U]gn]}w>Dp)OeB>De8n/W}E];++Щ_ӪIA*('}ON}#+?|?H^/ ('}O3HuA*>"27_⫾ȎוN|TTϤz]}w>DpO uc>U]gn]}w>DpI va>U"|?De8n/W}E];++׋BN}' 﨣븟aVB2?7_FHEPDHQtB T$Rx?44(PRO?:HvgTV]_\&hI\:](| r;n_*egdGv2bmC@o(_lx]YFdbV+r+`rZwX.6,I!xO QQJ)l +`r-Bx}rM ixg4 zɹ  r'ӭP3z(|.$cPg|#"LQjhp-'ajb@&ג:pE4&IÄ2 %BV{a}5]"e:#"A ~s綘,oHXfcp hxx<0@3TPqm\?5MUYZU0Ta:,҆*#/!$T@S`na7)62O:*S `S$Dj@4#bR@ziKY͏D_@b2%~Q: fԅЃP^*Q!n,or's12i;9O}Zj@O7S"ދd#YPRGM[#eEIQ=04`'8@&Tn&TS%ݟPjJZU~}j(iJclRMGQdj63k8BD֑hU+[uF@. U+֢|f.1V$luhGd}[Q[ bUhD a ?uB.gAYA/AZ׿ BydtnD@P|E.UL 69{Umc &: d 7YxINXɪKbhE񫽌5'x'Gfsupu7׸] A\ՍpfPc@Qe4ћ kӂa4䬋(2 6 g<Fh >/sʪ lMt 5\@ò j0ㅽ\jĴaa9k 5 *Ad4QvM&`@o?f'bHWR [$ z(3䮋Ic/{VVՀ\KM`1f^d0_lγ6 ׯ |>)S? s9# g4x1_ggsg|^}D`1E@' ]gZ3Ws\{fss~|~TgutU(4@>g}8xv}[}҇a gy|Kymwy6 ~ptA ` sxF~}K?7s6ׁGNiS^腄zwԠk#jl(R@q SFtXF}qT|Xqa00r&WRu0lb*Rs]_NwmL18S3 {Eh9PZ أ&B&̀>`*E="[IG cW_fQ`C *x*(6af)0u-Ø/=ewm*P5PF%yD=IIFTWhU|)8}3dOR_gV\Gc1׌Arxb#K'$ЍIRxthGJuDr c|$U|0>]" ~s+Ï7%C` }R5@`1 1*LHt3=(H0N3Xy`S0k W k0_-.l.=qz }؇pXZ@ 6隍 :yb#h b L UJ{i@i;t ]AP3PP cZ5 2wΐ #E_s xY㉜ʩi y9)v!*YǙI0߅i`*$d) 9ʡ4ZYKs!Zt# aInj0zuПZJ&f:џ Wa=Kѡ AKy{q oo< F@l} Z@ Pr(fB7@_>2 wZN9+*0@ * bC` %x4*K0Z K`7t{* ctPӰ+oR5z$ u[*ʢ2' BNƙ>;晦i * ٫ aÚ>,zotG *(@&leP{ 07&  i<[ k*QP:$^HƉgr`&Ⱥ aZhM^i+KC;5Ũ[y #{ 2bkkT8Z1[C{* /6ӧ`تb[*Xm[_귀[f꣓  n )ċ-O FdŜAl*T9KPP:23**Q:HPSUKł|Ńc}l*!`0C Mܷ|0 |*P0½ \w\ >QW=16q< `6=23O?䗛4nC:=GYWq.na)PP`.B> z0CF.C*C9Zp>/q^ M~Bnx+;NP Ը!ρ[~ nn1zz~ջʾN.$z q딊"[  rPr)t_* (!0pN\EX \R@Ipo%PE#! 9!Ok` Z _\fOsi|/0_(򯰚 / P q ۷uC=QD'opMF;r(eH9aOJ 8yLęS(8vѿxrbb[!A>U''@mSMVe"5'G̞E6'mݾW\u 4gZ":y̙WX-[QMȰ!C4fΝ=o& f:MdMj֭U;<3(Fn[N'yr[Л́ʱMtUSHݽ=&͟G^zzq=w:6|-ŵC^z!.[ fi'?T E,l$TP?4?}mrzNG2GԞxJ2v@dH B\l I9 +*n-]w!d=.PXcRmrVi2<@Lm[oI23YxԬ/qJ1N<ѓ$>}ԥ__ib C#\uia{KDb+'DO{#eTfAYJgr|J83΀ 4 ּ7dX?T&h /"i /j OU\t0y'6[kߖyHP

     6t0θS?=^Od gl9@ gVgmQdCm"jHagg>y1bdq8 ,/FrG?}g}߇?~?t?sllV[~چ^t7.mp Fc=@q'Ԥ 9qPBvps`$ 1 pa|A:8~[ Fp>0<<gn4x6n7aq"uDD+7"zM{NÂ#ъpDe)юwcG>rn_%8uFB9ab"}hב*PoIB{0N (9 *.`R2H2ՎM%:Q[# =df# uMr`0ސf~352i8>!%6qx)@'BY'T#ƴiq#l5GI-EhBP*soG}x)?)̻>HDd.I)tҤ (W/)L H2 $?ab-zEc04!8dE+J1?  B۲<r1H0u`]DNխ'`9J DT>{L*E"dBbɑ\` ]B.:B9lf5mk](MG?G#9Im〇H߆IM~dJAlԷ3ۗf<=&jcBυ"q I\U} WNu&u:yb10A 9!GH%Jf66Չų18P}p"!~h; cmUlbQa$VAEkYΖ'F=5D\u $Yڲn+ [v R%tGGzҕtsk#G>|Pc{>^6% m)8A&@d;ۘ7%o!D]nH`nkr0"$S]MGz!6< Co=LsТ@g Bl&êL藷DknsPsUݽUG~|7RxzNum['zw|],{{^h'?\0ˊi#'\<ڠ#f[[3AHA2Bp>4<6(ӳы昅NXTN` !`={&8sڛ59@ BP@91ɽ d&t'(t77.p꫾+:Q ][[Y?b?6Rh[rk?zpy)Cÿ8Hr7HxLa{.s 8Aخ4?76!Q:t6K'psc :Q`1¿sQp}DZ{AA{_Pph#֋A(,B!4##\@:F#B#XB)klFb}-B| r.$://ls ך3szlC{<78? "ء;7LC,0X@OtPBs=pE cB2EE'<F #bDhQ8aʩ<Qh90$˱pl3ǵ(˷K:uB aryx4øĄ$G"RL)7G|L(,[;fwo'hLtńLc0%,KP 8hbH0ؔĄ=P488(` p(HC0\@PڴN 9ɞI-ȃ?pNK FĂl̅VLFFj%5PKΔp:]S˵4Ƕ pqT\;Oh ؚ(Lla8+LW)Hd$<МͦA/!5M(MیP/:xLp+hN pdC2MC˸@7 M)5M:m& N_8R@%o0DO  K cԄ\0HH5MhTiLMNOPLrP^PtlWm78 %9NTUK Q'5OHz\Qtтt]8Bhȅ7L L [x.M3!)ӄ!'U*5'(WL.R WtKQKW=K4(@QaRKWIB<<_!EmJti\0\VpFERMؕeٖuٗ4M'`ЂxU%G Fպ\հ]ոÔL9[QdU\sKTQXMX}UW͔B*FBۘńBP'`R( K{ehW{5M]i%9oOHX0Ijh"A\\a@T7Xԫ422Tx,T@+ҍׅؕ}K9X۵ɩ>۽]xgZY#)=F$^åx-K9euh9xݡZSڭ̮ޱE ]ߵ53r_3ߞߵ]m'x'҃ ՀՄcaXì2TQhY`a--ԂjT˭=B\1a)Ċݚ}EɅH,Œ $V%f&v'()*b]$ٛ-G mKf Y|@[%T`^}^u7Ƅ^7mBx֋9ZmDn_"E%&b"}E6+Nb6`TMpRPbS.Kb0pNp`G+ >;a ~T"~JYUVeffvgh_,^-]cK/]0n/x(c#MYXm8.WE"^[_Lxzl?7Yń5p6dM5h>7|_]M[_I_i~xH'vOhe{ł5 c-c=YGk?h9Nf$paa>]a0cNffv꧆ꨞ-$^oUe-KЃ38Mu$$hN{~~2hn߉7xGIX%h%eB^]n^^[([rpWp2Qo{`h(}}&he|4I=Y-hmajFV^bjnުfU.ɤ&G4a؃=mX6o.Q6vuk8-)Vll16l~gd9ABp1>h~f73Md(hdńc$dV~'8h^nfqqt=m9ꋇ`^7^.od*/o~go뉞/V?h1DC0G?^Bs9lfn_(&hF n9'O-jq,ENO+g>sĐS`oQ`)!zYi0~;7oVn*/^uEvX+hhEZvc\sHs\Wjvmaup=WZP?B0ތ}txwQwV{:ׂUK'7GWgw97xwcgzVhZd[kx96+bKu)((;$y`cxvF5H4Ec6x0Mp-rw7VOYC);5{wWmy=+ ({wyOH٭a'|?^W*K$#p'|0hڎ0&Ђ?x..GW_s;ؿs7)w0}wJ}j݇Odv9'Wx'7GW'xg/~~B,h „ 2l!Ĉ'Rh"ƌ7n#Ȑ"G,i$ʔ*Wl%̘[Ьi&Μ:w'РB-j(ҤJ2m)ԨRRj*VrDq+ذbǒ-k,ڴjײm-ܸrҭk.޼z/`I.l0Ċ3n1Ȓ2̚7s3ТG.m4ԪWn5زgӮm6ܺw2‡/n8ʗ3oylUzuر_nw6yξvǧ]sg?G_șۃ1k&x 7ၡI'u!V7d蘉'fb[a#^؈x#9#=#A 9$E3h$M:IܴrNpuȊr78,J;-Z{-j;z(ߊfZ߆+{h<~,΋#{[{[/X |p lp#1K\KVkl*2nK4;nΝe:En+4M;4QK=5U[4"Θc-&ļ736ؚz1&NTf \3䲥}&\#q}u_ɍ%rჭG[\˵םs4o~פ#馗9{Ҩ짓.z{:No𼏞5'^H=Ү9XYH j>@7|-Ufw< M8[?eڕTrE[(x| #( R 3 z y[>1pa IBHA#LR(sHO(a CX2I8멩485[d|޲ߨ&@v dWӨ?1n|#(9(C| s$A H: أЀG.h aE n0%hd' 4d(p=&ARP4$p\x$oHD, 8J- U }kx@ n@<9`Ih7㱎$\>`DQJ軥01݃ܖDžd@4QÔP&PJogFәД7,}CF ZJI~AP*`_ *Z i#DL( Ph8`a49AߌTɍuw^%׻SE+a؝ ;JaM2w(06cpxB W(䪶!I{C@#!R );-4@[  h@+ Y f5q5 K+[a 0}xxUh Z1b$NLêKRوڀ02΁p{eCp|=q.V"8}qCp9ү+q:}m+{kDKp T;HX\O͵&?0>QZwhxqZ`k^i}:PU'N/z0DZ?ׯ^}ΐ%aop[R ul@-/%:^NӭZH!hMD~<н K!&&*<+Ѓ_%c e_q/y'(SɡW`9 [āIS\` MMߎ)^==5]E:O O >0a] P! uU!ʊ%W잖DX^<COq -ZA˥Y$!ZVIٸU}WhUII:)]U\S))(VHV* \<0m+"\"T|hB rC Xqa#֕Yc<c#i 6b<ܗc 6%Ґ6u7ab<$8>CC|>>  @E=SEaDV>>$DJdɤ!Oda螳m }C.SЀIiwe}>6nI]a NC2P<|@`e !cq\.Q},VBonX dЏSC.H)N56\(x2~:ЏP =efl!K<8NVfU%"b8n@(^Y.h u;}%6%ُDf 'eVeckޝh0ZUHX6W-&׽flnV'@դJR~=4Ef<$I >XUACE'J$%{>M"{ޤJjO^(~  BxTa.kd-ऄVhL+hk뽾 χ:3] hap f:=l8I6lp I``rl(685=Ɏz&Z9lie Ò&Z﹥PcV "^^!$%R%p)WQIЀ- Rن*-~h&l W!B-q4lB Pm^dn( \'.B$Q x+۶-v6f.b mmJ.$r6:lE`r(/iHzv.`&@ b/Kn#$8bW/ -nސ07?0GO0/ fd/gppP~-P - CpS 0 װ ߰wz- 03- &107?1װˊg1*rlq#0q/;pq"Ա1L2!!2"'"'P.#?2$G$O2%K22&g&o2'w'2(E))2*)+2+,Dz,2-ײ-2..2//20(xB.W$1HqVnjt*?34+O365_36g6o37w738Ѵ6PY騌3G;2583=׳=3>>>Cy)k;t)s+3C7C?4DGDO5) KBA#A++;DVCT/XJI '408PM4NN4Xgh>p({34t5IB t5@4Xu4CCTCI"lO5ZZ74: WE5W*VRH@M)4AL5L a hC4A8u5[_6fgfovXt<pA#]]r#Bdo m7A5A"Ia >TCLX oIbdK6TC_tqG7tnA"CrYt?5g7yys.`C.Ā{׀h)@kR8TCJ)T>v5I u"6> LS7Ar'xX#v4 4A_wA JudC@Hu{xdOo5'4AV'px̀6o8U/l ?L58yO9Wr1 w <w.sQw)kdzog/Pu`yhw_I>? 4yo#7K Idtvx5̀ $/>$` s h5'>84' h? A"؀SWgo_9w?|JG9^?97T48Kyl/4?Bout y$6>' >yI"DJo<_(((;H1G}O{B+uOc[<7Ϲ«+ I8>S+6,eC׻u8D߶v#V#y 8{=Ck <(%,"B($@! ˓RWaϤ =r;DyLwIͿ:H8Iz_7TsTTC#J'<6@̨.}aBy8LaNlyWȯ8aI'QTeK/aƔ9fM7qԹgO?RELRCGQ`b($J°fպVNb;؏yWDp Mr1F"u6rZolwa5Bk&e<~%g!EyG X2ZL+Fܽ2W;vm۷qֽwo߿{{2:+Y &UQ]G^:K3ɍگ+>{?o#'ysHCϾ1L9 ) 1P )LcPbk*X8PjóqQyspDtDin űml %+R-'*)#KRL'r'pnt-t;S=m) f2DS&4EmG!%?1kLM3Q$ UQI- $Ib4MOO[qUTSHyPYUcMVeLu_Ga5Q!Ǟɞm&q-swK5"=QSj]\ @zm# (!u AWᅓHK|xYZD+Ze``]pW4-pOꤩ֠i>!vVCeMᢄU^BD H9:!a HÝuh D.sBgZqO9|8|x@9{ChX!' i B0IAje' FH]:V\w+Ui%8Wqg`4O5 |28K; $ <zYyF)r\3M@ћY99RMFc:V/+# GDP/2@`K0 C[C%az88A\>HnrPrQ(6h}؁I5z @& Dz8IE3(DV` ( s}& n0>e!6/%-`[!@<H!<cp! 4`pB a?UO7cWvFР|?:F\^pߪ.K"9#`oX vkE قA؇< a ~!> !G)1@ezKDP[WǬKz9WL䢓yN|($fI|9ȗoߴgeJ4=a\Cic+T-2gӚ,נOE'@zAW6& X* QaRp74>PC !1Gׂ4ӓ̐Ȁ1 ]u"B:6euFW.ˬ.$95H͚!R$l |tWpp.Ƀa2@ T1%h@-iH>ƆCR7Z 3; QD +%P 0XHL&sD h1E1s(Ҧ?^eV*x;^Iߞ/ne\^@̃@>p+8sA1WAjы7LiRMѽ&$rV=3/'1dg(缩wLdO" >pSdF5mv?'TS.Erj>q/-+Itwc3'"X$e%kL"WJ"fb^(%r%0P%ZDp[دk(f%A p"Z4$ny_IXobJ}K,'J*N`" d2DtC Ͱ6n)XUT 0p!WDM X1$~۴˘q9et^P11>ad -QIM' Oa1U +e1uSR@q, oi1/a;E5!ܨCк^)lQVרFqɑ1(Zq.یM| ɂr + EDņM!!fNe԰ e##=aON)R" uRQ>%]WbE $@Z^'}rT r 1X2)rQgW#r*2K1Z (+G R$qp'+2-q&O*2.9qHɲ,+/ 8$[21'2/.32%&S+<dQ!sA&34mE!&0r3=(<'a5[b f&^%1z`3E7r8< SV !@"(ޡ5%@6k9%&#;qb;3<Q8 RZo 2=4= Q<6}b?<7c:g?A?SB!N'2ӛT<4]R2D`= c>cHb`!Vc>2D1"3l` 9b<;mڀ;!FK!a4#@< f`4rtGmA~DMcHC#`c40bFu ? LAHDac0\T1<0?CY?^: $0>@tǣ1Na 8?!Îa&*885cr÷}y i04^ 9u9Q1r+ؙYIbX{yyqWٖ_ԛ>$y>tBÏobS>9Uk$AU0BiY%L ;|mb(iq@Wc!ġ ~ !VAM¦qZyڧZ3 VA|\e\2[f:x )}`zTTT%֊:W&O+IFe¹'>gnybeV ht !` ޠmv!@y~Zn%(;/{2{?;K `r[ @[%\Op$ڛ:%. !Ϻ%2`͕֚O%]8M>` ? @q@fSbF9 rM|+D_!dȠ4HoVI Tӿ \BN.8\|xuN*d˚=6ڵlۺ} 7ܹtڽ7/ZO&͚ΤPiF(Qr { 9ɒE͜5k&X9-6`R` `pD` *i~ݼ@lQ>W =&1ʀ#Y k{pA&׾h[e k 65x-(|We(=a%51!CD&`FhBQSB  $QiR|w_~=CP ēnA-sR J\k\x( ^^~ fbIff_~`, b1evN5Kfih&NAk87PP'6AKB'n D( } q&;:ieDVu9Qըw^.#PZHR֤UJ=T*jOBr:ԑ  ?'> )?$*r. |])5q&Xc `D (^T4 @(Б@ p F7uʐ0 6 dDjrОvaUM}f^<>Sgd<,0 @z ,D Aց ]>4y\9#x*c":Dk~iRM xO I1R@^7I<,h 㣜Ob5JVs~5s7>< &G#͙@X¡WN#ZR\ƴd5<@pNH¢XTpX+b#ހd&IB#*\eP X—$CH@A(U@]Z@u ">@>6|Vǐh5BEvSdNhnZE{_ <)%` 5T$cc HJr23fa >Ig~O [$ y XA⑔2!LeCФ_œArA!Yyl0K#f^j yDaBIps$g09?ɩgu ;IYJ c)= >$1A9II}?(>4"^O-4-/fD̒ -<\@r8`F%Kށ <( 0NP`NA`">2cc߰M4<м @N.H`c\ 5_o 7$)  \ LQI%I6P-kt{`h0 S:7 7x@a_S=H O ɒLɤ x px9hLsk̠#MlȈ,(1t JA`.l;SD9`T\.s X) e"[-0Ob1P6<R -  !_AH#ؑ11$D"t? Nt#ڱ1ԴDAOp PA { Z88M4B a HY04R, `- oQP0 cxʡ0l̙ 8MbbA1=N 8- $C+ 0ؙ@x70~ ڰvD}j;׸ġmؐ-sws.u?`ESM k>kM-``L 40P2QVsh#Ρ ;stWKdm6I%P`]LC(!^V󵻑Q3(P,k:Q,.&.(>dZq;b QQՉBOrN'd~+x,.'*P$,Q؆ ]ì붬 ؤls~=B^OY6 aFN !.RT-Dd  ava춗ԚQ> L,{~ E2α;b>?! %R ôM;REi+C+#+`X-"D( `D  #{1-p]O-n٘@ꄢLPQW/-@AGAl?ͬעn S(x箞H ]!TaX﹮":{.e@9-McUV* Ѥ^k@0QׁKWE~#ٽ1asɱq#ց*=$L2R{.)D@B  446b)C[kqt U4$0}$%SB.Pt%/SƬ:l%Ok WRʭQTdq-O.Mo&*i XB_B -0c+a6Z :A0i7o C)nGÇohB& ే.`kaFk~+X(H &Ŝ΂-G<)e'-h\AJpϧٟIE,c4f"߿oT \Le]Ttґ-X _hИf*{xMbupGZìlɶoέ{f<^sk0̛5,c_U&_yկg{ϧϓELRCGQ` FD QpAtPQE5J`lp $) l$5XsB'  8JD9R$8)%I|Z C.YGO;hflZ.1"+脬i^R@ʕ@`~:K-,K/s}Q&a PLKl**=%2-3xc,nZJoLAИBTC#T{a֯fM8%RL5 GR.gyDvGܥ&Va"},a_x` 6XۯYfLA" J(B ;CZ@)~AHc @p\|ipLp NNy' @)+ Z3i.@OL0DzΘ*| :$LˠJ~ Қ39 K l Ko+Y vU휺k*AkH Z & K~]6|W}֏?:&Кe4 +ֿVlg\J˜T 9KA@k>< uX#,܇){=#\ ( 7ȄA;ܐ1:!U ą9<`90@d_D(Fa/b_+ EDExF4&;O.P"qjiv*4X?Q$d!Y E, -h b%F$ hA# IyG$$2Nꦐ,myK\X kOr%+ɎRdf3LhFSC~n3b̟15|l$g9yNtS%fQkZ#7-pf=Xg?OT5I;ixsŴ)NFThE-JHV P7AO6bzyQT+eiD3PSHGdQ)Nwڞ7'<-C8NTZzU 0Cjd,cc6P)gLpcQ[ָKKvGUC~c:t{{{FzOzANA5=2uʬV&LLvSo@h yCԩ'H<<襒sx`BL[ ]p 5=-`or[")C@X珝,f- emxh{'ҴjME "IhAl1ٞҧYs`"pJHth@=^uoMb Mldxoy|@?Blxt'&[!IW(> <N?8 E.ȑ3 iZ'>  `r Nʥ!Ne$uC q6%|e厳h_ق,~-}?e$Z{rB` d}7}DpWRVL3@+Zm*f?,p؄-i䂰հ]^"5/H1yJQp#7klB\Vu4mEW09*Kyk,g}>+6L 7m7d%:G5L1x|U ˞17{;tij0A{C.ܷp1r ` /~q;*8E(K99HsK?蛡ԋ g@!9 w `r@Գ.8r=+6X6g?AGA#Bٶ2&(H?r1x6m#qCd QajxBB7d#2HԠ, T!d CAKD؃4j\9aЄAr@5P ZM؇ >$d SKz2B8YԋZLUX.0.F;9؇?-C2Ƃp;:lX 9CsE!c*H E4RDCL*KLH&M9N*K-pR "ىR91"|x'|}X䰇H?~Qk|ɘܗg눧31<^\ &pyp7ƤF@ʩZFXpuÉ,ɓ<_*K0B{pD7THT9DR$F)'x hSCs"؉B+=!R;k+dB([,:d$: )6I8ۚJ6dTJ9 iavtG39 V=șa3VOL/M;G/4&Z40IPX"D$X '!*%P *&B%"*B*:.>!K9ѕbkZ+aHy-#X-$H9Q2@ =<"=RY mҫڪJOc/OHBpZJ'-ERh3RV*WZQS'SNҋ(9S>S?ڨ:(q?MTE]Tӎ3TDeTJTK4G4T;KTP U*xBB<-)Q]UVmt/4UT7,c]Wv]& ՆjY̨L՜R<3u%c X vX5LdAyT/j1H QЄoT\6k134#@0je03M8xch kk7po5ɀ„$ $'h 堁?P>ȀM8[ 9H ^[/)5&XTq@YڇpL.7c6ah `9P9νYRkWcHp2LȂ) "}x]aJpc֘Zx,l )8ƫQ %70+J [ xbֆ:\a7P qŻƫ/#"J0Oۢ{@'Pu(X'(Fh!n-]`˅77a Y$-.;9pD>ua?ף"ea/B_U.(0D&+M;CuT<5Й),C# Zd`0.9`7 ~IBjBB>"ΙT6˂Jdg~fhOB&MM< 0 Ŵ2 NFƊGU7x`₏c)~-eؤo`$X h-f(=&j4fhp^jA;]ъA7 YQژFƤ )Da|puVHaHK!/~s_$ሟއr Qn_P~=ȳ$ؒcip AdhvLf\Pmdr)\Adyƙb6.MґΧNQ(Ǧ70=n5Q~@lx zhN`hS(LϵmnkHVxM52:!|`8!x) FV Q (%TzEU1"#35%o[6Zݹ$fQ 7o>U. pOt9 jSNUp -X.p pO)dUVHo*?q(;7q?'=pIVr[e K;]U 6"_qVq*zDݙrH(r%qgei2+vCSKj=jm.8 BW'W k<}9q"<+:R߰?4:mΚeaV|ܡ HtQ uc[MO{U}Ur5g}W׀ȅ]8t Vj2fGg/.r@/n7y{H?wX((XK= p`J! |5TuiZq&XkY5Jul\h-ےd M !x=7RY :3+n4^ `3 x`Z;[^7eyIr n 8DqZOyR۶,z s0 .x)H9).n yxz.p!S T[pƆ1"0z?53Lw4GK@  e|C 447F̈Yx{*ýxM7]\(m'6\8&+u#E\{{DYtƄk`-#ayxY]Dp" ߿9W(ÿy.*pM. fP!D(Z܇@TA9-qQ4O e_!-Z O7NIp l `*U)05ń< ֱRfrNebۿ=x並yNjXAfucʿL7m1O<7;47ڍ_M&g`ȓ0R\&f%1>4D'>@&XhE )$hIv0(^h6k Z?tRQi,5>0Ox"wj܂|FmP%F8r$kruAhԕ<5VY<}@d)? NL0aj K"͗5WSٶfyvFYM,O;?#3udg wcͻ㕧r/ G_&%Sh@_oxr>ko}Dacd"IQI 5tt d Ȁ4$/k t4(H~94oj;I\̰ PE \f',[˾XiHR0pj5WStQ8⠆=-U)A xptWL::ZÓW2)+xLHw]5C±y$';szO}>7!xs h]@X!xc͑ĸx(;`_$*'C?Ѐ$ͬJ5ͥ(7@i-`L@UmɵHD!LIC'!-X9ZPeS=la\•LƗV1#{]xSη3Z'4F{!L|M4pKAS8[]ICf&Ln 7j*ۣ1iff-mutAQa "@.UQ)P0)3esa4iIgÀ0lj2^J|)o}]]jN,7Ͽ>o??L}:ۣ??2|1q_*2`._Y:`jr`]E$tΟ ~YhYp Y\ 탿`D٥º 6P`y,_G C >%Od 'b(buˑrO#@+$R^9AA8\> |@Akm0|| <0b#(56.8.IlD#C|c8>pE0|ŘIb??I *a.H]V-R](M ū1c ԍYxPQER,E#($΅C TY]|(R@LфDJܠlDDEdDंL7 e@BeTJe' $[6_ C.dC e I#HM1ޚpxDaU@ō, &\M3NeI@^ &8D.ԈTbffjZ[U`VU@ <\,%MLLŴP1~@G~]H uC}EWG^ׄMǤT[bbpR6'tٔMA$rnfvjv_gR$Vj^+0W> qO0H1:Ex9'N͏ |EKd!hLA6qOOH4Hā  GDRwhfgUU"+f dzef"qBPSb< \xPE! B/QM gAP].hS"L\\D-- @4R܈&@ N#ʹ9D])@fY奢A6T+ =(ִ#E]@+)xzzM89nj%,Ac;J@(̃uC$J܈b*~Iç(WZ 밊 }O i!jf *Ր< V!@ZZ4\1HMbB&rT8k+E ȑ2 a )q^ҙK-.A |@GCp_l\iB$p_ѦxIp G [ ){ p\"Rp1ؒUCq)SKs1vkqqG䲋b w(eoSnb@qqgܾ;OÏ5;)h/82OT'TC kr@U2|.ξpH? $TrAl'PG"s &q A,or/qéNoA CAB0)rqt/D'4*K+G$/s%1 3Al A<7A& q, TC%75`tC>G3r4++qsA߳pC"`8Ssԯᖳf+:-C54A=W/)T>C=o AABXs2sx"N4MoA5  5%M dr$73SIR;C$r5?52W C3ONCR7AĴ)/rWCTDKۀO) l"r3w5h$;5;5MLt&A"^;Q;MWtf#G'K+C\@?L6OL p6Wc] @"p X3>r5uS68lA-J8 DRc;/Z7t53%?5>TWw5жdAAH;rWC@w4| m׳2rC3I)wm;dKw"dZtpwA T3xsot"6',uAyۀfs8qPڰFUzpȌ}5OjW;$>7QDt3I7`4+sTwǞv27wjJg.m `vu4}a>h?6A HzDt2 R7703[7BXgL Dx'v[øVk53Av#Yp. C+(P7z06Z^2L?Ȑ}KxmssA W ,rdER#3}G)2%ùVu ~y<2{y>WuaC+{ALo8hpVyAs>s3Tc?x:'â_-:`J؄C_QW"g;Y /5'P>/wQ{so;XoyxWC"$;_:o)7|yVzO; 4IàB /y7)63;gz1WGkv8\rtmCo?x&˸UvHwyI72Cvz+8j>8Ww3Cwvײ ) k;mCv'A€2EjW+C֧z/;';g ^÷>)42sBv#|O{5gE5]@^W_&vv;}_oS~83?F 8$y88t&ھ 6}\5|-XÇ bHƒ"EH_yQaɗIih ߝ$Ej`DѴzkV[vlXcɖ5{mZkٶUĢY@љ*2mh4%J_a 6|qal7^Jqrf͛9wthѣI Ww-/`iVwMU&z7~yr˙7w fu߿ENwn[H>Z͖6w~|}zcs߰ <\4f1ְF;ٺCc=ELA$o0OCF|eFK;RpZ| " MΚ*Gj{jJ챇+iruJ9Mjlf#圓:+r?WŶPBjI vTָ9G @i,=kBV]S|4s,aUG2~(C;=#K Ek''@l LP8Du4ȁTҭ.D$aTo.}wI5ײ֠| 8w:7yw§O*{֩aWZ8'ْM>FdKA2 E+6km85XKV-lQ~d9 $j|#7 i;B77 doi r Y5[p'|WCTh9XpTXQ'n LAc\ CIn PPZT$iyp5(u0\)OE9ꪋ@z22 ,dc/j H!T GQ9 `B&>XJU#+[0uQNE[QPZZӞv IJjZ8{C#ÅБs{;Tҷ}oV}=% dY!IZ ?ކ $9h|pu;9h5 >CtuI;*Ȟ#u@h4n 5\ w\6GP`GsYݓ`#Jh]FC)-Rjީ(~)0hU+>ЈoΈ\@$ۗ~-&KaH!H7ARb^ `>LR-p,ƛ:[9!0(@$hKŲ|J &k&} },5(ڊH`Ə%G/ҵ DJth ch5A]M @ !+ nwF'y%Bl[t3aXǀp<+h BR,in~ǰƇo&)zwb(}@DNJMV}B!9t6'@IW:< )ҩ^uy #7^vKu;F.:^,kIsA f^w RS͖9O|{oР)fYo;ӝY(ͳFޣ|_77(DڟJKu`ha!Nt+:+La g[}{,"jF9?v^3H n_(Z%#XV!>&dFf AH Xz(澏+P$Gofnf0J~l 1pGqRtn h`v v- $gxvt^pJx>@|"<_l^M uTG~WD!v (p X  Z͚J56 HtO+A8ȃ`AVǤ@M!Fu2‘ +prh`Ky0bxoq2 ڦ*Tʇ  BtG k~`vTK ebk0hѢ6ni HNi DWBHX@uriO SfjXζΑ qHL|i B߰BR$ou@ܠ%!/ªC20A`b!lpLS ~uN0`0"Z` | \ A|Ҷ@S:ހdJ> d-KQ#Ӑ $1R/ 5(Ls1bL"ց3  PH,3$">Y3 @̫ PGul aTg<ҕ!A6KN$jC*h@14'J@  u%r>%DE؈Ȣp%۶- 0aGG-N]nQux>\((pjJpPJt+ZK[T0#;rMBǻaM .L+|uuⶂWEbX)!YǼBU`U9V3X2rF\N-A.U]9.pO[OFX5Bm]U%"VVaYeOP[o#a/c_/oubV)3VdGvA0Po0dIe[AL:B@Vde]gs6>0*D6 6nC+MVgUU:^j0n0Al,hVrKivibֵ*0/%[sbk Fbnn%`lqFxFne[u+!rhh@lT۸ _r=Fm&L8gt6 TflZAsצmh`φ$nkw5Bog# nM*D.` rAT%xo(H q:pH"r*JE'{H ^Bl2v].O>~%#fF B|i"r!ߑx‘q t!̽45"brx2&>~[а56xo#Vb W+ dE:$]JĒ, v2r=إ`!LUAN2pɅ<0&bKV">+sTZ6m6e<[!6q̭s sH!@kjZ҆pX+ٴ`LϘ0tvU^1s!RKs>H=KHə@]ɕAY@SՒ0^jVEنQH':IY h+b6tʪ,`lqVAwLm ,Jbm UB5es8a?YXlS@SR{Iu*TgTՎͅT׺2 L(*VPS"ONo zY,X7=K ֠$*Z$*rڪ ]rb7侵AC\aϚx6i;ړ^Y54^OeZJ:dZ[f[z{dyI$YVЌU6;{]Ql!ۭ7۳K{a 6%W+ zb~- b h{+<=rxô{U0!ijqz+* 2f3Ȃ`)f _ H[+Haๅ[m!.BZf`!"ë~aAbI9a~^dߡ{ ={!`7={ >'Ib;bh{)m^iI|h h+g({%X?`މ "_$d="v?"]y& BS" ("ݗm]]~'! БA lTo6iÇ#JHŋ3jȱǏ CIɓ(SĢYLљ*2mh4%JOa@ *]S"(P@}]5U4W5ux0OD89߻Zm#eá-q'ni/ mئIx(P. J"gC|8rfi׶ݵ3IEb^=rR~^Iȓ+_μ[J7SDBX\N&ujǫ9v(r,d[fGD5^YAkj{U)՟DUN6vC(O5qr;MХ[-Ǡ> FT"'X ,U]5XhebPX6]W:3>ݗ`)difTLcM0xt #0p4TA)^qf9ə 64QeA>m0_gB[0=}6D4YZzm&$C Zk,h'2@M-D&뭎6AsEzk[tun¹ioP)z'lCh:`O`H%Dl}L7eӚ[2C%$j*d0Y𤞽5  e)I08L7ʱtyC(UP Emhl$4ݼqmQ6FC&ހ.]S)wumzN~gf*̄6sg][C^笷.fԉnNk+/#ztݺNg/Wo-]Lq[|;<^o觯>qo/3ߑ_>GcGdm_H  #눇97G }1C 9O_[G8Bltd H!+2LP%): :$ >xH<>P Q  +$N @(JGZ`  -tkQH =YD0`H _4:kAHycA5r !?ΡE El@gǙ"EoeF20wFz9%@א\` q5r({ V3< q%hC|}8A H<$"cˌ&mv%ȦCZ Nlt&| hJu?"T ?9>fkyp#C@',q <24` C9\>XCp 2MO|t@:7<PMX+,KX$&dt8r%0P" m!׹0 9HCڪår`CDGXj+[&;##j8,{AB9jC1ۑ#3ɑBw\sەΖ.4 ¸0!vs %B!vƭ}(h5-dRU)O0ak= ~!>x[s<5^u[t'<> ݤmk#-h[h;"8qݚxhɫ|4'G+&zR\'/xڽR RE@ f;7Aex=R f6'vU"-:d2%d2JZ=>SK-2zVzXAfYZfzOeDKqR*h:tZM3F'=cj:5&=11K}S :tåqr~J?djc@(@a$\a%?JZ8e ^ DqY(BrJgNɟ7WDCPLOJdH 1SتjzvXJS֦JkW * Pr,Z~ċpf~%D0AeP epJa_­ޚa0o᠙Bѡ e% D% e5T:D[ـքMMQNdNNc&aD LN$Kp 77 \7  a0Zh`dk7 k @x?xѵAz7жYCU"۸u/qҫvd@}4G)DB"г Ze\E[v[ [KPM+Ԋr\ [LЀhvh@Jؚ ` S;귆;CzKՋ:y.k5P(wMJMA\FB\EdahCЋ\g)h^c~hFh)b7@Sm{\\ ۽  KhЭhKoƾF|:%ۮ%8k )uѯ ̟Bqq 'r\%fVѴ*.WfSh^b˶d o+;ݻ=,qkAG|sZypyМh7kz ׂRYOz9|w{z{Ԁp|ӨqܷxĬʱ;3 ?\ȃ+mK,,Sڜo\ʅI`67 9V.yHNr0EX;?puPH!1 P)S {9_8<aЁ\ m."X@FZ'oP`64{HxXvuPϼ 8-{+kaK@ܽt#p '-> .5Ic~b p3;;UyY]ʭSbIS-e𬖀B(Iݛ{a=ZիhV@,cS@`Kllm  q=s]&|(g <p bz&DIУpL  :\ j)ޔ ==y`&`1OtUMz}B ›P\ O jU ^PөbeP)NP㳹57?I*hJᭀ"N⍀ np:\Ӕ`5{ T.p/5Xr>' ǐ pDV⎣:ït~舎6~"  9ѓ蚾m莞@9H@~76 q>.3+Dd4Į.NBI?&#_ c `?ȸw81~/:A! MnTS Oڍ!HtJE,oH *˲ /(1SS:S"ň%*o s'SZr F%@C~HM~N{ V,%^@doRk3}5V_Bv`` _Շ\ Q a`FDa&4{0%U+/V^_'AM6 / op z€M|h/?`6l$kAkV8`sxhmRW ja/Ovj6\J~FQaOuoP -`iP< ]ti|s|W[7ع^O=_.<ʾ^~~!Rp? ](Hpso2ۿok.pD5 R$&DRJ-]SL5męSN=}TP:s ۺxoyDɱ*LV]AP+M\E٢0FrZk FFOz(w`\kf9M/KR1a(][lڵmmhҥMFZjVŵz K9WfbS&o[?i DXw>b=2oO)2[ ֔`Mr}Q-B 'B /0C wS)*8T EҪ9ܬ*H $ڨ +H h& 桡r&t ӰL3D3M5d&{8+D;К6 Z)*R}.CiD(Wl3RI'RK/M Q88=e0.b3SW_5VYg-JS@ nDB5dk&bkx(Vg6Zi+5NuPGnZo7\quZNsS[^SXr߅7^y祷%sqSuAe7z8`^9=u_;=6a 8b'X([ |V8+9dG&9Sa7l;WRezA fln.g(9g*la^Xnma y@jC9کyN5>x`/arIB `׵m+&0{t7kG0a&$< VЂ㤑2ǭzFEp% XCB { Bp@ N Fj4  XJoRv VъW|M.Dъ) 16mA؊2³O?IJTnH4MG%dHύĐPjEF6ґ4Ʌ&җQ0 QhU&BPE,[(C (yLd*?4q0v B^)yY 09G"ء'Bg\rÅ?-1%mx>OY'\`"L{)  q#pbGj8ق$zԥ< ||?y'*С(Xҗ4*gGf! 3SR _gE+stlO @&* 7J^WDDQyT8F9Jkb۳N%c[Y\w:W|]j,MTV-ֳXcUds̗PXi"#4IֲZk>J nm;\DP[y;YZυntcr\n0՗o[͗PK71. MY.j׽m.H7*pi^Z -{`|j_Vmp5̵m3\QmZZ ^piA\XNsÜr%}qLX@d-,e퐥,У`mHiVBfsz">r]7j^zCe ˠl: 5=m w! Ϸ.\/,nv'o}m G7$A^wEv>pP׺}vh7x> YZ[\]^_`a$b4cDdT2ԄB6i jƩh;CxA ETTHI$Dt4uLuDAGvwGKlGtGC\DwG}ǀl}L|,ȁDHyȅG~tHLjTx|ȃHGDGW|>+8/$ɒ4ɓDɔTɕdɖtɗɘəɚɛɜɝɚT"QsFQFLkTmC`N:H|N:pNN|\NO$O4OTLD?@C!u!cldLM5#0T)UOPQ%PRERUSMUU%UVW}UPUYUX[\5]U\U_U`VaUb=VcuUd}UN5xAjklmn: #B@aЋC@M@@Fua(9Miy85ZX`؀ ~WX5X@؄ׅm؁}XQ%؈UX=XP؆؎؉،؏%ـ5YXْeٓu؂X YY XIpN5:Ơڡ%ڢ5ڣEڤUڥeڦuڧڨکڪZ5 \&ڳyE4;By<lx+j"؁*X]ۼ[۽[e\]5܀-õe%\ \ \u\[ϝ\E\Ņ\5]mݽ܁5U焂=ޤMC]B89h=dC9 6<Ѷ nXp"EŵmІn _mܽ5_M_}_\_ŵ_u_m_ME`_%5` `> f߾-E*Vó`+C)JiL0FKE0"3 \\"#"EbmbM(~bU]*^$*6.b(),.c&>c.P8*Fș9:;<ڶҢډ]pd[u\x)H2GHIJKLMNOK)xMTVUfVvWj%TCuHo Z S&%-nh~§BhdVeffvghijklmfq&r6sFtVufvvwxyz{|}N:xta_ƃFVfv臆舖艦芶&6FNi$Pv闆阖陦隶&5П&6FVfvv"ꩦꪶ]VV& FVVp7빦jF@&^k.0VŦjajƖɦF5T6FVmv׆ؖ٦ڶmQ0&6FVfvnn&6FVfvpog`l gw od@9'7GWgwIio8q|(pt8T#G$W%g&w'(ro0/0oXJj07lJkZȁI;<=>?*r4,؁=ؠJ88lX77S(=`@OPQ'RGrտ, CGtKZtKXˁt=k0k8]_`a'b7cGdWegfwgh'FTOV .ulX=uZu\_]7duiGtWugvwwxyFjiXn3,iug!dH3@x(Zvzy޵pq t 1Z HGdžLj'7GWgwzPlX f`gЅ08f{zw7GWgwLJ||oȷ0'7GWgwׇؗ/}5'7GWgw^''7GWgw.,h „ 2l!Ĉ:FTc6r#Ȑ"G,i$ʔ*Wl%̘2gҬi&Μ:wc,5ҤJ2m)ԨRRj*֬Zr+ذbǒ-k,ڴjײ%;Vҭk.޼z/kETĊ3n1Ȓ'-|x.̚7s3Ѓ-,4ԪWn.iQ_Ӯm6ܺǞޮ} m8Q6(鐤]S1 Ň"{m]+>sz *ˇϴR# 1Ԁ0ǔ۵uH'T\XaՠP@MvpwOj"1ʨe\ pwŁMqUq>@! .e5=Q!ySرxƌey&YFƍJhM?/e> WOP?CE|`wM!=XI6HIi@|S|Q)ROgh?=@Q\^è!B-w,H]]L=+ks@0i:,іfI=@0N? N #]t#(7";xG=#5 85蘔b03l;\Rahi ˫,0ƕ3,+-=sRτ5C8 ч5Ta%ゥ"~,>/ lԜHI=j œ1@'ŵcGFl*^#U>`hڄ/R @?I 4kΑJ" .SoWfk.ldN(z R@ B"Kqg90O>Ԭ&PxH{tt lPino>_m/E5V"N9eBۈ7Qz[ &P p,Hda!X}:8>;! S(YP(+괰y<=`V gG M<i/G6bMR> }dw2p6UC`-EWK9>taBܩG U=2, "m*w]@X= 0{,D&*&tiX|"`P]b߇ [ah dQđHQXPd%0GGRJzVK(FYЌrme*24c^AJ|ZJ , >ӝb2rS2@))@ZZRXi ;h^-Ox AK*.2-Ek[v;-\\h*)AX=s+d#K{ҹR*BRPQ EXcN} );Tw zd\FYD PRbca쏷bqsxJ:"̍5c.xaz n -,3.EKr9Ҭx R9nCY#`rdh0PUZG"vrЉ|u'3^Mu)҇R%P0/scl*8Ǒq=ھA3ɮ鱓,f#2,-zN^rze0sͬ5OT"M3,gc34~ ,A?&Є>4cD3vY#-i@zҖ4W*MsZ*4COԘ&SiTՈfcgX˺xsf\`浯e` M& bd+e\hKڒmWlk;嶷Qp%ӽPteOx˻椷 L|{䷿:U'p%|2x#gs}8<9#/9l獧:c˼Ѹs~&σ. Źѓ+aӣKuճk2 g28;G푱r;b=~?a.{#^'딟/k>?~Y/髎G}oz^/{X-S} 9/k|oKyxk>ƿ~/|_y]_ .`5fF`M F^`e&v`} `  ` ƚ `Š  ` `n !N᪱6!=!&]NI ]fm!~yᭅ!aa!͡\! b!"&-"##>bE$%V]"&ڟ&nbu'(") )b* x",,ⴱ-J .b"/b/0z 1c#22. 63 4Fc N#5 5^ f6 7vc~#889 !:c#;";ɣ+ƣ=2Z-E#?F?C@>$BB.C!DFdR7Za5$GʓG~$ Ye%ZT%s[\e%]rN[ޥk٥^_%`_f a~Ua&q,&cc>fnDdeVfm\&ffn!ghfO&ii&@j$kAn%lk&C֦m>lL&o"y7|qq'r&r.'s6s>'tFtN'uVu^'vfvn'wvw~'xx'yy'z'7xE{'|Ƨ|'}֧}'~~''((&.(6>(FV^(fn(v~(oƙă((ƨ(֨(樎(())&.)62i>N)V^)fn)v~)"i)))n阾)֩)橞i)** C<.*6>*F $^*fn*J*v*j~***ƪ*檮**ҪV**+ )ƃk>+F겪jN+fn+Vk2r+띪* +ri+:֫+ ,J,&.,6>,FN,V^,f:ll~ҀȂGt&A Ȃ ,Ⱦ,Ƭ,ʒ&4lllϪ@,-&.-6>-Fm&, k;psychopy-1.82.02.dfsg/docs/source/images/coder.jpg000066400000000000000000002054721257562125200220000ustar00rootroot00000000000000JFIFHH XICC_PROFILE HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)KmC   ")$+*($''-2@7-0=0''8L9=CEHIH+6OUNFT@GHEC !!E.'.EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEz "S  !1AQ"RSaq2T#435Bcrtbs$%CDdu/!12AQq"a#3 ?R(g\S=Ü06ĮYlk6-$; /cW1TٿO[rtn94aW q$.El5&..+F3;3284SeĊ"Ģk䂥gҖ8AhW܂jam1 p9NQRն }[6jq+0TSL3j^a6 h`%ǸXk4qد-c'3DwڠMh@,/Zqhf8-bf&bwC_pYB&,0UVL*i˰!:G+fRޭ!tǍ%K}˭#$c_F8d9Bl Ԟh%I H#gbkShxƳu`5,Fdk0aڨ XL(nsd~ҽ6X5sirl: umy1cZ?N8v)T=v:sq^{n{}]:5t&GϺ1ۚ rk%Mk@ ^Z}"gƷc8wcR7cdooBԿfsR(í=Cd h#h'9'jWSԵue=#cq'ρ䃬YBcѵ.+v?DhؓRWlBb885i2@ V,i5vw[y#c FT]gG)<}иuMWRc+lqjly+67mhیgpUjNvxlN2CyG%atm+0<`r>k`̆Ns~QOj $14&ւ~3RIK%kFX 11*vٹ%oWU| tcfFpp9O<9XF;s@ 'iU8٫ }Hr!K]S+ɆS18o! Πjt-&v,J6vdN8Ġ<}Йk>Y֮ӨK 2 m\5B](CYBdyrMCME(bkDN݀8rx%hPj-m۱:_ѵ݌ #8OĠG'xpPT.U[rw9*)'O0w [Zt6{TYZlK qks72<}Йk>\N5:7 6؎i#`10v8~.TQ|,6FD4c>OnH4GϺ#g ]N,*0f~pG rVI+mi̲2627O~$ޱ#g }$t!vK3LJ^8/z>].GϺ#g ]&lS=C4H=~ѷͧ[ϮՖ!@~3Ĕ^GϺ"s$q!/9P̅hfbKu,^'%:m[)~:!ZIY${:FN W||Xђ O2>(YÆ#xb.ͫZ\39_ s;crt<]NGϺ#g ȵFRfN֘C㏬vvYEeEPٵ;0q Y=jeGp '&GϺ ;,/^Rۍlqnz2srΫ~7iFK$A>Ů8o[{Puk>^$p翣c2\@Sqm6#hVi-jlR*$ nKÀ|r}e[oEӚgB5lVLci;bcG˚ p 㻗`u;YK ZK@˸I:4MHa@\W5t.y!DnI{*ZDj:anZbbievOHy+;#g Λ"כtuB7GfK_xp! mP euֆcpýB7V,8ۀ\82<}йo?rY~Okv0F^O:k*ɝV,XCD]+\p11%:؍vGϺ#g ۪e5VY6C03p?joR;y!ɉ;wh.YB#Cѹ赩 R381Z{/2QhPCM:`֗HYIA׵[5g,N`k>\]H)SBm6ÌtA- !ۃHp8wg,>8mn'$`yw#g Wu8 fΛ%b k݄5;rO.䤩]Eꯘ1l$Chv8&-睇S1tnpp\J٪7[d%h ix⪉R훩ɩN؜8HZ3$# 䃬YBnk>\~5:skWn#[ Tf9G>F-p CAb+0h rDhk>\-]GPLШQ2@EnX[ljvhaȪ\ܶ u^fA#iq8kNoln4-Jc `{5|Ӻ(`˞֤YBljV!fY^ 6z-{Wu}CI}Y8 ϓ FI>I⃰YBdyrW5;h|t4b9H #ybѲwE/ˁsZ{Z;{O^YBdyq~+FIkt^AvA އ[խᎥxqhhy.w;6GϺѵ.p۹j Cki/X + eIRx\jjW @L{]r#g f@ljU!NİE !847~9sH:7{2lH 9#rD2<}Л >PmP_aqo=QRJIPGfѩ$j'j^  Ǔǩ~؂GatXc?7{ڨal$3w=8V2ݘ 'Iů幧. M &xzΏl1c;=yxOz+$lG5l  >`Kia.6j$k\ƾNI2x yq"<I=y gQ_\e[×ԆYE}n:܉c#^-h1pRU+M$WYx$q5oOrn“6 Fd$s+Ko{*k+S Zlp;09{G$]m ?zbJkҳ^eVx_ `&}kFȘ$cyw7-c:fspٶO-gK:nvA%,Hc;BrKӱs{N=5Sy6)]qs,,yW%FƅMJjT#!c\NH9gJ^+}4zR֩CUcZI<0OIڌbx# f62I֦sӌG!i7gFF[;J5`BR3r_G U|R26Bֵ =φ7c˘ sx'q<=e~Fl{KLi(T}xYiccJ+@,xrUzR"&ߟUtن ;gk>XuhL#yn`<iP"R5a$mxɹm?iiF3օv˺6A8jt.qOKqlá#UTGx:>`lLak63]AԶhӸ-ԯ85}qj4x4!c{wpkU11ĉ=:dK`}I\Y$pR2c l-h`-`4rhzq}rU#l]lM>c*6iztlk``Lrs|2w 5ぐ B# >Ь16G1Fѐ2{N-0pepOsGV)֋6 / S:\f0MK#dsЩ##n548 ٩ ctLhִСT$ Hw{0N[#89vg,5:&8@q=IE#C^/8'+H_y3)*.CBhE /w^X"nxzZnZy!LӠXE1zFΏӯ?DrΖ&g# ܛyo.21I;xg%hf,I$Ms!iG,UɹҨnڕŧ MgWtNkS5|^c<cۓrchD 2[FǏ1:G:$%8܂=9t(AU`9FւA1RxTJ(6`A5k0H&+6iըR>{}Mbkhg vc{yrnAiXVw"D{ u, gFc yrr_r 2۱8p4)V2)VVI7 &QUb^o^6ǻ8YmBl;r9)7 M3OuQDrȝKRORV #HՑó7 jVey֒cdO,08a<00l`n97`܂8*23Z'Kg$J*< A Aw${܂iZlM-NƖl 8RANVH`ևX7 @ Z(d9|lk +6GF# yh.h<{37&4lZ:qDThG9sbgM#̓ئܛIy7G+$ocp ܁=x-@`SBq`sN9p<*֍1k!9h_rί\I}ԀYi4jJ Oag c#䶧!dn./irv^wW`?1-YkFX^:G}xh?s Km}'rΗ;;VLnkv\XZb'{Z"pHy*rC$ͮZl7$r)X/k3|^^m0*QnM~_]Ț6>ąvƷ?=C֬ K]n{ 'tTöGJ[$LssO>-WŚ"txUz)f$cqܫrwٞr/$$A0W\\C =I @hJ榷.l |uKZZpeqpkĉz1V-U_V{_9"sb.ۺ7{ ZO.|M!3K1wjޝ6I0وH].x6qr#]zZ{->xrn=坬h=΄VdOJ%i#kqAtaE3W\SqAoN7~F ޳MM\2.%-fH8Obڌ=Zi[QiՖӵx. Nsx΋>|*Ng?r#^GΊ6+Qn\ظWtat,g[;_.cUj< w̩ozlrKf+=xh >jpw9 c3رMrB9~WJ@v)?c vs7ד!ZUpꪪT4H3+{N߻w-)w&ܫ w&܂]ɹE7 rnQnM%ܛ[r w&܂]ɹE7 rnQnM%ܛ[r w&܂]ɹE7 rnQnM%ܛ[r w&܂]ɹE7 rnQnM%ܛ[r w&܂]ɹE7 rnQnM"a^=BYm'cgTXk@2 y!+䃤o@H<+ʹn?A?SOgTZOQPӔ7,0;U9C`<%[~O gi2Vމ[Jd6Y,esˉEc|X<$z=?ㅁgYÀ}e'Yoy>KT43U1Tn!cݑ{2z}NEc|Zx-LxpCbzn8q#GzMV':}AKJf>x7a'#ش杕|1.8=e'YiA#&^sn907'@kSc%~v畤㍡vrUևy>H"+^ۂ:2I\ѓj5jZܫCy0 ]wZ'Zoy>H,Q?rX<$-V?'jfQu+e/:ڷLN8[X<$-V?'z"WA@C]e'Yoy>K1LDLܦ㊯[~Ou+䴫%3&XitV>|X<$KvV6ZV?':}AH-k2 2wjOuJqcvV}_vp3*Ì8ky5:7و8-*R:F,Xg-3}洺x('3*-V?'rDU7wf*É,M {斐ז*Yoy>I[~OۙꖗPQ)H,q<Ád\YoX|X<$LHy>HϼYoy>Kɚ2r`ʸq2qTޙ#Mu^&Wi֧tmkwgC^&VF0Yoy>I[~O>FaGt5-*[%Ic0}cX<$-V?'z7uM)nݿwgTle֧-V?':}Y;=MQ-)kb`cʷYoy>I[~Or,MʷYoy>I[~O ;r[~Ou+ܫu+e 7*e'Yoy>H,MʷYoy>I[~O ;r[~Ou+ܫu+e 7*e'Yoy>H,MʷYoy>I[~O ;r[~Ou+ܫu+e 7*e'Yoy>H,MʷYoy>I[~O ;r[~Ou+ܫu+e 7*e'Yoy>H,MʷYoy>I[~O ;r[~Ou+ܫu+e 7*e'Yoy>H7tx. [q̍D4[)c)G:^-nն@R`OlqIs݅o;~zS=/G;g9 "D{C.!6Ae.$4 {.*lkֵ909h?:'TFD鎷V-w2ͱrǖvӒKx *olԴ;ZlNt7F Y#<5^Q/TaXQ[9$)fغ7p.8_xJoӣD%إJ"1pw8g .G:^:nbZC1o=^-NZw*TTYА25@MފYucRK3[}ޖ`6o#89"Kl:A \b]F%>QpADnPµZNwNB'5Z%K9I%PfX|ϱӐӒvSwCxT`#+ PKIǏسY!L4&Ɔqy7:>Mފ^A ۴H[AOY %Ӻ pi؃OCE[O٨  ,%awwZ( q`=É,{Sw'\ZTZXynd8<8A'SwC?OK0Cyύ2#>Ks(A4iUuv`tM1pn\Ē0Pj7z(}:>-kWtWX}*ՆyY]#;qĎ [V]vn >MފY֯ͩjQWYkՎx^\8##iv &KnzN={CZI[{Pm7z(}:>襣u"k'`Fp}klV; 2U`= px nE'Sw45u9벫 -VsqmZ(6H2c/+q_MފVVd!5Y+6-Ox8rI?wr =MފNE,Plgj}GZOz;Vt>TU%o/yDnPͻCii/>(3 !ǖF}J)N6E\ '~p;3AcCExE=9uN3æN4;FH=I|"dn@]42DX8pvP\nPxa=dc=߬DnP[cѠ 2XI'F.v{ ϭ;Sti.9E_0C {Pj7z(}:>>/^][JB#'aݽL&se pO>]MފNE*hxrVp8f[;qû*K^F "|,ݎ~[ڂSwCWԎ(mpOyJ ԄE4,dJKX#Swpb>xu1) x8jT]4bFEkr=xUz0.^o^=tIB+ˆ\kŒz8>=xUF߅%zhneͶavdzjGêw$& Y'wa鰌vNs$p}SŒz8>֗u^:AKA^1ñCgOcxkLvOG?G%NTkNOu>oI3Âٲʲw1 I)ux~uxkblAW7ܝ^?Fr6 NoZ؛U67ܭlM*x~uxkblAW7ܝ^?Fr6 NoZ؛U67ܭlM*x~uxkblAW7ܝ^?Fr6 NoZ؛U67ܭlYZ޻[B:7t۶c=ٟ^8 m%hhڬGجݬkgIyYϫA:xVV #Oǀ<$-X@wwN]-ۍ4F95-Vkq{M?Jo4~!$'\sޭmxx``sRus_Jo4~!$ Ы@(>S%XGs×ycAL׎:]Vݪcx A-psKHbSy'R *b,;ihkß}^ ܒr-Y;Q;@ÆZGԦGN7? !fqF !lB1nvA"Fx7UG qE8, l9nG0OyZJo4~!$Sy #HcZ ǔv`q<FS3M=ጅŦ8_kpO $+wM?Jo4~!$~h)-Ymۃ\vqa%l(hCIԦG@31TjɮG;X.4 Ès=*أ(֏^Sy vI!fY$ H4icyy!5⫛ "IwԦGN7? KԱ Znr9cI-$y;KJvcq8lp +Jo4~!$Sy ß/jڞ*w:6(J;G8=<'N0~x ԦGN7? nf?;:hCK˜nGoN5-6-N($Hd4D##Dtזkdvy`p p]Sy'RsΝ^qX襌#K q^E[œP/E,#ps9g+Jo4~!$Sy <$XM\֙$g' #֡B3zM ^#wz0:hCIԦGA ۂo-tMl$3 $g7?u)IQة_F]іnH].%9$6 hkY`UY"tXe۱ckٵvO oO-Vlܞ##np08gەtV|Ⱦ!Y"ýu m-^%sqxdrZju-FRJٵFp-n8ZY"Eg̋ʃ+NN+E5&(xg;mi&ZFJq$s[Nںnϙ?:+>d_T`,r2 Εп&-w#=W+>d_T|CPsڴn&рAr19c1(@Kc!<BY"Wr"RpMC': blPIN?pCH&؛=R~O? &TOCH&؛=R~O? &T~!$?mC': blPI_:?mC': blPIN?pCH&؛=R~O? ,oA% B-?p?$+]RWUNK#ZHj锡J^dmOx3Vg:@Yݱ^B^V @{V5Nk[_GSACT5ppЂ֥ M=o7<<хrRuS{ ܇yUoW# E~^7lCoGm rN 9Ǘ xW^|e],Yx땩GexcIcvPE7app$vU/_sm[4J@n1wVTpYcҳ=-rަtQ")<I/?Du&Ux`yg8U_f>'.>ӆ֑czƹ>F+ڞW3z6\r I8Vk0S}ɟ#hckFqv=zj+Z=ɧd5ҷ6݁;/VtNldYb8c['s>XxNz9k 98 $;W hJr\ց.ۏ$qāJsFuV^' adĵČ=]cHf -.c]=x7##_~+ji6,Lƴopxd)kl}&G @v8>ޖw׫uXedV$gfM$8 cG/j(,NqH㴀A#'q^XVN#ɦH˛R FGhTVӳZ^C]sY WZ8lÞfFk d C^ߩKg[!:YwVy O m"}FY(E]=!BÏ[rمM&ǚ=WҢ. 99ǔ6j;mpBnĒgydAt59q7<n8.CIvsliuvGZ>FZ3T{K۱q<*â)MbfKail 'H3t6`;+tlTbMr{v㖻 Hq#g*T0C>uh^]l:\`?'ns^ ;Pħ#to{;TnVh[$nk.mxԟbm}9ٌǀh[YZ"kQs@ 84H=PuN6H;ZOcjukc燷 ٷ | xCUUnR)Nm\Oj gG9ԭZuZ11kZ;xV#6ŀ&N\ݕa/pDDD@^$)]tnᝮ{DD@DD(bь' sFp;n?Ӗo9IIj=6͋ڦUIFؿ™tr$=)Vg:t]2K88$`qxqg[Nc/u烁 Xڦ?/b?i u8㵹'>W,m¾Z]Mč62aWbS-$Yeb-X6v&(׶*>%Z@ki߸s9cΒ{tlLړv;U3H,"" """ """ """ """ """ """ """ """ """ """ ""enC\p\,ۨk5t幧|,yRZnbv{Rnр6/jg2܉)` u^VP t HמRۈ>4 үE~,_ڳAET~Az)P.iu,a-Oy/L֟Ӟ_E&r\!q4'Е9$1øta#~1p9ԃHiS+¶`[Dm^iBjݻѢY{0`s~"AW4BkMt|$;ς.ԛTsfMSi#2W84pyፔAx)[etJ^W my¹ #ep绀c*tڜR^!# eƗVx#$TVZݢ4 52ݏv2P໾|AvXn{,HR9FA5{v Hx$rwXD_R%*xeÁO0;v[,001b>qiZl388W8a{5+HH]!k}go.8#־>l&s~x{ڝmJg $췩֊܍E탇}s:]WppRakƴ1.hwCC I?X{]!ϵu:El5-s^ZOh [N`++dd0( p<DY*>Zͯ^Ǹ5[g!䦞HNLJR[ FggRkSv*vX`u ׬+08 ~=nig`|9s޺ g雸E $ Ñ#)N71t=$c04J-8U%;4;2HtȚ0ocOrz[Oj ahx{xgkTc-kFF1以p.e: FJA,q1F^3ČqZJlM3|@.Q gXcwǜ?=澄ӱ6ŇJkE3m0q"'FmpZV~1FGAUR΁k%b};I+127ne<̽WX+;6)GѓldgWy`Եv٠i[+%PskNش&uKZwDkVq.|I|[^; oA%˃7@oWdVg a>Yat~˂0!K;gX5gS{n9~xdc+Od8Z"d KCx_A1TNƥV^"nF]]ǰpv?.gm5r>c<)-GF;Tʽ7hXS3ΙnG_XU` t%i|֊Э Y pq'vO8 gIC%LfF[;lt?i8֋h?XCb?j#P(6 +wj]fvC\p->߸s9cΒ{tlLړv;U3<{=+ /cH t:Ƭk\Z"YLkn݀2O´U,#?C p]q{ Hڦ?/bҰ?dvlA x'D8p3k#JzqX,cdY#pG'U̒͆E8qc[pW)Ai vpx>o]}UfR^Zw*=˃8:_u8+tt33 hwV2 iɨjfK +Kp8q~qvV]N馉aX szI{H ǷڭjB Z1IN08Zjo{ lLF\60}A摪b&"o>-3V~K[ 7&kphRɬ׏YLÝ4$%Oyz-!3_3isD|sh 88U#vWP 4E3'43ܦU,ޣwu#gC3Svpj nNߡFSZivtx5K^ a\bm~Nn0}Ꙉ]S1 R7eJ:b׵8*;:QWz8Y+bG\1unY>Kah\_0}YUiQ5]:mL%{wnT35Ut3Y&#a JU+ Fʱ>VE(pvgذ)lۆJ4m{$yGjśf-fܕfJ cOcW$TY k'C$<sܼMlNv&t 8K1Ϗ (|N:X׸ McIq0s8ciGVVA=}Xy9痱QDŽv,xa^X㇤2F1˱8gꎬQkuS)1 ^xpǽyoNӭ\޻/Bwұlx?zE(f-Y2FDx?Gگ2qlkjnK4}'jUwf*ľ4 Q&df2eqHre%b(wHdecۯwSuN$)a)Iy =BWdcICHX 7vMMi:Hek=V5H X ,+,{c0NpbZfc{TL12""b" """ """ """ """ """ """ """ """ """ """ """ """ """ """ .V5#WN[}prǝ%%6/jW&bv fy-OV{Vz3?"",6Qp5E qַ f\GrHȣ#e Z`Mdѹ8Fb#"Gyr}v;.urUJٷ1  ?(n/2Hȣt=cs9W NLK=H%iz*ϵn<1Ҭ۶%tcH~i\}k5 B\kD^M:Mi̕#w,{GA$OcHu ^ͮYI1ykƖ3#;YOWMll<;#q|O+p qT5B! mQI?h!їW; 2rAܨ f+#xNmp6f J:r7-FxܯUM{XEC:˟{O.;+>}fG4KDrw1TSEsٷ<}Te{ICh'l>y!l2psGfp}CJZlfgIVĒ[a0=M$ǩh0=kkEi#!?PvPĐIFA=`q[l՚0Z [<[zZ7-@@́Kan8Im{CrWʹmM2X-~ <*ޣu4m&wKt_hs ;dOevH$p>ܸo2_$ #gp$M1؎qݓhxpqne$lqeqҽ.,ڳWMOk͞90@/iߤ8`oPumlԦa6C$O.19|XׂՑS*}R % k^&s8.$y ֤>f(+i1ZM1a"9ۣmآ,\1]Bn%{ #0%ߎ8 v5e*86ںetn{& apv I4P dc sy཯طuc^ .kjqmzȕ.ģ%x˂oZf=<"#7d潮 -4F 2 {HRo KDRa xP75n2ƑU+WmڌfɫN<7n+qMḦ*ε#Ρي[F+6eo jmBWR3i,ҼHK\~ 4Jæ^%8Z,N*mA^H,SIGi:X$#c1ۅIO(oC $SiHrϳwa^HoiJHtA4|giqA5{dr_f=ttVzv $+,Z&Vh r0;Ah S[XOjuc]}{5΀E'=+`b/u^%8/8ca]PN>1.Pu&SHL,lnWc2 qn24W,DXA<{AQ`f f; !<$u{lW0əJc&΅$<|qZ%|pܺg#kbiqqo 8A]3.k-睸Q.%aZM: -1-xggSi,K@cs]\A8pU]jv-&x+;a^NJ->FX ;}:F&FrG#s3ğ$%qXnEunt&#XʑDx<8v*>pNkBesֹAX0jړ)c}jނs-aZ27q$iefΊ-LçT۳ CyXʑmt\LD-ݜs#=ĩeם䁱܁ # 4cZL۲ ѷ{w*WtH,K_ei(OFX8c?]sIV 4jR8Z=ԵORƬNh[nKQ9Z^dsH2{uBfmh@lV\=dǟjZ35clC3ZFOg$7/8 Rܖyu(h1 th.Z[1-u٫C`g9 OF^v8px>3ٳ7mqx.OPu8ht效 ddvEuZ !$8ˏ'Q*u{_ xsAh,`w'֫GnRؚDv;-S1ۈ!0A_e$z\d3d ! TpXnEJesMxdv#bhqvqωBF)4x噌q$ pyRCCIZ!t{F q9b~7ۇN]: FF$,zF&+Cq˄L N^YKQ3clݒ9dwc'>/l vL G>O{Q>I[aUуҌcÊx`2b3#R,dv917'q e_GSACT~AZ):W+3ѶV8ܡ~m+pu8$#\>i,z,ٳmxݻv#6ͭJګGSbxsR-Vޭ#ks%iAi`A#jZh3ˍ]Ǚ qߵ-1ϯ4s5,.8s;BJe[pNN$lR5ŇA{K6cQ+fXdlH7zÜּrz&IkDZpXd' `wWxAӭ_7@L@مRVM ^N~$+ک^-R{@K G38ōqx3&H(6[9d,bVdh2@xNxB;|5i)PMQʔydcG$2ieE-ypZbgD[b#Hixx'G(6tk : 4E:d,IbL=+ZO` 7m@-8n;Qi:"k㖬Xߍp0A( @WRe62ҴF-=30]in:@sV!BYT[?~z2-J6c58޿4O{4pd.048A!핬6͆[]TC56猦2!5o}cx,E֏!qqiڃZ~^wnOv`6LH'Q AfUѡ4V7t|т@Kr܎V:ڷt4j/rKd/' $.qﭣҳLlϩ2Wt[/<*ӶZd6|fuN$1$7n#ޢFoǫ֊jj-湮sVM?jô,OooHWUjPS328/8fqAǦI>\)⻢3x0=UWcmOE4]wYoo t$g>~4FEα&Xb Kz@?#puw^Nݽw PTh5:Gq$8I%<>D@DDD@DDD23܀́؀" ""&@ 2y"" """ """ """ """ """ """ """ """ .V5#WN[}prǝ%%6/jW&bv fy-ٴұۚZ8 3?sTuvt@o`#Tfu> >!3Iqydž6eDcZ p 3՝.';K~(.E~,G08(?jw_5fƵ,٘KZ 8s;xgZ4x䎯K,k2C#G27dqauU[ICQ_qǀI֗#boA$}pkH݇4 $A{ZZviIVl㞑]ǂ~ TLrCCv]pn-px Iܳi:6%|@90#- 7d];^߷w0cAׯC [j#UZ 'z$T6^c+ԅSPLYqp2gKgI$9O0IvC3;wͬGbVUdq]$os$ѓ嗎')Żl,>:0D؄2ݸcwwf;U /4'LZݹq{ҺeUmH-MbL8;"i*Pn-j&?wJ5ۍvm$9S5ݴbo}A (zPO#CnpX<gzƕ~yeY3ٞ?hKi  Xoֻbj*֢GUZ\Ƹ>Gq.<8 s[^o%tr$HG'0cwROiK[qey[&9zsw l>>{9<}iiDdu`+9xr]sWu]1"t-~O8F9sh*0x5s0Hܵkzy61 AX-_i 5ns($pcp1ۻ}[ژvG-=C,9qa -iw|<hU45 2q̯5K;d1fԬk=AͲìˣ֫A[aq9݃9f>+=Ʊ4HD8 !`zGoPM1TWʛ"9͡H{sL4㑌U7M}ǟh9:ΩQ-"wI}!xE[s(Gv>}ޫtM({:#nsNsQ$=)wVuC6|mG4inQY3\xKy{8=GQ׬ӥ}͍N Z6E#XK\3A8 c-*XC)SG$ 0Z#Z醓ZHIvH#ÏEiK3$O%1䗼䁞0>_wQ/`3?8hdrx3\sH\xz[N^"/TiӀ@\}-|yi=֠ 0),$8=h(߯X5a15-1YUM*ZjC^SMq299G ;u5" 7U\n#a S<+GF q>7FZC ֭U;l+R׉$|}!O@c_Ժ'zT%lekK)[@<NWAs.Iz1`54wǃm=<;q-.c%{c~mC]`8Z+⭭5kآЄo,cPy8k7k }#Ih]ɋGt>޼VP*8skZ.gH*ܱNGN-8Â[6ӆXmt[qz"jZ/ 9فˇ2fֺZ7s|ӂ2=EHf"OZebԵXKŠ=ֹrt]vZs2Z fki |g%8%:H6H'4 r+7VE np6)G=8v Y*s>P=\dyt6`9ǻXrZtBNefH&.!8q9]$TZYv,l`#p=eyTc_ 2.ȇ^wycY{2u-wQ,p(Nn~,j4hu[l{527GQLc3+fy䞢} N- u1k~|sqǚZc-S8i8NGykv%T\d&9P5x w.Jw@xiIk|iU^*UdxBVћ v8gH8=MQtZrYjF8~ƀ .G *74{SL$ec@q;8倷);Z*__ t2=KN܂29p<8+MѨ2BF:n㎏VStIE$]{!%dDZH#ֻQJ8G$G{ws79<לS7D +wj]fvC\p->߸s9cΒ{tlLړv;U3PHۜ=OSWh]5ИvZ$kX#b4TA=#8xQ.iW|~{x̩xCZ VYAVpvRA[;Ǥk\v$g=šN!謈?Vmк\sg u9 |̭p%"=f:̎k.CHܾ:q8^Pȁ{̲>FwVxOOZ6kMTVAx k:ςפ6&8)r͜,2=;p2G>5Y`Ղ\osh9Š8sA= B} nzɸq$s~Il@ݩ l,Hyn;߸s9cΒ{tlLړv;U3QcڡvMy2D<8?'5zt T:Ý ŭi2qޮTe▩l&8qۏj\Jt\εs¶B׫dn, }/_z[]6-B:RďsA?G)F$5d:ŝPA)ӟY22WH NxQj~U?F ppրÇ4M6m-}zCIҊKl28ˊFy5 +Ө&dGKi#8hxj]-\ޟIZW3 s9{25if HC\\<=xw)-tHڈ6^8>K γ 9ǵy6cX7 9':[h &d} sc3rs gxESl`WLnwNIaORim-V4dzد-D/ DETDDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDچ#WtYP?jsOX󤤵?S*ݣl_aL:eSY5{NZxVW;YH\[ρk&zVK=HL:6q$q MCRMyֵO=ymO#bwt{683'PjE~4gC㉭syh{{bl[s.6P\!^8vO.v<9d(ZdN4}*dV;l2ZD0|Wڲ覕k6v|d#sj0jͩ3d-$ ;< .i Z#ڋ*",$`&W !tRӯM[quCx{{HknY\ oIY8# i6۲#{׿kȹa/|!miC՝$1hpgLZtttBb|AAUk>ē] Sٟ60O6/Qj:]/4DlX.% aWCVg] 0爚 4g#'b4S1gjZ79iͽUZ-kbq{: `56֞[+]CA8 48ʎ^ySjJ0!g7`w{&{Ku:w9.k +΃NHzĢlٔ9#hpNxv + eq=z6 ..q}@*cm!ԍ\Ky sdvgqM1{#UKf52Bȶc] *(;t08g$piO 'fӣ؞8!8qsˎy*h[$Pwj 1sF?E4F 9d iw2Z֐lV`ψ0h$i3*2*r"XmɆd q8ڭUˏ\cnawBb4Ŭglmqb0p0 .s9<7%-tѳn$pg$d0L `d!'p#8*zogK>RW;}-wvq!4Rv>u#!dcاԩGO~3vc8T.>lu$ͬ#cÃ~ҤR6$'/8WLp'LFj2[u츸>9r{Fm/bfmČrw1kkm<(ߗ-qÉ[َGՓFqLu#Mp9L <`^hU<{å7nFAMh:JGP rf,""( sFp;n?Ӗo9IIj=6͋ڦUIFؿ™tr=i宥  n;^CjFќ+ ҥW֛,Ps[98՛iշ=5-$g'#[Cx81zK=vj?vwp#i8t1mx1FeYlLT 1X9ae}yFEc ̒WcL2'G.e{DŹ`w`p$7<闦XJN[|PFǽdA#oj潡ps\29/3yNYѵ~IMQWlEY=!s#cVn[&^v # sr9d Agu)aF`lϚB0ݮ 4qOU]7T+؄if^$V5?G-]4 kFI'F滤ӈ/jt@py߂y §Z/Z}d{z6DȐG9b+f.Nٷ,sq<0FHA=.+Jd5c$w9}N[rE%=BVA]Yf74=`@X]dSCRv0ZCKq][f#C~½EpDءц=&)-1M$uF6Fq$O>ZҝۺZJ0q{_)#9l,V =VpN;B{AƼMð{4;՘:zY|;yP]f.8l%ԞH 8ՎYe85H>:6fuY^ʴ_\* }Kp3+FdرDUk%-Fnx`ୢLܦDEpv?.gm5r>c<)-GF;Tʽ7hXS3ΙnDVg:\Op t8#Dna`8Ve2]St;DMِFӜ㻗b$F5[pWrx (FADZNLK=H%iz*ϵn<1Ҭ۶%tcH~i\OCvԣGP:Etil8009pJ] WxkKWt]2v#N,&k h8c3U:25&\Vf]ϐm8Ū:FfGf[% dY`nehЁ?{1I<8``mKș>RFBs_Haxp{Pb+h֚xH3HaΣ4 - Z·q\ѷn ,lBx nnMu8`lSE間`.t)EVG/l`Gj;uQ37dzƸl#0f~zXyi6D1q$$jJVGE oJ&k3>u+򾱒)#] 9dgˉF 3+J֐ڶˌ UzF\4ی񊫞xdg\`ΆZ{2eg:':`ܸx >fIK0LG@pe}I c,_#.8 -N;DNwc`{F]"ڍ+V&:lO~Yp.ݜSVV]V[#cF Ixˊ7V%j Mmy+#FQFL }xنgjtnI޳ѾZ1sap{q# S\&Ms&έ=g]{Y.d {և7ptجCa:Km!ckN:6{.8\tw##flp5>w1vC@5GC"}B :$bO6A'IĘ蓋1}ιc C֗N2W_ nH7G2_ pʃE$~+GPnW~ 9˟!=Y:Ft77~3cux֙\DETDDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@\,ݨk5wKu sF4~Ϙ:JKQѳl_2jM0V[%?ՙN=);EӌY|탋=س6س+h6ՌN"!}c/t襍d.?6b%Gy}v;Uji֮069G(F3<$91r ,`)xywF;k-Nq,Ed*RӠn(k.>\I\VfU#4Z| V^bmΧsnu8.n8 0|--Zt/C8W3N_X ,Zl\Kd7<3IsTj:~F:,|͉nZ ^OpFnzKU; ;AY#p>A-8#KTx9auG6]lgF7fϤ ln%4zeb5^7-9cdfC -CF8s''H5Eff /X˘ ;9xrX5Zz{v,Vy{0xdJq<+t.kA@>x܁eOs _;.RuygYֹZpZA8*-.'ZSK!#Ǎ{\8vWA۵iP6ٚhk hK^@q8AkU]oMV&7{р]rsωb#k;6I#G;/ŖYr3uYnVIpn8㓞sjz:H#裯YcZN6.RmsPcUwHщFCZ>P9䣳zzѩ,O-;;Aܢr6+60ͬ'n;p;{UD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDچ#WtYP?jsOX󤤵?S*ݣl_aL:e 6Vϧ+ p8 ![Yy7o0Gsv-E=xBn;#bm6E#&A8{]h88<V+㠬ZcZ8gpXM'ױ$7v6'/p3WDĉՍ A[35KR摷$\g0~is$ _CA9⢵$5^+Љ(Ýp_x |#ծ{ ,9#{w5B+UG 3g$xI$̕J^jz3MdqלqkdY籤ֵSNuGiz|"sv#Î6dWխnBFݒcՏj)R*ct衻 jG_{Ò$sN{1x7E 2H% t#iѹ$x(t ijڇSQJElǜnoU~zυis>ӛt旺MsFcDJfokuXy `pƗ8.wNJkJ͋3>I<d8Rs\3%+3s`=8 Wku P3X s<9)Z,38#!F]r>d1h4JJR$lؓ/n0v qR fpاs 3ans|3gWe&9sb q pd+ 鶽L6Ng=Ꜿ S66 pD$$c_ycY{תUkxe+l qye~GGll |q$s20s_pM2h&V; l"{+g~ <0y)!H$27OeM+ qy7`?VnY"CcdҘbl{s8ٕ-2E3<;W&N,kchp $"|ol.atq6t{'qc kYGPEv1$ocZHqd->udSB[G;6=أ2[6t>OXXsw>Ji0@潮s+䱄i9\ށk]r^_c|`m~@#q<f0qQ@ːSYk^$iO?mm*]J[;jE#{7#n3^Jk:J6dwH3ZXOk$+&A5ڦqKv;ksIwb/5HEd2Dp"Bwdr]-\7b"u>E[O5^N샑×-V` !Gq`+e2'scSUSW>f0՜Y=aoD×>)s@%Y,;L{6@OjP$d[*dVTHa|:~dÜ\m93]mv?@+HK`6Xa8{״JX>K<`qisr8q E5ɮ\ܽhpCjЇ0Z =%Mx?-tT s8m$IegfV/˫jQY6ӄ+=psܿq<8{C^*Ԇ#\K~ytUfiGTɿ#h@ֳ\֖]?|gmeY̵A^C,NnM9}?bj{&,# D~Ӿ?;E~Ӿ?; 6e;dsC|s'0|x^6f̧lyop2Oʈ(Pn:6Y08n2640FZ8pp2DZۃHxyNGxr:K:=6l^1nݾH፬dzk}({:ec򝆎<,( b/5BmJ;IphXD<nr/bapO/T˞Cy\< Z:fX=wc$J#18ln1۴dA6 ўj Gd/wزMotbL;$or9.kKKH#%]WغnjiA$/Z^DL.@hUD_Mk\# #VO(J3?AOf{S咼81l|8ѐy'#UmX!2ܢ6mi$q;UCIl}p!<q yQ{7Tٌm'86?jiI"?jiIfyٚҍ9%HÏc>Ppl;3ZQG08q c'%Dti|"5rCCZ@inNOƁ7VcwV>=[3vx<<ǖaYYfvG mf=[G3,}${ݸg8ydy',ugiL6#eb3|c#:*!NzY c{{(1-j֙T4ϊ*HI8#UFIMIuKYLH$Ai#.]nGM+ninցIQ5qūVlhtwFr4x9-Nոj>]9JMFC8{9UOLzчbHpwg'آVnXuz wZH8ᖐpl=^\{-:'3/YkN@'HA5N݊"k{e$`c䤹Lu~C~AkC.9dz}L[jA`ז+e#$ݣO >* ׊cOo˳7kHlDX3E`xoTC)dw{xxv sv)f~+ǰV,d n(m@lX<'G›5]m|d2X״8D is {mzWbH헱q6j)u2&jYbkK3H˝9<yWWϢsz$5D2GV U>Oo˰~N;=Ylތnˁ-!¬s7ϑDKmqxمllz?ʛ5]m|\ ?z2[ޏWxE=.'O^U>Oo˹E oGW%?*lwSQp{dUlz?ʛ5]m|\ ?z2[ޏWxE=.'O^U>Oo˹E oGW륶oGSe} ߏt0څMb*ޒihW^"Fzy~^XUaEOLt6-#IeXqsߌnqV2Da+AΎz 8 ,CLv4>Jӻx{-+O[kO@̆y#[JG[H~Oʺ[N[MfͲΜH|æKܖ4&<% ޏu ޏm55V 8jZ&cx{YBB1*ěç- 2ş+z?)+z?+,YBBC,Lg ޏu ޏ 2ş+z?)+z?(42PxPx,YBBC,Lg ޏu ޏ 2ŋ=R-28*s<ծ[A&XoG:oGXbbe?VSVPhe,[N[A&XoG:oGXbbe?VSVPhe,[N[A&XoG:oGXbbe?VSVPhe,[N[A&XoG:oGXbbe?VSVPhe,[N[A&XoG:oGXbbe?VSVPheKPxPxpnilm h ӆHx# *>[N[A-"{/Xۘn3ެB;:}~0ð8?G+z?)+z?(<@c R8b0Y?C+z?)+z?(,.qm ޏu ޏ b(CT$pIatS6Hv%r<kHlnv&LJmfq¥V5yV1T|1E,&s6`d'j uR>topkwJF8^7Γ;mLfޓҷE;jF# w7ms=Q{eQμdn`ݻշ{yy't_οWC OY]l{ 4d ky"G|+S@Qi*J $qf$OP 2Mi36}GH%t4:OzoA&|G|c|>#j=IMlo'w67Γ;ޛIt4:OzoA&|G|c|>#j=IMlo'w67Γ;ޛIt4:OzoA&|G|c|>#j=IMlo'w67Γ;ޛIt4:OzoA&|G|c|>#j=IMlo'w67Γ;ޛIt4:OzoA&|G|c|>#j=IMlo'w67Γ;ޛIt4:OzoA&|G|c|>#j=IMlo'w67Γ;ޛIt4:OzoA&|G|c|>#j=IMlo'w67Γ;ޛIt4:OzoA&|G|c|>#j=IMlo'w67Γ;ޛIt4:OzoA&|G|c|>#j=IMlo'w67Γ;ޛIt4:OzoA&|G|c|>#j=IMlo'w67Γ;ޛIt4:OzoA&|G|c|>#j=IMlo'w67Γ;ޛIt4:OzoA&|G|dٞ,f'ŧ=pAkZk|'~dN ߙO;[*u56G3}yJgcLrU};n1g)⧊NC52Xeԕgs'k\^Y-v̕fsn*>[;'Nu%)'D,38[;))xAZkZiFtk]3 (G}_vn[;-AC52xPo̶'NC52D*>[;'NmbxPo̞*>[;-AC52xPo̶'NC52D*>[;'NmbxPo̞*>[;-AC52xPo̶'NC52D*>[;'NmbxPo̞*>[;-AC52xPo̶'NC52D*>[;'NmbxPo̞*>[;-AC52xPo̶'NC52D*>[;'NmbxPo̞*>[;-AC52xPo̶'NC52D*>[;'NmbxPo̞*>[;-AC52xPo̶'NC52D*>[;'NmbxPo̞*>[;-AC52xPo̶'NC52D*>[;'NmbxPo̞*>[;-AC52xPo̶'NC52D*>[;'NmbxPo̞*>[;-AC52xPo̶!ҵ 52eyW`~\g-%O_8b 3csqdxEu uk 5E[CIk7\eGt繽(,#vyYrҎH%XѽŻC}@ an;لg!yvQ)06ktm{KAh%y79޿[%y gI"7eiiÆ8h7FjM5@)9 ~ oI!bM$ ZW;s `_j bVVcr <fL|=-@*8lfpÂ9yr 9.-.h% ~yKϋWc6OnDDsޫе3PәtlԺFmNNhˎ2H&}fs80 g,N46];CNƜfyܯƱֆ98zpv[b=Jh}%ѱȊ6䵽$[:WR)tRDb3d~堈k?D@AΘz YcM&I4. /Zs-dtrN᮱ >GXH qgI;{=~6?X1OKs'`ݼ^62;Wj0FG##duʺu++ޞ6; i dø`> 51Aa;8RFz)L)h:D/6,AH!{ #ѷ[2[ B<ތw#g}9p3ޑow""" """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ W y׃j@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDJ5ןW y{{-UpZ~\J4^wo U+<^~\cM)a]1hZ< .;|mD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDJ5ןW y{{-U zDls#/v2$q8[~\J4^vhjGPuh6Y^wok?D@ApZ+Puh6 Uex==" """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ W y׃j@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDJ5ןW y{{-UpZ~\J4^wo U+<^~\kVWj""" """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ ""%r+>5>g;5>g;Ⱦc]C~3i]C~3h>>5>g;5>g;Ⱦc]C~3i]C~3h>rjZ=3jv꺆?^A_&~ 0G֬Aj$;7=;ڃ(iK^]O_/zw4?4YZ/x׬W|ƗghiK^]O_/zw4?4YZ/x׬W|ƗghiK^]O_/zw4?4YZ/x׬W|Ɨgh[cVZb5$zG~3h>VzB:C~1~?L u>6N_Q/PxP"/PxP"/PxP"/PxP/2Hȣspk2Iյj_N+e=&a{Y'(Ǥpϒ8aLJh\DZ׭c!Apsychopy-1.82.02.dfsg/docs/source/images/coder.png000066400000000000000000004342151257562125200220030ustar00rootroot00000000000000PNG  IHDR zx)YiCCPICC ProfilexXgTM 9!ArNHI%IRP%JD @T@Q$Hm|~ٳol5ܺS]OU{X<‚aBB" uȎNd :@ x+2L m9%_ZoH/ Kd;+\'B.,'?l{~Z">=I~ vr2q ,]w@(thkx{xa<~//D{ FF{kC oO{~?7cD'="m`ov?( :dw ;=v$"?2qq8YVZFzoM;_,vFcDrcsOJ'|V0V0@-LNx"aAg@(\A#h@x  ؂ QB+ @b, i@d 9A EC P2B%% ݁~hz@ 2 `s‚ kæ-|88> 5g4^EńAIQ( 3:D*P6Tj5ZDDch2Z6Bۡclt *݃GϠп0Fcqac0+&L/f 2aJX#6ƞvbGUNJé,p(\w ׁ}mxn,' v~EAC!@JaAMq"b DP' "B=B$y*D+b@|D!$ёDI$R44IzAZԢt!AЖd4Ll*/,uVOꗴttK:$6eYQY/R٧rrrZˋ_TW0WHWVQTRPW\PWrW*SPfPTV~QQ9rO姪jj75 Z}B|UUUP>Ap׸1ɣYNO[֜v5:::M:뺪Gu;Pzzztv%o x  ;0FFg&9kLLLmLKLߙE&y b,-,^[ Y[޵ZYZZ}NqYձͱ}i'lmmOmb_c0(xqЉ)l|y\\\:{ߕ5-w{GǪg璗9Z >>>s꾹~~y~ %׃,voCC҅:{h4L,,-l:\5 |)4J$y05IdSgb4bJc6K;tDHƑ8xĄG/y>w<'&'I'&HvHnKL92jZF6^~}2p\FqƯĹ,¬lS2N==s Lg5^͍ͥ˝3k'g(p+//,?G8}nȬLvɳReeeϏ]кP_YUy1%KʘʏUU}/\aue:z՞Zڜ:.n˵'K_t#4D7|~yic-[n57e6CGZ[[ZGnSkk+yϽs )qa]~]n/8>xc3k}}W3<28<0XqӰpH'mF4Ǻ>5~:lv''\&''_>3+̫4 px+ƴw6^z~~~CGʏss5 |:[i_h}zַ%ǥ#.gTѽjf-dmk=suO}s[qE;";mL `J'@'큤H# :!S\rFk`8: yOMыiś 9G3'wg_I@[PHWXUDATXKV-.9/5%=$!(W)tPHEAK u߄zFfVvNn^~AaQqIYYOZZ&[%[$ۦإ'9$:ww=z0#3+Oo-GAS!kapH(hViIX>:Ns-ė̛BNHcIg8IADgde;5z&ՙɳr F G=.(~TSYv|녦[.W<|Z+;W 5L|uT~ӯ1VMZ[Seͺw΂U=o5=j;p}qpHǓMc+{&yRS 3L̛l/848>yysjZ[n _)-?&.)e'm(&+!-O),+(=QnWU-T;/HNCSSTMJM`phظǤEiG,ì}ml=:8;9Y9w8*&.!)%-#+'/ ($,Ca VQq91߉>2;zL D$dTf'3 2u4UO)ɑ8#zV8W8O(_@P@1o <rڋt*X*.K]QVWcZk]puz 177f*}z󝖞֑;Smw[oN.n<="%+ ( =7>DkTgL3/ty63FgӼǁO-p~E}R劕٫k1A?6M4ev~(e4Ǎ8I"P&R}}LpI-}ӊ4q*z["MMbM7$륮I_(W*N!W1S)Y9A%BWy<>6.>ـlH624a5e21'YV[֛6۶v[?לXpyKI/^{~X\ ?%l-V1>| 6HB\v|YB$LOIҘZV~djFlfPlSڧrpeȥ̣ AιEK%K?M0^>rq@@`+#WGjFj=6x}FǍݞjz<2Η~_m_X\xѳѻpoJo_>=8<;2GϺߛhQ=UU7GFN83U~/#879߳sb3/SV ku'&~ BB{"Wݮ 3`?V|s7~` 0"զ0Ri#`A08ґ 8xV!<IAHxJ.Bm3hea{8?E5Tm G&Ӊ%a` #& (!/F')FC9AeJEJD#GsV. 4C(/3LLWXrYY_`a y͛gƏH g҈{HKlH>*ѓݔ{%@ABX9_%W5Oܾ5{&uV26 5252nκ_"²j†.ÚǁWM=ƣs['wП9/-6$8t L4 NBbkLfMNqɸx|~!APF$cI*TTԥ44"F]2cadRaef!Բp\j$3xx_ [:"ڢ1qIIh˲oT8xB鐲>guw ($%7bDJQ)5L I!M+2'd]4hQ[J۪qVvNnޜP8i~eU-}s'.sv sIrnywr%5:t-&phX#N#JJOLMW99閵vl䙑|s<%ʲ.].uU^6fZfgz#ǭٖ;mw߯uAGhjgXIX_t~yfrGyOڋn_./?.q+{gH_9ٽ "?] abww)6^猥 3<=_Ezx pHYs   IDATx]`TEozH%(EED@PO;zz"wVNO OPTNP@ Ԅ $m^v$ՊG+@QD9@QH$J&?x].6p(r ʁ(r `!`A+i" 'T>Z(r ʁ(r `$aGv{8l-+8L ꊋ'rE&^OH F  ['AJUī&#h2)-.vv)$dOw==є(r ʁ(rSs=8[~[SndYɶZ.5n(솽W/{Sb1&&%߳xgNr7qZ,9'~t[=3bgE]Z.QD)ʒ#5u^!aGJT+>J^sɑ":Q/o%lvCYi[RUO_3H%b/PvQ%Sb,rj.C2/CCI>F9Ɋt:+9ݯس7غD9n\np>JIRwˎOsYظgCŶ>""&e/8{Rz\d˶pj*^N8fTe!F\3ڱz 5ͣER|XIi9Wpc2$].ZONw27Ɔt=J.3Ov1Pn~fΒv'l,=3/3S/=\$?h'sڃO?zĐuhc|ZV/t} oWKඋPFs`T1ιӝʰ.N;B"].0l7T2< oJ2Hj#Kcc_I%.}4nN*.KړbollXMڳ\Ib[ɉB*uoX21^Vba Uח?cL)DX dWlӮov]~#hp`9gLl$3w׬Yҿ{2A(zRaqx# /h8p㋱%E𿲴8nB6۪q}i HrI2yb8cPb\NcL\IӁrI#K2;i*]Bx[7²R/,"++*5?p-lCadU{xsg^fɪes 9YY{q x%tہcdt?=<IE13 G֜<{܀s_X'j[CO*3F_)וkϾR4t00/Zt9[6Z9zw>UiKBp8bjЮѕ5`a2WFϛr}56D l23Fקr}/~1 >f?K6Է#7XʷW͏" +/, va :JJJ`̞=o߾i3 L"CY1\"x"d<9@.KcyyiӮ01RiTQɐٕ = :eRKZF*2HEu -iILQ!*zOJHkdj[dHUq^OH? `!#Yo>Lr1$łΓg*oۢ>|82+2dU>hLɴ*Z2^H:>FQx$+rԮK+xK>CH|rr⹛(lŲ/K\ +W?O~2$% RrM*kky9-fF_طrQ}Uu WlY+WܔĻ!1{sc]L[2LsA7Q ˞\}3!r)p8o)|Y.tTb[ˏCowɤ /+sykY67W]ܼ [+sJ-[eРo.s :}v_^zyվK>_8wqh z\ς=`N*2KY̺kc6r& jK|5P K!K/^KXa9<ΰB?l(Y^VV3yy 앫QR.|7]bw&|?܂}+_p=P$^qXp#{^z6-@$L[x )!~@v*Ӑ=?ֽ20vNkOrF5z}΋XKI"-j/-!kWH h'kW]pGo\w iվiykόYvŜ7B6-[Yd_hp]5B ,Yѷ6-[;H7 HP!o-طI;* /x!e7La[VOY+r\{:B8&}a7W\rC?%*lӇ֣`IX)kj a=cru%0,{䏷+ JKtg/gӭ;qJ%U`HLUb2VSK4*N#RIHbh`m 2J(TjB#W*5 ]R kM([~[ s헤#PBB0HlOEV$Rǯ9t+^)pJKW"9jx'>+38ʡcX☸cau- #{ɾ Ya4:q3K^"˨/|W#AgE?z9thF }0klmQ?$wgH}Vx$ n>EU^Ow]| kqN}Wff_6w=Ȩ3a+$d=޻1U o[(vdgȞ;BJ.%~3J?/sMMڄĜ%SfeɁN.x%ːuh\e_,zrCc{dS=5 UY7Ge1h/mC;{KvYBl=H%/fm91t&!C33{)EPƢm圎m%/z Ls=+3L"ӥ'){fʠ !d=|[zK_<Z{LT{fʌ-M&u!STۗDUJH8B h47:1 /Q2 XB f"VJx2̞: +)RJqz]d=.e]Lrlj=}wk!G>k==bSs41h{ෲŅIO" ӨӞ4&ƛWVJ7]m bdRd;VSa]:#HT s`ЄJk)*y?}?Z/oeo0kjG* 狘gr{JVNUX͹\_۹ZAĭ׼3IJFjR ` }C3:c o+G&$vz9%Vw\f{myqk&zcO~ 7mTEa߾$oϿJu` XZI )mj4S$ޣǐ/pk+~4\a[HavWrMV4N"+OnΤ厹nl´mhFJ|)!K#Vi!5_⑴s¹Qy˗@]yhVLs4?Xbv{N6_ rOiAvQ'ŀKoo]v%,MK񇆬{4Yڗ.n[)ZJqs7kn Uדv4w(ِxM]<4.rߦ>1=fF;8/!gӿJۍ( [*(i!teC#>K6  NU ;H$vuvލE`l/ݝK&*o@gL&%hpbRɘ*K#zN3i"9{ebw7[~|BɪqD+Bq0 cɵpbG吴nWbbIlj/&4˧w52$uW\SgN#ܬ-P?֢D1MJkjNVPf8"jXID21Hx;KRwƬ++[3}`w4~ 'CYdÊC(iזl6CɪEFWCхK Xxy!{zӒlϞkMyIwo?lh3b)?m9y̏N{LB^x2f,2sl/1 2XFՁr'{KvsЁCfak-w/o_wr$6g塍鷏ib<~͟CXdMfW IDATyY{=4Zj!H?h$[5M*Y:UKn$T$źkFl,Mͺ]V?/+s(4rKw͎ǛXiz_n: /^w3ٛ2w]s?M"\l,9ĠGEf;V| Q:@JZ_PA A*Dof #[5\ CPh?-8tP ڕ\zCxM4s2~_Q!%DMC5+ 4^08]Nn!>}WfBaeC[)[d_Rт̇6䵢MȅPp8=&aBbʒ] &tDX@vmUwx3*w}rOׯ_K}q]{igA8˖̾e053&K0>-(3tXԺ3f3O ӂk1,CDw&~~ Xuܷ{|xIY!JOi.|ns-9|J:?>oo_]?8/B.@~f[W^*}{_J}&SV;Ē[[u^>׬y+{b Nںᮧ| N_óo҂/^It_QPҾkӔ >@;6˱|tA=ŮQCnm׾G?WW^CH{7z?U2yByhU;r몶E29]7=7gyF?[ 1u5ͻ[>]{/XsCP6u{-_~|;]WpEP]{V_a4/#p"DA)lMBCnS񋯾c _]50~ {Z8p ,&Np-drr2&1ׯ[YQ*<ܫΙ) X8h6*HpR{ܤR-u尹3&&*yJZ}a'6^ml47LIlt.3odHG2ɴ 1 %ywGg$&QF#TN'"}bc64;HLJDVK FWLeIz&^ (T6M9LP{ &+bcNK$z <-fEK+A : &a٘e+ߍ)ѮSsC}!"5DVɱf)ˉo&;[+2.V2|heB_q.1A񓧉8mf|Yz4A70tw/{ϔD =q=]ol!%$(eH6ͻmc*ZklžR9t:6riV/QHxem2aSD˸`Bgܦf~4bP ЌZ541jir 64}<|(N4qbI"% XmgZ+Qš][5 ^Fajnȋ^+uR m)bML܀hbElUW,2D eAq"B%3ln]՞ϖdV g@5yE`SL uDIU6d5BXZ;97ϛo5 :M:킅жw!ڗzL-bR9it( &TWAJcئE*rQ攞͍uqqJs(R'CXEJ]Vb[x+`I!C0W'i\¹^?X1]AB=.tGH>Aߧ܀-DQBj> ?T,ۍ!eU܂ w[Ooo>?IF,lA'0>)6 gO҆Â< H߫!\#pԾqju´iptdO/OwdWmuFEv]vO1c:(=wE*ϖ%'i5/eݾP%nAxƱ.S]Ö\Wǟr8eT]WՊEXgm*¥Ώa;\gEmgx]xRT;xP,] ҃a~yq*!Aeoh#!m:~B=2C!rEaܦ%"xР?MKK'ɫ$bwU/%OP)6.F14GDWtohY튎մġ]wuuKRq*Q%jTҲdqe.mX ՚]/I-@ /^wwL[mQD9@QD9О} t Do1}r ʁ(r ʁ(qGDӣr ʁ(r ʁafjQD9@QD9@z"T.ʁ(r ʁ(p {~E&R|L cm6n?|.ID}t<-N:?7xؘoheR.]A(8 xdz nry݌̚u{>€F/6|άٜvapB)u{h0<۹zCNOII&?y&#7%.NDF9/}i$f.bqRGmN^_x9f(n=wJB c59r$xWxRuV)Jﱸe'O&0bQAW͓%N-.)sзw8ݞunwD& ^k܊ks͟\a. ړzQ|}zȔNmV WI7sħd6R2a:x[zпHl &KU`qQ2OR`T+ ~(c.~6y/vVB9z2GA'r?tPFN'ʽ0jr@km j ]!#Lpx+̬6\-{|)}L/Å!^*t:R В ,_8N+ (K!qDk|FzYz_|c}h(Rki1?ur)RW >z=P,K?mU$}v}]yt1xcBضV^3_"juvP<~uZاNUj-x/_tadb6gdd^ȷڬ}E S%@Fm޷eʂoȞI1J|9*ݲ ^> K& ˥LJ0$;2wD,ר窬) DGAr?=|뭷 fa&4*p vF!Z%{,n,{> F#FcpBϘ[ql#,sg*hµxjPHXg G *dtU#+@v.hb3mqj+Nm_>~ޢ#*-&6myI\̜Dc^,$;:,+5Y{^%@$D7`+6 5Y:Qo(Q[CgkJ?sJ)'[eT9wtQg- M+Az >0U:u1uLR$B:9jeOM}Z'M!ICW?TB{"XA;nr;WU"0޿7c$7Y 90<-cIk/XzנGzՆN\UJJ ^/8F{(ٯA/kNv^S QD9_@Q@w(Hp1Q,D%L,`&W$ [b P>RMMMn#:Y',b k1,u@xJ.: QN_ z]nq19ȉa zD\=91C?@):!2O`T«c(s1%Y!0 ,SM2hG:0N#Bq~Y7nl9{lv 64ܱ/I)BuG`:{XZryFm끔![$]m?Kg\ŠN#g[`jXFMf\FguǓ2F͗xkd.;B[ɤ<jXF0EtGp6pM}&'W詉xi5M4@|D5C.*l$#b +C7bęÈD;#Tbx/=#P"#v`%'P?ꡏx8ण[>jt #:(Ns %>B&竮$W0LZZ ;d.0(zjDT9utr2].u~8F4y+S{NqӶbPtW8dM'_s͐=vHW L܌I\EE=螤-#ڛM]{֜{Yy\n%@4Nמ;YeӔUrĉݪot{[%# sL%/ht͟:Ox+w?6ylHޝ17VeoL@wa#.nԤb뀁 r3aFrȁ.G <q118gѪcuN#I"vbZtˑ0GDG dǶf6ZRa, v0XO/1/O EI 7*C/?rtX/¢Qm;q6 )(Ȫ ]yo;dMs:uҴKf}wCʫ]-9Wy&W;DCCcrZj!Dʈ *\UŚ z8f 'SoĎ`B:-Kl>63v'?4V{hߴ4Ό.=zBgtq攚d~bУ+Mf"lNz|!aQ SGq 5ɀ*oׯ8yRNΈbVd`=]VVTTwnl.*<>f˯b-waP8&Zlt^e2HDcENub.Wty1lN :.%Bo_4q-^&|p{r-.Nڭ^N?@6J āU_?GbYqX4xsy;zt}Fzܕ+zW9R]t<11w;x $QD9 `_kѿG!%(V3 c=Fᐿۣz!y ==b`!/a0ui#4S guyqMV<"#`4B4eqmmGk F)pՄS0UWc/հTbDtoȸ5^"^7kfM{xf$~ʑ]GjFe1J/vY۠'%]qߊs C^1c.9@~tҠ+lvGrJ# &%%ʆH'U$hq1zȕDwn[efLN=bdSOzQ8^p8r;ZyB:ŴASSәC8YcC#mZ?0J%Ր%{Н# [Xs1-zLq0aڝn6dX8pq@siifJ$+aDpXo cp`KʫN쩐%9t_1nCTr\uXa\.<'=did}Mr ʁ40v H^J]<#Pq'7! IDATif|UTr [{Ӻjlv5{?&GB^O>IPBO#N }Ꮡw3d%H#Qˈ5xKdc/>1)\,>v49^wǎħwYj(Sw@RG^>Yf]y,[8U"V'OyySu&FpF!M̉//=&592{=}Uf/0GfzufLԅcե.웕g' fߋ7h0Lh;1z0&/7*d0`5RyƆk P갤k)Cʫ:"Wtx܀ S7z,Ō [i!Klx= FÂF(C7`]C5}/]v` P"1ѮϢI7(/ v_$ 6n5G:"'-иT)gML U/y]݇HEa?~$cX`ohJQJ9G𜣶PyXx$8}r_+hp5Ycs$|JGTMY04j`h\vy(DM16FZ5<3 {r PD׍ՙ5kt,8@&@Oa"zSEqfM5#: `]\?LtWՉ&&х_[lgs- y>OmԢ\/mt]DcݥnM5ܱJ+o5j3rqk%Hfm}7k |Q]llw*ljH}wEgM׭ѧҕm#@x[8w5]밹p& yq-S|H3F[JdgD" @~uFFԨ"q[">+j۪y >Qq_(J>:a3dO0Ko"k{1{9!;@8hp؝GC>63C)U7}kA8zq*z xMs/6ʁ(~utqM0P=܇+x$GB+HT#>K%&XlIfktA!  E(>6 kD aOioMPBy?5_\ ضFOE/v{ PMլV"+;y2{/ccSs IIXV ꍈPHZRCsoGoxw,l-:("Zup.,[&+!WXFI+U=HNjÅăNꔪ.Sjor{n-,0 =!5}=K.9X)0ta] Fa!ANtnl,&09tlܐr4Uz7:n&lڟQUeܲ 3lG3.AejKfr ʁ_"$!H_FBD>1p¶Faw\(<@} Fp%Uf'5~:ȋWp̐+{;7yD+Gz"<at#34*}?JARAG6l E11-+"]aE$_6nl\\̩'rwi5>:"*(k;>!i0x7XE{zٓ\;I݋Z1\Ta؉}/bu#zɜ[P/*\{%w2P$J9EyCam)`̸O(s R٬9p=a4T?_ZE3Il@v'vᦱO/d ˘R.IG+w k"v\./8%ݳmn2[) a' +>UAtrnū,Jg檝?V\,Q~] 51#_*sӈF눞J`ujn YZks>9&0й I| vӷWO&WcVy֘ SܹJm2bc~,rohJQ8 sO6rf?9Dx '!_v!Q$2 0lw; aY`̆  |# |B 0f| ع"`eEb$+ 3QZ>=ÏRE"0Ƞj*R `ct?U;Lk8`]zL4YA{;I;YT@:jRZaYL\ul׈%S#K7U.Q2#aQ&B"aݹujh\U'YDJm^(z+׶c{4D9$^B !@0WB cd #ʢA!`3}]5B-RЮ  SDz[VD-"o:i#-#X@"N$uXbKv+LEs<lA6Dז/JFC?aÆM68]*M1cFR\.S`X%:Qwg%Q3JS%3r@v 7–gY.C_1qe9+Ǚ|qDle*!NQ)>c {Glݶ&BZ} $If 9r24h#1Ύsz穄'@IkJ&Ic&)Wbx`Y#lƒSO)_6jFlƢOI5i%}wUzEǚ?{d3Kt0~J\`ِF)=>\qDwsh~~Sq%%gV.@V*NP :KEX2Ija >ԋXRF!<3Kp#ݩ}oE.-N53w}>|[=qN)|j*jiI%<.ir|pLLkVnXZQ ;{/dGr΁Hf@U,} |rO#«`4f͂Vݾ'T,&>xkyP.jщv@ 9:,#8b$ } G@ZRrʠcxȂJ *l2#;6.ŶL!ʤ_D\SPrr.**:~pU8 R4l8lT8w7 %l`vEl^XjeQ@3sƱ\T1v1i{X#>8,$c+\dp±sV;s\SjQ\TFΜ9ӳgpgYϗ%ʑ9}bc4גƿZ\7|llz/g<~$g:`wRNVȚ^1-N~Q%nI,.|ʭ{OMNȐJ سg|*+*6]+X"ޓ~' 7wK6!`͹3g̹;Wy sC\U/>n|j qe c2^Eox6h`FNX'; y1c2.T O`91>1nS-3`.tŋcܼS&4l5s[ԧ}ŎHIrG(uRw~ب &4O'$&?xgVVnt<~@tF-N89k4߫mgl@C%j4YaYhDt9ǿ#KRZ96 z,QdɴBYkP,>f^CƌKF4+x}} mJEzY1c7T$fNKեoNxξ ?̛;?33/;]fƲW1 @"^T2=REPՙ 16z/Ku|HZU;-"\َ@Yft w26}!|T{^12gRj+R [l MԈ_[8dDu,yHφv'd9q`sGYP^Gty˲[DEy>@><_Xg_,붹9Y8gcnl7*aJ ሲ^2tTC5i5%-ޱY>V#^=3P(G-%/g|zU'u-VMQXyv1Mr9wOܶM6j,Y :.TxgEKc3<_A`"l>y[ձoPF%IzlSe0V}0~ŋ}Ab$B7bW$D,Y%#C|/0aXB؋ni)FP*):OO~I.UHսCIrtGJ wdew,EUV5Tt(ۜldwvJzd9 9Yr|~ϘK>Lj"kFnϳWs{5g̅kWZ=N+~kd%KR/(=L>vnݲuK.O$99eǎ;v|wO<_҈ǼtMnglFqQpq樰E5?_zW^eؙmN-E{uEmgl7hЪ_f%ȵG/YMmVwlpovMc6,ZXd19yK[ kNh-5s7j4!1ɒ\LÛ` \^X\_TSTi<V\csfpE5JcCtqˬ_]7N)q%Rtu /4`Cs0Xwt8 J Ewo{ET݅YymvA ghMEU*DlAurS6D6M$+5dA{| !5 3R$y۶m͚5 kIU{س۷)FuڲQ$f+)[w;7nv玂 |Ŏ?q oT{<1 2.8LR Zn9|'114irsO ڥ 7n߳be^v+|R1q>겤"3o믙[FJ}-!ձC{Y۝ vscbc[r>%}3Фw)(QڃT[ܴip؄;eQ70NF`~~("b,W!  8xPb(mR &8Q;ӣcRݍ[Ct^8d)e>|?`ǗWxJ4&-jM$RVkV#FXءSU,? ܾg\7zqc7*(,v࣎VlXJJ(U%")-X#'b:B:G,ugƺ{cGSR( 3g ?E$TlD\[aSiz'a&tzP۽egٲGDlww 4NE<0i]INޑz]`|jڎZ̀d(A(..V#:1(Gy%_^3'kOy!t)qq"D`gA#n-8'H9-Ĵu O#̛;wpb|>'?o|쓶o@Bq3""~o6hp4C#8LzTXXRªƜ䎲&|@dٜ7mY2}5}z^Zn22;$(GM!RF:9㙯 Y;wb nkt\J(0K=?O=S 9,؃_mشiS./[ TjsQFè ƆZ0D<MHtKy_'钊w!}Qť^I xSըCe/Jt&x#<6WUjcr FJ>̒":s"A9x)!pE9q67{ .9CBU<'; 2 6cOwdڢ 2UX\ qɬp`QֈRݚtm:mQqyq hwLH3Bbbe8NnzZlTmL8l#,X04ڝ{T]R6Ǽ6CF#`饗C4h]vp شSRR|XMC@K97'GϞMKrXі͋j+rk$cpdr+K2EDK%Rj%b'V,_'r2¢¢ž={.ʥ:+9R 5v$*`]vU,ֳ[0JGm묟z}LDD/޸q#rGUu؇f!yQDhgb+46m)y9l(bEi7ܬ珈JqIIƻ\~J~.,:`@Dxշ@sh4##L5&-hM“ 4$b#j*F4r힒OdPVヹؼ%Y49+e^VD8-ݫ/ָi}v((guhQ%"Gz\0C` _iGՂg%$`R X˖{Q^ytޭE%De"|8kv/RgkN.yvx6n؆ G?~wU%%K3W,iZ *&7żE%e#bRE޷u5kSKK" ;re7n WlFT\L̎=AZF@#P0ԣpfd#9k#TTX%j!r 2K~Rp-XMbڵkH?vpU!pԔ'`uR)ϴpcSj,}騾oC=k7Nыç.R፟FMKkKuSYS[X$Wb$oO:76!E>qr3Vb]V#pH!`GRm֍h4F@#p84\ ZF@#h4h*pDmV{s1k4%Z=:,oTRSS\sHIUf`aF@#p ־GKgu?4F@#T3jF@#h4 {tVR#h4@8/_^=h4F@#A٬Y3l˖Wh4Fo͛黓O }bE5X.FAP`Z?(4%CP`Z?(4%CP`ZI}贱N#чD{:QtRO0`u~^:G_Ɵ_=:L Qus0Q=p1B"Yۺu|t/[V3sׯH;֭0*l8,9;n?}qq)G͏`FpřK!DU2[g=9~;vhҤIDK%_cfvk߾}llakM4f2;;hZ1w"KvɆ+VhРAbbb]X%5Zm0[.͜uH[cr_#g}UW]ERQF =!!A$TK ֎c.kO%˜he-e0陙yu"!W,5*/]Tt#hۭ㌌ `aR D0eCo.?<K7 V6Xz8m6#ǟg͚5q,h+)HYAYe8A<+ ff#$2"R֜[za>8G+IT-h c0{d˼PFP,@iBeIrFy '|)KbKl77`Zlon%\#&,G%BKzI1'ţɥ#BG1ԂPBBW]^^No.f]"2XmCMwT6H1Z]lxmGZ*KljE6]* 8˼p  !&>I++B} Ə?ءCڑݰa 6"ܟe7n8sLpRX6͛7q_}1\tE'O6B9sV^}q,pJ/--O gNO={5:!*d„ W_}uII!~KZա-EHg 쀙,)+?1 rjCA-roJ1'Q.UJ"$\Zf9$ʥ"U9C;K a0VYrr#u*ZMY@,JG ѼqƒhE"gJq $r&\-9o27]XXH|v,a|1S Q]w]zzg?O>rO۱c:iX.뤊$z!lqqqz(w޹E?;8M/yHxNu駟6׿e4̽!2j=2K,t|NYp/ zpKE˚it>HuTnRpY?nI%Sm!,rHWY76b$ Hb@%<ìnyV x~f((kn@&0_[|-E3enn.Fڶmɹ:uFwqG^^LI{#<_~iHkӳgOx㍣:Ylٵ^ۻw#F XƎˮB]:3[hA]$G_+ ^ئM'M0zܹG?N g^{5u @48Tt>bw^.]. <A1x>h}IoMChSW^8p9#EHljg|, HNwk7@ Φ^zy睸cBc|:餓ƀ? e:k,xf̘AcX…A4Ezg*z*_MFR!$af22Uu8O?tUId:!{o=o{oѢEJ"ipCݪU+@` 8rH6T/@JՔ&[ԃ>K@D:C˭ӧ 5\zBcoP߫J?q~PӶٳg /󥵂8f3iêQ$#'$b.lٲ.))O|g LK?0f?=f$r^r%<#]y%_"t4xʒt'bS=r$jƠe :%̯*{`.Oԍ[\V\]ii~*?8y:uU3K¶mX^y7Y\p./@PfoѤIbbb57.b10U9!=IV8FFeY ɥct8.iH{1W_}Ŷ"M㑀v&~C yGDW@C _֒/C/!+:::--mK,@道%bOf4dR\Y]>"n7|i7jԈXEV5|n$K::A~mZńꢘF[o.ihY~嗃!S-*ܹs`C_`amG NL #>h2F- 3c&2#DXni@Xi(7E׿Ic\rg ~"a|OF9UTV1yrǟ|IưT@qfEcP7aVMbݤ"W 5DGg: ^{abF?F6s5wof ;KkU}1~00g0wjSm}6mIgbx$`&# OАXDye8HڳY36T 3? %s`4CZ.Uŕ3bRRfi̹РbZ`,(`Woit^z?m^K8 ݺuzdNQUԸn[J1)#!D.8SD5̯*&qӰo ~'‡BC X+w. IDATڡ0\aEfEv[̗55K 10YyYh| ;?8JPa Bʪ\.QI͖6'%,FL ~/aYHADljd43-:B8<~5\Y`TE,mߗ+B ,*,=ZgO]Ku#Cܟ  8|ݧjh~E,R0˒"rŤɅ$ C]&PX_7?+KAL~0 cޝ'l[_.3tVˀ?9Ō!?y|S@q5`^BKXEv ܲBMQ4} /j 31[,];`lP1-G3qXxG]F7C NLwbbI+چ R[RN><_՝etL"g 4_ <+?LŴID/e~$8ǖ LL"7 Y+~&9c(+81DT3䷌ 3YE30Qm07rHEQK"Kiͥyb*Ac3R\rLqfu˒"J0RV+dIAr'pYe"N"пT6s+knCzIĿT6s+knҿxs:ijmJC*M'Q{Y*~^GgŲ o2eB4E\E]qwpI Wx4iIZA$q#^pA&8lBKf1 NV~VP`* UpK ZR]8)83'Mu]XуF% Fb`GBDI) MVx"T'Aܬ<ϡi%8lNVeCq GDxB0_}aSo)G}-ܻlG93PTuffprjZ6Y6i,'OM2ʹY93O8f95-,LScUe,Marj6F@#29-7d+kx2t [}εz{{t4xq;L׉B`H S-G#h(z:ͅst5F@# zm{h4@GjϷ~gjy4F@#h4cns)VwMg!x%̈}VO= ͩh4FPAՇ83<'ɗE73ztVNF@#hjhB| '??% ʁB֣íKj4F@#P5M͜ЊgI'כtYgGuBzJg1/~.P27enTTB?mG(|߷MDZF@#/a:˃PMI@GT1_/JʢRt|n\q%]/7)Oߟ%sѳ_7fyJug0M_sÏw xU_궯oSh4sУ#77=pl,zq=m۶{εwgv.yy_gb\J-1,^7Wk,s[.WD?ltg:$AN9/3vL ޤY%Y :F@#0ue˖|bkmڴիWjj*.6cԱzyɓ'Ϛ5nEq`M{ *M~|i7~۵|[_; [x K b"+7Vxn4svⳋezm^hIR\OyX.wv)qJKˋDz^'Ͼ;sτcB(mܳCjGw祧Ƨn[Ku26tjٜ.)/ 2 3qǸvAdldtF@#hr vbŊ?-ʾq7&"ΕŪ9W>|xBꫯN8s=vc9+]YXVx]1 ng1/xyx,m^ŦWq鸍<}ɶ?g·>h`7~I-Ozכּ<4}t_{}yK03gL.Q>^O?u G}pK_{+'p9iC㿽oNj4?B0繓[ӫyo)Fr5غV}֬-Y?DyOڣ.ROx) :=er)ws<6O9#] \ŭ-8gXvɻ?5籆]ᦤnG䪝+qyUYӗ}qQ-&m-}"Mh4F!M(##oW}:'n6eqq[rfGo`Sw}f,L:VꪡC.XA(sE/:tF6N8;ԁbߵ+whW,K_@?݄}idܲmؖ9fŵSL:Ո9~R2,ʏ;tܬ Lh1gNї[g;Zg-i`#vO;z|>nƙOz^ڔiIGBAyQ{Ns>++>+<'>VɭX DyES|򾗷kǠEn&^?[8Qlݰsg>7G5qqS'Oq6gQ(8?ΛvMAI>,h{nko,xĀZY#h42sqT{r4IQɉQD7NMi׫$|>mi;4pkOSg(~X;L9{eCL#ٱ86 pT^> x=~zѧFDydYdpyCߐC?%_1+WQ#AkOIǧ||P/$x>D[zjɛ/C3&Ӟ% ZsۨQ7fn8yʝ+:7—ȽNޛ -1*1骟-z*z灴eۗq-~b90;c Ҕ) ^ˊqϝpCVq%/ M{£F@#C -\n[oOq "&b"c#]GY}viR_*+/xWiŒGl+*1@W[2p"nyC3tueOa Å=NJ.urS%_&v'F,a@Q;MYD%j2/NaUXaƁ%o,ҐCՍ^sK^W։|?nBJK%Tv/˦6#U+v^kّ=Sjٗ;rwVx.t*-GRMui4{qGVZ:txcɛ0l F@#7xam639፣] y%qщFc鑷ruVVV|\ԣ/ѤIy쨻7An}[50J:_2߬YG.9'v|L/h B&gOێ||F\U_&Xo6~Co@lCtn%9c?ä9KwHyu%)}[f3yQNtK^z7goi-[VJ**ǁhHmr68Oz yy7:9&yo 2R% m$rG822##³)s͆@kd,G#h4 ⲷ纆jxT=";wSI\+1֝㶹mo]cH!W4lFТФŧ22xI7!m(zrE%FF0ײ{fq& cO4V'GYЉ{OYgyl@lgF@#7}8g$oZټ6Gt#iGlnmsx_ml饗‘$$Q;Vx.]`Afyd.H-0|l[6as6!-߹R&ݕ Hj$]%kK^qnԎT%6˟xd#[]N$rfp^Ҹ+MR8$^rEh`xΠ@|N73,-[*[}ef񩃪 e|v%6[R潅!D#|Mh4F __|丫;J.-z66LMI'$ڣcl/SOmX}$bbL#/ K^! @1UIJ3$dJh*Xh0b/qVHgnDoJvŀ(5 * QMYt#rDQ.IDE*N4iZ#h4ؤg\#{wS5e=wQ=i|&ƬSJ1LY+'>}C7S#h4bg^PM/(xEUbWhD8&Qy-]..[F@#hx=^Vr|VoO܀D}TD[?\7ouF@#hx q -Ot# w77KwY#h44!ed$/ mnsٌf@дF@#h4'm_f.QDy=vЙG+s5F@#6`: 8$ZiXg>zT^^yKVq/JzO;fBEDu6T<$Սh4gDŽ?Uy\U!zU`7cudΓ*">|Ahqu Tdb̩ofNtnnڸqc47KK"ǟ2巅GRۮ<Y_^ο"KK<3f 4/p۵kw`ɢ\sMjj*Sv>}:t_`ӯ_?322b--;ōNO7>]xB1G{Ld>3x4oޜ~ ҆c=V}?3IJeN:餤#F̝;W$s߿KgذafP@xagF@#CpH§ ofA>GzK̀=-- u&˃jigATT[pW_d|yƻh[oY?WI{f/:z{mZ'O='0)!W?{K={6ɓ}7x3<\}, .|AHضm2; |7͚5COЙP-ZD)S|͟~Ν;YJH_v-O9*,, Iݻ?̊+5RpَE:֞=@t%fel?m暞~~.>(+3B6lNSXx?n3ҋSS~-,?O{U'&KJ*O}kW^yHP@ .Xjq '"}GUVstO?VxEO>$#'22e˖|0X?ӧϮ]Kc~'G}4w΀ :묳h*WCN4ɿRh4+\^!laKkUeijn;D,?57女O;s7~-[6 Hjl;p"̹o0yθ{u>l|zq^O=3 3vlǗlٚEK J^3]w+$_2I $4c="'̣>*H{u @" XCArYX&`W`~ QN>!CƌeX;`@9sR̍:;oY.װg̼Ev6o$cFw}dҩ9E{=ۖ/g/rڨ O9O9oǟ,9RD?Nz{ųU@ڇ_|qӦM}z&%Y>j4X/4; .͇T4rHt/ EQF!Y8*99sw^mԩW_}e;u /T7Wj K,A v0Ce ! w?X&L@"# 矗1sgq$y睴ՐQE CvGKR#hn-gFxdlj=v7zAjPYO]G<+O6%Sqpǻg9'b=Q~E ѣ)tJCc=bPs>=09:#ssMFpMBs%E7hxXt#lKmy:ICZLi݆ufw gzpV)3!!E8\b݈K#$ڤ@ f͚gE!Ea%"tA@=|%Ɗ 7m۶:qV¢Kn%BTAݙ7o*,lKY"Qh$aÁ)`cc?nf)4ji}IY#hƐ `@'l(쫰.k"݈eeWUm()ZRR(P8ܼW\j(o,FT͖d!"1@b +,h?X> >ApZp!2չPΈ>Q)( *?`bF Ð֨^Y$%ECz HER}(J#T D#yTh-Q8?K\l-X}PT) gh3m҆qz*:hff0ft L5 TRFB?Vf31}G[a4}UՖr9#hqhkBk`}5U:Pj?V ![nM* WPQ,$e)K9[#=Xz}"* BSaJD&I vFx21 QɊ`& ZDun߾=if-jF@#PkZT ߠa=$vҭA?Ӭ,u,F{7KyD{r='~?沏HmܰڴW0^bYXh 5"o:cx,8tc7łX^L781)a f@i%8pa /~7i6p1`4w$`B" |wѥԣYF }g\Ko/N=ʶQ\G`m>#.[d|XbƲoa>A/r]wkMe+Bv0ib'aaY4 -DWC!(ax*M8.e5b/D"K.X0J?D9<QQ((.ZГDZ8FǑަ'P<[x:E#h ⲽ^hV<8x ȋnTjxSu *rׯUKSϿpt%2x\ZdK{0z!Eo μkbጅ#"NʲO:5ƀ鈊7aBBA8 C͝q }4!NY+zvL{ٶM>p`&Ǜ9Go>+7sAvR|UdEM(,:N^"4A/AI"Rms`.KPvՂWw R)AqF{0ޝ- CP7K"pluf0㡞zYT4{1p$L%BȾG X,"X Gia0_ A3'jZ#h6e-c6L.v󆲔ؤ$W|-:^\7bb!:=ڟև_8Fq 1F84fnDAVS.b Xwy r 3l݈qq#2"3h-`JDU"wJ'" j`Vs-e-_Z%cҟSh4@ QasE؜vvQ6t*UbIFpdf$ļ$dD^ǒaBdޓnӉ+0I9tn1Ft?0Ɏ]/lj}h_}]F@#8 @bECr9.e|Sa>K/63!h6|B.$ăYN#k]/)FІ|]F@#8,l;^[Q">j# |T2hZ#h4aÆR#C+r9}]֣Fh4F@#.v{a1 ZE8.aiڋ^[h4F@#p(!_bz`#44S7=:nF@#h4#^3"kf#blzxk F@#wMs]Ď pдF@#h4'|zmv[EKZyy^WUdjz뭝;w9>^֦MF@#h4n-77S-ݨHU)R5>G^=ekwyG F@#h4a±0lv>ŀP{Z#Vn 5F@#h6^a:2HN͉jlv]Gt݈|'8]i4F@#[V8<6#aIUGu]XXWZ9!jNh4F@#p .ŏVQ)T]AatҲ*c~G}tF@#h4 BehC6{9#$e6#H!kQ֣͛7"uDj}UiJ#h4_Gpq=J|bCI2us^[ܹkMk4F@#W! _u92=!mN!d$Ubҹ|M7]{lDm„ ^F@#h4U@5݋\7El.#;hZ#h4_=Vfs؀WE|/QWujZF@#h4uÆRD}vZZF@#h4:En۽^ Z3qj/zU4F@#vC3rMmlf;6"\U:='fh4F@#09kN'Gو쪾:$mF F@#h4}j|tPOdm棪-ɜiF@#h4 N"zBDm"n[@F@#h; Sv>2c{K*RocZf;YNgbU9Eןh4F >cax|p͋6>&׹6_/Jڹ-{[۹oaiDzgA2$,|'@FYY^;~㞍B%ycj`F@#^,G^B*lrOZbzdɒc9&ڙ㧝K6+3W*-q`:JE Kxyz^z KLF cڞ#>oVa&#=%N%]_j4Fرy ZioϰCOj=]%QiyIqyqBTbV}h4j .ŏVQ)T]x#㱗U)PiQӋ^xa̘15-%`y^1²zf5gt;cegqYEoM*iBq݄l]+߻Ϳ?Hq"WOQ^/I싣5>eċ#~Zcfaf[w|n0_=.yRϖ|])ۚMllb ߾`k)n>Ә.\E :\'HU_΅R}?/~vCX>ivKSI"^0dыc'j1mnF˱_jv;o!aNdɨГf>4\FꤖI[O;(]I'z %"DA6PE޻(EP)RD(k$rw3a+9.𯼳<;;ov~<,R#D@" 'Nquؒ?#%E9nnG[l5nXB2M*4q`&}VkǟѳOC j_' _3WiIɲ'}wp^{Ymb}=tpFnfGgl}{k?;gu9;ΑR 24kUvOv$ŦGf븕-࢝;yL=K+?vhqzԃB(>KJLf?tUׯ=~?YO{_@?}i&/6ynmFbzn#+융쎿0v.2qC=׸L>lBv^V] ӺOuLjVQpp=t$| 28kޞu/57{,&H$Yd . U*x~\l$N˗Ǐ_gggk(& 9꣫|۟71v΁g6V yXf֡zpϑ8w\/&n>eV #'xгm#nêDD DGԪYr垟6[a7r2q;z˚Vlt9ȠHmRUBO>׹8l-(Ř߼b<(_/{|FVNo bbHO~gyPC֊=wt {񚏟{ݟno8۞ZcW.RfM]q\vj_&`_5bg/5Zw=u~۷$!3yǐeZf- &- 2x#YJv{t~HD@" H\G@FKM35"Li{)ÍAZhqɋ/֬YZ&.oVvהԜ˗Nf$yV^&w=YXuL6ZcÍH,Pv] I]+fHf|Sش &o_D:tPo;f7?FDMqJo?QHb2(= %nSi/օ?xʹ;z䢈ɇy\SMFy%f*JGion IDATdօ>aէ ~}<ض F} GϸآJV;Ho0ZV) j^o_buk{t܈t {CEwt-ٗF4O 22EK$DU Ve*H\3-0$AoLʚ":V -PX0 9_89,bXct1m߯[.}aG \Y+T)07?wW7[6/ފC |чӯPGȌ}vn+//')`}fS ^)O:$ H϶^cN=N>w\bsָ"L^,9UPlf"\@ls~bZ5b| &9y9$puBkjqr{,,.]D|>`W٤(pvx= ܱʖ}g-3Mi "K$D!zxOE3ao0XUqLH{СC(ؾRJ!QaDk< ZFGHlZ=a&sXwd-'Lk&C&ܖzybm:QϕB+yy~3Pbz΄h!2zͅ^TVUC2ʉ8#?m-kKC<5GqIq 1e-=jtSSkįkWMiȱƱV=hs*aUV}&cV,.->^۾=s4 zjuT\Q[Uw؍1]6mo6|CEo~g6*?o19tpҶI 7l6z k/3/7g&]ʽD@" H\BNx E!)"`5+Ν#wLSǓxk uvAKvbal𠗇UW^/bA,oȨCBAնgR[G4Xp%\r0穟<0sW 鞫׷QF~=wVgR2 YWy7yDmf/{]#[5EXK(Q?Cci~{ɏg[dOw ǮQۃU:v*w:UVn_tj͏MͦS{lwCwPZ~Lb mrZ+`pvX**/.sRS"D@" >z^o5hÇHx"H?y*U4 @d9 YNתU #^kD6>|7n_ŁsUU6ąUªĮopH!0rl8Y⛸E UU|t)lSz_¾ zvީ̤j@mè:zj+g@OO]8)h)6ylx/qK50! kz@DD5Pc<"(_@A7!Y6ՉC2ѕB+;,B"#UBy)REbP0y7V2C몭.N.H$?Nz >yf}YdvhopH޿[Ge {)葼D@" H܈@!=PbWNr*74;8?(P9YےJ" H$|S)RiFɃl4Ѧ|ޯ$=Ң!eD@" HnMDbNoXXQIt с6Zݚ7D@" H$V(v# ̚mSfu>L^JPB(ơC+ZoZj͌Lbdzi6 ->s ӬY P%4$2T;"< OA 1`< "f!lBf("_p C_|߳gB^ӧO3`ⵛl [YxϋD F[S<4z.8apDW#.6 CՇzF'9rl^֡Y=z􀦈!@0a(' R C&l=6oѣGI?~<=QFdalc\bO.]\ A5Mi8fMrU'!Ap)'FXB$zHH(# QgBpŒ_ /oBҲB|%g[AXP )!lYS\\#*cW_* =,|ܨ,)-ؿZs EVY2z q~M;7 XjE|M(2w`lo=cdAxY@w,F2wV-)H$`ru&.%C~ 1X9:twl=8d`rE10HvmAqeaBPIqY<&.'110TƌǏώӪN!ydk(cV^n *)Kd0]+LϥvDqd/x[oaՃ8FGG;,]Jp#2@`H["(u E1=GG"ˆ kf8bR)SfϜ9]ܜ%Gd7w:%IYZ H m$ Q#*)bWGdPS "ǺShu2d_*'% Xy[Ƞ3(LM'VI C8E !CTOطPPzQX\'(6é3{͘>eJ_4kM !Y-~.3lVSܮ9M k}r@0{âsu-.K TGacC-q;֨9u'ذ~G@k"cp`ɭ[鼖"cd:F<y(Hn.z2(ka00 )A*g=b°M":E]`!(""iT|C`\DS1uVIjl Ehd+"jN8.n)Xh0x!{<MGx+ q߇G̾} v54P1AԠ.X);*P2 ĒĠ O5W[Sk'qG bi7Z G7BSZh"t\#8q}n1ê2U+D@"  Pd߯)f#b9ݬɒLeb ,y@]76 ]|eJ0ܧ5x|8'Ơ9[sC16Q?d#D#1lnc8X!O(dKt C-)X!loxg\.rb3rF}"QS x8Cwp'1hOQ ^^{|tGS{TNRVիEѣ0-쵑R\O[w޹\R#Otpz]Pv!fOv87W%0 ?$aa(8 Nd% G-lJ {ez`,OLj%,rB :B#hA{9wyDsS$""zM0Rl~ %l,&HJz8b5$C!!+6Ry4\Vgnh{F0$Ŧ003~8f7$J`Ҏ+摈 EۏM9^6m SF#` 6^bLRL΄C62!#f=g X"m2k]W-%d> ! Fௌ`B`5&1ҫyq*lNϤך kZR0샲fv1J P7}iA9FP­p1L%軋$Nze,:}Y5>tp)@}W[N_^ )UZٞ@IQESX0JAaaH(b8uv&/ h$ȏՁ+N}P Zs#rLEe qjCEˆY}τ|Qp/ ?&P%V6j9,U`BU $7R1D@"!؍,̙gxŔf9ϒcC9 bqS+]DA!%BIWsQIQ0@b ,J+x<GcJ#CyY6U" 5(.C,fc=ڂ)ˮ~Rכb=8:d( >k'؊Uyj> .& D}Ͳbp!HX7tFcXH$D@"`V#X?zT (뺻[RD@" H$#gn#aLƂe׬E8ܶm߾YYxm"D@" H$7^[,e ZeZkb7){}5櫯J}a),+H$D]X 32@uV"V;5ͣGsν뮻֬YúfrWD@" H$7ja5b64wUZXC{dn'D@" H$w LqĢk I2MDfF:J[ IDAT6~0)wmaaa!!!Bו+W$=rRD@" H$7HlK+0!db7_)))uHB D@" ܲX,CMg*|Vm?.6HvsshV%D@" Kњ`H:F3!Qe-G&!H$D`%Zjf[`H&ޤי5EtM#-RH$DD@,f(pLFLG*bP`Sb3i7U$Zm)PV4X*aU4*;/+Ϝo'ߒoP֛a~Z dA۠*7 *o[.y֥Տ<{Ǭvڕ.(+/kDQlD9l@x ev u(` CWRQɧ3ږY:rU>UCݥt)0uUVmNZ!|CھO C/E>ףܶ``Rے̋->|K֢R (J{v]Hr~&\&rY8#[lDڛ'<(cazsum9;vN|Z]?M!=ʣ3}g݇~lZwy|eM"7ٖZD̝3_X{d8t%_oQ/ ]ɩS+,g;H٧ hZ ,:Fhux* bWVo\ӛ:;;J_qz_6L=_!ۿ]=´wٍ:F<H$:Œ #iz,FhѨVdGF7ң-[֫WO7w3g΄ M,,|9%#%)?_QmKځ]<k v`nM643[>' (7--.~H,ú S.X/xé jb9OuwN~%g$^ TށjEZaO;ȳ+UѦ _?zt*V)/uxIƬ5XRON9x`uiҒcz!ޒmKﻌVm?Fhᯣ`t~OD^κo_ozjR0%'Wq-~5:"=g7[j%oW 9WZ\k5葇D@"p+ `)"Eo0zGa[#zVX7(n8Ġh>0#7㹘6:oT MWBt),sFo@J:(n93'YtM!IFlHȊM_Yےgn@>|!CJZ2M*4q`&}1!ǐ_'ࡆށA]Q-Sԍ ֹ'_5O¥qWk=]̾(DjAU V+5Eu<{7ДgtIN}7,Ȫ,y+6PUJ?q|? b/;NT&v|Rq1A"L,m}TejިX}m>.j\6%Q={jwvyai9IL:'9-m*BqzfClnx޿}r%Ɖ+ŞeC|B8trE֨#eD@" 50Oĺ":bcE&,Ģ"yט]kh+65.XhX}t=[#JemlPqXV%DA@Y-3C]VgB9fڛ~zz={zyv>qȞ{V,b\U RH$[ ŌH͘+#NAY&6DkPu+LaDOᩖFI|4!W-] gĝ0g}挭?9tZm,0'.ۡ# P{ӻc6Ɋp*i)eYp&3m`gT+Qf^"R|cێSۙ9tZ멝Zg{:Oi<"~ʧFl_yJߜ6`$rj&oo1i߈0sqG@6ejuz*ZEXzDŖl>)zB-𹃯/zuOu ?T[駅tHޖ +.mʃ">}L?u6^PePȆ3_(#Msy_>I3b+8Q{D@" jdf=>g7-@Px-($%%)djQ]:qZU={HtcXw PAV)uZJM-]NBؗ?!1e. /V(T5U_'6Ұ=8:k *}=?_9/&:8ΣVT~ۧ~82{k>>)D~R:a,rlCZ?}-Ȍ BD{G#{l _xd`ӔI&>󝵻(8']H_z!iG}_'f.U}ā0(%#QioDt$6k)Ɔϼ j17 fM72нyAThlLΜXkkX9W ^jE^" Hn5˶Xaߔ*lV,f>'ת'֬^rOuժUK{)@l#nLTCr_X_6H}F)LDh#~(>EکU؍lʼnSߚë:7xꥫc]pHV珆)[Gm6EΥ'eRL/{M79'W؃IUuNtJJsWΉ8щ]<0t%@ݢ ,= 4 jѼRޥ0SqlLz%zY Q;KHBH-YfD4:WRRH$[?7M|vz寓K}t910OXƿWBB" H$ p|uJ|YM##V/lD@" H$7# V <bf6Bzu^VɄN" H$e5C2&Τ)CniѐD@" H$&z!j 0d2b:bU&:4B-X"[+D@" H#!6eӦM[nզh崴43g3glxؕ-[{O;hnLƔ ^VDdr^u] 0lX5 xԩN!@z b(udݑqd̈?}gm,?0j|U~5h"CFJ:g6g?<0޳"} "ؗ"W7y~@-$N9XhoiRv]gcb"pdN>ߧaQ*UlUr5_rhM+T54j!i%7b7aG,@xGy3k$MG ?,I׃yx$''k*rIgBw`$9^'^;1>+T^/( rk)ǒ 8ީ'.r}+h8g7ySK7}1ko:N2.yt}䅯,~{*vČGf0X%BJsx>}:Nu?8(Ђ||zQ{vw\sWDmڵɼy/YFxpSW_0DqHnsO/._o eZH6a$Ao|+U 5*䝌 Vv)A 4abBQT(`R=xgPgA%y̡sŰȄH{Ri"WM"MŞxE Ǐg r0ZrZ IDATV+L: PTw~l6liܰ R /F~!dKH %h=)^|PwܸOWΓ'tDExՈ'gn>sS67̫KR?`f#swBflY%Kd "3q9UEڴi#qB:&)D؃,6cC ڀu=c?JD( ӇqCmNx8~F5i x30 p&q(`+`)d/z-G Kȥ8p/`ƸD`-NsЖu^cfLemҤ B![P.씘y8PsĻN:"[QhG=$]:.R{B~A,02QuYZ4S=u7RЪaB/헛Q{u(8G[ˊN4lok=Nu.v-i_b۫y{E5rŦë/)}հ|@1Xνukta2:LtX>XQ&!g A2EruA}˗-bm Bkzwj[UsowS\ձc:v#K4O% r"fiobQ@͇G850Ka*D@#B+ʕo$dw;3a8(U`5N j:&)ph$ʾzxt>ScaTWZ= DSc ]!Iw:2n4{/MST)V!0/Sxa",:LMmpTթf& TS[f"ˁ-n,䢃Vr>')PF7!NlxCfo M*ލ /?w#صK9!׮i@`{:Ti1EYʣ`SW',쿨%{/?y!Q!O.z7ab" Mm֬~dn<ĽT*0:mm^ n$+ώTH z>-R^" Q˶X1N9?ln,39̇䶍wPF Q׭RhdƘ$`H5aqGa2~.!`@ &R\ eF FPFY攽5]PSo) 9-0HNc0@*]Qa^L8̆4ϑC<副B&6:-*QX@4jPGՌ瑶q\ÇC^}U5[ɄjժEq*R{MP4, /~a_>ů/%k%H'S+$BbEk~VfXml]Ҿ҈!Ew %|m++Pmci K N4՘K i_tz1Ĉ"ź6xvO?Jn{ h~nٲ}hєM%'nцOZkA5(]+99.^|&7D-Hg~:4-G|x\}+̝#|X)^i S5\21^25@ޕ:mJ9? E8fs %RO1aC!@eʠgj6ے eH39Nkq#bbXEr1_/׿a⷟:X{y[飐bm6 v^[) J 36Ъ⮠^+&}Uݦ' m~aʴ"zi/_mTpKkg7DOt@DdJ&jlI.N!yz8:ܕ+~ݖ-kհvUYW ףG_)kHoZyWZ'oS/2Ҧ͖)X,͢3C >^0b$i7w#ް  kk2}`HFhCj=85<! Ȱo>QXoLGyP F(JOԊJ,C&{ ԅSo^ѩA!%q<;Z0At{"yePǃ!%x1m4qQjȔN)rhA\>9ճx'`*₊tBaB=8DЬ7gTN3`aP5$~b\8&3T Es7h{6/?kFQJփ HP}<'7)H$E@Fˣ*Cg1OhƄF]^P?qҤժģA{Fdl48$aƲ̀':Uن<;ݨǪNՔ@$L'/D5ڋMB1mf)MI:0k%)M~EIBj^SE)"Ũ<%N0ID|D)q/كY(Q$+-7ZNq4ŋ%(3jIu9̐R1Dp[Y_ffz":B|aTtjLnE,~pVSdiap=j3KY" pPNz>X-uDzÃBK~lʡ}Z/<ŒX,hJч~(9"܈l4-{$ŋ}N)p ݷᑐ6zgTpimtڜ-"=bJFcf(Jg1DՠTQlF}ۆn -3Ǯ|zF9TJ*jVe#:Lw(cr.bQ`,@*P&Aˍ;攂D@"P, F.Wg21َ! '|8Jx80}JTBX11I?ry _o`ǨQ+^C߉M$ Z@!z)cL,,fe#=(b06uOѣG]DAuCHt_`a6篸+wu^w_H܆^[,A<<0c@RBۚ"]'3I$D@" 1,z7M"lf эU?)RT" H$ Eo0zGH_`C?O &H$D)FS&f$&†=C_鑴i/%D@" pXXWDg†q>^S75X?`=bAX̂saU8/eeؾϬYhrr3z׫kjuc)6J^`fjU~YvVd-6}{m]ЧX$ 6զ.Vba6DWj+e'y<<=pxCёuGfudԖ woЀQDXYC. sfgų+^G7b.&cJh25vsnc`/fe/j)x"˶ބEUxY%Xߍ%CI+m#Ga |Z9sӧg]Tٳ}TԽ11zԽJZkJ޸aae˖M>%l],}<}na'%8y;:7~~=9]o*3s9 NtR."' 6̛7E5a_HޠdNJL\޿n$3 +Š7`a~d}4\,2(u^v^LJ~3_3vYB__no<&jac;gÖ糪uv/^g-XZa~,y{ئc)v6mg+oآF6mKXn D@" YZN:@Px:PƚZQsw3Bߘzǥk=:vcdZXۄ.3_,xG8F/e]0ł,)<{oYe74Z7c',GRR.nJAAil4EN!,؍X %itٓ 'SSC|EbTPPRF$6[Q2$FƹӧOs9SSSGեK.MŊ222F+ͣ=<3F2o1qw1 )~]|{q`e!}ƌ3gΤ.bo~bJ9QfMrUT=bk+v{ys;ee^Ko')p+Vp`/"s7LXEYLqy"h*c۞:u*f͚'N#1a=B!quؒ?cWN]I&0˄lתrYR%+_7+J<7R xcǎ^^^ڶ3c:tc:oL cڂ.y=*+/7qEMP2%^hkJg7?>;.nOk^^8|.naDl 엂M60$aق^8FdeBqy"h'WBey"hM6ƅ0WZE=쇠"$XW30n{".00|᫯ 6L-(w}L)YY*L) (qE\+WB͙Mé3{͘>A>>jJl<͹:6a&!庆LWzQAEDKapen0VätNiW_l[֥?rB&~hݸ ZVҦJg ./>Vr͌P&P\w`?T-D0WpDH$B@FkEٞ`AQ@&HGAJ{B2-I6E<s~w|Ι9Oy,X$9{~cڢKDŔ9㉊i%N`[\BV]_h??iS*' 0!q$1lV7 a:SB|ܜٹ)SpF}뮻rNj1~<[Ǝ#_3}|e %lǺWfaEyms)ѥZ/~;O;r oD1٤;6/ 3gd& oBcT-nFus}߽NV-ZYe_,;]BlaRzO]0g$fÅhŨ5(wUWTϡJM+EDE,Ƨ'O͟*7=mA֒b k_6ےjq8XmD!>f4T(#=G!I8S7 <,8 5~xnذ!Z\m߿s+F6™*[=a[9ouC\?]5cn3Wl" r tFv;{ IDAT#U8[)?WKaA@r )AIr=a׼#+tcxIuevH϶ntF 픚QUt(]?#D=bØ;Qg~DNŰ;u:'˄#Zs <~8m '?s&ndciO!˦0Bs6oj7 +T u]ؘvg 7υWt.!1,2\ypT 3.=. NY>2 Ksے,&(Y :R 5%e1|)=R0HDުGz98#`v\d6n܈ƕyz<$dVFi.eڧ>Syt-yG3F,rR8 0dwY:bY,3SȲLβnóEnQţMl|b&Ee(rv<ǜ g׎-_Pp9JQFI \ V7AlN'$ CoIӣK1LڼDQ&=lݺU90AԸ~gSZþ:,HEe3` 3[%|3͹w/ݠt)="nv}w-= gCB!#|"|}<=D%e׬`rOe͙}T:f_0Tg+')d|AS@|ԫW<hڇ$їj{@/KL+FDUf~U|qmSf͚㯿JtӔKҟr?ܹ;vB0,0QZhs%b.a0QTRfRտ>L6A_v-+>1NVmIO= npȫr@uA@ al΄Imv΄[B 5lL Z15z"dr=s BSXFTdoHk(IaÆAOܢk$00{L+Z?R䛯@01W^y6!7#DSQ-F݅rhB1Wխ[wAYШ`39pQ9tϓ&)nOPZ qO?gh0H]zEdUkjĈ$ 8Ub^ oH9 ( _LjI5 C*9SB|RiVkǿL&9pp،*s7+Ba6iUHFk4` 'OdyVX7nLG`"j==M2p ؃2L6ǥt 8}t2ϟ?F*Ud2t/}듀5lPe"SXR/J'g$̅=X) p&2et6 b$a㈻St|h9OcNlH-HBA@ j-FT!؈PKPosZ#Vk($~PlM_ht͓XbvlZl $L{FIII"j:+~6622@NՂ 8E3t tt$>c͒`XְRH7`Szϙ3_y.xs: *Lq2LZO4ѺڵkD,F`=Ixg0#F;֩ʕ+Tj֬Iv3( A@Ao@Xkeab( z-+F;##h~d$m*4 4­:3̠_~j9 b @P`WT݀,Q  F:|(ĉMj ,W I OvwQrp3gy) H &E Z.M8tcz#-hj63EQJ؃1S(</r)iӦ$A@ 5jumF Z# nC@2΃4>#\L`.X$d3a G>` ~Ӭx7sP{8(>VB RDpVl pc$WR%؃F#A#'F4[7҅u@bؘʧ(}\ʯnǎMȀb̘17| Luš3,ᇤ3w 쐡*+`eR@A@3AY-6 lBhEoB}BXHBn+lPSaYEb}a1fXlB@1I}j('S4 %H J~J(B:bH/^L]v( #>XAAG OXpȐ2G %7xj-f ,ϴ.>@ x#q#dL@Xp<<]c5x;D|̭e/D✖L7NY 7+OA@5#C67GˊLb~4Œ.tA%bK֜K2 Q`BB6U;@)XOLn1YlV(zK.:̌\t00pLjɲ5s 43a3gf2BvͼS(lvHRPxdvBe>mʭ  p@>2^UƆ]FPӊD収e䏴$L~;]cH Í3*\K8N\ha3܈Z #[܈*pnD&p#2фa3lF>i/f-nD#^6q[τs#a44s#x!RW߬ ;XnwE8s&$eǚrIQ1ob$ eȤ KS8[&DnFIsnHS:3/@ P̿dL{YLs$$$p68ŅoJ6\؆C!w%M>w\peTc67mLm@6D҂  kԌ+ Ul^7 $|ْwHkLG9j=z4'UsZlOɌna sn'r9-q~״b jʉTFrdqI06%Qn3#r06wk;ޠ-/ȟrQ3k[%#ВjʹyA΋Υ A@B@EuGf[!; "!vK(?a^fۖ4p@N"ȑ#G%7~pٳW6:칆ɍ*W_dݻ8U!={$ gdst'q8?I5շo_hV ۧPփe.I9TX"ĩb6Nd_{/ڜeEʨpHh"<"5q\n] ?1_0=?6p+7oiL1I}㭙zm )MC534$ssٯTx"bT#!AVÈ)b!aЙT`,/qUua|'23L`iҤ[hAx5bPADX{vIX`=;O6m !~M A0 Blo;.º{)9mC ߫2 BkJI:C<(; |VXhB5~ZcիWw4K.;z }a#G~ڳ[o)ZեJ~HoV5uX]kG]M_Z'is jԼz7Vto_4$@:||5hmُܸ3_ LT,HaRrђ5#3l9jjwM6_\w\c}[~ˎWsudЈ W9mǶb.+\/ FQޭwLDX2Vi4ɏO~{c M'Ӟ na2"qEU-ӌ@HBk?Nl?[׌lF 683? .AG`ѝ9s&[CY@#"n֬< ƏOz N7"͚_4 1Q2 `BDgE"<0A_oi9ztDR5#ZV(k85E2g%ܿ֋H_Z%jhm勇,Fޛ=_4]&|&k]{3<Ąs ;v$(O?3s{G2"$frz3 )VT6H~Hax%sg\1$.4d,[VPt¯Zn}]g~,SnݺIL 8YXUh!oP `&+:((~Jɂʇ&<=UyZMjB9GdR^2P$!䆧KT֭[YتjFiXȬZaXt23 r&mf'N~vxʟc7BJABf= m۶5ʼ m}I@ 8.tf͚h$!tхm;B"p OA6lP ]@%xݰ7Ұ()?GX|/R[F_KI)/@X8;PO%%1S%.oC?Lʗ6}{4,[ǣ{v/f/0l~ '_r > X"e w__QD^Zjj١n+`J.iWq}\Ƿ=yhUH"V9dQ%`B%j]z_F= _䳢 2osV5Uo:tp~k -ZZ5|R}E^Oِ|N<IP bҨ'/X5*>AXy߼(J@Lfq!B(eaf.w .Z[ѣGUQRch *Of2]Ų'c&l&۳+.[3'`o" $3~s,әL Yd @8؏SDU(^пR,F -BDž N2xr`Bнxgóy;ɂ  n|a2 ?> 1B(n6ho}=yΙc*'Zd^HĄK6椴T% @q%s"6թa_*t>۰*8|і/GB &,o'=6I3Jx]&к #1<Q4B娒S\Ez Ct h́X^!hJ@1I:I`KyD4P7=‡Oyu zEs̫@Sx)af]t!M]0p Z[ GRO͝B2JWj IDATe T|+C5=" MhB7*U@7C-Yw1j  th~&Q:>oߙ  FŒbcc,."hjK^N~22=i݄ul1x47swNr1>-,-颲iߙ=]7u ~$Crplת5cݎ!#e?o9kZEGQ.ģ? oT*+W Ł>9I}0*k>e7#@͛7O}i XЮ~ }=/WPRZڮ ٺ5UstԩcyFq0mn8tτ;kRٱCzo{4TT U)#LsF[tN瘀m |7/Q9Mx%lVۮe y,n˱-ǮB s챳hKۻ|m IMH%O5[%,A@bilȰ{Xlk䨗"0 6~0=zŊ%B'B004(`o @h%'c5w Ukufsa:T ކ{]'v !VDRbs(E&tP 6. })ڡs̉& 32*72e]6AKTPi>g14K,,V # Q偤 =Mh#~N|$He1H-O>| ø ?-`c o?2zLHDDj>Zz<ܧ+W<1ꥺ\߮^.ݦVǏxsծm0Ux\$:6Nܔ~ñ\s i,N}n~Ѱy V NmY&jv8P}3~ՄUO/VؤG&>Fޗ=qitUV^}l1T_?W{ҕB [Lm]5S:خwŘ;dr+yOlLV`qЬA<L F6~.i?C(>9XI`tCއd$lsҀ|WTĦt V kz+adh攃i4*˧O]1) ^7a=aGYpX!x@C`T CԷ'**H/l %g XLJ7ɉeP攷+T3Fo"Z/0#G1x 1u@ 9T$#Ǽ6_])IOL-=Rf{|=ժ٨nj=>=Qaa)~G+c},Daz77hа{{T{`tUE-er~ Cq dan1b-m6ѧ-QۍS7 7hSb+}W-?lpC{NW󩷾xkLnlPo6P:ncՃ7ܵeUkqiW6]흽xs; 8T3’K.q6oxN1t=`IIlhfr3eO"3Egԭ)`f" uHoiFa 'OGǚ?/OjR*=URSdĈBW]q<*$=Q}tqP ,/ 'Q}dX)a.벽 EED[ XYۓ[fڝӂOަ<_WI&K8K:Z:$p6ervdŸ)kuP? >'I0N7w3~+P邤G?Y +3'ih7\\`ng |Tܔ9p#2[3iFr(" r+g~3uɀ%Դ&`G>ÛP]67Bs^LqW!s/> A@c(Gn2,jii+ghFf+ov.XYq0 @|zaЗV!rU~KÉGf-@"B8į<.ةy ,޸X(vW,YZO+JIA@q ZF Z~p?R '9Z׼&!7  dZŊqz%^+ptؘȘD·.D=KA@+O*G#YВlin+HiI%HC! A@A@bp; A˒*y6ycb$kyA@A sT4Z6kXhqjΙvK (s0  \x"bT#!9lV0bXH =b ǫXCiU]F(oLl<Ⱥ}1#޳ub8ٙ?ۑ  "` \c6s88FT!؈PKPoB}ӁgN\*! VJ麜?>QF|mlg"q2 L^="AB&9YIݿ9ęiҜ  &9Q|~<oH-ԧzorr+ \vk͢,l"X 9OW_clr+*N i D ʙ!` DU逈hEg̘1COX ry(j'uII !nۆ5 bEZln#vBM9ٳg@t=B̕d\V&-] #<u |> 6h €?XJLO>BCa»xa#yDT!2ٔòh3iӞy 0]q љ*qϨV>)s125L.!,_$mVAzRgͨz)(܈0>Mhh#A["M7EKXv-K4’A@.GlP#C(_{H=k> J6f_Q$ 1h?h9D"~3 ҄Bu0 s+$P)Y^=|ZëW4$I>a~P19*رcGN^@PpVEٳgrO?P!3W_} )|0iƪL㠙G`;lcEP?nL*#\|y۶muW8%A/] ݗ$A@!">H!vQhH&fl7_w'Hf͚7E3ZFWd"!U^СCYa܊u1]P1wsMczT f!pE8^ba0K?%`߮l۶ fri%P@tܫ… cGa8jCvuRڷoO *LL2YUREgJBA@llNKsp9UiXHVw+[oK\ -`~%^t7e[D VoU:;Nt>Ҕ99k<ϹsX ';HvT?_=ReN*hEe"̛7{ԯ_$!DŮD;(FA5c jO:KߪƜ ̎ ͡*TW۵k^SpO7Ŝ„j~07d¨ڵk21Z(\z )`w3 bDETXyR2+g2 4bQ !ZHCsa3~S5p G!2'ܘ|% l6n޼Hqѣ4$I尸&M8(j5 86=RJ1qp͗xR@X  p!v;%. l.'ґAR0|R㛝f|zsq:Nvс)opfկUAP_Mi8B X,Xc67tP܀`ZJe^ p^x0p *e@YpQհaC$-Z0BXn$-ÑM ot̙8Cєڄ2!"ĨI&h`3#%}3.t-o믓݂:rJm.,iA@ArC6lh).1h1#OIꑕ._,Y"{LEB_ B9`T:'ꎝȿ)d'[F B 37E&FeʧeRDcRhK QwCxKq6KrӅ  y>9GVX|id{cc"cB DX""-  4f|՘rNaEzWk挊a ؔuF- ?f4eRډɨtMhr`#> eT#S@ȚGF.^yl\ذ\l%LA@A@pG. l.gZP,G_7УMꪫf̘O_:A@AT#۰lĠP< ']RhŻwV#\+}9r/  efqNW ٩NRRƔљ3gkz)uMnA@A@;†,)ix ~dMuY ##x/m:; _GNy۷iKROA@}}߭LcVnCVzdk0奌  !nv`GY8)"y N3=OfOz* ͯ]Xd[ÒwJ;s,6=ndeD)`3)6i*QqEQxgRR?*/l`zlk>?{\@0奌  NCf3lVF5Jer޽#FXhO<ޠڵk'O|=3IC枙s G; ߱GYZVYJ6G۸uTg#/^n3ki3G$| '3IgΥuܻﲇ яLUҨu2TB>R)!ޙ{qOdw'\ ?zXȢE3iCz,ە1hSҒnW>G>5aA0H̔+vL`1d鮄?O1oB߁Lє 4(GG)rY"NJgJuZ.,fuI`gnժUNuL?934 aƏjs}kwsmjrkylZwEo7s3UO[7#[foE3GjhOZߘFfk\C66}n#l_x"|z-jY MW-4g~J / >Vz~7Tw\N*z_ćL#۟Kꎸ~ӡ u?[lpՇ&{M+5'Z2_TnܜeuM_l|[VupӗmIXٻ[tU3?+f;#[jF~J9zt К'~ܺ^YC1na]sMzΔK.b:lH5=w}FqCLF'Yǟwэ=U=ږoOa/|  \#k׽5߅B?k?lGftJ_Lgϣ70\$Pyc+*FZuJ]EB]ē8t<mb5\EvȒӺOW0"45M?NiP!KŔ*Y!Sw覂aۏnGAkTQdw\3)-VeozaKJMt÷65 *=}y5ț"گ׹2uikѧMFFѓWu.SZepnsg[mP G;D[h}%BapWu/T&*YBSn7Ve=fCzfO/|>U/Tĭ+>aSF=SH3zk 8=ݨkޱf꯾/ ; P*lbMC1%~dMuY ##GG п79X0J][1cH*o |xE•1Ulp"fh9\ՊTyu^j/[B{]cRR:)k q4 d;Q9sW.ժ 2pǧvpN799z*4((q\X'|szl+* EYʔT|يȐXS%Xt#a{B)"_{hmr79qˣ-8R /OoqF*n;xxq~aLwnJ6{94VUW"q=u 4J:QgLH[1Gku!mRNL'1w$iA@+  k$7%gۆ &6HKzt?=3Ϙ<ݭKn=M_Qb)O.|;?]`ձ_9~6\t ĨZO[t+umpEKUhnXjX|.Ku!D&)b{4ހDP_1b|uOxۦ7Ъ&=d=ՋWQF@ W*-BXF-vf*v+좂!Ryv(Q ve1bp aLB٠pvWMbJjEAC_ږkYXu7c^E8lv-th7=z5 + Ydl^hBV9p\Xmں)l'^sh%=oi W?[ڼ`2O?*z#0bG4.zT8톦/Y񩡬IMTw>1\[>k ѱ^Gw>>_h-(MO$hRVbv8nu ] k̳Zѥ sg< τ 6c75P-8:+c|5pW>܅ѰޭJ]WaBͪYT1ϙ |x BAWn PJ\]Փ:q.vuX36,_" :":Tz)njqc ^ vo{yc,AGâ~nC$"$f]{|sΤ*U!"=67uɢ9EE;Qwb*?L0%- p `p(v%֋*T0V(efT8DD\0dA$9fYoͦC*<~(Foی]NTxAAn ? VQPoeB[3bMvd+&Xb+v"Ə ֩Z ~á +]רchn麊"U.RL>{mpRfXt*~sWז7ºxu4{VB*D;>Rx }'p"և DbUV SںT*R(*rZ]u{)O0l4t!ǙuSmaT|  \IG=@aX%ΧږMW0@L-*Қ/%%2wuWL ^v(oGg2}7~6~5n:Njlԅ5Pe уUJņmIie{c F,m)Qt23-x6kmCkDa#K`?pG4x" 7b8nd9/e ,V kӰds!~ΦsȐ۸vӣK\]2?ek [z8H"59X~7A@A k܌ln=$1Clol0]ϽǶr ǗʞNA@=x6gح< |ބ[K}҂  v܈aN;9as2"iO4.{2"A@A@s 6s6;ՑN3͝B<(?[K2=  W 8q0e%I>l]>Ĉ!AR˜ۋtI+ P%58Z_4BI}d"`Aͼh83r-)))[l9s u~ Я\F~%CA@8\eq9X gJŲR훝7(u^We4oKL_{sOMъ{xTk=-[bܹ~i;GrkԨQxEgݺuѣ[jeL:ރi\ܹs_|1:}Zn!ƩY^;;kV߯?tE3qܷرQ\?l}U|  B MC=$ -bqm}=F\ .hC*ĕG[U|uZ'>cYⶖU˔.Q"@ı,۷+_+Xξ}ڶm[nq "P͛C*Wտ_3v5ktn?=99L 6䖓w3/'aaax U{s jv[uĉTO3ɯΝ|pg||qcljܘ={U 6H  pnhXtR MN;Nkb;wޗ^z-={vӦM#/a(ģMnd}Q˛~mUO-_|w&&'ᆧ5+?قQsItj׎ k[V ^e?I&WV) dT#}t>EDpA86mTTɜ>͚5Sίzux03 lyo„ ta`f]v )8'=:DyGW/tA;v@{z^>o›֤I6oLE"SRx U{ǿ}С] @1>I鄄ka(&_>؏=h]< '*4QW\L3gU wL(  "vYȆ9J)!ab$/l{MyaCͶmzAzmjs[*Kv]}UE+ 4=L_ KPc^T&fޏ:Bw9^f %tۛU8Tj~Ii$Z *-|>.[, ̏*_|D C: ҷ%h X(>DZ "IRJ =T O8đ9|0UF`ZASsz-&5]|gta{ji'["#v ;#"UfMۧN sVe?R"ajB4!pȇ1Am3RUYbkz?锤*&SZtx["#l$! dCmVҴ#bqjΙvK Ͷ*2FH OON-TZ!Gu./6'ڤڝTRTѣQli(bdns6CIJNBE }dsEb#5Í( 5"L9r|#iqŌ 6`@Co1bʇټk*jVPF7߬a/Ge֧f8##)5W iE{c#G(SKC;'Ol -JSV=6w:U|ɦR (s>OSr+ \D&d5$G8`KVÈ)b!alstQ|QSpV}x\V[s`mT|f|~;anSU7U]Sė%Q٘ObKJBP$o+ݮ'wq'_ݿ4e֭>)|̙HSdLx %U p(5Oqua4DłOua6V Z靔ABLUWCBK5롇fY;th]<ɤ$]TRR}+ A@A H!6\gOze !!؈PKPP\}=.* `7A{Unׇ#VԮ\arEc wrse-G2~~{wn/]*{+=ۯfΜwᢤX3w~9؛tDZL)9GgyfP~}Pg `BժgϞBXt-ֱ#4,YXԅېցt'0ýT/b L|)4DONc]9:wnnW%6vف-קJBA_,)9잰k›,6\[P;h&)) mDctM*0Ԕo, 2'j(̔M|㡋 K5Hy,>MR'P)x{&wv->&ρCfs`4;3F̀3F!dɍ(sw&܈)XK܈v:¯'aM|u̼FeFtMYhKD3 7\ 9F^.,,hH C|JbΕ?D\r9$ -㟎 v@a2A@v<+b:F { Lk3d HՆÊ\DP.}8/ IDATÑzG6SeH . ȍתۈ92iqS0(?s_4oqK;A@A_3 cXV6+HNF5JԖ+   p%!v;4T$ji_!N{$A@A@b ZFL ~ ȓ0xz$y2A@A@nh.3J;; a?QJW=TA^ ${<`'"#TY1>2*)>L+-s Y C޽;  GxRaC ˔ӂ5e1㑾*Ѿ}{6CЩ%Ht%uqGer 8ky>HnݚshΜ7h`Afc}Ǝ0aVoߠ^&p9S7\z]\vyH ‰lڴ)- %n'A0qYҜP%5~V-Hz4p@uj);tйsÇShKb}PO?uaTRB0`ހ,Gҹs+« &QkfѧOaSp˖-P\rsx"pPIb% 9*tr89r,޽Nb8T.?kz׳~.W75  %X݈Pe%h5FT$%D; lFTUDqbŊj@2ZnM4 Δ  % Y RG~LaגGGΣ,3fopŹsFJ9 }،j(j*PPn* ʠك!… Z°ET=;+LcX0Wݸqc޽{v.ә뒎Dm8bc2_87ހPPp,nE:}hH?ѠW54xH,LկyDEu\ tه-myo mZIu |# A@A ZUahmx˺Ag2=BanG˖-K=J;.,XP<iѻwoj'O]>** Y!ZcR;Pujx3f QvY h"❮F(hN9Gd3Hn.ZaբEyTA([ʇ /%TTJsG7*T 𿐴L)$XVfr ȣ  Yح3G0$nAR푥~Vz3kV.AbieنI؈#007N=⤬\px;ҥKIKS"#AQu]~e||^O6mc3}ݺu&șjeSf 篿B C=:t(fAp;Tnr劊 ;{6$a>zxٜ9Q&Oq=+;ɔGPjРA4% )!`3 l^sc;GloUMZdZn̄I ( gٵRM^09DszN-KP"n?yrn4 ; [+P| RB ᾭa$WT#G?,\ӦM(#F |i.r.}  ( O2sΔdoj3_rF\ :DݰwUlB/6pb-+Vq½{I/=ϵTI!d퐯PJ>s,|#@3gJZA@ 8_C8 I3 2lmn~PR%vuq92= q<8DGz 6W`<Ъw+PpM 3e# Pt1CD%ȔPtĉx#AD\@IE`N|͙3Z.,kL $9 N/Q'OVp`mUjt멓E\c˕kKQ3v8A^^i%G;o7 fs9l-9-qo][9גA@A sp"k"kq0Sbk+>'N˘'mh`sSEglp֏$ʗ/o~L5-ixXlFQXNP06*퐏BHN'KC1#!XvTRP`iG"S{IK:`"DR$OYJLPsFY;{%"4]!tGrw~ČoίRd~휿Q  pCɽW^)+6`t \9sXˌ8G"'Ւn ߴs.ؘXQ8a It& ،37"e.jZmMw(`90*>&7sf9zx[fzN~]Ҝp#]X'uSM# @`6^FV6+Hl&J%>rKV9VG D\3܌('pj.6NBR2[tADڵkP8Ð8DjIaA@A }XEnI8d#)6R%QƝZG\髛jD,2Fmxvh-)/ Txi`#-?zPGfl<I   ,ecb&~ )NG_-(Y  5xbaCÔox ~dMHt<2rWz  ܵ AUJ &6T%e[f(  w1*#9NΙO~mjH;bjL*Nq"sWXfbҔ  pG"1lV; ax1E,$̗)MNo٨l2')ޜWS9\;[A@;Ym[=<8SFT!؈PKPF%ftÇ>N!-`dРAQ7۟9'Ckkݺ5qjoB҅  p"`l#eab({b5(# Aݻ7's},֬_eEQz֮]K(\«ܞmPkwցefÑ)#*2/8o}j*Un/"GSr%ۺto\Jk%uwIUltԷoҥKe̎Uyb*a"=~xWiu'x*#wA@A "`! V ^dܓG[ܹs5kO&$^ ,@&H< +zB/+ׯaÆiӦA5&}>}qp#©(ҹs+n޼p5kPe&1 NF0{cǎAhݺucNvA.a SO8A]([o `xG\K[5/Meܸqʻ诿e˖*U $I9AA@ljaMAݎkGRzx=уfXYYu %0 a!LaÆ*^z%pر#D H~ P&"2I"E(2hѢcǎEdsTf?:uPQş B\r'۳>d[ G"GQԩS:۫Wgb/VZJ] #HCk_A@A { `B57{dFf|7ms,Y##Є]s#ӒIU,^֫{peh*;wnrGoF1&/l2pl'Oƭ ZC1#n%&G{ֺ(88Xj֬[G:x~ mv[yqqq$ RW&, mLQ=՝JS A@A !G]͝Xٌг6c{S)Yfat˔H@@.Z$"""EdV(.] ! \Q0 =2OUI2,z+n̘1$UTTA!i؛N jDsF=x "¢GKB7I w<+bqD@3!MX$vuQFdJkl?(0HfϞ wF`{Q'&3ŽFHWZW; V-Obj*S6my:}4IUoΝ;<7*][*FW]tw].A@A "`F-^o[H.TLT\jHs l/Lw3g.$ sd;gt)+BP%5{TR#G? ~B!)>x&Mӧ;)~)Տ?xʕ-k*bc"l bcx\I xC\c%X fG@O"1*u ̧GxƠ\koUu 4"hGck=^Jģ8wc&mHá . QsWv=8f8!f va] /rg뗒"i syW^x1>IE[_s# d+x l D[3T$jq_3:f['NV֬1{@/VnNYغܢY.=!hoh9 3lF a_jU d$8 s g)(m:7␃ T"jժ Mˡ<  |?O5n1M] EOzȖ)Te Z;V69!vWI& WX]*OFe+ĬߕO j*W=GUrO)6*ԞgOKn)is1>;A@ng>.n ;ah3/׫D iT"">Ӻ̅ A0 "upqp~ žV{Dlċۓtֻ/hP(Z88)?ߨi{) v?Qpʬ:yvk%~R^Yxx{s WZ/qvC=]cć2w&OwDFvܱx/Hχyk|Vc'Gt]\{Lw?o/OQj k|_闯XqTC 0rYs@a +GVX}e*OhAC]e< ~RhGT\.ߐOlzr 025/kH.?wRy[-( Ϫ4"S6]r#GA@w<+bv-nI'oeHǞ!zԣGc O־}'$$׻Js,4I͢6өf(蓣m~e՞xLx_N;N=jN :Y;#ZyV'usd?OW侅hQy!ɍR=;GJuB(W/'yT.nV7NmăNX=L\ӻ[玽sQy O.WߖBh[4ZSvorCk^YoOLm?ES2Qzl|K%`jKy<3C\W>K@j8y0\>j=z{?{jچﶺ쯝Q pWMv]:%ȟys_=MBC o{hs^[jӐ#ߪ`w `Y =~DZ V. !3?o uGA@7=p0%J5;a!aT*[ԣk\wԩ 4x|ͪUN>,HX4ȲOOlLxQHI/]SG#Wel4[|x պ+fé~t'"& ٯp#Eb͍Jk=m#,.*a,ci_rbG~q-kji?/2.8]zʶ_lUx΃9wS6MITǘ'd"5sqF?Rf-?yO!U7|W5!6-_f4Ƶǿm q~yl3*sd WrCР}<!ǣ\[l%+3pxdC\%jE&'<ޫbJ܇W;ru*;WG/InKANAr1%m-8AjMNƄ2Y=:rHbŊ8't;~RJ-~kIw؀cJ@b9/Pp/CW+I#y]cms%k ccx<PergZt%C}npuf,5 䭺K1/hآ6,6!v˙m7o9s$7*8ձLˆ\Zr27EU~0K9nhHQy|9 %%'{%: s_CP7r:|poK҂ 3FILQb1qgzC-]ҵx|zWY?OΖ+VR!]2o)L{T w?=s#a_9 ?b^aR9z6ی\)19 ,[ȘHDzhUqπÍ8hR;DrpevJʽ{OxU\2r ?V]M7]unD'ؖHz;oкꗼMfKV.\ͣdl΢ 7+[MNB}lL93-ٷ4sO9Kt n-|x[>/1G_;㤭1^6KOS'F;[2Ycsyr'pk޹|uC\<+)A@\Yvh,1 1C(&62Y=²w^z׭[q;Iϙv6[v#]w5S705MBκ97ZhȨrns{嘽cU@MOH\%]Gw>{iGEᡂ^H;xbO=pΛ.Pccc_WLټ`Hc[}Qmb}d??{Ñg0? ._5g ߫\dt;Sf8pv-yߟo$/gZVz߇_.G0F9Kk>S<إDȟj+TȅdH ?B!SZ၄56!IuĉȬrPfL`LL vN4wՒ3.\ //Նˤ@`B| 3r̶)GBUThMV\ .rBTdٽ%S`/˧J+3\3b@cyK(t-Tvұǂ%TxnUտnjE;4#Mڜz}/U*9"2xk?nsEt|p5{rge;LՈZvͩZU U1`Cg8 !5֣[yv2lŗm'PF].qy—zj8o9{.4oخF{{N]L<=? 1W%rJ`q,+_PGužΏ=XPg =r Q#}5L O~"ݳ,}2E2SA@҈G:̓g8ˊ9|sXGQ:izɾGiK (av|+B%Nhn=Rt!A&Yk]t#E8J:u_~`F^}ݻϝ;j `ufq-T5k֬_oQ32駼y(P gΜeʔQQqȇvL0ejYUxz~u/ JJaaa!!!;wVAnBOl>k0%\sIt0|p~ǩ;s?'|a_~e~ƌ㜙/'~ %fit ʼZ}$>n  l޼駍)龒kēOHwo矫s_|wy)\d:ҿWV-**jɒ%7^jSzѩSt4{s|kʮ]T@͚5^GݔTABЍ6v78gzA ,R:g+ƍ7z=#6SHt{aER`7sĺ6H7 o)Qa3| ~Cb",*Tϔ)yLPWD5믿˚ğݬR.U9/^^`à JU潟ϛuUͺ^ Wڶm|rw)tdիW,gٳg|ׯȟ;wQLD0"ʣ> ҥwnȹ;ovKK}k_*w8Ӯ428`cT% OPO@ƒ|9!5m6G[ )x{NU -@N=unnC!P݋ǫ6`4֣+``bP r,鏞{1w3I4jP nDtУ+Wd,y+B,T*FeH[AHN:и{ vP FVw $WJAa`5lI`~7X~`pP2!0*{tN2~:* Mp,w ~]y,UĉmB;< 6J;V%"k LX%p!#) ʰG(F_$!C~&MTaHb`hWZ5T+l!oI )`h 9RaOޡyACl;ZBB|l|B ٱC[cG2&Jv,J{:On?:}S 2% jf ԫ2 D >np`R cq0]9sMRʖCzG@wa&oPb -{1+ %^W wxYbϺUJܼfdbb$/JfQ-YXX[Gq#SGåv &#:Oj*mXsؑV/{XF|utQ+pBLiNKB 3dw uɪa|Ay_ dTY);ޕ Rq%-LfTWq,vC3 JB fwʫzsQde>9s[~(_uŸh3LV"`7OꞼi*$k`/ۜOE=sm:Уyi70)0zri GWqٸs#C¹:{QAN ;tcDSAN(6BC@0|FƝQ} f_9`PħGXJ7ȺeI p{!`l#eaY1{bصQ&^@dh8jΕ IDATWLo%te$N<9udNzJCZ/hx@QnhaE7oj7O,tq3CaH(A@ZݬVō{bZ;8ny=rdxeJg<]9S  q_E[-kFŸ+`j[׍ko-%cͬNjY}I;  p"9ƐkV!ᛝԶf18Ý5m]hA@A#]#4wce m~e c~ҢqL, |&osv4oĀkqBYu󇞎E=JhREA@v=>vD#-q@ڢl}GtC r|9 |-꿜`䐓)4. r N`ӐC1 L_$^LuYff2~=:Bc#,F$- @cX%X fG@Raגk[j{Z G9*Yqh-[ӾgXB?sfiV]M"#ΚU|#XRuЪfsZqz>k>H qi/O3%D0]w9bnD҂ @Q?, oB#Pf` &[DFڵkAEo% D v˳s"Q؜3Ӓzvk}|woƵ ɝ2 q)QV->K_-+]{l/w%$22&I԰͛7SG-n`2ctݻv}  !r.@7cuɓ |C*z۩W^ftyj$^؊U'5|]:{[:_ VAO<~T-&X{@>wO~;]:(iO~0p|>BȌt%{57#kfo*#F3z*?h` /ߌ:vvQy Wْ$- v;v4mb!Ln-ݧǨQXi/443Ip4D9aS$<,x!id㛶J$ sVRC$L *1VwAs%$-K&CwooQ8($bM>I ZԘyt)j/7}5}Ln%yKs_>yG'嫐N+cN{i-ۜn 6m涅Uzғ<Ъ/ bXNS:,4o ُ9>F=|hmӶ\SzL9tpä*^uU]̿gv 乙]VGLz 4W!MUV>|!_A@`,lb-hIYc,㑑cҗ{>7 6w\y;vX%`n3RMգT )C*R6:>ATt[`dd'F)o1=-[$GfW^2G>Fzu{yi/FEJ _-ſy}-Wm:|ʕ R9} qVY5$|HA ,G,Jf>gǕWܽ Ke5 V.D+z=~U3_Y={;وtntR _xGUPuTbEQc9TGA@솀rn۽-n> nv_O7V I+ Fg5k?@;43_.wCě'մZء#GsuΩSk޽<7 aع($(K5CKzSO=E tؑؿI{]ȋ7j%ӹCNFd.zt%ebܽj,l|ܕx4޴T8zO".&>J.|BYk9ccb;(,r( @DÏػf~;[բc#Xv⢢-(r jqLS Sj xm۶lr>萓,RԨض_$\A4i2bUpg~r(?< ״X M;L=mn]Tim.b=2͜eYCif ?\򳕱q-dXo?ovTZ¥/mg>t{ ko.!QkN_짿}W(l)|p ȴ~$Qz惚Ma`Urpbv'VH  V"+6m :1<ѶHwĸhˇ (E%J eme$ `)??TdWenm#j0Æ ܦ $%KypF0O안@o<A;vL{e/:τ p84rx`I-nLn8]HaU앀|4w/J7z [9*6tӧ;cVoRITݱ.AXt;A@n,Y积 #˃hWϩՋ|׭L )@ל2P۷gne; zIhK\zUn$>Iԍ>:Zqn+āv`KFא/ %(v`ip#LŹYA@Qߎ#{x[#b="=x$᨝ˉx^ )*=wD;ɍQLTLoiѽh:osS*EI\Kruo4VZQgq(v^wʹT*׵+\kIA@v{T$L[}yOnp[-nn~ae< ZMַ[2Ѹ,2d$SA@n[ =ȅDsvoRbUKJ` gV1,1 eS֪GiA@[.K*jX8_qzЭGG4" `?s0ՅbDÍIwNz&w`e  pP|HQ"EJsXC߲afF*36A@A [ sqm6#Lĝ{nqR.3D12iLTKd޽IA@&Fr ۸5x ]/5*-dH0NڠqJu/΢)Hw ?-Z:rϜ H  p#!zN_\D"͑J9yMvSsN5 6ԨQSnݪr֯_@6(P~^{ 5^]J  wËo& #,(A˕+矫vVXѻwo3[J_iuzqcƍ+Fr8plܸW!5ԣG.M hѢvR9;Ȝ?>HܭB DjIæA?0ԩS!ɗ/5JwX+%WXm!%Nիu#ǏˀQ>H  M_ ꡡ˗/'+ j |#}]K&F|^z!0~5lذZjӦMÂUR%ld:ܹs5PftA [T"hR=BiO,h $,X0a„7|_Fsrd$(OW_} (= CСqO2.- ~OBA#rpʕ cRWMmٲJ*r;5k^$! d܋JOSЁ p)`p҈"7!iғj:*#e}]8@8А^z%ҝ:uBB̘1 ̟{$ C pGDO:rN!G9k?HP&M-zAo^V-ׁ~'Ns p ,m#T>}Ph'!4!*) , F8n8[Vt?`lt$A@3zH *"Bxj:ii$2%JP# (,uYҘɚ7o /K5kS >졃D&_ ʅ >;fhǏףbW޼ysȡs$! d)d XIZ9 4Mmc֓x 1bgZ*D0ut5b#%eAiӺt1CVq$m5d ;^ѭhҫ  d%w<=GYimA@A@55#aHwGzA@` \lVw .5!Q+#A@"IbHIV+w<=&GǠ?ι|9~+ A@A@0S"SVUŖHsJ4w<=Dڵ;v,sĪ &Ք2ۢE Ng8A@t x!qJkR!#$6*qj׮]`AZ缜e˖1t_&Wr;cn.dߣ=z]Do6!D8^#B1t7I  p};p{AI:wL(%K {Ah\$Mxiھ{j"Etyƕ)SFgJBA@ .@P x+m"ͅB(= 2dĉ:&]m IDAT7{0,bH(1$!5;VD fM@{ %=Jdn ' A@A AJF7b} BWW38Ĕ 7Jy+ 7@QKhԬY3#իW⡇B=Q,N@ clREA@zO44˖-5k|H.\xΝ'N!I1aRMZN+H1A@A@s8{,q 'Ş50>>>$3JFq27u ѣGϜ9^Y0GYѾ) w4Pʷzx @KI@~䀈{O$ddޝqw/y5׸Om@D*&3T5e^yDg4 TF]@C$HHnpc7s,ӧĝw.w7 F{s;_GZJ9ylX8p`׃\J{z+*y>[5+LMMVh hv4Oՙ?mA"ONQ. ` +MHTd0`\"?rU?Cgrb򗄄3 F@bTd#Vd$r ˏ\={檋ȩ19snݙ3g.ظU[]$!NT>SiΎW~y;y|HK;(IRMxBJBn$w,9-&S+4=>A3 }UzZVo3\տ~rUZ}@N8 Mhd#7>ȣ:x𠼫INzcBŖ_:d\9o߾IoOJzW~aD>׻r5){ۖL,ɍGҬyWu޶%v cCcBl푕AR^xvF^n? P!}8!3(o`4$em.dcǎ/}K=K\Dޓ>uTyUBT&%Z~:ғ\Ν. 4にU7Wrުsz;g%yCZ(u(Gȑl5Wv#|SP.UU0iC{|Lz46YΩ``sݻWknzGBo ~;@ BI$CG#y$xHBˉ$ȟ g5rכvZ|f/||Z|KB6۪q|cfa$pYLґ ΤMLwzFoOM>3D F#=z,~𻓜JeCR)ΉJV/'yeHIr4+'Z"ym{,5(Mr7J'ģGy$$y=*1{.Mrl6ɗr;Y|zs] S1oE8I3V$ZǍ$Sل<2M02#Syyu(r)6[ $~ft$?ɻqD葔(뻏'ri>)}{2ӓR}K -F$׹ZK$DFJrD<>c׃7UjF'y^Orp'5H1t[@2CFI$?lQ6+$]+2/Kƍ'wH޼ycNM|ҸՒ_;srrd;N η8z$!K(}wƟ2<=œKOK $ r+3Ed޹I..䘗_5IΣGh_^n1!$5 +--5-]%?~F ]-K6G&'ʛx$$G{| z/ZGnJDfyk (B4@I dƍ/ÇG$4[nEγ>+$ S|[B9?#H HV7|,Is㑛dcƌ7Yoww{sFiTA9UW_~⒜d"rn.`${'*o$ Xrr\ܳT>߫=}b"۪aTΧ?iDοyx@+T$$GCK5??.& u}i|/srѳ!qt6@ x徍L Vo]n0|0ٳgB |wt dgg}tC p {tK O@)|@7jzFKVH?c  E x80iҤ뮻"W9  p FǏ=d%8 tK9&+c%@a[m}pـٻoKp%@@#}px>^廫3>;:d9 \bm\˳ӷ_p]_ M{fLTD,F@}I_⊬,*|rcQgzydIFzuX0ϛFSꃢ|=gZkf*g{aAiߙڒyoO8ah'rt?jXk7 vjnӷ  =^VًJȬ5d◕{޺χ^h>]{TO#6{5^?|~byi s]_s[67G+oMκ{^Um 2ɼݯOVՂQ=s?uOdfَOg@F/=O  @+we*?xc%䄦_WjDdVO:yL &4,U$y&K|vh}mhN/] #QS?__fڏo/\dW+g:?S'NIԹ!i'V>r>8z5驫꞊gظ6'QYN7J@@W5\俹я-3,5gFhf9?PgJjTq Ɋ>MlWGH07kZ_DR1"  ?{UW*&R2[Ⴠb\Р))7^5DVJ푒Ex_g@ OGffۅz=ړAUhRI-tR;@']YMݥ%AoތM?VC@3ZTe||d]@0@ M @@G {왔ĕҚǃ@@@@SSٳgM>z$o^뒓uD  ^}I GkW^zˢw@@@3gw{ck}{@( YH,Kct &>zdZYԃ .yE@Cu#[0w5tTAMŶų22RkcVG+@.ɵcE5HUsEEOWۭ,ςiFg:0˷߸;V;RW_䞂|}Mkr{yXZ{µkOM?wyNQc[^XxuG&fS8jpk' @@CnSkDt6eϾ^4 Ԃ v;xa09(" |%=o%KfYJ7~/GzE"ǣWˍ;6aistj04)@@ +Rjm6J8ꍝN;*, Swlw%Z~w8 fS-_Z5cՉs-;ez$*Kև-M]ur*_?<бUs#g殪h?u(8kJeȡ@3d34{}Rkf؎H͘p_U9҃4:T^֗g,9ؽ~Miyo(mF;scɭS1kJ ΘU%UԌh(/ Qa%! @w<3nwݬk'HRx }jZnWyX@K֪T>dʿ}yh R3G+8ۋU_a_Z`/^YѼ.S2h~Nfj=ETaSIY7{1PSNNެ]p=ߚ-.9e=Gf.sd`j+Rjؕ굧hz`J {Cߢ{7TZp/~VHr IDAT%qq{e{rV;獟}ŻV*z$ {W}}KJ5~Ƹs֬{qkwؤlϋՔ:۟0p%JM=ř~ yqE@nO}^z^>`$n^Ԃ"j8\]&cֆfܕն],W6mI+bS_IҕNb6ҕGYMZ~ܻT號|O,C]َ*R3rzWrXhCsxU]kr֡99{ ΖQ|Raͼ*m*=\۸-yi֘U;8+ Adݳ*pdsGxݒ tֈjUݷJu9 iplܹ,zl+*=^͈ߒ7uyD ^dvZj-SU|d BkY:Z=J͛z`/J?}rUrds+c3klt4|\Y1<2jmң11ָ6tB܇%0\{^3$niӁPe'NU(Fm]7.ozF/b/Xw~-RSo*׷o8!&Tқի! N;GBh$S'ߔZO^ɟWFҎRYnQygTy m,xd񀉅j۲[6;$@@"b#N͸Y奜n5X0n9#7_N@muu5GKʫ"$mȭo,9RSUYcRhmww'n3Z4gt8Kh5y ?uc1w|[p*r6ed[UQ yK֖KU?'n%GLK7n]Q˺b(9畑z%kEE;K.唴s⃏=QUu|۶-ۓ-9ƽ'k ҡ>?,Ľ4;T)o.KoKU¿x:kꕇJJv;S`*\m4mY@@, tp푴u<v/qu.]^:W-gb.s)[w\{LJ9WɸS{%*oцSC[t$v/!SZJ#EY+B/K{V/Bw]ݽ(V.r[\'ފ"z#w^$ ZLf[^SijCGte6g窣*p]O;;-1! @Y?xnn>0Np's7#+Vjj޴ع`pVۈ646 7+ uu-M/X귗;b;-w1j˹jٖ-r+KwrR6 lχ4 @  @KN \_>"@͉6>pƘ룟vͳȑ)gx{/#[Kqc[kڮZRwd[xݩ wW#Sr©-Y-9hW@Æ>ע+s&Gʔ'TW~@5kex]u}UW/Z]g{]#ZodE+{–'N>~J͞6oS/CUiCsC=@֮];dȐ5;PSY6Ͽ3omFԁsZ蠸ZΞXh[W-#g'~Al۬鋶:0<_tܔn9jSwv~GV)  Б@ٞv=f[Oy5)iPZ5k}ܑ-7P|kRyVq9nx| z]r'voWE:6f  5lr辅pMw8vWTj;|5cުH`[7[8kYArWިALΝ>)-\il}@@'innnw g-P?vUʫ%Sjݷt-ꎕTj-_Xwێ*7go6F''WHIifJl}M}rwg |hw`޺||ՋuN”*_9nPF֐{P2ǟ~z]]g}+N$7~*_5Hjl9\t|< e@@,vl_~h*Zt߯Uyj;'"ģυ_Mk.kfZRi(x$ѣi>uxY=97IM0 tC ?L\x& ػB3ui#fyʞ H9r];L jgV.z{h~Pw r/=Կ[ +yK]  pa`]х7iQSY)w00#ze 7*_QՍW rT59xV}:_=ڜ@@y=cײtY3,m$ěPɛ1n%  @w$}\;  [G@  4 &x:{ R  X#! F x ft $V%֛@@xCD  XQb @ ?D  %֛@@xCD  XXzB IʕCeffʋm>]q2>T h׾D{eۯ@BMNNv_UUU~=_׳4v3<&^ ~4Keei%]>eag 2^]IENDB`psychopy-1.82.02.dfsg/docs/source/images/coder_small.gif000066400000000000000000000366051257562125200231550ustar00rootroot00000000000000GIF89a,,p-1:454BR+>HFDZCQy^bNNUTROUcA<|MVo__^k^RYS[ecsacfhfchtWixfv\W[0bi9vG3nnmgeMCn]xrefqntpquvtaZp{|q|~|{{~wnivru{w~tq[B>>L܋~y\wv|TSsb̅Iwno҄Xjk؏˦=.`w⛤nŗƒΛpyࠫ{z{긫moȢCڟҢԭmFй~򱲯ΧƷQË귵Ҵ಴͸Қ˛ɻýÏ5sٹƛUϠϚ֓ѥi^nǻ@ȴvɱֱ~gι—ȵݽݾģڥtY^!Created with GIMP on a Mac,,%L Abɞ $p`1#JHŋ3jȑÈvu㬑(SZL֐ A9bL+lvrd% D&Ja[NYԊJO*$BM9*%шBJ!YgW Kڦq!ӐDEʊ9gZ頧Cb^@ ᥪ#Uo|V8>]K֚bQ#F11]TR85"ÉQ*,U:akS CsO*pؑ>ctRB= fɧ=%[9˥Wm ͷ)F5jTL9Kȷ]6"dPh TBz  t*Q3G]L!X1S f (b 1<0T!2 .y 13(<Ӏ\p@b@N0g,C\/`W( N0]0 @ pfH/PLKd'( 8D g`pd"KT '(8%fy*"P FԠL  -$ӅdC$( lDBEFP'8R WJ\тU`P~ 0tNRB P"WNRP"2*PPՌtL *+0ar Т7,+Q,m"sR4pE $D # lЂ" XxT0l 5 r°@ =@fщi B 6$\vX bZ\p @50Fذ?2؁NȆl*F.-\-0 TUbT%Z btUPGxqPpQ g KЩ Pjpb~=ĐlUk81`ء ~ T@ײ xЅ,A N*@Q*PZ6 W+4gЂ:ah (LYtBb - {*d;!A|^B\},f ̢bbִM,fюL?z u-n++ZvfWR5PQ*V9=nQ\܊6$%l>G*%K J\bmdS[ ZPWd#󍔝'(z]$hZʆ fߩ50%OG qPDCa { G bEDV)1za^WF<衏vp<6+a?j\c8qzKR0FE,AD^ %r ^p 0"pd.Kv^(!g78ɒh&g<̀MBЂx/kwxG=Hb?tåx\UF^lj;9Ʊjo\c?r$!_"K%Һx-^(,ļH6Y~\yؘNo\mWhH(x-ƃvMyہG9αqc7)Mj'ؠKo1q, qxuDu J Lrȯ]|u$"[|4o$%aO H+t/F[؂&4a[T 歷ַ{Dݡu[^Eo*kP;Aqdc@2K7ьfBW.'r]"yP~=%J?H@@wpC fsC? :`O;g{}kDFc鸇!qWE˵@.c\%0'FȀ HG-En 32y0yDg#G }5r k`L   i v H}WH& &8{"{ @|2@}8:<؃>@BvP#43q 0 @tZ*'شXX.-0p^N{` ~}k@By~PCHt:+ z 0<H` G P@P2 Uq"Ny8XHE3Jh78b )pPGte*q0`l W0p$ f(' qPy9x#8 gЇ@#5  6}⨊4} XXH fb6`OxA(s ِ6bvhh@#vP@Xp!0vh#`0 v<%buPiXr n Z l =yHNk@ 1FH Q-g#H8׏k@1x1[T\9tYvyxz9lp#vf~9#=F ?Зp5Hv4`xK@.0S0!'ZЙUP`bn W0ZE3b9 7:@bv OV ` i6ik`thɖ9ٝ9IiF깞a0tgiaEؓi=t|lPrbНl I3WP1yIY_m8@iC`$jT`X噢*,ڢj yI*il`9Z˙B:P\R@EzIOTZVZ\ڥ[J^ʥ1ZJf jlʥBy^%m:jZl*rJz|ڧ~a :Zz :Z԰ک:;F꩗J񩩪j :Z  QŪ@`Zʬdjغڭq:亩 PjI gog@Ji@Jدhz Pp(G HZp`dˮ {}H&cX0{ ˊ@ Vp z0+cB;pHJ@I˴JG@M PppԠ0up J8^0{ $ 0 y @ ` Ԡ` (Qfk^:ⷲP S F@ 1ϐd׀qHD 12h `0z1H 琺e 6[@0v iox T+U[@`. .`PI .aa`Z4S`j!`S<ah<@.Ћ!` pFiv pnpj^~@`| AFN    6n fi㭰 iR>T^V Pj+ɐ 9> Ȱ X 0 s0 u ~₎р n>`W>^ :> ,ppۀ `~s9 poX n~Ȟ.\`$ޭ P0 > 5   @m~K 4˾RtP b@1b > Np?cp@>2?"?n_A:Ai"^di)P 2|3OdB/ ✶PhEɠohIO$ CSp,`|Pg_ E͗c#Zp pO jo,P,p`,̓v1tB (  .Zp_1q ,,kNG !` Sπp !p 3PEPp /il`S%S-¥uT<` 9bZR1 Ep &`_ ႒,-Ϧ<Ŕ7E(q隋X:Ň\N8iD)]le*)S.aC0޹07ŔOEvUDTRM>UTUsU%1v5K%C{-dU \]{{S!˗̞ңGG,p+lUfΝ=~U+W`&m2][lڛIjSWRė\rI4lwa;PtVxsݽ_vbeE̅լÿ_>U[yK0@#7L#A  ReA7pK&8yfi#$@#& h/,9 ^A=V8g#0iei8YVA9W;=hZy#E;GM#(2dёVp^܆l[GG12WvMNd'Wd*jŞ.1+Vvpv 5Y/Df{+1E8aXؼ.4ASd.B k5jƝdι2"l|'JƱY]:|lFƝOdx>⮡da-p"FZ#Ђsq!: Î) jE#9 #/Dž)(1-JU6׼2YE=[*S5YQ$#nT;쬘4PUb5bX) 0EYG\(G@" f #L D{jjq-V*q2*2cD17NamgLo D7YEǃ/>}4 J8=ްI'.1N! `g|t'P]19y`5rLxgj0nk0c@bF67ccߨ[-p} 1xGfTAqs\eabN|hA31]r|0mu`A-l [TQ2)Ge`\ AfGCpew:YQ%-L=Ke|1fVbbx_Zӛ; p`D'0&"f:F>+R<P59Pa?5(FPǠ\vfdicX6F>u&mG۠?R!OXLt|lc_XQEnNt<~T( ] ] GpV BRxJ_8U>!aVbFSj6#P/pwaFzF@`Q$1#PΩn v?U>lU#D!`G1 ,IV5/_-tA%;B @GHl)vO80eV_ XVMDb s0ǧ8+u-'<z-_)[(蜚-+ۺlMeTa #r._G){ZlKguzN|0RGʔpq%p-5$nKbVMj(eM?`#'u|s @3aɵey)cϸ B)%.N@'vУ"aH ʡ6o" 3Hэ_t@C7qKģy0"ФPՑifBNڼqr\61B9(a3Yd Ѐ4\rؐ SLmңTY`x;@0 a[q9\B {ph!vhgE"Xi8#ZBn@#HQl'ZP~S`8CÿI!F`D  {~ ʃ] 8442u\5`g,N0dێN3c G1>lP^1pnudw\F9"޼/~-rhWa,qKψs2s'8G95b΁x$njG9 ;pMoe*qG{KcIEOw _ΓQ>;lg<>C|83NP-0BӱcG0xN)Z(2Їx؜bɐ08I?,ExBR@&-8E<Ӹ1t@oXGà9c Y oP)H@b 1J,s f# f 4H܈ 1ɠYE cXʊ(? {(%ԌįJ˅ }0BSlĈɶg@؝P5#;脵Q6EHaHS$mk7,:ʤNgPspĴy'0XI  7a 89= wzQ!OY ![VJ yMY`>b ` yKwh0+QiRojs#=-zE"p5yox  LGٳ3 n@JD_,ʪ4uۻ$ar wx (Ìt[L 5CЧ^N$;YXrR#r؋FY y٫&9]B4XIY8ޝt<4QskKH"4C繛]Cqj]h#<;:=-iy'9op ސdup#5P"bUJ! "ꠢ ɉ.e2Hi!űގI , xs%8 oH + Wr%$y(I |( >] 1GFN3\]KvKzt\I!bdO.ȃQcC6O^ѹleefYX.5UYLn 0)Q⊊cRY Ȫc_`8*ɫbʫS( SG`E*Wު)sȫ\qj# "+f dKɔ21Ef*sLAO!6^P\q㊆&_ATashigh͞JiZVgɇ>qN0Ba9Еvʖmhղ"ĺ摘NA`|)8QCl=QЩ+P%]P TK]l%Ф{Y(QK̈DZH}@01؃b Awh4o(S0e(S`}{֙㼄8!idoLwpq9QZt2g8`.(.Pm`SX[ 7 yu&50K* HH1ddUcpc~ ^?v7^KZPC6qH@Pa`zTDw2!#KȢ|0bɜ[d PΎyThS S2@ԭ1 ԃ >`S:%K%KziR&Şr@dH 0G /-l2 Z3Y4t EP= H7TIRY==Ԝ BT-J=_A8(+S^,rgy'J`")*l|Upvl]Sʛ 2VAuɉm1{hd@2)d! 6-6$IOIvj%hW c%тڣ5+ThѵOp yч Xxt[]pd5x*w㗇y/=wrXO/{2,6WuT#@xQkغ'z4TG\>6C7pO(`R ;+_V_wį trVbȢTx\ũ,JzFVP{] ^"X>|؞^1sQg TrT|}rWWQsb vl}Ib X Ǧ/yA$"bfKnm2'{#߶ݍdwVLo{ԪYg*VbZm}mu 8 (UjV\.AGc.Ai;$C͍ $s?9 u=L& :VG'C5:7GC>ǤsI6 u,4:tT7kY=XYE =}rwʓajOq#Ldycr` E7~A u0"0DC7A_t/|%!sb`-׶:t cbAva:8[%dP|=qK'5(| :Q`c?~?u g+ XLu|g" G8#b3C|pP$iHDŽ'DCDB(@NiC#*ґGPP tXmА6U^z mAk)}.hI#9 Y("7sc(Vz{-aT\;j 0 <dChԽN1 ˪g9~d^HƯ1K* sG'a #S'@0?TjbRDdjLAǑ!']Ԡ52[;%u_1i!Ԫgl?*&X l 3[cq_W&3Eʖ$jy[ b5eЮxEuUsuO,%RmַSx gY=~F f@AOl-wjjʸ$nqQ(vF?}[08&Q-p3oOw3~qX,C.򑓼&?9S|yOZ{-n;pش<3ss>/3ad4@W㱋ccx0a__ *   +!9ޏBE=X3'|!!!a&!ơ!֡!  "! 9Q!&"."̽$F$N"%V%^"&f&nb%'~"((b(*B9`45ڥ"+",Ƣ,"-֢-".-ڔ./"00b|B<*i=W)F4N#5V5^#6bb2P3@@A2$*@6P#;;#<ƣ<#=^7l#.@)( $l ,0$B&B.$C6Cޢ]-$ ,A1鄤H$II$JJ$KK$LƤLB1-d2|B|d2܂,̂P%QQ%R&R.%S6S>%TFTN%UVeSއ,Vr,|BWBX%YY%ZZ%[[%\ƥ\%],("@e(Й%` PvA9?C: SPhPÅ\H>C!=.`*8fC-,$$#83,A$xB,>\*PC<ȁ5A-L X,8?*i)ЅP 4 Ah8A B?t,@C:`:B8B  @?w'NT:P1xC1m-\8C=?C(A&C(2,?\2ȁ,XhjB,CE:ORH& ɑ>BPB 3 'kf@< LS)C2(ÖC:?@>^0` H(@\>d@>.08͞xC3d50,2hd%8B i>[E E_ª*RB*jꪰ+*:.2F+_B+^^fvk`C*ʚkz1kīB+}+k^+%t ,*$4NF~ZfAr%,Ȏlyrʦr,˚˾,_Ŭ*,I,Ί,DϾm- -%6m<-NNTffl-Z~آ ٖ--zڮ클e-<- m"--:nR-&..j>nF-V^.暭nnv-ێ.n榮r^n-&..)$2"/&^.lW=/FN/V^/fn/v~/F;XW5>/io/oo/o p"p/o/oX%po/2F0V/ս w C װ ˰ p 0?0p  k o-/17'b+YI'ԥ_1tl1g1%4Vsq'Mc11q;psychopy-1.82.02.dfsg/docs/source/images/demo_dots.jpg000066400000000000000000000250361257562125200226550ustar00rootroot00000000000000JFIFHHvPhotoshop 3.08BIMGG8BIM x8BIM8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIM pTPn@JFIFHHAdobed            Tp"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?I$JRI$p Gn産N~))dѤROP`RR$JRI$I$JRI$ҝjݠG$#l%Ok]}@w NYk;7fߡq.vLk\4 ѳ:ijJQ%f p/Ip܃I\Lx4GIJI$RI$I$JRI$dsRku<Nwof $j 50wI%.tDKR$!w{Ng@0?'{D:e$ ǿԔAq%9 vM#dAnwR5Ёۺw۠I%1I$RI$I$JRI$G:QNCd y$J\ѦZD#_%qdR6O"?INh4Y2I)I$JRI$I$JRI$qx3K!s76i)IY݆6tk[{G]_g~uX;7n+}Zn )Ll&sH,qӱ1C*nݻwSI%)$IOI/*I%>S/*I%>%I$R^TJ}U%I$R^TJ8BIM XICC_PROFILE HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km!Adobed              ,"P @0`#6!"21B P#AQaRbqr30@`C5c$ 0P3R`56t˧[-=a\:8|jʴX™1::5edTH+0nɦ+#7Ƶ$F*3I4{Fרh暑&'{lOMY)ƙN`6תDZN@hsoH+%D|ʓ+ y(MYV;{™6tm+!&o$>>{}#̾T>M>dzO6-輸z.?z?=o>$zO6 }FQ%o8%c*xu}<k,UXe-C5;eb S}C^q@^+Z61f2lXkO^#6Y#)BWg9Пyv\ /f쥒@c&g>a,.՚۰dq📌3_`tl6aՆ͇t2zyGQ e6?x3 [ a51yƊ0a߿D]fxJ gjv,&*jٰE =?6ЄQr-ODyUs vZ̫JpbuS:6l@B >t5󺅾.-$eL_ik쭝5"X繙6c" jY+fW-_d!g8i3e,qAa6Jx%a8ǠA_zv/D']74ϠNDOm; W !Xx*Zz[>2D0~Gi3mhmͶ/jS(ӍC/rS#]k9eլk'.6YH{bxUBI)JϺ`Pe)9Cy;LXZu-&x\}Sz0:{Z;B])άapԽvԧr_j}?k ky?YAkz9n{E* 9>+9 6x_?m?m?m# %$āָL?HJvNޕ2 ISqpkZmȌVPK#7Ww m^%ؒʼn$2x;PF8dQ׉7lUPjR}f.& eUHuM &cU ԼC1v3xX,o 0D>4mWPk2`9malEy`hey I& ĺvmZbDLKOڕij't&uyphhjɌhKim]d[+a$_ZFVRYX%ՎzqZC s,mfV1V@!̪TN$ OOrx.l_"'< lǞ8}mNI*,5T{U$?m$%C :nL /EXgԴnxxWLֽF a,$Q!Hho[uKϑ◮+8\>z943:R\uϋUuHZ* ZqZfQhsɤ=^iOSYKL]u$q" =E]|\|+K\U[0i<+cpʭ% =Z˵J,q]d|(tҸ"׊9;zۀT/@jb I֔.kF" ;(Qsq`}d%-ksfU'(Oh^$zrMsG(@AI_?Եq&&PIg.jŸ;$C!nz8iiby%˾2>lWU3ZWf`sWV)OʧƦrܱaZUd_cZewCX.vW5`)OrRX2s09S{J(΃eHk U gQCFXLK0B9+Ăh8[T2xx SUq'P$uq}9Ҁ.ǚw^}.ZPYf+XcϟQ_^Ve(.{[b c~<bhX+ac$E ] 6ly(Zm+9̓?ld0'i?Kx SQ0A8j-Bʤm2-73UcxMjڽEW0VH|sx5NŠ"pSjg0ǰ8Pu#&J$Ž> ̤+f$G=n5($eOz}I)>K\3KVZQpal9^|D89KӵTHG_On]qUŖ9)K/w]Oc5ugI %VG-Y?p՗AuN)ZרЪݼ]=\ 2y}^5mU%_猜|BG(@W pTݪʕWPv }fOel#|g  Iv[ E$9=˻[&[S9GC^)%73"YygnʼnUT2ɢK/qץ0L; +f ,YrY7>Um^2Ir>bT21XT3,s=t/N  À(Bl`0xQKi۬j IMjRrrD;:jP01 <6cx6HYju@hGe--,Z8`;⺋a.*L@=+AJ[J\Ddv!I!pR% 1O1 'ॵofHJɗ#dU&Ţ 2sb`;HYvǸmArǩTO [1(p3ɪZ%/=JكbB{d<9-hm4uv:'fSTkXJ$rYp6vQbnIU20M["<}o?k{wOMߤ4K{oVMHA'N<Ex}!.>һXVysDK8}]Ov7ݺ K2-^YY֮Ȋb?\`@J2pUWwڮL[j>gnWVyUVC|[#_H}&S*m5ªm]C֋Rm]Sw'\}=\_ x7,^#- [ep.zM2 RmSk;omMhfY`:-WjG8[UͶުol5u 6j4XXDtuv?psychopy-1.82.02.dfsg/docs/source/images/demo_elementArray.gif000066400000000000000000001646721257562125200243330ustar00rootroot00000000000000GIF89a,  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~!Created with GIMP on a Mac,,H:*\80aC:T(qaEZQ`ƎABQɓE~,2J/CDY2L2cn4Nv JѣH*]ʴӧPJJիXjPbP{]ð$6;׻HӚeKhܻv<5[{]ar} _cSK1b5%칱fr'NLv5ⲣ'乯p㾊;q|);7?~9mfөYf>[tt+ xgnj=EĹޥF5i7 dU?>͟Syqҁ7y1fX[=xnexLa8[r WxYoFIu6s&fM"f}i[)DiH&JenEd]M8NyU*b9eZE[.$\ 1!Ib8٥>.x"e&0'v^M噊yǣ?j.^gkvvovicNhgpX\u]ܟbڠ"V#: ꜁HjgfxۥF8ڈ`dÆka*bȧqŠ5W Z)rǨzle%M-tQ|' H` o~ +o|5aMZ 2nv*)B9lT ܤr{܎#JlVf([V[\lꈲVhGoPju*3q4yzr<[sJ|vN-+QVh oL I,z3l xĉNpƄqz+6%>pKg 8 ߑ,a\]_ZEI&_Y5Ԛr }o_Gvc*ҧMv4q;7u/-N R/'jR-zVtÚrmSWYۖ1_Z6, bOJb֡NtwssR Do3ۆ+O풟lTCgڜQpWYȿgKmޢvș<;.z` ukhBu<4zJK9c5-V#)*}Qz"ֿE~U(g=gQ RRZb8.mP[ $C%"f},ęl*iKB1W F&G)40@ݳ LJ|+C lZq.sOٺxEBҙzNտn<c8Un@K~Є& UxfoK0|P* ĠylJ9K2_|$u^*]i0=:L+ i,%U} YHl*+iPOj.1OY- Xk 1SM2BL,\ VJ3k(60t-a :eҺn 8(]]e'Ўͬf7!LOjPs8ɕuR٢HT)T%&s^yUB\yeQ*;LQ4na\Ho[6cTw9^VUWW^V{U%D_4*|d\F߷"6,cJ؊]]w2?FۤZiȐG&[? mkyr4 xW^yU:0F+㭨qgqFReR[k7[\i=(ۤmY,uz5RֿԟZW>!3y^=+6 'xUekUh[3&W\V'0-3{u\= 7'o~rVYH҆#ᝡ-[{{lڶxSE5u?_}B9[[:ؙ<EJ8c@0NY !VYo:@`:Tz%]'Lә^'@Ζ`_9W4\y)et:̡xȺr:AvCݓ>}+\-(<oC]#$|G{ Z?yϭ;Ztp;w<\8wfe;Mmr夶AH9 {t/~'$M\z/٧֨<$@8ԁ{u q9|{Pi|`{pP\u|eP@tmFw{Wnvy7J`Jupt nt ow_z{ww!XuhCh޷#L5V|%Yuge9xj0@P(gx0zrPPkYwodeWy@ c i@zWD{0{"Hs tvriBfvYhx}1x@ \P cqG)qg3G-lxse;vd'2y'ezlpP Pnz}pt 0azg e`a@ VHwz@ G  {pb`zy1uurjwvzxSV@g8(wfvuttyxtt{@1` }Vzy0f  ~Ќ%M[obqDb'R~`MP eilDp iiNH`3Ɛ aPf~}P4G b| {vUwl@ }VX"PPAY0pQ^uqs@}s3z0` p<{u}7^P!z'Cy$Q"F9p ]c@0m@UJ(`aP p)@h?I3AOȗ5zn`͒pw t 0н ޽AqvGzd|`xyQ K7PPɐ |x\s ` Z=@<j` ~p q@BPbHp P3$`@ J]@ l@| dP Р ummN-1Rj`<:zLPZ @0Pt P mn GCavO,$r׾dK0GhofPD R)`|w_e@hi+]P \; fXP0ׄwc ,I"veGI?Mk8tF"JA 8yFp$#[T$iAq3;u^ŚUkUUNzذez= ֬UmݾW\uޝj3XH/aCęeZ}Qq;}ܩCgϠ9R4JhK?4I1iQ,HxЃҪ-^d-8p2А?9pn D"RЁRRd5(^" :,#' VĀ 2H Đ5@"W 1 >xut""C@eyGC6#1Ԡc0c]Đa0 , <#;\K*lɷJʙe(iygjZf(Rg_y*bqFPXc#@UGnY%("x@CD %6`!+#xHQɉ-(-v@NQx֑M#2R2D @P Q@aeSRϘՌJFYӪ4&gZ2Wn0-MSKX$03uC"DGEM(bE@r1 Aha CZL"kXpͱG&'dHA ڰh  `% [2qNdJ@(,cA~A\+C.b9d x+ bV D@A pЃ!2 `0c`&= =P; kI0h%K#K+¤pg];_rlp D@퐅ZH8 (C;qP2=@:p$ j@A 4`DO3Qd` Z?be dn u{uHD^ [8U \D5<ppO@0(|`nюxgHAcXxU%I(8ч&(+>(=XF8!fB!A9' zu$uP<xG/.beGD!C;~A 0:a찅*u@$F\@%V;'- sANP"7cZhD wHD&&oD!"P^&4A ؅2ZQ `E4pA>A ^(3l G@-D\w 6|gN! jhCDx) vPCukH6|ь`EdȓJv%O hE+p2)n> ?8F(r0=*U jB0Ua $  ڀA ?B, l@  R`z ؁40p< o82Szxd8@; gUP!BL04R1&X"J07 9P>zPH (7ЃBPE8Aȉ:p1X ‚2P6AbPyRp@ k(^jBC<3(A/-kCCb6'0P -hD78=2x+'-78C45`H8E<@.Pi0*N`EP#P10Z@B9'dp8< \PC T"#p"C ;X/6@g` KV:  a7(>ب?-5r3Ђ(39u@6pD@ 3C(?7+x&X1P7x5(0(O]N B+4/2B !.0R<<6$ >1h88R0!dF8Ђ1O8'p(QpB50EЄ7:Fx<8#`2s4?hT8hG4 @@%7 >X'g?X)AXY827=< @'EL ,@6PI@9-6 <CD6L0(.@`! LH&(K8=8=@#>UND5-FHI®ЙQR(Y0GD0MPK'xGh>68,8^*8g03'؅jЁs6+8 =`+`<8d"PXJpe0HiJ:EXA=P;U@ 7XGhgEH/CI/8v%X `w@NEC88108!ϗ9IdmlVV-IǛOdɛ³ж:h6C:*؀v 7DXe07bm*V83]Є14 Gpzp^(<9`^ThS2hl?`J8":%n9`'hFH[yȃ@HFX5p)(%]THnfH?#hN?P3pԋ99WBB><;ЃRAaI䙘]3<˛3[^=(\5}!_b: 15`XrP!8_1@&pU,_H* )p`U2N0C8F mE@G -`HeX5(13x6ce) Q0<+΃3?h07X> 2,8#Xq[W8P/FI0E!(e-8yCWbx@fpH3.3`f?=J]@]-^MJtρ*b(v$XH00E@k p7`@11(؅dx&W(6aH5HaP3H*P;0A6%8 F XR/xp(!&HchLX9FX>;pD/@'` ۃ9X:p40:@YAGNF;@)@*0'Ђf`~:g5P_[Dy*$4gqa tv!}avF(`mV [,0R@]`hAX>0 MaL, (u.<؂0.@.+P%48k@&z&X-XI#h"zX+@I 6@C7BP@KD5?a m3X#ЃTR@YhXy8g>h1肿c w3pA̐0h %h2-'-$[]'e c-\<5<~5zKAXC0?h/?5@ɵN74%Q'؁؄z"p"p,3>5p5 2=ё%hhB0`i(@(pGp;`pf@@HD >@51AЃ*G4c:0϶i'AtZXKXY $(9ІxH X>?p5' $ ?]kh] ̘?r4dC2T\=e[0\)g}ax[A@,<2ȁC0Q"E2V=C؄A#)*U<(9XfOȄ6ԋU&Htx)"jX$869.a%X)鬘 V:xv8x $TxN '(L)&Q<X2Kxw 2GT[a483XdOk qOX p*aajx.},oIu|!O 2-XZ$vx ZH $IPK/h(^X.c\ ^HPA:A-NMpWx8$&@6K6 M TgN:ܱsN&KY +x N; Sӭ[QQeP r$,gܡ&I;YC+~ٙ#=~ 9dRGdR B;x'@0Yۧpҭ[-\x.`! W^>Ex/Œ;ܘʓ}:ATXl͍pc!(b>P!L pF, < +āaöA4A,|C܀y- RضC VB  L`Oc1a| C K t8IpG.1a-d A88\)0"@ Y!@L0'EB7Tb ̄Q&~W& gtYNIKe"&Hn =pm{` `z@Z"68.(PTC;"fH ep93tC7:ByPBp K /X`7 iLCPC9`-Ѕ$dG a@a Ƞ5<~p@D>PDG͈4!IGAB 5QT<#wC`>$3ܒ/cYbK_]bi_cFUc(=! jD'Wx! ,=,!x !̠7"[ Q CL 3lt@0 :`001 *APF@CЄ/*a1>CĠ|F]$c"<(.@ IȂ^h!^5 i ArhāI, >(, rG-Ji B b! EH7!HAL$9%W &b%nf.3& D.|1a|;n0Dr2p! Kp^3 LB' $.@ r`$'BzB~!$ J24e6 2 "h>pL  ~JEH:z<Ɛ^G.C,$2!x"t?D \0+r~B1P- n/!Є  sT]`C,BE#aPh Ƞj. OuK@2䑉 `/B@:)4@I)5т!@`=0~5OV0. p*^Q@ L*@8|P,! C d.H!.226k2KY%.u XBY^[Xk s<|Í,B"xl[FU 6p<px |U AC[l[g\x D3O#O(eIa 3W4$Uz8FFxE9䠃B!V,#ѴӃC"=9>ӎAĐ,sFB1c;B[YB@Ì0 ;B(A ?BAh'3J;HC"ha(l>ڈB Pyĉ*$Ì989d7nLIՔ7pU7TQn7VaV;VX/5WYk& a!'iy401 ;AA1id* P=ĐT* 8 >B@ xhDI"AMX"(+$1PD,EY ;<lZ]2G$C;t<D!C7Ё h @+( F;l#`ɠ"`A0 B P0 pv PإY@ ^x~XF7 W2A ^ĂJ\4 S`;-IiLm┧eދwo}[ 0I(1i"&y$x #5Qx"D!@D$xMV` ^zఄ@aD"˜ڴ`X1 [ӏrg1A o J kFrW PR &`'`]@ H!:b6-4 7lR.0^N} 8]׽;ܭ r-21.a ɤFg? V(!F [h0Ql"láDd#_`ЈGxm"3}XHc.(&iF]l._`"̗9l-3&Q&V`A*P!F;! [h|-5(00 [Ȃ  !j(9BlBnP!P q͗0QLvh x*mwz`|C[r#% !Ar@) O^ @4!ah)b?( -\+a!$q.`APБ.p֐ sXE*/Ob1`D, Ep)ЅAX"HM\ Td 6HA</ .a X@.@шloG! W&#t;G.^`1ʠ5%F df.Rť褐CIjq.7BeJrZ)@ , BA@A"K ` Z: DP` R,/5Fx @ `T @  !A a/@V H zVaA8%b` @ap ` &&)@EFK P pEEZR.D` Z( N(]xMlpj0AbV gjUԱ`ހpA~xp`c`*f<4@XAjd`aF` ` Ҡ^Li , ʯ $a&``!p ~@<!d#:FK%;Z&l`!F!  ? I::% se2dE1'2ձcc|& Ҡo|  dewVrŠkܘ*#/KLQc%Ef7Vᓧ )anQRJ2T!!r!k@"5(0TBA 0^x|bHlat| S &eC Ϩk \uP~$C<!`yP.t< vt$M,Aiq̡j R:HiH!qWZá q1bv"J14Q<!VGQl^8a<Í-{B LѩiN? 5ԅ1mY o^= uWgwqGMA5аy{aX!H0P x# Jq-a3VE ̅XH(Ah~jx`b B080BǗŎ! 0ܑ8|pc1H42`HAB <#=_APE~y̱'H.ĘGoPzrU "Gf0#Q  =A%~|p!PE#&`! SjI׺V6UM_KT} *aFB0Z v°[ #`r-aH|]#b 8HA hTX  6 !x@APD2:PjD]XC:`.a^,,HqjB + P C\7nH!чl~C|`l*a[MbW, xE1vC3p`4X HD p`%7  xx;8 {H)° P@a G GB.&a08BPƶPD 04!&$ >(Q '@ > >awpe 0IqCcEYB 8hBAH!x/0DswD,|qRhea8tU=5y Jt oC!-I} 00AȀG8\q; U 3A؄acy<<pH @ ` oR ' ~}-yptbmbD 2PmP{0{P u{4`vUhC5wwzwkwd5{]]^wI]kFmK !/@=@c;}i0=m@ QbP2[@! \s=Z?3P^0j@!}XmtHapp&MӞAK `p0 x0$ 38sz B:7<h;ej(p]I5p p;p0Eݶ` .Mh$`o@ (=$ Pn|ܩnTjB[0@he6#Va PSI3~`#z(s`D& P}h\~ ZS`` p75`X$LJ@  hH :@:@<L'p{ ̀o D > BL8PP>g@ٝXO^ vXP A TÁNX1Á3.H1bG+"S">LLDS0l81#:i>,# AaSg΄1ڑ30P;Vk!=u)5>W ] '(CtC(v2IڢDS6K:)gjƏRDك'd_z̹3H$tOy :л/!9PW^CDPˆ3q9<1< _Щa.c8昩&2hkxa A6h"` Z!-D9E@(&70 `(]"#w^!.#/@%q@$C 9YIc9a]$c 8C@ C4x Cb K ~>ְ->9'Z7?6ŒK a3*P(Q>I9x=T m{h[F:7P$kփ1#!Y5<$f1goER)$c3ظ#,Y dGz E4P>?PÎ@ \갈O  5I# AmLģ GA*os;ukςZȐUfyaI< r EvAéM! \l = P-aD`AC v,w8CA%D/ дAPF5 d38oÍC !4 y$0)PA@CXB` bIA0D-VAժ3C0)KZ(C]NX}3ZJ8UVD|UҵO!4 Q`M@Cdh  pV;<Yy!.q ڐDP8z[}"‡AP1@+Qo@C&0a O Cʃd t0 vbU%*' x`"4U!>B16!F0">ptZ9d 8Õj'7]jU0[7 e3Bv* DF+E uD 9 ʘ*B1 pXaS3"&AР|I,+$0A;(bB9Xa HXE8!&i`GC; fhC=ɏ #kNYVLf6qϏ )|wRU&t >kl(f! wDIB =hz΋QXA b!X}ðm*@ P>y:"X ^/?9n98'6(,` ,x]@/ > C`E8@4h1P$Jbx, `i`0P4!02q=>$X2 ?(>8-:;0(hXpL0:+0>8@ /'&&w===1 0+-2//#1Î<8J"700cF?,@C8)ERH,M h)fI2H00FBh7ЃZ8WH\@&:(0z¤Cȃ0/E=GJ t 3X(?`H07$0@pI+hOMHS 6v707 *$q`@@!1W"88G؃+PAqJ8H @P?C>C0(,)CC 9h4@Ě"48>"%`Fo8Ё41(I`6U(91#B8U KP1pHƒ@DHC,DP@ LMjbP3bfx#(*0KHh@X*37WdX .xbMatYaD0* ]5PK|,$01,8HU87؂@Q|I?I2I2O|pH-BE,A3+pox=Op=@xe;0c\'%)C,).:1C@6NPAi4x' 5ȿ!BPhDO1ЁH^Tة3!+SB !# 7(19%Vhk(-hJ:؃K2@&Pv`4H#4X&80XIȃ$6h40?&ɺOQUaQS5 Շ3T8K @H8d+[(.0S?pKgȃH`(,Ax?=LxO`%)38cH;kM'(x##Ux;-?:&, aoP#81E0xO@+`9:2"XH(E :-/kO8EV8CX2X'o<Ё%#Q55.<=OO% =6a^qCqBNxe,`m M+u04Hm0 TX!Gȡa>6>8( EX8jaQBB5)PKyBpxKЄt8&8$ZFh8(R2X2Zh-1v (![V-. H7(UH>x=$cU%U.h*:"tT;PLE%0Kp2t0<FE(ݖZ$*@T0(@0T@5@( AUI XJO 2D4̈́Th!PJ0Fa, (ZH@&HH5!B:x5ؼ'`zp3@xjj'x1;BZD Ai0i8H!'rზCnr'g[^=9'H(`U0xA:p9XZ0!P4XtP'XA3(؃DV\ >(-,@0P+x#p&(ՃA<+ "#z=?&@JKLH-(i!(l).ȃB1;؃?iXa_H0&F, (C`UD`R@FP pi`(X+:Xcb'r&E>e!}2WpB&6O35P,-H3L*N70uH:'XHЂ>ŻƱ @\z`dA5@1.Pj6(T UpVDn~I114 I1X&Uhh : uЅ86C8[`XP !(#șA4o2p9X?;8D1>8P(c0#@pS"X VpW_4pH,̒s8|g*:SS=6zJۚՍ!σ, &@j3(05X0uDCS8%H1_ :8.=bh^?SƄFIeEݺ]аG;uرC6xIJɑ8&ʗ1&&$/pB5艎'v9"O:>|'!0-ZD cBԙg0LB&Ed0!K!M +ң oDƒ &\1Ŏ1œ-_vlÍ!{⤓9#Y`΁#P5`ĘB(C|c 6FPPr٭;nF&KB%M8VpѤ͠Dh7:T ՠCz:|AZQ١{0y`jБG!`a`cF YO1 -"c!1!6(2=E&BGZM}GxGnqH#s 8wl4Qt U %Yk &Zk~X a}Efjpg_uyk hJCsȇ FF! $p2IU\pGp`CD!"1FBTd1 =LagO3r -Cr|:dwqqA"؂&} q(XԱH#^D$To$򇌩f8G8a K!I#}q82rq!sq܁Ǚaوh2*ty-eg>f&ZkMvn!H!)SO:@ );`C_I'r`BmL"%l谂pBcpEPqGf0Q(0DHK1EsPet!`21`BbOaJ3сaPD" WBFy3֥P 7Tс r" #n$|Dv@oqGwpl-/yh43(M]Zf&Ek]V5 ^ڶ3\ hD$4 PȄ" FHbX030F x`0F#"B`UlDv0%-5CVhc0`1YS ! @`Zh#0AkbE nX &vPh4ԸꔧjCmQg= )?XHC F5 3@xP$`@@40lxq#r  j#G,إ YC(7\ @ Xa$L t,I4 ? P( X@C9@)؃>@."Ё !\?FF!}(0 z؂0! ) mPC wXc PA6;tX*3~@$`+Rl[ҺdZj۹79r38! }X6 @d6܁u0эI s`z0F!"`b0^ш;"TC aXB L$d CA jp- !$Y0D1 L!T^xƇD @^`FB8~Q fB;]XQ ;pF+Ah zb!07 "gBC9!drf @d0!=;<2fsss:(Nqӛt`W@F`HD İ, AA5 l@Gtbw VЄaM \莞_!BL\&tC8BG"BDWxVQ"Af A͈ OhA (YiDg A5( X@@5$C "BxA ( L 78fqlΒ`!dA A,Ê4(QR"`el5MMVM_ً_I?rϕKAB!kz[(X _ #3`9C9̂TPm:A )TAA(D)C,< 8A#$C1h;CI 4'@L!AADL lvQ" 3h B-, 0إ "#"SJ`&(tiys2Qxl@Dn Ii䁧XA"60dBx2"Lcp"|&|8*x <"@Ё'x"8A.BAX T Ls}0AtP(?JO @ 2``*'AU%AL$B`K/H*hG/yi#^kL3cH) 4 Am &/h6zڣH\AAfv @%B>/&FgR#  p&A$Bޡ@XP؁Ʉ@c @ 6BXUqh&20C0& i] 84A&P %" g;L#M-n'~㿏2tm= \Ad߰AP|B4C7BLA|JIJHd D[d1o<tX ('8 X'Z4*A 4BPA<2C%؀ @ܱ$897)+,$C8:q^U": 4C Bt0rℨ̗\2E<СSGB3iքISa̛6w͜BlxiRK6ujԘwbɖk֎(SBX8jPD J1%9/c CuϞ%挖%NJ“'5fΨq#Q1hӣDqܘ)Kr#whA,Zdp=cR/! sRJ6p2iÅdPrpEFɃ )lHa*P9؃<#:bCf1 'XLr(B # 3 .+*L,(TD^B8VD.`&.t`4M ;ADW+\r߽R^p[ x# 2L;9FC<H(B T ,HB~9 n(? Y>85䣐7cC\@C (|Ԇ$eHiŚa0A`;`A0`#,$ OZ 0:E d(B 2@OBrD":eFZA*6azR5 @Zy}oU7vCv꧞>($^sI=9ÉF<- b7q-A'`d?C#Ȇ.}@!Ґ%xD!0` F3"8@## }(t0FU07KAMH,@$bDp;b8ն"3/)dx ! +TA !e|a\E2@,aMސ Q4}Jg0# Ep4! "8X! !?!!:#0;p xЄ#*8 D($5.Mv㪤8Mn]j׃U>E&T#2q@p9vQz 0g`p&a 2Aq~` *Dh&f M4q`h /x>y3TH047xa l@DʄtЂ 1 D*JjV@)a0 '=XbrH t/A @MQE+9 94\!K#ъ!ЂE_KT՛6<) 8 =Ahh" O^T- dvwYҩtpM4Ѕ!4Avp) rERc@B C(L*A  B$!k"S`l]؁ h56/La _ϘI!T z";"֐=` `;*dԚ`c0҃^" !2 xovn^*N*v~%}"` lj 2!fz@ pAdj `d8Ԡ d FP@ %zĀ^A@ H¡¡ f@$ AL] FN  ` AРX"؀ @~2Ď0*'1LE` 0"]JM8Ɍ\i&Dm"xǑ_1vP)M@@ f Z \ 0LA !@ ! \ @!` @ pZ,"A € r@D @ ` an`aIͭ g   P` !c!6 `n bN*'"l&,qx'/,b/kPv0/)|q' jh8 R@ @Z@Ρ@ Luc` ؀a: @  &*a b@>  Dk;B0`l+ f` Z t@ ހj)&`z;~"M lЀ pp w%v_s1LMJ^Q1 ~01t؅ !F`z jb a x6%F6Ԑ֠ Zb f@ x@^`V@ ` gIa 0T ` @  ശ(! 1@0/֬ @ p @1AC#1ΩdAqQ/iU0S'Wxb @ @!` `d h` \jN t  2H`M ` l`B& z 4"HLf­ A AVU$@ z&,a :TG` `be *j #+\k/ 1W'0֑VS;J"xh T @`I a! >A @ #| !F*fA|f!i}h`:@ Ȁ-cAh dA 2b": &" h@A\` @N @ n/v!c̠` JzSLT!igUwjiQh{7}/=!0v `  8!v A\A8V 0jDA6 f$z;1B0H aF~@A Q4!0aJƠd !B` @aLV(P͆0DkuN}vC1 G4s(c!2A ! hz@V# ؀x"*q'a` f@>kF N`jKn#{#2L p` !&!$$  @ATaf΀zE "De:9N A|pA$ae{@ @ KBASB wg9%r:0?t3WwP&B R| A@a(1@@`  :. !, Ah-D^b``~t!,Fߠ Sk` ƀl@ P^ = xE`F C` a`@aA *w\ 6t4 @ a;10k * ``8=N%TͥVSCejmh_9|jiO l@g $A ڡA) @D`` o! @R*W7w&D @  H r2   \ ~f m | `<@ RFF( 2 8@ v` &ANXe5T6 0 X `FA   ؾw|whqi )Un01a*P5'a>K21 ʀ |`v ` `M!B(댢* JA(Aʠ T @ @V`7!gv ΀:HaA N pڡE <` a (ɧ`(^ A@2!f# ` @ ` p(Dݏ=.[!E+b@! N a!!>Mfe%z@! `޵'|@ȼ $%q dJʳ2l a0@U R\a'  za ` p B <: !  X ` T-Р @* n J A`X  @@kbb! 14!A t@ bC f @?A$aa ^ `{h8pIP;z*D(Q"5?(;vրeL#Zb)₃F~K!#FM29HH A ΏT6AcF:w(|#R#%3gM6qIwC3`p-g@,G <朕bȮyZsh\CMҧKN]Z6tٲs =Ԯk{]8gQ ^3@It1Qʕ0j!$),c å8aVXlĉ$k # -U` PQ 3h䐅x D3O!flA%Y b 74px6j.a@0Ŀ 4 a )TYC =bhBf$OM4rKf@;ayD( XR=xFwЄ9vI mPP'"R#PRi r75jmCT63e: F@Sa`+'( S4}L3b 6# = yD+a m0J,֐+pX2A#P ; -  L! 4,1' &@+EV,aq !"1|A~fAoCސ>AqJ0 `PAnІ@f|D,BdL4TRhF!ŶNʔ˷Mmon:Re mraPE$B C a@GXa+UXBh@{G-`4ai, _`q| "6 s(%*=ā kXC0ށI, +ȁ'ޡ 7 [0ؑ <(W} ! iAb"zҖ7CfP > Ac 9 0 P h Ys{vAo{p_Ia 0s60s]@ 8pKZBj@jP Fn@]#勯6eip À UV0 Nap(%o!0 `ksP6P3 %6|8l*XiIkK@'DQ $p#` 9)Gf; K]PWT 0 cIZwq@ d`_pBLSDp7P İ>m BN`,jaXbht0;@pLPH aNY1TU p i@ ,֧ 2)PP C`l]9><^iɰkiuQkQ5*[`0K`9P!  PXNj y`X`x ` o0p ^ePZ Pxd0FȣF0qp`/[ /P pp<&t`dvg~Ezqdk/p Z໋aB ` @?1`` :`Vt`Jx0cO)2` Z j0|ZYԕpC5;ps*j($ hh~0P{`Ij @NwCqq@[ԛ:Ҥn.0 f0/b 4lZ$[%_yn"p(Π ^0p{p ` ]:B2x- `5k}tu0; eP P6k L  =ykNr @)@vPaPr MPEp k@nBfOQ jiMpY؂Q8<8E&]=à @}@~i ̠:@w/Z洝]@LP*0DPp_P3ci:Uab6%0G T`$ P a:g`9íI 0[@ \qw&)5K DhyvDe'h~sNp p _p'@ Z1BqjlxwHIH@g={1e7z`gt. 0} S@%NW5vp`EEj 5R0 b.˩ `q` [ @,0@37Fh[IPp i:u ج\WfnI7U㦖7NI`"V}PɕRZu ` p0 -URXJ3n q9+ C?Q|qXJc _h2}* π$iqhFn@ } G l]~53EpO jnЄ0n-9nEaG@;u1x0aA "|pa… Rd8D /|Q>~i E@t8&B5 #(PQS+D{<3?) $G @ /m!#ȍJD9N\%&%6PSP;t(^K+aj,P :ĆG>EbLK;sƙӧ/cظySM1P͉2<{XGhA7mYzbȪh\OF!c:Y\FeB8NJПۤ:vݵ~Q#8cSXp'80Bc6Ѣ*8 Rj4 BZ!/H#<)D=C:Ύ<`# ;0٣/1#Ԧ2D+8-PI#t;HKҋ،>٣2ǫ:;ʮ:p+!RA 1؈ 3L/^cS2!< efi]aEOhY.VGJM;YRYÈ(䏺& /XX> c?$1@c'Ŕ2_$D)Nk^fE;~:h&hg^;hQ)WcS7`-ݺxC 3b0pWH<v`;j0hfe;$ff\D `ÐGrF ni n?X@21 +ȣA/bF8i].Z8=:Y8 ,pm;Ƭ:+xŚ@)&Cƣ{3Ӵ#圓n9Wκ=דC4,V3);UP!B@(c[Zؠ= D5t!A E;ܑ =l r#7A T` B$ByHăBDb8N<.!1;A z #y0&X mlz6Zpphah=A o <("3A, $ Sx!Qo93!ٷ8|૎"pfD2U#Ixn$`8R{@{+/1 OHaTBP L\0F" @1@!IrHuUp#7ԎDr|CuUmԱA*[  2 x`La&8 (!NRǔDPwt P)\! H!ч?!Z R( zE@<$!( pR( AHAA .`k&&u)XӃ5.Y0,8>%8e؄:PJ,UB7i|7'Q!QA$K⯴dŲ lp45/̸5(0% )`JJ@A0<67BG-2CHd 9@,8 <ZN@PX-=/@:xP #땳Z# ,[,$(*Pw4P:e YhKW(;X88w81X$@BPE0<`.0 ;)P96`Xh(X:CКC`b3ȃG 40:(+y KU$E*J2V_|n$HR*q@rEP/X08&@%B@DhYH`7"P+PG2؂)X#p2 "eG8h;؄dhTDp5ݺV}GGЃ I ^R8 9P3i1n H?@IXPc/`xX1( o"078NpVh/%8H;?! T,+>RP+/B <(,R/Mm=Fܻd\^Tx*=ѹę߳'p)H%0L(B >@1@"x(h>/HE(>@RPnTx5(;`RAHDYM%z;[Z-&0wHX;iP8P(PZ)"d0Zx*pG)؁(08` m>6 h(:9j3%D;` ?#Ђ=P!m>MH(H?P*4h؂KxCȃV:+At`a@5X9MBxq?"pX4a6<0F@l&4( hPViFm:SriJȃFa%X+Ѓp؆bzpf>L0ti(;h[##0,H+h!7ȃONBP"4hU@WBEH:Ђ!Pnȅ#@.0Bp5;D-xX$ TCЁ!X=@68ȂwzO%)n(„9(#s:xp"SQ[: 1@@npQYЃ! D؄>3h<(AptP$@17?[\b mšBKW)30d9 G`HЂ*Oxb Dh<k@9UȄ=/RaH=x0XsP\*H>8(l$߼.Hlʨ7 M(@jӁ-P;8dx8@@ 3kȄ!p?8Q2g/xHh=p5@%xnPGi4@K"D;0@5xeՃ%=I]t:.xK?x a |Xtx&80H@x=cE@!KpEտ[$'V E\'$4 F1WhpsH1(O- :i:h^ho8 Q8KH<:!P;0<`O3x\;Ȃ#hXXQ`S`Z,h5c\05_`h܃6:l? 3, T(@;?.@!]9h(<*(OȂQrHh3&Pg)K+`4cqKr =%K7KP=됪|"[b2;uicƋ(R|934j0bdP 5I̡$E Y8ʍGiˈ̱t)Q=~⃧-Cj ӪV#1QgO9^XݵXbeM>䁃E]dHƒa" 7b&K5vaJ2h\1gV LP3MG9M2yyN@s)t%Dk8EF~ӓIk<;@"fC:ҧS^=tر[ߞ:ڡzKg=tï~߷o_xݑ~RH!zȡFgla )p GGTLAXRXaF8 p X1rAu\A 9l2 Dq#AXd2@C d\QEfԱOuetr 1iphP&| /Ac@%"#oP ^0>1!GŅ!a|(Xp\ M!#qʰCGKbY}!W|߲zJ|=-z-~+ z `TwixG4BtP0H( C>!cH<:|!`( v(CcBA&1wC`ALh@F/Ȁ6bG Q,"vXր@a\2P-x=x@ rf:]uldc0<њ5lYBҡٱ+D CQc#'A?2Q ZH"C14GC1V, iv!M0 !=`K:wC + ! p!ĐeB 'h60d! hC"q5 `$BVb -5 9!{ \$MB |lcq Bޥ g8+֐29:?:]S:vң򸬙1[5GᴙݒMtCd)@(bh4#4#1(B,xq 4>tP2$"ƘVe1A+pC,+Տ4PD8B U 2؁1:t["aX10!FXL E!0H:p LQPlxs_ ^p%*-XyC:Y4mj(ԛR+Dݩzc ;wljRZjiqy@&'A8ReP "p h,>gbC ! HA )P=܁pX?C?ѝC8h{CGP8\ _$B* 8:ax`WH|EE~ѕ}h_&BK8.!4!p}AKK_mZ~)SW O  Q5xERAuP,4Ht MXB!0! ybHXdP='ҎZxh@:Af0ɡr6|쒷"! F|Av0vC4F 8vuwqPˇգޣ~>^"+K[H!+-s8}HppD%/,A V(T p;'sݷ#- n,=$BD!9"pDP9AmuLKI Q| ȁ\فʝTiTIUNݍy\tqZ둚m)"q܍X iA qHߗ1yJ`9ٗB )uZaɍaʑ]!  euLaa~8,IK iN#vf!'v'N}^}&ryڥAǷƭ驢."/, `塥!IOi6# W~m^#PIZU32#90% #cمޣ 7 &2`54z-`669# ]y39"U}82dF^4jJb~a$J%V"$KN$֤&Ҥf5JMFBbdʙԱ};a>m?6QRBʎB 46%W";:b+^=2=~5cFYR%@n$`WV"e-W^XbL姉#7C [rQ?%]Ajf0fUG?:EVU{A&iV#Ou%lS~p8W: bF"`:v&'Q$f~i}~)#*r $B(膶hΤIv*Qb⨫m^`LhKzj%v(nꧮuꩪ$hd֤h7d6>+FNP#='F&}fz&.fa%qj2)&jYrm*Z&FzFz>vRT1⫝̸-)e)0VRiܟrXZ#mfhbds%f*>\ *{,dj%⪯,lV*$l(igǢT#fFj^2vg%x+zzfu#Rڮ-۶۾eV.&.v:m܆+ɦVlњSmsllJBlJbinwknn&Z#ڔF)znF#leF>g‚fFb^6nӾm~׆n~*ljzZlb(JC'nkwv^fmtvlN-U}nv%Jnl¬hlB0Q.ɭa6..iBd:#bz/zoY/o~lj6oZOm& j배6N=,^nfU*nư"V-lª/"0'p1,,R:pުqj*G20äs V%_2&gr'ZK/j02n:䒰gz$lj /2 zcf"1~/{+)F.*#2+?q ,b2yⲘ. rW!Ǭ1::lN16&Oqb01.6(23 j*'q5 7q s's ?-Sh.7r/)jH4II-.~b޶-^J1ISJ4r?/e@wkt)#fB.EK)4Wx^-v)f7s+80˱.gp1k:nisn4C4D5ku& mu8y'zRZoBb~*#H+?VK,5/&N;oa_18Z(b3k;*!o>rk;r1vsƶ,?W_O@u 1cez/u&v?uC_T{-FoFhw.+w;Nhnqw2@לo"3Q+sZ;B;j.uuKuKtvvow57cuxx69$>/v:Gm2;C;3m1aɖ$eGwu;psychopy-1.82.02.dfsg/docs/source/images/demo_elementArray.png000066400000000000000000010532201257562125200243350ustar00rootroot00000000000000PNG  IHDRN@YiCCPICC ProfilexXgTM 9!ArNHI%IRP%JD @T@Q$Hm|~ٳol5ܺS]OU{X<‚aBB" uȎNd :@ x+2L m9%_ZoH/ Kd;+\'B.,'?l{~Z">=I~ vr2q ,]w@(thkx{xa<~//D{ FF{kC oO{~?7cD'="m`ov?( :dw ;=v$"?2qq8YVZFzoM;_,vFcDrcsOJ'|V0V0@-LNx"aAg@(\A#h@x  ؂ QB+ @b, i@d 9A EC P2B%% ݁~hz@ 2 `s‚ kæ-|88> 5g4^EńAIQ( 3:D*P6Tj5ZDDch2Z6Bۡclt *݃GϠп0Fcqac0+&L/f 2aJX#6ƞvbGUNJé,p(\w ׁ}mxn,' v~EAC!@JaAMq"b DP' "B=B$y*D+b@|D!$ёDI$R44IzAZԢt!AЖd4Ll*/,uVOꗴttK:$6eYQY/R٧rrrZˋ_TW0WHWVQTRPW\PWrW*SPfPTV~QQ9rO姪jj75 Z}B|UUUP>Ap׸1ɣYNO[֜v5:::M:뺪Gu;Pzzztv%o x  ;0FFg&9kLLLmLKLߙE&y b,-,^[ Y[޵ZYZZ}NqYձͱ}i'lmmOmb_c0(xqЉ)l|y\\\:{ߕ5-w{GǪg璗9Z >>>s꾹~~y~ %׃,voCC҅:{h4L,,-l:\5 |)4J$y05IdSgb4bJc6K;tDHƑ8xĄG/y>w<'&'I'&HvHnKL92jZF6^~}2p\FqƯĹ,¬lS2N==s Lg5^͍ͥ˝3k'g(p+//,?G8}nȬLvɳReeeϏ]кP_YUy1%KʘʏUU}/\aue:z՞Zڜ:.n˵'K_t#4D7|~yic-[n57e6CGZ[[ZGnSkk+yϽs )qa]~]n/8>xc3k}}W3<28<0XqӰpH'mF4Ǻ>5~:lv''\&''_>3+̫4 px+ƴw6^z~~~CGʏss5 |:[i_h}zַ%ǥ#.gTѽjf-dmk=suO}s[qE;";mL `J'@'큤H# :!S\rFk`8: yOMыiś 9G3'wg_I@[PHWXUDATXKV-.9/5%=$!(W)tPHEAK u߄zFfVvNn^~AaQqIYYOZZ&[%[$ۦإ'9$:ww=z0#3+Oo-GAS!kapH(hViIX>:Ns-ė̛BNHcIg8IADgde;5z&ՙɳr F G=.(~TSYv|녦[.W<|Z+;W 5L|uT~ӯ1VMZ[Seͺw΂U=o5=j;p}qpHǓMc+{&yRS 3L̛l/848>yysjZ[n _)-?&.)e'm(&+!-O),+(=QnWU-T;/HNCSSTMJM`phظǤEiG,ì}ml=:8;9Y9w8*&.!)%-#+'/ ($,Ca VQq91߉>2;zL D$dTf'3 2u4UO)ɑ8#zV8W8O(_@P@1o <rڋt*X*.K]QVWcZk]puz 177f*}z󝖞֑;Smw[oN.n<="%+ ( =7>DkTgL3/ty63FgӼǁO-p~E}R劕٫k1A?6M4ev~(e4Ǎ8I"P&R}}LpI-}ӊ4q*z["MMbM7$륮I_(W*N!W1S)Y9A%BWy<>6.>ـlH624a5e21'YV[֛6۶v[?לXpyKI/^{~X\ ?%l-V1>| 6HB\v|YB$LOIҘZV~djFlfPlSڧrpeȥ̣ AιEK%K?M0^>rq@@`+#WGjFj=6x}FǍݞjz<2Η~_m_X\xѳѻpoJo_>=8<;2GϺߛhQ=UU7GFN83U~/#879߳sb3/SV ku'&~ BB{"Wݮ 3`?V|s7~` 0"զ0Ri#`A08ґ 8xV!<IAHxJ.Bm3hea{8?E5Tm G&Ӊ%a` #& (!/F')FC9AeJEJD#GsV. 4C(/3LLWXrYY_`a y͛gƏH g҈{HKlH>*ѓݔ{%@ABX9_%W5Oܾ5{&uV26 5252nκ_"²j†.ÚǁWM=ƣs['wП9/-6$8t L4 NBbkLfMNqɸx|~!APF$cI*TTԥ44"F]2cadRaef!Բp\j$3xx_ [:"ڢ1qIIh˲oT8xB鐲>guw ($%7bDJQ)5L I!M+2'd]4hQ[J۪qVvNnޜP8i~eU-}s'.sv sIrnywr%5:t-&phX#N#JJOLMW99閵vl䙑|s<%ʲ.].uU^6fZfgz#ǭٖ;mw߯uAGhjgXIX_t~yfrGyOڋn_./?.q+{gH_9ٽ "?] abww)6^猥 3<=_Ezx pHYs   IDATxidQy'[[652Uuwe!zC:VdOfނ?3C` !0Cy)!0C` !pC`C` !0xT6?-!0C` !i~w` !0C`<*C` !04;0C` !0Mzr{ !0C`lC` !0G==C` !06 !0C` GE`C` !0wC` !0"iQOny!0C` MC` !0CQ4'C` !0݁!0C` !lԓ[C` !0C`C` !0xT6?-!0C` !i~w` !0C`<*C` !04;0C` !0Mzr{ !0C`lC` !0G==C` !06 !0C` GE`C` !0wC` !0"iQOny!0C` MC` !0CQ4'C` !0݁!0C` !lԓ[C` !0C`C` !0xT6?-!0C` !i~w` !0C`<*C` !04;0C` !0Mzr{ !0C`lC` !0G==C` !06 !0C` GE`C` !0wC` !0"iQOny!0C` MC` !0CQ4'C` !0݁!0C` !lԓ[C` !0C`C` !0xT6?-!0C` !i~w` !0C`<*C` !04;0C` !0Mzr{ !0C`lC` !0G==C` !06 !0C` GE`C` !0wC` !0"iQOny!0C` MC` !0CQ4'C` !0݁!0C` !lԓ[C` !0C`C` !0xT6?-!0C` !i~w` !0C`<*C` !04;0C` !0Mzr{ !0C`lC` !0G==C` !06 !0C` GE`C` !0wC` !0"iQOny!0C` MC` !0CQ4'C` !0݁!0C` !lԓ[C` !0C`C` !0xT6?-!0C` !i~w` !0C`<*C` !04;0C` !0Mzr{ !0C`lC` !0G==C` !06 !0C` GE`C` !0wC` !0"iQOny!0C` MC` !0CQ4'C` !0݁!0C` !lԓ[C` !0C`C` !0xT6?-!0C` !i~w` !0C`<*C` !04;0C` !0Mzr{ !0C`lC` !0G==C` !06 !0C` GE`C` !0wC` !0"iQOny!0C` MC` !0CQ4'C` !0݁!0C` !&C` ؏?8W֑C !!Eq/hKk<;cX1gU6;8m[sn᯻8V~ va s 7G`pZrӇ)$XXZEApy G|0;[cojC`||6|9>}4Ӊ!pvߚqu`Ƽu~JΡ\SGiZ;MHGrߥϚ9ÐE[-d @`G"]4S#kIHxQNfMG&y*'Wk :>Mj)N-+ȎU5:s}ه1'1^]SD%_͏'I1C`|Vl/.6si3I:*9j]T;NRhkLҹqvi5++[Ld@wWcϏ3'7h3kJ}LΩyO~!xMg DŽSgɟɟn+| cH9+k1!0>6&0HN9F5o&9[j$'jt<\wSU<[iZ'N^LD!;«Qv~8uQy{" pNJ2O}Q֑O\ v}M󈄜f}ZsO[]| !vl;fFtɸ~j0ǜG9GlCPqgՖǣpLN$ǜ\%ǵml ? u-'+@@>Bf~OO$H!\ Ŕ@z2$<)Ó^ TU|>5usRAdYX@nc3?3jNW[scKhbP>'IeC`l!ƒ!fo0еZF!{@-xB0u<׊)?)bB#Pc8% z[u^=f:NPx"Ѯ-+:zG[g15 čɛfeftP>sㄜsV>gۍ?i t ],FkɘPU E(o IN&t ނ&pg !:V栫 |DoTN8!oѯBrkMZgIɁpˇݖ31l8<Tzd(Xa6aZ<#UX ى]_*dbxSk&st>7!ʩHBnuG34gO&GEgآ@3sLOϖ ֒!_OV[)|~40>ȑ_'!i:)ogǾH[~yֿRs 凷z$#%g {y ɤXtb!4c Pk֢׫N󣀴N-$?1oV^:+&C!0jf56<5jEyFy# GbUԘ w8L GxC{292@(9B0Bە LhtHjҮXj'ć&y ԂOn UpZIj6ϊh-7n_qASmQNCيJ<[?9O( ;-L:`xzbo$B5W?????|j}gSDrN![=u{rnW.'@2]0 9?lC#ic5/.HQKJזfW!FbԺOSi9Օ]=@1g[ߢYgztLȧǡ %@/sHH!rQڧ$Z//ƪ"`-+"s2干u6 M©+c(O#WO2qMP$,['y%pҁ@|(8ՉXbŅmX⤐@BNӁ¨mTvzƗs9.$$24 ';n[?۴?7(+*x8iF^#dk84y-—əշzW! ]< -D (j?p~vxP6?-GNs%](K F4i6i3`_ o7O齩|vz`! OOQ)x8___ufz5u lʭ@᪄Ss@(}}$va]h °⭓-5"|2<|Ƿ}b!l[ K\8Ԟ+}E#!׺7SLD~3o4VLGMN, jziOHW~W840ɡJS2D_929WV|7[Xg%$&~A7('T'ibdn *o*\hX*# QUZcH0+D|la(h{O< 򜂵 U2?æaj( (蜔ʳ5?g+pO?QN t9Aayˣ(2t yf/[pkTexU>N)윕DPə1'+^Cύ~͡L:Wd~<_ü杲7~7~w~+_-5^7a` i:#D{un8-+YiEU'CHь9GX1C!i闽"osjah0ZAˡйp.m.3$rCM[RMb0?iJLC)g Ð2 4UWySee>B|bO0.4­.m+Y2*P3݊+"z 㱢p+]<$L-GEyLdcPY=I[I$@ܶM2l\򓭁کrOXaE'k /քf=$y]2 &<)d^",=+1kD|j'ϊh9i\'h?v#8eB+6Ma|8tWwy@ 0əP`!go R6?H2鷺]]½MRZ#@N&1py4)[rV '-7Џ~wN[|^!jH#~+ 5N#cUF.@XtI_ĤHbZA-oueέbQ,U_˓ՓNʔj[%_c0*yJ_|Y6e^-1&gZJ~OP̕?: OVzoyMЮpS"9֢SQ\E QAa*&8䧠R'[$pUSLVMפOS^qDD%[cX᡼Y&İP Ec4o7L]2FYP "YQ @GR`hc+7>d˖ &oJ x+^V>1VB%Kģ2@S ɬy,ĉգJ"":1VÇZ#1;h&!͈Z ;!=߲[oR`nf77i3rI8(Gɖgf(2nw'( ݽ5)V%-|m_(䇉΂zQV'9}:r4( :qBԱaN>An9\EtT!&v m# dt_|iw|QtX9Gއ.gG>fhm[ض&l=jt)룿w<6?\Wz˿?{[zƷ{mM LLK uG茰iHGFӮLd{7 mL휹]9ĨaIVKұTuXvH]0DJew2Q^7ʮ-9)zҷ@XcT ̏0${:!@qkԞyC֭5 ?j)?Q㪮Y ujd찅gk39j!$%YÓDX[y;}R8%p&nΫYY_}E!r3)ʀLWVm[R)֪.3^w_nƏӊG2Z+b'Q-e *4?6~\,d4'9H-*Ɩ|P&0 CSĘ[ I89$ k[t8Txѭv" |QJ`AwA(O9ַmJlcGr07.<$ R$DNaODmumO-ʬNc$)k['<3YuC9 Pĭ2h-9z( =VQ! %W>xôP$@P,1 7朓X d?G}G[ck>uXOBιO Ck VUCG•Iɔ ʍ~Ik펆C`;Utk9筍k@^Wjup9j jfLУ eѽ(:}L$ǰzQެآ[hxqk:45Ӭsd(H>>7-k<oj2"C<) ά`@ļC-\QUXC >%$ Ѝ$g{H *N8乊Yk=\hkvU.e+(yM/^$Iz?izi=5x;kU!|9JUbAaN>į_X9:߻dVzƬ?Q^¹]Ʌ ᏼZr\PWSsd΋ʢд^viծX4p\ٽRf+g Ob'Մ!|~L#FuktWIlѤ8`h$?9w?y<A XI[ w"|1>d +?21t4".}9'%S~B4訢cIN!<7_-oJ!il ?E{bNᵄ^V/z`jZT:~(0AKb9I~kQ+? .hjZȴQBC, 5-1iV&~# m2$͠+4}o (Ð F\9g!]j`@w~34Y"S@Ð :J' CsdH2ͮ5 G>|\\]GP&LThn6laT\o])Z {-b8#Pu¿c6LꂺH5uj\h"u-̻V ڻIbR*b5P5;r!(nټ9eLE'$U$+ש%yU`/x|/:8VQuIi #:*fW,ToU纲Az FiDfC4 %y56 O34 MB?PkIƒ-Ė e-'$`K_Ѯ)↹suE4. 3!4oLGI|WWȹ*0FmE JȊRdL$WpVWp[ӧLv%0E,U#L .WHAChEe%w%=$7|))<<:1\ 㽸ncXA;ss`]bW/e @yHif\rŊ[ijKC)Ae3A`7<˰eʜ9SDsN5gbeWPrv/CHOȜ_Á0GS2,k%Vr:]L|1q=dHiQ9a髂 JNy%WH9l"/VB3EҷYg+tGE\q([ZwHDTKLP̭r∝?"b%K>A[Ng(mGA):*b+բA'N!l[7?Wxzkcx(㑙Ckv MK-.In A9L-r?Bc. {W_4BO!^n)[+adB›]=hm 69^i< dHCpn7| )k!`NOs43NnBgCi&2hM&?!-NɊɿ*zģx+pH"nh6#THпo1@dRy^ (r(oZp Fd T=:S8BV@p?D]K#C~u$" }z`br&C;Dys~8Y3$껇S*߱BXn sQ(xu osH#0GA"ܚ#TJ9} H7jv(yD{<3$FDbN0?P9Nx+(mş%w`o29.oj^+nKnq49[u/}oz} F~-/}A6W1AVD,ZԘKȃBk?Z,sĕH$ ]s-MeC oW9`~nӼVJЮ|nB+ ɳeJ4i+X4FO&ZoiS /490muFl6[VrbDI0vr-s]YǪD瓉4v?(DK|wfPC XbU[Ņ)qVu#r0"g/^AUdEGD/RAt&s+ 7hHYQp(1lddCd+B嫥o&"rEfft|:`QZKطG.QlgWι)yI3}5ؑ؊nGlix+߅Sv+TJh++9b։e>K[ԢS(rfNmQoMkOhz|J@d(g@*J зK":x>1$RQcUܚ)j{Ga)|P8P" S?h<6?sRWqZ;S'my$+ɵ[zF1'x-$': ]-=ɖ6̄[iC Ҩ,EbĢPEf>+ytrN2#4?N G9S#!W[IhWcoMOiiw[Ix` =Ix91ڣLhVz)Ema)2HJAH2C^ r@&iLIWjJ vYfC|P`10xBse7]$ɛP/`~[}?iKF\]QH{=Ӽ#%CI2w3]c í".*1QPpaB1GLA9QE<!o|w=D:pp+O'pSo9OAIQFyHz ( [ dKz/gm (+_UdE c n[dhnp$4Kd) ?%C(C5Pݮ_\D9SQͲǿx˗/}5b.(NDJt(O tVGCpH~2E /u%l"9^t&E~lBUo/çĨaHTgKgi LBMv>J>}>x+yDnfp^  JAz%_$@xP6?-Ws2B#^=nSgPz?2e{kny 504~tԐ4S.Ay'M4Ib!rKH^&̏*#[ҧIR*"/sfFeHYJGVHsMn)ьkDvm(EM0'}Z sI>z9ĜB:<4iEdxǴ3P[*C>eC'IԤ-(ot!C&e"(D[vOL<('*o?o~B24C&ؖk&+Q(+Rb7$+'$LN!ܘ#[UKr߼" 2qV /?[!IYE7+}<MoL!:#jW„|<='e<˿=2DħJNh PG[-RR9&%AҦU ˕$7':y &9X$v3*ʭ$OJ+OXj<`آaթUj▀G i&:s4+xX )IYu]{ E}F PJ!lR'_O&>&>yƊȵ^5͕.Q{GC$z0>S~3&ZM&DHG28ʳ ɶ{ݪcDo&x_z9W9]Hlmn\>AĕGGC.ҬJ 1F$K4Y{HQzbxP6?-Wx/G!ъUEAysmxBGvQ-|?_Z:qs!TZ> k:V4<W i{Zl/ȧU^\*-\dR+O8*LIO.գ&Z89p`t$fL(1-!UL Bȍ|5oy`#*Ukw.,PPb乕͝HL?982wo_|(1ጿVi$#!o ٵ{xe$σ<G[a)+4$+9UO{w<0xMHw@ub+7jt\*V\!B>9e I -'\\VUGȄ ܮn8&IzĔ Lbaj 4M.33wv :Ys%S]0QHtT1 AxI$uya:uN]z H Oe~Rň(n!q)' 5"yoُB`:/Y5*FmEܽI(k3L'.[uW2Lf/_~ÉE@茧-* nO~N.$mA?Xl$Gonj҉k UvԼ"Ã(}ձ˃d辔 Z;`5f!VEimCQcNȧlU9(Vn =L͊< aqUTx[2D$F(՝lmVh5iV "n7ߠ3eаRy)D-@+lQ+AL`6}j@<9c=Qy#''nR# [ؼFy4™󂪗7 H<|9JͮLP@)ӴAY%Cnrޜl]4cŏGLbNّο*96Ժ&<_`~U #[Z ʳȣ{uuV[g}"tDϏ{%4bȊLAH"'MxP>/{-Wœ2#V9,%++AxCEY#"0w0tv[K4%sX B+Vs '%=#>J>Ѩ3[ܖN[HΧt"buWY*h<6?s2Vqε(x5(hZ !5 ="<$}[zv J FrJ*b5z4ZVɐCAQgY&UR]Dm導֖Uh 7P~=* M?'+++4+\]GO $P _+ФdY2 7X49g3.j~Ã9H@e"n#P *^?c*U >Y je"JmUv@IAG[21UH8+!H9:5gg *6qdw)D`(("BÕ4)*2CȖ?aPA#z)؍&`-Đ~8AV(Ъ.@ҹUuII<*{Y]n$' vP4rB2( (([+$ xcSH[:511\LVDP*%&j=!@)}qA D\`xCfAӼ qB Ʉ2!b'mV+Ll!jՎA{˜Ȗ +T^'S䁣"9[Ua_j!K9@{dX9W>''"򔳺h Wyڢd/gpuf .tToBp! 8A)*˗-`%P͇K N# sHX*|ŵʡ㑟Ed(Np?¹U-I_r{Gs&vh@([,泓mo-g>Z?aRut9[UNftZ9@r7]b ol+9PPJEɉ$PhH9 -:'!lS[ί:GNpt^z~[`!5m獯ԁ֥H2?xH_ҿ5!m~l<ʘ+u2?i`\p=_)Уd'kVȃL #1 S$ +7CUKފD&ŧtsE"4"L8<}) "+!d~5pN@H*[q̂?o8Sz|)[JCktKrV:(>?C)<Bڹp(48 6oeK-? Qk_+ve)}1#3= j@Ae+:Mat?(`|M,H0EFDl"G Oi]Rrғeo~?(R;Cn~ʆ~eR9W]D/UHǶ*M&\uH`B 8B ? mMYڶpQ[H: QU](AC|vtQ&vS c : >ȭ5('Pg yĠ+xԎX&}Q\b ØӴ]B)_ֈDvjU+dx\e,/!^x䭭 'ꝺ8vLtr Xf =4tn$M& IҫL:bSd9PΑ9R>ڥ!o[%Q<8fX.omi曜gYi dXal=r|j\r֔ ?* !l]r%)"9:;+A'‘$/”p\uy*0'('1YxeCj Oӡ?;1ښtP{w-%s@D@t> 1'B̊NQ$O`RZ*xӼ/0Rb§eno0l =C0QHrFV:vJ>)8I7hq*?+$UК2WI&$IJ#>J t2Cܾ]ĉTӔ :Y(3']p[ jnɪĬ"MD* yHz:]ilO=*Oxh$!>(bB9뫽x|6?~)+򽾽uG[ԼF[uS&C enQ-ov8uqzGpXXQ] +("!=F 湎HA()0(zxN|*2l5`na"5~xK| /VO-de+:H2V9C_d Wh4Z^g0 %gn)G#4Ic10VƝ0cԒ2]!%L?{{Fy$'NuȄZra(6t49s@>"" ^>2xu1*Ҡ,(>?JoK$:biL Xy $eF"")t1;L STEH[G" FLr"2ju (@F{VCƛBܣtt >!ଢRW9Usn,b : 9bYB!Am+&=J=}ryٺϾ/G Bwn?\A!} L Wd|oQ/-V|'(J+$OG R'c%G`KB Ѓ4$ma"*G JCSjjM [V@Qȡc͏ $d^`-F2x[4يzxsr\ȰǏZho4zv% -gYI)<)c$C,VV%` zn5|(m::êڹ 2)[׿qdn%+cY1! 4 KZBod/kkz{w~rN0Lli (=C0L0`)gb*rDf,JPĪOʹʈ ^))&F Q-vS,%#1OQt+M^mxp].8#.5@T<==OFy^IQROr\ amG $)H ] P!ꂓΡrskT^|m5zA M 1:Ñ=VVغ IDATvtjﭐ7: ]EZ%oVlAƇnsI D&74ŏy:Q`^r9Y( @Fz@42:nƨl'XQdqcMV5-k {Ĭ!Fm,p#bBɟ'!TJ񦿧rFF=*p:M9(o%'y~{2Z)rt:p;;G)9791<;ƖepEo˅m1[@E27Ǻ"0()t!hwi ﺵE bQ,@WHtFzlW>nGjL\3>@8&IM)PgܦR##/Zgpqx♳UFXd,XIWj!52eݴ.G>g$ Vnp`eTU,RS9?b>T cUYMu@?jQ8NavryO?z7$ IćPI]l 0{Y\}(y)&Vz;): W|zD1l)-uez$ʈ*&8xys@k2VmXk;t-DSa|,)=ijqKoQM&}Ԣu^Rz\D/vq4LJ{-Yn%~S W5&nGn 7KKF@,sQn2!Y=xz:%!.*Ê[ڃ #>}S,5cQ ނy7Ut>j%b,1g7Rx8m9[\sܻrxd_R`j5/%[JpsbήȰIAyʅ9JFb> I%@ =ʔNgpsi/X !ұ@{D@CutE!XUR{ou 9#@ꭆsnÇ6] {yyCK+AʂbgF)nF[Ƃ!z8yA:PN!bU}k3h?MPdeʨ|9MJ'>ujKK.B%Ӽ؅KBk-;g: *ӣXyq-G>s #7?Dᘠp:VBp\z:Q@+" ACVliZ OJrإy~H欮um=ȟs&#(u|;]R[%uǣA4%_kqC$ B[A.?7efZu/9w9Nx wr.0k솟"5(NB=ǘ{5-3܄HQ:oZUع9GC 7DvBg8{dW S fCLx4ͽېm( U>Ե?P{[##sEjv; 3rLp)|ّDrDCi0q(#K :s$m%tPҍ8dlNO0V]6p`:ÎXM!g;` #deZ\Ot@VCb7GYW>}LzЬb a*M":EOx]=J[sPbA!V+?\G*y֛nч a2z wVB=]";ixYve0UMP(U,:Y *J`p5pGn2v﶐(z1{'eo2#R pR!݈n_B][b|v[.K˭%e;%XTǬ]-ݚ(,<]i'^#ڝ< HEHY`mq&@Rl^A!IըX+< `k61̠# N䒥*Y<6C,byrXF)<oI6;1 C&FDbCɲ;88&9=1}+/L[fe.jhT5;>@82,Y(ЪBePp^j٤ryB6 oznZB p"(R#BWthEBCVЬ@ۘG{ڮ7މuk{x*VTݫ9t"EYp,/?^DI7BP)E_>Si&2 boWP‡׀]RVZd|l; aDT%=bMPY/VpL$NRtU^3 qSlA&t(IURTr ؔoW|87zpMb72HtJ\?n ҽ q{Y]W4hVtҭmӮ`'g͂XI&W Vsha2"D(mj:#()Ӄ8X޽?N 8 Ut!T ? ᶔ`nh,a)T7 ܰ(U-w$İ(Am Io6U3[ɫFbV%MR"0@(ғ}6p=yDTT[-hWo}o?d)а" nIg&bc(XC^sK,@`v^>rY6XncC' ,ĖKE(XΓ@N5"Hl&u|d zi$7[x]SrǪ3Eދ#>8JS!Ů"rH!@sPxj)z$B)|kN(]4wG<`߯~>p+{\l@gq=h7w 7uX鶤%PV: r'R>P:r@[v(ʨ3nc#0!Ÿ"E|" VRBPU J@X9G P:z@ {U{=(Dz%QW특iS#>`*(I睏..V^[.>f,qp#]`|:*m࣮( (D)$XΨ&i7Y?s&ڑN x*oU$b:-LLCcUKaB65ij@BTd7b0j5JW0!UDyaCEBQ| !gb@#4D.5j>"@!lIa#2mAS"$h.Q^.Q(ZlaT$ reL]4XGx]^ŊRS?#'#LQ,©":RMŰ _bCI|%Ma#IGB^I5 ,>9`N lg _Bo~ *저W& $#R9ytA:p9,_ܭ*ݝ䗻_匤/zv7nblC aF!b[yv3YƁ[]8k2X[|@hSӥ ٣X:G"ݑ]1㐧GQ `q3:M`<%]ΙJLf!j4cՐGd'u,9XwfۑENARV'@,Ȃ&Cw[`wײ,TXG@$ ӤDЌ/p(yI*ylQ %ڪU%o>R|Si imGk2ZBІO4F #nx/5@M蠵(/iGk3E*d!zHa",4V%:ożtEv *(u„Z LEѮph_12ώ.*j;(bU{XV%Y O5*I9e%=i&}wL}Q_ܿ w ]n5̇tوͿB Q{MÓX )1=Q=r%~دEѻVdt2@+ш.gVEC Nפ][EҤc7*TM,|e1i8+h @pS #(E ͆-|$U#7v!@@B}G-=u=;ʟ\ov.@Pr{Cp']TWPBnGn"Z"NAg ƹâF+h5<F΂XC-vG@)i4jFB(%ML77#'gYJ$cy)Q޽>QBy)g55j{lI'{o{utLrwXfo ^!~-&KBܩk{ѣB }Cg.^1op`##3WW7p[,U$V7n9#$ߖ ؊JJ(n AiXU]ypEI®veNJE#wY@0I;:v9jgB^Eä>~8h!yoTM ^ii=.{j|M-D[.T{by*_-V k (FGR0 e!S-z%nuЄ)_ND:h)hPZ8%PX<|6E8D,nr $Ѱ[IPs.| ~)as'RQ֔z:88U귶e~gtr[E7ӅAy (V:w@usDBsQ guq`(uS>Q)AVt(|'AvQ$a~XQ@gEd Džm,6@-^¡Ut`[U|wpqXB6p Kp-@ =5UzBCЮ|ؕGt` UǀT ,Z*;!W*\S>`@_c! +gYrr"DA)˪]^&c 3(=ΡkiwܷZJGR#4iZ׿8tev,aR[ h @DqSZ9* Cқn)tJhfj I~bfDR+R ţ꘩\)‘w: 7<;7.c",;S!X{bKmMD5v @բ|JMKW)o\˚]Cs ^7L냌,xhfs LĤ0`޷ @% nKVh wZlMj[b;@88MGR`m=bD*G̉@UdNH(:.BvE@Ogv%%v',KQi|EVXS͂0Ѯtv(v[A%[?&;IGvm<p7hLGck[t5+eGqTO!AqƁpHҭHyKMij͖R>{9ң&hx ض<^~:p8}TQ/wFW$cwۂ a&傡lMeb2 @`04 /u-XRppV!1̓Ι*\@hp }jזGh O`t_Me.5bC\e7~wz[CBa rC [MRp%H?z^kpP,uI,(qfBG =8VzٱJ<vJ:1(=E gFȈR]LV4Z($#8ӊ (rCFh>CgLfiԸpp j8ƪ[+3U;Bp&hXʖw-]^[<X+(Q)t] O g"\,L@L^Ez[Kd V-(̕ $}硝 IDATρ\aE6Vք! nsyʍLYǮk[o玥cz^EC t}IoSS@xlu#q;tLrTwm*T1[KӔwR:vgq44 tra\N(@$VRb9 G:a!dLq}%'ĤO(A@Cr aT5#&WGPܯ)9KH Y B>HoIwyN "7q Bg%CnFHEpS@UFvnDG:Lh),O)XS4D2<)]n=wTCӰ.I'[MX#;EA@[Fy=*DvU(Ӊ(g  7+ (+?ELLiRβF2Q¨~t|rʎP|p} B`megJ9(ݣx#.onjXTI$n FOPmnH3#(2 7u0$v\[#Gj] O+c!)EYo>YR*R @=kbή "9woTCu[+I-df(wف3>hQ]Z@ޯukBw%8ZlW\, 9ai%dLS]DV!%Ne쮊 E"¿k Z0!*TG<n#&Ynpf&.inebP g1)jQ&r&xtoB[[8cGκjܠYyq|(t=(F?|DYAY]tӼ*3| r>U%,JJ֚!Eq,ꉣ(CƄ,u!5D"bT2EաaDYh89GBh'^+r3qZDM"}m} 8S?V+Qa:uȮ<cSV\˳釢r"Hjq^gf;>&6ckF' NɅ9 ]OW (MP&t@b+yu(Ё3?)?J~]?vEaqrYEbKuҡY]h@ulXAტ5D"$=ܠqkr# Hebh)`2L$OJ1TU\3` ʣpBd*^q,该MڨÄ?RnwOIȁ;n=:&R$#O& a|p<kd& UhbBFL.vnz U]ζȖJ #} Gb>^@G)B!N&31F֤[RBW7션D.8l Cz± =X@ =&S>Ed|(AՓQЊ<gm퇎O )mHh-vK##g:qG prGqs\15+*JSf3}Jz:@B D4jHQkYlIVYOgzm~kݯ]\w`Πb]'.צy]Ɲ$oECp:3 1|[,]&|=_hZD2"jmRHȍEaKYa2V~8>XϯYYIEYR$}+ojR|М5 N` ϓQ2\d}hW+B !jWՉ>#Ak06jGHSPPUVTrKJEzEJ)P!DŽ(E,"Nڥ̓yJ^r(B]W8A98J" gOQͩ*1td ,CA/K Z-rQlY @ʞ:G(SI-jT,(SH%)4P\JdAQ5ghuSa+gҙXG8z돕Ċ-gH[`3ZUvS[MV(8P4 (". 2)g=x|q}Owف~o~[H+K-n7"7ۥS+njp8d>xt܄Hd"y^3p D!Ĭ 'EsvR&SR@# %Ɓ}/)gn|npޢ4FaG:8Y(UŸ3 ²'t٭0X,Waǚ.c;u6ˣ]1I!nX D]dKumcMp,m1cYrZ!ȁ'%YnBǤIsYRiY SǭBBVnȏgA#.g |4DpJ)Xȍd5E`VH[bd]"CT)ONe9vLxRrj .}5Oפ/j,6 Jv#¤UxQ1Rt墰3ս+}5IgQ @pf5?==f hsoh2@(p妔 8'gJúhJ&T|  Bpxyy?[(b{c2&jŖ }2Q1P2 .QE4[JcN|:2+(Je)GȦj|#cf/]u&pUgTbӼyv/`B`'$8KQG| XFl۵lսFųu/OQ9*/; QT]_(ŭ•vmq.KǤ!a"pHXR%4*^Kt[D<#=h/OΏ$ԭڅ]0%Hv[ģ->gGBPj[ G%#tk!SR2@n8B? pxӁlWYW&hpSR6ssIp")MCE"5 f27hX9K(:vW@]ٍ )wwO>믾H6L >ѣ-sXc#EE*1KrVQ C^ӌ95B8kDU3ىBEFyYPF :5˫vRRࠓ@jL0 L8:w >&p'N&1U) WQi*2іC̾OuKZ}.)7l&5J$vpʎ6{)C| ݆)4iy땊⣴>@C0CerG+& [I[BZS9s) }ȥVJ8ATWj Z$[ңu¯'| sA~Lim++Bңne* $~v7:Gg }~q9B:! x7R`%Enѳ+$&tyF -@Uin]=XGB δ*<1fCRjS]wے:z"0  &jN6DX^,Y$UOdv'^, 3@dDE5y÷+'pCwA֦7dϨzUCo#q;2Xk&V+gFkJv!vC bTXշ@(,<) ֈ((ʈ7Iq&U AT|Z/EeO툭=F2>1ܖCvQ&>z,+{^ ^31^<8^j 2MHjk%ZeOA#VE8Wu>hwԂg >] C2*_4' QujJ劳(";;)`L۪ΙȂ®3!h?RJw},pB X!LtԐ W#8[0倢Fzý0o/'7ܤ#GY6M_zv]ޓ9џc+QݖbILdO47yS>Q y0=&v!$YONtL5Sc߹G>n;c74\!V\ow0|b.BI!g^o˷b7T=E`1 wcFEK>VÄpF0 Q&Qbo\@c&vĢ\Z9z‡Fop" *U$Q1Γoe+d3ϭx* M`z=@A b^ĄB(ځ\< ”8ǡ7+TFm {yuvl,­e 4Jgb70m9Dq`!aSzUǰ)ĆiK.>IhλS"ԒJQ"B9@?>ZzD@]k !a쳫:$0&o\VQfpt );q|RfUQNgӿڻ ;Åff-7wɹK=Y:wyK'nnwY,inL@mue6l mv*F̡k o7OFo\@ʥ4P{6762-(UT'Cӕp=@+d $F <n1:8B0GI (ܬu@S #7r3NXB]9tjD:K@57>|?h# 1:) >/m9#Pjm%I#Z!I l/arHpV؄gfXX,^(ی \/QKϠ7SLtkZB)(9X&PH( H%,V4R:c*6-t ,YʡՖ?|i:t:p:-v~_/'\EG7}ӵMx䖧NS݈MA!z]ǣn2K­W asCظNe6Oqv;cZ# %lخ|ena-5G"2UZ]V@F] @M9y|ݦ 6**"`+J} >3O56ʛ5A (D,杸? l{QJ쳇Y g!(5=J3]CG# P3k[{Аg|@u `r A'CNY~[(=R@OZ"ImoZy5 %=PU6)/9徾uBl%F F@!HS >v"dxWe^?^>IJݻD]_ q[|*nRcTxOMƹG+nd]VyƛfΛH<,RfbmCOrR?tq;p='\r.0+c ɕwEvxt=]s]xp S## 01_dIQRr|M(_WUʮp[Nn1bF:6GAGdLu V1vc6:U VM'M`uKA4+М]Z7(.D RojH!W(XIRAq+GPCzC#!tm􄃶XQHFdEʡ]W V)p%a$*(ouΘCCtx|(G:7mq S2c$;YJ /t_ h{W}KBDfk-5ҫ4.V7ƪ|K&{g?X(ril]UU7Ҧ9[=R(_nMvSz:p:08(pͅᑸ'@.D).$ewb˰EMrUg.f5tVh\tFBw5ze|k PMeH#C8+PfcP;)8B^g"/(A͊V{^ IDATDϔpb@X[yvPp @e"#Y+9͈X20 C pԂXƨtɕ39A>_ǬSYh)X`c5q =hqMɪf ~+L *KgQ@<1+n%X4*Pt+/7DdAWB^$d Ynj8Pqֺ:AϪ{^LT ާ/oU{YPEf5ku2WC/̔^6[5hO4z;+ !{O^/V划nCmoc–]Ս֎g"Ҭ,2A1&,aC*DԂC>'_{6_/ *R&]uatvaŜ.E: :l7x'GX+N D|و V\2RQȃo+,Xa)7[k"Jdo]k#`xj6ڒZib'BHvՄN B?^{`r-< d}\[!|*Z;{=|TCG̟y=,}$% AʣΒ m L@QXnB8D])_oOp k ]P#ׄ37kkH(_ږc6:w}wsgtL]lnr𸮵˼҅Yh tj]M,]{g#].*e!- O,th R ́$g!ys3"| +47 f0cb=( i(Z9)G#PƟ2k2z'kimv%"uQ:"?kyzz2Л944XBAP\87͛=b[T՘$l ph^8&< dتk^Envk#:Lyam8У4bZJ_LkR&XD8'Rt^WI'/>iȜ]9VX,DpPI~@V2q@֥p{R Y @=}ÞDy?/q EjRG؊e.U7+lѥ#5( )VFǜE4*zAT,5N~%hl.O[o|~pNNv4^oүbmcZ}knfeK{5Lv)l0L(Dk4Uny)|0Z=*iC'jD.lĄā>XȎnw*-\v[Y*G(MH%(v)Tx!Γ]l47V I-tL="7m \N(? 0 ai4l!n8 d1A6ʿ#K᝔NP;Bux2!B"n(Vtq0k`%(ibu#/8e'<9WרڢHDd) jܩaمQuRvPVudT1[tnE(xV(d ]ҋ3n{0äÇ=?2xX(#sF !50L/7!1CJ'/^iBI೫Qh ֮1Wm%e8zn+(Q*ER8nHCuFTC0Bdn  Xhqz;!!c%>uQF]S^1ш 2z7| 4/ l n ~RF+aQ22bb QFy+<]Do>}|sn0u Eqʒ>Wol!P#\#w(oӧ-QmP|U[ę]ҏ7z}{-H &Ժ$V{G!+4,gοOOO}j dh(^ $2e#%&8. @mUFT֑|~-BՁjczMi r古X2Gr(ԁ3Qg@vŕcu/In)Ws[n#ۨ1gqM#|ߓ&ۥ @71#2#+:[hLo&'k".)G`QR,avbEh G?//Ϛ ?a7+@tFsٱ037UmΛ1ډ[}i<2Q E!@>}2Yv_k)Rmd_ X!v` `YNJA³8sd`W--bNQ"|<ˁxdg= xyG8>CJԜ䉡VeM-0eA']O 7}H0q+uBȭ*a!dtFV#Ç߬M?hY-y)JJ߯pN hG/̾K~ >%2J(tGOvG$YH,rINxZ?F#ٺ*@z #qI?B&P!"ucD"uRQ$v8\= ݣ>s.TZwW] 7𱅩EM$J]r PQ.)1y)p&|gdI+B2ZNz2be0j3Rc DLQ@yꀹ4Kap&);Kh:">@ d:cP0WuӐ) aAK֛GDٻ$M}fv%ULJU;UT `Vi`oQdR4`e~>3)nC[OWPOk;M3rv圹4Ya(qFGPY(і6s"`@Zي(W(I[*Q:>T߭t G5A(qÊ C6EQ@Zkpi cMڿLI>M8vBM{xCȗi95]Ziv/)3Od`;Xxœ$ם1}-  I2Ӵ``k5V aIUÄ*(t5c9o0ax ͛X jA&W BBj`fn7DR#l%s4S;%rxbOS9IKG tаɗ [(4EVIc)\\ vYY})h!rb噷)B1YGIN&* ޿ccwɻFLVݻw?v7ԙ~?g*ԧ(VAÃ| y:) Ax̉ AV!Aƒg|Wdsנ?S=/)۷oZaWd90.ZIΏ+|D!عmE!B! Sy)6:iZ%2+OBȪ5Hx7xN[C0?/{yg~/uMHkBtt}W:+a(g.?EK#[:0C[̀q 8jmOHj2lg>3Fxl:hʾz R0ɛDTZ:'Đi#>xeGM b¦3drHM [eg7TǔO102UƸJSCYPPOe$.4VIR"f1!cxS NH`9}c2yJ?%އ%'\ jg55N) S T(5'$Vyk Ȓp^xu/41r;^\`w}=2j`0Gl#cmv3LIi.1M/{~o)vM_#oT3Т mH+7;r5 i tY#opqWxMerӼpcЪec,@37"&(Ƀ:p";5Ѩ@/MslyH.!'[hGnkUG#! Ud~`sRM~znivBӊX8L_乂wey&dO([j%OPR"VEp7xF _~\eU)HssY#BGS۪$e\X5qY]c$FyjaXbbɝ}eer( ]]1U$ 9[ yɮ y"{%}͝| D* {"0*O6jHDT&Q>:~Q@@sSqBL aXQqeh 6 aOY o#>Znwͼ`g>/@NGJA.[YÃSSJ:wCt&BxdⓆ?mP=MY0.ךpGWQ9HVCHC9AHgj sc2 iEdTh7s+U&uDgc4 XC )iQ$B34FV$hو O&MWDž/ g&xI[yIj(,B)] C^*j̧PPmTjJ"̣I*ˬm?L)TL1"6[8DKxt:h !V X;, +Ť,! (Q{!&<$X5fn%'m IDATg>:9!'ht1$V+㯱ҟ4|NyLˮpҡUŐNV :.GdJBG#aa55EahHN(#C_!rRCnNH( dE@b Fo)JA{ȿQ+Q 4a8HdZa񘩒 @!C$݈+R^`}#0`PP+B[˅nc30D@BtDA#:ݴ%Y9FB: q4LJ{ݼ{ﮗJA3YT%ڹAPgdPÕiSk$ǐ7jlQ~s#gK5@}97L4Eu_ߥa[U$!(̄4F5ov)Lr%PU*bV:ueH0 4 1$+e@>ehKvLafoesK VՕL$LY),qd($J-I2 Is1W0aI\^H !H\uSQ=1 !tXh8kz}hصvP;wQʴcBk[V1 nV"MZ\_Ó T\{$SySٟb41^li#[hN_.Ja} A" T`w?wJa@\,E?(P bj[>^ g5$t7=, $w#%VP c?\.;֚*[l&UpdDhfv{}YyFHD]-A˱zhUGLnAAHZu j:"6i+={8ť R ^Rkn+o8fW.& Ӄ}U%WL͡|bӱl ie[yoiֵ ]EFBbɬꈔPA1U4gEVoG Vuӈz/+[hrE_?J+(chV%*.%UFV&"QL}hK@U2IVp< OJ2GA}4mQC DZj7uƜIF#ԏeP.U)R l>C ֧4N WDjJ$6Y/MG08x@zR0h{!SjŢv2]`K leuл`ٲIĭ4&uAeE)kLνjdg&n60݄R( kj{/FRjĹݾYu2Z'$<sRFD{q jL ÐZV.b0r0>s[Cz͐O*IBThbE]ެsHx$CNX#tJc| gN:+Ċ/ 33 uW*;;З7UAi=DG֯WiN22V@GC,M imQB+M&Ws!e!_y$7 O^L$1j^p":էG U=B $<OAM8Za3tS@G5V:-j<șCtǐ+&51zI TV.#SVU yu;xxdaQ` lj2חVh\`sҷc'CL\-VRGmÖhb [`sń!lK_RZ*E/+T+:@p_m(8JQM,3ZaCxcE4[IJV LV?v>'yQZejlQHlAh ^t(۵%Prߍ-?ȣЗ" "HԜlt0Q9r$TtdŖL֒'5~.ЏFV v{3}A߬SջN*!sP%S3 IzC=]ݥlQcILs X GY 6H4B#^QȐ/#}#h\ O xHЪD^H8Diڵ0@"(33`P >R`AZS`R\ !5k~G(`` Dug/Fh$Hlq+;5W+P08Ü++*bѹX"+%b '\;&o۟8}GTx\gARÏ(IZʓFF4j龙YThfutVNe՟;OwRi}i"q+#̓A1 Qm %'T9hB5`š¼Z[ e]Y!q!AY0 -"\3r)DQaQtUlFP. 0#<*X0k&qghՇ++*qFMwY=yRޝ{MIIDdYbT{L?\B$2R+UF" 6("J\x(UB0[K.'VQ0d!IZ1Vr GcH)t(oB%:N͑`U}+nKZj(9C& C™m02駟?a41vӑg<4 & rYOیk-ju [[ hC _+QI 3/J Q6ZᴵiW>*8Ǘųowm z䍾@Z` ҩ"MJE Fas21v?999FX,+ 9r ykkr$6=vZ&#O zz>%x[Aʚ13Mj\4pHAf>EgJ B890Y30xlkƬM&7|Q>cfxÇFmtksnU"VFyCs_+p(FjGg]N (*J| Q+qy`bKׯ_}]_޾}gBykrbU RPz[y21-nD #`B_"-͕RrEG:zra#0яg!a[=۰?M~8T W S:HۜP.@a[c%A^JgUjİEhgj(`0 \b =U`Ot/1ѽ;ϛ*h]F-j4Vۣ~G[䩵EᜓM8[W Ufl \,|,(HAEЪN'n"!tM7\[eUXڞ~Y:"+F˔]paBh aDCy!! Bv-‹"?mp+iBP(Xک[~P 1DD(H6R p`lh2qK\rn0`8H ~ӮT`Ows/::)w|cDaR<\j= Dju2qX{ Q@{hA8aPB"(U55@om~i7)m"L'$A=0cIƉZ5Ph[0<9s0BӁMDF" E#0b8L!I* UyA"w"z:L&'1- *} a!N8#92T di+Rt>99t" . (ԸCa ):8YG aQpr"_DxQ~(+u5qHH&yMO5X| }ʹ INʈ(Hhw(9rr !Qlq@('LTW f/"/\- #~@wyϧ\EDcD-MG>/yX0EO_OȖg:(]*SImJK&&9.\*lɑ"T`Owr/9 G}ũXc٪o2.5"J$9:jE9j?NE0=,,. WWt,}P`.4B853+9R /M9|Sx?eNOq ^y#N7)Rխ:%:lw|o ?yX? !tob$Q0,OÈN'fj>!QX\hjgP*Ä0v]:#+ a({Љx":"Pv0OAR&Tk (V<7%[0iR#Wu(0F͵ks+ n\/ɃJhXT1bJSV簔y&\92$ʖK"/+?xlD.I)3DJ\Do|z4TM~=ڵFYk'#\zVU xFPh+!5qM` ɔ7N,Dj ;GhҡyjlQ"N=)B+zd9i7UeʖR٩FZ!#`XnEJ #Ηyc=!s5GL\LJ'lQ&D)XU(5;= IDAT8_vRh@V k RBL Pi'/[E ~gc3L]{ r7GC?@*LCtˈBUzi(KԪOVshՐ \YȁVCnzQi,&Mx呸-I8.9?1sT oҟ |[u^@ogUoɭЛ;;.A=RӍH!et\ kQZHmp/V!*8ǝctyq#Go"dSF["IMџzHhK+*K04<%mU5!=R8 @j皨F<!Vv2@g $1ɳʚ-* QmjyYjU@Jm R:֧S'S{lmp5Pjˈ; s:>_AL$@ M%PF~hЄj%cDn EP#$]qy0}kFjH_Ht˴8^}\rڥ qXY09`G1bUsȧ&%ƒ̏003@s/[n%%XcIX :n#I9Z ]Q:.D:&8U)o֘O1I]gWjyAy}$eo.9H*|#W%\ ]o{oݛ8 f5 ma"mLu&F_IΕ7󁦲&ǿ鈈CDMF8Q_;'Yh3Zφe8A-Tx"ґt"z05)X"XGnױD8GQxӊ4LbUVV$tBPnܐ$1j#8r8$ܙ#}]I$ųaQR]ի#^A^|hWa;07Rl:jB:h J*wT@쀐ifARa-7WvWSXy |VF:vI&rphyxP^E: J*iU>9zS@UJpx掉( O8C} œ0G-q+":HP~ZFXj`߾n ؘwK@GMwT=aTP:k!MִO]ģ.R|kiu4][5uy@< g}#¬)=ҽZ]}yأ( @i 4K[Ԓx>eޖGX"Ne% Q d͕tb.Sk(c~tFV񡵅I$œϡG%R(ObKI :sT)y<8DN͘G4ȸexgk zl:=4ȃ-Ѹ'F.G|+R <jV;d!:>7^$L(c-VV"eW1$kʼn+e֏?h9JAOMh|򯘨Zc9LSv* b"[Gْ-~`(ǹ 4y) 9eӼ-RS뒰Bj GV*0ԠPtvuM (yYgwC8UXt9(j!QAPjߧ{ο?T x貦fU^/7' ]o{ojNV>Tsk?F'ht%+s=CgRnmOQP}InZY@`cs!&@| #!X9en7̄t+H*,Mв XiB*Vx`tX?ʙ-kD?L[@yD&)K)4Hq5{Ç61/=I9_âIQ\/ǂ?lG~x0e!#ebq."[¢/eP Xұ6Mvc Nh*_|wc($ #>Hs xLIѼȪw="Iȅ@vu[ȼ*U%>/#CʝCq[L@xw{3g੶cjQ:nBUAhEkO'@*ϟ} œZ7(НĢ#9 r0?Dѥ > 7o@>WU%UI8n({ i>qg h i4:wm#ѸwiFMHoօj0H_lG__x|!Vn#ծNBLDB;:=0uӇyH3-+I BRمs[ \%"$!'Wֳ9+)pDŽCZV1Ux"d 'ah2)ÐgN3K#BƄs!RR%spBCrĖ>[0 maEv1iȕtq@~m eG- Usz0,|CQ%Hs2I#kU1+B.enM"4KL $ Rtx`[+4O.-]!7x[JpϿ5V[(G:\M!V{zLHv0l\e'GCN)VpVn&"`{yVp&Ŗ[(WJ-Cw쪆|#<5 j"BP/:}9ӱV~ڲK1#MvGɺZB5N> dr)W"xdiB.y+hVɔ(A+)bvpb˦](w"_шή B۽~`{at-]_{!ԓZՁ8X#q7Dv!LTGC[?*T>.O?0q赐4W\bbnn(G~DCGڕeUW1Z8 Ix*e)ڑ p qA $-1$\dCLAluVLr<V8!1u yӼnCiWa3u ,00$#>eN^crB9MRPU*.DՐF=X1sPfEzg*"t\\Q٣ $hWW,:_58誛(([c">_9>XJvċqdji^\U?VdN_ s[h"HΎ:>ze!Km,L`Dh̗Y[SYtnUD"s=5MwP=!^ 91Zv.45!{-P$ΚRtU daHw]`\]$tTI&XRmRF/)G :) ՄCS!bmN3pew i?wzwz]A'~3c%$zԥ'\1IAs!!5/-~ADh FI#(rDv|ɑCY"AQztj'%$ 4 ?eDj7+pNwU;>D.1 FPhj6f)_y[Ԇ\:qP-8d^ۣ"/z.7z(j~mZN*ױ%r ) Wu;L[4ڒ&J!" 7ŲfzhynE0'H3͋il6% { VD0)Ã$#ZcFC(_:\`ǂZ({9x_<<<32(R1ۂ 2@#W*Tkl>D R$/Q0vn>&B] aˏx+Rv^\@aIvIl -!Ma]<4#*_e@RXUVBoH8"yÆ#vo[ E ^PLy<ՀTrQ +!bE!HArL{#*(̦];@w:Gtyz_{QtRk~<5fB+=ƙ'Qib HS4!n2@8 IDAT.4x CŪMܪA )yPDY5\#Ùp߄PJ053gs= |=5ᐷ\Vk:B`lu H0c@HGUp@bi|VgTd0Z `++*PgT`V(a&f.MXYlR^rvb Q&;qUM(DRzW)[=7S1u$ܪUdA͹H^I2By$%uv4!0] 9GPX!b+pgN V~Wׯz[dЙ@jRӉaLZmUOL8#!IM:bQ{á(tulIE)j5ºZR~Z)R/cv qEWe(P !+!pHΜs.- JyLBIsUP d, Z.X ~n.ĸ UBSH[xAޖ@J M (F-R1QO0=Q׉R 6`:R>AX1YGN<2,x`լ)If;95$cWa@鄐pGah+`ɐ60Pa8@HdE\t+ڢ~)ҔE&V#ҡo +p@7۲jrT#`|OnTDn 9 (#;j&2G ~A^YL`@ eX ![ <0IrB r7DPlQJOD9D:W&UiUXT#`!„b]LwF_j'Ֆ rh?h3yjx |-GWZk* -4*Qb!&JV/؊ !<5WTK#V}C4Xz䳦*1e:< 7 (k~/]65t SA"Mi0#ëEԸI$")  5[YU8m'[(̐ 5\T Q*#g똼xLZ?) bL| o|rKU zQay+'Lf&$s j"hex:,:99\/ Ym'Ĉ[-tHd`-eVl` T!2 '湕>QşG[m^w{cI]*_?"śABLjKxjr.5Nmk!B3DÊmAmT h7 :Y $(9&Vc!K Ỹ"DheMI @\!m%:v7v)X01OZnK&RU+LDJh B1-$x!JS80ݗV3cbHMBVXᶂKhl.'s *sTͧ&::7 e~b8r]ATgG. 2}2_ɓBsPa vnA"! [ ;e ?M;h#SC[9 H ](#C$vQV"eQ4EHJҊ)Dtr3[]$J(\:l] tD;l*'!y)03 `TR"eVBg̙I0JG~#<սC+ J a (4c+pKϫZBmT?h"MsDLo7s-HBGhQfjΝ `DŰbe-#U&i.lSVU }Iӟ-/҇3'UJRy)f!‹ 0.' "tX4yJGӴrKN"Ju H IY.bq'rV 󌏨eYI>N" tEJHrYwقQ%ERI ⟹̟Gs ܝo` H&o4ҧ֮[&^,;GhvfۀYŢ9+fӮW`Ow|/=Uau뚊>[Pւ0tt}TY3G 3%nDX`ZQn=oWq#.H?m4qc.k$  Zp[;GSZYa_gHTdR&lw\a lNj1 ٍiy$M^4F!w١2߿yd'Qӗ ֪f/1ÏiGfQ++UנfK JXQs5U 5u03gJ`_)>[ჇL bݫɖpejmBUN ?&Z 2 WIvUjL<ʂCe)pbV74bakEIy\U$O~1:A BJ3$W\Jworg[;)ɞtl\dy`I1{ᢂB?zr<% *G=?bHīOxt:1sznG~ Y2%I)-p|5> eσO?s>.M޾hRORk~4{c? VEtMT*tfNLTXF((|L[G4!u&u\Plgrw!eD#| CZd&C[|~9E.*sS04°֊lf5mQ·nZ2Ɍ&Td'lѧ`!1 5ӗ1o ~ʎZۧcC&*GOE#_ƔHIaGG̭QxBi22! aQ[<``Fj8xפ{7+=~#HaJ9RC5Wyq`1t鯔ѯa:Ba)`;;>)NGVBEh+NU`&i Yu-y|6R40m7\"Jܩ7zą!}K?υIZʕQ%c[sUקbȄ&/=3xG؄t"l.T$bCF:ڗ0wwړco7,c X0! S=bt: Qد*eݑ8vϞ#?PF }* 0I:%Q@ ) yqa/əIM jkESҞ@P ׿u)y=r͒獭2ZQ(RD}]ݩHE*wS.o G-WB#c"`I FR>鉟>JA߶w">‚OxW4 9N)}BOs:ΡS~VrG7Y3YwS;8"jHCbZu֢dH3 r^@!V9c-wXq$Y. QP)|jޓM+t&`N嶔ѩc)}:H @xr XeZ5W@C_iRsF(+#P 3h#ìڕ6G>r3W5ZA#qDZ$0V  /E*[+(#Ђ{VQlӛw4YyNUUYvNoU:5,~}qRpC15#C\'LN1C^]GkSEt*$e +M2fy(!^+ K^c@>`.*TgI}RoK_ !VGNډV[ N֪AKy)zVq>YI +`1$ yGz3!/J/<[m#ST/M**BЀf|@0uV\+N&xhK8\3q9 d-w;(mRcV0z,L̠ ;!V\W.X)Cc"LȭV ?ft0t9D<h2$B.GES.m%#Q#&Rg!t$ CP!g~K\-lDwnU爣Zغ 8t"Sq:Mۤ Z|Q2!hWLV%c'gU\Dz Cy$[BV>Q~AiJ0QkB$\nm=mCv\`$ouΠTY?=>kFyAs)>I_t/UR<8%T箟(S/^1~&N49MBo6lk ^b4i2u:Stwy5/3J ksNFy]!m1':(rj0L 5a.*u9%٦f;D`xQ6eh2"/f3 `$2@Hܠ&̍ N̿~grѿ N1pYHlҧ8 Ö֊OAVwQ =! /IC2aЩ%R V tmRNG&0k䑂2[8F[x$9GBlQ7⑦5BWĔ NZ!5Bݒ$'d"H+RxHd0%R3D1DtpH6fl*U@rWUI1v $[dBe%q7M& 5 Jx'VC. m[3̪t0[:=!.NxKWHZ.z~ +j](N H##W@2Ū[ئ>wa:e‹Ͼ`L1KP\xRV^({K8,Jj9aA l1[DZ/ PTL\ NY¤a;:jhP j@oa# hu /wC:S5X Ċ@ KVzx/J,H@fW_}͛O>Ŀ~x(Hn5UT2~.ēs-)#VVG46:R=% a2t"rAւ`;Pˑ+Ssch("w W +M3SO~=0 IDATMH. Kl++\9ld *a ,fӕAs'LP~/(wqlLY̽A>P>Ǚz5?$"I_e|v%JЁ)wϞrM+2&#Ⱦ9-CVԩ>"“fR$hQx$P4pOC%° Trwj/9.+GĩlPj8(W'AErXk*`Jgս7^H@ԇH~6j 5Z^xgiT@~oz·8HYa(U$ MsP e;][6Gk\SS"<Đ:DF …\X^Dfe ǐ;|[(u1T.Q1XQsMECb z~;I|!Y eg9<`E07.R;@xQ@aYEցf-[OwUjbeuPF9MnK .\xx񫟫e #P[SMdA$Jy+.!Lۂy|\.:~K)@ 5pL-/}p`A OP)S*+@ 1#jBUH}{bB%@+wՍ2ʑ{U%~Rx\lv Vp*6An,C9˒R+.|1L0sU*pMwWF!;]-济'A^h4Z$(*18k< CmF4ѯ1Qr 43wD>sQ@,Ok2Gl)s^j B`jONON#eSBSc֑fuxa)kJNBPŗ#(SjK3Y-mk&P*RF.IE\uSBR+WhU)Z9)LX'= ;0< X L(MwTv$ GyO`2ԚRXkZ \ljU)2\LUU؄qJւ,xȁ3Ό(+1`v*0"/Mnx}.-$8/߽ f9etLH@AvN/QfEZ֢E 5oD u8Q *fꙐ;I_7H >_xB%R#>2Mf\H R(<2^9|'}eNx6EW4)N!Ǒos}ȋ^2hBɼi|5?+}D@ct&P03rj6uVlz ~4bŜ_Gt1׫Nf8 Fm7z`+raN h`>fw$^):JMM-33'D4Ucb{:a&0bH\Dqڦ\GwvEiEvhNdH@) ^z xAR9+␫U7Ȕi 1Q滟 e>AC `^AM (C7eS\FVa 9:UG0ʢ8(ϧ.Q`Z_̈=F d$`3(Fښ}3X:v0 + !!H P)Fįsp] d0(@r]3"ٗ#^xt)N1-@1k_Z{|!eV`%;trJ_X 56qQ ۋnA8wyi-)GԐ8aC}@+'Ǘ/͛7y?s 0MjS͹&EW4੝Uۓwzs Z?1^Pvf]G{?z6CQ2Z#1 !Cm8 Ll"r=!S$~ B&-)2V̫o"dN a U԰BT.L|/S2B3 4LH"[G cx$',ʞH qSK'dPXwA͵ZdS'!Z=nQUj4 #YC*BM&a2/ch&9@l[)ƩzD΋R?ZJHl}ֶHxH X)2nT#2 *ȫIC&<*|[[iA^n֪&?s|5ʛ߾}kg6LW֭EW4W zS7{[<6;-eM"2@R b4jA߅hZPӞ6ςuNiZQ^:H(XiIڳiVHkJڊPHf)GHԌZYv x'!s# : (4mkۊo`|LlNZP8V8K _[kbp+ԶZB(HGǀT3(ťSSFyӘ(buik&Eҥ)e*= CjN1URJ.$xD,CHٽ. sH;=W,=IMHA?6{RO3/ҏFKBiYGҭIr!r9bHu[j+k {KlUr`uJ{0"hKf &H5s!*`PM6^υG[hyj~y/B H 9RHb:86/wׯ_嗦yi#>:s@."8Vf"V^T4s@BkujHG~0&ҟut&:tV!u/zI5E CgbƗFQkqDaz?_t Vؕkg]!N&jkuZZGBVJ941 뒝0te8DX xnSS Ċ GN]4^\q! ÐZgC҄EY9 JT干15 _H!e;S),1q)69"1OMW~W&*0^ (IF#Ȓ:x iʅGigT$(xjɭBΩax/q ăxWY1+5>+|ϏL*ׅԅI$V+J0 DVaD$IZFjVPk~FyeQI Ujy:@g*cٮ)(u%LKLN$gLDGtR#/HGxlCEKd0m9*!s+WO,rO<@ @P>k 0Ѓ F`t4wJ`/1EY|lFHOb(ȖBu:Mo޼Q?_7|x QQ+/CVZ%)oH˜^5[{ܑ#ZvUdn`hZ[cndgnqh'`j +a,5V4y#kNth[ꬅ [\EbJZ[QGEP\Rsd=HRkuģ5Ϻ~ccRj &/6";P:s] Nm!0tڭT aAA"DY@)0ʨ QR;i-+#4D<>SQ1<-_eW! :pJ P߄IH X#K`U,rA<9ǩpE&d{`yNmyE2T^>m5fB9\geD"eQ9S!Ȉ&ePW.>.gFRV ڲO||~%勜܋c*A*K`S Ϳ}7I(DI/G+SU' IDATw T1L0sUa*pMsOup픆+zNiU-jRi"hڃ>AA۠R묵"h3C@Z8e&0! (3Exhx}#$ &&~ք;W=2 _ H?駟|<4+%xAs4NKZ Ht#&Fꯡ[5 Gz}G0qbdPtHfK)^ϳÅ0xq:ՊEeHb W1%AGlixBP !,hz JVFӏPY/5V$ ڽDH\D<^"1:)[Ƃ OFHpQ2S18F[.&FBBWz4@Y|xZ\(_@{G q G4qeiR74!Q,N= yR#b($Yt$ZI]gcfG&* *4KX2a!(CjQ1#Zj%J xB+Gӥ P-!rrM>ۢ”{G/ M œZuM ӶS++RRUsa֭B9Hy( aF<tZ୎k@%'Y f8b@bht;i++ @eܾiރ灇ݯ'o F(G']Z $NYHFjc8UCTHقAÐ) zTLE(W)G|S㯟!{Y dI<$-srɒ~#c eǔE%? )w$lϕ}: &Pjr,0˝B7h6% wJ ZtJ 8!,;PzXdS01( `h4ɝVvۊ:V:sj=ӜP s'$⢤Xɴ*ajDzjigS8{vݯSgV_=0> 8X5~/cW~9i j:C'4xLEH bإ\D-Jj ZbF ę/V5?B# bneKbZ_BV7q5z/OfeEw 8[!)ΑA3a*VxNx 5Y F݈Pg +r ZGRcxQ PS0H (/  141'G?b4N/Vf?//kmM$Z6d6wECĎ(XipjVAQ6UXj#5!wQ;f5Z,^ \D(./jsET g ʑd&;&|2(NPԊA1j~"Msgr! 8T15B QS7bl2nj-} yԶUrJ!rqa۬F s9 'JV>(v`a2Xa|)"Lʖ8uj81E2tWVe V4yt@L~kP*Wc+@DR[ޭ'̼R@Q",}Q"<^"H=͊# (&/sAJAlelb S'xԡ$=p$2uD΋;1 5 ]HJ֊ɪ 2wZl@`@n=iФ~V$$\6fJqh"‹$@#hjHxy Q.'0C!&ٵf!7b^ILL~3iY0IqɰTJTrP5bMHN_vӥHZq 0M>exr:N1N"eejůKdY"&w⮵ "ɢZHj) m)*~qEQעXү ּ:)P`-f*L@F"gUVjVOꩦ;}p'Ľtw]GX ˇ1 šdi+*u@l{΅ѳ* b&DNᤓu1(fa:}= ardH1V~׸`I AP,¨1P1W-Pxڕ/U5?؅>~:^g|^-t#m,!IKlbj ʐa@ЩN "<<:5aa1,l `0Dߩ!iB$>}Q y)6N )&>:‘B 0SBq8 7ſ'gt! 4g$lT W@_xGǰ*5#&VDnu +ޝ*P(xQᡑS.*ȏ3wΊ3| |Ap:jNI_Pxc]T[(GW_UこR{ xqVw/}dd7,ZM?~vkZ2i@Y)Ї`I ީ/n:8EkA`k}ZQVA՞F\BmV#|a-BL{I^ 5KqQOzd_W S j1{`bfiG$X,X`WiQKGj"2*_"^BDBպ+ '!^t0=0t`2Q"E4^xVVУbeHM'|"aA+*NsdUPSd:P5@L#!e G>VwGoPFwhmGHV1wP9Lc}t RDSA}(`TIe# i*ϊW0y˭oo8_M$~+Q \U+) дgɃ (\&h@jWLtP~Oxj5*!aH w8⢌tzaa/[L~r1=c+AJaKBG0gEiWQ`SS, /*`>(<;PNB-zg2Д&[Ӕbx U锺ux ֫ORk~4%m^3_7msy! ؈iA*SueDj S DT1zOm OH 5G|F 39df"7~_ό4s8q$_?bjpl@u9% X$L&,یw$S3JcԄ'Z1#h@).̭xjV*NE )dcS1jMZ*xė,ɐ{HDKbD a! NE$5ԃ$BLM.5yLBCeLe00!a+#QYʼn`P[ 1Rچb2ElX(0BX$#q髩ȑjY$2>9ڔ3\n*/Vtp-JܧSDBe:G sP|x̄51akۅɻ5qZi"|~Lc 鎤]lۻ"pU!>? f$&Yas[`Tf|^_kϙ׽yZ5]W"5ԏz$f04Z1גtuôC6jtRӌ5ub(Lc[᳢`ԑo!rD"~s $*3s//j%i%'MZ-Xt2 J4* ːlɑ 2Z*`#[rSsc.RS.< (s˼~ P`gUv.!{BteJH*PiR(8euqq=K"5呯[L⨉8u\+koD0eZɢx0F&QQj$ew+ #xGL(:Vr*{OJ4`z}]#.NR.4*"/hh+~!,kOJ;j̅aK_@ۑpfJ##H ')HY88#)Ëgx /$+~$c9U s¡ GD!np'܇l{W4j,$uPBY;?iÄ!Ơ6"I A`o04}C# kpƶG&TBiTg 4oo_ Տ@bo2^`F,<ʈD^ Ԝ:b(r IDATuW$YQ& ##IE4q Ny V0ZrWCnJ& sSC!9]bK_LTF=jH{3` }j S(Z ,AB ;XeѐeFy_](3l$cޅ Bؤ**# bN6y _:K <#C(&* TG4PM AlL @L҇c441d%ȪtY ˅B#vid"- @) )3IgDQCT ;h:>yʎZp Gl`FL 9)[)2R-([ה.P&w味sNؒNM$,G"`0 >`RKBf$6EXa1%P%QqCCW?O/_"KܝwJ:S*>2}KN$Ȼ;x)\Z K8 -]THx&+ʐQ$V.;`ǀrE@>.dlMI ۊ|9S+S'NǵRdG&bE SJrguM?Xk?8U6{#ouC'8u ]Ċ7OФC0h eM_M]p\cЌ%ლle$w|qQj:@5@'56 @#Ig3.&/ǛOv@FlGhW\FѷKg$<24Bj0 )$3.Lf$49H0}a$RvZH41V|aIa;*IT)H1pX;bfne[fRAru},fޝoTuU!To3 IY$(Z,<T<1`o}BOYY%נ/kv IX$PY7 (7|cQ^T#@C/b逥`7"Ws2ŗ5Jy,D\*q"G_D£ģEx8΋sWJ#L+P="858mgk7d >GJXQ#LvYLv\@c " 4v,LxȨZjj5y9&ZHUl#!B [QVTAfM. nDv&YGg"ȯO BJMGehRU:VRa۸O&@uWkG*Ib Za$!dnth2qpn&SL sH\tt &!X;kjHv3,~1I>񔠊.QNy}M2c5>rL([˂&Q$RByy؋׷ ?Bb.fT0b(*B߇hH*b<ARojZDR`$ &ݟLAR*{ WR.+SHVGQ N '&HT)ZU`Ue&#SP5>kTK濴9|ZݍZrx+ d]&C(LF: C|QpV(vVrM>ҧ OA,E+XjVk S1Vd\d`؂$0}b0QEe ecӼJ_F Qm mޭ64PV*. sirm5ʿ~իW&?⪸6}Zhڝ:1bVTͪb#[ !+ tU 8aŧl>FJmGAef㯏+IDjE 9p9w cb()#LYb<"#<ӼOM .S*^S A!Xy 88$/i=g|iƅϖ2@_Uy 3[M$IAt*AƜ+ "aRi} !C_3??QM.4"FR6`V$(4KR`rkx]dk,&z*@.p8uS#."D!i#' }j(eqZ9 Mұ  }PH>Mђ׶HL6> L^UMx/0Ah)U1v) D"L8@b0 Ft`0|M3dL<*H0 5/\9wU(K7 $s8n^ JZc#_&0PI#1Lj֘Ȱ Kن%P۷yyάu@K9iKN  q0&L3wjKӖ8oD#]"߅hVc%>YM k@#^U7!"ANv|] (k<~W3ygr" xe{q3j6W_ sh #&NgTj 8rT-Vu۸`珃?Oͮ0#Vъ+ ltڥ_㥁#RfBMV<&4  )ѐQ-<5^Kʩ]dL6#_ _MQa2*5Ԛ]cS2zP0b 00E 0`_cԮjZT1(s:>.ۼR.#MH eGYV0lKGFhy!"Ǔ:a%pʮHUck\$x "ARMDOM󾷐S&BJ3oQ&>n&/Lu(ɔSง[+|[`W|3yZֿ KOHCzelAKjpJ5]UL*)raH&zJY(s]s}͋ISOgc}I!5H/oH90 ][V4ƠmзDa>a|e&d4/e(L/tw"U0'xdQ 9ؐ][e ϵPGjf3`#)X)in².#;2]ҬF. *Mɪ*/ PB332/Tv#:B gT<*T0D@0xN-A@3xyG釦U$eǑ zd+++3b2WHw1Rhä/UMS;Gf#M5Ws"  ٱzk?2xB%;zBOxHUR2MJxZ 9ˊ8}YAp p*Q爺03EmhG ^dyHj'5IW7<7GvGd"bSpHKZ8z|?e˜v-s*`8Iguy}{7N[$'i+FID_aKhQm%r 6іQh>5!q?˚c !cPYlO9y` jتerJb4/e*NWiO B~isE:—G 7ƑSP&i,Nfef&E(Y:B;@h|:/Wd>5ĐlUV+!YH49"i~pIHvF@ $w7oϤq֊LHlAv;@N&+=_Lgc#DM)D8EidhY;nD8PUrQ $R#TԵ0 ۊzM$a=~h8B$_.,ηOdMrZT AI\qH:%sp0x=:x iQOy]*+BF[ :D{<s F^+ ӡh05'G֢oi3ژV&7?k5idF A &=_`z\/@@@3"ɑa-3hcW9?{RƀOaP !pQ>feۢiէͯ!e"#f:M22)#Qcej(D`m X!2ЬS*V^ ^G!$)l1 }eFW~￷EsiU1pP1ˑ5""BHt\[5v(i·IȆ__{2³lEnuWgϋ47%M򈠑bܪAc^"L3r 2!sY_q.ANc2 ) <۪'~aKinxlbu mɮ>] v?#<@rMύȏRf-QFdh 0sjaaWCxZi|Vv Q`a+"!kkQs3e>̍fˑ mA˜jp$'̩- ڪ &bcUfPӴE~Q$J!X g!(YAQA(M1̹WN!ŜBڥfSVMo޼1cH6ێ[ ᫹,Jr!y[V[VFa 0mFH"Z%*CV~fKV pdDgxpJYVqQ% hvE-v{sQH=C =vy`^xdi1$]<@r 'p˗GG4e%-x[rz$A#!@g֘e1c;&+,N ]Ë[>x)СA{#a8aaF$?-}*UUL_q`kT&QoKIxDNBBcKgm7LV_hfypc1#Inn !@p_frFX>[<&)ABx?: hKx\K?F9˗8",&$M:pBy@x@cW) r>%[B79/cu*5VL_㩝Sj-33M%D$>Pf6}.xct"Ρ\Hwh$ LΩ\3ɧsb7+{ܛ|cI2&:͠m%PDccr5Պ1j^u_Ik&BARֱJGG=9)T+5Ph_ chFiJ$d+/"AR ɲC1:w4C$#LcRk7fYm]FCas^90*HD hVA$lNVdxlˮYAHHi@CBcчViWu8D '9 'B"&C Y K*rtwwJA tGxVx"10 ZҔh50S95EKG) k刯ʝ8TrԀ3 !,V -0!SL'񔅧ys40H#Gȝ ȝ ~=L8LY!<Gk_K̑`p\^H[# ![EeEbdp;b a1aؽjwDs&y/ nOd -Cؒ0ܺ (La@2gLj`vĎ#… QoWcUT$Ը5ʻYWsAAGjPv}vop(&k&‘U3]uxzk^_y {<bP+Mr8VĖuΣ$U?-X.40`ut`*X8O CV#_O'85A[ILTfb~;)bLWvqo>S1)Ǘ.VIRONZ !PV@b)&_63/ U#[/J(,:ӉTZ ٶLӦҥ}m V n7]-M@טwck)ȱ"[C-_$/fJӣ Oj$[q]Q㟬owYtPC Gi.qQטZ'5P`]N;&ĵQ|q떙4r}\?ů4s iV!,~-#?x i1d*KZ9OVMڻ^T4B"A('A"hMLt8.5R4ͩ?o0h`I 9DB/}Rƌ\GlyU`X'+B5Zx-+$Ĕ;@yID$W'8}&On!wFIP` ٮGB&vaHl|.eeHSc$ 9hב7f(RKٹ唕3u%L0}!q[ҡL|PECI}`?/_@e (awo [j+50UP*ü}P.ؒTy c28vjSգQ,HY%A?+5[DY[Z ,5:14 |+pkd+}+Gta] FY A8>3E!NU\F^~*fj1Jdwv*]-/:Z ׭;}˅wd>,,w}[˵Wg|h ﬧ]3?>~v^߽Z]PuA]OMk1 D-$S*/- k$}Gҟ4c_-ϊZ62}M0'#3תiZP"Bq8N\38M)(ԄJ#⚐ r+>L|i&NNvʋfE*MŬU3aHS0*>lG&P1QcؚG\Hx+BٵrMv1 [)@ b|9YhXhvM._z7 $lN#ʊIN;D#ӡYG9]l䛆 ޣ_..У^Vra՝wH׽JGR,<* SNj]PL*T"5c]|'wG:MT Hܑb9!b}zIOOMZQ6&$6[(]M~4TGdHAcCy$gEXׄ@&UUR[[<FTBPvXcbL#$a*Q [YL"$l(ř2C[?B&qJmu:~jA$Qݟ q0J`V;)eXDc_?P2P_ /rD |>_׿oj620*xbՇθ(|tBdD u"abD*㓕SthϩbZdQP:r#ΚPUȭxQa c =ZI&*A94 41UDH,j}_|K LXL"QbPqkFs nKP)eCF]Ts:ԄTYDfc% A8.#xSXERFkVjKo49-㑚64d$Zz +pV#8L8tS8@fl}Mk !OD._!Cv.XM"gpJ7 Gwۿ9 r]unӹ&;m?~| 3pfi9QɧNYWN+ >}T![Y;jw0*/a*5NO4|3ޓ7~B3t8ʶ4h i!HV60_+B k-MkG F3FM--lG 5B7pHǸIӔU.}:I(+6PeJV},Cj(pHzI`J'ShvW"&v騌,mqteGTIs]p]1e1WOxizudH"IBF̔_~o"gRv]A W:~WFy%[_  Qh9@QCkIeȪ#A._)_pk OXF/.@8ͯ^d5UG-I|.3%WCoP92@.;+J0iœך<^G^k])kyGL+GCĮx )k 9"8 Q]@ZMŽhN Q C 0ϤA?rGQ#9& )sZ0g>D:]p0N\f?|>R> FlIPT+p?gWb[:r [s?qlan?~ #*VVaW^DNi/{Ҥ R BE:@4 U4O7a  %n7Ѫj\] VmQX90rBBR$.C. 6۷.j*,9xȑJ/My9tS/_p&]' "n;d$ . EBMY@GKwVULTG zeȳh~` `_ 0r}SP3?S~ ^G^[ O/s^:vZ(kzQW>Yi3.! tGRh@YttPÄYUƑ-";)7 !skLlQ0qЎơc*T8yWzA95wvvQ pA. PVĊ]+`0 KQ"wr!/$v:Dt\W o˗=Bma < i9ѻ{_^/zmK7M9:!C曐`j*0{0X .BYOx-H#sxJgmSp[BiɅ#ro[c ǖZsmO;$N~&#-|$/Z!S0(/&P8S 9e[(ȋՖnDG+4Lk YwȵX3LZTфi7*[X\?:` ,Dۥ 0w||w6^є踝2 /r N wޙ0{C-G@DĥR4#ӧ:eSU%UT&*0S@֍!hx$08U\S#&x)J!re1kK.Q&x&yIYcZ V%bVqGHe&V1\؂,M1[}-\/`:qy zJH/@&;rmE9o_xVC3B<4|ŧO?T鬢EN]tcTܮC~U4I!+TFt+l1'xS9ݽ1H/7`)F0[!ABhEy(80a 4L jc cESCZM!Ć$Q9v}:L>TNJjWh4ׇ>K`|dTۇ H`xG ɮs#}{6<: *f&KPb`K0x$!p/$ < @M((>#,Z%KVDx [\@m `(P+)4 g=x&839J{TzNrmz7>_Ð۱ZC` um Zsj*whvRÓ?o0!0}#Ć7i Sj54ir\RK &Z֨+Bqp湖zmӌS,f~[ڥ9߄$`'`72áIG x MuC?ʊ$ .wf58,|U:SurC$K]2諹,8LJ-Gi3Q)v A CAv3F [QW()Tm{$D]*:е %U!l1)Z#R@sA#,(GxT(Z1׀sj%ZY2 p8j\} I<ATvY )裐+ ",y$?{*8#3ɭ7jH4VZ!x=.[P`2H`? NQwYmv{)ʿs^z.5 xvW&Vl~gaCCAtʅ;=5ȅ. HSf%UTFS$2CXTyѷڂWV&W[U]< N1^CƯZRX)4B eqL4Q(AxBݒڊB _i_xrl4tB`'^qjj aC`KWS::0|*Yi5TOиy)CxR+AAM !.biY1d^xWNZ~en DA4SD P%դ/x+!0BΑ+(&4 ax!l- n2L|N=FY7i:#} }:ԕ!G@ERB J 8x"E/UFaGå#9̩CVLy")/yk{YNx# Pa}m5iS^m+Ckf?ǔ3zsd+(@ol{!kT9%BA0"#5<[.N{6)-$cS @v]-Vi ʵƍ=p"1С -LA"a\}=X0q zG<:v튓&+^.*n(0j2⺌,TP0rTyB!q>|q4y<̩cWL}7u}B1[YQj ~r4Dk  L3A}X?L-5 ޣ4vLY坾8@Ӊwg_D-*yg+#NzL$x Fy1Qn:5FRA 0ThVd֝k-X=Eg$TṰː $0LEU &FgU(Sܑ #CEB"BصK$EZ:Ʌӈ Mh)C>0IjcEZ?ć\!ss<»IqʊՍP#@v) VaQf:2@Rݱ%EqBz$G)Xfj#eG \{vCKPXAn_}r(`Ƶ)>ƨFj)"whJQ4@G,!t($Q(2PP4ϔG )d¯<>iVX.J2[%է>0yrMly鳯bp<(Gleg9x i19dHKW6>I{#.Am>Pmh V:IfLsӬ0hZelEVi:-ñ˩ă7@$(KZnm/ObK3k04x\̑)Wb+l^x-a+IMQsXdLNG859;H \ٚaM;YBBūqA"* F" ܡwbC# `HA2E1Mrt!3Q` ᔑ8aʑ>4a%8D +rU(￶ND5Vh<P*H:_U,s;t"!!/$?GmUM"˅!l 9] Sd)Up#&NA0+RA"u҄/b}FaLa#X!CCf˗`M)vcH^]x[CLZIق& sw,cG*fM`>';hS-TO"BD$ns+>4Wՠ)[Ngԓ}^yy_G ^LzÀٵRoc%32=^#Ch$ l_O9[ڌ/~Yh,pjfF+V;jue^h@X)ZLI)QUɫ$.rAc uㅤdZ O(TEVD4V L Ns*Ӝ!$V1Sc%rj+r'/[(Vb@@ϐ;$2KZP|AxVBklEɁ!'s D,\{)0>N ?俲Lo.E`y"]"2&s9R%>/k1s7|ĬV&eT -$NJl5vc)0+m-FȎ[*)GB>,hdǖzEB:w0xr̐wB+$R㗾Uxg5;JrsL~'#*°MCHͣUYԄ>$쮓 C.NgЃ}Ni&c‹܍^>iw}gՐ }€ma@Mr&c(5- dE#̜/!iiKhԬtyѴउ)` Cps]SleRTA '+`J͐.ٖ0T#B`ߤUj9mXtV@j"*1Oov%e9 ?rP) PH`=MH쪰) .M悧\%RbFC_T#r$Hj@* ᙀ \ $rY!-d5H]#eihz(#P(oIt{b2Ļ*b.?lwH:*¨9[(>"(w]VYTCQ|bBSkvQXc(M1Ciw,8*YN$݄xSG f eirNxn Qˮ![(,MXB" B5]ϵWd"ʬ #+*{+go%/o&!mui?IN{+M޽/?ItPps+(rD8^ WYY@zVd!w`tqY|Fz \cWe2!X| S/e 5*r+hh(Mȑ7X<a+< Ʀy"C hxm^DeVq*Y /`VFl G*-&ZWb!6 5<CC+_K)$"R DxGoMs9Fq j~$pAg$|0bc-@r IcR`2!I49 /V ) @FN9# x$/5|mH5FjZݶtĊHrV+z3=Խ.ڥI6!W LOz5JOFҸaLc$z^h2S+sB%AlQrkLj䈎>jjBA!ĄnbsW yUUQE_[Vajg^n TX!!+u+"zd˗~:=RP@EȶD(}mcJlr/ݻwx i_ɏq1 5vچfdi0vh[Thd$R IDATCM?$=M*Zj V[BC!^:!8A` :-h)(!UõH8b'd"AWQ<b"8}<*NkrE ÀK#AjȽ&}~CY )J!e10FK *Qas&?dL*/eA"5:i>/Wj۩]%YE$hW\&F3KzBR=&׌HiDcuT\vÅuרGt8֕YX 7_# w}648T3cyT0"")]nus, Dr_YѡOE QĻenPM  F/ύڏN9 ~W>4@Btls'XjZ2a}莚iRf ꔜ9Vߪ e鳥oE2$1P'e(G<4 TZrRFY"7XŬR ƈ8 -IWAaG!G,XAC` Ź֡k9[A c&/Z[r 꽡&D -aKO>iNeGbHh HQWJ'-f\  q&q^ er8!!|&pjW0̝rq*xs+!>/Jn&'7ɊWBtO_/Zr*|Nnbmͩ$` Yį,l%A]$ OV`*< >(58u[.SsG9[%)4|ARSsHSߊh#:Q1"Od HSͤC"M+a ̓EM;UI[)SBl'LД1^n*m8-$w7U)r @W>yj^>N' C+ ~]4o w}׿/W_}e?`# Snm5ڃܖI#euA9[$N&Tݽ&N0u飼۶:e5?,4rVP"Q'MӼeNeF4*_#hmʼns#r UG\f`xAD)>:)~GSۆ"T4Ubfk%I-snx$<*pa +4w: )+R73ҡ. )0YG=+oQx8Bȣsĩ48Kw(`cuΪϬ`ڝ#W,v@4Z"(&»ST@19†C Vj]Ei-$G. ,9.#/dK\`jb V<Ŷ\J$l!$!,ALTq!m0zy3iK&pVN`to}x>h7x ^7A/:U_MG~VO 74MC*uPՏ:ѩcQy*vb a 0[JiK1͠" #>+#qO(k~<׈,+ɧXY%ѱ N&iyIrV )XS ǑV̬5y!O sX I!XV@R}0"?pwZA(cڶʄUjk&|̫(n?S 7Hp_rD q`x ^7R/ۃ{I=Fc51z!W~V 4 ñTWaiEJ5bc]#>M8蓴_1Z+KA )/lDZeU1M rQ<s9!Mx?3 e! Smx2/'I!hQj )KDrz`A NG|'RnQPralJ?M# 0#w0IZΖ0"1tPa`vgwRVjb`Z켟 f6JG."(G qe9s4)P;"8?"ʼR~h)aŜ$aaJ zT]D6)k9*x& Lآtx ]з4sz/tt<&~QvP @5L ~s'}o}w* d^tVP-Vǽʑ-pHl[#,dJf.# 9V2uA H'4scdK~͚R(BNw\TON L F`AFt|JIc{/ $uu9l>^VɺjjFn))s:FxXq\5P4M& Ճ`60pӶNmiN)*fE0P`>6#5{ꮆF_rD)cY}MiN!`Mfo [Bjם4R`GC`IN _XUc|p0%׎/\\;_xH]8YHP^}Cӥ)@00(sz]=?e}CI[ȹ7~+`MwDf,&{&  ^Kc ~OaޯaŌ'GF ;)8\k"[BBN7[`,)9 j@(Y^r C  ]SAG}CLElԪ1$D(!VLD`2=N&C+Es(;V̬H&gft͠bK&#mXcHh;(݊>_K64a|u€5I`#< Օ2aE-l:2N oUƃĆwQC+aÜ4EVa{uqM>eq$0. (&"$wjt:Ԭc%cVZTܟx"O_kWOG""pXuG庝{J!X&T aDńHb+~Qʼ82rT)b'LGo%yr$E}w\5 vḓ˔ofmVW$yݽx ]зNog=cj ΄זS6 IT`ץlg^EB1:a$z*WrGc j]ʩx4WT`iuejuL0uPA̘A44&z /,tSU~mUJ d$ RŬ(yN.H#r<9w[*Q/6GbOAf2@)wʊ) "PSUL¤´FAߚQű:̊mZS bl yLC&q&?nE+wt2[lH슸vVjBUܽ}OPAEJ_+Z:핉!$4G$&Q^O=?3C'x yV"I;ca_)+޻Q!4ojJgel!U0lɣհBrT Uv'17c\GSxpraŃͯ0wz3w44M'rG4iz^ڀ/x4[u|/"uGZߺl!xG3h֞g:4T{-AZl-N8BZ`dzM1X ؊ °еpwEa_͸дe:\ |+fN+W̶BKVr]6R0|P`݇vЁJƩ\ۺ>~#)WOhAh#r wUZQy!$(*Gℭ@0a5!T%#h$N&n!Bϩ^j-29/NG> H؊_KB⯒zW9*pOqVK8+FUkFk *BD;y+e[y[ѷN[;抇S0TD3 ,Qr^l7U4P2U؊@ȹ,x~P2L>é&@i9W۬&af4s%|7o,q{)5,&,%ٖyS@݊ u)IkGIXS|m̙orq&)  d%ˣ1ʰRМ6]5G̝,3E!-i{0U "N]P \#G4EeoES QxG!Pxs>NGn~5S[@[v†6[:[ eEf_7(Nl2L?_%LrV[A` #a(7e1dACY}HX XO>O ̰M $wC+`~o+羾O{Y82?䚁g%'fӪY{ [ uxpx*-MkD*lli"eY2vKԸhjƄ:r> bLֳ#xa#P0e4}B?t_4Ȏ$<͑ 1 G_QX *!ژqf&:0A1t]0>l)X3"6GI_7vJs >y0%Oh*tJPevleJiz+5rCF<=V(4 9b(wp7s'N"y\eC9?Kԡ/Oy WW^ N5{15xW7BUyW8Azt cFeaE1yV/wdK(";$}+2 pIv-K Jb- 1}ʩ*O.BoKi~wio+Lgo+G8Iz@꭭x닺szCͦc`L0#.`ls Y08ӛm#ZmWq}W\%Zfxb tm0CfR皦") 9Gr+yUBՄZ[+gtNk1]GTfH(K),VR>tdW 9&Ҍq 1!+=N3sŷ^A~ir&/e[ei%CpK(9_C|"Yln$%J㉠ 3#nl-*[}{D4X9LLYMHVrh[)EEj"ࢵ Jmȁ+Ps\' N!w M! y0Yj˽2LVr,I CR:P<.D0 髃-%VJJ+}1Lz|_ gkCjIF|g!HИu jp4,*o+羾ϜzF~8 5OMx24&u ++(hV! [~53lKi/> jX@Yy)#Mѩ 5laJ9IQb3cDQ klW N7:HS0tTID!J6RЗ,e k+tcN'MrD 5G arwZ.2}jdSdZ<]Q Sw-VF Ž.rAh(BA(\:uu..5G8*B#SN]q!t{XeZؠJ⨺y1'w=n>9|V Be1ؠNc )%DT05S,4){ ay1IfȖZ ]BN!H-)FM uz !5waZWd Jw4dm Z%!hڞ˪>AO9`(2(qV# עm:7Ug"'|Ge$YJǩD|Lr x*!L.J"Lt(@SR ?O;]4+ÎWJw O&CGf]R4sl1tPdH$[BG9"W+J1(k')*r8V4jhN,:(B.Q (ģnF1ST|@E&wt2f%flˡ-> P@ 0KG[[NcN*)C5L"~FH![<8UB+/4[OCp]M1_o0oϻ0XyK0籀SWWDv$%beK X!}+M#u3=t0U_b@_VYm%%Tq zy3л]V~J/aTI [OcR} šޣ=軚M-Go3^:Dm ZsG㕲\ ÝD+Bm̪ KM~;'3*5ryb&AKK}T0c@MB9RT4P_kٽM~yrڐ!%կzckc6c御 HKчXL O.c=9Bai\ D_гe-_o[JJ  1_]_ZlQS% L. LG2ֶNiJEQ-58 M"m>MɭQ[ov۾qQ+Q C KGFgڠvE:N`^v)w xU"$An?;ҁ G.()'YT1DIa aV(д;n")ۀB}M?%Z0E[ _b)FYw- 2b"xR4+:jt`Z>n@14BR]C8.jVxl  )a!H`H^bcn/h!{#!%{U:\X1ˣ-$S<$TAP jvxqR㽔]n [mBr2!D<HErZlI_O9#| )-b -.1$t+P#.x !GH֊HgŠ- S.s,I?Ilm0'nA j߿]k=>L793r13Y!KME'J>LfP\*@:P>;eĬu`˔-"+st\9^$V3BJVR/XZm9 k~H=VH Ps()rȠ\7x _ܧMɳwšW΁vmƪH}[h6Niڪ~}:^]QO\\өK\.SɗrƄ/\. : L͊ȯG@X^NKc0<.nHȳFw/T:Hl@3gI(NS\)AFrS/ ӽ}oQ2Q#an6J2rd-rҴvȏ& ', R: J9}&RDI*PBM H:%ttGtTeS&l+ ɖ|ȎD2rYɢkZRtk:4&(4"WLGQ_[a3įD aP>oP f#uy {B eC$-h$a V5f1pYY!5^ռIYtJeP5lA𯱑U\+k$rB)ÅLŖ#_[ɚ2n+(=,|!MVG|TMѣ.2R##jP=kN%Brk!5lsQ ~~ Q1H#6d 7IyI_`)!fjN>K0nNu S7¬V5g(T j(a>V"-J'@:c @~^B.Tw`x<sO4j jqTb#cەyr4|xrW+pO|u2^ܥZ?n7dNCӪjN:I>O6ckKUF|l_?8g3Ѣzpb[|l=/iZU(T` |­4&QMф1ֺ++h+M]҄/5iCh5 Drw*ul'`x9Ɛˇ%#8\nGrLǑH=R:+sHF0Qũ1QqGg{}(Z+ֵtꈡ-G" e!U l!J ?Q.}޿.Zt u_yJ;OԂ?1*ע sHj|ˇ_St{)qMTsYJQ֠pd Cy` CnU ۮA Kf,ar䥪D ݖ=wa)>/Lq!V Q|8E|yw aYK 9 Mw4 ܛZn㑷_{ ԇܵ_5I`q~r ӏ]A^գ@V/HgծjfAoW,]S, ƂFy%b $ϗ"V G5luD'j,Jkm9;אL Rؼ@dr3}׽$;TRfn* ߶`Z;J> S*e//@qPe˨ჅPQ̻8RQ N#CBN G94mSvʋ+ܚGjY∹\"Ve r:KmAqzAVRbpSUs:/e1'MGY/;pZbaȝRV.6hO.rȣʈDq Sx!c|/ԪvjG9΂pM"*He> O.g δ4u{ Ņ)TVņ'8ɨY34V[ rcsW>yvVovLu{^ncv+ 2ak5!Zl29 npP &HL-dK uOiɄ& v^|ђALpsH$CLb=#׻o4F.ۿKߛ}/tz葎$-[G?+#݂ KăӪ6S;kN5RSuPG2f0pXO)bm[j 9X5cTfR^&|ԸƷNHdk&jQIaE((Fy ހB^)~`Hmkr+cvs} Ѵ:4!Y SV2 B&ч@5lVdAYn]r0 aH9@.zl[ Ooţ䔻J 10%/Hdtxt:Xpx 7mBc"YXB U}[_Pm鈳_a(~r@yVBbkLB&DU^HQ :A)\^!"x9ExP"0+^DʒfWSPwDYM2(,+t`X!FNc +fC̗W3FgG~/z25VE.a!RvkEsJ"(*Mȃ!rER=u(*!Yj\W@BE%Th!!>[:E|sTc`Gsb|xkvş*_zzҫXr] Ö@ jwIrV GVlU[7NRs.踈LTފ^ k4Ay]@ i1'R+\R NA#;"e_r H/BtGS~_rs(oKOO Is?J}7/N@騘@ -_&G U}3L࣮~@Q.\Xۀ> %)[\.+aiK dLB+Qu_Jx ]ӷrdC[z ib[HZVGbuPJM%fwZD!lk!UyY3aV>_)+[rakYѲNNG?sf8\ UlE+N"rBd$‚ uQ' c%JBNmy_=+r\ɼQcS}4Hõ*$Ee׍Qn!:@Uհ=PHR կ˳NN(j< (`-H_UOGB077a|BO .l[h &]2 Vq-G"Ciӗ2^-]JQ5I(} \:iɨW>u}|=o4F.y}ޯ=P?Α^]m"%m[#E DGmNx>H+!kNMj8дbg86Qbf22ИTk&b¶ ْ#jI x51鷵Ŷ +mtcFID>i0"Uw:u!`G5?I ͖GnJˊv;ŗrY{7CXhv0\ѪIб- !KUB7@:!ۖ!I#"' ah%ԝ cE 2+[t '#f[ IێRLr3wZi]woK}LCg?lCkt:3H1GdgR&1d+!FEzDBMWn6hNf%Ռu}Ð3JtjK9j{\ft H0S:wEt7d@Sb N3\eБ`^4oIm/x[T S@8D4r QPVha|ɹvQe6u:xPC jRUUkp33q p!%kNmAZ#BLjdHJmywWؒ X8%1w tJpW<=&fMʗa _bJ\sC&5<,Wmm[ *o4oIU=G &c&Fz iIM39.gfM}vWn:m%ZrmS5Vt٬y?<) 25sk57gw AlR6ჾ·~D_f200*BG1\Em,A6ڑӟLx&$ &?[aۥH0wlu/x%kd NR(u]mP)[x$O'i_$&f"óL jG=ַt)Z)*E(6s+hEA\ 4[R N7"xHV =;4=5L<>7~E#i[2/_\d A~0V^~~p RHlVJ_& $߃8 5oVh~Wn# zl$wQq;r2ARi4% e0!f,0~hۘ$a0"`+ sJFx h~ׅZ 5 ͝H-4%n詞$4IDel #B8bX~E`'PK-4yq dV+* *sЖ#m:\tt]SpDghm :ДOzn %5j꼤̶Rд"e֐J 5)*ek&.鴫P(,N[9Ną ]ք`3a. U[>Ա@Kʂ<j̔6ԭ%cUmQ"ohѤQ@s:0puN aVDȖǔӇ_ -X8)'<>YYcʗk%ZR20U@eKX֢Avi.ڔ; yVxTMتDaQLCklSpV- w)1$D.hf+5A߬iw?r#Gë́uwW, aK*KVW(UŀAR.筓$@.1 \OW 9>UT>B}~xpdK?L'iN퀸]4V~/:z%Fk9mV᳽L?D^-uȡщ-e Ռ!yt G?Fǿ3 <(j׳xDNkYX.ڑqZ#~)1^9~Z< : x@$;PT8<@lA,H$_TRsjTRJ\)[GSjҡ" GŜdǖʢ2]AENï#[8֥ Bք.rg^m Π(AH$TT>͚iXo˼U\!\@s!xAwZ:VBDUI*9㡣 a8̩P J,l!Hp)x||D{`:EO/|)C{o+3NY1/ˎ›+f+pOo?s^A3b=i%DNu㓒?vSb^u& ழvY jخ # lK,s[kPl}Ett"&e 8kcx)q(sg8~ Ba4@o(ٖS#u)#EDU/x[cR~`ůSDJH"ppRL`Lz)Q̧&F&zy_f3B' |ϓ$'!6JЌ4vעSwuտ^*q g49ʶ^B~x)#x!ʙ݉6> 4g+ !PȮ(  IALFy~tk.(.VjG&[`v!؍*C#L?zE0& BZ+l·J!L~%KɏpLX^`"_#a.p ڽ\-P誈H:%.?wmS׫_OWПƆdtCm;2ᥟ2!N6[tF& \kHLVjI hBɵN`򲦈k,r bBY_ΛRAtD⺾S $& <6͛Y lmM/lY֚%,bv0<>4y?125DyɑrJAw[BBnW[].=|q>3&a$&)01 /D=B@SʡKZE} O..DR!PNr>=I3aN^g٣?*'j$8K6 Zي9i`ZZFpVeֆk]_!Pd E^W;S[/oKGVMD߁D"$JȘ؄4FRe̝);^._{,F[<.]TF9PsaFQ"' ",AJ!~i]2Y Or/|t"_77(th*zZcuRyG?@cxG( <ҺM)<T*p:Mv8$i 6"RyL'Äkg93!頺&;0géY=I0MD/e0b 3 >,`E-m{Z2+"Af}-L&Fl 9-)p׬&5URt OV&3'}B[K/aZ) ¨O?}Wxm 5 hC?`>"C?ħ+*2]Ծ޶dU|q?*<*R8y);T|rk £$rV{4[!e']] jЮRTF Wҧ0~-_x j n}jd;Ŋƣ;#@PWG"g:ԫ,@^G ]vUOSD2FbyA,|UIh֮vS>ߙ+0mF|o+Z1#Gka0hI )ɵ|HFc_Z?zشOPӬ & _4I`P`8J3 x+`%cD2 v=&Q.Մ9$H^@tbHB?p!_eh.$W+ AT)] z2M$:s{g')kx$]3?n{w| z'wG͌r+5L{'!L!Ͷ]-:PSP*[[krV`<2FߣN | I Fd9B5٢C?4BQ-ي5dMߦ..``RXP" 3L\@?CjCHSv19Sx!4vy UUZG ˵GVhH"L$ 9MLAM$G|Cc00%Ue0v9rAm1w.֭JxsAX al!& ?!VrjP3Ϳ)6лkߣI13ҩ:5]$k%v)qtP^j>ju mr2}MCϊDE'@=8+k#YcvS6gPY 3ř@5{1IhebE8JRc \0f_1 {p\}XlAE"4g )|Gӄ+Fp(ٹp]V!cFo39͠/ST]'1ǭGyLL$01L&gK['Y @A$J#D g@2:PN*H d6EAM2eXBBxU`: <µ$ *Ǩ׉]$Nā8M$6:k Ī r!;{nń!/5Qү/ʷGzuJEEWjC:Ϋ#sIPY 290g)ʈ  (8 #<x \oRNzo֏A5 `4UC^h9)dkoַ) Hѫ^eeU31z_WcG+͚Ƕ 92 U ~x!7zD6k9@};TC$P(@cI`¨ziPf~Ep@џCzHxCJxy)\,"D .BFvҗYN"qJ'@-2-!"Ėf_මU0C s^& ' Sv]WcY\x)h:1r,@hz P l3 K@C<^ۨ[!($0-p"i^OYQ@ ;8b0ȏEHU#:* -Zh>Ȍ ȥ:\a3uuC,GAڥF &+յI2bRH(fVa)+YqWC (W̔W&eNg#~["kRH6lY Nꑐk% |{J\Tfivj9>LYo:=r瑭Z!8l-[kUV[ 5ʻ !@J`H@5a55oʔ9:t*8s+f۷7tL 5$ZKmDk5y{d1tD}˖p0ҧ@ 󝹠i6=huBiF?3ic2i Hژ]4ʦjޡ&Z19asG/AÜdWx8TȢ{=[D_ ̐e^.M:iP a0+>(.좝aΐG+QD2!Ӕ~eH04.Pn%/6kNc7;-s&R\x@-jV 7t!}D*}B:\"_^ LߩYqcN)K%*uf1 @ IED8 `HM0Px_H qmeQ!hV0&s|dʗ P _1?OJݙ܅Cj5.$xL>YđBЧPq Z=#(0$>Y<ԁ:k-DLG cE٫o A:_1P6hIұ4ݔ=jέeRSrǶ+6l6 2( m~|HO;A=p*`R2@Qlṿ`H$x4DD^x=FxQr*fIBGk.CHH=B[#g.$ j{k)[az S ix A$` e6TR6Ԓ ^l8P(M+>4<(je-5R#0_& -24uːkBf"T?bA4n) dL5ND L3Z}_p&J # I`(r@jD.x CSB.;$V];YHYdӄ0HA }q7Gjt|ܒ/ &jJ'~ #_.5v౗ C@A@! MHG9AEZA9+!YyҖGaXGTʮD$0N%i"|şT*pW8WɱokLo񭚄3 B&V ]CfiWYϩ95ڕƆieUݒHOիxK$2Gn̔ÊKlkhx:BR\x|$LM熠P$r'W:5`r{,k*xa4T:)B:ά$ISv"f^y6g`fq,KtЪD] !o:Gy)pP3ءɤtJ/Ej7aB JG|9*lnP5Kl)BY!d"N3H(jPzKGc([PUFo1m+#d!{$fQ1xd.*L1 PeXyL/A6Sv.<}\jx[*1@٢]uzĆty! @DU(e_%GQ bcGxJ\욱∄/a5+HU:B~yTǜC\ ͧ VP;:Tq,}õ+ear( &P  `4){7۽6=:6F\~0 /[=6Lΰs-ͮVZpV$Gjp2)֙n1AZ&M)wthIEHC_+@Ef:Ni!y L|.v)Ak(S֤r!,K!eE`^=*>[+spx;|D!2<Oޖ\"4[H| ^a߾}+< UL~)`U <5dED?4c8eK *s,5'U %B!w] ,r&z*j8K=m}-J3ӖVANAiORÓ[miKFBZĄQcv1HchKjEB光4iE^|V*#jژ ." C̙V ~_)]AMl1] 4 d 0(SD *wy|UA+#*Zߥ]YE05j׍EMZڧ;j*/HP#՘|V %G3ej]đ54Z$I@I*kW34 iWfGDCi^5\6rW+.IA^>$kB-%]fJ6ʝd#kU@ -&VHDAl1$T)#ep/*-Ѣh$@X"oJ!z-^ .T& K(0w^tHH%}t8])d1kȉpM>ުB|V)0e!Q"_d&@L+!ے:x iEӜ 15$c ZWͩoj h0: T4Иi`$:]ḒklVրn)ic4KG 0@\|y=H0|/F V[eGA"[*&T: &# CCPVODAD4%Gt{HG[Ar ~4sAӣRWJ(emQ'Au+x؈_]~1HZj ^@Q5|/$ IDAT 4S9+¬$xZ[ )D:Gn;eHW8"wl$v)+RjQaB+ &f%+eL#W3`l:E$4w*bb* T7:>*9u"rgbD:Aio #aG,s-N˷UxģJק ˅MvkIߚ T4RzgX+ף~P ֯O̎Zu5RHkсcz!{@Y}Zj̺DS2'Z_r`U:5d ?VC٭V't(V¦)` 2xW*>MΙve*" ^t@(@ s:$x$8T4)S$(P,YN^gc~$xgy߯yoju hBԘxhnh*lQNjozd+$FF>8afN=ţ/(1'k ᚎ,ҧFH۵[֖b@k޵Bn5f55, tV<& kU8EnnI]8*LUX7[v4kJ Q)#h!!C)aVSOPqo!# }!ƌYbA<ٖլ461dDNye|,lOw#BD85"T^vvV!|lK%(8]$rc)21K%9޷Fy`.SV~NP\ /g$// G̻(A(e[(3GmR su2}RÅK($ 69a a0/]8m,B &}ux  LZ;k[(kj^5:V0@Dx{}E˖Uqʗt8{ B 3A``R1?t*8kf{ Co+0}hB&ҩOX5rD# ScwZ5.ELIwd8Z:VZ2f:?j8ە]NLZ5!#Jd N^\FH=|gHHBS(^QibR⌨刻ʕ_LӣD(Nx4"0G'̻E;+tE/HR\8 k *5%j3WTOM^Ԙs9y,߾SF9Lr2*F*F% 07ZiGRVU[#u"7}ooSӡϾ}|0HTgHN($:_w LԄ]pbW+L s$r8d-Ab @<(F ㋰3 #GcUp8u>xÕH?NAl,"[!#Nyd=xjA/Ez X4bz3;Fvo  iHjV=O#l3jlt(Blt $D7Q: l5B}NC:sr7e`Ŝ M& .@N4E_eaeLH-h`Mtee^BL V)`cc⑬ 팔9\LȅAM ywDh7e+[(Ge<"r221L^ҽ -Z6{ 遾9dI/g9euS ]V5/[ |uq5? [o9_b9_43`/j89ff}&5?N`#)Vl.jטJ`@1U)X 8jZ8 pBENJ0A!@n%BN/G1V ŀe@b1IQT ˻1RnBUR/(x x6/!?x+Њ㳦ލ*_ח>@0 K\+R`%`w۫EȐ#XV Zם[9m$ "'9 #ҷ%s[LZ$+1` A18)oYN[h' xĊ->&Zu8VCp&&Ƅ!/$n(󕚤_rLf>9&ExP dg[PYز]`/BIHS_谟8Uoe[y@ <`4 LׄC+VFNւ8S4-hA h+jto}Ӏ^8T!|hSfB( #ub0@jE䕎P+G"r&4ε HM)lǀFbh&bRRp$e>sp{($f2.ID𝻫e _:cz{T"qvBmM؂YH.xˊ/Zņ xIn:x i5 m]b֭:A3T0Lj0TOY'7ރ'iW g[ S=ʌΝƯj{Կ#(Ȃ  PX NxIZl{)rre1FGt}zŖ2 L@M&S#]Gû4jJ.@Qq6(]I5Y"#"Lyd84whW1B** +Q5R3!Q.e1/kC&nŵ1;w%rd $NEb jk&࠭5̱J"jۂ#qsR#I BV1]/?|r%Y(ouA{c˃*-Ļthu|C28"=R.qERF yQǩo͂Q7jcPZ:ebB!L <jQðbnK.)z qD㙩Ɏ!smU&=`ANP؈Q'Bp:v x4үYx_MVޠ)&B58h9mi<:.M#$1Z w 1a.@3 :dm<Yǜ/1AkV GOٮ`ʅU=P[$V1 \^PiҨ bƸ!4-9",#\iV"/>s[J@)88o@H$GVUţ]4]-ފ#Yp ҉ <#nshR!޵o]&U[5/bpr}A v~>DY<9sM2TCM 0!ӡٸ"1֎ oLcw߼y9b"j?pF}ⅰ=!xP$& H映᭄Y#tk`d{Qc8K 9 k\ZT3zjo,+ȄB}(Du 7^c@Ez%H_ZjE"qJ-UM.e$r.1pj +&aut܉/6]<, 6QEGx([URcٔGh}3-$&Qf%`Q)c GdX9r((XcNJzFG`x[2ʑ* )HͤDH ےL+ms0R9ag䑜9بJ0 d^r%WFUBb-~M`Mx᫶ꎑ0Spd< U u>/ȥo a2 [VbXE>ɸV(2bp#+愳O֚[`=]%MG첉(e*SM:yő ocr14y Lu ۉյ/S>4E -+X^Dm:u^1k4 @*@C2|I~SW_!wMEVR @ GVzu>H4$<[ZK3mw[PͩuMǩĻծ~V\h| (Ho삢 D+էO BF$e v&G v`r-~ M$|Q O ~P*ԙdep\wtpN{y%O:t"BH"F֍F%(Q'޽{4RI C89Ne-Ra5z!R1Eo>3c+YAeK\͝S09~#$Ӽ1Q#kVrP:)XBJu:]#+H \+EB)B& 2,egdB;5"j2%,RCLcVt*~1cBG8n&~@RVg8] PY Wu}Bj.@t@a$\qʔ$aL:g=8P3͟kl^'!4*jKW{`sM2!Ԅ͉Ghlra+j~6Ҙ͑+kl ?xPd$*`SPx I0( DM< UMiJGXFlק1c5)$gԬL("#B׺?ܗ%B*+$UF lKtpi$EeMpryp;nTBL*RF$TU&b64/k0ǿ]\K89#L‘QkK@JHIغԀ*+,:|bK!> ^`Ö;TyB^[𞲕ZVhM!ͬ \瑄+8TIG}"YʣI/$ SrɯUXR$* f0-1#1gG$C[Aܮ`&f]/b*K0\#aPe;iNج|E.$&U]L_6KG$U2rA(P$kЬG5$ gHZZ`AҭEńFŐU5&.S ykԠo*R?LO U%Q@4Շt\R$/*BLiuXn3у}+i#a$UFr'9Ƨ;F)x~k(kd._:Dk~'fN#y:D/ P ^k%n8^ NLND{E/; tMQu)@Z1%BQ ͣ]$ق,㾵`?#<̩ULw/7[aZG(I-*F_ҁt& C9^ϫ2Ǭhjrt-2}䈐>׈#r+CNb0O]T:V<( T`/lh$ %OAWa IDATyaKK# Yh/fei#m[᠑@P0`A)0_-<u_rm}949 UIA[? [NmN_4:iD>ډUrv"$atBbm\̸620rASc%L0JH;&Ԕe6u4)QaE<[VAVSI9h >qa9+M//* 09v(yh| c}F-AmB9^L*֍/ѤFahc!v @ʅ|!),|J"NgN{Byu}ѡd}.j !JV3j1|OgFP  jMZXife6~ks:hh;d&w4E:Y䩥@MxL,)rYYR慾H \RИDF& |%%["Bxjd@nʁ&N}iy_ Cw/Mo߾u!sGUC$!5wV1syjiBbۊI2Ï&agT(}M1a+aɄ /4G\v)<@H-"|VFFr'G; ȥud:?C7,vEn}2t4 I$TMٖ5}jyn2Cxi˚/̸`ˊ"Tx{iD et{My\7ye M5]y=ULOv'[3GmD(Hڵ2t)LMڣ^[b!i/ M&5MKl/(364̣0p=|"TQ5{/1Ń{l؅@R.5rjŃir5P%af(:֣ӗLM)X鈇-5;!{D" *4(_̛D+Ӽ'8/(M%wC *&)Q5B*vg?xr.[by^8ӭOx^¶q(x's|yDUISJ!TqpD )@nN:i@@Q+GmE#lS,1t0 EF5#)M(V>ȇA+Ψ뇗}QI_آ?,k"%u/KxdJŒ/ k@ZPP>I+d5yvjyHN?T9+p<ד Z˔B^!֯iI€ԓ^}74W-f:V X#G$@r+ΊfouZXr3oU@MNrMHt]!1a[^$"rMEJRl4UI(r |TEM(*9[#w_" fD_7cSxL|Em LoX,e!5L$ $;0IgbȰ,AMBuUoGHuKVc!+*I1S8Gt(#3xQMQsĖ8 LhS[) /^t>G*VvMQVeWFkk$FAQg}ɖ$OY (,9MtVEkg'w+$$@< SiUm#L&DB->.w$@U$q]ن&}<֖BT6LP-ٖS6`fqb(p PHz1$`̜\$tH":oH-L<\ Dsr]Ty -/ A(ƅQ-Yh7 6]lBuY"NߪA@6ʇTVVޫzeAy!,҉@|2ӡ@/F~e$6o]{K-S.Tw-%IZ13YYw u_`E(Bs]xaaqں`*leG #+<bPW&;c _S8YLs2iLYaq=)_BȨ0$  ;D—/dIǹgdw fˇ^VYV'>΀0݅4KDN_o1?`WE&nﮟ~acegR]S[#EQu8-ߜȑ1,(J@3K 8weӑ9V X\RIHżL2B&vO0a^W *YV@i dg p! ,._p% 3/aapC])T&u[<sW1CWnc+3_u!)̧}w~N% ν?sʅ qa 8]G/qʲ: rF^OHJӟ&'UfR:U'ɓ/T4fIJ N8,s(!h D[nI pDQ  ǒ " cZ炰\zb2S12`d IK,YM8GneG\s (?=N=@t)KL L38X,CMn.w鯈1[xT-n\eF㺬EmԘ%SB#8% [j ^ІyIЬ2 @GLE)oe!BnEkbdBXUA{"R[Yk̈rah)HG0BePeCya 1Y154*ŦjpI [*ɬ9 be9RL78X.r DO2Ŧ ;_l*\67]Td\$J.u:6a8<",yk8m]KCHt+jKҩur"_~igP`E(TXpsEɺtIr'0i)H 5w,(E"q7K"*L@vFy!#nL?쳧O~W?&SƬk/`UB0_MxG2sʼn``R’~e^hZmLEB0 c `t|I gn4Ç_ψ@cz]}N)E]!ŰAv 8.Z Xݘ jpJh3NS Rvpa409œDX(ꐤaz[0s0!RsJ;8L D %@;-¶쫒ئV07 )x(/Ԫr0&6P=â%ײh1iN}n8b\3*lZ\ p02l tP%_cbM1Y7 8GI ^@hZT(Jt-wxj)  Rk+S4( WGM0t-v%EI@䯿F K*]F7ْ 츖,8ﳉFx">(V %D>&u^R(ѣG *9^)\c)vv>}~W_ h^. $PU}`Ԋxl)N]!iV1')@ C=* G2l9\F2 0HwNg8 @`pJ3R# :[a!EdaYۨ|əYg:@Xtihia)[1/ QC썚x^kH*AzXGs'*w^@цm呢%# jiu'LRW6t@#g;"]5$W dqlȲf`,s1WVC/2B C}!%ũ= .a3fr$TH&;)Sn`w)/x=[#|E 3uZ-M] cIiy!b~UɈGtLd$Pva[ɨ{H'F ,s3Y+MYa)#^L(6̚Ù{ր"WA'4/q_HL| vdR0?ٳg!rWy+_'k04GbXގ5 Q$e #է% > Rԗ+#oYnRsAE/`7JjEڍu:y2b7 ȗXs!C`p*YޭgY䮇![ʋJk7{+O_^^ LS86򒕝駟/i*]'n uo9]c+),>]%li ЀhbL,$Meu%F-F쒄)ŒUo@tuC ڀoy[jК-xѸE0 ׽́}ֳŊkƩ>{|@XC5-c [GA©)&!Œs!)c0IZ; 0?1 LjȚ% 0 Q!#KlE?mye(/F8\%䔘I؜$ZħyUZR4!UQ4r&2@AtDNcp-j;:h|rĝakxYݜp-or<^ADl>]"q8,\ELFR$]}kuIZvlJQbFcR#c7y9bP0T8%F# `.\#Scg6yI(;O[狨ϝ FX%;;VZ@Yi0w=D+B7Y'E.$r11d-ဈ Dv#5L]Qn"\h'#BAU'>+QW?;QOjľ#Z:A #^j F}bQaڞK&#*v4H2-$+C'.S$5ڰQO} Zr6@ 0&S E ԧB4'b&CA=a#AdԫHdjVMTH*A m!t+ތ%P<*IT/Z嫪ӵt;SpΝ5|Mg= Uw28b! d bD`| r*B㝔ykfdMQe$'ZHJ묽uP [7.kO@ C `/eSf\t gg}) @ko4XNTZRJ تeq fI<̲TrHx`΢U58 \g Eǃ& Q9Y0 2Dw~YX|+.$P  3m>#̋(L"-]v0H*W 8ŗ,p;Dϑ%I0,^KR951Pt kOY,ǀ*./YH^h-с%;ʈ t- VAeFofn-EvV#9M&ٳ޻y[!cJ U wa. , R=kcƽQՂ]xʥ5w8,Ts&i :-2N6 0B,H=-ed RdG2-le&:{V#9ćwW`ZEL麅;7l ml#jiIhz@MiY:l h +} ?~?dsVK8Xar^B 4N^B7zP{fW}rE3*#|1 L&^+Y8%#hHds0˱e1O`,hRP[1viUs[[ĸ'e?_9XfMvd;\ s>!Yf NyԂOX 7s4ԈBREɈR)lt0`DݓBP)#* ǭV5/#a*3: O5(◎r*򩡥T/f\T Q1Ԅ'G+_F85w.dL+ IEOkQ޴xESdd'[ʢ`y P`@zw;#>I63+Tf*/U$cL*LLup#SkiIp$΀YK8n gn4Ky=WEК44E}0ɉ0BWRk94U۰[ Սju:V(SM[%̣?s?ՙ[_U00`8j"~)0a{ IDAT'S޹##/*Ŝ5H;t Uԩ -vUUx)6 `Ts #0T,S*gMfhd77#p+HY@"㘀Ydq`ÈbLQ\MAq6{k,H$B]xqj\?&@ KDqm ,LY O1- qwLHfSJR`K"B"ֽJ:;"BuY(LB"Z$SJE*9@oKƣQ^RQ T\Y6v/-%qspv=q盃4 @LSgw" ?@e#В[t@|sLYOz,, A+bR8"R9 Jp4yq9myii#=3*0eD'uM)i6 }0;3]VK E!4ڒ81-p])Zl/0f'4Tm?Xa7เ-: x_` &6s`QCy9J >-E4BBoK8`iWvl UTƑo1XdM,w.S%Uٙ ] јĜQ71$BAw#5fK'GpD Gzpg=' DJwt I-MGitGj tIל:Aɒ}jW5!4 eG:<^KK[698T{lvRK#b\8#㈜.-K ުΗtsĹ?K VN_a Si^cw'/BaIQ q>>N5Ԝws1[]lwݾkr61;IV(%@LLVCQ,%0Ѝsy:#vDŝ"gE"aȒy& T9%u_ = Ya{+!r騆-eʩb[lUqDta:Y4T`={F:v|ڃހS24h#k$O-?^ui՘+ljBMcIM7oB'la*QG)1 #(<-/ MF] LSdJvPHŒ%Z Vg[Gc^D¥W5- b0)(ʫ\dQk趆?;2YUY FQaAY[ 'T0]STP"_Svdf|16TcQtf>sgϞ?1¦P $9Odk&B48%vYOus"|x))UDZ'),C"lBa-k@!Q}DGT@eE~pZe~1 ʰSsOR7SxxCnޮW ; V^y0 0pyt\Բ %SdRt; <+ Z5XK.dD.lwTAP?LKV;J6 8?ULA{d{{ZB}87i zG>A Ş,1kQ,! sk'43Hjcz+RH(ߟk?RFDPe',B9No8Wh]STEe)6Ӡu~k9޴pV4QIZH8a K ~KN[TFu0Lϰ#V@ D(x *b,y S%YHKyS0Siqy0J}_~)ʻEktɓ'0-*˝Xld,8%>N MB|260W]x-Hӈ8T$!1t]N4k*JD PanL/ %x["yɶ$ I{twO%BYXfS*Nw^O*+YdfЇYYLd?2dgWnk  y@X#C -PHA?1UqI9E0لbN#+)}FaJD% ^dWݭngAJC5bN{)+fb–N-Yu%[ydAv"P٩ٮ#*GYHb ))/I bBe9%] 1adB˔K2$VN,/(S21)>Yۨ99YܽaǷX  ,]zοķ;PN>}F N_rFC` Js2?ٳg~3˺VjmxlSGO%Nqg56[%K}G?ȸލmG.o.5;Oku3X |1#BAHF (^zVDts܊`>2&1N-Tg8ަ 'Ow+8RsiM/x#,׿՗ pxwL~EMl/wǼF0~G`ׇ‡zt ,_e1DO`\/t} fSaՊ1׶bN`M r\UwuA|pu TFH2+*Nޮu{|CdbRhA?>t<2+He'<63yRAX $pͲˢLRfPh' w9#@j"d @2wd@NaFOX6㩝1?PGǴNS~s'Cl,~/1a)#-V  WBp6m:^tyT7vyT 'OTy axL bYq\>jNݖ, 0N.b1qж8Ō5K+ VNg)b._DMAbGyK/~dcBݽčrDVԉZ8' ]\h3NkSѢХp[mx[F~ab}_x+o]OqLr|2-IHa|*'A+H-Mbqه(||͝kV%}\ U06aWTb(F+R]сV(bd]^BYH:uapGКS>;V Qm_+f}ʨ#ǹST:&ڐ)AleI5IPRQ"$_]~%A v]rkyy 0t;x1c̈ ‹ l:BA:6Xc+aKoj_/#80;)|0Y[j,hr5ER0\~&EUd oڒɒbd а BŧkI „,'{ٺ"sb3ڹ]th%f-ЭԊ" "HfaNU$8FԁƯ1^ŨpP.%10 vk"{s*ld庁1HvY>u_>'O<~؏m 3?DhGq-" "8hKgzf YKLf2nTdvT{?{0A$U˓q? H %!rDw `O]ف][=Tb_m}Ę]O$K'‚atD˖ ]Nt1a;_e5X uK[D``о.ap-kS 8' 5dH0+}(rZedjn5Z2T0O8+pc8;O:-A8A=փI@gi :ƋW(T0aִA*lh35$spioza˵:Asc~ű[X–b';7%Ax"LubsnݬlOmeƭhxO`f\\c\տvCs~u#57d?0sj(]^[e[y,sjלzt`l$.qT\J Lʖi(>\]u_\"u6%49otx#Q Ȕ i-;t%F@f,--sec*l%NOv 3ӹnHQG}NaɂRX=uaF I,T]YJĄepV*pN7pg G<{L1~7]tAQDL<4{dׇA N5fFͣd肹Cp):ГNe܇N.=q4I&-ь$?p+py)_]G׳{÷|0#B]"-B/'2h1\N2^8$c&7( &ro{2Ĩ]Q&xϬW~ò\~ џ؅Կ Ali)%XRm1ca< wfYK[aDc\y=*xϬ€K`V)EݧXWTu!KvSG)8j82;qLa|I';M1l}T{s) ! >MC싖"%3v0WS"b`/ O8+p389O=^8Cc})'@ޠE5Ugz B_d"e+.iH%>;z[_دŲ'Ֆf0~`irWGG2pwy# qRq 5'"ڼTO@1I >}&G*G0NtR 8>`,+8b<(n n~+o18<}xx=]11-}$L`V}TRX<^F.)%ldsL1"Wj4|TU4?E, ~db#`m/ٻ=θ #1܉hL%@;F01 :M>u"b0!8qZ.Hw}PEh r ^aMT$@QCøغ{ 2{}pV6*p-83ua"lIa-w`'N] oS%6%.}'RmKTx!hGuYE[qt d^(J>2djE;Fvr&+EeipCQW mdʛQ׀_~vWɂw(%M`Mbdͷ8Tq2 av)8*KWQ -~FXRH VjLqG?}UUSٲl9"f)W ?V*a:P1/f[J=)K= v}]cluiq,yt? uaK}L߯pI{.A_>#hG<=eT,wsZO8+pK8[:3zմZ`OybYhTzј6yh6t"-DW싁@sBvyf Zva 0-s#9$ll"dn*XI-G{` N0-U@WFՆ&9P.,4=PLl yx@%<ƇfA1Ec1fg/xٹB2uԁ]p\V9@vYE#4kC]i)uy t2oKgBW 2=H*w#0 J<-GF'-%8&໓L>,U IDATMcvXpsN"L k+p8isxfR?'H4G!Va+Q sP]'Yv htեm;^&h^W@*gكOwoKkpNofL(WE{Cq¼aWXfYHŖ;bQT^THlY͢wM:y5$k7Ѐ*CFeж0 [$5C&!`oZM!3t{ KtaWM%݂A[fʂ3Ubw &d:na]͉d0 GTdG\<-d)~( =/,0wonq#&``$8 ]tyZvք5֋g>qܑsKs1F\A0a+/S'3#ف"z"2nk_Ĺbr\ъq3bkV5T:våڸ Lu];u2"oI :~ny1 GLBRtwqȵX fR?wJtgn/mn,@{LhKM ٿ@ش"ME'LB ;#RvӶSLsO>0{F57(߻RmnY \o_J=~e6c]"N/X+5bv緔KjK 2Cv5 kq`bT>MlMR-#oł@qZ>^ݹ\q7v"k;2<2X˯sw8CH?#VxdZ*x=!1.qCd 3 C0P`$ܳ*+p8M]SBp=ƴ. 7:\mC?ѐpz :RA$1.\0SA. FuDNEZ')I;Zm 6napҹdoN3rY"@b%3ZOx8cl^g…d4 =}_%IIRtbKKH֋ 6 )k3LBK8}4J b<;bȣT(A){B䅖X@K. #Y#fm],q)f1yڊ3Nqb'M`WDgQy/L=aɻBd].޽r<7@FZ??{KAn3RTlqPgڅqĦL^<"L1&:3I '<#GWﹿoMS? R4vT#`}['<3LnxbiK!ϯo @kN|`ـ}к5lӉm],HXRS')He2xܵ|.peBz;c8/(W LO8E";INc z(ɳlv57~fk83{owٜ{+}]Ԓw,)IYPjGA}@ȳ#A(1uTm}x#2BmKO_XY2|Ʃ,_Iⳙ<*Ϡ%Yyb[ 8`;0 ;.fAFj2o}~ rE SFh'O~cCa錸 IT fw #p0 `2b0h7YscDuCAibF5ծ%I@Sc-DwQʹ$A"<\^g"VTc5D=d NAD&i>8_%Y#n F==5Iʗo8vDL5v"~b%ݛi]-3qJ t "]wp,p7%3NUMQ!bρb寽uǏ3vW?r~6.X#lw9?޿6ֻFyk?8iK:- `K5a WsA҅AYH>Vl0ۅ£HUFh oAPɳK2uFڒdh 81Ɓ,XJ/0D,Ɓ0q<^9e%̋ (-w?ԒKծ}WEaɻ`3¬TKŖb|qD"Jj SOQР*@ɹ<+p83&x `22 ZY?hrlBp,\Sāy>ZjXY\!UB*N`2*]-UQIeO|V*p-[:O=ԃJ#zWTWH}BkALO6LQ IoCԫjYiDU)KA Z0qkvk Ӓ!x3nw!ho<w{8N'e 윎#3$NEr"&o;rFy#_ q^v$kj?ZE޻y?"W?`:zwAѲRdt^]}F&.k찪S]bA̎f( K[i2Iuǩ]9F}@KöE} z 8bEq?[sSPS%5R aq8%tZ0zKIVҢb&9Y OA.x$- G@YlrAx[,ʅV8U -8Glp[S)V +Pq" pV*pSOӿpnWv+;ԁRuatkzR±Ԝt,kf&s3vF\#cɨx75ÈǸc`pyaethO1@~8؝~8/(3ʋK殐159|!zSz̎v|vA4Û~ӧ3e/îCgkِ*#&N͗a\pߵ0 !38yx/E+?LEv}D\baeĮ-A^ņ(ZȨڪE)e(,hfe@Eq0L$YØPv+w>?тAUF[]˒\8P1r]6 JGɑ)]S$,.eQ` * < 2p@iFTo(?DzRFxd h jZ@FO[UwKj&cf%3e~xnkǖR09M kuzZfY8]d'LŽ{IJPsΎ@p\g%-"ZTXà'\v`F_d4[v\F*w4pKe)` .E>S0I3ҧJ .}d,mDi41K2\ $.$%R (54eF'N0a1s*BWuEsGrB .)~v(Z.LQTp8;,쐻4#B`8BsĵJzHSI?awyq-eO/|o[=B) <j;bv S y"/ v`Z fYNoi=3 xRon=@CBK'~R? 0D]!>uL5?oLHk ;@LtSE:F4FmWvv(B!\'\M.n9pocsܛ6P!ybKwEw,-G0#|[SՊ`v]hKj˘[ z)sud7@ޒ8vMEF'k׭c-u08B8N.#]' EGuf1ŜX# P267|jbRX 9L,tJ_m9wd0cv…A*/bPpD!+AaʅZ$sI].$"K٥JwHD%Rqď}8\nIv@W_N֒>),Ie7'㘈 LifNg <D*GSv4錰V32#*jByS3Л'bV33 GWס~ƹo0u\€kASlÌ,² %+$0-| =c;lxI1E.{Yb'a3G rD(lGTar^Θ.~X!I y6;w8_ݭk%Co2ӋyfGFN I͂,BpK@J6&薇UC|'5\]InPy Q:&_X0P*qydZL.Ɨg) c%)Yf_* 71@~,7<;ՁS1D`UMc-LjƴePW}[0P0*òxBALd #4Ņ)Y{g> u^gWI3=8d<3vYlFB'zMx8oFk]yG-P:sma`)f_`af#5<PEd+c2E `2w zKnXnV~Y3 Ѵ+ÑE8¢rF%sv#yh!EH0†q Ƒ+dwDjg'Xn0 XfH0 c-5#Mƒ\7m! IDAT 30 l2# _R'G?|R yZ`J]y]Q+}vcMRdAGL , y;D7#ԤSy#HL[q\$&EF"Z [ (2u K(aS,#`G_H Flr|zg+pNŇstԾRYIzL g}`|C$`,sܑ"%>fҽX`S$- [X–0u\vf5 .<(-.H"Yb.<Ƌauâj0Y۵s40C$}Ĺ_Щ<K]YKj5sR$V-N.pa.$%fT|1U" RT0?zȷK .̯r1Ћe 5h>>Ζ B],z`6 p@2KpnX`Qe !$)T 1`Qv J},ked;Thԁd =θ#)ZYg \E0p^]*ꂄ)'L`"N8+p88O=y"ׇzjk fiT8@AA-h!@[{xSU5<0^LĴDR 3;zO[-gVE2ќa=wAGѕZl3ysH8_>s$룁|0rQϤPsaL1Ws|5cϠi*[!ۥ#BTU}r:ɑM߲*FÖ&Gܑ֡WRP VCyU+< ["UCRFygH@yNG`>sd&o+A&MB|bMJr޴$|RC"TSv{|oR?cfҟ(k?u HEc!h1nڒ,_tDaa=9V^tj0V)HApSہ[bBk28 x !|v\Z7|XEVt(O3;߰HPfԜNsڸ<.Pvʟtm&@F, \$ ##`V%豭*` ,S8(x\@Dvr4ʻ")dVPK DFCՁ}Q\@i}%XQ`rAhqADr-e@H80y?7˝%/8\P̅!(Ӯb`yɣC11;PߝLP|5J4%(W(,#g {IF:q[Nӣ0(P yW2uc.I^0@CQn}n]߾{k=>q{)\'uBgUhڀXkBVg[SmkoZKΰu8 }xƣ8EV:\qtGabQ鸚`dQ|!L<5$ꀘSkâX T֔h0J ӟ!_Q4Df#QKy0鐬ob( JB 2uǺ`&HˑIkuv 1~GSXr^z勥H8n{ #l9S*P!ftqȫkiuxt } pjA)p:GH2=\`4(OrUqeV= n $СIB,%DlAp)@E9QI? YHA #EAn\"\}}r]eBǨW%YӴ^ұu])@[4 kk5WOoʋ A zBENQb"v> i>x/c{{kk~4P>DQk햜Bo0u !ԫƩƣVMN_i> HxISz[DۈF [1hHHZю#|KB̻h n}_E⥂8DtKIBAU4#$g %GLH0}|a-racn/ֶI34$ֈPR BYRQs)S Φ:& 5]1U̇tg. ?L9"^^r/f)ޏ> b$\H|q c-$e!*\X)SrV rKeËIHL ]!i*jX1WGE9jtFL(UR}ՙy83Yyt!Ps5br*\O:k}b+w-SV75DL"{Ok"&Y56eu Wi!RDkVSNҮt &p f=L`:+pʄ/b+$>nV1MMQ4Sx.&+*rsC+fm8s aUf+9~(5VQmXL X&ԏeyt"V&!)Y~獶Κ#U2HI\Uu'A֩G9nW[Mɾ|4 Y+T  |cb"eYD PQ jE !>+5)NfX9.`ׄV-lKMf%DvM'5Mh+EMe(( 8&v@f[՘APP(ײW ˝ `u9uV&DP)]Ϻ{oT[ӵ|w lkQK QۨqZSj =Ri6f l+6FS]  StZbsy!/Gbx/t sM-y8Ā0"IK2z(vrpAbW"O <*vyAC0|y]r#PjHhKJ'xy{ֈSDߊYB'^[:V[VŤ& (aд;g"d") ^xi X} fJ߯|ђyT/F,C+FvH<q1LsXXb1$SIRp 6aUr+jP*25_Pib+@W 5t MEͣdPjKH iqz4w$oM"puMFٞc~P Blj]2p{x$9!/xS@"K1Hd]L6 (&8ИjLW3\f+wIM3 Њt<)D3B锦grgCcK s-T[$eW}5|rSPF ɫ3+L>; EMݠ F \ҁ I WRf8edf52R#UycJJxI%a%f.!(H .?9:}Jy_ ӗK H@9ʴ0Wu:``+q TnQWڙkLG1z9SҙSˏw!,w9h*&  Δ;pqP]o T̕E.%1Uڶ>^K^ ]ͩWG-f gF~mh!Nc.ѿu/c< a cWE!G_LPq i8拦] 2'+0ؔsWV¨JN٥,c]KAP[gB[QSՐQUeQF_{e5wyLAΣ!a"$% b$ YbOY: 4 rdNY^J㎹"Ec맟~Q@o>PR@8\ 5}7Gy@n "<ajΡh?ȀҜ#P CDi5$$:%J>y[1D> d>!N~ηڪ0:/ u7 M47G|-oUxl7W^'=X5Z2cMT5v$LYTo`jvy M Zxjv:{iZ4-<"lX)$l% $XZ54W'KGeI]3T0al3_rAvvP$VP J'AUSaR#s$fTÖG&)52V(`_kr ATNSUc6\D+-8L W4 w YDY9; F"?̛*  _}_?4otVVr%8*H|MkQf &wϣ'ᙕ8X&GC3i 28 1¡n8v#yq+=98NRN_$αi^%ڬ H0Ϝ^zE 8[rHjRuHHcWrk()/"GR(/w: 'RL)R 29tӼkj Gx`8P8] y`EEX%g!) G4ܳ"ao}Hu/}Ae䍟N@OG!Gv[I@a)"Gxl/$! rgVMu;a0[0r.:mUh,#<^AW+thh$\`"Z >"YoKHAT:)G$bG)D^Yv=2d.0PD$1ez5Lja}|ȏB s8=X ɸ։`8~ic/s/P4(8[^8g.5Vx(O4+\}؂MjwPsKVLJ <ɜQOXZ!c&;;(ek$G NJvH*)G }䮰4U%y\j(t7-El[ɝ-'S]:p 9*(ޓ IDATiW*{:Ko~YqUDza[{O N[` y8$z]&mዄk1LCI"$:f}? QE G@݈y/Fy_Aҁ#*Qj'iJKq*;L+ƖP-XgF7 =[b["DpGAjRAjr27g!Y @(}(Ȅ2K8"JDVK:HbS=*1Uɒ8h:@9*V'  Y qa<'leA桎C0IP֘Set`F) Iv R0 #Kyp0悎pp|$| W%2]"L"FO!ݼ`5ȶTϖJOȗ+Є`;j54I"*kyM ۍ_?Z0\vx :DD5\ZeQLR(+i^q0*DY{ p^D\pAy^<+5t+pN@fW17o OH3W5VD-k6 + O։~ʺfuq/`=(1no_c!KKG<\ PPMFRIu玹\@M\F`8Ѩfql ]~JMPiEǘ $8bEbXHk$8+AfJVj9"_E0/MV \)!>rR)Lb N72!b(Bv-PvIhu֍TU]ꭞ>Rsjt[n&2[Ԁ($C!Y{tvE/̦]({"^^V=qW~Wvh~i(4  (*B8Px>иՌ/Ss@8PӉ-A/æysj\k!D@_x<Ʃ(N e3&,N),_+J$t?&ڶ̻+1)׼IJ$fn- Lh~?q\4o!h)HC.- !0RRp-*A9b"N$¨T%S=.*rD#8Skh,Δswp4EC]Wٻa2!s"`g$#Yt"N ,PtFs:ID |!L.04 b@*ngNU%|Au fH.5B:HP)$|'jnze:tN*&ײOQ`U#MU";AD/+5L(@^}00nsW෯o^֠wXMON`1hfp@$bN1Sf庸9@%R#"zI>>')Mt՘k dKOHxOe _xl!M L $%EUfm5hYFIDHZ7@[b_jGW:~=5@;bS U/ ABD;GGA.r"rAWDhWj"a%$̣twLE%3xuv]Fyy*@3B;ry4#6&.T\Dy+^vz9IBtD!G1VB~!^u]i¨!Y-(szibW2B7:$)#+U(ksn\s'*dWBDSٝϸj3閺JGHMݔO,FUQyN\ ̜2Z!REU { i>qgq{SN/WV=;fsUUy,p4~ o B+m;ӄ4$44QiifA !RیF ޥ]sG8B jHv1r_U(rcL>eOy/˹ 7 P\g>t1<1Gb0"cyN 5jH8)_@͟/~WIjqFFD+]#E"rj· ɹ:x;:c;aX%#D P^p8,b@b ąyDJMyr'Nk@$(*9xV̇Y/;huQIA>hY?BND;_6vu)j%Z.\] `. fQZBS8Z|-<1YFS0uN'*i #,tT)QS8ށ>>JJd9t o59Rщ)xkRش+pg3Mk̽I~@ ]cS/?o0 kW GN! *_%\N^TFTJ)?pLX4{-,ބIr S^w{}xS=ܣ靮.t˜'L~fk0Ӊ=r@c`E`P;+ Pxo&Ba,k䚾]b([2`D Y*ahHp<`$/FxVrydUArZ9j "@`¶둾䅸+߾X y)XaN{EXMk|T@?=*6,~/-&6I,"A~@~"HNJ5ݕŠo>TkDe UNGG$lv^6wQGI!z9UPݬEŽX)xrOE *G]|Wv匩+x0y~~զI2!z[g8 ]]/+Tn3QCL\DX<GB_Si&/?b@SAR3k%"T%r$>}U*Z:PTS& gRhV3*unsd9W")̐騛4u͋/~狦}cSA M AZbPXjC'y~ [4P~-? yTj72殒*(2ޮ[I:<'C>R h%^ -5<)Ȗ*9>BQR[Onz61 V0R×q!]5!8WBW;-e &[8LbԓmjU\sd-QX0»eԀc95)-h%Wsomp.C 1gSHChMiW.+<Լk]@ 3ƏF^QY g yzӀ:{cWGh7k!3E|1y怎_#?67 ~ 8!#Cc{:/fv{c}I0^CU0gh }Z6r_hf>md`-4FM*0YQn035P04 -C=xav wb  tX /º"G+`Nqz?blU q(Hy:&kIҧI2+uڜcjVɔ9u:@'57:BYeGH9MY Q"T䥌ccZ+WR|\$_p}@m$pVQ M@5 &\f#JT\[=&j%i(y!݆0*`O,^ά !ls]K({#&*faWc~)pgt` K>\$V)fV*Wa:$f1 ?L at5M+4}Fa#P+Q"!Q+χHdߎPEөEB&x[ [1vZml UtS&u^.G..ȼdE}Lxc5Qp}\qR2ᚋ|w\=>Լ{fm5j6hl[԰ $"MB&t̅&H#BHQ̅ͭ~7g)]L$ln!)?0GVʆWjR`kj M?LAiB+s:f $0 0(4crW_msJDFI'"堬}:Fya^ٙp5GK=?d~M3-5GB:Vd#I!9#JhZ iH:$tR&GVg#DsE J}T⫘Z+G&jT3ӡt` Jy3L&E%#G Vڥ6'(gr=W\<v$yf$̻ wS.va$_CF6 UmUa07+p}ˮT[oi5f&h2 Di #4& MrH#Lich6Xl2v IDAT)?(Ky>5SyA4 $/Ό1$&o#N "ƻ?~m/\ 2F/s?m]<0VBz"JGMHQ:يY N_tBKnc|#>CA#qlULE+ @g0+r:Ry(!MEGɮPHN$ ɭHGgVC&Mc|<:L4a0*l3Ls#eVlLtR˶swFVN\U)c;,\\N-\CiMkXMebH"z:$C 'fɝ$hEvE|AEY\aEEyqz/FᡄNߨpc&w> is? B[yĐ4!V1UwX)fa)Z1 M.]aѽG1|jPAעfv> i3=mz+^Wku^v! " oG,) ! WFyӼQo2P6s?{kAnaglpщM3zp"14x7Ä,}L:*Y*a1u%~qaf 3az<,ů:Tk$ B A eH2BS&E 0صb;uPX\{[mT>a7Fla(Ll2Ey&D* N65&Vj'\V5o+zkQfH)w:\T@KD<o0A㠶ծT`OS|CԖ޸Mнj`hƌN[4kMGca?o.(ݍ/_|ꕁQ\H@b0 (a#MIts:&ZF*Z L%")LUZWZ5Wm<+&<݌T`W^T[%d#K"MEeyZ᫕9,ph~2 95T4"<[Vϝc8* d5G~y[Pb.3JPbՍ4mIE y6Fi6; 0AJo E3L.?&Mt*# /*v|⮰ґ`N?@ɋST:l\/SZei%_?aN$2OuW CGxhQRHVj: rJ@t(G vNA e:mau`BNA0\ A$e aKQ%ףy(Yw?_$Y# x$Buڅ0- 8R"Uf֫G^w(QhxH-֛ygϭ{n'~NykoUx$?|=*Lڤ^=1I:p0CаZ>_zοիU(/Fk6k.`#EӼ٨ 6\'./ `%O \pPxA2elu]~0%&(pIei1gRRvAsce+a 8> 1 ;5_b!W"/ z?XIh ⅜ں8>طI #:S]Y=?s{JoCOajaf s:^X /Áa& ib1< ISAl lɁ D9~E LF0cȢ/xtrۊ2#O1;-$bTU."GA&*3])Z+['PȤ I0pƘ+d@LL9@@vR.0ehCNNA ʎ9] 5(O` 1e1F9&jl(늣>"RZ%A!3]:$< [ gGAMm{8 ϶[Pv"UOUFU$H92jp(8iS6(*8Ep-ęÔ#&OKd̝VdW$"l\<shE+qr<ñ4I5wx !(lfWV`O*y$Z]43QOS3:ɬ-ԿY´ "s&olic^B(fB%6j@̂ P^zl.W 0e+ @x əb R>2QQy#4yb6;Daُt<,<"!_EW 5WgѳCt G:Jqa*Ex DJ&9ş; DWF Vvd&5J(KRO-.8dE4=NJ0QRrwjS炣&)lduFԬ(e+[*roCKU#FxĻE"wK:fB` Ájp]UQ=&m`7+*p"Gov]!]V?#{k \ivT=hhBmb|p+%eCvuDaj~7ϸyd|7ʛ)M@?C8~h4Mx& kCFtkD!|aIXWI- )ZObSFy[: qg>횯\'Y鈹}:=Q:5EATVIIB͉5d43%ǗUT=f<̭51d>Vm%s)y9^37XXQ4oEYQ6L;´ъGmAtD5<>m1l3D~63ӛ tY^hNVh0g g*<* 9nʈьkBZ=& 9_AͅAe +@(ʫ32߿,MeJ'y!$(woF C/c۵?tN巭41Yr xtiɅzԣԌRQr8@MUfĕkE" - ]$˩Vx!DHa:>Ԑ+AB=,Z;10Q w)V5b(rB4c_;)@lT<:–ۨ8x4˰L# ʥn2")ڱDE8"Q=j\.4#8$QHbYYgͽֽ%iLZL8\J^'l0`)QQmV\5QF0 t4QVg"ו)@hZ9~p*HFC\O^)[j X)[ލka*͊I.})TB:MpJ-4W/A9tcb CȅU0YO;Ӽ*[ās]q$G$v{~Ie,p(yBz IՓ00"[Fb5WL= :*$a9NRT}8SCH򝰿N|ea[41Vֈ+-`. X1Vud;D DQ-8$xP:C$X s^aI--kRK~P! x{x3",_G\VUGJqUaxTR0dN"8cx=Ff9rtDR_o^IE ܔcGyXU@r,_|L2mߑJ(:#BDcCyc.X<Gv&5oi[|˫xP֐& q4LJRB^;uϙ*O-fL٫߮֨cR PWS\ J(l!PUpl`"<\*BIj ADБm]5zWhGfz?f"J$"1? 9w U=@.ޞ'%ᔦae+[(fiUPQJG_:k-)f[G=~rhȁ 5OB<ζY5-H(,.*TP ͗fJyuiP(.9wxT. Z$1zJ2Vx"Ƶ=x7>Ä#ejl#B0rZQ"w IGpQL@a <~8K3i^.x3Co)Hsa//&[m=)P%?9ʽy4EԪTm*&[%/T+|S14/9%$Ä&(ɊuSg= iWրߩC4lip>apL!fn zW\ EhN飑hNYe.#݊H"sL SV}#~$ptw)pSC~aPg9b& đ(ƼUjE8hwI Bw+fÄqLӲ悼~1> 7sk?:*ŌYÄCe ui[R^9"4<26m̍CPL^!qĝic ;H0Cّ t5>ky_|@31H(T+Sh^,$IhRL5^$x*@ ;j[]Vya HGm&Ī&eΩ8yMoD쬂D[1|) Ry3,B}2T8Bx !>rG$;+_{0j!E(R(lّ<??FJu}4`,jx.~zY]5F!pe-Q^#,ĶmP?_1gsb&e١05O(a59WL7ŷ5>&纎 fs HMIWnA =-F+D1N4 ~P*y1G)]/30/0k%1Mcu)ׯ_6)H(&_4Sd_|a#)e$`e'GI*#BuSv) l$i)li$ R+M9ƫ|Q$̶bQ+z|8CL{l0! Uu )|WVFLv{#h#l#qmK"&*/9aʅU[򣔉a=*5|kIH0Ԭ FI#LVr #VBLݲdə0D'4((<g{ Rmq$KPwYH;rxe;ŭWd6Iw$; 9fd;H( _Ay;Ϛyp}Ļ$< 5?C5u׮_]+_lWOngke헻_PH :~k )jbML0 ֨ѷ6rQؘjcOӚ-55b:ߩ 㔦xxB&W h4:zgMBfY$K5` \O)F!YKST!BT̐#&mhva. Z8MiߠrAH)Io H_e M$ hb0A#Ћx )[A#?zU2ɻİL9 y!bNN#t`S1rHTUpfH5!Fh/kESf&K咲ȧ}P teᝦ#JÑGU3+#Bۤ/l+c(N![V{2#B d*]8ʗu= cDVyƤ\<"dr <Ǝ}])H_A=Lhz^tVV爐N)c~ʋ#G4TFqrR<o*juqVwyA[]2 R+)+(s*p'8\ͦYcH'=g^F.Uc mho޼M-Цୠt#G#4KD04 2zUAF܊l;4T P *ؚVKS4o7& 0bL60/ /E^y'j$Vj2)/<[)Nm;`{T<U$V< 3p+&#uIqD0Ei !bes2.x!Ȃ!F"VЀ _Uks0pW>eO>az [18) Ȫ*;j4M苄ań_$!/I 8zB0@ K`tTY "&=K [C60‰!%} @XHM"Y(cXKd$tDy"GZ*OsYZ'xQGWM 7跟"x$j' ըXOEUUuJ/򨨊 DuėCG;r+[>z?}V~ !Tl$ $,Գ d4zIq~ݯxPf>xC¶桷䴜ݡ(ѱrċ|VDv+":0WEvA<"r+y0J RJSda+%I$?>olĵrJa֬O/B1IM4g;$AxW#j|SʊJHNmbXYKbi*֓bs<"hi֥# `!\$"7C3r$Bkj 3DgQ܇/Nt0Q~1z-ۨJRH01$<0(8Lv0.Ȫ/ ޏ{|uq9@pZ0SÜ v4{Gkf`.yMo-E[Bki7r4mf @ PVoVevDRցj?tH3XM]\TP |f r-\;kYYar[m1'&[NK%^jiUn-1W%`݂ |P!3 +Z 0T7G$M.JD;hf;9\ @[1JT# <'5@-e u/AA&xdY6(/b'@B QhRol:}bÉ@^m:z=B;Vh_ e&Ɉ9w Xʎ,:h?$VN]+A%+KfT @*{.yO\`< @H cAZ`2PbE+& +=?]3jEZW z+Gm1?7@1HJ  ൮Z +MҐzϩMWL7}\:Pk[1~h_}dp Apj5 [5$G& ˚V[  xUS)kTf.)HueH82lS$<8 BWO +󖂔M+(H@C^bVCͩU PD;dv XQlC9C[h%'+[YKl3xg( ԑ5)E>J²cAь&oӼ1:slQޖ EBsboy0D2Aп}* J ."@^^ndVc=É~?S[Z t kSN<3…qǵU.΍CS2Gp@_"IM(8u'+YL[a:Wp 2Ň0<,^埙hG®*qbSC#O#a?:Y&@B|Uy`^ !50\?؋0RT+p۾{ίu%~;M좻4PC9@UDPFBQpapJ_rdKn|_F u)Š4![  Hng XР"Lu GG?G8-r޹#>xdQ5'+pIb\HRmmEǐx]ԕ!j G\TIk IuS.82 8/.U Öw;"o ʫ\Zz3QF|U>(d<$¼}q$B}7 Rʅd慈tXwjB {1T(( x!3,ZϽɩPR` No[ CXQJU4L10ec:kV *I*79&~ o ?b/\I|a@+~uϚ/6!q爉ࡖ^,\֯u/| IDATU3Z?~?Z n`/ $mh3nl&W`~LCئm4X2ƀĶǶ5~!Gg^0}8 rJǶ1Ta;|I&a8Ҟiա̔SbHS|唄I1_i  LPxG(T( 0+ha $/c6 BY+&4Pk\B:ʂhI0$x8) ?.&* r /b`L UaMpȹ+ + 0C3 3AE%>3?Ԅ->_w _ %SR܁US^`s!rX2LȄ́#GTÑHȡAٛ$CECYM$ h` bP:#-)'Gk1)/TLO?8R" w/ǁe7e^#d Z+Q.5[!)B~y-L)$n?%Erb@B|׺T3WL'_cZciZx~`}Ŗ-9lv Q 1h2[ީq#/N4lMB G$$dz>e B֩d)[VTlo#C1D8eiJjD>OHloŇWY4Ekc^xHQwU5yRd|  0d=PD"/2hf^od)$# (D` %ByD0F*M!>S ؆Ea 馬bH!D.QD`k%YԮ8Y(>LQ״IB'G;/1p(P3 %~&(soU\;겮ERP@U@ Ja8*DGA efN A.Ⱒ-$gčt:&m) }BjW[ʎq)_-oMaB*ޖV-{(hzHdvi td6zFB_/ꔦj_M9؊JP$@|F(*XS K+/%֪s- GlG 819e\Hek4Q#* N8~Va F=x,)Cq'«0A" &|Qlm1wCP_D &xqF\eHJ2C1청@@s%潐 CHbX\삋 324/' SDz7Lz>@ӥ XÀ#[V#C\BU7 /ҷ$a2(UY{-peb yV@Pu#l$~sCXmgAt2QH(,MRk&Vu@F闀^fvF24ހ7CÆPkjOSBH^+ˑd e i 1fk{T+p;7~k ޗA[U(82&h-R[]Pg<}VԜjFnsٔAӷ}%$@V[#1KM(Z5M r_NK\֏uh9 S @.`JYTШ9Ivb(P@*` $B J(`k1#`P3A⤃0$ ^<-@+ ܙaPUv̙X%BT9T^paے'TFVFiޕyx9 AQRbK. ^) ^B$ `V0^* ޹~)`lƩm'˘5F3mi~VdM?&|ƋFZ\4o5]2[jVcj. b0/"MQ3698yɄmT _m** /d.f er/["Drp(@EԘ#j'x.hB DC+fa8ņySm0U̓HHacjl[m&.UA,*< V00I}QfI@[s@o2!yFkw*V0U(;u[;I8D^b@eDHXcV ;>pF Ȝ 11G_8c:P@na<~ˎIM:!/rr<5օvB_>y݅#ril= ߩ18PIǔ&u#U:3PCZOß s4Ϸ_n5i4 VmBh~>a:\VWh/,F TI( L7}  \wZoS^fEyˑn2䂲0`DHA YEHQ\`UhJWOMGVkf*-HD rL hQLXuL7 jì3"1m L0PYݕev C+xhtiT|e8ʋD;Qa*)6 x--U!e7k6ʿ|ҷ*$GNg9 z"qJ'Ϊ@ĉ0eR0/MSJ JgԘe_?*`9-S+!JOT IᕋfЇ2>9Cϐ7E^P>dz^շ)  y7K2ĩGV\VX" [VBEZe [V4 fCD ӑ8]sWمPX E"SCJI?:(u0llK6!ؒ;u>x#LUCYTN 2'dUR@ 0*0jacvЮ~^1G0wX3r_FX+*AM.Ei]C:jioM'1B7s4B~Ih7E40C/B$o0sJ_P̖;x!M㛘x%X'D61.59Lx$)r&!BH.f.Qn j|jΐ 9&![*#$͢ȖB Gj–BG1! V kއIx])09j˵ 8宼ˊʄeG$d5YI-"$NM1y+͉ {bl{>| 1fPNI"B&$#wdL+ܩzWz!ހ(\2DI#)(Qb S<|0PnU"[tDbF?Uyߝ7&޿8߾}yG:r/+dB+@/0}ΐF`H-BZI*`9͑TI kh@ L|+H1N"j.r:64)W1 W%֮gF) (䔗kxr:!]a枀dJF01t&xB(8(̆|H$pSS3͟7pꯣV{#90zŐwdMjMfL24813DY9ՒjwmTjn 3Dz<pH)8_ j<⎉ya7 GEE pƖ/ x:R`$JqdȗuvǾj!§!)$)VَfVfKSl$VV yI[٘KxrB %c$IF;&LYg{^no+oçg  >@zl嘜ru UFY(玐zB-ʒ!bk,fe|VRbhZ%>UU#ʷǠORJ.P֬XSSBQ!.Q %`:~#QTvʋ>w9+hD8@J@<O*p'9۩E%!tH]GNuȍx͉Rb;2[#_rO_sG9 015]S`$68Phl2LPk!бB3&h6g8̄Q(/B#S|V* ѯ@VYmWBi$[[5AJ"0TCdϜOHG㊑m}m!> dK*< 16Z%H{^kϵ߼yy1ߧM_;Yp*Yޕ tklI胥ZʂwEXU; c)k F"AJG1T ,Dˁ I1!2U{3$WPej u;|ehZ $~ѡɜ ;`5\ iӖG N ܥi3DTn+p{IoZEk}K0]*`0ST3UPtk}0mk3 tw{Vx͒#NvBvZERȇ@wPfrYth6}g6VTXs@!eҊ8T WzN+$ ORF"ocjNYNQZtAUC#rHZlt8H0Jا Heql5it !Zf5pJmeHҀ 5߈4Y0ct\a:|PN +i < 0ONV[ IDATA@Z1ə 3|p]iI~3/lkLœw!ԚsO }lDfPy2ǣ" !$qJi˖BVIx:\p箹F(  M?zO v޼t!Ccy DLx¶+ `7Z3C*:k5\ N*Y1Ĝ xhQUQA &?2RFW `5g+Y?|eBhC</\bC j"QF>^5^#D^hF<_\LKNڽ"+/ՊLEɔkG ,`:N¤Dx^C|d h+NY]r/9t01T<@8 .5WϑbdR#dM2O0P#+>{{,#BTxֳWQr*p* iG8ޏCՑQ<0ՁB:h?m)tOQiQ\Ԟ1Z/g׆ [o:.Hb/xP&}#fCixLD_fhD?64on` -H[:PNH8 T0!60y̬y\OsPr]NQUB*(  pQjd;+5|p05`+5p.H]۱ w"" ɭH0VGsp7zܻ_ƒ)YTYhaNg۫E?lWccΤWiZVhHk$Xv:D֙0i"hZs- QMxM>+4N1  M߮HZ61ladG7d+'Rҗ8ԤBvy HZU J.QD w}bJ#ׂo@4sG]\#xCOG}ZT &V<5ͱ\4͝FyyET)W:+P#Hw$$#+TL0&"r$Fy!liRNzV7F Ӕip7n}CoD$-͢!=K);UjP/#dK- ۺ˜Q-S: ?T E@ ₡hz)x T.Z)}!8'J-%.Q=x%We9Cq*(EroĠ+ɦIM)XǜJ9Ep"<b[#fvY^Y3#Aٕfp @LZS 9L I\S$aqk!̣B"? gŠ0y,*a#VTV7jOAB#(.*dz+B ERmi ^Hxg>!Sk-B+TRp}.v$Nխ4:Ѳ- iPƲU߼6B6zR˵Yʱ:50*Ll ztbԶ aʢ ^><{&4@dlKx2!,B0ŏIVcbbD xLux>fEI$ZtAF@zDκ;Ԭ"#5V_K+%ORKl݂BriSaj=wDAbQI J \<-y65uJ":GgGe ONTL`􏲊ihBOj_5T58kB: Z2SCө6Ⅴ>OO HmS@t8!1>|f. a MT!S`K)@bLYi9%VZRСUpl l1p!lELA(N2+ 68MPm= 5D9@VHfb:}ldEP &<!ǨH(fKjƨA _l DBـ^?_|se9D.^ z|ؐT.= /BeaNY N$ZJNi2NӼH$-6)}ק{]"P 1-.91N˅f!Hg  1d Y=?sRE /YmRSqĀ X BZ%%IEUS .|GE4aTqa"H0m#? = iorub 4m4`l^$zS:4]l1~PSjpj{u4VFnA$VXNENRքeg+Y'u*1_"I% =6gH"jW(h(wj(D$8+M(퇂0?˩C4W`uݴ"zC\ڌ^h$:F?vMQb$>!6&9[랖dž@OCRIԚzML#(OD2Y9KW5R6lm l \VG;fKM5N9b%:i$YE#BLbKyf/x܋#&N+ `TaC Iu0U @ubƸAiYFyaî)+4 ݰ{H8s5A=!9̐IRw9ҁjpDXN5#y S (Jdjj7o!Y"nf\ !Ky#*ȥ}C"aR;"9=I<|N$ch|7Ŀzŋx=4 ?ӏ?Kp< B.;V6S q~(1 fWǐ@F@\=Sf> eVhEeC'@I?M!cXi]%PB= w 5v2LϊV/U@R# XB+)#3ZeAg=M^e|p*")Z 1x "f&(N1Qy6p)Ma^elfWiV`OOޟDZȴmCڒhn&0[r yʓ# &-UosYAT?2]^l$Źݗi/#]P1$PA5_JRm/[ &ZՊIV {e.}ak #Ѷcx萠 AR(ed\Ku,oLFFuཷF9c6\^@ XaB5"zSY+ wwZњkGDq_Ow}oŻ>?ϷoJw8ұ D["R/ XDQ=W(y=6@ VaʨՖ jb-"Clu}%ru Y N˨BK_]nuC1A;ەqvO{~)k4NRժg1ZTV{ϴRΊÀ4@@ Ī]HW +ՖSV4j& ਖ਼¦)ri@dkmk9!Ni8R(!iFp\Aa JMTͤ"NGVy.%Y(o:Ṳe̝Q K1-B&/5BEtxOx L >f4= / Ր'wy.fa7ߘ}iϻ ?Û7oʫ*Tj8L$*# uNI_R˄#i*|:w%=!N!IV($z2Uڲ RP^ xVS_y-\~+VAs!V9aHa*l. U!P5pZ0N)0IEʰ\GWrz^qlYL4.R%ٴ+4+yO"~[uƠՄOu>l+.DrzކteCW^|WA] IDATj#@1L>ke>@`bʋw Yuj3uJ/33LyȊA1bUH#i^<4-Q6" QByY r%$#1b_+(D%2_M$_Yb.ˑ!)}Vܭ\V"1(ԟ>`@֬dHn݋ye(/ԛ㭞OVx;6x;GNOϓ #DR$ ڒ[{WRP)XU9ّSֈ_^hE"iV#uL?dl,Lx)Ka6Ž`'愼wy7~@⾸) c*Va-*xwe:\歄t/J LlE_ ' H [`(iu7iPA'8D" LERp& .ʷLx/HT$@_􈄲`\k,Nzܣ5>z+]t|WlF^Wwl ؑURcNr+2IɭG:*}801q!e2[!MI+QGw[ T4.$GnǏsäCJBii-[̭<:E\"nguf9uO(@5L U+ID1,dj /Π '($GtR2s%E£lUgO;|-dk9 7+pm1h ZTy`j2ut}Eͦ`1}A5Hn\%(ٞ˗t) Յج4iͲ-1UlVLd!^c_ʥ>t1E}Qֿ#\H19z`k.ZIxPE_w#0 Š3tδ E\#s-!DB~& ͔GzdgL-T d:fG/2O$RPv7o޾}[yr&ѫil#q$vf!x1F"kcmGD;&ǃr~!LMИQ9pG;rŊ(?'K9}h4՟2(!s'QL^/DMn Q# +w܅g/ [j@x(W7n+rށ@x◸B1Pt&`I( >p0~:͖ p;6@ I[T-v<џZ刏^]ۯofӫޯ]ޯ=hZHu40ڧԐt53ў5*9Ia!A&ci[.uk~u>S)hBjb )ZGw̓NolN 9-SB+jD<0J%JOY0[Q k+} =;3W:%VFpb|1cwGh-τZ *2\@2gEߧFy X%e9#d!0dē&*bHhN$afª`"G%BN֚Z YX=.wft<GOcd0 (Q OD0c{`x;Z;B?3(-`%UFV7ΐAqAe13&hbEmIǎaC0/x,<b\iXfx6^8a2IJ)[QOڸ[ +ZQ#o$+ 9(z%/N~ie(A LYOQ6׬3*f!+y!?P'~…Ӟd{W"!/VLdᱴ/4us*ʨ )Or|;M&4BsqfxRkr+}B˖\2Rpt ;:; 5tvjZ=*0v |`.ڃ6K<tPMQݻwoN2{as\+IkZN1MH_?l!NLZmf4J?̪ TeP&QVEkV }4p"$qNQ!sÑ#k״ԓ@⩐(V)E~X7=`i`?b[2C&N5wϤ 2}4C$FyӼ(~OϨ3`((—QiCi%~]Coˣ+5: RE~e ֩#V&(\IQ:#D rQ3mؐ,HFH \0coQ2Q V Lr"d¶H8бVh h&4C# b♃Zev0L hPF"*5 lӮU`O7w;UV$o~cjFZKs}@M}g_Y3P66N c+J˲Ka]'*D%kL-&'͘M'RfH"<:)T `Xݏs%0sa1 Q5:PDֈ*!55IwW!r[b ZtU1utroېBZ#h0 y1(٪SRmI0rx|4xV+ysM<=&1 릟Fyw0Sp]uh Osl9xCE.D ÙJ֣4L:@A0}H ~ TLˢRp& 0!BY%%lW g -Q (1@`HRcf㯈ɨҷdB3aP*lcWIV  S htO$.HlV?;rMg_hM" inq \&dZ(q}]0?uQdf(4VFym&_X=$Ԣ<^樼(?jWU'B7M|D?lukPF^4WS@Hh*)n)4L'5DZ }͊A) &>CNNWȔ#Ls툰M;U" jnVӹaשZvyիW/_4V@U ~Fy1D:/jnD GwwNk cUxZ KY_,n[v>'  xfhNa`&kkS(?*+EB8d0~qwj; ғH([şm~?0F8rsgl#<bHpnFfkoKC} :| DnO"S-NDjUG1'fŷm-¢ T`O7p;U/mWa<I}1hډb>+E` Ԋgyln j0J JU/֑ڕ<9ϫUR*#e+Y2qDhbQ]!9}+[ۜ OAk$ѕ+G:O ׹()+y@:L+xB+4;RrJxXfa4,xS&C奲s`X4=>g"5M<(/K)`>EI!$TV[9L%(_[ /TcdzpcU 敎>šVVt|FyG +^M(SgYC38$)Y :9)Xu(i—Kɑ K ʶR1Jж'g4J9}(ƺ炐fUa4c䣚sb UY(̊{$ܝR;/O"q5@Q(e5A` U{+pc]N*P#4OY0z"^b`L^RZ>N53;3\a-.JЊlIb(b{ݨ,*ɣn] m fWA W4Q1棾2L0[Eepdr[ +fr+Rf 'G`CޣeXiU 2t뭼Qޤ+rʪjLIx8jė06ʛ|$_vE8Y¯L'+LƬC8 Iy$=Bȏۿwn9[$V4ݔJmU rĽi92!J"2LɸvTY{lU0F~L4윹_3Ca+-A+(q|YO>v Nu4up]ۇ+`~Gʱ1GAnOgޞP#LEΡ}YyH[gWOQ=)i*51"[BZ?$^- _ڭY[O Gp,"^EF?ǑHE}A3P_5$"8gSVu0$Tn3W.9n-^ x+ 6}ÐHNŻ2~@I_5L$Fd m+@QŋjNjWF@c5ynVVTQkY<|=%dgH̅! IO)ёJgwݷV!JBk+M$٣s*/S mNB}ś q:KW`U$_NauWU=c{W`|vRjUWuz.Z9Āzf0!~?Nx$$) ^E?G̤&9 %|*ҎH&;+U`(VcJ簿d.~VҼ`H_l!+"(Z3ePqJ˗`!ƃi4;jLMYý` +X:jEETl,"/Zݤ8y*dAMBd?7 p#a阨 4P=o ;4"}&jKwl >)L!uc2 2 1c'!%Y } xGU 3G5!(,>go(Cho[U0Ϟ+0̏#*߫;#o-Im]?`4E~Mډix턎iZNký ]NP ^n¨uJ'T@ebDQL Lz׭!OxUbeR-tօZIP.CM`ʰ,J_X0' lq"ފM>%C={5Ë(?͛oI]nǒr>7M̏*_>K<}?d)khZ 0{x|n1*q R6|3Rcr-q=N7 #-80M| Vl> +*I)_',50B1"}/ |%Ccc৯R->&5#5?b;iE"DVx?m?gz&YzB\;Uj:0y{Ԏ7~s/}˿%h:F3H+g[O_lsSt 2ݑ0\Ԥ(«(j y8uVrY))Q+@L8 4yMZè/C _6{1oۤ /(o~5".J}T|&V#V?lUwe&NWy؊ޝlvMLJ$8b4|IBi@v@FDnPF $ŠgBrrp' uSw_\Kѧ%/<1f mhʇ0Jy|?Z]E2% 3-y˓@Y >zN߆1|K_{޿ w Wn2&ͪ \+2^û@Fya$?qD Hd;^`Q&{S_W`u1 -z4ɳ;P[c-s~&xDQHfKđŨq*w aŁV m +y+&") ++#EN1NCÜ|!pC9d`,>#& \H0 {+oV 4"PM$eaX󈔢jC[uJ# cXwPF>M:3՚%IG̢xw[2φ/d- +Q.a}z9y+ ˜+Hv} `|rtM􋐦 \GԪ45vĜUj*OJ)s_JzJHS'N#_)DtukyizvN[DF[HpڙOMD(Ml|KDH)JH°`9hJ 2|U{) )-[WZ(N%2L+ IhDvJ2Hk Z K$Ш9dFy* ^ 4"]! B${059F=N1t/\ xܠ6Rͪ`CF̐sAI/Mh089Z32Iɶ 3a'6DKq}BDnGciޅVݦyBcdӮU`Ow;YifܺTBAJ:ʐߎU IB>GY mG#zI4 4eu-IG9&sf#c")Ռw# f3#4BIlܘeoF{ }+rg"HGb`K 5y7s[M+M3<%b:\k!Evp"\DMU}ah<4Tք*1IZF04UfF74ksi޸0|j.Nv=9y^:Ⱥbq&OV0S!t+a:e|OqKS*|: Ք,x!Bn-| E϶GO>kU:Vrąr4up*Qp#TnͣBn<94Qctz<D4gx6+p3\NW@; 4 :Ӛ B+*>̈́k0f-gБ9AQǬ4ǓWR0g(7N1? +Ged?'٩9\#zj J';Z#+b[JGl8 C Lb"NF8RtqrӖֹynDl ┬l 4jΈOt#Pږ&prtںB G-t#yz܈3Ny&aOY2+}j"uŐ 8+pK-kVFb-aU 1AZFr%p$։p$F#gz5٢a89~:<ݣVX*#ik| .=c;~oC4I .Fs &4Nx: 2e[yӼQ޼EG[as)yJ\`B)\9?5&Bidavi/Đs6ES@tP)*UByJSʔ&W#'|_(b B\)93H)@8/+6 JZ۲-yiGSVKH\}ɺ\|n&-MˆGR]#:=X9Z_ x Tp+8#>#!K!NylC Qj@jV*\H0jqz*P i4{S+SGx_;G3t M|VV%˄o>h!aK>8Pt&)4c󽪧^__e0Eqd<ʵ8I'l \qL0Hf/ۆH0*޼\`8Le\ Ǭ db![UEL#ۖٱ8VQC($Q7(8 ml1rYH$ĩt]z]r)E GRauW*[͝o^!G#Zfk/_%ѪGB8SHzpzI-YFO?3o7B=u:+f#cRc;[:˛M*9D+ϱ"dZa8wC( f4P&޷佛睡WȾ0Mh>w 6cn"0v&qOE3"`LZ3p"\3GU %\a!$G gVБ5$yW]Qއ"VnAz01/G+b a&Mr.H {*9gY.w b/1ygOKBU":.{D:\0NkKG_g2̅D ! J'Pqz'l"8V:o\#mhADNTj$ ,LrL"#PI9@<$ OTDNWGu@41QNvn{ | 1!lZۮOԐxx& /Z~us5N%}L1k? [TL :4{ap! 2 ₂<QMUQUP2h ,s.Q]ۑPKMFP);WF%cR6қwLSj !4͛ÌPt\yxw*)`8zoEE)am h/gVV1KY0Vm_!0JA5TXe9R4 JRpaRcJiʅ&թ2wv)HT)]qʯ4 ՜GD)rLQHGr߸,VA5DJѩhBPl DxjS*L >sk<({y3Aܯ&Fr7L4( k|G G ް/Yaׂ"ˊ(PȖ\([&[I$Պ!oPl~ p\`Gq >Pd5)J\5g܎^$ji^ŏ!+V<RȑPnt) ]'qMvũqZ.aҜ5M)j=W%.5a˅0QarZ-Bj#DY`<}RoO꧃k&4ţngu&+dU@n?+N ?Nym 2sD?!r~)uPs8ٲ59M#iӮVïqg+ lFڪۮD:a',!#̹6e:Z^kRNI_E}UkETG 1:r0nZ"HtDR0͂T*<:.s(Hx _EBG' (/8H"V( &-s$_>^;^ lwO dPSOhIZEA$P ./X 1RVQM#*W#'(yA d+j*5aLp?vn{kI}i DҊtkmcLꈭ֡h|Z$>ZxLc4^YuDMnP09RQ^svFӧWm(&^l2 Q_06F^=65:#oxek\L;Z .N1Xq*FИ+W s( [y.|)|h NJ(  SsL77$%f5/^|J?!w;tԿE*)SN9Rpj&!NL\/t>OU!1pr D<8({O?? B ,FB*#NI?4Ih 25?JMISl!s*MK/ `]:nr1 f)# j> w^[1j 6C^C^Q8ej@ttړtՖP:Lv+:ȅMȗ6lOc(HDז"Rf)TqIRZӹN\2F"9jwR!"![{S mI ){7ilv4;h 1fAz & "h,*)9c m*I,:CY>R뾬(Sd5sQ~cx 0!)aÙvx1l7땺/g&}2Dp{l B_֎2M/;6݆-Lz xDUqҟj'Ex++ʩAj_}\`̢/5|I0j2}htZyB}NTF(<+"P! Ð SO #GE_)k+LTCE)ju!)6G捒͑Jgk!4A=^MWiR )Tիt"/B1P6c8ra*eі1oKU6RWGG-.\Bŏ9/|oD/f=Qch\S#x -J֪Do#^3gǤnSrVIU<:UqbR允U((jhD8*3*CB&qںU`Ow;/_Xj9=:4{J/SҨ&gKDa2ytc F!tPYw$ZKҐax {;-?+Sq6a+@Q^msZݚd'l$rY/#qeLL/?TFH"15hUPƧ2P: P9+~Q=le IɂebJtk'M*_ Xj]Fye$ALl߱1 -x?k=.囪.}.$~|2\T T 4&RTB_V[+wZ54Rk(G(AuTTiXճZYMa;[: " ő  Gx)_[+e$<3 H$+V[+L]P=?[9>p]|.|@t]z}D rkcfРA  1SPcFހ`8)+&-))*thMx4 mM~>i- |$Yu$`L]BJV)9!I y <9(D xSTLZYQx'0ĩ#V0taŻ BoW"yw8B\#Ԋ!Co]D奆Ja7(wr<P4ϰ)Ob0ITx3@ hGl&td$:DkfPyG)CA@ա'M$"7KDcD!@~QO =-ÀH{Bl[m#Y)"!)xLXŁɄS }+D0 5ISIE #r&"f=O%6s-m*0 c$:z &hfmFk5: ~v x.Zc[%*f\C\7sNGN_#LS"&::e_dv ɯKNT1jF9HYH]Gsn(#3;"q7'Q`R:2r&f-Cf Nl1!"GE2OѡolE0,ZÖm)sStѭx |+)skaÙSg򕑢 O d,5 6}0i|4ěME@<~{ ちST"s*;$)BsyT'`cRG,;E,fkգC !4W&O!GW C3MHR×24hҧ&*&u}16 )vhnan-cauɔթK[rj [ S4tbZIf8"8($Ƒfk46NBaIVm%QEt&V  ێluׯ_WYA0;^U@\򍤮[m/xogţR((d+`ԃbVOELSl2o2 V.ہ>Z݂L1֪GQ TFUŜ{qO!V1VW;ω) <^"A`"6܈tB;\>2)#G'W RPSͻH" T:gPx+?捰l7wcxtdǪ95[*М=׶Z4"XS2Um~}T/ G־gov.v=3fG4"; #Me/GTd{$=0*ɐtHr̻Sz*0rdՃJ.AT +ԀpGJU(PK |Ǔ) ) e8Vļ5G4j mdӮӬ?Ѭ}@F.fձ0CI&>#j`jox9_^bMUr:r )KެmkwI_^I7(4$HcQR$Y潵SkZ˽ф8CekHHxƅyAO/l9#3ztZrAB9ZɩmkrVm=6f,ϱXͣ|1QʠDc!ZTiueBPi̝ (,"7Qfb2mLI@ ?Đ c%B*e"MNf"X+>G2'IeQ~[KS 8s40y\vjB`:'7i83!eG;öB O~+ׄ/ Lhj3J!+ k%Ml6Rc@d$m5v潇6b4\uL7VsjF&~5+?tS1 ji%V ~z2FRf%AU0p # HtB!1l\~"6|Gn|li @A>2ogB K XOFV; XcXKd˶)0s$;j2_)|sj Q#<"޴+pjp\mשBNSwAfHO"ԷL':]%tʰ>ttųio"a+G1/9'9c 3t? .oVݤbSޏ˰e tdbPaޗߧ Ҹc&V<"VBNG߶VɒiLٱ8<Ӡ_"Y"%VE2OLO]--͎3ny+&,HͱsnKȹ4(5)CE% O<+֔cFRͧ6Bݣ%ᗚq>\cP~'4{UĈp󴑚A&~3bol7 iύIaI$in~I 83ŚpVR<)s[Tcw|Gy5 :KmYvLX8jq/[r ēXz\G?e)*$8ثR,΢/d>\(WtxTREBlq>=b:` ^vUQF|PQB.`Te06J(J$x,i+=^uF!,[Ae̢:ѫ qKk9̜GRʶӄ[8IJd>g";R 50  I?z|n@7|!8b6 BEwY=|1[y7 ^]4ȍhBz>}a+(] F 5D-!׽Vy>rYY xLJf HRkMIvd #s֭x]ȯ:{]6}{Aj=ԥro0 `d@QvцIFD|(va+6nœ2)9"nS81Q?,t[xp:YYR&X.1gHelN(kԻfJ,ӟ mq#V[WgR`n/B<}Z z@jxtFZa1mk{]_jܣf۱u.Y^!zG(3)>NYr cxU(O(fhIR羿^Ɔg_{$ieC٥WT,~g? g|܊tR#EE=H'&3NRMCt3B 8$@,uXOؕ1K?2j(Tv̭]o]8P`"## UGR:9G|,:pPVx+w40Gy9!/y:q=\f ҥ2(wWJD2CD/8B I G H ?#S&YfR `EQޮ@ 7?f>A6I9'{Hb˺VP<H c G`/hyuf$@J[tJkK%rD1>_z/q6HRH- ӊ[|vb-$0!m9|wz)|Հn k'/}|C !{m4m`q`Ъ kU#D Gծ,q{Ho*֣c=J\gHp7:@y $d #)EGO B{o#Ù^ER#V G[C+4j ώƪ MnvZܖNF‡DϚOR8 9}~Ğ]~*6L[W[;HG:ͻebuaP|oe2Dt+cpBw XxHP<%nv O5aIpο,aƁ1|JnRF~dGD!`n+rT8%n(O'2Q9ψRz|y!C 0"W%{c1Lj1NO?<?/ȇ\qNjρ+bK 5 J kt@lq 2\Qt4gй2'qڵ"@8#U2o<1;PӰhk>&YK-( Wb9[,7_Ӽ/#L P0k xzWZB6RKaubecSG!ЀW p!ܪſP+P4 Sf.GObFnL1nm܅#]Q ,n>@Ln> J @y]&*Ewkr zyv[dTA[PLJ[%)|K!&)/V5LGÎO1vEɢ@e/o+|r}/RwuKx:KMEmU_TLj D=6m>B-r IDATb7ʛYxbY yd֐_xIXt.<ؾ5GOzȍV]?;JGFvj[<*EXhb 2J=jNG QD!pXmV-8Vyt898etG|#汵V~dBF[*%,| cN 9;=g™Cq-H6([8ݶ(ݶHÈō3|W,OtJ`=^|/o:2:.䋰sˆ{꺢|\QaWrn.3wi'8+ǖ M,kPIaeHj;N <`'%XFr\+R;O<)"Cы!#"T\8]ݲCpM &0cE)ڂ& KGժ* =7>Y()m DP@N\s랊7Se/ fU8SY1/ k4-544HO>~WH!VIabN7I:#40, ˒ x3k2 Y S$b*к`/ [5YӪ y w^[_pkwhpU 7Ù"Wu !k8;h,c@bWEB. W>ŭó ݣhtȘ ܰn_^'YRc7tƟ^ʬ"bq$\4DaJe'u#f`)YJyr d4B"z}\Mck-4ħ+VIs_LQk]:G̳]VQ茢sbSZ;_Qg,fh: ;g[?7SR(@|E=)`XТ`b_+P`, 4?PoLZ +&jFD|$O 2ǖd/$4 ͓3BRT V7~j(diVz"U7a. cTa[+{p'] 熃xBs 2+)7鑑NW7UrkA,dTjWgaχVvmQ~4:pO_yloG9q~g=7:e)!Kr&"i6U/)=r \iv Jr\,8\OB'b"=7J,E $ANᘠNZlab+pviwtLTت:)=v^Ԑ_ [6gZCn-5EFho&()x+±rvLpDhXizB /`Ms.&^oPxB (bW3޽AFV!N\ vM jQ+{8#vS?%+J |RB@ v:<__BWJ8[a(6*&WqSXLx[pJD¬Qv (D-Vyٖ( G?zzgD%Έ+ 9bG><­cB(ecVv)`p%ֺz۵kwɾDrw:pOpw ;}}|*qlZ&bE ]%յ!Gi&)ݎn.i᰻Z #95_zP8OU>(t'B$b-OQ'cgwa !țWqەK,2šNʒEu@HIϧOoU>nYFsm=tz)Bt[+n4.ֲ/Ȍ-gD??u)0vۢ]a/[ O$r@S ?/B`0.)3 J2Ÿp (Y'chcm HT>E>|>XO 8˥oE3| gQIta  k8WK)XEϙHUi9O O0,eoU){k3Ϋ\Za 8h>nCm(ZK`[t+6cBBڍ[LX" ѯkTˢX%DU[ gq7E\] .7υ/o?$5p#Q#QP\d<S@ӥo&pW;&|xyY<Eq njB ALXQC14[ǐHJK ٣]>05DV}(#Aѣ$ H*pJZUCʶʋ2r*[Uz kZ4\[>y7Ri^L/u`f9^KfeቃHM$RW#] }+۾v2xO/y׸ '{e !JM8P!S(Km/VcUS,LmGF)?樚ڽ`Qb   `ňtVbX:P14.!agO"ŽUd$`T=}|e"Ъ:8BN(`eO^-YlE sΚΨ(|XAO+(^$<@i.}|j{&.#u|_#g~DX]`g#XFsí+-ٻ2Ơftr8ZDvao@ҙSaz_ODge4>,B HQtq3Sy[z%UR +7+ERIJ!nI%"ve_,qECON њ'붊ZQ9y2:Lyj%[ZmKhиY?įWG),2ˆ#Lć;gy54~M5[IxGj8Ny"\T]͛dg$ Ų DxCWP˫sGvmNq`API/'U]+3 #bUD̠ƭ?N¹GBp<5DRoeIڵlx @$x[hCt\B0?(#)D, h䐏ǵ?bȽ<<䉛r<G:5qw$q K+5cGK•2HʮDwuL.1 qͦFJaF #e#wWQS: o@fwyln aj2r| ]!RrLQp+O/XxbKX%vd$2BАU,fk*EK2N*rȘn-"oQpeb6Nx*JpL]p֜E V4ܡ0p1q@.(ށN߷~;tn{p Vwƪv.^FQMZuC Dx2< /*l BJ''dv@Bْ1R(!\#Y-,+&E,~IR''S8\$ EMO>%2S[@):Y_N| ]%[B`$+eğP+e,J9 Q?)W> 0L+t/w|x7t`ܔZ9nqh&ZKw?4nX;^nH|yCPx7_qY,X$yBlR|2;1#;B_Q5N ' H-uh7tRAߐÜy dDt Crk5(`f6BIJǁr:)Rtmy״'%aS)yR[cۚB'G>!^'d9FZ<Wr'HE 7>5J瀀d^No) hx̗D| bw# -d4ʈåpT;7F,V(Nz,ba"r‘ <4m5ͮ{7JM73ڪtFUϬG%E N!pr$%7E4Zq#هwO$ey˥|()nM81mlna=yvm"$|)nct*^vw'{7O]%aΙa)HA׀\nA:{83p ۅqpD6vƮ$)Po U3 QCx4%_]ei.l7R h~u7E&?wC!V&'"<%(jv&4k =Qvn<5*{Qe̞nEʑR W~jGFm'q Jchy Q,^B#|dd=Ͱ 7_UQ{+7l9>{88Dܖp /  V Fe6FG\>ǜ>fI_l&h(]ΊcAEETp)VGұId /Kzw:pOvw9O7\7է9Ms3/ܦ mRgW;E<,6tuػL .rBNxz$4!CS r6bkK, !2V 5tsBT_.wXsW_}o|VȢغDQvZ) F1 u!a-xdT8AQOe9@ىP]LJdZ‡R7ddr4J]5>xUYOl ] ǁt)I[@CL{'QAZK^ӧ'`9x0GUgr RY( Q, LJ\NӮޮ(ҏdy'^OjK c%^'s Y*VRΈY\0{Ꮜ@fa+_5pNrhQ-XAPGBIJ>֫qTQC8 OJ3V>:D9~w8bsS{'%:0#0{ne@x[tWhA( E-+)*!݁/4Wx։{?N' W (.iW /=nZuX(<ݣLcGת.$,CjARCpws!{P`!tɩ7djC.J 6_ƿz믿6Yjg4QER2FBMF+4HΌuFshr zDvK:f[ !cI%akKz>Q⿼R+Hwܢc yy`5m3qQUT+GJ§D J@:S-ı:Sk'Q $$ $ԡ`w;WݛFhWsS\Vj3XF(1mq+0&CӺ'8 |x-\ 77:CIu=ÑBD:~M:#c5˹sB`s[V:8q}jԝ/qp'~+1}8(G n?Rڕ3pmB8³,)յuδOs c֤+rw4xþO>wLg] .F|q 4ʸSf7]s5XwA|LB:7x?7t C fxmW8"a9}W58+>* = | DDvk>.[]pe6'Y J`rӴj:N"QAL&V($Xt-8ɭp .qj]bMr^{ ܎c5Z%%qs>Ј-uu+ܰb%`޼y7x?ٮGc{C`+xTDDXB+̽B)B8,,Z$2FP| '=G]ͮ:vY2N88N.(͊aA!ȖGj:Lp_bwQR@)tFz',,7")x),/4N).?J"';>^ k_;_vebV0}yU{m 0*]vybp!b)G[T=ڭ@Fѣg) d mG[)iI%Bv +=WQ!04Lf{/݅.E3[@w*֮U>p_M8g䉭NݙҊ5%𹡇ḿed f5}q7fz(O4:_5je^pBuӣ* umzY;ӎ`tU3>u:-ՄV8t.Ѹ ,nh衾ҀΎCE5Pvv =zV&9šaq,aX/Vk Jy\FP7Y+^9h𚏒Ww4$>D Zn(ٖPQ,W(B"#(PrB*2!gɒmISv×h01.Dģ¬L$!"BQeI3z[0uf}QXG}.=e2bZU špp.łU5;E+3z<=Rҭx>S(h%2@0Ԍrw =wdqzG}ӭCwm"WBqc%vBc1@Nu-ס{H`i1{ݔW!0= =*tvu3b0!>KyB!L\,]4Mt[_-~}QIYR᪮dFeb-p.g:rKmVTGE|@Պ&HpBQ5 sy&q%+\j#2 .}oA80 m++pKQ:ےnc[ @!gcw*:SǪUv޷15mF8@!rAeEG4 (ȃr&ǁz\%J,'o)((BfH8=NPiBˆXX%u;XI=QUjR":Jt*UJZA_ɶ}m1r#H _PeJiu̙rp>R_1D}2 A b~"QYˣ>OvR>YC ,Wձ䠊D,beZG-X<,1 ~kW˭B;pO_ݴ?}dSHVGe>| -]ZH\'0OD,0׌]<16컊p6 E IDATu 5o.;#Ln+`5$cKm !0‘B,Ά_D}9x&W70JV|*tYgv:vJZ'DQ2iT3ks2"(a£7h()xD)YAӑTQ`Q]O>"K">ӑw0W |<; 2YDU0!֖(hH(8tb7(,Ȝ±u^ur,>kųK%!JIp I\]*]O}#nwݠ v ]so6麴\EEXFpZIĢQ.Ĕ;NS+1;9a,rɂ0O mZ%uqH< x=?2fR+R9Uah0oSL3 pb)6̫D,S@Q/wIv ʆowVd7@@p(,o.;>f)(ɻ 1́)EG@%o}+pmIj??潁R[:"XE_E|X3"Wv һjgvVDimPr3a:6( .z L[9rT+s}#X>ZZJ爿(8Cv. b2A*bgW:8Aɧ%|Xx>Cݣ:PUĂL-@WpܯqIW},8pJbA:OWTĪOzȿ>sh*2Z9OYk?8T[gP,x]qu+L#ާˠGmdRODQZRZy ^xKG(,.V=R :F%ñۈK+&]].E:xA )6| 8he2ªoyo3/0BUQ|maU !VĢDb5vٓ9@Ԓx+Uk3l@L1kK84bKQgPLb@\!v"DW7oޘ58鸉rP>N%tB:JLJLRCX^HS:ΪPbW `gΚݻwz7z"[M@5{Đ[d]iPҡ1!u) H:V(uo8n.#4>g'+$[`BHt8:&.;zbG]7 ׽NKlq NЖ2ڲPIg!u㫯z@L9oۏ?4Yj/J-nvsܼ0w-=9~c%FQN (eStr!!zRKZY)~j;X>q hU:J+)9ss8(J'7)pƳ n·rۙN1[MTMB3w@PіpbQe-B4 xBF8a0n .p"v80d Z8ԊU! #9Q|sx]Ƌt0X?.zd¹Q g`.E 4mrw,K#[pQm(p+Xv!vw'2V!+<ĤbOb12j wMb%4`1aPR<FsinBfYC(Шjݳ) SxWM@wcvkfƓ%a'Xhܿ~w}gN:П+ -Ld Dr,!̞!+4+j7?p (D+xjCU^$cB8U'M@βE cҨf=r:q Y%Xdz3;^썵|H@¹ꬅGn&k3ŵ84lMf_Cɏ0 D9ӘO6MRZhmUPd(uj'@ G4(R Ӫ0i.1⍭?);ӉJKGE lsRM dEpͦl3Xj`;}[ '0ID.nEOX|j٫1yگ7ȼ{?#Fyd437LJqD8r/w@BRz-&?N̂p8s#RtXyfO_EV d"D! %)"XE+l1:E  ,jA8P qG R# XR)(ʂX # ]B02۲ac(i[ TlrpxBz<ҟx: ]P7wvJ_.[ D DfA]8IQ) @:4%JBX.h-n(Z 5)-wzp7?ҁ>4G>>{ `qX(3T=LFQku岤xʭ-,.EK3EF΅ljGlq6L~}-2&c7 H Av*[˜1%؅#ژk|7 2b}۷o qqX(M$:SsQ~VEǡo;)\Zy}1_N4,p  @tήR>z۵&m 9: v:O?i L ěЅk`SDׁtJԛ`e4/?!%c8;SY9 6(RV4v5+ Ū"α(9J c⣙NBO VҚ) $w:In ѻY.:y5a>5':-~$aC+YUZ.!"D3Q)UWV<_HAy^QAvOvz}fK,[,r}_ni=:'8,],}`pN)e\`,F.:a 0re?N*Q:3eşne^]nLmq"4c1`@g15ߘ`hjćnqT%" sA$>р)3Ijl6vPUŜ06yP G|)d Ɋ g;\2co5R(?p*.QXyϽ*vD^2@P^Dԍt''[ɸE nprZBq?~jHN>CRբL /;p)/2xO%KaYT8V:7jn)`[ *{;HG:ͻ_u `)S~JsHcJ<+v˟C>kn#$R{4.Xs;1KI2A]]tnF fR7Q8x =&&?߮$2]AvrQ %АƮ!QvE2Eq0 b-FybBX DXI,J[[$&8cb@2GlHP:F Q# nDvKWl0MjzSE<;~--U 3@!ʴ YFvC0OJ90{1Ŀz`?O>I$~Xlo\Uvd[gOׄ'e*`FRxm @' e7%[u~ab:IBjτJjRݪʙPj]5$`9\uJ(Ci%J( >]ȣz %Ba$4􃽊dK }%;/737!bx]ί:'8}J=~gzí~evr2O,wUץ(QỜ(VS-JeKڨar;rcbKK1@d,imvM& Ә߸c06o#DRER.)ngc, i+**%yVv%244SLMҾ5Gf7PZP⏰o%PFDv_~ FUL0^jiYIPGNY%>t 5 Gis J7 Vy18Q^T+[!#Ejns-Y5(OLz(J:K' 1953]pY +d>CP ,|2 g[` z%t'G 1|8z^h`"DBŁΨ  &uH[Y)xT@@] h㯫^w~T&M'_K&HkK]7*{u; @n$pzG:=%;FR(x]ouŇߊ auy;+yr#CYr3Odž13\9.f8՜ڨ?.f,HҨ(o׷]a‘/d-s`g1 P^yEDnz}l0i7D_‰1L]R$2 ;gG2(B.zKBjB,inXkSؤDVRi Okcȳ(V{(h5KLxI9z^p0s039jߟB}%v3JfG^Cmv$zK@0v^"n_Z @cEBzsXFWES.nt} ),솘*.)(IQ0ZP4ls%\^oN#,,j)l] JˢLt=nKH >ZAMw|d(b!^~PSHi>JǵՄ'7FR{;8ĻՁO} Q#SR(dtR%dǶִ\Y5of2aXY;wwRG:W \,V" ؖhI9Â׳J\6b+)`)3Z#dn(ѯ§pjI7Hڀ  Oyi}+Ϣo` mJeci8X7"DjnJS,RZ]WY:Čb *m}jō5pxؕ4qFMG[05ܿ~ FWRT: }+3_E!W h2eQt)$# ]=`rK*CW?&],XF>feo@8R% NRnjf.Qc bU!N dye Mg M"OК? ?yL+e -KqhM 'r^9FUY:ZL0G[.P_JR ɐ),`f@̭^QBb:!(~w@;m_:YŮ3y,½rD7qQ+:kĤA!)UKsLMӁ{ |C;`_Oٯ>t),)|k:Ac 0kW)e™[+keƲP4>DSljs\ihbt77Ňa&#MԇݸUᆉX!87N_8 s<;(<7g(5e@8CO Pjİ9O!*X[`ٚB 05LȎi"Jy -oTo!0u`%(#Lyp"78sywp`b-&f+E㳆 :&U!HFDU>2")-jL-<Ƨi^!8HױF%$VX)wے]u%t9L5ڍü茪f , DF^CZ-9XI)ucCmӼIM;`/?Q[J:1~mrw!;pOywQ{p"Y>劓u3gv"k]}o0R4l2].F[O v7Y@Y Xp&| Ls1 EWX n2=XϭU%PH4FHg0"0]# ܌,U94L GbEҏ=SxL(:ObOP tOEf=k<`=JZ!44*0kB8dBȎ ˀ*69enK SW;`|7+=J۽B2(/Bx,tY pi=-G%ύ9TJ(=FJh^9U*[}mbvyjNs(#C')tP:z0+*5<@1y%E@L'_ HRP O-SOm tF9zElw!+k ۬76U_q` 5gWZ75V-lt7wso p_͑R{ Ӻ{,O!Л0]^2"XӴAo1!|NRs]+RE!9SiVGٍ_8pV94ch3VzT"FP䯣Fg '!D*!Sƶ:L'4TB 7F٭<xQ kQt]]E^^^?nR["zzߏp&Q!tጭBRʘХsF^-MCu Q*j“DG)OSH? {(/dȣ䧏s/i `x@Y94O(dt"@($r:β|-z1bΨi8Pl1HbS(Q.p¹w4`zQ^L/DwfcW~KaOo(5Z6eOcYXjӃ\A&&b9k?G f1nn } dF zA[4$d1ꌁ@wf =\L7 FI i8,t,BnX=ZWZBpەVeĭGE52gVhV^#RMVb 3*qgq>=ƍCqʽ*2n`HG oᩢJP+z.i:#-$b0b0zZMYI 5_"L`}o'K$_9`i3sHY{y0dT. :71 !>N}rw_4/xw==ywtMKč !׭f[J<7]6%t&^FJS솏mih$a.A(I1gh)JXS ϡ*, |vdQ^D#|@Y%z5d3e bCrȭԭEemF%5; ]"ʖ7%Jz+lysxԮ9,D.Cikᜥ{$.#3bC7$P ޥ{I">%B>%Gg,{ĭ2D.z9)^ݫ'Ǝ.4*d?駟dQI=&x]!)X)9ꌸMQzEC(DHK^٨t}hYW5ѣ۽ (d7h4DhtBIww%s`!W@b۠`0@m@48)K8 g{$'7!QP"}䄞9om D:R7pњ>G CTXIJ!2s%浖fgsmP uP#XL P;Vcՙu0+q<# b]:X{CzWqVt8U!?]:0*/{ٯNtF)l!Pie牏<F$bL-~ [W"x_?{RFdo]3N > EJ'^|/wjtwt`]ϻ)߮I,kXV(EY!Y(֔Hw̸11LpSA (V#JX.}Fe镶/S @2(/=8Ri>M3zܺ()w%8t>SQ$-w_븫[kIL`$u2= 6lu1ؑ\by3 :ߧ#|̜]qp O,,8Om2#%&#ǚ93Cٝlp^ [s '(ϤDȗV_6($F"I؈?OM1B*ƙr~忎Wa-Ma\ZZ'҃,11pL6@ZxMyBrV eoUsy j]sD *rѬ/ep9sגi,0g&s88goBF晀UL9_4?gw3ղ kLS*(1YrΌp&aW ؔcRK2cvƈi|dv[6|6Č0m~bFx Xg&\Jr) N&V6UlC+?$ 'Tr 3߼o$/4zF:pdx|AfSδdçv>;_HA |RnPMK ;㒗gq Gc1y0bna5g&և3Lrpn5YK%8?50BqP y81p`ƙ? ^jLp,UF_GN#0ɮ/K|o1039;K|`/wa%if ̧͎%f Tg>!#a!`5ϙ_daGwi |ݘ?S$l:Z% y.{54s>a敳=_&J e1yy}g9/f~A |RnPMK /EcϾL]'P"`ގAS3 <ĜY5shhALctVd٬ \B^&qNh8,%iA6۔:9SJk5fe#O1C11@ | 2[dc3j|f3s"Ι|3]!0T҃?wF$g>\)8|鉙]yܗiܕ3k걄7 t+]$ 1̓d'ܝɛ@  ̫`=[oG_ܚ7 ,f_038ߗ<Ŀґ7E7m鿚)[seaq{[-q3|rb^γ:~$TksŒ.S֙b]fNq״N?53L1g23g3nh4vܢH6$Y+$f!ǔgMl3g]K9/XEZ}c:y=&\ cv$ɥ$.97`|$ #a|3 6gگ3wn/f dBc2XHd64*[G9w$k Ϳϥ%ۚż_˂y'}2p;NLeIpI0g'pp)5!N``Ƨ63 f 9B-l>5;̡.&0%Ә,a9kt9r3ҜxW)TC3ֻkxow[avO-rxl6]&˃/<<ܵµY()M zcۻ2>}?&le֚T>e\R}2i9Lt״ f-1gMhYFt \ܲi9@1UdX߻ܸ\gf_F+ md2^Fؗzfw˛Ak*HW9'd3/ǓmR5M<#|P9$ǭ3kELNNJ|svS $=ϩ*yslco'~ 3Y2E^qIyְ9njQX9_Pws~LWfaܝ ge&tL= $T 8\sk-AG;gpn5aq |#oê~ȴReE.ѳW`|8"0L@=ϴwݴu!0< 3X@En3P.#/%fU/ӭ"o|>d|92ߝu$gh$@wIUg.0m 3RfU/ET1g4e\>|fރ{6\W5@Hn*5!0mߣLvA<9nϹr#-';i@;;zM_RI $@ ý-k~tMP]C- v~ڹyc= cD ۏݞݿ:59\S6bcDV,Z죥]G~Q&%[=s?^=ư&I< P>Md6ǹXiKgإ<\,?/Pg,`KgQ፠` ?Mߞzs$p$OvyJ[`gLnR1c/z]Ö7S>;8,w?IA 1",жne9u5kU epٔFDkuV=Ui6t>رٌ9-{N1F߯}',n41~V{tp pkg>xy\CY"4إwb%Ff_{Yϣ_[2m 4v>ݯxvop}_? Kl^sQѾwQU-xg?Ks1Ɍϗ:5Q%{?": knw5KA $YpYXu{I^HkZQ0 mm, q &5GW;/Lж K` >o߻.cK]Sa`]6[ϴ ƴv6޳>W& j˒C]c#~J(ޚ^nIsY:ٵej4 }wVlNB7@)$LJNZ@䀙%)$INpS ,hO᱿eh~-4 mz5[ EK0zlF8i$J4dˈkx57׿_Pulo̴߫.d0uCc,[)cm}ۋ}'8wʸ>`vűMIpc_֗Kpw4ޟD>3ol Gzb,eTֆY>w{{\-]A7h*Nk8DRqZʬZgGW80[$b /yi?_kfGC]n ?f8+n15j?6U\ձRv7˟c]qs6w,˱ \ ư+am_͡GO~ ďWqP3ڈ-kF]8g9͝=8niCՄ: {sF1ԛ#ݶ; ?a˗H1'@6+:bˋln Gv./Cz'78o .;A<2j_☒NI$׷w]4d9f~?g]3?-[kp9d\}M0/Ib'"ܬrn;>n;I',v~Nޓ]77m]~}dl5U\o&EѳVJZ8pղI At#MZϮ9Q]"}-?ehd.zb2L$xY#}@YS hqv8{C{P{0ٝAlw=4}K܀ 0cZ$ w^j35>q>eʱ͒ $`$n=fu"gٜ`G߹d1=?$ /g*-?|No~wן#-__·]_՛ef`s'#ld'}X-ٿ>IX?|/j?ཱྀd65Eo?o'm;ty6I߳d6?Y 'z{v{O?$|>}+ۣCҍv~^՞}_Uߧݬ=wRF{W3D~vV91uL}h_li<$o(*}'omݻݻogտ}P秷Ek|ˏ8BIM XICC_PROFILE HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km!Adobed              ,"! 0@1"2#$%P43A5 !1A"Qa2qBRb#0@r34 sC$PScӔ%Td !1AQ"2 aqBRr30@b#4PCc$ jj7m?@kXLOKў;9"OvO#L'nk${ w19"ʆgڵUzz-a+ipu\TWI&852vla¤UgmrnxBe}WC=h7W𿛎zh&\ZejmZeTs}gY[\NKGLò+NzW82$^!M6]=l_av.;,Sx!\AОm|kAOHi=~qd4c\q2o\%rRs85t)~u7}*򶱬6DhYvlڶIʹ[Sy+iey5hNoCCԹOi*_oYm.*6۟lt2ޯs ]ЮbF73 4}h:%FmXƖ`<'5{gO>=E@tW8U*bOĜ@|Q,{,L]J|淋EpyǾGټ4`x>:4-}c6W #ws曻rhV>fsg!ÒY1@ܷiz6Zf).N3-rX@(ܑ]V>s­jcHcR3<-Zy/EAm^FWfԬ\MR*u o+4԰[֋y+W-ֹlNG|+ߵ6<@vCa;x{j)2YXi5:67ݾO>gmҺ&M tLJifd֦\V`;M},%pJdDKnϨnT!0X5gy6ׇҼ+>JhxOxG0>˶PRWkZ@I9o CwdU%ĥusz$ncxg;ϰ5󄬶:_+euaOXax۽1jM}|UKU矄:ت;VHuL=ļzl fe1hiaMzWjrR;ۻF<["YVUɪTڨܫ9}FءߖaM3QtDMbM,,vEz{_Lrb&/aa1[PhߗBM[~1^r*Na;UdE]"Gc9H}Vf6!-"m0!3"oH$IaxC&2`oXƒiF[˭\`fzIO#UBzBFޜR4!p)Igy(pPxBN Oy.tjOEnɭK*$RNL#yc]XS=;&u[^ sYXe*ξ|FoJy} zb0ў%p _<ۛGZyѾv=57Ӣ<9y*q7PJ':TR5mKg2*ws"T4}KzZ*3zwc:VV7hSRM|m-1cĕQzfҡ<͡oGџ:4Y"5_*n4cVPf"a3FVЫR!hrV.8ȕZ}>5U&ʙ%]ƨJD l}| # x VclJ'PiݡYQzj/Nsʹ*缫U2KXI%|KuVp.v:hiS :D#&nUg=gOM1Qa'E,Hw?OXv&qfVhlʝU#*Ȯ:!rJF a;"/[g`ΰX?3fX0N(,(DRf^pCTe"s?;9Fs(cn=du1fJ;1XJߵ5}·0$zWnS0XY_;;RdlY{kJ3~VinFP@+sXHH#\j=+iDz`!$!Wpc@$v##W [زƔ14ss0(4YYFvXᭆ|H`$xgs2U :v{^5'!zp+a^!arL\:::::::::::: C0*H>+"FrǨza#9Frs0}9O?a`]$g"j#!:hi?ƳT"/F*7*t4-u5 (r_'59/f/Y|es.ɣĻ/v[DY"KnpZh8~OoӐ;_;s#FXʧ:I.rp +¼)N@,[$5x5aήKʁe ̥NJ/d[,3F3>D )vf &J)#Ȏ6vz) n7Ǫ0`bt=X2IB(@2g-2A ʗk9/:$B2z IpR@ : g@"#e x /:T->9lgf' ~;"=q,F98W׃z/gA>s8Bާ89Μx,lS8p3Fr3g#9Fr3g9sQq?gݻ%l+tl9/q$MEM{Z仧* 86@m]mQYɱgx-޿w{ly<6j)rt#%@$l~YY#=psV:#,r,2G0#ؖ9*V6BŒ#g qT=rO Kaf1FiV[al5|7^kZ$a"nDa C5r~3#8TgH0~p7Ձ?9VXȭ+(eIOb:T#rG!u4YC0f?Bzb =rA% .4a1IBKt/wi-@x3##8Μ#?0as={?1_22^{ OA?Gy!_?<_R*Fo<>M!qk7IRl3:JdsڗΑ 3 c/o^3GtrI^\/"G9q败h7Pڞ#4!}7>9%o-5]+iMTq`Qpܔ+89 34U9ӚM:oXUtTK 5Gg8}]rr}d~c%5Z^-FWu#7n7/)[?UtO8ؓVͺQ.e"hnH jsR pu&j BJ9¼I8chv/_>,zd֍jy%t2.O]bY2ZVzoe\X¼gO8?գJvvnđ"̤eޕ_LQ4nTC5j(AJ0)8J9p3\[aΣ+* ;dmV3RQe 1WaXoЫn5:Ra(4(#xX^=f7^Q5h+Hc\9Y+@It2_X$Rb22^/LhL ]% ޡ.ǻ٩##|*Ym-dˠlԱM8:Ě*uNXq!$+|*.ILxhl^SCx]V-/O{MfY4c%]rƾ2m6+uw&]4iYU3y 6tG|PQ LvTC\kPdy7ص{YceMgF|&mq=V("F2W 3RsY@E^ezhDxhH{+B7x-E-YhU  f:v[B#ÎuN rڕ;+ycY LZcɁUIo:9PQ?CᎼHDGNdol|Or*nܚ(t,ӒcmȪ5#ORktκv;tlQ)ڕLNZ a36X @2M6;IgsmVnW}]VW@*jC7 7nFHVgpgCXw5P\aQzW+2VM՘' $j9IHT5Qr?{?#Sp~v;$&.C4aE*mS)e+l.֥ח!"5$^$ګP%y 2zڻ)2$L.53iu~Y$­K :R!B0xn8oxIԿ\4nM̼~F'jփrkkZ#Lyf'j/jal&jQBIm&0uo^$Ü@@ yfN"k"t CE:77WXrsM->L@xL[8/zWcVI<:r/Lr.Q'Wt:x70`/=pTӝ9sZCUʆyUN H<$`e .sdo4Ʀ1AjL c4l7&XG&d2rdЏF_y'c#K*ی]{bquv*(A%A-p[*-Ԅ5%cLAHGPgc~fXYUX.T?K{ F' "a0?iTBG> Hz6q60hh*4mo/p(8Ő+KORSܠ&$lXX.EǽC~9َLjzuk-^XYw9QC"uGۚokcIؕ|ZijQw> 8lVޞ-930Z`K)w؂Ib:g=}#]lu(֦S0*PJp)J^ENO|ϥls[ٜFfp鶃hpc>IlW>ϥl8Vd20 dHE-Ք(Ъc1veYew[d`TrɄ!yR(pX`A'ӧbrV" n'@圹\!s@.@IbʇEg6pMlir J? "8zEjYZ1 bӊc R#ᬞgrr-p!‘G$"`P !+BPьFXX@]^3, ~x_^KԻ+^\\\ޗ_L_g?ٶN̄m#X^.^` VfIPjy!tADF?Jf&FF`>KBUBp &ւ8%C!0Vֈ޵EU&ndɅJZevlrÜdJ"_Pez4+Af>H6kJ |P0*,xoJ 睔ɐҚ!ΆBR cDm@N(LM!? q̀@>/ھ~W~>ߏ|}|U3(ts)ߏ72>c(8W]Pu|%oL L\:Bb\:Pn r` Z8 YaJrv2-UR`a_vR޴[b# DA 9nY.ʥeIMطv>Ϧ09NôvQlex{eq.}M7yDM'fbr145 !(A |"ʴD7ֿXqSy^aj9)$:GDg3`# Ո>!f-u>\)ɾ qvs\vE??P"Dx]J Z:# @GBUB9pk^ĬV<,S8 V -hJTN %o95pPߗYD?"N% J:eoHm;63(~\|Js+ϺW˗tuHK8s+ϺUB `R> OMRj+z?oǟkHQNI&KeG֪=+IXzO~A e̾aN\\ww;1N2 UP-K$N1cB8#fDUnǩ5E;Wҁ1Lcd!.@,ܩLz#K>C`8ƜwDhzSI(|C} 8#iB=9^T18, :q(Atdh0qNCDH}NAbXP"!X!8*8kpTӡ~)-iaBDl81d ehaqD؅9U %UWHg&KrAjCԱXV>xpXq^21%9.XŦkzU95jICz3f¨JT -0-!I]o*2lR-iUK0B-"EկB܏|&tIM79-SxcNbc~kv=5s[:#. ܎# eȼR $Zʉ<R#x1^;;Ze\a p1.l`<(ۆ1I̺vVTÕEvڭAc*,i+O_ة)*æk{m-j}Cz?p0J쏞$*ڣdWUg(18ªOSK>$|!˄ݔhCHR>ö 2=ե7L̃Oe'OUGi~qErWU@MEb )P˛&>r  kTƈۜIwTDUI;j \}]$;hWu ׶h;G~ZgN$mPȝTA#,b7X6Q׈[: R&JBY68Г1Pis@G#<(1@XąZ\R{IN[kSZV]v, :G}&\Xa8rU`l'Q;dmf4Ȗ40 WYȇBmr'* xNc$ ~,{(`u ƵmwQx:T$]IzL].6S=UrB*ؑϑyn?b>U˙s#` *V%XvSmf{45"WZ!Jv $c%Vv2%{kPji 4hjXH䩥gʫ﬙\%?4S$P;iXT:+<7D-lR9 A;4+QIz_<%"Tz3k 7Fo/ p;,`[ՊHcAI ԇrpvSvfi` <{AG0(]cيpڣdCUgF4N"OgesTAh2(1Igc/Z )%Z`b"@jT[EïNْduֶT)ZmƭS##Fɠ o{%{+QG14Ck_Z$'iK0nPMԨYK,ѩ;OeNMm?f6hWX\ ;wl(q֮3 >Z@DW6CF0|Ux?NϗSZgmMj+M%:aR(\ǗBwѻEmx4AѻMH$A^E;v { PDu\xw$;)/1 fB4y{iK高%ք"$L {sfQq(HϮ̋/P' 7g;bkQ4)Z=ðpSɞ Vb;65ҧ`طkz J֫3=N&까ws߇\meb% DV\Ǹ,M4aJz|J`}oRT@G>7 HSAbԊU$C t*d$U68`Đ|LWտ@0!kؼ|jnXۧebHt6 _NAL<3?+y?fOٯ?ky?fOٯ?k׬O٭zexǗ(3|IF,t|_fwQu0ˇ7WOf,})Eq׬,R^ӫO٣Uouf' l5U5W?Һ)"Grh|dX^hMMm4 TvgG@cJ\-5 u5\dB4|Vӥ* h( F; /X?ON* &)nAUmEN)=r@ n4|zo|=W'H L]N^mOm@kgu|u*[ Mʴ8OUXs=[ܲv]47-4di=vP鹄'`'R!ԓ%3g6w>S#!ѹj6Pa5Armk5:|dH0U-h&Ifݬ1dgP2sB*k^(>UٜhY*~ʄ=3a&r3ع8 9rχOVAEXI'l{aF/'Uvhl&OՁljm=C2aNKe8\lhSGerVU}( d8p+]L; kIc LNvPo p})Pa7)|xTAdcH^f#pfiT]z w'oSJcᡃ@on(WѮ&gZ)6ۭ/LQ![:N9J1{DeVWI!V"YuV1kS+hF&$ҢuUB(v 5#'/uLIV3"8.DYv+S̲ll"AASI: Ptit2aʲUCd k/*Hʘۇ?_}L7a]Hv|>I5s|?!GQ]mkWӧHebm ),dK4tA feA4kg:#s![m% }F>tA jfXVU'\LAy-hfc,n'AH>q#IY0ޯVÜOGT_E2>vRt/M?Pqp71(]L=}m*{ ; @,c6Դ/ ÆF2C1]Bc?oA+Cd ‰ufOVI<(nn\&+6 n×_&6?A6"z\E t\k2n3*v AN\4Xu}p˗oN?o[D 'Oewv}-l ӓO'JDͦ"'{? ;gndHDZ ;;^ u G7Mdl id2.2$="S^^[ X#_ fU.L;XZ(su*!p#L‹&tg-8A=}^$tչX1 *?bt Mn|:1tZ7R;k^ <_v4"6KcRL{WN/ )pⷎ`JɇʊȲM$wkAՓ)j@ &3ϛJ" Ge>ɇ>3r;Pt2No7P,cyT|` 2<ؽ^rcQ?-jgO4]~ә^X28ŏ̤OHڤɌbm OkO1[kc2>glhA^I;jÿ~!Oe3>MY@fuu0x&4BRnC;#Sq*ᑇs4:sjrY&"r-%eW&,x ccY~W'7dWSSI#J*4@;'V8mAl0C7RjĂeBV#kYqhAh{`39( eŮϗ5+ZCp KhYZ'QWM,ٛ^ FFփ)*5ҵ4n<*EufxlWRKNjǷG;$ }5gJN5g#<Fju/yHϒBfyd P0kƂXܫ Hn%ɃkA;"3.7C,Ϧ TQ((3E±z*؁Yq> tQ_u=3BTiX KNPW`CZr2NMzUo|mH7+u4HQH '`h}5͐&1!ǙK'UƧOY1q${؅}P-O`>_|3=g4[t0an wwܾFǟ Yhe2 Q nLrbqcYKteꔆI'IّeI5cYr<$(29 "([(v}nbj" ;j1+m]7v^ s+BnxeS2cu:j1S0,hd}ЀIOeq*1l  ]nŞ( jImJ5LPnm5_ ge\eƹTRQœVˉ`VKm+Z'](ܤ u fIt"n2ːC6 Iźg&9:_tY>fc j5bk7Mr1 :;Ozlmtŋ Ɉj .Kw j99_p96l'yMs18g~cƽr˺oNn_zQF~ Xyn?JV C S2G3E$(mQcӌ xMj,FP<¥rj6a_$,L{<ɏ$?\E >'ڠ_ĸ06bo$\بȧ&*q&hj>_z'NBqs3c71})e`" *|)s#x,_@&kJ C iC=4P@`֌*j 4 XB#7(bfxB#cX) 8i]4 qIf4CL~Y4fcye&Mzr̷bDkq:hTJ1$xð3FEYqa*\ XN٭MS050aG+dTX}5VD[ɷ_%.E2uUz̈́5g }"dPkzlEjr_̓| 靀FA\w SDԘA-Ů#k:NӵEj{Ă5Ϛ<׆g@M(;dwσ3 8Ս֬]KBAEߚTĵxQ :p*bnu!49L H՞ o:QVo @`1S$@⃼R|hnh鉓XƃO`ghI Gm@S| " ;{x65*I"Hzժ$A:wP qm'B[EW^I8uB'0A;L Y۲tEv5_p5; k]c.'L6iNj'dd 32cőC['dD; i $QbB΃J:L72; WW OzBZ > C4*wKZ?5E;J[ 2`8!h5ӛ{Eojf{ngG@<*:$`%Hﮟp@1 r5Jc3hH5 N:=Bd\NT\t<"?|m UL@w/!p.G|1rx&Uυ rJc4'Zؾz >S;j٩mjSpO>D+S ?{ȣ^!>XҶj路*+~e[U7&`ϳY1>k1v'E 5pV'q5C8jwBCoҥ;6QDq?-(p~)u}UҨ`(K99kl~ +.E|.IbGX"|*r^X٭Hy+CGRmRu룮v^4\?x$dZx3 8Et2upurfW>.N4k ~<ʞ~K0 {\kֶ.UZʫQ畹)Ic͉y-nLŒugϟLO éu gXw7\!Qrx@v<1jJ0qhjO,40~z6tԩ?IYF?ߨ Ʉўm <ʹ)ٸ'2DrcA0IP( X@apaU!)$dm Gd]e)>F9-+!bwV +\N4ٱeǓ &E+6G4@mF1n1X{W.<@2t)2n ~ XRN0BKZ>w& ǘ|o.LYeɂPrٲuNH*ŝ"ՙ1eecL+NϚENӦs3*}Jҿ_Z鞮WҿE wEOLk&BUL_-#2fAi0BA R` M=NVu0BI "ZݺwH uKc=ɕ]JG17%6 #ʈ:ӻ@ ;;ȠG 0`1; l07mS Ђu۴T*~4MFHqӴ֯+p9@ȊCx-"'@wDj5hPOF0TO @ ΔD'Nڅ߯]AR<&ZM5m`Zu(Ju@Q0wZ1 `7MK 6]`MP*F[$˾VdyinԂ#Z&4I6[->k4Dfĥ?rٞA>+."ƤC[g3WSwVі@p P0N1vTo4K#AT-@KL;4N'mlmHҌ DnFg֔+$γCL5+f1-hLԓMMe[q粦 {+C4LzFhD7RB(b@%PB`!dH鮀v1cD+HҁMsuKo4'[J`·H#(-ZeD ډЁff1'iS1P=V[]]q?dP%\~MtkMC4-w F&wym=~h[]-5TU&'T' eo;*9lwhOݰ?UK#)}c~F~ ÄT'8Mha?UE'!w🪬i6&P^['&X ~rXjFL ֚~֝)Y@B7C XfH튑xN?u[n,ƪUH?U~?UIܧ꬗v6hnZPq7PUL "tV0\8E.:[~ !pc\\lޭ.B+("ǐʳkY:W..A<` g? OJF+]o /3z+9\ܑ&?|@YQldn=T؇Yg@b:VVÀ/]: hp,G³3a%^3Y Jmnרbܵw~[K+!w&:zR.%f9:X⮩z~{e JȐ w_O4}ɸ8ؕ(>Օ mx/ugSÏ"HaR\Ee||Yo8qb+pث.qL2֒N7Sy]S0@f_a=>Y[nbҜ` 1)9%A2H2|B9~$ܳkd0 #Ux,VDߙ&7.Ye}6|y@%BxGjԳאK1i u[%It5A FZ @cS\}VT8 rx<>*#ǹ2wOңӋT;?Jh]o6Lu[Jἓ@Az}g\3e hؐr%J~6adPI',#A'lڻ&4+18OLp#4 o4BZ9s_>VH5Bd6Xz1s;HTd,2լLS"fR;HnZ^b0[г\#b䂌E2*LIcX~ӕ\I^& #h|ʙsUfrVdU!dόeǗA$G5+gcLDDYb82:UAR̭͸H$WR:!s5fm< !rY6@WioU_VX&@@VC9C* DVdb1,%njl:sKq.[-J[mP $oDž'"EZ]"[Qo>< m:׶Ȃ$~ZIII_[SfǢKpqݖ F("A&}>#edHI$W/7mpf5Q7;6[u/';7V"flu"."/ebyWŶN4x⧾Nݚ]毼+foY=}];>epv3uNg>Վ|dpޭnպ˻}^W(-G;;{gmgKW?oh~h?3|_ٷB"7E榻}]&y1٣|Y]|y,6Nmܾ]={lji/x .<{=z{Ww3l]uomu>I=;rbt~=E7lzۢu[7O/kK<ٺٟ[vhkunպV)_jwN{OoۯS"-}[cVg;Ne;ZZ{^]m7lpsychopy-1.82.02.dfsg/docs/source/images/demo_gui.jpg000066400000000000000000000370311257562125200224660ustar00rootroot00000000000000JFIFHH Photoshop 3.08BIMGG8BIM x8BIM8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIM dpTPn@HJFIFHHAdobed            Tp"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?I%)$IJI$RI$I%)$IJI$SI%)[xemtOfw*cCQVf@s^Hl9{)XY%n12QV0q8W]x$norV(-mX5fdǴCZqk~;\P:1~:EҙPkYV@]nwF->>C0zZbYeH߾z:K-.$ :[ђ$ Y u<+mhq ُ?]YfB6k~M{>N^dH/,?czOVIE1;as\z,mM׻oQYAH+/^T0Ǜ,po_徳w /3{G?_d! ~_?V.u}6[ e}3:3123C,{$9 -e9{?,޸i O?<R$/jI$jI%)t];˚]/ŗNr IlRNm=!oYs6Z\XýZ쯫ִc9l9 7u~]\=\19ۜD?fwjvwէE_"VZwZ=1bN jhlCmnm^YۙMYUa?[r촴pomcg)m8vT]]b!t5oW[o~+C}^[葉?:z'괯Ӈo3¯ܛ}PH:#Ԝ洸hwooZ^-;{SNGӾ#B,~ҹ7RI$KI%)t];˚ZU=cu;YK6@$[&8ŚC]7{+ZK7=I5emQ{P~6=`nFý,!x 힛cz-i 5wOf56k$9sC\w}yXÿ9N= qٗeyt`l*]f~+\UM EuEÊ܇ƶ7۝]GeV}--l}N {q:`{]We~A.6XVkSb^a,v4Cٟ?_cC\FoS~sW\5zx~)|A?o-\YtăDN_4gꤒIFI%)$IJI$RI$I%)$IJI$SI%)$IJI$RI$I%)$IJI$S8BIM XICC_PROFILE HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km!Adobed              ,"04@5!123A$ `p6#  "2#45!1@QBRbr3 0AtqCSs$a%ucDd  !1Aq"30Qa2BRbrႢ4`p“#CSc5  k?GbG|=a0b2+(b#,FXes0k끁hXU6<}s)>5u)\ _s+橶k:<^ue弽7P槷*Nۣ)E1M S Dc]99ۡТ^]Z>K ytkzƷ[js2h1rg߷%bLQL۔ZQ:WWF~1mMc]>:T٣p%wbR%,"R&h*3l殕ѯikx閖/GKNԣ7M('rү6^j]ƶ0$1l0<2uR>e=4\OUm bj;rb^j]k!i &i &bD~O" (B D$j;.@ JWJ״!lfE{qq2> z?Xϣh6qazczx{2bznCĄ@_tZ$fr?!µaC].g:#:>{1nd4#H`4H`4#Ib4#I`4T=!rGĵN&eANJQVX5ej<|R|"P丑.hu8u1 r)ņXnŁjf ~TrUZZZZ&RFg#/)LMJ0!R. (T`0-TF‘_1|*`Ljȱ2TtʎQB yj!C (D)#kOWq"b3Y6$"θ<4@3D .q#9q#o]T]]]]ҀPܱ|ȸiJiDңRGQQVyT%3J;EU\Ԏz+ס cC@hh 44:!#[+?3f!b<24xX|ȩ3_J\`0q5} Vafd|"XE_+u@P9V,c0C1 ŋ+WQ"}~X`y&u92$dt2: 4t?t?t?tM”QNƆl8ālX`FŁlH FālH`FŁlX`FŁUc@;*ٰD&mY'c:#x1cf19 ?dS$Xkɲ,Li`z tQa˒l#Y[LIlg/6$Xs*VEk3͑,[&+gl8wu߅ywNg_~c,nܦ-L^I3 x8 l4|" dmm+w1zJo]Pw\fW51g^@rRYڌ}L3)'艸Hq.\H;Hp =c.rS~9O)?ᢲ:ցG,p^yIRSxկMQçpī"o֛(ݐT`PV)]t'JjP|8~oS~]ͷuj~ #qQ*5F\TkqPqTz  I+-v@Jw JQ\ݰ z1Y0^W9qN_a0];vz-U,VL%궤xc]xB!'?CIͫsΝgåv"5D b k-J:v~|(T=SwM:ux.]㨻\̹wxw]9wx]9w^2> 3aқ7j]T3c13kS++0m5.Ycyx[_o-Xb1nF:j1*VXF!Xb1$kh7"gm3/oI5d&?$@PoAP 7qۍon7pwq(eJeSᬾᬾᬾᬾ>ᬾᬾᬾᬾᬾᬾK<?͜S pEj-Է Z R܁j[-Crn@@A`?Oq̵V쏠LOEg*8TkiX=k|Il<'ND"vtҷU\}SQk/%Y$UM ~ kؖK,|6IST̓f5L:]+sn$ sʆM{)Q5`"CΌQq7 $:fl|[~zMr \AkzD{ؖC hqaa9oj)*gq_{3W驎Wc_ݞ.L#̿L#̿L#̈;361V.jdil =֦{cK-~gXQɧ/-kXVt9G5Ҝދf?Ms6kgs\敷J&9-5Kxaxi35[0d C≋ ˌ9Bx_F:N@KGHA %,6d=\imW@OkbA-m@_BMԎ{ZVY=Jҵ-cXXXQ%WEɇjڟ\Sx-kc(2#/r 84y\ү gho67  09K@TG/Y4 [`lÅaʰXr9V;C}ٱw1s".]{l'}}}}]gho67m(0;&,KGGzso##mяԏwݛE^t]̯:.Ws+΋"t]̢8QދE Mx#fNSq B, y7t߸N8mraEaB QJp2 Q*> {2WHe̼q]O.E]O.ERXD'?غP26Dٔgl~6QLj xAlj? xAlj? xAlj? xAlj? xAlj? xAlj? xAlj? xAlj? xAlj? xAlj?Ԏ OFAHYKGdGǟ|yǟ|yǟ|yǟ|yǟm [V坓-,?O PFŕ:3>IԛD~YDӉ1:}-c>#Z:"|KOFveaGT!*mzaC(`vA6Dz1kX`"6g}6E79y^@n,?t%>Ba"e!ak9LbYOî|*o~Vۼ0qoY-jڛS]o;02dK1ݳ5nNu?;YW!ի_=M2\9./8F@$Be6!>>R:jFk,yPG_8ZzBj:jΥ`P|ye+>>sq{ӝ,A_efܯq>ڤװD[Nf a yE;(Wt cq1sYծknH. hyɍGFS_'ivPtnFT d8q-#JөMX+ds+(btOoAFZ_13#')cVFIeU2#`1#n}~^.Ƣ7hgmGVD/Gg$87\X+פ !ZTDd,͍WE%4j0`wb(93I99R̪Zr[k.w$+0èUV&rZ- ,{7BaWuwҭmV&tт n~)r.?Fl_61acq ~}ޫVuy̲S)G(`gWk+e<? ~1`]X?2ٙ>s1ZmQ`XoJ|9/xt:g}}G@b Q.ݹsdٛ)z+~<ewǂ[c coVoLeͳۓ coW}x-ﳏ]p=#Kr+v1'c؟:d|6}cGg:d|E \L6|Lh"+Ӕ4m䉱O v:&1灛Kٷa:p`*BHDVT@>>ocܢWn1U`u4ɓ6ǨwXk>d9ŦIج8xaW9XYep{ Boyϛ1o=p{;f`~}ܞ|N)J۹t$4f#H;z9< =ͮA d@+NC6 DŽoZU<{ޅ{ NUE]* 5u6y#ADI , lb H `^рQC3|Չ6ǜvD\ZF~ PsOԩ|j[.+,&Mc?·uj,:|åyE;@9kp\3yM4 lEzo%IWh@\$>|y 8.8szw6d}x؆ AqeO7,iq׾}9G:=kT2JՊYIkջUgeGCQ0Mm6&V߱+sp֦Vd=$[Rk]VYfłH-ĤRB#R~G|儼- DŽNh4w_tb+3DFR8"@f l|Lda#"B@0$&23#D~f} Z+ K6Oic#ڇ:=p#ڇ:=p#ڇ:=p#ڇ:=p#ڇ:=p#ڇ( IDmMCV?8 ζ4," M_/(M/X- xIǎZx1ϼc#x\Gg>񎸎}q:;9uvs1UnEk _,f&׾[X+n&?Mέ9@[IL; `\ ɹcF:jkdnXfc)ݕ6 hYcA}DnjѺ;0Fu6wƕVf@VcSPKӿVZ32$bREzu#?PӨ/NX вUIzXf 9Yw_/>?kg;7E7#VzCW͒/% IXސF\:|&ĹM6\of|>Hh#gҾ5+:,AHo\k+R.jul]4vdtvmuColdaFFs_q11#hq?sYh Ѕ͊:]Rbϋ]vf ^Y 7ZO}jBֱًHp \E+)+;ljP'ĨzqT=I8*xR{gxƛfˈXHD@v}} Zѩ.嵤mY+/*Z̉jlͭ%(nrY`s{0ܖ&^Hŕ٤ &@x@sa/8o @ukЊeYM3@0da$-HtV<1A|NlPl+A,®1p`1{y7! ND$=Jq^HzCh,`̘fn^+\<7XɌaskG|.`@e&y?̿d~ǹZЭ~A:(W6kuǙ#4nRmh5lQ'͖7|wO(uʠN$Iݢk <'*iuZjeW,xLTּQZ7x `ŚkɴFa'4ko>oqZ@,Ę`,3#Rm_#`NXN}fj7tDV[7~_qrK!%2 ɭ0yzKg?v+ЕzF;56U|8VlRS`gPKjUlHX0_-CZP;2i-48{wi[vG,{OJ=} Z.x0"g:'fҘ0dn(7R&.r֚5[&f_TY`ֶKkd˖"8:ol[/cX:ol2K(8ٴf|_sISG[X,^|Me1"t`Z&LAvhIdki=O}pDŽv{<*k1T] xU.gc©v=z.b1],ރ&+daO`M%Pd鱷MFcgopP;{:14ᎣvGL;:wu38go1EvSM֫HqUp%5f%9\}jBֱka3E=AR5x0{;'7ΫxreהHdU}9OK q$C!%2hY$;cjSZ#uڅJs0H#3"9̰ :U3gT1$!'ÉcrGlu1jM)#1̀\juJ1ǬP(BnR+Q-J[ڕ޹e"į6ve.0FsjLm:}_~>ocq"'r\g'U`ڬ5 :ƻ}!fjmpy ׽OLTjJܬK2oR`ad߆Y$`G#$1@da~aFz ]jrimEزmg&APKG:!re:Bi,8A_~+{ή雬-+yiEHרo5i#i'68 egWW^Ett #cS|(6(OL8&!N̯Ju5fl7fmڷYkT\Y.RKg+ݵPw﫳~j/~^ls˘sc)v}_WP]ʶD$"g3`j 8ԨLNْI[Qle:/:}TOꔿR?RcwuJ_tKq)1ӻ:/:w}ƣ4l:LW)dsS7A?X e/gm=J=JJJۋlYejS#YbA03U#◾` yl/Î_O9~r<8xq/Î_O9~r<8xq/Î_O9~r<8xq > psychopy-1.82.02.dfsg/docs/source/images/demo_mouse.jpg000066400000000000000000000351231257562125200230320ustar00rootroot00000000000000JFIFHH pPhotoshop 3.08BIMGG8BIM x8BIM8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIM pTPn@JFIFHHAdobed            Tp"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?4~U( :'qjlX]ʳ1'Ɨ8FSs!+=^,t~⩌|p T&c+ۄՙĮ+{ 1ip7I7HG%SS{k/$Gp߬m=;32H&iFG%Ge#xcTzO?j}?&Iѳz4gy/Y+[m!8mf\{{`syXdpS8UdǤ@ =[qW zi)ZkLw LADwO$q]zr 1)[б90ᮁR/.5l2q:qVk|qǒ 8'N2ǘ!JI$bRI L%&?J[(Oe$pHRX*u"8|qBSEgih%OvǹH8S{ѩkI8%3xL&eAV@#z!cuB~q3N6%R`COi>t"~I'FNYũ$EU:>)1Z[vSuPLNO??&9z=pdY ѽRSR<]yfcɊ,cOcuqPE#>;TSeB7w%Jgz["]vs:%F̾܆NuhnC`[]apFi69BBH\~hhe;ɝ{L}.2Ѩi|TZȅݟ)*v5>Wa#}r Lǹ c#{O">?[OMK D &j儤EJo?5e2OM8/_cbIg`vy{OMI8,?&Q ި`MP!2^iɨ|CyW3er,F'x [kLM 9.%5)䄣?Jǃ.98Ww&drTM$ 6J/ɿ8N?IRk %#M]|ПΓ+@+dſ_w{gyIddߣHL/;I;>5*;}gߤ[H%yJoH8BIM XICC_PROFILE HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km!Adobed              ,"! 01"2#3@A45B%!1A 0@Qq"Br3a2sRSt#CcTdbD !103 AQaq"BrRs24bcS$ -Dmh5"Ծal!ykm͝bbVVelꘚ^*Z՛Vm6˧:=0UN]xJ*9mnR/^mEg;O3=z>z}<^e}ҽ3yyz/8zO5^rkǞxy>Yw/Gn/SwR}˧ ډ+)&"YULXNwmiKk(ci@ @ @ @ @ @ .C=9iHMIBfkje L|r6V՘׿+hRNMlib-Iv]y7=:| ?z1٧g4R4kD3)6Jvo\1~`dKi[Zr3蘴VVtӺqGNYLS.[,om&ӧ2BѮۛ;t^7殙e(0Ǯ;344V-]7N6φVJmv&kmvVkt_*t_w}?/Ck___ff'uǦ(JӢkzˢe}JIviʱnkOe &%A}Scϲ{Hx1TVUC8ZW~^5>/zokQnTj۟Yuupw^gLhY3$$ ڳ7N\TM-HI>VvJ4in?K^{e\:= wI6 ڳJ:x\Tsow㯔\K4O7Owf3;x}Uj/DEڶ]>uEkFqwy[Vc|[EQ3L^p]L"eIB&;8;1rruAh3Qӫ>[ۛvӛyfr_ʷcyo2^TD&y<Žwzy}#ysl7=Jjӫo?ќV59E\}*G_Fܛo8ن(EPE+{):|8mѷ.Ǣvۂt9)k֢pVV93n>x-7kD<. &L7ƷΝk gMUx6yiYfܰu)s+*hj,Xh Bƒ;*ZQI si@D/ZL=dl07pbvv*{ݝ~3իP(vX穂_rm}ٛj 1I=e̽/n0/fYŅTUw@rᗽ|2%ͩs,=Kv/1p|Ѵ2P!γXCL"ܮY2H`YfnUuxS3> !q(%L25 w4l`_}ֿ'{#000=hY%$V}8[& ˀ``T+^[Qg _ )a¦6b re_Za3 XZj 7"c*3bXnL8PG02#m WB>:8vD 92dP7;9wSoy\sn'1;>?P;dģpUAiU'[:xm_])w$K`*lk>[|I,b(DfR`Z)t0!$ aj1Y1n]b"(e*T`U-FSDc?E:f,B>}8F.R!ܶY>@ [z;GH 1|aSi&fwlARw܁(Cd c{ P CmKaV%19F}ʸ#me%[$[}Lb%{ON4˳ Ѱi -f9C2ewO2&pM8#*ύV>Cj&qs4W2<1e979$Aco,;ci.f5.>  Ie˗>J~e>H}²cFI$0g000m Ln7B98A3IِP>=j8°Ȅ+dqr&Nbuhͅ핣lɁqydrp;&5d)ô\CmHū):\$J7ˣbm-fjhBX@\HĶfS@p `I m,fmzjim4A9ifY>0[K2|sCl8P T"}j!PJPD+*!BTB\8R\c}갨)z?Re(Uʛcuպc7w/ط=}?d7M}?eO7}&~ɾ}?eO7f߉:n[m0.?~p݉pQ8EtiA Pc%P ]wqsW]ۭ +o2ݨna9a9a9a9iNZrӖ-9iNZrӖD C`蛾cdzN+{>pLa2jKSX!QO,2̳,2̳,2̳,2̳,2̳,2̳,2̳2tOp+2T9,p_@a\.30̟kx7Wb UAT%QfOшsMw -sUd>+8a &Z2}< +zC@+ŖkWa]Wc054eӿfOљLĆ&2j`(#f~5>A !}@@X("˄!58B=J*( XͫxT0pxY>Ḑj1;Lz lk 1Jѐ 7(ƦL`tq2 L@zOǔ|53İT &A]CD 2 Z>HzC`c R_H.lY)GȨϘ53@VXs(.`Nֆ茾\ƶcOќ'FbY8*\jOKGW ࢒qPOC]!Xt7Er-s ȼ2Cw'G] \w/Ƨzs LaeYo|A!l|pD4 F}ܸs)uc0tĜ`9BX!PʪB1cw㋚x &Oxtͭc1R*1csS:|Hcf3rAyp%@ r}#Yˆo8 +K4l` z@2\I)\r3@|LoB[P AϗTV3*8b<;d͌l y_e~.O?MFE}'&P_ _)V-0ܔ"qx6E͛>G\L6`Aʑ3C |kqi A `Y3'J4c n!UpGcyyL3',?k0pH$3{\rˀgo>Mf~t.\&ur0 nX?'aX{ }f._s.mfO{gʰ02˗.\̟ov\rˊ}NHȘ H.\7fOm˚j Q M0,@L `c.IIIIIuIu9u9?!zQDDKu87}L2S>NsVsNs}RsRsNsR6216kj櫚˚lNQшp.\r˸e;Yb oX&k30f"& !B16ePs"cYͫ2gxDW"\sT.\'p!pcq rEǒ^(J2jաE#⍌RcAz\&f'^1&f r~p 3Trj.\Ip0b P'.\rWX &.2!ԃ \@oϥ㞉螈jpLDOEz'z!AӇL LzkIDsDOE'z!N}84ODCM_?v]E>,ž\ j <[N{?Slgˆ`dl|-X. . . . ')F͍(D N v98òj2; @lG0vE'd GR@T 2ۇihS">9k]t'dDJ?nNJZ~eLseY2!>ݿ@Юy:n2 4ô+ykNpC4;&ЮW-xa\(UU>=AD2# GhW^=X7&n Z?"n \Zd@T<nߠhYhW<֝ĺ|i ۷a؇ rYyPsS@%hߠihWGZppLª۷aZGT*&C4ô+^۷aTצ*QE>Țu/b*Z?җRܽʖeX⿏?w=؟j^ÒqH-y!QpfeBLhQWw]NPݜ wBWJ?35U*TUSURUJU*HRUUUJJ%TRUJU*TUJU*gU*T2UJU%U yrCs[ETQL)dߣ⣒rʡLW{\Fif#  l!F5Ep[PzzښB:P כhM0uZt5UU@`0T P*5QTo2yy m]/HW-A.q _Lq6X"Yn*ݻh6\ח@k5]ǻf۶9kZSUkz -72h\n5dQʏ.j[ a sX6sbEV# jmݶe<k uSm˞c:nm{'=ajLƈ[no=ug^5c^qz]snv? 6u̶:'|g+?1YV~bg+?1YV~bg+?1Wu}șv]j5ں~í CSҸnֲn4{)ĵeµ`smc@vbϯoau{b巁m̋1kZ_oeÍOxm=UUUUUUUUUUUUUUUUUUUUUUUUUUUU>}t/TK$ԐG$Kus u _ JGuŸm?ǵ9QIGq5roi5t/l SQQayrD e1Sή t,od 2O$ENtw D)v?oi5t,(L@j5gGqE3j(]а-0t((Q*TCQQ̨4QU]ͧp]а$gl(8U5MIuJFjJJRS;JkXk`)'L-eʡ$wPWH{O` {[P@qfT ű7 yݏ3oO` TPr*CVKX(r!4J(U|0KV zu {[%ʐ*mD4 <N%9(ѷd(o/-2 TUPFfjE۩4I][~2zu ZXI$LяSuLvs^ӭj8kg2zu /XBHAVJJ *jJWaVNy:QrB+Y_*EAEC2WOXbrD(IAHUQpT`  [w u {['@ P(5* s 3Z`X J΁P@cH%%5%50G35. ;`T A&2L D?åxтr[ un[vg]^-n8u\u"]j5nZӿͿ?=+T BjH(.*H3I.߅vŭxs_}Ovȷv5kCqAŗ.ZjW\vX)ETcƨR gKk`~P̠*лZkBh] Z)hRЧvlkBлZ} v,kBhRЧgлZ.օBh] v!Wpsychopy-1.82.02.dfsg/docs/source/images/demo_text.gif000066400000000000000000000610071257562125200226530ustar00rootroot00000000000000GIF89a.,       " #$"$%'$ ')&)*,)!,-+-/,.%01/2314$353%)<*4'6858/+-897@/9;8A0/0;4#5=5<>;D544E6?@>+9F7@:AB@98H:/ɮ^Tբe+⥐浊e^W˵n{&|;YUC~Yԭ,idFiY֮ə?MnE&lLTlv:.N8Qv]uaq%v5Ys+/.%ZWxl0ۂ4t1t8݅sIo"evpTA}-Ya۽-W^|uZe\1YmExrG{^ Xqe!vYܘ W&%֜F u3 9+#jw(X>g=瘔"#YPx )WL+Z %k8g2Nz޽^[j^Rg_dU,2M8lK+)wx(a8VjeZ&`~ ]iٶ%K3n>ǐr,N(k&K(်gxژrꪮoߒॖJ(P 'JV;I57\3l-.t'2q*Z

    S 'u nά/|Χ \#w0S‰6M-r #7&2 ?8~L=T!xˆ/ӏ5?  ]\mOE~Kɳ JL3Bq IXF(~2qF#7OHq#0i48VB%}ăeH=~IK޶i~3ݐ- /MBF`3Y"θ?qUȂP5PTe@YE8 "NrXz({U&<~E-iŒ?bVY8WEc$)(BU 'iN?A sC]4=jBhAV gXqE4! wh)<i&E*Qd"=l5O8tpW-$Уp.g*j8{`WIR0Z*S1 €7T"he,N!}#S|x}}F-@4.ߖCx/Dvn Ր JC cB@߀ 6` Td ` {8K`E,6   \o])P 0PKqERm[5OsF;D##'xO)& )MfU 2 D5#E1 T>uЕ7) )9)n{H$0g{s Ƃ"悚;(!I$b3o P #s#<3,3,˙4N`F )A׈و*O7b5؈)$g 5>a Ҡ$|&4C)%'i- JtnAT& poaS%s1!5UW@A*Ia]%)ɂw83#Hqp ܰ Ґ p`gl$q)iqK݀0AN7g'4x&I;'칍1 Q p! Kjv ƭ/;o%--t{,c")!s;+ oG+P´  RV#9J`Bt[V57ܻx(lں [ExEP @pxRT \7SZ @Z3 րE P `Es9?}2D?F"@a+Ӵ` F ` yL@ ZW~$jAB-˲@BP` m ouǽlDCFuI ʷ[{$BijEb @ ia{ w pYn\EB@WJ1ui$̔wMlt]qt WE=e.Ei"=$]z2 Y 9[ @ t$Ԭ>P s  R @'zYDӠhF 3 ` G @ NsK@0L

    t PJV(E .^J3: ڸKpf⚠k< r Uݐ r YgN h.0 \FڧP P $ ,m}CFܲCh/H^H:Q8 |PJW *<ȞpTwP)Rt  W$| G  1TQ= .y2!!3 Pm߬şN4(9ˆ2ӀkKGP,#vpǞ |0 QJyv =(>@4_5Gk# ߩ"! FxEP^A op> ȮRNKϼ"}'ZAT*Jڰ]3 eo@@ ۣ  FF60Cx' p.?A w4<#`{PNLD kWJ& ޼ >+,Dhp„ &8 )yB:5_oըe+N)NU3~J+?u Pfsi'yYRp 'm2T_<"eR:5U-}Ae %]VZ Tkʼn,R'paA6\?FXd‰!Wvl͋ S/KpRyN^sZ>\H'Y,f'TVr4O^%[PTpU*&H]sV3qH{c]SqƯHg.0B 0B - 1 ; -i*M8McIR,yx;-R.t)NZI%zaQJ™g6 Js?VYeؑDTǚ5zGmD~8LgC8ęuA4Ɲxr' 5A*dF$0J!E0gUM v0(]tFmLi49+v)ǒY(HjQϒtDM,ᆛ{Z(ѝnƒldxqfzIE}%2a4 6x!N84-N 6Hgom̩'oB-| ŠS u'd řq]1%bipg[diÅsʙ*qdU%j4q'4cDSTH9}4)'p|iTNzYTwkZjph'%c!ro)mZpfηKE,iIz_YjP:sFa+޸0a9X,z/Q [Ey;A,MLc+)CiMR48Du4-Uo8!-ENQ%  0a(D\ 8&RQED*P3r/G&Kτ(Ah10HVȌp6N-΍#"(IQH4ÿ]TSb'EArSb%Wܭi:tr~B՘tx/h*Y:UќEi,rE)sğ22R:?JI~t>#+YJt %U'Ԑjb0iL4g @ֱ_%6l|YB13V-ZHJ|'&QJ64[UL~bvPT!t|-lgH~+I8 D=C*[t-+ہr*])LSԖ53QgG;I>romo\[*rjg^}^V@9;66aRc f3,b3ogD,^.iҖgokW"5n,[y֜,Ux_WL0oVJFb? 7M9,X}-L6&ՅnXi\C|yz%R{Lԥ_&2oWtFthF7I2,@0slYba9\+=vɜn2PM|daj / ./h_B:bz/dPZKH́_,ds>mh_Y^&א%ixY=E:[w-R#52&ol#>u^x33ڴjNrKstEtcft!6:e5~ίRln38\m]l[=\ЇcT׀qt/9GNmOw^aKnf<֎w=olJgXҩ7r"09^s>775,ʨwmq_.G=KhzO>bc.B:6s;=sS"(s>fs?#>?; 4> DL-k>g?[=/>ül#櫽6 A0l= yc;;J 1"1bî̱̮!J8ȃ}B::C;s9b/¨]3;r [(Pk*_pDZp#I4< Y ÉDE˭2ʣ@%KBU0P&TI I(D,| [2胭 F!)T DY@ @ ) <:6GS(J4!Կ: Ğ%\Ѓ/(D@tIh Z1 \XM8 70CU[./ЅN* =x 9D58PT498=VB— Ӕ 0[ǡZI Ă|X \`FJЅ2PN{l.7ozБ#\K{42/L(h_(_0@Al{aPN#Ѓ ;6#.VDD8eH%e@Rfl]xPLԼY2\VXahȳc-m(pt axP+DCM ORR[(V3=]R6mZ|[8P匌=QЅ锃G +CP(\J$kJ{J@,+H&p$H(>ȁ$HAhOY+PAJ.9x$ $_$P 2 K $Z7 HNVE֬B _pȀLS@P2YX%K\TPF\ I$KL]RI83%QTAkUzU\UxRHpN$M#HKP4@:w >A(/hXcA8 H4؀,Pe/i\lhL C@04׃_xXeN{L|Xg\_pAG=]]xVSbp܌Ph i4Pդ .Vtv4z[/.M =m4<Y(ԃ+ּgXYHK8dpXHݚs)dHT@L ((C[KHք>\2 9xgH⬀tg8XMDAK*Hh^gV0Ɖ HA>0.G*AdhMH[i<:V]#RxSNmM +9PT\\t傣T9`QaЅdpc LR8t`\afY NLCcQ8\.P[d ,J% S  4 0 ^żԔ$`b[(UV=S.&(? -b^ XDX]5ڭeC5e]gP acFPzV8HePc`0gQ̀Ha JK8424K^6 pQxtPcTlAi+fY(cNe>G]hXaiSRf]Hi>b]-N80F`DRfYclIHkIT-bE…cLecXe JeL>:YHiٚ ԭ} !KI+D,Ra=b.j`fޤ^in^m.FTcVa8%mӱ~pFz  ,ena]HtYP-cF㏡Ԍ s\@[n*$ 0˜IP^O}UCw]rm5>꤮d6(n.ZSܤbp5 0~_j^QЄg&KJ&]Dاحs,9kE鷔W_V!ֻmw7 XNF$fm~japge`MlmN/p #X6zm<=&xZ(Yȁc$D`9XZd9[=p=8չVƒԍrYHOchZJd`e l#؀B>b Pj3]`^Mn$de8g`wٔmvj6-Lc+n U@HOJvހb$<~l_ЅNZX؀SX PDžb8d\ gFe漀ەo9yY8fbt(++$hXl-H5-o([Y&DCP=#cO M|4MȀ P{0+q~:=|=(>tKV\+]` 0]P@ڜ vK_8BԄ5QG/H7KMUڷH%ڕY]É`#T(4Єh> ->! :-*P2p|K.MP0q^h߿|װP@xrC p+V,_W2d8VX&JX@Bά"+ƪ)Ʌ2$ UGTA$["YDBPN\@s$ԞNJ|ju*VNq+ذN%JE-_u%өX\ܬԖ!1|=V )BRöt7VsORq+TT>M_/U,I2¼m~mWO/UU{L+2,,T=˃!EKN Җ%TP$aU֓.M(-8xL11EVI`Q *8Ixd5.XU$}`Uu6Y)%{u~uxe9V+bv#b}U1M I2S",HB$Cc1sExf7Z"42F(@[y9f}:BޕP_p:Vj)*^:+zEс%:.(@Mi0A+Nk-Izdf;+מ[Kq[!Л @5$ /5H"차^{qZnӪ://*2ʺ:Zk~JQȌ"fT.bn \m1ϲ (FܨfW":*M~bMIdqf_TOsDnW0㋓RߖVpFUeOgGrOU9W^P{%5dYCN]3_7eey5٭[w`kK޴i6{UIcu)PՔw׳GS`SI;,3|\s35L[fٸF&ApdC?  ٍK#Rdk)fxSW0hR ,[9P!C-XlxSՒj?@'(rц|g.hk5+j/yGN]z򅮊W^:)qS *az)Lcް(FyOscSS;Rd È;V)^$ Cd%Faq[{wɲeTI5.'a<&28`r(;iQntlhUn[rNo:"_s>F= x5(WK*s,+"qU:ajJ"HNc:>iP M끑];ٹʽoC'. OQkc+9ӓF'I %ȗN:cA!yR6|G9xΔ{˃Oi?^tx0ܛ[#HFsJRM+]O0LY@5?%|v &P蒏C:QjӴhԉM7H,l]-Zɸԝ d)ͫz.gm|vŞV6_\$Y?Uqk5ڣF3`[Un5)0kM͢G)Js UjrS ^]ҷ/~1[Ҕ|pk,xA]ъ9m>(µ!XҐ`W&ք!aMöО,1ٍ헴ԍL>xkg+To.uyO SOu/pk3Au##uJ>rd^Rn'g[*VI3j~ya~`rH&Ola0Fr*ql:Ǻ"9 a!vtq{p-Yj./fGxЕzYRf6M7)=W:j-)ѬްU}P^utP:ƭ{S6u}txf'Ҵ6Vl8n̋'XkGP8@ U1cKyQŽK\C̄Wϯs~pZ5~vuH~˛^u7^sMMl m\eI_Yղ[/2m3;7ɭj#,V_]DK{:߳oA9i]nS8,u9]l97UkZw,蒃b7sTSlJ]]fom\=楯~HWt˗nxc||bR.iz6NbGoJ/,&?t_Ei PBÇ|w~m=Kɉݍk3IQJVGG*--ZC."T"Av&%CeZ:b;;Z;q$z=B  dx-1K -"}ae%ɣG&+!,A0-8A:%1l%j7N^8A$IdZna)墹%fj$9#R+ '0-4a!>atFX#YgiZNPzgFjb+y',P%i>(1 !/ `)T &YYUVB/462(`0@.p}.$%'(^9f$mQ}"+`gb , 1AA/^Ҡ!hJ Q 1b 2.`&(x!hA0-xi`  enҥnZE?RC!4B{.t &Pd=Wcc[ )%xZ\nN\_/Peɂ1A -hBB%?*M82NӐJE[Tef:,.@?f.PwN.|A%kz}lk+}=j骤D2_.%L$ bO$a_֧Mj8Uki*inu+Qn2bTB "(Ȥ4Fl0jzglh'*dD^EfS32Cc+!]NH~*,Тj WNߤAfN-)l(ͥ(v _/B^%+,8 4jN0`z@B*V6->-Zl^d^톝)*BB.`z"ç"1Y" X&iӈ6*\b,BB.B^m i.a&@s~)ԶU.ug+ޘ*-0\_+`'&)Hi/-ހ:$R+lronf| @ -?q&a#(>aƉ?\6bn0y탡E)˲B (h,c/X^@#dw-.@D>Ɍ(i0ncЙ⚖ަB.xp6Ln/ -f@ZJ6B%>* davjj+նՖ. o-,|*"f+*<%!"kfO4=/> 4nͯ(-o٥nզߛpt3ޣ2Lh|r/3f 1@$* $ gp!`r2xL0ݒ,ZMsm)n .)X)P0B#Ӂs*,B0\/TbH&\܎,"؊yRq cgEQB) .&r,pA kj~A9(h` ht'lAn( i~Bo*i|E֋%oB^`H ,"릦D|A&.b$ rq_Q#~  +$`Bf ؖ *,|V*qV4o\]sCC.jϥOMp)lA>^B "zVSn.,-("+d+PpWus/'Cw'557ugvcowO,$2԰'nSCبeC5 $^N(t~RI3\{0u*kV(t!?2@mC؎ g:w/*X βk-Nx2qxN`p cW{*8'$nY4v @J_0k%@)db'Y¸'t5Wg*۟|r@6,J1g AHg{*ç"L*ç4!<1"zmxXTkf k2 srvBx D?NϴsJ-Ul(%Pڠ#XK)8Օf=<+x|!H:.r#}B$؂l,."+SX9,"D!*K;3DǮG(*,y>Lq4:b-#%+\)ϱO^Ň2igs<>)Dh{ &BB6|oC.!8;`gqh u 1,xQWj0LgcfB_f+@_Bgѭ'(+Z7;]kB}WM ?Q%@(I!gz慎>+' B/9q*V,@Hpd݇+&!`T"*C&3X6 (7B+sYK%K,%D`r F@-:s@8p-,nL% V^lDdpbҭc"(+ƌ5n82$H%E(ңɏ(Yr|eG%C\%M*J) $I0&0W# `X-"I`vSX""J"k!,Y4Hd`aR.O}MJrp`5cy̡kiFe{2j,qӜzIZXPy8ԡkfu\l4(u s/(blXR8`:SpK͕V|YMol;U4SB}zHc eT@bv! z?6ʅ$=fa:b̺ͮkϩ($NZ|<s)=NdOSq12m& bf^`R0hW誋ARȗˮ`.!EhD\-$-o;S:n8 A|şxHˑ#Xvc,Bv90nP&W\3;md\j":T"**0 F͕,iHbjLQu.Ѩ5Y L P搭f*p$XnQD:b]c@/LoMi ע\|EXXČ 6>vUWBzܻdkQYP,K[΁\ F063F JY}S6^Ψ+Ks<nA~]߀X ߨ`9].]h{`hLss#d9AWn%7JA;~ 36l+^ݨZxi;A%+b^laмq=i8)seW Yf9dzA[62"zHB \v`,",t< #S):bAF P A ./ga Q@3]aQS@BTX= S+GXCpEHsQHnK*Y[cth5| faNzq Zٙf0&X P$PCb,+ h8,j0H)`?B~%́u#aUxB%eWp XRY"G~@\TP*!5 fW&T"OXD-Dkػ؀3@i CnшOJ` Xroٟ7$C_-\X97Vߖu;X+@D4҈JJC~.hdPpHTas,l %ad jd0^zU>+ B0#UIPiK׵.a%^ 0$qʼno`rC*v9g*mDm%Cg!! ^JAiy 0ee`Wt I2rXx^ 6 l Yh`E- A#Tbʥ ~P7 \WG|VW9Sb/f].w9DD,б%, tH! ևHW;Y58D.E\\ Rȅ-XE@ \W\tk%R +o2Yv,́.E!lPp_DvhG,ۦ@ Yp*Eu.] I`P! "%!bNЋ>Pfx Q [" Q b\nhig Wi#-XQd"sSR)ؠn#, Vs)/o' A,vq!+4cdf :|RǯVEEǩ["*~\0¢ 68@zC.K<"})d)Q(SE%xFXl^؟ Q@ +xyW $}b7SSp"M7@ !XZ 6y. NK|vЎʏl0x ܏|dE.&ERrAvr^*ɩCB "g-0$pLjhkԭM B"`!CjjCM:!lh kxʰMM| 4`Jy2 bA5(\1x#r!\@ 0> P>l@ w d`J ~(M/` K+MT= ZBQF4eݦMrab .xa+fejh_LWF:an/0dr: ο4v4 -f ``l!0P*i .fFiF'"n!!I$ևPy߀$Mcp a`PΠ =FJ͂ﺪ L@\za\嶭@ ~֎>Bt,r.FJE.una F).i-c<@ d``%Bh`f j\`d`>^4YA R+|J-5k *Fpik8G'dL.)vpY֨Fb>AB%{K{q:‹Z :\kdaZ>۳eqD* ~ôb4c@B&њ/t#ə4ǘ gj*T*d f&i&K<giDQК)J Џ--arw.%T&'n`f47W0D0 sP谀.L*A x/pw@lJAJ#7qDةlNg1F&WLwa(sLFhc>dtV&qCc;k  PtsBDKa K B*ߞwMPFK YHCV05|"uQ R ERRU6 `aG`x+ 3+X뺩}8UA99u 1up][l8'b8z".T\S~ʕ8opĶTPI:U'EPH`~ JhfPEf&Z6~saEp,m8``SddcW^} H_u&c5#PV4XV;gQ ])O{YW[Mi1)hl$P@ 챚 6Neym;ֶYr$C4e}YԵ8p)q evh4|rH~I_!sireCHחLr+K4BuGRbeeaaqp]mwb{pg3'nA `2a` j$JaJa yR*A d@ *Ajq\@k aZ A OTl&MX@ `Wq7A WGtWq3"@jljhbh:@a@`x`x@Exu?G!dl@ * X  T\@i@ 쳃 y PEvvݕ\7mt>x(6:/(x!oxiRJ˂n*h@  ! 5w A 2CL * vʴ `ĀzX`; Xa@A V ʋEaǸ\V0hf1g:׈rܐArAM2lKxD@ rᛃ p ^qP 9D`г ^ipwbzv8bf^9}gKɺ! rf\ !x >9.l`ma2orDp4\ p E+FhQt|k9]qfh^@ g@`{6 lusaaU~nkq`bY $*«i&+C ! !č zдT6x#Z1bXy28 {;d*"[(kaG@{Alisd !Ml;LA ` LrUg.e5J٩O%$0.ogA ȋ `> AxϠOC۲x!@19UE& e0g7e|! Kg-͔JKL'H/_J '7<b,I;P\ſ{}Z{Jk!2!o\@VzJ r)Lˁڢ;3z.V$2Թ!~͈q P raQܥz~^ t1ϕ:p| `uqZO (N݌@@\ #JʷK0}lJl2bY L \ ~`@ XX4fl   ,p \ˤhn c ~Z+1daaӽq^x^:j!K) kX  PQjafA# ൂ  ĴԀ $`;? , L |_ m !Y3\7-wi bu>{ Lv]f|yQWdD$Fq;D{^s/d|B <0… :|1Dª(vĘ1@Ez<)0ɂ\d䬑 &+@ y3΂@i0R)5TNG)ҩ?j k֜\S^|5hEVb׃EEtnFxydSo%+KS,ˊb db+hQE -AG b2!Jl)nαB\] RI.+kz+#.` S`^*/B!-?`X(IM.*j ~ YtL!/*ar)@Y`2)РЫCdY@  Ԑ\i8 g1E " aZb0Paji@ Mm7Z]@Ɋ%Zd\dy8':ai 2\"RA!XgZ.԰@^O0E. #|WE&\Ad`L0$V"ݺ L0x=rCtՈBM):+Aˊd1#+͒p*,jE!l`^p~QM Lɴ*.< TVV( %(Gm6bT ~p^ ӶJp@)ӝ3Q '閊A8 V"Ae񊓭oG`B"Bg(+&ZыvpU'g4"f6jM R "^:qs-POp$ynR @mJtd>Y^}m S*b2SʔD[=he}dۉbP r 0 XDeq9X :<,O=A %'Lk};B5 5Lx1OpE6(%6ŦTNroܥЩrWŧ0Ӓ/W @9⒉Vtm$vAmD"Q` ^8ya]p"adLդAI&ɻ(s*) 0@yQ y+J?Rt݂Y0As+MAAEe0|Bxޘ0K y$@;2ӕtw_ͯ5{}Z2E5 );P@).Ҡ~<"R[ oALá% ]=6"~ju>aOpJ!F-T? I1&B&m*! F#?Y$2,V `'E,GA b(O,p bB,b$ lXDe.ta83d p-4sA&SS޿CiVG\pZ" 5BQcˆ^ ZW~$=baѩB[b]Eї(c>оŴU+Ww_{y^ .n-G 51YT>k%"{E$͐{6(iuTCl}[teikt?GQ)8`nB?w;oip$y_ҡ?S#XP1/uu%N2:Q$4Ƈ;KsDxO)~!(}MOR$T#wvgi_q`vRwEj}HwB#5i/;psychopy-1.82.02.dfsg/docs/source/images/demo_text.png000066400000000000000000002350161257562125200226750ustar00rootroot00000000000000PNG  IHDRh lAYiCCPICC ProfilexXgTM 9!ArNHI%IRP%JD @T@Q$Hm|~ٳol5ܺS]OU{X<‚aBB" uȎNd :@ x+2L m9%_ZoH/ Kd;+\'B.,'?l{~Z">=I~ vr2q ,]w@(thkx{xa<~//D{ FF{kC oO{~?7cD'="m`ov?( :dw ;=v$"?2qq8YVZFzoM;_,vFcDrcsOJ'|V0V0@-LNx"aAg@(\A#h@x  ؂ QB+ @b, i@d 9A EC P2B%% ݁~hz@ 2 `s‚ kæ-|88> 5g4^EńAIQ( 3:D*P6Tj5ZDDch2Z6Bۡclt *݃GϠп0Fcqac0+&L/f 2aJX#6ƞvbGUNJé,p(\w ׁ}mxn,' v~EAC!@JaAMq"b DP' "B=B$y*D+b@|D!$ёDI$R44IzAZԢt!AЖd4Ll*/,uVOꗴttK:$6eYQY/R٧rrrZˋ_TW0WHWVQTRPW\PWrW*SPfPTV~QQ9rO姪jj75 Z}B|UUUP>Ap׸1ɣYNO[֜v5:::M:뺪Gu;Pzzztv%o x  ;0FFg&9kLLLmLKLߙE&y b,-,^[ Y[޵ZYZZ}NqYձͱ}i'lmmOmb_c0(xqЉ)l|y\\\:{ߕ5-w{GǪg璗9Z >>>s꾹~~y~ %׃,voCC҅:{h4L,,-l:\5 |)4J$y05IdSgb4bJc6K;tDHƑ8xĄG/y>w<'&'I'&HvHnKL92jZF6^~}2p\FqƯĹ,¬lS2N==s Lg5^͍ͥ˝3k'g(p+//,?G8}nȬLvɳReeeϏ]кP_YUy1%KʘʏUU}/\aue:z՞Zڜ:.n˵'K_t#4D7|~yic-[n57e6CGZ[[ZGnSkk+yϽs )qa]~]n/8>xc3k}}W3<28<0XqӰpH'mF4Ǻ>5~:lv''\&''_>3+̫4 px+ƴw6^z~~~CGʏss5 |:[i_h}zַ%ǥ#.gTѽjf-dmk=suO}s[qE;";mL `J'@'큤H# :!S\rFk`8: yOMыiś 9G3'wg_I@[PHWXUDATXKV-.9/5%=$!(W)tPHEAK u߄zFfVvNn^~AaQqIYYOZZ&[%[$ۦإ'9$:ww=z0#3+Oo-GAS!kapH(hViIX>:Ns-ė̛BNHcIg8IADgde;5z&ՙɳr F G=.(~TSYv|녦[.W<|Z+;W 5L|uT~ӯ1VMZ[Seͺw΂U=o5=j;p}qpHǓMc+{&yRS 3L̛l/848>yysjZ[n _)-?&.)e'm(&+!-O),+(=QnWU-T;/HNCSSTMJM`phظǤEiG,ì}ml=:8;9Y9w8*&.!)%-#+'/ ($,Ca VQq91߉>2;zL D$dTf'3 2u4UO)ɑ8#zV8W8O(_@P@1o <rڋt*X*.K]QVWcZk]puz 177f*}z󝖞֑;Smw[oN.n<="%+ ( =7>DkTgL3/ty63FgӼǁO-p~E}R劕٫k1A?6M4ev~(e4Ǎ8I"P&R}}LpI-}ӊ4q*z["MMbM7$륮I_(W*N!W1S)Y9A%BWy<>6.>ـlH624a5e21'YV[֛6۶v[?לXpyKI/^{~X\ ?%l-V1>| 6HB\v|YB$LOIҘZV~djFlfPlSڧrpeȥ̣ AιEK%K?M0^>rq@@`+#WGjFj=6x}FǍݞjz<2Η~_m_X\xѳѻpoJo_>=8<;2GϺߛhQ=UU7GFN83U~/#879߳sb3/SV ku'&~ BB{"Wݮ 3`?V|s7~` 0"զ0Ri#`A08ґ 8xV!<IAHxJ.Bm3hea{8?E5Tm G&Ӊ%a` #& (!/F')FC9AeJEJD#GsV. 4C(/3LLWXrYY_`a y͛gƏH g҈{HKlH>*ѓݔ{%@ABX9_%W5Oܾ5{&uV26 5252nκ_"²j†.ÚǁWM=ƣs['wП9/-6$8t L4 NBbkLfMNqɸx|~!APF$cI*TTԥ44"F]2cadRaef!Բp\j$3xx_ [:"ڢ1qIIh˲oT8xB鐲>guw ($%7bDJQ)5L I!M+2'd]4hQ[J۪qVvNnޜP8i~eU-}s'.sv sIrnywr%5:t-&phX#N#JJOLMW99閵vl䙑|s<%ʲ.].uU^6fZfgz#ǭٖ;mw߯uAGhjgXIX_t~yfrGyOڋn_./?.q+{gH_9ٽ "?] abww)6^猥 3<=_Ezx pHYs   IDATx|Gy&p 0e`(ƄunE[PP!EQ@BHDN"cr"Gu9s{ӧt?}sةG @A vI @A +~W]e@ @A` -AXD @A`jBA  ց^E U: @A`(  @XovaWZ@A l7Ewov> @Xj_@A (q0^A  @XlX ͈A  @]X]e0 @A` `W2(#" @({bxA  (Ac\@A j*! @k@r @A @]]e0 @A`=U~4X H A  B  @A"(j=hFJA  W{, A  @XV~d2@#% @rP  ^v58M]R]]'g.)- vfoq[&7эntk\7ͧ>?Ov")j+Bî !p_#|pwmww oxn2@Q_Ew:@{;Χr:vD j%KA Q?\\_?mFo(Jڷ} @窧>׿ws]ɟtd+xɝ`X)]ʈA C>Ͼ *yh npL׾6k%98UtWsӨ !p\//Q+m~;߉ZG{կL8l+]mHA #xMozS%?>"S@@Q\@X66Q] gկ~+_ƬK"yCp;#qk|S+juYj>@ϟ]xk^sb_}_?"\smy23w\̂7f&_Hf6$2 <s8ds"Ƿ-Cqu{裏nC:׾6̘c+*_jx2i }ة:MLA LA>a[-=N_)}q .Ym_vZVI ט3-Z׺V/적7kd aX(:kJUe]6{JҤ A  8REee駟sUM00ڰoj';fPXcw^F& v V( w^@~驉E6@tWK G!Wl tMeu9PYy[-Mo'er|2gvnX?/~Lwk ^pҾ覝U2jg%W[g?ٷ-ߊ73V |3ѡZh'?ٱ+=ذҎ]9-K/3xXL (PSz* v~c;#Ѱ |ӟ^x֥=dv_.dav-]e }w ΁4*#`CjEv~Cjg0a :bx{"u|,[@2KORϰUK ʤ<)`ꢋ.oА]~ݟ]2;Khm~EqH!)1B@g8Zn v”iq2:F|ގa^G?Ql/o۷Gf p8wnz?sG}ŴǍ}+䝒W R;ġK%-/*Wߴ.UG> |k_-יDN4 :jXcFϐ9TOj<^aLŷ}ܐMoz嫖nr8k>\iN ;Z54=ԇ?59ӡQm8)bRTP}#6tn=nӷ{a>"j C#[aW7Ӗ ֏rZOv. ؕc@KQ5n8ʃu,{^YgU ^e;K^򒙟D3oy"5S8j+O89?aw^vflZt ]7խnҗttmu:iA Wfi{g o8ᰫi`;GyxgU& Bn/RlLa- gKqv9aXt>Hn9IK2[Cf'=IVSD-N96m$>^lϚR5(:$ty(ĸ/cW3i+YzcDŽ;n;W?xG}wҡx䭰٭iTA\N)d0%;HYü3 ԁȱ[8@29STeW.i(z}wB:ʂvLaWNq_ sawLkItEm!r<ؓkSLYJW\X2{( XQhS^m#@z{ޣIwhle6r( [3]D]ئtEu1Ǵ-H'< \r%F_W_UKj퐑iX/Q.0ߍ1>Ѫ8uu yzI:I3%F~tR:vÇ=a5q&KWlf,/1f:Ej,h_eC>RЇ>t}\]mIGA ,qG/x]+m(6%|x*)% LqBtZjURviZEP1*+V„~_ yU]9l}nk҅Q]-tذ(B((@J5%R0/R$Sz: FT O|"'Ftڏ=#N],@9<ZQG׻%Xg>Gpy1! ¶® "PPXtg7Ix8wU8 R8:Tj1|k^ӲK+ Յ[{ pJy饗}Sq?%+q{w?q׽u5W ( "mgpDSءDXi}.3z)f\[Q)U]}HJ׿-%e5ځZ]_w;aWiu("-NNPк;ns{޳xyZ4م-OSj ϫ_i?e(ɬ1n]wqZeJj̲H(5Qy:F(~mqJ6ffcc̅NBաHG~c%AȖ]́T8lm jk> A` ,cU$m?j+k-V&5Ow,(_`^d߹fIӲ+ 4o\E+Epdd4,cj)3OwO^z;5\Hίh.qboZ8kSW{v _W׷2<| @Ѻ(uiK#ݪY"C{{ӟ>Tt5\xIb^7SLv&i:w:+g2sV{EMVv⊇V]퓦nسkZ͗aWi{cP#NW]- %j`^;Xt0pꜵK>l ~a c`\%C?\Y͗q][j',=;î2@X˷\f'jbNWR4\tPEtZ0x VC5༆"g@5Razkt3[̂sBuqs!dMgR]JK8*c  0g/~tѬv6a7tcģ|Yi52KQbFAáUqWëh:"JYY[:aM:Řԭ_m/ڐջJaWA 0iK86ۭnuN1Wy晭 t(岁 ٕN83bger~ڮd!#mJ'#7IZTJW! ®2@s {,byӇ<aJkSNwFR*?u.: |9l$H;G麫NIFS`S{| J]{sv1@C~)+jElg[Qmm;3X؞ Z#ce}ŜNCJ뾁(ij·g@xontaQw5[Kv9:uTM< tjK:˙j=>k²1aW[> #4pn`պuͼ@C~ݭtuʱ8LC[D'堯׸kf>rFp]˜՞1@XOQ O'bK˳>- ɼ˧k Uw+gҦPClu!èʗϋ]tgeͫ0%Y ;6H; C TfR+Xk]9Ovi4*ff)0*zЃ$=p% 3u.LI)ұ+f3,]zC1êߚb5,ko|K@L{wg]JH v@X pmp+߲eP9x'\Jߝt5~\CUuǖmA;FOz={}Պji&#;y+j;=A`%>-,~^qz򐇜wy]z+}4bzХ% Q=P+se/JO[P5HʋkhOt+NWt-10M~ַg}]EEhӤsΙ))]HSѦY׷@UAA`Ms\me8ꨣ@S~e蔏 Xk' -'vR<ϧA) cLCrU8 mžbցllp@|șa|gCmrj^%Pèl-T%U XȞKGgX׾a@ZX.κ˰ $j3zo$Svz "@KDoX)?k5M!!ATx?b -@fnOW ʒB4>!_Lef؅L` iMI׽:" JRUDVxMa< @ Cq髸B%Y/}K) mB !?YX H#n;9[~yةA  "@?O/~T5e5-eat)&7>̲P53~\c^N: ytW A EVZԊrgr5v>E`]yWB2r@;}瘱HҌE!4~T. %3iF%N3!_0Z@886!L%N(E *m@~HS]ME*@ۀrsoCƂ@~#!j`FTA`#Sߍ(oߍIA ] Zӆ]-()@ۀus'>e j3}t;.jL IDATF`A`_"p';R/"~6;B ]#2]{A -Ac-6A'uY[4M & T#3 8|P}Wgd|g?>u]t e C'@G?e/ ~?|@~s#!jsFrA`O#SӏycAw_WMTnU*7tVJv|@؃wӝd+}ַ~/lj>?'՟k^`[RH/]mHA LjoiU-oyK_W/w}F3hW͕B ]w+jEj@X6CjEծv5ʯ-:~6>@~OZ՞T& _~oy[ 'O=@~OuP՞T& _җ~CA b|_zw+tN==UT& VGnv3J,} tBVvKH>:餓!@`۔B;{R @A vup2- A  aW{R @A vup2- A  aW{R @A vup2- A  aW{R @A vup2- A  aW{R @A vup2- A  aW{R @A vup2- A  ^!mAW}wW\qomiv -47]D7mo{6ozӛ^:׹5~?Wo?}_я~KQA l ?*!r@[nt=nu[47,׾}c'~ḓ 8aW{R T'x]ra_g?c;{"ow|$u~[IL{Gaj=ag?LwiڻWn~eGq}hvO~g}]\ 8SOUL@{>NU E;Zw}{_,fyGA N:$󀷦Sb @ zpqǙO5ywg|3ف~\r -ei#wU_4a!<>=7U]xGSs,vA`"p[iO{̀yG\(ڻ I{׾?“=[~#ڱ1ݿi]Bxxo~{f]W6UؒFa|'nXB8rB ˿˛&5v| * @tW-  C!yCВ{7DLK}8O}*veӟ-Lr0ss%Y=k^'͏qh4)/tW5RN{AwTpA r8jc[_ˉX&/}铟;N~@\_~^?ّZro/>d,aWCd8͖R?ꍺkaaF/gwF\]]d. aW A %p瓞$,G /xX 4Q O~;![BܒUz{^4TY/{dr-uQqU2%SR&MEm64)&zV?U@̉ؼoKܡRe} _PW>2@cG n$;αW]n۷S˛s55UY?կ~uI&k\i0zʙ]W9[xkW[gn*p1 #kW>o MuؙT±qGLKQGoo/zwir{{޳m!3`cZn `ys~ӟ̚JDkr'_|Ya+];ch2,b Y(V1pzы^ĮD?o, y3핔>kHô./"P]æd%&YI}Q*`vH4=A͗sN;׿Flݰ-i~SpxRjƏ{^y;_t&!cc?Z]aMozSaYx=O_(lg~ë.yf&vZLtMQ;NzifHCԧ^^Zת){_aלa|bD!& A X,U`{8Y#rgY -Nܫ5=Y0B!dlwm3JiIN~2?R)T8Ϥm-Vz2NpO?7ЯePϲ)֙wbfz{|ΑA&Nx7ȉ v A`#@kU8gyrhBkz5Qx__aYp*@` Ӵ1___ФՖaZ>yEGeu9PYU ;рu~ܫj|bWٹai®l$2h %XN =OdvRdH .ڎ)!fqOsGd}}hO4DA'#JMiRr S@;po*v:}fVF#<ޢ9zE]T#"K;=B;׊% =3M94 :K˂o*7Pk u_>uHL#ãK]F jOqA 3v-TYu``+RZ\FOL.lwgݧ tg1wr//R&q;cގN0}N,K pwV8^CL@=m}lnɫà}V*9]Jڡ*c0Ԇ6leMma rn 7)/GѶ)y8gZ^*94y7J:^i;Ӹ8Wegd1*9AbV *y#t:@[z'@ O :ݪ6N F)#Dݪ!#{"B)J]FE74g"8]X29*UĺUCTEu\ ~ݏu,Gd6fsaZ%O%q)mY8M6r /[H͉rb_</[6EѱdZ>'ؗ||Xj8DZmV~ [/nduR.5L$D6v[:nOiFH<h S3Ǘ VGQ)YgPf46ys]x1NOvjHFyX2iJj8<^˰pr+mG.t BNŠb@QCbњMS4[xf#LFVn4"Qemagi:H|f[>E"aO|[H\q5ޒ]IJv|2l=.U Ӯvu切jzy*)/0 _BjNKEU;'2v ̏Z!`)mJzA7Mm%V\}ICmFsXj-? 0 0 RUI62WpB Eڳy.UKvZZնPovFð0S;2=CjUXtR:K@F uQ+TCjPN<EJ)#s#ڑaFb Iݢ( 4np#z*Z si-uf}Ӟd; }RJc{8$ -13Ld,گZ@a_sY*)k48fE|6 bhWVlb j"PI6"PIp(pH9lJ*X[1Uc=5\xR7 HVԱ+)** ~9f݀xg/g}vKV^hL®p$&J6|,{=yV>}=qixXIUlWϺZjW~:e4ck^:6"_@Q" G]u[;/`cV5K&I֊ y7j&, A \@1Q-^ tv&µ()k*'(wY~g&h@ L [D-srb뇻熻 :fP/(ob8'vވRjˏaOܥezd4"1Jl>o4ݐy%dE,M* XZ+h$+CuUM9/䢒MyWh\̻aW3aIdAJ*e$eh @]_֊ժKo{8 L9Keo'V)w*%V5^ގ]UAl*|t-3M~Ş!/PXKꃩ͞mvD6ZBi5t+*hƱsi k_rڲ!CJ'w;׃bSYMVA :w -n!?nLX@JHc`֊ժYpaӉeJ;\](eHB8XzyԊN%m-TnV,^۔NIy !'~.cyV0&9cM$W,))R[9P\U\gb84QP^GU9;)FQձuAԂ3%v5 A`KGgppS/xXKOiӯU݁D̥JF_zfNɡ~G )dԤsx#a\3V ph˝\Ki(NW4-+B:?O0vKi\Wݥ1*Ub5d]pw3 ].UVo9= oxdyPrb]F! ]C&A +`t4AU3}FQ!؜Uc VO}S)$yf^-a@bx3,wg,8tgEs]YijW*:?>- ⴭCq:.mH6k<dhJ5%;roSNr,{+j$ g iE+i@A p饗@8Z0HU325KV+S7/H|E_J^5͂w6u5 xX{܏E%O~[;u)#k~HM@R._%VV\ f @}E7=-YBP+STݷ"]G+?6rZ)E{3 T9^4 )z;I:u԰5S䠏# RnθHͩAP^՚+Z~ڵ\_Ω @fm]#ɮzĻ3/7 aWCL@r8j Wi^cN|;썷q2vU>RZW['< 6U[Ѿ,Zkx$mIVƘdu'5ylDZṄkdC=Q,YCFxM6%aNL/á(cmJa*6hlc o5 T ymY1(xGvi#: 'D&h2lr; }aO{ӊZKxw. e&ΣW%5 'h<_>c,(W0Dtɼj/x~es#j)1ƒfJ[b(:##aYDeKq tC32.A4aW3aIdA`ާ_-s6z׻fk,yg󘚸 <1)K8^^+ Hۘvuj y= u=|;ˈV0Z;4Ew5SF%w=uT; kC(:)5#3)dP]_q54QaҚ\7Qja ^ !J 2<.)X=x&YzV9 UReAC !YeT ̔5rXqb;S7^K\o9pGǩp)eĹv[hHէ4uWvį Z@B  #p9оP0oT5p&]D]/î '>YxOE|zx#>Nc88zUho:kv2bF.Շ%-Y|T!63k)g8Yy>iDx9]YGQ\N}#d%~fgz/4 yVb8q.~xYw.bW\+.tzѰ@_Vq`a&kyiD]5/î bxP XX ?`~3y#w^eahnq&0 s8VlX63hâ2PLߜO uEG23VCX[+jUTa L%ZG:kz*4cGͰ%"x;SCYuKF6A^qơ@rk^ebTo!D]M/î $WX0u+ijOY-~xXg)q2*K*^T>%uh!wBլ)&Y=rY&ckⱄtJ e ]{TDzHld[0FAOM!^xjamDbpqQY'yJ.\ȴ wX71 TVoyة:^@A`aFg܄bOJ2OѵPcxYTJnE%c=_yHن8M~YҶ N8&Z; pE]vݥC15ُg\i;LhOmyV3KWÌM#SgǃGC'P>r;Ket&$A |ځr-lI'#z®bA "]2+K*Z,ƨo;:8NWjVQ0/ٝڝRWp6IM*MA +(;*8^I`o s4e-Ԋ(fp=R.0q,m]?q|r7 N;"7PC;X虎յʙ@>2DH`H.@>Vʆfq97!)K E{7^ }qvێ@{|w.lqc̉ۻpӼ$>x®|A LT: )OyvzBz_=Ǿ˞ E ~W"A = 6wd #"^rg~'dO4)pPz2A`p<(-l-C&:fL #cA =Ϫ%/qG=4J;[*˗=ڌT+8bzȞiA  #v# A  ֋@z @A` @E jxFZA  ]mH@A "v^<#- @v®}A  zZ/@A l;aW> @A`]H A  miA  ^®֋g @ێ@ն? @X/aW3҂@A mG jG@@A iA  #v# A  ֋@z @A` @E jxFZA  ]mH@A "v^<#- @v®}A  zZ/@A l;aW> @A`]H A  miA  ^®֋g @ێ@ն? @X/aW3҂@A mG jG@@A iA  #v# A  ֋@z @A` @E jxFZA  ]mH@A "v^<#- @v®}A  zZ/@A l;aW> @A`]H A  miA  ^®֋g @ێ@ն? @X/aW3҂@A mG jG@@A iA  #v# A  ֋@z @A` @E jxFZA  ]mH@A "v^<#- @v®}A  zZ/@A l;aW> @A`]H A  miA  ^®֋g @ێ@ն? @X/aW3҂@A mG jG@@A iA  #v# A  ֋@z @A` @E jxFZA  ]mH@A "v^<#- @v®}A  zZ/@A l;aW> @A`]H A  miA  ^®֋g @ێ@ն? @X/aW3҂@A mG jG@@A iA  #v# A  ֋@z @A` @E jxFZA  ]mH@A "v^<#- @v®}A  zZ/@A l;aW> @A`]H A  kl;iO}g?o~[VW7_>.\_Wmo{[rdN5WՍnt9+◿ɟd<vu0qQ8us{cػ5>D5o~|>7 =Ʈ~|g?ggG}!B:Ë/wE7_c%G? {}ŨM/}c&*L^ƷK?.Ȑ~)+Ug>~-nqk\c$l|®ukKqo~{J=3x$o}K'pHu7M|@t( |y׮;N\p_zoz׻^C`ƃڐ Y~ RI֌=W O~Z*P;73X%\bEy|GެjO}??f(]ra%">b:&o}QG ~_xI}߸-tz3ӛ2hU w]j0h:4wcJӦ֥<ƃHu|@_?Ӛ @}V2ݷse/ŕ|_abTv.iJSvX.aG9я~C:9#b*~xZo ~;F= V{-'lǫ7yїj>]zNwK66cXr[#Lw+5 >/K)vi{14tf7=Awpf놹VF{(g$h,.hGq-sfԾ ݴ_+ED2X߿˴_۳zOxX z[eXk XV=\VV-_',J_sAm<#kQQHK:0(HMSB˃ K2~6^!DF)x*k^󚝴 RĤa<~b0.{rGjI0Kp 򘠤Hur|y%NS;]KSGG%%ެ;efH`=Tfǝ5,"1@༥^9D(2gyNl)lk' ˌ;cWr44hQZ׿ؕz?"f,~Vt=E}F;,16 XK$~ U7=0%\[.w{KcGEŶJ|xU)]q9CV(NbT ͂)qR .kےF(.͛=LO[ljpJ )c*VG-!Ω=}3UI%U!ju U5`Db5FETcV `zٯcW8Hrg'LJLS(,rkǓ!=<$&, tK9SwUhW/ZIZnK5̅5I]@ 0VayZ &Mp1ءK̆og$RPh CV^\q[~4cVMD13lNHK~ $S_ `ZݭK9#"Db >xgQz E Em7u./cObſgW=ьMVٱ+XSFc،?Y+_zԤSj;^6jեkj[xXeh6%K6]Ii#RAG)K8`-/vu4-ڗv-HM _\bxOJfOLCT$[tYxOzxXgY cVRח3 ی3C&i~ ٕ)X״u i+E`օo]{P+o*`In:Tu>$RKEs„ژ.lUk# .+2cLWt{wn^9,ØWo  wuJA8+is1'q ]C]+5 p̘-9 ʪ5s--fwy/,h!}tJ^XЖ'r*l;4X KAD .jJb'wE`{*7wD;e1.c=!rujj:=5Ta@vJՋǝ+f6rYu 9ѝ.ўIVJAtRD}E5E eZ@{MɸTx] ۈw{Xo9v@LkPD M=569,z-N8RZc5o-_uGL0(;u3ƋC@!T R;+P+/aiÐ`WSDKUgaKFpmA0UËv}#a\@1Q]ʡ6E&ze͑#ɭM n( 2,NOSqnڪ<;)_l);zJ?%2S{W߹;%hb젫2MG2aY}p>PcG&!Mm\X80#1vP2C).$kόxnO]qI2y-_Ѳ27UX.6h 'a\-[eӗ19i 162ޖHoH*!mmDSGu5͊ϔ&Gst+M!v9lJ~K^9ڵUiUO{QQ؈]ҋ8bi1et.ޫ mҧ6)[lypQGM\~E\@VA IDAT8%(w1۲%)}ؤ(+^Jp3v8Vca sVY؊p~iFs٭f\*P|}2_)$R6XiRkbbq{8ޢ0+s> cTB2*}sB(/&8m'zZjeuDOfy`DdjEi^TG"YqA+R `Ӊ/rtOj˨!M )HVt=eT{-2Klj.mkCQ \ᔚ` w?͔?%ROh51R3U^8N@@==>w\YT[mY6k@ҳَcA 9Se?Ȑz2W$W xM dBHg$,_ob##nf7xuubP/-BK&BaWGK5h9Dɓ'Wp&eeݢa2ڵdoAh,-ɰ|Vg*ypOYdh&`?ا5]A>$cx&v+ q4.`%*k6,x\19R<p@-Ty{ =a  4JERӴ ?VzkbFT̿U.:k5DW:3VMJ@I`$Co"6KZ]V>4I@--Z *VjA <֌A׭Zzk ?y7C1 * ;ގ̨^Z2'p;?3^ٕ22]C jנ^\51s]?Sx,y5?u] MjZ/d]qYB0'{/ "6y76Tmk4.;IoXOy+>,7'Ky^ehVJɃ]!â S&Aعɨ!*,rVk ic.vZ#) 1\eKk-)_mx!X`Ĩ Q`d[6 m뽆a@ !*NK/-2WYiA@ef6Jh*C!sg6p+bٓ:MLQ #Ձ 'J3 Cֶ2oiJԊU6?e('15*Td`701w+^vLGb}C̝7T^Ď#`Sxzw,[ Um#X$nOSYf8s;\c"WV)w^FUF[\Jj/k^$Im"q&+8J`TTTkQt^)19YպK)U[0. İתZVۉBp暣 0QuN-zT\B!T6Qe %̔L45!jZny Qp\k[QQHv[URb,TWOA-M+OAxI'^_j`bG+y0=wp r^bU蚼OX/ꗶOw> &}eWϰYWGr[G狩徭\^!>}kF jEfRfZIy_Lb*j5}) T y[{Bu1Ƈ\iU وf7Kie-nFp*DCy]a+^V`@*((M|EI)4X+VPw1mN^fա4*tTn错6׎ ,Ɔ;d“sm Jy{0bէoST6Oh#kqX b2w܊aF߽ 1vԿXζ+K^ 7ox3)#-&ApkaaOMlԺ{;C^&gNoi/g=V&s+0]u͔\# Ĩd\ 2WspuPY*o՚GVpPaT١,)ZK+ˌKM,-tܝNpZQS]%!^x=\RvP[c!]6k ޷#䍮Ctn<mO[D1RAT!}Ck€w4$8, Ry=^4!%[P<r?xryttz&n @UW̚&*!v5)[` d/dWdKZ&SiKn3ӋhYjK[xtFy2?y ϲYKwTӳf.J-ŷ^,@H'\oߢiסX(ـA&h%:ݭ&uLQ,HWF#FRpW[`ZW-_L 9ku rK"^R: aY-q-as ^ N`-B@ Uh%1 C+SWm:t9/Y7OUeyeYښ|kK+,`]ZXtokf `J'p,[#gYZZABrl9.(jVRK6Ͼ]M?U]oz"_l݉u\ik+PaW̫qnUb3`!7'x=﬷NYx.B,z֯}jY9I Lw*)b0IZqmAkbZQT+oCt ]Mj .c-;,]N|1Z5r^4D_R.3%lf4h%u%3. F66|",661 #';k1`Jd]uܦ0HlaE3`AQ+ÍNRtJ"sh+ҷPխp4[‰Z|g}evi#MjZh4CI{wgaBkޢX)ּk )SʖP+F0 y]]7^b.a_,j6Vd+Cב>mjEQje!LF):@eW^Z%* NP)g*03l{&h,(@{3+Diu5"Q=&h߸-`X7c=KUZuv\Rj(GVғ(4X,QJvLήFV6 uW ٕ[(ռ 2aW x , v[dYveES1Sme:U)Ss]gJ۵v5Ixm;U\t!4uBl_;Ԏ)30:wwi2t/pfWKqFKH]C jנNAhA#TAKitsR5";F)Rrlz ђ#L2]h.ưnh=R8X3&P!qy|z, ߞ ډkӅN="U%QGJɭ v#d=tjP4]bm4M JMiRaڝsƬoo"S~-m+i/Oljw,X;nm$|ɮtq`FIGXɪ69voe#Ֆ{ػ'h$on2&@*5~2!v{+K)G#ua(SLFױZ1+}[ٖ%Q^>j)JA*w+Ugv9z`p Sa'KpS NH 6[b&$"ˌ| //t]g~fه'{Y($ vyRK'IۓT4@-3`њv+aonĮ4A.5Ā(wv'q{1>F73,ezlOzDڮ5GL^C,4j[a Dxj:n {B'cݝ]hRY]tEkܧi7zrU4ea6]|k JP!vu]̼P=Nrb`<1d;G S0( j:Za1iǥZBfY*5m"M&!8S;=k3==R+0-]t- JBI0ىdqJXM  e%dQ/3 ,*ʀ1lۛ^C`6Zh:i.=вI>hh(mDìSSjXjLɾcd&Xz̊@ą{7Įj ohYYٰ*&#ĦZ+H֔ uF+xԔE U"%ڌ/+ ęIg5f^8ZA:1/xkX,o]k&ڱ֡XjTWPc֪Itϙd8f&ꞑdVcv|v3̲Fgh)MN%Wƪh%Y@U!6vm{"qKvT<7]`cZ"SYHCGV2mڻ]]ᨑMP 24p)ޡT~緕W$4n%L:Ӽ,#&wJ J]h=M^Fe`],K8\ʯmHx\ ݯsvP7y1)/9y7K|t4{4.첳:3)8]w5ls~wjwK)P2e2̛% pb=/;Ŋn.:4Ø{9IBJj$U<Ō9ȼ6"ߴ",f¥h7Qg?8" {B4)sKzO5#&D +3Yͭcxm\x(Y׈6UA%v[ Ûn!+Qz؊]1mAFWnbF5,~ӫt)F>Zh G*iPdT yCFo.2;e-:C@!?jeQk< 5KGfv1]ab=5d1e6S-k(yS NJZu>W2l2 I)I_UێpҒiхM<$KT հC~U aJ2Eh]kb4Gۇ܈mcƃWdxV= d ~՞PoϸfeWj6dM7DkVjbPr[һukL!4sv!<|ժ3C'̻3#]u4Pc8|pf $!+m!ЃlXJv 㬅.2'Լ&#R5e/݄}qY]:-gū8ZGSTލ#ooؔ,n֮ڀB[&\e6ieƁBX3!򡍔@2:% |L[TGټ1˛v"PT>SZ\ ]ripf*3Syvkؘ1>Ej_5f3]GHН$ =DTX7:%^319Mg0ki38dPa5ΐ+׿bRi/.$kH7 X(c%(y]rQBoZyӛ5r*^Hl oƕN]or"\nCo Cp6&t7!{T2?,+D&@ 1f06`uͬ{3nut?ts{ǭ֯QUᛝά<3I YH Qmoљ} Ba}-ƟC*D'?%lb4^p yU,ۼ(mÓIxH\wy_vyx\8uFMcl0LxQ9 ͣR&ܚ씫+RmX¡ NI$&b0?/<|" eoQBW=GiCŇ4d_u$UT Ab:}PvtI; b'B"_ǼF!*6*n~UNxX]Igf/-9%:7o~d#,xpyoq8]şt=Gf} ;e3H$b!MH3H nA!~ҠN^r(/J,di: as_K Lh}KA o(@/zAl06Aq^m8pgVQ BWJUi8ww0< <ǖn % +oIw9W08>|B%q̧pftk3.ҊO+ѷ]$ yD`9y`q#T,F<<ηU$9^zeJr ܯ)|n0#ޣv [ 3 _yUNbqRh PWF<GW- wWJv2[6&mPzg/8_8[ kJOZ>5k/,pl`APK^utdht) 8 ao`IdhL1 (e^pJca^tV9 dXN ow\E#paq>zȈ2 IDAT< +Xe˳C>G4;pܺOg睞aE7wHg2l /<"p6d?! s9W)ϟՎq;;co^|(Uw|љ zH+Cu%s^rh_|Crλ@ 0FΏ&f%x SX|-Cd G!o#K-._9Asu(Fm K *Ǖ/hFX8Ip!5ą\źGp/DQK{н#j xAAG ?ji{݀ulN^6`zwLUti6$/-绛wVU2~ˑqn܏S.|ErĭXإH: g zFA+,_=|X/6ܤp΅|K6~seU7f@x^Ak绕Wv)֝::E|;5_a0P g7ޚ#-PfL# j }xQg&\Ttp->C1:Cw T񫯾hq2( AaNy$I3ÊA٤7lWbPHۃ_h,|T拴XQ"p͉h^0h}= MεRWᬻ O$qC oZz?I\ sJKT hvޗxMqGJ}:;GkBD}шp%PRQTL >oQ0;Y)C%hǤtB7vWd}FV &g.H+FZ4VH8!RW4djdC8԰`!.&Zb=~`A RiSNw7r$9X-78{,ăǚK2!UG#LU%"0+^90aĚPNL9#ʩƱQ) Ep*D3 QTG**g%*?~fŔ '0~#u c6_ZP0) j ZIA]HJ q!-qJD@D@D@D'RWzD@D@D@D ISud-";PE@D@D@B@*!XU@.8mʶWE@D@D@BQWJ_U*" " "vq8pWRWqƪD@D@D@U?@ H]NjqWE@D@D@N@# D@D@D@+ 0@28A$U2p" " " C@*{Z=H,|%uXʪ]D@D@D H]eۈ" " "  !՞TD@D@D vͣğUF,$O^3C.$lWE@D@D@NgdM$JhFD@D@DԕZH*D@D@D@J1\iΠ_WHٮR^7VtG+?"" " "dJaP#D@D@D@|C@7C5BD@D@D7|3@* 8hU*A+z$" " "JRW{SHH]jt__طo_^^KA_:#" " "rRW)5@D@D@DW|5@ H]|_p3" " " )' u!PD@D@D@|E@WéΈUʇ@ +_ :#" " "rRW)5@D@D@DW|5@ H]|_p3" " " )' u!PD@D@D@|E@WéΈUʇ@ +_ :#" " "rRW)5@D@D@DW|5@ H]|_p3" " " )' u!PD@D@D@|E@WéΈUʇ@ +_ :#" " "rRW)5@D@D@DW|5@ H]|_p3" " " )' u!PD@D@D@|E@WéΈUʇ@ +_ :#" " "rRW)5@D@D@DW|5@ H]|_p3" " " )' u!PD@D@D@|E@WéΈUʇ@ +_ :#" " "rRW)5@D@D@DW|5@ H]|_p3" " " )' u!PD@D@D@|E@WéΈUʇ@ +_ :#" " "rRW)5@D@D@DW|5@ H]|_p3" " " )' u!PD@D@D@|E@WéΈUʇ@ +_ :#" " "rRW)5@D@D@DW|5@ H]|_p3" " " )' u!PD@D@D@|E@WéΈUʇ@ DhAdר$@~[@~{ptŊ]mVE@D@D UU&g{ɜ 6oty``5ws7*" " Q.K>GZ9tiKo&1F@j62:^`~|Y|lg%ͷ%thCD@D ߟF"0'V %tv.əWV68x޼…ϭ$Jd"We.*_3o٢J\yJ" " "RWI[ğ@nd]ݣGFFG {QF''sKKoն$UBYſ/JoUEl [aў@ H]%NE]d5d*,))yaծċUH @6dlH6,+Yӧh,M=-ZFԕ4;Dv5 9V7%/Dfe=038UuiB7qV18wb'Ԁ ]T4LQWaW,konlvqE@D@D FRW1iJP*p޼'cWdli5KD@D ̼{2jAP{V=}-ŋN*\2/EǗjKd:ef^dI[" "_]wlӵgNf$[M$NE:}MLK=w6 Am@ H]*Z[WwwW__FؓVhCf57yYZt*O\ѣZܴrKu+p >{V2k5=hOD@D@O@*LUcPO.#?/AW0V9*zĉ=-[.:)hmd=ÇfMon|3mq0qLV|gME@D@D ^ER"pӧw<~\f 0;./e_zOn5QkBuuU7]NBnrWAm@"߿?Np ^ [Vܳ 4@xX/_ݼVo^>0K6=|X /ܸ +Gkޘȴ-" "?555DK]j Fo޸xq3V`'CEp%O",od񱱂5M#n{ohֶđ!TUUN_=s"8{卟~#ݼbucnawV6w>%D" " # Uتyx /łyT54e k- -dr/߇k>˯c9n6]ھ܂CAąkRT{\x 9Y[ێTR 8\)o]?'6\?#?ߘ0y VkXyP" " "8]%mVLSɨL h)~?77Zqjps 3%м/"=f>+_# -Y*ҩ{Gn*W*+Xayo GP/[փߨ$꿴ܽptDD@҇UE J䔷d_RSo'` ^ݽ Va_м,RW5^l-/ ^EL6{)PP0VTd [ddXaѲ.ÿu5I1g/JdR0ܒ$ M7Z j| Խi+.BXH$0[G2wK|)mUʇ i3?2a޻(lF,V8=dN I(0YWH4:<\2aX*`5!X޳:"" "*RW""ɄL(#3/4cLs-!K ;}}ȬYmMhM4Y)/ VB2aȠJ>sqѢgĹjx(جGH4cufUZBle}}K':ޗ^E=/' ʉ<`Z ~D1PGGD@D ?w_RL]cyfW%oH1ċ/UnR\`Dj77ߊKzRv]E@LY˱~Y}A޾DURZծ94to޴AUU]Yb\Ϟ>5fDo8zt?*jĂ3lGjk)SN" "|RWg;Ngi.+`^=$ <8(ӧw%*LV<3޺߻+og+{VGD@D@C@*9Wxnj A³XhׯxX:{JG ۴t2A]]A°yf48@ H]%oHaQlL9!3%Y2 f\Sӭ-[. fіBCia fNݻ=[HjH8#Ϊ%Dcji>= p7(-L]={N66*."t,,XhOKI1e Kw PE@D q6k&my?yRia)@{ N, DM4LpkjtFD@D  4C@fzqil᤻{ou~I"%&D Ν5A#0Iں+ڼ@"*ԛ/7V@/5ě_*?a=V(ڼuy 'ǏAV! Z6Z qY^}fs2e,}< `S" "wRWqG޹ƃ+PW9PZ+2QMVܴhڛ1j,ځG?潑`"O[fi"Sv3dh9\Y>!Xė@[jKgӧwCX4n;BxIcD?U<_IpldG6ys-}),B^}d+0Kyu_\CC)fΝ; eUUyE@D@K J]lZp+'O Ń==?<bB/͉^9euz&({^Xg摵ġwNT?djƲhe,&qb,${\" " % u_Q۱cΜI) XQu.ti߾9f$ec4gebY~~!l۷۹41sUT6J,#nzUvE@D@b' u; wn5K::j+ =h "G:nSe˺1MLs^?jp:x{߾@+/CRl||>*F<$ uV" " 1`]?~xnC@(f'ZXNC'nVoOx-LV# rS,S *JHvxZ,[9^}~u/Y`_:I4r:,vsȰ~>4+Tq@q4:ۜbFbll`Ek_]CFÇVӯ~bp@𻢢wGDF3=,0**E|qc-AW`ի[n]p+Da cw!QY$9TBSx1aSt_vVRy!0ĭ[w{*b1+Z*)Iw|fP|tPD@D |RWʰX;x%^⠮ dH4^̦{kǃN#,9 LmH`! ȠEt21X+"},|8O{*CΟ> n1DpsM{D" " a099m X)pE\j&גChKYIWW&CRѠ$\-(Y@}}+ ǏvҊ9s{j#!Yu ;xj >NiWD@D RWKkyk޽8C@ݼ KH<9X4¨7UWgF&+ȸQc$C%D}5k"Ð: tzٔeGYB^ҥ{D:{JGD@D@b! u |t! Zu&)7w"F#v8CO3 ͓'K͛IE͙x+ǰ]59Κ3(gF7EqVʪ˙ȹ{T]jm5g68Q~8%B)U/<ȋg^v)el!,E %yE3{ uEh8ſۋB`!}Bḇs75޼n9/w \TA+ W 9p\%!" "G3iXJ f"ث3+ h' 2˼ ~1e,Nx}?CXC㽼`S`Ƿae{ 8t;wV,.)y9-"YE@D@BȮWch}mot_~\3m,dh WND5gБ>mWײ٤4е¯Zmw:ͼBJ-Ad*2&vx#|='u5I,#{)q튀ċUH" (s~؉*|yǛo~PjЮ2@N<)VYk)58VPѣ:rb `YY8Isp3!gegl 3…-V$;ڔ%ROUWw>/X0"2 Ye=CFG@i x:GuZu\" " q!u1*3ȒX2[ 9uvwW`Zq-|dI4t 7"VQw䯲@d AoȺȄOa+BB}2ci7&W ZCtUo`ܽcuuė<@#dgppW=LN[9rʆ%kozk/6Sa{ ɽ k'fVNI W D=wnXD~S5DzMSЋ7{+!L~͚S:"" "_RWvabYlw*^'wMSISYqSTYLD! #p#Ka*X? !U m8t/ A(=C WaBcLΊ@"̼,QL؜x`75QxUf1)<[SDbY&('¢E{FG "\Br Gnl Hyc@nB^pg^{{`"aǠ54Tb'Vf8[3 xvhCD@D *TU<>! 0#sn䙽xs?xrl+ⷿ=󠏷yٌy紶=rwdO2\f2*a )"eN2Z*$ٶƶA" "Ln+E'{L""baw55رSx^]urwHDL鳋9f{08"vڂ1n07b~ϼsHƎ5s!b ;vٻ^EY0{̬WxT9v͈B`i)yy?3 DQE4eE2aDn [e!TE@2*ƋHMеkȧq_|F{Dxy76nnEBl8pժ?pK0c^Ds'9h {Gkqٵ4IM_A]c-VD*Ԯ@\v1n) Wm0~p,JJ-%#~TvSa$kj{_ ֚c BB^ >g 3PQ|׿ݺ‚CϏ9iw-LIyjf`}BP9($rhyR:\Dɠ9k@[R$U2iz/|=,p+o]BC,#5v|ygM㦦ۄ)&aAUDjV3͏{BS M]]U2ŋ$,jIToo93\?[w5 iTl# ua#,.ϭknV(c6vx0DgP Ia10s #Lt!nMl;\ }}f1_1gJ yĈ&w+)oX>y1쯶E@D2ld1u=D@3MzR]i5},) mC&9vl#o< >>"DGlԄ eæŤBdl( ,CVZj$snhG" " I& udq՘0`neWwn2H^c7bš]7߼qH~LXNaC$G(+{<]v}ҥMO,!A(@R0xq V\poݺ%y m-Ǐ[Qi;FAF`ҥ#6p<-ʸ*{SH?1m) mm+p 0b1av͇q' sDN%fׇ\޼Rhw^" "; ,XpU-+cbm.D\y;"d@T}o}Ǐkaj2}3%pdli^]d>묻KM1PMtm"T-G~^n#brhCD@D q9H  0f&9AxՏb!RZ)bqrM+,73A@Ec% <\x(T֬i5OY7q2:z(:ݧـ:4 (,,D]LS,b:{z*!HӳȑL6tC00uli46"܊`vrq΂| x$vџ*2Op$x+RW=X>xM w}#zZ{c13*=zT{ܶs[wA֡?YWe.y=8u IDAT^0%~2Mܩ$teL>paTh)޳$V hWD@D 2z] ʕpuV<dSW?y2ȒWklBIx#t,VHNJRE,7ҩ, X[ZnF⒒TM&Tdf-*DgP8gmӄpx ?}F5-/g"U]._5 Ud߻n&cʊRG]N`s ĺ5.E#3c2ex< %\ٮ1!bE  ~bš}si-7nd´f.+-"Ogvy:YYyb c7ZێSSV1V"=Si<F˪D" " G]3q7GqHa ae-$"X!@7ɪAo[TVpGHP*>>\L ̴1ì_D@D@҄V+Z i2o?& "@ hk8p!L_%qĄ>)*3"Ap&HgzNOYi^K+D?waYn2Ĺ߽`¢?˵-" "PWb4f4Tr~LK1O05l#^do#cG" "@L'[!򈠊pay\S}G:nf> į)VS +kZunq,D]xԐ5c[YՎD} c I>1K5^"-ZOCJ're9PV@&n\:0q^޲|y%clC" " Dt lW)5Dos綞9^H2?/]"6XGHJɲQ~kIxq3n\]wLY޿*/EG};$NP2=…'nFZ@@]vAuԩ'OVid*Kf4rfO 8ˆc!?Np[cBPb&gH_Z[׀~Kf&د\8rsg@Ym#PWI v Oy:qsޞ2NXhTWII iEO\oڛcc{tCVڇ,ޮzW@fe~` "XSӎa sb  ik.EHQLY3'%" "IvE_Lހ(ʅ [ORJm7*ɲ*xN0#G֍MM,An K'~nh)␹ *d$Tuid74Tt9G?%\˟yp T^Ey_TȜDfN!neXĆez96▣Gx;m9 Wd–u r\+O="C JOHRII #/Vjvoݽ V.hЮdlWzC7n4hEu?zt6\ٵG!ŋ$8 4R]=G[kL$HjÊ݀baVl%IK8?%Iŀ~>mww%j u UD:н{  mYCZ bܹm)!9B* vE@D@lWhddy$w|͚Vkr<2]!iU!j5?5؜ras}۷'8K/D^m#!W$2;m 7rXf0 Pʕ&!vA4֭[ZnzpՕ< llT_}Ɏ +10120oqE,%YD RWCiVx?bȾM숄IYb#X8;0PzٺɊYmZ8SN<섐^XʬXV"̃6j"pAOm;ti[ O؃80Z\l6la_>Ú(X;^T_7ue,#Z^E@D@lW/0=ͽa'I7)"ǼWxHu__j/&$%z$xfFhG<"$1Wb$˃,WvE@D@lWzC/cd )Ăwە&%W:A#w[/o0FPQa+g֯/*޽G)B߮]k1EPԭD" " *QSx;Eĕy=Af#Ӻe}ֆCܬ$#W*Y^ M3Y _{{o~?T=}z u5i[D@DRW y Ba1_ۼW|Jw^'x*P=K6,֫qw 7oȻ{.\Z$Xr8NuP.ߐG֛7X=%7u W()˵,Ֆ@J#dV͑e˺f$otI [Um.ኳyyq 4Ug u1^ɓ%["Ⱦ-meMf͌,С/ o׶8$xq CXFynpDE$Gpv{iE)ZXv}Wk719`)[NZעHs珸SUBң֎8@1=bnoi@ZzKhJ+{DY/AĢI{?~ 6x ɞ6#I5kZm$8z3dɪ{TW0ZJ"c֎8 ݵ6xy -0.'?c,$lDPjmtur:u~Sy ~vbm 6ʘzC0R*/" F@*!#febVf*rW"a GrkcOc o02g/!k\# Ny߿_ :q aLc5@axpa )7DݽY@ʥ2Hyy _~y̲͘XZZn^ $N~ꉈ2ֻ]F^h/(KV%1jCD@D :55,_]Ey;vFBYsl~vZ "XDnS(ooOǼ/p5raQEv7Z$ŘѵVܹtXX]+%aO:nB+)(21/Ąّ}'"f9r䭳g3}cczҪN*`jr:S3':?sbo}Z .+)(x>q°9%=LӞü@,+jزgxA*n¢m{_wJN+1pr%s)o?#%G;:L[ +`X2}y2zq!uM05ۑ u孍#Dx6eeo.bc#;K9S2з   %Pdb~H 3!Vu5r^_wby(ӻUX" 1` *A=rk>{ Dp#ݼƍQ`SYr?Bv m\ޥO.D0@BXQsMﳷ>bvE M XQ5Ag+!/'}y.WTK]ȫC@*" 0w,XH+[w,N8ҧkYABBQ56>tKKg0,r{{~;zGЩW߭ tppѷ߾A~vr__KaIz,wynqI4_Anҗqq8Іdx^Xц"h K>a޾}I2Y:ӯxL+D]!=BZV8&@&c0V]_5NLxpݺQYE  'F%ϟ,]-xZˀ:kV!х,hgJBȂnj`LOa" J:7+Բe]hZ]Zu;X᎝闿ɓO%:{v;2͛/9F)-Ǐagjku\"VxO?9X:z- Ӫjdٮ&޾|Jf-($5ܸ´W3Hr,WX^JQq_ NU= "aX5xE*z X{Z Zp+rSZ+Cxq[@XʉQF^4;bFAW&eY&_ڮ?g55#t؜?7mLt<:өr*r-{hllzS/Q݀z4HGwuU>~\}VsN3l~UYKRy> C/fP5c1reɄ6R*xӭrD/uRaݹ IΟF`^?Ҝ aSmr67믓䝗uYpɁh3PHr-iEl##SBeeY= H[|^27>>kӓ޼Ɇu#s~kw׶ԕ*c'kʼ?:;D3яyphW?B_nOIraRBƪEYaXo} cc:?o寽{JGD ,Y67rb6>"ނixg .W4D&@B 3g]={pi޶zYv0ߋC%xZ5cg?:yU򦒍UQZؖtEK1g3'V@E ~`KϟxidnUͣdi/iX5sarNKf+T$2nLe#0HjH/w7_,URS-ܾ4dW;[on#o$z#+kt GARȑ6.h%K:30h$z#ۙW&zg \TD#=DO^wЋO`Q˙WP0D+Y4AJ҈2;X,#_'|4odx.-xAf/I#sn?~5Qv 5`::s-B]1:jq2}]3|- ?ۙ?З7:d˛A˫&T\ *3>N/0R,j3l&SNZ81.3sLm;?v>Tb2YڙpXL#wL#cb23v.'hPE0?#[x@@~#oʒE8neˍ[,ܝ=U~&qJZU7^U7݅MIA ; 37^a]wWH(;7 wjy )#'ٜp|tޝ3#.`vȝ)}y -`6#6fww fPn<,mwws`[ UDHM æMYŞI Ǐ,702"6Ψ]hеf8Tx 1P؂Eի:;+} ]Y B3J#Dɢp `ثpfl wKu#QDQ-zfU(-C32gBk  rtw7mT{t`6tr' kzĜ֭@D>_yx`j]QVͨƧucy?Lg AÿkkcѕF"?ǿtic;8tee'e Zs,#xnC2QXNVkH+j u .Z8jpϥŖ7=b؍Asw=DM.D |5 ~(LiY =bwVn Cl{Dphi^KgMc{.7՞Gbn_N #Kn*.x1'Ibh)kd t#V@@J?Ya'`͑MmgE"_mUq4U 3"ǛD6o0Nt= H􋈙Ee/D`T&@ɟp+q NRӫgb8ˠq-n}Oqfh`wՑ+tr׌hIJ .][Z dYvEHla ?j !cޖPx?5O~P>< <sYwm!@vt8ž='Ivu~|RCCbc'Wk' ʞ0loGZYÀ묥Hu֫ D{۬m]N92{b)3.^:)xaC2[`a%Ѭ*6qV9ňF`n^»w p9xb]a.MPil,bIB piR՛mf¬m"jgNA a@ټyč3/[OkWݿi-ŽGzE/gmV`I+Fg)MSz0ǵ1Cr Lflvq*/]>oql'uW>#%`)! Bo~uun s-10ÀD%(w9$Ѱβqd 4Y"BZ*5 IDAT Zgl$wWroѥZ,h%('Z\\2Ycf8F&$ۖgFôֲufע?QĹpq~x)֔-nnذ:2I U׏5ntڀaI(A=[^DZ+#Gcd~岍l^xN7/Y.1aeO6Ƃ8Ms[PHgw7S6\ەLi{fB:J[{V ̎+Wd#߾_}+ڬSr#Bܼ4S]?;cHra\N-&ZH޵8S1s[ ^6 b7mF  ᅺf偻c ,jC5xc F8g%s =HƕMf 󬳍BZ Q^چY[4o,;SJRÚ7ʽڴsWu<>mʻ@+43׼SE:wn:)oj@zlx_*Dorcooog9py8Yfǎ37qZ%C`924!5'XN[Kɒ@ S> ͟`[fw mFvG`JlBޫexhԼ@Pf;GЬf(H7[a8$AuEN%3~]fc9Zb"/WUķoEW 9r~xҶQ6 /LA+y뭣QV2VNWcC].n4HƍIdW ̓$tlsD$02N"*~7LR[B4$E]+* jg&XʛH̬m0`v g65AA`DXIa jj7= Ltx^ibu̓x#O WiVt W:, שM`r"n”V=ک-DsV] =N؅iIf33 2 Mud]c5vI\ߴĉRDO̮ݻڵ7}jgWf7F\uڲYeݞG<GZ- ޜh6 NnkD!bB W#JjCQ Z ە[@"pZ1XeP' ^ $nxkE?]SM :-l²aJB#ܽP$G夶w ;&lܼR͢n]V> l?*SȚ1GO3C]Y@o~*uU*D NJw̱ef~Ű^}' VAa` {x[8Jkp 4z^?ވL<ȫ4@] -‰ro'.BX8er+L2JavX\-͜y+|[ W!& w#/~&{OR?rݿR/oeųV i-?/, dM_<ca2۠@t~^>*$#G65qsE@cfāH9Xm ,k3U vp0lAf4 '!EDtɵQ+A3&(*989HNj[pyt.0_ zߴ ;_`Q_yxWEԣ'd5WZF/$Mx6eAӮ_ `3S7}1\qW N^''[Ze/42\ H7[5g {0ChM,c@Օv7v>ҪU Q-_MրCiH24rr AJ".^D~gJP-n!ΜَQ*+$`%bziql`Yr[xm[̹kKY81, L`u٩:8"*̻E_̫V]Y i[/~=ʢ]=IǣRW5*,CJw} iWX*i;8w+#g*>4mY**zܙؙnX쏎G5z]N}uuA*",W b4EDj9؟!c,ɢlwu[Zuܝ,춊mlT,Ojĕsk.aHUan[*PiTpjO8*(NU&iHzبH=jޔtU`o}S55V;__IL- *L$"k}O ^-KK0кvE * ̎z m+zڢRXu&n1=ͭ5u6'[VVIiR"!SJjDH`N=ɩY*9Kuc!8s̸%ߡT0DYo*.a, Aon08+nnfgÒV\lD*m@m2ʌ9'U-Qg8+STL4WeZߐqx0i f񌂧w:d cՋ0r7VZ4Oe4C;f{}vo#^y4PW[\` 5q5m;O_P ,}AX:CPD i0t?Ƕ"݀+/8ћԳ|Ӂj \Ȍn4bïmΒpxto&X QUr99݈$7fέ5+L9e b-"EVeM:CSjh^p2#Pk \^^x$O-k]Eٟ'qeerΡCbC3DJ +jj&iT]5'\FW6e]rd'D8difxvjX:m ֵb8a}!vz~K885SN$fڭc n]=Рڰ#{80 C_!Ȟvv%%yݫ+)9*ozV mCЭ Ͽx,rOdV[iE$'g,\457XqN~dr<Нՙ *"uq+!ZEq?mܒVE} $g64KW@+ ?wQ ZEkFQ٦# #D/][mY l,#~)C[ Oٮs^ԫHj ?J~`1&'V*cheAwY3 ]u PNU$O0Wz*t-iĕ}8v7e|~y տ]Oւjcm!;9UF%1 aT FZ\ᬃ} Lf$zw,3n-+2A6Aȡ:|`2g~5p<]լ )dkWPvVjl}p>GTк)ٿ݉jd.Շ?/\i#K`qbF7lp_aO].d2էȩFҽBY./l7wٙ.ʭhN@o Eu)߿`݂W. lUO8:k$U ѡK>jtYU׾فL~,k Dg-̿C IS~f=/Zc"xOkҲ6 /lW?G~O?bQ!5Ԅ25#*~'m>Vm#߃^Sg}s~s nbB;{ ^, KXkrgɺ,G]ª0zb<~jM߄Y _YCq\j(vn}6]zgU`WމHFrc=(bW!Ng*("xuƟ{exH1&LP"VWz*/'ƪi.+(f8Y+Gz/W$l[rS]x6HV\4PO(w YH5f^r:" KՈuN|FE׷-W Dgvﰻᠨ]-Dՙ3N|b% <*~u y@ϑ֠ w淣wSUGNAAGi /OT]twc+iX0 ՂOmvO`MLA@YNȰܸy즎-iE'/jRW;5X7vs6//,-=v~EܷS':ںA/*3/כb]ᶱ=K X0Ф}GlL:Iݻ߱iU* ܅Gn^}۝sFF("ВoODLu+tm+؏mp6'{lscF0G<vNXTJxK5HgbO͌7|v8A3cLwC~|>1Nrvs$66?Y&--_߷9s>T ܭ0 ^<6*̅ p:|vv5>t@, v۪N]2@isR!6{=ڟ뤮*" "v]VpLef͍$I\~ƭ}aى񓥑J] VȖ46MagDZLmgUxD@D@D`Z*8DZ# u5bሀ3}^D@D@D`H]؄j8" " " L@Q<@T\.`DHg* G& u5a/" "?Jߎet<DA@> jSD@D@D:sDA@* jSD@D@D:sDA@* jSD@D@D:sDA@6E@D` Tʱ|.HTSX2"㑏ZU+D29`N D1'HvV-GT;>mI]E " "0^Jmn$sNgNL/O͔t=b!f=f-\.cX:]d&3:hk7Vr)+{@/Јc*9~<=Sj&֛[0y:IԱXjXyW㹱}Y%S5-2X;ScOĿ曞4FD@D@zɽ4mxX@iV@<^"K'N~;}~ʼj54+A]{#ܺ֒bl gҬ|rxQ՞;C!ڼWׯ_O&_uU;" " }&/gҞW+ccc1w#֋cuSSqCSV35r)٘_!:Sñ7S T-f^W^JXnނ5@TgvaKHJ-mw>*![Vf_*qN/?Jea+űԽ8?e+팛S ZT^kE@D@\ G,o .ġJ:S%2 \n7A$|t7hP_33=IT77v&V+A\ͼXY*#1X*ک?1^) oVlVƁ=CSd%3^Vϋck)Z\r+ONY~"SpD=?ϦP" " ='6i&[')|/yim~Uƞ>H_,VHKD@n~Fkf49?N(kT)[~+t <+r/m!u`DT[!`B]u# Dw f!Pˏzr~ɥ6 ޴j{ҞmrwA|zTw1=^"r,Kӛ!8[zX#ϤTNد?jFȞ=w>|{F!+WR'" Nz:狚a?[fWc/,U|l Xϻ>to^Pe~SPktPD@1L,2toMru wi1Xf#fX7hF` ԕjMljw>{yjRW=D@D`󰜽Txzx;m'cdؽp8 ?puF`DQY\d2F2@n6K]EV-{lD_ϚXoxD$Z{x5sfxTiN {R E1=v4Iwod̝pyTw'B=iQDKq3ꓯrYw55S&ݨ_|s)dg`ߺٽmlh?FclhN(KD&9f-A17AOO1>;S}n#" "Ђ@W˩ Kf/Drh dQ7:Z*5K_9r>Q>(Vo}ҍD@D@Z8t$zlБ;>7_& 74;+f#-g +aT>V֋)j>>}~c}n'" "eC Vp7/m pPŢ^<buѝI}L C suŀ8EжxO[{Ξ C QnKcmZDDT̒q/vƊt>lx[H"ڿxvsǬEk'w)"͚%CnjI2{8sgbWWR];rpE)VDT[cgnj_D@DH`لH  Ŋ(+?\b1Ka8 q!Yu6VS?m@L4줁*g&{|WsFy_o&ը@ 5q|`) &]%6S[B!Ń2Ng*h:~}h`TshYy@$ =}EHd'sy2D'qծ_L&lWTSD@!&Q'U4f 6qI4!1l׫@h4w6>po): R>Q?աUP!`5JЫZY{s`85S8Fjjw:" " " "J@ʕꉀ +J#" " " \Ir:" " " "J@ʕꉀ +J#" " " \Ir:" " " "J@ʕꉀ +J#" " " \Ir:" " " "J@ʕꉀ +J#" " " \Ir:" " " "J@ʕꉀ +J#" " " \Ir:" " " "J@ʕꉀ +J#" " " \IHTR"P) D1'jjJ)JW6ܠj5V!7u oVJXN̏wZD`4 K~XK֒ʎWJG|_]INw\w'vKWәБyoR2;6W2/F ds#Yǹ5*8\9~<=S؂ջ#SxL:|2~b"\F^ y͖ڋٓ_W޾NN2ֳY㦅\}LŤ#r9:MxSƠ<6Wf0j!0:HKD@F*ɽ4H˥m ^S#Ӯ -c>X/_#O, Y*gU_]q2ܡ&ͽJfNZr9._8W\<_hΓuH sWz49c^ءfNz+e|h_H".]˵{x;cYS7\{ٿYOE]pt xۄvo%S'+tճy-4 [@F H+:X1nڻ"jH)ߗ gkf6-F} kj2[8[_*ZگYC&~e`k qhFc5 G rYG3:pT23fVN:bX-0ˮ7 7?_;Ck)BkFE˒_d[oǑVV^ &Ue8@ִr KkU>?3k]Jʌ g:/" 6!+o8!αA'z쥰8_Ezg2pR@5L^JTO֠mU~.WVpUp{ya7?_?Y\u ،p}HC[j`ڱ" "pP}mכߎ',fJ @L=쎍ӱULU`,d}͟(3( 4ֶa{n:r<9U^e*3a f"Z<ҢYչI2Gc}5&5f7?$o{ȘdZ,mZkVkxx 1ṯA 2êh qte?  dڴhsm?SLCq5?~G:պz(" #L1M%7,Z\<>Q.A+ی1tQ2>3&L/h,v+LUsL6.4iyv^>DdRWE@DF1arzBșد|M6]cQmx[ j dL"uXyQNJF2l4Fڮ [J>O!)u5.I\C]ƜGf;e/`M1mY 9sTWXld jwoo2gT^fN>Z}T4"lYuGpzTݏ7I v\uu~8d$C}@"Yjlؼ.~^6kpC 2VѾW)PD@D3PX vg5ѝt8Y}6ܤhVq׸VGvCwϙZoAW^(2N|.a bw`%f bȃy`΋z%" M T+;*p]Vִ ^7֓2{gǫ'yaV}F#(|uEshxm3*!FVw츕i5nAh G4&" "s=Z73ai"s&vwcZ`KS]J6H{^mo%@e֊m[z+lW6c'eߜPgȘ*u|!<}HQG!e#EZ+s[@$;5i©^3-G} J/ˠ0ͬiXeID@6 4K 6Oˬ3MË{_*X&pFE#BLW˵_y}5 fփzk/SI*[k/RW5_XfZvElմBY5+a]f,WS#dB(PU@yȗhー_a]yb{H;j!W4P=SgD@D@=!L "p \ M+A-KnTӎ嵶 C?ն?[3.SfruOp5khwV^x\D={XUXX]c10)_s EB>Z[^-\UVf#㻙V1n3Z P02"~ZM&zRYcy_2&kD7>niciVQ)u5J /\kb%HB)K +c=6_FO e16Z-LMVk s?;}q_a/5OKL#zqZ!9}~ W jTX\:(fN,ÕWцWYn71YfYA+`p=<>Ft-p砹uib&Z],[_GhrHglUBSTl|Ӭ wfB.|X>kAjD=g 犕j#uMw[rl\3}5[<_ f$E W}EK_Opu{4ui^y;<ʫ09]ʲ8"(YCH~T24ƪB}da.]*[70mhJC%}L/^Y^d?Xl_;C|t;m1S"Y\`?~!g3D* [Z]KzSޏY/a{z/®s#7sfȃJoԾ_" "  $1欁MCTvω 9٭Hm[RlU"+Z g5IDAT*(\Yfkv°A [Ia8f g(/gt>#ȏPB! oPŗ$kpd2H[TPCT ]ws~󛯵>uO5לsͽ[7 AP(j@P( @ IP( %$BP, BPBR( B@ IP( %$BP, BPBR( B@ IP( %$BP, BPBR( B@ IP( %$BP, BPBR( B@ IP( %$BP, BPBR( B@ IP( %$BP, BPBR( B@ IP( %$BP, BPBR( B@ Iqa٧EB(!)41DtmMrDtGP- B+W{ ⢥E ҒնRKr0&5Q٤F8ټT纄&\Rj. 55) Lg37UÞ@B1x)JH# ᒅ-?BqX8(4 2ϼ%ʣkn5BQB(Y[=92\fBP,dP(BP(JH BX(!) b!P(BP(JH ŁB*-:$BP,T!) b!]+ڻYCB I92 }FHPBR(vLwe(CMv Ů0,Bq I99ΡZa`qdB%$bQG*}= ŮP*Oe V(P( BPBR( B@ IP( %$BP, BPBR( B@ IP( %$BP, BPBR( B@ IP( %$BP, BPBR( B@ IP( %$BP,OV8 PBR(ns$őnaP,(']Q(W( B\(Gl/BB I8 HW  PJq¨,# S( B@ IP( %$ -*F E jP(tѫBQB I88hB15)Li4BQB I8TmtcIYJqӀc Vd|ȄO Bd/a+ %$b: EVp]8"PBR(* fjLZ ڣtkJH _cB2C\(&VoNݍ*wooP\sPBRu|j TVɼ5 ~;Q((!)(Q:KZ4MhiuS|Esb񡄤8ZlaAP 7ՁWҟ4P S:"}PO "B Iq$8GHi<\vMB& -SIВ)F/H_'P,+$5xl4WBj_"&Ǔ!x~"Nw'W(JHÆ4'GZRQȐU2W] \sC&VI:x>^=m*%$@UUQ0ʹO%vόD;Ssȳ!u0`3v4.b_8 TR$jf%?XSX*Bඃ9A&C?8v†`#S2SJ*B,>)S'naӐ\FWr&^/BPBR\è-d(>UU34h S&O|!nyrB IqMQ-v*!p%вeWژ#r۝UP1SE,wF9^Rr!`ܳy:lT(4AqllXbbDh_^gl vo(AX_$C "ڲۗ>k>BgPBR\Kx"xHy9&;H E?$-)ĞKRRZ(# 8AGOc`-A ⏟;1)JHkWVȀl4rO-pmCYUYX3MU\D@1>۷HxCcnzj BO/yPHHՏ,d6he@.1O5Ob(Qg!@8vۀ6yKpWң ŬPXh\ ^ۮ#H3OOeDT+SRL׵ģԳ#낝r&Y DDl Os+|?B[BR,.XoE2QRj&*Hp%fX(.=S? saȟ\¥?;ւ_*"ȃH2AEyȀ>?:lb7PBR,(._ lN:# L.V5Vv+[.=QspOCM {S 5)2޶fPy ivqnc4sC TZeO7O0=^%.P$ib8;*+N96,HO#(DACeHV@$χr> %-q ՟D9qmmP@ؾ|~цbpָy.r=lRQDJr?Q@2)-{yrV٦uD>CBN H;y/zBC(!)un *_)=|R$4X*8HHg2tDec!pǦB.{(GCR\}Ϣ7&1"շw9\,;-((uZr5[BKiֺ6Fi1Es5qh\xw\E!ۊpx%<OB1T!)2[j9 R$ &(T=-kB\;) |9LJ="݊ʇqwNoZτ`@6<;gQ(PBR\M\ zB9rvҔK2H8J 6-W+D\R gֿC?x3I‚giI}J.< O9Ik(!)|6jG WFHHDRM2P1`" ,ɟ9Q}e k~+L6qxd#n:W؅P~|x1)Ӡ:X ¨g@ֿāO*^ZHR6?GH82R?+xVzUlCA"{HGÇq(*W_d<ր}f K%4pX8rv1 s7SF*cPE'57yZ Y`ws<>B@ Iqиi~|0o=$2:aՉ3m Xhܥ`v7j`&Mb3ʎF5rCʡrd;gܓ5 DQl 'kff  QqɄݕ``B Iq@;xC(po'%nbXD:iOlVT]BܟpH^ky r?6o6=Wg0wœw%os>f}3?HB Iq ̛FGqNOIg4y{g 'v\_1nl#Fll?( /[ljo.}`JH}S6xeqE:0 fb/d$r%lc|-I=̮XDz̼w cdr|?ꥦY!;QH&lN(RWtA>JцS;pƻTGOl|5qi^5Rk+7mWHXreɴA 92=˶?Q$[(q'Uc}o&;Х_;8P_\T4%ab_T?9#å1^KC?}E? * ⦨_j\2jW5%渌NP 5̶~v۫o@nI?-51/wOy֊# jP z 䑛I@x/EgI8.a1a&HJJe4mǼ}IH(Ęƃ@dSJrY0] O(X9uUZ*$5 #lBR.s X-$J89S;AM8LAUՁ'ª6lHl+(#StG~hL?xTHɱ[P@"8PE%$'ldr5;(وKZJKIaQދ](rV{u\x !x$&8lR= ֡X^cr~rI7{eE2N,AX!ߒ:Я]L%$^~O&sL_9y `$,,6 c6 * c#Ird34ܻ}њ_8.r}E~  }y޻LZq>$^tL%Qn 뇉].%B$Χ DZ2M,CjR9r =|KE! Z}5L&qO;ܹ+4FԱ`1~{ENERa?dGP(!)O!Ȅ݂T3^0kBp%-X1(m\vk!zj, =CJ2&Z-//?%A(w}Z!xma0A㼇Ї-o 50.=7Ny2%$ޠC8YK"r D߅جR=

    9l2IPDaߞгqB%( 2d^*VNm'a-UKyǯ4aE1gIm, _cN?EKug~>ϸP""%IN"h)).;kbIH &*f\b _wn9/dr~y/&P\CV.2ȣ'0 r[H DGӊUq 3; &Z$HAb$ b]#&CIy-f;{:ZKC|^Ǔ~)ԒP[=o~%#Sq^ಃ~ L [Wt0ovow >4bnpRT[ (#/%Q%CN S\ DM32͐u،Qy(K7vۈ.{@8":czkg! 'B%$|p(+ &;oK5ŭ&0j\~~ܝA,]!&Կ$rf-5Μ dVM/vu&RT;.tio`3zb3 >: NEфb>,(e KY4xn}qR52iWÐ>^ Rμt`|(H$0-?y0}/[;r8 7{\[g#s1f(B I1'4k|F<)UXGI:­ydCv`a.32͏Jr YYw/ukLlУ^ `[{@60Ī(pqq IH;ԁ|م̭#%0yė?>L]KΓiKRxw-s=ZQQiM-ƚj+e9W8P]m*QmEftv%K~a^zK]CgLGPd}!héW`$'x %)`0@5OeyΌWGvRD-eymYQ,Z5E˒Z簪5e3QfC?qdռXOX؉%-GaW$BI"jȸo5\ JH"OhFVHKvRːl*PeS:eWL|E|@B抱Ⱥ/CҚ$WJɳ#7p屢W('bW[ Y-%GJH+-\PF]E!w?' Ab|E3*\R ZҪ:1ejCb+pJT%϶bU9a@p~8 j@1/?2ĚsF;_[@ %)(u +7rHܚOuby)R;v*'rݙ6绖^IS8r捆eKZ'" 'Ng]h_zSRb c2yS;192sͭ8LPB_졝*|7;z;*A$} `-|'؝6(\1U'cv]eSi 'ea랧jlp҃!O?p;WϮhzå7A)Cߨ¯un#2k#XbC i/yzU rUđu%T$;B戡/c\NU 񵩊:uNP+A;S5vU~OlIW&x`FgG^um=hr `Y"$^ZB%Aq衄42&[RJ|v47t xl/4/PcƯc]mU(hQ`lߣ\Kc|F-ΛBVRQg&a3~^Jf幻Iwa5_:yvDO.\Iuz"+[jW*h3֟|82dl&1#S2yK^p%lTC[*I@K5ecƥ7b53sMٳ, sH50PySY kA?x MEÏi]8,.`ҍPDNR< 漫B8HBR$̂քjPIDϋ^pE.ę PնU DlUU)f>,M]{AëlXd 3\ĉO;JZ\Yl+"kQZK烦#_P!ɿ!! P-_%?~ZDŽ`Voq4֤,tVnD}Žß9 H: _qjϕ{*fV{^ynga! GgGK7K)@d rš*CVxujn=g/xqZ3[bQ5W6jbHI+Ɣ.;:S8:QC!rCB|D0=n$+oI%N6 \~w~+Pq8t0c* b=bf2L; 8Pa qH奲رfărl6rMWʛء:UkOIMS1~#;Px#\\ ҹ\vΜ,ݴ4yhb !lKlVq&BeFHQ?zgޤ(!4,} ׃Dwo |W7lJQ+.UO!^\d뤅@9`2? Vl?oEZVaB!./n}-KN%Znk )5!$ؙc 6*YJEk S.iii蔈ι՛X;k.O9 )GohoGQ(*+-ߴ:-=ԊkC-2\5R@nWg w?]cbPWF1d(ȦM?c8oTN-*(j&ؘg ԳQ#2?^+/naMeIɗCAXC{O}Z֕['oZ<4=fF&n8PBʉ~h.eMv )/>~Tne|Mg|A(Ȭդ03(=/L.qfdipAfjmc䣢w`-u&cfJ S.7\:>l*8B iBf]ўt&Fh#,L'8أID!\Ҟ=λZ7_`TX{.le~9 X Ixl>giCcm |mgLԇıvʫn\zCW{(1vLWb~ 1تR0y𼗄R 80b,8)f-%DE fNat2/HDݘR[^2'!b uަ)߳n ;2?z;y}k t넒x, MK^퓤8PB-"$MMvIKs푁,˚y'O!g@We$WU6q˽ԣw2dK߿(5 hoDծd4>Wy5|mfGgVc$8C@ __yK+q(! Smel!U΅cU<ﻏ>[M$Fh0-&T&+cGWc0}Ejy!טR%%S& -FgF{yTnCcX@aEK`\ý7jC %DU =|K"o/=~zNdѝ,Ebdn$4jXdjm nטMy86~]do4^Z 0[ɿPp<^|$D+iľF[c?s]PBĕ+7- Uƨ8TPB2 yσs1p3F=^0 3Q>KSu]E3%MwLŜZ30>5:6`h_2%1=[9UVL c3D?s]ᶱ<CeVsBR v{W\PB-|- [ xK^a  VW+;KtlT+y 9UQ>3݂ުh$H6K:jk$rrPGgV|exF:%t0֤<\'7ϬvKC+gGK7-O1Qth}4K"Y`(V26S~.(&kDWJt֭s3ZVr4t{j$WѩvLN8x=XGi RXHzU$؎Ѓ8ށkgFKYIC*y(!)j U9vLeu5nzؒN)9*bB}FB4{T]ѩ]UPh2ѩ x+&%=F )+8;)Xj9wü?/T\w %2\9 JȨjsO:n;2J#I.˥)O{dj4hq.Y* Ʀl$Jlm1fnxClE!U*77m"!+@I|۰w7Fրo?>s 4B"Gj꞊`>?q^:f UQPP3Vr]n sN6㍍X30J.Zos61d-3IT!BW.NkE7R| %$Eg8A*cIrBNGI(9e`z6Fl^0*|-C\e~ x 4v|tjMv󁵷byk$<΢TXy]PB._9Phrftsϫ'B I#˩_xS'/ޗyɤ,XpFkgƝE&( bsvR`1Z IkÝv(8rW lZ  9B'*v5YK e!)] I IJH."AB8rNLj{s#!Rxu|av&$j+z͞! t6d7XU©g5Fp+{lIl JKrE&tO?  ؈lt~|MRB:PBR֗?{*gCPJIu!Ixkve( #]DeN BҔ ]nR64ZX]Z(!)Lg 4>kt%V(Ki_/Dbg[![KT漱n7ʥZ ;t+Kh?h|nktz <b%юG2L)~w5;SW/.% %$EirV(ELM6r~)It`ҫFڀ(Q!z%h)*vrY"SVZ2{HҌ(r-ufrX\pب#ng@t>;I%[]GJHƘ7؃ɤQ'?FZ7@4i ^>x~~{M6YӢaƽS!EP|.FS g},$IFro LpMv֯7 ~쒬PBR ]8QQRar X-t7ZY\vi6ldl} pڄ3IatjeVa?9~]$.\{p` R(!)@(kQa0sUdǨ&N%v0 ^ olH)zlbX1,$Dp(yHx},VΎ-ύ/* {2uJm޳rjsVD蟼r޻( Cxon@dF q#Z&;P#Feo@?1Z]dj)piT4^7hdgAS')IL[96BuQ "p* W+9ނ| !ΐ\d (ԓ$Z^H4ct#$\'(M߻OWZ''9g #ѩ[x} >NK"‚' (HPlH B I1]d(MvI]1ӲB,AV;[TYKOe0ZKStAM #eTe Z,՗+eea(ID"Na*"=(3=q ;pT\CPBRT(J/8?NcMvbZōQviidZ2O[8fh镨^hmM- p&x%~ai86"v^:7^9=ڼYF|?^b׏\p08FLš"38 a24ra(A,Aޙns8L!GV0Cx3c~!^9QPZݕp4N4_C5QeV~) o ~$ AրnлF=Z%C UH6F9%Z('^CYaȕmj_r[_f@͍ڞۗ8V *lI0:uRtzc[|&!]dY5i"L&j{PʫucR,l:ҚHgeӫ:&4K)RHm#dN€ 30Z=ILJnŝw9Ŷ6d#ND+v9vp^usw MbL>^ 'erckuH:L@J;ܶO՞ŻqH6Wmb3xc9Ly-7&ERWQI]K$g]0ĹGV}>6)?@ ICNJF*uDav,_{K܈<*rcӴ"M7Acyaʑ4Z=tk7ܨ'Oɍjdah|NH(C>dBI ^@6:~HOb K JH|^.,x%{X Z%!ilkyV8a4A XX16Fn3P/QWtF"!)%ؚ_+6:3r+9 ?} ߥ{ IDAT$,'GTP(js_R) x Ĺ.o({HPmKp!Aid@>)w5UێGk L$<'dANf3!59.O[]'r%Mڃ"G⒆]J$rJ:/WDhX.vn%*ɯ0ߞ)Ց.Y:|ؔC^FAH.\<ͮf`Ǜ!/ҍdr^wonn!"kh'iosr!KAOk=?X-a[_BRTPQ ɳ}gˋQSo4+ tF͗wes5T076Fuch-D779{xsk:՝@ٕ2"!S1&LGrփf_h:a kH9O\Q%9ʿY"z(;3hLŊej'oZkW <Sy"! yB0[l\yI<÷v'|4\# iFd6K++NfAtEOnW?QfgBf Yg0١4ɚD5Φ9ǚɎT{ C4jєb[QT(M@' ]ލ vB>?zcn^`ð8i}'$Ux!-]tI{KB|R|jXū\ ˵& jtϋbcffLs.Ľ̃(}bU'imN'!"կNLLQ~(C)0OHW W |t_,E5`K˸xlbd D7ǟNzbp↹4qPq;^)*o,m(Bx1!5IS 2UI6Ӟ*YYfg pI(<9Z98upIѧo8Lr5}DDDTؑ0^rSK$MSe"54|86>4m^5ddswS(!)*xKANfc#(ȟLBDVwll-JN$aRWP6Wy>ȣJȢ& grRsXug%딟r( r*(\xL)e87?MHJH:OBۿ(Q"AȋgfȳI+ac _bW ^]:[ۘ`<&dsFPBRaA K:Py%=UlW}P$ŤC'3"3֭FZs"Ђ0{ÃIb3:5Ƹb`cw|` ׾g]bKn'O9Q+DZmLߺ6jSk+Sjz7ꋗ;ֺx*%ǎ"H QY űkWPub O̝|kŇF)0Ƞ#M` ۃʛ*(B݈"$Eօgӱ{yn&1xU]('ĊRj825ϳ[2{p/XQb6B]úҝkZ~NNi?4-j}أKaK{Nr JH&VGۏ(YƂ: :~G`S&IZB8Hؤ@6돷6F+'qԉ`rpiK:gʥTl5:՝]rork>QGkCR @n!놥?.cVn[JH]gЉ2b~aNe}>exZYyJU>8C㷽"XXUHA؞Y50 2@`"2]u|>DF\R3k#dj i5R[ebUc(̵W2כ s\.&D5A6\VuVaY:X/L'XŸIuBTJ(!)%'{3|"o1,s|x-_p]k:d$lqRg?hClS8ڧS˦W!+g#"^wKdȀn總7\ox}5?-B^-VFC6! ٨VٳL WͶ\d=C+:v44Ri+39Z?O[_'ocbF% 皎\S/z]o;qN},>t?D{M{מa M ذ-K޾:^ytߜb ;hA%$|?=(" yϋROppD2b$\҇ĂguPGu{ZJD!Ir뒆&3t.^~eɏG񛓤R%sC[W (!)f &ك)0 7n[xy))9f~Z8C2fboMyy3g"7&lKrTb(!)@YO !z } [N|knbTQ=l0(h(gcZF.dP0T$(~?d%KaӋϾ҂WI1wU*4RY.kgU&(!)o~⍟'lga!1&?I$3n2zCMptW˚L񤽥&˥jU$7ٕM梴T6zG ;Qѥw8:o28-^w >׆hKt^?i?A_{߁%d| F=̹-Ry)ksfGi<\ RSXpUj+e59j8GY Q(Ҋ ;L8PBR̄3uƅΫD>]j w.>\*$<)\$Cb-nV#U<;5ٕuM뎃ÑƴFMGEz*4BX]Y^.3t!b&|OK!pT1TY/e虷|% w,0@Be;+py9p6YT^?YGcz8UER&x,VDɶCOYj;BPBR̊0[Cݑ KcRt8ryi`/~ c|5 wLUV'g͚( ~JQiGK$|9 ~rU[%8~DmJYc}>uIej%R5IYvi,G1[:**GKAق=pʣUH9`E[Yc8ۿ:K:C3sm?Q~G w0r :k`6G+bU=z*%כم]< LnM (uOI2g#oS1(!)!,R"r d162p߀LDo1~Q'Dx: wP-c 92԰Ճ?ml԰) +k.RsTwL*A9leC-6u:چ=pʣ%$~ͽ%qD栊Ȑ%@ "bp׸Pu)ռmxscyWNA W u0 PhKaSS\Ŝ|%$ y}Ij$T)(!)惛@ !0 )U.(yNI12W:bdpN<^rU~ƺ!H@ҼpqUr>PE^{թ1'6S5(8\%1/ IDC[O J jP̍]`#!kA~%1YXH}| 2p#Iyϝ_xO08%ffOX6)"/ P@&HL qHvR-&Bp")_ ! |*e|"T!)M崋$T=o`{>!vbiV;`fBFN355]7P)LJ\ <:ɮP4 QkP,zJJ\dpE_*T!)vXV:1%:L=" pȔYҤ;8/ߔj##QN@5o: RSgeTd,3cY_ Av9x98o$ yab:ГG>[*$N`A:z瀅1:oĒWE&DS1[XɁWNX0Ya#QD0BG]b$_9v7ɏp51E ޼>ǪsC?t +Ⱁ*$eHP&:x ,N=\nIх*$a}p:oI!Ba I$O yqn*?ׅמk~oҒ}OM8߾$92%OIa5M$~Q 3L+^C IC\; G)l :ޠXdk8ӆ;!My>$ ";Mt12 Q#/؉oھx))OjQQ D\l[RQpduH%OeP3jJ]Ҹ#NRD/pΧsꃲbDb'nWdX<"My]nQlx $auK,Tg$ }Oŕ&7dP׊J}~ 9$| }F<|KŃI(!'jCS-*/0w6Z3D1֯ur~@0u%WY Gn?҆MOX{HadH|"pj~5Qf)R$ =H1ħ".7)Qck{WPQ}uK%$nqW|T֚2(ɺXuwxjV9C|o~ӯoܾaq$ԕD#U0H%QW ÜGI$̈́cxjn.V;;!~">,oUyd\lXFb3SZZň .iYj Ǖ(Z6f Sf.)!yN6nȆ ܦlPPĽGXs c`sQᾍsR3g?T@~xQ֟N 1s]CE^ߩA/HDU%$ ,TQ *$,fD~wvDjJ 6k^XZo<6i(PЦ/bR?LU7EcARҶ?_E̙ ^\G%$Ş\7BFJ<~Cp̜0|>g&_=9w rl_ )yo~ܚ+IQf˸> Y,K-cQxDUHBMv Fwb\TKnli6/@&]#S02s@M~L՚q/xJ,[LfH♌LRĩ 3iB`)oAT眍nEro(ͷMً F%DUHQb񴥧HuA ~r@nSK&d3t^ŷ/<|1oWܴƷ'C]%vY9Nx3 4X\-o."E9"W&}i =OHQ kBUȧaW-.ЅM/Zd/9iB%w*[ :(@)*^λ%CY8<`_5j/e`OT E JH}ӗDդ$OELMb3NEھt.-lbQIJ*8s,aO>EH|vq󄄪$`\,MsBW q/Mf*MN_x3,Ї=B],868 }ϦFz| MEJ7+#wt1BT ,|b\s;Y_#\iC*0ȥ]D}-zR6RLb񌥯 `n^PH-R*Ĭڤef63dq3keN)wlhSO ՘gvIDATX޲ϗWyU :Tz۾KH1JH,s(HD34ж`"wO SjÊT"?Ԛ ҝ\jΖ$T( W{~ˠlCR;z'$Yax6s:PkD]=R=6ݟ"&2Ҭa2r!Tʢrԍ Onw$/79$9b9s&xbJő*$ž׹6iD G[C_O N*0бdQՅTC /,v,x#@}xmw{r=D w/Ty JH3EaK_^pɦpL%OLx&2mgx?y{S.ՙIlOOizB~՞pB Iq@x ^ 7NLn8azuixAWsLƸiOq/yH!K6+2W&ߍ+q~#F. A Iqp8Ÿ0HoTbYWْ [l*z []%xX*$I CM=: &β.E+W nb>(!)ǖ-@ od2BQ1l0G{03:(-% ?)\0 !8f5*UiS;OϜuRXudC8JOe#N8h|Ȁ0L-R3G\_,FTaT[H ?n#}2˖}jKq7e|dUefT.4 pbw?wӸx1K[S"I+l16'vX:kx%RAsodAFkM-lN+ًVuRt;IS!iZv8wE×:v.d.3fVS;NҟW03^O95lskӜ[RriZ\D4-}zUT7%ix74wAF" 穟^\|ONGŐ6y(nElڇ|6CzsdVD4Md74)wbgn-;^1-]Ռ vscnFuS۩.qf!fu+o6u[yhV9%T;nVm4vAQF~%p$roØL QU'xZBm>VE*Zȴ$y~v CKCͳVmRGGn-;so@Χ=xrO$l㵔rmW<E&$H7TrRC=S 852JT])gXm*+i0ߘ>(rFaW ݾ}(z>Aiȩ|:8mnר mޔ>vv s==O˝@Uv*gFx$Un"~sL}iVsIK<ݼY5vNM|*'+'Vi[ʁ)ziA8RǤ^-Zvp{۟a W ǿ{kqSN0rOkDj7~*^vNӬ*%Vwrk@[OԸ8PTs=PP쭩>El>Uݥjmөn{OЩvIˍ%'4=XyI榧]nr9F8*$ȿOFCZPm#QDeP zzKuXCYUR֜3{K|O-%Q;aƼΤ(E8**$&ǣ\w)""aWIӘublRCfT.0g. دf!_֘ʚ-y`v޸LNJp|3zFHe0NR) ,_5j-<2@-" ī_!F[+][w>nn;ǤN@_ßE$-0t#7ZNX3-/VwEk%VFWßҴ84F|2ŏR,{KB+U%Ql/H8jg[sqx^=GIiH*68m:x5nw[04ʫ1\$O; PR/?h4/|tZ!5[K&Vjqg#ClʦG7'c^H8@Sugo-b+ ś#|O?wJVem@Qՠ$Nc)~-Vu=~g%ȉg:ؓ5ћ{$nm>ެzttpH8*^!Upᷩ0RM7Ej z^2UJζGo|D!p<{[vZcH{}> :_.=,r /~X4Cy!Z 1}@ʞC>hӤB$kgؚYc='PM=nwgr=IERg-jỊϷޗjw:!OS2lt!nop/L}@5E clY(q#nKsZ\$$5|i6.ulGp+\ .H$  p@@ \ .H$  p@@ \ .H$  p@@ \ .H$  p@@ \ .H$  p@@ \ .H$  p@@ \ .H$  p@@ \ .H$  p@@ \ .H$  p@@ \ .H$  p@@ \ .H$  p@@ \ .H$  p@@ \ .H$  pǷ _IENDB`psychopy-1.82.02.dfsg/docs/source/images/face.jpg000066400000000000000000000553571257562125200216070ustar00rootroot00000000000000JFIF |Photoshop 3.08BIM8BIM x8BIM8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIM ppPJFIFHHAdobed            pp"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?"JT)$)JJX6;[+o:$*hsŢ 4 4)VGO*-|$4U D*RIJI%?E$G¤Yn} 3>i%6q18a]Ȃ%u YxKYZ?KO.MYs8<~+2~tl3B|ʩ_n3eN"?K"4Jٓ- W4Ý:@em~պ$2j`'M J}`=ꪘ1)$IOE$jŖ[ZrkKkl,ܾ- 4=(ipH5 ݾ4 Ym H^~ƮSӱCLsDZ侱 4kۜQKyc&H!y66ڎ$/9 70>M䓹 '92[$ӶpSmO3^mf>ܞ+%kAl׿w%[/uEY@H|O@]/$6TsGg [mh蓬sEXoVs+u9f0=Z]vsCGX a?l csHО7mP~5z-d4ܚ(`A-: ;,nj}⦹Mi|F"RYy߬yaPQLğηW_L=\mj#)Ϝ̍I'-E$I%>1ƍf-,t_]=5H{ayGBt̑.Y:{~kӰr1ehǎH9L]'-g杭|;]FN1No`PV٨m"#`-mlo~+mkk5 $;r>抰]S*ͱ:Աm[O6\wm ku{插ԟsqҶ)o&(پLCI$VI$SI$$I)K[}bmٌK W?IR 5}y酣a:?]uU8Vc1kBRLgRy6P:i߼$xh'RI)$IO8BIM XICC_PROFILE HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km!Adobed         ""   !1 0@P"A2#$`p34!1AQqa@"20BRbPr#3 ᒲC$P!0@`pb рLh$ 5j:IlB 11X$YT֭f_$I 2` bvʄ`"Ԃ` d Iow:q1 %kaL"-2DN>@ ̮$VHK 0`0L,/|\LE_,(uҺ`&AHbS̴֒xM{6Ut.5k]}# A[:/Uj:rc7sڸIZ,\L&1ɩ.~;1\ '_Oe|.nlVՓRZbڲ2j)Jd럔׹N_K@ߎfԾ燯YkVY'V@ģHK[Q+_\ӧ+Tey-ZH,Ȭ b TK,fIh\qta eYuyܽ=av -KK*LΒ3&(gY U$lgY^yēҀnùϿKme #5:ZqЕLҹ;[7+lͲf@ffְTV@2Q?%1sb6S{zɩ3FXHA:WubU$ʦcss5vy}m@㧌ytwgZU5n7IS)U#J`rLJ.hN~xh\zpq{\zN>&:S*IzvɬlZ Y#15(,*(Mv|GViyt=^uYs 4`oK߱ۋc*͓^-[.mg{l媼?ȹt~2:{WV3Ǹ2w^W$(>ngJkr4.4gqz< };kuwgHKdzoU~oC:n3c|1ۆ54Nzۧ7U"X\~MNכ,Y|Oןon>l,ksx7׸Y\z=/Ug_?`5?ݸOt^K:Nrg=wXQ,ַj^=q5ǣO7q)ek_<ֱyzq>=ӈ&}owMkbZ0fdSo=;:m\ssK5J\G+يYM-gO>M>oC}N^*gw:n:bfm-\V- -a5W4CX.]z 9ޏn?x/k<;lλMK+HK⩭Ke&lig\vl۳ۜ- 㝾gN׳/3}|K+ywbK-drustΖ8bٵy*+6kZPS|e=[ y .i}qinڳJkSMç7Sr!d'l3nVWדY-sӼ>wYIv3u/D&姙[F(Xa:+#_7TԓO|#yޟ6G8lBcӰYb!Dx{9:|t̞Y],b֓:WϝM(7W kyWNmE\j.42γsZޜvNwHKQTΩ?~~o\xj_UۭJY-䬤Ԗ1j˯[cuR欨gE+z|KR_xŶFtrbUX@֖ܲbUME)X]-q~'xHGշ7tښV٨oHTYBu%Z$ָѹ/{<Wz;7tݍDE`7UgJ&s16sY"y7|s.Ç{f\C=9QLMD&= r٘Wf9:ǚvHz%:[:XYߛnѴݦdJϡDr׹:.~rrճ%ĺw|ykb@֗F9;zK4ᥩZ;_O'.M[ng=W;j{9kuO7tܦݹ\qnKa$%s7qͽ^xoifnqͷk8ĵ.i)ʛ6%+qxG&}OsvutV~kQʵ*b)fj\.ܼW~ ~uq ۔E$A#W&̳>”w'w=7m-'S"14:y#԰㧿zw[Q`ךK$7'`{OC=v,ʔ%MTkc7۔@6e<;tĹ 5MUs?3ێXضKM?yɀOɻ.\r[w.__/W}/[.\ : K %˗/&\Q.^˗.n~^+ZRz>L>._2S&\c;u^.\ :& Ru˕*VSj prK%jI EF$KL&wMkB%j A΍/C&^/QazCGM/[*+ BaE {if.^/" 4>W  >JPGE0}a>bʕ7B`=/B`: S*Ve˸N0p}+E˗.XL4 +J+E 7c.Qer2̳ z^r2 n[Ҡ[DDn"@6ɥb!` p~Sv1"EMeފuwnCwe D#.j$Q AHΐ0..#f>' Aár:\?[Kea> 1Eeܸ :v²Jn\uDUh :\Tu]h!Eī*>[{rhMgNTJc[Ft>C+tC(z0uL%O_@5KF&5tN4̨eJYQpD$CjD3ATt ^NErX%B O@ ~CI }+W" J>n }34Zu* T2,6A\/D+A ~ttT>j!TR0FAY0j`e˂\pz 1qcAԹp@Ҵ0zEYEȵ%JiZZV)+Q.j+ZGOeE+ٯBb^p20K*N E*}2J֠LUJ b~11(ɻpkԯ:}H* 6ʇJMm}HTSl!YM6M~9 6Ͱ+?Jd-JJҴDRRTRXE}0j*+B%MJ*TN2~W}:VC}%Dh=K q"j=uZЏQ A ?@4Hkz+۩Pht0ƆA/cC:kRI~qDz!h# AW.\/C 1?B`ԙr`>˗. !}Йpn\2zc!4'J0T0 ZT& e0,˗h݌?@&RHH@ BmfV#ˀRѲBpDVhǡ$ͱcB"CEEBaGAh;cS2Xʁbt5WZeETBmn`jS|4W&)J@* p zF!C0a6aЈ#Ķn\fodh%B%A?0mhh`N͟z.astD2>Ept^T#Q@4hA'~` *VգuP=?SE;8L+Z\:\CҡJ6~n'?u0/+( ZãD`>N9 tCkz/zV Ab;dk??\~`:yp`5гZ H3!&Fc0rA!@41eN9_=WA /Kьz"z .1l*A.wӶm"mL0T=`57T.u`HͦlL20L&9N .\-7Ka/C !t=Dj l !`f PucgH thL\/BTmL&1Cèu&nu0=~ML:Yf7.ѥ. zܽ :} c+\Q/=0L1ھirRc5Bo땪qt@\:M=EhQ/L-P%jDkrastZp g䟒2{f7n3qf7n3qf7n3qf7n3qf7n3qf7n3qf7n3qf7n3qbݻn|ۿ/vN,YxBc1:bcR2t% oWK ۿF s2f2@ΦY4 (_ ~2n NB`bcd(1YWssb.Kx<~*n|\y3u$=Em , 4_!v>4YشAP&T0r*cPbGSݍ@j-?]o79K9n[5q?#5`=Wq CRf F"PccexYo'^K'T UV[*."@tFǺ:#F ,j&3yo_'t 3c /vpͻ'K?S>Aj@1oZa17_ L3 3 1Q2_n a9^nOVxmB-TRVی@iq̰*QCU+@LclB2Ԯg?ϝߟC^\|.6-ҋ D"Bn8Y4TD=tn"97U4E!t9 nۿ3"]E`++'[1$AkcbIнFrN]59ь5}ow!:77AKb(T75@͠JfF)dIr:]ÜO=@fc" $;@b R@77X6L*(ܵ/Bd31ʝJkg~vƮCBp:jiIvbE%  nn\c)0b7Qa+r mO#/Ưe^S'Ķ!r8XBM Q[C@6"dRHڬy-(W#^Ì.Z&@1P*m1 7A0:J3B%[i= ̥Uę72T 2q3tgۿmeW[oddg~f<8:s:.6Z)!1x7@\-8q74<ݤ 7- W92{ݻȃA؅ 2^;0Ĉ$aY C/7x\Ffb1 @f%g+!iWY >3G'#qd!nrq_Bq}23qiM3p~;y:dfu#0 /Gr8>KrS~?p76Q+XGD+yrrt9yN'^_%;屎<陇%2F^N j~D˹gM~>Rvopylm<χ 8Al.J**r/2'YxOˍ1n.PF92\L3qxdUx2;yܿ#7+7?Ż#fVw+ dJ_$Tgo3bbX~׶ۿ$by"^g> pe+r$Bkv?ܼ{0/!87r?uRW^ŕdg^gl >1oLjuU^L n_6%"du郦5*;;r1BJ"y5 x! ~k 1?Džw+7kݻv˕rylBцWV8` \u9;Yg%ɼD8TjF*2ug,^LAerNi~ǁgdO;{^s<_񼧏w?È[IJ*YnVطg1qdWj*0 FDU0Q79 ǧm6<'s>O/v\P#?3y\O\'Bq2XfReuM,m%r2qyE26q*aLϘ?7[}x+tɏrpNY1L@BeR3mUș1Pv Qr6r.tƄE,#$ج fDVkw;^G9qF4fTXbō\a/y{{,8ͩ8dDjl1&mY@є+9mryR& ̛AM$lf2Ń?/.4iGNwظwyDY ::/,Bq S><0[&iœ3xW38Iⷌ лV f[)y˧ݻ/sW'?^{>/йȷ\NÿZNdkHq~>,%݃uGl)S 33|%>S^$6&&u+ u!eF^W{X1%k+4U3ˑdkݻO|cVP ʪE?ꄼ*6j`&/c&f`qFlϐ7?iwse×5pÂqWuPbmUP,0  LF J܅`MU/>S~LE*+jlLr7Cʠ>QϕYY*n=8Y Fm9\Y&|˳"/'??/%ss{~?)Hȵr4Wf9V ̡vFzW~csn_ۿǹ?bn y͏(s3ȸއ%,e]9Xs9~O%Y+ۿyW 'aoWϩ``| 2y0)aۿ͊/(b0H@-~o+?^w{^ͦm3iLf6ͦm3iLf6ͦm3iLf6ͦm3iLf6ͦm3iLf6ͦm3iLf6ͦm3iLf6ͦm3iLU7?H #d#kF[?PO@  yC}/ʛM?57W*\rUʹW*\rUʹW*\rUʹW*\rUʹW*\rUʹW*\rUʹW*\rUʹW*\rP:::jn8ieNjZ|oN&l$!_ڞ.%Xa:_a/`u8(pUJ4{UM,jB|A"GKH fdB QײSAlj$3`!&n( SFuU! f~hTa q@L>`R 8-GccQ1AHM꺄'!T0V?D"MdSr^iDD~2WaS.5G^Z7#шh:{R>i};qF5-^FZnT:t͖cJ211.SG~5G^źCW^F@ro?Bp,`H'Pa[R30{C ::d$IpVv{e8i`jcQװBssUXteu[X"!rj|Jy-B#b0&c9#!0_HVL"NpF ? u dEP3YyX&1^reFɠP!!PDžw`< t.\xEi0@06 LE-;R5 4jbE(U sT( "c_'[5G^y!PVj0(ŀauJf?TQ _5fMoD1t]1kL~**0WeUX=jr 3z8-P@AQ]]3zbWLetZUtRԠE< 1);nan(}} tD0tj(uk W؋w-J4N0D!/Q*ܺ*)M)֗w:NS")& 4sġ'Dڙ4]P; ʊh9"tA]2dѲsbSbqCH4&>ɌTuUh@hdj٪"Ck72L}E\,Su G kTa{MN*e$F[MC AQ,@ -b,'%] eW3`~^wcp|SD7S~K&HGCrw" >4FlN)Ȱh\JR3&$@.-}l9K|N1)c(Brʧ%B4U,2UD{b*(]9*n8]z14j8M6R\/|5G_N[/1N<8̼`"9A$C˫[TA@H>!|恜g3'VNU.Τ\|;O\E0OL3nMt*HnOVOBF% r\˹Jf$}}K%ԲDƅ E1Wm~H ŝf Pfؖœ3#vOI78"ZH>@Cqww&T "$nŽ;dkƨK.Yt(rzɢ57Tu቟/$arM1CCX’U(HrJ$1Tqa@;CE#7ex yyX'6&\RO Dc>J򌼒ć<\BA6uG5mŁQX@䜞kjcC`8C Fy)&5zOI1!7iNRgBmv^"O\ r\Q$ޏ/Pq.̌d,A QqAC~E7bɞןڲe ("efkdKEmzʃ?H!)H$jᜥ9Nr$ȔxGXQ(dD.\f2j?r,iQw~sCrH??^MQq@??j?,Gv`9hdGQ)fCu'>Rlo.b04>syIr(Ym3y6 >OR#y= h'ґ6yNȱqPE.82q ![`΁ms`JIt P3BP|PHˁi.CY&/v[2#>XdS _)0f(Z%n1H > #zy}/WE+h;?8(V}H ` IIu\ RS?03f&e Y?x5G_yX IXyԏ.e Ȫ`T47TgrEa`\)r-cd43dK 3FQG@x`20'+@d7;y8z3C DS@5 b*+)\RFb N 5#s[g1x5G_{&㗜RJNՑ|,fb--E19J-qt ةo_hS7Q"fB# \"HT Gۢii!T}[ `GEXg 3BM^"Qe6BM\jn/u#?Z*1 AIV%hS4^R!1 B K *W74;8#H{:(J.a[=P?/B ,|,(kuD:`ubE/ 0F8CT!_"H:Uv8*W4 o R,6;'Ÿd ^j<=l~?KA >߈~T%HnuUVPU1Dʨa+#'pWuJYT  Bi iW5L(Y*/4A[cHKnmƨ8ĉFC,T}@h8zȹB>܃>(Cȯ'!OHg ~nIČUSyU<"҉9Gxy,xpT% ڡWE„Qm$Ҡ6NFpJ_'5>@=g80:^s1"2RmH W~A(ۓA ]2qB C ȊˌEhTa4ddeI480F|LDЉJcrNn E).g.?B~;7"Tg2Tu\/.31"ILPs{21g`R Sl , zT {4aLX!FKm{(po1jr^ҋxd?5G^9]f!-'ևufr[)=Qc3;0">z * E[u\`\qB0mbbZQ /O^8cpP'4F+ō&DDVʶ B]H"0k 7M*lUN1Ot $UJFr{~!4CTu~W!|;c9>aM>),Yyk`Fl`IBJ,9xϗ &⮼$$ 8?տcc[bDt'q nDMpLb`lܼ'NI]@ bD\n91`(LJ~(5+]B`:\ޢGGfFR.Irz5G^=<ސ aV>&N FX-I3BOr;B'59ɱD KC vUr5?; {')?_02|1w 8(N!0njqgU%]EteK &@=W)ĖRe2d{ {/2~~ dPSuAWLkWjB{ Lkn TM ˚2vQ5T59sGp$HZSee79`wBBW@)g2Af^o_%{X!wLYF-TاuTyw'#@SkarTuӁdG!/o4V-td> t ':{ -5tƹ/m7(D=Ez w&\RKKw$˓ Q׳/'ߏ 'a1 T0 @CSSKHeA Ǭ)XሧGgh}')e$ dH@E@J> +sEBVb0NCEQ = brNSX%9Ӵ Q״O^^ 0'/ЄN#X6@r[|͔zd wT*l1Dq 8,חDx+OL#FsS#~5G^տ8= pAxHnEn P#ezd̢??ޒ"rLJh;X{cJ-f)*9*ǫHpW"!qg?5YHdvѪ::47V*XbUV*XbUV*XbUV*XbUV*XbUV*XbUV*XbUV*XbPpsychopy-1.82.02.dfsg/docs/source/images/helloworld.png000066400000000000000000000315711257562125200230600ustar00rootroot00000000000000PNG  IHDRne^ iCCPICC ProfileH WgXSSлRKJ bG\ *XUZ ,o,(bʝCQ/0b-Wa~4/j?&@5WEaL .?g#0O$ebsa _s(&~X.B W 5E"#t^(1L/ -f~ OIIjdN 8UDh0gpDl\QLa̘j,1b .06N$ }kbd("& %D X r smAd@Rt `@^9>2aqTFZHOHk${ CG|'*9#p aX`_a~A_Ft<'[ (>>br 9B"[bKCX v kŎa68ƒ "9 fQ_˒bӊ`/ ȀmoÊ*Rt 6qf0N sq`Ž8A,}4 u0ycO8rrZ3e4Q.BWcqwKhxS\vn$=g '}_;rYސ'^$Bc`3 D5,Y0`.X@ Xց`+ )p\ G0 5‸"^H D!H2H92Y Fd;REN!H'r yt#O(Q T5CǢ/ƠS44G h9ZCSE@_}16fb?%a ceX%V5µxS`=Gpn g2x6>_ou ſ$]5ɝ%%H3IE2.Y?wޑd6ٜW{"9<\Kn"w(6ŚI(">IeJ僒RRD@Li JOTS;5*Φ6R/Q459͓CK-jhgiwioݔ')*+P>@#]nEO+M[7 ÌHb2V0,&)`.`V0똗/U***TUT\RQTVUڧRWPR[WU:EL=P]^C#2fŬ. W#]DcFF88Y5lm3+ٟF%lTͨˣkjkj]^]}Oױҙ3SgY=FG>8.k;Gwnn^Toi}~Z,/Z9_N&skkb(7nnodnkT`TktϘfjjָٸd\jۦTSWSzfffK͞ksͫZ0,--*-Z-]-3,7[vXVNV" K֨zu FbSisÖnkg[m` {L1c^54vؖ_2vݱW/o`wpp r\j8-n:&8-qjv,sqv1qIvrU5uy7cnݝsax;?4ynTxqy) yޕ}}>|Z}g';SP1~QPZPuPoSRHX\=.[ u z&1aU,q:!tš w'NL܈5"##D9bғ(Q-Ѭ{Ŭk+mSW>> 4^06a^DDqbC%).iWR&wMqR4T󩳦Nә9t釒I{?"xnʦ^?=GV- z>KL[-zW![gDdȌϬRJ:*QdHП1kFZZ$Udgv 9Ssr5!Mn!I +"̸f͒jm5{A45hyGo^`pA{e,ōz SuHVtcǒKmXXP|Įr ?\+WnYE^%Yu}=jLXSxu׵+ۺ^^Q^ްdê 76^ݤi٦/oRUokOnn^WiVY#oǓq;[~qjή]_vKv+D9SRUWwjZ^ݽoʾjlkײkKM͇\6=HqR7^ThHl<zѣoc~}Xq+ON8Is*ԣwN'zfҙagϟ :wŷyZ[^pPb]Sۑߝ~?^wRC[Gc/pUՋ&^{)777ʼv; SWv_~*~liϔ_,4~ zw k`@ʓT^Dxv *p!C'!nbXL!7q̏Iut]&@il`} ;&s6 ` pHYs%%IR$iTXtXML:com.adobe.xmp 758 366 n%aIDATxٯ%UAEmdqATf0Q" ('ȕ(NQn 1*A)`@Fn[e~X:kgE5uU+? @@_5!@[@: @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@8 @C)NA5$ @@ @:tTC"@GТATaÆ޽l߾}}y?ξgϞrm۶-Vh_9˦M&5R8ڼWq ]v{l񨣎gރh\8k0(D,U@g{e?]zwQZ>ON/;p˖-ݹsgi'>1Ѿ?|_~DWswOz}q)cZXs*|}_n|uֲ/}iجUV" @8 ) ЊH' )lJ" i%RI,@@, @HqZ~ @ ,˦ @@+RV" @8 ) ЊH' )lJ" i%RI,@//˦ П?eDE@e@t(aP[ҡZW,9昲<9yNY,m۶-y䑲Oe6mT,?O疑ٹsgi[^SpxJ˟Y>֎Cc={AMt7Miٽ{D{h+9'裏{l/~ܖ/}Kzsqeqzsqe7}k򨣎*C9,ez,->`Yοos"gYeUUw: @`5TqVC9Q+l޼,ݏ8∉mo,e5oÆ Wo{NÍ7λ]wUڿ)GXN>eܭe/+^{mYfB(9ҁ+-h\ew-3e\|Vq2v8or_SJP *Kr ۗxWjL2sR]A&vIf\1g8݄@ @ * tI^xaYx؁̰2e<'YtI3G_~yx5הߟ .(=owY+﷿m9E52%/)>_*Z3M}Q0c@/&6lXy&qؾT.rD||/1L=e=U}e=9NZ2k|Qk.PuUi, @Tq\ {A ~9ꐮZ$[nҿ<;gur}UW={L9*s&jt_jY枻̼yW6>d ~X6Tz2kj!/N+7yM᪽S#,GugM-{jM}qgPY; @`Tqr-(gV3BO_߇fW_]kwxs/|4ٍWsdnJAVt%=s=KtX1fs|--^ziYfNC6H,snZIU(1Zp湪Y8ɜѲo< ۊѰ~ʤ7Q^-Zy7l[я~ToᆹJw| szfjGת5*S4*NNn oXY-|(o9G?Z>œ/~Ow0D[V,@2&O}#~U3g?YYOgbeHV ϭv ᾹNnWϖ}kY8ٲ,U1=9=љ߾u+\7t*[5oS }ލkUZؐ*NCU @`VUYl,o|qoa33`C;;6S}[n~Uկ~gJRjNyн[3>˩ZW'ypw?5M*y˰:)kWqR3 k9F?Oa,8 7GUwHo^֘PVWi%RI,@@gXkӼ%\o󾊅e$K,Pn 8,se4ސøWV:B/oKVqrTh_\a?3_c-yhmDfm9Oh`76ߦ:k[ol|E;˼[֪8y!U @8J5SO=U|fE{_޲e"Rd"8Kvj}>fVY:LM2{'ՎٗqRټyWy;Nj߸RΝ;'yVIMh<,U1KB6V^Jm_kUkũޮzG@gM+!;ix+bqHŢ;fxYZr;Jޠqܫ0B~QVIʷã>;;3d8hqR8w"կSWqquq'LVZ@g 8{}}rx?^x-,yfR}WBر 8iOc89Wf oDz@mWee,UT 8Yq'[[2,Egz1,՟YR]K`4|w8j[UoVzF^vTqV֑  @&ۉOǬ@x?Ϟd]ĎXZ8HVq"S{{pqƲ9U|uGq,Uj1FXgD+L}t|']> [_[Pi=O#zq\zQfp Q*zDc<95>r}g|q֭[Kc2o%AWRؙ۬[WqƳprUBkz^9 al-;֦wamO @PY]#P7j}繆ڛK6lذ>yv']lI7Ws>l8o;|SNcߎ3~#Ƶ:MbQ/n_[ ޒJTqwQvTqV  @PYqb'@R9 5gyJVϰ6 ړAYI\հ1L~]v dΰC9{wG> '[ f_rKُ\ՠ\똋3{ZRŨ3 8ȝ񰊓Wkͳ!>9餓.yooO>diYg9/ ZRڴiS}۶mߎ.]2dg!'Uw 6~j[acYIa,U_ٰ*]ֳ#}g3nc>TqQ @#?>@*sĉ7q|lESy;9q|8Y*N6Y_hg}h6KKrN<ĉ].|,v &>9 .`})xWjKXTqZDXUe@t zeO>,ER K{M7TUzk^SS|q_wSZ.J~e=5䷥>xeZT!dO O?xg櫉ejc_DL%/ՑljTÞR{l3kg,-FԶw[Srpfy?ҒTԆ P*'j+ozӛʾY9wQVTq fwTY1 @`8u]W,ǿ Myɣ>ZL'w7.Nqm3\N}=yOjxzU-eEyCqDn?yz^ދqƲmL Ъ*N=PUW]U~Yfvxho-ynerZ뙗v>UZbe\{13`Tq;yw gi̻\Ws+ }jnǹ/b%u{饗jߟʕ+XDO첞Tqst+mh[X~:3QgβY}R;rƿM> g؟}\\/n}hq>ýRԧ>U8㌲<<唊Z~"r8^kM@gED @e+\8ϓS]vSرcb}^hD駟.ySNLYksnXYbMy~*.jnSKmcچ@M@&hX@: PPũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@4<]'@jRv @a)Nu @& ũh'@UeIENDB`psychopy-1.82.02.dfsg/docs/source/images/plaid_OSX.jpg000066400000000000000000000530041257562125200225160ustar00rootroot00000000000000JFIFHH Photoshop 3.08BIMHH8BIM x8BIM8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIM pTPn@ JFIFHHAdobed            Tp"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?1n w1ֆ5I~c?g䰘˼3kIzU[Ұ#DmiNɤ*U=uÚs7@o;&>`EyOp%gp떻' EVKsӴ>jj%s\r.+nq {n+P9JvoA[c~q0߫;[m=\q̆eD^n3_שLe@iӰsz@=;8}cYFݍgnw\|a Z!Km~6~jI$\{K˻I?l1$!š͎jTzV=Fbt`|r:3zc2~F9?褤"wJu4MuTAbJRǷTVǷTUGk14ؔdPr c=.WIw]eS[2-cV`<5/j-xˡߥv/)򫢼5m.n~zn?k{Xl#Q!FF7+/~V wKwi|mݿت`~ p8{W,P5}?J!'j2GavH_yFx^vߢ> u]4Eu 3; 7=γ~g\( ӔTgWZcCWC#:x8mszK@pHt]GUw`'/_%ta7}gN$V;y~AyF5Tlk^p?*Ρkћ05Gd w?غ[yuG>~ hu}.[m8l~5SmG%*xqvֆ1ŧ=/kWHpB>8-$|*45厝f=ޛ6ƿw|\X/JVgM%y~&uk>zn,!9kw}UI%5>b?gf[ E g/UY W)vucS=,wCdIJUouf;O-ZI:r|yyVǗ?AV-NHp j/F~uhlZk01ΡUUv16Ɩ.Z_~*0xRtIgI^f+=g}`.ikKN?S?S?{Bdx_Ro/Row? l f__ b_&.)>jO>LhRJ|ԯpKԫ#?obt'V67+;fߥͩƬ6m^M <8+KCԫ#?ofb7`VK@-SqoMgV2;tؠh>hNXXF߷3[z>x8.I$կuҽ/:7OnB=Y{}OѫtmIW}aK^|~l'Gmߴ}?_PgiobR6{^F=b=<ϸEۧӇۻt?=级}O[}=mWrw|?/ӪI+U]$8BIM XICC_PROFILE HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km!Adobed         ""   , 012@P!4"35$#%6 !"12 0AQBR#34aqbrCs@Sc³5t$D P!12 0@"R`BrbSAqCc Ûݏó e4&;:hhA37v(RRsԡ{n(%Q*@H&1;愓P{MD'v1ﮈX5tY*TDG=x[_:+יEHFhE\O}=GכjhzI)*w*"22_g.dzw&L$?0@^ XVCԼklq5 !SLV2PjfW]n=|*zmk]ᔀgNyzmfv؇L&Xo2nePGyybndŔkJ.x'xoWuym6Sf`S7tF,) LE7_}Zc @ELڻ犾 F{bf"b/0BC@P խ0دcm~ېhx9; rqDvfoESWZx$zl-dȜQ7H: qg@Ezgʌy̒` $̲`(eF! gHAgC=9nې|<Mgdy$]= 4}Z_ f*EHHLT'CS Pdd/5` 8,9:Hp "o$PRwttN4+ͳtE9>:/pNĜ;8C,}Z_ f@I s[x$H.=W@ az9LD1T;b} r >%@gguXCBEc yy(n'$RQ-LcvIT;L;wlӀ qބR3zTvqmxřTcg{9K[_g ā}fYřNՅAbp.gq_*JSJYMj8 5 s.EF@T@V[Mcu͎m;b]K\ԎK++9^]}sz8V%@)+$T LDPDjPHS[띕Wq8Dhg Ok>.ڴ[O[z"3"p*(J'qR;wTEIQ*Vb&TSQ^f6W~:s55φ=1|{w,-q56DrM@()G:T r Cb A1F(b A1 bccccc c c 4,R0R0R0R0R q QQQQQQSʠ"&#_ DU"*G-UH* F&Z#x_ynrteKDM]MRqT-7FGtЇxH?!ZA(dF* >IZ/(ݢF:2E^"eRWU||~rxԑɣ[RЦj$.iDIohfzdoh媭AKLM_pnDMiɣF( ʠʢ(tcFt~rI߰20Ue'~|k岓`i#Ts'e'x0J1PjZLYNV𓡭Q)$ k= *i?1lsi6TF🐳Fq-i\ڜH', ZBesy3< Z_73Z a/ə-%/əZm$ Z_73Z&sx id5Q]9sEUa !0`M+~o8=f& Vg7cAQf8Va-EѐtD:"FC!tD:"Hؠ6KpE0 $p$d!%a%e$62/+6gEܣ2JR|s9L(6_T{{+B\Fv=ܪAVqnc&=c9s1c c1 u:Afd`ܠ'L %1a)Qd ލ弹dT&QnV?FAP(tz9Z=Aңz* puo<89ix[w>aL-7׋9yESˍt۹H^R#]/I"w!Cmm?s"}Ԥ.YM̖NMT _ְyv.ځPo,>ZIj.U6u+#[ذbbv,c@o!>ɷVKve Ȁ;"b멮?֗Z[k|oc0e+ݎ,щ4bF$\_yWR%XF4!5)f,CmTʔQId"ҔܻZF![Yސz@wސz@ws.KKlGnu~ߖܼ[o[iwސz@wސz@wސz@3EXTTTXքPRW#1*LJExZaХ!Qw ɚ^I-(ױI<@ aK&$%0>=0HI ʖYmQt|xR?_A!8S"5m-XΡšXjBǿ`ڌdZm뤫ETBvY,ĦTlB?Zd46sg[mM۵>ȋZ Bmnrm7Qo#VYȝ㗮5dCHBsQ2KPv֎26t!%n&nц!+5q:׏fEr0}sC}" 7Ɛ,^M7;f̧_T̴]8jK{i3#ԖJ(!DaMA?\PO/7Ȣ>.:L) I3]w~baԌuQPJDef\ jHR0GCHHH!$k̟Mlb61F#clb61F#clb6 H㨎:㨎:㨎:[4m!mT3!8X*,=]vq`Gvq`Gvq`Gvq`Gvq`G&.+F> hV;RQ*BQ)LȡS L- h1_ieCݍ5B.n|Ȩ|Ȩ|Ȩ|Ȩ|Ȩ|Ȩ|Ȩ|Ȩ|Ȩ|Ȩ|Ȩ|Ȩ|Ȩ&ɅNJUʄk`#- qԷ CmASCV,`g6';YJVw .v!;G6vѳ\,96ʹ+4 7˪{5\GzNS̮E0FB\ҧ~$BM.Kn\dqfN^U+'$k`0an1@g]***|h2!,tW}ލ2bhy92LU]6,7l™c?ku-N.!谡_. و`!@NCIԁ`M#׉T=4zh!-{S^*U<' ^_Go+Ɇ0\]6c A:@n??C)o%/0+JҴ+JfTTTTTNFTTCu4GR9{&ʥjfDUJiVP5\YR\ UUUUUUX)*Cmx;DRpQ4J7?5#2sjTDΧj5UUN7SƘQR0toU:v,} "JC,0DHDHDHDp8?~qu,*<*񒚪DtUUT_6[nwS89};Ȫҥw%ޕoDw>/Ĵ)<=O؃a. ?S*|wA{pUjN Ti6[Q9mҏ%D巛&mf2WYoN\֢:T+5ED̤kH#6o?ӋyQ9yV~8 J/e˗LD..§*]t,F##|aơG-$Z6u #fF]zVP,ɘv).y=K%Xf+nw1b w#nw |#4:ȲE-k67܋X.VyǪ @mw*QRDܛvݥ_*ݥ_*ݥ_*ݥ_*ݥ_*ݥ$4L 1 W#ZE wRmзc)#`[\Ҳ X7QjAH;ٻ5"A`\5Φ h ؅$Z/.l-"]vnXƤEX5;߳A=1HMl\ /!e4`ܠ}m>:=j%Sbq6cf S ;^5<@$},{^/tڕ5`XFs k?1N$'k 5:f6xc~Nea;-{t p+fB~ZNyW:if?֐_ߏ)qqm>$(vl6Io[k>c)k5ÊY ܩDJEφe۾Vqc+!"k&V~8\ܪOë:e |)b 5h Qk &V.rћ `ceHzo]j۶{X\2"uwujI%:F(z(lGX_gXJSͻn<#[ckW1Z~-7|pE ?W t)CUmnXZ:H.%۴닖%nO7{{~%F[UQ59Χ=~&n% [/Gk늺FlT6bB1L5DonUt﹕gylѺ$f[}&K:-V7bOq ~m>: [׾4G mߧCy$bzĨeVW2-[noԫRv.gv=߽?QSL##d'Kco7̨u8,UaYYy pRVoJ"Ƿ,a}6VLQD$)|8u=] / Ge$ɞKĺ?&˭uG"Mi+G|I.M:XX]ﭧ;@ō!_q>:F&|L_LE}T2¨ -K K }w_oTRHѫ9 ݷ0R*b,ȼM1e}+śWgvYvl,vja_la`ܟj=dq”*܍-G;+T ݠE\>)D՝n-FiHiO"k I k/XJQE,d\sp5ͨ_1}cF۾BQ v`)5<_OxK"Hd(ȶG#Zp fy5dyl88 FAfsPSJ#ݕ#\\|O[_ z(OGQ&Ч4&iDكC4M_DFElWhOK@&G]Etu/n=WAg;jJP-vaO@f@Rd\q2+pV.Rҝe@y6HQiHeV.Xr\ "ib{yZxq'y%na- Gg.0v'zuwpD=xETEi$uk2 U+,ZĤǢ&E$hH1U?$Oǝ$s.$"2Dq߇QMiI$vύƖFFǩN œV,2J6#6[#Ks{$Q!ilZ:0.]HV_q>: :FmVyͰ[i4,xw_ Bnʠ+cL b`ĤǢI٤%YxgaHO6B+$<"rθA'8jxz%>PC痂7.*B0I1y##X-zW^׽er-j+[߬rz^ֵ[+ZϻAא:GЮ3,0v֝ڑ$9<7vD5,O?i6`Tﵖ%E C<[ԚBfy![ _Unnl:B8˰y(M-IrJ|i&ɥޫrScMn L;H|t:`Vw_:>Q, M{Z%J rwm^f '@ekPNY?9iU8qv}$#U*[-m~plČj8z<{SjHs@h(&֬rXH^Z cv@1^ܜSĨM:i2({%T~1"C. .K׻#c֚N4φpow%w['.-|\$ `edn0Eƀ/(dt8ȳEHXqMl(ٟV8<7 mͨNFf3zYWu3lҎ-C$1F|\̏L] b|Ij[*(0֬r47T, 66c S[eJv̧z?OJRv|cET\z1B݉9pAoI8:=jΑ2}۩2u&h( عлey c;,{0o HHi"7񩠒`BITeV6MMņFyC5&T#ԧƹ-&T"Syir(؎J|}!LGth}~%'g5)#OIZ$4vLFI#FQ@ߠBafۊx+&-E'hU!R (F#4 kcl>XWI!}7iuKzs% ù;tf=fֵc[+ޯk޲¯kZ֬r,*ZՎu׽p@$=C{Cc);>1^%EFd] ¢Hd.eq,?Iy :'(JIM$)PώhwԎFB YD!Q1U ҀG? /QمNLorfmϖuvˉՉVot8c`ͽvHDo-l6} P5*WqrﯽAwuI& <qN!WHۓD4J Jkމ @Uޘ{%Mp/kևJRv|cZ02qbtpdqY>{QK>[5P^'£q#Mw9_ Uǒh<_s/{Xu|9XwH%2[vXe\ :ņhacP1[VID.9uA'Z֬s 1[ދcj Z΀&J,`ztևJGRv|cRBĪȬـaջ֮";3 9/_YfiD̈́D a8\>|É5׋%1T*7O\f%k0CG2oNhj# jfh_S} IRyY \]#3GzI}jmiO6iR\*L9渜$UD5co$MGd/ NmU=UoW*[ڍO]^Z\ > \F8d0Ev# ='?mI񏺒BB8+JWϢOhUbEyVٺ{ZlLm ;F*qWPlzڈvnU Θ>> ܳkp Yh~%'g=! ~GZ֫u*-^ҷ);>1 S>Gb.+_mIHoևJRv|c4}5ߣRv|c4}5{O);>1 S>9kދoIHoak\lW={b^خzs׶+\lW={b^خzs׶+\lW={bdP:zhy~ZץO_*~SJ-zThuc[:/i~%'g= {0W0W0W0W0W0W0W0W0W0W0W0W0W0W0W0W0W0W0W0VR]1ۑVTW4W4W4W4W4W4U[`]ܻ6S!P,/_'g?k>_'cgD@66-BsHZi;-zϖZN^'sV׫Ikդ|w>Zi;-zϖZN^'sV׫Ikդ|w>Zi;-zϖZN^'sVԙDs#*Jg$ .#bQ1vqc>Fj>Te;AqjN5 Ȏo!8it-KvK\&%90#tRäKbX"b; O8xU*NVMNY<͛N6Z?ʯ[]|?ʯ[]|UzޟW.UzޟW.UzޟW.UzޟW.U$:DBUQSp6o2"L",Xffj5d.owP͈- i!EWΥH',/@ fx㍕ :9$[TLDv)1r畹:itџck"ޮuzQk`be1#$rۗ*u'GaKQzsG Jc[y{Mՠt2X$0e,AuM$Xɉ'FXV$i,G/H?Pʱ#Ub , U2[ Z2xe~X`yad ;DTܶ~T n 0r0ĩH4 ˧AP@a"[LI"2Nfۭd3Y 1$q9"TEZ)`dq\R폇_gJkA.Kp]z}(Ǧ1U1Rv0ǩZ@\91$dR-OŽQr/44ڝ;2j"`6[XQ ףiҏmz8T_煸xa< x-[~%Ir>ӭ~ͿUm孜7}s|}' 6Ƶ~?/[:?.uA~3oswsr!c s^rn-֣WPp|ߣiwGpsychopy-1.82.02.dfsg/docs/source/images/scheduleBeginner.png000066400000000000000000001674441257562125200241640ustar00rootroot00000000000000PNG  IHDRtw[6 iCCPICC ProfilexڭwP}酖)wW5t`#$!B !AĆ +  l` b%;?=3o<9?+Q5\\NIMc(P@(\^?66ku[T*| |^.r)IerLʥr,4L L$3c+)K H4.W&vO({ _$Ђ&7w&gғ*yr b"WX1u>s#S%DNT7"9'AQ%N"'sD(~`e%$O1_<ŲqJ}~A|w}`gsc+R(}sqrLYR#><+!Lɲ&SQ+ /Uzq=$JO>7H[Ap'HD,9_* l Άh )i/z֥シ.2D58{ m>BV0mc[pW?pHy,,%J6fv8<\> a{G 5∸#>H0!H:"D$YBʑ م4! ǐE "#34f G#t.*D"]V~ =^Fo t 0Cs, d2 cKc8[. ppkq5F\,:n7uxO<KUsa{"aTB6a1a-aE' ƈD6њM!rrb)q+q?qD%I!4TEG:IFzJ'Mɞ2IJ&S)oJ%RMiOӛ?M0mʹiצ}К%*jպYQ]NJgB:t^NgNΛ^6{nbݺWtBz[ggW1` * NS0s!o#o.ON_C_oc?c?^_| \k'? 1 4. ÇEm 8Mpg#h5#"eQhTxԦѦђlyk,¬Y9-gϏ>! a}DDEbwjҜA)3R\NIvӒy9sn5[8.LZxPPRxeբ5{K/ݵ Y{šō+(+rV~ewWu CsJj;~(wӚk.ۗWY[{'Xw$nmX^QT1)jS[%/V9WB٢2PYݱd놭_jjnԶ֭v-;vSή]mfU v?ٓg-A0xɭihyd}tضjeI֡C݇1=Rwq i[6ڞ>Б,XwW_~m8nx')'KNN*:5%zyZxz{~3)gnu\Ĺ CΟ9u]r~r+GshkoU}}3O^vz787.ߌ+֝snyvW|{=T{XHQ 8!Ћ?2\Ӧgώ=|?{e_~]M~-{=f[ uŎ=z~CG폍?|Nt|ꯖ_;E|{0;1!ʸ  Lf\@&s9d<  `{i1 urRT~M81V U611mb.@Wd \47!hbKGD pHYs  tIME(uDZ IDATx}@SW?ww b-i V*u5Zŀe: O`+[,t|-cq*qlaYJt]`VjE D$ɇ:WrrN~9{Z B/0Lm!rwQp%B(B!\ ! BJ!Pp%B+mB45G~P#19;\`چ=uNj +!Z(J,lF~Ѹ7?Qc]\ WBʎ e;lUPXt,v?i WBMq񏲺\മ`0igRwpF YfN?-O+u`;'j3ƚ=nO o]56_aKb^g{KKyymɚw8-]J^sKKQ-1c'㕳 H0 lUʺC1-a% ܷ.u~Ypu`@]N*:}!`\z=h2'|X3}ҟsKkZ@i0@g@Pt%KykJ~}-7vrf;t~ N]v-_-+ QXXȩUcdqK+e"vtPթ$ ܀gԕc6{GXH =e88mK%K׌f]th$JowuCG,W@Ea WC----^~;E?Ztr[c/}Nx3"rQpGᰒ----{–zFnr_&&}KXNFo~px^؝1P?%d +J@4aiy]<@oÓu՘y$ NJbV .&np4x)offUW%@1y7, W%1bKQ -ˍJ5 8L(sZ\Cӱd{z:$GZVk2+zhgExDbD%=Y¢¡8-ʔLV'J۞bpP4yhk}e[^~q{znM/xkmX&ctB!d~0M, /FqrGya^lzb#yNi:!2탫qi#)9,,,,?x{psҹj=)ܙQ9ZQ7&n)L r|Ȃ+sWaz Sqf&kI:j+F kԬBȽg0`2L#7tקZ]LN(?+).W#+M;;"uw?8aSJc0<]~D`֕}eor2k/p~A tsG&dq.C(簽J @g"Pٗ}Ts%~Cy7}u$ ma$Ys8+7FFueΚ5\$R~!'xb[js.z?ju ֗d}[dgp8s& 6bL4r\!W(>?2.r MVN Ggp004+lJϙ FYi y?׊tJ3?, (&2.(HJkT< PMdiMQB ,;ᯰ|@aTdHqq34ҐQ07ȍ 9[[V^VݙE?3g}8zھ[~B,6*ދ! ץ;H@֪?i@,[^]Ӆ D !g& E~iPe$,r*VXߤW#^e^t-np>L=oo3^\ !ArUc)O KL?tS -LQ!jwXEµ&XF@̺JsQ{z'(>`(q^-zmLŕ`kʓsң}5t WuBr=ɖ`C| yiZ3 +7,p!-oO 2M3{j 4<;ھ!~alL7dI}[H61yfyW}Q4ϯ & J[ǤW}S>pdS:P LTת{FOe~ځ VPԜ/[y3زٿCjZcYnn+;:N5T4tpp}sMns+ý+kt;&|ܫ,+)**lb%ee%;&O_dΟutNE* @+5riB0ӧASga ?vvBd*`؉\Jܙ,gq:kɲ[ @)I٬5+pB.B)CyBۡ rr T /^[_Dr EemV+, |T+f>Ir[!$*C:\|[dE xTEp ,TdT |Gn-Yk\.GJ}2Y>f? , >ldKpTN\uo3d#fWxDU!$Jodd(\h[Q.yv51}"y=a>Es*8VQ%ڦa CqIBLXW q1>IFT Pٮ&۞O/b_](Vǻ>b1L:=}{wswHpU10;:km-{X4yL[s[A[[d}ۻ>_@U̢Xiߦtu`9:{wlɘrvZrtWvw[pvvueTsyKGfd,'S:g~Mn rvجLz6Ǭ̼i1؜Z#UJ~9sCyFDV suٟi3wv}!]^6˩/#&% f}} ,u`TUv4..?t Oq׬ߴYضWv(>ZsKֽ)ә1( \ؘ\g$@5-JMZ v]Lx򢏿iyj с\`k 5`a|8:sܢo(?r D~yLfԿqς֘ikJsM}(s%ުL k*[BK%\~7?re FnjS ojbgTn>P(Ws$ڇ_mƲAqqkfwCRZ0W6|@s24Dr{tҐ9(*C&2| ] ; *ãLTp<e s3"CDntBMWr n-ڛb~'{VQlWl^r\/=O" ` ysڡA蚲q޲s\v e'ri â; Sq(1.pT#=$.6Tąh >2HY<#ijQ(HX d Q_+M2ayNWozT= mKq Z֜/6.(=ԑvBMw]A8hWh?MvtIn{t)._qsd܉3c$B_ˁ}-C=4ĂS1NsMk`$Jbu1=e;)EQf}CL 4ģM3d'<7?r=@_9oe\.]9j/itLLz@WSGkZϥ'eׅnD~Iԗ9HBFt\2 < R@CxF3YW5:ͩMǾԷ@md`Tl}^ם'^_w!)tO#z\9*csvVo(ٹ0&K#Rjg?xk#!K9Sj_]VDf,Bؠ}Y+(ʪBL&axt~rZE,u`g+}3Cn/d{ y(FR~m) IDAT^~~/ !=~G[ݽ&0XΎLnGEmٙ1.|kclSO :HZ$BK""y7xN@K"gX:*ş;jS")^j3lc"A~mTqtvvy1 Plc::;{?ytdJՐhz|,=sxh8c#~Z'/nFVs;j,$oG^g09! {hJ}+7RB0Os4x{1 ,2*7_>ѧU"I17td;At YW GﰟUsi14>rƬ'XhSt}v*/6!rbƴOscl0JoXgp͵j t ޴b7^+'P Bn=~[<=__e)>9`wQ2xO* W@۳LTM!al:gIxY4c;<#bKC,6{ddzzz.xk8G.щB!Qpuq_8.M؃p$E3ϴ52jLhb4bٞ6gdp2i !a /&XV=t3zw+`LN~ek7lll×@ Gos/[h鷌.gU0طsBy(Ӌei=㨶]BJ~̩S0i:D0\Gu}c`9p}ʃ t_fK=X=b&q70o8U=^w•sKiU`!Pp\ .ORw*{yj/3a 0i'%Q@7wkڵ{"d@aK]k.לЎS:.MJ],m-Aυ@S֠kj҇j3d5h4'[CdT5!|h6%e5 edT#_Ϛ`׆rhuؐ rBCsӧ[s×Wxxy~Ԯ30<%*/XP I%^)m\b&c`Os5 p zP$Okѻ +~Pՙ,LO7K$[9༴꣭8n[| l`ȓ%J,MdrN!7jb0`sؓ1ƽo<{JƸ/jw {VɪTywa&kaj=)Wi LQ;o8Z4 {3I5 OOҫS k0Veo/K?KWvI>c I#l5f\mUB7׳Άfm͗fWtBN̏(wK*y .-OӇ%VV^쪜l%wwI%KG]}gDž?pHRG닲5oĬu`g[|MSKB~-[K`֕>+x`NQg𵮌)+?vhd򳲯j.p_|5Rqn(t\xjeV.o[Ѭ,YFFkG3>4Ltۗ{.=l}7<cԭmT VUW_ R^{6]6?RY$ۇF_,\ !R[v"i7o9?оCEn}#_Ly1\'O'}k%75+{R/m$;ML\mN1 u@,@uu]XqhjN{2:5x]vT-B$ަF[[6?ex1XU;y^JJ.Ge, ٸ]US,i b$W X.7l$IT9VȂ|Q*9 *Ȑ.6.gD-{GiN3S=e(1sDN:}ʼn#"lTaCFIz6/TOJpv7aYHF5q|EAP̰{t 軤*HڔoM\\&}v~Td=U/Q _hDž,ˮ?Q.̑w)7\)#C1~Ts%.hYohc<&-}ڊ؈Yxc=cTQA &Ubۗ[rc]18f31?'3. L#^Hg̮?2֮/gk@{V˞,KKٶ׾߲, ,q10eWQ3^9[hQgq[ _+/e\聵n ʙA.v/}1K,矘X,\ YԾ@w[R #]͚oU]q#jT,k2NY ؾ8b1_nUo7B X@n X JS h?y;]V;\=D]O& ^26m<r_iJ(Έs7u Yuoĭj1xegΨjʒhR}^j;YA*'@o}@+zw6"߸g`^ȓ/ԢP\e`nzs|fɍh2bxG,QŵO =a㉀#MclLZ-cq"_6I-͋uuXkk5:qo'I_{hWzZ+,ҵPn9 _?3d5h4'[CdSL:{ ߔl隕RqRӑըTo}0\8^ѡ;Upc._.υ@S֠kjoɭ~jk7T[T R CN (9vq-5 ӓ+uMrpy2`怢yJ\ʶ)~mH/0doϲXU/ږahAĉh;qcTCdCEљo%-XL ݶZ e%V L03isV9Vqy?+7C~\aMc}B pm-MVkc߱eoLʤű lCEHwY|QoP)]" )`?М9p5"Jt_0rϯ GA5q k\.GJ}2Y>f$9t3Y.FEn[π*d2\풌 ř;y#/֧ZT-CC+m/ N- gąW C&\),t$7'jS "'^l^cO’ vc cҏ@w\+/2~+A9vU²=uN߫o%Iä@nu+"S"|-KV۲dC[zjy Dsd>/2e[Sm~om^5W[z+!xͫ`ag{[|Tft\*?SZf2b4, }l2p3œu扎]5*Y #( }þd4Yl61"daX2t0ݽd|g~MpvЩ^\ ;Zݽ&[pqv%󸅘_1ʢ3t[țdySKww/nm#[VlQ]GehlPNcx܄C -OmMHV1vc7 6C159/W]ݵTբ ˑӼc~Tߗ@|ah[giy.ݰ3710s?+}08n27UZz~`J[ #n6}샟f9sn%`q8FVvGr< I)5DY؜Y0l H{d+ywtv:ZLǑʢoߑ2'n`:;;;=n/'Zs8*v̩t &&|]O8(+V_#j a@^f[@?bIeg$\8b8oz@Xa1K}d˵)s_./ZΙ.\ʋ +Q @cumccMpYYյup![HX`Ź,zXش ~mCtRV\ tW< < g-u IDAT~F@ĝzRyГexbm\غ3(\z;JV m{EDɢ6у</hg#\o.#>~uȇ <8=- ,IV`i``SM<FMog6aӑoT)9n\WvyXJ#ږuk-=޴1vs79b|{2vϊ(LkҞ27ؤCU>J`1D06ۻ'Fad(3Dm rJL5a!!#[oGܲ eײ]$@y=)JURy] 4+˺$CS,\QIOfSOb]Ki?:1wW͹r$թzңۊ6QZhܿc1$KlEɏ̯:֒l9lν&afC+z| =1Ԩ1ZUe-أpcSw!LM>=Y‡ł~_U;*/J/mkShiҨc_@Yʫ%IIPV5&m~rL~-``iV+^s ~T5u  -ڒ2?@ h륫ԖiGN3 Sگ`IWúѤBJ BI`GDW[!ν9{{K B\B^6с5F/54"&-K3|Y0h k29h:0))qG ~JJ<}fYN.#?|[١meӬj7s5( lb.`?8V!4vV] lp 3'zҤ1)G ۮ@ Oݗ!ͪB`n)=!yjW &iWt4 WzV}nQ oZQ_*]MglpJTx3o>52dyYjaQvA?H?H&" ?@`rO0'~dO!dWѝSYz+:o/՚3͗?}Q<:p `ԧLW= %'_re>UV*z~1h=s$;ΘG~"kwq4ߋrR7 ÄKy@-h LVL;VcA-s._XUe jf&%]jo)5`m?U Oغ-þmڒ}Zo(դ sf<1]<_,qTa1Eg*[QTDU8B,63Gh?H#2j[ `VnJ%.x9ūȄM| .]MXn{:MtP#ZgӤUURI=مK%pYl훱,屷ND`u*T \Plw8lR:]km\^ܖ-R5?$.Y0""EWUle duNVo_Jd97\-S+խ]λHGc3<6-(g%.}K_ =t/E&^|7Lul?bl˯O)Ϩ5~~JJ $ Nh0VX;Z+~`թ.Dlu~kw1?߶˭=u ź"%7w6~Ox+(2l,_%J~b mc謢`=+?9qk2ok mfOn5 0O g2fSʝlYܚƯ\>͹%P!…IPTzMcw(=w뺥fRT2ӟW?g3{nmrBToRiڃ"6~Tn} l*Gkb`n˭cM,6nەjV+ |(@2a C]LOV#l|B1A%N'x3;.4B7ټp`7A &$f|A]]}v\-W &{)V.@39WBcS5Pܑ?g@p Y]nڕzȖJ'#|1>fX,\Q=)aϟ?k~qiiqLhөX ^g*f{ib_BUsF&S6{?> b1~Lqq񦇼e:D!\ɷ'$D\-0!p^;"#ŝ{3o Ќy]G] v b_ض 3Um \M&{Z渀`%lKjK쵀wd|0s%oCH)U9ɂ pwsőe`UI'.ΩUFIcL.L:uR|=0?6hx0.?ݭWFH ZgL\_Ӥ׷Vd=Jr/>(YJoMK_eVԶvov&!Н+AGLSg(>yVj~:eIV |1ݺYWSҪʉ2a $+Y R ʊn)4?ɝ+.{X>k3 EY&F$XE#_8>?T$|oh>,-.qM@,mqFYoH.==_+H6;LtY| (HZNÀ8.ߕG:"ꌒ֝+ϯʁM !\>}ĕC j>7!s%dcrm7hh@<=SS'ű![#s^. htJ(Bf8mi¹ pqSSg\_);5 BnOpeFї$.LwHo_n@ֆ;N3f]oΕr[& Mi[UebO~> HZUEVTfkc_d HV5Tc!2MDЅ*1(Bnފw4Y,j~tpK󫲡ȍZ8Z^\4}xuchLwotg +~)B=>=FңAHBn+`;d0X9733YW+y{R a<ʼng-e!ӪYX߫c&l^DBn+w]XzEi+eUs5Xu{+ΆЗ{Bȝ+Ic0h* /'dB„=ffL0D!|(B!\ ! BWB!Pp`֨LlҪ-]-aеԪtT !1\ Ւr~T83ݐ81f jrˆ~lkZ̝$BEw殖8D9 oo4oCK2TlLh_z4I:!2$ ,W䍌njٽ0J$UeIjN O@նyxK3fBqitB!dVWأC[⣇'Of;zr)z\\>!VqBa(B!S7rCE+,NQ 0fbM1&X0 0ZӁB!dVݹp99M?ON!Pp%ץ  MN ! 7A@q䌣[왺\΄Bikrq:3҈V}0Be,e&L'BnݔyՅpGtł`vg(_ R\-LN!L,,j0ax wjg1ljf !Yq! BWB!+!B(B!\ ! BJ!Pp%B(B!+!BBJ!Pp%BWB!+!BB!\ ! BWB!Pp%BcW^!bj]fҪ_.!3] k8e/.ב T}{v7wl{{ېz˙NPפ mnmC/}GԢ/w5蛔- չG Sꚮ]Nf?lG^z[ujU{}ܩV͕s#y>əh˽S.7wj,`>796$/0n(VQllZ]M06>>^V3> |ecDE}Dj.Eų_ |;kidzQԘFIŲ??@Dlγٺ;pA͎NWϼI^u ?pU8UٸIzL?wḠjjɏJrdkF) O+Sۜ {feHl͙ĿiW ,XƶR>ڴ:zÙogm!B`_IDtVwud-νOw]p]ˍ?Wz-erD6WyLvj8>~ĸj( UyII HJΪST譀[pAfAxo|] j<38t4&\.r bV%5"Q\JoIW]% [[J(PɯtʒT@Tڭ,OA\rVuHP_TU –nCkmH +`֕jsD(DmW eҙZZU9q@Sj]7UgʼnAVIEINVRXyVjIntp ̄FV:r/Q %=]CuVr@ %U˜{bZkWx[ :yNH )^vثZ_0\:URsj[{p6\mo,zs(Yo(O*lϲi%_Scm~ZZL&TR}G-7C_pǿL6)&*)wtC\žWN]S ׆?dI1Qgڿ[ oyS/u)lR\}v?1RߨoTe׏_D/Zwoq^7SI~u߁٨cؤQ{ 0p{Jj>Flހh}f9[6f3;zfT7gՔ8lg٣R46` 6 @8kRSL^Nߚ ,./f hΦ?4q #l4@@J^iUyl 0 sg${%fY6[s)k”{ilbR 6fllfLK_\ hUI|)Um1i(_h zfҨ)֙wT#Cb5M*_uZld&iGUbdOW> IDAT~rl|eLX eS.GLq`8gGO@Ļ:muVtYk21S>l,~|G?S|G߸T":zڪ5¼pjqUY_kCW Vf_= +M kW? x*ZdIcBbDL&#nMS "4B0( 0Z3RXq. 3mͻ9V'<`T8'"Z^UgBH}>x+=\P1&20kRu,!a.Ͽ0pѡ䶇Ik9敞aiV,K2~e6Q" x PF8Ȼ:uzY&?C=H]8h؏&h0c1@n屭+qam/٥n5b @*T4^|+ 0yÛsGm&@XPڶ/N+?{b_f嚁 \`C,3_XMxb}5s,V~U D#_Vц0@qg"W _om}#Volss[kЗvr0H>??ϟ-/Zy懗55p=O pvy8W <;Cmzv<8NZ8m2d4ο& {*ܨrpgf3>¤̃/f L0sb ~s\uG}ހ ;LO) ,^c,⿇v:Qm೥Ik]8_@pwzu-.B=^SXlELF?.s1W0= %'_re7p1aA>>'/ć",{z*׮a5pPp{]suke)? Jo/).Sv;pɕx ܻ 2^_?t- cC&[`Z`*ǃ8>ٖ>|us}Dgv~I]==ĸ3lL[K'+C~hǯW<{ĐB~6v#N~X[~X~#0qu1D@8}R?gZ+R')?e m[1V<{bAϟ?q\Td=4vKͬ!!(ߜf=PׂSLOƼ( ߎ6xxpCG-i`֧Y?`={g;d}97^ۨMhT8v}0N/q_)~ˇ[MǏ;֯Z4I͌9MC/Yp~diW>w{K|*y(5ʽ/=:ȋYpVeaTXLͶ8ohi|hWfz]SS s¾B\j_9ߔ9yS軻 ի$7*-o-OlˆZXj6+_9fmHU:R?}(H)w[]uuZ Nl5H#n險G_PfxB!4я*[uѹsʔS'5j dXU lIxĩ{f1;.O_|~RgeɢjcRsNhkDZߖ=h]D#f1>wt>}.co0Ʈ5Wc8K?+{q!`{CV;yWaH~ozMxů+Eȯs`7<+VN%ɫO^U1GK܈ Gl^@OWX)?6[4kotcD81GXMQ #NYtg +~)B \\* |}G%F1Aw;upЍݨCἠsfwo[1!DGkFsϨ5s'rm&d?;K ÔA)|N?aM& 3; 1bˆD0->4o;EF_I5KMU6+O]/fWB!g/3}TK8`<'GBNrсg#gO,_vܙ߸d C1ѻ91w|b4Z(vE_[gb߲5Vv0dǟTopRGG/.xu^ɜ6&xGJx_Y5W"K|< vhnY}xdE) x!{zMQ 3Wxw|xτy&6e`<ޘS`1YY-Vu7ڱ']C fTVd~m_6JX e`Զ[4qcm$[m6(9hdNd:ճv3;wD?~6%Uc pumgzSklnm֫}rGl}fds/^W ϻ^M0Dyl@`syq'F?ʋW.+z?jy;r }Oo1=z.VKa|P[ O7Zr Bnuk@h:1w܁;s#pҵww׸5N ǯ0Q wyȆ&Dwڡ4KMjܑG_}X~賈p︵TYBr0i\ !oWB!+!BBJ! BWB!+!B(B!\ ! BJ!Pp%B(B!\ !BBJ!Pp%BWB!N)bm}%ruui>>}۲Ky-e6}p7dE(stB!dWR4؃&ky|f8CJ,!tBd/qoNUdBȔLfak$yAl.PoEFf]F-yum6j$Bl -WJ*S3/*>O$of]IVjI0yi1WY+զ !Y\# ;vNm6pRz>ʾ"|uH zʄ nNN!Lմ"&8A21[aKaMF#aP(Bw.㦚Uqĩ3\a:!28ʒݢ iϺXUᇩ}utB!dWCEr@Z% m᎓D(D#lR wMN!ڥ|M\ @MSEYYEEEYIY 6G$Ȫn BۥˀmOp'N'Bh漩hkZNZFKw Nh0VXCI !)f`6u\pN!}*a&l^fԝ-2>ܛI'Bnf!B(B!\ ! BJ!Pp%B(B!+!BBhIS%B_c\ !ۆ+!BBJ!Pp%BWB!+!BB!\ ! B 0c߲Ծ:gdMp smي27|{moȊPB!0ꕲ067DM5Y4R4e 1zɇe;k29 ^ʡtaq*ßB!S6ʒ.CiiR-6v*/Ob\K/@fuC!w@w[Jյ9Ւ54>!\[vTdg:'^$=T8|H-̺ԒZ`ł삺/[.>} OTJ`+,j)Bl7 {Gw<"㒬h8_fU\W$ҵKfV.,_2aB5ZH!2{k@~l-/e5f%әI)q PuҼBntq7լ*Hgܟn2sdF\gAS:J!:dh-kڳ4Vd0L ;PZUᇬ} 5 BjHHDA]ۡm1q2^%P{PtSBn7:R!ڥ|M\ @MSEYYEEEYIY 6G$ȪnRiFIK,y!^a* 2a _BKW#۞ґB!dfΛ:ΏF_Ī5gtw U\g%l f']\+^,4F!SYj6LfqG_gM&+1U/!c?̨;[s2>nLB%4+!BBJ!Pp%BW2Y{GܖѰGk{=zHmKoB&ԣ=~z#G=\ .:isޗOؔpKv~{S-d"W N\-bMǾ4Ϙʢ^ȝs0x.gs"9Fw `9XqsZN`ù=G 6sz@ҝ+鏕EG#UQ;)9=Ԥ;N)6&gSJC+Iy6c߹(|6&ftfceeGcxcU&١`ʲg홵}ӻџ+ә8OPkt{%On~Mm~I}} ;_wGϱj'.oH]!@iBV#P~ox\esص^}(A?f.=Si}2-oi^, 9 Xi?Vcu ^=3۟aFKɎ'>X@[G 'Tw9Uf1@u&Ѱ {f9 pw7R0fLph!zp7.c3;19z+:yfrgz26^f | 8׽iɯ'NLx `n`pkGjg݂ N_73."ur\8qK 8|rU -?M=^ߎ{3i0Y'77\lء,L('jl縊תu<{}?1ʻ'&YkК8H -Zί6qa6S~O=8ux޷jݲW;K=(]ciNحE$+tlڹ䞗/9hn s k-Y.@';\펗M;_Qp%6ڻso~c)&|M"Qmo>s8`.[p; 3ޭFv,{|Y[Kv ڑ݁r˻ >uՃy>~frGW>V~ [Cv> hn^wW&ڡjt{ Ӻfd3̛,}j{31ӓBz˹#9sU+gTۡc&KJBȷ\&B![FBJ!Pp%Bf*}ա>#[pܥ9D2nY ̍ !Y\JY[cŬY+ShkZήf]IVjI0yi1WY+զ !Y\# ;vNm{2.VU!R6 y,WU@RT&,VvutB!d31Lf: Bx d=V6O"\:1:&J'Bfŝø1MFcogs ISM&.)nN!̢:m __ sP4SځAB%/p["Bq6 &L'Bfwp |ߤk*Gy1K9"AVu+ȄM| .]MXn{;q:!2E3MQF}b:"5gtw cŋY޼1$B=`0\oh6u\p>M|]3cnf !Yq! BWB!+!B(B!\ ! BJ!Pp%B(B!d,U!C r=PC߫J @` O„Bȷ5 IDAT+!BBJ!Pp%BWB!+!BB!\ !ÌRKP-jm8~Ҝy~G"jho׽>Y  &Bfap+ealnAco9ce꡿mMk1zɇe;k29 ^ʡtaq*ßB!S6ʒ.Ci?lqf6@þyr-忔U^Y_ d߉n o+WHWKv@!2kʔQnEtv 0JRKju ~l\5`>Q)bWMtBi,YP؊K߶'0w;R6 y,WɃ/ftmҵ٠{+W灤LX{4!Y\W0T Xd4rWLgZ&,CG?uio !LL2^"d4v6=d2fF\ge-NY<(!2+Vsww2 iF~)n:od62 b<>';Vjf!k_;0H„Bf{pտ/=}6p>ףd(Z/]^pWH5FG !Y\#7چѹ@^RfmHU 0+7ҌZ}NYBU@d&@ m&G,J=#BȔ͜7uF=8Z*NPVv Qk'VqH*ۛVwqax2˛7MBnl6:`<ބj6LfqG_gM&+1tJ ^U!w,laFݹ 6rwe|(B%4+!BBJ!Pp%BWB!+!BB!\ ! BWB!Pp%B(B!\ !YCU0ۙ*ks >7 8 }R& vVgnx%om dvhV26-*WjVL@Dv)&K.\$^i>LŞ Y"IqcPbH! UE}Kz*Q ƶG$)}='."k73VŇ%5X9Es1]ܢO6dE>jdmOWdqZ҃K$7V!UJc:?H C\ x3|7er |P\<-n<܀̳{B'Dز@ uO|1mͻ90ic!|(@2a nRiԥj(TU`TmJc=+iIB1>ގVAS==$|nXqBfhCr Lz1ƝR%ƫܦӳ] `:[Tby E-5! sk.#VlEx!RWP&sulSH$H˕R~,?????_Vq2/o\ZKgh́@mͭsrVͶ|xG$p-ʶM@u\Lr$"skN `Og`L{,r`<$]"Ü`MrǓw>ɠ9j b ԥ!F(v} ӭ?].ˤ&I\ @ -0Gf(Ӆ U 1ٟZmT]yU$ȥ$`5k7Նk.-͈/V9W{Ε%,vpf66jƶ3E1;0z b7 )R*o4,=VPw+'(k!Et-.UZ_z*Ӗj,NZFP˜q*LtNr#kM, +^rK~ehǵڼHIĬgӘV"/K7[ـ`VL7\ijr?c*"rKo@+??Ovd]~,zѥ+8Z V@^8ey+2̫eI_w{*j:A"g#jͪ;7|AZO;z952[\1w G_L^BTW-uO "O2 ,  LNJͩ g 2 n@ׁ=V݄u0W,sLm(.3&lك:.t%eqONriZ$[/wζ̍L"G&/^=54{˧3q-]B׵{S>ؖ.KJ]Ԝ- ޡ2 1%"] %f[}Q#`Cq&RX4fd20ZB@cظeqv-yF@cim!gˁ@Sb$=m)Ʒ|L2G֘XCFU)Z9VUG#}wwU;gYk*=E:/yW"vxN-zR@7k?X/tW&fjLo+2uP45QZ9 1BYwx9A3K2qy' [(K>kM{DJ{)y%p)U7Ӓq(n8\?k])tZza Pь75:}uO8l$ە$&]=kN@onO}qp>+}]+8HК]L@,xɦG rS"֭{+b1o)V;@9?p?-FgglnyAsάz#tc*䣂ˋ6M a`P@Pg6XŹg'WEҖ @>MdߺO׷_R,|JXU\ h/Cg| `łW6|\$t/i-@'zÌ,h@in ( ŀ)޻<ͷnʔLynYΏ{*ŕy(33С?wC;k.yM p&j'Ǒ6n>u.SF8ɜs jK 2g[cdyӗhm!Nˆ(y4+ 7Txq,c'S; TϘF>k}Q{ O4\QRZ?Z L+j;ٓ`vc VKvn ݹ5t硹GR\i WolڴI"ٴi p\C%e h|nXnf }Yʛbph ?x5T4槥>dfںY- <>Zy[jZn\&(^anfz P __}妪03ͳ0y~Z@WG #4'co?\][빲06cD(ճg, qHfҶ,<9S%򲲶pgܣ`^k'>8̙ǣ+V}:띍~{5@Q?(Uhr)0~J7-7.~csDw?vf3Sg^`c;w\19AxLotؖY|㸘/HE}C6^ڮ>[67d(bJu]e?/FgAl75۹~R`9=>6-,!] ⼴,׽\*W ˉ@ Xh6a"pd_Lg6 IdĦ.ZoI[O/R6bykV~1G?Юyskɻgmʻk`yè.W+FH ٨'Ge##w&B>q'74m&b4;LuN2Dwm4{@eMZh S\[HIn~~qJֹLwcnro];ݠ1-O'ޓxuyk6S{|q;_anNeאZ #Juh֖cݝZư`4ZX ]AGiRGu?֘f6ڊb| 乧U ;T[}J?L)kXUӾhӘ'P% KQpVs,7NʥF ƪ0YetC)\.8>6,7V$0@k4?>r>YUa┰>sW@ } Y?BYwӔT X?w1'Vok ƢJozPe}`aa=H#c9£oL6A$r^]Fz29|c4I6$t#]Wd plʢ=R>ps\S4S fͲؙn$ܰ0g"ZVn#ORZ&j͙_}u]Tnn8} pJ fox7 ,d-3ZfVHmuHQ9Ҵő+/t2f8亲Ѕ oi,Z*7KG6٥X5E4;`ԧ8Iui43{2=T='ps. f8aҌ(JH083[l=Dxd7 ;\WYiogv;^ na-[ԇޣð];\ n7.5,@ӫ0^:m:?IOOms]6%7_)x]h̘6ܮ@% 5= =mG<g -Lx$7SfsAc9q^nr5պ~D %um~Ibo $ʡۤ4dI&t?P`z{Nx%''o^`Hv<9fLs6mڴ KL__"4 #B~H⮝t ot;(Rϴm*c?X緸QG]- ]PW[}}eGB7y s"(=[~§FG%Q1'D\ d<⹳6eU '; A>ttnl5ȣ+<=[[R,82ѫrnjIly>gf:m7nz -Zj @}&c ˒ƆBthYC<e<E1~hIqVM g?v絙3eiœ $scfR.r䗼li`q.EmѾCnAn3愇v-͹Ϯ[|GdFCcbeNkP씅L4 =Atzh 3-LF`d1ƪZZ3[O(Q)`1Z``8oȡ0b~CO&g&J <q% q%c@ q%+@ D\ @ J +@ D\ @ J +@ D\ @ J +@ 0OaXT}q#4.bȣRʪo;Ox~Ah:K98 ,X$pe CLtNr#kK.-SiYv^rKYTS0fna8w4ɰt3#+oz IDAT9dȥ5mڪ>g#^.ݗ"@ ϐ'xxK#k5)aFtWY.rid1A^.g ]!9@ ώڸU6V[旣C{vFRzY=pu]^ Qy:EV98Y@wW?qV7M])@3O2/{{]C NWBִf.%ŏf:7:2FB gj`hkCVST L0Jvuu]!}Ά\ުĊ@ <:Z (Lƍ$-"jܸF`GFݦт`26@~)Yu6:-L Tw2]c3uӁN^͉;gd&ubzCxi6iTp&B g[\i WoZDA5T"a*#Wٜ(tλ^T`p3Ep|ϲnvAr @ AqmhWؠ`!oHR+J ] ZtcxN:lˬ {40Y~~JQk4&Zj4bF+@H@xl볟[L[)iKd@ ? r*@ D\ @ J W@ D\ @ J W@ D\ @ J W@ á$ _ )~.0\ @ J W@ @ĕ@ W@ @ĕ@ W@ E7qYhDڛ W6ƶgK̈́%3UiK\4f_<Νk_?r֖.n-7~%Óu-6_6~Ls oƴ߻<|~|m6{AxuWKmqrG ґ]pbbr9jэ9-.IOIT1Yiߺ "j;~.q\ #q}i>vKjZ|7]}kҵn3/9-rjr](ԽA,(&_UG<6.(sL߮v 3kI?Jn,s\~XJYe.#oS7ViThS""}\.?2MW0.˗gEa!F` `0L LJ6Ibۨ Mcn|sOk-NԨoa.O~Ua }b4Ss,/x:A t[?ԾǦ[JGkK[=,,Cp:@Uz8%X;^n~i7OD/sv, ;zmĂFLao2RSK31O0{ vtD!D\ A+(Z7w,:Wn(o-]$*fyUȂ8VPő/C(:){poPڳt3DIaaLEFTeI"oߌ"]{mM΢IRFh\$Ý&Mr Uj$:dANkE+eAsBs7&9IkCB{{eѩjb;MFT9I9JCS}[ͨRX$n@X"g,F f[-Wd(e؀KgDݭ$C \QJ-v.TTY@*{絰nRxkw~[TV~W^6ԍ̣W徫%p)U7(͗*lBUY$ܑO_N,Ĉ ,p)#⯊;/ހ%kϗ͜'^ o^=8,C{@[{?c]Uu貲o@H& G;@retGSs4޻HV&Ib; G,{ #d3ٕ7Vkm 4~Wnv^2:ba}Hj e`{D,?=ENvf^o~6, G_1JV^[])D$.Qp _R'rw~<}@XB\uN0bcЦ̙c:_ 7jsx$; <Өow%6V.{2%8Y[Ҧ!+(cz) ,8 @~E\d(yaȋk:[xrvUAzнuܴ02 `Og`L{,rU<G$t3M51$]([[{մ֫"k8fpe0eVVFm.Շ:`C^M bè^]0ӄ^pqa%Ed PK+:Epd..g[mD^܌S/6xqmz^N7w=$n#H10a;lP_ ``'(9}7ǢAӕz[u Xy]K RH˕0ޡeQ`(v)4<+[kpߐ%}M]-03,x!4LV2͂t=ZR^^IͽC(ḼFϠ4Y()h^Tɑ$qvx'[l=al}Ξ;\Ϥo[Os e FY{^s[= Jf6޻G4K[y+1o>M?k<Ԝ>cZu05 U_*NJY!/%7 !+( &X34}Cs<>@M}vHnu'Wv$-tC L(2N&PUeJ]oQ{{I|&@Q}8I]ފByꙶ:W.$cJ>ōJaCtYe;,Q h&,X;HݸTx LKD^V/H|wo_x!&%`FSvG$0V`b>Smc9{e^ +'!EdUV顙oX(=X[~@׹yQk(Pj4ˢ)1FAVSx.TJI}YX[>:5tw:f3~?-/k^4~hn֖a!wޡh-~Ptwbt<4^NBރ䑳:yo~FY؞ۃCC2{>;Z6Ud=ۚ[u&#X/,}-4{dL)wmZz"-^NUvn͎64Uu'_ ^ 7֢OR[|߽qTrK.U-l>eapPw>p*2]<gJ5f|\:7D@\M-QIZ*~~^fC'r?(Ql!t䓋V8SvzS"r}>{{{1WPV44f'yܐ_\$bIcX@oGzRlaYqV[vOҘ,֘b Ka,%|Lw@o=e@o=R7jRvTtA zpe@hFom+dн^(/2m~\Ѯ́ү~^{hr߄\s^8L+5 \F5dz6uh͚ uw+ w^q 7OTJ)2_aw^ űXL1g9Ku rj2,hyh  yש%f=r3#TK愌ǛLL(SwJ?o_~ #xv S6ڼO9^ܐ345Wy N\? u؇I0!aL o[rvdV!`oZ ;EdFlⓜXߞCWlKp#fL_% V#z?,>{˃vН2I45bZ0ryL80\|AQbe:DLMp;&{ۄ&[*'(^e_6}yԥ7{1ZC+ 5ؐJ/G9_i.޷1g]!P')w@h?7/Ow $MGw}=+\&I V\<{ ;CO%CAĕ@ )M}6ݾoR43Rtߧ/|)5{}I4h1O'{_+>_xhj݈={k={\4;#%KMF&K5_8@zޘo 'H'A4)0c,Us% YImMi7j-ՙM+%ҋ/:|p؛BCK%ud3菈n;Jv0^B%ywsS%pq7"Jx^.}3%oI=}|W!XQV?{K}IKU)4/'49'6J* Oibr@jmkli9[|TfɄ2!>Z<#߹F_SzQ&Ob{\PTK ufF!JvZ[s"7f}CbRQ=OCcfȕ_`If|[^~j fV]#j<~։'[NW[Vuqn'Ap1 ҍ O7% 2k5"q# IDATn.=wyjluvGߣٹ==i{/Wm&\lF{+. ׺ŌQ,hge6 ˲>,(S4p^ְՎVJ\KSci)9J5؞70&u[|'Cyl$Q|ILU}$ [ [n蓼5 |5U|e~I֫8u,7{u_4ٯD|5e[)~n֣ U|EUGy.kxs+>ܸWyC Y;l^h8MQ4}aSKư5nf1l!֎MaQ?,cu(fK7lO N7tbX[m:W/;g+,<7+]ْ}/Ece@pܨS68 ^a!h A87&yEևH9.n@)veև{Mn 9oU7i9AYkD-954dt$<+}]+8HК]L~iÙ;WFբ.s͛I1Lp/w;n͜'E›.%Pfq5)v"#X5{oLVwtE/Ɉx=h[wPrm?yi2ܡ[[-ChFF?ZcVV4 kKitѠ}bӕDfMD󇍘=~ $I06+Ue @zf<%ϛjIy݁4`,Lrn T-s. 9Ypkn 0|D:)fވQې͋,Z@(pOpKm[CW;0\|^j?!wyOw@b>. I:l?ʕY9;]h6ﰧApk_\CqWuw.ˎS$6_П0p(24 g]0s,X$l^\sM3z0o۩ʭvb<~N|"=]fOiJnApO6z\~~la_U) rƎ/4S$NKu#ŕ%Ֆh os=_eA &g@&⤋8_8F Yߗ\)x]&f bֿö}v?ݷ 5]-45`fllyl+vwvS{Ù::0害Fts\MϹ>"V肋OoK.^JxphxL"C @ 1ke&e,Y!0uACMg]`1nCƛ)|91'uT% leRwݸB1.4=^ɛREA9Ln> s|LynʔEm1}nXSZw=_bܔ)Y;ɢȢO6lxwz=5aA&2 Jxx,[\:0|T}vhlh.V07 u-G6M=Tg9M?刐_=.ZUY;'6H[\$QYZU?HK֨.L'ZU__şlV ߱%kuH?ԍR W̾YxH 4@|8\dS #wn]aFMJACbeޱ,%Huf[_X6ګ0YӔ0??r:tq~~~qU+WTeiL]"@+ieJUCS7Y-^Rܠj~Kj<⹳6eU '&s$e˜CO7*j1#vQ٢U? aBu\HVyE9`7}9+P ~rr76G$}p+U(QBQ_y[jZn\&(^LW]~5HBbxHzRFr<~yt HeNG[CwQ '1}QC4+{Щ4, [y-eSIN!apoN8N`rrThNu2~|)KrDq˟>#Z𣫷JqGAʓ }g% /;ʿ$[/wζ̍L[#>n uWYJßs"ZEAAI~_Ge##w]|61 8ɦNa޸w;{ttCUi{I6. o & x_XbÌ*{n>>\5\ O:W8u4őTY ~mO;IsBGͪ;7iL孨emUcFy9yikI^hj 4kC]ZZC돛eX#kF`d ?Ҫ5=OQ5jYV~j u۩@|yp9k}ɡN7cZtS?멫c;F ~xֹ'xxK#{ԝ (icF$Ss\iFX@Cʁgd9Vrf]˃F>5npSmphV2ZEP'Sw~>!;6skSbйserpz4Q'ł J)UZ/O5(LE6Va6_AJ'4^o7;1IIq:nqdU"٭jH̙={qnz:jx~JSCa%'*v4@.}dG)* $00 >, d wOl6Uv0y )r/jⴸǾoHP jot?m| A1?6[ Q'o5ܟX0BЮR=$;.7nIy:.b>^]Xg-+g/Q<+Iq̉GQ׷RƸk<G)VBDD .XH69@"zKA ڽ^ A&"Κ!!!GG@J}_z/_%%Z-lMqeۡz$[ Mp\E.GdCUA)ȍQgU⺭@vYgޑ`,VD;::5b|ADD7uFpx+Ϥ_V@_١]i=b ]כV$X@iP{iaq2ZR()}Sf鞞:^푈w@r{_B}7HHL-]Dbj]A*G6J1\/z1JDDrJDDp%""bÕJDDp%"""+ÕJDDD W"""+ÕJDDD W"""+ÕDDD W"""+1\$Sx[2'v9OG^>ޫ<}~}VOVMpuk%gRbnT 쇶(Ǿ`r:򗶬!Cv:Ѥ<]uqEϣҡ/k|W`5yƼ|>_24 j\wMpmݻ.dM&m9fjd%·?͙'*o}"oĹz㽨:ѥ+W([Ox'Z]m. ]AQ\眡Qs}7.֏A`GE^>w!yzBvgC~~̖+Kt+åÇ抹Q7'Hڢwkl @Pu-hȐq>o|Soj\SJ[[T\vÕh:NW=e(?V@ί?L[;[o-XIb_ m]'!\ޮ:s|B͢QЗ|+UIvR @|Kd udUzXn|A, Q$U8+rr+Nyx;kJbj:)Zp֙*jK:i=jNQcҊ:zVp{5&Ĩ1YE#+:Q]IK-"k#3Qo.:p97UmJ-=wyMtME淝73¢KNTNӏ*^л~_H9nEZH{N8fP%hC_"GYEMٰ:zzFq{ayR˾lMFِ^l/_*Agf~B>uJ|YG@!?=!1fot^6ћ3šŝ:_YV瀷!ThϲRW{f5q{vV%h旞aп1;[ёJ댦_^tG&'(f-m-p&5}}%j?!Uʱ-%(^Z9^v^al@j4;ph~u dž;BOW\ؚu9 6EV?乧xϱ\=n}nV{IPDbLx`Q?oҖ|?'~ʖk +@|B# ۀ@?ڹ>79 '~`CAypJjS+<ޑ#-~daBzcA!*oەyeqOyƴp[ax ar5jCR-J\0晚"̸l D+6%;w;JWm#={~@6)gIᮻ ؔv- Xj?ꢀD%Qq %DZw#YYn25<ntEfz86Gb牶+ǭo[{ȉQ>6n61/+p퉌yY{p q ۫ޖ~Tp7?7W,(Oٰ~}Ʈsr.>8_pw"{z. (՘Q7@cݝAR\h0C<8}I#C1DO \k.ZylҎ/?ޮٷh~6KЦj"A(+/Ǡ8/DWsj=b)6YMȴ FSdkV MbP਽k\1_o>0Ͷx~; vR<~/~g͕`~Cu;~e#;a8ݑ^uj^D#d0ulY>w>tlsʾ|ΖHh5u o-.[Gx~Z I^17O+////o~i7 -h.j*ZLUSoWyoP[X~hyy?lJ3*4|W \14-lᴕH$xQ"pFx ыLP '#C;FhrSM@Dz5ښș#(--/&뮯$w֜޵yO5ujt>0i5NgsqM6PR.ȍQgU⺭@vYgޑ`,VD;::5b|la\QQHz6Ge3Els+Z؟y:l;3CǮ aI7\SE iY7hɎ3Urt'eflA\SPo*v=&b8j{ilk9qc_;M_]܅OmnO"ҪN8.wx]w]ꊘh8 uuT>v:k{հb&0Mhr ~Ol|:%M[Jvvt5Z&7>r^p~(|OL#h+g1*AcUh>@m&I%3VD.^Zg\l̪^h[ԯ2|kjʨڧceq* ޶pIh8p*6T&n٫pzUg i3]/9Se4..Uj+{A"3[F}v5ۿ͜OFX+ؿXmx$ /ǯ`o¸._;ׯ)#L@S†F)r{^Q 弻'xΝ͊7I~Y_L ab|){ ^푈R0vx]n JE6Zc^w (y=^Rd͠ HYI3dIDAT^O{0Of{fι^œNP!ΡHe>aGK;g-3^||>\.?J4e0\ScGrmI{2!+CDDߩ竏4ެ&r%b˕r%\l W"""+ÕJDDD W"""+ÕDDD W"""+1\DDD W"""+1\DDD W"""b=$Sx[2\la >ϯϊxJu""ib>L2\ fdm3y+ =C֑e Չ&?-3'/ ה?hooa? ڒiF'+N0ZQX{u,Cu:t ֽLԜ̱ r\.d2?o KӜf>DG 5{׉&a*v_<ޓ^ Au"""+ܧ~k$Z6n\Dc86]l;TLX'""b}U5#7FU ڰlq5廞&Ms{רZ:c?mGl@iP{iaq2ZR]DDD^ADW aJqWSSWpԉw!""b1\DDDp%""b1\JDDp%""ba+}p%""b=? eIENDB`psychopy-1.82.02.dfsg/docs/source/images/textdialog.png000066400000000000000000013236351257562125200230570ustar00rootroot00000000000000PNG  IHDR S iCCPICC ProfileH WgXSSлRKJ bG\ *XUZ ,o,(bʝCQ/0b-Wa~4/j?&@5WEaL .?g#0O$ebsa _s(&~X.B W 5E"#t^(1L/ -f~ OIIjdN 8UDh0gpDl\QLa̘j,1b .06N$ }kbd("& %D X r smAd@Rt `@^9>2aqTFZHOHk${ CG|'*9#p aX`_a~A_Ft<'[ (>>br 9B"[bKCX v kŎa68ƒ "9 fQ_˒bӊ`/ ȀmoÊ*Rt 6qf0N sq`Ž8A,}4 u0ycO8rrZ3e4Q.BWcqwKhxS\vn$=g '}_;rYސ'^$Bc`3 D5,Y0`.X@ Xց`+ )p\ G0 5‸"^H D!H2H92Y Fd;REN!H'r yt#O(Q T5CǢ/ƠS44G h9ZCSE@_}16fb?%a ceX%V5µxS`=Gpn g2x6>_ou ſ$]5ɝ%%H3IE2.Y?wޑd6ٜW{"9<\Kn"w(6ŚI(">IeJ僒RRD@Li JOTS;5*Φ6R/Q459͓CK-jhgiwioݔ')*+P>@#]nEO+M[7 ÌHb2V0,&)`.`V0똗/U***TUT\RQTVUڧRWPR[WU:EL=P]^C#2fŬ. W#]DcFF88Y5lm3+ٟF%lTͨˣkjkj]^]}Oױҙ3SgY=FG>8.k;Gwnn^Toi}~Z,/Z9_N&skkb(7nnodnkT`TktϘfjjָٸd\jۦTSWSzfffK͞ksͫZ0,--*-Z-]-3,7[vXVNV" K֨zu FbSisÖnkg[m` {L1c^54vؖ_2vݱW/o`wpp r\j8-n:&8-qjv,sqv1qIvrU5uy7cnݝsax;?4ynTxqy) yޕ}}>|Z}g';SP1~QPZPuPoSRHX\=.[ u z&1aU,q:!tš w'NL܈5"##D9bғ(Q-Ѭ{Ŭk+mSW>> 4^06a^DDqbC%).iWR&wMqR4T󩳦Nә9t釒I{?"xnʦ^?=GV- z>KL[-zW![gDdȌϬRJ:*QdHП1kFZZ$Udgv 9Ssr5!Mn!I +"̸f͒jm5{A45hyGo^`pA{e,ōz SuHVtcǒKmXXP|Įr ?\+WnYE^%Yu}=jLXSxu׵+ۺ^^Q^ްdê 76^ݤi٦/oRUokOnn^WiVY#oǓq;[~qjή]_vKv+D9SRUWwjZ^ݽoʾjlkײkKM͇\6=HqR7^ThHl<zѣoc~}Xq+ON8Is*ԣwN'zfҙagϟ :wŷyZ[^pPb]Sۑߝ~?^wRC[Gc/pUՋ&^{)777ʼv; SWv_~*~liϔ_,4~ zw k`@ʓT^Dxv *p!C'!nbXL!7q̏Iut]&@il`} ;&s6 ` pHYs%%IR$iTXtXML:com.adobe.xmp 1210 1494 D@IDATxٳduޗxǺnt7@ D Pt~CG;aiA,+,hЍꩦ;߼9gw̮R{ko}[kj.|%pcd_0y*ߩX2_½VބG/Isx=Q&u"bs=K=xW9Z(1W$DNe~,WTX¿gH#z UFm<3č z]-p pM&_FC-WR—Uؐi U`.> #,zD53FUeO,((WH5 P4Db I+1D ě'DM4 Ehf!+ $8V. CS^ ؒ2$0K\ 6W.7 1- )1 #Ƕubp3ÁyMk&C!&HVmr,H䘐CˠZ1&8ͯVNmG2mRXO4@F2`Vh( 2 +`0- I7.br2LhII*l^g "~!Ŷ9Iq,eoX犱FP6|$dYWb"A Kc[  G|UFբW`+}GStH4ʣ+ډ~t-WBіE"EECk.+ɸB r1YFhq\kN]IT>ɢѰBԗK8 Pb#ƀX&6Bc !Fb3,lm1N*jrp"+PF !xl'54džǼyyWI hf~DG)ual*#.8BDQʮBd3(gqF$%q&FBP"& P/|dY3-%Dٶl%Coa:@2)0GIHxDDž)ĴBE(A#ǹFa(,|+B"PC{^kC4b>MJTy Ih Ao2ԱmЕAoa ]U4kpmE%UscP̼]I˚I10bD_.2HʠE+1LpHNěiGV <(RH.ceO4>N"Pdp6pvۖ+f .NtaYB,RHS%PI:2m!+Eԅj>^rDS{&{$hoJ\Ffaj w dyj;DykzF7 gZ6>5>]OW\Oe~ < |\{ƅ 2+'ڧO_f ?t>v~O1^֑OUUO"k"' QL`H^qiJT"sPY' + 4ZA8(4GzEQ&;V-jF;%{ g* E0izhy JS4zx+o°NLm~5rɆ QEv@}BU-$Z צR>m v)$ 2b,%[! ,Ӈ`DVPdDC4B".9a'ّ`,ÉIyѬ#f"e f<ښ{" S ^ՖTe1IJRN%j(i84dž %B!J#<яV3hh,SG"plWˈ`,$5'ӌt^HG]Єې˂J\ ωeB~YN9"#Y$r9P "(i&0$eG0 Kp"a^ KJu*C5 DJAT (Љ4to\=!Mz! W!򊥶(/XmJ-!|@HREd(ֶ$]1)DHJ-dBY(JCG_H* Gf$F%+ sZռđ-e4kB4@Tj”+ #ːBr7 T$dqHTgH3! }9b"eW7Ӡ H ŝE.Uh"2D^1ԅ١ 9tŴ()0#aD@ 'Јq!QAF̨\zhq$2(#M'1*,.B$!.T̥|iHg!"ĹJ  NEY\y<%QI.0D4eL0!fB 0O0bHː ɱDPFg h&qY(^2-]w`^.HId(Cl@P zH&(mP,, ״Kj$0r;/Ot4d& Iir h{,oY%K:I%aQv4WCEGTb |2b) 1!ѱ7w b8C(BقboB^*I!!1 Wo<2q4G+z\( 71("HiR3ن N2Ev 16M"([|g4.8Cz Ϲx.!~iY+BQRTb87xlMډ$+4yGcW\\I_ʈ-lTo0c,*Q#-'=\k -BĪ0i1]:tj[!RS/j}M *L]`ueFD*RlP ZeJ'(Y8TOp0tlxʉ8Q{{EP/1,, M R .K-P'`Β-Cĥ_ + 7? @d&$+YpĎ! ~^g2>lU x ]2f I>bBۥbWfN2VP.¹[BW !Nj5pٸ,DdN8QkAU_dRJӌMKA@֏^)E[l)g_.2tX"A꓂E%eELqxdbeefd+}W PDb"} HDYh+JR@kY%5aEH_.8 g(}JgS˫+Ƕ  7ɂKJePCGt0N zsAėlBK5@PR.,kA A,`H"L҉5v pZ OHȒ%DQ`G45K)0"G q"1i=X xK~R:Pq ]dQv!M joA C!qʐ:y@WxԷm̼8.d܁f(d Xdw GȲL0_ĵ:E,,D;!7_ 9Yб+7d犠gbȫ0d%@"\iЈ ^i6՟ NNώ>x56Mlݵ7ݾt_lolTkZntIZצ,쵴Q<;;{h4:88899a>u׮]7ot:l$}dr_x PpI3 =& Geh*bT\81PvEp^OB~Ʀl;1NkT.h !a.%M/Ll $|?1D \f|+r$VCgء$PSTRCE\ PA%7ExY2&\Az0\0`Ig \|jO|n&_:xZut< O ~!*'8Ji@2OGIi_/VN7AT!AeiXW 1'!w.+8bx I C5慑=4HmІpRO%:'J*)`>S ZȴP: apš^2"$l$ ]# To钐84cYKyia3GG!ݲ̴rDA'Kyq\4$k0-xMsR!y)+ )kRhv1V6 N''o_j{i\mynNh]6R G/lo_~Z6;ş׷!9{asFm\v||Y>hWsMce1/ YtVΝ;\>R;;;ҤGΖJ޽KR*mnn>)PCxQ\dHdZqj@,ZMĂʞ.bR=" ՋL:#!c/K0Wֱ!zMHG:UY ʑ&]1!acl#q[ֱ,l& QJ G%PEP5W 4m01bE"ApP| -":^@h4h0eGY賂V?Oi֯VYl)(kw)#+7_S>+w`tJD3P1E(wV-pOY%իre?9WF|zg<\yvo޺թ|3,f{HD0)[B"(W-%cҨEO"kjA8 J?2BR]',`?8|^⍭psɔxdF!Y!23D2kL!\s, IE";Y[EMM:VЯf 7̱!CM3yvfr|11(JvaxYڕ 8ÆQXeQm]2rjI rK\IZ~B]$>ׄ5L@c MaDT`2LB/ -I(i`t:ʢ(XdHRy:` $$ŘI $)jQ"W*8z CxK3xCM^\8Yb.J"x%hϿIfpvJ?zã;NxRcw瞫՛۟ M{9?g>|t_:;74!qTUrOKti؞;.3dG`R~?7w Yg Iv{P}·l}J$3ܟ+=8ؿ{tIɓgM.o|=s*mvp8|ٕq9Oֺ|gK}QzBPYkN,x^\teNбU|gHRaBV@v\5.e(}g [TN^(:c؜ؤ ^bLdqvRp8NdA׬t1SŏA;2q$i2 QڐDZ!*T(lcG^IaP<'8.~&'F$Xq@lzZ\IJm!bj.G`X'.*]C:Vvi aw24yJO wR\&\cƴTqaU|6JON7NyrѨKl\^QתO7UQc8#q)ж3&S.( *\syYUk3^Uk&\*[l|4Άn̆t\^o^>~5s*aI,ʤxQ;SDA.f9:l!YVL^`;8ٺ~vu̚PӂwR++/إ+ A t,fqhČlY3^%)\Y,y@EGۚrp BbG/j\!*x~nZ4TNDNqlMR C5 =DW_@ Cy#h&-)pb"ɀ1*69ZR K/|G^aPQʛRKDŦA0\QGvd&It0PYFa(Dl'kơmC`a(8Z~RxێM }ў~OHRʼnO.zO`l.]\n5ׯQo>̛ ^N+[Y_҃Υa\[pcNklilhy9`lؘq^֑yEci=,bp~YTR)5 6Hѓvڵk@j0p@1js%7Im5ĶDžQ% CԜcT21| g]c@+H2`; [s718"m8ǥX.If"yq.q1hJSC`} 5+ie`!ЁqY_SK Z0 yVάTyp am>y}^xxm.J:[lTl+F֭ƽYe^Ls.=o g̪j5e͇p8geΥ;I5.Ҩ7'^s{:D⹣4=Q/ b*Dx0hZq`K^=%cEe+'AhɬmM8 r9rv5.3qֹ6Y`TI tL2YXІhuT4DVSk+q#[phdcxMpR!=-\GL߫MY &,\֒(%Fapم!hp84\e4"B WlDl$HV8n< N=Tl$1Y#0yIJzӌ4S)\^B!^[EdqܛB&`=eB"hP>B.frRȗaȴzg$=MdpӃw'_ݩwyv}]NMιܴ^_g~O7vv巟utr?ΝN꛼gV9W*#+?Asr'?Eۜ]ĝ(b$$Kf|o? .ĝ|/4Rhsn&_*fO1K5H#IYp Ǐ_=Fa!Y#^+eXZJ=Y$/CŪ|v,jI%2l'eDpvE){"#("F)\jņ+#:02-Z+ǂá0֏GxMzE/#Y%<)WR %c dz7I,f(05,orMꔳJml8ܻ|:;o~woh~u#تwйBgBVQFVH.`>?8s&{7__yi//1v&Wsn~3߽|xz0h\RFhDO]|\|VgXZn}d|3Cx.a&uAm MZ>Jo|P^ڿە|<ܕ6F~pLb&űӿhreWbű )q*&D"6/V ͠Dԃ{hAϑE->|mDgЋ^WF ._Fcx>$Jж ?c"d'fHd-h<9B2w80oP jJ4@#6[J "IC!"[ʱ2bϡ(Xea((";Va&X`KD}fM4 L V(xr#HI#/[ "3tlD#JL{h!f.B[Z!;<Ǘ_zlti)q#Rdrmc3A.\9 ӨNUJӞM;4|h&Q:2 Ei3S( zylhuDG{EN_vɨ8PT H% A#^+B &FU}(E*UdiFdDY"MLt5(I\``"Qd' (-)fFP^Q犜BbFsdžQ2tB\I ʹa!Mt,^"2LPQZDyT48]k\Gt̩ܻ2l>[{9 ;tR|oΓqņۥforU^QJU֤^[<|ۼ4N2&xkSgJ F6\EyB}~ZlЉ:.km26Yͼ)d \]%-M};=p6?X7{Mٚ'Lk_Zzw4ÇAŃ͆_$'3Y&-7NlT,):)Jvv+tldYMr Ⱜ~ALz8Vqv<.o@4U sI6fe6 U (B`w6.z/J$r,AC0@3D j/DdTYdĮdD0"s?F DYET| і7mĎxE K~!Qlո~U$PP`йM6ȢFԠ1,NFڬe,q&gU0%DcoRR&C˰0]c_LjTvsI جpP@F-ˈuѬje"r2dYDJ,GӉfPGmq/xXlP LM4L@OGQ^ !i&C:$1 8 y :4PHav@Jj ho/;xӃ.< 6?ZC$3awO?oϹw)Vwcsgwq:=9<-`UZnnY;OF}XY鼹9o[׆;yͦc.~tR4dN'WkϿ.䚜Jt߻so~{{R]g~xߗ?'^ik_^~wyw&?Ə[kvk,?󓃽;G;Zo?˭_m.\)tQoOcȏz7/j?n^ܕX[Gs| !muD BmғQtٖrRR4 Zó0J/dfl!AHQNtjfF}2,+à\dHBZ)i M.i~oצƼ,ϻ|b6ew4 i/%keu={ތ٤DgYfjl$2Z 2I%lД,R4mBgdWr(/3TL]V( c@(D*Ƥô-ôdhg1V:ΨbhSǁB†cQ(t t= ? fTX۱‰y%"ejEF!5t a!Br2˓2Փ t}xⵇU3<{v;twܞ7^u!j[[OϾ<67?]2 gp͟[ۣ]~ ZMSNΎT[Z768_ˮծ*Y&ΘfwۘsXo}T'VUk5`2C9瑓IhΝ|x_ya^_|I<>=yտ<beal[+|g]$%qܽ}Ng>^_ٝ;o['t7k_;⫂G:{d>ܻûw j?~X׸omsڍr{rҔkG?u;?}8nyVi|i뭇g\-Ϝ7Z6˾ZƏwޥ`IGjgLIw_;8o|x(z>۪} z8嘽cҒX`a<`(i-ԁF;²ؘ;ձ Lٸ!qP핑(60Rя.4 e)F)D[*.T0s $eHQϨo~^ͮ,HEAN|Ya-L (%* dR! I pV}_h0{1ilrp7KښNZE/[N[<{KZǛ}c2t^O'GG|S?Z]lp`g@l ٧N {0 DYDl,%CUaNłC:"^aӋ)Ū 1 NNXm#qI24л68 ,k:,q %މ<92PDP4)C b}X?.ʎ!eHв2V'U, -f0e=QLHD⫤漀lhxP: qKQ?'"ޱ:)=eMD44!\6qfuDpP7E>N#}Jz\g^]|Mnjz5ۯ`x}m>U7n]kG'sK5w^«p?=^5|ScCԽ\կlve^ث;+vksγ/^>m{!>d.s._iTl!;'O 77hPٽ޴?{ǽݫϿQyymYs9q^o3d|&cOXz[?9[kVQVTdʰ =< +QY:;O'ß;VҷootsV&?|e8~pv[nsQAmm2|;7wn|k;g: ӓ{fG듭Kk5n4Ѡ|<j{Zkm^uc=6x{tpeC8[XNJylޓζf2Yru6{? 7:VԮpujW'; ?]LFIcڕ˝ZAM:`1iBsʇHjh/<"hM$U9#P=4ӰΠ+8 Qpb`R.ZR"Wޱa`2fbZz-DЫ 4 d}~RE<Jrd ы\8NN!\8)Ӣə܅  P}J- ^pVHK!"؊'`hVp^)b@OGQcH>JYL !\RVi+|?Rb}~vRhJBc ^!zQ.6).0/ ^4KQܦo7]j|#x)_bHc U .lUD"S3 [dzmQ /- 2ex54aY3ZfA:r@IDATDP%p$ V)xNfEբ"dhMPSஇ@D4~OC' - .X 2[qqe@ˆAEli:Ȧ2!= YJ "gpɔW+(;}k+P:u^IłSP"".K!ѕfɾViV>5ld7 =0KJu?{7⛐rGg'O˿ٹ٫?w}[Y_ܩNdtjKnmxxkyAu]g{Cȗwj7/}zymi>:nuֺs[|ӮG|o'pVRciYy}OpAs{/gkk?~nk֨Mhxpu}k;ZٮӉ>\<9±uБg,' ~e5Id=vAIEmգ:d~domZ[7o:G$<<ηYol{v0Lisq˜nZQ?/\5Z;npV\kUUx ޑyYivrx6 [FK'{i}?xO4'tsr|]V[[_/6zAyCc8zvqDCqlbFMK%Q2"1.ep#6pE[LIE<5 FRJ] +!;$y[y\y5T"@4-zu1l#Wx-$"$L0نDqɔYd$ QDͱ .e4fq(^1Ԓ(!)!$81$bKC8!́2Ds$5 =|FhVs ŠOdlF :V1D Ũd QA*²M}FQJNεmn^~k"K8/` {јv+y5g7;-f+\Wۭ&ת|M/dOsٯ/Z!kS."Gg^u${ m>v7]i7R_BKI|u>_My\2-Nw=Oc92l֚r,qޘJgG^lZ䞖[.w']{7"3wFdDf&r>]jIoLƺr&KȚQ#ӍKkNeMJwly63pS3N_d֭)B(noy\VV׶ֻv9ɗ)MY+ds8Mv_ސg=d)8 YQi3JN*|w|Iee@>>Iֳ0tf鸹$ C5N,uzJ;qRtxaBgDԯC>Zj̉yy+/,Kǽd5tdh6 ,-eϵbRy1b. G%"Y&DYƉ3D\=TXQ!=]mD '* ȲTFOG|UD\vJD4/YOs+6A҃Tt*82T08ѐt>aW7c76ٍbLի#yPټ{J7K ?0Yj>]tr fsFQs\)O\l4[KW6n?[/];;O8P=x4x2nuoTOʽ~o:ɶWs-ٍI3j s,:6/U,·l#w&jgQ ^+Qvpٚ I|rj;8NO;7;[;ri>o57W:iA,qTF8MZ6<="\;  d7';js[krQ0~†[kw77''V|50Dgw*ZowF(9ݹ~?;x<?mciy/+7u]<4@v.m6-;k564b^(ܹR C=OȒꉏA#dMa*̅y'Sh*XUI!^,Yz4/-T3xiz1b bx!"h,J2*/j3h!05wPP-+Cy22ٿ& [\  ]xul A^pϢ_eKܔ A4,k($8B̉f8`+SY44F DRRȅ8YI%E *Uʑ _ UkAxdv1SB#eࢱfSQvw\咽ϖwl䪋O(!WL2l`K3{q{7t0{<Ѡy2 VSn/xWV"Es=ҹdfN$[|zP (] l [2O8hH]E4{M 8qHiֱa 2׋r{hM˪rM0#,";F+eB#|H-N eX$$cJ .,Z=°Ȼ 㣐dq H'0q~M7,>˾ qohdoowҳ9Clevn Yx)f4ֺ۝No:+S N^xf4(ɤܬӚhYJ2onnݽkkZ9؄G~ cq=$EqT~˞k4_/d$"#{!g+{v6(^r]7ZxrLΗ9 ;(5[ٶ+K9Hi%?D3. F2nhdoef,zzxF-{khO3(" Al 7 zpt8y()}"}Є( &C ?ٓluW5Owv7$HfPDl#,GH~aG8~!y$Ma S!ҤHHݷﭹ*ҿsZu2큔H߻޵Zw9'O9*+Mx .ApFJOUCad"СWfBb.4Y9&3=Cj(W&)ds gapB]089•Ź$,KhEdT Yy8"'I`dy.S3@K(]OKv( 2e_k2^J/v_!8e5ƹZ|~t:1,.8rK;Q9Frxw_zh Nz~tp_=$)]twol'g)0nQH&Fmƹ'eӸr{c{}yָūKL&#p4eMa >qyhu}mx8kL׸5wje| ڳV&Sq$&AP<>v>?|f͕x}s8h|tKk\[ޖ^rtnV*aʍv#Tħ^:_QKj8cN^yqں{q{}i W^\UP],q{yt{>=?7Wx|w}uhD%;,t l&Ԋ a2hJiGCcA'f",D..þbC#31*BB%q/-$g<-$dQcdH9dAxYlwG"`4de 9@tIii}ƣ5\0Op!8mɪ6 ,sqOXu*L`5!TL 4T\ryWx B.b7}by`->]Y''ۻ|eg;.0oYZ-r"_CXe~ qr̓GKk/r&ߙbʋR,(C2V+:] b.ڍF"ȗ8 y Ed"a J-J=Ԟyi Ɉ4$DY੄h+>ޅS.b fm`PHz3^].d,|Ca%%PIS5Ҏ刉3IIe^ arյihR`őL5(4ҙA0*wp =qы%S|[q:i5* L⣔!J5GWMچIC6Jr&)ڽ:(RQs.4J'G +ߔati|\W8p-.Nyڍ{|gOs5s9bIg$:{_~mQ>K'7Nopӏ ;!M=Z:8QEB)oijf-N<ݏgm/tW^8w s_O☳ӃgG''XHӺ={erkWqFM]x.; +3~49%+w98xnoݽCSɓ+qk#WOyZV`lOON]YӋxztptt1]^rB6 /*GKG+XesDfg&rɔ/ ǹo?Xڿw_|uF\l֊R.'<Ώbtq6/o~nzKQ?h+&Y!!^^hb+ts2i(L%`P ) m,` 3;\<Tj4{({`@2_'+YEV(HP6) J8M50bK V +(*CCE޹:`r` zZ웳#!7z}+BJZ[uM0wM *t=Reޤ8HkD= <==_R&;ߞY]s˯#QyMFU눼|x1l@55hY9?M\KK Ko*Fk +#Ľ8|1Զ):Z܀d N)ryiL.j4@1P ?e ~yFP@XSy)yvw|,%έNe+vvyZouCU>D-K/mҭ=[oL'ZDh gV*9tnBåŷ~[oť9KyS/d'{qAļ>gPxL+䪓 [[[wy/5tWI}3d\ۤ~@ݽyL ^Ֆ+DRsRP@/Ѥ4ŴXPh[(=ӈ C"8;,p= r*MS0Ca(+5I!j;- % 4|rHSP#gU +CB^UЫH&rYYihj@$%Y0 hB+&݂P ؤhHrΒ# C9zxa{lN`'~-6mT'΍X~d7s_ݽo.^e\::z`wydcuyrq|\G_O'o}{ΫoW/[{wvo/p,'}~[|m]d֖"nXԯmP+,qNSW瓓恅͕8[ilo67vy%`28v9Ζn~O/٣:įdosͽ^xei=Wȧwn|88-sOq|ww7^\{~d?O{{?~`r9}e]9a;kgOwg}UE~$ec6 /_ݼc6W,yrui=YQk<+qg\N|xkSo}G_ӻg{7^ǽ-/p[㽵(XlOX^G;;7&)¢~ZoVywpV=ǽ^+ݣ y v@agL0*ALGLhkQ jK)]^^(JT+M YoA[DRbR%R Ȅ.!#G=b9z!_9~d)C "Ixmu\IsX49֡``qXnE2tLu zׄ-Fth\*̭0hz f0Tf.WmF]Pz+qL'QA /zQPc08Yۗ'QYh9J5Bp@8. DʖTJdmc@J `wuQ; nW0k|UlY{<琺VG:oHܚ{pݬ:"I٧ȕDXC!ja2X)z4`h ?>BX Ś@IXP" +-*h А5*o+C;Zୗdpp3@zh!S8j*7e p@0W5fcf? 9waE)0 ȡgkFL3EҎ;瑄ZT Gdaeq"Qߵek[T`MGLJܺp]ϓF\$W.yj{M<;mln?GD.N 0ƕ+>,4~it|0LVxJ~!EMڌ:vુoـ+\O\_]`܋l4;:gzG'ǧgSIG\DW88?;>:qx:=Ge8in_Y#ь3No0' `{>aO7Hd4BVLLCQ8T 5GXv4ì1µie}-0BӁ`qcT^>7Y]V_}3N&7q#-szһ:oJ[_loO!;^Iu 0J Iϓ' g>R!?q L̑KKF(j:<#{! |>j>"&gwőb`2tXJq|t*nRȁ.h ,/d#!G #w|)sU&cNM"s!U&= KC LRkM BlA5"Ț"7,`њ::G*yf(Q0A|-֒dRoS8;Mz*aG,ɤ!zYzǗ`Sq!f$$PCPyvt7>Ϟm%.qgzM|3omt4=}ƗOg賟|/-lL=~?폾khOnG;̤~ó77Ηwn~O^k%ʨR6&zYCf9n/?vnN\`@><8yėJ=3v/ӣx/?5^x83ͥk?y‹Z9?pO%'ãGoZN86~w}|;Y}?߷}cwg\8k/?O?3oooVA5ۆ2WV}3LO'g<'uW}[[+_MG珎-/MV{w'?y~;N[Og{}s]{;on/ !o\[fug/b \^08ZRzzQ:)%0!Fzz3t¸` a9uڤT8ב&)= jh0! Ls -BIVOXE֐u2X6k(s"%؅# vW cP,YI4YGzh8W 34JAǾ2ҚYr%() crpȊ6 y҉< k vAF F@ rį]dg[onc;[9^V RIzUn*Dr٘h8킀 5RݭIz꫿u(p0W!z)Cn]-J-xhzztQL1Rj.Z4wskۯ.)q A`uwWw2N8 .ǛwnNH?)<0F|"oy%|3{1/!~x|0=8svcyknޙ}6"(w/K'wnOG'ӓwߛyZYq/y_ ^[lSGZ^T]h=Zr~{g >O>7/WNJ|Naby͵N^rW7'(˝+o(奓 W| m,8l 5!Rlkgu[7nmrّ {Di(y`,/d[ldFJ"ȏ #^Ћ7f@IPJ敃 ڑPr#4lkac𲌠Bx ,p-oM01TC[嘇(}lG/ =bbm Y{T"PZ0>čI'eh EV^gQ+^C1'v͡\Jgya>"Q g!M]HPҤegG`ɽ3zvjp+gL^֫AƗQ4h4鳠hbRnq..K%7yi:nzrmemusyE⬉OLs1} *UjlggGCLqI#JrS<0 (N ^&k4ʚIod)((z FP)e?R@z^HYV%<.TL% UhrҜH p1 ׬=DpR+r.F{cp/J{8jng*##owkEJhpP84ZH3ޕcWCAHTK8)On-߾yHՂn_]5[ں}'6Sw_^mK^8jI;Gf;/6nqQ2Pdo49Y۞DQpt<:ح{4ƍVoܻcic%-k3fw{$Q3 e0kӸ>3^ܽ?\Yy{mo|~&3{s˯qw98_ny[gGhf nowvKޡZs*ԽۉyThlkw8q(* /d^Pjp(4;6 i[)G"R`d\ܓ]rY6̚,ye@)@}6:0GMB0#q YA@L'HP96"& ^rɃ^`t/(#^)@j:$7JA{ R<1c)LWe+z%ݲ,`TI`(<^}#  m߂IdqI \9qv~药M÷qѸƭ[|fW&[j &SnǍʏ &h4A02@C=:ע2,}fY%.{{{t">R5h]*4 Pħ eS!ߒ#2'Q=FidQ?Ńt PIE^ C^Ex5M.h/e/8 ȘVhУDvXDfw#WҚG2 4e@q2^2 L(lzd Ӡ ȂY`*PR R H`BJeeRXǡTG\"6ʅwFN/D#MC{eG'S b(fP3bq4#KC. (%4yA2ɯtqGO:>93G08oqЍ^xnty:"..MV&kg~cN$y7ח7Ľ8?@Ĥvwolݽ9o-|ik+/~칋]/_zȇyҚ÷C{g/o,qo.]<4Meu_s 's^y[N /lݼp?Tkc!wv4:8iǓ /=o|@IDATڝW'w7O}KdA^=y8m[ߊK'Kg#~xO ɝq̐6'osǃ%&Zl5"n  p!ӄ#sQ;:$ ٪h @9 f|\?HI^R*2rJ~!=`HF`3PHhZY SF0uwFA> DAAH~ Ќ79^FV7CsT;9Z]-`aU഑ f5`*C'cE#!L4)xP.*[2Y&Iϐb^7;c'X4>yH0G΂0 3 Pcɡ `dBVtl&q*@vpBm MYePi`jXBzWG,p [pLkO%>W) aHcPyžK" 8 ΃V?u{Xpt~:;=aǃ/Ϗ.޽I+86&:;]>|mO;xS!f_YV8\K7$=JA>zl;pGS.:F/Ov3Sn#ʌNN&z2bj1Yxє_xd#t0G,rO&z N*IGqyk:hҼf\PMWw3g,|F]K]$`wr,cpaU4@z86#X/qrar +iPm2o5 &c#[  YҰf^&+-[ȹR|jg\>+fa|_Ť0:@`޽\X\dʰAEhYCd9? d┌w Z8/΁rc\g8觊~34K|DsiVg F0.1Dd!7AL4#  s&ՔA8hi BtN [\Hė됔Aمwc:qGnTtXɢPd$:Cg ܑ@YdW:#MƎjJ4aLڗ!JNj$4_`z4aE0T/ =[1I"Lv L  2+ ^ :c"gq Y5TOpm58J) 4r 444ڃГGo3b =i*:)7Ìd׌yh'#.825Q:^/iV*B9i Gk^DiĜc3FOkʂk#X+q` ͦm2x{ձfY{mŋ8pNxToK C FG5sEK3r PFtm#,z.qr!|mo"#= tq٣/ys?~ӟ{-X $(fsگ?%bvqHE}2HlkdNq6#`k̷[*-xHI4Չ ƭNڑ jDJ]Ik\|l~T%痊, ^%$h1z5ҋ񗍒Le  ƑeZzQ;V2^=&  @#›*QEƒQˑ6 dˁ~L" 4e rAR( /Cb4*! =2=`․i7D ` YđXe E޹0l Z!.&,#GdRU5L^ 0FRF@0#HjJGoAzeQ 6F IVjǤTq V("2) V1DI*@=C܅5gJdFf9 >z!wz$+)<##*YU8@!V%EV(`B:]1iV7H$SZDQ2TJ|Ѵ.b戕UB#{aH"3T|GvsvY!"|pW4yYE^*@"IDeR%"SY2e'< $"HWd\DRRϛl5^A< WU)&[%l @EC֕Ш ܏.IΈ,Wđ#[4ByS YqqdZ4#G> YH슙s9x᮲%cP92CRQ")H+4N FQ|5 ;rFzr1T( )Cd(+s.*YQzȵ19XV([k8(uEVY $#SSjeW|yd^ & rJ0F]!x4c3T_J}Ta/`V|-Owf$%h.DP.Nd r1Զ^`G!T=&%sy2PX3H-0^J|\|dé Rʂb/pz\M7%zj/By411"38D  vY8sGV~}sΝ[fms5)nQU]^[;BKM(a;&Uت]^ @9 gRåg C5(hDMe1 0ժN)j#d!d_- YI7GmATN4޹iH2gC/qmg0Q:rHA&P3 e|@"Q2X[eP`Fjf`CtUV"8KcE<\0xL4ĘFYcڔAXr4G[)CܕԾB[/`5 eOHi4R :)Jd1!W((4A-*9`6O\]]}:?8烳 C0Za"e44"?hlBl/X _)ALcRC!+;{£IVUxY5&0;Qvu5#dN!;:/dhq1'g5+h(앝!MVDZ5JzFd5;04 UCi_G2++5"^UI U?}8HF;BV` CqJ\ B9AИ0GhLS]Jz+; &7c0昂 KU8+qX AVCcL K4`/dW+R(VP@%$>,$>:Q\PvK5Α' )Q%,&,zhƨ$=hr$9.F)rJA٤(r/ Es^\KA̒yo"\(=aU@k,#xy(b/B<׻*} ^S;zˡ,]\ހ\s(\e)k L܇wPUS04 0-(`eՓMr`!<2.#߀ErHgM_Ft.Yd BJӐt4d`ҐZ`EECL%x΋K;8I,K u~ԜgR*໗iEd ^ KIl0R;2xU(GP|*ٗȃiͭzT *!26lh6fP굣 cEibBP@D#Y;Hf!P7o(() M~Ae =-ìADi,vWƶ1oʨ^Hď%/,,0dH(z傞-BTa`*= {իBn R:1DLFbh|Q武YEٙ#w}@k96_G-P̝C9 W:(˪^8q_.( GrrT4gD Yh`CJvU&`4RxCB%HY_÷ɶ{Sč\9d0444OQ@zZ&KP * C`J >haO-?bd_"c BhӺ骲UR UBٿɈ#JI44 v}1_0 }VA`kB^>b+\%jy]KPϦJ"tk•6{̋-/J㷋klEw3+:6CFes='5D`bLj-n?i#P{6[ ׭ެGb'Af(X hv&ٟl(i@<*G$ZsCck}<6pQyc)[۽`-HɫQ #گ n!S~O9m*cJak-NFPӼ:TZJEUdYSm\q96 UU`]Dm Y"04֞㈔FH=Ǽ u w[Ҵ9ZJڠ-ֈ(*mJh2)8C.}olfi^!UZҴyۿ.HVv^O^]mlו(\E!FU#>TȥA@m "(HkQJb>ҵ< "}JV I*EchC]F~DҚiQU##GBvXHK3nvV3VrYZ.k7qP٩ ڱb'p̣M;&Hl>ѱHJ-nW/xZnǕJ^G=Dc<͏_^LIO&Ǿ+Zھv1㾌򂔈OrWXk?k¤1kbAE{۔b8uvT1FZ`:n`ہj7Qwɵ17o5x:Q>`ŏRGx[%U05VE  }G9b;~{E&)zqX+ͬ (iiRW2֖N%)w_}QjHM+bz/6a)/hDoOqvf2dfhW1Jq۰RP-/IhJIC)|#an1q`j[I OH6P&6ѩm(BExG*y%e樭?&Rt&+f>&֧_D56mFv8!p W^Ԛ"7uNmR)j{ 1Clq;+{` 6ļy5_['i=MJr(jEu6kmGӫC],w0Hu,iQJ8m%D 7ʟdcD:R5²_J'ġ(^OShrv^t@a§i%E4bŠ]pfdqmх dQlIc[7e=X8ܜ1M-VQ}b2:Chŧdmu1]cC5  { [#s7앁n!ZZWTRS-I\ϑ?>jSm iIý1"  l˦Q$je\'2h, |eF7Bܠj!fԦFJf3+CaѰ脟6^hTIgSJMP)v|QS 1Hҁ9v v hh3~!PR7 WB r#޽ E$o}贓6dL舣⟂PJ U:L%ە@l/=%/Go c\{84G\ Lf5&f/|vWuP5hѺT)H f5-fM6iu F=oBm"_mZIQuj 9ѓ= i) 1 d,]ΕpŰ̲kaѩ3ČfI/Rcs#\^D O 1B~+F hdAb;:Erm^0]ͅ@m[mxtI/:(D3÷8֕Vi[*HپHM3?⌊Y;paX׶L7m2Fy@o|ërtfj\;Ii6>gk}̝,uŰ^0 !$.224t u$ ֤8@4R<5W6ߖK? _Ҷw4Z2o75n:d/L THcKh?[(`"t.^0֠4Z_g-R:VCi^72E1/Nخ3\_BJG U}]tOѮv'RoȔPu7肧p/\ ւX)MaRDի?;?q5Rk"3C;vA|ip-_A4xr 4δֻ(},YlʽZ L m1W{K;LկiF0OC^-Sѭf@K(&d0^WvFWtkd#A)t|Z\ȎF/l6`mQL{d} 5fTR00يgwh༳ȗ^VN ]4(q.ahh郬N swK2#zfKb6W\DR^kvWY4pm)RO|paMmVShM( h(U Ͼ9##BOys4K"5m킴9ނFk){e>h^a'H0.8Z`E+()Nhɫ8U/0KІaR&2a K O/0=dO,=CZ҇HDĴ#(`:2zۚ^M$G0eM߹%pJHqh[uQ9-Vid_CѶw0&N"~{i f(/5|{%zqEMO4560ʥ <}M.^UXd] eO xi4*˶؄H@#btLŸ<-60z\9-cP^:0XN,&NM<MGZ :44% (@-nm+D70w*b06Ť-=RCTjh':0-,;;I߿+eO%1 zZ)#%sYdjBF#P&ʌXrPvӉQwp B$L"PWׯ~ Z9e69ˋ^Ry%qx RXcֱ5Z+sP z2^J?X24h*Veq(a;`l,-G, `xrh³5lACP (8ʕgLoᣘ;%r:4:eJ5;]uy 2+G0 3e] 8Ҍ8o f0fAʁIBǡ2R2)HaP(^Iqp` 9 g:HzbғR4,̈RQ`rUj&[P 7}rϹ$gCY(â1`ޚbUо( pp[-b3^4- )0H;)A0L)R I/zo ŗR)258Hg4rm91%kxCTRlu`d!l;/ tr\X#Az+UY 1eJC[-Pvy箒i0w\1B]MV:ϰc(tV >O_Aq?X2R A=l,F5+ 2Jm^\)+- #+gtN ^&6(e`V!d\80r^ʯ#hr|\'x4eɒaz rf2M 7~.Fd\e.cqal.jX.jbd4Չ Z qe8G}8Op)OJge1Op^ku .RB@ ҵa2㼃r:{Yɒ5:8RN4Z0#9k s'[b_YoigrDkp^ \e.+4ҦyLZ*/ ;' x__ To5WP$ 0,~d\m/߹s';Ob(b(b(z&|X?yZ,b(b(b qmq7?xB@1P @1P @1P &X @1P @1P GaN? kS @1P @1P S@.>&X @1P @1P GaN? kS @1P @1P S@5b(b(b(> uQX+b(b(b(z''O$k@1P @1P @1P 1(b(b(bg`O&X @1P @1P @1a@1P @1P @1L0PD}&6sM(b(b(@2Vb(b(b( t5b(b(b(>,ta} _ @1P @1P @13PWM\,b(b(b00)b(b(bf;슁b(b(b(>Q-~ʥ(b(b(x\OF@1P @1P @1//⇧[W @1P @1P Gbh+b(b(b(v3jb(b(b(b`@=wqHb(b(b(``|vvYD@1P @1P @1P ‐@1P @1P @1P Q=JC1P @1P @1P uƳ.uFjT @1P @1P @1٬(b(b(b( Ł@1P @1P @1P R=wA1P @1P @1P b]^\Kb(b(bx@1P @1P @1nuPb(b(b(glPs/b(b(b`1ż(b(b(gQW5P/b(b(b`|Z1P @1P @1P @10dCUb(b(b(zFb(b(b( /Ψ h)U1P @1P @1P :uuY_5b(b(b(2P i)e1P @1P @1P :.곾j@1P @1P @1P ,b..bt@1P @1P @1P < pXOxWAP @1P @1P uuqR@1P @1P @1P ,-bb(b(b( RJU @1P @1P @1Pb(b(b(0P H)U1P @1P @1P x{sX(b(b(b( dzzƀ@1P @1P @130^_>(b(b(b`.攥(b(b(bxo>+_ @1P @1P B' ,b(b(bx.F7@1P @1P @1hT?_\Nib(b(bxfඨuu5b(b(b(xuuuV^|,?e(b(b(beism_.b(b(b 뇋O`L@1P @1P @1P < ԥgvċb(b(bx'V %g^^,эWexU+b(b(?tυMAFKocgE|z4~w/O܏^lݘ=g ]-b(b(ur!Fdv6Z.GvOK /͞l3NNxz7}q;gt266xBJ]j b(b(bC2P#h|q䝯?z7rƛG?t{[k+wW/Ώ>{>lrtoԿ$xt'}_?y|>|楻뛟wr:Vb(b(b`N2nFN;z2Y0afC+ O͖\Dj`vڿl`wDWضFM]LNo%l"@ DAWl;A(Ld^+O1IwKDl*"3_a*" jsb U(aVU챢huHjSj۷ktM v ^dpƳQD"p F5M?#Z L]ދD&Tcw e} YxSբxIE 3֊ƅAC$ )'NODRQ CkybQdx.PVxPqs$g0uk19E21}a^6P7"4;DYm؞IxRVҢ \,J >c D,*+_'߽Qi*~X-N+ b\~m=Z,U+Hcs@;BQ^S"Nzv&X}gw ZܻƾaGa@L^%'_{ k~cx#m1PҙFɹ-`.TDf+0:P\{$ 't1!EOkkkKi"@yq||u]z76:7@o84+)gjTc/1"CCOɂv6T |#{>⑧Bz20JHF#c. c;(2/{=Y3HNv`CkIiv<<#?Lũ7oea&=i/&Q GɁלKOin#Բ;uu誡|F hIJR<͇j\|ׇ+ԝg_'suνPP XsA; D\|usb6$4$U_7rJu _roiVj φ.dvk\慯jG}bJhp{Ll] \*1b1L"@ D333&˼;g%C'"@E"eǍi0 ;6KmiGffy_ʡikB"a ( Io{La{UPP6t14cp Zعgy0w0X͊|[U zB1<\z!WtPBmu?mw =#B#7:XDeC cE]®Xw)RD"@8yy DȺx%_ P} Y#-VcV7;YOF3G4J"b֍Q%>F kVuU$ʘvdn(DjD4Y)!%D]!L. odmk;& 1ݵaQkĦƖ;u 8M1ax s2C WtP ȡM-iimIF:3tU)a} JQDPNjE͛gu͸]TC!ּnGv#q>,BC.%M AEādZ<Zt B@jp!9Mne0d%݈5rwJNLkFӎwPgaUA.Gstn*S 33?=fKqYC5ƈ`]rB dCI5hִD؄RTMЉS1VlX9הW*vP}8ɋqE4[5X< k:JiV+ИaP쮈#B D`9X5:"pig+-Xuݻl_ï;zŢ+F0bM /x' >+w8c\1*%\坴 zj[:KQ 6  rׄ%qA7|> bH`MxFFl0 R< *{&U 3paWx _P#N-I%H fʪWm ,xGKt[kz,6x=yzWÊ!DKCJ3BVwqi8n!&0ӝ0bk@ S%IIW<@6YKɑÃGGIEɤB/[ A`Ԏ>S tK 2Tǟhjz5o:)ZBAOB+YyTb~N3@ rL[rBS"ԏ=3njDr-Iɪ)x3Zp3$qkaRO9MH"@ D,!ܗp wE+@œkґ/42}jKFu[CǸC<]=糏ސխ __n# ;B sp]a4sf-[w^z&C"zU$x*71 `H) cAH) H]Wo 5X(aF"@èT—%+@-ɊdR}DՍgJ^d "f&9j7텾' ىCCV[|}Ckvj-=I6>:Pp,8âY~@.bz'\5|]So&:t6K 3(7~9ׂ!eL1QEIWnƚ+ s5W+_G D"@V"LCqi5|a|}PBd paTB,R8:iX3]AD*J0[) S_yj'^0gfB+mW||11LJRB6bwg:g?=Yd?LD޲R1 WPy5 \H3” ,jo<<ռ7,TsSG?? O5؜҅@k{.fN+];?;0D %4Y X[р_u`C}Z]#`Yd eNCǏH(ЦHK7Ou'BVKXYzc9*Yڳ1VEU>ج +BX3,tRX+cBOnR4Y=gQ65֯څfHq oĩR>Z K]Wʏ"@ D %|!ɁSN(/i)io 4p,*fiyMLKсݻbNpfZլ`\aѾ2t&6VV/)<WT}ڈBFZzm0jV40|x_.{EGr~i)7k9yf b@dEJٱAYu4+tq嘖ZZ QN\0^FQP7pDŌE/[yCG5M=J"@ D` xe65$4ń%NW!=s[Wܫ0/Ĺ1!AUR"wVwl?/;fPp[w;_>Bvt GLE?ܲcfDthz `ӎ25ъh4zӏˊ?J~(\B ˖SiV*Fe$@r2?{\a EtU&&'yi~+*̌$h38Zjf=DU݌GVѓ1s]E2f"^v yS$M5EQSJ(Ȇ$閮xBr8^Ru=Ց7,WjbDƫg*Rc[T13GYeFO7{K1 PzSz/b UQB&E#T93LݞxϞSӅ#\+e.;P%M$E>% \J|DSBX150b^ 0QaE.R[Ķㄮh",\ɖsNl{%;(v">A+i:8}"@ DvISe#`0\軘>%t3\!FhvPJW! LM(XͧyTVaS%uA6Q KC)H@ׁqe)2.,@4\L8`P`;!W"(vձ k BɺW":3By~[EY|{[~~j:jlcIRkt.|B[u ^z*<䋉ݴM?;kMmPO̟} Mkw77~.5%x =<ԟly}wݱ.)wMsܕܡό?j듙W"&>2<++W+A#/kOҝ]"@XznV}!Pځຬ\]DžّKh !qSʈDS "X eLNY|nOс@' L-W*VpE*x8ֵ]$Uv!/IJ+5D"@ D?&: Ώw5d+9HPB.G$583$JiWWsG.-W R 8Xyy87([`YP TGOMwWE3L{brZ!$ݽ.Nnjh*#}~tǝ?T|dۑ>L/\/jq-O~sc٩g|m 3[&/~cC3ӽj~׆]⪡ -Uwߙb;])]oؒpфEjq:"@ +u}s ca݂xӎ?2Cc,kVt<,U1r-lXGۺ-Ɏ.cݶ&K3K5 yڹ{w_ck䖨\8*= r\0qfZh1wRM̓DGG7lb #*v~lELw%[EOԋͷ@ D"4`؅vFD`Q @u#u3| 1 23t ~%S)uߋB'fSRUd9D"j`L=)N2yh(f&m3:q̪}까8>4匋mDkk{Sۊ|*N@<\I,16cj"%YT&8 D"@!@eӔTKGxrӫIVJ4:7aך-=zo_C@/|8{Dp= ܷ!fK%/>wajeɈlz'ڇ_Ig3צL3m-ұλosgFWJ ks;_:l D, SiQrDXH.ܶ_<00 .!M9 D@&+ B0tOrńL=hv!p$E D,՘C"X."bڂ !bAR"4-"@ D  pD8 .ftasJ2[*Sa>oG2+B=.B- Y v\0oZ>޻:[)uU7w-30w¥"~TYb\D+DeHध2UKO/+PlƇ?pKbFaQ1?JS[az!Ttjj<.0_33-B93=>[6J2~ &q&7,#vB D"@. F'xx{qS`E.l.mUգ-_63pe̔$ku $u&2ba[ D` LAH'WdPD`i1+Y²G5/hZ7E _o"_3JraIYD"@ +ŕTKBk'\G.jSnT\E6*4B D"@.%/E D"@XH.."@ D"@. FghT`E7?U"p T"\\VI4|i8S.D"p>t>"@. Fg"@ D"@9˼zD"@ D #@r¸YD"@ DeN]\ L[TaڶB"@8>睹"@."&%C jx- D P1teJA$@rqy+jQ $IXEr^Tޔ8 D,@.xa\IqF7MFH 0u}> c@%D+J`!xE ,/$W{RmƲ,^@\$gŧN9"@ /uӏD7M@fN +ƖeرcԘ*J K@].%(.%BKWz{%"@ D`<-K D"@X(n<*: D"@ D`\\<2 D"@ D`  N D"@X<$-L D"@XH..ƣ"@ D"@cK)"@ D"@0KD"@ D#@rqRD"@ D%Ln<*: D"@ D`\\<2 D"@ D`  N D"@X<%M)K@z\Ya?%IN+DLA2 PxH.Qbt'8eV-Q, Py2 }3W {pAvĥLqn`Ukz6^| #]ؗi(#"pe/*KR'@rq+?x2GMJE݊5o%EEM]]#g|"/XShוI~}ѣ \U#}GRH n I^,()"@7˻}v ꖦ9 >:]gZ4&:ޠǺ,"/~8֟\!yf"|gz\1Qa;ŐD˒%P.ʯ_zoMdF'D< fy<F8Ӏ%T ٩t&W(ۮ/$B6[@*%5g4d&#RwXI{0!;c33/EohCUa*,7PeEۛ-f0JTӹnjI5[F/ z! v0fX&+U-HZdV+(YƋ1WUU 273;34{ U+XmcC[Ӫ0Ubid7sK?H]#tRG_U-EtS;#<̘|WS}ͷsU\fΗw.6-u ]')LO浖`u }96:p`1PKP0@y),!gV o77 jsVWBt7mkWx߱ K;`*[ȇ*ۓɝӛdoRg}|}rf9cL<ԫ<:]%(4Lvqhۧ+6D:Uh  D"p\dYFT!|N.I9)x 솒?,#E?%ky}ҫیwmu.Lv 7_x$Wac=Q]'DT!KXeMTr7e''3O1#onozdaS80r];ٺm[T1ZF'5q伡]\VR.&F6>%6[EFW )N >zXRSjfדJzF]1 ;.c_}vpC[8EHູju3{L}O|`C3Ԅyx+Ї;00"}~ 9/}Y[h۰_x0U?|lp$}5}ѷI\xjkoXLoҝGn7\ko4G5j  D"p x5(]VdJp+M ER2jFt$,1}M?@>갮Y`*v7cSM 1-Q GML$Θ[.E5ExTO˝Q?d^DNKa_Mmmf6GMD4NX@ayY%+!)M&h:eBm=@NL⨞.gd%7u8 uL0%Y;gw^LHbg'E;ќФFq%Ƣ n=FB0]8ɸ~FJEb0\. h_3 6b> M0Nѡ_OOʎk5&ǛVZpH2=veߞrI-°\9?^])E̘Tcgs! ،5*ռ#02EhI:<&Σ,t K%`W@qR(b}}x^S|Ɣ_tcD[*8b=a [7r&fY~~)Sɤa$n Fwܹg7hfcwvC^{TG4)Z-Wϲ'oљiꖙRR{>߷6vtᖞHx][DUKP516 s֗7<$2:>GO껯nht62;rk},qKP=W͜?q, |BQ @<ԥd=e'ɓ?Y&y P+NaߗٻG֛0*etRVsYoT$sz*}ysV3n]Jl6lۆ9ַulkk۱c\R1 >.P{w&A0| ~K޵ydžu _V:7.~o>>q"O=4{{;}U}gswkG}=ooց=q>"hnEˀ&D`9 [R 3"(VU KPev0Nga,鈎"+*D҇4_}AQ + P]!4`ĐH~Au@EOs2Y2̈i`bxQ/ 1j+g*K|"=ŀx[-V|s)G1DQ%%>;9{RB"qT\]aYCI2"$_+U2 fXP \Zu @Ru'*+ϝ-#PP<pkGRd)bS[̝w-&QnX- tMSu rM F2"O=!@U5 \ K }ŶjYcyWFX1XKwpBiZ}Z dK `iRxbǵa8ㆾ"ж0W]W!&i+7b/B8^ȸW*Ϟ"@ DJ"@rJj%Tքxǖ-Ǟ[x奯>{S=(+-wd۪]ɴҀ۷92"i֤%ZMqb,q}*qﻰ4RqX3l!1:cd!_tju^jgLJe7Y$B0/xa%K9{jl;aZyTge-@땜*LXtJJF҂NIV[>knv97ՕTr\!Whiv(;=1:ͺ ~qX8F(Qmu$``qEB\->ŽY h>qYb˙'Xwe߭\.#{M5Aꦤ{ APAdV@ⵓpuJvÜ0ee2T~49U丰ZgJ+D"@FV2* *f2ܽv5Fckj`JhE  NzƸ@AaށDG/#"z]:f'3)04ٙ1:e%\L!X_M7yȕ !Nқ'=e ֗St5eLR!Ttw5;jӺds\O* NDZń%mohb,^ª6}Kg Ac8Vc"q'y,ʎ3#Sb5ԀYCPL=dj&?jR.6ՠj uɽWJX OD+%-K*EU御gš8/8`;:,&Lʆ %wR%W:))ɐ^+uc+/w2bgs%la< Jr6_+m%D"pY \|0w0=`Ě=[&dzr,Kbps֘AlHN" uGDvac{uiƓo诬q z_gpѲ! ISS'd} Iۨ{tY}=]Iq KL9 g!ǒZN-M<_zi?z?Η@IDATN! |V @o4$.QWAdgKDP\uvv2k`<数T{{{׮][cP8 jFs\Wٕn ƭ6N/6LX\=4 9bHj)at*"ʄs}ĉ=^ $ |'gJ bx1K>t Ywd1pK=_`[qqX!H<b+)y}kXkj,L~CqD?`2>GP~V :wjp)``TṮ5D >w%BD"@AK&A mV<,LuF H9Kr#"BD;0 @FV2_?XIvoX+}}"&ZxYc^s:[^\]况ѶJ[OzZ)6^՛^XB,'#޹oJXο{w YotXe-+Ɋ x5߻츺c''*hm$9ڢR|,z̺vM͍2JJеw%}˅ºp徨FujOS0z7?791˒t4hqCE:2sK0Cˆ;TrNs\;n"/ABmԎKcld2ZҬ &;~ίԓw삦ۀU;SMp0x4i/~݂5 󤃱Wc#X&*{W+,ByR2JX$"@V+/Vev^AUȒτNvl04N JҒLTű L(U\yRS@TH N1_b))- ?Qc 1 cCW fX\WlbHyux\7! iI# 6HFYEsiBo%|֯3/`nZ4AFe!);We)54Ľ9HDE:-"k=95ȣȪhřG$(wDSD"@AKPĚ=-IS<9ӻ؇E)=1 Q:R_>F*e3E]Fe?Ą:U?^/]W Q# oۚ6k!t, }w >>'0X玏w:v?g_=~om]ΟV+4/sS؈93;*Qzוp=,X9\ [p">aÅV$LѩzM*ܠd!|)xBsrlthx!kDdE)MWIe',pFu"@.> ?]JeMnETb螙3\93Jeű}r3~Y醆 3Rب1pR.;czI[͸;qM,c}%o6-NglrhAqfdj`hӚA3FD]ȡ b}`kMiCYvF-EjZM͆68މ#Vs~s9 __Klg={5TcM>މ) y7 Bfg&|,*cP_]<@ҫmY جscqd զX溌m)s @ UU`mϋT[DEMFD~}H>8 U<* UFZuJ `?]D܌W^tʈ\:fрDTDI޳!}#%F;b%rlLlx"B(bcT1hu!:W~)z l]xBaHn 14wͥDD\l/6QJ$WJK_zRRh*ъVJ2ֵOU֏"2H'n[ɨ ٹpK(̚& ;s(qjN*UQo~4M8cj M7W7G5g4fL(۬X\9' Lw7=meZSLY2;WE;Q!D\@3D'r m{bb40 i˲*̥3i|QP H*y'S:DȺ=[JH⦈PygIq`D1je:Q=j7-8FENh #""@ \"]љhé&[h[߲ܽ% O(2JET2r07oMhi^_Y7}꭛4kK=cOlo惘Dgs%JF?UAD:Q*\V(l1n}mޛWawߊ 8$gIb,˒űR*I\N9đ]VHb9*T숢H\}zzzo=w}hF4-{w~~79ܹ$(μӟJ߅޻" ^ԑ 4h(SwVm"!V@)>e*fYO8g5^!ǖiJ=E*OVG~hBᧉ542zڈԺ~@IXFsfIj.l|}΍t21P4T4)|Pa%U#?|eL_οÓ7s~CG%hˁZ F!g 59јldIiz $C 7]+Cs\(~FMS,RsI|X~T\`x<99iLӁ2Cl$Z`&QqB mA(vɟ=o_ąU%rZ͹җ.\ER,-Ro#xGvk[8ނԥ$ *5bK5JQСȊmKX(,1+۰AS G,$:0g  5_JRɗ?]$_K HiA1?O0V"nA},F t`PrFŊFv8;89?3hBI޽\`.2i|FF={2 Ab/{wѢ vYCLg}ܽ;kw>" 1͂71ylr#/ И¶P:z"Rrc[ Jq!b;qQ-;QBz (?i; v5Q+3g!t"eģ"):@/$@c \?t;'JTg#ZS0F췜rف ~dm44,(B}חNzaeJ@CVy0S:i R8}ÃcC(C.y󵅙T\&J`ٰu8Lz=R"("4lS.Aq bvư 0KfN|/Nc}%]^$ep'˓hW*yA)Z;kؤ'ON{4vbb,7\F`߇ F!.d>ڡ<`gI=hA~_Q,)7^<^O~L@qpT31~:Х~?[:FB0$Eo0%kXPOE4P̗BWT*A|xC!n`ɛ/RJ5>>d~nvTqzIcJ3`Mk;Ƨ~i#7~d}z!%Uja?\[%S}]X^{⇗TΞ<7n $Gx`N: Tcxx1Qp.heQV 1Hz=[s??2=< \; [ vN~q\bɡ䉛WQ9C#o Y7ݲsaD0@m_q?#;0]읹9q6=RTr;SBe'hUȀ.hilܱpe|Ăj.D잌C4VD=+fvqg44Aruѡr8u2v lQ]4PBF5Y,iad0൯^]m2G֜Xq""QmCfj/OW\]GRs~_*^qao6"@wXPy sh* 6 @PUə𭥵sk6e*?yj+Hp4@`_qqCC|`*~=ꞛaCC;u,CFt.e#[JX  !oڢfk{c!LZA dn>6 '6^Rt8r0EmID)G?pݰP h5 ) w/FQ"~7ޣf9-,#B,'y]ZZB8J{Zl;d<> vAiREl4zڲ,ht3G&fXF`W=1GC9ٯiwmsK~#a,icF`Ïk~DZfuujFhGFFm荕3{ 977By~ɖnVCĦJ%9̣)-3qV6EZ\p8[ҠXxV6 F`F`nGxya]*xu]qU|7QQ3[GX4F@FGcMd;llav;e<"$5KF`!)A PAa#.f0SC Վ~0^#{fh s{# tqi}!{TDEn?v^axv2#dtK~x![}aF"="xg3ÿ<ý:b3@/!@fY"п- J&?k!8VAk@k8_R6=kqAp6 JtG?hH5)DqB | "M^!(w+Bh #Ы0]ՙq15'.T3[GylsU.u=[w1NQovBSqd2Zځm?b^$N ۶Vt'H%♱Š_1LG-0mwu,7#4D1;vKj(1LI9=+X[_H٤|H^guaaf+*%M4eA;Ntf6˱vMki7C$'˭4'uEk0tip$ T-ܘVHY"e'L3E(;ćG@*l> OF8pK΋Qvz( glظq?G!$_^=<0vD9 hlM~hFDg~^ @8v}< maJHFʭX I0]4V*a\vFA-*ov~4[r=1hM]Wo,0szN7k;GG@Z裓{fÊ:s,7#pvq{~$f겮w(p# \$>Уڽp *q#leK,̈́a┱Xf{wfwAudp߰F % 8IIVCż uIPotWsVc޽VԊvhvv.O5F ꈣ [e6KGF`Ë;w,9#pAA #LȚ}礤QNb^=F' fA0wOxZ"#q] "A5qr"i{Ֆ"f 8WWթLJ(>wWMۍrZ Z!gʆ,N*ʒQ]5Bwa( )m+j:#E [T`LߜČB@T4G {B ||RTmAT3 : K]!(Rbt/rEMj[]l;r۝IkRֽ l/M |EARBΌNV۸``(;D@mo\t; է[zs&:QibP̃QP֜3q ɲLMb{akniz#Zظjyp"`lEz}2C9\0"dκI)}#]o‰q TLсvf5[TK#ÚR^< zja_OxΥO@Q S`b Ɖ5SV9 7dGӨhU[J)7hxL," خ礂)GL Pt55DU(=ɚ8"/CMq$Anx ~MR ziЮ*ඒn(V졊Ȓ1b, NjƃA>ܭuqԸ0BrhZ\Unw:˪b( 4A)_koS:bj+U7(k.ZL#Y=Œ5&QLGctβ:lM9cXJ҄,A⡙*8` j-WH)Xq- E$r}/py ts丬iyӨ%t4;Ԓ_(Oӄ~\^@tUjA܍@B Iմ5EZ*LRW,|3n&Nz^rLJrŜJf?gXg"." 5T ( ~SYx^^Y#'#Wʛ{-I+jnF.8NrS%36.@]:u<#H &9]o-7$gM.L5^X\jˈ i\6MRJTՙjVuWQ3f2*0 m̵\NTlQ^H׬\} .LMV Ә|42)U}@&ԞoXaBhUEp]TqGxB*jF-K}aQV*VkyHQ;܊98Epڡ##0aD`w;82` ` = Bⷒ LՐF}8Pՠ6Wk7ID^[]j-/VzM3nTN4~36 M:|mI*!K4[<х J"1RPIO&.pfGkQ/%y?_|]] /HU*fĹ|rhp+JS, :g{r{]?}EA+ŜJ((&:~cUG*wus3Ն+sV5E)0<.mG] i;<@?BF$NH4ePBrөS7KwD91MǠ QܲD͐GUZ&n3Dqy%=d|`F7]EoG08AG~7;a#D#=Z0U]T4nZn*IUPtIkV-t]RD1 wuwۮ/XPǕL֪ߦ<U_P2 F- "FmZ"I-ZN E:u;:ZRD0ũX4BUeaEWŎY(b敼eXx%ݨ4k}VISC =)h%UWN@7\ͭ#:e䔀\mя(L`֩Վ"!v{1 h1O]ZHUj?B ˖d;7ƶaAV@l*zS+Jxٯ9)ftC]°h+lIMRVMD1ޜb)jش>vk$ <٦,BP̢:}wNㅢQQP/X;C s\QHHD8ds0cF #t d}#FNj# lN'0LM(/΄bJa@ ^Ej^6rf!'lQd ъc.LSW~s31ezjkZ+5"+gVN5@״nLVǦ_j");r buydMM"1%`YQCJ,&R7U($Y >ÔFLKjxUj3\[@+O rfgbm:4ɮ:)+.Ȇ^9w O6lgxƢ Q\6E^5`:Qk9 㥦Ff ]MfΐZ'(PFFW &d00P@ 7(_j6!'~Ed<,_k']-utr%P3,)t[> 6 :uC3DxC!lD֨غ%Qf;rHFgm5dHǾ<.)e&a3n^F`^@b/"81C$!<xt 6 MMd1Zj9뻝$x؛nHAQ$MEv`$a,GZ UdJjC#Df0@%K0UTBIϕL1A(\=]T|!n ~M+cJUvDZ4P,al Z ?B W,h&Zh&B(Nu5gbx99DV A`Affi7߁âmǒB>BU 9oI{^Hi"Y Ba 0$':d P(+Pifևtu!i)Hu# MM˱ÀàElKzS,۰5_TanBؘWa*$!z9y 6;jO265OVQQ6!0-.#0@"WbGQ ֘4{ÕfFb?0A")X:}cPyv^n}ksSoSA$Ԯ4+ gT@hN K` @t^:3ܗ7m)љ0X@ܒ |RtzΧ(n֚fH☜Dhbᩊ_$Ү'X\H a+x9ݲ'@2:':J(ʭvQUcf?b !tBOMfE]T/ E`ZT ap%Prt)Td$Oޝ P!KG"|]fW*}*E4&zS[[_,R.b гb͗0ҲY_TOmS%Sˢ'\371幁!E3P(y2" -o-& 22 iwp #x!2%"jKRVf;FSA".AAe #j!BDQ"!@DPI$H3t V]]BEPA)E*i)w!lqep[-K %4}dI`lS Q2a m* *MD Sktq9Am+!#CP8-|Lɛ2"4(7ďoS|.+peL_$+Ø6qONL-vjuS״c̤iQt¥)v]uVƎŐI<k#.[̠P!edD\F`^Eb,x``z^TgFJ>M6Sv l(M98GO 4kV[`GsrNHHj rI:ԎL9{0^u|6 ^BnU l `OpܳUSkHq)-"'Dv9{hoNIF(p45sa5HQAO :zu0w{LLJ]7p`i] {aNa[CE4洓RT,j{!%pkMYR5<=f3鉤 6ˈZg)Q@` FxBڽQ5"rizbw8 xmYA(WPN]ֲes[+o0#L{lBy8AB#N \*JnuCj4JmK)bY:`16tKh}`jE&2Q"os#L)|V^sJ*dBCs&*Ǿ0PQLq9z­wXHk@PMMRkA H V| jGSn5Bz^T¼b$L'D,& ڪg:AQa@*Ѳ^R;FGJvj\ډR)% 6VjWV) F`F!tM>R)-H@n]7@ZTqEft$&1p[HɭT%>@pDd@&B"X" 8"<5Q Rޠ\Pv> =\&pw f%Wq"}`s9Sܦ6dܨMmdSw{8L+*/QԆ66J[^[JǻafL.R]jmD+jBQLDb@t+0m{766w3 av)TYJP)NQUtA$Q[OBMF6v5DH +FF1kF`@bOL#8{ȉjppL.7tjkBiR3gOHL{S3YxN&EKy"' RB{ #'>4UO#㸐MQ !w5qk^0pd Evea`&#ė`b"Κr6iR~F.Au.;' S)HGpEK. ٢fB*/[&չV/{⴩IgMDi\F_&S; A:1 u6M!ؾGyK4XP8Wָ̕C{wfNU<(G$YmtR1\H4Ck荎#p*=xBD#p`x&Edz#Ym<lV*sTfd r"CjI6[ y @IDAT!M v16)B Ae6)pGhOU*6=OK0 E5NYiuA8QzKWIF Ƶ*l*0ɒ!>7UC$Q$1  *F` ~(=lZit)N+K HyE7*߇۪~HG93C u-ofLnF >#5 }s`F-.|h6aWm4dRє֤Ll؝OT!0Ն #gN=yK?woviWrڋ'*b/!]&E7/Gi*>8`A0TqCR ; ~E,EK,wo}ϔ>X4+9-P/Z&熆(ܐfS@,V'wѦH1ґc JHn&25/%3:g^Qrm,sgLɖ* jXa]4#fȭkSo;%cjIjqkA;j e`V٘#dsH{Rf ͔KIbئ.c)VMl5ڂڴ d(r~7\Ĥ!BbuHhnGà8rETw%r4IEDU*iH’j [Bڥ~U9Nˋ1q5mXV \Zռ@_-yY2fBjuLb0_0$$ct3ݑ@}\A*cBwy'8#0#0]iA0L6 q= ÁJy%xƥ'B>cQ]u:!l3XzQ&wDUZBmlE!pI8GpJ۠qG {xR/WF\6ҍ MrT aQ\mёbi.==7Z+]/: ٫)C*=5 ؀_2[jW|/t?=9:9X[hk3W@d @"lcǔ|sOҫGApԢ5"b11*wjV`6;}ĒߟGFJ=#7u_2\\>QAEV Qƍ+}`sڳgtGΛz`U"%&V;n|%!<%-b׺`%Lce=Gҕ0ިfϾ2҇gS֯Y{D0-;ldD#8bnBGsH`r1`.c6-1WdZhmd6ר Bip: alx8 d`CC1M,$#p( 1h}-Sl.bPGv:v)RC<,LԑF" Ba =])jg@GY&h"PJM ?,!5l5Le%t|)DFuyI ؔNQWjL9mI"?8-ve~ p :"۩W@.p(k;a]"B9Hk *v4B,؊sjQd+ %.5diM2Rı/zJ)c*XRB*.% .zݲ5$PYBߺР|ԈZKO>Elё#)&y]^NvF:ʡ@ׅ"7n 1*궡aIo /vV+@6`X=+BblY; GF`CC4Y,*#pxgb_:"E.Ƒˇ |48CȤ=0HE!}( 8S4 gCKEMhMHJ!A-11=$Tu eD[/^a!)k ql/H2JyS‘D N:h-b۹\7-i HȘrG1RSSmm`pSf,D4tI*Ԃy@I2!n/(8RrLh"?ȶ*C'4Aj^t@V@M5ӆo{D5/I$+@e1m< (BT2W(`Xɥ8E0J`J$4墓p=EEՎR)gW#ݒ~G Ppe]myD/+jOdl,znj uˎK%ݍV $W5eXjJn0@];05Cvˀ-% bnҍDJ9Ͷ4\F`E@|'&&6Hyd#PO2&mbC"gFPJIOo{wD>)eZEOidRZ|՛7G_X>D~ ݗu}0409\ވ5RkY0Rp8@B~9"qxߺµRj>#|8[NM8 Z DIF02$Đi 4+_+)PK9ޅ$rHJB?wg rD$V#0iTm,vv4&>GEAIÄktf>QXj>G:_8p-#Si  D ؁Ϣq͂0*Y|;#;qp9;^IIfy]sVo쵙d*j|L9%!zg}P@8jg]~f^{4_|Q)u#;fÆkیAGfGV*sJd6W!R/P@PEĀ(G!8 =T2KȊi0@N%򳹬q'TʯR8(J#+k\ bIQ*HZvlٓD*i@I#|uAXL󴻁)CZp"*os_ Ju斷D۹V6pIL=\oqvgBDFZe+``׃ ^dV@k%HdgQg-B 5"HSC$RDqJL~ zIS…8``X4F80]%ܭ%ۈ^|+*`F` c`_aQPU]"}ravB-izێU9Z`FE."jt!, x|\ q2#0#`F`?HȐ ##0#<>pgy@o#\G0#0t`F87=67, SG0an`F`˳CccCCa 7w0#{FG0#!tW#0#0#00]>0#<0l#0 NqfaF8an%I%}XF``s#0=(,˙j1Mڃc!Fy%gF t 0#pEQ\YYq]WQOgoEQ1쭉0Ú{bFUV +ּW'0 0 23#G#`F#r]Ď)[#\bVD3Ƙ؃ 0bXHF`("vgΜ(lBQUM%#0F1#0]])F`F"wXrF`F`F`"|C!M^qw,9#ma7mۃ9s2 mFX"c#g$ P[bzXF`b` 5|vowBA_XJ_0 Lb ,UxDd|:\^^Ψ#h䮛ኌ#  rhYmۦie)׮][]]"o{a{w ٽN~x[;<2F``r,! v,8"e@tl%S*K_8 + 4Η0-nMA{az =6<@.J.0A|l퀯gÆKFuݹ91XG wmz{\^I .pl#p[=@)3'<2]<˂3dž_042GE`d@e,`~?tUF@c12H2ʢ?[I#lL"{/w'AZZ6\D( S6}c0|mGNXZZB=NL>4w o1y0}gJF!첢0t05Ly!~dED "$YR$Q`1 laWlŃ5I, #l| +™E+ &L. w/;'F^0]B|BWj[~EI1rC=3mt%޺/+|<.4#.ȊmJSG<`] f?~|``ŇH_3>Q}u[עq:moQy^RǞ;%&% +rVn=$?"*`ed1ml=ܶPc,x#p?~[ 'FMVQM ǟX#%/uA4J*Kr܍V$~FӤ8QA׼:WO$i{Q}BNaAdTf6^E,|y#x*zw|sg~GrޯTun^[|1NoLØzk_J⋟و+]ZR~G>Si~FM.]Vb<.bzEgduqN]J-|ՎS0nV_`oͯVWЍ 8}?3,@I0; @?#0wF❱3@+hvH7Ǝa )3@ǰ9qOC\ 7;7V\L,e"Aѱ(A8[t!%a{CNwOCp&bKZ 6]K?*HgiGmWz{-MAzjJ`(tM>4ǘI3(Hn{H f徯]8τp< $[3w^[ VWќZ_³Ƹ񡃍,.\5>,~0. } }E` B(N] \onRwH& Ē !i_z{,,ů԰EoLH8G&88PU k3#.i8BցBaEJcfyEB6!Ybw5Z ZnI:'}_EmsEK{nkpVZv7mAA0DKK9#2"49t+ #0#0]&%~ QtsDR t1U#hw62[_ctx%sx1דR?Z'3?S'"bwr?[hK9#;?\?_#ƱxG Ov4J uhĢPb0KcQm MQ[Q7^[2UO)}p^rЃ!v_9߭M-] ~P- (S_\N/y҄)hJy Q<7qd/t9=s|۪"ɘ8&{KG?v`Is߽1_2:u[p^`]4šD@4#a80̇&̟.}~K?^|jx<_8oنBD|~E/5_ksdW,#i5: |~+ߍ: P. I40LY5U! ۡ]|{;u]-$ͺS<ߺ7^.>N?SOM?~P$CNDeM¢/EEآ !r:d} v . W_{&ILAq*h_ ֿsO,KUaJHޱ}3tĭ_/ݸ8 9u/@J] JBqX塯~snOnlޚ4bwW:@o=??O]>#|!~iCFZEԹ/yחp-[v6_k?_ .aվ_zG(|?>9t21XT?tK7tϦ#ڣ߼5 6L/7=|Aayh@o"t7u_FHaG#Cyw.|JboUL#_56%VTD̨u?|bJNWb'ر[! p3#hH{}p{4'xwJUG<$`/AJ!?zGJM}63 ޵{ ^A_+VʺRKrV=5X +XH>CYx_![;,;el {F xE/çCީNq-̞[dI>;mL^c9Ie0> qFrwݼ&D+s7WgjG ?z`ё #Ҧ&4ctt[ARw|Oc.>GȂ'V~C7(%>Z͓Mz;?Wok`SҸ) | n.^}u~ɹa r^1_<).Ucξ\3CgG?O~֛}i1ׇ>g :,0\|5ڌ~xY6\/ȫm}wх@O"K_ŋ3M{f|rdpTrSqRgko3oO/Hq/ g/@Z}[Is rV㭩Es:1) lroMʗ^Yj$).2E10\)09i6ϝ=D7_~K Xٛc^ 2˦dqCt/YoᲙ\&[ֹ6aN.}~r*UncʨX{7?>%DʒD)՜Յ6 kưbŰ&ЕQh… Ȇ .l8>E=w\&yǮkoO'AȹuG/\^hO|]ryI5lrSsjݯMխ`ylclA`cn90 !b篇 f@48<\11_Ҝ廡y3v]d/Ț 9H]ҪJq0 ]r / ry8/‡0.Eer-'2FQm!Z9uot(x_n˹l0-~Ə8`]S 4&5p<ݫ//-M-/(5G bEUYMݐ7?$P$Vg SώpD_x(C$L.OΙ=&:\.OiEsMK4=nD^tzR@uJy_2+yElZz 8 ۲dUpЍqp d|aNqFffTCܠխ,..֖m0EE}wK Kby(MlKs+=WV aú4 *BÄk;tc|Ӯ[N+Hjįs;k sS Z) IMŴӈȋZ3I[mŜ ٮɽ8f̀ OT >azx&BHq6Ɔ6#"=oSw!rY .~Dfe>1GSu|yP V,b"{a0 {@d P E0`8^z2_Jwǵ?}V.nhFR@bX( @H#e< :2B0ʽ F ZQIGkС"Ἐq qEC#%xzBBsa/41?7+uQRpjxP=Qu.\3xOrM)r+8$Hkj3M} D"a1Qke{{EDrDR)yaj³+q1^}s?yhA]n{x?Z|R,#}Nk:?_xA>яp=~gedl;j|vcQǎLd GLяVTMZI9ט gϚb4Zߘ|}7_}F?[y_KNnho?9pb1֪۝kO-7v~Jp//ҿ^o9> aW(Ę{3kÒ裧O?w VlZ6`FN OT]e ڠ=_r>gZ-].JcDA6<y%3)fX=Q$ C!~`tǮ|LlG q\]f\ݩNt?EN$&D05OD@ӡmF"6f\3۳^X*AGPBW OyؔnbTwM^]p] Iй.=!ni SybVN<' 䵿80b/PNc]1j'mVQ4 ' g*BDAzq =hLqڵN}OqFR&"m "!C.Tsr~vBcj+'o !R9i5H;V90`SsP`cg]߶6wgf趃ub+ 9N:ydQzAW`X8#X\XT%B4v!Hu/l1n;c @Wc]5 _sa,paey R 3 C`#>$>1@ҜuSO4̏gqfQUo= )-X6VEd 4E )R$.({+w󵡏<\IQP:k!%nk3v^(xY˷ FnN^eQݚ0s>w}]]D.>C?rP."ne0)@QDo3&ܑR HFj+ 稒2@}(o_;ZjHP .T ^B0Y6oS9_:=#8}/>hF=_Kwjz`Ѓ/\uy$̞o k(ږ] ߕ#pQɋ^}-~B<p $dH\ߍ}ďv{󵩂|xL/E^FZY*6x=E<+RDʊ`O䔺T<mf ܁|^,!|/NT4%m6urӽ,9Wd4)F"MOIp@ ]".bvD\ YAu:$e~Pus(w;\Tlc0 @śG qj+ej^1FAȃݩ] W8u g KbS=A|' _h-sF0e2Tӗ*`Ry9Ŭ1^{VV^sNFWKiH^ɒL/Zx=ޚzvʽ"+GGQb;1K'3D!fCf*M$pd~A99#h ~x~/B% ̇V1G.~/ !XU΢!]JWeu$J}9EneٵͷZNj/Q.oM3ʉtHr8Z7.)GnN?2)BG.G,1= g8TQx鿻Z[րK9!CGP-gGj^佌.ExƢ%ݍz`"Rkx+I0Ox7_Kl|BYגc0!.I+"Coku&ϭ.-*94D [z̕>tQl_蹼 _b/ȋP2U=P!^ktpQFGzF]<5g߮-{"ln}vM.ls/[W}PQmξ:3=){'WG@SfC# Az[&C|.Ck{vW&~ "f~ܡ~':,.<$% 1t6Vாn&ɣ&8V,ڋ͕fdc=_~ԅ]Z GQ#:.%g_"⾜6&4C` },hj6ыyI& q J$paJpTʴ'\ۡRgtK| buib1cXs}w#?6Un!]U41Cmgrin;m.ˍIVzClt 3!/aeRs|𽂪/")WDv7ٍ C!`ܩ0xw,|oW/Ib2Izvc?=S}}>]FTkmo5*7ഡhs,o'p;_@IDAT= @/uE-cT|щ~ph&<4"lbS" OcwgucO9rx?ws } z/zxj"9Kv%!:~JL>y߱g_owè|/I< ؀r&yy0{:cs_?'?5xf,W~_(Ҷr(j^ǷAJ呦٤ndGiKlW-@zV5{o&IFC9|׹j KLT,Lu@>=tw>{~ s7m<}?Q%qͼ{Ւd"³r=V *+>݊/ ZBN$=6xBr|&.eI =<uS$kLc C!>`t}x'_e%Gcc ]?olEE1r\d)3K'Џd8*?FG? R4ʊ" T2*H L椿?OESv;sQEUV#1\#tXBU4Yp7| g.;͟_]\]Z9釰`: D9 ڜ]+wcߘo|sKRg4I賅`]]¤.}+h4o_~Q_ wZEJjx!;SN J}|r,c;3gSC9):Y_ߘ7v3Ɂ'W^q|ũMJEȡǬ̯|i|}Bs0e1q-T['Y=y*vdSMBŒX)yg{db匪`D|䡇zW{%ב}s@b!RWC>5}genIpaj 2:o&f1e oϾ pN[m-X|B!dЁsWj͒[]˒f` E&$6 :l#ӑwGb  @,NA Ɣh6ݻ^Kzz;ak 7;kw'FZ("a.9|k׻s5i`Ʊ{n~x[(zY/Nt+*>SNf!DpXf0 Bx7"q"PE$aJ|IxBK[ N@=$Oֵo&W./DB AZ剃{Dp9(UY+37,dCf)sMFI5yݺZ +︶ q`;n+qcUgFֻ|LLʈ36^ %L3tf7^`DrUouo#թʠ!D]V;dsGS+ >*MQ?Ɂmnp&LbV cp]ۜ5]߾ූ<9_EaJv '/bw! +RcsyVA ano=ȮV's_yAYِ/u4]o{cU+v[l]Zhta9^7y5D>/m6>Tw'Nl%Ụ/ Kҧ)QtZSD,|8qWg >9dG?Ǐĉ@^C< CI,BQh iJdV`FzL'wWKmyhQ{ϿE[)<}' +*d7zS_ϼ_ݥTDclO#>Q)v_WVWW|>_T`uoFa.\6[/q~y1П2sG~8/d[5{q-V;k%ɮQxٔ`9]ڿya]?3SOq hX*Æ!`Fwk+J}[>}eG WA:τr_(IHOPE26q.JDxUP.&9r GƇ SrլDNpI1ɤuvp#NfȈ?x.ŇG;^Բ##vS HɡiyɻZ7}ZA2>ܗSU"2 C`uFG֒!pƜۘBMt'd!hƨ;*h`|a.|fM |! |A|b!:L [dk52#:ڢeQѐtQlyQ$6VSEorjQ(8j yIR38&+ m|+bQRT$*x 1`` ]>1 !Fh gaC6 c}8 _PM{kLHDPÄˊCt׭H鷟ED%<?X(+ZnR[m,K(eLc7u_l3?yF Vcˮ);ZJK,!|-DŇBL& r<3)Ct1uIă>lc0 MFś (!fYsp:OԭM$WML7k#>N6vޓ3g~;l?qz'^0>Ź9W4X[c_7~ϊe:v'V;:~`(AO^E ΞE~tB_S ;j(WR:DDyL[/C!`|X62TCD$:@8"<"SpC|YvKߟk݀xyèך"}w7\;t/A3e8?0_B5:I1 ݚNׁ!.=AxYeG _V5k*?DE|(P>h'} x#}gy+`0w:.+ )}W9?u߷ = CO U.۹GWtw@/ԋ,Q

    `t}.]DC葎%.bvaquq"m?iVŽ8yO!\, O^2u@`_PZ=!!# 8ݞFV4+j52BD7haO!!fS|t݅!Ȼ3S >/SE0ak-řin. `+cU6oD^sv!#G̺#m`jm;l`+qƑlj Z$d(s.'*#Qe2}`c!Hȇ<P% )~Ѩ_ B88A%`i; =BQ H-6x"Ж6>2̸H\>"}u;b  C!`tqF;tZ^av;0eQA6FAx5!xYS=^'еr姖B);06d`p=x<2^͘t=ts*'//}pw۽w69ujkqfQ-V% ޸"`9r:AgmFNKSE.wfϯHG۹cBPF,uA~HkV-M㱗E9n( "x !w6a* "2 Y[6 O[=s!,,^~ຎc+2 <Hr\ YP>9nl^W]@jH,Iz[A-05 S` pnCfIxVPA 4.C&&_h!b1!1äܲ ̍L- >֍ =Y%/)/KT0"œ~ IHnO7 LO&.@Ya *xR{^ +`2Qb &EY Ji ]o# d=;8^T|\S5𽔼$^yCz"**is =8F]Ov!pJ3+}8&2CFZ˚pE.uVp4{$9dYU!%TVMM/Hꀨ^ns>IgZsԌl+ȅ#i/ͅ3pu ()0Z)vEN)!f^iAo5]"v I9>հS3p '^Zw;\p2,%f]˪My425M9xdh2KBtڍIOT9^fjwEGIPR"h@rC(hp rzfx̙hZul8[0ZeE=8Zҥ{ f'/@g „3jA%ESYwuձ/pY\aʣGNCzZ}2VS)Ty/7>{WP&C!ڽ'/! 5? 8՞v1+Fa5[UES.Ȋש! _CSYh8^3kD`QPѐ f VzdKuu>TEQ9)u$hj{vyɒVj+S[{(͇e5*a/͟fKfzBkl z7bt3啶`a,ny g]ESh%rVm[[[ܻ-q D\#P9-zMm(!L|]+duHHvz) ϓ/FPZ !)%Cs^/s(j8Xk|hZujeȪCGS U<*DxtAO za(Y%ҥ_;%?Ykz{m FxpaU QRԷN|7W ԎTM޳gB 304ES)Qgi@29 `}ߜޥfʙ>F<\ɦ$a.#)QB =|d$;UzKg7gW]ܯ3f9P\Dׇ{g YE5Pt X6aəz# ъHUȻI/3L $/E )ëP3#'ɪaH2rdL.Tg=>D C˕$EPa `+jf㻜?Xx##߁E+G-X(!Mb#" I H`ua,0B!u4%U%cXvypfq':,gMU).Q,vۆ&Xf lY[PeYx4Fd]dTLMdoˆf 5-=~[O/2| 5Fd3֐E0yFøH=28T$E%G6qÔgSCRa$m5JFK-1TB"Ҧ JV HH]TJ"[j€ZI͚wV4Ф-@%Io 'z Ռ:14r96M s(B,٩Eilh]~'R f{HfPq/U|i <5vEW);pz ZT\ԉ"(/ƺ#pq G)k*L A]EZUHQBx4/ ر}ьfTy<@UQk)uC\6\!W ©i݇ ,L)KV< B6fVWt.B_$hH~Wpeo)4AC+܁,Hju>AYgsu> 'p cK62 flʂy $n`a%(REд aPW#d5q!DE LE4+7Q) /Lhalw\ Z Oc[%b5 R&7tcܙB>+&-nkyYsqNi%q$z`oӴOB]C!`&0xL$ƝT_/=ba I)JĊo&y!νn36d!N8ԎעS**Qt6N֊,D;Ԫ+R1BLΥ,3pIŎ| 8{k >ш9yYJkkr9WrGpCO0!oz0hmN؍m{5VOe@1%g,Uw|ZZŬ`krX}J̴tkg")LW$ ܣlUp qNӎeY̗`d9YF0pVGr"•7c^f6lo ;yuVO8-^J%+~ EoryNѶf^#hH4‹J!G)]V=A:'2G>]BnS.֐%aF_-P"u:>gNA|7!T([C#mI[yBY-4ܯ۠3e\j59?9~NF?2I !U9:rEdղT?tչi;CbqgYo%9bIsN! 6X  JV*agWa¶@S,Q%mjEvi#k]kPÈ'@rq jx=J*+-VgҖ \ - [|n8Z){[[9tr˝pkFʩ{,i1|3f^+B)ixq$Zւ$SCQV{^Pi#@IDAT1kxrNA`XDTaQ ]TD3NTUglDžRd-8%YTh;,G @0DIɢ& oJ>7C,96,۫ꂠ`0ΜC}u7Ǯ.f+ X4bɉKdj4 ڂG(\yjg?^UjM7CBԡ=|fCFDp =?nE<(3&a]EBilbךbG(s^ >e z{@E"jP,hl^Asg^Ō!*HtH鿕 8\MK2t-0).{HVkvr.͒,ٹQ4"/*,r"@  }7D``@†Ü]@KEfʠ1]#,ΐ40T24h%U4Ln?gr+fvK939.q04DؚwĸD/Fjʺ*$X2oמE$㜋:MRc 慢VޔDT"g m,8B.MM(XنiF}%bQ5ױ#s:qmUJ9R\Y֔y 뻍N%zڧw2Zְ4Ym mW+NJ:2D>0"֎]B(@* AxoUa;DׄtOF* *fKa3ĩIrmB[$K/O9CpIZiTɸQXSdBhgC)(*j-)vs2MiiBI3-83A/SLC!ʰ$3aT9O=v*hfGds:2+n:d[4-Į]\eB FmZhY' b^m9c@'&xC&Ƨ Aibnx)Ǚ"2 l剟m I>Y6uG;e`" Ƨ0N!/\t[62<.`̠E*L6b^>la+ `)Sglq'1s`J׽= O*'_Ji#e  y > ؒ9<ߪ0L,D73P0F){JuK]ϫuD>`2Ka%v "lV5# oYMɕ8͞:DyO@r|nF`>=CJ5g[~v ,qfAAuA8w:̂œ_t,r!W׼9`q8qFpFjMt~rȳ |\ CaE9.dV45&+z5Ģݚ9Yىpb6TeF3|P‹8c cV@8Lv1Ukpl n70u:Huq2|yx8r㼤VVdOc [b3gL/WK;-VVdxʒ<-5+`EXIaxfZ6kZW=2C !e3>ŽjK($~Qϙ2Ty fk"jzc@G%D` NO5%9F@B|'RAnG?_z{4yV.bUrM ŎR8y{S)?EL%(@ZLfwhlhʉ\pcK䱵(!eQc **CiFސ7(~L稀FS plTeDI :-()fIu&:Ix=9&>YcHӕBLd\QEʥDlJɶ]p[ j: kMNٰNULNFooB^GQ#/b.b; D\dޠpd:|I`n1K#ȺcIɠ9~ԆL<?X뺪mQnmKo]XNm7D/ p/v[D_LUEsmw G@Fh鐋x"MS Zۖbs-vu!4"U,䲦bnQ_B>c¬뿋ymzU`w%4<%etRK baQm6dZdWULdjyrcvvZv yNf5śC{"@XlzT(9dJBr]s9Y5#SCGNhƄ$!* j[fMX\!VuO=]mm&tva0 ӭJ1C^V!gX 6<ahֆbǦXL4"+tȢ,fGEXB_i63˧X\Ag93b~i-G)cQA펏U6ep j#("e&9PƄLV KY{)m6qPj,=#@@A4D\QjþCو)o%y4.5`ˠX"՝?yЭo67<0}SSaS6Oq YT8bJ]gF8cm[B4*f8099wkQe!06~7Cٶo>]^UUi:<XWȺN5 RG50encrtl@v'ـԂd0gb6=H8g ;zT"! [ li!kw%a C:~m 4*Hl8#M[A9yaؑ)3܈71~a1)ﱌ#P!M,@ q.K !6 u"LC"f>nBU"*!Sҳyz׼2lAEW,x&^-6퍕(-Y߰ڱؔ{o{ Φ8C= QjC[#Y9b#93F,qM|Ẁ7#epF&*;^ qÌN q^oi,0`EK\fB|-k^*TO&=ұ^=ҡ_%0y۩N.!4e.%lr< ۵t–/[dY}qK36"@ |7&%eq?;>lt}ېrT^ApE j0钺-ַ"#nH>( ӒU3R=pV_醣]%jQJT\sg_vݝV`Ke*k\v\,nKd]rjQr=Q6B5.dL D@$((prܨg+fGDRJo t?쾍lݲ IeJyB\V2x͐f!߻ɛ5冖lh\.uB^ri{&rh^WtM"[67tx"@ktPcZ!wNA1YzPF|LJW2PVc9/藵9Zڥ5R缷?/tVګRe4܂f|Mt=dIK+ Vu&=5l=M D x'D7%fvf]\bi>NYw"c"@ D E:"p@"[&[UI"@ D/4\_ZK D"@NH.^'t"@ D"@"@rq}/j- D-ȅD!D"p\z,&"@! @17_ONѠQz:eV"F9 "@ D"@"@rqmj  D"@ D`4ȉf"@F eKEQ:C}Xp5NPx# \|#ӱ D`ZSH+A!uqD"v |j DT"@ D"@6&R D"@ $@rq8 D"@ D`c 1+"@ D"J$W "@ D"@6&R D"@ $@rq8 D"@ D`c 1+"@ D"J$W "@ D"@6&R D"@ $@rq8 D"@ D`c 1+"@ D"J$W "@ D"@6&R D"@ $@rq8 D"@ D`c 1+"@ D"J$W "@ D"@6&R D"@ $@rq8 D"@ D`c 1+"@ D"J$W "@ D"@6&R D"@ $@rq8 D"@ D`c 1+"@ D"J$W "@ D"@6&R D"@ $@rq8 D"@ D`c 1+"@ D"J$W "@ D"@6&R D"@ $@rq8 D"@ D`c 1+"@ D"J$W "@ D"@6&R D"@ $@rq8 D"@ D`c 1+"@ D"J$W "@ D"@6&R D"@ $@rq8 D"@ D`c 1+"@ D"J$W "@ D"@6&R D"@ $@rq8 D"@ D`c 1+"@ D"J$W "@ D"@6&R D"@ $@rq8 D"@ D`c 1+"@ D"J$W "@ D"@6&icvzE D"p9xi_"@:$IVDgH5"@ D`]&8F񺻭˞PX"AX!NsiMr2`ѮD"@H 0?]ƟЍ"p$ Q4HDEQdYƟxqH.^1:*H DuLI68jju: #I1SKMQ *cPu=dY(FǮ!xШ D"@7AhElЊ]}5GIZq}Zj L놊 ΐ~NGx ؐ\hTd5X I)^>*K D\> ͦmgΜ>JrkXM巅J"pu^}{bb.a`Fu xu rIDPͦe`S <'j DUxƑVb q |U* D!0h(Cx ngxxeM!xe6Z)O3AD8^\'ݙa \Y/$sI%nDYFDI>bc!"@X:Cɹ9,t+CCCVbh*\Ju /G%i<79[d ?`]N DƋPG&>A%D` r78&u\A;I.^SL9A~mU|z{r٩=DU+&jGxoaS/W.\ds]?1ǿ랏_ne$PO D\o jqaaCIdZׇzG5#3#[JbY&@{%oeԞ>wf>BYDŭqQqʴ |;g~I C̊xAO$͒y]鲫̣D"@ExW &)݃&D`=M G#f7$(sHlq3/r ށ#4x[UlC0}ӕz3SMS='ba˄HyF&HE3hD NRs D`v魆GD2 Dtn'X/0d"/ayI..qü$^=+ɓN`|w{g!y" Cg`vYu0#/kZ\FcbWQŲڮKt3Gq;"@.LFA8A]=W,pS"@ܤP}XO,w^q-I.^ Pa.U"gꇧ{b,r! (LWoCSxRMD"*xxtA$by/sӗUv&D:3gvލ]n$:/ Q[6':5662c7geȮHqoJ 2.8t}zphfVSPr^bMȋw=ic7ѽYIVM]fp@hQګM,"負Ɉ H$yAr9 $߸`oZ]>4{j&D"N1]R%n{|ix[1\B.+GgN?sqd[Կl[{G%{|0#\3h25!;Q,cǶt:jҺV7g7+(3iOUI D\!HILetYZ{b\ ۱NA]A1S׭_<=w}GF;s|9RF\atFzj333ĝo߾rgϞRt)]Iʉ!ocrFc+(m+[\h"{,;Qmfy~5J a.S g )((h' Gyv>ؖF!Sa-M\&_(dҖ_{{ zo}ˀ, WQ.⨸{1\F D+" b؝: qvc>$[R8nVIU^o)\Wxp*a]!^Bͷ}_ObXrª$н8*D#V|"0{^{VP#19uSGtrpvft`!unPG?^z>;WzF _ڳGOӾ}_צf~Y)VKȉ}rɛG>usFü_[T|?ӹ3J|"93u+&m/'CdM窙`pM ,Zu` DkAާH}& Qwpye Z =רVVg>nm;?u@u?h LáSiW|z|׽=U(95.ZT$^8p"ws> D3 W?2$qo$ :t( T65=#培\q~0\n(٩l޵yMLSw=:5>k f^y_L9ux-ݼMn<VebTtU:0߰Э/!S(ǛIpӶe|E;c*D"p YxU9(=<+(JW{D Cnfl,“tkb|Yuʋ.,8N >{ONNW^VeM Zb1IPc@J|+<(ϐB$9?61^8>Q >EzEt,A C L ͵m9A7xRp@$7%byH!乤WTҀKv?e6~u{w |];@V/|~tm{|-ě]`7f}e -?[ |:mQP?-Yz3yGqdL nܺyPg%軹SOlVk=k\y1?}S5s}ϛ=[wȝCcEyT S'}/L>qjF>/ f6J})4h{ h6xv-/ <]4 oeTI..qvb'>ϙ ghD/|[GR6}IR2ι˅8V%QΔ%Y-$7?ٕp5E|^!ҮJqUr5ɔX^8ڵxGNqM8ёBrr+*f O uӨ+w⟤U\ D Hl Ϧ ȇY2\OO=P|{?YzQ/sҌwANmڭzgeĸoU)Y3YWh-VX!|t4N~i<3!gAs{Mzzς BN1sl~z;O?Umw"4S41Xʳǝ ?T0o+fŞ?={ޡ"ǤҮ=jXqUXYGcdϙ;ZOXBgfO?vp~3;˛qf͹O^9jz}QY͔ʪ3i]CE%} togD*>}vE\UJ crtt;;\ $ uW a@55v]Єzs /iٌe2EԪgwI'+Ha451WPsis:Wx,!!B-8!B.q#䌜;gKD܁[]p(.1`0GyC"@ ]rh҈se!*2?735]-w^x%>b3<:WVg3S ZVH?D<<ؙ4Ns΀.KH3TL̘ss MAx[P#N9L拝Vm~vzvfjǀó &qG ! Ou} 7F=n崚m2ݡߌI[x{MTĈ{7;_g\f;lTΈ"kk æĴ;µϬ|~7@$Ed F" #O*ͮEWDwz.+ިFIbKhQ?yD#՜^!då o":ga9ޮΉ=۬ĩ =tGvhc}%?_6; E)teM/ Hyw7/( .gbak.ٺ3!M Lɼ(Gʫ[z"xj(_~G"K8,!%WȪTgL^/XH<&*ϕ;_|#N7b"@Xmvv8Ghfdry%|LQzQѲF%U3l._ :1_Ov sʴk^B,uXRl^3@Qd>prAGaЏK|?ڝt+E7#7iit7 o, 4G qq-ނBcшP׼/q1c4rF;i6ÝnY0RH߳0K%\ 4ST!wB"`5PHmEi53Y[٢m_7`uo%v`,-PtB@*򣛷ҷhWyc|MF͌Е*$&*Y7  6"E1 (Na*IS^U7®GFڠO3uI @V >JZL$ "uV̯!VKn]lKr,xݯxew>[?jZ+n87CM=$fOח<"@P0>V/' p.gtoz,y-o1P40HU n?=gƭ\19J ᅻGF~CAWvXc%5{ ~,R߿T dE\ınCtK5slKlKVsB2ѭ[vsmj(=~{wA)*"Gba[gnYI!fxP kC381dW;>rao:K׏h^A DE͎ntzZk-;or&U0JH%m:"M}5ܰ{^7ŋ"ژ;XB+zN}kҰNuSig;jG +(ļє'>c*+??p, +hYB y%1ӈ3tjJӵ쏋3~g[^};W]w5k\ ȝړ3Иv\+l^rE.koش+7ɵ~"@ ${v;S`V وq ',8ÀrrifQ%P,)ȎGq2k2;!7 _qI lΫB;LU.`caofLh FC?ޅS;>"E^F>_0N VRV]& "?_UIFX`!iSК[d׉-jvE Ȧle5MEV ̳g1.0l"IRU Ϛ* Yj=.e,x\!u'E}ngU}:|m;mlUizN{u?3ݷ)ֽ -=rw`ߎL~F^8>qT66 !PQ {= d/w^r{NDOIg^N#5'^mđd? &Dd_bC_ySDCI/M R%wç(~+jML6F D`@V$\cqӘ*٬la²2Kl,|!f#DTJq8TWiA6"f|.`cy1r)ey]4!+̀ւ gGbol{oUG}7B{0 0B6W(7DFӃa`M4+?ppP==HSf[H0А؎D-)I_b)a$O5.ǃY>RRHw0F.Pg3T^f1?ŗdN{ݤȟI|AH˔z,ZbrnkaX>AlQBкۛ9.?vj,hvw)jp/<:>8&FGTx5M8gK⥳X{A"Ɣr`kj&Xp08_Vg+8 w*slDvs)ʦ#X{~jzcƶ=5#F ;Ly/ F5H xi%KdT+属.ƭT-E2Vrw ou2ʳὨa1u{N, r/zy(3mD"@2! !Im~y)x9pՠꆰk 1Hf^y##ci5TSi,)Ecb4tȦ_gުۑQ MC$V֗rcsz!FF#o%`6̀t],8H;֯̏yDzwnB7M>O>RpL" uu4dV`xO_!9ޟw~LCE]%y"Dl˞JױGYO~O-Ox&C2{C1H4B>@ቢ躖+ UB5IKNm.@T}łdr8E0hfYEi~$#1Tzsx"`NS6<YG)"T9SUd"@2fm%3~f.Q#PD?G:, Bț*.gsq'mjH]YՌ#7yK-86O"68gDZY<4i [8CRuWv"_i|+N1xr4uM1*dD,uVChq~e6w6?ӈC!vj+qWz9-g-YAxNf wXGg $]ղjc f o\D!r>/JH.^kY|,@񾟃_uHS 5( bICY`%x0Gq,nBIn"02I1LN7m#6|]̖@m>̡]% 64!EM"t<ڊWiԋG+HX_CL?VؙJEӭ0?;?\}SJ>pGD,`aWKW|{n6\㜉vx~ʧ't ?@$'nO8Ԧ'&g҉=~W][JD5Q_ʳ'(EO>KǧNׂC>$gKofpSg~P7J,Y[FwO޽c#Jb6U"K"@ C*BXVkyTn…/~Ms=}$# OWK[|4|KjOo%7yΡ̖UO=)T+AP6e324r{ a44&;UA+ o*L=žXmEG5Sۺk"ӈ\npHN#A!|L:ӝHz[~sߜnz3rDi -?gM$h- !jjubzj m#&INsW@`BeM/}^c*l @=vf(]'x Y3BŃ6jmazҜTFmcmn:ڼߚ6Xb˥y!u!3~~w^ ӋYM6CY/+pA]wks-R,RfE驰IBvjзXKw(gf2X%fTnjf49#+zT,eQ:9Ywk`854.kF1~tWPP΅OMejԩv͙~ *졨1U^Y5t\;k/}7n.:A.?֒Tfe~ɾb1m/~'2tt_\yx`mYj%Xq $N^}ᙔ,J"Za0ɲʰMUh?ݿ?,to>;|Ӯb{XAU gѻ}O_{ƴOo[lF;r_R38~EEon? kyλG"d*!ҕ 6QV! s%NkuNU2iߏ;x'xM- 2 m" :C[J3g4 UH.^>d^ KoPԨ*x>Ì&&$ V~r1IIs5 ͆Vq)ܤl}FkтbVSkg\.B]=[: DuLaq8Li=o䁾KIv-E7X(zCg[F=`ϪÅ\I1"?JS?G44dPe]&G\8·ݲ3\Y`E ؎} <1 {-%Rtl}!eܐ (u(DbaMBy.ؒwZ]va+wFmL*J>/{Bᶱ"M]Ǚzn̽瑇G !"+3/"&$z&M]" npf-JF87̆v8>Dĺp 3$pG+%zH ĝ[;Z|͝{=7Y_8\ͅcz,i?w?|ΐ-8=LZ_3>w:K-$!BvGk$%'iz;!DGcQ{|DQشk'ADE8—Θ, # $VG=?}'A ]:=-Ll2KTEYc=]|?5cH JŇ8 \˰Qct}0xù m\AD|b*,[6G1B< ad,K@Yβ@>p qCX0o:o/xЍ#n 5eu]5E8?7us5s|2d|o̯J=\Z)+9&R )D +4Ç>f5#54ԆRߓY\&S %5æ=V<\ jkՉe fCNV+/p\wUĹAv,] DN l֐ͼ6|6Mt5I wY=<}ĪPٱKAXy6Km6bjX%א ]l/t^˴2+@p_γ뼠 05k6X*J|V E^Av96C,ńYڶhE|O0AǍs~/ۍʶ>a֠Vx?ڟuqGk:vw<8`kl,|P:RE;gR@ kv>MD'j[؂&έ@Ŗ`0 aIa%-&+ 5,WJՋ 98w'b sI-;5U "@6!Km pX3Aq~op&vY]7p= ۽)\Q($,V‰ cy?)J'_:xCEM\"dtcqm,.oY[l?Ecx"nnJSh5̅d@zsw2]w^5\gΞEa\Ŷi7,ҖCɻ ?+b͎I.))9KܿaL2g0SyXq#Ei"@$o"6eo7BᇧZq)0?(|ؑ+<&BP\"-ܘuAuCߑ+\~KUgdY-i?>wJ&D}_LuEz: %ɅTB,;fKwG~(kɶT.=s}x7i:917+RD"p8dE18nzCN&ws&F o+)#mJB4Asr ɮ$k CM"7,o:H.ޤEnexF.h:r FRsow a`ܧLG.}إJg_[ӊjvg$ie;$5*g @1 62S+?ߒxiKC~bه?;M\|+گ9%c*V~vP$jK赊G D`C ,mV0"\f шAk #fJҤ0DFYLVJC " xúz %$h\FBA ,x8-iօaRQۊldDSيJ̆X$ѵ\۲[okU]6E \a} NǃXNر<ۂ.rfWhWwDOL̝w6%F)Z6\ĩYܸ36q*TLl]Hڈ D`Skb! daZ}`mU"^FO8Ed JjUgI]ރ-.L%c2aS\MWI#KQyq$ԜڝiYJ}(ƼE#3݉CގdB!6Z;܎@{J2lW5ٽ/ViXlQuB5ށf]%ߟe!Qx>+,NF ~h J/qv X'B?kx\y($ K,6>ldЈ'() 4F~&o:Nٴ0H/cjس݈i ?D"J Nۻwo.Cô—:GeC/q+LdD"n St8i?Hxm'9 0JX گDMl"$wWLE-_,Rw -=pӎ,L{z*?( Q|^3a 䢨i4Wh#DlM+`$Ÿ5:j-}FE1'ZET$Qزˁ-NF=1y ~JĘՌlFt"@6%Zx<}^k%,5s 6T"3׋vk$.-AۘN/5"@ZJC‌[Rm)3(gox$=Z=J D;@B sb)lc8\ܯS+kƷN DC`rTjB Ob0"@ D#@ow=[E XUyQ>D`X-BA J>P)$޹[ Պ"@ D" в+@ D"@ QsD`hqD"ȹFҤC1MFa: D &5 J"p9OD`eB"VE"D # ТtXBtHVLtZǣD"@6Z"X!m$J"@.'@rr܈om>qgl=7J׉ Dl$,&IibL"DpEA1IUbW&D"n8RE!n W x%LC-Fj."@-#K4I[/eDv @rq;e$zp6)%G $@Bq): eI"p=$_]#D"@*R D"@ Dl$I"D"@ Dl$̭"@ D"@6@Km$NJ"@ D"UzJ]D"@ D"aa,)!"@ D"@"@sͤ"@ D"@6ōcI)"@ D"@A-T  D"@ Dl .n GJ"@ D"r$>7ƗȞ9ub2GtgT&.xr<鮾ćsn)("'H$uqyɢ/3ڵ}U7k,yY " ֯$ՐJ`E $yv[b^h4} TJIgSt,8[I$Slz~ggZy`\ƌ0/a:37뺡$S}xSD"R~Kr"plUjpۯ.{w`Z'觼" EҘ")-D/\ty:A3us_|qX.++BX„> $bلDJVבp~i7"7J"@#E$0D8哤h4 'z#"D Ҷx59O?~rZcrxC=e:E _[9V ,Gx Qvr rI"KT=ǁfO.^d]$7\ &۴04]n v<_GE ex.c@!Q~Y|>KdϾB D>A=IUU1(y~2D^43[4#Օn\ V{fR;iPtCg| jжmCa]2D.NF6hI+n$nJ"@.'V1ܣ |$x9'Drhcũ7NU>o1Q:(|Og;z~hd;6_<~1/W1Gŧg/9f،{>^׍]*)7*O;9ol9m؏}?o?ʳHG>=>.FNmj^ϋB{#ɝtCiZƴ*%r8ӥރRvշgۢf&H)Qa%Yx "ŨF2Js1A7Ko_oB0r良N|v7jNU<ۊΝ?#wd&8׿Hg~\ӔwcH;[|'~cY>ңMD{(SPzCK?>OϼErOӆ7{fҟ?}N12̺ 1FE CrnN"@6,Iî)8b& E\%Ѹ)E" l:ӄU%YT0ܔYnp]5˵z:W;r]L&{U71ԝ[Ӭ͚uaoǾk#n.6|Qqt[kϾqs25>~FpZ3Ū}l͍`,.¸-#5hGcmÃ]$cj V9ݲU3ݪY712|FS67b ^8yqF! s AxX*ctW޻3y R|qlr)_H;)^0˓pBfq4BWiXQ?DD4"EoΔ+8y`u;21E* MaI6M%N +"9QaB "b[^.wSm܏vzѲ%8[E>}DFs8V/LUf@$ d|I5x5#'6}B?,P@W#AfztZvt$z% h Y2ɕXZ3a( `i ͎$01On?}C>={ھ9D~Ngw>G4A(.KacK"ʘҢEQ.䲖/>?G|ܙ7WP\".Wop5WKr|j _`HțtFO ]ixXUɋg_'\+Lp.;&L[X!ZeaZ`')'j959zXBĖ7!%ES-Q '4wJDl>5+ye\uQ9z˛/ o|ϮdWL(µ;F<ё:*23Z뮆C̏qk3y%tjv-=D=~ #6{^,@wM`"C,w0]g:pZUe(>|\&B.h|f[iрۓ=rer[wΌ> F$*"V]" 17)L*-ςTR>SǾMl|}x&:ݿ 7"؈$)9^W < E`Waz玁(w.>&~L{,k@" Y*1]zy2AZ[sY_O_xhl.k_~ѭY] D'J; % Ãjշ=cQH"@Jle/TմZ,Hpja%M /٘Y*u+TR W1Ds0 56@%-6.0-ʪnRdMMvƢ3Pm&ׂ!A&a$ʼ$p1H 6PY`p*U]qDN:;a3 |ͯ>Ν8D<ն{i8FLUx,8ULr䐄I]3q:~<7N<9a?<9 "_;u-,yaqsl Iq %| 2 ٸ B2m9bbX T㄃>`H =(+&}N|Aڢn&iDlNA.B5xr"'SUHyξl" z7~Fv f$z2ٽ(VN_ ))]+<{dqlͱV9, ТF{w4ȳiM8ӯv,[97yqkS#jTWF"8^/Wdf4궪+Z4J0* wqTBP5mMNDnS*_Ma 79D8waDhB5 IXU&k Sj`H ޕ8^nAEKD,n²a)5Zq*FheCjD дk@NQ [@%Jŋ{Fl[[xoMU"w ,L0o ":_REQUIil`g&$ 8|oT[c]m{5z*٣M j.?;j@v٬N|/{s\C+IDTk8 ds Ml] sFF /\kύ;7%,7Οygk39g,*BBt`z[ 6L|l ~if29U\=bFy|`UB\ÏMW_Tw/M_x^822R,GGGa]<6b店ߝeYsdb?3aeCC#zLjײIOMLuh^Bqki QhO: DN Ƹ{ŵwqa@IDATh Fz(pd& #RRPjt!lDTC{)] VP--WfEKT1S؈$$I6b. )NlhHyajnfv\}N3=JuF =*shD)FrZR.ט)'MUdThZrb㑬n |b:bܷ:D-?WUj qN-Fʐ(̙ /^wg]cG%;"l˙- +aMTr -_P\y; 7t;t-|u/ D`3@|!2.NMMYJjp3A*&\dSpw}jƾbau޷eoώ{\? ,.$!VP3#3 ֛=qŢ.Vhn{~чpJ听{ȩ0Hue_VfGG=LUT! 6+c4筡8R}߬Ug"/{b߃kӊ;{w ]o}衻u`G}kώ='DȻ}dRKr}9WڑV~~orr<_ztׯ|k2ﶺ]=OR{q+bSq&bVa7tZj5pm+Phmoj0Uq7}q88 'n?n*J"9 Zb)O>$]6>>쳰. two#u pûm$K^#th] !̪*&߅`io^̅ D`y;5<@2 uK)."@n!m#Vާ3%{<}tلFfbh`# vɎ!U{t 6Œt|?v=Z7֑E8=NHFS!Kω]>מ"jjW/qf#o~Ųy#֖Z'dZ:b1(]J<+aY?UXvq,:Dukϴl4BUX٩'>GQ;0V')ƍdN%f~sZiZLFR$#~* s_=t YAwé=]{kZ˟!gT"&NÙ{_vHiiQ3CNg5Uvy B/I%)ʱ/F~goG}>[ ~Ý̎|'_}v*<}Θb;wɄ|87=a5ԕ1 e L1k s1υ%]X6)^Ph#D[HM?ٳgє $X?ϥG}cSS.hNlKz ."@B`Ő,P ZczӅbrj_j抲*)XԊ`8 {nϲXXfC:P"FB/lY3v)؆]hVk™ (XPdDU1HBl]#m`b0W!y۵ٖ19Ec! mey,M3P<<}0%sGrvBjk bKA5z"gCVaetDl8IZ@zЄI*F B[!Ar$fq_s'j'eaDd_;Yg϶MZbSdlf7V|oq֦۪rlgۗh)o$5 ٍB)"@ o߾zsN:.G #DVfiac"@؆r1d^1<9I@ %~^ Ϧ5@ ]%K٢|ѮQ.]hyWTM39,Z<5|6WU&aW2|°|/7Y/|}ldJ+`ös]|.ӵτ,V)+]*믌60{BFݻVqWeXsrρȮL?sϾ16:7:0eG+ ۴= Z㧞'j3~gc̱fqճ秺#ޕ҆׮%]!D &xBmgl06^} '# D`l[L\2p+q+J,#TmuAV$0=0.zZ_*ueH4WJ8*zs,/ hc?L%T!\P)I˴ 1 LdNmwY^z czacW̴!s͘EQ+Y8Έ{G72'DD{|z)ĕG.CG4E*X~)?( Lm*Z'\<=ćh=QA_U}}bԺ뗸F*Ǐɻ"x!*Ãwqyه:rayliPp^YjL 7}\?Ez~`JX롷B(#Ɔ٠6C1a&!)RDdIv[-4\Ue-G.ob058]ETI% ah Ës"&)1"secE"@ Dl!$1^m0USe G8jaT`Rx&Ƃgs(X3ov{I޳}ˆ]ǖ|.' I-13I"`) 7zvږVEv'}%)e9\ţz ȗxkaG66"@MK ,=8Ӂhe "R$WJj;eؤdENfgWڮ F鰝Ec!6X &X\ \aMD8TbY4xŜEB$z.+CP %6+E'biP4Rd$ш5;ӊlF# 9"@M$1L_4M.B* 3#&J H$[jy  u4XduB<6cq [[87SpzflY`UC*b)]:jr S"tzU"t"@n (C B0:::11. q) wuu޽ -YxSJF"@"@r*$tNlMOA$IbD+,US3јSLZ&b6[ZBEC-ND6J5SEV=ڭWd1 w9&t;1PD-M 0c_.Rh& li T9"@*w@AD`1 ע7>ʋɋ'?o}[;v~]O9|sNٔ,{%"? 7G_]cݗNy'+t-b-f"@nDI{G`f|'0=RA 844O|'1LPD\Y͆C@yEҢݻ;׈U=[ft#rօԴܫ> f#j<8[=k9ډXô'FJٙRٞa FqNNSDl[݅V8u=Lb#̌H$`]1ٶ_8TH.nA.ޗxę5cպ=?}pxCjQgg ~w 5 U[/+rBjG'ăU+lTO"@ ic__ߑ#GjSO=%1l6@Ro]T " \ַ*;e-"$=e Bل+ӹ93WFR]9UQ[b 5QEtQׄ#)A2;#*⥴>+Eѕ-z:޹sOgMА /  D20b!0 5A.I.޲A"p-$ED@/5pIbvWhD W6LɱdN0"鮎;\Mk{R5f'9)+Ɋ&2VWĔEA0C9tQNqYԌdP n EM&lJ"pcAt#b8EFH.Jڔז"5j/M=mt0t)dODCwQ<"'"p_|ᕉN#|b7 >OD y|Nl`J /㮝~,]vZ]Z:&DDNaQVNtw*/ Sw ,!FM2YBUFp86N/6k8/bbtbH(`'<`F-_[>"@ 8@ E1r3a*Q)g;.Q7C,V,:Zktd2DS5b[g.T,1E'DIо4MHD[C\لi1iF6;vRYBrcLY-Zao.썐hCi K!DC &A>hDK-ɠaDz:"9gqwЇT r{tb#+A " : D $z HFELGJYvD"D`u,Extb p*#F!L D`9a%Ɲp&)܇]D k'@ iܞTm<8^Hݞ_ 5 D@AأmZpj0݂PDl74uq@.i> ID]{ Ȁ D"кED8͌z\.#DYׅ"oOhQq4Їhquq{~+D[F lw{Ҋb*0$Wk[y, G,~킾vX,$G D[H/./Њ"-"L0c* \'.%:CsЊadd oۼ(+NQKոN߫m"@Go6( bJ@P8'O:ބnZZd|HZF:\E]VElɶv?;vVѕA~0{1neU!D"p{$3t:!jvՁKu ƣd  x8H? W9׬UOΊh} 2-ǖy%5Qł[!ِ W]Yu)Ҿح|Rt"@A`s F]uq /wF=D`PH$*5@ۆQ@͵J*2&)̔˼,2llZk˼ﴪ۬W%$G5u<"@M' /]] dZ鷇2 hc3>k+ŵqf]ϩ]v4RL0m3 t\dUOFH̸x6,?;grq4&Sݱp%G71M & BEd( jBxT")s )G)hdr 9Hd-۶뮴wu7Ў. E#0q[W5^eo1%^hyҕq]2N&+~a*#A!K)]eG_xʒ=UI D`]w޶6ưar+ vt( 7SpB+;vljjj_A^W7`R$Q Iw;:ڄ, b(|61\UÇd+p\.g!CVwAW D<"dg|t,"6\$~Dulvm.b}Rde'c=3>>>Ȗ"@{ToRIv<1Mчc \y'vef[dY{|O,OJ|sxPo3 fqI^3;ӯƚE/$#?O&FuEnІ&.0u}֤?>%C D`W@"=Za>Lgn`؍9;R6WϷdg{++dѰ^kw-9sw/Kugݻ鄪HQMǿ93{ٳgK_|抧~1J QWp W'*xYHDEky"#ՙ'bj#ò$ȄLjsgR:"ʫG}2G%:߱c730jL7\{\nrg&d<9SKn7h<Gۼ'pKEI"@v#P>G{o 278z4z 3 cZ_?H}MfVPlKvik0|K Ҡ [@0 ~Mc1BJb4VGj\لTg7jy4SR|rqϦfrS8,~鹑ɿ>/h\G2_>YߗTOa HelGKΎ|W"d6-D:v鞾LA*VlyGGj ۍGe5աn7/۷&nz>J¯Ȳ .<z B(`$,۳ů %]w.s5L} GouVVQGڗgf' e#qX?p*~iw}*oF7X>1^xtB3,t-Ey + A_sh_bߘYlZ&/"/X|?ߵ}&kc q\$0|_}wlXpsSg!x u10N5Ll}y4MI9)tEȊQUssbՉ뼔HeBi^h\J[BP-59СUMƠü1_unn9B-_=4c]j,}i3[eZ{JZDW&dxctwmu<߫=Q sJTlTf43]i6㫵\.fIh\فaneV>` !yb %AMWFd!Pz( $kPb;l+e4Wx՚U,L1k$'z}nN~JA{0 >w1,h -0,m %Zz6*7f|Hki}c>[{m|,  k: 狧?,؃O<<2N`B ?q-fɱZsk5ёѪiρ򵄺6]d8-ΫRkԆ+1^*EtM=m!\F'kIW0x+BRW覢G |(k"6%Z+uo؜==P9a-UhTjAآLFQɉd x:j(ގM; Hi/`;̨1p\Ӷj常` "M<1dS~~g4}r^4Ŭ|Pqȑ@׌&ue4M&k+5HeFsӲKĢ-է;:o#ϼ0_jvij ?wzݛiaB(\qrOǾ}}k朐Є]rP/}=n_|2ӫcVS{g]_O;[z~#rpS-cdeͷfvHYȽrZf!d*|/9V_V۰ _<Qd[Ko2L~ZkP[z;NB W9hb%P*\AHd&|GFl90̓d7Vc\͔$l<S:?ċOZB#D%@y^;xPd_=grA B V۳g;wj_l5`C8_J%zQ5s u_zDJ~2oV2-[߲/"6jk]0_Mx8xų_kR;yXL.cxA`,3$9.1-jtWg#Te AFte *7lmٳUH-[lw֍+cx1aSiT3cLQzgBw".Bc:媙htg鏟y'T`Հ}D!@0z%B(ǬM@Uh Z@ؼd=S Ivf\vz$ѴxdԋYbC8Gcq &0v~'GRݹ8u03ypS!l:QL-cY2ﷺscuqQd 畅9]cKhFϾW{fA˕ 8sw~ 8kb|m˿ QB;["q|SnR}&Iޢb+ F BAD{ݿ#ճkˇ7+3{f>?1o>~~ x4uc6TTQ\zsFOrw/ް.=ךG|TN[m%dMY,JXt &vQ8dR rktHݻwttR`zRQ_4 X^ZPW8+$#JTN0P8W7'qbhWW'<* vHW4XogSFC!^sFyAc)Urޤs1IKˉ^cRq #V"9GB;TjtE$2{]^}ڪMfv҄J5ըUvf F̨DGp_";],RpL)]RE!DhF:fڴSF.ɪ$1$.e !BZ]/$.b9őiOk p!6j]\a5oo_m̙f3Zt&Ap X1 %3(|3*$cj4r ^E,ƞNj}gagnoe9ŀ&iڭ*csq^[Њ.B#D:%fq {h7MU7-*UM'bq><, XP:-3wCV|acqΧ.Xn ΋`B|3833~ ""LmѰVp:B2ej//'{n|wlQndJ\ cOq.ƭoLߜo+w1I E8L$驞Mo^iD;&S] ň J-lwKwq5ce_n|%@R.t%8F~R6m۞{#buz񩪚ug:A݅7}avwl#],M&'Oﻷշ'gO;dff9LGO9=ue78{wP;צRz B@q0]>nn5BR~ToHGՌ'ř9cyGϧ[v YT\y!C/Q]Y6u&qpVFOe]CmY6 V8PB=)HMT4p<`pwu9n(Y=Uת3#~ab #{?Uln9+$jv:=%1zKJQ*,*cT( W\vm.3ئPOݸq#l]D.GT%CCRUK~hرÆg9-8bRv w7햖 65Mсiy[5TiDawa[]DF]-.+kmCx L8t3ejzl"v6Yr7FlʔZL,Œݬ<;{ԙK n~V&rͭ .:f|z ZU&'?­.tEnE;t{4 ?ݸZ2^&rO~Ͷ vCHڶNtq!p pR0T7o[(gZǾ(<׎|6ǰ+jF-l\;yͯHgAcFJ4a>Y:`Zcio'0(3_9 /̊`+eqhN399BfjIG=  ˒/ɪisT>37 7 n3nm j<6 ~KcG\f͖-[񒶋% 8^fĚqu   ajg9yQj%64qv8똈2pø"]! G볟X3hc7Z;5mI(t'::|ݩ 2 Uyp&GW-7\fg]_Gep^,!]cm/^Lט ܱc[qqdp},%B B`%N0 ׭7Ch*zYC5ʷZܔPoڈ޽vx8||jSH#mT^a΄CL:|̉"'c+kpkYDg;l bIG՚8sǘnzg׏MTlG"#2%-rFy:QyW }z?їIzRlN븾ht!*Vp k(se1CT;\OUDSow|USQt J Dz^66TFtt"$"ۻ.8!dP=j T  Vy6.^o,{t7$u\jbFAXƗE*iQ@3CǾuϿ7_s}l=xjSVtx7G:"]G$c ,vgJC|2js?x]?1oqrehl8Nv30o89Xo(3Sº^7+-~,b<+#{?'Gv"5S!@szß~`WoV]D¶6w#ӑ7t߿ÿ/zvgޱ%%Y` /ʾ$RA2F| xeBB"'m.wg)+ֳq;(=b9n; _|sZ<:"BJhJe4=-q-+ )(7ftKDANV߳o̙7X5Mg4pP1!uoON'~6MR0ɨ$D=_vϛD=&(C"&Ô{oFxgm(bXav)4,&yo9|֕%v]¼)pBVpl6W-Ӂk/J^׬߂%CbYLTp;5u 3zTR%>o=j2-֎ #~uGűr/@IyԴ3(ZȁqqJB) tE׭[T('|s.(=n[yKA!·v\W=Fjy eh\C3j^9 $0KH n,|!=Qnlv=Љsz2?|نԤc2ܿqMLxvh%Bbh&_=*/,X~f)`?UBtXH $lMf", B6"E8-P<\vl:ds"pL>^: ]t4MrC-V*B=C+(tf0˒f &48.pс.ne|)b.27\D 972U#j=T0Co`ձCur,No΋p5_|6e5!r<0atYV@B-"7v Sk2>r\rHa=CL:]+Շ{-!0nhB3k$,.DtEB`14xa.3ő]?~ddNdǏ>෧#N.̭ϴ,ˆ& #Cz&1nHja4RFKJ-L~wy_j"e猌}D 즗b3q1ZM!@`bұmg'YVB99YY!( w/ij^x隆(܆I!:/qQ2'Y/yiz O^סlV]aY%΅˫լJ^~$j_IMrKHfB?9pJ*Ќ[oP+016WQ;jft#jLTXGYZkG1tvEZ\, Ө##G拤?!@WJj;8p͛!-9uwjb [pHd| *A@lD%.#IWCͼ аFcK(= f%pui>z<'7nd~DֽO( M+k/dyIN/&+Y0a !nVrt|,yN/ӂKFUO/!@\`j " hK$pfj۩]@[k2Ftm@g3%D7BIY%ƨ0a>Yߠ$-^ jho@Yqtr1"z _aV'%gF'B }.eJ"""IxkEtp`? n.eCGW`YJv??Sry%UB!ph3F,(n*֗m"/eDBXD =iٙ]\6t !p!pQ\篠SUB ^Q8MIT8!`~}"WDW',B B:W$x5TgB;9ULJ!@!*e媀I2oʀ`a1|*#:"B ..Bʀ ΉsBCB B BX]\Ϳ> B B s"@tB B X\Uf W7OI yeq3~eʦR B V1j:!@\.^kpE˲h¾V_j!@W2-bkHu#kHM8&VmrT!@@8ظlF A/!@\ .^ T)k|z޽mH#Mm#BF3xʮ/Վ 2.^e?UGh4 WmT⊯/B B`"&m%Y_W-pB]R2$-1^˿7 +Q{++碪W%Dʟ*J!YQ.T`$JՇ%B @1% B`e xRn>ݵ3S B B 8N B B B  x6&t B B B!@!@!@,IC!@!@! _ B B  *t B B UU !@!@!@,Ps!@!@!@z.W B B B`1.. #B B B`#@tqտ!@!@!@! -v!@!@.x_] :A\|.^<!@!@W7%>7^ݿ%~u#pv>ٻ FO!@!pu#EmۭV S\n6e+"W h&b"e9F"|DK!@J Ж"b r8bcı^\D(B`УA*5>۹)]\h!@!@W7XSԔyR^&t]$I'V>,}R433 &Я/t'*{!@!@%bY "m560EzMPDZiξ-3갸6*̴?\8]O@m2<] .ZyIeIyrV# w-%p,qpUwm B |2F?%+BH^\^P ktan2zkTח!\^ax-mY塦MWRS)dk.c+.7֑cr,F*C{oDž=sgfmNG aXb$M!h@aڄe%aiX'*86z$b566ms|A&9nhӱW),x\^1IE ,r=ɃtyrUJF몌AѝF%9LvZuS2"H/V-W>縖Y* )yW}QQmױ`5ꕹ9USKd) JVey!$B pdtI% -{Yp7G2} a#:;>/(a.ƭҐU}k)}?H_w{: %FƵ^o-垥5nwaH#hߞ}Ϯ:`:+ Hs6}#7~=nI(Q.?cC?'š׿7;r~RU"|n< `v6/J/=S?p;RX;zd5_LnlDDS"B qbbkppX7u (r9Qfme ].t\֨pJ1/z!x^>]po14D-zo`|׶f+p4R_BX`e2:il+*yγZ0UJbyTZF mYJs 緜@|Z G!@UcHPٶ">S5 B`@a^'w=jpR)OO)̔Bh>dhlnoVf>Srfc @YvЋNev$zC3$QE`* %AOpYEhti)ՆAVqj/ ^BoY1TcDU <ḈI˪2y*£nS%QK~vw/ϟ=w`z,VxM u /=FKy.qk!.}/WVJ!@.|i&b };jf!='r h /E+rF=̙79hS™773^/\}ǩBOoq?g'3yW:&G^g0NU)8: )F]$ƸBR6!@&&ovD€7 Pǥdr긇AV.hY^z P ?~gg.A% >qt≒./Ckѷ'TDJLXnH63L_/K/\[f"A1ؘp:3Ȯھ e6GzܕRYun:;|x#/H Z:sCiMYsՆ=#X]g/wN!r>J(X潠i6ffюi$%ڑ UOA Lo\jJ^ f{a](TCA_0)G4Qu $K*r;aG)J7bp5 iզ5VvkI(Z_wVC0Qdez+ Llʖ"=1T i𝣆rs-(tINrXNeZMѪf^QU&t}'+z}0#J<IJЃ!@W;XBäg4jG6p}x!Ȋ=g/f+K&xzA4Y3DJZ zmJ vKV #{g.ˎϕJa^v=Ryz~!o:nRq_6?g]1>}3U+-IWy?\e8YhH߼&mvhu;N6-%.#m||%v=gv=R߻A.h^79:'_Im?⯷dĸ!œ#pE -ty~~LJf0 whߍΛI#Z% !/xO8|pɿ'2n?+ݲC_<ASKfu/}~naկLkbB(䉊zo4g命'$_#UHv4ۻ:/AgH~<;:Oq6vrFW*71>+G[ß׼xuc62{U: 5ׄ#8'*dD nؾ )bGxΉ M6AgVʍ BX:Ge,M| FzWfkc// ف׏^yBkj#y.s|lWVW4 . :СCӈyO R[o2F0ƗרIy!*LO &ݷވl(wh~OJOڨ<gk7֢;6j !Sʭcxg_%AU-&=3QWoL`7,zfucN&:;di}_>tA%S]=K$':o{0(ɵ.nU҅+##J~xGvбI˯8 jլ'];̚?|սy^0PS>kPu%TZ>#5OH 7ղazlP>Sc9\U#;9qbqg\~ u˶3_8m?8ݚ㼜_Ý.f&rK%%uk& p4 8U*'8.Zwq3w(}k.ss~{D4ʞ B8m+d\&c<_dgV*zKsv6S/r+pBI6f*3 ן=̟v3.Wg}9 `v:cnLtS,7*B50==GƲ=Pq&.@(%^@9qqNݙ~Ajz1chֺ[c}C0.,DDk8}v:22WnHӸzVdp"'//9}'g$ߢTo/7k|}.o^[9#ڐJ<\.3fmANO Q%A ^8{` Ȯ#Մd cfK{KF:[xsBj&9~hbϳg|sw :Y#B5ovݙ1&)Cbr^kz'=7vnq`(cO?Z>:7>99o79niװot8:?=<6Wh}sԾw]/E=F J2Yߙ9t0빗Lwͷݝ޲їxG~+Ac2۾N& xzc=;W߻_+GGD5316u[\gLz`2a#!`A0%rJ.{z(fcf2nQ %VowcEhFQhĄB ˃V`W};6rׂurx`eET gϱ7f;SCluh@ہ iay 0߃3v-EIC qpB,mz26qcJ4젆Xg*F:,DBNnh ^wތ B Q,fcU"{f  %,#;‘rV8+#3Xw ̤n<2'j@UXPC9!9h|>x^hqG `NgV=״dCԎZb׊pãZ=ʺD1O KPpU^dIeQ1hZH8ģԸnDs+(4ZYHBwL/t}?U3})#uj;>$4Ժ5|m%t[_l^ZD7t=xJuIǕENflvG1z]to5ܘ{n/*yЖ\ ܡsvlX8/ۜv\nd:M~B}VKCXKߨbD&U =7ޖH桱FA9Q_DS[_u5RiUhtS\,/3j!M,\ |OFj!f\d pA`@tZ2?11yp.a{a)l!_M=pZZ%8d0Ҹ} , B \bxdZblq̱ͣ{^hc36<ưy]_Y:92ymV34UxnyH܈R'}B2~7[FݑK%U>Z=26:2H遭zi#Mzg`xZy:=Ҫ75j&9y4WY{u碻}z3ghԻmY 6-`B1%n@BnGBrIr/7pPE~L0c-c`0X|{|^(ı5H[##Xo p2սa}_59ɩsF[nw>ġX2qd6P얮C5 S7x l=ɻ]s`|'df:ճUGYYpx3Xi4j+06uѰB;ۿ.(Ǧ K͎L)"FZ}̱eHV=鈴VfW1*^)Zd[e]d@`Jwrn͚mCUM"p#7^/kb;e{--Y7mwutyogx :ń$'Vn}hʪA[,ۛձ㪍1tݵxow^.eU*rveޱ==ƺxZ!c l[XnwGt@}ۻ^%*m}[݅~`' lN䁮{_uuCdE͈͡*Kd*pEUMCHsX[GGMȜoͩ̕l'<'ܧƛ_WBk&^eyziX>{i2T B ! $SB pꅢ~YpnQz˟R%VSW߲or3u؁˯?| ְܴ y۫6ݱUȢʘuw <ѡ/?DeܳܰS#>w_8rđ~_5>.{%6~lgs{_SZ9.kp"c*XS_0we k?xMow۟>@IDAT௮cb<>rx_cC~ŁH_'Z ~uC oд8ڵ'Jv:UVLδٰ$8@}iW]a*QLJksc)yJèԛ::nNHK<񡏃$ !s 1a&LibN*$6Iȏ!d:5O#{Xҍf6gdyO0pD ♤(& =nS4.w;T`s"SZ6E<2,?$ SD<?=GPA Nk'FX쓅tTԠ>'Y(`8:+ǞU/~<ͮZ'ֶ[MI!@Abn۶_SWR0|;>b&$b)'ݫP5:~G#kzlL!E<~h>Oص|9? RZ^ rc7U_Hum}oɗGھ`μZ[49q( ^xΎR/b02j NQ_1+{o ygmm}׭3=׶iJb+',+457 찹=; z۱x)G8Y{>צځbUڹ7xK;7nSF[Ҟ kod1$A<'L^c19ʕ+z ꈆ(|7PLKG7|-"9?8;<\UteFSRv*zg#lv3478aO![/ 3HBi$h"N'5ڨWA*oImu5u*^>ҌD4r@NkDMF#i>h/'a{Pv=&*++=xPRg Y 8%Z53\,'Q)4/>NLf%HKXB +,K ~ad7z\AQ,sݦ=DtU_\x[6jVXO~^kқc[b2=*sE}|boMBԱQlC<7-Zv_[]#;'}oJ·v@Wp_X?T[d5$:w|XdOJ-JԀI;h$շ[WS̐edi-Cko?ݜqRS귧Ʌ 3CqAszũ?0>TCr[|;Bcٜ520pO;>XiID2Mml]C<'w݊T2rSkV F欗z; r ui>ϙ3gO<}zg]dve ?XZ# WX(xûn2{Y!lKU5uM^k9ϳ59YZ8;&nx*,X"mVlRy.Uh-ˬjqbST X(k[-R幃SѸҎVX`+kөWMXr |VHx @_:p 2)i4ܩ\KvkBn+3rt$ֿĤ)ZZ]+,#U1J ;>|KT#Ģ-p#u3&'/`b$vJQ3˗ZS;V( -nرX̘G$ˬMUl> 9Hl;uĎg|NDZ4H㹊^t̾/@G?ϕ_W\gNqYB A- ܴh*ɡ`\ P䱽X[cjPp)7`2sZ?EL4 zD%UEⷿMX(bB6:sHLk )z/{b=_ ~zd|1 cv>۷`s[QJ4xMp&5E a^2 %b0aZ!2 SbS@ؕdԖFT 6QBcibKoRQ,Ýv۠uD*ˉduW]^- /!Bp,F# 6slUoI5KPBKŞ?e=yJELQy/МO6lv إ,b1 8ǧe%[36e-ȸ GH۶=5ѴLC]&QTðuцue֟f{H#:jh4!ͲOLUzPV`u|/ LYO/?E>1g]eYX0٢ x:eHFK z;j8wOqYI,!ZOlBn}n^e+DD:/QDK^S)qh̨X;qpnx`_V]n%U9i$`;!@+l{ZY/O =7G%3$ ]<+mmWnʴwc axQS=P9p,f!4۟2/Po*|kL&E[@MنF@QW*V&+F"{l> N[B%ŊGblD]="Z8lc0G_ GA]A1Gq0)LMˁtwn QȧpÅ!cdeX 6Wܰ:Wy[Hxrg>oKRX xW<~Uƃ|뾰HheӲTsbϿMѮ,g(xH g7LhV/Εxyfє/[G֤>GF^ҿ, Б=~e׷{̲7M]sYIVR "!@\`* P477̂wae= a`9,6yɀHwwX$M-t!!@v];; ây{ݽvfp[ Bz 8g٨HMHU&clhuVl1K-Kq5md۶Q]:D5,rۺm53 } 1 ٬@fMC* E8S21W`l>͕;w"[a6\V9>+6'{( cԴ=CX4խABnb!7t5YSBYLCg@0 myLE͚ H0J"̐rH22>+rRw\㕐%D$8q HίC=39?;+1^!3`x9TF뀆 B(5a_vðKu&cF 'Iɬb[x:'m>|qE^7SS3:u#Fp<`X3̲ ar$G9W#ĽtT=>zh kmlGhH|Б!r#\N*f$3WumIjc;fnY:|GGid!o/\Vll`@,ʩ#G'ަ>8WʊlJZPE<\GrtS#A9;Ea"Tb#&I^jQ"V HClfņrxC1yIG/!|S*t+ῨXc5-94ϚgEECcAqH&~Ck1~5w2ٞc:_/Ԫ?~7"v*GmTnNo[ 8nX Wm{]֮'6xw=ݛ"Hn]}F~~ⳟ|2@"yڼpRkK̿dOk+n_oJwTvmFD٠ gB'i*KC䆛CXȉC7PUu l}e?[/2(.7PGA{~W5s {G~^6{sednZWkƱRu>T,O>I[";B'ʡt-o߮Ƨ%>)ɾޮbYMU rF PC{R\-Yqind,{U8#% !,֧~ʸiikk[߇OʝA>ps?~Γ?x=/F(\5xX‘ 7ýxPK42gSYn$ACO!@!0=*]^$0 fdN1!Qq6W9S: Meu#al@| v,9͂> l6(\@iI MZxh[A<]V:1U?Nua?`,3"uam-P|?rOnG^l-t(l>N-ԑX+WT< -@Ch@#-*\x-&A @3G`]sy}MtWS^S ];\j-nipf<*?wBsSxf9VZ:ae掮LX2#hDSzyTUsV_ sp>ڙxhL3VUPm$>{gF߄!@7(=<]b,jՕ|C?K[9,(yJUR2-uScs%s`wkT6rˢVIZՑFCp#ه7i-ρbńC%d)I7pneP3*&V-Njpi5d+aXs͒l4ucPPcǞ9>>w4=0I?;{b3-HhREDzXʊdFkiVc x<8ƥl6 UFf.q tF!Km{ b MZHhIk?؋eb]$N@jXEMb+1r(cnƄm}[ ۍtH:d 6aJr[ߑT7F! fQe`rU6Z XV^`MY""cD*%jCV"Pcr0Xƈwot{Dg2{xR v޾U7hmMd]SMpt-If"^mUB cz"m.Mr$&i2СtLF2kMB3o~z#"A_6iϮL+06NNO'e-밙Z- EFfAkUe h ȔYi_]7xvzijY}bH m %#)urM e^Xu!sJ 6ʸŕ M#H^W<0: kni桎ڞn;W`i OHY!kkCbUW#ɸְNJs5M.ma5VLD! %`i m љ9əs0b^ΚQ :E!@x ˧RZkZtd<ˍI * Ajc|*V±P$Zoގz)7>5ACh($(RЍj< )Ƽ uo$<ϰ J䦪MGõTNSXZFU WZ!hg)-x*"$O i`\/Z B E*򧡋)+Flbo~)}*5=&vr PL ^[ލo6& b]&RVQ)Թ`5!l``ظD-BQ1^ shJ[a]o|?D y6DR)lAW %}c{ {J2іQUE~KD1 wp nz2a[|uFB-fŸXn0"{WZ"-&60KP8msb[+nlEQ@C[T){{{/_au|||֭---KFpE4s!sEkI8P!ДpTK&|rZ=*:ֶE $}0tbVH Bm\. byB BZ@@`ڑ:B D AA̵3ZP3A7o؅kބWT؊4},̦C8Ha+ ϲ "Xr5mL gY D M`m(0XFN_&?- ؆7luOet r+7#jOy6#nD@RHLYF#2fy` V %g]Ddďf;Blϒ򂜑^f!KsElC.h . 'h"-A) hKR<#U%r Vè:ǻA*.#o70Df_PQA!@DiSF Bļve TXbಹqWA|c+FwL/@v`Kײ7m/>޳u/#>@KѽSdvk#;զWr߾uղ&n6fn%ڹbPqǵI) ժa+f<7!pC"QijfXWL&D ExF[k -UhhȕJejj VUQEnK@%I0mADE&@G ýf򖞧¨B) n{TG"TNZ^Q(8eV=_8kdIWw7jw;Mվ;^mNM쩲QB:E!p# B+K0jZ,1[" -'%Dm``Z Ѣ0Z7:E4jK(o\>50no>>|S_yx~d-.>y+M}^Lj¡/Ǚ||eg48܃?eg^7%Z5)P BX]ܱɡ!lm T J3S0!p "v e |Ewtt/Tk5"P4gvXhq}KLXN[x!ve* ᨾEj$ձ1xIS#(s{E%nY~Gd gm+Z@!p PjLJ :HFL%1N'V*7tTMBzBtm\UU4m,*5DgMb/\{~ǎ݋K^8mA\w`'~7zȂL.cǎр7L7 (J, ?c zP@"rw $*7˕#u&HlJ;gPB rQ8p,֬Yd00sRhDJ%|"r9q8{DzH5$#@!?D'fNUx?[[[$}%֘'ΉĨ9Β$qIDbwY:W;uSJ !@"y01lFpE %E#.hȾi4]d="Ekz9Cy%la =e{a/eR!@e0'"tQ ȓbdh`VSxDtqQtBBY"\("]'B $@1`J&%B ϙ)&8.B B 0]l?NjE nTЖP{"a x!@!@\̞V.ƂN\/,29奠z\F0ҀzB ·JK8<_!@\;0V ! p`^P B8ƄR!@tqtB B B x]=N !@!@!@K]\*$)l󀋪TmB +eYO97 Do'M+£1R&^J B<x^MyK!]\)=EޘP B  pa,eM7DK[z*@wz B [al˗4*9E @"t4Q B"Cvc0<ʔ x}?_#(Jww7FhK1H!0?|O FHM߭ y!@tq^0Q$BGC2bOOB!@\UʨyU=* !p @t:xTˍ$QùܘS~!@!@gI9!@!@!@\] B B ++:eI!@!@ՏūQ B B B]S!@!@!@\] B B ++:eI!@!@ՏūQ B B B]S!@!@!@\] B B ++:eI!@!@ՏtJH!@!py2BYFuݥʂR!I!@!pm#)2m,_L&x-TvB B .q,§mۦp,/f~y%[ BEPeH$..]Í"B BF@0ĆjTRf9CR  @ NEbx?UUր.`/U B D0 ]K c4 "'xBF+A1 pEnhq2F@xA m]m-!@!p=#~bZb$,p8 q\y!p"!399  `1M; Q..b#e^w2*9ױu%&qdfn!@7"|J0(bKK BA7Au@sF]DQDҡ[^,҈Z]\(bϞ8x|3+ᥓ \Y9֧ql C<"NCHʿ0TB  A1b H$Rx#3T6B|&>dpEѢq3d/tLtqN/ 8 ל Q\5lP:QF+pb׋vT 9e,&"R!@"4Q!HWD%XBF3v.hrlEԎ"@;-*ns0OqƬqNA}5AhV}j`SM7(vHp%HM TQ l%9um_YRejp|sr]\TCH L  !@Շ4t0 Y^}e}T;VPLV*bcvZuc mbph\LMkZIZղ]oSn(x*3[ޤS%<_KӨWv?[ e8]yb=7^T+j"[.u<9!'\in\)܀Q WѮP>G]\ngeyXf0|,F-@-/d;0+%}ŐqlpytX L_(iLξ%[ ]#cРF1<hI"+ 36f<@n}r>Ri8U9iGXEZ F%CT& ARQVz ~o !@!p1`Ef4瓦?}D k>)SBXB0iS4S[77q%8$!Hb4W?r>:_iC<x"t8E6H1Q|oulԻ/[7Vedk$?3woqff:]'o!pBtpm]/%E*q"6ǾK7V패FzOTQa&&) ;|7wm)*<{nzsCm5D d'.&*}Q3>` B#9M,v!S9\ӂ+^*!@Bڤ=_za[gpvJDdQgD,zМ $3Lwk<; 8 PV2r\ՍEcn. _ 8pʔD PbFNu9g3F/ )2@v^. -۱;5؂"T(D\Nj%SrqƈIGXUm.&25L׵tk ߞ^*_5B (8@5* }xt B,`aRLʄ ?_..\>-O=/#Cw'춛Vnj2$t3w-hoś֞܏c!֖C;9ӯZіM@,7O?8rd2C(HulTeT2 ~\,Շ+&gLoZwG^u*vNIޱMcYz鋟؄i@#Id!64>D]KU%|s{nx_{nF?> ͧƾԻ^H2-~>jmm[pM,a& oʃ}S_L~[G(^>䔫r͈G.Wkuݭ[ /pK^B˷}}}1Uw:A!@F^8qP(`̄cvļ>/Am n̫ȡbr_3M-oΊ?q Ԕ#&^ocBQLBSul:B(5SZ#+F&u/$wo{ #,. BX4;q"H?_ǦEiR=+V L߱a6[ғiShz0R{7_8;nzL_f |aczY,MTKTmGa?bFc+4[]{%?HdAΨ%Li<" j0(lz u^2(BZN7ˆ>s%3P,(`$pvFJzI34_ld[ b% $RX4Z2nhj 7b݊(쓢ÓQjLB h|0$Ƣ o<*P49#L/姪M'K|4Ȥx4 TI륈! ӝ2x3DQ b_@Cƫ!-.w@7ɅAw֬u7LSD hruԨV,fL:#ԈȧSTg&"ƇQfѴ, 1^fA/K !@!pL1 !7>1F_<4 NRcfTlXk W "TӭLyP>X75hc&,,0bQT&cÌfne¸^A.pYlAe5u.%",ͺmt^(aLieLO6UvЉG5WxT jK:XR4ΨUxK 9G4x1A]`\dH6 I\Du*+c_;/J3*AM޶fi$WuzSH œH-Dt:E-ڧcIȗWOF5%s6[D^*l..#AwS?NTQC A]݂_ :7fZn727oyrN[:=Л}{emK߁,VAd1kX:˅_Z5wv=?y-$ ;_6Ly ;?o˺7{ږ6N:}{Fqb*84 ݓZ_1Z׻2/&2R}k_!5Ǿ{~֧I[o/~<1QǤVesYWwZCn!w:ɡ#]Z;vL,z{p+C21!@!pyWr͟9,\uQ)~[Z'K&s e]e߻_xw&m3=?h{Znc;z]ۗG1A"PzvX>2ءo}'?Xj׼|mz2vr%ؘ9Oxlh'JwS{48gw}_cȲ߾[‘QKL:\UD f)*Z$[,۲,vam߾]~rZ^y [dEQ(1gs 1{os~K?us_vRh:w?cEt` >jÜ8c >y;Stur~W8{߯;o?~gq!ɡ+QQ|'m^m vBO?/<00|ڽlLڌ"w.D}⮕*'iqzi{"l-)6Te*+u_s NlIϬ5 368línZ34g 'GzμY'%UU) w}Ԥiپk>"g)< f33]vd̀M;mj.M(/}~b9o!@!0sY*;R}װ9=0CTύ8u1ŴsVV* ^V0XuN"$R䪎5A8#T i=j/ԯb]TpXo2֫P$B0ȃ,\syH30O-Hp[ vu݂cxip(VQlgp(҄q̡\+Z8* 4)h{׆ZҲEaOnF<[UNbYéi*,2R9l깦BMQ[0Tt&iow hZEH܄MD6!m$xQ9Ù7`jpn;XǦ!'1H 0ph%ܙQqvF^"}{ky"-Wsx .Ueǖ̓ծ0]BY FM Ѷ_R9;=l]׽9[bB:Uz㩨|Ӷ͆W(h'.,k0c8R |/ +cOX': ꘀNw.OjR!@V-.C9V~鿍?3 T#LQ7,Ԫr3 [az~ 7~?[67? WnV&ysɮo{O~#.~?T[noX3g^ceK\8uca^AU`A_|cn]_t'FoDP0yIįa7$xKG|VA D AqFq}&/IWj3S\{[{8.{~cFȖAD@<Z]_H tC(;Le}_%Vvd|/VCwFBP<24,ۓmÍs RN Mup6_d)I㶜m2 'Vꑭo],gz☌8CprR) Zo^˦jDb A#!( D&(՜F),97VY68R (Z`g6[Twh:UW|97B3XjXnlixO`XV:m.HZױbFt<3O^ ]!@+AYiٙ9'|df犂Ix*JG(*6y#ɼ RdM>jF$Ց RbDcnͪ/ײ̫0cG;]r =;T:MVzv눈$tpׄQ,4:NCpgnA */CP&x^`8C c_!qz@5Cq; Hԛ +`kA%$3-u4SuhSpCӛZiTC ,q) ' ZQD*Ql~$K%֜iϗtFX`āu[ܿ1]:ER]ՠزॼ<Ѫ}Qh/$D7g&(</U[xB_Ndk8Rmp.38Zg v*>?mH?,4/?yȞN^G/XQFk;2WٙZ0 D8z.}1@v{ 'BkV,mښI^|챜"4jopsp6(8Qge$clE׶2Ln{w:SY r^N|/DD1mVٙfQU2xѳ?a(A7a~dtI!pQhJgMLsk{z=J8Ɍ m޲Kf*W{zP!U4IQ=kXkx"4/B{8ǰ<5̖`*(e80]-S@Lm逮_w oB5E4gµa#HwuXNqHvtt%tP,6?q5 *-9o=oRP:_ߗBM)30Kx_jd7Of/E@"\2^ W*SBXUctpI ;5 \=㖣U~cuݝ/|pCêX`}D &bDKDMreX]W(C'¡&".-'Wi8pZ5#^+7%Dg*'EKb}ay0dWo u~Cw/ hf#څpfEf43~T* #} ѩ_n׿e݆y[oTySIU=NJFNdX$#5G_{4"Gd @m&=~K Ì+QRd?;4^YV`ZڑRèx S=}kr!UE'=J|Q]t7*Ⱥa<0T IA,?,xX9g퇧@> |l12U*}9[r]_qڢKv!O%ҝd8O hE={}"ޣ6I]F>WqDυʲh.S%BQik6kf~pX!<0  3|gfؓUJ~EOmkp9<;t&#Q^&lYNXJUJ ۊa؄`a4FխەJ\óZoL'VUƺB+'U'Pvr^ļעAo":tBٯfx adav]HH^]5ʂ-B]a,=޷O27[UZ ںՀIskGk9~2I"fyqUFp8-Tʙ=?r+5Q) ~ B B Bb°Z`{0v. G+CPͥ; l܀CTRDL}Ix㸶k.@ m >[4M[[=+H/슀Ecdd珋]~?=DQ8֞ ,eTQ FG ,xkԦZʋ*G, UϏ3,!Ȩ"zkJV"+'Sl`6g XY9-9A P$L L ]Ǵ[JD v ;kG~M|%@VIpȑ@?f#Y淇y7*g5fe~ch k-j,r,v : G=ߛa:qAi5jB 8@H=lAYMt8:rF6/2a7 ^v´pX/a"t̺m4tu#fNkk`s&ϝe! ZƥX;Ǧ݅,ҬPw@*$H!X$0MmuS|;Ϙh/u !z G;K( n73;ٽ_Z0w:x;h3sS% JōiE q~,#"Yjn" uVO%V԰ ;Ļéhtq#Жa3L^AX9m)x/N'땃ɿ-Ѯ>ίqQMh0W3;<'#,~B #z0V l6+/Jbl+XP3늦}?kwlɢ {6+ݯ'AlX&׆y~~ō^ضsPi|!5  c< {Qq}0ѹ ܵVka4]Op5?CΆ {;o~Y#ؽ~ !8w %v Mwuu`rluF,|9.ΑR6-;;~}~{?OʯD l76[FsWn̂ b%!@!p8kV;;n!hKOlӉVvE&B2u_Sl=DAú 6D՛+d sS Ec7 x׸Suw-BǪO^>2~H~4y2L_dG Deރ=R|3~~[ٹ =Wv8ar*beeͱ8߂. .<`k XD0K\8 nVEL0lE` Čv:3,jJjM u' qyќ/ʏٱ5A"%ͼRUY5(!@W#B &sb x^o<ո5Axrax콳LG@0I@DjG6nhPU23Jn:WtLEtFtMz5l4=IiAZLQM<*ΌvJ(Icmך [WFSuXm4Mbk_i4 S8y:—!d"'~6Rʩ j@ UfY 2 }U`(Jӹ\-n1 x|6.BD/' Y wvtmG6&)5& 0  ?`7\ҜAiE8́/?n(m&((/ȑ |`<C_MOH"7vD&Pf$7բCTu]L ;qCn3%JJa-6MEYP뷅8lG;0)M$ 3%14 "R_As9B\*NMiKsɭd uG8(E~k?OeW0'⤒$DgFo!@DSR;\LϗG=A7u5skma'+pbU%NQ_lk7"*|TD{jNc 6+,Ck6L`ʮ/8QeM\]`1@ت; ZCSNfg;3̡>slYV~.;wf.[p4u#jQQ:vb7ٖo?[g=Q_Yw|7! ?k&vU@ZY{T5eHVMƪ,]6 !7 gc97ܔzߥ zB0k:N61B K&KY*|-IJ^/}^{#a ^C(WǃHl U#6wˑPar*Lz^֧x;g( `e'B[l9۳.>!pf1[PQ>@$ez=R;1Sp!![ 2w+Y8jF8;3WN)N#4+YR,Csvժd_9̷ IlQk˼5%jV'/kA%1\QR/Rq~~>ue=N_Dlat}5 ~8::aÆj+!Q,c7Mԏxb-R6%@6mX.Ektz ΟNQPzmאLJZ›MH"A'V`+(f_psöm >|1a kSJ0{vA|bUej2DMe-i``\^ Ep|pK32G"+d zdEB|S35 㝊oK;tl.@'{ B ˈk>tP:2WqǞS#V@UjBTMG;F2OթW_~0RvB@_#صu7Fk`hBal-g`O y>>N47`Bӓ/Lhfg\M@|1]0;N)§+RjHF!==sA57~k>ֹ'g,5&v=kEXֲihxNM~@l{.}ECrKC|`I&7߁:asJߺ ) !@!@,1&U;vd/ZWf$unXӉDdM7MWw6[ޑ[G#*6 QGkmI5-8 ɖ'<,w??Ճ^Kcc~:3n!8pAR0.m wc{}5'n\Ǽqq߾oۇe-ݰ-U?@_]QceaC>d$4U'q"NS g82фBoљsD&\Rh?D"lgCىOh2 At|bdX8-ZxBk>#w޵VGdА F_'Esh gF_JM\b5`YU,M5}[!؇u,'^.~eĀ"ϗB-G\(=!@!p1hJTPS ՊyC1`2c ?^TgjMXG zOkr[]B/×ᦍz0Xzf:IM]p9i*;STj?^Ў~w;>5*$T3֛R3fN ESc5Uj=d5^ )oWj:D<-ko>"󑱛c Y ::::τgsmح1_ 9B;=*`~gWrO/$6ި8u {<ṐRzVT̹e;T> ֳX $,%_?X+ Bn0z~?- m)..dGlu$]*Il7:9>=l芨0'L.m3!@!\@٤ '2nZB1P@\ \{-XT Vq\!3cFmDBh >p^/t"CZ2,FI nal؎D8ʁW0 :F6?}2X,r8C4Bp)ֶ(p'CߙZopTGޞjiHz\(: .A9 ۇvJ*%zPC=ɡ&WDрhw@_uzh q璵sk`0;#poM. D// ) Q85|xRΟÕ^'hvz ·+|U5\^z OY!@\=\t*\, *ؓc )&$J=H>KMCjdP*dLo؊pW^a4*<)y+<8"p`#Od .nPt`LKڞol2 QF")J)jp60~ j"8ʉ6Hϫ!C!B[9TA98YfT#()q @qo;=}^;!š!hkm+s,Ek?؏DC0,ֹ"NfU8k`B~ܲtWtV3NTwB ˄HKA%#:5Cbw-x2&d h ŇOFZ n.dgv > Zv "sbVOj6!)c֬> N[xf`y<,Ԋ%9s{&+XNešF;ƣxWzm###p«b띿8]88^\0|DFOr6-^:\|Z8A'A2.#B QV 2r2 ɤ'Ӄ7RqEϛt9N2Lg0O[X,,a97v^ 5w^utFM%XB"?0F|]n.7)Otq%]4x˝])m)] dGh'!@@ jcj3FpqՉ!G|92ڹ.R,RҍtIEn)} bh4p>a+dFI@/ŞؤlpЮ@B .3 eJWo*\a*Q\ W\_ ,嚴KAg p4Zٶ9<5MجTt0M\(d NȘ!@FJ9"BH74q[2lk05-+{Lo0 T,eY8NVQrN$!?K*~5"yά<p-moL=ooU37B B A30sADd [5|&(W S!MB B`!T8Pm[ {7:{|a%^]\"PXl,Zˇ_W2걹b%DQAƛ7! ޵پEB !pJ@\Zt I|)QynP3,k;3!p% .ܶ>KlZz4. +X "x%z>uѰmuSqN\ci$Ix\QP+ȲDVܣ.^c/5 B P'5 GQ!hBI C=]ND_Fnze:F5 ̐!@!@,k0778?@5޸2rS4B[P(_L&:z4aU3]O<l؛,/OB B @'fiY>q 5ĶdJX]UXP$"(¼)Fts, 㯠_vx&!{zq2:wWp<ujγjQ8M(}8T3B B 9%t`&Ap  E)2!K3LRѝ'_rA"k9?m?kpp$ǵv,\ٚ:<}ޱjzTݖdt\zer( !@@ B8== +`0!1`zՔCC=*GX,>kF\$[X[t8X9u3oyF!,+B4khZ_P")* BX;P-" "F B`!>W׈v{gˮ|֓u?S-z~Գg<ȫO>S{G߹ P0,ߜɳ}a֋Qʇ*64>.:4Q*TBnࣩRr9sqkUo!urB ?1,3_~hKK5M"WR`VpQ_}}\QQMG%{xާ>F\6bJz-.!@ ܽ)c'tH Uր|ïUvz~fU) ĻGF!#\4ݽS)̔{j9 >pb ,{-%H7i+\ԛl hY.p]lNh6*ى w4?1e`)`&ՊK[~eZ,̸g2JIN1`n9\zyv3^^4䋭+P/M!@,M.wnWD )itHSDB @`ⷬފ1ّ jZ"#m̸,d+Iho=Pt$򲤆]lfKSvsk\TqЂעF yc-Me0$ꂜc[pc(FB|ZO]Bł诱>Q8~g ,H{r#'3۴(g1wfԓT5y yRn} 4gxBdѪr9g[Ӭڎ(.tY'Νxrn hv+^#듵 mkrzl8N7l{ ?7Fl]_|%JH2{l.:99zaeRjB B<@y KUOgS!@\0FGGW` +髄.`4r/O/G~b[1ٴ[=Cwlx`}~}n_/umG DĀ, K|iie.WA ;od׫PÁ+Z'q<ꃄk#=c3v`|` rHVXRVGgߺئPA9ȡ +]9E ֔VV$7=x/u֞]P3mr_I^ g6ONXI'C{1#kɛڍX~:E Ĭm#ή?]_y;ջ~7vyP;:_NfqQih|I` ͖!@n־>Tr(ڸEUDMJdVJ\&?c`(3khKf3ц~sSvqasyQH?N}$gU'?=~trׁ_)Vʦm9.qKIR,\mj!8@\#EXPx +v0=9o񉃕_36 'BA̡Lf|޶ȶ(uaׂQwfcZU~8?;hH-N,L{fűP7=]f'gخ [b^#ʚE\n:Z@4k~^Z&֫qgK:1c<B 7Jr%ȅm \;c:[5#QwK+LbcKp1WtLP2kA_$ gy3 c[*Zi\q˖$8ppɹ \&+텠 ;6k Fk]S{,qWv}ߺt .Ջ+GwޒsñSo=(QcJv~r4۟x4Rd@7T9;o=slw=66:aXS7F~Uk>W ߙrg p?56wl ͬ'+?c{2Ό6q?'ur^y+SɔIy{PrQ%=0=ķؑH&~3ڰ#F(ֱ_Uk?9$" E(XoOe_=<=YqwY{o#x 3{ܑraK6([=Iᑯ?|\q6JEL#xL!YXiS@5_+e'T"*\lWnyz>']ܳƄbe9);NΔj7L4DMʡ\V7Kb4N$99Bk|7hXn}|ٹ",m8 S#kVΎЈf mQ[jT*rb{A :AJґ2_>*/S7 ǏI9=bh]Xbc+sS,c;ħ<͝9A3d7\O`bF:b?ls+W8^pJIDN'/^^pAQbB B`8H^hmMDZ uK[b ׯRΐZ 0s&fLRN=gNe*3e/Owc*LcpgeȪG>s"5oYɵ: |X޽+tp|W S8=WM[(?X(6VA[v uDV;b{cq'Y#H|Pcd.ftx?fX<)B B`Y "._d9VLpj0Ғ!bױjoez '¤2#`?>Y نH~\\۪֩8EN 5 j@qRfnlss,i0-t_v#W8rLyfW#dj:r@F-̗ uh,Jb;j 8"@T/ ?fn7!B!KJ EH\YwG&&3֑Ç1Ѕp'dD tgAx{sT#hjl6q'!.muM] tu"L9^LJwA"9CV [gc%>kpX3m,Ȃ*3D,"xr(wE߄Qfvb{OLZk6.0:% gZU7]'T#෈1F_LA[GnnX❄aoC4aa{x*P(&io0-u<جrډFn]cYu{ SmQ? OYRu#*} x"?;b~.J3ߥxN#73kz2O'w\fMwقGk$";㦐OW3ňI"}+ XߊCW}O\3ys@JF1|rd}O xy^K~#?}R#;ZPw~%ܞSڒQDB B!хdז&y*,/7+QR(H놹́xfY,bbvΗ?HvSQmc.by-[[}T\3#}=ag}i {MGh#bz|.\~z\X!^ݽPo~viJKs/+Wu~HvoyGܾt|wcVD0y/dP^a(l5HzJ楯'꾲}#}塚e F;顡~mkSBe\w=:?WbÉ5}\R؎X-_>Yu{%#Dq߾}+PToO)ݵ/cTD3d%%n[W|exӚnԕm-F0JrȁJӱ=Jԟ 9Vf br2%5M'^XXE{-phX|P #]rⳝQV}^3BU}AR555A]u^Z, Q.׶FN0CU|q+ ۲Bo9che(Ȓ; I-X""QiynbW|cNܐC(i u%G;Kz/&]1wXXs[8,۷vyeFFLd} lB]B@J \x4^yޭ^\`͇qk` ٮ,e0_Y(!@A5a^_#D_ _+f<)b <nd)sVʼ?>g*dr}v²k٭0d;+ɧTZbx|r2|ϯf3&<98;J_{l# $^g֦؋H&i'bRtW~oEϓٓIՙ%~p , B  i%Zi Ysʝ胿e?MP{x Popk7+bi>=}/:8weM_B AU8ȓ^fFוo cGd kW}/>}u{V+*ȖdLpS J(qBI/$BR I 0I^!tWھ{{SJX{̙S3g_+Ok`қ7 'Ǿ'w«v[PmLlS?hz@82bj"LΒJXbrUjݻ'ݵb׭ kޕ밖Y\Q' L~||Ǐkc-;;{^Pjralџ쟲G`,x=_(BGzw߬Nq=ۙxӝ}DR.O~#᭷ G8!8B‚A #4 W#MК)|_ 4b&n`c"w|Dx- !?xiZʨɹ 7рU!( /TnU9sȗ^FDv4a c;Ru 6l7KS\ MgwWq 4@#WyE"أqP=ʲYP #z`Jd3cAQd(2r7{)HdQUCQ1uFê[eB" .ib" j 'tLXDIQ֍J_wZl. \wW =cUa$=4dc!@!(xH\crC?{fʕvꡗBC,50 \oٵ;wn}fw7$ Ǯk|.W{BaV ҽ%>QoGc;w3yڵkSjo@2]9996Qj|n驉m'ʆtm=7&_ܡQA"-^ Kz4ҖM f2Mڨ,c: zq״E;ed$x(co57=CD(Va#JWGή7P%֞=T+K#dᾄkptw`"]cx~Zd2O8r*xnLq%A='v8PxK xׄ,WϏ Ody{0OGb&'mj ְ8:MB ##)P& ̚t@,y4aMqy+k=y8=ËjSe2aFHg6h׼ %GqV|咝px^6sxΠ3cifzoӀ!OW& ٪RVPI”o\c \9[#;O \ܵ!m"#O#O)X5>+p!!?n^gKil%TMwKrɞkx_G4T0p BX0YiWpB:XYQptׅk;a=j--OM5ºkVlc0LG-]+˿3݇s[g\,IJƻF7Y!$ ;R p 7Lg7e[PfjvD@h=".s}Xـ~A K>(H`8cex*r`X.zkĦaݶML]B4Ԍ:Ӗ]Vp!q%NJ*J4ݽvMu}jK"W= Bl#ts .ݕLF20`E{N~e&?\Vp8M  po $Lyx۬##SuX2*&j:WtT,z`mNWݾf5o\XiE&3%-3(p̞BF rT-::2׬Zn=tpmzpپH5=䓹\8/:Q,wyI2mr@Z3\d:D< +M9 QY{S(q}aEyPC2~TA?WI=ÛMŬ ~Z{r!cY(ΣpbvQ|ᇞm5x.5?sIDVUũLUË]w'cs,Hkv![JfP2i,%3˴,мz@$xfWZ[Kή^Pz$o wGG?Y93ay芨oV l {[._U,Y (VkPU8MoKkۜV`6+e^~Ce=l3Ux@cZе0j{c/``i3P9oBVM\J֟`ƃn0,UAŖ!3ՄEu_0z2}זmܴ4ܝ :|-{L~pEbh)j1]{/ӖCA$ iYK vCSӟۑqf}Oh߫Lg;4`[۲xH!'ԽƁ*ۖ`4d@jV -UZ k4QM n  쇛<,HR MNO*|>WX7| Q.c܀3F^nAق]VWďlYilݧʹN,hk|ތ3i+, ݂=%+5ط>ܪլy-xybBLCf^eFlAT7 F h J ̓9/ ބ,2*(@ToY5! %EQLH,^4}J?i3P ^(IϰU%* #,],.xk'rۘE _ ʓ%z b^@B⃺6O6P wP ,8邁Ө[&^fzА'NO"gN*z1[I vB1^dmYt v^)M抖&-^6wB c,ܠqA!@\u+N|iZ+ ,O[Yyr6b!֭e0?{EaRdW!!pph9)ޅZMl¤0?HTC˹JݮYϚRPC2I!Y)޷9TNJDuJajxtd$6P+4^w!~xRXo)<H^V|$}jUdmtu!NsS}\4srl(,[*W>y\g %47a(,t*?=΀C6c >!17$r Bp{' BLw^v_iv myK?Z@x;nk,[ u}gj!3W nr\EDTI!,;.hJկ}WڞÀ"KKV,}~mXvZ?}Dy޻ n 7] 7Wտ?ӷjxMOu+~=~;7X&?hߪK8`%΂Mlyc}n>7]g>7p&vjX`ow7EY%{8f^GFQ< A{{r`GN nAבeqI/X= \hpj+7'⡻BbR9ٽ=Y 7[[>{~5aaYHqCulc?+x?, :(!@gtv,jl`>[/(V8V0w<m!ՃU,&adGX3>:a坣+hHӟ۷q"$>"vvvwyi>u<lT*$tj.4njk]tZJNvFD[=X*vfp0 W0N{ocD`{[;)KLbzШc91NTv M":qm XWΜno=`LWQմh"inP3[KZi9B:ީ-]tX29Dͱ 3:/|i,^GlHY hz[:,t,r(՛P`ųW6`;a hԀIW)gk\YJ;zӑP"0X1sh :GB #x~"9٭tilbژ fzNHdT+h3F3?QnCwE(9}hKr♭b%o`q]C!@ Ldle[ B-TPqGfo,'[/sFoVySX԰6%3 @9lERtQF2wk@IJ|֬eGFt$O<5;4[kםVT,M盲L ,[ҭvDCU~SB8lxzΣG29Z}*V\nll,C]uuBl=t w9ERra!u.дQm2kh xrBdgE2IÙ,g0J(|s;邲?1o,¼DяdGG0 axOA6BFEuveSxIjev2[4)ܦJ1{E#*\W ăG\^ex:AXMTonpĚb,>Mf.DOǚW+[zl"%QPTr*o{[3 t]ulv-F6(൝1 ? l_w/bbbd a^CTJzMӆhQF kknj=*CE)\T{z%ڊ KRw\ @eCl][F g&9r{w#f ᕞknLt5B\*OѪO^i l\O6sOCg(4PjY/rۓN6hZ Q8bUZC2"tŨB r0%B '{fu!/<$hP7̵ \(˚lKz[7:ѭ_Hv%Ԩ$~hnF`J:h8˘fܙz vm^l `x鈫/ DVLW ;Xx`V9Kae #&-8.@C{~ijlYmXw,e:kc/| +(,&6DrP@IDATu'#HP ڢdHP/ BN1#ip=$kY˖-@`FY^Ӷ^Vt}NK(Z\qwg9OoMfc ").9c_>(#*++^n=n {Vah| y8Ak2Fh-v A-GR4Tl ðf١ 3"'tXQRD&βMͅ uNc j&Vj㞥7Uh(l+x\UD$= i]Z">X*k8jXk7BXEA`’ .|񚛛 a!DU5\(ǽo zvIDYI.c /tv ,n57e/wx8=B㚷6ʤ*=e)k0G:u̕+-\gzE[g'F)Iř{I.jnlEts.* B*Eta@D/j ض;gjulKMONx۲/=c_0Ҙ Į|8躩ʞx4rMv3+bI_4]I׻G"9`0}3&ZHјzRæ(W5WZ:7Brq6uA}_X:a5Z"o MٺF &Zԇ8nR%5:VYfpe E%K I#>9`rp8r3`0E( ̧ <\!aq~*.>əմ<%l4bО<{˰@dK'sWpfT(^p/jTl`2h(;ᝅ4|w*"}A'(2.%Ļn eGfΟLz<`M//h , AvĎ]1{̫hDo=چ(Oq(=ڟK_iZX&DzGܩp $.A'Ml0!@&"UX&a9P.dpjcH;ւ,}Q+bU ̕Fq1RiL"s霩u."l}>8| j&PUgb=50R}B6(UIKԄa )ZZJ4=1ٜRٲu]XjTYU4J}By󙥷$~1u YQ.`W\q g aPh0Z!8"D5a`xqj62>(XK, @Yml c>Z9E#~Uvpn"pӅߣfhdӊUH a?y*U".v˸=oFru &er;B! Ʉ2PfIn3{-IFE!@\fHq䡽3Ua {pMe]=xܞO~Ǜk@W Α /wrUu.iqloVhSC8;I/<?:QBVH#Fu% /&~[p42jCnh}ve8ͦe8 '>`6 Ö0 "K*s^}7|e!h8gX{r%0QmجVF)hzjssҽpϡM^l-@o@ [TJWxn{zz Bل 6i2aɩ D<Ԉ. zt-!0R缾F4Td0ى#B .{y%5c 9 ؛ R(Do.DW FackEy`Ty᠍2yoV>9 E<DbB!ЕP0M5eg%8g?3"u a٦X`  \(|Kz$ )bMpM(#z `EO W(bI;k>k82 ~.NI5uqt]ym}\C`0F!`Ox@tL\`~ QLC6Qѩ B@,~N:8#)s/`_Żs??ʈγȖ %AE v|wQ"SXE^ǝJ{Xm˂U%hְc2?&B)3Q$.3v Y-ٳӬ'8Rt$ym/ Ԝ~>jh co|p_ОS9`WB`~`bTWaheT^XdhcG*v5_m B8Gfe:9.''{c29s+J 37b^ǧi{DcC8k3/bQ@'ޟ^%K {On?^p6j`{rUOdxf)!@<4;1#KFhD\.C a8oݔ G^ @>Ǹpcq]\ntUDEd)5YvD \y4u붚їj'ZzS=zζj!@Lb0dk~F)q  Gb6&#h@H6‹..48^D]NJ;m Yهa\֓,X!@ Ye .PT󗕥R jM=B%U`Dh#Q/你G@, -5s}S{~͙ -<5o\!s*m!@ A"@WmddʨXVb}L&0@QOE BDqtttZB} ;AGt...L00"~UZ}cкJJ}@(pD B8 )ku p9ȇ%#Vcdl BRG;> h1,+D/[NgZ7 k!PXE8q,r!@!`y RD\&|Bk=i<}!.0ASĉh!|G"5S;/9@8,,Bk>q.R B*E$cE ciD *N* tZD/N`&lC\rvB X0Ca$֗]>(Wb:uJG'X"-D]E4?)s B B@HhA,JA+^7ZA,|`h- @!@!p E%!XV;>Q$xYU“% g ]N!@ee j:!@N%BX؂wate&B 4+TLB HO!@!@!@I xP!@!@!@EzB B B N9 (t?pO9 B s_ s$BAiSQl64a&:M!p;SAe납dZj%B .1z6hAu]X=]Q̈́!H01A FB/]Yvq^s wSqJt M$Z1cð, q`x(IH0٩q݌ l޵Y5-{]%ۺФ I} L7=\:hIDMPξ"B .8*>?L$PWuoUH_`ME( LMMx<Š8Pr">/aY5(wf]cz>CtO|̴smS\p;ʹa|¦!!JEHxlHˬUh͉ +3H !yͪ( r0gc^^^`JB B``KBK BC-0~Zz~"!Ҏz9@{)kb RDTLgUC$Uz3@J_}plhnl5y(ܡm7/i~UK2GO};ι~b5ȹ X:[݅ ޮm_M&XϪ oȧcbk r0jarbtuKzn\ 7ݺ;,P\ QE!@hNnvyZK\=1R)|]v48|8t6e4|A&[ P l60J%_hYBðY,R:y$Zeu\Us^6 '=[TMOOZvlzbrŌdQ5[qr`y%pE&Y-KTal*TD\o ]bd^}L!@Bx'HXD^R=!0!Z]'; S ܋,^Q=, >'~Fcu’5mNh-TMñUm VcQ,CT=w=(!*]kltB+TT)کVܮ$s7 ^Ix]*B m_[ a~: G j+WYfOjl[q7ܣ Ol5>9U,i$WWv>3!Z0@!@\}`X|0v"x=+_RTU2z|e>t ըJ˒!Yv%4p טJߺJ|ȉ_fE'@KZôe 6m6Jnp##x"qppAmD<2.^P]^rp{Vnem!ξx*hOH Y+Q [s ;r۹oϮOLwfSTUȖl3Ɇ LyB BjE]jŀM\`tqEX˶i+ٟQLSs,XrQ4 K; Ż}EsيzShj{TuARn:Kf=2e` sQ )eҪJO b\r \h x[fYE΅6wd0=׾8܆tyx"BJ _T8걥{0)6MT%w9q$` &dB = o4$.<4A{͂pK!8]vݽKJ(27v??/Ç'm=Q^Y!y\]-BN0KE<Ʋ|s~H^;-%n%;꼒 6\ͻY=VŚ3:ɍ3T[ #!Wć3nu飼)w}EűM~׻ƸPBZ&8Nc|DGB@HČTIz*N /`e"Rߑb Sӓ% 1bTLa=}eeyg̈́J6l- j6Fձbh(y fɫ \ 衞J:̵$s#hh.e=apʲb"6u9LWx9Z&#h4X RpRO^)Q^?7 _/|ussRM uW$>~-C[[;{#sOWw(W /&/~<=w=Ecy흛׈ݭ؂`xC<^~ג7;^|#uͿ5kӑW :vlֳy*˥w?xph$ȻnZڕ gL֔٪ڪs;!;So{Nmxq=grVP}7f7DX_лL5o}Ǧ;HT甴.'m5\ɋz uέ i|=T A#gXP"B .r>ji-OJ60J\lk#ݙX;%[v/TGQ֡:o͍Ou$5ECrA\Rnݺujjjbb⡇d2x|Æ JŰ=}5>I> yȱ\t&c0brT,UNR40#-3Dcj&pv- +(wլJe@jL $QLqkzdd+{FREw-+]H Ëe4TEAQ*˂/!fê׌JՄf=wz*ET/֊ Z@t:u R2^a'6Vܬi,eV]$i ZDVL; /=INuJU,|TQxj՜٬+b <:v=R6#kz01i׬8'_j5ZUΧ?%avlnVEʹU/Y2T^e<7+X [V\>ڥ+sT0[d0_*o7n! kָj@jWNm}zt}4]|E܈-]fm"$KnRr\g O89aW:Z fˎx1+ZvЖmdnO$+ }Q8=}|vY5"}޽73"-K5cOiˮ-<9;dmc?)lz<3_M';b)'ȠkfC7w,u,yS7q#8 b a136p3- ut7͙'<Ō4mqt=!@!@HPQÖ/=>;'VoFV}zqeRc$^?ۉK??;M3Sٙkm30C?<ճ|HĻV&Ƥ3(VlÏ[|xm6̶λHahcTϊ}?}$05n\%@ U^NXเA26w ?7XpBgD0f=:ӟ=>)~_Hc6MtfZu0? [K#987;k_ u9:"sټ vstd[3_O6e2`a.#ɀB;c~D@ X_S ;Ȏ(ٜ%p%&8%K >=( 9B!p!0W 4*0L7޳w|~wʓ֕ۺzk8  ܲihxl8=CQ1C#g Z˅}zWd<4Vĭ`4rM#X:YBg:WrhԹ/O|ux_HF"Դ66Á/>PT_b|%k=?-v=߾Rښ6r_a]3tA.y1}3Q׼sݿ%f`D;KXTtJ%>`Sз[h[l2X٢+= a:a,KY(y=ɈG2=gc1)?1T](֔ cVL vL d>-Kǝ=O8 %̄mexk# rܰ/me6|Ͽ4h7a%9NA@GoGh3՘z_s#õǞfE};<Wr.V5_yu7h2=|5L{|?Ϳ| _F5"Ǵ#~|ׇ4 $P;W&ȧVg^kqh|+۱}'*(!s禣o7%t&fdj~'9ي}z`6[\_QmG;+}>k7 ;wW^ܳMǧ'Rq@ u%Xw+0=h>S[lfPCX"{gݶm[___ggg0Gq@YKb$e GNzFjVKEnPUdR|$H _6o <Y mW!xȃsP{YazP;蓉TXᐮh: ,ߩaP0Q d~Z<P=!n_N4BBa[M"9͖mBD{i8H O+F`Q' G*048a8[r 6E@ÒC4?U9- j z*K\YcW# lK1lW%XqDUzJU 7L8rZͬŬbAMtw166`"IZGE HfkK]|31UCP8TNMgl-,aY?ȱuY6+e[(Q:&#8(&8T~Z2'B-Lٗ4 |a$7EV"k0ެw -KgCP) ɇӽmVA]e#%rNVlskE"G\ޅMK(ζRvVCeMQJR*Gb5ojpA_.Ge{ٚ5 #ZԓB́D[f=)DUYuGOcbh-Ա?/35r /;q+M)a;w\HpmjLr6ٔ2-Mץ˛rլzXFP$Ww#\PP| #%nl.ٞ# u5VSxNP`#`8^J`bSy.H_3 f4Ԩ莄tT-t;[%Ag D;b8 "`&K Dt֪_??^QohBBx-oyC˺'i^~_|Ԫf1/Ỹ|?$t |.$e]eһlSKB߫rv/,[fiTe2 hB 5ຈ>v z|GN f?_;=$p=7ߴ{b̆%&$>_H皛n3stk#:rmWHR#¿HxQ ^wτz7.rnn{?z3µX.a`֪gQ7]z5uёӗ(@pKPJ9. l!@`3g Ϋ ;g?g>BHIOfc`>ّd4Zȓ_l`|7߼'MLh3SW0W3׬; nC4Uw&[{pz;~S?ٯo6M-<'o;Қ.٧~~㑚%uݘEFe0wHrTgwӓg6ǻAQ@B"0lclD#02dIB).6ɝzvlޞ_wuW{r6 .m|ULGƽ{c]傖 r C(V^_\Vי+uozk`ي2'׎mg?27p~Q8pGvGgvoԪXC[?oJxSǎm;|h:pmB F뜷\1AozgEphMU-#QˉJZmQO^uU_~yIuűPDĆs1&XcKCc"*HǕU$ Tޏs!`<:桑D. pzD;.AL}ZXܶ4zThGw2Bժ_>:=HQ &RB;@w@гz+$d!saY*%,Ǹd} &_XfBO Xv/;`rf6b ^. e?gZ3'R0TDE.n} z~SFBaM|Z9*}v_ח?rfAbwqoR?;N:e`?~<1F0I<[ł7n$IVbpW΁i)kh*Zd#+">Tġ,Meunq7RC@`.gvYP*ہ^C5ʪ QNVO1nv~{9CsNP `x]lO)1.GXnp<2qHi?WSBh jp(lN܂h KT`& P5o[BIe:~YBf?<aN `$c( X,œ½Ixƨ".}z=\МM@s( Q|*Ed>Q4J!v p_ xF$ L <&i:ig #7Ҍ{z_\f@>{dǡC;heԎI=%MA OrC4,0CF:ăy_oRza<7Iɇě*9púpJgVYHh$9WR53W(yTET%>3ptke!UVA^d#{saZmMeU!%ف6^3֊񁔝kiT ] 2,[ ׾o&艆pvGgΠcIA t 1#lS;l5.pa_Fa|d0#$F%,懔|:PNp4.WM;2YBA Dj FXᳲpQ B_R0ʍbcaβmx]yP[Y o,+efH9arEQ+[\%'q5Qʊ2E?QW#҄b<}iO"Gs@0'zVsR~ ]Ψ(FjI2i|,s|*g2XUO!`2'E>'rcy]'T_枧^ qlv7$$l@jr1Z:#)W2|t\:g g,ӂ%ڶh0,3EZ m;P;F2_mw e|r(qlO=MVhMܝԂIScrtqD3f'-;zE$EUU_Zٷc :rXI}ڪWU- %֤0dV| B @ '{X{n끷LTiT['7@Vyz`"@ad8XDs[6= ᦀ/(">& ؎L@G] 6eMMMU+~'f Xh ᶹײt$iln,W7[C u yYv! օC8 =U Lm%k6'r0Yee]t1bU:*)Q BѪʸ#"`W+`ɑr^(V1͘vt#h'CYe` k#ku}If:0S U$)׋>]0ʅCxyY?"axY(~iѦ9OQ;9m&"5PYg[f]8NrX+(}j{O $kkMWPXotqTZEPc2n@F2`ݼ {8rRaBZ(!q9~ $>5U :ʸ|:7 (案{n4>6!NaU`'vȡήoeVTZnεC$g.pqF=/$8ZN3:oٙ,kY ] 8^',+S{$MeQG蚹Ltz0D-^nB^`ai$dXAX`ؘ+j0"Å Gf{uq<~.GpAf> E`@׋=}i9`(548.cӟE`^#ְ"bW8PYĸa.'+Am+5{CWWaaT0o.zq HR WV0MIe5>'2*. چj 0{0 if *_]{e{r63s̯JZ0кJ5I9&eӦ&|ΒL~-|a0}yAjѮd&oYpNlmO%Ӗ"Xns6 $22F)5-hꂩgtṽۚD4(Gr; &a0u=/:뗌T.88OEB ss&""0$cCTHuND dF1,.eDute]oZwv`TmN60[\%JhZsH_S}l,S0uf Ú3)XĜRMy;58K+.BO.D$O/2NRVTPf,ǷJ_ek~8'RG0ՒUN6SXkG_h ;OضO'8o,Y|uո}fM!bED1#|'޾`]ے{YԱʡq*CҫZw؁5lBߪI/w?wuїd"p>Z2kXUo EXD"@30x v2a%D8:pXesy4reXԩ T0=r9_b^Y~߮4+l 26 `iJjі:Bݴa1>`Gǂ%?pD m3Eij{:9%&Tx)ҾMS, O3,E'3`>o8E~XBl]w=}<I l'̴mIN\Э].e~+ q Tu6Jx@!8 gk5pii#<Dg{ 'Ͱ~V`{g2ݟd!]LD5>Ul] _t>Qdjიʛoww?^x We2yr X<3{hrp PٗEPLH8'fNJzؖͻZ憵\^p64⎿Q0v= 5io[_c'2}TUtK;NXǏw*wKßKJ-iohiix\CAfqa܂TWo0"@ް<É)f{K~23|r E%(,L,n9e> ={$Un!N0C@R0"|H=1sxhjeMUk|] nOewo8$L@@AL1^ b _ݗ+b5K¡/vov;K >\Wr JJ7Ta # |d`#(gj;=:@Ƅ͛,_`/FuFZiv#epł3EؑYvdOg=!NM1bmZeoYB~Ms3z~sזN] i4qLU/YXѰZ_0 ځo%*IcRz3~NW#}7V]>{D⋮Zg2|!p;XaL(\zM4Q1W@蘮yqPqd_Zܨ.X*\Y?B\&~xbwt(130 fXzԓ"!*Ktl=!vFG1vP.*Dv&cb%IXi8ڦ.OJ 'ń!CtLɈ 3:P`i<SdpX!?ވ],HF0`m^v|3B 0Cl{D Iaop+b+@,j;&f?7^uA$z֘gE6fl#G6>/yM 7(a-v0ƝgOā1T3L7!8,"GO8k׮NK&!E,Euuuzj.E"A(Q%x睦?V0G/>{D~u)y݈&ֿHj QC>@X^'D Vx}uN/s׮ TaE#!A"Y-k5\-qWEH=1qZZ&42B V57GQRZ6s}zqK>Dʅj;R;~E |@[aA&A 3Ɋ%Ybl ,eqT塜իoxMy <3^hC],ffB ra_ŲKpbQ~r"E`ȑ4hSM߬nnIUeV%~5go׮_m&؁2!Q(0u߿B\h*ZAն%`jbׅ"@p]!PAv\1)h*(X\6myVaK G[Xh, *w%`:ߕwsa2Pp=E@Sp8sq irÐUGqq@1~k8kfy^>XhgpLNBa|2̻6LBA4ù\*KU_SlSC}=]D`vh@dI.#%紑0̲<}L/AE+bd`U4C˞0*\=𰱱1H@hƘt1UUUASzf.bˆ ,)5mZ{ʖKZY.Bs !hT^-!-x1В0F$/UM;,#WĚ!范z .? Zey(2i\6V5 #^qS rBW12d٬<2a>G ^Yd qa1R`(>WN-[Vt>$ 0 OĉO!*TSwMk %D GUNyg/c%6udUJL:]ht`1e p]'-yk'l%hő?aZ42xm? 2"|G^mÌA4 UKh *18khOV7>,UX}kO毨V^ oW$,OR8!ɸR@!n*;ݜڿsxee|>R%G7x[o<^ﺢ*Zv1۳~=T%*b<͸Ђf8N&$ ΍Xa;\6Xd%,kާ)O0ᘓ Fjae):h/*, z6-BK ׄۛyتhd; WUEo5R"+XևX35:Ұ# UQ|!8G!Ub %aKgɔay u؞!6Vlb J{lݞ޾aA*bR8䬨[PDRYq'Bq((bdH=1x-*y8x… t.+4pFPǖDtEcV6L%VQP/ɏk@f!>Yc^ X d :D`*]!\h$"AV}R F yD F7JȈrE/>] j<0@`G7kղ%DDi;?t gwgCzK~3PD1b} (&8. /BA,"c[jW*ni8;ȹP֕w\* J#_|c>14|?WDeǿ&Aҵ%Nj&Iez遾Dt 2UW8+%wo7h"xk,ߡ|$;dUPJ\$\'TN&A{pk5鼎iO?Y+%겕e+ q^?_Zxl!0\'5ш v=ySTW+:ՖXz'%{:Oiw8Kf{P TG߇ <΅Ys{a\30= 1C h00c9'(`Tl? `#9)1`L߻ 4V.OL =}]'R=i-̋Inh1>O ''NPK<-SҠ?.fb 8Oha`XD.rDnEEtYG,}aʄI,qjDaA-PLOd|ܜTICw=5/"΁:& %/\BP.薟-2/LBÞ0֓9C'F'tȳƃY/ * h"N0\W+6մ-02/p7p'8aC?˜J8x'ROj&^vm*aF oH, NvLωaש@P 38ŋlfa-˦]'џ85 "El J8qф/N91JE/oTRP806CYeLj&ᅷCcࠝ >8G7г۶`/TNjQ."M;}ݽ}s#}<#g뗭_e!<ʺ?a{/dۓ?RʱN k񺺚[Z`Ћm4FUh fXELCjDca޻mۏ~/dd\?LOXJl W5bAKEEZcߍ|2u`CyGEmA?=vUǙ]/?<gnntݶ}b ڷ,2r!/8Eόpb#ˉRX]dowgEI'+X9͢Ag bz-Z1'Q8044b H g/F u&M x$LB‹{䲸 ^)9ܒ_ܳn/1?ӐI|EPQŅ#A y0ćDT ͌(9J;ְV`UB@FK x^VccMV2Ei_1undioc@DIQf SÌD'~, L-O 9@N<9J, ~/Ο{doZmZˤUZZEbFUXޭYf+|Ǐ?!SG/|i?RG{a!7qnAfau]YmgXO zPiÕDq*bb>&\::\X@4<8}} ctDMV5hXJ },'CG|7d0}ɰ=jp-׵2! 1gޗd.۰*M$9 6{v6k3. ߠ;!1 ȚdO6 (Y1ɠE5OQv&79A,؃՗(Q@7\H/Z0ǁ-*^GG "QatC0tmn?ڸFi.\ |v?XvCғ.}^`5+q+j*nCO1Y7B7&N47S16n#dЋ4Vgd6䊝gY VTxl"-XS1p e >' b yag2&፝Fw9!Gwe~o=n݌Qʣ.]IR]KZzE`zqi!UJt05Ew|<M$IMIJH$8$ʼ#_rݟ^&C[$7nO2@.{Oti~xMT H21L(.,GjuFWa=P e5ko༑yb9x4GOFgզ~iNvRƐkX/ ޳hd +g8`T$G!#yR{ZVa;7}ܑxE`ԲB #:ݾK_jZ"ťLJ1)B)C7_9R2yLb} b CX4S$E9SL:LAs ƜNizdr^3I_bGeT unD^P(ӍAkLU&pVH*HqajMZcO"HLFY`D " \.^K_B'&9-xnHdbpJV7+jzhJ C كBRƀ- G7ltX0}YVjT6ٖUEEKH@YI1v@]yѰ)5>]Wu!)̲r@)#5 ۸Eli@vȩ(T/Ye)2ɚ.A  t4 M3P5 6Q.Sכy Sȕ|MPY]zHJ䂭P2-.nNi]y F/Ip|ⲉa!d .aESȞ|&ۑ¢̑i\c 8X,j=v*HOn??jtxn^PvK œ4io¿ rn"@&.%]0߱p1  pT ̆$o ^ʀzH2,~ "!Qt$?bu x$M-YH.Ǻ3[*B^RQ,"!2 *ب\!I~kF %%zLAt^M^VuP ^`$u?U(a}:ټ1*dآ!b܁]D N@Sf8{:hde)D/rf0JdN_tP-/he=pPKFM!(N 8 k1Ik`:+zMwb!%E|E*.ViMXN2D "81[GtI>p&s#Ʊ䈽} я>xިB$($EG0!za;D37<} ]#Ap#@|d#Q.mǛN3K7|6w44 6Y".TP,aeT׉ XA“lSl/% Q0Rdx)!Ka 'sS$WiSS4a& ƖMFabqqYhX 7fXU=36f?_?tfNǎ b^Jio2p9UNZE`jp u),` yMIˣzOPQzyj$$EoAhxj"9-ɥJcC dy0F2+i+ut$?L\[^",ٍӟ$rذ#M8 _ۅtGf?js|:sss}e7 fݖJ=P,bX`'JNIh"iIpl nirh%;ޠt1?= Y,6I-ƅe `dqA^qsMtC2/\VB,VC.9jzR9"2.Ѷ(T.|ڪ5*&$}{{"tbI~^};j/o \sںxP(s°ө}Ӝ+'-E"PhU4B{/!JKmaς%> OqNN fPE\*S x~٢~䗿qz~_4U-ӆT:~)1ou˪5Ӊm?9m<\ oì8*kDſZun\Kv蚆Ի-{Mv'KBe)U<_Ǥ e۝߷#OpBBy!ػi8 \}]Z eJSPJEjHHcD @ KiJ"@0p@39~ϊd sC.N>D۶)6^^Tl[Ay|1 *L2Gv3JB6IN&9pl+择`nDp][ڜM.p,ÑwZ=}_{8Țcf'9#h^V]QT*c,>|+VcK!qٝ۱pl`Ѓ` m JqlK ^  caeT!wI ʙ)<ͅ"@8+[bA'hmFHDDZ}=yKYA #~JDGL]YVֶ2Td ,2@=5aSz?0VѹWMO=b϶t`O&д*V`I0*˞=T1@@`BF'` h!yv]omg{EnZk &&TM"@a ob421y:NRH Np2ƉJSfق9l6[X:Z4;]Ш)]gr6"yʙh.YFd_:*&sv<Dtd\w;ü/#??z_ st#;QIcX c;Q S_'Üy|˼egv#I}ۯe%m]_l{}%'yƿGa]{ p @ WiC<_Nv#a;"{~7h,xݍkaڐ S(ED60:::`tSaƒG- OL 8]]] 8i uuuhԘ*!/JK(%nc~1J8kJKKW+VJVt< m]7u, ӆ ^ϩ.qpeyYey э_ OI) yQaXL pmP<+*rưdGrJv`._%6-e\}9 *??&+#CUk"!?WV&ױ_:ڰn"13iAd4VauϮSt\m[ncZ(V ٦܎7~&Wx6YA(c1a[`DZCغD2)QޖX<\ot_‘u/ǎaǭ/GMwG~׿<|8`'E"0+c:Wa HtZj[1pE 7ϕNA !E1GX9 Y~8S8!)%E7?,Qb*^+ZCE{Tp8VX}fNH&}CxC DGFrm~X6ܶ򃺑rJV[jJSYDZ^* 8:(#*`M(>i,C\Ä㉞!0Y^AӟS(Զ%cv$>"xBg۷2h m~ر F o%44 a%6&1KD&}P@$E"00yT6GFӆp-zI3 'oS7`~i iZuUd-)>6~9g=IĶ8{r"<F,s](WDNyL]3;[.[ǯX!úȉl1exjnpI#~ŻH.^ +~̛Hf4!0^w͛ҰRm34fP/s>F|9DNsP&@A&e$)"88i  @N9DGpEl8A{VZy(], 7(h:sx]i)aIxq9#+zyzFhk#yGg7cg[6ÿyJN6ϱÅc5MJK)!E`"PAB~%86WKEJű"t(CGNAsקL W_-.[r2CdDhuڂ4*N6'G,.PX(uXk[A G,LH+ 6F(dű2O8Y_qv얗RGZÅcw]]27_}@4 E`2@tl+a%L&M"@ENchΧ]h-[444`s'gL݋++ET.JYw9O^|H-&yXbtx`Ls58zS:Z=ݥ'4P\rF,nDҰ@Q@}4H2;}`f&ETncʢ MQ(3@_ehJ?ȫh " nHhL%{G؛&U((G`z)YN}h"@9G3K5/]s=P]s>qc:QZK ,,^B[qx4CW{nk-Ӈ6MDJs .g{8o8)$.^{I-mS0M"@LKags=O<:[g2'#إFͰ:h\E"@PfJOس3ufLSC+\^s/ڴijE`bޞ%Hꙍ%;t o;Ow^;}WP(E`VtNNy27Mc`5M P6\A$N32^js|1M-1S*ģN:=9Ѓ`/: /z 62 E`"1duN`}>_~J(q@dOM٪GkcLFMÒ}ṣ/<'5- ٻNmN94Elqi(K1_~}?pzIx_\y5+Q7Ӂ,Y| ƈޚàO<\s?1oO>18t]!y8f(MbAy趠'y /JA\~I73V$aQ[+,q.+ha&ٴi P`ӓƞo}–Y˚;j^qL04)d$I3Sա.]IC7?&[ot COsa6QW}aNS\pǖMG(^~M;>m R. 3#dK,]evIU.S{7߇lhj竪[nn{PW?) 胱XeDq> ZAا`ZUU;WP8;:#b͜녦P?]t?JNaI`uTq IasFU{_[X8X@~[;|3\)E`!PtL2-*E`^ p1E0?7 N[׾EN*RS|J j?󩸴ELoS M"@P("pQE;1f笵Eo3yt%D)xQԏ'㯗~qP|8Rz"4&E"@P(E"pe|sJٰ6E:u}ޗޤP(F G~ +|F8. ox KA@P(#p1E|ܻ{pp7O>5E"@{?2?I5.mKuBh`E"@P.}޷]s~ڞ''Nd<-E"@*|.l|z/:Y$i|E"@C`E}Ƕ~:rh\uJ9kxPj)iE"@JD2$)WN2"@P(.bB:񭯧㺓y(( dҡq)E`EH=ߞ,idY4RUI>"@P(@`Ecߞ$ 5(z;%P(!yƎɔ bKj]c?3IiZИE"0#8 ,~}KP'?%@#R(ERF`~Ec׎H ZXw}P6;E"@wX=zJ^eKZ|՝"@P(<Kv!].7+XfUP(%#ݝڿ/Xb FZ"~4E"@;\&(˲,m'*Ʌ#vJNcQ(B _%'1TZ@{KNcQ.J0tǶm-[aY8^\!<NJܥN6;mciu|C⃡ҢXE"0JV6E?%+-:E2g2@:ra:^dա\ 9@IDATQ dY@@E<4G\Ņ͑J^4 E"@}m[>)*}|yE qińƎ*(R)]Aq4MrŋAӺ\RI5M+PGGI(p,HY\h}XPw?wdqix@OV iHEt\L|\YyWI״)=pIѽZ~bWWx#B@(ǠdY AR(S-Ѩqü0]__XZSջLz ܶdix@x IX{cǮ FL/ WcJӑ=׾#Rs{lX Ef b@Y;oOA|>"I!BDK k"tq6L RNE%rEoGYYhi"0>Mr }P%-+]֍"pQ o(j/g Ţ)s<~( ,O`1DBD>=Hڵ 뚰A555g NQ(I耶9憆xss38$~N>sEhUWOGc3 \$vϵtF?r|9V 'w$涽?+ELN }Hf`6cBh;Lƀ[47sB]b2wsS5)Է&xhȹW3KKˑtD:8zf FQ`D^P5h3B$eN|&.Wma(ү[iO±\{p?+H#FDߏs Y'Z٧@G>ऒ((ESm@XaS4QD f!\4 h/LBE$VSFpó$<'k>= sj1&ك1A.f-ײT}@-RxvU, '_E?g;gS_cqQ *v%SNF28cp#l`$,z괜@QucJG4v@.*f.:1𱿱:(9/YV߿.-^vƔ! 0} Of5f:A&(Mr/ۺX" N(@7ABl=)1N]Dz zmrb1YB9R4?`4C ,G]]0hs= v1,ApuE`. 9 Ѻ1J_ms |YyQhȒ`%?rjo^D14`3#G@AEC~S7 Fl(IDO6ڙ\ D,ڽM>jm(1M^ oc(:$Npaf mb$Hppj4E"0S hhyFl_u+2< F  0n0,PLbDAeTF8GW XpD O"p.% vBz."8bn41lJ?/<.g^ۖ}|8r-ze`@9>P3VGp"]th?ɗݸZ5o 8~4Xyp-OC멼, v$h@^{^H,V+{ޢH(t=LGƕ=:#:Nd4E!Ya ՆmR#7IqmXdM"@( ?ĺ—ND+]~{i0".fx,aȳ]zfs&..byƩ]HK8niK S_zWX8:Z.!)b#3r-̥5k&iG!'e*ؐWFB֘&O湝Gh*;JD3V& u|8cv5i{`$˃3V \B9===۷oc|hKK X86F?W p}vb_Odcw!W~r1čj0f[:]$mJA?o fI2oX̱gKݤEUS;=@oUZZŤ2 VBFxlek% *<Cqt§bQ1e;BZb-)/ ~E,eA Β'DL W|ŤzUw)4 EL`!4-L!ayZȡ0 MvڅwuW{X]i5ԡ|B'_U]9\V Ơy\[HբeM-g%hZϷ`C 2hEuv;i'rBb0\2ؿiAŪpʩb0{LKuUV`u3N{8BB^D<29rS!= 9: + G#sCV.BY <2zJ)~<h` D^OXhR9|10?_cFNk|D\=-i + g`k;scJeCYH ;;w =>j5'zbnڵwOp_>uE}a_Yu TaCyLNx O<#!N`o8_= X.}& 2q pz6G.bŶ3ls Ol, =3ܻ62L@O]P,YgVp҅oZ|G}[?vOs}uu+* /gvrgWE$P W:cvS |~EUa7VoбB6zh ( []}٪W[.dy("%0hi2Hh cYȿiA6rz0 ͺ)4ʦ:& R4UI]-?{6S(W2"Vsص:̎}㲰O+v>~_)뻷hNq^ֺXD;#TkG#,psս> 3lsuYWk=ێHbKOlxdh`73+4a*-$?s~{}9ޭl{~y]ae׿ghpwmǶ۾Jrc S {t5>XGX?[7eU}ӏmٵwFapSkW\+gecpMS~3UYEC,Ϊ+X-Q!l߾}Νx1pE{1(6775cģ:&2Xd3G.foáI N昛U9rP |ϯ d`]P.1X =ѦR޳G)uzBqDpu2٢ +(ں+vQV l+,̽KYa6n "@_ O[eA~|ڜ4E!XMC0%Hw*klݲ9E'j4aQ8sL)g͛F7 Ɠ-1~[@f(.UL#bywQfM =7oAaxҊR ޸'$/&Ѣ9(rgNWoFK` }])p:=4T,p*>3J>P,7bNwoݸasϸzִ@]!cض: + 7̻L\.5u˖LH򅋁tb0 Q6-)zC zT#1;V2sƏ}6Ju#?w ȴ9i1D3a1Gg lt{gG,t^Y}rkp=mյ?ٛhϓ=Ņoҵ] a.-fnF|ϋ*eCC7^U% -=w]oBrG$'#uߙ1/Zo7xb2/Ms۾v7]440@&(cY Btu@>RfΎg5~ѳ}Y.rOdɻyU^ tG'oK&]{͟E\8NuQwܒJ2;mK QIo7;?rC{ỻ_/Zhלwkb s?Z+Em``E+J%677J*aLQBVTI Lx9XZĆ61j@oC>Ԋ[CB,&aBXb*hbOE0 (Y5aH)(tP,<`  1(|[ ɸMb(oܞ:N;BKkC&x~Ic:*Q~~LXE-{,;ф.=%[5 4E8is{꯿ر56FSdL8ȟ~/97(4I֢]Lo{778[#^rN"'`sҖ7oqFY jkϿyJ,]pϖo/^]u_LeC, o~oP֢Y?ISރ^+D;nFƼV]`ρ _u4EA`tsNy(>q@ˮ@ F:X&+s#L=8l_FeW-xqW23Lrk?ɒag4""&dq\|{ro,sڞeuD4?Ѵ&o@-xvFG)lEVhX%puj})Qg,mrE,b m5eU }0' 1 ,3H k.[]4UBSFMqcM] L)E±ƺ:L" 2ā*6}Oe:} 9(Vk:Jt'k>i4A?\^V%+iɻ-ɼE'h 4q ne/O&9ڠ;hCfM$lAF)#.JNd첉(E&FU A0˕_}bLteN>pﯢш0Yt>r->(qV@ buql܍փج}J\[ ̉a2I1pNY+8?/fddN`QHP=contqZh@+־%0[`1`?$ ]8sc-bVks4>dĢ(6劯;Fܜ %VeqD%$$("ĬpCD0dMBd4/Bk)2 gO0rˌDq0{0&mP93u2Ħ3#rGJ$,J"6)*u hj:h+ncZ] CVn] lG3 f~/hE;(i{.t..zʹhhLe9VHeq^|KO\P(@[{{rZ!K-|pۖG5ݰ_~O~ppFn;횳;Ni<$`O †m~uonK0wz{`s(:Lؑɤ: ]6FGx=ex=Dt߄Y)CoԢ>#.u7uL iXDZm&0@EڄN=2 3eu̦'52KQ3_p }(~#]+לC7pYJĒf, l j=Kٸi;S7Ča\1BC"l(VT o-j>o @z$ =YִП5Y`R)_Ŵ:Ќb2 tB"=]{Zn x1i=<陣A[1{Oz.}{ӣ~d?omڧ4_yQ~d\#o2TF8 d.aPĄaH/1þ n`NxUUd?Rb`"Zo>U5QV`2:T3OmTh!YpcS k-d,prD‚QI)5TRt錉H$דTJOGT\\3bA؈ՎEVO _=ma 1cek^vYBlAQo >67bO9>V O\_Pw#'RhZ *;d$LuX^TBל[2:[B%*`kt,\v֙xlf=6٢$E>ey׍P&\yxknɹӠ>|pW2Z0Okp.]4 PO*g<}4>LV䷣ܶ:c4z*W.hWtG(% ;K5l{$Os3`.S=^lNd+10k,\ C:6YQRUdh]pL6,EU2 CV"a9&D ØlN;NKumXhgbP."B[t rD`Q<22X+h%c(@r܆i*|hcCaz~A羖X@qIھ-Q4񎯞 Lh% qS֣7^ddĞd\S{%Ċe E24;r:Ϲj l! \;ܚ]Ip?%r :y&\gAyV Ə\'n{mv f뺿x0k}떟S:ːlB38ҥRzpϳO?˘?{`ܻOPEu^ҵ }YS?COTLBۭ[:b3ַB3VrW}4/?b)|E[ÜYaDo~muǿ%.^U{_;_ݥd:w1U&K  ?ѭ3]'>wE֬YW1I¯`SO߻n|'e ]sūs1 4?0vYG}m1gH&m=y VT)JւSORx0pc<frוFlγC^ohʺhDrMzb Ai\ Gph2ɻ0(v?`khW-}8&iXL~q`WJxҲXxya#!$I!:.yJ?&j-ttWi ?sRe r_* PabŁckpuD*j^r@.rP?S4WU#Q\M霔̩Hw-4 RXB@F !Wb ;z{Dɷtݩ>6IQMEasb*:>qVJ|xT_olCᖞ̔!\tՈSmKW664#mC6 f]sOD99[̕EdITO;H;krǗ;sw@`"]$rb^+ y)oy!MV6ȣ}:6KT~Xx0i; 4lCR[ -T?}~O"b6?e8l W¹FPe<XgϏD sؒ`‚S@?z`y2pU$zB*:/q;PwۆLո^-|yxxOtZɾMa5atݽ5NkDG7f31y*G md@FAsΤwre-I lfixJNPxOXʍ l-<cA ߳%]ڨK](|nw6^֖DAlxÇ9_h|_m^JC $<$Qd%?f&ud d&U&#InN`p=`1~תJ*6>GY'Ľ+[]xk^laCؿa_67 ; !?o)ff9{{g4Jҳmg_^!$oA)7P~;xZI猝f˃w%VZ$f}rvk|kzw锕k>u_kUDݣQo-H{>=0ݷckqf[PJo ޵YA : ؐg}3=_#f+ ^U;b =cٺ_9pCpͫ;+塯w,/iYtepD9`Xe ;ab"˶@0rs1(ɧ]$O%+^`@?o $m_/->z#[73L}羹KN[y_j {~o& לu)N}KpQOWE> ⸝WAr5l$c*-q!DHl>§*2Wf۾VVW}g]ڃ icBwk+V466_\M iׇ#N,|7NĮ䠗<#ʳV^ݼDrBw=b*;͹).f,Ӫ/7ɻnM ^l (!qK,L^lQLz89ϘC Jcytt{E(0i`JBkZsus#fJ1>>1~Lm ;`;RH|<lI G_&#|\0*Ĕ{@Y wl T"x=k\Ru#QYL]1TM\4=,B%FH+exS:x,Di ) .l;FA5/h\O{}ڏ*73L=9P-v:5m"p"!@@D tF7/?9o3kU3WE܁˗iq`a gnUVhY]2e#j uˀYIeZw]*! Ϭ0oi麓-0+?زVjl_qixňu 1K>dB*b1xZ&_v2)q'YCH9H 4x⥝u pW8tph %NtuX)E5@"n2Q%O$ؾuMu~!@Zm>p=NEnc)GGh%M' x; B$IS]x< E=Z#NW>:QL^ƺ&bPumsMjCw]|ft -ږT&~?)-'w xwEoߨ4GL_޷l׳N8rz\Fgj֛٥Xc.W3'|a?##Ga 6bnS{XC +֬`r!}@IDATWgFM#v'} % ӵ/nl޳/,6,r-]K֜_{1oXDA-±fam٬XuI,j\.>o8TйEҟ_? O;xcN(oGR1y\~ۼD@m#(s2ːiǫ̬5)tG~OeP8xT^Ʊ\dM/n. SHkP ׭|]2[/V0~+=v=v;_?Ӽʳش`h :bĮ+AuQ%_88UǺ4Խ ʆ/Y|M /$ kݫe >l^`I%_ ۿ)&`|]'s懢.d$a}sʁS./xN!NDE3).pO5 Y'WmxP M' X D"7.^VU)Y\#N L8JA^CTiט+\tNV=HďtrFb;\˜0ߢ>zIpcciܓ0DC&I3*!st_n}70+GT~n&Ц&pEH+oԒ%y8]*E`>"@>9v;_!i~1 -e;~xD%_omCom>/iGc!$"a;Jl*j{跞Z[5Hzx ^R|"ͨא >CD9㙏8]}E'`(]&`"@b'ʋs0 xvIu]7'M j"B@ՕrC #/9\BdBb9 g<mpZ:!Ė$Ժ9By\{S~9Yzӡznp{GOwi}:KiztbjMV18 豈P/0{IC][]06\PaT}8u{Kg ^]:M)73#P9 {kG +>2m?ӂD3'*6QXAExoWt3]ΧnӶR!x%BZM.b Il +?~iFq0B8F9, o. */0"?Lv_n+yg 7a,6a>%kU)Z`9x._-eWrJɡnO7<-Q߂%R8#s[a,bU%o*jVWhQ /ӻ$V% ĤGLM^jV5ZIHqௗKbTGJOzLoDN(0FM0(u^NXAu1OWmјf΁IVզ:.9BQfvBklg^ʢ\DiêYcP.җ}β+xX8V.HmCxiäЄTNN~H+=@y XnTپz?=ЃȓlV V+uA]WYVP;ޒo_x~& JfO`58. `U nT~ =V ; q"+6p5$-gWRBF'] CG`- P+E\)Z%jioz+ZjIsr.қI|SKW!TYtAĬfܣ]xnjo-$ ||x7=W/O:x ZuƢbILYQᕀ VȖF xI/Fj}yT*MCC,)C;nR4-U޴GPv,ZrCB2V G`Mz: 0|TQ@E|@Uutt$el1)(#{zrYXN^b ([! AafF{-xAy}>_-GRKyh1@ dQšDt J!A1%;gT3LC W^rhbUWgڼ#NmSp is  ‹Q II Z Eio 7{vۿIuWQ)|d]ƊeMbЃ!"G X׃8`3\7ܳ{Ӷ=npp%R31\/ř'v{a5InҮ$'Cg3^K֭\hx֦YOXZۼ kޗ73楯);g{7 Y,Ȟ%b# D8YpPF[%[DDk2#o( =\.ge]ӛ;:zgG* Ԏ 3ܽ ys7B.&k,=wTxio>i<4E hYF(F"pEAe%e%hdi+nNsQ(G.3H.xCKYumk)"4}~z4eD s< Do\.gۜG1X۴ܱtx V~I]^̸bz<~(έ"MpT!T8;.4 KYQ>)ԝX15(ᖕ0ć*i)$EWnɨZ)"e_tg>_Whv ۍǞe1V?需XnKLyp)BFH C^4JG8-^ 45ljPa# Z(Y}2}p@Ci->\xeoݳkO&,f3&mi#Px)iNR@D//@|RL&ϪEJ3= \[?Z]N>RWWSO=vD rQ_?{?c9b4Imq$pRIQ&5y$wl4T_)BP^'& HA'7l1E˕UR%Q[m ΙGp_AS@S#.B2$3żǧ˂.@vfcc"X8&-m&U8eezvӟBa0]dZS,WtԶMcpS# QWЂ>5 (~zJ#|!S0r `+( X"2ýhQ.ow^%Ii_R`_ӺurHNj_F 2"*ްT(z:45B䖈Cp@bhO;Q\jJ. xL08m!]- X #(NݑuZ%XoOWn[ȳSW)`}%xիj qr8'gHӪZ{՛(K=DP|ȒS&amlx28h!x U'Kq⾅7E`N#kd > DQ\>ıƞq"!XUzoS7>aNbM^CZ5 -[پMHL ۚ /*pE;`FDXv L \QņPf^P;`ǐڐ%Z":d@&WLI$է`\4I bBAD;RnʄŖGzf5$}:ch[p2 yBh6?R$tU5cXxx'i|Ы-l=߭v:H,[N)*@q4cɅ!W@E EܖV!GmE]Dh9iĻy˥cfkk& @5'd`P='"#{c%zoE`%ǁ11?8zNC{R3hEMKb1qmY)0Ӳxa&E"DwD&rď8ulUzAye">)6 _+~OWQ=jcCuDD\_ o{L:K["4D."@TWtUjĉUXSrww~[_eࠕs+f(G!pNCli?tUᬧʍgׅ@=.Eq u~6}g!pѫFsP%CkA,.1`A9z\=Iz[a@)x+Qj?t,S7ڱp].:J8`Vv[DGGCkma]ݛ@aE ym[wֹB(oܶeRO_-qVNݕDHGw_UڼqpYyUA3y$%c@^kSIEfkv"@-riޑ5PjkokLQ(EFE>%Vj>|? ;E"@8ع܎1jjX|E"p P+a;P(kN|õW {SڋМE"p"#`%|YrE`x֝z"FNP(3FxVULlUFZaiÁ98K=S{eP=?I;`fy% cIcࣟWT;W\EhNaG2+yJ+6 zm[jQ?ZiNAxq4wm EBEN_6X;;sWEhNE"@8qHy۶_le?T{"@P('ǘ.b>|{7M#O$ײfPfP(L _ti>ǵ‘9E"@cOjiaWcdܭ7v">~2E"p|!`G__7n+vVu)E"p 0'",YwFO<6K?0R43E!-L8"d^ՎmΟߢX=R43E"@PN ]Q0F3#D|?ޓriFifSuqZ"@88b?oFgT-.W\fFhf\D%i.6"@!0e+߽np+RLf=UFz"@8$sLrꌼm?+NKQ&-V;wts8*E6|ß#ug\N2Gsu.!#@2KmotχfkW>%aZٍinG`T S4]b c7 M>a ̮Z"@PFߞ֋ϟiLK-n3"@P(t=؍w羬^u S?~P(W7oc1E]:A!l4;E"@PFtE׾'YI3;ougLo7(E``M/9mq˥͎ɢs_nu7h)E"@P ]>*oBK۬ _/}'%P(GBoy^L,sѯ#HZ'E"@PN]ă!Qo+aۓ.0w48?wSE`"@mt=ѽgdUidcHKR(E` GrVQXcͿV_oK!7rMs6U2'(4 i~D'>[ ۦO7jR-KO Si[)yU|啫c7w.C"˟tK"p0ஜ.=OX !ELk>u'|"p HgYnP.LN~緉K"v__{K=Վbm8E"@L9</yr>aLKU]I4E"@P(5" Ԙo.g-]K_f~}'9:4n^=",:hYE"@M?a  >+~7_)E"@8tPJWf~"t9Ρ@ELwrڋ@SN:Wv? h(5#n@{ͅq+R)ыS i')G.VG?_7R~CGCC_y1z㺖i<;۰~R&nkJ<3?k+e-Pv\gS~r  `DIldK%{̮gvfsΜޙݱ^-ْ`I6%QĜ3 t7:C{F# uznpke)-*c9I`q)XA 矙?.^%BxywUm 8.4%Y%FH @v|gGRZ3::[qw"d<$P\-+f %@ @ d-{1*7K_`U[`i oc 9cG~K 6J05>IHH@ D%|,&HnP-1t9D#L _kwƣLn5'Tı۹ *>_ovK_ӢGIQMS!oKE.V8õiw 뿉f3U_zmpxQ680^sb'*?ZcS_sj(t% (+1$& }s'K?GU\.cXn6 l*J|YR(w՚ėv? ,]XaW«/B4w5sv3 )tbo{7H枀ϥ_~qGJTe l_ |3.HHH`^ ,uX7c-۝rO=._dx|ۮGߍy}E/.D 94z)H/Ū;-Ͼ3$@L@;x ̄iu'?߳<ɏޞ.WT̿?u7cjExHHO{nFGgߨ"  cbXgPx?ʋ#\5Nv'_M-oxqUX X.8웯%}2Sf_ﬧ([?ogi3%F-Y]Zb\|e s#wbuK_}IAD(} ka_E Pix*Î? 0IPww9իTmUT dΌw ̐ A]L0t q7V/_xK:yrrŷ^ǚ.;6kkk+ns~nω'//}x%DV[պx#tTaXH`O7\HH(~+z{;s:Z.hǚ{JVEu XQE iC! wvI=8=JU*q:c}j>qzp \$sh_=Š쇧Ji;=]N &@8owXd.%:׵{Xz2U:eFrlZ2v@VD"P<|pPAhUTBB%B+*g EA`UB^E1$P..5c~#B7x-Ă˱m[Ǐb-Tޔx޵\;iBO6Z-=ohi^Zq1ţG E*Qoh\yf&I.ۤƻH>@-pIU8 (5_ηޞ[* ,b܂z{چ-zjmmTE wՅe)KݰBǠB]mB"]kq$@5Ferj!BrqTL55k>`Xܵ-x7iF7^%Ѡu@@ 1ج54MjCgN%́>4o 58P݄,6ϲDP,]&D$@$@$P(q]Ê20彽;6sK ML:CE۵r 66jI  1٬g! Mf!́R_EON&}vuF6 eW\UW뉆ŕHHH`Q\\TĊNXz{`k ~ /XG>;kPB:Vֆ$%ٸjЄe;²ٰ4u75*pŕB+*qF @u P.V炈 /Aұ2?ǥ4zv$r0TΪh F*F8#}#,@.:0Ocb;>fYcbH+N-W+Kpy[YY" +R ̄L(-00aD*^sߞ5WIXϥ$)P)KJ˲VP2u wKu;91)58&dJV7݅pvf Ԗ?_! i(OQx4V*w? {J=owSPaJ0{9Ne%pD d-j^KȲ%x [8(+E[sלb\fvr6+,Z>$̃ œ~G׭AnD}8" UNP, ,H Z*STCK;cs:x+.qYtЧÎ.ϲHĕuv+]t @MpehEHt&k"%@8k3us^MzrA =ǭX=А=Ad%A@ <]Fg!a'T"Q= YDpr">O \"KgDjC#wiz{>{{hD 3"@G@ԂuMzs/.JE$@H3i#|&MMrwN!cuȨk54YBFBO/ݹ=`R@, [˲hja-D $@$@$@$ P.._ǫҊ:4kYJl\K N !'Єa,,# '.<%΁' Aq"Mom;; ,/L#Cxyq7̂%0ADZ-N]\ohPxl1   X(u1lP;ti=nNRHwBl1:㕓S"S*T~e֕`Yܯc*f$@$@$@$p(/[ ?ξ[,@CGLJTjh$sjŜ';jإfɰjv6ds]UUPl=y8uf2XE%*^_`yHHHHP.\@ y4xˬorlqGK#uY#9zmkZoc"NN>:̊C/a,,Y\ck%g8?r*@q"&ؖUY$EVWVPVn&C:B3)+r#TsHHHjb)K4M@tPhl3HHH$ @U _dd$@$@$@$@$@$P+(k&Y9$PvY~~ I fh]@$0 (g*$     Orq!K@$@$@$@$@$@@rq2J     X(sMC8#   󂝉.nЋt)' "&Iq Tb2F     5P, Tb2F     5P,A"s ́C$@JrR %H@Z\" %@`#ENrqW O$@$@$@$@$@Crqv2V     X(y2$@$@$@$@$@$0`h@IDAT;(g+c]b"v ɒ ,nYZ4eFIU_D HHJ aS& @ P.V([*4WR`HH`!`ky#Krqs>o0=}&L$@$0S*+ӨpHj( @-\dYHHHHHHj( @-\dYHHHHHHj(-%t(je% L@H x!F?~^Iu^3Q  @0U: O Tbu82     15V, Tbu82%E#Tu$@$ /uZ#@9_+m[oF: H+;mZ8A$@U'@Xu h*|5$@$XI0K}1$P..bnvyA3A$@$I4LXȂHMrD ŚFHHHHHM@vj292{~]$@$ QM.sH$к%     "@8W ,*Y     +sE "@] fHHBH`v_XIHHHHH`\\rZ=$ 8,Kh$Kg  K'@x  THHHHH.3d $@$@$@$@$@$P(kRYY&! ѓ ,  EEz.U1$@$P$).|p! \>SH$@$@$@$@$@5@r*E      \>SH$@$@$@$@$@5@r*E[2 |\/Lw~nS`W N$@E@Km!X((JM0$@$@$@$@$@$P..`fHHHHHH`\\(5|,ud$ anYh$@Irq>3H"c1$@$P{&[%kvY"X(@%0 g*WE{fHHvXYJw Tm&MƵD/hH>ɮ4-.bI`q\\\ )rHHr0 کKHHHHHHr0 کKHHHHHHr0!@KYR XD ; %@h?pW.eg$@$@ @*U$@U$@XEHHHHHjb%KB$@$@$@$@$@U$@XEHHHHHjV;EaIH0D*bdH伭٦:sriTr\ډ3>  Ju˶]GQ,[(E#rCr2=q\[v elɘjV]MA TIFKU$v4+LH`~ P./ 6B0NjElD{lrI,bj AvN?Q5醈L͗%++jbUgG$@$pa(/C/)U/7hzV4id`*TK`aIH` I\,6lФhD#}S-в8 @ \Jdf0ʒGU xӖՕvj[ҡ꒭;J&) \͖E'ߣ=]UIpB$@@r%@@tq]|!BC* Q&H"Zali.$@$@$0: $(N[EH8HP.V}4U%VyUˑrA'USA22  9HD"T=:rĐU8s I$pS$0EE|E3E$x;TNt[B$@$@ArPa^tEES]Sf'*@IҰ8u4IP.Tu0%62ï˖*|2fՍ+eJQhF gl$@$@3"PUdC28f1 To"b  8i0u0yd;Jɖ0ZgXZ. F\HH2MC>]O U%un+@\:eIΊ1geW^ .Q@NR!j2g\$@$@3$v Pb茊+dY+3 A2 y P. /@3ӄQK0$B"tskP-Y! sh*M5 PY2bsIjbU(3;ʾ)OG2:b\1XIHHGld-Re!aRĂMk$@$033PKZn+A?qC~*Xz X 8>qTA5Ir& p5  8~<#&jd\K%X,2 ,YHYYL      \1*$     Drq)6J$@$@$@$@$@3&@8cT H$@$@$@$@$@KRmHHHHHfLrqƨHHHHHťT,+ ̘Q1 ,%KYV     1b@     XJ(Rm$@$@$@$@$@$0cڌC2`MŇUQUv%ױl ["˲",ɸ86;jNJdYTt.!'̐$@$@$@$@$@JrC-[J˒3.2%(pSJ!pf1?6bێ+{zاuA]HJNRIɆI4* I'}     !@8?R0!͝bsds֝׳iS͕:'%jTdLlҙ]T:m a^HHHH*ťZSA[_1IOsvtta9Xf6 sɠ5ET7u* q-6KBrlLmYѝ̐^^*R/֎yYbP     (OX;Ԭ#=;~1^[L"K{>%\EM;}Q`c_Ƒ~ؒPC}[sKGc!3@ $@$@$@$@$PU#Zsm89r$lK,8\p膪+:]͢m),y۝KL '*$(HHH`4w. Tbu8.X43gAUr4w%?LpMꥩt4Ԕ,F/r+?o5PK\qtojϷw 1oDܰKT銐;=!P&1M3eY'S݄ L'VM'=;$@$p(/]Mݩ`"B%E Lq꺸,Y**) ZFRSēhӲSYR աzC#%YU4scCGGG[t6sܮ(lR1Ť'Yt:*dK ZBѲT*R W^jJHHN@B hz*^ . ȿ$@$P5UCD#BZT*'RMF4dq IPLPm-qCSºM\Ld7ͺSScmx`"몫0RlM F%ney}KS@_XULh+*[[m1eh  @_nfF-b`EH2 P.J*XzsԮZՏܔ}/f$w'o7`seDq|o6]*A{}s;QQzqB?k_vv=7[?L b`tÏO[aԙMWϣm;LFF_v[[[TG곹 @U ʡ|>-آm hU3#!"@8;MjF5$'~Kz7Vj2yL7m)kdTtb=Տgo mO=JESI`({@)J*`.7-3fCc ہxǛzY0-Va"("'0-B+bKh/"o$  %0:v;h-$@JrB1Y\GP|&7nvd3|gL;nt+e;o17:shn]jL/TH ^~ðv{D]W/_ D=޶`0g4cﶶ܈-#JR3;c1:Mu]]knnnhh@a B$@$@$PMX ) ǏqW(FĎaAJz @TU>ćKFX+HHP.^.>1Qe(I +;P!tk1G".<}TW*F]0ֱH8]ksC#<Y]uԴ])-ILL@(V\9(-3:=9B{\(pex1  4h0dۑxb]҈n s\<0e*&KRmΖ^seڄ=)X%lmR?$pz]IV\է@uEt'˩P(oljjŠ*&EE*_Qj踬)Q/7F0G!Iaϛ^@Kr3 T}.:j`e9.Gw|  800B(Me&3H.%OZ.|$>B)Yvd;f.ٶ ǥ#y%~"&54Rζ`Htl s+bul wUl)X&y`#q7C#Gb^㶫TECһː00bvKGЅEq24f4sIv'(zdĨix#B$@$@&AyH.ŒMrO9/=gYϐ20$)`اC43BAI¨1zƽgď!nѲsS*8Vi'+>/dF?UtnuD5!AU-[(0VEtF=#3>1[T|Ԓ^}W ؁3"W$; '^Xfh\P0 U|rh4E 4# &@|U(4uEVi] Rl2jvnh` }WTЩ\GpE5D49R)SpSX8-&65YJz2'ɮ9: #pߑT''gM˰ )^8KSC1:O.R|6+1T-UT9Lø"`Xp ELJF.0Z2L(< ewMAvW*G2l۴Se$|!ljk~tiLĝ#ࠓvr,UO߯aS  N):Hq:MF,xhj$vb_x0Xy\SSc SDsK ahS^PpAk)F$PuUG"ClŏQs'ֱG-{׫*V[*U=s(=&e-Ɛ.[21xOW`rQ#0.I}xFEmQvmYV#ÙqKNW7ڢMwX,P0a_Q]GxՅg㩁\cx<ؽO^u#nT?'Xu5~6,FzF{xi3&&F,|Hѐ5'COZ3774|u&aj~I>'N`ΨxqNWIH P.^4oꋪ>%[:Koq5Xּz堭291z8YF)twsQ x}O[^/L ]V.F)5Y6R $"Q]-遀5XwOU-c鞠j2d%pc+:+55](NߟabshvpܭQns&ŀNF3<Y0Q$}^>%J^ VearXY(yÄH~%_~plۥ ;N~D<.S,G]*mG2DQѣuuumx3i\ 8$<H`P.OÖv\}~-J_Kw.\=|OGc{gK]] !0TW #l c.zE<xAQt7pI3H|۲ J+ʓ@p+_ʎ+ޗzq}} z{c}/};BjXur% " 4]t-S\0|SEIzgy[}M+N_a`/muoNi+ń0O4nOuozk0yJtI."#G|M5ŐEh~v˗_qo#TDx!HP.^ ìHT*/kG=m1o|Ú޵uJcp`Yخc:OTǏq=A⧬+ʻ' 0[JbtH y` wPCyzZC"C13W?00GM Y^ӁD'c9i1S-MLZV\XGŞqSͪ%[VLz2*Qw4ITѠ={;քrWxaZqLO*&w$2$5 Ti'ht\ ͒*Y2J~D6&9*DNϘݘtuYΛ_9p)d xE5/9-@oaQݥRSt(?M .MUP, \*X @(zoX旿M˶NM@p y<¡HXE仩ϖ#mG 7X|f-^l:*{{Wagsm uXn]Wײe[k`1\ Ys+-W~mRk7=Ei kgצ?gFUH,]Q5_MPNʤY pX@eA)[~_1g& /k+6r~e;=xBۍpn߁I{ݵ76wv_s^=G;>X}L Ե56"5 ,F_4ىc>3r֠5e;z^ɍJR{o^su^9;"ԩ$y~kpCtOkN.5{Շ_޿{ QcW4^wBJLVXfЙکjjo~`=éew=yykkZڗZ#}rE~z)صZW/Fsvfػ_{o=T*%u?rx~ -ֆ_zqK_xDz+?6+hc\G,|kkcN Ce<qǴgh<+e]AMB8y'?>|TQޭL|['ͷG{+㣶 p϶ΕaɆ]vn|gO;-yxx W~ L@^xǂQ8k؇xcؽ %y63(xHfFrqfB(בuU6%s0i TB?RE5uxCF{V6%@J.|+5:َ ᪘SiӭxSl9i(EL}n>ֲ\'"=\e 5CY@j0y<zF7K͛\-m2f r/,">.B)&lhپwJK~63eyM] V5l&7~ަh"|{Ա]NoUBuu{G'vgNyo+j0d$*͆]//:Qf޴{q&rUdpB2U'~~7C ?j=3"P\ɍezv3oLhZڿecL ?n,“pUc %cڥd>M4}lpB8֝ܿPl]p0c짃- `Cy@'U*}u9Ĉ^ ٿ_>pd07YkM?sDԃx`4sZlSO>-"j[޴SL㮢ɖ*勥o)3k;Pe_+knZI9#lDgHmoY;b~xO*;Xq]MԲcrcG|EJџ=3ŏ} +l?Eu`@Vzv4O _u:/ڻG;n+]_*)Rʍu~)=6}x5$).$@' (rQ(|>FNsqhXz9=yɿprlܟ: Tb.*245_4Ix}<.2YWnN@C Ch&[384U5q rW/h UU[noi- <ˆJ>L/= ڪ%qVHV-8 d|˴PlӪ Qi4)=֠[kYC@C1B~X4Hqep,f%qcc*o4dI>clnЃR _:h 1`uv,ӽI}j?܎Xwt%Ǐ { }x,8WVik젬迪Uӂq {ds˶A%IN?q-uYec\b> =zӊRyŷ EЯkbx?9|bV^"QX*XRnhlʋ)ߡ7\%)k<61<{j*߽"y* JݽxZi\we|s40^a*e&ga䑝H<ޮ[n}nZqOW׶Շѣ]wwZ;;}5u&WvZXkmy:pub",ctw"/BI%0dzQg̘h%Y:UL{)̾co'=~Ѯp[?y8=o;`cl_s o*Oٜ0b_B&̏^Hy//z=哇}[?Y٭why=Wm-}xSbpC].^Y-Čq|*z=X4Y5l۴spqB)BM7=A3:X۟ݛiܠpӧ9Vrb@ϫ{$ZҿyſpІد}{kkГK[wOwNt"%-ΖCx0jw8NZnJRdܒ'ljB׮mWéT΅B WI4X̥}:7l֔;sцgSF{N {ds͚v۠GTۗQR?*JӜ&,ݬ^:=Tɉ#CCLHm萼 MaZ|\G|~b4?SŒ˞Ύ΋Rו Od~S|9Ѕm'ǓjojYzU8uv:mBȉ# :VjXij#є;p<?:yyhCWW(J㯋55/{X4,ao[B@~՚o OGor(q̌] )Tq,ZRr,=6^]1gGת38~<1  urv)M;ĊlO}{ڕ+Pzel͂)B+ٱ6M%XrJ\zz]{w+?ոgy5ъDoSC =ݒ 䍽?|mr<@Ხ[o|vpV }Boi;/Ota*K/yhh+:Wuq$MïXŊ%=w':/oDCeuEFG\}n-)w\/n(>ozM&>ktcۺ͝MZ]~S[4ڬuH۲VMAMV5|بCCmʵM!MYU1W4x$AFNYD/ŢW7Gxr"%W~7m^rYg=ls}3qh gUu#oB;keվĸ=2bWՇa\*zƦDDzƎ: N_ Uv[;ux*˱]j /ג? Et#"))x*HH`\\,,Bhp`X2> C9㘘xhYyL-=lӆLʕ7&AOP(a^LKPH>ѕ_kDx-DqTn÷b%,cdatZ%*< %K1UsF5q T`fÜ~+,?͵S1'ʙU(QQu\jOG?oͩ/Lf]x>k>J'oc;4^I[ ꊴeن1e#vӕR_ㅬr} $KbZ7ѹVw.=z"h }O|M:4oӿ}5~=а7 >\uӲ=&=-UyPyE+Bcǘi-c'0j-,7-I>TO1gҥbk2!]|>#0jżY 0+)**Um9,o #S]ݜ mhlu5X,@d3_:tu1)`'PRM$̆e-*e^bh$b~UCq t_jX_ϚH|Owt^7" `}m‹4(O$7$p*ElBKTr2 8LxfD4oQO p8㸘`n2tv"Fo̽u# b Ia(Os"C(!~D?tY4`,)Lb袈w># b8ޅ.Bly"iCucQIH"NF 1",UIwq[3דOEIj DLGWVDF)IJr vE[⑸'yъT] <ͧ`D$+P^0Ϗ{n"*" g,WgdN Z~kȎ9Q  3"Fmx7N@MVim'$Lh;QTuKB!&Zlr# DrG98NbNQΒ0"j}p5#&CO|M%lX8# gF%E S˙)'+!:= BB"}fNX]SH䩸jwr!$PG:խ .qr8%I%9$ \:KgHz~\X90QrD{P&.*Sy` Au\O3p5sse/↩|RDzBǔo/<-T PmU)N 5DuudY"N,zn mr$NޕKہ>T9wJ-Z 5ŀJ \6̜.'3>¨S7 7/)L4]][34461ֻ1FvѬʋqRFDڛ8->_l]Tl:OdoR2w-B6/hDNVΉ- 0SUdJdgo (lIӞK{mA1MSpĔ6򎯚bi:?4}HRO`wGx˽dϐR#]0"ft]uhB͛7uK K$0( 8?/l뿷=0Og=3mzьFX-۱c`z IYJq46$a@6HHؐ@X9` 6mYu$Mﯿw{g#i$j9=wίA !l.&A$ " 9d^0|xsM( oErD,5*4*}a*>Rbm&Hhiӱun:) <2]}*@IDATkmp^p-CXU4AسgOX'`#$b$nmmݹs'~ YErC`~r5"@Xau'rsu;& 4 X6qfψwUxQ*4Y"%&||#PLG, &\A6K`蹥RX%Ғ襒(lݷfV(TÔ-D{@z!"0hQ:3L++*8t[QW"V׃Yb GNg jdC" -a-zN?9@G,:'z#9 (BG q$ːg.jZ .LX%@u)E!8%e]"|TbtIlƈڶx0:`{M$bj@M/HFXEP6sbCf"ўWj0̽wl_}h%߿ѩ&zn'nċEI>T;^xSGw}螡7Ki1k3ƹZ]k?7)Kx9ɖ(k ?J'ko>}d߿n5MJŔWo墒ōL0ZTmnKe Ć,1N%<5C۩fqLen^ )#R :BBFpb"N=BR%")n\=Ѩ+E B"8z*49)' @6 tKyԘ|U:Fp0T5v $߆#Wĭ/*(RMj>'jDSxY #xFV5];ŊU=HM"f= =Un:"iHeSf=K"";zVݮR!!Oކ$<<,Rj(d*o-8΄O0|_>`9G,Pp۰Ff9GJwMϩA4b tbV6)pKDKxZI\D H81T:1Qq",aQP.9.^G@*@-$. |"N mcs((O|jD_ykok{gLZyQBbHLCUDc"0Yx 0#D` ۧ:n up౦s3>\9 P=kJD1+_0?s{̫nͺ)Mt&d乃Ǿ'/U{#T֖u9C$fJWo|ݛSov&5Df=-ID 8f/47䚠* yM׾%mJ:G;$w'7޸~]%-(;n+?6Pzѯ/|j??gf9չCnTЁ7,VX3>*}^aD՗$& L#kZHO|0DMb7\: ٌt9r ?c3-?m?~~x3UZB ԁ>r|~׳:ȴ&AfeJ4ު|wL:"zTQH׬Y)bRyG!Z ]d2ŋTz^ Se ै/%=V2,/8O&X<(*A=E8`z{$opSJ~b?w2rMunީɜ>0<8x%T^dE0>%z,)1PWHdd"+BŝN,:DT^ȁގiLUO` ,Z4NAZR5,'>!ڜmb908]׺Ph8TPfNC戡?ײƇ OҶ#vgɂ`>/#A bqjlAa"Tr\9Q"Zde3>RxXKy&NŽH XgT.--(~))y4a-(k^ rwS4T\ޗIjJ)yI丨rTGpD y% FX4*qH=yHPĘ/WՈH 4\f%N۱c21ܞg,gŸے˩'O4x ހ`Ĺ3B1'@$mQS-"/S@(`I&͂:BE.q,)]o E"p9 @hVֻz%¿#U{Ѐ1b &sr,mϨ~ /S]Vj|hf S'HZ0B5Y8v J UlG 67tE:43qk69&d:ehr5pdoQ- A_sĨg =@nd gf6ڄ@x۞k2۬xxu;Qd]1'[b* w[XWy(d<&"(~צ Nlҝ֊CԐ+ᤌ"A=(3b% hd+E!F4Q("L&} t:뺦Sg(r`+X,^"с7AY B|0(,Lyq |6mBo?)DH;Jx$%.m{A\ x \=}B=pB=b-{ 1X* SB1&:M'5|%3:EÇ&@T[TF](5Dh ף/:AkSBB V(}|o=MW)ΖdH@ ri执U ZS:VQ ׃  [B"b$/ظUw܇ܸ^ 膋yxd(E(e"|+&"@A$E@kZzyx(( x -'0iOhy~*QsjŷG? k ![>,XNb!V)H,^(#E?)|&o|A 13P"ya{ߵkVt`dO&E"p$-" X _#4Q,Ѐ!!dl.3},p%9$xX`5o#A>杤EI0f$(yJ" rL'p#dP`Nc6<ژK`!P3miT) $ a"]D{ a=$Seꦁ0gԉy͒xO9LNZQPbEȉEJ"yTlm|o>( c EXb])! y^A1 KD8 2hrҪ#"ɜ94k8<)#ck#C$`qUɆE5GA$`ZkҠ2(3"_5OWfA &3O/R(/ >zD(DrdB8_.8X\ҧKׇ]*Fڕ䶎%"0$4- xKlzlxx-X*j9iMWjN&" P]^Zh.jGs R&"3<#*f\?E @z"Nҡk anFɥLW($[>ތ@mL\L  "y6h,~X3{X0*q$hȵ[3Ed-؊R|i^YX<'d gZ @PE_`>dAl$,p_Ŀa} KՄ&  IM%znu#5m"RS DkDTznО^>pJAF4{pb˧%Wsxѱ4pqL|~Rx-[5qJLTpIt.H"/."D1 ݹ8nKxA2Y ?F$0Ch r ";P?<i6EE+Ҏ] 0C%bJbg'1l:a_ OS,2Cc%F0fD( %"\҇tk5mE"tqe??a:l j\$)@ SL@ ZT*ᳫ +;E"#@EVdF1[g2BJƈ9} SW|'i(ECBE;ة ?$h+bM˯E Fh/>AOt3vy.b:|{yFE"@ZitP}А*^ُ"ptR!O]`[A56zAљp4ŕhi)e4\04x#8Dw*/GHXP"mES2jGEb.ryvE"@"' pELCH `++NQ.9.^G@4 83+?E"QČ(L8^Q=PV .GEzY!Nha(^V6"@\p"\]]P..^*i+fE"@P( FN3=z"@P( ?ĺEHo41r-cLzH8_!Ix9!]DxcCxj,D. -7X""0d;!KH#1[);/b1aݚ;Fzt_\rm]l[zvhWUIϙ|ah4ncdYwKW#(1FmSoF+!FzM'F3d_K伡(@@=K}c~s"ܲ7_p%0:54o7? O:M߼!uB#uME5Q(BpH!\2PoE6vU %|t2ykUˣ?]$81aLWFRWL5/lˬՒhv-@xi5*cb8eTFT5 }ñ$Vլ- 6g:z9^f ˥UEXHl=OZYɗIMUgs".j1IeFBg-KZ2Y13Fã##Gǧ9ΘL4¨cTcTz t hKE"@\І -IVAly6lE IcCS =ɑWv }tFa`c|S+$w]L5gKC~lrÈ^O~A汬Z"隓[VzM]8I;!#U >'rJ{ڢ2L.Vch, c9\+{)<䁩|( ^GI>ϏiV59kFД԰ᴺ4E"@P.XHc}ՅE$o9)E`_6`ĸHIQpM4~f]byyD ڈ!%%C~'͒Vܶn/m[UxPGs^0 ^rbAbk*틕>[<Kl4.:uհ!(t P J<ԫNUM5^G햚ڴuISiQ A E"@`v"k5&\,+/7YΦK f-͘ Ù|\6-ȉO"Zؒ"TWs~>_hMj,aݳ>f 0ݡr4QIBY{dSM)iSkR&/,$7uB W0!pj5dsi!/Y궒4a0lHg}cɻ2"'[|[(L~-~zr 4V4@xa8>©єpFaT(Ԥn$oN:ZUY?6inb&N&oV8me?*@7>938QsG&޷揄mk;4iB˻psQ^{in쪷DzgzwۙK*{zqi@ 2+~ۢ.2Ap/^˿潒qu@x%9Vuzhg*+{՝~gq` ؤK-pЁ~`'aB=~:rv9o8XhY~PM卿ͻ6.0d&ƟGxn4(/m]D%y˺]GƥbW[uˮŚNLVjԥFM-!Rt0%C秭 nɓ? hP(EADXĔP M^^nنU2lnp֣Z"%PB䰥LK<Ƕ3cL9v6 9/.:@_U"vV g}ouMmKkG<^7q^>tR?{a{>wl{f:(ymΩ'r~kZD ~f}Y{u(3 (s؍5ΛuѫA炱,®{Q+?G~os.~M+H>_Ũ2G6߮ bx`2gҚ%~M/!~M ?PYU2?{}{iS؂.~ŮN[Lr^R~S\:Y_[{ND8?M)=~ϷWf1"|e eh.@mOgz2ʂ#LNǽ9. 詠Rҹ\c\* DP(KC3vT|tń 3T.rb!hd䑐Ҍmfb4ȰJ"Wl"ca9\{1;? ɵ*˪OD').WbNuJNXtpQvͭHbD)FɍVy)dno73ZN?y|wT[ W_tۙZ-ZOKp̘ؗ/¨'n=%(/-KiW5t=vݶ&ؑMמ=֏\^)$|@9mLyOW\0z~òL>XudW5!@E: _1S<7-,ȵb};c>9X3ժЁ&}nq5JSÃ{TJ9kTxV(T"cU{;dVI6f@=sd]2JanDDOHq/o?>ۏ(\t5mkXvmojQ9nnMeǹ&-g|ګ]_њmy=_qcnmKN-k<c~ F| hqE"@8 9{E>$-+$Ȍk c𡉲|Oޖ<7KŅ'bCi=ZS= O;I&5YǮbhE/ȡ?1>m= Z]dBL_5<1vi(vv':%y81_~[VA?e5˺e>sߨ|K_xb-AĻoBW&eˊۍݨ.g|iyÊt_,l'E9))K,^Q5N#oǎx7^uO7g[ MC2/}u Y$M;5TvRm@AtHuF(B' .1RԌ3c&0aku`4yf+I(i2[Qba fb$ T.ZT )P 62RMjee(k9srzJ,bI / <,|#A iei . y^Z60jYEMQiKuF ~cq]bsimYke䪶S誚Nٴ& Itp\˓[1e{zә\W&ޝIfEy%If3k՗tgWr1_͆|P",\Zt-g}}0K#G֘_,2q^DE$c8fe^H,hJ+1^yuc^dRVemvl®ulړ[6*ph`nt./Pj=3?8 \fmsMoo:k3xƝe*S4!g2+rDbɺƱqIN%ͭklw .ud!2e:"np on닊nk0LibԀBo`:N? gTR y5wz4씖6Ϸ'A{^>4d3bi!E"@X:-صLҋx9=3R {H&ThbwiCswX EXgO =;CP*jљ=.lXV&:R(SYW%A XEEccM|Z^F_Б3Q<"jyh|zJL>O dF <T7L<<cXcP+%4pxxuyF=˲U񫈎4gۍSRɝUc|4s#2! |G/UX_97| E93΁+jxGm8M]BɐeۼX4ƌh?0V˓Fy_z}irXlf3 C^l{UK=%l1ZU"_xr䎛w" y{fQGIËe\"Q*;IU>P0—G=q5J;Z,oo^$JdQ}Ndun&)0_ɏ>\֮zQ~`nmQȨaTJh8[FS~vm3wVA"78gā}=}7l-@#"7=fz|Oש"DEs}ف|U%Ԓ[-v&XVTDr> C= Sy?nkڝԖy[mԍr5Ln -x XVmq;ީ#?+Cg6+O~;Q ׶bb 0I#/ TZ8E"@\/kZBðxyay]jGO &`0㎵osw\Q35CJG?d + ?Xqlm|s":'|A+<2ר|X6{\>td1K jmi[_Kgs4 6!@kHTCܟ헖eoio6W:T+M?rM 23spciTunJ&ѩ9::5=17sE} eT#SKֱLH|KT<8#${]l%uY?z`=GJ4'*T `r .YFq(oױ2SUxY7%Am"eEްKɉ?c㡟^Ewj[q*}c-K2߬$/ %EOofK-sUU̞vmչD+ל5L={azfۤ{kQq3e Mrl& q_eeSzx M}P6W,j#6Ow (Qo0><1zQ i!&[ny83Xl ul}בN|^c yGz}mwo`,pGUgol>ycMfわY Tm]2Ϫ>;b"LD@OƲ,yJZ0c!0ƄBH$؃~+HN{H(,Ư1l뻙Qu͉ތR!Ӆ2 CnvdlRoQ2h^t=C{2mݝ:^LBNˤP(9 pγ¹e{_?>TvD}G致d.ݚ+"gSGF۶t6ŕU%vxϳp/Wm;x{TUY'~QGџy5YcJ{=ivtLUD8s=lb_Hf#|Ke'#6aKE:U_ijOe۲];;:U)ڒj]D0QiױZjX~nfF}gwiG_˪b5mFx;*O+h: or6Q*jCLet=o]8:]~5洮k]-P]jX\&ʷkLl\?ۛ?L_3dXg>iyc3^+.29{uӜ.c5R"P˧rRV$U% vgJPozsBDYC;À@`p3:4#ȾK^/'bL* !tQ+0C0z8xxgR1͎2 fHHJ4& )"l}EZ>,Mcmil6rKUBܚgRY'(+~}NyXg0;-}1ea(Z%rJ`3u3=*#=)#sБKMeE%jʥhp]T-LADԴri>E"@^f%CȮ-Mc15gU0,])k)Xa2F Y;r|5ko]q.X{=h g_e/-mK3y79jo5/;/- TK.;MmX;cyc¤D}ږۺbYrD!%*~Q9lx#IryAj |AiƫV{`x4_Q>Ys]9wK.kLb~ k '%"6@L &x7TJӄTo]-xc| ["|^L W&y}2iA20EL,5 2 Q,ZꎗK\U!HݶQh0ڼN8NF"VX#`;56#>U$rTq"ɢ YՄ}-2TaTlDU#\_q々t<,bUe)*8Qrr]yZ0U={U"Ӷ@(@匪f"#Pm(Pu^Dt]Q$Նx\OaL}]F,+>r N_CVUl-/}Sss,H J,"MI.3+ʰ&E]/XlDMDd@ `P14\Qk$#tΈEeG6e`㊘A? Jdd@83NԩnO4qԍXZיi1ZAWe?`M!cU<ldڼ!9jJ,HBiĀ@$rn+fnر͉ qgLΘJ%_2E F-1 C2@07G/~9Ӝ>!ς/X^K"/P\s-#N]68 E"@tTr=kCp{9#D !-\Agx$zrM?eUD=K20yAQ26(Py9j'|?,CDL%A#°rw-h _,\0В 9*l2jH5h ua:X BJ0ࢨ[ߤ߰ BPP.WQU&hhd$ Z-1`>XrH|3-{Op%@Z;w^>\q7-mЅʎg?u/.Og2K+._uKy#?YbIerdGmPQmz,F d^-Q%qX )V!T l*jtQ6>}}1WRSBFh0of,/aj~j{*}- gDמ=ͷm[rikʶmj3`}pPǍ[5՘8U>OO9"{(?gݚV(e͡P(e< .X@4p4pxRsm(S͕tDX*p9Yqg ulgAf<r!>v&"!s-?sgஐGemڪg48OQ?YD2mkox}%Dpd:i6ղ\8Doʆ[©קGFy Ƕ t+x ֋>'KN{emk9BMFZ2 n`ynf'&`.PC`CxKs/};Nid3w~(ůO)/qbY6g|HB.oa{~Lv|Dѓ=b"1#Fd׆G@<&xBFˌiZHt[|؉4ln֌>(߸X{ϡZz E"@P(gC`Mp|q:0SlWcmEJl¦1'@ƈ*0TI_-d(`)(HXaɄ#S 6sk[pr*֙p-bD]j7ߠtoڪv z<8U80UiOXK']ƾ7szW4NH7vl0>[7>wp?&Hר&1VN1189qP7Q.nnؗ?3489S{uM{{M:xbk/{WI,zE"@P fV&<`z*5ęI#Ńl D?inFfoLfJ\QUZnnR4M`dDu ?"Z$H6grO kuz_6 Iè MEĺ87\,c#E9uHpz?s/^5)H}y >Y?ZE$êx%xĊ.2~[FD(  (8Y*A}*‰r 'CK^Bc9oI% tgG)O!c D2y],zٗЪx4ډ tO]UAѡˡ)*vˋN,9͊iJ`Bg##$(ZP|j摈J%vuvG0y$G46WP2).1UU:V@ITIՉtSq\OTb Y LuiLmI<9_!aLEMDcq&Dҏ􁞢P(VX]~.K]Lhjo.ji|qVAVM8%hB%`I"f.R*)N+ F0.U"("_XzZ AdF3 B8i"\5xBSUQeFm":h䮹^lLزF.B) `-x'Xݾ6RT{mGZֈu:Չ)':0V.Db2+IJ&YÍqO3 d0ldwji8Ug2E$,d-ƞ]L=1S$Sbh][Gk#"7;ʖ]-@qLJSH<Ĕ#ֺ.6IZUG{f&7G8~}jƅAte~C c=;鴑$R\\XqG^b6:6V2cN.)Dy 0C/:MN{at*b`z\ B-<ioYyevuG Kn #wvrk3sͶɆ0eDjDNo۷vDM?E݇%l*W_7!c +RlԧsM4UG oQ9L[0uCd7qZoϱx%R,Ky ܈XQ滋q$UO Ml `BqNϼveMu6Cl}8 Fu0NB GCxF-@-vsS̆;ZX{`N@`ߦy8ʙM DP񫤉zN&T0t~jcmp AJd::?Q'=￵{i\A]kWsIj:`1ǀLT.jO5%/,l,'og;޳m {b3ǧ aQXʁT"'QKk'I2Ś8R:gWr,Y,XuX/J?)X cN#Ѳňc:˻h=b?0|釶>9?a=> E7>Apk'ΟoEߡG*s}C7̕Cy<+| wp]^~eTQ3aթA⃅;NߓZ:>P)yel r/*㠋8l!(ȘH [acV1u>"NE6?Ti<>$`fzb`CWAcQ@PEbkC#@]dTol`dO3v^&F4| ]󲅬=A 4YIP"@( 5OSc6+lcP뚴ÒaM+P/ٜS0IÓ|ΚIuԤUN֯ⶴSģ.5r낖@M+~X7 F)8g/LZ)EP$ۻ@U86ݖŮlj:n۰fejWALu]N{gxhN{gSi>Xcm]Q:ue0q/tĖ4\RE#"Zpƌ0`Ր^wڴi+r}zh,~Ygle:bݤ??=Tm'P#Uc=}R!Xs{+^ Ȃ0buOinްR0cG(yJ:I|Dd dwl[n:'D"0 vbf6̱,p0Xӭ*M'5@aTƦb֒`{'2D)౻3]3&x&ֲ9)}k!XsW?}.uXQP[](/0u ? e4{YEVb8&Mpbƻ~mTk&%QtcS KU)'ոVg1w`/"}>_D+c 3g Y߷O>ᩘm7s a-7qܲvXu˹!j6Ӳ|נsjQW yK {[K+WVpv"@ BiÆ1( 1Wg9&ό+h:LсbD0Cnl" jc - SN{M;  Du-Pnј*A "^zW ۷ƊXbô#-uB@&؄!XFӘe;Lá}5،E\HD"JzJlf6``[e]:#% >WHJN׊zid%k/ ~y O1Ov1rq-:#zߝOo+@.Pf*B+"\3" Lrq{|8>xmМ#^ GqGzNT!"@F';XO'(IN@ii 'tA۲I{[q/+ ! K.]W 3% &3ӓb/[ 6DԸf+H]< Qf BM>ҋoD`Y=Y(D2+ӈ_KqK}b 2<_[[ *<Њ.N= ϗ*!&8lE$EDrs}8QH.>qY=xԄ-j|4V ?eφ2 D"P01T@}؂ 01#Bc=lC0$\9]1c7^_fHAǰ!a71GY:pbόbH\|+Ù]G}wPQ)cfE}E;~/RMnkHͱn\_%AП^*q D"0N7ݍTAͥdz 쩟 Q) /Vܘ|O7TLhW#awiPb.8#2sh z``IB]8SW\RIQDȻXIڔ8!"~ID"0.vǔ>6Ns8zquT"jn_ul[/6]KRL!y>و`?n5P2"@ Dzօ rlPIŒ\"8ɝ Y'jeƽpas4V)iaJ۬DyD3Q!@[E!D͒6[uxŶF\crI=@@4Q]Km Lu8YkV͗~F#swఉWŪm*XwYnNJF  ~a {;}õeh86)2DtpSjJ27/7f7'F1[2E0SoFHTTbqN6kڬO'Dj"`Kd  r`tt'6ۖJLㆀL ryk6f{PT !ǤS:=[Ҳ& ~w(G"8 @"@ D 8HTZ}sWt֍r bh$d^InܐH [ w]m.[o BSĘb4c,WaI RD"P_%?Lp!b"|5''L^+VkkW\|V2SK>弾Ѹ1 &<^1 2L..r؟Ξ>萂r&#T@ 6 Ke$D͂Y(bhE%R10ۈݣyY@J!"Vtje>y h. 7lBtB}^t=O?.xMKS۶fj!XͭCe#D"@@Gn`D8 Hr\Br6tw;d>^GVUSxi(-{.:Zh/&=)q'aG#1\[ýΜ5Iںnm;$NفTBЙ[hLrqSD"@M#{wnō/f(Q"`8XT9DS56L5Hm[o0«#}EK'lz;Er);"@ DTk+Sp:٬8wɬ\{GJ32.6],ӦeJ+Jو}[gnءS=+@bRxdI-cq[= D)4kֱEU""y؃ 6ı۞k6B^jyZ(J/ΓZH.V6eE D"@-S(iO}(pץqEvoߤwo/vG5:l5,_ K2Œ`D D"@"}U/..bkttx۱ED,. W^բ.ҟWla5."D"@ 㙀yr՗vp5D.:Jb8aGWx .>"V՗w^t Dn*K,㹆T7"@JoPU 5N J>tqϩW_z-"e{;c2U['1(%Ia/.w`ZWК-$EȞl$L&(J"Xb:#DB?=/zT)߉-Q%mCG7wu츓mvܺjYڤ3f/g.-.nic\,-OJ"@ DT矵q`t{Vko|jJkQF}/-xYGo`xCH.V8eG D"@K@ ucmJ{[? 4wMxM+NžU펺o-ZT);~vM$+I"D"@ ' _yO:~trE_OhnjٽG7gkɹ׾˕%={MOk1_Tܪ2LhfL,T꯻.@S⢏08B"@ D->pOt񽜔5[8vlA٠kfMrU_sC:v͹ 2smk~S\{-z?iqGNJێ"%D"@ '|ᛯW6.ϱ'NPހ+yJ5Q -Ԓ 5l6΄ e3c!)M\jʈ"@ D@vŗ7\}"s{ya"R͍ FZK D"0 (H?ʙ&N]9OE,M"@ D`ӏGE wMw:=d57g$7֧"@ D ?puv":9?KQ6s$7O D"Pm7%_G5ʾ`aq) t"@ Dj$f2GSKێ5}Q@Wc㎕2\+-E$D"@،$_%k喵,#uKH.nʃ"@ DQ% Y}57[D)ѧ֙KQ@$2"@ D"0 D"zGdl℉swوdO ]"D"@  iZg·ިLg;t0"H.C D"@@ d-Oǹ׾\`iTD\B%@rqXDd@ D"@B@En]♿uƬt|Eĥ(D@$ EfD"@ Dd4Y?ݷkDyٞ#-ԙ7 ;/&D"@ #$~ }*Zi:wz5Aq)0Oyf"@ DE@ZW_*"mšieq) (Q,"@ D"`NE'}5M7g>ɞD"@ D`zuyEӾ/\.R(;eGL"@ Dl_.xMw u~a\D\BJBbI0R"D"@ D`J$ʩ& xc25;wٽ[2!e$@rp)i"@ Dj&y]aBuRSy Mw0sIf6.J"%H D"@IXVtEG:;M?[t:ijwb)#"@ D*"喵j4Z2m[oL\ ZnM2-".E!#@r|l)e"@ D*%_•D.LFKKVX p#xGe'@r)"@ D"f+~m@"#,[굗ÿV^b:Q]Yg TŊ`L D"@@쾻_QF0UZ2|ӵWD;T_Xg*".E!#@rb)#"@ D'{rb]Tw0UsIx"6M B^hOfD` \E5 D"@@E hO5)5MK>tO§n:.E AhP< D"@F@eKlj,Ji&)M-Ϲso01 ]"Fb"@ D,k"w/i5ZR7J+|MY縏<aɀT!U(T$"@ D?hw&z}5F&݇@0tT1U8T4"@ DR[7DniДHCjYk/+}vi3/]%Ob"@ D`D\K&MBK5U!wUM-x"7 '3"PH.VyQ D"@FD 37^2 MS17 />mH!.6绋|}_p:0`"0\{mF%&D"@( Kr1|~~A:wSJD` 8vێJN D"0 P#Fʆuz򯜪x<-pϝ6q@8hD D"@ Rϋ\4Iӛdn7z;Z7MCiK  D"@@6T ]wym"C'I.q@8hD D"@@ݿN:y[\+G%@cD"@ ~#LEX>y֘ @rq|#Ղ"@ D6N ]}i)qX,C-ez$D"@ fDnIٰL|w/g3kD` 8NE6cx_=ǽYt񽉧(\cfAdF{$Y&N "{$5JE$bQG@K䵫YE"}mjLzsE'DLʋ9MigzOA^ubNGK,Lq" Pm D"@6Sϗt+z^TuIQ D` 8[O D"iNQJ"3NV~U( "0 \˭Ge'D"@ /|Y ad|vQ$RRD`l 8ڋJK D"Пje;=b[N96g#N c1lTh"@ D&b5T--m&-)S,Z$i`D"@ ?' o7 U-ckߑ$Cq#@rq5"@ D~]Uv8oPHQ'@rqԛ @ D0~&#l TK+Y㏶{HV2SʋheL"@ D/I_R0MkƆ8+De ui\-ΛҶܳ\8"|(G"P1Z1Ԕ D"0$EQ$$"^q.rV_P16 N!(o="ЅqG@2VKx{ d#X6Go* D͓dQq<0aWWW&hLxH$r.DPx ЍvDR}%%Q;;N!64kj^  *+q4Il4pcDhB\ĝ ep8!LJ1R@IDAT} (b1@:"#˅8yKc@_/_j[ô|>.AW .X8T t*[~uLPĂ`sǝ\m4ypx'_|AZB̳zKpwsϽdME@NqW8+ʆMN|=oBf1F"D;;;!8d^SSƗ|> e@h46x\n[477ni$TRsl[ot:$k"@ h"0 `ODE SWU-_9w-Re-Njf|=Dau_{s] s_ +LQ<=u}DDbZJ@Ν;2[~BBBC"EK BH Y!A!1INe)5(YZ C 84BfF ᛮ\e9c]w Zf"wQ-Jd9W__U&g1gxW£asO'{i΁cJv -\-rO10 D! P##8`o @Q UBb4Q&]]5ꮾѹǷK$|Yץ+W_"FЍ(tB  X8+$D`|@5|U鍴zR ~:yP{ccJMEo %I\%*p;Tx8td+]{_xk9~Ncݫ)b!TƎSL*0"HjǴi q%GF8cH4g5f)hoG>+e^DD@E ?Y8(o~pb+,N~vv 7ky_wOm6dž}Knihr1WxN:?Nff瀪mhtѝJR5  D!k[bh@F .br#Ƹ"Lt9H#sƕ9LgOPZdM±2GKOubЂ#͟S.΍V")weK"06d O/>>BӊFN?"ufE?m|11PiPyt(s 9/u+q:;+_9b = 7& 8c N4 q G!>ԣ17K)Ki9b1)N%JW(JK4XPaRum ZvY5pM;].,ks9V 4[xx,ɴx>' !مCI`zLiK 3_h]R\KΉV+kr0oV??h=}!kԳ']_xG2acS.ܲ"w=dϑUsPP4N3"XX},7tJlA 5$#.bl*rDv/w7NDBjɴ֞GD#L<"rf!bۢqN!ve ͓V (=ߨA0q:a0l<41#> E"U|# ш2K^]REW5"@@2/:cV7_i-f+seZo3UZϰz*8{m\jN;+.'c-1'x=aF i6;]\BFƐy8 Nb!:zf'O,b-0KUn $kkks8A^+pwv}[35AZfl9$m7ƅf"E4 #|}&-ܿ)2/-56[t`&m,Êbkk+a4<a=QXɪJ @ Npj&L7UZt"h"@ zrQn]ŞPWot*ҋ_9{!OlngHu!} Vڈ5AqbvEᾎ=|?<NT&cdaxOh=B!иԷ+V@W`*$":pHÍWp2mڴEnГ+9Hpq5.DbήT[Wwvrx]>\dd('m1Oer:)'c'6DQ|f^݊m?E3nQx!'O10O=p[N_#w $@WN0mYX T YJ"P 2 ]$p~U>\tBtPm wu[Lb֮&jeBPļeꍵΤ/{w73I&xt*5eʼnqgXL<tѵBR S=0!V 8c{RH b=o苣g75CƄ1B crb*-ǘʒpo+Q\A J[MQ’QR} "ĜMˢE‰$Mg%%Viٙ͊&+nx8p!VanfxH.iz qC%+͍s5DX؀r "@y::s m R/ .,=>Ǡ%n{]}Sߐ~ukxx ziráFް._0Þ'~bsbMT>Z-w[1.%]6ka"4^CCC}}=zT 0~q 9=^ϟK8Ynݚ5kXfĉx |}Hm֬YutthkkC7L *"OU,`hQhH+)†rW(;!ٍc IEVxj~ju{-;T֮h,N|A !ZZZ pgnԩSٓtlUKc{0k׮w6X ^*oʓ:pTLWg8 }|S3*xlA%bXK1X==τfu f [n]{3ki}.h0T|YJIQp1Yvv ?y7)g8~cR\Fo m:hچ1O25ҁhDo cp{tp>hjD ŒyyK'U6 6鲩 |Z%|Laž2*IW"rGKUy o`TWeN4)]rs7 n@|BF[õ~&_y"@#6 o#fG Z77 %e`3& =_jDbr+K}ȅTÉk.86AcǪ!fN~+ @gw](0VqfPkpa)|zD B&>t0Ao0^r%K> "8Gs9?O M8|` WџϿi LܢaJ'd(8q9v""W\|e zBjyx=u^߽Uom]Ш?q=h nQ< O=qCO 097A)"DO6{(t?py xlP{yͪ̇ zi`s[m5~Fx!DU((C>h$e0kQ))HLdvnя7X+ &B(̑b "o e^{-P{f5ntN@ks',H򰖆P m L2i2o31E,̹t ?c(]vKBK ڏe;~+}EPZv_o2V{"4 n6C./PA7:O/ "и?_FA! 7#T!,s!)ڪ!ٔ-S+$Svbz&VEUa>x21>x8D(U2Ƣ,5hQ˪bTQEVeM_k`4=Iv#ۓRoi g!-lm[r! a rEXWrO 0>oBfDʛřL*%OwX%&YF+oː:2@$;"Z ~+̈D%p qsюpFn!=ǜ9x1PSE ftpҡ>FvM߬aNԣ U@<=!$;TF36q<˞J[՞/J&ũR3ևA{("upKVjJVΪPRtՁ\yM7*9,Φr0dӎeX%<ȉKą"5+dfPFF𯸙G+>,Z:W9Fb UQ#N̨bjhl&h jm`Hˣ~rm=؅Z`c͌)$6qR ѳZ d _4 3((S7xӦBh3eo|gtyQ鲭OӘlcmpf?푅,:KSB8/ EGIXe7fS~zxT?㵟PoaEquժUҥK Շn͛44 a1Hܗi>YCR`Қ"J&f1cRD36cŜ,3l:ÚϟRqh4\ /!ab`G_E03.cM{m5 #+6cG>* ʙ0$ZSjZ֭?+u-Q'7|{gOw ImL w2_Xj$Mr$pkmUo䚬+rbb*[_9-ɗ{{|:[SNl 67Z`sIތJ\9vl~&1B11KL?FN +r?>{!xbvҴΘX;|؆Ux4~ٛIx&x~3sO6ʹ\O87f3BH A5U |Mm*֘0&8& I$|cjƂ(Ѷ0\mI`7 s첻3n_84Pة2X& AvBZ!Qpeo%Xz" D`(b&e(ʄkoDQE-x򧑬JƼ~gCI;yx c+ C1e믿^n1pԩʯhTvT+R^B1ٍ PHPNt́:}5ё-Q#NeN_ ]15Yh X[qZ8IG =ʶdVGkvm^4$ * gWUer;X*dm,v;nMu\e8qƌv.jr9b優)Bmelt͊sCeXP?}63'#N$M$&쌈F}InݯlmY$xƥg9O3!;)݁ 6)/b RD M. /mZ͉mѼ\Ȼ8-g:\&(4C.BaH*'̃^vww/YPׯ_13fk]]&qt {dm>LGtu{ʄ#r^1:,ۙfaz+߾|Ś?]Wm-wsf[Z&uyB`>̤iGTF~듵|Bf)X]ruz"${ߵ#:shv[LHH,^ /Ozh.4~͌V5]:=A=QQa K&\[xd&:wm=]}vHdd0gqM&ؽ)^}one4t[L#YfiÂ}3{eH6N5H,ޏnB aކ {et ?4kB\7^\F^u@rڃJC' о]r&3Kf4+.(%MT P3&a? ٠! ^i .`$*fPv`cC"ze(w+ vmlJ JRT6$X_Tc! w 慴PX>^uqvUdGRW MœFKIKO '&qKeS25'*e2Tx]kULQ8j6y9 q)6)ٕI״dxb᭛q>w%{hj u_Y9 SZf+d\Q.eXmڊun V[m~E#} KqHnw M< f1a`D]Xw%}~YY7չFU5޽u==Y<:}ZKN?DT2xHgւkN<<Tye[^`yyȖ{Tj=&s붣@OX1ټS;jS~1ٸXyʪ|Jp 7TJԒo,ӎ ǩNgꗛ# d9v-{VxCk:cˎy{4w=wrL $;9bKwXs9jλ =Ԫ%B1=6_VE㙯Z(^7}srݐz sO{w޲!DN}uT^hZ8jvpFϟ7sp:uc>XQI@mW%L֨Z5\V2"')x*O uҩ?}7p-Z o7َ{O|wtsO;Uz;*Yc$F1T)5ׅzPxe Q{s7a{٨,~ lEfg^rs89`>w&bXh'IKlB5 6D^m/xkpVӛGe=Mh`BٵsA AyWlPjT}tf4hzK{2$btXRH+Zە {<%s>6^Mk ^kҗ[\Z&++Zee˝3^\9%[mi K'L:m˅Y٢N>%k\?ӤUmTn>+Qۈ6Lz%;5&jm* 㔀sWMioK0(887=.mn/7ch,@qX-j," 6+[6kw +>'{ޓ}%8].R)!4(d+$"N h*~  q'*d2c8qi" (H'oV`<ێ`Ac{ U8$iY+d h8 kV|=WeCr~{4os'6iPh0"I|ɔ?k6M4~/FS%e)9ݮ-P;o4}AC ͤAr >mNf.ZF>{. zMO<bӳ_mXu?;mf7BekYDjӘ"rP/x̛o3&=wźzSOc!zϔo)CaahNFӉqɴ%qq Ѱ J]T_fz߰ [oj%s 5dQs#QEpqYgڱ*'-:5'+8ΗT{eEN%k2XGW:Ϊ>0 2l@£^r&gEa/Lu#,Ra D=h,ٽOЋl%j/lOµhMrofNt)Il\ OڣT$.}sJa9LexN2͛uuOԺ2* qWa]u庄o^{ͳΙ;5`\JRTn1<6 &;7,"^8ĩ3'|jdzFȜm~6 nN?|FmtcHL}$QKrqSDl܇Q\[ֶԆkFKE!'0!ͽGTig.Q:+IVdĔko4\+yV%SL0bmowub獃zIA8 T0c} <ӦM d"|Hm>s.vq'Lw,rU֕cQH}e-k,9f dBb)rߨtZ\t3VQ5/qfƻ XI `x+4 z$ӭE/uW`Ԩ\o,yX~`P?~KyBX*Y:C!6DT$ZhHq)%&sVyte[QRHrVIg2e$fwΐ$91WQS1C_Q5 x%TMiYLDžObV,l9$}{DOhfe+܋H +$2ܪ79[.5}XdCRYNu}v+2\=jQ1@qc#k;YJb qLwJ-}{'[)lPצgX|i7ծMW;em[=0{P[^ҕ/[Ҳ%gUbGby%Cabww7zeHʁhHD?/sk>Hq&4*!VQC_@8!%? F_*̍"B4P0\ELXrQiN5aU\ޙu}޼sޜ; ] A@$((Q"eZL.:d;6EE˱bJJ8%r])NERTQ$eeI,J) ]EQ"Hccf瞗_,X5x~_g'DΥ "9U>22Bn˵#n=W6̈ٲ76GV~"ÿ{o΋ԝZп^:O bzBÊ>t,CW\=[j\b֕*tW |Z%?>s^<鳑(pbgiLF:v:Ŷk.cZ.)F7VwU$ɩ_<=q7[f,ķ9Py@NJAP=~ ?㰠*TK堞k[eV$F5Zcx6Ԧ,P@>swOᶥ lÿ{]„uemagX0=]MMGuZй-Dt5-4Wݩ/b?/wb /KZOo !Fyq&Iy뮴BqԙKekKQt͡!gYEZK/֤!@IXr||"ԛ*,Y  $aC|vtVspӶ9Q,>8}g9- -.,Z7t/Vǥg|KN?{r^\PD h`.]F+bM ^QKkOjȳ4S!4(}-֥=j,yZDU:U W\dn+RnOZ`+\2QPKWJ<lQ _ z3k&TIv+׎өv<8Tk5M[CxqJx'ȸt2 3v:]oO ʍNN?YZ,,YKaebĶ:65z=og@o_-7ݱDno#MgTDU`@ F¡E^w,tS"$"&V!kggF-iMmƠ*g]# V QZA` >-Kq V1~W2fZѕ!FbCĔ#FXW.bc]ĠHE C!0RBux{2k[V=Etcռ~"\oFiK¹|6|f鮸@T(SJ>b{bkx0@aÞ^Ƴ7t'GC\t~JQdcyc񭅴D:ɼTZ. I[\mDX}S+ZV(>>hg;݄g2L|fP"S z)`Mg7~*I's3hi 2S.$ٳ=U8o&^jtJ}G\dGkh0TDlzx=aC|U %[*74qФ ˃'/-OҊ]Sa*+)_waΩx0nռNAN8i*?8!x d}>O'9JŸې>}v9E?N-0Lj>4mZ eTR){8d]+ikN?Tnxua7u$|ՠ2LN>R~ bsx8%4f̈T<$4v %n}{?4B`mG~-ӒQ<ϓ2rRec :9'cHxDF\Ѡfeڷힾ;31<Ǿo[kOzPZxsyd3߼3`c ndT`禭ѱб/KZX A)J=8W."et㙎N%6zo?ԓcm:ъ[/'ZXߺ-w_~jrO<\]'[V+a + ȲOx]oyIyvA`0_zl_WVH ױuc-:n},trWZ. ߤؔĈSvd4Bij!-jd} /)]ҕQF\GH#zlaapȅS{հc)O@f$[ئT55>aQۨ=|܉sgmOcQ Q $i.b阶:ݍ}/6=2u.?y>;S, Z5!+Z)X++et)MhD]?t%S{" 8VUc7YiwjyO/U8=>X*G֚L5#/ EC*f#^LqS.LOm8EI#(4ҝSRdoy?F<7:guˬZA!R+jS9T]Aďg][ZSQ0:;;F;rDRGuwws2}娝cˌ0đ卅T̉' " ! -wogGh_N떽oV=q,bw{\S6?J%⸒4a!$t Fy89e)ꂣfdN^rԅ5]. VIPXʃR/\u-*|byxZ/Kf2Ha~兹't&苺=v&r\~CT ֈwjݱ 6k6jkh:!R,NS7pSbؑlWj=R~Z+>犅b!^}lfs;ޠz5G5!Mq`F˥ ۶ڑvnNg^961]sv:M? GaU~s܉ZxLyLil3_qwYjΜ:<%w+`$#[&V; !b,E*x/y %w9.^'j"`d7}};ojÛo؝w)<ݯӔr|/|W$OnjmµܷZ%vǝv\]BH#aX"~Sxh5CRE2K17ee9+XNNNŖDԘC*"KrdPEUH sY#9J4~r2޾)&7"]uI`'*[޴ϤpE(H.#dv'ݶɷ~ncki2FmO4k.n]'cRZJ<)9z:*XڝctKҭN4^_}h쎽NW˖tcuZvSCBh, K_WzM'Ưuvrv_\{ۡWPw튢~p9/͠P,f{GKy|nйG&99%Ii +vE W\aFNw*B5Y;3KpEN̪&d8ZsB93%lPUp5o:ݻo(QvAPPĘcNL˴#֨n֝d5i}±V=m{؋竷4Cu\ə}VӬ so.=;iϨpWOjj9bq0)愵p%$m7L8>*t4h&8ZיVӳunx]XI_5Fh ZX>OygIImY.Tjt8Q!8rѦkubR3hF"|K 8h';ydz1܈7!-~vׇ$" ˃ VK 5muv2ʑå?Ƽ 7}aPwfk[en^,䆽_M^|~ӣٌQRҶYGAD~a`b%A$)L#Q#שfR3I#\I{k XQZj"DF-{g=]Z(SȬ8\R*L %*7ılO/5a *TS=(|mW15Oe | sPWJeXB:IU]p3L8(*Ր." K%Ι.՗KxkU :)y6bhnD,O j!`xkJj:!zE-Pk!EsH&4)-}wnn`9^8} ׳zP4E v)]èDoyC6;L%ϿٖB(I֑rKA` /EL# nı jCb?S#׺HE!l&\3R]N+Ġ mBFTD}K[ה4em$v G 23+VPKNEt @Ŵ(YC&=?\]@}$v–^޹aZ\4|1A@K+VլB,8p~Ly*R@\<. " 5•gk~h8(xA*7:tbJtkӀ9"U!@뱦7BjrHeA@A@XXZȪK7ȼn8'p$s,߫OM< )/`!&cD;:еbZ8;QJsIjwRW{:C@ K+ QÚ?ƲZGnBJ4 )[lF"Bd2 FG`2+i" h3H[G(FU{C O1' xN0 1PƦrZ*sӖQcv0|V3h^" JkxE9m/|iy w.|t1 6y_WuBkDZA@A@X(;)}߫D(fSӦ'ID0mrְQ}\ېR5"W3BDDf dKFؖJR-j؞yR 2&Z3 @LjefU/ӎZhBő3.2ͮZdު0 tq=OEMA@X T2vþm#㯝8wP%7Etm}bAB=UlUU a\V%0Z"Lq&ML9zrfl<7=ٵ5#Oˊ^.? diOk)6 Cv%,Iɇy\T4y  lxsTǶ}M6Q?\(C7lߚZR]KssWsEt1$z{ ,R\H-:҄P;eQ-uT2Z͸кDo1_|KDeץȋ L_P藮YT  *ߏmԖnkK?szhrbC3ř|Zby(i 9J!JM&m=RL:{i-J+aشi+oh!'H>oԶz@re^"$ Eq~n ]ykS!gA% M\  pQb3.  "Uϝ;wĉSNs=pB4ڷ8{T8$,ZvJA@A@A@( '''^ɓWܷo_gg'Flb./DqϞ=(BmPM9>"   k\Q?bf@AEΝ;[ZZKAjnٲ_Thb䙂   $bP СCF+b^^+Bm]D߈%jGGǶmۈWull #5ҎU=y   +Aԉ8;e"#y4bfCԩ)H$w%*ZҰ   !bJ6@Qr 6<~E|۰_Q۠Tx3<d#GK',|z+ (Q9rdݻoTpE?O(ʑ]z#r[_!   biCC6EX"2B`D_D+p@(nVlaA@A@A@V F0=Oa}8b┋E䵝)J4-P`ZjM%!8ejuD#   hF6 !W{: qK_ѵ8۟>%&'YWIENDB`psychopy-1.82.02.dfsg/docs/source/images/unitsHeight.svg000066400000000000000000000140251257562125200232060ustar00rootroot00000000000000 image/svg+xml (-0.5,-0.667) (0,0) (+0.5,+0.667) psychopy-1.82.02.dfsg/docs/source/index.rst000066400000000000000000000025211257562125200205640ustar00rootroot00000000000000 PsychoPy is an open-source application to allow the presentation of stimuli and collection of data for a wide range of neuroscience, psychology and psychophysics experiments. It's a free, powerful alternative to Presentation |TM| or e-Prime |TM|, written in Python (a free alternative to Matlab |TM| ). .. raw:: html .. role:: red News ==================== The :ref:`Python for Neuroscience workshop (bootcamp) ` will be running again 21-23rd April 2015 (sorry, it's a beginners stream only this year). :red:`Book your place now` at `Python for Neuroscience workshop bookings `_ **Latest version**: 1.81.03 was released December 2014, with improved cross-version compatibility (including the ability for scripts to specify the version of the lib they should run on) and additional hardware support See complete :doc:`changelog` for complete list of additions and fixes .. title:: Home Contents ==================== .. toctree:: :maxdepth: 1 About PsychoPy (features, screenshots etc.) * Documentation * api/api changelog resources/resources Please remember to :ref:`cite PsychoPy ` .. |TM| unicode:: U+2122 :ltrim: psychopy-1.82.02.dfsg/docs/source/installRTaudio.rst000066400000000000000000000004661257562125200224210ustar00rootroot00000000000000On OS X, download the latest source release from: http://www.music.mcgill.ca/~gary/rtaudio/release and build with the following:: ./configure CC="gcc -arch i386" CXX="g++ -arch i386" make CFLAGS=-m32 sudo cp librtaudio.a /usr/local/lib sudo cp RtAudio.h RtError.h /usr/local/includepsychopy-1.82.02.dfsg/docs/source/installation.rst000066400000000000000000000226051257562125200221630ustar00rootroot00000000000000Installation =============== Overview ~~~~~~~~~~~~~~~~~~~~~~ PsychoPy can be installed in three main ways: * **As an application**: The "Stand Alone" versions include everything you need to create and run experiments. When in doubt, choose this option. * **As libraries**: PsychoPy and the libraries it depends on can also be installed individually, providing greater flexibility. This option requires managing a python environment. * **As source code**: If you want to customize how PsychoPy works, consult the :ref:`developer's guide ` for installation and work-flow suggestions. When you start PsychoPy for the first time, a **Configuration Wizard** will retrieve and summarize key system settings. Based on the summary, you may want to adjust some preferences to better reflect your environment. In addition, this is a good time to unpack the Builder demos to a location of your choice. (See the Demo menu in the Builder.) If you get stuck or have questions, please `email the mailing list `_. If all goes well, at this point your installation will be complete! See the next section of the manual, Getting started. .. _hardware: Recommended hardware ~~~~~~~~~~~~~~~~~~~~~~ The minimum requirement for PsychoPy is a computer with a graphics card that supports OpenGL. Many newer graphics cards will work well. Ideally the graphics card should support OpenGL version 2.0 or higher. Certain visual functions run much faster if OpenGL 2.0 is available, and some require it (e.g. ElementArrayStim). If you already have a computer, you can install PsychoPy and the Configuration Wizard will auto-detect the card and drivers, and provide more information. It is inexpensive to upgrade most desktop computers to an adequate graphics card. High-end graphics cards can be very expensive but are only needed for vision research (and high-end gaming). If you're thinking of buying a laptop for running experiments, **avoid the built-in Intel graphics chips (e.g. GMA 950)**. The drivers are crummy and performance is poor; graphics cards on laptops are more difficult to exchange. Get something with nVidia or ATI chips instead. Some graphics cards that are known to work with PsychoPy `can be found here `_; that list is not exhaustive, many cards will also work. Windows ~~~~~~~~~~~~~~~~~~~~~~ Once installed, you'll now find a link to the PsychoPy application in > Start > Programs > PsychoPy2. Click that and the Configuration Wizard should start. The wizard will try to make sure you have reasonably current drivers for your graphics card. You may be directed to download the latest drivers from the vendor, rather than using the pre-installed Windows drivers. If necessary, get new drivers directly from the graphics card vendor; don't rely on Windows updates. The Windows-supplied drivers are buggy and sometimes don't support OpenGL at all. The StandAlone installer adds the PsychoPy folder to your path, so you can run the included version of python from the command line. If you have your own version of python installed as well then you need to check which one is run by default, and change your path according to your personal preferences. Mac OS X ~~~~~~~~~~~~~~~~~~~~~~ There are different ways to install PsychoPy on a Mac that will suit different users. Almost all Mac's come with a suitable video card by default. * Intel Mac users (with OS X v10.7 or higher; 10.5 and 10.6 might still work) can simply `download`_ the standalone application bundle (the **dmg** file) and drag it to their Applications folder. (Installing it elsewhere should work fine too.) * Users of `macports `_ can install PsychoPy and all its dependencies simply with:: sudo port install py25-psychopy (Thanks to James Kyles.) * For PPC Macs (or for Intel Mac users that want their own custom python for running PsychoPy) you need to install the dependencies and PsychoPy manually. The easiest way is to use the `Enthought Python Distribution` (see Dependencies, below). * You could alternatively manually install the 'framework build' of python and the dependencies (see below). One advantage to this is that you can then upgrade versions with:: sudo easy_install -N -Z -U psychopy Linux ~~~~~~~~~~~~~~~~~~~~~~ **Debian** systems: PsychoPy is in the Debian packages index so you can simply do:: sudo apt-get install psychopy **Ubuntu** (and other Debian-based distributions): #. Add the following sources in Synaptic, in the Configuration > Repository dialog box, under "Other software":: deb http://neuro.debian.net/debian karmic main contrib non-free deb-src http://neuro.debian.net/debian karmic main contrib non-free #. Then follow the 'Package authentification' procedure described in http://neuro.debian.net/ #. Then install the psychopy package under Synaptic or through `sudo apt-get install psychopy` which will install all dependencies. (Thanks to Yaroslav Halchenko for the Debian and NeuroDebian package.) **Gentoo** PsychoPy is in the Gentoo Sceince Overlay (see `this link `_ for the ebuild files). After you have `enabled the overlay `_ simply run:: # emerge psychopy **Other** systems: You need to install the dependencies below. Then install PsychoPy:: $ sudo easy_install psychopy ... Downloading http://psychopy.googlecode.com/files/PsychoPy-1.75.01-py2.7.egg .. _dependencies: Dependencies =============== Like many open-source programs, PsychoPy depends on the work of many other people in the form of libraries. Essential packages ~~~~~~~~~~~~~~~~~~~~~~ **Python**: If you need to install python, or just want to, the easiest way is to use the `Enthought Python Distribution `_, which is `free for academic use `_. Be sure to get a 32-bit version. The only things it misses are `avbin`, `pyo`, and `flac`. If you want to install each library individually rather than use the simpler distributions of packages above then you can download the following. Make sure you get the correct version for your OS and your version of Python. easy_install will work for many of these, but some require compiling from source. * `python `_ (32-bit only, version 2.6 or 2.7; 2.5 might work, 3.x will not) * `avbin `_ (movies) On mac: 1) Download version 5 `from google `_ (not a higher version). 2) Start terminal, type `sudo mkdir -p /usr/local/lib` . 3) `cd` to the unpacked avbin directory, type `sh install.sh` . 4) Start or restart PsychoPy, and from PsychoPy's coder view shell, this should work: `from pyglet.media import avbin` . If you run a script and get an error saying `'NoneType' object has no attribute 'blit'`, it probably means you did not install version 5. * `setuptools `_ * `numpy `_ (version 0.9.6 or greater) * `scipy `_ (version 0.4.8 or greater) * `pyglet `_ (version 1.1.4, not version 1.2) * `wxPython `_ (version 2.8.10 or 2.8.11, not 2.9) * `Python Imaging Library `_ (`sudo easy_install PIL`) * `matplotlib `_ (for plotting and fast polygon routines) * `lxml `_ (needed for loading/saving builder experiment files) * `openpyxl `_ (for loading params from xlsx files) * `pyo `_ (sound, version 0.6.2 or higher, compile with `----no-messages`) These packages are only needed for Windows: * `pywin32 `_ * `winioport `_ (to use the parallel port) * `inpout32 `_ (an alternative method to using the parallel port on Windows) * `inpoutx64 `_ (to use the parallel port on 64-bit Windows) These packages are only needed for Linux: * `pyparallel `_ (to use the parallel port) .. _suggestedPackages: Suggested packages ~~~~~~~~~~~~~~~~~~~~~~ In addition to the required packages above, additional packages can be useful to PsychoPy users, e.g. for controlling hardware and performing specific tasks. These are packaged with the Standalone versions of PsychoPy but users with their own custom Python environment need to install these manually. Most of these can be installed with `easy_install`. General packages: - psignifit for bootstrapping and other resampling tests - pyserial for interfacing with the serial port - parallel python (aka pp) for parallel processing - `flac `_ audio codec, for working with google-speech Specific hardware interfaces: - `pynetstation `_ to communicate with EGI netstation. See notes on using :ref:`egi` - ioLabs toolbox - labjack toolbox For developers: - `pytest` and `coverage` for running unit tests - `sphinx` for building documentation .. _download : https://sourceforge.net/projects/psychpy/files/ psychopy-1.82.02.dfsg/docs/source/links.rst000066400000000000000000000006151257562125200205770ustar00rootroot00000000000000 Links ============ Download the latest version of PsychoPy from google `downloads `_ Feel free to `submit bugs`_ and feature requests, but maybe checkout the `mailing list`_ before suggesting something that has been discussed. .. _submit bugs : https://github.com/psychopy/psychopy/issues .. _mailing list : http://groups.google.com/group/psychopy-users psychopy-1.82.02.dfsg/docs/source/psyexp.rst000066400000000000000000000123161257562125200210100ustar00rootroot00000000000000PsychoPy Experiment file format (.psyexp) ============================================ The file format used to save experiments constructed in PsychoPy builder was created especially for the purpose, but is an open format, using a basic xml form, that may be of use to other similar software. Indeed the builder itself could be used to generate experiments on different backends (such as Vision Egg, PsychToolbox or PyEPL). The xml format of the file makes it extremely platform independent, as well as moderately(?!) easy to read by humans. There was a further suggestion to generate an XSD (or similar) `schema against which psyexp files could be validated `_. That is a low priority but welcome addition if you wanted to work on it(!) There is a basic XSD (XML Schema Definition) available in `psychopy/app/builder/experiment.xsd`. The simplest way to understand the file format is probably simply to create an experiment, save it and open the file in an xml-aware editor/viewer (e.g. change the file extension from .psyexp to .xml and then open it in Firefox). An example (from the stroop demo) is shown below. The file format maps fairly obviously onto the structure of experiments constructed with the :ref:`builder` interface, as described :doc:`here `. There are general :ref:`settingsXML` for the experiment, then there is a list of :ref:`routinesXML` and a :ref:`flow` that describes how these are combined. As with any xml file the format contains object `nodes` which can have direct properties and also child nodes. For instance the outermost node of the .psyexp file is the experiment node, with properties that specify the version of PsychoPy that was used to save the file most recently and the encoding of text within the file (ascii, unicode etc.), and with child nodes :ref:`settingsXML`, :ref:`routinesXML` and :ref:`flowXML`. .. _paramsXML: Parameters --------------------------- Many of the nodes described within this xml description of the experiment contain Param entries, representing different parameters of that Component. Nearly all parameter nodes have a `name` property and a `val` property. The parameter node with the name "advancedParams" does not have them. Most also have a `valType` property, which can take values 'bool', 'code', 'extendedCode', 'num', 'str' and an `updates` property that specifies whether this parameter is changing during the experiment and, if so, whether it changes 'every frame' (of the monitor) or 'every repeat' (of the Routine). .. _settingsXML: Settings --------------------------- The Settings node contains a number of parameters that, in PsychoPy, would normally be set in the :ref:`expSettings` dialog, such as the monitor to be used. This node contains a number of :ref:`paramsXML` that map onto the entries in that dialog. .. _routinesXML: Routines --------------------------- This node provides a sequence of xml child nodes, each of which describes a :ref:`Routine `. Each Routine contains a number of children, each specifying a :ref:`Component `, such as a stimulus or response collecting device. In the :ref:`Builder` view, the :ref:`routines` obviously show up as different tabs in the main window and the :ref:`components` show up as tracks within that tab. .. _componentsXML: Components --------------------------- Each :ref:`Component ` is represented in the .psyexp file as a set of parameters, corresponding to the entries in the appropriate component dialog box, that completely describe how and when the stimulus should be presented or how and when the input device should be read from. Different :ref:`Components` have slightly different nodes in the xml representation which give rise to different sets of parameters. For instance the `TextComponent` nodes has parameters such as `colour` and `font`, whereas the `KeyboardComponent` node has parameters such as `forceEndTrial` and `correctIf`. .. _flowXML: Flow --------------------------- The Flow node is rather more simple. Its children simply specify objects that occur in a particular order in time. A Routine described in this flow must exist in the list of Routines, since this is where it is fully described. One Routine can occur once, more than once or not at all in the Flow. The other children that can occur in a Flow are LoopInitiators and LoopTerminators which specify the start and endpoints of a loop. All loops must have exactly one initiator and one terminator. .. _namesXML: Names --------- For the experiment to generate valid PsychoPy code the name parameters of all objects (Components, Loops and Routines) must be unique and contain no spaces. That is, an experiment can not have two different Routines called 'trial', nor even a Routine called 'trial' and a Loop called 'trial'. The Parameter names belonging to each Component (or the Settings node) must be unique within that Component, but can be identical to parameters of other Components or can match the Component name themselves. A TextComponent should not, for example, have multiple 'pos' parameters, but other Components generally will, and a Routine called 'pos' would also be also permissible. .. literalinclude:: stroop.psyexp :language: xml psychopy-1.82.02.dfsg/docs/source/recipes/000077500000000000000000000000001257562125200203555ustar00rootroot00000000000000psychopy-1.82.02.dfsg/docs/source/recipes/addCustomModules.rst000066400000000000000000000034211257562125200243630ustar00rootroot00000000000000.. _addModules: Adding external modules to Standalone PsychoPy ================================================================ You might find that you want to add some additional Python module/package to your Standalone version of PsychoPy. To do this you need to: * download a copy of the package (make sure it's for Python 2.7 on your particular platform) * unzip/open it into a folder * add that folder to the path of PsychoPy by one of the methods below Avoid adding the entire path (e.g. the site-packages folder) of separate installation of Python, because that may contain conflicting copies of modules that PsychoPy is also providing. Using preferences -------------------------- As of version 1.70.00 you can do this using the PsychoPy preferences/general. There you will find preference for `paths` which can be set to a list of strings e.g. `['/Users/jwp/code', '~/code/thirdParty']` These only get added to the Python path when you import psychopy (or one of the psychopy packages) in your script. Adding a .pth file -------------------------- An alternative is to add a file into the site-packages folder of your application. This file should be pure text and have the extension .pth to indicate to Python that it adds to the path. On win32 the site-packages folder will be something like: C:/Program Files/PsychoPy2/lib/site-packages On OS X you need to right-click the application icon, select 'Show Package Contents' and then navigate down to Contents/Resources/lib/python2.6. Put your .pth file here, next to the various libraries. The advantage of this method is that you don't need to do the import psychopy step. The downside is that when you update PsychoPy to a new major release you'll need to repeat this step (patch updates won't affect it though). psychopy-1.82.02.dfsg/docs/source/recipes/animation.rst000066400000000000000000000063031257562125200230700ustar00rootroot00000000000000Animation ===================================== General question: How can I animate something? Conceptually, animation just means that you vary some aspect of the stimulus over time. So the key idea is to draw something slightly different on each frame. This is how movies work, and the same principle can be used to create scrolling text, or fade-in / fade-out effects, and the like. (copied & pasted from the email list; see the list for people's names and a working script.) Scrolling text ===================================== Key idea: Vary the **position** of the stimulus across frames. Question: How can I produce scrolling text (like html's directive)? Answer: PsychoPy has animation capabilities built-in (it can even produce and export movies itself (e.g. if you want to show your stimuli in presentations)). But here you just want to animate stimuli directly. e.g. create a text stimulus. In the 'pos' (position) field, type: [frameN, 0] and select "set every frame" in the popup button next to that field. Push the Run button and your text will move from left to right, at one pixel per screen refresh, but stay at a fixed y-coordinate. In essence, you can enter an arbitrary formula in the position field and the stimulus will be-redrawn at a new position on each frame. frameN here refers to the number of frames shown so far, and you can extend the formula to produce what you need. You might find performance issues (jittering motion) if you try to render a lot of text in one go, in which case you may have to switch to using images of text. I wanted my text to scroll from right to left. So if you keep your eyes in the middle of the screen the next word to read would come from the right (as if you were actually reading text). The original formula posted above scrolls the other way. So, you have to put a negative sign in front of the formula for it to scroll the other way. You have to change the units to pixel. Also, you have to make sure you have an end time set, otherwise it just flickers. I also set my letter height to 100 pixels. The other problem I had was that I wanted the text to start blank and scroll into the screen. So, I wrote [2000-frameN, 0] and this worked really well. Fade-in / fade-out effects ===================================== Key idea: vary the **opacity** of the stimulus over frames. Question: I'd like to present an image with the image appearing progressively and disappearing progressively too. How to do that? Answer: The Patch stimulus has an opacity field. Set the button next to it to be "set every frame" so that its value can be changed progressively, and enter an equation in the box that does what you want. e.g. if your screen refresh rate is 60 Hz, then entering: frameN/120 would cycle the opacity linearly from 0 to 1.0 over 2s (it will then continue incrementing but it doesn't seem to matter if the value exceeds 1.0). Using a code component might allow you to do more sophisticated things (e.g. fade in for a while, hold it, then fade out). Or more simply, you just create multiple successive Patch stimulus components, each with a different equation or value in the opacity field depending on their place in the timeline. psychopy-1.82.02.dfsg/docs/source/recipes/appFromScript.rst000066400000000000000000000066021257562125200237040ustar00rootroot00000000000000.. _appFromScript: Building an application from your script ============================================== A lot of people ask how they can build a standalone application from their Python script. Usually this is because they have a collaborator and want to just send them the experiment. In general this is not advisable - the resulting bundle of files (single file on OS X) will be on the order of 100Mb and will not provide the end user with any of the options that they might need to control the task (for example, Monitor Center won't be provided so they can't to calibrate their monitor). A better approach in general is to get your collaborator to install the Standalone PsychoPy on their own machine, open your script and press run. (You don't send a copy of Microsoft Word when you send someone a document - you expect the reader to install it themself and open the document). Nonetheless, it is technically possible to create exe files on Windows, and Ricky Savjani (savjani at bcm.edu) has kindly provided the following instructions for how to do it. A similar process might be possible on OS X using py2app - if you've done that then feel free to contribute the necessary script or instructions. Using py2exe to build an executable ----------------------------------------- Instructions: #. Download and install py2exe (http://www.py2exe.org/) #. Develop your PsychoPy script as normal #. Copy this setup.py file into the same directory as your script #. Change the Name of progName variable in this file to the Name of your desired executable program name #. Use cmd (or bash, terminal, etc.) and run the following in the directory of your the two files: python setup.py py2exe #. Open the 'dist' directory and run your executable A example setup.py script:: # Created 8-09-2011 # Ricky Savjani # (savjani at bcm.edu) #import necessary packages from distutils.core import setup import os, matplotlib import py2exe #the name of your .exe file progName = 'MultipleSchizophrenia.py' #Initialize Holder Files preference_files = [] app_files = [] my_data_files=matplotlib.get_py2exe_datafiles() #define which files you want to copy for data_files for files in os.listdir('C:\\Program Files\\PsychoPy2\\Lib\\site-packages\\PsychoPy-1.65.00-py2.6.egg\\psychopy\\preferences\\'): f1 = 'C:\\Program Files\\PsychoPy2\\Lib\\site-packages\\PsychoPy-1.65.00-py2.6.egg\\psychopy\\preferences\\' + files preference_files.append(f1) #if you might need to import the app files #for files in os.listdir('C:\\Program Files\\PsychoPy2\\Lib\\site-packages\\PsychoPy-1.65.00-py2.6.egg\\psychopy\\app\\'): # f1 = 'C:\\Program Files\\PsychoPy2\\Lib\\site-packages\\PsychoPy-1.65.00-py2.6.egg\\psychopy\\app\\' + files # app_files.append(f1) #all_files = [("psychopy\\preferences", preference_files),("psychopy\\app", app_files), my_data_files[0]] #combine the files all_files = [("psychopy\\preferences", preference_files), my_data_files[0]] #define the setup setup( console=[progName], data_files = all_files, options = { "py2exe":{ "skip_archive": True, "optimize": 2 } } ) psychopy-1.82.02.dfsg/docs/source/recipes/builderFeedback.rst000066400000000000000000000066761257562125200241610ustar00rootroot00000000000000.. _feedback: Builder - providing feedback ================================ If you're using the Builder then the way to provide feedback is with a :ref:`code` to generate an appropriate message (and then a :ref:`text` to present that message). PsychoPy will be keeping track of various aspects of the stimuli and responses for you throughout the experiment and the key is knowing where to find those. The following examples assume you have a :ref:`Loop ` called `trials`, containing a :ref:`Routine ` with a :ref:`keyboard` called `key_resp`. Obviously these need to be adapted in the code below to fit your experiment. .. note:: The following generate strings use python 'formatted strings'. These are very powerful and flexible but a little strange when you aren't used to them (they contain odd characters like %.2f). See :ref:`formattedStrings` for more info. Feedback after a trial ----------------------- This is actually demonstrated in the demo, `ExtendedStroop` (in the Builder>demos menu, unpack the demos and then look in the menu again. tada!) If you have a Keyboard Component called `key_resp` then, after every trial you will have the following variables:: key_resp.keys #a python list of keys pressed key_resp.rt #the time to the first key press key_resp.corr #None, 0 or 1, if you are using 'store correct' To create your `msg`, insert the following into the 'start experiment` section of the :ref:`code`:: msg='doh!'#if this comes up we forgot to update the msg! and then insert the following into the `Begin Routine` section (this will get run every repeat of the routine):: if len(key_resp.keys)<1: msg="Failed to respond" elif resp.corr:#stored on last run routine msg="Correct! RT=%.3f" %(resp.rt) else: msg="Oops! That was wrong" Feedback after a block --------------------------- In this case the feedback routine would need to come after the loop (the block of trials) and the message needs to use the stored data from the loop rather than the `key_resp` directly. Accessing the data from a loop is not well documented but totally possible. In this case, to get all the keys pressed in a `numpy `_ array:: trials.data['key_resp.keys'] #numpy array with size=[ntrials,ntypes] If you used the 'Store Correct' feature of the Keyboard Component (and told psychopy what the correct answer was) you will also have a variable:: #numpy array storing whether each response was correct (1) or not (0) trials.data['resp.corr'] So, to create your `msg`, insert the following into the 'start experiment` section of the :ref:`code`:: msg='doh!'#if this comes up we forgot to update the msg! and then insert the following into the `Begin Routine` section (this will get run every repeat of the routine):: nCorr = trials.data['key_resp.corr'].sum() #.std(), .mean() also available meanRt = trials.data['key_resp.rt'].mean() msg = "You got %i trials correct (rt=%.2f)" %(nCorr,meanRt) Draw your message to the screen ------------------------------------- Using one of the above methods to generate your `msg` in a :ref:`code`, you then need to present it to the participant by adding a :ref:`text` to your `feedback` Routine and setting its text to `$msg`. .. warning:: The Text Component needs to be below the Code Component in the Routine (because it needs to be updated after the code has been run) and it needs to `set every repeat`. psychopy-1.82.02.dfsg/docs/source/recipes/builderTerminateLoops.rst000066400000000000000000000045771257562125200254400ustar00rootroot00000000000000.. _feedback: Builder - terminating a loop ========================================= People often want to terminate their :ref:`loops` before they reach the designated number of trials based on subjects' responses. For example, you might want to use a Loop to repeat a sequence of images that you want to continue until a key is pressed, or use it to continue a training period, until a criterion performance is reached. To do this you need a :ref:`code` inserted into your :ref:`routine `. All loops have an attribute called `finished` which is set to `True` or `False` (in Python these are really just other names for `1` and `0`). This `finished` property gets checked on each pass through the loop. So the key piece of code to end a loop called `trials` is simply:: trials.finished=True #or trials.finished=1 if you prefer Of course you need to check the condition for that with some form of `if` statement. **Example 1**: You have a change-blindness study in which a pair of images flashes on and off, with intervening blanks, in a loop called `presentationLoop`. You record the key press of the subject with a :ref:`keyboard` called `resp1`. Using the 'ForceEndTrial' parameter of `resp1` you can end the current cycle of the loop but to end the loop itself you would need a :ref:`code`. Insert the following two lines in the `End Routine` parameter for the Code Component, which will test whether more than zero keys have been pressed:: if len(resp1.keys)>0: presentationLoop.finished=1 **Example 2**: Sometimes you may have more possible trials than you can actually display. By default, a loop will present all possible trials (nReps * length-of-list). If you only want to present the first 10 of all possible trials, you can use a code component to count how many have been shown, and then finish the loop after doing 10. This example assumes that your loop is named 'trials'. You need to add two things, the first to initialize the count, and the second to update and check it. `Begin Experiment`:: myCount = 0 `Begin Routine`:: myCount = myCount + 1 if myCount > 10: trials.finished = True .. note:: In Python there is no `end` to finish an `if` statement. The content of the `if` or of a for-loop is determined by the indentation of the lines. In the above example only one line was indented so that one line will be executed if the statement evaluates to `True`. psychopy-1.82.02.dfsg/docs/source/recipes/classroomInstallation.rst000066400000000000000000000104051257562125200254730ustar00rootroot00000000000000.. _classroom: Installing PsychoPy in a classroom (administrators) ====================================================== .. note: This document is aimed at network administrators in teaching departments, wanting to install PsychoPy with many identical computers. It is suitable for any version of MS Windows (for OS X other solutions are available). For running PsychoPy in a classroom environment it is probably preferable to have a 'partial' network installation. The PsychoPy library features frequent new releases, including bug fixes and you want to be able to update machines with these new releases. But PsychoPy depends on many other python libraries (over 200Mb in total) that tend not to change so rapidly, or at least not in ways critical to the running of experiments. If you install the whole PsychoPy application on the network then all of this data has to pass backwards and forwards, and starting the app will take even longer than normal. The basic aim of this document is to get to a state whereby; - Python and the major dependencies of PsychoPy are installed on the local machine (probably a disk image to be copied across your lab computers) - PsychoPy itself (only ~2Mb) is installed in a network location where it can be updated easily by the administrator - a file is created in the installation that provides the path to the network drive location - Start-Menu shortcuts need to be set to point to the local Python but the remote PsychoPy application launcher Once this is done, the vast majority of updates can be performed simply by replacing the PsychoPy library on the network drive. 1. Install dependencies locally ------------------------------------------------- Download the latest version of the Standalone PsychoPy distribution, and run as administrator. This will install a copy of Python and many dependencies to a default location of `C:\\Program Files\\PsychoPy2\\` 2. Move the PsychoPy to the network ---------------------------------------------------------- You need a network location that is going to be available, with read-only access, to all users on your machines. You will find all the contents of PsychoPy itself at something like this (version dependent obviously): `C:\\Program Files\\PsychoPy2\\Lib\\site-packages\\PsychoPy-1.70.00-py2.6.egg` Move that entire folder to your network location and call it psychopyLib (or similar, getting rid of the version-specific part of the name). Now the following should be a valid path: `\\psychopyLib\\psychopy` 3. Update the Python path ----------------------------------------- The Python installation (in C:\\Program Files\\PsychoPy2) needs to know about the network location. If Python finds a text file with extension `.pth` anywhere on its existing path then it will add to the path any valid paths it finds in the file. So create a text file that has one line in it: `\\psychopyLib` You can test if this has worked. Go to `C:\\Program Files\\PsychoPy2` and double-click on python.exe. You should get a Python terminal window come up. Now try: >>> import psychopy If psychopy is not found on the path then there will be an import error. Try adjusting the .pth file, restarting python.exe and importing again. 4. Update the Start Menu ----------------------------------------- The shortcut in the Windows Start Menu will still be pointing to the local (now non-existent) PsychoPy library. Right-click it to change properties and set the shortcut to point to something like:: "C:\Program Files\PsychoPy2\pythonw.exe" "\psychopyLib\psychopy\\app\psychopyApp.py" You probably spotted from this that the PsychoPy app is simply a Python script. You may want to update the file associations too, so that `.psyexp` and `.py` are opened with:: "C:\Program Files\PsychoPy2\pythonw.exe" "\psychopyLib\psychopy\app\psychopyApp.py" "%1" Lastly, to make the shortcut look pretty, you might want to update the icon too. Set the icon's location to:: "\psychopyLib\psychopy\app\Resources\psychopy.ico" 5. Updating to a new version -------------------------------- Fetch the latest .zip release. Unpack it and replace the contents of `\\psychopyLib\\` with the contents of the zip file. psychopy-1.82.02.dfsg/docs/source/recipes/formattedStrings.rst000066400000000000000000000030541257562125200244500ustar00rootroot00000000000000.. _formattedStrings: Generating formatted strings ================================ A formatted string is a variable which has been converted into a string (text). In python the specifics of how this is done is determined by what kind of variable you want to print. Example 1: You have an experiment which generates a string variable called `text`. You want to insert this variable into a string so you can print it. This would be achieved with the following code:: message = 'The result is %s' %(text) This will produce a variable `message` which if used in a text object would print the phrase 'The result is' followed by the variable `text`. In this instance %s is used as the variable being entered is a string. This is a marker which tells the script where the variable should be entered. `%text` tells the script which variable should be entered there. Multiple formatted strings (of potentially different types) can be entered into one string object:: longMessage = 'Well done %s that took %0.3f seconds' %(info['name'], time) Some of the handy formatted string types:: >>> x=5 >>> x1=5124 >>> z='someText' >>> 'show %s' %(z) 'show someText' >>> '%0.1f' %(x) #will show as a float to one decimal place '5.0' >>> '%3i' %(x) #an integer, at least 3 chars wide, padded with spaces ' 5' >>> '%03i' %(x) #as above but pad with zeros (good for participant numbers) '005' See the `python documentation `_ for a more complete list. psychopy-1.82.02.dfsg/docs/source/recipes/interleaveStaircases.py000066400000000000000000000041121257562125200251050ustar00rootroot00000000000000from psychopy import visual, core, data, event from numpy.random import shuffle import copy, time #from the std python libs #create some info to store with the data info={} info['startPoints']=[1.5,3,6] info['nTrials']=10 info['observer']='jwp' win=visual.Window([400,400]) #--------------------- #create the stimuli #--------------------- #create staircases stairs=[] for thisStart in info['startPoints']: #we need a COPY of the info for each staircase #(or the changes here will be made to all the other staircases) thisInfo = copy.copy(info) #now add any specific info for this staircase thisInfo['thisStart']=thisStart #we might want to keep track of this thisStair = data.StairHandler(startVal=thisStart, extraInfo=thisInfo, nTrials=50, nUp=1, nDown=3, minVal = 0.5, maxVal=8, stepSizes=[4,4,2,2,1,1]) stairs.append(thisStair) for trialN in range(info['nTrials']): shuffle(stairs) #this shuffles 'in place' (ie stairs itself is changed, nothing returned) #then loop through our randomised order of staircases for this repeat for thisStair in stairs: thisIntensity = thisStair.next() print 'start=%.2f, current=%.4f' %(thisStair.extraInfo['thisStart'], thisIntensity) #--------------------- #run your trial and get an input #--------------------- keys = event.waitKeys() #(we can simulate by pushing left for 'correct') if 'left' in keys: wasCorrect=True else: wasCorrect = False thisStair.addData(wasCorrect) #so that the staircase adjusts itself #this trial (of all staircases) has finished #all trials finished #save data (separate pickle and txt files for each staircase) dateStr = time.strftime("%b_%d_%H%M", time.localtime())#add the current time for thisStair in stairs: #create a filename based on the subject and start value filename = "%s start%.2f %s" %(thisStair.extraInfo['observer'], thisStair.extraInfo['thisStart'], dateStr) thisStair.saveAsPickle(filename) thisStair.saveAsText(filename) psychopy-1.82.02.dfsg/docs/source/recipes/interleaveStaircases.rst000066400000000000000000000020271257562125200252700ustar00rootroot00000000000000.. _interleavedStairs:: Coder - interleave staircases ================================ Often psychophysicists using staircase procedures want to interleave multiple staircases, either with different start points, or for different conditions. There is now a class, :class:`psychopy.data.MultiStairHandler` to allow simple access to interleaved staircases of either basic or QUEST types. That can also be used from the :ref:`loops` in the :ref:`builder`. The following method allows the same to be created in your own code, for greater options. The method works by nesting a pair of loops, one to loop through the number of trials and another to loop across the staircases. The staircases can be shuffled between trials, so that they do not simply alternate. .. note:: Note the need to create a *copy* of the info. If you simply do `thisInfo=info` then all your staircases will end up pointing to the same object, and when you change the info in the final one, you will be changing it for all. .. literalinclude:: interleaveStaircases.py psychopy-1.82.02.dfsg/docs/source/recipes/isoluminance.rst000066400000000000000000000053761257562125200236100ustar00rootroot00000000000000Making isoluminant stimuli ===================================== From the mailing list (see there for names, etc): **Q1: How can I create colours (RGB) that are isoluminant?** A1: The easiest way to create isoluminant stimuli (or control the luminance content) is to create the stimuli in DKL space and then convert them into RGB space for presentation on the monitor. More details on DKL space can be found in the section about :ref:`colorspaces` and conversions between DKL and RGB can be found in the API reference for :class:`psychopy.misc` **Q2: There's a difference in luminance between my stimuli. How could I correct for that?** I'm running an experiment where I manipulate color chromatic saturation, keeping luminance constant. I've coded the colors (red and blue) in rgb255 for 6 saturation values (10%, 20%, 30%, 40%, 50%, 60%, 90%) using a conversion from HSL to RGB color space. Note that we don't possess spectrophotometers such as PR650 in our lab to calibrate each color gun. I've calibrated the gamma of my monitor psychophysically. Gamma was set to 1.7 (threshold) for gamm(lum), gamma(R), gamma(G), gamma(B). Then I've measured the luminance of each stimuli with a Brontes colorimeter. But there's a difference in luminance between my stimuli. How could I correct for that? A2: Without a spectroradiometer you won't be able to use the color spaces like DKL which are designed to help this sort of thing. If you don't care about using a specific colour space though you should be able to deduce a series of isoluminant colors manually, because the luminance outputs from each gun should sum linearly. e.g. on my monitor:: maxR=46cd/m2 maxG=114 maxB=15 (note that green is nearly always brightest) So I could make a 15cd/m2 stimulus using various appropriate fractions of those max values (requires that the screen is genuinely gamma-corrected):: R=0, G=0, B=255 R=255*15/46, G=0, B=0 R=255*7.5/46, G=255*15/114, B=0 Note that, if you want a pure fully-saturated blue, then you're limited by the monitor to how bright you can make your stimulus. If you want brighter colours your blue will need to include some of the other guns (similarly for green if you want to go above the max luminance for that gun). A2.1. You should also consider that even if you set appropriate RGB values to display your pairs of chromatic stimuli at the same luminance that they might still appear different, particularly between observers (and even if your light measurement device says the luminance is the same, and regardless of the colour space you want to work in). To make the pairs perceptually isoluminant, each observer should really determine their own isoluminant point. You can do this with the minimum motion technique or with heterochromatic flicker photometry. psychopy-1.82.02.dfsg/docs/source/recipes/recipes.rst000066400000000000000000000004741257562125200225460ustar00rootroot00000000000000Recipes ("How-to"s) ===================================== Below are various tips/tricks/recipes/how-tos for PsychoPy. They involve something that is a little more involved than you would find in FAQs, but too specific for the manual as such (should they be there?). .. toctree:: :maxdepth: 1 :glob: * psychopy-1.82.02.dfsg/docs/source/recipes/webcam.rst000066400000000000000000000016001257562125200223420ustar00rootroot00000000000000Adding a web-cam ===================================== From the mailing list (see there for names, etc): "I spent some time today trying to get a webcam feed into my psychopy proj, inside my visual.window. The solution involved using the opencv module, capturing the image, converting that to PIL, and then feeding the PIL into a SimpleImageStim and looping and win.flipping. Also, to avoid looking like an Avatar in my case, you will have to change the default decoder used in PIL fromstring to utilize BGR instead of RGB in the decoding. I thought I would save some time for people in the future who might be interested in using a webcam feed for their psychopy project. All you need to do is import the opencv module into psychopy (importing modules was well documented by psychopy online) and integrate something like this into your psychopy script." .. literalinclude:: webcam_demo.py psychopy-1.82.02.dfsg/docs/source/recipes/webcam_demo.py000066400000000000000000000013721257562125200231740ustar00rootroot00000000000000 from psychopy import visual, event, core import Image, time, pylab, cv, numpy mywin = visual.Window(allowGUI=False, monitor='testMonitor', units='norm',colorSpace='rgb',color=[-1,-1,-1], fullscr=True) mywin.setMouseVisible(False) capture = cv.CaptureFromCAM(0) img = cv.QueryFrame(capture) pi = Image.fromstring("RGB", cv.GetSize(img), img.tostring(), "raw", "BGR", 0, 1) print pi.size myStim = visual.GratingStim(win=mywin, tex=pi, pos=[0,0.5], size = [0.6,0.6], opacity = 1.0, units = 'norm') myStim.setAutoDraw(True) while True: img = cv.QueryFrame(capture) pi = Image.fromstring("RGB", cv.GetSize(img), img.tostring(), "raw", "BGR", 0, 1) myStim.setTex(pi) mywin.flip() theKey = event.getKeys() if len(theKey) != 0: break psychopy-1.82.02.dfsg/docs/source/resources/000077500000000000000000000000001257562125200207355ustar00rootroot00000000000000psychopy-1.82.02.dfsg/docs/source/resources/P4N-workshop.rst000066400000000000000000000057321257562125200237510ustar00rootroot00000000000000.. _P4N: P4N 2015: Python for Neuroscience (and Psychology) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ You can place bookings NOW at `Python for Neuroscience workshop bookings `_ Do you want to get started using Python_ (and PsychoPy_) for your studies in behavioural sciences? Maybe you keep meaning to switch from another package and haven't gotten around to it. This workshop will get you off the ground with building and analysing your experiments using Python. `Python`_ is a powerful well-designed programming language that's totally free and runs on all operating systems. It's a little like a free replacement for Matlab, but with more flexibility and better syntax! `PsychoPy`_ is a modern, powerful, easy-to-use software package for conducting studies in psychophysics, neuroimaging and experimental psychology. It's become the package of choice in very many labs worldwide (see `PsychoPy usage stats `_). It comes with a graphical interface (Builder) as well as a `Python` scripting interface (Coder), which will be the primary focus at this workshop. The workshop is led by Jon Peirce, who created the core of PsychoPy and has over 10 years experience of Python programming and teaching students. Details ------------ :Spaces: 30 beginner :When: 21-23 April 2015 (inclusive) :Where: School of Psychology, University of Nottingham :Cost: £350 :Includes: Refreshments and lunch. There is an accommodation package too, costing around £44 per night including bed and breakfast :Content: Material will cover *Python* programming basics as well as PsychoPy-specific coding. Note that this is not a workshop about PsychoPy Builder; we'll really be focussing on programming. Is this suitable for you? ---------------------------- The target audience is those that want to learn to program in Python for general use in science. We will focus on generating experiments: presenting stimuli and collecting responses, but also on basic analyses and plotting in Python as well. We'll provide you with additional 'intermediate' material as well, for you to build on what you've learnt, but if you're already a proficient programmer in Python then this is probably not the course for you. Schedule ------------------------ Some sessions will be self-paced (shown in green). We'll not start the first formal session until 10am on Day 1 (coffee available from 9am though) and we'll finish at 4pm on Day 3 to allow some travel flexibility. But you are welcome to hang around and continue working if you prefer. [All sessions subject to change] .. image:: ../images/scheduleBeginner.png :scale: 80 % For any enquiries please email me at `jonathan.peirce at nottingham.ac.uk` (beware my strangely spelled surname when typing that in!) .. _Python: http://www.python.org/ .. _PsychoPy: http://www.psychopy.org/ psychopy-1.82.02.dfsg/docs/source/resources/resources.rst000066400000000000000000000070001257562125200234760ustar00rootroot00000000000000Resources (e.g. for teaching) ===================================== There are a number of further resources to help learn/teach about PsychoPy. If you also have PsychoPy materials/course then please let us know so that we can link to them from here too! :ref:`P4N` --------------------------------------------------------------- There will be a 3-day workshop in April 2014 at Nottingham University. It won't be *only* about PsychoPy, but about Python for science more generally and focussing on coding rather than using the Builder interface. We hope this year to run intermediate and novice sessions in parallel (rather than novice only). .. _youtube: Youtube tutorials ----------------- - `Youtube PsychoPy tutorial `_ showing how to build a basic experiment in the :ref:`builder` interface. That's a great way to get started; build your own complete experiment in 15 minutes flat! - There's also a `subtitled version of the stroop video tutorial `_ (Thanks Kevin Cole for doing that!) .. _lectureMaterials: Materials for Builder --------------------- - At `School of Psychology, University of Nottingham`_, PsychoPy is now used for all first year practical class teaching. The classes that comprise that first year course are provided below. They were created partially with funding from the former `Higher Education Academy Psychology Network`_. Note that the materials here will be updated frequently as they are further developed (e.g. to update screenshots etc) so make sure you have the latest version of them! `PsychoPy_pracs_2011v2.zip (21MB) `_ (last updated: 15 Dec 2011) - The `GestaltReVision group (University of Leuven) wiki `_ covering PsychoPy (some Builder info and great tutorials for Python/PsychoPy coding of experiments). Materials for Coder ------------------- - `Gary Lupyan `_ runs a class on programming experiments using Python/PsychoPy and makes his lecture materials available `on this wiki `_ - The `GestaltReVision group (University of Leuven) wiki `_ offers a `one-day crash course to Python and PsychoPy on a IPython Notebook `_, and has lots of great information taking you from basic programming to advanced techniques. - Radboud University, Nijmegen also has a `PsychoPy programming course `_ --------------------------------- Previous events -------------------- * ECEM, August 2013 : Python for eye-tracking workshop with (Sol Simpson, Michael MacAskill and Jon Peirce). `Download Python-for-eye-tracking materials `_ * :ref:`VSS` * `Yale, 21-23 July `_ : The first ever dedicated PsychoPy workshop/conference was at Yale, 21-23 July 2011. Thanks Jeremy for organising! * EPS Satellite workshop, 8 July 2011 * `BPS Maths Stats and Computing Section `_ workshop (Dec 2010): .. raw:: html

    .. _School of Psychology, University of Nottingham: http://www.nottingham.ac.uk/psychology .. _Higher Education Academy Psychology Network: http://www.pnarchive.org/ psychopy-1.82.02.dfsg/docs/source/resources/vss-workshop.rst000066400000000000000000000032241257562125200241550ustar00rootroot00000000000000 .. _VSS: VSS 2012 Satellite Event, May 2012 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PsychoPy is a modern, powerful easy-to-use software package for conducting psychophysics and imaging studies. It's become the package of choice in thousands of labs worldwide (see http://www.psychopy.org/usage.php). Using the Python programming language (a more powerful and free alternative to Matlab) PsychoPy can generate your stimuli in real-time and collect responses with high temporal precision. Want to get started using PsychoPy for your studies? This workshop will get you off the ground with building your first experiments. It will be run as a satellite to the `Vision Sciences Society conference `_. - when: Thurs 10th May, 12-5pm - where: Naples Grand, Banyan Room 1-2 - cost: £75 - target audience: novice - material will cover the Builder interface and simple Python coding Email me personally (jon at peirce.org.uk) if you're interested in attending (or helping!). There will be very limited spaces available (probably 30) in order that participants get the most out of the event. So get in touch as soon as possible. The registration charge of £75 is to cover costs and, hopefully, lunch. This will be invoiced so that it can be claimed back. The workshop will include a mixture of demonstrations and periods of users creating their own experiment in the software. Time will be spent partly on the graphical interface and partly on writing Python code. Please bring a laptop with PsychoPy installed, as well as ideas for a simple experiment to build. That will allow you to get the most out of the session. psychopy-1.82.02.dfsg/docs/source/screenshots.rst000066400000000000000000000026221257562125200220170ustar00rootroot00000000000000.. _screenshots: Screenshots ===================================== A few screenshots are provided here to give you a flavour, but it's easier to download the software and run the demos (from the demos menus in each view) to see the variety of stimuli that can be generated. PsychoPy is one of very few packages that allows a choice of interface. Use the :ref:`coder` view, for those that like to program (or just use your own editor) .. image:: images/coder_small.gif :target: coder/coder.html :alt: The Coder view and the :ref:`builder` view for those that don't: .. image:: images/builder_small.jpg :target: builder/builder.html :alt: The Builder view PsychoPy can handle every type of stimulus you can imagine... Images and movies of most formats: .. image:: images/demo_face.jpg :alt: images Random dots and element arrays, drawn in realtime: .. image:: images/demo_dots.jpg :alt: Random dot kinematograms (RDKs) .. image:: images/demo_elementArray.gif :alt: Complex arrays of elements drawn in realtime Many text options and dialog boxes: .. image:: images/demo_text.gif :alt: Lot's of options for drawing Unicode text stimuli .. image:: images/demo_gui.jpg :alt: It's really easy to build dialog boxes For more ideas about PsychoPy's massive range of stimuli, install it, go to the Coder view and run some of the `demo` scripts (there's a whole demos menu). psychopy-1.82.02.dfsg/docs/source/stroop.psyexp000066400000000000000000000141011257562125200215200ustar00rootroot00000000000000 psychopy-1.82.02.dfsg/docs/source/troubleshooting.rst000066400000000000000000000125441257562125200227120ustar00rootroot00000000000000.. _troubleshooting: Troubleshooting ===================================== Regrettably, PsychoPy is not bug-free. Running on all possible hardware and all platforms is a big ask. That said, a huge number of bugs have been resolved by the fact that there are literally 1000s of people using the software that have :ref:`contributed either bug reports and/or fixes `. Below are some of the more common problems and their workarounds, as well as advice on how to get further help. .. _notStarting: The application doesn't start ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ You may find that you try to launch the PsychoPy application, the splash screen appears and then goes away and nothing more happens. What this means is that an error has occurred during startup itself. Commonly, the problem is that a preferences file is somehow corrupt. To fix that see :ref:`cleanPrefs`, below. If resetting the preferences files doesn't help then we need to get to an error message in order to work out why the application isn't starting. The way to get that message depends on the platform (see below). *Windows users* (starting from the Command Prompt): #. Did you get an error message that "This application failed to start because the application configuration is incorrect. Reinstalling the application may fix the problem"? If so that indicates you need to `update your .NET installation to SP1 `_ . #. open a DOS Command Prompt (terminal): #. go to the Windows Start menu #. select Run... and type in cmd #. paste the following into that window (Ctrl-V doesn't work but you can right-click and select Paste). Replace VERSION with your version number (e.g. 1.61.03):: "C:\Program Files\PsychoPy2\python.exe" "C:\Program Files\PsychoPy2\Lib\site-packages\PsychoPy-VERSION-py2.6.egg\psychopy\app\psychopyApp.py" #. when you hit you will hopefully get a moderately useful error message that you can :ref:`contribForum` *Mac users*: #. open the Console app (open spotlight and type console) #. if there are a huge number of messages there you might find it easiest to clear them (the brush icon) and then start PsychoPy again to generate a new set of messages I run a Builder experiment and nothing happens ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ An error message may have appeared in a dialog box that is hidden (look to see if you have other open windows somewhere). An error message may have been generated that was sent to output of the Coder view: #. go to the Coder view (from the Builder>View menu if not visible) #. if there is no Output panel at the bottom of the window, go to the View menu and select Output #. try running your experiment again and see if an error message appears in this Output view If you still don't get an error message but the application still doesn't start then manually turn off the viewing of the Output (as below) and try the above again. Manually turn off the viewing of output ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Very occasionally an error will occur that crashes the application *after* the application has opened the Coder Output window. In this case the error message is still not sent to the console or command prompt. To turn off the Output view so that error messages are sent to the command prompt/terminal on startup, open your appData.cfg file (see :ref:`cleanPrefs`), find the entry:: [coder] showOutput = True and set it to `showOutput = False` (note the capital 'F'). .. _useSource: Use the source (Luke?) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PsychoPy comes with all the source code included. You may not think you're much of a programmer, but have a go at reading the code. You might find you understand more of it than you think! To have a look at the source code do one of the following: - when you get an error message in the :ref:`coder` click on the hyperlinked error lines to see the relevant code - on Windows - go to `Program Files\PsychoPy2\Lib\site-packages\Psychopy` - have a look at some of the files there - on Mac - right click the PsychoPy app and select `Show Package Contents` - navigate to `Contents/Resources/lib/python2.6/psychopy` .. _cleanPrefs: Cleaning preferences and app data ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Every time you shut down PsychoPy (by normal means) your current preferences and the state of the application (the location and state of the windows) are saved to disk. If PsychoPy is crashing during startup you may need to edit those files or delete them completely. On OS X and Linux the files are:: ~/.psychopy2/appData.cfg ~/.psychopy2/userPrefs.cfg On Windows they are:: ${DOCS AND SETTINGS}\{USER}\Application Data\psychopy2\appData.cfg ${DOCS AND SETTINGS}\{USER}\Application Data\psychopy2\userPrefs.cfg The files are simple text, which you should be able to edit in any text editor. Particular changes that you might need to make: If the problem is that you have a corrupt experiment file or script that is trying and failing to load on startup, you could simply delete the `appData.cfg` file. Please *also* :ref:`contribForum` a copy of the file that isn't working so that the underlying cause of the problem can be investigated (google first to see if it's a known issue). psychopy-1.82.02.dfsg/fileassoc.nsh000066400000000000000000000100451257562125200171550ustar00rootroot00000000000000; fileassoc.nsh ; File association helper macros ; Written by Saivert ; ; Features automatic backup system and UPDATEFILEASSOC macro for ; shell change notification. ; ; |> How to use <| ; To associate a file with an application so you can double-click it in explorer, use ; the APP_ASSOCIATE macro like this: ; ; Example: ; !insertmacro APP_ASSOCIATE "txt" "myapp.textfile" "Description of txt files" \ ; "$INSTDIR\myapp.exe,0" "Open with myapp" "$INSTDIR\myapp.exe $\"%1$\"" ; ; Never insert the APP_ASSOCIATE macro multiple times, it is only ment ; to associate an application with a single file and using the ; the "open" verb as default. To add more verbs (actions) to a file ; use the APP_ASSOCIATE_ADDVERB macro. ; ; Example: ; !insertmacro APP_ASSOCIATE_ADDVERB "myapp.textfile" "edit" "Edit with myapp" \ ; "$INSTDIR\myapp.exe /edit $\"%1$\"" ; ; To have access to more options when registering the file association use the ; APP_ASSOCIATE_EX macro. Here you can specify the verb and what verb is to be the ; standard action (default verb). ; ; And finally: To remove the association from the registry use the APP_UNASSOCIATE ; macro. Here is another example just to wrap it up: ; !insertmacro APP_UNASSOCIATE "txt" "myapp.textfile" ; ; |> Note <| ; When defining your file class string always use the short form of your application title ; then a period (dot) and the type of file. This keeps the file class sort of unique. ; Examples: ; Winamp.Playlist ; NSIS.Script ; Photoshop.JPEGFile ; ; |> Tech info <| ; The registry key layout for a file association is: ; HKEY_CLASSES_ROOT ; = <"description"> ; shell ; = <"menu-item text"> ; command = <"command string"> ; !macro APP_ASSOCIATE EXT FILECLASS DESCRIPTION ICON COMMANDTEXT COMMAND ; Backup the previously associated file class ReadRegStr $R0 HKCR ".${EXT}" "" WriteRegStr HKCR ".${EXT}" "${FILECLASS}_backup" "$R0" WriteRegStr HKCR ".${EXT}" "" "${FILECLASS}" WriteRegStr HKCR "${FILECLASS}" "" `${DESCRIPTION}` WriteRegStr HKCR "${FILECLASS}\DefaultIcon" "" `${ICON}` WriteRegStr HKCR "${FILECLASS}\shell" "" "open" WriteRegStr HKCR "${FILECLASS}\shell\open" "" `${COMMANDTEXT}` WriteRegStr HKCR "${FILECLASS}\shell\open\command" "" `${COMMAND}` !macroend !macro APP_ASSOCIATE_EX EXT FILECLASS DESCRIPTION ICON VERB DEFAULTVERB SHELLNEW COMMANDTEXT COMMAND ; Backup the previously associated file class ReadRegStr $R0 HKCR ".${EXT}" "" WriteRegStr HKCR ".${EXT}" "${FILECLASS}_backup" "$R0" WriteRegStr HKCR ".${EXT}" "" "${FILECLASS}" StrCmp "${SHELLNEW}" "0" +2 WriteRegStr HKCR ".${EXT}\ShellNew" "NullFile" "" WriteRegStr HKCR "${FILECLASS}" "" `${DESCRIPTION}` WriteRegStr HKCR "${FILECLASS}\DefaultIcon" "" `${ICON}` WriteRegStr HKCR "${FILECLASS}\shell" "" `${DEFAULTVERB}` WriteRegStr HKCR "${FILECLASS}\shell\${VERB}" "" `${COMMANDTEXT}` WriteRegStr HKCR "${FILECLASS}\shell\${VERB}\command" "" `${COMMAND}` !macroend !macro APP_ASSOCIATE_ADDVERB FILECLASS VERB COMMANDTEXT COMMAND WriteRegStr HKCR "${FILECLASS}\shell\${VERB}" "" `${COMMANDTEXT}` WriteRegStr HKCR "${FILECLASS}\shell\${VERB}\command" "" `${COMMAND}` !macroend !macro APP_ASSOCIATE_REMOVEVERB FILECLASS VERB DeleteRegKey HKCR `${FILECLASS}\shell\${VERB}` !macroend !macro APP_UNASSOCIATE EXT FILECLASS ; Backup the previously associated file class ReadRegStr $R0 HKCR ".${EXT}" `${FILECLASS}_backup` WriteRegStr HKCR ".${EXT}" "" "$R0" DeleteRegKey HKCR `${FILECLASS}` !macroend !macro APP_ASSOCIATE_GETFILECLASS OUTPUT EXT ReadRegStr ${OUTPUT} HKCR ".${EXT}" "" !macroend ; !defines for use with SHChangeNotify !ifdef SHCNE_ASSOCCHANGED !undef SHCNE_ASSOCCHANGED !endif !define SHCNE_ASSOCCHANGED 0x08000000 !ifdef SHCNF_FLUSH !undef SHCNF_FLUSH !endif !define SHCNF_FLUSH 0x1000 !macro UPDATEFILEASSOC ; Using the system.dll plugin to call the SHChangeNotify Win32 API function so we ; can update the shell. System::Call "shell32::SHChangeNotify(i,i,i,i) (${SHCNE_ASSOCCHANGED}, ${SHCNF_FLUSH}, 0, 0)" !macroend ;EOF psychopy-1.82.02.dfsg/iohub_docs/000077500000000000000000000000001257562125200166115ustar00rootroot00000000000000psychopy-1.82.02.dfsg/iohub_docs/Makefile000066400000000000000000000127141257562125200202560ustar00rootroot00000000000000# Makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = BUILDDIR = _build # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . # the i18n builder cannot share the environment and doctrees with the others I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " dirhtml to make HTML files named index.html in directories" @echo " singlehtml to make a single large HTML file" @echo " pickle to make pickle files" @echo " json to make JSON files" @echo " htmlhelp to make HTML files and a HTML help project" @echo " qthelp to make HTML files and a qthelp project" @echo " devhelp to make HTML files and a Devhelp project" @echo " epub to make an epub" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " latexpdf to make LaTeX files and run them through pdflatex" @echo " text to make text files" @echo " man to make manual pages" @echo " texinfo to make Texinfo files" @echo " info to make Texinfo files and run them through makeinfo" @echo " gettext to make PO message catalogs" @echo " changes to make an overview of all changed/added/deprecated items" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" clean: -rm -rf $(BUILDDIR)/* html: $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." dirhtml: $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." singlehtml: $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml @echo @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." pickle: $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle @echo @echo "Build finished; now you can process the pickle files." json: $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json @echo @echo "Build finished; now you can process the JSON files." htmlhelp: $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp @echo @echo "Build finished; now you can run HTML Help Workshop with the" \ ".hhp project file in $(BUILDDIR)/htmlhelp." qthelp: $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp @echo @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ".qhcp project file in $(BUILDDIR)/qthelp, like this:" @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/OpenPsycho.qhcp" @echo "To view the help file:" @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/OpenPsycho.qhc" devhelp: $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp @echo @echo "Build finished." @echo "To view the help file:" @echo "# mkdir -p $$HOME/.local/share/devhelp/OpenPsycho" @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/OpenPsycho" @echo "# devhelp" epub: $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub @echo @echo "Build finished. The epub file is in $(BUILDDIR)/epub." latex: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." @echo "Run \`make' in that directory to run these through (pdf)latex" \ "(use \`make latexpdf' here to do that automatically)." latexpdf: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo "Running LaTeX files through pdflatex..." $(MAKE) -C $(BUILDDIR)/latex all-pdf @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." text: $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text @echo @echo "Build finished. The text files are in $(BUILDDIR)/text." man: $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man @echo @echo "Build finished. The manual pages are in $(BUILDDIR)/man." texinfo: $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo @echo @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." @echo "Run \`make' in that directory to run these through makeinfo" \ "(use \`make info' here to do that automatically)." info: $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo @echo "Running Texinfo files through makeinfo..." make -C $(BUILDDIR)/texinfo info @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." gettext: $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale @echo @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." changes: $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes @echo @echo "The overview file is in $(BUILDDIR)/changes." linkcheck: $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck @echo @echo "Link check complete; look for any errors in the above output " \ "or in $(BUILDDIR)/linkcheck/output.txt." doctest: $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest @echo "Testing of doctests in the sources finished, look at the " \ "results in $(BUILDDIR)/doctest/output.txt." psychopy-1.82.02.dfsg/iohub_docs/_static/000077500000000000000000000000001257562125200202375ustar00rootroot00000000000000psychopy-1.82.02.dfsg/iohub_docs/_static/fav_io_32.ico000066400000000000000000000102761257562125200225100ustar00rootroot00000000000000  ( @   )&e,(4/616161616161616161616161616161616161616161614/,()&e+'?9`Wi_i_i_i_i_i_i_i_i_i_i_i_i_i_i_i_i_i_i_i_i_i_i_i_`W?9+')&e@:j`kakakakakakakakakakakakakakakakakakakakakakakakakakaj`@:)&e,(cZ mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc d[ ,(40oeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoe4072qgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqg7272sisisi`½psisisisisisisi~6ϴж~7sisisisisisisi7273ukukukukukukukuk}s&ȩɫu)ukukukukuk7383vlvlvlvlvlvlvl}s)z3vlvlvlvl8383xn!xn!xn!xn!xn!xn!xn!ĥ|fpƧyo#xn!xn!xn!8383zp%zp%zp%zp%zp%zp%=zp%zp%zp%zp%zp%Pszp%zp%zp%8384|r(|r(|r(|r(|r(|r(|r(|r(|r(|r(|r(|r(|r({|r(|r(|r(8494~t,~t,~t,~t,~t,~t,Һ~t,~t,~t,~t,~t,~t,~t,w0~;~t,~t,9494v0v0v0v0v0v0Vv0v0v0v0v0v0v0v0ev0v09494x4x4x4x4x4x4Ex4x4x4x4x4x4x4x4ƪx4x49494z7z7z7z7z7z7Dz7z7z7z7z7z7z7z7Ŀz7z79495|;|;|;|;|;|;G|;|;|;|;|;|;|;|;ħ|;|;95:5}?}?}?}?}?}?_}?}?}?}?}?}?}?}?й}?}?:5:5CCCCCCѼCCCCCCCCpCC:5:5FFFFFFFFFFFFF\OFF:5:6 JJJJJJUJJJJJKJJJ:6 ;6 NNNNNNNècNPr~NNN;6 ;6 RRRRRRRUмRRRR;6 ;6 UUUUUUUU\ӿϺYUUUU;6 ;7 YYYιYYYYYYY}YYYYYY;7 <7 ]]]]]]]]]]]]]]]]]jtsh]]]]]]]]]<7 <7 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<7 94 eeeeeeeeeeeeeeeeeeeeeeeeeeeeee94 ,(֋XhhhhhhhhhhhhhhhhhhhhhhhhhhhhX,()&eNHkllllllllllllllllllllllllllkNH)&e+'NI^pppppppppppppppppppppppp^NI+')&e,(95 =8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=895 ,()&epsychopy-1.82.02.dfsg/iohub_docs/_static/favio16.ico000066400000000000000000000021761257562125200222140ustar00rootroot00000000000000 h(  @  (%/A;OHOHOHOHOHOHOHOHOHOHOHOHA;)%0B<lb lb lb lb lb lb lb lb lb lb lb lb lb lb B<SL pfpfpfpfpfpfpfpfpfpfpfpfpfpfSL VN tjtjtjtjtjtjtjVN XPxn xn xn }s(xn XPZR{q'{q'{q'{q'{q'{q'l{q'ZR\Tu/u/|u/u/u/u/u/\T^Wy6y6½ħy6y6y6y6N^W`Y"}>}>ƫ}>}>}>}>R`Y"b['EEgEEEEEb['d]+MMM½MMMd]+g_/TTTTTTg_/ha3\˶\\\\\\\ha3jc8ccccccccccccccjc8SM%ڝkkkkkkkkkkkkkkSM%)%0TO(og?og?og?og?og?og?og?og?og?og?og?og?TO()%0psychopy-1.82.02.dfsg/iohub_docs/_static/iofav.ico000066400000000000000000000102761257562125200220450ustar00rootroot00000000000000  ( @   )&e,(4/616161616161616161616161616161616161616161614/,()&e+'?9`Wi_i_i_i_i_i_i_i_i_i_i_i_i_i_i_i_i_i_i_i_i_i_i_i_`W?9+')&e@:j`kakakakakakakakakakakakakakakakakakakakakakakakakakaj`@:)&e,(cZ mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc mc d[ ,(40oeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoeoe4072qgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqg7272sisisi`½psisisisisisisi~6ϴж~7sisisisisisisi7273ukukukukukukukuk}s&ȩɫu)ukukukukuk7383vlvlvlvlvlvlvl}s)z3vlvlvlvl8383xn!xn!xn!xn!xn!xn!xn!ĥ|fpƧyo#xn!xn!xn!8383zp%zp%zp%zp%zp%zp%=zp%zp%zp%zp%zp%Pszp%zp%zp%8384|r(|r(|r(|r(|r(|r(|r(|r(|r(|r(|r(|r(|r({|r(|r(|r(8494~t,~t,~t,~t,~t,~t,Һ~t,~t,~t,~t,~t,~t,~t,w0~;~t,~t,9494v0v0v0v0v0v0Vv0v0v0v0v0v0v0v0ev0v09494x4x4x4x4x4x4Ex4x4x4x4x4x4x4x4ƪx4x49494z7z7z7z7z7z7Dz7z7z7z7z7z7z7z7Ŀz7z79495|;|;|;|;|;|;G|;|;|;|;|;|;|;|;ħ|;|;95:5}?}?}?}?}?}?_}?}?}?}?}?}?}?}?й}?}?:5:5CCCCCCѼCCCCCCCCpCC:5:5FFFFFFFFFFFFF\OFF:5:6 JJJJJJUJJJJJKJJJ:6 ;6 NNNNNNNècNPr~NNN;6 ;6 RRRRRRRUмRRRR;6 ;6 UUUUUUUU\ӿϺYUUUU;6 ;7 YYYιYYYYYYY}YYYYYY;7 <7 ]]]]]]]]]]]]]]]]]jtsh]]]]]]]]]<7 <7 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<7 94 eeeeeeeeeeeeeeeeeeeeeeeeeeeeee94 ,(֋XhhhhhhhhhhhhhhhhhhhhhhhhhhhhX,()&eNHkllllllllllllllllllllllllllkNH)&e+'NI^pppppppppppppppppppppppp^NI+')&e,(95 =8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=895 ,()&epsychopy-1.82.02.dfsg/iohub_docs/_static/logo_io.png000066400000000000000000000077521257562125200224070ustar00rootroot00000000000000PNG  IHDRQtEXtSoftwareAdobe ImageReadyqe<IDATxbd 0XȀ47~0}=y s sY\TbqgþINv=0'ܻ/O%;& tݼ/{<^ag`cAa 1R L wX~2CKFI_ UHeR•yHJo?ch|K0045Hp3ū BH/X0T|1vv6x#C|0DS f~&I`QȤ  D˧I,*_ZxdX>/ÂYDߐd a>dSgٷ_?q^ݓKP/] 8yX9xt/$?eA!T^g6D+) ŷ ~'Ob윕>1g*XIS0PQ`jwrCݝ@쉻(#3ԑ ??Cn^dx% D3,CP'v38r g'ATpP /,dm^U)C6EwcBqCRqpAh1'r3SrX1)Q+UZ_|1Õw RetԼcseƂܥKv/\Z\o98`21jwFxA75u(ϲ@TRD`bѱ14ux4ՇϨ+-%&[pGYw%?2AV"! §:zmb( 9B:ujakEM8%-@{o[hҦP!ʐ1%&3n"6XMFйl963GM jsزDE#|H ZKv:#l${sN} {A`юO V>~YGua+cH;fah{4RXhDDjקaIqb*t ONl-hE}PN.XRȟ̈Dү^KKUTvvkmtJ$--1ˁ.`H>`4`CP PqYO8m^Z:(͌dwq]?PNgwTcVLKNmɺViDuq6靯ȋC-`%N`j."j;F#Xn߆wwukm1XyڬU{1Ip{ _I2s`WCE-Ky) *U_v[sjȦtF=9Xsz]y+]Qbe{F"Kr%NC{mmysAyN|Og\(gn xZLnٞacCb֤gHkEm̒tf-M!齍n֚w s"D:K#榖mm\6hg7;@3#FQ,raiMz8X] :(yKp!|ʟ//6{j.z4gxݛX,_y5F-9=9u3r2$ ok7k fN*>| 99TCR{z?HetA{al=u©Tr8 d| pڎHNJ,Z DB4X#6,MԴ؇YvT6r@KS ttôr NGyE@rg}Yj~IENDB`psychopy-1.82.02.dfsg/iohub_docs/_static/my-styles.css000066400000000000000000000106451257562125200227250ustar00rootroot00000000000000 a{color:#005e68;text-decoration:none} a:hover,a:focus{color: #007784;text-decoration:underline} h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#350052} h1,h2,h3{line-height:40px; color:#350052;} h1{font-size:20px}h2{font-size:18px}h3{font-size:16px}h4{font-size:14px}h5{font-size:12px}h6{font-size:11px} .alert-info{color:#002b2f;background-color:#d3e9eb;border-color:#350052} .navbar{*position:relative;*z-index:2;border-bottom: 5px solid #350052; margin-bottom:20px;overflow:visible} .navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#005e68;background-image:-moz-linear-gradient(top,#005e68,#007784);background-image:-webkit-gradient(linear,0 0,0 100%,from(#007784),to(#005e68));background-image:-webkit-linear-gradient(top,#007784,#005e68);background-image:-o-linear-gradient(top,#007784,#005e68);background-image:linear-gradient(to bottom,#007784,#005e68);background-repeat:repeat-x; border:1px solid #350052;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)} .navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#fff;text-decoration:none;background-color:#005e68} .navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#fff;text-decoration:none;background-color:#005e68;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)} .navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#005e68} .navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#fff;text-decoration:none;text-shadow:0 1px 0 #005e68} .dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#005e68;background-image:-moz-linear-gradient(top,#007784,#005e68);background-image:-webkit-gradient(linear,0 0,0 100%,from(#007784),to(#005e68));background-image:-webkit-linear-gradient(top,#007784,#005e68);background-image:-o-linear-gradient(top,#007784,#005e68);background-image:linear-gradient(to bottom,#007784,#005e68);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)} .dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#005e68;white-space:nowrap} .navbar .brand{background-image: url(logo_io.png); background-repeat:no-repeat; width: 80px;display:block;float:left; padding:5px 0px 5px 0px;margin-left:10px; margin-top: 5px;font-size:0px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff} .navbar .brand:hover,.navbar .brand:focus{text-decoration:none} .navbar-text{margin-bottom:0;line-height:40px;color:#777} .navbar-link{color:#777} .navbar-link:hover,.navbar-link:focus{color:#333} .navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #005e68;border-left:1px solid #005e68} .navbar .btn-navbar{background-color:#002b2f;*background-color:#007784;background-image:-moz-linear-gradient(top,#002b2f,#007784);background-image:-webkit-gradient(linear,0 0,0 100%,from(#002b2f),to(#007784));background-image:-webkit-linear-gradient(top,#002b2f,#007784);background-image:-o-linear-gradient(top,#002b2f,#007784);background-image:linear-gradient(to bottom,#002b2f,#007784);background-repeat:repeat-x;border-color:#007784 #007784 #002b2f;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)} .navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#007784;*background-color:#002b2f} psychopy-1.82.02.dfsg/iohub_docs/_templates/000077500000000000000000000000001257562125200207465ustar00rootroot00000000000000psychopy-1.82.02.dfsg/iohub_docs/_templates/layout.html000066400000000000000000000002541257562125200231520ustar00rootroot00000000000000{# Import the theme's layout. #} {% extends "!layout.html" %} {# Include our new CSS file into existing ones. #} {% set css_files = css_files + ['_static/my-styles.css']%}psychopy-1.82.02.dfsg/iohub_docs/_themes/000077500000000000000000000000001257562125200202355ustar00rootroot00000000000000psychopy-1.82.02.dfsg/iohub_docs/_themes/LICENSE.txt000066400000000000000000000020671257562125200220650ustar00rootroot00000000000000Copyright (c) 2011-2013 Ryan Roemer Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. psychopy-1.82.02.dfsg/iohub_docs/_themes/bootstrap/000077500000000000000000000000001257562125200222525ustar00rootroot00000000000000psychopy-1.82.02.dfsg/iohub_docs/_themes/bootstrap/globaltoc.html000066400000000000000000000005401257562125200251050ustar00rootroot00000000000000

    psychopy-1.82.02.dfsg/iohub_docs/_themes/bootstrap/layout.html000066400000000000000000000073721257562125200244660ustar00rootroot00000000000000{% extends "basic/layout.html" %} {% set script_files = script_files + [ '_static/js/jquery-1.9.1.min.js', '_static/js/jquery-fix.js', '_static/bootstrap-2.3.1/js/bootstrap.min.js', '_static/bootstrap-sphinx.js' ] %} {% set css_files = [ '_static/bootstrap-2.3.1/css/bootstrap.min.css' ] + css_files %} {% if theme_bootswatch_theme %} {% set css_files = css_files + [ 'http://netdna.bootstrapcdn.com/bootswatch/2.3.1/' + theme_bootswatch_theme + '/bootstrap.min.css' ] %} {% endif %} {% set css_files = css_files + [ '_static/bootstrap-sphinx.css', '_static/bootstrap-2.3.1/css/bootstrap-responsive.min.css' ] %} {% set css_files = css_files + [ '_static/my-styles.css' ] %} {%- block doctype -%} {%- endblock %} {# Sidebar: Rework into our Boostrap nav section. #} {% macro navBar() %} {% endmacro %} {%- block extrahead %} {% endblock %} {# Silence the sidebar's, relbar's #} {% block header %}{% endblock %} {% block sidebar1 %}{% endblock %} {% block sidebar2 %}{% endblock %} {% block relbar1 %}{% endblock %} {% block relbar2 %}{% endblock %} {% block sidebarsourcelink %}{% endblock %} {%- block content %}
    {{ navBar() }} {% block body %}{% endblock %}
    {%- endblock %} {%- block footer %}

    Back to top {% if theme_source_link_position == "footer" %}
    {% include "sourcelink.html" %} {% endif %}

    {%- if show_copyright %} {%- if hasdoc('copyright') %} {% trans path=pathto('copyright'), copyright=copyright|e %}© Copyright {{ copyright }}.{% endtrans %}
    {%- else %} {% trans copyright=copyright|e %}© Copyright {{ copyright }}.{% endtrans %}
    {%- endif %} {%- endif %} {%- if last_updated %} {% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %}
    {%- endif %} {%- if show_sphinx %} {% trans sphinx_version=sphinx_version|e %}Created using Sphinx {{ sphinx_version }}.{% endtrans %}
    {%- endif %}

    {%- endblock %} psychopy-1.82.02.dfsg/iohub_docs/_themes/bootstrap/localtoc.html000066400000000000000000000002671257562125200247450ustar00rootroot00000000000000 psychopy-1.82.02.dfsg/iohub_docs/_themes/bootstrap/relations.html000066400000000000000000000004601257562125200251400ustar00rootroot00000000000000{%- if prev %}
  • {{ "«"|safe }} {{ prev.title }}
  • {%- endif %} {%- if next %}
  • {{ next.title }} {{ "»"|safe }}
  • {%- endif %} psychopy-1.82.02.dfsg/iohub_docs/_themes/bootstrap/searchbox.html000066400000000000000000000005151257562125200251170ustar00rootroot00000000000000{%- if pagename != "search" %} {%- endif %} psychopy-1.82.02.dfsg/iohub_docs/_themes/bootstrap/sourcelink.html000066400000000000000000000002461257562125200253200ustar00rootroot00000000000000{%- if show_source and has_source and sourcename %} {{ _('Source') }} {%- endif %} psychopy-1.82.02.dfsg/iohub_docs/_themes/bootstrap/static/000077500000000000000000000000001257562125200235415ustar00rootroot00000000000000psychopy-1.82.02.dfsg/iohub_docs/_themes/bootstrap/static/bootstrap-2.3.1/000077500000000000000000000000001257562125200262155ustar00rootroot00000000000000psychopy-1.82.02.dfsg/iohub_docs/_themes/bootstrap/static/bootstrap-2.3.1/css/000077500000000000000000000000001257562125200270055ustar00rootroot00000000000000bootstrap-responsive.css000066400000000000000000000531371257562125200336610ustar00rootroot00000000000000psychopy-1.82.02.dfsg/iohub_docs/_themes/bootstrap/static/bootstrap-2.3.1/css/*! * Bootstrap Responsive v2.3.1 * * Copyright 2012 Twitter, Inc * Licensed under the Apache License v2.0 * http://www.apache.org/licenses/LICENSE-2.0 * * Designed and built with all the love in the world @twitter by @mdo and @fat. */ .clearfix { *zoom: 1; } .clearfix:before, .clearfix:after { display: table; line-height: 0; content: ""; } .clearfix:after { clear: both; } .hide-text { font: 0/0 a; color: transparent; text-shadow: none; background-color: transparent; border: 0; } .input-block-level { display: block; width: 100%; min-height: 30px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } @-ms-viewport { width: device-width; } .hidden { display: none; visibility: hidden; } .visible-phone { display: none !important; } .visible-tablet { display: none !important; } .hidden-desktop { display: none !important; } .visible-desktop { display: inherit !important; } @media (min-width: 768px) and (max-width: 979px) { .hidden-desktop { display: inherit !important; } .visible-desktop { display: none !important ; } .visible-tablet { display: inherit !important; } .hidden-tablet { display: none !important; } } @media (max-width: 767px) { .hidden-desktop { display: inherit !important; } .visible-desktop { display: none !important; } .visible-phone { display: inherit !important; } .hidden-phone { display: none !important; } } .visible-print { display: none !important; } @media print { .visible-print { display: inherit !important; } .hidden-print { display: none !important; } } @media (min-width: 1200px) { .row { margin-left: -30px; *zoom: 1; } .row:before, .row:after { display: table; line-height: 0; content: ""; } .row:after { clear: both; } [class*="span"] { float: left; min-height: 1px; margin-left: 30px; } .container, .navbar-static-top .container, .navbar-fixed-top .container, .navbar-fixed-bottom .container { width: 1170px; } .span12 { width: 1170px; } .span11 { width: 1070px; } .span10 { width: 970px; } .span9 { width: 870px; } .span8 { width: 770px; } .span7 { width: 670px; } .span6 { width: 570px; } .span5 { width: 470px; } .span4 { width: 370px; } .span3 { width: 270px; } .span2 { width: 170px; } .span1 { width: 70px; } .offset12 { margin-left: 1230px; } .offset11 { margin-left: 1130px; } .offset10 { margin-left: 1030px; } .offset9 { margin-left: 930px; } .offset8 { margin-left: 830px; } .offset7 { margin-left: 730px; } .offset6 { margin-left: 630px; } .offset5 { margin-left: 530px; } .offset4 { margin-left: 430px; } .offset3 { margin-left: 330px; } .offset2 { margin-left: 230px; } .offset1 { margin-left: 130px; } .row-fluid { width: 100%; *zoom: 1; } .row-fluid:before, .row-fluid:after { display: table; line-height: 0; content: ""; } .row-fluid:after { clear: both; } .row-fluid [class*="span"] { display: block; float: left; width: 100%; min-height: 30px; margin-left: 2.564102564102564%; *margin-left: 2.5109110747408616%; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } .row-fluid [class*="span"]:first-child { margin-left: 0; } .row-fluid .controls-row [class*="span"] + [class*="span"] { margin-left: 2.564102564102564%; } .row-fluid .span12 { width: 100%; *width: 99.94680851063829%; } .row-fluid .span11 { width: 91.45299145299145%; *width: 91.39979996362975%; } .row-fluid .span10 { width: 82.90598290598291%; *width: 82.8527914166212%; } .row-fluid .span9 { width: 74.35897435897436%; *width: 74.30578286961266%; } .row-fluid .span8 { width: 65.81196581196582%; *width: 65.75877432260411%; } .row-fluid .span7 { width: 57.26495726495726%; *width: 57.21176577559556%; } .row-fluid .span6 { width: 48.717948717948715%; *width: 48.664757228587014%; } .row-fluid .span5 { width: 40.17094017094017%; *width: 40.11774868157847%; } .row-fluid .span4 { width: 31.623931623931625%; *width: 31.570740134569924%; } .row-fluid .span3 { width: 23.076923076923077%; *width: 23.023731587561375%; } .row-fluid .span2 { width: 14.52991452991453%; *width: 14.476723040552828%; } .row-fluid .span1 { width: 5.982905982905983%; *width: 5.929714493544281%; } .row-fluid .offset12 { margin-left: 105.12820512820512%; *margin-left: 105.02182214948171%; } .row-fluid .offset12:first-child { margin-left: 102.56410256410257%; *margin-left: 102.45771958537915%; } .row-fluid .offset11 { margin-left: 96.58119658119658%; *margin-left: 96.47481360247316%; } .row-fluid .offset11:first-child { margin-left: 94.01709401709402%; *margin-left: 93.91071103837061%; } .row-fluid .offset10 { margin-left: 88.03418803418803%; *margin-left: 87.92780505546462%; } .row-fluid .offset10:first-child { margin-left: 85.47008547008548%; *margin-left: 85.36370249136206%; } .row-fluid .offset9 { margin-left: 79.48717948717949%; *margin-left: 79.38079650845607%; } .row-fluid .offset9:first-child { margin-left: 76.92307692307693%; *margin-left: 76.81669394435352%; } .row-fluid .offset8 { margin-left: 70.94017094017094%; *margin-left: 70.83378796144753%; } .row-fluid .offset8:first-child { margin-left: 68.37606837606839%; *margin-left: 68.26968539734497%; } .row-fluid .offset7 { margin-left: 62.393162393162385%; *margin-left: 62.28677941443899%; } .row-fluid .offset7:first-child { margin-left: 59.82905982905982%; *margin-left: 59.72267685033642%; } .row-fluid .offset6 { margin-left: 53.84615384615384%; *margin-left: 53.739770867430444%; } .row-fluid .offset6:first-child { margin-left: 51.28205128205128%; *margin-left: 51.175668303327875%; } .row-fluid .offset5 { margin-left: 45.299145299145295%; *margin-left: 45.1927623204219%; } .row-fluid .offset5:first-child { margin-left: 42.73504273504273%; *margin-left: 42.62865975631933%; } .row-fluid .offset4 { margin-left: 36.75213675213675%; *margin-left: 36.645753773413354%; } .row-fluid .offset4:first-child { margin-left: 34.18803418803419%; *margin-left: 34.081651209310785%; } .row-fluid .offset3 { margin-left: 28.205128205128204%; *margin-left: 28.0987452264048%; } .row-fluid .offset3:first-child { margin-left: 25.641025641025642%; *margin-left: 25.53464266230224%; } .row-fluid .offset2 { margin-left: 19.65811965811966%; *margin-left: 19.551736679396257%; } .row-fluid .offset2:first-child { margin-left: 17.094017094017094%; *margin-left: 16.98763411529369%; } .row-fluid .offset1 { margin-left: 11.11111111111111%; *margin-left: 11.004728132387708%; } .row-fluid .offset1:first-child { margin-left: 8.547008547008547%; *margin-left: 8.440625568285142%; } input, textarea, .uneditable-input { margin-left: 0; } .controls-row [class*="span"] + [class*="span"] { margin-left: 30px; } input.span12, textarea.span12, .uneditable-input.span12 { width: 1156px; } input.span11, textarea.span11, .uneditable-input.span11 { width: 1056px; } input.span10, textarea.span10, .uneditable-input.span10 { width: 956px; } input.span9, textarea.span9, .uneditable-input.span9 { width: 856px; } input.span8, textarea.span8, .uneditable-input.span8 { width: 756px; } input.span7, textarea.span7, .uneditable-input.span7 { width: 656px; } input.span6, textarea.span6, .uneditable-input.span6 { width: 556px; } input.span5, textarea.span5, .uneditable-input.span5 { width: 456px; } input.span4, textarea.span4, .uneditable-input.span4 { width: 356px; } input.span3, textarea.span3, .uneditable-input.span3 { width: 256px; } input.span2, textarea.span2, .uneditable-input.span2 { width: 156px; } input.span1, textarea.span1, .uneditable-input.span1 { width: 56px; } .thumbnails { margin-left: -30px; } .thumbnails > li { margin-left: 30px; } .row-fluid .thumbnails { margin-left: 0; } } @media (min-width: 768px) and (max-width: 979px) { .row { margin-left: -20px; *zoom: 1; } .row:before, .row:after { display: table; line-height: 0; content: ""; } .row:after { clear: both; } [class*="span"] { float: left; min-height: 1px; margin-left: 20px; } .container, .navbar-static-top .container, .navbar-fixed-top .container, .navbar-fixed-bottom .container { width: 724px; } .span12 { width: 724px; } .span11 { width: 662px; } .span10 { width: 600px; } .span9 { width: 538px; } .span8 { width: 476px; } .span7 { width: 414px; } .span6 { width: 352px; } .span5 { width: 290px; } .span4 { width: 228px; } .span3 { width: 166px; } .span2 { width: 104px; } .span1 { width: 42px; } .offset12 { margin-left: 764px; } .offset11 { margin-left: 702px; } .offset10 { margin-left: 640px; } .offset9 { margin-left: 578px; } .offset8 { margin-left: 516px; } .offset7 { margin-left: 454px; } .offset6 { margin-left: 392px; } .offset5 { margin-left: 330px; } .offset4 { margin-left: 268px; } .offset3 { margin-left: 206px; } .offset2 { margin-left: 144px; } .offset1 { margin-left: 82px; } .row-fluid { width: 100%; *zoom: 1; } .row-fluid:before, .row-fluid:after { display: table; line-height: 0; content: ""; } .row-fluid:after { clear: both; } .row-fluid [class*="span"] { display: block; float: left; width: 100%; min-height: 30px; margin-left: 2.7624309392265194%; *margin-left: 2.709239449864817%; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } .row-fluid [class*="span"]:first-child { margin-left: 0; } .row-fluid .controls-row [class*="span"] + [class*="span"] { margin-left: 2.7624309392265194%; } .row-fluid .span12 { width: 100%; *width: 99.94680851063829%; } .row-fluid .span11 { width: 91.43646408839778%; *width: 91.38327259903608%; } .row-fluid .span10 { width: 82.87292817679558%; *width: 82.81973668743387%; } .row-fluid .span9 { width: 74.30939226519337%; *width: 74.25620077583166%; } .row-fluid .span8 { width: 65.74585635359117%; *width: 65.69266486422946%; } .row-fluid .span7 { width: 57.18232044198895%; *width: 57.12912895262725%; } .row-fluid .span6 { width: 48.61878453038674%; *width: 48.56559304102504%; } .row-fluid .span5 { width: 40.05524861878453%; *width: 40.00205712942283%; } .row-fluid .span4 { width: 31.491712707182323%; *width: 31.43852121782062%; } .row-fluid .span3 { width: 22.92817679558011%; *width: 22.87498530621841%; } .row-fluid .span2 { width: 14.3646408839779%; *width: 14.311449394616199%; } .row-fluid .span1 { width: 5.801104972375691%; *width: 5.747913483013988%; } .row-fluid .offset12 { margin-left: 105.52486187845304%; *margin-left: 105.41847889972962%; } .row-fluid .offset12:first-child { margin-left: 102.76243093922652%; *margin-left: 102.6560479605031%; } .row-fluid .offset11 { margin-left: 96.96132596685082%; *margin-left: 96.8549429881274%; } .row-fluid .offset11:first-child { margin-left: 94.1988950276243%; *margin-left: 94.09251204890089%; } .row-fluid .offset10 { margin-left: 88.39779005524862%; *margin-left: 88.2914070765252%; } .row-fluid .offset10:first-child { margin-left: 85.6353591160221%; *margin-left: 85.52897613729868%; } .row-fluid .offset9 { margin-left: 79.8342541436464%; *margin-left: 79.72787116492299%; } .row-fluid .offset9:first-child { margin-left: 77.07182320441989%; *margin-left: 76.96544022569647%; } .row-fluid .offset8 { margin-left: 71.2707182320442%; *margin-left: 71.16433525332079%; } .row-fluid .offset8:first-child { margin-left: 68.50828729281768%; *margin-left: 68.40190431409427%; } .row-fluid .offset7 { margin-left: 62.70718232044199%; *margin-left: 62.600799341718584%; } .row-fluid .offset7:first-child { margin-left: 59.94475138121547%; *margin-left: 59.838368402492065%; } .row-fluid .offset6 { margin-left: 54.14364640883978%; *margin-left: 54.037263430116376%; } .row-fluid .offset6:first-child { margin-left: 51.38121546961326%; *margin-left: 51.27483249088986%; } .row-fluid .offset5 { margin-left: 45.58011049723757%; *margin-left: 45.47372751851417%; } .row-fluid .offset5:first-child { margin-left: 42.81767955801105%; *margin-left: 42.71129657928765%; } .row-fluid .offset4 { margin-left: 37.01657458563536%; *margin-left: 36.91019160691196%; } .row-fluid .offset4:first-child { margin-left: 34.25414364640884%; *margin-left: 34.14776066768544%; } .row-fluid .offset3 { margin-left: 28.45303867403315%; *margin-left: 28.346655695309746%; } .row-fluid .offset3:first-child { margin-left: 25.69060773480663%; *margin-left: 25.584224756083227%; } .row-fluid .offset2 { margin-left: 19.88950276243094%; *margin-left: 19.783119783707537%; } .row-fluid .offset2:first-child { margin-left: 17.12707182320442%; *margin-left: 17.02068884448102%; } .row-fluid .offset1 { margin-left: 11.32596685082873%; *margin-left: 11.219583872105325%; } .row-fluid .offset1:first-child { margin-left: 8.56353591160221%; *margin-left: 8.457152932878806%; } input, textarea, .uneditable-input { margin-left: 0; } .controls-row [class*="span"] + [class*="span"] { margin-left: 20px; } input.span12, textarea.span12, .uneditable-input.span12 { width: 710px; } input.span11, textarea.span11, .uneditable-input.span11 { width: 648px; } input.span10, textarea.span10, .uneditable-input.span10 { width: 586px; } input.span9, textarea.span9, .uneditable-input.span9 { width: 524px; } input.span8, textarea.span8, .uneditable-input.span8 { width: 462px; } input.span7, textarea.span7, .uneditable-input.span7 { width: 400px; } input.span6, textarea.span6, .uneditable-input.span6 { width: 338px; } input.span5, textarea.span5, .uneditable-input.span5 { width: 276px; } input.span4, textarea.span4, .uneditable-input.span4 { width: 214px; } input.span3, textarea.span3, .uneditable-input.span3 { width: 152px; } input.span2, textarea.span2, .uneditable-input.span2 { width: 90px; } input.span1, textarea.span1, .uneditable-input.span1 { width: 28px; } } @media (max-width: 767px) { body { padding-right: 20px; padding-left: 20px; } .navbar-fixed-top, .navbar-fixed-bottom, .navbar-static-top { margin-right: -20px; margin-left: -20px; } .container-fluid { padding: 0; } .dl-horizontal dt { float: none; width: auto; clear: none; text-align: left; } .dl-horizontal dd { margin-left: 0; } .container { width: auto; } .row-fluid { width: 100%; } .row, .thumbnails { margin-left: 0; } .thumbnails > li { float: none; margin-left: 0; } [class*="span"], .uneditable-input[class*="span"], .row-fluid [class*="span"] { display: block; float: none; width: 100%; margin-left: 0; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } .span12, .row-fluid .span12 { width: 100%; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } .row-fluid [class*="offset"]:first-child { margin-left: 0; } .input-large, .input-xlarge, .input-xxlarge, input[class*="span"], select[class*="span"], textarea[class*="span"], .uneditable-input { display: block; width: 100%; min-height: 30px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } .input-prepend input, .input-append input, .input-prepend input[class*="span"], .input-append input[class*="span"] { display: inline-block; width: auto; } .controls-row [class*="span"] + [class*="span"] { margin-left: 0; } .modal { position: fixed; top: 20px; right: 20px; left: 20px; width: auto; margin: 0; } .modal.fade { top: -100px; } .modal.fade.in { top: 20px; } } @media (max-width: 480px) { .nav-collapse { -webkit-transform: translate3d(0, 0, 0); } .page-header h1 small { display: block; line-height: 20px; } input[type="checkbox"], input[type="radio"] { border: 1px solid #ccc; } .form-horizontal .control-label { float: none; width: auto; padding-top: 0; text-align: left; } .form-horizontal .controls { margin-left: 0; } .form-horizontal .control-list { padding-top: 0; } .form-horizontal .form-actions { padding-right: 10px; padding-left: 10px; } .media .pull-left, .media .pull-right { display: block; float: none; margin-bottom: 10px; } .media-object { margin-right: 0; margin-left: 0; } .modal { top: 10px; right: 10px; left: 10px; } .modal-header .close { padding: 10px; margin: -10px; } .carousel-caption { position: static; } } @media (max-width: 979px) { body { padding-top: 0; } .navbar-fixed-top, .navbar-fixed-bottom { position: static; } .navbar-fixed-top { margin-bottom: 20px; } .navbar-fixed-bottom { margin-top: 20px; } .navbar-fixed-top .navbar-inner, .navbar-fixed-bottom .navbar-inner { padding: 5px; } .navbar .container { width: auto; padding: 0; } .navbar .brand { padding-right: 10px; padding-left: 10px; margin: 0 0 0 -5px; } .nav-collapse { clear: both; } .nav-collapse .nav { float: none; margin: 0 0 10px; } .nav-collapse .nav > li { float: none; } .nav-collapse .nav > li > a { margin-bottom: 2px; } .nav-collapse .nav > .divider-vertical { display: none; } .nav-collapse .nav .nav-header { color: #777777; text-shadow: none; } .nav-collapse .nav > li > a, .nav-collapse .dropdown-menu a { padding: 9px 15px; font-weight: bold; color: #777777; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; } .nav-collapse .btn { padding: 4px 10px 4px; font-weight: normal; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; } .nav-collapse .dropdown-menu li + li a { margin-bottom: 2px; } .nav-collapse .nav > li > a:hover, .nav-collapse .nav > li > a:focus, .nav-collapse .dropdown-menu a:hover, .nav-collapse .dropdown-menu a:focus { background-color: #f2f2f2; } .navbar-inverse .nav-collapse .nav > li > a, .navbar-inverse .nav-collapse .dropdown-menu a { color: #999999; } .navbar-inverse .nav-collapse .nav > li > a:hover, .navbar-inverse .nav-collapse .nav > li > a:focus, .navbar-inverse .nav-collapse .dropdown-menu a:hover, .navbar-inverse .nav-collapse .dropdown-menu a:focus { background-color: #111111; } .nav-collapse.in .btn-group { padding: 0; margin-top: 5px; } .nav-collapse .dropdown-menu { position: static; top: auto; left: auto; display: none; float: none; max-width: none; padding: 0; margin: 0 15px; background-color: transparent; border: none; -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; } .nav-collapse .open > .dropdown-menu { display: block; } .nav-collapse .dropdown-menu:before, .nav-collapse .dropdown-menu:after { display: none; } .nav-collapse .dropdown-menu .divider { display: none; } .nav-collapse .nav > li > .dropdown-menu:before, .nav-collapse .nav > li > .dropdown-menu:after { display: none; } .nav-collapse .navbar-form, .nav-collapse .navbar-search { float: none; padding: 10px 15px; margin: 10px 0; border-top: 1px solid #f2f2f2; border-bottom: 1px solid #f2f2f2; -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); } .navbar-inverse .nav-collapse .navbar-form, .navbar-inverse .nav-collapse .navbar-search { border-top-color: #111111; border-bottom-color: #111111; } .navbar .nav-collapse .nav.pull-right { float: none; margin-left: 0; } .nav-collapse, .nav-collapse.collapse { height: 0; overflow: hidden; } .navbar .btn-navbar { display: block; } .navbar-static .navbar-inner { padding-right: 10px; padding-left: 10px; } } @media (min-width: 980px) { .nav-collapse.collapse { height: auto !important; overflow: visible !important; } } bootstrap-responsive.min.css000066400000000000000000000407211257562125200344360ustar00rootroot00000000000000psychopy-1.82.02.dfsg/iohub_docs/_themes/bootstrap/static/bootstrap-2.3.1/css/*! * Bootstrap Responsive v2.3.1 * * Copyright 2012 Twitter, Inc * Licensed under the Apache License v2.0 * http://www.apache.org/licenses/LICENSE-2.0 * * Designed and built with all the love in the world @twitter by @mdo and @fat. */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:767px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:inherit!important}.hidden-print{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}} psychopy-1.82.02.dfsg/iohub_docs/_themes/bootstrap/static/bootstrap-2.3.1/css/bootstrap.css000066400000000000000000003704171257562125200315500ustar00rootroot00000000000000/*! * Bootstrap v2.3.1 * * Copyright 2012 Twitter, Inc * Licensed under the Apache License v2.0 * http://www.apache.org/licenses/LICENSE-2.0 * * Designed and built with all the love in the world @twitter by @mdo and @fat. */ .clearfix { *zoom: 1; } .clearfix:before, .clearfix:after { display: table; line-height: 0; content: ""; } .clearfix:after { clear: both; } .hide-text { font: 0/0 a; color: transparent; text-shadow: none; background-color: transparent; border: 0; } .input-block-level { display: block; width: 100%; min-height: 30px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { display: block; } audio, canvas, video { display: inline-block; *display: inline; *zoom: 1; } audio:not([controls]) { display: none; } html { font-size: 100%; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; } a:focus { outline: thin dotted #333; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } a:hover, a:active { outline: 0; } sub, sup { position: relative; font-size: 75%; line-height: 0; vertical-align: baseline; } sup { top: -0.5em; } sub { bottom: -0.25em; } img { width: auto\9; height: auto; max-width: 100%; vertical-align: middle; border: 0; -ms-interpolation-mode: bicubic; } #map_canvas img, .google-maps img { max-width: none; } button, input, select, textarea { margin: 0; font-size: 100%; vertical-align: middle; } button, input { *overflow: visible; line-height: normal; } button::-moz-focus-inner, input::-moz-focus-inner { padding: 0; border: 0; } button, html input[type="button"], input[type="reset"], input[type="submit"] { cursor: pointer; -webkit-appearance: button; } label, select, button, input[type="button"], input[type="reset"], input[type="submit"], input[type="radio"], input[type="checkbox"] { cursor: pointer; } input[type="search"] { -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; -webkit-appearance: textfield; } input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; } textarea { overflow: auto; vertical-align: top; } @media print { * { color: #000 !important; text-shadow: none !important; background: transparent !important; box-shadow: none !important; } a, a:visited { text-decoration: underline; } a[href]:after { content: " (" attr(href) ")"; } abbr[title]:after { content: " (" attr(title) ")"; } .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; } pre, blockquote { border: 1px solid #999; page-break-inside: avoid; } thead { display: table-header-group; } tr, img { page-break-inside: avoid; } img { max-width: 100% !important; } @page { margin: 0.5cm; } p, h2, h3 { orphans: 3; widows: 3; } h2, h3 { page-break-after: avoid; } } body { margin: 0; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; color: #333333; background-color: #ffffff; } a { color: #0088cc; text-decoration: none; } a:hover, a:focus { color: #005580; text-decoration: underline; } .img-rounded { -webkit-border-radius: 6px; -moz-border-radius: 6px; border-radius: 6px; } .img-polaroid { padding: 4px; background-color: #fff; border: 1px solid #ccc; border: 1px solid rgba(0, 0, 0, 0.2); -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); } .img-circle { -webkit-border-radius: 500px; -moz-border-radius: 500px; border-radius: 500px; } .row { margin-left: -20px; *zoom: 1; } .row:before, .row:after { display: table; line-height: 0; content: ""; } .row:after { clear: both; } [class*="span"] { float: left; min-height: 1px; margin-left: 20px; } .container, .navbar-static-top .container, .navbar-fixed-top .container, .navbar-fixed-bottom .container { width: 940px; } .span12 { width: 940px; } .span11 { width: 860px; } .span10 { width: 780px; } .span9 { width: 700px; } .span8 { width: 620px; } .span7 { width: 540px; } .span6 { width: 460px; } .span5 { width: 380px; } .span4 { width: 300px; } .span3 { width: 220px; } .span2 { width: 140px; } .span1 { width: 60px; } .offset12 { margin-left: 980px; } .offset11 { margin-left: 900px; } .offset10 { margin-left: 820px; } .offset9 { margin-left: 740px; } .offset8 { margin-left: 660px; } .offset7 { margin-left: 580px; } .offset6 { margin-left: 500px; } .offset5 { margin-left: 420px; } .offset4 { margin-left: 340px; } .offset3 { margin-left: 260px; } .offset2 { margin-left: 180px; } .offset1 { margin-left: 100px; } .row-fluid { width: 100%; *zoom: 1; } .row-fluid:before, .row-fluid:after { display: table; line-height: 0; content: ""; } .row-fluid:after { clear: both; } .row-fluid [class*="span"] { display: block; float: left; width: 100%; min-height: 30px; margin-left: 2.127659574468085%; *margin-left: 2.074468085106383%; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } .row-fluid [class*="span"]:first-child { margin-left: 0; } .row-fluid .controls-row [class*="span"] + [class*="span"] { margin-left: 2.127659574468085%; } .row-fluid .span12 { width: 100%; *width: 99.94680851063829%; } .row-fluid .span11 { width: 91.48936170212765%; *width: 91.43617021276594%; } .row-fluid .span10 { width: 82.97872340425532%; *width: 82.92553191489361%; } .row-fluid .span9 { width: 74.46808510638297%; *width: 74.41489361702126%; } .row-fluid .span8 { width: 65.95744680851064%; *width: 65.90425531914893%; } .row-fluid .span7 { width: 57.44680851063829%; *width: 57.39361702127659%; } .row-fluid .span6 { width: 48.93617021276595%; *width: 48.88297872340425%; } .row-fluid .span5 { width: 40.42553191489362%; *width: 40.37234042553192%; } .row-fluid .span4 { width: 31.914893617021278%; *width: 31.861702127659576%; } .row-fluid .span3 { width: 23.404255319148934%; *width: 23.351063829787233%; } .row-fluid .span2 { width: 14.893617021276595%; *width: 14.840425531914894%; } .row-fluid .span1 { width: 6.382978723404255%; *width: 6.329787234042553%; } .row-fluid .offset12 { margin-left: 104.25531914893617%; *margin-left: 104.14893617021275%; } .row-fluid .offset12:first-child { margin-left: 102.12765957446808%; *margin-left: 102.02127659574467%; } .row-fluid .offset11 { margin-left: 95.74468085106382%; *margin-left: 95.6382978723404%; } .row-fluid .offset11:first-child { margin-left: 93.61702127659574%; *margin-left: 93.51063829787232%; } .row-fluid .offset10 { margin-left: 87.23404255319149%; *margin-left: 87.12765957446807%; } .row-fluid .offset10:first-child { margin-left: 85.1063829787234%; *margin-left: 84.99999999999999%; } .row-fluid .offset9 { margin-left: 78.72340425531914%; *margin-left: 78.61702127659572%; } .row-fluid .offset9:first-child { margin-left: 76.59574468085106%; *margin-left: 76.48936170212764%; } .row-fluid .offset8 { margin-left: 70.2127659574468%; *margin-left: 70.10638297872339%; } .row-fluid .offset8:first-child { margin-left: 68.08510638297872%; *margin-left: 67.9787234042553%; } .row-fluid .offset7 { margin-left: 61.70212765957446%; *margin-left: 61.59574468085106%; } .row-fluid .offset7:first-child { margin-left: 59.574468085106375%; *margin-left: 59.46808510638297%; } .row-fluid .offset6 { margin-left: 53.191489361702125%; *margin-left: 53.085106382978715%; } .row-fluid .offset6:first-child { margin-left: 51.063829787234035%; *margin-left: 50.95744680851063%; } .row-fluid .offset5 { margin-left: 44.68085106382979%; *margin-left: 44.57446808510638%; } .row-fluid .offset5:first-child { margin-left: 42.5531914893617%; *margin-left: 42.4468085106383%; } .row-fluid .offset4 { margin-left: 36.170212765957444%; *margin-left: 36.06382978723405%; } .row-fluid .offset4:first-child { margin-left: 34.04255319148936%; *margin-left: 33.93617021276596%; } .row-fluid .offset3 { margin-left: 27.659574468085104%; *margin-left: 27.5531914893617%; } .row-fluid .offset3:first-child { margin-left: 25.53191489361702%; *margin-left: 25.425531914893618%; } .row-fluid .offset2 { margin-left: 19.148936170212764%; *margin-left: 19.04255319148936%; } .row-fluid .offset2:first-child { margin-left: 17.02127659574468%; *margin-left: 16.914893617021278%; } .row-fluid .offset1 { margin-left: 10.638297872340425%; *margin-left: 10.53191489361702%; } .row-fluid .offset1:first-child { margin-left: 8.51063829787234%; *margin-left: 8.404255319148938%; } [class*="span"].hide, .row-fluid [class*="span"].hide { display: none; } [class*="span"].pull-right, .row-fluid [class*="span"].pull-right { float: right; } .container { margin-right: auto; margin-left: auto; *zoom: 1; } .container:before, .container:after { display: table; line-height: 0; content: ""; } .container:after { clear: both; } .container-fluid { padding-right: 20px; padding-left: 20px; *zoom: 1; } .container-fluid:before, .container-fluid:after { display: table; line-height: 0; content: ""; } .container-fluid:after { clear: both; } p { margin: 0 0 10px; } .lead { margin-bottom: 20px; font-size: 21px; font-weight: 200; line-height: 30px; } small { font-size: 85%; } strong { font-weight: bold; } em { font-style: italic; } cite { font-style: normal; } .muted { color: #999999; } a.muted:hover, a.muted:focus { color: #808080; } .text-warning { color: #c09853; } a.text-warning:hover, a.text-warning:focus { color: #a47e3c; } .text-error { color: #b94a48; } a.text-error:hover, a.text-error:focus { color: #953b39; } .text-info { color: #3a87ad; } a.text-info:hover, a.text-info:focus { color: #2d6987; } .text-success { color: #468847; } a.text-success:hover, a.text-success:focus { color: #356635; } .text-left { text-align: left; } .text-right { text-align: right; } .text-center { text-align: center; } h1, h2, h3, h4, h5, h6 { margin: 10px 0; font-family: inherit; font-weight: bold; line-height: 20px; color: inherit; text-rendering: optimizelegibility; } h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { font-weight: normal; line-height: 1; color: #999999; } h1, h2, h3 { line-height: 40px; } h1 { font-size: 38.5px; } h2 { font-size: 31.5px; } h3 { font-size: 24.5px; } h4 { font-size: 17.5px; } h5 { font-size: 14px; } h6 { font-size: 11.9px; } h1 small { font-size: 24.5px; } h2 small { font-size: 17.5px; } h3 small { font-size: 14px; } h4 small { font-size: 14px; } .page-header { padding-bottom: 9px; margin: 20px 0 30px; border-bottom: 1px solid #eeeeee; } ul, ol { padding: 0; margin: 0 0 10px 25px; } ul ul, ul ol, ol ol, ol ul { margin-bottom: 0; } li { line-height: 20px; } ul.unstyled, ol.unstyled { margin-left: 0; list-style: none; } ul.inline, ol.inline { margin-left: 0; list-style: none; } ul.inline > li, ol.inline > li { display: inline-block; *display: inline; padding-right: 5px; padding-left: 5px; *zoom: 1; } dl { margin-bottom: 20px; } dt, dd { line-height: 20px; } dt { font-weight: bold; } dd { margin-left: 10px; } .dl-horizontal { *zoom: 1; } .dl-horizontal:before, .dl-horizontal:after { display: table; line-height: 0; content: ""; } .dl-horizontal:after { clear: both; } .dl-horizontal dt { float: left; width: 160px; overflow: hidden; clear: left; text-align: right; text-overflow: ellipsis; white-space: nowrap; } .dl-horizontal dd { margin-left: 180px; } hr { margin: 20px 0; border: 0; border-top: 1px solid #eeeeee; border-bottom: 1px solid #ffffff; } abbr[title], abbr[data-original-title] { cursor: help; border-bottom: 1px dotted #999999; } abbr.initialism { font-size: 90%; text-transform: uppercase; } blockquote { padding: 0 0 0 15px; margin: 0 0 20px; border-left: 5px solid #eeeeee; } blockquote p { margin-bottom: 0; font-size: 17.5px; font-weight: 300; line-height: 1.25; } blockquote small { display: block; line-height: 20px; color: #999999; } blockquote small:before { content: '\2014 \00A0'; } blockquote.pull-right { float: right; padding-right: 15px; padding-left: 0; border-right: 5px solid #eeeeee; border-left: 0; } blockquote.pull-right p, blockquote.pull-right small { text-align: right; } blockquote.pull-right small:before { content: ''; } blockquote.pull-right small:after { content: '\00A0 \2014'; } q:before, q:after, blockquote:before, blockquote:after { content: ""; } address { display: block; margin-bottom: 20px; font-style: normal; line-height: 20px; } code, pre { padding: 0 3px 2px; font-family: Monaco, Menlo, Consolas, "Courier New", monospace; font-size: 12px; color: #333333; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; } code { padding: 2px 4px; color: #d14; white-space: nowrap; background-color: #f7f7f9; border: 1px solid #e1e1e8; } pre { display: block; padding: 9.5px; margin: 0 0 10px; font-size: 13px; line-height: 20px; word-break: break-all; word-wrap: break-word; white-space: pre; white-space: pre-wrap; background-color: #f5f5f5; border: 1px solid #ccc; border: 1px solid rgba(0, 0, 0, 0.15); -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; } pre.prettyprint { margin-bottom: 20px; } pre code { padding: 0; color: inherit; white-space: pre; white-space: pre-wrap; background-color: transparent; border: 0; } .pre-scrollable { max-height: 340px; overflow-y: scroll; } form { margin: 0 0 20px; } fieldset { padding: 0; margin: 0; border: 0; } legend { display: block; width: 100%; padding: 0; margin-bottom: 20px; font-size: 21px; line-height: 40px; color: #333333; border: 0; border-bottom: 1px solid #e5e5e5; } legend small { font-size: 15px; color: #999999; } label, input, button, select, textarea { font-size: 14px; font-weight: normal; line-height: 20px; } input, button, select, textarea { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } label { display: block; margin-bottom: 5px; } select, textarea, input[type="text"], input[type="password"], input[type="datetime"], input[type="datetime-local"], input[type="date"], input[type="month"], input[type="time"], input[type="week"], input[type="number"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"], .uneditable-input { display: inline-block; height: 20px; padding: 4px 6px; margin-bottom: 10px; font-size: 14px; line-height: 20px; color: #555555; vertical-align: middle; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; } input, textarea, .uneditable-input { width: 206px; } textarea { height: auto; } textarea, input[type="text"], input[type="password"], input[type="datetime"], input[type="datetime-local"], input[type="date"], input[type="month"], input[type="time"], input[type="week"], input[type="number"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"], .uneditable-input { background-color: #ffffff; border: 1px solid #cccccc; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; -moz-transition: border linear 0.2s, box-shadow linear 0.2s; -o-transition: border linear 0.2s, box-shadow linear 0.2s; transition: border linear 0.2s, box-shadow linear 0.2s; } textarea:focus, input[type="text"]:focus, input[type="password"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="date"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="week"]:focus, input[type="number"]:focus, input[type="email"]:focus, input[type="url"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="color"]:focus, .uneditable-input:focus { border-color: rgba(82, 168, 236, 0.8); outline: 0; outline: thin dotted \9; /* IE6-9 */ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); } input[type="radio"], input[type="checkbox"] { margin: 4px 0 0; margin-top: 1px \9; *margin-top: 0; line-height: normal; } input[type="file"], input[type="image"], input[type="submit"], input[type="reset"], input[type="button"], input[type="radio"], input[type="checkbox"] { width: auto; } select, input[type="file"] { height: 30px; /* In IE7, the height of the select element cannot be changed by height, only font-size */ *margin-top: 4px; /* For IE7, add top margin to align select with labels */ line-height: 30px; } select { width: 220px; background-color: #ffffff; border: 1px solid #cccccc; } select[multiple], select[size] { height: auto; } select:focus, input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus { outline: thin dotted #333; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } .uneditable-input, .uneditable-textarea { color: #999999; cursor: not-allowed; background-color: #fcfcfc; border-color: #cccccc; -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); } .uneditable-input { overflow: hidden; white-space: nowrap; } .uneditable-textarea { width: auto; height: auto; } input:-moz-placeholder, textarea:-moz-placeholder { color: #999999; } input:-ms-input-placeholder, textarea:-ms-input-placeholder { color: #999999; } input::-webkit-input-placeholder, textarea::-webkit-input-placeholder { color: #999999; } .radio, .checkbox { min-height: 20px; padding-left: 20px; } .radio input[type="radio"], .checkbox input[type="checkbox"] { float: left; margin-left: -20px; } .controls > .radio:first-child, .controls > .checkbox:first-child { padding-top: 5px; } .radio.inline, .checkbox.inline { display: inline-block; padding-top: 5px; margin-bottom: 0; vertical-align: middle; } .radio.inline + .radio.inline, .checkbox.inline + .checkbox.inline { margin-left: 10px; } .input-mini { width: 60px; } .input-small { width: 90px; } .input-medium { width: 150px; } .input-large { width: 210px; } .input-xlarge { width: 270px; } .input-xxlarge { width: 530px; } input[class*="span"], select[class*="span"], textarea[class*="span"], .uneditable-input[class*="span"], .row-fluid input[class*="span"], .row-fluid select[class*="span"], .row-fluid textarea[class*="span"], .row-fluid .uneditable-input[class*="span"] { float: none; margin-left: 0; } .input-append input[class*="span"], .input-append .uneditable-input[class*="span"], .input-prepend input[class*="span"], .input-prepend .uneditable-input[class*="span"], .row-fluid input[class*="span"], .row-fluid select[class*="span"], .row-fluid textarea[class*="span"], .row-fluid .uneditable-input[class*="span"], .row-fluid .input-prepend [class*="span"], .row-fluid .input-append [class*="span"] { display: inline-block; } input, textarea, .uneditable-input { margin-left: 0; } .controls-row [class*="span"] + [class*="span"] { margin-left: 20px; } input.span12, textarea.span12, .uneditable-input.span12 { width: 926px; } input.span11, textarea.span11, .uneditable-input.span11 { width: 846px; } input.span10, textarea.span10, .uneditable-input.span10 { width: 766px; } input.span9, textarea.span9, .uneditable-input.span9 { width: 686px; } input.span8, textarea.span8, .uneditable-input.span8 { width: 606px; } input.span7, textarea.span7, .uneditable-input.span7 { width: 526px; } input.span6, textarea.span6, .uneditable-input.span6 { width: 446px; } input.span5, textarea.span5, .uneditable-input.span5 { width: 366px; } input.span4, textarea.span4, .uneditable-input.span4 { width: 286px; } input.span3, textarea.span3, .uneditable-input.span3 { width: 206px; } input.span2, textarea.span2, .uneditable-input.span2 { width: 126px; } input.span1, textarea.span1, .uneditable-input.span1 { width: 46px; } .controls-row { *zoom: 1; } .controls-row:before, .controls-row:after { display: table; line-height: 0; content: ""; } .controls-row:after { clear: both; } .controls-row [class*="span"], .row-fluid .controls-row [class*="span"] { float: left; } .controls-row .checkbox[class*="span"], .controls-row .radio[class*="span"] { padding-top: 5px; } input[disabled], select[disabled], textarea[disabled], input[readonly], select[readonly], textarea[readonly] { cursor: not-allowed; background-color: #eeeeee; } input[type="radio"][disabled], input[type="checkbox"][disabled], input[type="radio"][readonly], input[type="checkbox"][readonly] { background-color: transparent; } .control-group.warning .control-label, .control-group.warning .help-block, .control-group.warning .help-inline { color: #c09853; } .control-group.warning .checkbox, .control-group.warning .radio, .control-group.warning input, .control-group.warning select, .control-group.warning textarea { color: #c09853; } .control-group.warning input, .control-group.warning select, .control-group.warning textarea { border-color: #c09853; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } .control-group.warning input:focus, .control-group.warning select:focus, .control-group.warning textarea:focus { border-color: #a47e3c; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; } .control-group.warning .input-prepend .add-on, .control-group.warning .input-append .add-on { color: #c09853; background-color: #fcf8e3; border-color: #c09853; } .control-group.error .control-label, .control-group.error .help-block, .control-group.error .help-inline { color: #b94a48; } .control-group.error .checkbox, .control-group.error .radio, .control-group.error input, .control-group.error select, .control-group.error textarea { color: #b94a48; } .control-group.error input, .control-group.error select, .control-group.error textarea { border-color: #b94a48; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } .control-group.error input:focus, .control-group.error select:focus, .control-group.error textarea:focus { border-color: #953b39; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; } .control-group.error .input-prepend .add-on, .control-group.error .input-append .add-on { color: #b94a48; background-color: #f2dede; border-color: #b94a48; } .control-group.success .control-label, .control-group.success .help-block, .control-group.success .help-inline { color: #468847; } .control-group.success .checkbox, .control-group.success .radio, .control-group.success input, .control-group.success select, .control-group.success textarea { color: #468847; } .control-group.success input, .control-group.success select, .control-group.success textarea { border-color: #468847; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } .control-group.success input:focus, .control-group.success select:focus, .control-group.success textarea:focus { border-color: #356635; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; } .control-group.success .input-prepend .add-on, .control-group.success .input-append .add-on { color: #468847; background-color: #dff0d8; border-color: #468847; } .control-group.info .control-label, .control-group.info .help-block, .control-group.info .help-inline { color: #3a87ad; } .control-group.info .checkbox, .control-group.info .radio, .control-group.info input, .control-group.info select, .control-group.info textarea { color: #3a87ad; } .control-group.info input, .control-group.info select, .control-group.info textarea { border-color: #3a87ad; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } .control-group.info input:focus, .control-group.info select:focus, .control-group.info textarea:focus { border-color: #2d6987; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; } .control-group.info .input-prepend .add-on, .control-group.info .input-append .add-on { color: #3a87ad; background-color: #d9edf7; border-color: #3a87ad; } input:focus:invalid, textarea:focus:invalid, select:focus:invalid { color: #b94a48; border-color: #ee5f5b; } input:focus:invalid:focus, textarea:focus:invalid:focus, select:focus:invalid:focus { border-color: #e9322d; -webkit-box-shadow: 0 0 6px #f8b9b7; -moz-box-shadow: 0 0 6px #f8b9b7; box-shadow: 0 0 6px #f8b9b7; } .form-actions { padding: 19px 20px 20px; margin-top: 20px; margin-bottom: 20px; background-color: #f5f5f5; border-top: 1px solid #e5e5e5; *zoom: 1; } .form-actions:before, .form-actions:after { display: table; line-height: 0; content: ""; } .form-actions:after { clear: both; } .help-block, .help-inline { color: #595959; } .help-block { display: block; margin-bottom: 10px; } .help-inline { display: inline-block; *display: inline; padding-left: 5px; vertical-align: middle; *zoom: 1; } .input-append, .input-prepend { display: inline-block; margin-bottom: 10px; font-size: 0; white-space: nowrap; vertical-align: middle; } .input-append input, .input-prepend input, .input-append select, .input-prepend select, .input-append .uneditable-input, .input-prepend .uneditable-input, .input-append .dropdown-menu, .input-prepend .dropdown-menu, .input-append .popover, .input-prepend .popover { font-size: 14px; } .input-append input, .input-prepend input, .input-append select, .input-prepend select, .input-append .uneditable-input, .input-prepend .uneditable-input { position: relative; margin-bottom: 0; *margin-left: 0; vertical-align: top; -webkit-border-radius: 0 4px 4px 0; -moz-border-radius: 0 4px 4px 0; border-radius: 0 4px 4px 0; } .input-append input:focus, .input-prepend input:focus, .input-append select:focus, .input-prepend select:focus, .input-append .uneditable-input:focus, .input-prepend .uneditable-input:focus { z-index: 2; } .input-append .add-on, .input-prepend .add-on { display: inline-block; width: auto; height: 20px; min-width: 16px; padding: 4px 5px; font-size: 14px; font-weight: normal; line-height: 20px; text-align: center; text-shadow: 0 1px 0 #ffffff; background-color: #eeeeee; border: 1px solid #ccc; } .input-append .add-on, .input-prepend .add-on, .input-append .btn, .input-prepend .btn, .input-append .btn-group > .dropdown-toggle, .input-prepend .btn-group > .dropdown-toggle { vertical-align: top; -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; } .input-append .active, .input-prepend .active { background-color: #a9dba9; border-color: #46a546; } .input-prepend .add-on, .input-prepend .btn { margin-right: -1px; } .input-prepend .add-on:first-child, .input-prepend .btn:first-child { -webkit-border-radius: 4px 0 0 4px; -moz-border-radius: 4px 0 0 4px; border-radius: 4px 0 0 4px; } .input-append input, .input-append select, .input-append .uneditable-input { -webkit-border-radius: 4px 0 0 4px; -moz-border-radius: 4px 0 0 4px; border-radius: 4px 0 0 4px; } .input-append input + .btn-group .btn:last-child, .input-append select + .btn-group .btn:last-child, .input-append .uneditable-input + .btn-group .btn:last-child { -webkit-border-radius: 0 4px 4px 0; -moz-border-radius: 0 4px 4px 0; border-radius: 0 4px 4px 0; } .input-append .add-on, .input-append .btn, .input-append .btn-group { margin-left: -1px; } .input-append .add-on:last-child, .input-append .btn:last-child, .input-append .btn-group:last-child > .dropdown-toggle { -webkit-border-radius: 0 4px 4px 0; -moz-border-radius: 0 4px 4px 0; border-radius: 0 4px 4px 0; } .input-prepend.input-append input, .input-prepend.input-append select, .input-prepend.input-append .uneditable-input { -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; } .input-prepend.input-append input + .btn-group .btn, .input-prepend.input-append select + .btn-group .btn, .input-prepend.input-append .uneditable-input + .btn-group .btn { -webkit-border-radius: 0 4px 4px 0; -moz-border-radius: 0 4px 4px 0; border-radius: 0 4px 4px 0; } .input-prepend.input-append .add-on:first-child, .input-prepend.input-append .btn:first-child { margin-right: -1px; -webkit-border-radius: 4px 0 0 4px; -moz-border-radius: 4px 0 0 4px; border-radius: 4px 0 0 4px; } .input-prepend.input-append .add-on:last-child, .input-prepend.input-append .btn:last-child { margin-left: -1px; -webkit-border-radius: 0 4px 4px 0; -moz-border-radius: 0 4px 4px 0; border-radius: 0 4px 4px 0; } .input-prepend.input-append .btn-group:first-child { margin-left: 0; } input.search-query { padding-right: 14px; padding-right: 4px \9; padding-left: 14px; padding-left: 4px \9; /* IE7-8 doesn't have border-radius, so don't indent the padding */ margin-bottom: 0; -webkit-border-radius: 15px; -moz-border-radius: 15px; border-radius: 15px; } /* Allow for input prepend/append in search forms */ .form-search .input-append .search-query, .form-search .input-prepend .search-query { -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; } .form-search .input-append .search-query { -webkit-border-radius: 14px 0 0 14px; -moz-border-radius: 14px 0 0 14px; border-radius: 14px 0 0 14px; } .form-search .input-append .btn { -webkit-border-radius: 0 14px 14px 0; -moz-border-radius: 0 14px 14px 0; border-radius: 0 14px 14px 0; } .form-search .input-prepend .search-query { -webkit-border-radius: 0 14px 14px 0; -moz-border-radius: 0 14px 14px 0; border-radius: 0 14px 14px 0; } .form-search .input-prepend .btn { -webkit-border-radius: 14px 0 0 14px; -moz-border-radius: 14px 0 0 14px; border-radius: 14px 0 0 14px; } .form-search input, .form-inline input, .form-horizontal input, .form-search textarea, .form-inline textarea, .form-horizontal textarea, .form-search select, .form-inline select, .form-horizontal select, .form-search .help-inline, .form-inline .help-inline, .form-horizontal .help-inline, .form-search .uneditable-input, .form-inline .uneditable-input, .form-horizontal .uneditable-input, .form-search .input-prepend, .form-inline .input-prepend, .form-horizontal .input-prepend, .form-search .input-append, .form-inline .input-append, .form-horizontal .input-append { display: inline-block; *display: inline; margin-bottom: 0; vertical-align: middle; *zoom: 1; } .form-search .hide, .form-inline .hide, .form-horizontal .hide { display: none; } .form-search label, .form-inline label, .form-search .btn-group, .form-inline .btn-group { display: inline-block; } .form-search .input-append, .form-inline .input-append, .form-search .input-prepend, .form-inline .input-prepend { margin-bottom: 0; } .form-search .radio, .form-search .checkbox, .form-inline .radio, .form-inline .checkbox { padding-left: 0; margin-bottom: 0; vertical-align: middle; } .form-search .radio input[type="radio"], .form-search .checkbox input[type="checkbox"], .form-inline .radio input[type="radio"], .form-inline .checkbox input[type="checkbox"] { float: left; margin-right: 3px; margin-left: 0; } .control-group { margin-bottom: 10px; } legend + .control-group { margin-top: 20px; -webkit-margin-top-collapse: separate; } .form-horizontal .control-group { margin-bottom: 20px; *zoom: 1; } .form-horizontal .control-group:before, .form-horizontal .control-group:after { display: table; line-height: 0; content: ""; } .form-horizontal .control-group:after { clear: both; } .form-horizontal .control-label { float: left; width: 160px; padding-top: 5px; text-align: right; } .form-horizontal .controls { *display: inline-block; *padding-left: 20px; margin-left: 180px; *margin-left: 0; } .form-horizontal .controls:first-child { *padding-left: 180px; } .form-horizontal .help-block { margin-bottom: 0; } .form-horizontal input + .help-block, .form-horizontal select + .help-block, .form-horizontal textarea + .help-block, .form-horizontal .uneditable-input + .help-block, .form-horizontal .input-prepend + .help-block, .form-horizontal .input-append + .help-block { margin-top: 10px; } .form-horizontal .form-actions { padding-left: 180px; } table { max-width: 100%; background-color: transparent; border-collapse: collapse; border-spacing: 0; } .table { width: 100%; margin-bottom: 20px; } .table th, .table td { padding: 8px; line-height: 20px; text-align: left; vertical-align: top; border-top: 1px solid #dddddd; } .table th { font-weight: bold; } .table thead th { vertical-align: bottom; } .table caption + thead tr:first-child th, .table caption + thead tr:first-child td, .table colgroup + thead tr:first-child th, .table colgroup + thead tr:first-child td, .table thead:first-child tr:first-child th, .table thead:first-child tr:first-child td { border-top: 0; } .table tbody + tbody { border-top: 2px solid #dddddd; } .table .table { background-color: #ffffff; } .table-condensed th, .table-condensed td { padding: 4px 5px; } .table-bordered { border: 1px solid #dddddd; border-collapse: separate; *border-collapse: collapse; border-left: 0; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; } .table-bordered th, .table-bordered td { border-left: 1px solid #dddddd; } .table-bordered caption + thead tr:first-child th, .table-bordered caption + tbody tr:first-child th, .table-bordered caption + tbody tr:first-child td, .table-bordered colgroup + thead tr:first-child th, .table-bordered colgroup + tbody tr:first-child th, .table-bordered colgroup + tbody tr:first-child td, .table-bordered thead:first-child tr:first-child th, .table-bordered tbody:first-child tr:first-child th, .table-bordered tbody:first-child tr:first-child td { border-top: 0; } .table-bordered thead:first-child tr:first-child > th:first-child, .table-bordered tbody:first-child tr:first-child > td:first-child, .table-bordered tbody:first-child tr:first-child > th:first-child { -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topleft: 4px; } .table-bordered thead:first-child tr:first-child > th:last-child, .table-bordered tbody:first-child tr:first-child > td:last-child, .table-bordered tbody:first-child tr:first-child > th:last-child { -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-topright: 4px; } .table-bordered thead:last-child tr:last-child > th:first-child, .table-bordered tbody:last-child tr:last-child > td:first-child, .table-bordered tbody:last-child tr:last-child > th:first-child, .table-bordered tfoot:last-child tr:last-child > td:first-child, .table-bordered tfoot:last-child tr:last-child > th:first-child { -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomleft: 4px; } .table-bordered thead:last-child tr:last-child > th:last-child, .table-bordered tbody:last-child tr:last-child > td:last-child, .table-bordered tbody:last-child tr:last-child > th:last-child, .table-bordered tfoot:last-child tr:last-child > td:last-child, .table-bordered tfoot:last-child tr:last-child > th:last-child { -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; -moz-border-radius-bottomright: 4px; } .table-bordered tfoot + tbody:last-child tr:last-child td:first-child { -webkit-border-bottom-left-radius: 0; border-bottom-left-radius: 0; -moz-border-radius-bottomleft: 0; } .table-bordered tfoot + tbody:last-child tr:last-child td:last-child { -webkit-border-bottom-right-radius: 0; border-bottom-right-radius: 0; -moz-border-radius-bottomright: 0; } .table-bordered caption + thead tr:first-child th:first-child, .table-bordered caption + tbody tr:first-child td:first-child, .table-bordered colgroup + thead tr:first-child th:first-child, .table-bordered colgroup + tbody tr:first-child td:first-child { -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topleft: 4px; } .table-bordered caption + thead tr:first-child th:last-child, .table-bordered caption + tbody tr:first-child td:last-child, .table-bordered colgroup + thead tr:first-child th:last-child, .table-bordered colgroup + tbody tr:first-child td:last-child { -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-topright: 4px; } .table-striped tbody > tr:nth-child(odd) > td, .table-striped tbody > tr:nth-child(odd) > th { background-color: #f9f9f9; } .table-hover tbody tr:hover > td, .table-hover tbody tr:hover > th { background-color: #f5f5f5; } table td[class*="span"], table th[class*="span"], .row-fluid table td[class*="span"], .row-fluid table th[class*="span"] { display: table-cell; float: none; margin-left: 0; } .table td.span1, .table th.span1 { float: none; width: 44px; margin-left: 0; } .table td.span2, .table th.span2 { float: none; width: 124px; margin-left: 0; } .table td.span3, .table th.span3 { float: none; width: 204px; margin-left: 0; } .table td.span4, .table th.span4 { float: none; width: 284px; margin-left: 0; } .table td.span5, .table th.span5 { float: none; width: 364px; margin-left: 0; } .table td.span6, .table th.span6 { float: none; width: 444px; margin-left: 0; } .table td.span7, .table th.span7 { float: none; width: 524px; margin-left: 0; } .table td.span8, .table th.span8 { float: none; width: 604px; margin-left: 0; } .table td.span9, .table th.span9 { float: none; width: 684px; margin-left: 0; } .table td.span10, .table th.span10 { float: none; width: 764px; margin-left: 0; } .table td.span11, .table th.span11 { float: none; width: 844px; margin-left: 0; } .table td.span12, .table th.span12 { float: none; width: 924px; margin-left: 0; } .table tbody tr.success > td { background-color: #dff0d8; } .table tbody tr.error > td { background-color: #f2dede; } .table tbody tr.warning > td { background-color: #fcf8e3; } .table tbody tr.info > td { background-color: #d9edf7; } .table-hover tbody tr.success:hover > td { background-color: #d0e9c6; } .table-hover tbody tr.error:hover > td { background-color: #ebcccc; } .table-hover tbody tr.warning:hover > td { background-color: #faf2cc; } .table-hover tbody tr.info:hover > td { background-color: #c4e3f3; } [class^="icon-"], [class*=" icon-"] { display: inline-block; width: 14px; height: 14px; margin-top: 1px; *margin-right: .3em; line-height: 14px; vertical-align: text-top; background-image: url("../img/glyphicons-halflings.png"); background-position: 14px 14px; background-repeat: no-repeat; } /* White icons with optional class, or on hover/focus/active states of certain elements */ .icon-white, .nav-pills > .active > a > [class^="icon-"], .nav-pills > .active > a > [class*=" icon-"], .nav-list > .active > a > [class^="icon-"], .nav-list > .active > a > [class*=" icon-"], .navbar-inverse .nav > .active > a > [class^="icon-"], .navbar-inverse .nav > .active > a > [class*=" icon-"], .dropdown-menu > li > a:hover > [class^="icon-"], .dropdown-menu > li > a:focus > [class^="icon-"], .dropdown-menu > li > a:hover > [class*=" icon-"], .dropdown-menu > li > a:focus > [class*=" icon-"], .dropdown-menu > .active > a > [class^="icon-"], .dropdown-menu > .active > a > [class*=" icon-"], .dropdown-submenu:hover > a > [class^="icon-"], .dropdown-submenu:focus > a > [class^="icon-"], .dropdown-submenu:hover > a > [class*=" icon-"], .dropdown-submenu:focus > a > [class*=" icon-"] { background-image: url("../img/glyphicons-halflings-white.png"); } .icon-glass { background-position: 0 0; } .icon-music { background-position: -24px 0; } .icon-search { background-position: -48px 0; } .icon-envelope { background-position: -72px 0; } .icon-heart { background-position: -96px 0; } .icon-star { background-position: -120px 0; } .icon-star-empty { background-position: -144px 0; } .icon-user { background-position: -168px 0; } .icon-film { background-position: -192px 0; } .icon-th-large { background-position: -216px 0; } .icon-th { background-position: -240px 0; } .icon-th-list { background-position: -264px 0; } .icon-ok { background-position: -288px 0; } .icon-remove { background-position: -312px 0; } .icon-zoom-in { background-position: -336px 0; } .icon-zoom-out { background-position: -360px 0; } .icon-off { background-position: -384px 0; } .icon-signal { background-position: -408px 0; } .icon-cog { background-position: -432px 0; } .icon-trash { background-position: -456px 0; } .icon-home { background-position: 0 -24px; } .icon-file { background-position: -24px -24px; } .icon-time { background-position: -48px -24px; } .icon-road { background-position: -72px -24px; } .icon-download-alt { background-position: -96px -24px; } .icon-download { background-position: -120px -24px; } .icon-upload { background-position: -144px -24px; } .icon-inbox { background-position: -168px -24px; } .icon-play-circle { background-position: -192px -24px; } .icon-repeat { background-position: -216px -24px; } .icon-refresh { background-position: -240px -24px; } .icon-list-alt { background-position: -264px -24px; } .icon-lock { background-position: -287px -24px; } .icon-flag { background-position: -312px -24px; } .icon-headphones { background-position: -336px -24px; } .icon-volume-off { background-position: -360px -24px; } .icon-volume-down { background-position: -384px -24px; } .icon-volume-up { background-position: -408px -24px; } .icon-qrcode { background-position: -432px -24px; } .icon-barcode { background-position: -456px -24px; } .icon-tag { background-position: 0 -48px; } .icon-tags { background-position: -25px -48px; } .icon-book { background-position: -48px -48px; } .icon-bookmark { background-position: -72px -48px; } .icon-print { background-position: -96px -48px; } .icon-camera { background-position: -120px -48px; } .icon-font { background-position: -144px -48px; } .icon-bold { background-position: -167px -48px; } .icon-italic { background-position: -192px -48px; } .icon-text-height { background-position: -216px -48px; } .icon-text-width { background-position: -240px -48px; } .icon-align-left { background-position: -264px -48px; } .icon-align-center { background-position: -288px -48px; } .icon-align-right { background-position: -312px -48px; } .icon-align-justify { background-position: -336px -48px; } .icon-list { background-position: -360px -48px; } .icon-indent-left { background-position: -384px -48px; } .icon-indent-right { background-position: -408px -48px; } .icon-facetime-video { background-position: -432px -48px; } .icon-picture { background-position: -456px -48px; } .icon-pencil { background-position: 0 -72px; } .icon-map-marker { background-position: -24px -72px; } .icon-adjust { background-position: -48px -72px; } .icon-tint { background-position: -72px -72px; } .icon-edit { background-position: -96px -72px; } .icon-share { background-position: -120px -72px; } .icon-check { background-position: -144px -72px; } .icon-move { background-position: -168px -72px; } .icon-step-backward { background-position: -192px -72px; } .icon-fast-backward { background-position: -216px -72px; } .icon-backward { background-position: -240px -72px; } .icon-play { background-position: -264px -72px; } .icon-pause { background-position: -288px -72px; } .icon-stop { background-position: -312px -72px; } .icon-forward { background-position: -336px -72px; } .icon-fast-forward { background-position: -360px -72px; } .icon-step-forward { background-position: -384px -72px; } .icon-eject { background-position: -408px -72px; } .icon-chevron-left { background-position: -432px -72px; } .icon-chevron-right { background-position: -456px -72px; } .icon-plus-sign { background-position: 0 -96px; } .icon-minus-sign { background-position: -24px -96px; } .icon-remove-sign { background-position: -48px -96px; } .icon-ok-sign { background-position: -72px -96px; } .icon-question-sign { background-position: -96px -96px; } .icon-info-sign { background-position: -120px -96px; } .icon-screenshot { background-position: -144px -96px; } .icon-remove-circle { background-position: -168px -96px; } .icon-ok-circle { background-position: -192px -96px; } .icon-ban-circle { background-position: -216px -96px; } .icon-arrow-left { background-position: -240px -96px; } .icon-arrow-right { background-position: -264px -96px; } .icon-arrow-up { background-position: -289px -96px; } .icon-arrow-down { background-position: -312px -96px; } .icon-share-alt { background-position: -336px -96px; } .icon-resize-full { background-position: -360px -96px; } .icon-resize-small { background-position: -384px -96px; } .icon-plus { background-position: -408px -96px; } .icon-minus { background-position: -433px -96px; } .icon-asterisk { background-position: -456px -96px; } .icon-exclamation-sign { background-position: 0 -120px; } .icon-gift { background-position: -24px -120px; } .icon-leaf { background-position: -48px -120px; } .icon-fire { background-position: -72px -120px; } .icon-eye-open { background-position: -96px -120px; } .icon-eye-close { background-position: -120px -120px; } .icon-warning-sign { background-position: -144px -120px; } .icon-plane { background-position: -168px -120px; } .icon-calendar { background-position: -192px -120px; } .icon-random { width: 16px; background-position: -216px -120px; } .icon-comment { background-position: -240px -120px; } .icon-magnet { background-position: -264px -120px; } .icon-chevron-up { background-position: -288px -120px; } .icon-chevron-down { background-position: -313px -119px; } .icon-retweet { background-position: -336px -120px; } .icon-shopping-cart { background-position: -360px -120px; } .icon-folder-close { width: 16px; background-position: -384px -120px; } .icon-folder-open { width: 16px; background-position: -408px -120px; } .icon-resize-vertical { background-position: -432px -119px; } .icon-resize-horizontal { background-position: -456px -118px; } .icon-hdd { background-position: 0 -144px; } .icon-bullhorn { background-position: -24px -144px; } .icon-bell { background-position: -48px -144px; } .icon-certificate { background-position: -72px -144px; } .icon-thumbs-up { background-position: -96px -144px; } .icon-thumbs-down { background-position: -120px -144px; } .icon-hand-right { background-position: -144px -144px; } .icon-hand-left { background-position: -168px -144px; } .icon-hand-up { background-position: -192px -144px; } .icon-hand-down { background-position: -216px -144px; } .icon-circle-arrow-right { background-position: -240px -144px; } .icon-circle-arrow-left { background-position: -264px -144px; } .icon-circle-arrow-up { background-position: -288px -144px; } .icon-circle-arrow-down { background-position: -312px -144px; } .icon-globe { background-position: -336px -144px; } .icon-wrench { background-position: -360px -144px; } .icon-tasks { background-position: -384px -144px; } .icon-filter { background-position: -408px -144px; } .icon-briefcase { background-position: -432px -144px; } .icon-fullscreen { background-position: -456px -144px; } .dropup, .dropdown { position: relative; } .dropdown-toggle { *margin-bottom: -3px; } .dropdown-toggle:active, .open .dropdown-toggle { outline: 0; } .caret { display: inline-block; width: 0; height: 0; vertical-align: top; border-top: 4px solid #000000; border-right: 4px solid transparent; border-left: 4px solid transparent; content: ""; } .dropdown .caret { margin-top: 8px; margin-left: 2px; } .dropdown-menu { position: absolute; top: 100%; left: 0; z-index: 1000; display: none; float: left; min-width: 160px; padding: 5px 0; margin: 2px 0 0; list-style: none; background-color: #ffffff; border: 1px solid #ccc; border: 1px solid rgba(0, 0, 0, 0.2); *border-right-width: 2px; *border-bottom-width: 2px; -webkit-border-radius: 6px; -moz-border-radius: 6px; border-radius: 6px; -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); -webkit-background-clip: padding-box; -moz-background-clip: padding; background-clip: padding-box; } .dropdown-menu.pull-right { right: 0; left: auto; } .dropdown-menu .divider { *width: 100%; height: 1px; margin: 9px 1px; *margin: -5px 0 5px; overflow: hidden; background-color: #e5e5e5; border-bottom: 1px solid #ffffff; } .dropdown-menu > li > a { display: block; padding: 3px 20px; clear: both; font-weight: normal; line-height: 20px; color: #333333; white-space: nowrap; } .dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus, .dropdown-submenu:hover > a, .dropdown-submenu:focus > a { color: #ffffff; text-decoration: none; background-color: #0081c2; background-image: -moz-linear-gradient(top, #0088cc, #0077b3); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); background-image: -o-linear-gradient(top, #0088cc, #0077b3); background-image: linear-gradient(to bottom, #0088cc, #0077b3); background-repeat: repeat-x; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); } .dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus { color: #ffffff; text-decoration: none; background-color: #0081c2; background-image: -moz-linear-gradient(top, #0088cc, #0077b3); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); background-image: -o-linear-gradient(top, #0088cc, #0077b3); background-image: linear-gradient(to bottom, #0088cc, #0077b3); background-repeat: repeat-x; outline: 0; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); } .dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { color: #999999; } .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { text-decoration: none; cursor: default; background-color: transparent; background-image: none; filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); } .open { *z-index: 1000; } .open > .dropdown-menu { display: block; } .pull-right > .dropdown-menu { right: 0; left: auto; } .dropup .caret, .navbar-fixed-bottom .dropdown .caret { border-top: 0; border-bottom: 4px solid #000000; content: ""; } .dropup .dropdown-menu, .navbar-fixed-bottom .dropdown .dropdown-menu { top: auto; bottom: 100%; margin-bottom: 1px; } .dropdown-submenu { position: relative; } .dropdown-submenu > .dropdown-menu { top: 0; left: 100%; margin-top: -6px; margin-left: -1px; -webkit-border-radius: 0 6px 6px 6px; -moz-border-radius: 0 6px 6px 6px; border-radius: 0 6px 6px 6px; } .dropdown-submenu:hover > .dropdown-menu { display: block; } .dropup .dropdown-submenu > .dropdown-menu { top: auto; bottom: 0; margin-top: 0; margin-bottom: -2px; -webkit-border-radius: 5px 5px 5px 0; -moz-border-radius: 5px 5px 5px 0; border-radius: 5px 5px 5px 0; } .dropdown-submenu > a:after { display: block; float: right; width: 0; height: 0; margin-top: 5px; margin-right: -10px; border-color: transparent; border-left-color: #cccccc; border-style: solid; border-width: 5px 0 5px 5px; content: " "; } .dropdown-submenu:hover > a:after { border-left-color: #ffffff; } .dropdown-submenu.pull-left { float: none; } .dropdown-submenu.pull-left > .dropdown-menu { left: -100%; margin-left: 10px; -webkit-border-radius: 6px 0 6px 6px; -moz-border-radius: 6px 0 6px 6px; border-radius: 6px 0 6px 6px; } .dropdown .dropdown-menu .nav-header { padding-right: 20px; padding-left: 20px; } .typeahead { z-index: 1051; margin-top: 2px; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; } .well { min-height: 20px; padding: 19px; margin-bottom: 20px; background-color: #f5f5f5; border: 1px solid #e3e3e3; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); } .well blockquote { border-color: #ddd; border-color: rgba(0, 0, 0, 0.15); } .well-large { padding: 24px; -webkit-border-radius: 6px; -moz-border-radius: 6px; border-radius: 6px; } .well-small { padding: 9px; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; } .fade { opacity: 0; -webkit-transition: opacity 0.15s linear; -moz-transition: opacity 0.15s linear; -o-transition: opacity 0.15s linear; transition: opacity 0.15s linear; } .fade.in { opacity: 1; } .collapse { position: relative; height: 0; overflow: hidden; -webkit-transition: height 0.35s ease; -moz-transition: height 0.35s ease; -o-transition: height 0.35s ease; transition: height 0.35s ease; } .collapse.in { height: auto; } .close { float: right; font-size: 20px; font-weight: bold; line-height: 20px; color: #000000; text-shadow: 0 1px 0 #ffffff; opacity: 0.2; filter: alpha(opacity=20); } .close:hover, .close:focus { color: #000000; text-decoration: none; cursor: pointer; opacity: 0.4; filter: alpha(opacity=40); } button.close { padding: 0; cursor: pointer; background: transparent; border: 0; -webkit-appearance: none; } .btn { display: inline-block; *display: inline; padding: 4px 12px; margin-bottom: 0; *margin-left: .3em; font-size: 14px; line-height: 20px; color: #333333; text-align: center; text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); vertical-align: middle; cursor: pointer; background-color: #f5f5f5; *background-color: #e6e6e6; background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); background-repeat: repeat-x; border: 1px solid #cccccc; *border: 0; border-color: #e6e6e6 #e6e6e6 #bfbfbf; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); border-bottom-color: #b3b3b3; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); *zoom: 1; -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); } .btn:hover, .btn:focus, .btn:active, .btn.active, .btn.disabled, .btn[disabled] { color: #333333; background-color: #e6e6e6; *background-color: #d9d9d9; } .btn:active, .btn.active { background-color: #cccccc \9; } .btn:first-child { *margin-left: 0; } .btn:hover, .btn:focus { color: #333333; text-decoration: none; background-position: 0 -15px; -webkit-transition: background-position 0.1s linear; -moz-transition: background-position 0.1s linear; -o-transition: background-position 0.1s linear; transition: background-position 0.1s linear; } .btn:focus { outline: thin dotted #333; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } .btn.active, .btn:active { background-image: none; outline: 0; -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); } .btn.disabled, .btn[disabled] { cursor: default; background-image: none; opacity: 0.65; filter: alpha(opacity=65); -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; } .btn-large { padding: 11px 19px; font-size: 17.5px; -webkit-border-radius: 6px; -moz-border-radius: 6px; border-radius: 6px; } .btn-large [class^="icon-"], .btn-large [class*=" icon-"] { margin-top: 4px; } .btn-small { padding: 2px 10px; font-size: 11.9px; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; } .btn-small [class^="icon-"], .btn-small [class*=" icon-"] { margin-top: 0; } .btn-mini [class^="icon-"], .btn-mini [class*=" icon-"] { margin-top: -1px; } .btn-mini { padding: 0 6px; font-size: 10.5px; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; } .btn-block { display: block; width: 100%; padding-right: 0; padding-left: 0; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } .btn-block + .btn-block { margin-top: 5px; } input[type="submit"].btn-block, input[type="reset"].btn-block, input[type="button"].btn-block { width: 100%; } .btn-primary.active, .btn-warning.active, .btn-danger.active, .btn-success.active, .btn-info.active, .btn-inverse.active { color: rgba(255, 255, 255, 0.75); } .btn-primary { color: #ffffff; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); background-color: #006dcc; *background-color: #0044cc; background-image: -moz-linear-gradient(top, #0088cc, #0044cc); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); background-image: -o-linear-gradient(top, #0088cc, #0044cc); background-image: linear-gradient(to bottom, #0088cc, #0044cc); background-repeat: repeat-x; border-color: #0044cc #0044cc #002a80; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0); filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); } .btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, .btn-primary.disabled, .btn-primary[disabled] { color: #ffffff; background-color: #0044cc; *background-color: #003bb3; } .btn-primary:active, .btn-primary.active { background-color: #003399 \9; } .btn-warning { color: #ffffff; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); background-color: #faa732; *background-color: #f89406; background-image: -moz-linear-gradient(top, #fbb450, #f89406); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); background-image: -webkit-linear-gradient(top, #fbb450, #f89406); background-image: -o-linear-gradient(top, #fbb450, #f89406); background-image: linear-gradient(to bottom, #fbb450, #f89406); background-repeat: repeat-x; border-color: #f89406 #f89406 #ad6704; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); } .btn-warning:hover, .btn-warning:focus, .btn-warning:active, .btn-warning.active, .btn-warning.disabled, .btn-warning[disabled] { color: #ffffff; background-color: #f89406; *background-color: #df8505; } .btn-warning:active, .btn-warning.active { background-color: #c67605 \9; } .btn-danger { color: #ffffff; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); background-color: #da4f49; *background-color: #bd362f; background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); background-image: linear-gradient(to bottom, #ee5f5b, #bd362f); background-repeat: repeat-x; border-color: #bd362f #bd362f #802420; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0); filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); } .btn-danger:hover, .btn-danger:focus, .btn-danger:active, .btn-danger.active, .btn-danger.disabled, .btn-danger[disabled] { color: #ffffff; background-color: #bd362f; *background-color: #a9302a; } .btn-danger:active, .btn-danger.active { background-color: #942a25 \9; } .btn-success { color: #ffffff; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); background-color: #5bb75b; *background-color: #51a351; background-image: -moz-linear-gradient(top, #62c462, #51a351); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); background-image: -webkit-linear-gradient(top, #62c462, #51a351); background-image: -o-linear-gradient(top, #62c462, #51a351); background-image: linear-gradient(to bottom, #62c462, #51a351); background-repeat: repeat-x; border-color: #51a351 #51a351 #387038; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0); filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); } .btn-success:hover, .btn-success:focus, .btn-success:active, .btn-success.active, .btn-success.disabled, .btn-success[disabled] { color: #ffffff; background-color: #51a351; *background-color: #499249; } .btn-success:active, .btn-success.active { background-color: #408140 \9; } .btn-info { color: #ffffff; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); background-color: #49afcd; *background-color: #2f96b4; background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); background-image: linear-gradient(to bottom, #5bc0de, #2f96b4); background-repeat: repeat-x; border-color: #2f96b4 #2f96b4 #1f6377; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0); filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); } .btn-info:hover, .btn-info:focus, .btn-info:active, .btn-info.active, .btn-info.disabled, .btn-info[disabled] { color: #ffffff; background-color: #2f96b4; *background-color: #2a85a0; } .btn-info:active, .btn-info.active { background-color: #24748c \9; } .btn-inverse { color: #ffffff; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); background-color: #363636; *background-color: #222222; background-image: -moz-linear-gradient(top, #444444, #222222); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222)); background-image: -webkit-linear-gradient(top, #444444, #222222); background-image: -o-linear-gradient(top, #444444, #222222); background-image: linear-gradient(to bottom, #444444, #222222); background-repeat: repeat-x; border-color: #222222 #222222 #000000; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0); filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); } .btn-inverse:hover, .btn-inverse:focus, .btn-inverse:active, .btn-inverse.active, .btn-inverse.disabled, .btn-inverse[disabled] { color: #ffffff; background-color: #222222; *background-color: #151515; } .btn-inverse:active, .btn-inverse.active { background-color: #080808 \9; } button.btn, input[type="submit"].btn { *padding-top: 3px; *padding-bottom: 3px; } button.btn::-moz-focus-inner, input[type="submit"].btn::-moz-focus-inner { padding: 0; border: 0; } button.btn.btn-large, input[type="submit"].btn.btn-large { *padding-top: 7px; *padding-bottom: 7px; } button.btn.btn-small, input[type="submit"].btn.btn-small { *padding-top: 3px; *padding-bottom: 3px; } button.btn.btn-mini, input[type="submit"].btn.btn-mini { *padding-top: 1px; *padding-bottom: 1px; } .btn-link, .btn-link:active, .btn-link[disabled] { background-color: transparent; background-image: none; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; } .btn-link { color: #0088cc; cursor: pointer; border-color: transparent; -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; } .btn-link:hover, .btn-link:focus { color: #005580; text-decoration: underline; background-color: transparent; } .btn-link[disabled]:hover, .btn-link[disabled]:focus { color: #333333; text-decoration: none; } .btn-group { position: relative; display: inline-block; *display: inline; *margin-left: .3em; font-size: 0; white-space: nowrap; vertical-align: middle; *zoom: 1; } .btn-group:first-child { *margin-left: 0; } .btn-group + .btn-group { margin-left: 5px; } .btn-toolbar { margin-top: 10px; margin-bottom: 10px; font-size: 0; } .btn-toolbar > .btn + .btn, .btn-toolbar > .btn-group + .btn, .btn-toolbar > .btn + .btn-group { margin-left: 5px; } .btn-group > .btn { position: relative; -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; } .btn-group > .btn + .btn { margin-left: -1px; } .btn-group > .btn, .btn-group > .dropdown-menu, .btn-group > .popover { font-size: 14px; } .btn-group > .btn-mini { font-size: 10.5px; } .btn-group > .btn-small { font-size: 11.9px; } .btn-group > .btn-large { font-size: 17.5px; } .btn-group > .btn:first-child { margin-left: 0; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -moz-border-radius-topleft: 4px; } .btn-group > .btn:last-child, .btn-group > .dropdown-toggle { -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; -moz-border-radius-topright: 4px; -moz-border-radius-bottomright: 4px; } .btn-group > .btn.large:first-child { margin-left: 0; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px; -moz-border-radius-bottomleft: 6px; -moz-border-radius-topleft: 6px; } .btn-group > .btn.large:last-child, .btn-group > .large.dropdown-toggle { -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; -moz-border-radius-topright: 6px; -moz-border-radius-bottomright: 6px; } .btn-group > .btn:hover, .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active { z-index: 2; } .btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle { outline: 0; } .btn-group > .btn + .dropdown-toggle { *padding-top: 5px; padding-right: 8px; *padding-bottom: 5px; padding-left: 8px; -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); } .btn-group > .btn-mini + .dropdown-toggle { *padding-top: 2px; padding-right: 5px; *padding-bottom: 2px; padding-left: 5px; } .btn-group > .btn-small + .dropdown-toggle { *padding-top: 5px; *padding-bottom: 4px; } .btn-group > .btn-large + .dropdown-toggle { *padding-top: 7px; padding-right: 12px; *padding-bottom: 7px; padding-left: 12px; } .btn-group.open .dropdown-toggle { background-image: none; -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); } .btn-group.open .btn.dropdown-toggle { background-color: #e6e6e6; } .btn-group.open .btn-primary.dropdown-toggle { background-color: #0044cc; } .btn-group.open .btn-warning.dropdown-toggle { background-color: #f89406; } .btn-group.open .btn-danger.dropdown-toggle { background-color: #bd362f; } .btn-group.open .btn-success.dropdown-toggle { background-color: #51a351; } .btn-group.open .btn-info.dropdown-toggle { background-color: #2f96b4; } .btn-group.open .btn-inverse.dropdown-toggle { background-color: #222222; } .btn .caret { margin-top: 8px; margin-left: 0; } .btn-large .caret { margin-top: 6px; } .btn-large .caret { border-top-width: 5px; border-right-width: 5px; border-left-width: 5px; } .btn-mini .caret, .btn-small .caret { margin-top: 8px; } .dropup .btn-large .caret { border-bottom-width: 5px; } .btn-primary .caret, .btn-warning .caret, .btn-danger .caret, .btn-info .caret, .btn-success .caret, .btn-inverse .caret { border-top-color: #ffffff; border-bottom-color: #ffffff; } .btn-group-vertical { display: inline-block; *display: inline; /* IE7 inline-block hack */ *zoom: 1; } .btn-group-vertical > .btn { display: block; float: none; max-width: 100%; -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; } .btn-group-vertical > .btn + .btn { margin-top: -1px; margin-left: 0; } .btn-group-vertical > .btn:first-child { -webkit-border-radius: 4px 4px 0 0; -moz-border-radius: 4px 4px 0 0; border-radius: 4px 4px 0 0; } .btn-group-vertical > .btn:last-child { -webkit-border-radius: 0 0 4px 4px; -moz-border-radius: 0 0 4px 4px; border-radius: 0 0 4px 4px; } .btn-group-vertical > .btn-large:first-child { -webkit-border-radius: 6px 6px 0 0; -moz-border-radius: 6px 6px 0 0; border-radius: 6px 6px 0 0; } .btn-group-vertical > .btn-large:last-child { -webkit-border-radius: 0 0 6px 6px; -moz-border-radius: 0 0 6px 6px; border-radius: 0 0 6px 6px; } .alert { padding: 8px 35px 8px 14px; margin-bottom: 20px; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); background-color: #fcf8e3; border: 1px solid #fbeed5; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; } .alert, .alert h4 { color: #c09853; } .alert h4 { margin: 0; } .alert .close { position: relative; top: -2px; right: -21px; line-height: 20px; } .alert-success { color: #468847; background-color: #dff0d8; border-color: #d6e9c6; } .alert-success h4 { color: #468847; } .alert-danger, .alert-error { color: #b94a48; background-color: #f2dede; border-color: #eed3d7; } .alert-danger h4, .alert-error h4 { color: #b94a48; } .alert-info { color: #3a87ad; background-color: #d9edf7; border-color: #bce8f1; } .alert-info h4 { color: #3a87ad; } .alert-block { padding-top: 14px; padding-bottom: 14px; } .alert-block > p, .alert-block > ul { margin-bottom: 0; } .alert-block p + p { margin-top: 5px; } .nav { margin-bottom: 20px; margin-left: 0; list-style: none; } .nav > li > a { display: block; } .nav > li > a:hover, .nav > li > a:focus { text-decoration: none; background-color: #eeeeee; } .nav > li > a > img { max-width: none; } .nav > .pull-right { float: right; } .nav-header { display: block; padding: 3px 15px; font-size: 11px; font-weight: bold; line-height: 20px; color: #999999; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); text-transform: uppercase; } .nav li + .nav-header { margin-top: 9px; } .nav-list { padding-right: 15px; padding-left: 15px; margin-bottom: 0; } .nav-list > li > a, .nav-list .nav-header { margin-right: -15px; margin-left: -15px; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); } .nav-list > li > a { padding: 3px 15px; } .nav-list > .active > a, .nav-list > .active > a:hover, .nav-list > .active > a:focus { color: #ffffff; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); background-color: #0088cc; } .nav-list [class^="icon-"], .nav-list [class*=" icon-"] { margin-right: 2px; } .nav-list .divider { *width: 100%; height: 1px; margin: 9px 1px; *margin: -5px 0 5px; overflow: hidden; background-color: #e5e5e5; border-bottom: 1px solid #ffffff; } .nav-tabs, .nav-pills { *zoom: 1; } .nav-tabs:before, .nav-pills:before, .nav-tabs:after, .nav-pills:after { display: table; line-height: 0; content: ""; } .nav-tabs:after, .nav-pills:after { clear: both; } .nav-tabs > li, .nav-pills > li { float: left; } .nav-tabs > li > a, .nav-pills > li > a { padding-right: 12px; padding-left: 12px; margin-right: 2px; line-height: 14px; } .nav-tabs { border-bottom: 1px solid #ddd; } .nav-tabs > li { margin-bottom: -1px; } .nav-tabs > li > a { padding-top: 8px; padding-bottom: 8px; line-height: 20px; border: 1px solid transparent; -webkit-border-radius: 4px 4px 0 0; -moz-border-radius: 4px 4px 0 0; border-radius: 4px 4px 0 0; } .nav-tabs > li > a:hover, .nav-tabs > li > a:focus { border-color: #eeeeee #eeeeee #dddddd; } .nav-tabs > .active > a, .nav-tabs > .active > a:hover, .nav-tabs > .active > a:focus { color: #555555; cursor: default; background-color: #ffffff; border: 1px solid #ddd; border-bottom-color: transparent; } .nav-pills > li > a { padding-top: 8px; padding-bottom: 8px; margin-top: 2px; margin-bottom: 2px; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; } .nav-pills > .active > a, .nav-pills > .active > a:hover, .nav-pills > .active > a:focus { color: #ffffff; background-color: #0088cc; } .nav-stacked > li { float: none; } .nav-stacked > li > a { margin-right: 0; } .nav-tabs.nav-stacked { border-bottom: 0; } .nav-tabs.nav-stacked > li > a { border: 1px solid #ddd; -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; } .nav-tabs.nav-stacked > li:first-child > a { -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -moz-border-radius-topleft: 4px; } .nav-tabs.nav-stacked > li:last-child > a { -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -moz-border-radius-bottomleft: 4px; } .nav-tabs.nav-stacked > li > a:hover, .nav-tabs.nav-stacked > li > a:focus { z-index: 2; border-color: #ddd; } .nav-pills.nav-stacked > li > a { margin-bottom: 3px; } .nav-pills.nav-stacked > li:last-child > a { margin-bottom: 1px; } .nav-tabs .dropdown-menu { -webkit-border-radius: 0 0 6px 6px; -moz-border-radius: 0 0 6px 6px; border-radius: 0 0 6px 6px; } .nav-pills .dropdown-menu { -webkit-border-radius: 6px; -moz-border-radius: 6px; border-radius: 6px; } .nav .dropdown-toggle .caret { margin-top: 6px; border-top-color: #0088cc; border-bottom-color: #0088cc; } .nav .dropdown-toggle:hover .caret, .nav .dropdown-toggle:focus .caret { border-top-color: #005580; border-bottom-color: #005580; } /* move down carets for tabs */ .nav-tabs .dropdown-toggle .caret { margin-top: 8px; } .nav .active .dropdown-toggle .caret { border-top-color: #fff; border-bottom-color: #fff; } .nav-tabs .active .dropdown-toggle .caret { border-top-color: #555555; border-bottom-color: #555555; } .nav > .dropdown.active > a:hover, .nav > .dropdown.active > a:focus { cursor: pointer; } .nav-tabs .open .dropdown-toggle, .nav-pills .open .dropdown-toggle, .nav > li.dropdown.open.active > a:hover, .nav > li.dropdown.open.active > a:focus { color: #ffffff; background-color: #999999; border-color: #999999; } .nav li.dropdown.open .caret, .nav li.dropdown.open.active .caret, .nav li.dropdown.open a:hover .caret, .nav li.dropdown.open a:focus .caret { border-top-color: #ffffff; border-bottom-color: #ffffff; opacity: 1; filter: alpha(opacity=100); } .tabs-stacked .open > a:hover, .tabs-stacked .open > a:focus { border-color: #999999; } .tabbable { *zoom: 1; } .tabbable:before, .tabbable:after { display: table; line-height: 0; content: ""; } .tabbable:after { clear: both; } .tab-content { overflow: auto; } .tabs-below > .nav-tabs, .tabs-right > .nav-tabs, .tabs-left > .nav-tabs { border-bottom: 0; } .tab-content > .tab-pane, .pill-content > .pill-pane { display: none; } .tab-content > .active, .pill-content > .active { display: block; } .tabs-below > .nav-tabs { border-top: 1px solid #ddd; } .tabs-below > .nav-tabs > li { margin-top: -1px; margin-bottom: 0; } .tabs-below > .nav-tabs > li > a { -webkit-border-radius: 0 0 4px 4px; -moz-border-radius: 0 0 4px 4px; border-radius: 0 0 4px 4px; } .tabs-below > .nav-tabs > li > a:hover, .tabs-below > .nav-tabs > li > a:focus { border-top-color: #ddd; border-bottom-color: transparent; } .tabs-below > .nav-tabs > .active > a, .tabs-below > .nav-tabs > .active > a:hover, .tabs-below > .nav-tabs > .active > a:focus { border-color: transparent #ddd #ddd #ddd; } .tabs-left > .nav-tabs > li, .tabs-right > .nav-tabs > li { float: none; } .tabs-left > .nav-tabs > li > a, .tabs-right > .nav-tabs > li > a { min-width: 74px; margin-right: 0; margin-bottom: 3px; } .tabs-left > .nav-tabs { float: left; margin-right: 19px; border-right: 1px solid #ddd; } .tabs-left > .nav-tabs > li > a { margin-right: -1px; -webkit-border-radius: 4px 0 0 4px; -moz-border-radius: 4px 0 0 4px; border-radius: 4px 0 0 4px; } .tabs-left > .nav-tabs > li > a:hover, .tabs-left > .nav-tabs > li > a:focus { border-color: #eeeeee #dddddd #eeeeee #eeeeee; } .tabs-left > .nav-tabs .active > a, .tabs-left > .nav-tabs .active > a:hover, .tabs-left > .nav-tabs .active > a:focus { border-color: #ddd transparent #ddd #ddd; *border-right-color: #ffffff; } .tabs-right > .nav-tabs { float: right; margin-left: 19px; border-left: 1px solid #ddd; } .tabs-right > .nav-tabs > li > a { margin-left: -1px; -webkit-border-radius: 0 4px 4px 0; -moz-border-radius: 0 4px 4px 0; border-radius: 0 4px 4px 0; } .tabs-right > .nav-tabs > li > a:hover, .tabs-right > .nav-tabs > li > a:focus { border-color: #eeeeee #eeeeee #eeeeee #dddddd; } .tabs-right > .nav-tabs .active > a, .tabs-right > .nav-tabs .active > a:hover, .tabs-right > .nav-tabs .active > a:focus { border-color: #ddd #ddd #ddd transparent; *border-left-color: #ffffff; } .nav > .disabled > a { color: #999999; } .nav > .disabled > a:hover, .nav > .disabled > a:focus { text-decoration: none; cursor: default; background-color: transparent; } .navbar { *position: relative; *z-index: 2; margin-bottom: 20px; overflow: visible; } .navbar-inner { min-height: 40px; padding-right: 20px; padding-left: 20px; background-color: #fafafa; background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2)); background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2); background-image: -o-linear-gradient(top, #ffffff, #f2f2f2); background-image: linear-gradient(to bottom, #ffffff, #f2f2f2); background-repeat: repeat-x; border: 1px solid #d4d4d4; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0); *zoom: 1; -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); } .navbar-inner:before, .navbar-inner:after { display: table; line-height: 0; content: ""; } .navbar-inner:after { clear: both; } .navbar .container { width: auto; } .nav-collapse.collapse { height: auto; overflow: visible; } .navbar .brand { display: block; float: left; padding: 10px 20px 10px; margin-left: -20px; font-size: 20px; font-weight: 200; color: #777777; text-shadow: 0 1px 0 #ffffff; } .navbar .brand:hover, .navbar .brand:focus { text-decoration: none; } .navbar-text { margin-bottom: 0; line-height: 40px; color: #777777; } .navbar-link { color: #777777; } .navbar-link:hover, .navbar-link:focus { color: #333333; } .navbar .divider-vertical { height: 40px; margin: 0 9px; border-right: 1px solid #ffffff; border-left: 1px solid #f2f2f2; } .navbar .btn, .navbar .btn-group { margin-top: 5px; } .navbar .btn-group .btn, .navbar .input-prepend .btn, .navbar .input-append .btn, .navbar .input-prepend .btn-group, .navbar .input-append .btn-group { margin-top: 0; } .navbar-form { margin-bottom: 0; *zoom: 1; } .navbar-form:before, .navbar-form:after { display: table; line-height: 0; content: ""; } .navbar-form:after { clear: both; } .navbar-form input, .navbar-form select, .navbar-form .radio, .navbar-form .checkbox { margin-top: 5px; } .navbar-form input, .navbar-form select, .navbar-form .btn { display: inline-block; margin-bottom: 0; } .navbar-form input[type="image"], .navbar-form input[type="checkbox"], .navbar-form input[type="radio"] { margin-top: 3px; } .navbar-form .input-append, .navbar-form .input-prepend { margin-top: 5px; white-space: nowrap; } .navbar-form .input-append input, .navbar-form .input-prepend input { margin-top: 0; } .navbar-search { position: relative; float: left; margin-top: 5px; margin-bottom: 0; } .navbar-search .search-query { padding: 4px 14px; margin-bottom: 0; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 13px; font-weight: normal; line-height: 1; -webkit-border-radius: 15px; -moz-border-radius: 15px; border-radius: 15px; } .navbar-static-top { position: static; margin-bottom: 0; } .navbar-static-top .navbar-inner { -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; } .navbar-fixed-top, .navbar-fixed-bottom { position: fixed; right: 0; left: 0; z-index: 1030; margin-bottom: 0; } .navbar-fixed-top .navbar-inner, .navbar-static-top .navbar-inner { border-width: 0 0 1px; } .navbar-fixed-bottom .navbar-inner { border-width: 1px 0 0; } .navbar-fixed-top .navbar-inner, .navbar-fixed-bottom .navbar-inner { padding-right: 0; padding-left: 0; -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; } .navbar-static-top .container, .navbar-fixed-top .container, .navbar-fixed-bottom .container { width: 940px; } .navbar-fixed-top { top: 0; } .navbar-fixed-top .navbar-inner, .navbar-static-top .navbar-inner { -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); } .navbar-fixed-bottom { bottom: 0; } .navbar-fixed-bottom .navbar-inner { -webkit-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); -moz-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); } .navbar .nav { position: relative; left: 0; display: block; float: left; margin: 0 10px 0 0; } .navbar .nav.pull-right { float: right; margin-right: 0; } .navbar .nav > li { float: left; } .navbar .nav > li > a { float: none; padding: 10px 15px 10px; color: #777777; text-decoration: none; text-shadow: 0 1px 0 #ffffff; } .navbar .nav .dropdown-toggle .caret { margin-top: 8px; } .navbar .nav > li > a:focus, .navbar .nav > li > a:hover { color: #333333; text-decoration: none; background-color: transparent; } .navbar .nav > .active > a, .navbar .nav > .active > a:hover, .navbar .nav > .active > a:focus { color: #555555; text-decoration: none; background-color: #e5e5e5; -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); } .navbar .btn-navbar { display: none; float: right; padding: 7px 10px; margin-right: 5px; margin-left: 5px; color: #ffffff; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); background-color: #ededed; *background-color: #e5e5e5; background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5)); background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5); background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5); background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5); background-repeat: repeat-x; border-color: #e5e5e5 #e5e5e5 #bfbfbf; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0); filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); } .navbar .btn-navbar:hover, .navbar .btn-navbar:focus, .navbar .btn-navbar:active, .navbar .btn-navbar.active, .navbar .btn-navbar.disabled, .navbar .btn-navbar[disabled] { color: #ffffff; background-color: #e5e5e5; *background-color: #d9d9d9; } .navbar .btn-navbar:active, .navbar .btn-navbar.active { background-color: #cccccc \9; } .navbar .btn-navbar .icon-bar { display: block; width: 18px; height: 2px; background-color: #f5f5f5; -webkit-border-radius: 1px; -moz-border-radius: 1px; border-radius: 1px; -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); } .btn-navbar .icon-bar + .icon-bar { margin-top: 3px; } .navbar .nav > li > .dropdown-menu:before { position: absolute; top: -7px; left: 9px; display: inline-block; border-right: 7px solid transparent; border-bottom: 7px solid #ccc; border-left: 7px solid transparent; border-bottom-color: rgba(0, 0, 0, 0.2); content: ''; } .navbar .nav > li > .dropdown-menu:after { position: absolute; top: -6px; left: 10px; display: inline-block; border-right: 6px solid transparent; border-bottom: 6px solid #ffffff; border-left: 6px solid transparent; content: ''; } .navbar-fixed-bottom .nav > li > .dropdown-menu:before { top: auto; bottom: -7px; border-top: 7px solid #ccc; border-bottom: 0; border-top-color: rgba(0, 0, 0, 0.2); } .navbar-fixed-bottom .nav > li > .dropdown-menu:after { top: auto; bottom: -6px; border-top: 6px solid #ffffff; border-bottom: 0; } .navbar .nav li.dropdown > a:hover .caret, .navbar .nav li.dropdown > a:focus .caret { border-top-color: #333333; border-bottom-color: #333333; } .navbar .nav li.dropdown.open > .dropdown-toggle, .navbar .nav li.dropdown.active > .dropdown-toggle, .navbar .nav li.dropdown.open.active > .dropdown-toggle { color: #555555; background-color: #e5e5e5; } .navbar .nav li.dropdown > .dropdown-toggle .caret { border-top-color: #777777; border-bottom-color: #777777; } .navbar .nav li.dropdown.open > .dropdown-toggle .caret, .navbar .nav li.dropdown.active > .dropdown-toggle .caret, .navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { border-top-color: #555555; border-bottom-color: #555555; } .navbar .pull-right > li > .dropdown-menu, .navbar .nav > li > .dropdown-menu.pull-right { right: 0; left: auto; } .navbar .pull-right > li > .dropdown-menu:before, .navbar .nav > li > .dropdown-menu.pull-right:before { right: 12px; left: auto; } .navbar .pull-right > li > .dropdown-menu:after, .navbar .nav > li > .dropdown-menu.pull-right:after { right: 13px; left: auto; } .navbar .pull-right > li > .dropdown-menu .dropdown-menu, .navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu { right: 100%; left: auto; margin-right: -1px; margin-left: 0; -webkit-border-radius: 6px 0 6px 6px; -moz-border-radius: 6px 0 6px 6px; border-radius: 6px 0 6px 6px; } .navbar-inverse .navbar-inner { background-color: #1b1b1b; background-image: -moz-linear-gradient(top, #222222, #111111); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111)); background-image: -webkit-linear-gradient(top, #222222, #111111); background-image: -o-linear-gradient(top, #222222, #111111); background-image: linear-gradient(to bottom, #222222, #111111); background-repeat: repeat-x; border-color: #252525; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0); } .navbar-inverse .brand, .navbar-inverse .nav > li > a { color: #999999; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); } .navbar-inverse .brand:hover, .navbar-inverse .nav > li > a:hover, .navbar-inverse .brand:focus, .navbar-inverse .nav > li > a:focus { color: #ffffff; } .navbar-inverse .brand { color: #999999; } .navbar-inverse .navbar-text { color: #999999; } .navbar-inverse .nav > li > a:focus, .navbar-inverse .nav > li > a:hover { color: #ffffff; background-color: transparent; } .navbar-inverse .nav .active > a, .navbar-inverse .nav .active > a:hover, .navbar-inverse .nav .active > a:focus { color: #ffffff; background-color: #111111; } .navbar-inverse .navbar-link { color: #999999; } .navbar-inverse .navbar-link:hover, .navbar-inverse .navbar-link:focus { color: #ffffff; } .navbar-inverse .divider-vertical { border-right-color: #222222; border-left-color: #111111; } .navbar-inverse .nav li.dropdown.open > .dropdown-toggle, .navbar-inverse .nav li.dropdown.active > .dropdown-toggle, .navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle { color: #ffffff; background-color: #111111; } .navbar-inverse .nav li.dropdown > a:hover .caret, .navbar-inverse .nav li.dropdown > a:focus .caret { border-top-color: #ffffff; border-bottom-color: #ffffff; } .navbar-inverse .nav li.dropdown > .dropdown-toggle .caret { border-top-color: #999999; border-bottom-color: #999999; } .navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret, .navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret, .navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret { border-top-color: #ffffff; border-bottom-color: #ffffff; } .navbar-inverse .navbar-search .search-query { color: #ffffff; background-color: #515151; border-color: #111111; -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); -webkit-transition: none; -moz-transition: none; -o-transition: none; transition: none; } .navbar-inverse .navbar-search .search-query:-moz-placeholder { color: #cccccc; } .navbar-inverse .navbar-search .search-query:-ms-input-placeholder { color: #cccccc; } .navbar-inverse .navbar-search .search-query::-webkit-input-placeholder { color: #cccccc; } .navbar-inverse .navbar-search .search-query:focus, .navbar-inverse .navbar-search .search-query.focused { padding: 5px 15px; color: #333333; text-shadow: 0 1px 0 #ffffff; background-color: #ffffff; border: 0; outline: 0; -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); } .navbar-inverse .btn-navbar { color: #ffffff; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); background-color: #0e0e0e; *background-color: #040404; background-image: -moz-linear-gradient(top, #151515, #040404); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404)); background-image: -webkit-linear-gradient(top, #151515, #040404); background-image: -o-linear-gradient(top, #151515, #040404); background-image: linear-gradient(to bottom, #151515, #040404); background-repeat: repeat-x; border-color: #040404 #040404 #000000; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0); filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); } .navbar-inverse .btn-navbar:hover, .navbar-inverse .btn-navbar:focus, .navbar-inverse .btn-navbar:active, .navbar-inverse .btn-navbar.active, .navbar-inverse .btn-navbar.disabled, .navbar-inverse .btn-navbar[disabled] { color: #ffffff; background-color: #040404; *background-color: #000000; } .navbar-inverse .btn-navbar:active, .navbar-inverse .btn-navbar.active { background-color: #000000 \9; } .breadcrumb { padding: 8px 15px; margin: 0 0 20px; list-style: none; background-color: #f5f5f5; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; } .breadcrumb > li { display: inline-block; *display: inline; text-shadow: 0 1px 0 #ffffff; *zoom: 1; } .breadcrumb > li > .divider { padding: 0 5px; color: #ccc; } .breadcrumb > .active { color: #999999; } .pagination { margin: 20px 0; } .pagination ul { display: inline-block; *display: inline; margin-bottom: 0; margin-left: 0; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; *zoom: 1; -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); } .pagination ul > li { display: inline; } .pagination ul > li > a, .pagination ul > li > span { float: left; padding: 4px 12px; line-height: 20px; text-decoration: none; background-color: #ffffff; border: 1px solid #dddddd; border-left-width: 0; } .pagination ul > li > a:hover, .pagination ul > li > a:focus, .pagination ul > .active > a, .pagination ul > .active > span { background-color: #f5f5f5; } .pagination ul > .active > a, .pagination ul > .active > span { color: #999999; cursor: default; } .pagination ul > .disabled > span, .pagination ul > .disabled > a, .pagination ul > .disabled > a:hover, .pagination ul > .disabled > a:focus { color: #999999; cursor: default; background-color: transparent; } .pagination ul > li:first-child > a, .pagination ul > li:first-child > span { border-left-width: 1px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -moz-border-radius-topleft: 4px; } .pagination ul > li:last-child > a, .pagination ul > li:last-child > span { -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; -moz-border-radius-topright: 4px; -moz-border-radius-bottomright: 4px; } .pagination-centered { text-align: center; } .pagination-right { text-align: right; } .pagination-large ul > li > a, .pagination-large ul > li > span { padding: 11px 19px; font-size: 17.5px; } .pagination-large ul > li:first-child > a, .pagination-large ul > li:first-child > span { -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px; -moz-border-radius-bottomleft: 6px; -moz-border-radius-topleft: 6px; } .pagination-large ul > li:last-child > a, .pagination-large ul > li:last-child > span { -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; -moz-border-radius-topright: 6px; -moz-border-radius-bottomright: 6px; } .pagination-mini ul > li:first-child > a, .pagination-small ul > li:first-child > a, .pagination-mini ul > li:first-child > span, .pagination-small ul > li:first-child > span { -webkit-border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; -webkit-border-top-left-radius: 3px; border-top-left-radius: 3px; -moz-border-radius-bottomleft: 3px; -moz-border-radius-topleft: 3px; } .pagination-mini ul > li:last-child > a, .pagination-small ul > li:last-child > a, .pagination-mini ul > li:last-child > span, .pagination-small ul > li:last-child > span { -webkit-border-top-right-radius: 3px; border-top-right-radius: 3px; -webkit-border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; -moz-border-radius-topright: 3px; -moz-border-radius-bottomright: 3px; } .pagination-small ul > li > a, .pagination-small ul > li > span { padding: 2px 10px; font-size: 11.9px; } .pagination-mini ul > li > a, .pagination-mini ul > li > span { padding: 0 6px; font-size: 10.5px; } .pager { margin: 20px 0; text-align: center; list-style: none; *zoom: 1; } .pager:before, .pager:after { display: table; line-height: 0; content: ""; } .pager:after { clear: both; } .pager li { display: inline; } .pager li > a, .pager li > span { display: inline-block; padding: 5px 14px; background-color: #fff; border: 1px solid #ddd; -webkit-border-radius: 15px; -moz-border-radius: 15px; border-radius: 15px; } .pager li > a:hover, .pager li > a:focus { text-decoration: none; background-color: #f5f5f5; } .pager .next > a, .pager .next > span { float: right; } .pager .previous > a, .pager .previous > span { float: left; } .pager .disabled > a, .pager .disabled > a:hover, .pager .disabled > a:focus, .pager .disabled > span { color: #999999; cursor: default; background-color: #fff; } .modal-backdrop { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 1040; background-color: #000000; } .modal-backdrop.fade { opacity: 0; } .modal-backdrop, .modal-backdrop.fade.in { opacity: 0.8; filter: alpha(opacity=80); } .modal { position: fixed; top: 10%; left: 50%; z-index: 1050; width: 560px; margin-left: -280px; background-color: #ffffff; border: 1px solid #999; border: 1px solid rgba(0, 0, 0, 0.3); *border: 1px solid #999; -webkit-border-radius: 6px; -moz-border-radius: 6px; border-radius: 6px; outline: none; -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); -webkit-background-clip: padding-box; -moz-background-clip: padding-box; background-clip: padding-box; } .modal.fade { top: -25%; -webkit-transition: opacity 0.3s linear, top 0.3s ease-out; -moz-transition: opacity 0.3s linear, top 0.3s ease-out; -o-transition: opacity 0.3s linear, top 0.3s ease-out; transition: opacity 0.3s linear, top 0.3s ease-out; } .modal.fade.in { top: 10%; } .modal-header { padding: 9px 15px; border-bottom: 1px solid #eee; } .modal-header .close { margin-top: 2px; } .modal-header h3 { margin: 0; line-height: 30px; } .modal-body { position: relative; max-height: 400px; padding: 15px; overflow-y: auto; } .modal-form { margin-bottom: 0; } .modal-footer { padding: 14px 15px 15px; margin-bottom: 0; text-align: right; background-color: #f5f5f5; border-top: 1px solid #ddd; -webkit-border-radius: 0 0 6px 6px; -moz-border-radius: 0 0 6px 6px; border-radius: 0 0 6px 6px; *zoom: 1; -webkit-box-shadow: inset 0 1px 0 #ffffff; -moz-box-shadow: inset 0 1px 0 #ffffff; box-shadow: inset 0 1px 0 #ffffff; } .modal-footer:before, .modal-footer:after { display: table; line-height: 0; content: ""; } .modal-footer:after { clear: both; } .modal-footer .btn + .btn { margin-bottom: 0; margin-left: 5px; } .modal-footer .btn-group .btn + .btn { margin-left: -1px; } .modal-footer .btn-block + .btn-block { margin-left: 0; } .tooltip { position: absolute; z-index: 1030; display: block; font-size: 11px; line-height: 1.4; opacity: 0; filter: alpha(opacity=0); visibility: visible; } .tooltip.in { opacity: 0.8; filter: alpha(opacity=80); } .tooltip.top { padding: 5px 0; margin-top: -3px; } .tooltip.right { padding: 0 5px; margin-left: 3px; } .tooltip.bottom { padding: 5px 0; margin-top: 3px; } .tooltip.left { padding: 0 5px; margin-left: -3px; } .tooltip-inner { max-width: 200px; padding: 8px; color: #ffffff; text-align: center; text-decoration: none; background-color: #000000; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; } .tooltip-arrow { position: absolute; width: 0; height: 0; border-color: transparent; border-style: solid; } .tooltip.top .tooltip-arrow { bottom: 0; left: 50%; margin-left: -5px; border-top-color: #000000; border-width: 5px 5px 0; } .tooltip.right .tooltip-arrow { top: 50%; left: 0; margin-top: -5px; border-right-color: #000000; border-width: 5px 5px 5px 0; } .tooltip.left .tooltip-arrow { top: 50%; right: 0; margin-top: -5px; border-left-color: #000000; border-width: 5px 0 5px 5px; } .tooltip.bottom .tooltip-arrow { top: 0; left: 50%; margin-left: -5px; border-bottom-color: #000000; border-width: 0 5px 5px; } .popover { position: absolute; top: 0; left: 0; z-index: 1010; display: none; max-width: 276px; padding: 1px; text-align: left; white-space: normal; background-color: #ffffff; border: 1px solid #ccc; border: 1px solid rgba(0, 0, 0, 0.2); -webkit-border-radius: 6px; -moz-border-radius: 6px; border-radius: 6px; -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); -webkit-background-clip: padding-box; -moz-background-clip: padding; background-clip: padding-box; } .popover.top { margin-top: -10px; } .popover.right { margin-left: 10px; } .popover.bottom { margin-top: 10px; } .popover.left { margin-left: -10px; } .popover-title { padding: 8px 14px; margin: 0; font-size: 14px; font-weight: normal; line-height: 18px; background-color: #f7f7f7; border-bottom: 1px solid #ebebeb; -webkit-border-radius: 5px 5px 0 0; -moz-border-radius: 5px 5px 0 0; border-radius: 5px 5px 0 0; } .popover-title:empty { display: none; } .popover-content { padding: 9px 14px; } .popover .arrow, .popover .arrow:after { position: absolute; display: block; width: 0; height: 0; border-color: transparent; border-style: solid; } .popover .arrow { border-width: 11px; } .popover .arrow:after { border-width: 10px; content: ""; } .popover.top .arrow { bottom: -11px; left: 50%; margin-left: -11px; border-top-color: #999; border-top-color: rgba(0, 0, 0, 0.25); border-bottom-width: 0; } .popover.top .arrow:after { bottom: 1px; margin-left: -10px; border-top-color: #ffffff; border-bottom-width: 0; } .popover.right .arrow { top: 50%; left: -11px; margin-top: -11px; border-right-color: #999; border-right-color: rgba(0, 0, 0, 0.25); border-left-width: 0; } .popover.right .arrow:after { bottom: -10px; left: 1px; border-right-color: #ffffff; border-left-width: 0; } .popover.bottom .arrow { top: -11px; left: 50%; margin-left: -11px; border-bottom-color: #999; border-bottom-color: rgba(0, 0, 0, 0.25); border-top-width: 0; } .popover.bottom .arrow:after { top: 1px; margin-left: -10px; border-bottom-color: #ffffff; border-top-width: 0; } .popover.left .arrow { top: 50%; right: -11px; margin-top: -11px; border-left-color: #999; border-left-color: rgba(0, 0, 0, 0.25); border-right-width: 0; } .popover.left .arrow:after { right: 1px; bottom: -10px; border-left-color: #ffffff; border-right-width: 0; } .thumbnails { margin-left: -20px; list-style: none; *zoom: 1; } .thumbnails:before, .thumbnails:after { display: table; line-height: 0; content: ""; } .thumbnails:after { clear: both; } .row-fluid .thumbnails { margin-left: 0; } .thumbnails > li { float: left; margin-bottom: 20px; margin-left: 20px; } .thumbnail { display: block; padding: 4px; line-height: 20px; border: 1px solid #ddd; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); -webkit-transition: all 0.2s ease-in-out; -moz-transition: all 0.2s ease-in-out; -o-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; } a.thumbnail:hover, a.thumbnail:focus { border-color: #0088cc; -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); } .thumbnail > img { display: block; max-width: 100%; margin-right: auto; margin-left: auto; } .thumbnail .caption { padding: 9px; color: #555555; } .media, .media-body { overflow: hidden; *overflow: visible; zoom: 1; } .media, .media .media { margin-top: 15px; } .media:first-child { margin-top: 0; } .media-object { display: block; } .media-heading { margin: 0 0 5px; } .media > .pull-left { margin-right: 10px; } .media > .pull-right { margin-left: 10px; } .media-list { margin-left: 0; list-style: none; } .label, .badge { display: inline-block; padding: 2px 4px; font-size: 11.844px; font-weight: bold; line-height: 14px; color: #ffffff; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); white-space: nowrap; vertical-align: baseline; background-color: #999999; } .label { -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; } .badge { padding-right: 9px; padding-left: 9px; -webkit-border-radius: 9px; -moz-border-radius: 9px; border-radius: 9px; } .label:empty, .badge:empty { display: none; } a.label:hover, a.label:focus, a.badge:hover, a.badge:focus { color: #ffffff; text-decoration: none; cursor: pointer; } .label-important, .badge-important { background-color: #b94a48; } .label-important[href], .badge-important[href] { background-color: #953b39; } .label-warning, .badge-warning { background-color: #f89406; } .label-warning[href], .badge-warning[href] { background-color: #c67605; } .label-success, .badge-success { background-color: #468847; } .label-success[href], .badge-success[href] { background-color: #356635; } .label-info, .badge-info { background-color: #3a87ad; } .label-info[href], .badge-info[href] { background-color: #2d6987; } .label-inverse, .badge-inverse { background-color: #333333; } .label-inverse[href], .badge-inverse[href] { background-color: #1a1a1a; } .btn .label, .btn .badge { position: relative; top: -1px; } .btn-mini .label, .btn-mini .badge { top: 0; } @-webkit-keyframes progress-bar-stripes { from { background-position: 40px 0; } to { background-position: 0 0; } } @-moz-keyframes progress-bar-stripes { from { background-position: 40px 0; } to { background-position: 0 0; } } @-ms-keyframes progress-bar-stripes { from { background-position: 40px 0; } to { background-position: 0 0; } } @-o-keyframes progress-bar-stripes { from { background-position: 0 0; } to { background-position: 40px 0; } } @keyframes progress-bar-stripes { from { background-position: 40px 0; } to { background-position: 0 0; } } .progress { height: 20px; margin-bottom: 20px; overflow: hidden; background-color: #f7f7f7; background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9); background-repeat: repeat-x; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0); -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); } .progress .bar { float: left; width: 0; height: 100%; font-size: 12px; color: #ffffff; text-align: center; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); background-color: #0e90d2; background-image: -moz-linear-gradient(top, #149bdf, #0480be); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); background-image: -webkit-linear-gradient(top, #149bdf, #0480be); background-image: -o-linear-gradient(top, #149bdf, #0480be); background-image: linear-gradient(to bottom, #149bdf, #0480be); background-repeat: repeat-x; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0); -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; -webkit-transition: width 0.6s ease; -moz-transition: width 0.6s ease; -o-transition: width 0.6s ease; transition: width 0.6s ease; } .progress .bar + .bar { -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); } .progress-striped .bar { background-color: #149bdf; background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -webkit-background-size: 40px 40px; -moz-background-size: 40px 40px; -o-background-size: 40px 40px; background-size: 40px 40px; } .progress.active .bar { -webkit-animation: progress-bar-stripes 2s linear infinite; -moz-animation: progress-bar-stripes 2s linear infinite; -ms-animation: progress-bar-stripes 2s linear infinite; -o-animation: progress-bar-stripes 2s linear infinite; animation: progress-bar-stripes 2s linear infinite; } .progress-danger .bar, .progress .bar-danger { background-color: #dd514c; background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); background-repeat: repeat-x; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0); } .progress-danger.progress-striped .bar, .progress-striped .bar-danger { background-color: #ee5f5b; background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } .progress-success .bar, .progress .bar-success { background-color: #5eb95e; background-image: -moz-linear-gradient(top, #62c462, #57a957); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); background-image: -webkit-linear-gradient(top, #62c462, #57a957); background-image: -o-linear-gradient(top, #62c462, #57a957); background-image: linear-gradient(to bottom, #62c462, #57a957); background-repeat: repeat-x; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0); } .progress-success.progress-striped .bar, .progress-striped .bar-success { background-color: #62c462; background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } .progress-info .bar, .progress .bar-info { background-color: #4bb1cf; background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); background-image: -o-linear-gradient(top, #5bc0de, #339bb9); background-image: linear-gradient(to bottom, #5bc0de, #339bb9); background-repeat: repeat-x; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0); } .progress-info.progress-striped .bar, .progress-striped .bar-info { background-color: #5bc0de; background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } .progress-warning .bar, .progress .bar-warning { background-color: #faa732; background-image: -moz-linear-gradient(top, #fbb450, #f89406); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); background-image: -webkit-linear-gradient(top, #fbb450, #f89406); background-image: -o-linear-gradient(top, #fbb450, #f89406); background-image: linear-gradient(to bottom, #fbb450, #f89406); background-repeat: repeat-x; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); } .progress-warning.progress-striped .bar, .progress-striped .bar-warning { background-color: #fbb450; background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } .accordion { margin-bottom: 20px; } .accordion-group { margin-bottom: 2px; border: 1px solid #e5e5e5; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; } .accordion-heading { border-bottom: 0; } .accordion-heading .accordion-toggle { display: block; padding: 8px 15px; } .accordion-toggle { cursor: pointer; } .accordion-inner { padding: 9px 15px; border-top: 1px solid #e5e5e5; } .carousel { position: relative; margin-bottom: 20px; line-height: 1; } .carousel-inner { position: relative; width: 100%; overflow: hidden; } .carousel-inner > .item { position: relative; display: none; -webkit-transition: 0.6s ease-in-out left; -moz-transition: 0.6s ease-in-out left; -o-transition: 0.6s ease-in-out left; transition: 0.6s ease-in-out left; } .carousel-inner > .item > img, .carousel-inner > .item > a > img { display: block; line-height: 1; } .carousel-inner > .active, .carousel-inner > .next, .carousel-inner > .prev { display: block; } .carousel-inner > .active { left: 0; } .carousel-inner > .next, .carousel-inner > .prev { position: absolute; top: 0; width: 100%; } .carousel-inner > .next { left: 100%; } .carousel-inner > .prev { left: -100%; } .carousel-inner > .next.left, .carousel-inner > .prev.right { left: 0; } .carousel-inner > .active.left { left: -100%; } .carousel-inner > .active.right { left: 100%; } .carousel-control { position: absolute; top: 40%; left: 15px; width: 40px; height: 40px; margin-top: -20px; font-size: 60px; font-weight: 100; line-height: 30px; color: #ffffff; text-align: center; background: #222222; border: 3px solid #ffffff; -webkit-border-radius: 23px; -moz-border-radius: 23px; border-radius: 23px; opacity: 0.5; filter: alpha(opacity=50); } .carousel-control.right { right: 15px; left: auto; } .carousel-control:hover, .carousel-control:focus { color: #ffffff; text-decoration: none; opacity: 0.9; filter: alpha(opacity=90); } .carousel-indicators { position: absolute; top: 15px; right: 15px; z-index: 5; margin: 0; list-style: none; } .carousel-indicators li { display: block; float: left; width: 10px; height: 10px; margin-left: 5px; text-indent: -999px; background-color: #ccc; background-color: rgba(255, 255, 255, 0.25); border-radius: 5px; } .carousel-indicators .active { background-color: #fff; } .carousel-caption { position: absolute; right: 0; bottom: 0; left: 0; padding: 15px; background: #333333; background: rgba(0, 0, 0, 0.75); } .carousel-caption h4, .carousel-caption p { line-height: 20px; color: #ffffff; } .carousel-caption h4 { margin: 0 0 5px; } .carousel-caption p { margin-bottom: 0; } .hero-unit { padding: 60px; margin-bottom: 30px; font-size: 18px; font-weight: 200; line-height: 30px; color: inherit; background-color: #eeeeee; -webkit-border-radius: 6px; -moz-border-radius: 6px; border-radius: 6px; } .hero-unit h1 { margin-bottom: 0; font-size: 60px; line-height: 1; letter-spacing: -1px; color: inherit; } .hero-unit li { line-height: 30px; } .pull-right { float: right; } .pull-left { float: left; } .hide { display: none; } .show { display: block; } .invisible { visibility: hidden; } .affix { position: fixed; } psychopy-1.82.02.dfsg/iohub_docs/_themes/bootstrap/static/bootstrap-2.3.1/css/bootstrap.min.css000066400000000000000000003170111257562125200323210ustar00rootroot00000000000000/*! * Bootstrap v2.3.1 * * Copyright 2012 Twitter, Inc * Licensed under the Apache License v2.0 * http://www.apache.org/licenses/LICENSE-2.0 * * Designed and built with all the love in the world @twitter by @mdo and @fat. */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover,a:focus{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff} .nav>.disabled>a{color:#999}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent} .navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible} .navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)} .navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover,.navbar-link:focus{color:#333} .navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2} .navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0} .navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)} .navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0} .navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff} .navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent} .navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)} .navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)} .navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)} .navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed} psychopy-1.82.02.dfsg/iohub_docs/_themes/bootstrap/static/bootstrap-2.3.1/img/000077500000000000000000000000001257562125200267715ustar00rootroot00000000000000glyphicons-halflings-white.png000066400000000000000000000211111257562125200346560ustar00rootroot00000000000000psychopy-1.82.02.dfsg/iohub_docs/_themes/bootstrap/static/bootstrap-2.3.1/imgPNG  IHDRӳ{PLTEmmmⰰᒒttt󻻻bbbeeeggg𶶶xxx󛛛Ƽ몪֢UUU鿿rOtRNS#_ /oS?C kDOS_6>4!~a @1_'onҋM3BQjp&%!l"Xqr; A[<`am}43/0IPCM!6(*gK&YQGDP,`{VP-x)h7e1]W$1bzSܕcO]U;Zi'y"؆K 64Y*.v@c.};tN%DI !ZЏ5LH26 ɯ" -bE,,)ʏ B>mn6pmRO wm@V#?'CȑZ#qb|$:)/E%nRqChn%i̓}lm ?idd",`H"r.z~(bQU&)5X#EMR<*p[[%.Ọk7lIoJF lV!̡ăuH`&,zRk$|$lXbjߪdU?Σ$HW$U'HE3*խU\}( zhVk}guRk$%|T|ck獳"D_W+.Q)@ƽHbslTDR2Xm#a 3lYzj㒚#! 4J8(cvt]aT D ΅Q?^-_^$:\V $N|=(vZ'q6Z׆B5V!y3K㱿bv4xR]al!IoP@tVyL٪mlڿIUb|[*lke'*WddDӝ}\W_WߝrN?vޫ۲X%0uoui*JVƦb%}i5IYlNE-wςf_W3mI-mQ)S kTC7m<"܌bT|'$ҘR&>O p6tSN\ׯLm\r@3uT b7t.5.q3r0=8TiJ\6uF R32^'ŪxI F8O{%8kJMSȴdBEdWCYO:/ON/I_=xFE! =i:o~ y?''[͓[͓[͓[͓[ͭ.U>$PƦc%]\c:| ,eSZ,oXrX!R@Zv 0>?* <|N60;{ad2v+D^t[q!۞V}fۨϏYeॗ)Vyl|" fUq@Ǽ4Y-Y-!6aB:o%JIUQ|UKO`=\ :0x Pau@!KPdxhw1>$j΍vZdxSUA&[URd7øzk/rU^w:I.VǮc>q.!zSr&2)Wg R -iQ 8Pa\ОU%iݡU_=p Lu(N?0?Æ:]άtB%U|NsorNf ,P !v" Y6hL_@@bscqgv4||0lϟ$S9bʱj#~?o}}7sAPm:IV=n !{{hEࢪ8suoLT$;VscqD3 ༂3.DBB4&V' T `D6Ϸqyj8V*X%@s\jrN$|=5Ά 'mUiKi%CI:ssaƅ`*`=l)>u՘MeuSI_OL_}o&jzp{lu:O)s%Q@$<]f xO%PCbhr2PKpf5Në3^o]eJiB464^tuٲU֌:G4'22YpuG'/Py4?.SBP_>I 1t3ΓBɭɭɭɭVVVVVs]!67(g y@ 4>Q VF}^Xׇڼje26 L%YGh lC})< !EEPZWZV+@†R 5{@ouɐ4&H6ey V݀VťcqZޒrJyByFzFN$Hb*+jՏqэ ګkݿUXle1d0d^-B%} {Y%r*j5Ak5u",:~ҸY~ hSA~6 fulՇf{ȵQtATHZkƭ/_Sn u']b]|m`BāJ,O$du]Zs FL:aǙT4o~by?wpj滥A(x]†f~an֧/^dڲcՇ,!1i&xi_VK@ip̓9Vi%a; L?0J*Ū5U'x^6V[^ {eU|:0=0d۫o*Jq%[YN.sQLud[29I:WnmXlڃ6!lNlVէKUjV\J%UߊBLcKfb>a=b~R]aG%[js@/9MطݘU>yɲX@} Ftg^vO\Ӹwvpz3K5i!$P>ā'VƛL2r@UMKZ6tw맟¦bm1h||]}~0MjA(JJP68C&yr׉e}j_cJ?I0k>šW |Bޝ."TEXd 8!cw*E(J)![W"j_ТeX_XB;oO0~?:PC (.[!Wq%*leY)E<^KZT60.#A\5;Rmtkd/8)5~^0 #Ckgey)ͶԺ6ĥ<(?&uAVm0^h.txR*a':,H|ō l5z;8+e#b'#|}2w(|KcJ l6 w^Տoi3H R ̔9,YgPְ:N [5SR![)]i}`mN4Хv`|;f(FltL8÷Z#AO%Y)NU5YedJE3dZذݣHT1 ;8MjnʏӤqp 1h^<<>yt{?|'j)}YUU{@V/J1F+7䀉[OWO[ yUY!?BD%DWj>-Ai6xz)U R7 d@g\so)a4zf[W+> P> |qLG8vȣlj2Zt+VA6gT *ʆUz(m)CD `He/.:zN9pgo &NC׃އ>Wհ_Hj)Xe6F7pm-`'c.AZ=^e8F;{Rtn(z!S7o Iew3]bܗ85|iϠRJkʱZRO+8U&:]ZieR(JMޗ7Z@5a^\GzsρU*rMezT^:ɬͦX=>$ bi>U&XQoybbGk8 Ҙn).Սo ^MmdZi$soo*{4eLbLٳ""mx:`:mk[geTެ)'0*TB{!I ''''[͓[͓[͓[͓[]Zj Q.e '/yvQ71(Z&X?(_Z){tڀmZWϏ)-C jqn,̋"IvUL!h꛿skAcrN佚фVE40yX~4zʸV㳰%,)fqtpu~  *^0:ܲ33JO(ZB?K^ v]unlWi0p6[착C_5X#[wX3b廫R{NKAe Se|wxso>P\儔ԕ6;nVmfI$V͓J-J%֌0UwYЎSnum藮xz˗VƫIvnW_qLZ"_Xz 8]Ap?C543zw({7e*Ȳ`۰!AQ:KUnz]1yVGaCm0PY ٚUx6TT&hV9V ӬzÑ 1[XzZ9erqJND/gX*9oN6D` {I%Mz9—TQ7f\"j_3~xB'ܷY]*KЌ%"5"qxq~ƕ=jS>jV&~]2xzF1X_yD<#NRB}K/iy !V^˿eJ}/FkA7 S+.(ecJ:zWZ몖wQ~ä́p6,e5,+,tv%O^OO}ן -O7>ekC6wa_C |9*WA)UJg8=:mjUvqysܒLglC6+[FSWg9wV31A ND<$5e(s[ ۨbaF.]KIENDB`glyphicons-halflings.png000066400000000000000000000307771257562125200335620ustar00rootroot00000000000000psychopy-1.82.02.dfsg/iohub_docs/_themes/bootstrap/static/bootstrap-2.3.1/imgPNG  IHDRtEXtSoftwareAdobe ImageReadyqe<1IDATx}ml\EW^ɺD$|nw';vю8m0kQSnSV;1KGsԩ>UoTU1cƖYuּca&#C,pؚ>kں ULW -sn3Vq~NocI~L{- H8%_M£wB6EW,ĢpY2+(Y@&A/3kXhߍ-aA<>P'\J;(}#Qz:4%m?nfntK*l9J+DIYu1YZ^(]YYEf@ОlXz]Ut u &5-PW}@t|#LY=s܂,w#+R+?Ƌax X0"ea)tG*ԡwVwV^rf%xB(qּ4>WG#lWU<ЁXJVѶlR$kDVrI7:X%X1NEzw;y9z9O%~~uɗ*=Ixcy}Y(ou ±N$^j e\iX񝜬];Y-rѲ&>!zlYaVHVN԰9=]=mRMdOUC JUiT}rWW'ڹu)ʢF"YU#P׾&ܑЅROwyzm$Os? +^FTIEq%&~ >M}]ԖwA? [Nteexn(措BdMTpʥnqqS?bWXmW6x*{V_!VjΧsVL^j XkQjU6sk̩n~[qǸ-` O:G7l"ksRe2vQ=QƼJUX`gQy~ ďKȰE]#P:td\T/u;س:Jc-%'e q ?j"/yh48Zi1|JUu>_N;hxwNU JQU7\j̮bT:B?6oJ1Ί%I UY-Ii4{=rǤ7@)HKJ+f4X8Cd?'j1 N< 39EWo VTGzg# %D0#ܠ3[tiآ( U,]125|Ṋfw7w u+Š]Db]K xbW ՛7|ВX㕛{UcGXk¬|(h)IUa)lp 3luPU]D)/7~4Wt5J}V X0z VM;>Gԙ^|gF:jaZ^)74C#jwr,еSlGu;1vm><)}ZQՖ&mZ:1UMB~ a:/᜗:KWWOҠ&Y2f7cƌ3f̘1cƌ3f̘1cƌ3f̘1cƌ3f̘g*3fF5LbN2#Tf=C`!ZGUe꣇e2V<1mkS4iϗ*.{N8Xaj~ڀnAx,%fE:|YDVj ¢lg6(:k~MM5?4 ]WO>诋WZiG|QGJeK[YcյpmjE\f/ǎ8&OQ3 .3tt2'-V8pXSrY#J!Q ",ub@FK:u^iy[]<.Cw+W\)b kr-.MtڀMqʄ۰#$^X$"V`T4m~w%Pp1|+&UxY8*r8:k7QЃҀT$Ўƙ S>~Sjs:5q.w&_Z.X=:ވbw` _kd{'0:ds#qi!224nq\9-KUTsSUuVo@;Uz>^=Np>oPO @I@'Gj5o*U>^*ew>ͫʧ᫠Q5 ̈́<$#5Jٻj6e)_ d]2B:^(*:8JYS鬆Kݗ ]U4_rj{5ׇaǑ/yV?GtGb@xPU7O3|鍪 IQ5QGw *(;wf0*PUU<YƔvbt5{2!,}Ҧ:)j2OkΪ' ֊0I.q\(%ojQĖՇa<ԍexAgt'[d;׸`rcdjPFU$UeJI6T&Z}z(z vfuz {}ۿߝݞlxUZ謊.Y岟b%nw@ǩS9|źs%>_o#9\EU~/ځt(r[QZuOo;!MrU]0TcpDő?.cPuF;L_Sb}R/J_+h2$ai UǩS9>Є}76rzu~国4oĨ 1J ^̘~iC޸55G׹]gwsn zTuO=?/zƲc>Οb#7ֻcgkޛTUj*-T=]uu}>ݨNЭ [ ]:%/_ Sz]6D.mD7Uƌ3f̘1cƌ3f̘1cƌ3f̘1cƌ3f̘1cƌ3f̘1c>J4hPP+A;'G_XKmL5I.},wFFum$S-E-;Õ C3I-`BRx1ғTJݕ;hΊ8 DYJo;Yš5MKɰM;%Pd9KhnD[zgVh,'C p!^M(WK2X>UQ%^p8 ˽^#Ζ؄+.@gCz%ɔ-Pr KX n>=ՔѨeSvRLz5%9UQS \WիK'hp)ô Jrh M0F (f_R5///G+x 1"eS 5 :Tf=+7Qɧ\TEs༬rYs8&k#pSՊ5MTbD܊[Ng5Q\s5PB@[8ɨV1&4Wsy[Ǿ wU2V77jމd^~YfC_h;a.&M i UWpzs`>/"'OI۲y:BzdTq£=йb:"m/-/PWDQǴ͐57m`H%AV!Hԛ׿@"Qzދ|ߒT-*OU^Ҧ6!Cwk|h&Hd5LEYy'ƣ7%*{=)Z%ٝP *G]/8Lw$?8M)\į/#7Ufd7'6\h1 vIfEIr=1w\WKVZHKgZ͡$mx % `j}TuTQJZ*H>*QxkLFTyU-)ôbiA|q`F'+ 4^Qy xH)#t^?@]^`ARSqjgB:rK۷l<2-4YKhgQLxVwP~M Φ0l 3ƅaŊITȀhwJmxIMչ|U7xˆS~2ߕ?kW1kC3];YnSґAeXYz8,'x< k7Kx]$x$vgT#w;o@ z_Vmn|HֵhZg-^TAn- )@4[*9xKƋj>!,Vt:eqn8%ohS(2\Q^aigF3vTUDVlQꅧWc%Ueq4ҝº/U $_Q!>t| ,țG<tC[xTXmf|Q%d#jUՆ|; H[bά#,Ws7NT1~m&ǻ{' \㟾 bBKJo8%!$Qj:/RX)$Sy޳ 䍧RDUg_D軦J\jN֖SU;~?Ohssdƣ}6(T <_4b5 ^N N%8QejF7toMyө`)g[/|?өJuGL坕/=CTܠhdifHcǞG4,`D՞{'xG_p/5@m +$jVH3a"*ũ,,HJҵȸT^Qyo&IÉJUVwWLeM~3tA6rwɤ6տ \0HL%LX5c@HHÃZ|NV+7WM{cig*ȸU7iÉбzd * ?gtX8̝OX:]2ɍ]p^++>AVڛE{ DB.&/56ArxY#ܕy)cKQtȪ~! ;C}ʃtf{6$NVsj wupZ)zŁ|-wg+nMVj/d+U~ͯi:_ix whqr>駃-x뼬)ݷyR=! ì:J/lIkV@n74758Z KJ(Uxz1w)^\ԣzȪ󲦨c2f؍v+6f̘1cƌ3f̘1cƌ3f̘1cƌ3f̘1cƌ3f̘2N oC\F1ִ UZJV̚\4Mgq1z{&YT ,HX~D u\g}x>+YdN̮ol ZX+F[/j+S~2/jV8Jr^ԉ]J}J*ۏ<2԰&JݣjOM@ѯ#0O[SXB^ uze\]dd./xXE f'vO_H${%;kt7ށmő|d{aފ^ǛڎE5ʋBr]W=_SAf(0 oU5q ,_\luz˪uz㻲o=Yi~| 0+=VJت /ލzM\zCL[U:|k*^8"\Wٚ\ .XTjX5 SkFu\1 q'mģ/QUؕ*AɽDNZ׮?_[# ˍ4:^j|5LG ||øBW{6[uQF.1$qF9IHg)\5>C#uXZ$#*<ߐsRv1Tj>Jm>*#( [Fhsש5*jQʼ&&&P犛L[Q1* ;X}Iΰ[Q?qQZ Hݙ֞VEsBCZ9JTK tup˷ /O,.kUdsOHMg4=-)+ؿh2Nw/r|WQn=GIU;'j,vfdzpe$V GTYsBZO1pj:r"nTUSCgr veAۘ˜FC+Ֆ#[JTe'v9-3 Dmӻuuz?0 o hxuY &_54=f07kלU0]D:jdw/+PGUVS<\2uatc^zYRąmC+7#,|:iNw*|^sm|X>Ъ^1\#͹ &%{,2U>ݎ.c05z# ogNO+Q쓭 ,˗-%K\[S_`y+b_94"U+Ύap}I[M,B.NtwHj漬E L߀ 0DX(kڵ NoU{gquz RwkէRx'uZ[3'zyyד%sƕ3jYF\s=m1&VAɼ?k\+]6yモ1gtOIW7al|1 >$]e 7؝WIe?ަL#>| ҭ] pM5MUdI61ԠeǼYGhOn3խR:^k_'Yuuq#p# J2xl>OjcY馃!ڡ+sZ/ D}2AY mpc#<'xSKx`*W[,e|6BH)㶤kjpDU(2qzx9*tqa/, Z[ 0>Ө֜xN)fă@qըFU՝w(a;ˋ>|Tc|w2eiT]*!_\WG{ ]^݅Z5t|6oYHaO@= my^akE.uz]#٥hWv(:,6A߉JFa\ wWex>vetuMYA>).,;ɦCbwjE)W Fӫ@s4e6^Q9oI}4x<.B?B߫#$Hx.x9,a!RTpgd5xBe.L7@* AsduttSVUaRU|I xG߃$T񭟬#_IFMŒ_X@foQIDII?|%$r {ENĸwޕqq?Dؽ}}o/`ӣCTi /ywO rD 9YUD] Ή@s]+'UaL} hrU'7:sU|k)H@hNq#ϵ8y˭Xű#w 1!흉R'7fuד0p!WÖW+Nmp\-ioD$g٠˅%%ÐmV]̱rw*Z}y+L Nouj}xt)lStuqxmNyKUOnDbhf}k>6ufT%{ <񐮸mjFcmUïc;w8@dGFUA& =nq5]iP}z:k⼶-ʓ Κl*'UzaxWFdZzTNRs+# wzgi:MBqtM l#^'Gߣ*^t{=rERnQ$adJl02%Tڊ^<~g?Of*U^?:N+o[PUs|QR']V-L)H K䐞 mYn\4}YVD hR;g-'3aסM Dh}1cƌ3f̘1cƌ3f̘1cƌ3f̘1cƌ3f̘1cƌk*Ț4`L$b U4\dt'>HȄ|.+Y+/Gy2OCWv3v,'kia W O6߯E=Hv $LlxI躍/}^]x\3 ɮ5 QT&G9Ay^i}O[5ޱwq4,s JJI.myE^%'VB~dׯ}*j* ~uTk\fKЬ*Y]_v'I˨鑩6Xo'j&uɧngT]oڌ9\*wVHӖ| >:5EF'J ɝ`!A e~_;5ױϊ镋m_&OVi<}"靍hW9X6KPƣ G"ƭ?/O^hCHLciPj)}QQզ#tMg9 xGw~d;_J+RỲ<;e 5/Qs/5N[!a+NPb+ѺI}-t_qU=MKʞY5no*vvbʊ{]| ~ Z{-끇^FVviϵ3Ya=6ndS;-ʹ^;uꪪ^ |=_w+"i&4l#wir|W3U$"J~O@]~tRJVMHw:̦@?>O?vdrtS*$&~1>Z}^nL(]f*&*QaIꝄ|3*O?r?*4Gyz[k/tkQϖWCCKk/x5|S*`ϹγQEwy o KYqTb$-/PtsZNKQ*>ݢU@Џ"JQ;¹& Lx;+T /+O赟> (T?ķD^N*'p$IW֐W~ =J|_UTe7ְP`;CYjk=sU[mߙ-;};2|wo1p0~>0m @Jrǟcٷ4͜?q\UUIV?2L/+Шꄾ< ܇^T ?tj\JrҀB*=km X,n}aՒIadp׷ll{\6v8RꅟҲf1F|Տ;e=\D ,D:ψrxQT◎*|{nS 9~=}ӕG~%j:Dj<ឫ:jO% $T8!jvm|'OЗ¹➱z\vsIv`Ȕʨj-^$-^G Q{m`T#c֞㸝|n.ߪN$O JUVʼt,jg-mסּNV z:(Ι*|1Ux=Yk*t MNNDUhK ؞X(刄Rv!#B_cxRŹoE5Dg>?fXQQ˔|@"աMveC>mO$H#]Y I=)_`k* :a>!X!W^wҒl'<;vwgIt_?Jh`#E:fdx=6Wu<Ӌd2di˂c#h¬c4?<HFYoVpN;ݷJ\ >` (t3{>⦊;;qFx4YcS$w.da*k|Q,+xs^K߫P^nO֮L5mIwl?-.ʲJ8 F B.-:2Ȕ!/A#b_m%I($|PZ[1G{^#o>3mw?'cx[^:Wk/`'=~֥W(gQbfv7UzM3+؍K:4|GCtA+Kʨ{@Ɩ [05E|yn4MIENDB`psychopy-1.82.02.dfsg/iohub_docs/_themes/bootstrap/static/bootstrap-2.3.1/js/000077500000000000000000000000001257562125200266315ustar00rootroot00000000000000psychopy-1.82.02.dfsg/iohub_docs/_themes/bootstrap/static/bootstrap-2.3.1/js/bootstrap.js000066400000000000000000001707241257562125200312170ustar00rootroot00000000000000/* =================================================== * bootstrap-transition.js v2.3.1 * http://twitter.github.com/bootstrap/javascript.html#transitions * =================================================== * Copyright 2012 Twitter, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ========================================================== */ !function ($) { "use strict"; // jshint ;_; /* CSS TRANSITION SUPPORT (http://www.modernizr.com/) * ======================================================= */ $(function () { $.support.transition = (function () { var transitionEnd = (function () { var el = document.createElement('bootstrap') , transEndEventNames = { 'WebkitTransition' : 'webkitTransitionEnd' , 'MozTransition' : 'transitionend' , 'OTransition' : 'oTransitionEnd otransitionend' , 'transition' : 'transitionend' } , name for (name in transEndEventNames){ if (el.style[name] !== undefined) { return transEndEventNames[name] } } }()) return transitionEnd && { end: transitionEnd } })() }) }($jqTheme || window.jQuery);/* ========================================================== * bootstrap-alert.js v2.3.1 * http://twitter.github.com/bootstrap/javascript.html#alerts * ========================================================== * Copyright 2012 Twitter, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ========================================================== */ !function ($) { "use strict"; // jshint ;_; /* ALERT CLASS DEFINITION * ====================== */ var dismiss = '[data-dismiss="alert"]' , Alert = function (el) { $(el).on('click', dismiss, this.close) } Alert.prototype.close = function (e) { var $this = $(this) , selector = $this.attr('data-target') , $parent if (!selector) { selector = $this.attr('href') selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 } $parent = $(selector) e && e.preventDefault() $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent()) $parent.trigger(e = $.Event('close')) if (e.isDefaultPrevented()) return $parent.removeClass('in') function removeElement() { $parent .trigger('closed') .remove() } $.support.transition && $parent.hasClass('fade') ? $parent.on($.support.transition.end, removeElement) : removeElement() } /* ALERT PLUGIN DEFINITION * ======================= */ var old = $.fn.alert $.fn.alert = function (option) { return this.each(function () { var $this = $(this) , data = $this.data('alert') if (!data) $this.data('alert', (data = new Alert(this))) if (typeof option == 'string') data[option].call($this) }) } $.fn.alert.Constructor = Alert /* ALERT NO CONFLICT * ================= */ $.fn.alert.noConflict = function () { $.fn.alert = old return this } /* ALERT DATA-API * ============== */ $(document).on('click.alert.data-api', dismiss, Alert.prototype.close) }($jqTheme || window.jQuery);/* ============================================================ * bootstrap-button.js v2.3.1 * http://twitter.github.com/bootstrap/javascript.html#buttons * ============================================================ * Copyright 2012 Twitter, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ============================================================ */ !function ($) { "use strict"; // jshint ;_; /* BUTTON PUBLIC CLASS DEFINITION * ============================== */ var Button = function (element, options) { this.$element = $(element) this.options = $.extend({}, $.fn.button.defaults, options) } Button.prototype.setState = function (state) { var d = 'disabled' , $el = this.$element , data = $el.data() , val = $el.is('input') ? 'val' : 'html' state = state + 'Text' data.resetText || $el.data('resetText', $el[val]()) $el[val](data[state] || this.options[state]) // push to event loop to allow forms to submit setTimeout(function () { state == 'loadingText' ? $el.addClass(d).attr(d, d) : $el.removeClass(d).removeAttr(d) }, 0) } Button.prototype.toggle = function () { var $parent = this.$element.closest('[data-toggle="buttons-radio"]') $parent && $parent .find('.active') .removeClass('active') this.$element.toggleClass('active') } /* BUTTON PLUGIN DEFINITION * ======================== */ var old = $.fn.button $.fn.button = function (option) { return this.each(function () { var $this = $(this) , data = $this.data('button') , options = typeof option == 'object' && option if (!data) $this.data('button', (data = new Button(this, options))) if (option == 'toggle') data.toggle() else if (option) data.setState(option) }) } $.fn.button.defaults = { loadingText: 'loading...' } $.fn.button.Constructor = Button /* BUTTON NO CONFLICT * ================== */ $.fn.button.noConflict = function () { $.fn.button = old return this } /* BUTTON DATA-API * =============== */ $(document).on('click.button.data-api', '[data-toggle^=button]', function (e) { var $btn = $(e.target) if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') $btn.button('toggle') }) }($jqTheme || window.jQuery);/* ========================================================== * bootstrap-carousel.js v2.3.1 * http://twitter.github.com/bootstrap/javascript.html#carousel * ========================================================== * Copyright 2012 Twitter, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ========================================================== */ !function ($) { "use strict"; // jshint ;_; /* CAROUSEL CLASS DEFINITION * ========================= */ var Carousel = function (element, options) { this.$element = $(element) this.$indicators = this.$element.find('.carousel-indicators') this.options = options this.options.pause == 'hover' && this.$element .on('mouseenter', $.proxy(this.pause, this)) .on('mouseleave', $.proxy(this.cycle, this)) } Carousel.prototype = { cycle: function (e) { if (!e) this.paused = false if (this.interval) clearInterval(this.interval); this.options.interval && !this.paused && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) return this } , getActiveIndex: function () { this.$active = this.$element.find('.item.active') this.$items = this.$active.parent().children() return this.$items.index(this.$active) } , to: function (pos) { var activeIndex = this.getActiveIndex() , that = this if (pos > (this.$items.length - 1) || pos < 0) return if (this.sliding) { return this.$element.one('slid', function () { that.to(pos) }) } if (activeIndex == pos) { return this.pause().cycle() } return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos])) } , pause: function (e) { if (!e) this.paused = true if (this.$element.find('.next, .prev').length && $.support.transition.end) { this.$element.trigger($.support.transition.end) this.cycle(true) } clearInterval(this.interval) this.interval = null return this } , next: function () { if (this.sliding) return return this.slide('next') } , prev: function () { if (this.sliding) return return this.slide('prev') } , slide: function (type, next) { var $active = this.$element.find('.item.active') , $next = next || $active[type]() , isCycling = this.interval , direction = type == 'next' ? 'left' : 'right' , fallback = type == 'next' ? 'first' : 'last' , that = this , e this.sliding = true isCycling && this.pause() $next = $next.length ? $next : this.$element.find('.item')[fallback]() e = $.Event('slide', { relatedTarget: $next[0] , direction: direction }) if ($next.hasClass('active')) return if (this.$indicators.length) { this.$indicators.find('.active').removeClass('active') this.$element.one('slid', function () { var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()]) $nextIndicator && $nextIndicator.addClass('active') }) } if ($.support.transition && this.$element.hasClass('slide')) { this.$element.trigger(e) if (e.isDefaultPrevented()) return $next.addClass(type) $next[0].offsetWidth // force reflow $active.addClass(direction) $next.addClass(direction) this.$element.one($.support.transition.end, function () { $next.removeClass([type, direction].join(' ')).addClass('active') $active.removeClass(['active', direction].join(' ')) that.sliding = false setTimeout(function () { that.$element.trigger('slid') }, 0) }) } else { this.$element.trigger(e) if (e.isDefaultPrevented()) return $active.removeClass('active') $next.addClass('active') this.sliding = false this.$element.trigger('slid') } isCycling && this.cycle() return this } } /* CAROUSEL PLUGIN DEFINITION * ========================== */ var old = $.fn.carousel $.fn.carousel = function (option) { return this.each(function () { var $this = $(this) , data = $this.data('carousel') , options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option) , action = typeof option == 'string' ? option : options.slide if (!data) $this.data('carousel', (data = new Carousel(this, options))) if (typeof option == 'number') data.to(option) else if (action) data[action]() else if (options.interval) data.pause().cycle() }) } $.fn.carousel.defaults = { interval: 5000 , pause: 'hover' } $.fn.carousel.Constructor = Carousel /* CAROUSEL NO CONFLICT * ==================== */ $.fn.carousel.noConflict = function () { $.fn.carousel = old return this } /* CAROUSEL DATA-API * ================= */ $(document).on('click.carousel.data-api', '[data-slide], [data-slide-to]', function (e) { var $this = $(this), href , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 , options = $.extend({}, $target.data(), $this.data()) , slideIndex $target.carousel(options) if (slideIndex = $this.attr('data-slide-to')) { $target.data('carousel').pause().to(slideIndex).cycle() } e.preventDefault() }) }($jqTheme || window.jQuery);/* ============================================================= * bootstrap-collapse.js v2.3.1 * http://twitter.github.com/bootstrap/javascript.html#collapse * ============================================================= * Copyright 2012 Twitter, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ============================================================ */ !function ($) { "use strict"; // jshint ;_; /* COLLAPSE PUBLIC CLASS DEFINITION * ================================ */ var Collapse = function (element, options) { this.$element = $(element) this.options = $.extend({}, $.fn.collapse.defaults, options) if (this.options.parent) { this.$parent = $(this.options.parent) } this.options.toggle && this.toggle() } Collapse.prototype = { constructor: Collapse , dimension: function () { var hasWidth = this.$element.hasClass('width') return hasWidth ? 'width' : 'height' } , show: function () { var dimension , scroll , actives , hasData if (this.transitioning || this.$element.hasClass('in')) return dimension = this.dimension() scroll = $.camelCase(['scroll', dimension].join('-')) actives = this.$parent && this.$parent.find('> .accordion-group > .in') if (actives && actives.length) { hasData = actives.data('collapse') if (hasData && hasData.transitioning) return actives.collapse('hide') hasData || actives.data('collapse', null) } this.$element[dimension](0) this.transition('addClass', $.Event('show'), 'shown') $.support.transition && this.$element[dimension](this.$element[0][scroll]) } , hide: function () { var dimension if (this.transitioning || !this.$element.hasClass('in')) return dimension = this.dimension() this.reset(this.$element[dimension]()) this.transition('removeClass', $.Event('hide'), 'hidden') this.$element[dimension](0) } , reset: function (size) { var dimension = this.dimension() this.$element .removeClass('collapse') [dimension](size || 'auto') [0].offsetWidth this.$element[size !== null ? 'addClass' : 'removeClass']('collapse') return this } , transition: function (method, startEvent, completeEvent) { var that = this , complete = function () { if (startEvent.type == 'show') that.reset() that.transitioning = 0 that.$element.trigger(completeEvent) } this.$element.trigger(startEvent) if (startEvent.isDefaultPrevented()) return this.transitioning = 1 this.$element[method]('in') $.support.transition && this.$element.hasClass('collapse') ? this.$element.one($.support.transition.end, complete) : complete() } , toggle: function () { this[this.$element.hasClass('in') ? 'hide' : 'show']() } } /* COLLAPSE PLUGIN DEFINITION * ========================== */ var old = $.fn.collapse $.fn.collapse = function (option) { return this.each(function () { var $this = $(this) , data = $this.data('collapse') , options = $.extend({}, $.fn.collapse.defaults, $this.data(), typeof option == 'object' && option) if (!data) $this.data('collapse', (data = new Collapse(this, options))) if (typeof option == 'string') data[option]() }) } $.fn.collapse.defaults = { toggle: true } $.fn.collapse.Constructor = Collapse /* COLLAPSE NO CONFLICT * ==================== */ $.fn.collapse.noConflict = function () { $.fn.collapse = old return this } /* COLLAPSE DATA-API * ================= */ $(document).on('click.collapse.data-api', '[data-toggle=collapse]', function (e) { var $this = $(this), href , target = $this.attr('data-target') || e.preventDefault() || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 , option = $(target).data('collapse') ? 'toggle' : $this.data() $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed') $(target).collapse(option) }) }($jqTheme || window.jQuery);/* ============================================================ * bootstrap-dropdown.js v2.3.1 * http://twitter.github.com/bootstrap/javascript.html#dropdowns * ============================================================ * Copyright 2012 Twitter, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ============================================================ */ !function ($) { "use strict"; // jshint ;_; /* DROPDOWN CLASS DEFINITION * ========================= */ var toggle = '[data-toggle=dropdown]' , Dropdown = function (element) { var $el = $(element).on('click.dropdown.data-api', this.toggle) $('html').on('click.dropdown.data-api', function () { $el.parent().removeClass('open') }) } Dropdown.prototype = { constructor: Dropdown , toggle: function (e) { var $this = $(this) , $parent , isActive if ($this.is('.disabled, :disabled')) return $parent = getParent($this) isActive = $parent.hasClass('open') clearMenus() if (!isActive) { $parent.toggleClass('open') } $this.focus() return false } , keydown: function (e) { var $this , $items , $active , $parent , isActive , index if (!/(38|40|27)/.test(e.keyCode)) return $this = $(this) e.preventDefault() e.stopPropagation() if ($this.is('.disabled, :disabled')) return $parent = getParent($this) isActive = $parent.hasClass('open') if (!isActive || (isActive && e.keyCode == 27)) { if (e.which == 27) $parent.find(toggle).focus() return $this.click() } $items = $('[role=menu] li:not(.divider):visible a', $parent) if (!$items.length) return index = $items.index($items.filter(':focus')) if (e.keyCode == 38 && index > 0) index-- // up if (e.keyCode == 40 && index < $items.length - 1) index++ // down if (!~index) index = 0 $items .eq(index) .focus() } } function clearMenus() { $(toggle).each(function () { getParent($(this)).removeClass('open') }) } function getParent($this) { var selector = $this.attr('data-target') , $parent if (!selector) { selector = $this.attr('href') selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 } $parent = selector && $(selector) if (!$parent || !$parent.length) $parent = $this.parent() return $parent } /* DROPDOWN PLUGIN DEFINITION * ========================== */ var old = $.fn.dropdown $.fn.dropdown = function (option) { return this.each(function () { var $this = $(this) , data = $this.data('dropdown') if (!data) $this.data('dropdown', (data = new Dropdown(this))) if (typeof option == 'string') data[option].call($this) }) } $.fn.dropdown.Constructor = Dropdown /* DROPDOWN NO CONFLICT * ==================== */ $.fn.dropdown.noConflict = function () { $.fn.dropdown = old return this } /* APPLY TO STANDARD DROPDOWN ELEMENTS * =================================== */ $(document) .on('click.dropdown.data-api', clearMenus) .on('click.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) .on('click.dropdown-menu', function (e) { e.stopPropagation() }) .on('click.dropdown.data-api' , toggle, Dropdown.prototype.toggle) .on('keydown.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown) }($jqTheme || window.jQuery); /* ========================================================= * bootstrap-modal.js v2.3.1 * http://twitter.github.com/bootstrap/javascript.html#modals * ========================================================= * Copyright 2012 Twitter, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ========================================================= */ !function ($) { "use strict"; // jshint ;_; /* MODAL CLASS DEFINITION * ====================== */ var Modal = function (element, options) { this.options = options this.$element = $(element) .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this)) this.options.remote && this.$element.find('.modal-body').load(this.options.remote) } Modal.prototype = { constructor: Modal , toggle: function () { return this[!this.isShown ? 'show' : 'hide']() } , show: function () { var that = this , e = $.Event('show') this.$element.trigger(e) if (this.isShown || e.isDefaultPrevented()) return this.isShown = true this.escape() this.backdrop(function () { var transition = $.support.transition && that.$element.hasClass('fade') if (!that.$element.parent().length) { that.$element.appendTo(document.body) //don't move modals dom position } that.$element.show() if (transition) { that.$element[0].offsetWidth // force reflow } that.$element .addClass('in') .attr('aria-hidden', false) that.enforceFocus() transition ? that.$element.one($.support.transition.end, function () { that.$element.focus().trigger('shown') }) : that.$element.focus().trigger('shown') }) } , hide: function (e) { e && e.preventDefault() var that = this e = $.Event('hide') this.$element.trigger(e) if (!this.isShown || e.isDefaultPrevented()) return this.isShown = false this.escape() $(document).off('focusin.modal') this.$element .removeClass('in') .attr('aria-hidden', true) $.support.transition && this.$element.hasClass('fade') ? this.hideWithTransition() : this.hideModal() } , enforceFocus: function () { var that = this $(document).on('focusin.modal', function (e) { if (that.$element[0] !== e.target && !that.$element.has(e.target).length) { that.$element.focus() } }) } , escape: function () { var that = this if (this.isShown && this.options.keyboard) { this.$element.on('keyup.dismiss.modal', function ( e ) { e.which == 27 && that.hide() }) } else if (!this.isShown) { this.$element.off('keyup.dismiss.modal') } } , hideWithTransition: function () { var that = this , timeout = setTimeout(function () { that.$element.off($.support.transition.end) that.hideModal() }, 500) this.$element.one($.support.transition.end, function () { clearTimeout(timeout) that.hideModal() }) } , hideModal: function () { var that = this this.$element.hide() this.backdrop(function () { that.removeBackdrop() that.$element.trigger('hidden') }) } , removeBackdrop: function () { this.$backdrop && this.$backdrop.remove() this.$backdrop = null } , backdrop: function (callback) { var that = this , animate = this.$element.hasClass('fade') ? 'fade' : '' if (this.isShown && this.options.backdrop) { var doAnimate = $.support.transition && animate this.$backdrop = $('