From 2d8df5e1afb2d8ed34f27f5ef9476784d40dd8ae Mon Sep 17 00:00:00 2001 From: Anthony Talarico Date: Mon, 16 May 2016 10:46:03 -0400 Subject: [PATCH] adding fancybox files --- fancybox/lib/jquery.mousewheel-3.0.6.pack.js | 13 + fancybox/source/blank.gif | Bin 0 -> 43 bytes fancybox/source/fancybox_loading.gif | Bin 0 -> 6567 bytes fancybox/source/fancybox_loading@2x.gif | Bin 0 -> 13984 bytes fancybox/source/fancybox_overlay.png | Bin 0 -> 1003 bytes fancybox/source/fancybox_sprite.png | Bin 0 -> 1362 bytes fancybox/source/fancybox_sprite@2x.png | Bin 0 -> 6553 bytes fancybox/source/helpers/fancybox_buttons.png | Bin 0 -> 1080 bytes .../helpers/jquery.fancybox-buttons.css | 97 + .../source/helpers/jquery.fancybox-buttons.js | 122 + .../source/helpers/jquery.fancybox-media.js | 199 ++ .../source/helpers/jquery.fancybox-thumbs.css | 55 + .../source/helpers/jquery.fancybox-thumbs.js | 162 ++ fancybox/source/jquery.fancybox.css | 274 +++ fancybox/source/jquery.fancybox.js | 2020 +++++++++++++++++ fancybox/source/jquery.fancybox.pack.js | 46 + fancybox/sprite.psd | Bin 0 -> 250491 bytes views/front/members/detail.html | 4 +- 18 files changed, 2990 insertions(+), 2 deletions(-) create mode 100644 fancybox/lib/jquery.mousewheel-3.0.6.pack.js create mode 100644 fancybox/source/blank.gif create mode 100644 fancybox/source/fancybox_loading.gif create mode 100644 fancybox/source/fancybox_loading@2x.gif create mode 100644 fancybox/source/fancybox_overlay.png create mode 100644 fancybox/source/fancybox_sprite.png create mode 100644 fancybox/source/fancybox_sprite@2x.png create mode 100644 fancybox/source/helpers/fancybox_buttons.png create mode 100644 fancybox/source/helpers/jquery.fancybox-buttons.css create mode 100644 fancybox/source/helpers/jquery.fancybox-buttons.js create mode 100644 fancybox/source/helpers/jquery.fancybox-media.js create mode 100644 fancybox/source/helpers/jquery.fancybox-thumbs.css create mode 100644 fancybox/source/helpers/jquery.fancybox-thumbs.js create mode 100644 fancybox/source/jquery.fancybox.css create mode 100644 fancybox/source/jquery.fancybox.js create mode 100644 fancybox/source/jquery.fancybox.pack.js create mode 100644 fancybox/sprite.psd diff --git a/fancybox/lib/jquery.mousewheel-3.0.6.pack.js b/fancybox/lib/jquery.mousewheel-3.0.6.pack.js new file mode 100644 index 00000000..e39a83ad --- /dev/null +++ b/fancybox/lib/jquery.mousewheel-3.0.6.pack.js @@ -0,0 +1,13 @@ +/*! Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net) + * Licensed under the MIT License (LICENSE.txt). + * + * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers. + * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix. + * Thanks to: Seamus Leahy for adding deltaX and deltaY + * + * Version: 3.0.6 + * + * Requires: 1.2.2+ + */ +(function(d){function e(a){var b=a||window.event,c=[].slice.call(arguments,1),f=0,e=0,g=0,a=d.event.fix(b);a.type="mousewheel";b.wheelDelta&&(f=b.wheelDelta/120);b.detail&&(f=-b.detail/3);g=f;b.axis!==void 0&&b.axis===b.HORIZONTAL_AXIS&&(g=0,e=-1*f);b.wheelDeltaY!==void 0&&(g=b.wheelDeltaY/120);b.wheelDeltaX!==void 0&&(e=-1*b.wheelDeltaX/120);c.unshift(a,f,e,g);return(d.event.dispatch||d.event.handle).apply(this,c)}var c=["DOMMouseScroll","mousewheel"];if(d.event.fixHooks)for(var h=c.length;h;)d.event.fixHooks[c[--h]]= +d.event.mouseHooks;d.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=c.length;a;)this.addEventListener(c[--a],e,false);else this.onmousewheel=e},teardown:function(){if(this.removeEventListener)for(var a=c.length;a;)this.removeEventListener(c[--a],e,false);else this.onmousewheel=null}};d.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery); \ No newline at end of file diff --git a/fancybox/source/blank.gif b/fancybox/source/blank.gif new file mode 100644 index 0000000000000000000000000000000000000000..35d42e808f0a8017b8d52a06be2f8fec0b466a66 GIT binary patch literal 43 scmZ?wbhEHbWMp7uXkcLY|NlP&1B2pE7Dgb&paUX6G7L;iE{qJ;0LZEa`2YX_ literal 0 HcmV?d00001 diff --git a/fancybox/source/fancybox_loading.gif b/fancybox/source/fancybox_loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..a03a40c097ee728709f65d4ea7397903a389d484 GIT binary patch literal 6567 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 literal 0 HcmV?d00001 diff --git a/fancybox/source/fancybox_loading@2x.gif b/fancybox/source/fancybox_loading@2x.gif new file mode 100644 index 0000000000000000000000000000000000000000..9205aeb09fffa6b571b4c6beee30b18400829c03 GIT binary patch literal 13984 zcmdtpX;f2(+Ar{(ot=4L0|COk2@%3*z%UvmBmq&;1`CRoVn8Z`pb=0JsqPHSQ$#>O zlpu(Ls8JA6P{W{NYc1kXYOM{3ii(OuTWdX>n;y^c^`4${?|t8U*In!0e1XN{3&Z}c z|NnWOELa%o9}vd{xWEAbfIvv4P>F@&!Tv!ui=7ak(7eBSVtj&O!iZcJ$@AuAre}7Z z=&Y=+yfJd)^~={(GPR_rBz#f$m9MV2ySk^Qq_(%U+gRDetcu|W@^i9tde8K}d;4zc z*;M_$`a5^;KzK-%rxJ&X2QLn?o!AL$6PjC^Cmu{N%o&l(BYD2O%*~mdU7huH^*3(a zc>T+3DxF$VRuaB6{L0lU?w;r>m0w%gd*#Kgw%=ks&6=k%WIeK+$C_{YoPuau=B zk)Mi!B_ZCPTr9@$b%);|5($_Gxc~7zfBcvLenz)X7Uph+@%iqcoEz9Md`R*#z-GR2 zt8dXVpW?ZVIZ+-Gx=Ycb(>>SzCy`;_Wwyar_cK7Wh&O zrlIseae92AkZ50;y?W<7KWti>V~)@`f6qLxhBEd3d4LHAEHdDkiYOs-Y)E{V> zW6~D2Vh>eoeqwMQvwM#Fl3qfgiFP)WjF1Bwg^0QQ6y5A-#_f4rQ>{ZN!bL)0FKcTj zmtREz>uarK!Iv6s=Pl9&3g{3SgfGt;U2si=UkR|9DQrcaG60u7isr@<0SI=eK&Fo^ zD5be?9#mQCKQjUyhnGl(MIkd-Q|7a?DLlO$K=fO7R5j{NxbUU>FJ2r>(*il^6xhiY z>VYN#BOC1&Nbi>(V6PW1W^Qu2@}*POh)!lqE&*prUJD90A6Ur~1Cn9C3_=KY-6?@2 z+kBkHC|pv+ec`({{OnGtI;_W%MbkT22*IID5#$9S zXvQ)C7@*nAY@T$WGDj4Gs1X2WF#xqhL=24KkO8B4T{q2%dO;l3^!ANQqQmk-HIRco zYYlba_0G!GuXnx?`&;QJn|JA-4k2QTD;$VyMqM~oZ3Y1Sv_
bMxRL(pijsY@019xTxeF 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 literal 0 HcmV?d00001 diff --git a/fancybox/source/fancybox_overlay.png b/fancybox/source/fancybox_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..a4391396a9d6b6d7ff3b781f16904732fea40bdd GIT binary patch literal 1003 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 S1P^~LSQ@H2DwWEJcmD(3qHSjY literal 0 HcmV?d00001 diff --git a/fancybox/source/helpers/fancybox_buttons.png b/fancybox/source/helpers/fancybox_buttons.png new file mode 100644 index 0000000000000000000000000000000000000000..07872072704114b91681e2e6f9697ce1521b64d2 GIT binary patch literal 1080 zcmeAS@N?(olHy`uVBq!ia0vp^Q6S903?%u>HW~n_y#YQUu0R?WSg~RSP%1Go5lD7* zbwQLpe*757ICA6&kW5WYZD?o!GK`Ilf#ib+545$lfs7|lo|Kf7golSGBqXd|yY}6? zcgK$(2by;H@Zldne!PGGe#3?hK*r6RH}~(~f9%+?@87@w1cMhZUi|v?>-O#24<9~! z_3G8{-@iY6_yAP-?b|mX`_G?0|Ns97D*W>0%coDDfKr0iiH$(}%u0g%f*BZ@S=qVy z1VzPVE?Tl=<;G1rjvPIE`Ra{3j~;*c^fm05 z&}0S%rZ1i@jv*CsZ>PnU&vFoGYh)GcNLbUk(XcbqE{E69EG*srz@Pu~uR3~FiyV{r zKBIe^jd`)*o5yoLKHYF_zn{1F51Du38}jGBJ=VP0ecMa>bF+9K`W*ijXIeka_uU8A z*POd= z37@}bnmsYU%ylPY9@}5u*!t|)yNM@Xh;kTr{CTM%UpgJrq;^z1sCv#Ff{JcXH0QycQ=j-SpqK)3sqC&x%d{>uv#p4L4W% zmLHbjTwSCP^ID(pX0NGG_)`a^m0!6nD|Dt#Dvad0vf#zR8xqRnG{y^pfbH6Kc3;s;HW4p`heoW(jKH<7AtsEly z$M&AE{dQl2(Z%x9#dt|gSIbWy<4Xjtobc#5EmRoE7k>Wa#EFw7ELWat{GexP^oT7` zWJjo_z_Z6E{wwPO!J9zw9U;?iErx;1Arv+D^&N20C4AEY>{Ek`B=i66zn9m4$^{AUqIL)kd`}_|Y zirXZ4+!kL{DD1t`cieXN&YnLTl;^yVdNTEd730M4<~70>Dwl5dOP&;N_1dH)?&X@x qGoDO6XT>`g#8(4K<@tG^_7CJ-u|B8Hp&OWk7(8A5T-G@yGywqna}dM; literal 0 HcmV?d00001 diff --git a/fancybox/source/helpers/jquery.fancybox-buttons.css b/fancybox/source/helpers/jquery.fancybox-buttons.css new file mode 100644 index 00000000..a26273af --- /dev/null +++ b/fancybox/source/helpers/jquery.fancybox-buttons.css @@ -0,0 +1,97 @@ +#fancybox-buttons { + position: fixed; + left: 0; + width: 100%; + z-index: 8050; +} + +#fancybox-buttons.top { + top: 10px; +} + +#fancybox-buttons.bottom { + bottom: 10px; +} + +#fancybox-buttons ul { + display: block; + width: 166px; + height: 30px; + margin: 0 auto; + padding: 0; + list-style: none; + border: 1px solid #111; + border-radius: 3px; + -webkit-box-shadow: inset 0 0 0 1px rgba(255,255,255,.05); + -moz-box-shadow: inset 0 0 0 1px rgba(255,255,255,.05); + box-shadow: inset 0 0 0 1px rgba(255,255,255,.05); + background: rgb(50,50,50); + background: -moz-linear-gradient(top, rgb(68,68,68) 0%, rgb(52,52,52) 50%, rgb(41,41,41) 50%, rgb(51,51,51) 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgb(68,68,68)), color-stop(50%,rgb(52,52,52)), color-stop(50%,rgb(41,41,41)), color-stop(100%,rgb(51,51,51))); + background: -webkit-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); + background: -o-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); + background: -ms-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); + background: linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#444444', endColorstr='#222222',GradientType=0 ); +} + +#fancybox-buttons ul li { + float: left; + margin: 0; + padding: 0; +} + +#fancybox-buttons a { + display: block; + width: 30px; + height: 30px; + text-indent: -9999px; + background-color: transparent; + background-image: url('fancybox_buttons.png'); + background-repeat: no-repeat; + outline: none; + opacity: 0.8; +} + +#fancybox-buttons a:hover { + opacity: 1; +} + +#fancybox-buttons a.btnPrev { + background-position: 5px 0; +} + +#fancybox-buttons a.btnNext { + background-position: -33px 0; + border-right: 1px solid #3e3e3e; +} + +#fancybox-buttons a.btnPlay { + background-position: 0 -30px; +} + +#fancybox-buttons a.btnPlayOn { + background-position: -30px -30px; +} + +#fancybox-buttons a.btnToggle { + background-position: 3px -60px; + border-left: 1px solid #111; + border-right: 1px solid #3e3e3e; + width: 35px +} + +#fancybox-buttons a.btnToggleOn { + background-position: -27px -60px; +} + +#fancybox-buttons a.btnClose { + border-left: 1px solid #111; + width: 35px; + background-position: -56px 0px; +} + +#fancybox-buttons a.btnDisabled { + opacity : 0.4; + cursor: default; +} \ No newline at end of file diff --git a/fancybox/source/helpers/jquery.fancybox-buttons.js b/fancybox/source/helpers/jquery.fancybox-buttons.js new file mode 100644 index 00000000..fd8b9556 --- /dev/null +++ b/fancybox/source/helpers/jquery.fancybox-buttons.js @@ -0,0 +1,122 @@ + /*! + * Buttons helper for fancyBox + * version: 1.0.5 (Mon, 15 Oct 2012) + * @requires fancyBox v2.0 or later + * + * Usage: + * $(".fancybox").fancybox({ + * helpers : { + * buttons: { + * position : 'top' + * } + * } + * }); + * + */ +(function ($) { + //Shortcut for fancyBox object + var F = $.fancybox; + + //Add helper object + F.helpers.buttons = { + defaults : { + skipSingle : false, // disables if gallery contains single image + position : 'top', // 'top' or 'bottom' + tpl : '

' + }, + + list : null, + buttons: null, + + beforeLoad: function (opts, obj) { + //Remove self if gallery do not have at least two items + + if (opts.skipSingle && obj.group.length < 2) { + obj.helpers.buttons = false; + obj.closeBtn = true; + + return; + } + + //Increase top margin to give space for buttons + obj.margin[ opts.position === 'bottom' ? 2 : 0 ] += 30; + }, + + onPlayStart: function () { + if (this.buttons) { + this.buttons.play.attr('title', 'Pause slideshow').addClass('btnPlayOn'); + } + }, + + onPlayEnd: function () { + if (this.buttons) { + this.buttons.play.attr('title', 'Start slideshow').removeClass('btnPlayOn'); + } + }, + + afterShow: function (opts, obj) { + var buttons = this.buttons; + + if (!buttons) { + this.list = $(opts.tpl).addClass(opts.position).appendTo('body'); + + buttons = { + prev : this.list.find('.btnPrev').click( F.prev ), + next : this.list.find('.btnNext').click( F.next ), + play : this.list.find('.btnPlay').click( F.play ), + toggle : this.list.find('.btnToggle').click( F.toggle ), + close : this.list.find('.btnClose').click( F.close ) + } + } + + //Prev + if (obj.index > 0 || obj.loop) { + buttons.prev.removeClass('btnDisabled'); + } else { + buttons.prev.addClass('btnDisabled'); + } + + //Next / Play + if (obj.loop || obj.index < obj.group.length - 1) { + buttons.next.removeClass('btnDisabled'); + buttons.play.removeClass('btnDisabled'); + + } else { + buttons.next.addClass('btnDisabled'); + buttons.play.addClass('btnDisabled'); + } + + this.buttons = buttons; + + this.onUpdate(opts, obj); + }, + + onUpdate: function (opts, obj) { + var toggle; + + if (!this.buttons) { + return; + } + + toggle = this.buttons.toggle.removeClass('btnDisabled btnToggleOn'); + + //Size toggle button + if (obj.canShrink) { + toggle.addClass('btnToggleOn'); + + } else if (!obj.canExpand) { + toggle.addClass('btnDisabled'); + } + }, + + beforeClose: function () { + if (this.list) { + this.list.remove(); + } + + this.list = null; + this.buttons = null; + } + }; + +}(jQuery)); diff --git a/fancybox/source/helpers/jquery.fancybox-media.js b/fancybox/source/helpers/jquery.fancybox-media.js new file mode 100644 index 00000000..3584c8a7 --- /dev/null +++ b/fancybox/source/helpers/jquery.fancybox-media.js @@ -0,0 +1,199 @@ +/*! + * Media helper for fancyBox + * version: 1.0.6 (Fri, 14 Jun 2013) + * @requires fancyBox v2.0 or later + * + * Usage: + * $(".fancybox").fancybox({ + * helpers : { + * media: true + * } + * }); + * + * Set custom URL parameters: + * $(".fancybox").fancybox({ + * helpers : { + * media: { + * youtube : { + * params : { + * autoplay : 0 + * } + * } + * } + * } + * }); + * + * Or: + * $(".fancybox").fancybox({, + * helpers : { + * media: true + * }, + * youtube : { + * autoplay: 0 + * } + * }); + * + * Supports: + * + * Youtube + * http://www.youtube.com/watch?v=opj24KnzrWo + * http://www.youtube.com/embed/opj24KnzrWo + * http://youtu.be/opj24KnzrWo + * http://www.youtube-nocookie.com/embed/opj24KnzrWo + * Vimeo + * http://vimeo.com/40648169 + * http://vimeo.com/channels/staffpicks/38843628 + * http://vimeo.com/groups/surrealism/videos/36516384 + * http://player.vimeo.com/video/45074303 + * Metacafe + * http://www.metacafe.com/watch/7635964/dr_seuss_the_lorax_movie_trailer/ + * http://www.metacafe.com/watch/7635964/ + * Dailymotion + * http://www.dailymotion.com/video/xoytqh_dr-seuss-the-lorax-premiere_people + * Twitvid + * http://twitvid.com/QY7MD + * Twitpic + * http://twitpic.com/7p93st + * Instagram + * http://instagr.am/p/IejkuUGxQn/ + * http://instagram.com/p/IejkuUGxQn/ + * Google maps + * http://maps.google.com/maps?q=Eiffel+Tower,+Avenue+Gustave+Eiffel,+Paris,+France&t=h&z=17 + * http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16 + * http://maps.google.com/?ll=48.859463,2.292626&spn=0.000965,0.002642&t=m&z=19&layer=c&cbll=48.859524,2.292532&panoid=YJ0lq28OOy3VT2IqIuVY0g&cbp=12,151.58,,0,-15.56 + */ +(function ($) { + "use strict"; + + //Shortcut for fancyBox object + var F = $.fancybox, + format = function( url, rez, params ) { + params = params || ''; + + if ( $.type( params ) === "object" ) { + params = $.param(params, true); + } + + $.each(rez, function(key, value) { + url = url.replace( '$' + key, value || '' ); + }); + + if (params.length) { + url += ( url.indexOf('?') > 0 ? '&' : '?' ) + params; + } + + return url; + }; + + //Add helper object + F.helpers.media = { + defaults : { + youtube : { + matcher : /(youtube\.com|youtu\.be|youtube-nocookie\.com)\/(watch\?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*)).*/i, + params : { + autoplay : 1, + autohide : 1, + fs : 1, + rel : 0, + hd : 1, + wmode : 'opaque', + enablejsapi : 1 + }, + type : 'iframe', + url : '//www.youtube.com/embed/$3' + }, + vimeo : { + matcher : /(?:vimeo(?:pro)?.com)\/(?:[^\d]+)?(\d+)(?:.*)/, + params : { + autoplay : 1, + hd : 1, + show_title : 1, + show_byline : 1, + show_portrait : 0, + fullscreen : 1 + }, + type : 'iframe', + url : '//player.vimeo.com/video/$1' + }, + metacafe : { + matcher : /metacafe.com\/(?:watch|fplayer)\/([\w\-]{1,10})/, + params : { + autoPlay : 'yes' + }, + type : 'swf', + url : function( rez, params, obj ) { + obj.swf.flashVars = 'playerVars=' + $.param( params, true ); + + return '//www.metacafe.com/fplayer/' + rez[1] + '/.swf'; + } + }, + dailymotion : { + matcher : /dailymotion.com\/video\/(.*)\/?(.*)/, + params : { + additionalInfos : 0, + autoStart : 1 + }, + type : 'swf', + url : '//www.dailymotion.com/swf/video/$1' + }, + twitvid : { + matcher : /twitvid\.com\/([a-zA-Z0-9_\-\?\=]+)/i, + params : { + autoplay : 0 + }, + type : 'iframe', + url : '//www.twitvid.com/embed.php?guid=$1' + }, + twitpic : { + matcher : /twitpic\.com\/(?!(?:place|photos|events)\/)([a-zA-Z0-9\?\=\-]+)/i, + type : 'image', + url : '//twitpic.com/show/full/$1/' + }, + instagram : { + matcher : /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i, + type : 'image', + url : '//$1/p/$2/media/?size=l' + }, + google_maps : { + matcher : /maps\.google\.([a-z]{2,3}(\.[a-z]{2})?)\/(\?ll=|maps\?)(.*)/i, + type : 'iframe', + url : function( rez ) { + return '//maps.google.' + rez[1] + '/' + rez[3] + '' + rez[4] + '&output=' + (rez[4].indexOf('layer=c') > 0 ? 'svembed' : 'embed'); + } + } + }, + + beforeLoad : function(opts, obj) { + var url = obj.href || '', + type = false, + what, + item, + rez, + params; + + for (what in opts) { + if (opts.hasOwnProperty(what)) { + item = opts[ what ]; + rez = url.match( item.matcher ); + + if (rez) { + type = item.type; + params = $.extend(true, {}, item.params, obj[ what ] || ($.isPlainObject(opts[ what ]) ? opts[ what ].params : null)); + + url = $.type( item.url ) === "function" ? item.url.call( this, rez, params, obj ) : format( item.url, rez, params ); + + break; + } + } + } + + if (type) { + obj.href = url; + obj.type = type; + + obj.autoHeight = false; + } + } + }; + +}(jQuery)); \ No newline at end of file diff --git a/fancybox/source/helpers/jquery.fancybox-thumbs.css b/fancybox/source/helpers/jquery.fancybox-thumbs.css new file mode 100644 index 00000000..63d29436 --- /dev/null +++ b/fancybox/source/helpers/jquery.fancybox-thumbs.css @@ -0,0 +1,55 @@ +#fancybox-thumbs { + position: fixed; + left: 0; + width: 100%; + overflow: hidden; + z-index: 8050; +} + +#fancybox-thumbs.bottom { + bottom: 2px; +} + +#fancybox-thumbs.top { + top: 2px; +} + +#fancybox-thumbs ul { + position: relative; + list-style: none; + margin: 0; + padding: 0; +} + +#fancybox-thumbs ul li { + float: left; + padding: 1px; + opacity: 0.5; +} + +#fancybox-thumbs ul li.active { + opacity: 0.75; + padding: 0; + border: 1px solid #fff; +} + +#fancybox-thumbs ul li:hover { + opacity: 1; +} + +#fancybox-thumbs ul li a { + display: block; + position: relative; + overflow: hidden; + border: 1px solid #222; + background: #111; + outline: none; +} + +#fancybox-thumbs ul li img { + display: block; + position: relative; + border: 0; + padding: 0; + max-width: none; +} \ No newline at end of file diff --git a/fancybox/source/helpers/jquery.fancybox-thumbs.js b/fancybox/source/helpers/jquery.fancybox-thumbs.js new file mode 100644 index 00000000..5db3d4ac --- /dev/null +++ b/fancybox/source/helpers/jquery.fancybox-thumbs.js @@ -0,0 +1,162 @@ + /*! + * Thumbnail helper for fancyBox + * version: 1.0.7 (Mon, 01 Oct 2012) + * @requires fancyBox v2.0 or later + * + * Usage: + * $(".fancybox").fancybox({ + * helpers : { + * thumbs: { + * width : 50, + * height : 50 + * } + * } + * }); + * + */ +(function ($) { + //Shortcut for fancyBox object + var F = $.fancybox; + + //Add helper object + F.helpers.thumbs = { + defaults : { + width : 50, // thumbnail width + height : 50, // thumbnail height + position : 'bottom', // 'top' or 'bottom' + source : function ( item ) { // function to obtain the URL of the thumbnail image + var href; + + if (item.element) { + href = $(item.element).find('img').attr('src'); + } + + if (!href && item.type === 'image' && item.href) { + href = item.href; + } + + return href; + } + }, + + wrap : null, + list : null, + width : 0, + + init: function (opts, obj) { + var that = this, + list, + thumbWidth = opts.width, + thumbHeight = opts.height, + thumbSource = opts.source; + + //Build list structure + list = ''; + + for (var n = 0; n < obj.group.length; n++) { + list += '
  • '; + } + + this.wrap = $('
    ').addClass(opts.position).appendTo('body'); + this.list = $('
      ' + list + '
    ').appendTo(this.wrap); + + //Load each thumbnail + $.each(obj.group, function (i) { + var href = thumbSource( obj.group[ i ] ); + + if (!href) { + return; + } + + $("").load(function () { + var width = this.width, + height = this.height, + widthRatio, heightRatio, parent; + + if (!that.list || !width || !height) { + return; + } + + //Calculate thumbnail width/height and center it + widthRatio = width / thumbWidth; + heightRatio = height / thumbHeight; + + parent = that.list.children().eq(i).find('a'); + + if (widthRatio >= 1 && heightRatio >= 1) { + if (widthRatio > heightRatio) { + width = Math.floor(width / heightRatio); + height = thumbHeight; + + } else { + width = thumbWidth; + height = Math.floor(height / widthRatio); + } + } + + $(this).css({ + width : width, + height : height, + top : Math.floor(thumbHeight / 2 - height / 2), + left : Math.floor(thumbWidth / 2 - width / 2) + }); + + parent.width(thumbWidth).height(thumbHeight); + + $(this).hide().appendTo(parent).fadeIn(300); + + }).attr('src', href); + }); + + //Set initial width + this.width = this.list.children().eq(0).outerWidth(true); + + this.list.width(this.width * (obj.group.length + 1)).css('left', Math.floor($(window).width() * 0.5 - (obj.index * this.width + this.width * 0.5))); + }, + + beforeLoad: function (opts, obj) { + //Remove self if gallery do not have at least two items + if (obj.group.length < 2) { + obj.helpers.thumbs = false; + + return; + } + + //Increase bottom margin to give space for thumbs + obj.margin[ opts.position === 'top' ? 0 : 2 ] += ((opts.height) + 15); + }, + + afterShow: function (opts, obj) { + //Check if exists and create or update list + if (this.list) { + this.onUpdate(opts, obj); + + } else { + this.init(opts, obj); + } + + //Set active element + this.list.children().removeClass('active').eq(obj.index).addClass('active'); + }, + + //Center list + onUpdate: function (opts, obj) { + if (this.list) { + this.list.stop(true).animate({ + 'left': Math.floor($(window).width() * 0.5 - (obj.index * this.width + this.width * 0.5)) + }, 150); + } + }, + + beforeClose: function () { + if (this.wrap) { + this.wrap.remove(); + } + + this.wrap = null; + this.list = null; + this.width = 0; + } + } + +}(jQuery)); \ No newline at end of file diff --git a/fancybox/source/jquery.fancybox.css b/fancybox/source/jquery.fancybox.css new file mode 100644 index 00000000..367890a4 --- /dev/null +++ b/fancybox/source/jquery.fancybox.css @@ -0,0 +1,274 @@ +/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */ +.fancybox-wrap, +.fancybox-skin, +.fancybox-outer, +.fancybox-inner, +.fancybox-image, +.fancybox-wrap iframe, +.fancybox-wrap object, +.fancybox-nav, +.fancybox-nav span, +.fancybox-tmp +{ + padding: 0; + margin: 0; + border: 0; + outline: none; + vertical-align: top; +} + +.fancybox-wrap { + position: absolute; + top: 0; + left: 0; + z-index: 8020; +} + +.fancybox-skin { + position: relative; + background: #f9f9f9; + color: #444; + text-shadow: none; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.fancybox-opened { + z-index: 8030; +} + +.fancybox-opened .fancybox-skin { + -webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); + -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); +} + +.fancybox-outer, .fancybox-inner { + position: relative; +} + +.fancybox-inner { + overflow: hidden; +} + +.fancybox-type-iframe .fancybox-inner { + -webkit-overflow-scrolling: touch; +} + +.fancybox-error { + color: #444; + font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; + margin: 0; + padding: 15px; + white-space: nowrap; +} + +.fancybox-image, .fancybox-iframe { + display: block; + width: 100%; + height: 100%; +} + +.fancybox-image { + max-width: 100%; + max-height: 100%; +} + +#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { + background-image: url('fancybox_sprite.png'); +} + +#fancybox-loading { + position: fixed; + top: 50%; + left: 50%; + margin-top: -22px; + margin-left: -22px; + background-position: 0 -108px; + opacity: 0.8; + cursor: pointer; + z-index: 8060; +} + +#fancybox-loading div { + width: 44px; + height: 44px; + background: url('fancybox_loading.gif') center center no-repeat; +} + +.fancybox-close { + position: absolute; + top: -18px; + right: -18px; + width: 36px; + height: 36px; + cursor: pointer; + z-index: 8040; +} + +.fancybox-nav { + position: absolute; + top: 0; + width: 40%; + height: 100%; + cursor: pointer; + text-decoration: none; + background: transparent url('blank.gif'); /* helps IE */ + -webkit-tap-highlight-color: rgba(0,0,0,0); + z-index: 8040; +} + +.fancybox-prev { + left: 0; +} + +.fancybox-next { + right: 0; +} + +.fancybox-nav span { + position: absolute; + top: 50%; + width: 36px; + height: 34px; + margin-top: -18px; + cursor: pointer; + z-index: 8040; + visibility: hidden; +} + +.fancybox-prev span { + left: 10px; + background-position: 0 -36px; +} + +.fancybox-next span { + right: 10px; + background-position: 0 -72px; +} + +.fancybox-nav:hover span { + visibility: visible; +} + +.fancybox-tmp { + position: absolute; + top: -99999px; + left: -99999px; + visibility: hidden; + max-width: 99999px; + max-height: 99999px; + overflow: visible !important; +} + +/* Overlay helper */ + +.fancybox-lock { + overflow: hidden !important; + width: auto; +} + +.fancybox-lock body { + overflow: hidden !important; +} + +.fancybox-lock-test { + overflow-y: hidden !important; +} + +.fancybox-overlay { + position: absolute; + top: 0; + left: 0; + overflow: hidden; + display: none; + z-index: 8010; + background: url('fancybox_overlay.png'); +} + +.fancybox-overlay-fixed { + position: fixed; + bottom: 0; + right: 0; +} + +.fancybox-lock .fancybox-overlay { + overflow: auto; + overflow-y: scroll; +} + +/* Title helper */ + +.fancybox-title { + visibility: hidden; + font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; + position: relative; + text-shadow: none; + z-index: 8050; +} + +.fancybox-opened .fancybox-title { + visibility: visible; +} + +.fancybox-title-float-wrap { + position: absolute; + bottom: 0; + right: 50%; + margin-bottom: -35px; + z-index: 8050; + text-align: center; +} + +.fancybox-title-float-wrap .child { + display: inline-block; + margin-right: -100%; + padding: 2px 20px; + background: transparent; /* Fallback for web browsers that doesn't support RGBa */ + background: rgba(0, 0, 0, 0.8); + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; + text-shadow: 0 1px 2px #222; + color: #FFF; + font-weight: bold; + line-height: 24px; + white-space: nowrap; +} + +.fancybox-title-outside-wrap { + position: relative; + margin-top: 10px; + color: #fff; +} + +.fancybox-title-inside-wrap { + padding-top: 10px; +} + +.fancybox-title-over-wrap { + position: absolute; + bottom: 0; + left: 0; + color: #fff; + padding: 10px; + background: #000; + background: rgba(0, 0, 0, .8); +} + +/*Retina graphics!*/ +@media only screen and (-webkit-min-device-pixel-ratio: 1.5), + only screen and (min--moz-device-pixel-ratio: 1.5), + only screen and (min-device-pixel-ratio: 1.5){ + + #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { + background-image: url('fancybox_sprite@2x.png'); + background-size: 44px 152px; /*The size of the normal image, half the size of the hi-res image*/ + } + + #fancybox-loading div { + background-image: url('fancybox_loading@2x.gif'); + background-size: 24px 24px; /*The size of the normal image, half the size of the hi-res image*/ + } +} \ No newline at end of file diff --git a/fancybox/source/jquery.fancybox.js b/fancybox/source/jquery.fancybox.js new file mode 100644 index 00000000..e8e1987c --- /dev/null +++ b/fancybox/source/jquery.fancybox.js @@ -0,0 +1,2020 @@ +/*! + * fancyBox - jQuery Plugin + * version: 2.1.5 (Fri, 14 Jun 2013) + * @requires jQuery v1.6 or later + * + * Examples at http://fancyapps.com/fancybox/ + * License: www.fancyapps.com/fancybox/#license + * + * Copyright 2012 Janis Skarnelis - janis@fancyapps.com + * + */ + +(function (window, document, $, undefined) { + "use strict"; + + var H = $("html"), + W = $(window), + D = $(document), + F = $.fancybox = function () { + F.open.apply( this, arguments ); + }, + IE = navigator.userAgent.match(/msie/i), + didUpdate = null, + isTouch = document.createTouch !== undefined, + + isQuery = function(obj) { + return obj && obj.hasOwnProperty && obj instanceof $; + }, + isString = function(str) { + return str && $.type(str) === "string"; + }, + isPercentage = function(str) { + return isString(str) && str.indexOf('%') > 0; + }, + isScrollable = function(el) { + return (el && !(el.style.overflow && el.style.overflow === 'hidden') && ((el.clientWidth && el.scrollWidth > el.clientWidth) || (el.clientHeight && el.scrollHeight > el.clientHeight))); + }, + getScalar = function(orig, dim) { + var value = parseInt(orig, 10) || 0; + + if (dim && isPercentage(orig)) { + value = F.getViewport()[ dim ] / 100 * value; + } + + return Math.ceil(value); + }, + getValue = function(value, dim) { + return getScalar(value, dim) + 'px'; + }; + + $.extend(F, { + // The current version of fancyBox + version: '2.1.5', + + defaults: { + padding : 15, + margin : 20, + + width : 800, + height : 600, + minWidth : 100, + minHeight : 100, + maxWidth : 9999, + maxHeight : 9999, + pixelRatio: 1, // Set to 2 for retina display support + + autoSize : true, + autoHeight : false, + autoWidth : false, + + autoResize : true, + autoCenter : !isTouch, + fitToView : true, + aspectRatio : false, + topRatio : 0.5, + leftRatio : 0.5, + + scrolling : 'auto', // 'auto', 'yes' or 'no' + wrapCSS : '', + + arrows : true, + closeBtn : true, + closeClick : false, + nextClick : false, + mouseWheel : true, + autoPlay : false, + playSpeed : 3000, + preload : 3, + modal : false, + loop : true, + + ajax : { + dataType : 'html', + headers : { 'X-fancyBox': true } + }, + iframe : { + scrolling : 'auto', + preload : true + }, + swf : { + wmode: 'transparent', + allowfullscreen : 'true', + allowscriptaccess : 'always' + }, + + keys : { + next : { + 13 : 'left', // enter + 34 : 'up', // page down + 39 : 'left', // right arrow + 40 : 'up' // down arrow + }, + prev : { + 8 : 'right', // backspace + 33 : 'down', // page up + 37 : 'right', // left arrow + 38 : 'down' // up arrow + }, + close : [27], // escape key + play : [32], // space - start/stop slideshow + toggle : [70] // letter "f" - toggle fullscreen + }, + + direction : { + next : 'left', + prev : 'right' + }, + + scrollOutside : true, + + // Override some properties + index : 0, + type : null, + href : null, + content : null, + title : null, + + // HTML templates + tpl: { + wrap : '
    ', + image : '', + iframe : '', + error : '

    The requested content cannot be loaded.
    Please try again later.

    ', + closeBtn : '', + next : '', + prev : '' + }, + + // Properties for each animation type + // Opening fancyBox + openEffect : 'fade', // 'elastic', 'fade' or 'none' + openSpeed : 250, + openEasing : 'swing', + openOpacity : true, + openMethod : 'zoomIn', + + // Closing fancyBox + closeEffect : 'fade', // 'elastic', 'fade' or 'none' + closeSpeed : 250, + closeEasing : 'swing', + closeOpacity : true, + closeMethod : 'zoomOut', + + // Changing next gallery item + nextEffect : 'elastic', // 'elastic', 'fade' or 'none' + nextSpeed : 250, + nextEasing : 'swing', + nextMethod : 'changeIn', + + // Changing previous gallery item + prevEffect : 'elastic', // 'elastic', 'fade' or 'none' + prevSpeed : 250, + prevEasing : 'swing', + prevMethod : 'changeOut', + + // Enable default helpers + helpers : { + overlay : true, + title : true + }, + + // Callbacks + onCancel : $.noop, // If canceling + beforeLoad : $.noop, // Before loading + afterLoad : $.noop, // After loading + beforeShow : $.noop, // Before changing in current item + afterShow : $.noop, // After opening + beforeChange : $.noop, // Before changing gallery item + beforeClose : $.noop, // Before closing + afterClose : $.noop // After closing + }, + + //Current state + group : {}, // Selected group + opts : {}, // Group options + previous : null, // Previous element + coming : null, // Element being loaded + current : null, // Currently loaded element + isActive : false, // Is activated + isOpen : false, // Is currently open + isOpened : false, // Have been fully opened at least once + + wrap : null, + skin : null, + outer : null, + inner : null, + + player : { + timer : null, + isActive : false + }, + + // Loaders + ajaxLoad : null, + imgPreload : null, + + // Some collections + transitions : {}, + helpers : {}, + + /* + * Static methods + */ + + open: function (group, opts) { + if (!group) { + return; + } + + if (!$.isPlainObject(opts)) { + opts = {}; + } + + // Close if already active + if (false === F.close(true)) { + return; + } + + // Normalize group + if (!$.isArray(group)) { + group = isQuery(group) ? $(group).get() : [group]; + } + + // Recheck if the type of each element is `object` and set content type (image, ajax, etc) + $.each(group, function(i, element) { + var obj = {}, + href, + title, + content, + type, + rez, + hrefParts, + selector; + + if ($.type(element) === "object") { + // Check if is DOM element + if (element.nodeType) { + element = $(element); + } + + if (isQuery(element)) { + obj = { + href : element.data('fancybox-href') || element.attr('href'), + title : element.data('fancybox-title') || element.attr('title'), + isDom : true, + element : element + }; + + if ($.metadata) { + $.extend(true, obj, element.metadata()); + } + + } else { + obj = element; + } + } + + href = opts.href || obj.href || (isString(element) ? element : null); + title = opts.title !== undefined ? opts.title : obj.title || ''; + + content = opts.content || obj.content; + type = content ? 'html' : (opts.type || obj.type); + + if (!type && obj.isDom) { + type = element.data('fancybox-type'); + + if (!type) { + rez = element.prop('class').match(/fancybox\.(\w+)/); + type = rez ? rez[1] : null; + } + } + + if (isString(href)) { + // Try to guess the content type + if (!type) { + if (F.isImage(href)) { + type = 'image'; + + } else if (F.isSWF(href)) { + type = 'swf'; + + } else if (href.charAt(0) === '#') { + type = 'inline'; + + } else if (isString(element)) { + type = 'html'; + content = element; + } + } + + // Split url into two pieces with source url and content selector, e.g, + // "/mypage.html #my_id" will load "/mypage.html" and display element having id "my_id" + if (type === 'ajax') { + hrefParts = href.split(/\s+/, 2); + href = hrefParts.shift(); + selector = hrefParts.shift(); + } + } + + if (!content) { + if (type === 'inline') { + if (href) { + content = $( isString(href) ? href.replace(/.*(?=#[^\s]+$)/, '') : href ); //strip for ie7 + + } else if (obj.isDom) { + content = element; + } + + } else if (type === 'html') { + content = href; + + } else if (!type && !href && obj.isDom) { + type = 'inline'; + content = element; + } + } + + $.extend(obj, { + href : href, + type : type, + content : content, + title : title, + selector : selector + }); + + group[ i ] = obj; + }); + + // Extend the defaults + F.opts = $.extend(true, {}, F.defaults, opts); + + // All options are merged recursive except keys + if (opts.keys !== undefined) { + F.opts.keys = opts.keys ? $.extend({}, F.defaults.keys, opts.keys) : false; + } + + F.group = group; + + return F._start(F.opts.index); + }, + + // Cancel image loading or abort ajax request + cancel: function () { + var coming = F.coming; + + if (!coming || false === F.trigger('onCancel')) { + return; + } + + F.hideLoading(); + + if (F.ajaxLoad) { + F.ajaxLoad.abort(); + } + + F.ajaxLoad = null; + + if (F.imgPreload) { + F.imgPreload.onload = F.imgPreload.onerror = null; + } + + if (coming.wrap) { + coming.wrap.stop(true, true).trigger('onReset').remove(); + } + + F.coming = null; + + // If the first item has been canceled, then clear everything + if (!F.current) { + F._afterZoomOut( coming ); + } + }, + + // Start closing animation if is open; remove immediately if opening/closing + close: function (event) { + F.cancel(); + + if (false === F.trigger('beforeClose')) { + return; + } + + F.unbindEvents(); + + if (!F.isActive) { + return; + } + + if (!F.isOpen || event === true) { + $('.fancybox-wrap').stop(true).trigger('onReset').remove(); + + F._afterZoomOut(); + + } else { + F.isOpen = F.isOpened = false; + F.isClosing = true; + + $('.fancybox-item, .fancybox-nav').remove(); + + F.wrap.stop(true, true).removeClass('fancybox-opened'); + + F.transitions[ F.current.closeMethod ](); + } + }, + + // Manage slideshow: + // $.fancybox.play(); - toggle slideshow + // $.fancybox.play( true ); - start + // $.fancybox.play( false ); - stop + play: function ( action ) { + var clear = function () { + clearTimeout(F.player.timer); + }, + set = function () { + clear(); + + if (F.current && F.player.isActive) { + F.player.timer = setTimeout(F.next, F.current.playSpeed); + } + }, + stop = function () { + clear(); + + D.unbind('.player'); + + F.player.isActive = false; + + F.trigger('onPlayEnd'); + }, + start = function () { + if (F.current && (F.current.loop || F.current.index < F.group.length - 1)) { + F.player.isActive = true; + + D.bind({ + 'onCancel.player beforeClose.player' : stop, + 'onUpdate.player' : set, + 'beforeLoad.player' : clear + }); + + set(); + + F.trigger('onPlayStart'); + } + }; + + if (action === true || (!F.player.isActive && action !== false)) { + start(); + } else { + stop(); + } + }, + + // Navigate to next gallery item + next: function ( direction ) { + var current = F.current; + + if (current) { + if (!isString(direction)) { + direction = current.direction.next; + } + + F.jumpto(current.index + 1, direction, 'next'); + } + }, + + // Navigate to previous gallery item + prev: function ( direction ) { + var current = F.current; + + if (current) { + if (!isString(direction)) { + direction = current.direction.prev; + } + + F.jumpto(current.index - 1, direction, 'prev'); + } + }, + + // Navigate to gallery item by index + jumpto: function ( index, direction, router ) { + var current = F.current; + + if (!current) { + return; + } + + index = getScalar(index); + + F.direction = direction || current.direction[ (index >= current.index ? 'next' : 'prev') ]; + F.router = router || 'jumpto'; + + if (current.loop) { + if (index < 0) { + index = current.group.length + (index % current.group.length); + } + + index = index % current.group.length; + } + + if (current.group[ index ] !== undefined) { + F.cancel(); + + F._start(index); + } + }, + + // Center inside viewport and toggle position type to fixed or absolute if needed + reposition: function (e, onlyAbsolute) { + var current = F.current, + wrap = current ? current.wrap : null, + pos; + + if (wrap) { + pos = F._getPosition(onlyAbsolute); + + if (e && e.type === 'scroll') { + delete pos.position; + + wrap.stop(true, true).animate(pos, 200); + + } else { + wrap.css(pos); + + current.pos = $.extend({}, current.dim, pos); + } + } + }, + + update: function (e) { + var type = (e && e.type), + anyway = !type || type === 'orientationchange'; + + if (anyway) { + clearTimeout(didUpdate); + + didUpdate = null; + } + + if (!F.isOpen || didUpdate) { + return; + } + + didUpdate = setTimeout(function() { + var current = F.current; + + if (!current || F.isClosing) { + return; + } + + F.wrap.removeClass('fancybox-tmp'); + + if (anyway || type === 'load' || (type === 'resize' && current.autoResize)) { + F._setDimension(); + } + + if (!(type === 'scroll' && current.canShrink)) { + F.reposition(e); + } + + F.trigger('onUpdate'); + + didUpdate = null; + + }, (anyway && !isTouch ? 0 : 300)); + }, + + // Shrink content to fit inside viewport or restore if resized + toggle: function ( action ) { + if (F.isOpen) { + F.current.fitToView = $.type(action) === "boolean" ? action : !F.current.fitToView; + + // Help browser to restore document dimensions + if (isTouch) { + F.wrap.removeAttr('style').addClass('fancybox-tmp'); + + F.trigger('onUpdate'); + } + + F.update(); + } + }, + + hideLoading: function () { + D.unbind('.loading'); + + $('#fancybox-loading').remove(); + }, + + showLoading: function () { + var el, viewport; + + F.hideLoading(); + + el = $('
    ').click(F.cancel).appendTo('body'); + + // If user will press the escape-button, the request will be canceled + D.bind('keydown.loading', function(e) { + if ((e.which || e.keyCode) === 27) { + e.preventDefault(); + + F.cancel(); + } + }); + + if (!F.defaults.fixed) { + viewport = F.getViewport(); + + el.css({ + position : 'absolute', + top : (viewport.h * 0.5) + viewport.y, + left : (viewport.w * 0.5) + viewport.x + }); + } + }, + + getViewport: function () { + var locked = (F.current && F.current.locked) || false, + rez = { + x: W.scrollLeft(), + y: W.scrollTop() + }; + + if (locked) { + rez.w = locked[0].clientWidth; + rez.h = locked[0].clientHeight; + + } else { + // See http://bugs.jquery.com/ticket/6724 + rez.w = isTouch && window.innerWidth ? window.innerWidth : W.width(); + rez.h = isTouch && window.innerHeight ? window.innerHeight : W.height(); + } + + return rez; + }, + + // Unbind the keyboard / clicking actions + unbindEvents: function () { + if (F.wrap && isQuery(F.wrap)) { + F.wrap.unbind('.fb'); + } + + D.unbind('.fb'); + W.unbind('.fb'); + }, + + bindEvents: function () { + var current = F.current, + keys; + + if (!current) { + return; + } + + // Changing document height on iOS devices triggers a 'resize' event, + // that can change document height... repeating infinitely + W.bind('orientationchange.fb' + (isTouch ? '' : ' resize.fb') + (current.autoCenter && !current.locked ? ' scroll.fb' : ''), F.update); + + keys = current.keys; + + if (keys) { + D.bind('keydown.fb', function (e) { + var code = e.which || e.keyCode, + target = e.target || e.srcElement; + + // Skip esc key if loading, because showLoading will cancel preloading + if (code === 27 && F.coming) { + return false; + } + + // Ignore key combinations and key events within form elements + if (!e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey && !(target && (target.type || $(target).is('[contenteditable]')))) { + $.each(keys, function(i, val) { + if (current.group.length > 1 && val[ code ] !== undefined) { + F[ i ]( val[ code ] ); + + e.preventDefault(); + return false; + } + + if ($.inArray(code, val) > -1) { + F[ i ] (); + + e.preventDefault(); + return false; + } + }); + } + }); + } + + if ($.fn.mousewheel && current.mouseWheel) { + F.wrap.bind('mousewheel.fb', function (e, delta, deltaX, deltaY) { + var target = e.target || null, + parent = $(target), + canScroll = false; + + while (parent.length) { + if (canScroll || parent.is('.fancybox-skin') || parent.is('.fancybox-wrap')) { + break; + } + + canScroll = isScrollable( parent[0] ); + parent = $(parent).parent(); + } + + if (delta !== 0 && !canScroll) { + if (F.group.length > 1 && !current.canShrink) { + if (deltaY > 0 || deltaX > 0) { + F.prev( deltaY > 0 ? 'down' : 'left' ); + + } else if (deltaY < 0 || deltaX < 0) { + F.next( deltaY < 0 ? 'up' : 'right' ); + } + + e.preventDefault(); + } + } + }); + } + }, + + trigger: function (event, o) { + var ret, obj = o || F.coming || F.current; + + if (!obj) { + return; + } + + if ($.isFunction( obj[event] )) { + ret = obj[event].apply(obj, Array.prototype.slice.call(arguments, 1)); + } + + if (ret === false) { + return false; + } + + if (obj.helpers) { + $.each(obj.helpers, function (helper, opts) { + if (opts && F.helpers[helper] && $.isFunction(F.helpers[helper][event])) { + F.helpers[helper][event]($.extend(true, {}, F.helpers[helper].defaults, opts), obj); + } + }); + } + + D.trigger(event); + }, + + isImage: function (str) { + return isString(str) && str.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i); + }, + + isSWF: function (str) { + return isString(str) && str.match(/\.(swf)((\?|#).*)?$/i); + }, + + _start: function (index) { + var coming = {}, + obj, + href, + type, + margin, + padding; + + index = getScalar( index ); + obj = F.group[ index ] || null; + + if (!obj) { + return false; + } + + coming = $.extend(true, {}, F.opts, obj); + + // Convert margin and padding properties to array - top, right, bottom, left + margin = coming.margin; + padding = coming.padding; + + if ($.type(margin) === 'number') { + coming.margin = [margin, margin, margin, margin]; + } + + if ($.type(padding) === 'number') { + coming.padding = [padding, padding, padding, padding]; + } + + // 'modal' propery is just a shortcut + if (coming.modal) { + $.extend(true, coming, { + closeBtn : false, + closeClick : false, + nextClick : false, + arrows : false, + mouseWheel : false, + keys : null, + helpers: { + overlay : { + closeClick : false + } + } + }); + } + + // 'autoSize' property is a shortcut, too + if (coming.autoSize) { + coming.autoWidth = coming.autoHeight = true; + } + + if (coming.width === 'auto') { + coming.autoWidth = true; + } + + if (coming.height === 'auto') { + coming.autoHeight = true; + } + + /* + * Add reference to the group, so it`s possible to access from callbacks, example: + * afterLoad : function() { + * this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : ''); + * } + */ + + coming.group = F.group; + coming.index = index; + + // Give a chance for callback or helpers to update coming item (type, title, etc) + F.coming = coming; + + if (false === F.trigger('beforeLoad')) { + F.coming = null; + + return; + } + + type = coming.type; + href = coming.href; + + if (!type) { + F.coming = null; + + //If we can not determine content type then drop silently or display next/prev item if looping through gallery + if (F.current && F.router && F.router !== 'jumpto') { + F.current.index = index; + + return F[ F.router ]( F.direction ); + } + + return false; + } + + F.isActive = true; + + if (type === 'image' || type === 'swf') { + coming.autoHeight = coming.autoWidth = false; + coming.scrolling = 'visible'; + } + + if (type === 'image') { + coming.aspectRatio = true; + } + + if (type === 'iframe' && isTouch) { + coming.scrolling = 'scroll'; + } + + // Build the neccessary markup + coming.wrap = $(coming.tpl.wrap).addClass('fancybox-' + (isTouch ? 'mobile' : 'desktop') + ' fancybox-type-' + type + ' fancybox-tmp ' + coming.wrapCSS).appendTo( coming.parent || 'body' ); + + $.extend(coming, { + skin : $('.fancybox-skin', coming.wrap), + outer : $('.fancybox-outer', coming.wrap), + inner : $('.fancybox-inner', coming.wrap) + }); + + $.each(["Top", "Right", "Bottom", "Left"], function(i, v) { + coming.skin.css('padding' + v, getValue(coming.padding[ i ])); + }); + + F.trigger('onReady'); + + // Check before try to load; 'inline' and 'html' types need content, others - href + if (type === 'inline' || type === 'html') { + if (!coming.content || !coming.content.length) { + return F._error( 'content' ); + } + + } else if (!href) { + return F._error( 'href' ); + } + + if (type === 'image') { + F._loadImage(); + + } else if (type === 'ajax') { + F._loadAjax(); + + } else if (type === 'iframe') { + F._loadIframe(); + + } else { + F._afterLoad(); + } + }, + + _error: function ( type ) { + $.extend(F.coming, { + type : 'html', + autoWidth : true, + autoHeight : true, + minWidth : 0, + minHeight : 0, + scrolling : 'no', + hasError : type, + content : F.coming.tpl.error + }); + + F._afterLoad(); + }, + + _loadImage: function () { + // Reset preload image so it is later possible to check "complete" property + var img = F.imgPreload = new Image(); + + img.onload = function () { + this.onload = this.onerror = null; + + F.coming.width = this.width / F.opts.pixelRatio; + F.coming.height = this.height / F.opts.pixelRatio; + + F._afterLoad(); + }; + + img.onerror = function () { + this.onload = this.onerror = null; + + F._error( 'image' ); + }; + + img.src = F.coming.href; + + if (img.complete !== true) { + F.showLoading(); + } + }, + + _loadAjax: function () { + var coming = F.coming; + + F.showLoading(); + + F.ajaxLoad = $.ajax($.extend({}, coming.ajax, { + url: coming.href, + error: function (jqXHR, textStatus) { + if (F.coming && textStatus !== 'abort') { + F._error( 'ajax', jqXHR ); + + } else { + F.hideLoading(); + } + }, + success: function (data, textStatus) { + if (textStatus === 'success') { + coming.content = data; + + F._afterLoad(); + } + } + })); + }, + + _loadIframe: function() { + var coming = F.coming, + iframe = $(coming.tpl.iframe.replace(/\{rnd\}/g, new Date().getTime())) + .attr('scrolling', isTouch ? 'auto' : coming.iframe.scrolling) + .attr('src', coming.href); + + // This helps IE + $(coming.wrap).bind('onReset', function () { + try { + $(this).find('iframe').hide().attr('src', '//about:blank').end().empty(); + } catch (e) {} + }); + + if (coming.iframe.preload) { + F.showLoading(); + + iframe.one('load', function() { + $(this).data('ready', 1); + + // iOS will lose scrolling if we resize + if (!isTouch) { + $(this).bind('load.fb', F.update); + } + + // Without this trick: + // - iframe won't scroll on iOS devices + // - IE7 sometimes displays empty iframe + $(this).parents('.fancybox-wrap').width('100%').removeClass('fancybox-tmp').show(); + + F._afterLoad(); + }); + } + + coming.content = iframe.appendTo( coming.inner ); + + if (!coming.iframe.preload) { + F._afterLoad(); + } + }, + + _preloadImages: function() { + var group = F.group, + current = F.current, + len = group.length, + cnt = current.preload ? Math.min(current.preload, len - 1) : 0, + item, + i; + + for (i = 1; i <= cnt; i += 1) { + item = group[ (current.index + i ) % len ]; + + if (item.type === 'image' && item.href) { + new Image().src = item.href; + } + } + }, + + _afterLoad: function () { + var coming = F.coming, + previous = F.current, + placeholder = 'fancybox-placeholder', + current, + content, + type, + scrolling, + href, + embed; + + F.hideLoading(); + + if (!coming || F.isActive === false) { + return; + } + + if (false === F.trigger('afterLoad', coming, previous)) { + coming.wrap.stop(true).trigger('onReset').remove(); + + F.coming = null; + + return; + } + + if (previous) { + F.trigger('beforeChange', previous); + + previous.wrap.stop(true).removeClass('fancybox-opened') + .find('.fancybox-item, .fancybox-nav') + .remove(); + } + + F.unbindEvents(); + + current = coming; + content = coming.content; + type = coming.type; + scrolling = coming.scrolling; + + $.extend(F, { + wrap : current.wrap, + skin : current.skin, + outer : current.outer, + inner : current.inner, + current : current, + previous : previous + }); + + href = current.href; + + switch (type) { + case 'inline': + case 'ajax': + case 'html': + if (current.selector) { + content = $('
    ').html(content).find(current.selector); + + } else if (isQuery(content)) { + if (!content.data(placeholder)) { + content.data(placeholder, $('
    ').insertAfter( content ).hide() ); + } + + content = content.show().detach(); + + current.wrap.bind('onReset', function () { + if ($(this).find(content).length) { + content.hide().replaceAll( content.data(placeholder) ).data(placeholder, false); + } + }); + } + break; + + case 'image': + content = current.tpl.image.replace('{href}', href); + break; + + case 'swf': + content = ''; + embed = ''; + + $.each(current.swf, function(name, val) { + content += ''; + embed += ' ' + name + '="' + val + '"'; + }); + + content += ''; + break; + } + + if (!(isQuery(content) && content.parent().is(current.inner))) { + current.inner.append( content ); + } + + // Give a chance for helpers or callbacks to update elements + F.trigger('beforeShow'); + + // Set scrolling before calculating dimensions + current.inner.css('overflow', scrolling === 'yes' ? 'scroll' : (scrolling === 'no' ? 'hidden' : scrolling)); + + // Set initial dimensions and start position + F._setDimension(); + + F.reposition(); + + F.isOpen = false; + F.coming = null; + + F.bindEvents(); + + if (!F.isOpened) { + $('.fancybox-wrap').not( current.wrap ).stop(true).trigger('onReset').remove(); + + } else if (previous.prevMethod) { + F.transitions[ previous.prevMethod ](); + } + + F.transitions[ F.isOpened ? current.nextMethod : current.openMethod ](); + + F._preloadImages(); + }, + + _setDimension: function () { + var viewport = F.getViewport(), + steps = 0, + canShrink = false, + canExpand = false, + wrap = F.wrap, + skin = F.skin, + inner = F.inner, + current = F.current, + width = current.width, + height = current.height, + minWidth = current.minWidth, + minHeight = current.minHeight, + maxWidth = current.maxWidth, + maxHeight = current.maxHeight, + scrolling = current.scrolling, + scrollOut = current.scrollOutside ? current.scrollbarWidth : 0, + margin = current.margin, + wMargin = getScalar(margin[1] + margin[3]), + hMargin = getScalar(margin[0] + margin[2]), + wPadding, + hPadding, + wSpace, + hSpace, + origWidth, + origHeight, + origMaxWidth, + origMaxHeight, + ratio, + width_, + height_, + maxWidth_, + maxHeight_, + iframe, + body; + + // Reset dimensions so we could re-check actual size + wrap.add(skin).add(inner).width('auto').height('auto').removeClass('fancybox-tmp'); + + wPadding = getScalar(skin.outerWidth(true) - skin.width()); + hPadding = getScalar(skin.outerHeight(true) - skin.height()); + + // Any space between content and viewport (margin, padding, border, title) + wSpace = wMargin + wPadding; + hSpace = hMargin + hPadding; + + origWidth = isPercentage(width) ? (viewport.w - wSpace) * getScalar(width) / 100 : width; + origHeight = isPercentage(height) ? (viewport.h - hSpace) * getScalar(height) / 100 : height; + + if (current.type === 'iframe') { + iframe = current.content; + + if (current.autoHeight && iframe.data('ready') === 1) { + try { + if (iframe[0].contentWindow.document.location) { + inner.width( origWidth ).height(9999); + + body = iframe.contents().find('body'); + + if (scrollOut) { + body.css('overflow-x', 'hidden'); + } + + origHeight = body.outerHeight(true); + } + + } catch (e) {} + } + + } else if (current.autoWidth || current.autoHeight) { + inner.addClass( 'fancybox-tmp' ); + + // Set width or height in case we need to calculate only one dimension + if (!current.autoWidth) { + inner.width( origWidth ); + } + + if (!current.autoHeight) { + inner.height( origHeight ); + } + + if (current.autoWidth) { + origWidth = inner.width(); + } + + if (current.autoHeight) { + origHeight = inner.height(); + } + + inner.removeClass( 'fancybox-tmp' ); + } + + width = getScalar( origWidth ); + height = getScalar( origHeight ); + + ratio = origWidth / origHeight; + + // Calculations for the content + minWidth = getScalar(isPercentage(minWidth) ? getScalar(minWidth, 'w') - wSpace : minWidth); + maxWidth = getScalar(isPercentage(maxWidth) ? getScalar(maxWidth, 'w') - wSpace : maxWidth); + + minHeight = getScalar(isPercentage(minHeight) ? getScalar(minHeight, 'h') - hSpace : minHeight); + maxHeight = getScalar(isPercentage(maxHeight) ? getScalar(maxHeight, 'h') - hSpace : maxHeight); + + // These will be used to determine if wrap can fit in the viewport + origMaxWidth = maxWidth; + origMaxHeight = maxHeight; + + if (current.fitToView) { + maxWidth = Math.min(viewport.w - wSpace, maxWidth); + maxHeight = Math.min(viewport.h - hSpace, maxHeight); + } + + maxWidth_ = viewport.w - wMargin; + maxHeight_ = viewport.h - hMargin; + + if (current.aspectRatio) { + if (width > maxWidth) { + width = maxWidth; + height = getScalar(width / ratio); + } + + if (height > maxHeight) { + height = maxHeight; + width = getScalar(height * ratio); + } + + if (width < minWidth) { + width = minWidth; + height = getScalar(width / ratio); + } + + if (height < minHeight) { + height = minHeight; + width = getScalar(height * ratio); + } + + } else { + width = Math.max(minWidth, Math.min(width, maxWidth)); + + if (current.autoHeight && current.type !== 'iframe') { + inner.width( width ); + + height = inner.height(); + } + + height = Math.max(minHeight, Math.min(height, maxHeight)); + } + + // Try to fit inside viewport (including the title) + if (current.fitToView) { + inner.width( width ).height( height ); + + wrap.width( width + wPadding ); + + // Real wrap dimensions + width_ = wrap.width(); + height_ = wrap.height(); + + if (current.aspectRatio) { + while ((width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight) { + if (steps++ > 19) { + break; + } + + height = Math.max(minHeight, Math.min(maxHeight, height - 10)); + width = getScalar(height * ratio); + + if (width < minWidth) { + width = minWidth; + height = getScalar(width / ratio); + } + + if (width > maxWidth) { + width = maxWidth; + height = getScalar(width / ratio); + } + + inner.width( width ).height( height ); + + wrap.width( width + wPadding ); + + width_ = wrap.width(); + height_ = wrap.height(); + } + + } else { + width = Math.max(minWidth, Math.min(width, width - (width_ - maxWidth_))); + height = Math.max(minHeight, Math.min(height, height - (height_ - maxHeight_))); + } + } + + if (scrollOut && scrolling === 'auto' && height < origHeight && (width + wPadding + scrollOut) < maxWidth_) { + width += scrollOut; + } + + inner.width( width ).height( height ); + + wrap.width( width + wPadding ); + + width_ = wrap.width(); + height_ = wrap.height(); + + canShrink = (width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight; + canExpand = current.aspectRatio ? (width < origMaxWidth && height < origMaxHeight && width < origWidth && height < origHeight) : ((width < origMaxWidth || height < origMaxHeight) && (width < origWidth || height < origHeight)); + + $.extend(current, { + dim : { + width : getValue( width_ ), + height : getValue( height_ ) + }, + origWidth : origWidth, + origHeight : origHeight, + canShrink : canShrink, + canExpand : canExpand, + wPadding : wPadding, + hPadding : hPadding, + wrapSpace : height_ - skin.outerHeight(true), + skinSpace : skin.height() - height + }); + + if (!iframe && current.autoHeight && height > minHeight && height < maxHeight && !canExpand) { + inner.height('auto'); + } + }, + + _getPosition: function (onlyAbsolute) { + var current = F.current, + viewport = F.getViewport(), + margin = current.margin, + width = F.wrap.width() + margin[1] + margin[3], + height = F.wrap.height() + margin[0] + margin[2], + rez = { + position: 'absolute', + top : margin[0], + left : margin[3] + }; + + if (current.autoCenter && current.fixed && !onlyAbsolute && height <= viewport.h && width <= viewport.w) { + rez.position = 'fixed'; + + } else if (!current.locked) { + rez.top += viewport.y; + rez.left += viewport.x; + } + + rez.top = getValue(Math.max(rez.top, rez.top + ((viewport.h - height) * current.topRatio))); + rez.left = getValue(Math.max(rez.left, rez.left + ((viewport.w - width) * current.leftRatio))); + + return rez; + }, + + _afterZoomIn: function () { + var current = F.current; + + if (!current) { + return; + } + + F.isOpen = F.isOpened = true; + + F.wrap.css('overflow', 'visible').addClass('fancybox-opened'); + + F.update(); + + // Assign a click event + if ( current.closeClick || (current.nextClick && F.group.length > 1) ) { + F.inner.css('cursor', 'pointer').bind('click.fb', function(e) { + if (!$(e.target).is('a') && !$(e.target).parent().is('a')) { + e.preventDefault(); + + F[ current.closeClick ? 'close' : 'next' ](); + } + }); + } + + // Create a close button + if (current.closeBtn) { + $(current.tpl.closeBtn).appendTo(F.skin).bind('click.fb', function(e) { + e.preventDefault(); + + F.close(); + }); + } + + // Create navigation arrows + if (current.arrows && F.group.length > 1) { + if (current.loop || current.index > 0) { + $(current.tpl.prev).appendTo(F.outer).bind('click.fb', F.prev); + } + + if (current.loop || current.index < F.group.length - 1) { + $(current.tpl.next).appendTo(F.outer).bind('click.fb', F.next); + } + } + + F.trigger('afterShow'); + + // Stop the slideshow if this is the last item + if (!current.loop && current.index === current.group.length - 1) { + F.play( false ); + + } else if (F.opts.autoPlay && !F.player.isActive) { + F.opts.autoPlay = false; + + F.play(); + } + }, + + _afterZoomOut: function ( obj ) { + obj = obj || F.current; + + $('.fancybox-wrap').trigger('onReset').remove(); + + $.extend(F, { + group : {}, + opts : {}, + router : false, + current : null, + isActive : false, + isOpened : false, + isOpen : false, + isClosing : false, + wrap : null, + skin : null, + outer : null, + inner : null + }); + + F.trigger('afterClose', obj); + } + }); + + /* + * Default transitions + */ + + F.transitions = { + getOrigPosition: function () { + var current = F.current, + element = current.element, + orig = current.orig, + pos = {}, + width = 50, + height = 50, + hPadding = current.hPadding, + wPadding = current.wPadding, + viewport = F.getViewport(); + + if (!orig && current.isDom && element.is(':visible')) { + orig = element.find('img:first'); + + if (!orig.length) { + orig = element; + } + } + + if (isQuery(orig)) { + pos = orig.offset(); + + if (orig.is('img')) { + width = orig.outerWidth(); + height = orig.outerHeight(); + } + + } else { + pos.top = viewport.y + (viewport.h - height) * current.topRatio; + pos.left = viewport.x + (viewport.w - width) * current.leftRatio; + } + + if (F.wrap.css('position') === 'fixed' || current.locked) { + pos.top -= viewport.y; + pos.left -= viewport.x; + } + + pos = { + top : getValue(pos.top - hPadding * current.topRatio), + left : getValue(pos.left - wPadding * current.leftRatio), + width : getValue(width + wPadding), + height : getValue(height + hPadding) + }; + + return pos; + }, + + step: function (now, fx) { + var ratio, + padding, + value, + prop = fx.prop, + current = F.current, + wrapSpace = current.wrapSpace, + skinSpace = current.skinSpace; + + if (prop === 'width' || prop === 'height') { + ratio = fx.end === fx.start ? 1 : (now - fx.start) / (fx.end - fx.start); + + if (F.isClosing) { + ratio = 1 - ratio; + } + + padding = prop === 'width' ? current.wPadding : current.hPadding; + value = now - padding; + + F.skin[ prop ]( getScalar( prop === 'width' ? value : value - (wrapSpace * ratio) ) ); + F.inner[ prop ]( getScalar( prop === 'width' ? value : value - (wrapSpace * ratio) - (skinSpace * ratio) ) ); + } + }, + + zoomIn: function () { + var current = F.current, + startPos = current.pos, + effect = current.openEffect, + elastic = effect === 'elastic', + endPos = $.extend({opacity : 1}, startPos); + + // Remove "position" property that breaks older IE + delete endPos.position; + + if (elastic) { + startPos = this.getOrigPosition(); + + if (current.openOpacity) { + startPos.opacity = 0.1; + } + + } else if (effect === 'fade') { + startPos.opacity = 0.1; + } + + F.wrap.css(startPos).animate(endPos, { + duration : effect === 'none' ? 0 : current.openSpeed, + easing : current.openEasing, + step : elastic ? this.step : null, + complete : F._afterZoomIn + }); + }, + + zoomOut: function () { + var current = F.current, + effect = current.closeEffect, + elastic = effect === 'elastic', + endPos = {opacity : 0.1}; + + if (elastic) { + endPos = this.getOrigPosition(); + + if (current.closeOpacity) { + endPos.opacity = 0.1; + } + } + + F.wrap.animate(endPos, { + duration : effect === 'none' ? 0 : current.closeSpeed, + easing : current.closeEasing, + step : elastic ? this.step : null, + complete : F._afterZoomOut + }); + }, + + changeIn: function () { + var current = F.current, + effect = current.nextEffect, + startPos = current.pos, + endPos = { opacity : 1 }, + direction = F.direction, + distance = 200, + field; + + startPos.opacity = 0.1; + + if (effect === 'elastic') { + field = direction === 'down' || direction === 'up' ? 'top' : 'left'; + + if (direction === 'down' || direction === 'right') { + startPos[ field ] = getValue(getScalar(startPos[ field ]) - distance); + endPos[ field ] = '+=' + distance + 'px'; + + } else { + startPos[ field ] = getValue(getScalar(startPos[ field ]) + distance); + endPos[ field ] = '-=' + distance + 'px'; + } + } + + // Workaround for http://bugs.jquery.com/ticket/12273 + if (effect === 'none') { + F._afterZoomIn(); + + } else { + F.wrap.css(startPos).animate(endPos, { + duration : current.nextSpeed, + easing : current.nextEasing, + complete : F._afterZoomIn + }); + } + }, + + changeOut: function () { + var previous = F.previous, + effect = previous.prevEffect, + endPos = { opacity : 0.1 }, + direction = F.direction, + distance = 200; + + if (effect === 'elastic') { + endPos[ direction === 'down' || direction === 'up' ? 'top' : 'left' ] = ( direction === 'up' || direction === 'left' ? '-' : '+' ) + '=' + distance + 'px'; + } + + previous.wrap.animate(endPos, { + duration : effect === 'none' ? 0 : previous.prevSpeed, + easing : previous.prevEasing, + complete : function () { + $(this).trigger('onReset').remove(); + } + }); + } + }; + + /* + * Overlay helper + */ + + F.helpers.overlay = { + defaults : { + closeClick : true, // if true, fancyBox will be closed when user clicks on the overlay + speedOut : 200, // duration of fadeOut animation + showEarly : true, // indicates if should be opened immediately or wait until the content is ready + css : {}, // custom CSS properties + locked : !isTouch, // if true, the content will be locked into overlay + fixed : true // if false, the overlay CSS position property will not be set to "fixed" + }, + + overlay : null, // current handle + fixed : false, // indicates if the overlay has position "fixed" + el : $('html'), // element that contains "the lock" + + // Public methods + create : function(opts) { + opts = $.extend({}, this.defaults, opts); + + if (this.overlay) { + this.close(); + } + + this.overlay = $('
    ').appendTo( F.coming ? F.coming.parent : opts.parent ); + this.fixed = false; + + if (opts.fixed && F.defaults.fixed) { + this.overlay.addClass('fancybox-overlay-fixed'); + + this.fixed = true; + } + }, + + open : function(opts) { + var that = this; + + opts = $.extend({}, this.defaults, opts); + + if (this.overlay) { + this.overlay.unbind('.overlay').width('auto').height('auto'); + + } else { + this.create(opts); + } + + if (!this.fixed) { + W.bind('resize.overlay', $.proxy( this.update, this) ); + + this.update(); + } + + if (opts.closeClick) { + this.overlay.bind('click.overlay', function(e) { + if ($(e.target).hasClass('fancybox-overlay')) { + if (F.isActive) { + F.close(); + } else { + that.close(); + } + + return false; + } + }); + } + + this.overlay.css( opts.css ).show(); + }, + + close : function() { + var scrollV, scrollH; + + W.unbind('resize.overlay'); + + if (this.el.hasClass('fancybox-lock')) { + $('.fancybox-margin').removeClass('fancybox-margin'); + + scrollV = W.scrollTop(); + scrollH = W.scrollLeft(); + + this.el.removeClass('fancybox-lock'); + + W.scrollTop( scrollV ).scrollLeft( scrollH ); + } + + $('.fancybox-overlay').remove().hide(); + + $.extend(this, { + overlay : null, + fixed : false + }); + }, + + // Private, callbacks + + update : function () { + var width = '100%', offsetWidth; + + // Reset width/height so it will not mess + this.overlay.width(width).height('100%'); + + // jQuery does not return reliable result for IE + if (IE) { + offsetWidth = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth); + + if (D.width() > offsetWidth) { + width = D.width(); + } + + } else if (D.width() > W.width()) { + width = D.width(); + } + + this.overlay.width(width).height(D.height()); + }, + + // This is where we can manipulate DOM, because later it would cause iframes to reload + onReady : function (opts, obj) { + var overlay = this.overlay; + + $('.fancybox-overlay').stop(true, true); + + if (!overlay) { + this.create(opts); + } + + if (opts.locked && this.fixed && obj.fixed) { + if (!overlay) { + this.margin = D.height() > W.height() ? $('html').css('margin-right').replace("px", "") : false; + } + + obj.locked = this.overlay.append( obj.wrap ); + obj.fixed = false; + } + + if (opts.showEarly === true) { + this.beforeShow.apply(this, arguments); + } + }, + + beforeShow : function(opts, obj) { + var scrollV, scrollH; + + if (obj.locked) { + if (this.margin !== false) { + $('*').filter(function(){ + return ($(this).css('position') === 'fixed' && !$(this).hasClass("fancybox-overlay") && !$(this).hasClass("fancybox-wrap") ); + }).addClass('fancybox-margin'); + + this.el.addClass('fancybox-margin'); + } + + scrollV = W.scrollTop(); + scrollH = W.scrollLeft(); + + this.el.addClass('fancybox-lock'); + + W.scrollTop( scrollV ).scrollLeft( scrollH ); + } + + this.open(opts); + }, + + onUpdate : function() { + if (!this.fixed) { + this.update(); + } + }, + + afterClose: function (opts) { + // Remove overlay if exists and fancyBox is not opening + // (e.g., it is not being open using afterClose callback) + //if (this.overlay && !F.isActive) { + if (this.overlay && !F.coming) { + this.overlay.fadeOut(opts.speedOut, $.proxy( this.close, this )); + } + } + }; + + /* + * Title helper + */ + + F.helpers.title = { + defaults : { + type : 'float', // 'float', 'inside', 'outside' or 'over', + position : 'bottom' // 'top' or 'bottom' + }, + + beforeShow: function (opts) { + var current = F.current, + text = current.title, + type = opts.type, + title, + target; + + if ($.isFunction(text)) { + text = text.call(current.element, current); + } + + if (!isString(text) || $.trim(text) === '') { + return; + } + + title = $('
    ' + text + '
    '); + + switch (type) { + case 'inside': + target = F.skin; + break; + + case 'outside': + target = F.wrap; + break; + + case 'over': + target = F.inner; + break; + + default: // 'float' + target = F.skin; + + title.appendTo('body'); + + if (IE) { + title.width( title.width() ); + } + + title.wrapInner(''); + + //Increase bottom margin so this title will also fit into viewport + F.current.margin[2] += Math.abs( getScalar(title.css('margin-bottom')) ); + break; + } + + title[ (opts.position === 'top' ? 'prependTo' : 'appendTo') ](target); + } + }; + + // jQuery plugin initialization + $.fn.fancybox = function (options) { + var index, + that = $(this), + selector = this.selector || '', + run = function(e) { + var what = $(this).blur(), idx = index, relType, relVal; + + if (!(e.ctrlKey || e.altKey || e.shiftKey || e.metaKey) && !what.is('.fancybox-wrap')) { + relType = options.groupAttr || 'data-fancybox-group'; + relVal = what.attr(relType); + + if (!relVal) { + relType = 'rel'; + relVal = what.get(0)[ relType ]; + } + + if (relVal && relVal !== '' && relVal !== 'nofollow') { + what = selector.length ? $(selector) : that; + what = what.filter('[' + relType + '="' + relVal + '"]'); + idx = what.index(this); + } + + options.index = idx; + + // Stop an event from bubbling if everything is fine + if (F.open(what, options) !== false) { + e.preventDefault(); + } + } + }; + + options = options || {}; + index = options.index || 0; + + if (!selector || options.live === false) { + that.unbind('click.fb-start').bind('click.fb-start', run); + + } else { + D.undelegate(selector, 'click.fb-start').delegate(selector + ":not('.fancybox-item, .fancybox-nav')", 'click.fb-start', run); + } + + this.filter('[data-fancybox-start=1]').trigger('click'); + + return this; + }; + + // Tests that need a body at doc ready + D.ready(function() { + var w1, w2; + + if ( $.scrollbarWidth === undefined ) { + // http://benalman.com/projects/jquery-misc-plugins/#scrollbarwidth + $.scrollbarWidth = function() { + var parent = $('
    ').appendTo('body'), + child = parent.children(), + width = child.innerWidth() - child.height( 99 ).innerWidth(); + + parent.remove(); + + return width; + }; + } + + if ( $.support.fixedPosition === undefined ) { + $.support.fixedPosition = (function() { + var elem = $('
    ').appendTo('body'), + fixed = ( elem[0].offsetTop === 20 || elem[0].offsetTop === 15 ); + + elem.remove(); + + return fixed; + }()); + } + + $.extend(F.defaults, { + scrollbarWidth : $.scrollbarWidth(), + fixed : $.support.fixedPosition, + parent : $('body') + }); + + //Get real width of page scroll-bar + w1 = $(window).width(); + + H.addClass('fancybox-lock-test'); + + w2 = $(window).width(); + + H.removeClass('fancybox-lock-test'); + + $("").appendTo("head"); + }); + +}(window, document, jQuery)); \ No newline at end of file diff --git a/fancybox/source/jquery.fancybox.pack.js b/fancybox/source/jquery.fancybox.pack.js new file mode 100644 index 00000000..73f75784 --- /dev/null +++ b/fancybox/source/jquery.fancybox.pack.js @@ -0,0 +1,46 @@ +/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */ +(function(r,G,f,v){var J=f("html"),n=f(r),p=f(G),b=f.fancybox=function(){b.open.apply(this,arguments)},I=navigator.userAgent.match(/msie/i),B=null,s=G.createTouch!==v,t=function(a){return a&&a.hasOwnProperty&&a instanceof f},q=function(a){return a&&"string"===f.type(a)},E=function(a){return q(a)&&0
    ',image:'',iframe:'",error:'

    The requested content cannot be loaded.
    Please try again later.

    ',closeBtn:'',next:'',prev:''},openEffect:"fade",openSpeed:250,openEasing:"swing",openOpacity:!0, +openMethod:"zoomIn",closeEffect:"fade",closeSpeed:250,closeEasing:"swing",closeOpacity:!0,closeMethod:"zoomOut",nextEffect:"elastic",nextSpeed:250,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic",prevSpeed:250,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:!0,title:!0},onCancel:f.noop,beforeLoad:f.noop,afterLoad:f.noop,beforeShow:f.noop,afterShow:f.noop,beforeChange:f.noop,beforeClose:f.noop,afterClose:f.noop},group:{},opts:{},previous:null,coming:null,current:null,isActive:!1, +isOpen:!1,isOpened:!1,wrap:null,skin:null,outer:null,inner:null,player:{timer:null,isActive:!1},ajaxLoad:null,imgPreload:null,transitions:{},helpers:{},open:function(a,d){if(a&&(f.isPlainObject(d)||(d={}),!1!==b.close(!0)))return f.isArray(a)||(a=t(a)?f(a).get():[a]),f.each(a,function(e,c){var k={},g,h,j,m,l;"object"===f.type(c)&&(c.nodeType&&(c=f(c)),t(c)?(k={href:c.data("fancybox-href")||c.attr("href"),title:c.data("fancybox-title")||c.attr("title"),isDom:!0,element:c},f.metadata&&f.extend(!0,k, +c.metadata())):k=c);g=d.href||k.href||(q(c)?c:null);h=d.title!==v?d.title:k.title||"";m=(j=d.content||k.content)?"html":d.type||k.type;!m&&k.isDom&&(m=c.data("fancybox-type"),m||(m=(m=c.prop("class").match(/fancybox\.(\w+)/))?m[1]:null));q(g)&&(m||(b.isImage(g)?m="image":b.isSWF(g)?m="swf":"#"===g.charAt(0)?m="inline":q(c)&&(m="html",j=c)),"ajax"===m&&(l=g.split(/\s+/,2),g=l.shift(),l=l.shift()));j||("inline"===m?g?j=f(q(g)?g.replace(/.*(?=#[^\s]+$)/,""):g):k.isDom&&(j=c):"html"===m?j=g:!m&&(!g&& +k.isDom)&&(m="inline",j=c));f.extend(k,{href:g,type:m,content:j,title:h,selector:l});a[e]=k}),b.opts=f.extend(!0,{},b.defaults,d),d.keys!==v&&(b.opts.keys=d.keys?f.extend({},b.defaults.keys,d.keys):!1),b.group=a,b._start(b.opts.index)},cancel:function(){var a=b.coming;a&&!1!==b.trigger("onCancel")&&(b.hideLoading(),b.ajaxLoad&&b.ajaxLoad.abort(),b.ajaxLoad=null,b.imgPreload&&(b.imgPreload.onload=b.imgPreload.onerror=null),a.wrap&&a.wrap.stop(!0,!0).trigger("onReset").remove(),b.coming=null,b.current|| +b._afterZoomOut(a))},close:function(a){b.cancel();!1!==b.trigger("beforeClose")&&(b.unbindEvents(),b.isActive&&(!b.isOpen||!0===a?(f(".fancybox-wrap").stop(!0).trigger("onReset").remove(),b._afterZoomOut()):(b.isOpen=b.isOpened=!1,b.isClosing=!0,f(".fancybox-item, .fancybox-nav").remove(),b.wrap.stop(!0,!0).removeClass("fancybox-opened"),b.transitions[b.current.closeMethod]())))},play:function(a){var d=function(){clearTimeout(b.player.timer)},e=function(){d();b.current&&b.player.isActive&&(b.player.timer= +setTimeout(b.next,b.current.playSpeed))},c=function(){d();p.unbind(".player");b.player.isActive=!1;b.trigger("onPlayEnd")};if(!0===a||!b.player.isActive&&!1!==a){if(b.current&&(b.current.loop||b.current.index=c.index?"next":"prev"],b.router=e||"jumpto",c.loop&&(0>a&&(a=c.group.length+a%c.group.length),a%=c.group.length),c.group[a]!==v&&(b.cancel(),b._start(a)))},reposition:function(a,d){var e=b.current,c=e?e.wrap:null,k;c&&(k=b._getPosition(d),a&&"scroll"===a.type?(delete k.position,c.stop(!0,!0).animate(k,200)):(c.css(k),e.pos=f.extend({},e.dim,k)))},update:function(a){var d= +a&&a.type,e=!d||"orientationchange"===d;e&&(clearTimeout(B),B=null);b.isOpen&&!B&&(B=setTimeout(function(){var c=b.current;c&&!b.isClosing&&(b.wrap.removeClass("fancybox-tmp"),(e||"load"===d||"resize"===d&&c.autoResize)&&b._setDimension(),"scroll"===d&&c.canShrink||b.reposition(a),b.trigger("onUpdate"),B=null)},e&&!s?0:300))},toggle:function(a){b.isOpen&&(b.current.fitToView="boolean"===f.type(a)?a:!b.current.fitToView,s&&(b.wrap.removeAttr("style").addClass("fancybox-tmp"),b.trigger("onUpdate")), +b.update())},hideLoading:function(){p.unbind(".loading");f("#fancybox-loading").remove()},showLoading:function(){var a,d;b.hideLoading();a=f('
    ').click(b.cancel).appendTo("body");p.bind("keydown.loading",function(a){if(27===(a.which||a.keyCode))a.preventDefault(),b.cancel()});b.defaults.fixed||(d=b.getViewport(),a.css({position:"absolute",top:0.5*d.h+d.y,left:0.5*d.w+d.x}))},getViewport:function(){var a=b.current&&b.current.locked||!1,d={x:n.scrollLeft(), +y:n.scrollTop()};a?(d.w=a[0].clientWidth,d.h=a[0].clientHeight):(d.w=s&&r.innerWidth?r.innerWidth:n.width(),d.h=s&&r.innerHeight?r.innerHeight:n.height());return d},unbindEvents:function(){b.wrap&&t(b.wrap)&&b.wrap.unbind(".fb");p.unbind(".fb");n.unbind(".fb")},bindEvents:function(){var a=b.current,d;a&&(n.bind("orientationchange.fb"+(s?"":" resize.fb")+(a.autoCenter&&!a.locked?" scroll.fb":""),b.update),(d=a.keys)&&p.bind("keydown.fb",function(e){var c=e.which||e.keyCode,k=e.target||e.srcElement; +if(27===c&&b.coming)return!1;!e.ctrlKey&&(!e.altKey&&!e.shiftKey&&!e.metaKey&&(!k||!k.type&&!f(k).is("[contenteditable]")))&&f.each(d,function(d,k){if(1h[0].clientWidth||h[0].clientHeight&&h[0].scrollHeight>h[0].clientHeight),h=f(h).parent();if(0!==c&&!j&&1g||0>k)b.next(0>g?"up":"right");d.preventDefault()}}))},trigger:function(a,d){var e,c=d||b.coming||b.current;if(c){f.isFunction(c[a])&&(e=c[a].apply(c,Array.prototype.slice.call(arguments,1)));if(!1===e)return!1;c.helpers&&f.each(c.helpers,function(d,e){if(e&&b.helpers[d]&&f.isFunction(b.helpers[d][a]))b.helpers[d][a](f.extend(!0, +{},b.helpers[d].defaults,e),c)});p.trigger(a)}},isImage:function(a){return q(a)&&a.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i)},isSWF:function(a){return q(a)&&a.match(/\.(swf)((\?|#).*)?$/i)},_start:function(a){var d={},e,c;a=l(a);e=b.group[a]||null;if(!e)return!1;d=f.extend(!0,{},b.opts,e);e=d.margin;c=d.padding;"number"===f.type(e)&&(d.margin=[e,e,e,e]);"number"===f.type(c)&&(d.padding=[c,c,c,c]);d.modal&&f.extend(!0,d,{closeBtn:!1,closeClick:!1,nextClick:!1,arrows:!1, +mouseWheel:!1,keys:null,helpers:{overlay:{closeClick:!1}}});d.autoSize&&(d.autoWidth=d.autoHeight=!0);"auto"===d.width&&(d.autoWidth=!0);"auto"===d.height&&(d.autoHeight=!0);d.group=b.group;d.index=a;b.coming=d;if(!1===b.trigger("beforeLoad"))b.coming=null;else{c=d.type;e=d.href;if(!c)return b.coming=null,b.current&&b.router&&"jumpto"!==b.router?(b.current.index=a,b[b.router](b.direction)):!1;b.isActive=!0;if("image"===c||"swf"===c)d.autoHeight=d.autoWidth=!1,d.scrolling="visible";"image"===c&&(d.aspectRatio= +!0);"iframe"===c&&s&&(d.scrolling="scroll");d.wrap=f(d.tpl.wrap).addClass("fancybox-"+(s?"mobile":"desktop")+" fancybox-type-"+c+" fancybox-tmp "+d.wrapCSS).appendTo(d.parent||"body");f.extend(d,{skin:f(".fancybox-skin",d.wrap),outer:f(".fancybox-outer",d.wrap),inner:f(".fancybox-inner",d.wrap)});f.each(["Top","Right","Bottom","Left"],function(a,b){d.skin.css("padding"+b,w(d.padding[a]))});b.trigger("onReady");if("inline"===c||"html"===c){if(!d.content||!d.content.length)return b._error("content")}else if(!e)return b._error("href"); +"image"===c?b._loadImage():"ajax"===c?b._loadAjax():"iframe"===c?b._loadIframe():b._afterLoad()}},_error:function(a){f.extend(b.coming,{type:"html",autoWidth:!0,autoHeight:!0,minWidth:0,minHeight:0,scrolling:"no",hasError:a,content:b.coming.tpl.error});b._afterLoad()},_loadImage:function(){var a=b.imgPreload=new Image;a.onload=function(){this.onload=this.onerror=null;b.coming.width=this.width/b.opts.pixelRatio;b.coming.height=this.height/b.opts.pixelRatio;b._afterLoad()};a.onerror=function(){this.onload= +this.onerror=null;b._error("image")};a.src=b.coming.href;!0!==a.complete&&b.showLoading()},_loadAjax:function(){var a=b.coming;b.showLoading();b.ajaxLoad=f.ajax(f.extend({},a.ajax,{url:a.href,error:function(a,e){b.coming&&"abort"!==e?b._error("ajax",a):b.hideLoading()},success:function(d,e){"success"===e&&(a.content=d,b._afterLoad())}}))},_loadIframe:function(){var a=b.coming,d=f(a.tpl.iframe.replace(/\{rnd\}/g,(new Date).getTime())).attr("scrolling",s?"auto":a.iframe.scrolling).attr("src",a.href); +f(a.wrap).bind("onReset",function(){try{f(this).find("iframe").hide().attr("src","//about:blank").end().empty()}catch(a){}});a.iframe.preload&&(b.showLoading(),d.one("load",function(){f(this).data("ready",1);s||f(this).bind("load.fb",b.update);f(this).parents(".fancybox-wrap").width("100%").removeClass("fancybox-tmp").show();b._afterLoad()}));a.content=d.appendTo(a.inner);a.iframe.preload||b._afterLoad()},_preloadImages:function(){var a=b.group,d=b.current,e=a.length,c=d.preload?Math.min(d.preload, +e-1):0,f,g;for(g=1;g<=c;g+=1)f=a[(d.index+g)%e],"image"===f.type&&f.href&&((new Image).src=f.href)},_afterLoad:function(){var a=b.coming,d=b.current,e,c,k,g,h;b.hideLoading();if(a&&!1!==b.isActive)if(!1===b.trigger("afterLoad",a,d))a.wrap.stop(!0).trigger("onReset").remove(),b.coming=null;else{d&&(b.trigger("beforeChange",d),d.wrap.stop(!0).removeClass("fancybox-opened").find(".fancybox-item, .fancybox-nav").remove());b.unbindEvents();e=a.content;c=a.type;k=a.scrolling;f.extend(b,{wrap:a.wrap,skin:a.skin, +outer:a.outer,inner:a.inner,current:a,previous:d});g=a.href;switch(c){case "inline":case "ajax":case "html":a.selector?e=f("
    ").html(e).find(a.selector):t(e)&&(e.data("fancybox-placeholder")||e.data("fancybox-placeholder",f('
    ').insertAfter(e).hide()),e=e.show().detach(),a.wrap.bind("onReset",function(){f(this).find(e).length&&e.hide().replaceAll(e.data("fancybox-placeholder")).data("fancybox-placeholder",!1)}));break;case "image":e=a.tpl.image.replace("{href}", +g);break;case "swf":e='',h="",f.each(a.swf,function(a,b){e+='';h+=" "+a+'="'+b+'"'}),e+='"}(!t(e)||!e.parent().is(a.inner))&&a.inner.append(e);b.trigger("beforeShow");a.inner.css("overflow","yes"===k?"scroll": +"no"===k?"hidden":k);b._setDimension();b.reposition();b.isOpen=!1;b.coming=null;b.bindEvents();if(b.isOpened){if(d.prevMethod)b.transitions[d.prevMethod]()}else f(".fancybox-wrap").not(a.wrap).stop(!0).trigger("onReset").remove();b.transitions[b.isOpened?a.nextMethod:a.openMethod]();b._preloadImages()}},_setDimension:function(){var a=b.getViewport(),d=0,e=!1,c=!1,e=b.wrap,k=b.skin,g=b.inner,h=b.current,c=h.width,j=h.height,m=h.minWidth,u=h.minHeight,n=h.maxWidth,p=h.maxHeight,s=h.scrolling,q=h.scrollOutside? +h.scrollbarWidth:0,x=h.margin,y=l(x[1]+x[3]),r=l(x[0]+x[2]),v,z,t,C,A,F,B,D,H;e.add(k).add(g).width("auto").height("auto").removeClass("fancybox-tmp");x=l(k.outerWidth(!0)-k.width());v=l(k.outerHeight(!0)-k.height());z=y+x;t=r+v;C=E(c)?(a.w-z)*l(c)/100:c;A=E(j)?(a.h-t)*l(j)/100:j;if("iframe"===h.type){if(H=h.content,h.autoHeight&&1===H.data("ready"))try{H[0].contentWindow.document.location&&(g.width(C).height(9999),F=H.contents().find("body"),q&&F.css("overflow-x","hidden"),A=F.outerHeight(!0))}catch(G){}}else if(h.autoWidth|| +h.autoHeight)g.addClass("fancybox-tmp"),h.autoWidth||g.width(C),h.autoHeight||g.height(A),h.autoWidth&&(C=g.width()),h.autoHeight&&(A=g.height()),g.removeClass("fancybox-tmp");c=l(C);j=l(A);D=C/A;m=l(E(m)?l(m,"w")-z:m);n=l(E(n)?l(n,"w")-z:n);u=l(E(u)?l(u,"h")-t:u);p=l(E(p)?l(p,"h")-t:p);F=n;B=p;h.fitToView&&(n=Math.min(a.w-z,n),p=Math.min(a.h-t,p));z=a.w-y;r=a.h-r;h.aspectRatio?(c>n&&(c=n,j=l(c/D)),j>p&&(j=p,c=l(j*D)),cz||y>r)&&(c>m&&j>u)&&!(19n&&(c=n,j=l(c/D)),g.width(c).height(j),e.width(c+x),a=e.width(),y=e.height();else c=Math.max(m,Math.min(c,c-(a-z))),j=Math.max(u,Math.min(j,j-(y-r)));q&&("auto"===s&&jz||y>r)&&c>m&&j>u;c=h.aspectRatio?cu&&j
    ').appendTo(b.coming?b.coming.parent:a.parent);this.fixed=!1;a.fixed&&b.defaults.fixed&&(this.overlay.addClass("fancybox-overlay-fixed"),this.fixed=!0)},open:function(a){var d=this;a=f.extend({},this.defaults,a);this.overlay?this.overlay.unbind(".overlay").width("auto").height("auto"):this.create(a);this.fixed||(n.bind("resize.overlay",f.proxy(this.update,this)),this.update());a.closeClick&&this.overlay.bind("click.overlay",function(a){if(f(a.target).hasClass("fancybox-overlay"))return b.isActive? +b.close():d.close(),!1});this.overlay.css(a.css).show()},close:function(){var a,b;n.unbind("resize.overlay");this.el.hasClass("fancybox-lock")&&(f(".fancybox-margin").removeClass("fancybox-margin"),a=n.scrollTop(),b=n.scrollLeft(),this.el.removeClass("fancybox-lock"),n.scrollTop(a).scrollLeft(b));f(".fancybox-overlay").remove().hide();f.extend(this,{overlay:null,fixed:!1})},update:function(){var a="100%",b;this.overlay.width(a).height("100%");I?(b=Math.max(G.documentElement.offsetWidth,G.body.offsetWidth), +p.width()>b&&(a=p.width())):p.width()>n.width()&&(a=p.width());this.overlay.width(a).height(p.height())},onReady:function(a,b){var e=this.overlay;f(".fancybox-overlay").stop(!0,!0);e||this.create(a);a.locked&&(this.fixed&&b.fixed)&&(e||(this.margin=p.height()>n.height()?f("html").css("margin-right").replace("px",""):!1),b.locked=this.overlay.append(b.wrap),b.fixed=!1);!0===a.showEarly&&this.beforeShow.apply(this,arguments)},beforeShow:function(a,b){var e,c;b.locked&&(!1!==this.margin&&(f("*").filter(function(){return"fixed"=== +f(this).css("position")&&!f(this).hasClass("fancybox-overlay")&&!f(this).hasClass("fancybox-wrap")}).addClass("fancybox-margin"),this.el.addClass("fancybox-margin")),e=n.scrollTop(),c=n.scrollLeft(),this.el.addClass("fancybox-lock"),n.scrollTop(e).scrollLeft(c));this.open(a)},onUpdate:function(){this.fixed||this.update()},afterClose:function(a){this.overlay&&!b.coming&&this.overlay.fadeOut(a.speedOut,f.proxy(this.close,this))}};b.helpers.title={defaults:{type:"float",position:"bottom"},beforeShow:function(a){var d= +b.current,e=d.title,c=a.type;f.isFunction(e)&&(e=e.call(d.element,d));if(q(e)&&""!==f.trim(e)){d=f('
    '+e+"
    ");switch(c){case "inside":c=b.skin;break;case "outside":c=b.wrap;break;case "over":c=b.inner;break;default:c=b.skin,d.appendTo("body"),I&&d.width(d.width()),d.wrapInner(''),b.current.margin[2]+=Math.abs(l(d.css("margin-bottom")))}d["top"===a.position?"prependTo":"appendTo"](c)}}};f.fn.fancybox=function(a){var d, +e=f(this),c=this.selector||"",k=function(g){var h=f(this).blur(),j=d,k,l;!g.ctrlKey&&(!g.altKey&&!g.shiftKey&&!g.metaKey)&&!h.is(".fancybox-wrap")&&(k=a.groupAttr||"data-fancybox-group",l=h.attr(k),l||(k="rel",l=h.get(0)[k]),l&&(""!==l&&"nofollow"!==l)&&(h=c.length?f(c):e,h=h.filter("["+k+'="'+l+'"]'),j=h.index(this)),a.index=j,!1!==b.open(h,a)&&g.preventDefault())};a=a||{};d=a.index||0;!c||!1===a.live?e.unbind("click.fb-start").bind("click.fb-start",k):p.undelegate(c,"click.fb-start").delegate(c+ +":not('.fancybox-item, .fancybox-nav')","click.fb-start",k);this.filter("[data-fancybox-start=1]").trigger("click");return this};p.ready(function(){var a,d;f.scrollbarWidth===v&&(f.scrollbarWidth=function(){var a=f('
    ').appendTo("body"),b=a.children(),b=b.innerWidth()-b.height(99).innerWidth();a.remove();return b});if(f.support.fixedPosition===v){a=f.support;d=f('
    ').appendTo("body");var e=20=== +d[0].offsetTop||15===d[0].offsetTop;d.remove();a.fixedPosition=e}f.extend(b.defaults,{scrollbarWidth:f.scrollbarWidth(),fixed:f.support.fixedPosition,parent:f("body")});a=f(r).width();J.addClass("fancybox-lock-test");d=f(r).width();J.removeClass("fancybox-lock-test");f("").appendTo("head")})})(window,document,jQuery); \ No newline at end of file diff --git a/fancybox/sprite.psd b/fancybox/sprite.psd new file mode 100644 index 0000000000000000000000000000000000000000..6f2032db60b78d7858a42f3ce7c8578dfd5639fc GIT binary patch literal 250491 zcmeD^31Cyjwv%)(rR<2Tp@M5^(!FIVl$Jt)mP*Sah#1&zYN>yX4-RO}_fxO`E%%nKR3oGv}O{IWx%_ zTvkqWg#APkqBFtccoIt@SkT|fat0TdL_!FBV!G-Hfqz0_y(z5q&&RGkZhWuPGmCGm zdFjKdZR==QFAU3ly#K(N_2$ZH7Pn!FrN(L>ko4=D>yr%DssTykGD}P)^#zt%>#*5Q zOZn{5ipts3Ds!un2Ij^0pV@b2U45O!Z8prTv)NsJXAVd*S2?Cw`oc4UjY$R?#XW66 zQa%P4#+Q^C3LH+0AtNQVPo*h6%aDkv#Pr9=)xjTp71sxsn+eT?`t&9m@y+|MtX|FSz}Di&CNBM(u`?o zeIQ03*DSl+JhPA8bqSjYmrkL@Rq3?WyRDElrfZ(!XmAfmO2Ul1AGUH;mEL^n8=N+p zOI4-OVzbm)>~5DaH6_*PO&oChS5@|{b~x+I?mTmSz0F!_#$1fk?Nuq1NGbKT4!6Tq z>!|N<2ueq*j;TuE{z^U5T<3B~2qO6*(h4O_+utrZf#;#VWJg98fC4xEG)?N=nq5 zqpr@UMM_Hg7CI^$kjsh-^BNkgRejS6atiZJh50$D*+oOrQi0hs3kGMUXBHI<8Iqfy znnkH9#uL*7!iw!Kx7l84;nFM`l0L*_N*kPOV$;k?&rKhanNyIP1AQ?gJB>?IfcJaT z$8D|VJF|#eF~pZ$5!!c@(+ZTKohvW3ztIOKs5lK9KicAQ*cz}i=7HFOk1-Xm9#mnl z6!jW)RAI0bmB$=ox4QFynzS$yuoSBlsx{qGXsxlh04FmmIW03AzB%yCO-{>7OHRwq zfG@yuGLkdXP4G>HXMpFVC#U6RC8wKGlhadk;G3JAnFinVG=M=m*(Ufx+-!W$gmCz# zXQZd~%S}y9&C1HkP0JsgnUS4akWpBeYZ{!Eo>h=Fq#!e&E4Zj+o?`!QLd!DKs=x;r z;>!mJ?OSG@X|atjv_d~|VcX{9^f$@|2#CywU&AA&n=*u$f)FWYfy3r-mV@TBAm`D< z1R!Z_5y{fCa~`k7Q!pw!j<9z17)OUKqy|J zv~Xo1+4MOFuenf8xY9Vened#QhVX1)Hn;*yW~Amqns`Or+#JNs&A~XiIT$B5m&VCW zrO%jJE=?^r7jp#3Mz4SiIwUI@*ftqhJvl2mJ2@vgHyKEinwp%NmYkZNoSKmgYz&c7 zvy*}6!K6roo&X&I`bZ{p7vOg27{KrSa)8BC)ALgYXBQQivau<0vkM1jqyd}5lPTNN zn4%W@y_wvr{^b>dH`tfmy+M5`w}Ilbfff6?>T2gR}AVhQ-VW&X7#p#|k z5)$hJ2q{(WD%j@OpG{p<9Dr6?E8ThVas8)RX5~Q=DQsf(PS`P+Qf98P6wwWlDP<+Y z98T+O2khIj!4|0gMvM<=9&~wpw-tA&rc|=~6FHo?{w_BpUn9tFs$&Wpx4+R779XdY zq}6Sy%Xd1>v-m{K_zFb=M6OT@Y51=eCIW@F!FDs)41o`ru4;*3Yo6OuWHZ-zO9b(O zh?W|QGY__^agVfsMy`bYja;!|OKG4jA=p31W#+B2Y&-rH+CipLNO6vAu+4>g{4+I0 zd8OF~to+~843Y|YI|9)EPuCB|f|P?z+W%ehNTyQWM)*@oBd)*_&iU(0B!!B3TjNjC zC0q?tDp);RZw9?T*=nzLOy;zyoR%&tDJv^1!?*>o53$r-XW_(`KywD8M*>yos`}Gc zqsR5-=>xVYLUz+#f34I%>>+aq277K|pT1xsUBn!28l( zCNjPAtEM)%+?FZ?jA##2q&4*A1lnYMQsFENLF0MaQ~{iwEzbeDV(_1g1Ar98V5`8? z!e3e%`?9uL#r_H+nlJwtyZOITMh8?w->&&TC#2=+1knE;DIHi9eR<)3PE6O=SN->j zYNg5v#Py$H^di+YoLv_Kt?tCJ%he%8k{fMO8~hSW*t(x1ikWg|wtxLE-2mTye>Z$CEW9j^L^dX-$T~ zRR@2bJ3V#tQW};>ukuogPfhlkKK&%iqYdO*G8J`q1-uv`ekgcF8&vxlz2fvYj}4G&%=B#B;CFElou z<4Q;yo%F-D7}gSNj`ZtB6s8hiXSI)lqwuWm zS)N$PFY$HenPMomCmC$Bmv~~aG)qUQ9tr7NX39~LGRIXrVWzR%ZK)qMWojj$iK~fC zfHko=@hDSIPVE8MqRL`-KuLM9emusd$&H3Jw<<@<Fm_Vn2~?I8QL}ED%W{i`c3L zC=3YIfK$5&m{}>c_!$o8v|@Y3?^U`MnBJ%ccTfqc6_AW9u)95kN2;`{u{oxgZ6Mbw zr{PlaSldV!!r>EFYj%}5kTjGDDGz7RkRrJH@&oN(5`Jj!s0trQGKwDP>*DgD zDWc>ggqLoe@l}5cF4!l0bHQ_!W2cy1bV|Eo$oL9)k0N70=2}4F;wKu;3bt3d#O*n{ z(wz!nG@lAby+J?%GSX5lBncVpcGR)qIuj;1x~7&3N2ZK+!J)wxt`<5`K2bCbBDIBY z41Fms6yz0C<8(CCi$Kw^;tpp!TcBG2PQs9KOdZxq0S50a%?)nHP>UUVjHLiy{6VT!{I4CMoF0Zm*h ziB5aO<(L*pfUj=gQToj4k5&{s41$J@wAvkd=o@u*w-Zl_9DmIOL(C@7ba9}QfX~g9 zuKJSlBJ3LkPLVX=aguCG^a@lywVf5sTlx$uGZ+M6fjqXUtak#Db!8Aay$X)%hUYur z**3#nk8mt?`zh1#nd*-APADKecS3j#`I+3@36(>Bv}+{nXtOdjS~3|1c4auE;luqpEiS$iiToxbH^ zy`Bd7e+MCJz7W)>Bl3&j+;*#_G6f0h{rHXGjj8+~$S(!+^B!|*C}exE0lB&oj`3}9 z8eDjguc42Wi9<#d6iZN!T?-O%?Nbn<^S0Z_xUmF#-nbt7S-yv72&Y%kMgJhY z>Rnc<6-dG83PWXsb2=L(5^qr?p0pzE$;G5QxrAH}wtE`MCjH1DGK35#qhLI94Y>|R zFtwx(bn6WAH*zbvi`+{dB9Dcp*T`D(7I}|+L_Q;5l5J!s*-iG5L*ytq zMb3fw9HVQgYp1(d*F)D^ca<(pm!r$m4bhF%jn-YGyIxnLv+Ejkf79KryH__?_k`{l z-7?*)x;J$1=|0hYrTa#=M|VK?o32qGp-<4a*LTxjsyFI$^!fS``U?FdeU1JG{cQam z`Umv?)GyYr(67a-H!JSJxaZ>5#eEUCFYa7? zoA}G(2gFyzPmRAd{-5zH<3Ei5F8+9n7A=xmkE&kc!l@|YQv8Tn^gtiG+ zCKM!Go6wN(K*G|5cN4xzINq{l%S&4hYB`~$yX6Bdm$lr`@`sjZ65A!FBo-%DCC*7) zkhmssbK)RRw?zi);G6a(E5$mJ6fM?)2>Zw zn^A4*+T7RX#WtU``MGUO+e_OHX-b>D*E(+R*mzO5 zi}EkBT=b8NR$jFEqSKwabQ;vj(&?T~FL&D3sqtdN#X~NhcJad(uf6#D&XJw3?0j|S z8J(Z%{9)(AUD|i)*QK({JzZYw@@-dr*DJe@?s{X_XS;6fda_&hZbQ4(cbngBL$|}- zJ9Zz`eQNhdyT8-@K#z7k@_JZ%JlbP@kAsE|hJ1s~@K3`BhNC^Z_8iu;q31I_H}yQ1 zbXn4vq}!5SPWt|m_)BswslMdVOWwcaXs;fVA?8}y4_TA+zFCTdM4VN#zeCrj_SL9qV?TRO_`0`5qm6=!8 zUb*1PFRs#Gm35W%swc1dDme;{(6%QpPTtWcp-+CF>3x>>*^|;SWn{{2DQi=HG4?V} zFg|Sj*w}2!G}%ngnRceOO&y+kTk5*h-_ov3t4v#vwl%$FdQtkE^w-mmWn7hE$#^Q` z>&$kUC7E|;zMt8Ym7V3xTA6hqyI1!0*$cCGq_gLCKPzLk5nZ&qJ- z-`D#7+OJQ)Y5iX8_jCWt`dj)x*MIMTqygpu&kWd|XUMxg@9DhV1A7iM4_rL(KZ7nA zR5j@NLHqNs$e)_OBLA1croqm^s|TMh=v#18!MlYKg+mMPDcm%q?T|4;o*42&QBqM& z(ek3BLo#2#mkD14$mHb)9?>QB#bB@@x+M#jJ$HBbL6@b zeaY~WM@qgc?OkdwT|0`5DjxO7sPD@zE4!iW&8wrYF1vcc)jy3+9sRe_AD6c)pIrW8 z`KgM*6%SVI9CP`YhB5DtZ8i4VvCGDu9#=SS?zr9KjpJ_`|JgO2ud!b9`h=JXV<$X6 z;pD_26Cazn@7m03@49yTq{}AFob<_cov*W9_x9vglg*P?T_1J*xa(iM{=9jVd9nHA zl;SB1ryQ*;sC>NgP}QKSN2?B423Y1=_E!(6o?HEM&48LmY7W#6tesbT*jiwH!g_4# zu&Ilto}M;p+R|x^ZJh1py4bqw>)x=pwNJBu;OOp{>G-Pts`|U?ci+(WhR1F=>Kx&G z-lcO*a=q?u560BShRYl7Y}hkBZ~B7iXJ(9@v1(?Unf93*XI(k#AG7w)E}FgM#>g8h zZ+!o6J^yy=-}c;;f73HJ>u#QM^ZRoynRCaSeYXs~<%L`0Z=H7Q=eL<|n|s@d+sEC$ z?v8GE+;Yd>JBQx6{I0~ioOkWGyWic5{vP>v>)$v1BmE!q|IvI;)jglyYr1#dz31<% zyzkTdQ}6%h{mcW^4{Ulc>%pfUihjuc(DsK1KK#PmHgjjs-TO$%BWoTtJbKTgCmx&p z*eCNc<}G?W{_%##cmH$bKVP5UYyLy?&p%Q7#I^;47reZ%>%xC5JpE+VlbfF!^wi2l z-4@-usPSp*(_cR`^qDn_FI_zE+307dKl{^jW1stYNzRgG&v$}~KH*Edj>JK)3IO4;9e^m6*hL7_Kg;@T&Bn})t3S{DeD$WRO>4f${^Ip7bH7~oRsXNv**tLbds_;( ze6+QA>u1|aw|%vJ%=WK$T)SiU*HvHt{Eh9KW8Y5y_T0`}zKi!4pZ9vy#l-!bPg=C}KfUwnM&iHsBPpDa81!>PJc=T6^q z=HfFioXt7=apSng{pV(!k2(L(rYoA(HIHcij;Ui9I@V}UtpPL!*jX&Jph^6_a6x+_ z1-?(i_dYN-ZUMN1bRs(DYi2iTJ-n#6i0JeL=1*Zn!WosIBq267HZC?HE-s->i})68IR-fqpzU_C+7Nt!f2{7-HHnC8hln7lC(YMh>w9zr&!-PNt^MP(4lroB)>4O5} zCju%L85JE98yDXKrisOYI--x@0$USZq%J}qsgH_@j*W^)NQb~S5s^LHrbgvoZElxz z!>wu2?H_*T)xnqa>M;7fDd`!`+rBD@={>jn=$>PhuFQ^$U%UO%!bd8qhP?l*JL{s& zWBz0LZPgtcwlwTLUUb=`&)xa2$3EElii<$#Pr%<1K=62`=M{z(ef7f!u-*7)kiUFYxoanj`F`ZUOl&AxeUSyJVW6L)=a=L2yqpKwavUdb#=dnahrG8R&ANFcI&C;1#N$P z^xUEDJN}jXeE#T)`s=oT-T2QL6@y+|obxq9Tw{KGlp)NQ2kqunhdP$_>^JGjJ8$Zc z)69_7yH0j_vgyvf-}hTO@$m&iN8C97-ns`*B;TB$V6ofQ>>79Tu4i6l$g>QItNHoy z)i+fic%xP3esj0^+B&P zWDM9{@LKBO#yp1X`sU|dCyt!U8@l{p@4i`0QySMVnza7viHmNUx#^=$kDXjQA@;RX zO?|Iph+|pF!w34ExNrGYC%&HZvu)1&s{edHY5VT`*IxVao88{I^@oq&xv68*lN-){ zG@c-;LiNoE`Jr{!kGJEw(Yhv4uF=HFoZ+@-SGW+)a7f*XWcHk#7Hc#F5 z**hC5Z+M}(q3Mg35s$wyYu6-(T%2=eeyfju&KUPZl-IqUVLrW=rs&^ z{^V85n|dste4uUl=JGAKCawSWji`mT>~}6Xzi;i9*`*!3R6o?>fhFI~o%86go36WN z=$S7Y-%svQ_wk0$pI+2ZwCb7%f1I#m=h|}(7pngME zD<{ba3Y4+RIM$^yV_sD*!A--{XME>e`-`F($zLje}Ue>VwXu~g#roksC zzjRa556d_AT{QeT`)5&ad_8jDQwRUPt9;I*XHGEW(4l`HJ)Uk#TfXuA)n~q`=+`iP z?a<5(Lo*N0*zEXeQpuuGXWwjF{?$!4eAKvlv-RVj2c*0_d6{|roU(&8LodpG=kU;> z#~*0yID5|LX4{GNPrde|@z_m^sxR8UF)QQq+?}tcb(-nAZpZj9j;Fk|=){&LYvYE^ zd9Um-|J3x@*Xzf3{&iHw_JM;MpV-o>Ro?zz<}5u0%rIc+fn{q?-2C7RlaI~V(z40j zFpVKYw=|~rc=+KP8vC8feRS)<$A4{L$jS9*3LkBJeA~_z)81@9zti@2o_}Qb#~ss~ z@A+o@z%di29XtHl>Nh9PJ^kH;8)rX|RoA>}-&=DRFFyC$2VQH`i7h49NfRHdHIbmA54C8@yW|ZEr0BRUFF?(%vrMLrIn`{vNP-ErtL2m zx^6Fgs^jz_U!Q*cwRI)GbndozP@cW!0?zEGuK`*Iw}(LpGg0ysPHGz~YAGwUuelzI`U8 zU!QTwZLMyNyW-N6em5Mft7}b)ihH3j*m@#y>4FhmT(9*x zQGe{JY|GA-_tjojyYrXRb?3MJxM+OdI}K00G;R5YH6Se~9$DJ?wrQ_^-gJ2R)TT>T ztZHgmdSd;1&5xY@@asAEjX2`iHuBv~#!b&JU;jevE7|88zkX}o@|Qkd^VU7rO2qW3Yi|ztVOQnOH+pAZaq!6-m+b4edE>?npDx?=+)KZ{x-#ZK-J3m%lRD0Lvhz-BiF@FB{U0zK1+riEo z-x|@yy!fYIUOLz9?WK;U7e08irpdYb*Ry9be){s@inj6lXFnBP^5}inExUc_#1E?) ztB+ljHpkiY^65Fo6VvCs-)re-d9OBAADlei`O$T=>Ke8tEu7x&z}Qw>Tr--k>T~|w zWQJUH{@b75S?sPk@zbK0-Y$CW+o|T7;Y+^FJNHue1$C99&I}yoy0ZE0H+pzZ3nUN`T@R*TOsFWG2q`e{ea%M4k({in-{zW8FJea^U5+g^R-z}V<-55>&e za^3n7#}CgqaNXPmi^iIceEfdm>z}V_d#=^J3unB=kcIpH_3Xqh6ALC7qA1sF|EceT zXSOu%d2B)5nQs4B0&5 ziQ?V^jLo?NK`#Eb{fpyQ0<3t>-bYUEVo0AJ45{13kmnxHm^*y7rc#GeSdRC^V)HDKmOqKYu0`C#22foY%B5}Uw!z-@4jDs5`0cs5#l5fSHMe+paW8oP^0((6d*InEt7cc%y`Fnw-F;7VooKQ5II-Z|;W?XE zesp8%Nw2x99^B$`*8jH3x@^;j?@gQZu=~b|Zy#Q~#?hGf>@LUgId2@C z^K9`b<{NhIyC*fu#=upFhG{F3PpXK6Oo2ro15Ae1!m}H`F8WjtG1~cwVIT#hoZ#}N zXLU9S9*Hicq=Z}v53wXh*OvZEKz(RJ}YPt{%Si35hPE|vbYC$48X zb!qe&t?P&Gw$fE6#C;CFUy}Iqw-5p=@SeNsZ#feDfyTb3w7zNS2JXid!8mS=^WeOl+h`F>Ac2!iz(_<~``f4Fsifavg<58O4(oTYmV-VGu^73;?Jf|l*vGR!CU|v&xe9_&Qi2zZf%6Zb z5^AW^E_xqbB@VA}+Fjh@bqjM7&;GxNBi64BrTR07LHg9e5;xp=x<-0DmXOLZ9)Coyg9F7}jEE$*&XoacwM0*0 z&mu_Iwa#p}7LP6(4bQC+o^LP2mN^PvJ_q8-fwo0{QMtEVm_`xoCh+)=h&?YvSP+YP zU6d|4_$7-~Xk!b>`jizphl1J#kD{VmFqnQIBYB?=E@ir8R^$>nZ;<>Vr^i>slZvaz z$(0Xt{zl+ z@Qo*f!OO9dOd~b0I_Mw`;O$sN1u$+SM(XqtQVOm> zsZJkZ$}FX*W82T3WCEsC%t-Sri_?%wOUP0Q?Y|f@5~wtbdM6psH-mCsGKmKp`D1DN7-2e*Hrj13m#$D1M~F zjHjX)1`nmBEO!)OJ9F)Z>;NBud?5ukr$HpG3HSvRKqM*~P!3}+rf8lE%4#VL<+%`s z6rWz_ng(@(va@NSb*%7-Re&Qn7U<(Cw#I5;(-a9@#)O%+`eqJ||Lb&_M zNB;xqynY}J5*tq5dgf)(T}RH&SW6+?y~zag%n%bsLmA@P z05-#nn2xE6?mEnwLbyAWh`zI2CG7hnp~stH5N3s5UqcKa3x-NKIRfARpE+672rMU4 zDT=Zb2nJW+WL78foJ>COpasmyQQ(_W4}L(j#w=A(@*t_FCDgf? zzPl<>yP{;I)DlR#fcx>F(Vo&1GS`#VmvGPb^kXW_NF%L%BdvWS=FHYU2O`GZ0vG%Q zT>I8#PRn#dfz?@Qvv>&cyY}ZngLvJ>^=BcB>(3mFQnGp`NUx};p&t0b*1-0Lk4K*1 z_??tj+6-gt?xIV|oRx#FK?waM)|p|4va@J>`3$SOvX-;kNTIX5RxExH0w^sJjdRbY z`ILYx@|a%Kiy9-8f@y&F3nRra}7 z%WLaVl4E})rF8~_$J-P2CCU^FNEfPufPT*D29Hgp7pGC+EW`do(-`KQZ5K*;On0o) zT`7e5#~$R^jfnKaVGCd_L1W{I8sH{owt0Qv}jQ%pnMYFq|V3b4WSt z)Zp3#M?V;$*zPLAdzszsZ7)cGhLwYS!7w!uBoY+7;3MU;4IY6AGN3)C!hQl1S%c~Z z{^wl}hF4GvU|vDZ!>FvLHP_t-m~@v(Wu3hopD`s6rWmElRfU5`oS)UhK!g2w2ML~c z8WR`0}|^6uclB%@s@M`5?^7 zVqFCwJ)aTIUcU1-i{+|x+R1vTq7XR6G98<-l%jEEgmPk%h~O=yXP1;GM|#t*Ur*H> zrYD|FrPz*Y9IGW^%J`0jX2*Mo48tHg_QPj3H`XR5@4_p!uS2wnBcVth-HR!EKRWWa z+g>FZjhEAV<)=0DKKF^|A@_;@}SS;9k7x1SkEi@LWl3bm72bt08S{{0OWwzF$bY^<9s$ z9c13k5oaYl;66WK6q4+*TmMM|^C&IzsE*6yT9Kgx@F?(Wr=Nf=x5V;VI1$Q_L9I4J z8l}|lH3|z>7*MKHt4&wosfVxCM)@#Et1V1X3mY{qyr}h57;k}!+N?wGda!s=%fon4 z%fTppe{V@k{t!t^^?;}HSS?M`vcyo5w0iQ$ndxNu&_zCXJ$dYkv1E4D7N5JGJh|XX zGAZX3pSzwcoI0Fb)8%hIccG*;K#>w*NwpU2_IfH^GeF*QqhSL{qx|R@54%7N(RW_z zcER@xDRl>3J?6=*l1D6qZdmGJCGtExpw#^rd^xH6cN*B2O5MIx>h{HwvE$`V5E!o1 zP1mHZjDf33UDiOwsUYu%V?0gj{uS(7kgcV8WcI}CeeQZPZ%%hIJulhkt|t$)1lig) z*5|G#_kA~&OfnAexd$V4)2WnImbzUpwA6jK?8+&hyk=W4$hv;q**g~w^YS+LKvx^6 zoW)@ijvM6XXkYgr1Z?X@ma-c=DFxU$+5|`=5=L4U7z;}0W2yhUjh&Chcyz>6Z+5vT zKEDFRQoqvw3Y1`8)>CxPEzlZ&=ZPP1jT8GD*)=G-$(%i<-ZKs|Kw62UKQW3{qqudu zdO}AQDznwCSSo}+TkWY6-iE^$#T{zgz-O!LAvS&jrb-LJY&F*6cN_0$v(y2swP90< zCZ9&Xiy->ZW~o^^aP!O_vJmk+q1+s|U`EK!1Yy*5b341?06QZ{MmqTL&F&0h`uKxkD zCTV?LEwq_v6&qHYiT*3tupm$WF_w&)aJA1}PsWX(PReK8>2ueU$)AoO_0KNzx$DXG z=dL2QyWBo^p`=9{HbEk3z3YF}s#2D?oi4P*9d!M>R8$Ts?^c#@;$!qW7k>hslMQ|r z8fPCNFG>O7EVRcbg~EC3K9RovjY6{*0t?{2}7P_T?Iyl4**=Jfn2lOzBg>OE5 zhXmp?-3cPb)xrfo0gr8B$9o*60SRlN%|g>{YJX~9>7rY(iRnl4m6q|e7R)$nv(Uef z&%8DZ4c$$fg=U2g)pj9z@b!Ttv{`7Dj_ma><|`f9aX%UKWE+BaM_n1cKQ-V%@Q`TL z&PYBmttDNb9!2k0_Oa8uj$~f3hF~1LBM#m%4IRNaotGV;IC#f2@Gi7Vajqnmj2C-J zQy%2)(@1>(f1VpbgR2XCk)=~v3r$xE&#=9R`iqRE-XmkNWUQASnsdD}XpA5%G~G;= z8Wpo}i`OM({ORkSl)Sfr2PX{M@YXuxpuy{3irf%HhhR+i03(P9(EYP(E#k$e)^1IxZ?@$xY3FW z%eULzEUWxvdo!{>I0^?LxY>AIG-Liu ztIIIakeXsLnBa@|NuH#~UjqRM#4ih^HDl`+XM{TBJDuiPhKY#aNs+Ji?^2C8<8b() zRBJW-*f~9PJdG_|oUzF2bh+Wke@ihmq}`2WVx#IRZQwXk>1Z85l=4Hhm-FSKf$!&y~sooz8>abYmnWrGdg!k0N*ZYd1* z&$%p>4Q}gnPjr_dhf87t{J?@CJ&Ug*%>~Mc8^&Hgo z8j^2J;L)Krs16?oTc7)SxFF7mwH|3szlcmr!4U!8)*AvpQZWk~7Jpa(c2PQoNG$((7!Zm^f1>es z5vT>+Od;oRbUQ zF2z+hfX>IK5_sy+mmJuEIA+5)%E1|#Ji`^48)go6*s6q$0f+!CcAMeHS;TN5%Luy( z$3`h8Bp!Z@@KYt$*^r~zR$ggFs`7c_&yqmD_YI&w%!6#^Ei+~~!s4_eP?#YH^F|yD zKazvLx>H_jtriIltaX98-o>Yh5H30o9RuRVi7AL{jK6F?&El?wLqTe4#X%#jHD-5% z)8Z19tdIwbJBz1)g;pp0E;Rnmf|pbkF8Glsp*-UFj{bHF_5xnQjD(KZ06#9x7rfLl z7=E~Mnz(FmtfolGP0h|qH;8YX!0_}@NCJrB zn8u#c6J+}7X_=X+hLj9bdTxdxB{MxcEz>L6`1G;#MX-}wL|8Uc3KkKTMnpsgOCB)YtPt7kqO5NmEPJ`PTW0#U*DF;+ep3u>*lD)_w<)}rA|8en8hL8$4_?1G=W!rz_b zdYBQbCNaX|j0!nH=iu|=IGZIr200wltRD60DKbFIY8`HetJYD^@}jqN*wLir!|0%= zsQmIV;!y0OVDqFSNJus%5CwR$7W~X!9Zl2Z5duO(0#X!5O7-OGLP77ITEfQcn>(7<#i1&S>-0 z4>C-~07~Rw30DpTtR`-*kSc`pM>H-8)q1j#f~yj8kg>!u)j9%xEK9;5#dy{nh#3_| z$s#3C$Em|CBn{vtd?^sw3FI|{gPnnlCPT?!%v^COEEx!Ml3qM|^oV(-u_G8Pz9UB% z|4YY>M!8WV3lxtT>Db9THss9|qZcL}FG4lMqeYP8lCdJF2ZfQMQ9MpG`Wqz%Fh=x0 zLX;gJLdtZ&DA1WQV?(3t$j~S=E;Oo)3cbo8jxr_Bi$Sv%kIId~I5wgqB-TEpqb1e~ z^B7$0I7l)&k{=t1h~*uqaMbeJ_KKq-qx_f%m2c%VendpG;l@6EHXOv$4Yf>ZW9J);;;|281p)`>pYXRY z1tTBW>m?fZfbN!#dSK>AIOg%Ruz0+~TgYg?2(4slesCrU)>t&a2`e$*(Tpd3$ykO~ zfQm4IK=B#IhzBuH4HTY|u0lup3Kmj6NM9?JzN0}B(_<__%~gT&tAJze93YiF)=_z- z(^~JDKA^n9k2H+sv+QsVD-7Z(-^dyiC2%Ypn^P5a_IALO_Grkd2J*C_6~;<^`CMqF z0?CCx8NC>e(V7l5bCDvbg`G21f=r*4Gz~EG3a8OP^{G5a$;?Sd+oGI@gYag5ED@&W zJYiF0F+5P;_@G^F&>PtdvON}Wp`#L}0_<+i@`YgsWj#)GDoH-g>}9}O*UVnc?1jY| z-_D?9+G}PnDi08BGK(de*$Y$7+_DH~$Z2M;cu7Drdp%2qn%OH^O2&m;=_I~p_G)IY zjMaj#zrKJy>yNyK`K7a6+XG z25T-D7P8dgeXkNIwJyZo0Ql`r?N6h?g`>bSM*Gt!aN#Hb+C-CJ8U-#O1uh)#YAI_J zSjK1)Oq1XjmI7KY()F&6=AOj$N~6maQ6Bu`JUND*y}O!4YP-^*OTNcW*=d%r^)Bce!^bQ zl24ce#P@oRe8?Ok?6rx!#~dNPSBAU|KTa0-^$q423Fga?HvxmY`p?U^ge*i@7vZz8 z)6k+3Rt# z1=@wZ3darPuvc+?*F#%05xgq5h>)KAb1-cpjLWqQpArY*+lnm_ zcjfs=SPyZV@O3>+J_FuluP4bDz_aXCNHZai3u!Fu6Iz>KFZy$}$vLu`IR|`R{$U)VR=D4DVQ%WccIaA)G4{YA<1#{w(D|S|!4t9L>}U zcOdg+6T_Tk)-ki0Nlm59B)G3*4g>5o^Ep}_0mi~S55vmSVdj1&`B)N@40n7#&+I}S zNz0@dejLMVpcD+`op~UM$%H$WY8UEM<*?IOIvvyjQ(mzriCIChzCo)1g`*f0G1MV4&?1(FT); zL%wYKn@+OjUvbuRhxbjG7upQ|<3OFTJ@w2=z*%@Q=^Rj`DT!Hlj)8O*0_-r8h}K`g zu_7Qfq|zk7zyBQ51Sv81!}BD7L5)0V`Hcnjj)9c0g))yrN+%%|xM#xqSxOcEp~x4= zQ}@He{l6wPQHz$QDiZ>9(NJ#Ws`r@MBS}mxtxprA5P_pEe=(p`Y#JbuAm8_(_vb@vfKyRP|^Cfc_@D9WMcBU(&rla~m zJrv~#wv?`koQ(z^(|O)`U7`@WALB+aF;rdwC3X;5NFr(#8s>T8bRl;?fbF;oN`3n5 z8Ri)C%{CZ)Ng+oF^9{(Mre9IV>_g4y3!&QUFw^8|i`sLgz(FgRAK?8As~i2tfY$mP zbTDuelMj+)HkHXu%=%r}jtU{bDW5~B7|<1^`&k}53^YunJfsi;(jpN`gd*go0!a9Y@ayG+_n$n%0Qtlc0t@GCVwZ}~d zLR(~_MuPh$c!!=vC8lB+m6g~g`P4c=p1}N320e9vm5_>|P$K9=s8Jxt_YSf3gq}!q zR19gtnw^Dw4ueI5lvxS#Gx1lDcFG}aKA?SoE;J{Uxg88F{`xd(VVMuKtgBk~P++NhTeqw+GW@CV+0=(PL zt%Q_npnmuUeP$2JXg@Ki24Hm@>bYph)l&j^OZ1L_FibWav<~K=qczb1*P#6YtpfRj zzElrIt=0s+;vBRg@(9i{N+Cdp#4Uuqa{3YPz8cXN;;RvTA^tU>{}{@eP&owXte^>% zLy#B$nmQ8tUoG^ONgx$vbfiKk)q=mG&MBo586}29M=FMLdJsl#Os0a4^a(?rrFKg` zY7W}JaopvjBjrLl9SIWqJ*v~Oo+2G77t+LleT261SF zoa#uZ!zQ2&S_4==A04R@&S^ljBbz97m2{+XjP;P`I>WlU8(UEeYw4G&ip%Pq07Y?MY;j23pG$Ev<5TfZw$_dzhpn+I@>R$u;kKtbf`j7Ef z(~-bS`ZwTUX8RxeJy>9eicIy?s*dG+CS4XUqb!~%Lg@$fjY;~I(wc7 z??Z|+&)kZGwu;e~dUXg_0<={OAvM&WwN(t+RSuA&+A4;&iUD@4>>7t>o=988kgju3 zs}pCGwN(tdwgEP>wu%939NH=dyRPAX{>6U`<#`z85aoFo<&eMb3=NF;wN(t6^$q2< z3gr-XhDKY(fH`5*`r0Z6%=%D|8HKe9Z50EopBP+k*H$sKRSe1czs#CG^cNW@*p0hD z+FZbuewa(vRxxDOH?&m@Z54y{0nk=4v{eky%)wu+&xVt_v#_z0rk3EiUs7PPh(<1kP|d8dZ9ilMMuLtDjQL_0LJRSfiE z)mAaM-5LJZDE!AzUaL?JQC_Q14$)RIq<*HbIwHSQgYz@h_G0+@p=x_E*p+N;F9zC` z+FlIg2Gw;AssYf8iv4PPF|_@P4D6x)o%bths~C)D_XJQvuuDT*#n4tUv{ek~5wd$5 zVYI+%FWe`f?NEuVSkSRGqTy>v%qFQc4|iU8+hbZM)yVcCUTzWTiyNRYDT}=8gU+W?UO6l zrjssbfoCDGVlb~8gt&w+?06TSk;op7ES z4nKYg1_C~kTfcw|dp4nLZ*_DNL+0TlnfW>R&w!MN$DJD)(m-vA+|L-YnLa)8DWmVh z8Wr$lLowg!6Gs0kK3okC2l3&?e>1uca9<4fT)3}=dnw#EzgI0vr?Sid)7FyTa>|bOZM~3LK7#QN90~mtx$|>NLJ+`=`0!G?=Yx)u7 zvmy8VYuh;{^3=w~4c!j{1L|6t_L2|&U_JXm(jWH+jPeIs4}V;}KS=r?uX!{`adw=< z$##_Pv3N4>Zy-KN+h!1)k?BVq1cYW(`VnS%1c=ON6Ffu{5SWqlsTpJ>`-EmJ`-F0l zeL4pMkbP3ug{r%zCF_faH3HiTR z)O5e$AfW%SQ&8bv$4?D|rCAd35OZqS8K^mZfWvdyhejYGh2Rkg^x-^^nm)imhU`N# zwg;jUY@mmjk0PMCA{=drUkZj!y$giN*&*Crvqv<01gs&=9`Ps3F09VhwDKQ8f&cL~ zXSFA9i?G%RXwT!I<{~;m?O9&AE?q=Uk!5byXwb@E+cY|aGX?wTp0nIf7gqD_tbVUr_&gbBjs z=}!{>SDT+WJ>43BKj2TI2Hf(HWbQ{~i z`rV8sMmL6#^z--*6QR}c@FGNblLBDswE7&QD+DSg{c@fmFT(ss`Z-2FgDw`P11MrX z!5f)R=V2jCH=n+uQA4UvF=XR;P}8LP45p8Yn#^cqvx3L@@c2s-owDX40M;15dXuhn zW6Iw2!0Ku9J!JSIn_+b`6spa}^GxK%Hnfy_sD_Tr2aI3ZKq@oNGx}fBAp`;Gm>JfH zV8zH7nA}BFQb?+s7$_XRQi?>9B%shq5((sjWP_M-JajP7zrR$foRInw)Ln;DW%oWx4Z#70IF2WcR7QbjEA zEg=I#Dq(=ntP^71_YSSGFKh)vO)*_;V+3s^c+3R7@)bG95fw>ei1+^@Nx9C$$U z06Fl$=7DnH{N{W)a6xl{448>!V&%a77`c)#6PbxJu??LJon*kKSd(1Zrg&4lT zf*d%}lqd&oZE7tCZf|NY18&Z0&Z6KnWD34@a+-7Gz0bHRs8J2Q?3p z0}pNXcmTsPgt$6zlGr4f*oKP@7t4T6aVEL6O)X3<;v`Et3OpFl~?n?=|g}1Mf5KlLPNJ?Uw`pV){i6eA0AE4t(C!EC-G< zMah6+n}?2qGsMi+gXtj$?#y(d;7n0$(>c>Q8L*+XffY*P*xCbrySu%Uy2?NT|S*oNMQOKI9-FcZl{QgE&)HhGq?d?E(JIgo6lNx)GI zOW0JZ-M!M3EGCO-;!^l4g_shZ`G(92*XIe9?+)kBWnX@;}{ zS@6LOh2N6?y&SxhELtK52R8H=Z{luFdXk&j z_~H&to*|4J+|bp~RTkdO&`kiRb}VbVPl6GK)m3jZ&l+iUxjFOGGuD9a1hK?cZ-se^ z%@UNo3+8++nAC3gy696q$%5g8gG>c;djy#Gb#N~S6WmR(lZtF(-o%Eo81oz4jtUnH zhp4?ppCpF!U`w^bX)*Lk$;9za6&=!`HR>_ZWP`yfRSO2|R3#X#RJCAe4wYauX4Qhh zs8tIFp{^DT8bU1?^om+A7`>k0{AxFh62&wHJ5MEafNJO@wNNxHl~YDGRt`n$QzaCP zP?b=yMO8wT%^zROiZ}sMVE2QMr3Uy?mbr{eo*weD?N{&OyWl z^Ci%9(WVJBE*d%zmlZcu%+PLLXm*?Polf&Cc3z?0>~vY!cXq5?Y_GD+gfX&lh|Pi% zCEOUg41`&#ArsOwViFWPpI%2pND9=R`$CK|hzfbL|Fi^X3$RJ2$tIl!7{a6ndy_V$ zm<%9);GZT;H7%PkrisM@wWNZJ`1n=EPFKP9mvcrKxME^TYV0AXl$d;-vsH2y)tTB* zQi|oMVEe0cZWy>=d4}H1scJkTs6Lx%nIf9Pf{Q)Wp){w0=|Em%HT_g3Wk)7@sTMZYH<28 zQ_)7?%oe=UiU~{?PJ(1gL{G4JtBQXQuPWy)ZWBq~y!@9fx41oc+`wurmVCitizOeA z9f;J;G>FAtu-FnA7&N+?rNPloxy95i4ZjTz(@BuF*US#O@ZqtWL_B^-jP0BqP|pKG$l?Y+8_aX$$HQPN3*!4&t9U@*nq zBN$Av3=9TS+%bGHsVabOC8L9Y5yd?tAZ&>pmn+NTxnb~lZm2w-8y1h}hQ;H#q4IdH zWc=jY1`3@6NGzVB4F)qr9)~ z$pJY;QUazLLHrGR0bQ)p#HB_-t|rU@T|8aji>|=1fEl7V2Tb@EjJTZKER75&d^yc!gy}<#k0`EI$S}tO|w2d8z&>)4N>y}UZ|=MQA5;yh$x7VdsQNEGWR?d)hsyGR z8Y;^JYN+}TP(x*TKovJH&$1|;siL6~WXCkflS&+~f-Yrv`Q<{WQy2`N5weUAZ>bSV z9hTb72$|tCLS}d%bf^pusG%}EpoYrufEp^p1F90k2PESGUy0+@@TDv-znBX}3xnmQ z%dxzq=1T_Rny!+_S!|h-wVB}Y#gygosTlF6DKf+BIGKJsj+!AaU04;D-JckQX7ks9 zXy!hPMA+a;{fBQf)izV?32OLKc9dTq1Wpfw9i=OTJW2VIsj;JUsW5o_u-H+$Xvk;J zX*Rsm&LlIH4W#pDxTvvXmS0(}jvXpHLW76Jj)1QunE6KcWoIcn$}gJ18n_ZW0yWrw zniAX1q>0L}52PwD5GW?fWnwIITB5j}CBLOX+onLb8i)n6co4}+X8Eak zZJPoJG|{#W&c0BxEu_CG1nYVbP86>jU zqzMvPY=j1htTfa_a`|g$MVCP#vUfxxv6kfLAYr;kWnoCYKq1dShBpBj-uz?8(~lv~ zJ_3pT4J8#;`~XwjMSMpr%9!H*5e%lda|DAa?ioC$+DL)(BlVeh3=Cbu$i@%#mkP1T3r_EI%7{9;RFV6d61?ug`SuS_?I91S{mu`mr9T`W<9Mi-0K zpwU%L4uyu3NC5fSMCoLrq-3g|n9{jKd0ekC!)XcW6k@<=sx;Jg8yKK1#X2%z%BuG* z4-?2Vq-3oq@cdMJlS+Q7EWk6X%t8tfN3|3ALsk;of!OWxGpEvtQ+etsxr3{UGrlsC z=}$a@AX~Dc6kNWlEubKYxSp?VH;~RM2u5eJEfr7)Q(_UxtbcIrthgX6WO&7#1MF(@ zbq=Si$*(6UFDFQ9BQwdN?Kgn)T|sOhrSPjTTm=$`I79}_5QoTsDHenL*vNlr#VRNm zOtA>`#e_~x%~%;N1SJ-CjexKvmYlZV0OZa@Sd0}9hI~n>z^dAQ13$e(+i&1G4vI5e zK(wiKdVhmgKo{#YUslByQCeC6^bk26FvUZD-;5Rd2w=iLl*qfYKPc1?1v=&$qC`j3 z5Jftosx>dRjfzZ1^zel`4BcdX>b3m_GtoYfr46hA#Q{ z{2=2{^aAhidQvYN!SupoYrufEud72dGL6ACQa(d?k)o!AdV!Tji5I_QDm7d${xr>tALO9s#n1YabEo19D5Cw?fRI159~d7UU-PrSm=#f#zqds(Irh!FJ^Lnl+g;BcRY8P66@a{&f25q9k0&g+G+g0 zKJH?*=-YJ_Iz8COYMq`Nh)b70xIs9ehr{TAE*^#lQ*QByAQ()^pdctzv3(yDYUoWA z>MSHwG#r_Z=wiFYx4tqeL1MUQ-thu;DW#44!XY{$hdf6M$f0tY<{htj$Fob_0+#j4 zdd)lDXMzbvqhaa4kQd+}<52YU&a#ms&36YUh|I66HZV;FAvLbk*?zf$BzGt zr}0w}>FXUYas3R}J3dwOjt4oYdBHfy`b3%{%_j>K!i}TS;Uj zF0fok_jtcqi;Z*TF`;a^#pbyf+23@#^ye*rrwgFTqvIMn7T~L z+-O8|l@I7tKA3z8aoPef#SHIjoh!_h0H&DPgTWLtdN7z`naE?RO*!z~B$=@Y3|+$J z@^f@B8=|rdPUwO?}UNq*;lq|K2g*gaJPG$=B8FE~n32v9d=^q}Kvl;MCHNPyj zc(5NVws?`A$EH0%^OaX7yF{7>OF79jaM0*txf(RO63eMIyF{*r;w$e*u1b%k5Le5K z?6X!UJ&q!9yl}`UooDmS6-%sSvP-Age6gv_kg01x#<~oi#O4S*L)G)^)mlYjs|1mw z*i;DuQEaIMfvCm_-a3ZlHm`s!=}w{e%?nc&xEFJpC0pVxqCgELujqhCsf4UXPEM~W z3D*nhI`5Zc0rf7WS_js}6tTsoeUQzis*wCvTU8(V$5v}@|JZ8UNC8{YdqQ!c7p5#T zx1gOcAJAA9yu(8r%L1mD;rZbmHVu9i#L3-V4s=qSq2!uY23=yiXkPRJg(;;? zNM7{*q=Du}AGkCC*YHrK0icFx-~nE!79OI8XyPHNSlIJJut3%;5MOC1qlPc#dHIDo zAV?TX7Jwb91`O{QE66x34XF9i`~Q_MWQ|aH9#EBdUPXm*Q%sn%63eTgOF3SCjSlJ* z4##Vb^npuxpmeBG9#BJ-@_-tuPy*CYIUZ1zI9^Rkds!avl~`U4U&`|#Inw*HY&1`L z^?{3wHSTR!&67TOPkMj+C|%LxB@*9NxYcdJD8Sn$(v`j7@x@)8$EPLtv%n4gJS^Kq zy2dBYT}V6my89c!t8p`&<>XJIQ*@t&La4N&K<68cl2!H)Da2P2&1(2mKGF*mNpjG< z#PLDimHrxHCeug*sUr?zhwm_Ww*!PiHRpL~ZOwUJbDr0n=cm{#^eAnd-^_P9&9mrR zdA-@`vas(HDWuq5Wtj;h5V=EPm4E+{n-Rvlbb(u90?N;A!6brc_LZN5K!qVx8ZwKP zn)5uG4!$HqvMEinYtHj-Gi7*RvT+86ET>7vZoy)UZG>R4#b#Zw*h=F!l^!PPyYh2% zVNKD6JVO`W1YLOZb0JU9g?!2d(Ab}0tFR^pm?6$o0A`326@V#bbl)+6a%sg(&SR>X z(cI7pG8S`rVCWJym!Ft}84!_*;*(bCKwQBz=XuR}UUQxY9uSZ2#VU-mBBd52*NNb` z4Y3dm8eQCjgGLt%(xB1B(llsvu}BRXT`X6FMi$X z7@&&hm3=jWg4Kq(hANf-HN;^J<|@{J$`c22EDz{n4Hyu*RLaY*(LtTUk@A}JeBitX zln#~S0X0;P2h>nG9#BK&ctBO+_&`>rkt>y0UJYN$^P2O#uivipXS0177%g(8B^78^ zf4V}(8uw~%>2juT=IYpfdk{sJtF&SVQsXB&;$Aw}CXeeg|0q45B49LC8fHUL;Y+7# zB}X5ii?8%l3UQ`rfq4y98HZDK-+4~?$ka3t`&@Kj0iIc977l^YRXdR^vZM=z;xf-sUC9qR5DF^c20}$8TvbXcNEEK)Ur2v> zfAk8ZM=8}gpl+pz97rEgL=LB!10Ax;2(E19rANuAQyw|ME+asebeT~6BQZ|F@V zv0Hovvw|AIT-BP_W4S2FbVL{1ExtL+s04}OqB+S6)TNX*Avwvbt2|)QP&rNWk=K0W z6)imAD~UAVXB*VkG^8vqzxIaS%posJ0CK1-AKvj*ka1X>#55QA05*vMXM{MUL8b~v z|M@J#@f^<$-~!Np^2=~gr!W{^^N{y7MU;#nAasa>8*HOc4L(2(RVD#ys0fOB2l?Pnm-oYt(lt9?9`PLoX8#q(R?@}0 z;PI6@Ivv&dS$Ke69+u%EUB}}~uc8>eQbzNSueRDPRTbtMuvVKrGr} z^WcV|`Nvxfmp3zpi@jS0@~hnzr+CMJp_^K$DNZ%Cg=%O^)zDU|p>0${JE(;+iE5!H zy;>-fpcZP6*Ay4ateDDR3 zIK(*)zzlJU12Dz?!*>v%FeL++;?5BardWdVnEbFydDI0Ni~B}k=n^iMpU{J;laME{ zHNSezuU_-32Ody$O7vqMX@2#ZUp;G>a1%|^IXXYa438$(P64BdRg(lw^Q(uw1DapG z;*4-ee)T-dhGn;F{`l-6+?qeWbc8Kf1rhkBb8H7*@!}zXMCS41YkB1VYwtS%qB@@c z-(jP75Jiw8f=W4x2#Qg$w^&G36N7pJia;o_#AuAMe51xhV~L5e_ZGXxM!+sukfzc* zM=xRl?)^Wz@9yC64iw|J{QeiBa&Kq0%+AhyW_RA+>)2U^Zvr%HZCh$tHVk;fZof^4 ztjy!bgigkFUoBnur66|nXo3+NA~?xrkV3}RhRDi1ey53z@^mD7ql(iSJ>`CFDH6V0 z9Uv?7_?3D5!1fZq167i>{;ygAIa=C?Th{!)7I%|PAQ%(5-_47h=~inw>Xdb-uXap< zaRX;_0#WAiEA#l@ID4q6!YlYPYQ^71O^+K|*t9`FD2t|ERe4ekJ>ZdpA;I3FC6Mwr za##{mK=@m-1@ict%0`*TFSX4$PG}{x1E=i%->bTy$owHUy_M%5XtcElAcVEG_8P3R z!Ot6wRo2!wL@%#%210r*tMaeM-&E!0pY=f?Z{h!1ecFd+Wo05O&KCXO+nx8J_13C< zt55uhpj)f*U~T1@A8ECtodiflXt-CBhQYikuAtgTgeu(np=!Kz5%U(3dWUy;T)$KO=tm3jQHd>@(e zqI-g!8&+*|>Lf+kIGReXMtB zKD{z;pMHzkpwLj?`E;51g!qPr3AoSP#W5p;W(elN`N`dgRu~XVf?@J6b!&}od2Hfw zZ^o+#jnmMxg*{GX z-hR`pf|lpGiGzQ$$!Zd@y&?14sENX;jp|7YD??$(_FBxc+vp8r=2it=l2RnqWSPs~ z%EPXS%rb94#x3`!)f;(lw~zOB+jy&Dmy!5h7@zk8qqi5 zlwBKd!YOM&8#rGFu)nf@_j>G2v|RrF9d=4ut>wzJeSi#k-~;i#j8Ge_5j7nx_{-jS zKMx2%`W>zf+|5B3Np#oro`?qS*K1o=#ov@$R?VAmH`xD1kgK8J3U}Mg}<<~ZeA0KHmo5z@j=tgJo&uR{zw*2)4Moco2}W^u1xq>Cj3i7;U@co+&3vS zzx*0BT|TqI#YY*N1^mi_e2(6Xr{>pTJ z$=YfrD90-XvOusQ!X;eIbIPKSS2?LGz%7NawpQ1{*IH#KtgX~`!rDr8C#=m)FPWQWY&v0=-AZ~@ z%5vD7?3N-kUf#|g9yiyu7Bx?q?yulVGN@>4HBEVKf1`Y~7T^-Z+-hS0*49r^tBnC# zm0fWSyHl@oc0vX$YYkqHzo|Kpe?|y_$nL(%ni?)ZQgoUR=GMyd?T!i2@LT!6Rv#3i z;nw=U)*ls;Icg=?Bdo2TqE@RsT2-X-lI1POfl1K~*cEAfGwe+jUjA_*#`G2nuT1xs zwGU)E6hTD@x|P8VnWNS!JXl++@L+8%-~+27g?}v@4}L`&-yDBam6v~*i>|$e$~QfZ zZBT%Qp5dU0`Up826lh$LP+yl{RL~ww z5SsoL>e%#zP~OOzQ^%%9g>TOPR_ds{w!anX2!(0chPjWMO8(w`^mn#^>=>`0e;=d=0)9Ux%;9H{uWC z59SZ$59g2MPvcqFVCsBSC0*06sQ)^g*ca^x32i6np!I2?Ft*IzIjZGsEd|sncM8Ul8EyPbLP3 z`-TSu2XT){%_rdt!umFzN!pSE*G+?$M+&?rp!q2~P z!H0MaCzP}<_u;siGsED@=+MRl_=yF`jT`QGdZ>Uj;2R33EGZOAZZNtem=_-58~94m zpg;^P$TwW@O3Apu8FbDi!X8G1fCj=O55|Q;@R%COXP>#gVg8a29|VMBAbygM=s}Qx zvJVRmozuVqr2>Kom@e&xv}hc9HAfH>E`2a8zz-V3bqQh~9~vAIjH$$k1IG#=(dkmk z(Y`^xl7=~jkrqvim^NQhB$=ck0ij&ikS*-=L0ANU0F^OqYGOptpuhmXAkr05J_c?+ z!q*QZ7EYslLwth-c#}#ZL$OwqvY|obOH)4f4GkFVA0cT`{BaCscyMq8S7D=P!+k>t ztN4je#56)UXbz<$Hea@YQ(%BX0@cJt9|z0`o-5`+XT?v)g@*Y12EFolR0JeH6KjF$ zB|zy1gFpQ+WJvJbpg}Wcp^Oe0{lVigf|=nH1N{8MWlPB8L9+ua9O%m82&5lJ1q{LZ zBLjLr*gI6Ux-ZA-|3a4uCC!PU3gWe7HYn z;l>7FNskGb6A*6UMl2pF9)hJQYd^SWl9vGCPKcPDhXzd#CgzmDVIpdYXep*{5%hDO zVm!>HU#M@0|GV)PvTBR*QE8GvlD8NkL-FDTVsHEapuO=&yaPF1Abw|;V;~Q>w{+>} zA+Rshq(k!>`x$3PVg)#-Lp2jUAmt3*b-Rz z@PHuARMYfM8OqH78Lmx8ZkT&V`?bnI3@e6Sgk>Ruy7ch z?2KTP68J9GW+EOK5u&OD>3Vphaei%Bh-At%wiceBnOl2wn?1c?%WOx2b?T5b&Y4J@$Xza(ilb}Niyznp#fMGV&H;hj=qcw8t)tK|G`A~G65>5=9~V7 z5lsx9J3NA@1-Fi1Oe5w5HGV>uo5XiE_(sxQYUi+C#uB>(9U@{SElK+&Q6`5*!5fGq zR>o;a@N~G}pzv|iX2B(M=uq+uvI~dGaSulX%)nZw3QExo;u*o4HK|Estm@2JO%1eu!r7zzrV#XKPDPneSks0>_C}QTf#B4F8hhpyD zEpan#-h!FWC}wV1Vn-A+yV7oRD*is;Bfz^f7~${*c_!<2$a9~F5J4z#aX<(cRyg+d zz~OVFr&5>=dq_*B$)OfMYf6h217V1%VRr<0`Y=r3GY39rLPRk1O>Em5ol>wQVs*-ElT`gi zZK7(9;WgUCDwNYEb4XG}lW{T^Q1G_n#B~1K+r&YyoHi}Y6^xTkw7hZR`yb`Y784C? zNsN|sKH=j3?QO!t%W3n?=hIWsIQzajPOLCFZNA&Jf-QA9ZNB+9-(-E_#`AxBn>Zeq z*XX+yE=dcNGtzh5sC-lOjvJM4i^$jKzB`+XgR1|4cokTqck9vQo1=Fu-v5L>!eO4g zIeoVV$@xEFkz5p5q<88{T@+ZPciX4}i}Y?ARbY`6Hu_H>PZtFiNnxYJY7h_66k)yz zJVFM>KeJ@s1gp3xut@LJ47&U$ERu_Si=-IxDpI633Mb@SB)%el%7=zEh0U(=4GbT* z0m}8s{DyC&mqKq>`SyZ_FY;n3YNzEX^qb&A5~s?8P49FSxhhz??^K~(5_4izfRv=k>14Hx&52g zX~R~!WOta$I~yB3Ll8(eMab4R-JhMuko{Nbh9J&xX*oH|rI%oe6V@Vvq#M&xT6$(h zsU;a>bStbw%T+*F+I2UOKjqG8! zBp*hZETc@8k*38clVz02GB~RK=aXd!@}P+*;yeMQiv;;0JBOz5axg}cTh`y@ zj(r+o5@{Q<=!Bkz!w^byDcyRL+>y7*rF7)OaVm2u#c3n*aw$2tB25|2Hxz9X*};;zJR*5k|3HeR97jPi%v+9Mi4b3PGE##?6QWvM z3zFnQ=Qo7KgMz{XkoDyoMuHF|y-3o+eFJGLGH9h~ zO^hU-A-@)hi!-D#c{AZUm(NEssA(dZoUuc1kz+4u44))P#v~ujM-Yhgvf;?T4{1p3 za>8o>L18nIUqm~Lv^l)b)hP9jbKKs@#-1TBBM&1O>>m&~19|Dw1z}-`gh>h#eFQLo zdWipS)DJEnkoFSpnIs1i`hUC+*q>0`2ju!;WpkpUnSc1ieHF;N=nC}Zzoje9N`)ww zL?)6vM=lvs=IxT9V@C)`N<3FIr11w%zn}tx!ln}-=-}$%=+Vd16MKTvq9FpV%+t}$ z(}kFoH=p{3YDu!Cq#`+r*sSDz1b#Hr-${}dNfcGOEF|wK5DP;$x}+skQAP$y*cEGx zgR`?^9~T!lXDX>TUq;RLo*Es=Y`u*LU0faA+}u3y&B5XcfgEY&WU+fXa~I6e2MzB) zh!a%F1*mj=LrBDsMFerSm~fKoBZ%xi3JAmNH&W}-Ad`kkl!~cQ4gN%57;K|_14uJFqEukna|{C)8T35`0!Bo2cbWX^s`je{i2;9f%EUdbT&;TV3C zd}GN9l6lKU^03icR>aZKv}J116^Rj9{9z-522YgaS5ia%W($o@Qj34#kd3}3){x-L zK?-h)Ip^RT*eDxSW{;SP2YM@w!jx~cHG2O|xk)E}p;7rp8~1*k_*FOM8*P$TI{xYK zOHwcSS6cT!A9ZnC5&vk=MVw0Gi0hwuqm4KzpnHh{m!AH~7;)KyK6FEQ(Dy%b(1*GD zpFijW(4hY_9^NCz4jUUbn_(DDhGAL!Oa60Vc)0GvnQ>$KFrN71jH^F-F?@V>!QT$} zvBysjrYB>^bjObk(+xDP;vYgy%DA5%j1w($qouu3gAL`e15FRqYLD6oMQ^m^ir-ur z4_q-aka>^sqHVj;)*WdblHNF=ZYSCsC)CgjpL#I1`00**bfdMBC)^)9^wEx%a=(#Q zNeSU1t=r?@?kFeE$tOpQ(1mfwRVPh*;{i#yq8|?6a{!gAR64KUpB}U~Tz^Q5+z;sw z`5`?b{d)cW5a~Fe&aR9OW>B3`WjZkJnYQ>*`7iq+eQJ*%RrFGm(T1dz`X#IFO8t5p zomJ|W(tf>-{w)d(*uA`p@*|f7U;iv8+hDzOMG=i{~{@t18M$ONxp_LQxT0 zqFq)|S^c!;`HPpeb@lZkQ8rrvTDH!%_T}?u)s!ovLA?5xa;jP&%(teo8ZLSac+ zW!2Lf2}3Sh1qORk`SYh$<;8{hIT@*slM@pj#yyC8_%I>qQA%1?PQI|DysEn9IcY^C z%44fpXHk7!-OFcBD@%(Ca?+n9J-iot>-x2;(NWP?uU)?tbN4~wqm;~?f}*lYuyK7W zV4t#Vy>s2m=QUMjMfq8&$#Jnaqa!bzKYi-tiQ^Y9pFMN#;+5zdG4~Q4r)TFEl~p}` z#m%EhP~vGI@6a|%kzxdufd zA^Qw$`n4}=DoYBpQxosqh&+Gd@PTvpaw~-fnfIbEUyqG{oS7>utD-#=L7p#I15tf_ z?enJ<#rYY@_isj?`*Yvnn1W)VUS4eEjo5^g?1GYtr_Wy!DHO9WSv^p{d|q8H%t?)p zi8_C5@4lFPp>E#Y=-Uq;W#$!EU<8D;gsl~mR+SZIJ-&bA(#ZqcFXmMXRc=K+t`_QK z+`N7-DLt=9LSG7c9T94-DlN=RzI*lj(VaUJo(tQ=ZTZCOrIpI4(1Xu~+J$$cV-nJG zz(nLLDrM_9p6arK%;ea=PaoKNAm^n}CF$oeRaPq9rfz#7)JlkI;1G$**m}ZI_oBKC zt;9s0+`IWmeyxxfH>bpk=d$IcP%Ab1PC{C4aV6w~QItcmSdnJki>KvIZ{KZ=b!xogATf;u7Z=D0j7=0{2# zo0M5tTK%lHP9%cPlA3FuR~6?zxfgwE&&EIUL43tI$BGfu3N_NN-hG@ctf+a8aaOQ8 ztOyl9Eh|WScs9BI-&aQTZtJ3WsqJy2w9N^1W}UvI5zU=A8U4#)_bN|@jlM27i#37 z`JAFkS|wR68ZT=q3ez86J+*t?vebGA%p=8$nS~nTug9m88qv)vR#Q}u3UiWgUpTmV z`EfM->0>KqN4-$J@M=tQ4tj`o2^G3mm=+gxV*8r!vg?J+jz?BJK3Y{vxb_g0)nFV| ztVaFIr?jg58ZVQam=NIo4)@M^*Gj8wQ&kv9EyKNEneKe+KTxZ4Czt#)ADJ{)vWr< z>f-E#>t}ZTxbPI}-2c>yi4qBUQBE(cn8kP?zyp4rQ1x2Oqui3GFY3?__2-p^=@0%s z_S=exI8aQjv0_F+o>5M9t5Cc$0C zpT7xs0Lq~tSp1SumRd2JL3!)y!_1;8j}ND5`o+ z>nzPlzIk@{j|==_QRk?}t^bBPZ$`zX3#%oRNw?1KS~K523Y4EIc`OT<%073#n*OXfgv zm^3KR7HCwe6Etcu`DK(?r4r8FO3p3i^h3QeKlR?_Lz|X<`Ncgj5ygeRf)Acir{CP3<308Nl2t=CCN&ln& z{A1O8zb~>-uhjb7KK}QEbYUg*05% zR6#s8G4vS;H_ji}ymDT^XWtSJc4s0y*v}w-viPgA<>R&#qEXqobz4GUdpT7(Do4hO!zBhsR z-afy-6l%u(w)b2))0=Y_QlgObm#V^quYL367DzU>r~?3*AxG4J7X98 z`<0D5k4MHPXA@sl4<;ip0nJpG=BGWp@z>!$e)=vV;B&z>iX=W8Tx->)=cw>wfD-wC zuHX6RLJ4Dv zw2HDpfAQGvO{V$w_&5>+*^H zTi35#{8f;j@APG7GAf0JaYxoHS+!yN;d9Yn-7vR2yz6- z6p0FfF-0Ob$n{xOX;E%^a@?J(m(LtKxciS^H>_K`X7%b-tAAYk%ckFU>^*eieB{mh ziK#gSWtBBV#G(SAS&;}b2CzrdIcdocW3NYDJbV1e!M%HSigp<7+`VVt;bW)HU%q-9 zj9CT6-bC6o?fWff3D>gD*8HF6MgVg|kujlCuyxVRfG*Dsb)ggQV1) zLUC|YpGUP`zaG6rgeQdVJh*f9()s9k5;~>cICJFGg{a&2lhbpBL}w6r=F?TCi(ujz ziJh{ZB*a|3bSa)hPTA2%PW%;h`{Covf)c8l^#yb(BcKIwc~Ndg(!HCPFDAfF*)Dw_a9RZ z$h4S7ATUHV6_nx9wSvY`lXk+cgXgZ^L&ShFfV_m&Vo8)$17n&Rf9ulCMlq9C+V1^l zqEU4*vDhFbVMy(>s*?Ql#M_sn3*m1h5tG)F?FY_WeE^3*;eIKJFG!yYvl3$>BZ+5{ zgiBh9TMwMO{xA)Z2>ckrJPi>fjn*IEkNztQgi_zA8U6d=3%3$8VfN8_8LLieq|V|z z0wk%o)jagapO<4FA!d0F^H9#Jk--SFlVUDkBh5OHK)*TQ$<|N&|Kteozk(J7bxg!815hQ8m|NPsLNQysDStZ+{ro13M z?&|4G0;7tpc-;?*0E0mb1f}uky1nOaC1#fp3{}atN3)ObUcP`T9pRU|AH*-C5Cs68 zX(aw@>z{x~g#;pjvZ^>M@#c8~8~0O6z|#4k1ol&3zu~}zJCAeAp4AdU0F}6_ClNL> zQ%kLQ-3~$tf<>I!{TN3rC zFaLSZ*;|it%F#*C6=goWcIrOpW>0GT`?WI`J2sBc~V+ff2EA#acsq~5!7 zgotJ+5PcvaE2M#r`i`ZW4_~>LRtPXm$WrcIJ}e>I1F{JmnZ}MK8xLN-n_5^&F*BjN zau|bSMxnatFF=P@5#wlVTe9KcB_b8bubQjx2pPpE=-n(rhe063(b(|qMj1ME@9167 z5vk08m0%`tQqlNrN17zaz9Nd9!qgn!nKq8K$!+*@J=IDij^TU4B9|sNQKkBG$--K zncYu7N%YG*4W_AJFcb{oiN@Bie%N;6YJ6t#QzGv6Wx0=T|Fw^(1JPMR%7k({tFd^& z+Fc}?Dt-DA^9Q9RA}2c!WF2^?;g`Xn#5&N7o3nV`zQ1li$|WI172Baoh#33$HZnbA zb$O>@bsgbWm*%$6Wt$IOzMGO?fwd1>zm>rl$Tg(C3C(-(I&f=fjD@vN|An-2VS=MjQ`n4d~ko$MZEC!@lRchRmSP|^NZ;5R>RKN%gDO2QvvQ#44h zQjqo_`s9v{*hpwF#yUs*zFN8Y;DtNM*_@%RWHsxtrGtH+n2U$EY^OV7;z&j3wtwi7 zb-PYqMZI*RrUFi;zP6^EL_ufvZrI&8Qqg@F7_?~3)+1M>CY(~&lepl?y{HpA*Bxja zs^}#J1upp4uZPaxOvosNW1#zU*mFa_v6q(|bNT4DwY$kap)^*}yXHT8-pY;pPDjH% zl~VVFfCzi9nlI3!Ol-X!+4|#e8M48O{*f7h^OkSeeKHDrdqou#s}nBqj$}c4JmQYu ze_VC9X|!UHw{hB>1uHh}J`ov{1lI+iK%ATiu^rr3RY_iI-1YN^x2|1!C|4Y<7~cJQ zX2`;SZQOn03W-=sso$sDpSsjDmgIuvufyBdEnj{)UucxJdB&{pZ&&}i=S1Y~g!BS3 zAjqJUf)+ivzKY_!l!rGi{<&+@s&7~Rm0K({ezbX}f5?JmYk%K=D)LUEcn_3p`;ySZ zfV%#?wD{XsPVV2jZpAkXHeAT86n475WB&Ajka^#&-nirN+346L%0`hp*)C>9#Z?k#JVFPa;&=5SP8t9cieMiqk-ngHHZD~JH<5qLB6$-|gym(TurVE48yG-6q`di9S#t>5(9_C1GBoQu4EH{nTUL2;#c zOT7^2SOm2C65$S-&UhSu_vYW1&YncXvU^wk4x?Rr_a8cT^4#UfnGtWJrNuWtlKHGbQOk?9Ho@mw=8%r;JXYMZog+)myO-lTtGCgr%f8($#z#edv?u z>S;x(Fh47eJIASu@!%8P{s1v%N-Sy`DmIe9p`DK4wPSq}{)GP%&EUZ;*63RRr?bo(@4~mkGds6O4GomtXPP8>j|IIzL?vil`*h0R7bMPkBx z7)P_A4KO>c@h~SC#i0!X0ZRBgrUa5!9NHiZkrFl^+8_wxD8=faIJ7~VCot^ap%={u zHW-DMm=G%4Ok4xG*dPGf!mWa4!y44N1yRTrZfP|e)l^uu3E3tjlr0A}7_<$fuMBFG zL5(t~*?&SA)VxJdW6%)Pq|;-V+qZ7s5M4L8aqG_A2hBz`$S*4q(qodxk8timPCg#v zsdW7MHvdqTA46jWB<8X*!LJu-bPyEq2 z!2Eappik}b$C5EeFDEe(`1>rc#0UfM#*i+x$B<0($v`9Zk27ufnTT>(mGXI}rx_K8 zjddbcnHZ={3{)ltDiZ^5Ur;6nDiZ^hiGj+*KxJZ}GBHq@7^qAPR3-*069birfy%@{ zWn!Q*F;JNps7wrGm5G7M#6V?YpfWK~nHYFenHZ={3{<}Hgjd3pZ#?~72 zD7ju;d1D~n&{y6V*xbz;${Pb4-7KiQF;ID9ApH^v<&A;L8v~U$1}bk1Bv+g(Zww@N zDayYJU3p`m@+x%YRp<>j7r*sY=*q-EWnv(`;#_?Ax~8_Sp1z@>$VgTBz2YiX#f zb!gwNZ5tI89xt1z04>|bwr#r(sv26l`bNekox7NsckOCnVQyyH*~HjLUsp?0T}{G} z%T$5Eo>bmJT~o)v*u=D}m5ptWp7suo4)*pv?YdiAnwgpy>Fa1}sC6K%@OXJlHRH@v zY15{is=Ah*VMkMoZg%#37kAIT{k-~n_3P{D?&|E=qr0`aX-7j{EwFKYD`1{7tcr7+ zb{*6-bq!6-tZW@z`gjc(GHlf7F=OAK6*76`@WBJUJY4xbZ7jN&80u=Ot8(oXGBsc{ zLUS5A1}5g+dhp%*c@G~m{=*fg9|~Wx#;JdApE|g|hfA;S7N#Bbb+`t3JR$Q8Z2E26 zt7+*Qcd_ch_ZTp2tdH-{H>xXHgPa2)gFIb&*_d}W($%Cr4ILv>t6r}ChmHR< z{B}O8TlwpN-uB(iI~izW1cbDNsTGrI>KdEbIC*%F`DohF=Q*rSdXOjI&Z3i{gt8Qr zIy}^=sb_3%>)dbHgwN)uX0qD#zj(R!v@``B5hkycspH5rbUT{cy1X~)qiGwSrm0+d<)&bqFV00KBs!`YNXldVfiBUeE=%hSMs^gG+Q44B{> zdh`LSQ9R7q#?(-Y@)Kp&Xs4!aY+>JT^yE3qs_wJuM?8C35O#E+iqYh$fZNoz_mB_$ z=3l*sZ_oPF)z%cPqjFM;rj0Ef`j4F&y6VMUR_#<@d+@5EYgLSfN;`GR`SGlUQL(Ig zt&fXMXMGLQt!hT2O$SXQ3wy8kzX)4a9>c2r=F!6(eWGRRZB=zU*|>Ut=>PTJJFHqp ze5T4yz*-cG}yOHa>{Q@&jK;5Mr|!?k;7ef9QjP@#GUEn^GE_r}kd_d^LvHhT0h zqrI$V)Kqm$y15Sic=n>-Zn0{&yc{e#(uSTgYU+Aj>^w$H3HkmkN-73ATX)h?Ll;n@ zp>J;QHP$y`<(-?X>O?o2PI_wXXo04&h0}nEf(2`ypdh4=t*O2`Mhgz@j#kdz9|kP? zDF+2hJbRc)3p#ak9r{V&lJ$isSkt$cnSlm+3=W-6-Fpw46!hK3G8Am=XK!w($rb2! zwsjvqIpq6Iq+pYmeOE)x4wOUB)V9xv$zLwpT!MlP{T(cfG$aLf?jxpzF5i@og5~|~ zQNUFN4tH=Y-;|Dm2vU_sdpZui&fVRIPYU^d;{y~-?%T`UP@OA)=z9HhN>SUb5KMh*4erGjw zWA6x$9;SL4kUz@QbUSr(8RX;l^_o8(5~UIhcIgJ~Xv;&PW(U%o*Erws<(m(`ggRb+ z|2;taCEr;5>Pr>pe-B^UM2KuHpF5W&f=C0hd zw-AeP{e*$eHYU&-Qm&)Y7VE^Km*=R-_^PDekJZGp>XDxg_vmSEq@~(MrGnArwe5gq zMi%L`u%+v^N7lm>WKMtoJw66UdRRdWB3Ywn+-uokAhV8g5_AcpDEf$kEUEnwJ zz_mwL6Fo9Sc%*tr%!FexwYGO3H1^|Zfpfq8*Uy{(*mpJaMI~!ka&!Bl@L5xRhI={N zflY%N&0=^HmS@_A_&vkUmhfc5Crp_cJn!2TYk&E5>-I~DxfQjnNnO#SYg?8tiU^$c z@mOyUM;kL^U5>p7K8xjf5OyttP8N1f9)m`I@R=YeV&QiySO2tr@XMvWOWdi1E_L%j!hx;xw3TAG;{=xD08Z>J&xaH>IjJxP0NnmPbZU9D|7Xrh3+wI#o;f->Iy&?KK(jFG zOc_+$wgp2rMRa-`gQkwY5jZTZY;0^rb~@c{tS!vDbOJRTa=Uga^}H-f&9>=A@t?My zfpMoU=9bph-E3^T+jO()+QkIKQVf?tARLcXv8BDy(AG6D?%buTg%to}4?8>C?%gcS zyL2`(fP8^Sq4T^<2uj53Md78I2EZb!x9DcuvzLPt-`U04$)Q(IyKWZ1mj(odQMi}I zJg03q5TK}`t!D^CO2p*a+oP{n|M%YO??nJ6-`=iU*UlZmrry478#I-Jxnz0HVmX1U zi)Hs-e7C;u4H`Op)RLO7uWV9bRAu{{YEL;Cl2vbE@JM05t=JfE&IUBEF_0x!+F^>pp$J@XO)m*smt8#}arZ+jc_j`~zJ zRSM`*2IdE`j$!AncKkkrKK~nbqI%yaV+Z$jwzD+B0)P^$6jD3EQR*6+TB6qB+n&Mx ztlA<#)hNHHAxtE#SRWNO{ZZNTS=nfMy+y_3cb_H^uKYDBQ53P3Om zs7IuMhN%%*Se3?VM^BqDtgn*|rGn6kDUySwQPZYG-api)u-Z@Nd^o%xA7Bh!15pX1 z#Sr+Z2J>ju%iVk3BUY;<{Ns^csK_Il^pH zWK~KK8|jO&Sr69%U)3hETABVI4fnLS1f+u>0m#+hK}u-C#>wlWqIgy_db-aL_a5f3 z(P*KJQ77!wmJhod$7=rWJ8qCmcObqFaD?TI8tI-<7dzKMYaXzg6=9!^_Hrau!?ch> zaCWkG^ztdWk9z$+8tUGIxF&E`Fsf};wT$3^ha9+vuXSBEZTtZE8o)YQ)*gITj$R)> zy~}Fc4xBW?qbK;N+v@;)Y--ng$gWscv+nyD69-VI46aJ1gPKl93x|HA@?%(yzvg^8 z+`UH^eS#7y8B(2%^PqWm;2^)6HVz=bn1BEjXd0OH=rio>ZB~85tdEAc*>u)bZA+fR zJ3I6nlXaWbIQQjeqtLv81}3+PX{T#q?L5%;7OU}O-i+}BfF?9M(C2!cZQX{h!t8i{7m&5uJW?z38nzbyUo^D#hGMx@b7s6GjV9Q%*`V)p}9 zyJq|91^yomb?c7k09sthsFN71i!HbV9>uZRm)C#y<a>rV1h^gj24AeFPg3DC(4KU9)J;lu`Xq2@Q@aU_DgY zs_77zIr7t4yMPXLEBF4qBy`%ufzky`iBt$y>&EXt_Om&EK4SH%53XPK)yxlu_37Ew z7&d^0rieSyBSf#Zu7f6g5poD&u%2+=FDvE-d@{-l#zv1C8vsu17-+Ufqvi-dCr$+w0W=$SDz|{^G z2o{=HC=u{5tdORDCo2cfVLsDB7GHUp!y1;I`E~8muL35I9Y|239yPx-XxF6{O}{g! zhx$yNGk;xTK5O(m_Kyv#7KhE8GL~PJ#k37NS=)OI9yi55eDQCI za4W`7@9fyLcG-fE=^u|C;MPMN%#+;+0{0B4UG8MrtM|Y$A5WVz@4KH)KY3osb}ElQ z{rkqXE4~Q}_}piNmx~=`qiBijVz4~pw%7&G2h4Nz8a83FAY}fMm1|Et$SSX8&FV_h zVh{elY2B)2-%yk|*we|@yrUk#4|Ia=mjEUbcD;_~-5vW38s#%ZFz2gwj9c{M!ZLv!_j(F#J7uL^ERve-Qye|FY`o+}C^5#L3hAgTogr`tJK> zD*zLhfA{UexnXnszW8Lq$N?TscGxf>7?ZRvq)^X|cx(80^KSO8eFu#g_tE4p1QaEP zhlPC^9Oyq|>Lj1B!v}ae_v~ig(LhVQ(^CjUA_78a2Z)KLyV~?}?(?4ah%rEklc&^w zZZzf7k3SecX80g4cc-2<=A8`n=!TLA@Dlr0JVWYowRDX-n_JsCy7cKcz#E7}G}>s? z2!O=*`nkK<+gY1;GSVZ>5dfD@5uZLmwCdV=MkZ#K-1b@@&-%Uwo_%_|IQ6o#u`n|+ z1P4S*KqA?Z<3J+z$T*N_X>DWI!`{A^eXm|UZM$1{?a~R52Mir3NX%g>!C*~x{nRuG z>NDwL*45I|%G%n>va7ji=Z=PY*ziN`ZGjQVrlK`=xz=BB2d zu%l?8tBoy4fVX`xtt<&rH9_4HVAvE)>KYiCn3|Je_M%|ep%=igRaa9JLu^(y3nqIy zx=_sBAG?*F9z>wFN-(JelS(kD1d|keD#4@@Oe(>o5={P|0h0y|VA6taIret%<00}i z@Njo?c5D_+;<#Dgh;9kmbjKba+2ymrE}tp31)HKtY;6%Z3H(X$WG7S8E+R9XE}c7d zGzOT&DRl=4nk;APdFCo@L9D8-p{1p(r>C!Ppr@ycvuvD9b7$EEN+Pxaltznpe!}ylLo=n^!mRWO {foreach $imageGallery as $i} -
  • +
  • {/foreach} {apply_filters('glm-member-db-front-members-detail-galleryBottom', '', $member.id)} @@ -248,7 +248,7 @@ jQuery(document).ready(function($) { // $("a.glm-member-detail-images-thumb").fancybox({ -// 'arrows': true, +// // }); $('.link-to-top').click(function () { -- 2.17.1