From 0f51114160699af94575aff08699bc61d072ed19 Mon Sep 17 00:00:00 2001 From: jrburke Date: Tue, 29 Mar 2011 10:56:34 -0700 Subject: [PATCH] versioned resources for release --- production.ini | 4 +- setup.py | 2 +- staging.ini | 4 +- web/0.3.4/auth.html | 323 +++++ web/0.3.4/blank.html | 8 + web/0.3.4/build.js | 10 + web/0.3.4/favicon.ico | Bin 0 -> 1150 bytes web/0.3.4/favicon.png | Bin 0 -> 469 bytes web/0.3.4/i/LinkedIn_Logo16px.png | Bin 0 -> 716 bytes web/0.3.4/i/check.png | Bin 0 -> 494 bytes web/0.3.4/i/cornerBottomLeft.png | Bin 0 -> 142 bytes web/0.3.4/i/cornerBottomRight.png | Bin 0 -> 139 bytes web/0.3.4/i/cornerTopLeft.png | Bin 0 -> 136 bytes web/0.3.4/i/cornerTopRight.png | Bin 0 -> 139 bytes web/0.3.4/i/f1Icon.png | Bin 0 -> 389 bytes web/0.3.4/i/f1Logo.png | Bin 0 -> 4823 bytes web/0.3.4/i/f1LogoVert.png | Bin 0 -> 4556 bytes web/0.3.4/i/facebookIcon.png | Bin 0 -> 448 bytes web/0.3.4/i/fancybox/blank.gif | Bin 0 -> 43 bytes web/0.3.4/i/fancybox/fancy_close.png | Bin 0 -> 1517 bytes web/0.3.4/i/fancybox/fancy_loading.png | Bin 0 -> 10195 bytes web/0.3.4/i/fancybox/fancy_nav_left.png | Bin 0 -> 1446 bytes web/0.3.4/i/fancybox/fancy_nav_right.png | Bin 0 -> 1454 bytes web/0.3.4/i/fancybox/fancy_shadow_e.png | Bin 0 -> 107 bytes web/0.3.4/i/fancybox/fancy_shadow_n.png | Bin 0 -> 106 bytes web/0.3.4/i/fancybox/fancy_shadow_ne.png | Bin 0 -> 347 bytes web/0.3.4/i/fancybox/fancy_shadow_nw.png | Bin 0 -> 324 bytes web/0.3.4/i/fancybox/fancy_shadow_s.png | Bin 0 -> 111 bytes web/0.3.4/i/fancybox/fancy_shadow_se.png | Bin 0 -> 352 bytes web/0.3.4/i/fancybox/fancy_shadow_sw.png | Bin 0 -> 340 bytes web/0.3.4/i/fancybox/fancy_shadow_w.png | Bin 0 -> 103 bytes web/0.3.4/i/fancybox/fancy_title_left.png | Bin 0 -> 503 bytes web/0.3.4/i/fancybox/fancy_title_main.png | Bin 0 -> 96 bytes web/0.3.4/i/fancybox/fancy_title_over.png | Bin 0 -> 70 bytes web/0.3.4/i/fancybox/fancy_title_right.png | Bin 0 -> 506 bytes web/0.3.4/i/fancybox/fancybox-x.png | Bin 0 -> 203 bytes web/0.3.4/i/fancybox/fancybox-y.png | Bin 0 -> 176 bytes web/0.3.4/i/fancybox/fancybox.png | Bin 0 -> 15287 bytes web/0.3.4/i/gmailIcon.png | Bin 0 -> 468 bytes web/0.3.4/i/loader-w.gif | Bin 0 -> 2774 bytes web/0.3.4/i/panel/f1accounts.png | Bin 0 -> 68272 bytes web/0.3.4/i/panel/f1panel.png | Bin 0 -> 63663 bytes web/0.3.4/i/panel/step-01.png | Bin 0 -> 3435 bytes web/0.3.4/i/panel/step-02.png | Bin 0 -> 27852 bytes web/0.3.4/i/panel/step-022.png | Bin 0 -> 23869 bytes web/0.3.4/i/panel/step-03.png | Bin 0 -> 5312 bytes web/0.3.4/i/screenshot_01.png | Bin 0 -> 28020 bytes web/0.3.4/i/shareIcon.png | Bin 0 -> 1180 bytes web/0.3.4/i/sprite.png | Bin 0 -> 4235 bytes web/0.3.4/i/step-01.png | Bin 0 -> 4160 bytes web/0.3.4/i/step-02.png | Bin 0 -> 4270 bytes web/0.3.4/i/step-03.png | Bin 0 -> 3451 bytes web/0.3.4/i/toolbar-button.png | Bin 0 -> 390 bytes web/0.3.4/i/twitterIcon.png | Bin 0 -> 494 bytes web/0.3.4/index.html | 172 +++ web/0.3.4/index.js | 32 + web/0.3.4/jquery.fancybox-1.3.4.css | 359 +++++ web/0.3.4/play/ac.html | 57 + web/0.3.4/play/designs/i/background.gif | Bin 0 -> 17495 bytes web/0.3.4/play/designs/i/bryanAvatar.jpg | Bin 0 -> 607 bytes .../play/designs/i/linkdropiconfaded.png | Bin 0 -> 302 bytes web/0.3.4/play/designs/i/settings.png | Bin 0 -> 235 bytes web/0.3.4/play/designs/nativeShare.css | 581 +++++++++ web/0.3.4/play/designs/nativeShare.html | 112 ++ web/0.3.4/play/designs/neutralShare.css | 630 +++++++++ web/0.3.4/play/designs/neutralShare.html | 120 ++ web/0.3.4/play/designs/share.css | 568 ++++++++ web/0.3.4/play/designs/share.html | 113 ++ web/0.3.4/play/designs/sidebar/i/sprite.png | Bin 0 -> 3359 bytes web/0.3.4/play/designs/sidebar/i/thumb.jpg | Bin 0 -> 1708 bytes web/0.3.4/play/designs/sidebar/index.html | 231 ++++ web/0.3.4/play/designs/sidebar/js/init.js | 103 ++ .../designs/sidebar/js/jquery.textOverflow.js | 108 ++ web/0.3.4/play/designs/sidebar/style.css | 625 +++++++++ web/0.3.4/play/scratch/send/index.html | 152 +++ web/0.3.4/rdapi/f/StayPuft/COPYING.LIB | 481 +++++++ web/0.3.4/rdapi/f/StayPuft/README.txt | 35 + web/0.3.4/rdapi/f/StayPuft/StayPuft.ttf | Bin 0 -> 35572 bytes .../rdapi/i/2709984325_f5554afd53_o2.jpeg | Bin 0 -> 292066 bytes web/0.3.4/rdapi/index.css | 402 ++++++ web/0.3.4/rdapi/index.html | 240 ++++ web/0.3.4/rdapi/scripts/index.js | 504 +++++++ web/0.3.4/robots.txt | 2 + web/0.3.4/scripts/AutoComplete.js | 241 ++++ web/0.3.4/scripts/AutoCompleteRefresh.html | 1 + web/0.3.4/scripts/Contacts.js | 243 ++++ web/0.3.4/scripts/ContactsEmail.js | 133 ++ web/0.3.4/scripts/ContactsTwitter.js | 61 + web/0.3.4/scripts/Select.css | 83 ++ web/0.3.4/scripts/Select.html | 9 + web/0.3.4/scripts/Select.js | 206 +++ web/0.3.4/scripts/TextCounter.js | 67 + web/0.3.4/scripts/accounts.js | 404 ++++++ web/0.3.4/scripts/blade/Widget.js | 147 +++ web/0.3.4/scripts/blade/array.js | 38 + web/0.3.4/scripts/blade/defer.js | 96 ++ web/0.3.4/scripts/blade/dispatch.js | 227 ++++ web/0.3.4/scripts/blade/fn.js | 58 + web/0.3.4/scripts/blade/jig.js | 858 ++++++++++++ web/0.3.4/scripts/blade/object.js | 128 ++ web/0.3.4/scripts/blade/url.js | 101 ++ web/0.3.4/scripts/cards.js | 173 +++ web/0.3.4/scripts/dispatch.js | 81 ++ web/0.3.4/scripts/dotCompare.js | 61 + web/0.3.4/scripts/fancyzoom.js | 174 +++ web/0.3.4/scripts/friendly.js | 128 ++ web/0.3.4/scripts/hashDispatch.js | 65 + web/0.3.4/scripts/iscroll-min.js | 1 + web/0.3.4/scripts/isoDate.js | 172 +++ .../scripts/jquery-ui-1.8.6.custom.min.js | 68 + web/0.3.4/scripts/jquery-ui-1.8.7.min.js | 404 ++++++ web/0.3.4/scripts/jquery.colorFade.js | 123 ++ web/0.3.4/scripts/jquery.cookie.js | 91 ++ web/0.3.4/scripts/jquery.easing.1.3.js | 205 +++ web/0.3.4/scripts/jquery.fancybox-1.3.4.js | 1156 +++++++++++++++++ web/0.3.4/scripts/jquery.masonry.js | 308 +++++ web/0.3.4/scripts/jquery.textOverflow.js | 108 ++ web/0.3.4/scripts/jquery.tmpl.js | 486 +++++++ web/0.3.4/scripts/jquery.vgrid.0.1.5.js | 334 +++++ web/0.3.4/scripts/jqueryStub.js | 2 + web/0.3.4/scripts/json2.js | 7 + web/0.3.4/scripts/md5.js | 381 ++++++ web/0.3.4/scripts/oauth.js | 94 ++ web/0.3.4/scripts/placeholder.js | 104 ++ web/0.3.4/scripts/protovis/protovis-r3.2.js | 277 ++++ web/0.3.4/scripts/rdapi.js | 244 ++++ web/0.3.4/scripts/requireplugins-jquery.js | 214 +++ web/0.3.4/scripts/rssFeed.js | 71 + web/0.3.4/scripts/services.js | 290 +++++ web/0.3.4/scripts/shareOptions.js | 109 ++ web/0.3.4/scripts/storage.js | 52 + web/0.3.4/scripts/templates/cardsHeader.html | 8 + web/0.3.4/scripts/webtrends.js | 741 +++++++++++ web/0.3.4/service/down.html | 112 ++ web/0.3.4/service/favicon.png | Bin 0 -> 469 bytes web/0.3.4/service/i/f1Logo.png | Bin 0 -> 1975 bytes web/0.3.4/service/privacy.html | 94 ++ web/0.3.4/service/style.css | 26 + web/0.3.4/settings/build.js | 10 + web/0.3.4/settings/i/LinkedIn_Logo16px.png | Bin 0 -> 716 bytes web/0.3.4/settings/i/f1Logo.png | Bin 0 -> 4823 bytes web/0.3.4/settings/i/sprite.png | Bin 0 -> 4235 bytes web/0.3.4/settings/i/thumb.jpg | Bin 0 -> 1708 bytes web/0.3.4/settings/index.html | 173 +++ web/0.3.4/settings/index.js | 99 ++ web/0.3.4/settings/style.css | 558 ++++++++ web/0.3.4/share/build.js | 10 + web/0.3.4/share/i/LinkedIn_Logo16px.png | Bin 0 -> 716 bytes web/0.3.4/share/i/bug_b.png | Bin 0 -> 235 bytes web/0.3.4/share/i/bug_w.png | Bin 0 -> 218 bytes web/0.3.4/share/i/f1-icon-grey.png | Bin 0 -> 2016 bytes web/0.3.4/share/i/face2.png | Bin 0 -> 489 bytes web/0.3.4/share/i/loader.gif | Bin 0 -> 2433 bytes web/0.3.4/share/i/sprite.png | Bin 0 -> 4309 bytes web/0.3.4/share/index.html | 226 ++++ web/0.3.4/share/index.js | 139 ++ web/0.3.4/share/panel/build.js | 12 + web/0.3.4/share/panel/i/sprite.png | Bin 0 -> 3359 bytes web/0.3.4/share/panel/i/thumb.jpg | Bin 0 -> 1708 bytes web/0.3.4/share/panel/index.html | 208 +++ web/0.3.4/share/panel/index.js | 540 ++++++++ .../share/panel/js/jquery.textOverflow.js | 108 ++ .../panel/scripts/widgets/AccountPanel.html | 62 + .../panel/scripts/widgets/AccountPanel.js | 435 +++++++ .../scripts/widgets/AccountPanelFaceBook.js | 58 + .../scripts/widgets/AccountPanelLinkedIn.js | 47 + .../panel/scripts/widgets/DebugPanel.html | 19 + .../share/panel/scripts/widgets/DebugPanel.js | 37 + .../share/panel/scripts/widgets/PageInfo.html | 13 + .../share/panel/scripts/widgets/PageInfo.js | 78 ++ .../share/panel/scripts/widgets/jigFuncs.js | 81 ++ web/0.3.4/share/panel/style.css | 1082 +++++++++++++++ web/0.3.4/share/share.css | 1038 +++++++++++++++ web/0.3.4/share/testframe.html | 82 ++ web/0.3.4/stats/index.html | 48 + web/0.3.4/stats/index.js | 180 +++ web/0.3.4/style.css | 339 +++++ 177 files changed, 21720 insertions(+), 5 deletions(-) create mode 100644 web/0.3.4/auth.html create mode 100644 web/0.3.4/blank.html create mode 100644 web/0.3.4/build.js create mode 100644 web/0.3.4/favicon.ico create mode 100644 web/0.3.4/favicon.png create mode 100644 web/0.3.4/i/LinkedIn_Logo16px.png create mode 100644 web/0.3.4/i/check.png create mode 100644 web/0.3.4/i/cornerBottomLeft.png create mode 100644 web/0.3.4/i/cornerBottomRight.png create mode 100644 web/0.3.4/i/cornerTopLeft.png create mode 100644 web/0.3.4/i/cornerTopRight.png create mode 100644 web/0.3.4/i/f1Icon.png create mode 100644 web/0.3.4/i/f1Logo.png create mode 100644 web/0.3.4/i/f1LogoVert.png create mode 100644 web/0.3.4/i/facebookIcon.png create mode 100755 web/0.3.4/i/fancybox/blank.gif create mode 100755 web/0.3.4/i/fancybox/fancy_close.png create mode 100755 web/0.3.4/i/fancybox/fancy_loading.png create mode 100755 web/0.3.4/i/fancybox/fancy_nav_left.png create mode 100755 web/0.3.4/i/fancybox/fancy_nav_right.png create mode 100755 web/0.3.4/i/fancybox/fancy_shadow_e.png create mode 100755 web/0.3.4/i/fancybox/fancy_shadow_n.png create mode 100755 web/0.3.4/i/fancybox/fancy_shadow_ne.png create mode 100755 web/0.3.4/i/fancybox/fancy_shadow_nw.png create mode 100755 web/0.3.4/i/fancybox/fancy_shadow_s.png create mode 100755 web/0.3.4/i/fancybox/fancy_shadow_se.png create mode 100755 web/0.3.4/i/fancybox/fancy_shadow_sw.png create mode 100755 web/0.3.4/i/fancybox/fancy_shadow_w.png create mode 100755 web/0.3.4/i/fancybox/fancy_title_left.png create mode 100755 web/0.3.4/i/fancybox/fancy_title_main.png create mode 100755 web/0.3.4/i/fancybox/fancy_title_over.png create mode 100755 web/0.3.4/i/fancybox/fancy_title_right.png create mode 100755 web/0.3.4/i/fancybox/fancybox-x.png create mode 100755 web/0.3.4/i/fancybox/fancybox-y.png create mode 100755 web/0.3.4/i/fancybox/fancybox.png create mode 100644 web/0.3.4/i/gmailIcon.png create mode 100644 web/0.3.4/i/loader-w.gif create mode 100644 web/0.3.4/i/panel/f1accounts.png create mode 100644 web/0.3.4/i/panel/f1panel.png create mode 100644 web/0.3.4/i/panel/step-01.png create mode 100644 web/0.3.4/i/panel/step-02.png create mode 100644 web/0.3.4/i/panel/step-022.png create mode 100644 web/0.3.4/i/panel/step-03.png create mode 100644 web/0.3.4/i/screenshot_01.png create mode 100644 web/0.3.4/i/shareIcon.png create mode 100644 web/0.3.4/i/sprite.png create mode 100644 web/0.3.4/i/step-01.png create mode 100644 web/0.3.4/i/step-02.png create mode 100644 web/0.3.4/i/step-03.png create mode 100644 web/0.3.4/i/toolbar-button.png create mode 100644 web/0.3.4/i/twitterIcon.png create mode 100644 web/0.3.4/index.html create mode 100644 web/0.3.4/index.js create mode 100755 web/0.3.4/jquery.fancybox-1.3.4.css create mode 100644 web/0.3.4/play/ac.html create mode 100644 web/0.3.4/play/designs/i/background.gif create mode 100644 web/0.3.4/play/designs/i/bryanAvatar.jpg create mode 100644 web/0.3.4/play/designs/i/linkdropiconfaded.png create mode 100644 web/0.3.4/play/designs/i/settings.png create mode 100644 web/0.3.4/play/designs/nativeShare.css create mode 100644 web/0.3.4/play/designs/nativeShare.html create mode 100644 web/0.3.4/play/designs/neutralShare.css create mode 100644 web/0.3.4/play/designs/neutralShare.html create mode 100644 web/0.3.4/play/designs/share.css create mode 100644 web/0.3.4/play/designs/share.html create mode 100644 web/0.3.4/play/designs/sidebar/i/sprite.png create mode 100644 web/0.3.4/play/designs/sidebar/i/thumb.jpg create mode 100644 web/0.3.4/play/designs/sidebar/index.html create mode 100644 web/0.3.4/play/designs/sidebar/js/init.js create mode 100644 web/0.3.4/play/designs/sidebar/js/jquery.textOverflow.js create mode 100644 web/0.3.4/play/designs/sidebar/style.css create mode 100644 web/0.3.4/play/scratch/send/index.html create mode 100644 web/0.3.4/rdapi/f/StayPuft/COPYING.LIB create mode 100644 web/0.3.4/rdapi/f/StayPuft/README.txt create mode 100644 web/0.3.4/rdapi/f/StayPuft/StayPuft.ttf create mode 100644 web/0.3.4/rdapi/i/2709984325_f5554afd53_o2.jpeg create mode 100644 web/0.3.4/rdapi/index.css create mode 100644 web/0.3.4/rdapi/index.html create mode 100644 web/0.3.4/rdapi/scripts/index.js create mode 100644 web/0.3.4/robots.txt create mode 100644 web/0.3.4/scripts/AutoComplete.js create mode 100644 web/0.3.4/scripts/AutoCompleteRefresh.html create mode 100644 web/0.3.4/scripts/Contacts.js create mode 100644 web/0.3.4/scripts/ContactsEmail.js create mode 100644 web/0.3.4/scripts/ContactsTwitter.js create mode 100644 web/0.3.4/scripts/Select.css create mode 100644 web/0.3.4/scripts/Select.html create mode 100644 web/0.3.4/scripts/Select.js create mode 100644 web/0.3.4/scripts/TextCounter.js create mode 100644 web/0.3.4/scripts/accounts.js create mode 100644 web/0.3.4/scripts/blade/Widget.js create mode 100644 web/0.3.4/scripts/blade/array.js create mode 100644 web/0.3.4/scripts/blade/defer.js create mode 100644 web/0.3.4/scripts/blade/dispatch.js create mode 100644 web/0.3.4/scripts/blade/fn.js create mode 100644 web/0.3.4/scripts/blade/jig.js create mode 100644 web/0.3.4/scripts/blade/object.js create mode 100644 web/0.3.4/scripts/blade/url.js create mode 100644 web/0.3.4/scripts/cards.js create mode 100644 web/0.3.4/scripts/dispatch.js create mode 100644 web/0.3.4/scripts/dotCompare.js create mode 100644 web/0.3.4/scripts/fancyzoom.js create mode 100644 web/0.3.4/scripts/friendly.js create mode 100644 web/0.3.4/scripts/hashDispatch.js create mode 100644 web/0.3.4/scripts/iscroll-min.js create mode 100644 web/0.3.4/scripts/isoDate.js create mode 100755 web/0.3.4/scripts/jquery-ui-1.8.6.custom.min.js create mode 100644 web/0.3.4/scripts/jquery-ui-1.8.7.min.js create mode 100644 web/0.3.4/scripts/jquery.colorFade.js create mode 100644 web/0.3.4/scripts/jquery.cookie.js create mode 100644 web/0.3.4/scripts/jquery.easing.1.3.js create mode 100755 web/0.3.4/scripts/jquery.fancybox-1.3.4.js create mode 100644 web/0.3.4/scripts/jquery.masonry.js create mode 100644 web/0.3.4/scripts/jquery.textOverflow.js create mode 100644 web/0.3.4/scripts/jquery.tmpl.js create mode 100644 web/0.3.4/scripts/jquery.vgrid.0.1.5.js create mode 100644 web/0.3.4/scripts/jqueryStub.js create mode 100644 web/0.3.4/scripts/json2.js create mode 100644 web/0.3.4/scripts/md5.js create mode 100644 web/0.3.4/scripts/oauth.js create mode 100644 web/0.3.4/scripts/placeholder.js create mode 100755 web/0.3.4/scripts/protovis/protovis-r3.2.js create mode 100644 web/0.3.4/scripts/rdapi.js create mode 100644 web/0.3.4/scripts/requireplugins-jquery.js create mode 100644 web/0.3.4/scripts/rssFeed.js create mode 100644 web/0.3.4/scripts/services.js create mode 100644 web/0.3.4/scripts/shareOptions.js create mode 100644 web/0.3.4/scripts/storage.js create mode 100644 web/0.3.4/scripts/templates/cardsHeader.html create mode 100644 web/0.3.4/scripts/webtrends.js create mode 100644 web/0.3.4/service/down.html create mode 100644 web/0.3.4/service/favicon.png create mode 100644 web/0.3.4/service/i/f1Logo.png create mode 100644 web/0.3.4/service/privacy.html create mode 100644 web/0.3.4/service/style.css create mode 100644 web/0.3.4/settings/build.js create mode 100644 web/0.3.4/settings/i/LinkedIn_Logo16px.png create mode 100644 web/0.3.4/settings/i/f1Logo.png create mode 100644 web/0.3.4/settings/i/sprite.png create mode 100644 web/0.3.4/settings/i/thumb.jpg create mode 100644 web/0.3.4/settings/index.html create mode 100644 web/0.3.4/settings/index.js create mode 100644 web/0.3.4/settings/style.css create mode 100644 web/0.3.4/share/build.js create mode 100644 web/0.3.4/share/i/LinkedIn_Logo16px.png create mode 100644 web/0.3.4/share/i/bug_b.png create mode 100644 web/0.3.4/share/i/bug_w.png create mode 100644 web/0.3.4/share/i/f1-icon-grey.png create mode 100644 web/0.3.4/share/i/face2.png create mode 100644 web/0.3.4/share/i/loader.gif create mode 100644 web/0.3.4/share/i/sprite.png create mode 100644 web/0.3.4/share/index.html create mode 100644 web/0.3.4/share/index.js create mode 100644 web/0.3.4/share/panel/build.js create mode 100644 web/0.3.4/share/panel/i/sprite.png create mode 100644 web/0.3.4/share/panel/i/thumb.jpg create mode 100644 web/0.3.4/share/panel/index.html create mode 100644 web/0.3.4/share/panel/index.js create mode 100644 web/0.3.4/share/panel/js/jquery.textOverflow.js create mode 100644 web/0.3.4/share/panel/scripts/widgets/AccountPanel.html create mode 100644 web/0.3.4/share/panel/scripts/widgets/AccountPanel.js create mode 100644 web/0.3.4/share/panel/scripts/widgets/AccountPanelFaceBook.js create mode 100644 web/0.3.4/share/panel/scripts/widgets/AccountPanelLinkedIn.js create mode 100644 web/0.3.4/share/panel/scripts/widgets/DebugPanel.html create mode 100644 web/0.3.4/share/panel/scripts/widgets/DebugPanel.js create mode 100644 web/0.3.4/share/panel/scripts/widgets/PageInfo.html create mode 100644 web/0.3.4/share/panel/scripts/widgets/PageInfo.js create mode 100644 web/0.3.4/share/panel/scripts/widgets/jigFuncs.js create mode 100644 web/0.3.4/share/panel/style.css create mode 100644 web/0.3.4/share/share.css create mode 100644 web/0.3.4/share/testframe.html create mode 100644 web/0.3.4/stats/index.html create mode 100644 web/0.3.4/stats/index.js create mode 100644 web/0.3.4/style.css diff --git a/production.ini b/production.ini index b8166d8..38da65c 100644 --- a/production.ini +++ b/production.ini @@ -11,8 +11,8 @@ import = %(here)s/private.ini smtp_server = localhost error_email_from = paste@localhost -oauth_failure = /0.3.3/auth.html#oauth_failure -oauth_success = /0.3.3/auth.html#oauth_success +oauth_failure = /0.3.4/auth.html#oauth_failure +oauth_success = /0.3.4/auth.html#oauth_success # Register with twitter at http://dev.twitter.com/apps/new oauth.twitter.com.request = https://twitter.com/oauth/request_token diff --git a/setup.py b/setup.py index 9a3ba73..140f896 100644 --- a/setup.py +++ b/setup.py @@ -28,7 +28,7 @@ except ImportError: use_setuptools() from setuptools import setup, find_packages -VERSION='0.3.3' +VERSION='0.3.4' setup( name='linkdrop', diff --git a/staging.ini b/staging.ini index f2e8fc4..98d4647 100644 --- a/staging.ini +++ b/staging.ini @@ -11,8 +11,8 @@ import = %(here)s/private.ini smtp_server = localhost error_email_from = paste@localhost -oauth_failure = /0.3.3/auth.html#oauth_failure -oauth_success = /0.3.3/auth.html#oauth_success +oauth_failure = /0.3.4/auth.html#oauth_failure +oauth_success = /0.3.4/auth.html#oauth_success # Register with twitter at http://dev.twitter.com/apps/new oauth.twitter.com.request = https://twitter.com/oauth/request_token diff --git a/web/0.3.4/auth.html b/web/0.3.4/auth.html new file mode 100644 index 0000000..f4b9c6a --- /dev/null +++ b/web/0.3.4/auth.html @@ -0,0 +1,323 @@ + + + + + + Firefox Share OAuthorization + + + + + + + + + +
+
+ +
connecting...
+ + diff --git a/web/0.3.4/blank.html b/web/0.3.4/blank.html new file mode 100644 index 0000000..0c44a9d --- /dev/null +++ b/web/0.3.4/blank.html @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/web/0.3.4/build.js b/web/0.3.4/build.js new file mode 100644 index 0000000..f9cd76a --- /dev/null +++ b/web/0.3.4/build.js @@ -0,0 +1,10 @@ +({ + baseUrl: "scripts/", + paths: { + "index": "../index", + "jquery": "requireplugins-jquery" + }, + name: "index", + exclude: ['jquery'], + out: './index.js' +}) diff --git a/web/0.3.4/favicon.ico b/web/0.3.4/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..df18f9c2ffc00d568abe58563032e107372144cc GIT binary patch literal 1150 zcmb8vze)o^5C-rGYU33K3u{XY+mrYPK8g>K;@XI!1WnHWK1ZrlLexMYRw9CkLWrP< zN$^NAe&62hu?a-HmEX^FjqB02oz^MdcHY|o3Vh{zgXgh@O{5y9KC7c)IR4<*@v z3akVBLejTTI|<&I*#u@%k2|seO&Gv63_)iYVO|9fgr0VdEmX~*hOEck=RKp0su_jc zec2Zu#-JH-$A3GJ5Y$o}d+*(!u}zPiJ2mW-r44E^{M`uBo^u}iK2_WAhtdVL`Zs~e z+nzOgt!uwoN;A$|_oE`DF7pfU88nLNoHI9*+`C_)v_W0WPWPPs+yxVJ?)FaP7}OOt zgYCZ0yL@(nCZBZ`tlgxm8!duu$G z5E5MYF}uUe?9A+rK_>xeYX&TWSumz_&!7TM!A;cIpkwi~w?GN3fEcx3Y+MF;&|rm0 zfebJJ&Vfyx7YAMg6TkuWm<$kz60p_28*Jr+5)PXgM7ovb^tQNp)0{yL7||Qtbew`* zpQJDumpYbwj@YqJ&LrVy_0St>i;RPh->X)Kq%7Wlp^bjjG#i5=DV0%_Qz4a*XJhY8 z>fCCBG~1-9MI?913g374rKP)ahH2}esozfFGYY>3Inqi$(@(`}{g3h7c!K87UfVUY z#wAqr^j+^=?vEA*DOev3OJb>)3SWb^pZ@ubLfnBJKs{1sU;G2468INNcFQHm^PV$E zfKBiTJm7b@Re*iqfI91Vm{O_-%ivLs^Adj&ZJe*wID64Xd+P^&^ z+)%*}H3$eXOJXC~M(YAdS}fHZZ7n-~;AzJm8i?cENEUNH*YLEo0!vD4WeiYj`k_^6 zdZ@Vpu8!@+i9KnI=F@oep^UogLQ1hYO7|o%yyJziR$brtIp{zpj^|4?EY=(--DMKy z+@};7&yGj~!Z?1QAPSR3Pez2z7jykFR2?66LQX~_l!m|>spGRkCV^HE;&at8=|vbp z>A-S*g?b~zwebQjAJ5}`xqGxKFrxNoa1f|a=S;wzqfs^BFJ z7N4`-cveC_-G|~rg$rSDg`AkyidR0pRDCmUtb*Fcd75BW!$e-tX0~W=3;IY{7mn?| yJ3aT~l#2c{_)+WsKPcAoN&2799?s4D6<`3&2tQfo$JZ(V0000G)qSS literal 0 HcmV?d00001 diff --git a/web/0.3.4/i/check.png b/web/0.3.4/i/check.png new file mode 100644 index 0000000000000000000000000000000000000000..acb4f7ac1187e0ea0451ba5a03549adf56e1ba98 GIT binary patch literal 494 zcmVuk(|f~cZ`4B1 zaG06LJ?Gx{-o4z?`68O25Y8~9NHIKPgFVc5knor=j#jW{r-TW@NBYAv;>;i7X2hM? zAZtJ~OXwVuqp=N?c9|{aZCEBu%ff^dM$jK(D^Yl6Z#HP~x2ZW&jtC7{WNkJyhvak; z!~PN1*|Zq=1TW-1nUuyuGj(EUASNqFOl{(>dW);)^#2BmtYRy&jeb#rPAXBy7O)=P zz{ATu4sQ0L8@kKD)4ccj(HH{W0HOm?o2!#+$i8N=cfE_sX9Zr5_ulKgAs9DJINfW k4-OU}iWI?U;VC^Pn$KFN3G6pUXO@geCw@*D6N< literal 0 HcmV?d00001 diff --git a/web/0.3.4/i/cornerBottomRight.png b/web/0.3.4/i/cornerBottomRight.png new file mode 100644 index 0000000000000000000000000000000000000000..b9a18881b3622ef7ea94d5f0d1782ee2b847300a GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^tRT$61|)m))t&+=$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1Gx}GkMAr-fh{`~)M&n)#I{fJUVv)&1wBh``)O&&Y`+D}pB kJyPdT^T1w&fklGh>}s88-;VhQmAoqGw(-nVn!V gaI7nFY+zt!2x|x^Tzp{NCZH|`Pgg&ebxsLQ0DhV&M*si- literal 0 HcmV?d00001 diff --git a/web/0.3.4/i/cornerTopRight.png b/web/0.3.4/i/cornerTopRight.png new file mode 100644 index 0000000000000000000000000000000000000000..2009a09a1306b19594e14eca50fa66a3ce7fbf85 GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^tRT$61|)m))t&+=$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1Gx}GkMAr-fhe*OP%Z!d70;bY_ffCCLJGaGlvs+`~ua$siP k!1>G2FrjHP10x&5$|$XX*M74O12r;uy85}Sb4q9e09C^)asU7T literal 0 HcmV?d00001 diff --git a/web/0.3.4/i/f1Icon.png b/web/0.3.4/i/f1Icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f55793b8d939dd650edfa419af963fb232e3f6fc GIT binary patch literal 389 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 literal 0 HcmV?d00001 diff --git a/web/0.3.4/i/fancybox/fancy_loading.png b/web/0.3.4/i/fancybox/fancy_loading.png new file mode 100755 index 0000000000000000000000000000000000000000..2503017960b3972499d3aa92f89953935ae40934 GIT binary patch literal 10195 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 literal 0 HcmV?d00001 diff --git a/web/0.3.4/i/fancybox/fancy_nav_left.png b/web/0.3.4/i/fancybox/fancy_nav_left.png new file mode 100755 index 0000000000000000000000000000000000000000..ebaa6a4fd34e51575a01da366312c20618985cbc GIT binary patch literal 1446 zcmV;X1zGxuP)R`@usIzf?P{x4#0gFqr~|(;IJySuwjr=+Ar78e&sHZ(Lu;P)*wKU%|U#jmpg5~Q6= zNl8{#mZGz>Q!_F$qJ8n=#Z9x>Jn_n|ZEtTsSzllOW_Wn`!@Rt_=!l4jAl`tKb-5%L zv7js_CMF<1KR>Fcr{|nbr~AR4Y-MG|y0EZdwI6@^^5yrikSZ}TQ5hH*C?{R4Q{?KT zKD6U2SFWfB2M0g0TCEGD5GUP%Y0a>J0W!M1fVuVU?d@ix(YV91PjUK7@OzY8E)OJ~ z&Q30n%8njA8kC)#t?uvd&xMXHQZzI)WQmTB-n1vQM_gQ-{_*3-7UA?*_bJ9=m|W(F zT+IHE$H&L3T3T8zSS*%BTHM>)YZi;eI#;9uNVch|X-go#ckf=VQmKq2-ORBYaGo52 zejyg&!SS;_ltMX3~N9_#ORsfn&tMTp}T$j*yAd)6-A(_4O6g z0=-^ug|9bVkxorbSsNQ0x9sPG&EF`laq6qgf=!d ztnQGKnVtDqz_Vx1Y=Kr=TU+Vx?;nS;5H`1m#Lv%9fqI)#T3Y%!3C+yRSpE-E!h;77 zwm7Z1{&Y;%TkkIqz&m9sAKBbnCkzsHry#@vbY{a-wI?zu7 zloV4Q9NtQWLUAT7Ev=G-*4EZ6|HZd^F*!MDB>C#<>PDGN_5sGi_Yq4ZlG7@css!ck z9};wyN`LrygSGPaaLVfqXl2Z+Nkm;ygvo12>(Bf+YwDwC`Hbwy5foiCI>(Z2*F z+nZVe;)K}P*aF#9Y8tUS3{lK|w(!NULrkdP#x17leSb zXU`h&IIwaw4`8eqNV6{>BDOh|vjhZ0E{e&QDDu0Pe|>%Zmb;{dg@s0w$z&rPA0K~+ zu^J$UblaCq5g(ljxEe?Y`8AmFYt-vOfqZ&;+Eh?bV07kp3Z#jN34Zfk3!OW_7k zM!Hz%fopN!Lja&lI}y+lIZjBszTeT&@!Ra|?DQ)q4Us*EN5ey8M=zh0NVTlX;X`2G z(+8kuN)-Dfn@v@Ns?$arfE9ks%*_0?uCDGc0&cYN@bK_KngiO{r&oDx0_$@6^x5~= zW5Gx^5k=$2z;)mYpdQiR47B2ZEBzOVMD;v(on_N_Z6xdRarMj=Ped`)=n zv4Dh?$k=SYcJSdjDa(58`F?t%ZzxBbaRs;9zaA#)un(S!5dZ)H07*qoM6N<$g4RXF AD*ylh literal 0 HcmV?d00001 diff --git a/web/0.3.4/i/fancybox/fancy_nav_right.png b/web/0.3.4/i/fancybox/fancy_nav_right.png new file mode 100755 index 0000000000000000000000000000000000000000..873294e969db9160f5ddd4e1ab498ff60b080e3f GIT binary patch literal 1454 zcmV;f1yTBmP)Wa6`&Z+!IVkxf`V#(j>y7#5eg z5*PD+C=wGBwT+F9xi*_^fd=>X_FBba@wz8b0c3ma+OG#c&LYnSBp_4S(*6BG8m#QpsI))yBSw}|WBy?ft)>pk?VIMu|0u-xC@UxO$< zHa9o-0~vR8bXeVyB61x;@W6T@vgyO$TgWvPslhu zJ>BGvFeN3$D2UT9wO!c-2M2E;RvddB6cm(&J}nRg`1!DUaA;_#J})n?kc`&W*6f~w z$XoI8@o`6>)z;Ql1O^7iqc4Qr?IQ^Y2vDQmrd_^#`AagIo}RXO6Tw=o)=2K&OZ?8A zJDVKcH{^2p2j~ms)bf#Ff5Y^8{ZZ7~8Zw%koV0nHJ||9`FbS!%u(0sL`TfAafI}Du zN;}#qfQDkqhr?T=R;!O@W@c89(aOq-SHe5pO)Do4INRL6f8R{+tE;Q)Wir`E=nLN^ zERjf#VBjT`yZ^}0T`IW~brs!I17PDwDHNtJpz(@u7&_Ci&*x`nXGh4eva-_hHlhTo z>wKX6jrLg})!Ef*2q(qH#unh5y~V~`*!#E25W2>+0$@y%jAkE;d^% z7KiBQ=;#CV)c|?K?OZZNymTtyIv@+;=i$b0QLhID@u{gPOF=<_+1^cd)FbceJt|Pr3Z2#UW)pC9hbbpr%#_w3xu>9DucKZSqKjwKC}oa!!=;B zxw)ARh3h~maWUsB$KtMw06>R!GGHKatdM5?eS3TRA2TyEQ!m{-s9LkQG(13d^zuqc z)WBRWF9N%+J^)=)qIgeo*i|*CI?Xfzc;V-hCr|!<<;s9veooizpgD1ug<#0dV!Z literal 0 HcmV?d00001 diff --git a/web/0.3.4/i/fancybox/fancy_shadow_e.png b/web/0.3.4/i/fancybox/fancy_shadow_e.png new file mode 100755 index 0000000000000000000000000000000000000000..2eda0893649371f8d92b92976d8542cdd1b601ed GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^B0$W@!3HGnP3ltxQbwLGjv*Y^lSRZuwe#}JO|p{EaWGAM`~zK|Yh zF7SQ+m+Ig>B0@o-N8?trihfzZ+Vp1~`{zf0o*#X0$hUAi%N$P)W1wCJ22WQ%mvv4F FO#q)zAp-ya literal 0 HcmV?d00001 diff --git a/web/0.3.4/i/fancybox/fancy_shadow_ne.png b/web/0.3.4/i/fancybox/fancy_shadow_ne.png new file mode 100755 index 0000000000000000000000000000000000000000..79f6980a3ba5c43de120d963dbba2516b8f27ac7 GIT binary patch literal 347 zcmV-h0i^zkP)dR9Yb&V8f!h)aDezHAsc|y@|hdQ zYJb}?8~~zFbQ)ku!Ey)KSukutuvdZ@MKMX|x|A3tPyx?YVhN^6z!Mi4Mj2f#%<;nh z2{>?YAzu|{u^;Oq!;f7Z4tPBpJEmZ+^GZ#$=9nz(K+UmK7}|u&EPi%aRt_C3qOFB_ zHc`~N>51%{?ijG?xsHt>MwRChgk=x_z0gh3O2xSL)-6?+2LKZL74~Q>MZjWtwukkA tvjRC=&j+0R$&bLyT7MhBcTXDISHC&xXU0&5CWHV0002ovPDHLkV1fX+la~Mh literal 0 HcmV?d00001 diff --git a/web/0.3.4/i/fancybox/fancy_shadow_nw.png b/web/0.3.4/i/fancybox/fancy_shadow_nw.png new file mode 100755 index 0000000000000000000000000000000000000000..7182cd938ae98e7e28c65a0bc55df576042ff9f5 GIT binary patch literal 324 zcmV-K0lWT*P)2-&4CO{qhKP$XKD&mgeXEM77>~`RA}h@U^Z##eQZVtM>a-K?QT4 z&(8BFf(rD5V61)2I__wHYuRwoaDIqw5Vdr_JSDVr){#J@r;{vbDL|tRyCiirf~4OF zX-l=Ecm>@yR)1nSMt~dy90Zb`^`)TQbhf8jR@fA!l6V$musRyB9Y{p$SCW}!$3==V zk)fW)Xo{s^ez$t+XhmZj;ts)!kTokvmM>z)zt70000 literal 0 HcmV?d00001 diff --git a/web/0.3.4/i/fancybox/fancy_shadow_se.png b/web/0.3.4/i/fancybox/fancy_shadow_se.png new file mode 100755 index 0000000000000000000000000000000000000000..541e3ffd3e88224b34a4d2097c66a780e6060aeb GIT binary patch literal 352 zcmV-m0iXVfP){pM9=`y8<_IvWD02WY@RZ<9dgjNmAB|sYF}Xw>7Sq@O0000eMf9z;FC21=)67q_`W0*0KnS4AR00W2`RGn3i8UfsEegLO@ zPhds?2e1Tm)FK3=bymIAx?X=YFo3Mdh7W?@I#8s#svp!&PB> zwah@Ngd|l0N4SCfzvjtQnd$dZ0yM)N$X+lqdtN!Pt{Wn*_`0U}m1^#r1 mwpaW{;a?9KKt^WrpTAEd?0j1W(3L*`0000P{ho=rRL|66mGO)=r*Hk83F#~lnc)I$ztaD0e0sy?& B8X5oq literal 0 HcmV?d00001 diff --git a/web/0.3.4/i/fancybox/fancy_title_left.png b/web/0.3.4/i/fancybox/fancy_title_left.png new file mode 100755 index 0000000000000000000000000000000000000000..6049223d1ec6af46e100499c01f6489c9e2c6240 GIT binary patch literal 503 zcmV+)0005LNklqcp9&~$uJw{{rUub~E?-XJ#Upm4Fe%-Gl z!u%tb0N102a|s5;SPlQvJlFCTBbvYaK@wIW6Gjx@?i20AlVDJcHNfh25WRlbF6CIq zv9_ZnqOH`}ppaUR0@%ZcM9zpDt2uQM>f+Z#wIMmyuui3DeoYXWE|hQ{D$te=Yhgkq zIvyj+$t8T|S1wITzUftNOe(E+Qjn$kDotY;I5}1lRgwi=?K26ke)djLR5W2|!7CVH zJ-`tuAq|`lK978y+CnqGNCkUke_%Gig ukvFM-ftpWh!il7Wg7kz7Y?7xB@G*olNlgoj4E_Yv!rmdKI;Vst0Ha3^zyJUM literal 0 HcmV?d00001 diff --git a/web/0.3.4/i/fancybox/fancy_title_right.png b/web/0.3.4/i/fancybox/fancy_title_right.png new file mode 100755 index 0000000000000000000000000000000000000000..e36d9db2a7c6e570aec993d3665cbc13620115e2 GIT binary patch literal 506 zcmV+)0005ONklxjQB-g>5=x46nGBwseihc$zfzvTFh(=tCRj6cJ4M&ASrCAq-HbokPnRBAHVa2(-|l wYU(UxfYLN;KDSr z1<%~X^wgl##FWaylc_d9MY*0Xjv*Ddw)7kFH5l+P-xcE$W)3=fYI&uMKVzWNT*W|n zhqlRY)q0r(8Mg&Fu_zpISivgz+b7g)c6G&O{~njE??Y{u-MM!p^=9_W+X-j8mhfK? zj`H2Yy;kp%)!V-M3;EVThyB(Z@o88wpMja-vy^g)SgE!<&|(HpS3j3^P6|6H_V+Po~-c6$N>^IEGZ*^681?Yf#{6Zf~e!I`r4y-J+3m*Ue*gH=cNZ zzpU%p61aCO%jt%FHUKW&bEWLcUAGzK?;SYE)E{9#W9O8@uj{O@89qzNU(dkI YVCW(7-@(*!CeU;SPgg&ebxsLQ07`N|KL7v# literal 0 HcmV?d00001 diff --git a/web/0.3.4/i/fancybox/fancybox.png b/web/0.3.4/i/fancybox/fancybox.png new file mode 100755 index 0000000000000000000000000000000000000000..65e14f68fd83b87f75c22c0c074e7b20bf20a133 GIT binary patch literal 15287 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 ZMt7F5hocMxav&E)U0Fw|QQ>vO{{ZOG+C=~W literal 0 HcmV?d00001 diff --git a/web/0.3.4/i/gmailIcon.png b/web/0.3.4/i/gmailIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..387d978d20409398d8f14529c0d8afb55c93aa0e GIT binary patch literal 468 zcmV;_0W1EAP)r|$CnUy?_7A`8 zCOb1bv)KW-E_URq!Koev_Zd*189s8>ilSuk1pEeG)`w}DMzK7B3xAU@7|RkWl?tW( z4*$~=mQzwy6%508!4YXR8W2U%S#XW)$VUd)@Ar4KuwJiWFc=iJ!*94ocH{%Pt}_8A z;y9L=rg?UrwME~uWm#;wTo!g*EEZtfb~-0z4jr>%W%1zK?G|>sT_MPPJ}-QeX$#fs zbqv5uyZL`^2Ja$|oJM=-{GQNmfzQp*9Mw7`za!HiI(dYLsbUK|kaZqXW zTc9oa;9RNIYOq?ZzFpVVk|cQu!|?Qa=je93(C_#C;c)mWuX3x^O4FOoW}Y}uHwXeC zP`C-vY&LzzamHykw%hGojnnBg?MBYI>_)~|+Kr>pDA$b#0R{jSK&{)oQ&#K%0000< KMNUMnLSTY|h|m`R literal 0 HcmV?d00001 diff --git a/web/0.3.4/i/loader-w.gif b/web/0.3.4/i/loader-w.gif new file mode 100644 index 0000000000000000000000000000000000000000..0247671c50d4745312656dfca0faff6474df62e8 GIT binary patch literal 2774 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 bT&EHR9-NL|s65Y1Pp6FZ%ycVs?nnOvcq@XE literal 0 HcmV?d00001 diff --git a/web/0.3.4/i/panel/step-02.png b/web/0.3.4/i/panel/step-02.png new file mode 100644 index 0000000000000000000000000000000000000000..75a23d3f7b24c2c4672c9161a686f6636428087d GIT binary patch literal 27852 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 literal 0 HcmV?d00001 diff --git a/web/0.3.4/i/panel/step-022.png b/web/0.3.4/i/panel/step-022.png new file mode 100644 index 0000000000000000000000000000000000000000..99a31f78b15da16aea8534aace5b479b0943cec3 GIT binary patch literal 23869 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

ZhE*nI8UH5sx( zp*ITTg|Pky4<3}u5FmxqKkx(PR@FKfBZOM`T<^{Bg+H&bEq+8uB<_y=)cIClhug~I zQ4hF6aW?xDv+`tW3t2tJvEAigukkoWI0l1ZBM)W~Fc?fY27?J_H_>erobI3hS5?g| z|5}WPb2tX0j?mePGZ=Lw9RE+y8#5l3S98iocWUQBBjawT`>*wQSYFL5A8le{f@4Ys zqfX#u0S2R;VLD2IQDRL9FNXciM3PWE5x@vyv_Q$CJ`ly-iHzt%~vll|9vJS?x~l#k0v zi@*f{mKV#Xe0w@S!_?UEu)LZ}K8||0M#Aa-Yds#8S98k8wN)(vdp7oLkE48eS%AT) zBbaauMm|d(NO$ffB^tm#4D0-2z%WC0000< KMNUMnLSTZBpzjI* literal 0 HcmV?d00001 diff --git a/web/0.3.4/i/step-02.png b/web/0.3.4/i/step-02.png new file mode 100644 index 0000000000000000000000000000000000000000..38611d65117b4ed3de0febdf7c62bb097ee45b15 GIT binary patch literal 4270 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 literal 0 HcmV?d00001 diff --git a/web/0.3.4/i/toolbar-button.png b/web/0.3.4/i/toolbar-button.png new file mode 100644 index 0000000000000000000000000000000000000000..e2049d508dd7b6e620fd4b32692e23581c0c3657 GIT binary patch literal 390 zcmV;10eSw3P)va;?1su6-}e#e4OF*`fEGcz+YAIwk|78V8!4cy$^tU$^Oh~qdoI6lhC%C36+ z_%VpjU}JP7noRHjq=$F$>UI#=n36!a{`M`0?ZKfy~!9LoFd8!TrRE6A3^zGtm7v z-@bio0yOD5kiX!;g9n!|Gyo;pfwUl$|Lgw!`@AVBDYih51_9;X0mY63aTrv-5nDVk zf&vSO`2qt2EpFbtSqh2{sFPn4ia0I<1A~qK{`~{HfQgCeJre_d@XglNwg>39+aL^L k6HFSQ2uJecdw>7~07Y{f`Y2rdoc(8)n?5QG@hyfb&?tfmis zNgnV0-@UusLnzsBL}J3FJ%p5FfPKaI;Ic(gjH8DH|Dbc4bUKX$K>+j+E&5KP5+a3s zf{!zq3~l?Jb~PT4$-C8RC2ju^wv&Pm^7;Jpa=B!Ya{0V(Fn5H>`y$n+wDjJ$8i{@X>tWX16lzbS(cr6&@c?N-ELVYV7~8j z1*nGng?hdIw%_lcrqd}&p3mpd-k&p}ho~qD(TqkTB<6BCG?`4kHBFOFr&DFMT3udm z4iGn+%|W-@eFYy^t5vpwZQJ@{vCv%CMHDbtgiAbCt|i~s-t07*qoM6N<$f<_?M3;+NC literal 0 HcmV?d00001 diff --git a/web/0.3.4/index.html b/web/0.3.4/index.html new file mode 100644 index 0000000..740245f --- /dev/null +++ b/web/0.3.4/index.html @@ -0,0 +1,172 @@ + + + + + + + + + Mozilla F1 + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ +
+
+

Share links fast.

+

So, what’s F1?

+ F1 is a browser extension that allows you to share links in a fast and fun way. Share links from within the browser, from any webpage, using the same services you already know and love. Mozilla F1 is made by Mozilla Messaging. + +
+
+ +
+
+ +
+
+
+ +
+
+

Share with your
favorite services

+ With support for Facebook, Twitter, Gmail, Google Apps, Yahoo Mail and LinkedIn, we have your favorite services covered—and we're adding more services with every release. +
+
+
+
+
+

Once you've installed F1 sharing is as easy as...

+
+
+ 1 Hit the F1 icon in the URL bar + +
+
+ 2 Choose your service in the menu + +
+
+ 3 Express yourself and hit share! + +
+
+
+
+ *Firefox 3.6 support: F1 uses some advanced technology + and UI capabilities that are not possible in Firefox 3.6 and earlier. + If you installed the previous version of F1 that works with Firefox 3.6, + it will continue to work while Firefox 4 is in beta. Once Firefox 4 is + released, the older 3.6 compatible extension will be phased out. +
+
+ +
+ + + + + + + + + + + + + + + + + + + + diff --git a/web/0.3.4/index.js b/web/0.3.4/index.js new file mode 100644 index 0000000..0c073e9 --- /dev/null +++ b/web/0.3.4/index.js @@ -0,0 +1,32 @@ +define("hashDispatch",[],function(){return function(b){function g(){var i=location.href.split("#")[1]||"_default",l,f;f=i.indexOf(":");if(f!==-1){l=i.substring(f+1,i.length);i=i.substring(0,f)}if(i in b)b[i](l);else b._catchAll&&b._catchAll(i,l)}g();window.addEventListener("hashchange",g,false)}}); +(function(b){var g,i,l,f,x,m,D,o,A,B,r=0,e={},p=[],q=0,d={},n=[],F=null,u=new Image,J=/\.(jpg|gif|png|bmp|jpeg)(.*)?$/i,W=/[^\.]\.(swf)\s*$/i,K,L=1,z=0,v="",s,k,j=false,C=b.extend(b("
")[0],{prop:0}),M=b.browser.msie&&b.browser.version<7&&!window.XMLHttpRequest,N=function(){i.hide();u.onerror=u.onload=null;F&&F.abort();g.empty()},O=function(){if(false===e.onError(p,r,e)){i.hide();j=false}else{e.titleShow=false;e.width="auto";e.height="auto";g.html('

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

'); +E()}},I=function(){var a=p[r],c,h,t,G,P,w;N();e=b.extend({},b.fn.fancybox.defaults,typeof b(a).data("fancybox")=="undefined"?e:b(a).data("fancybox"));w=e.onStart(p,r,e);if(w===false)j=false;else{if(typeof w=="object")e=b.extend(e,w);t=e.title||(a.nodeName?b(a).attr("title"):a.title)||"";if(a.nodeName&&!e.orig)e.orig=b(a).children("img:first").length?b(a).children("img:first"):b(a);if(t===""&&e.orig&&e.titleFromAlt)t=e.orig.attr("alt");c=e.href||(a.nodeName?b(a).attr("href"):a.href)||null;if(/^(?:javascript)/i.test(c)|| +c=="#")c=null;if(e.type){h=e.type;if(!c)c=e.content}else if(e.content)h="html";else if(c)h=c.match(J)?"image":c.match(W)?"swf":b(a).hasClass("iframe")?"iframe":c.indexOf("#")===0?"inline":"ajax";if(h){if(h=="inline"){a=c.substr(c.indexOf("#"));h=b(a).length>0?"inline":"ajax"}e.type=h;e.href=c;e.title=t;if(e.autoDimensions)if(e.type=="html"||e.type=="inline"||e.type=="ajax"){e.width="auto";e.height="auto"}else e.autoDimensions=false;if(e.modal){e.overlayShow=true;e.hideOnOverlayClick=false;e.hideOnContentClick= +false;e.enableEscapeButton=false;e.showCloseButton=false}e.padding=parseInt(e.padding,10);e.margin=parseInt(e.margin,10);g.css("padding",e.padding+e.margin);b(".fancybox-inline-tmp").unbind("fancybox-cancel").bind("fancybox-change",function(){b(this).replaceWith(m.children())});switch(h){case "html":g.html(e.content);E();break;case "inline":if(b(a).parent().is("#fancybox-content")===true){j=false;return}b('
').hide().insertBefore(b(a)).bind("fancybox-cleanup",function(){b(this).replaceWith(m.children())}).bind("fancybox-cancel", +function(){b(this).replaceWith(g.children())});b(a).appendTo(g);E();break;case "image":j=false;b.fancybox.showActivity();u=new Image;u.onerror=function(){O()};u.onload=function(){j=true;u.onerror=u.onload=null;X()};u.src=c;break;case "swf":e.scrolling="no";G='';P="";b.each(e.swf,function(y,H){G+='';P+=" "+y+'="'+ +H+'"'});G+='";g.html(G);E();break;case "ajax":j=false;b.fancybox.showActivity();e.ajax.win=e.ajax.success;F=b.ajax(b.extend({},e.ajax,{url:c,data:e.ajax.data||{},error:function(y){y.status>0&&O()},success:function(y,H,Q){if((typeof Q=="object"?Q:F).status==200){if(typeof e.ajax.win=="function"){w=e.ajax.win(c,y,H,Q);if(w===false){i.hide();return}else if(typeof w=="string"||typeof w== +"object")y=w}g.html(y);E()}}}));break;case "iframe":R();break}}else O()}},E=function(){var a=e.width,c=e.height;a=a.toString().indexOf("%")>-1?parseInt((b(window).width()-e.margin*2)*parseFloat(a)/100,10)+"px":a=="auto"?"auto":a+"px";c=c.toString().indexOf("%")>-1?parseInt((b(window).height()-e.margin*2)*parseFloat(c)/100,10)+"px":c=="auto"?"auto":c+"px";g.wrapInner('
'); +e.width=g.width();e.height=g.height();R()},X=function(){e.width=u.width;e.height=u.height;b("").attr({id:"fancybox-img",src:u.src,alt:e.title}).appendTo(g);R()},R=function(){var a,c;i.hide();if(f.is(":visible")&&false===d.onCleanup(n,q,d)){b.event.trigger("fancybox-cancel");j=false}else{j=true;b(m.add(l)).unbind();b(window).unbind("resize.fb scroll.fb");b(document).unbind("keydown.fb");f.is(":visible")&&d.titlePosition!=="outside"&&f.css("height",f.height());n=p;q=r;d=e;if(d.overlayShow){l.css({"background-color":d.overlayColor, +opacity:d.overlayOpacity,cursor:d.hideOnOverlayClick?"pointer":"auto",height:b(document).height()});if(!l.is(":visible")){M&&b("select:not(#fancybox-tmp select)").filter(function(){return this.style.visibility!=="hidden"}).css({visibility:"hidden"}).one("fancybox-cleanup",function(){this.style.visibility="inherit"});l.show()}}else l.hide();k=Y();Z();if(f.is(":visible")){b(D.add(A).add(B)).hide();a=f.position();s={top:a.top,left:a.left,width:f.width(),height:f.height()};c=s.width==k.width&&s.height== +k.height;m.fadeTo(d.changeFade,0.3,function(){var h=function(){m.html(g.contents()).fadeTo(d.changeFade,1,S)};b.event.trigger("fancybox-change");m.empty().removeAttr("filter").css({"border-width":d.padding,width:k.width-d.padding*2,height:e.autoDimensions?"auto":k.height-z-d.padding*2});if(c)h();else{C.prop=0;b(C).animate({prop:1},{duration:d.changeSpeed,easing:d.easingChange,step:T,complete:h})}})}else{f.removeAttr("style");m.css("border-width",d.padding);if(d.transitionIn=="elastic"){s=V();m.html(g.contents()); +f.show();if(d.opacity)k.opacity=0;C.prop=0;b(C).animate({prop:1},{duration:d.speedIn,easing:d.easingIn,step:T,complete:S})}else{d.titlePosition=="inside"&&z>0&&o.show();m.css({width:k.width-d.padding*2,height:e.autoDimensions?"auto":k.height-z-d.padding*2}).html(g.contents());f.css(k).fadeIn(d.transitionIn=="none"?0:d.speedIn,S)}}}},$=function(a){if(a&&a.length){if(d.titlePosition=="float")return'
'+ +a+'
';return'
'+a+"
"}return false},Z=function(){v=d.title||"";z=0;o.empty().removeAttr("style").removeClass();if(d.titleShow!==false){v=b.isFunction(d.titleFormat)?d.titleFormat(v,n,q,d):$(v);if(!(!v||v==="")){o.addClass("fancybox-title-"+d.titlePosition).html(v).appendTo("body").show();switch(d.titlePosition){case "inside":o.css({width:k.width-d.padding*2,marginLeft:d.padding,marginRight:d.padding}); +z=o.outerHeight(true);o.appendTo(x);k.height+=z;break;case "over":o.css({marginLeft:d.padding,width:k.width-d.padding*2,bottom:d.padding}).appendTo(x);break;case "float":o.css("left",parseInt((o.width()-k.width-40)/2,10)*-1).appendTo(f);break;default:o.css({width:k.width-d.padding*2,paddingLeft:d.padding,paddingRight:d.padding}).appendTo(f);break}}}o.hide()},aa=function(){if(d.enableEscapeButton||d.enableKeyboardNav)b(document).bind("keydown.fb",function(a){if(a.keyCode==27&&d.enableEscapeButton){a.preventDefault(); +b.fancybox.close()}else if((a.keyCode==37||a.keyCode==39)&&d.enableKeyboardNav&&a.target.tagName!=="INPUT"&&a.target.tagName!=="TEXTAREA"&&a.target.tagName!=="SELECT"){a.preventDefault();b.fancybox[a.keyCode==37?"prev":"next"]()}});if(d.showNavArrows){if(d.cyclic&&n.length>1||q!==0)A.show();if(d.cyclic&&n.length>1||q!=n.length-1)B.show()}else{A.hide();B.hide()}},S=function(){if(!b.support.opacity){m.get(0).style.removeAttribute("filter");f.get(0).style.removeAttribute("filter")}e.autoDimensions&& +m.css("height","auto");f.css("height","auto");v&&v.length&&o.show();d.showCloseButton&&D.show();aa();d.hideOnContentClick&&m.bind("click",b.fancybox.close);d.hideOnOverlayClick&&l.bind("click",b.fancybox.close);b(window).bind("resize.fb",b.fancybox.resize);d.centerOnScroll&&b(window).bind("scroll.fb",b.fancybox.center);if(d.type=="iframe")b('').appendTo(m);f.show();j=false;b.fancybox.center();d.onComplete(n,q,d);ba()},ba=function(){var a,c;if(n.length-1>q){a=n[q+1].href;if(typeof a!=="undefined"&&a.match(J)){c=new Image;c.src=a}}if(q>0){a=n[q-1].href;if(typeof a!=="undefined"&&a.match(J)){c=new Image;c.src=a}}},T=function(a){var c={width:parseInt(s.width+(k.width-s.width)*a,10),height:parseInt(s.height+(k.height-s.height)*a,10),top:parseInt(s.top+(k.top-s.top)*a,10),left:parseInt(s.left+(k.left- +s.left)*a,10)};if(typeof k.opacity!=="undefined")c.opacity=a<0.5?0.5:a;f.css(c);m.css({width:c.width-d.padding*2,height:c.height-z*a-d.padding*2})},U=function(){return[b(window).width()-d.margin*2,b(window).height()-d.margin*2,b(document).scrollLeft()+d.margin,b(document).scrollTop()+d.margin]},Y=function(){var a=U(),c={},h=d.autoScale,t=d.padding*2;c.width=d.width.toString().indexOf("%")>-1?parseInt(a[0]*parseFloat(d.width)/100,10):d.width+t;c.height=d.height.toString().indexOf("%")>-1?parseInt(a[1]* +parseFloat(d.height)/100,10):d.height+t;if(h&&(c.width>a[0]||c.height>a[1]))if(e.type=="image"||e.type=="swf"){h=d.width/d.height;if(c.width>a[0]){c.width=a[0];c.height=parseInt((c.width-t)/h+t,10)}if(c.height>a[1]){c.height=a[1];c.width=parseInt((c.height-t)*h+t,10)}}else{c.width=Math.min(c.width,a[0]);c.height=Math.min(c.height,a[1])}c.top=parseInt(Math.max(a[3]-20,a[3]+(a[1]-c.height-40)*0.5),10);c.left=parseInt(Math.max(a[2]-20,a[2]+(a[0]-c.width-40)*0.5),10);return c},ca=function(a){var c=a.offset(); +c.top+=parseInt(a.css("paddingTop"),10)||0;c.left+=parseInt(a.css("paddingLeft"),10)||0;c.top+=parseInt(a.css("border-top-width"),10)||0;c.left+=parseInt(a.css("border-left-width"),10)||0;c.width=a.width();c.height=a.height();return c},V=function(){var a=e.orig?b(e.orig):false,c={};if(a&&a.length){a=ca(a);c={width:a.width+d.padding*2,height:a.height+d.padding*2,top:a.top-d.padding-20,left:a.left-d.padding-20}}else{a=U();c={width:d.padding*2,height:d.padding*2,top:parseInt(a[3]+a[1]*0.5,10),left:parseInt(a[2]+ +a[0]*0.5,10)}}return c},da=function(){if(i.is(":visible")){b("div",i).css("top",L*-40+"px");L=(L+1)%12}else clearInterval(K)};b.fn.fancybox=function(a){if(!b(this).length)return this;b(this).data("fancybox",b.extend({},a,b.metadata?b(this).metadata():{})).unbind("click.fb").bind("click.fb",function(c){c.preventDefault();if(!j){j=true;b(this).blur();p=[];r=0;c=b(this).attr("rel")||"";if(!c||c==""||c==="nofollow")p.push(this);else{p=b("a[rel="+c+"], area[rel="+c+"]");r=p.index(this)}I()}});return this}; +b.fancybox=function(a,c){if(!j){j=true;c=typeof c!=="undefined"?c:{};p=[];r=parseInt(c.index,10)||0;if(b.isArray(a)){for(var h=0,t=a.length;hp.length||r<0)r=0;I()}};b.fancybox.showActivity=function(){clearInterval(K); +i.show();K=setInterval(da,66)};b.fancybox.hideActivity=function(){i.hide()};b.fancybox.next=function(){return b.fancybox.pos(q+1)};b.fancybox.prev=function(){return b.fancybox.pos(q-1)};b.fancybox.pos=function(a){if(!j){a=parseInt(a);p=n;if(a>-1&&a1){r=a>=n.length?0:n.length-1;I()}}};b.fancybox.cancel=function(){if(!j){j=true;b.event.trigger("fancybox-cancel");N();e.onCancel(p,r,e);j=false}};b.fancybox.close=function(){function a(){l.fadeOut("fast");o.empty().hide(); +f.hide();b.event.trigger("fancybox-cleanup");m.empty();d.onClosed(n,q,d);n=e=[];q=r=0;d=e={};j=false}if(!(j||f.is(":hidden"))){j=true;if(d&&false===d.onCleanup(n,q,d))j=false;else{N();b(D.add(A).add(B)).hide();b(m.add(l)).unbind();b(window).unbind("resize.fb scroll.fb");b(document).unbind("keydown.fb");m.find("iframe").attr("src",M&&/^https/i.test(window.location.href||"")?"javascript:void(false)":"about:blank");d.titlePosition!=="inside"&&o.empty();f.stop();if(d.transitionOut=="elastic"){s=V();var c= +f.position();k={top:c.top,left:c.left,width:f.width(),height:f.height()};if(d.opacity)k.opacity=1;o.empty().hide();C.prop=1;b(C).animate({prop:0},{duration:d.speedOut,easing:d.easingOut,step:T,complete:a})}else f.fadeOut(d.transitionOut=="none"?0:d.speedOut,a)}}};b.fancybox.resize=function(){l.is(":visible")&&l.css("height",b(document).height());b.fancybox.center(true)};b.fancybox.center=function(a){var c,h;if(!j){h=a===true?1:0;c=U();!h&&(f.width()>c[0]||f.height()>c[1])||f.stop().animate({top:parseInt(Math.max(c[3]- +20,c[3]+(c[1]-m.height()-40)*0.5-d.padding)),left:parseInt(Math.max(c[2]-20,c[2]+(c[0]-m.width()-40)*0.5-d.padding))},typeof a=="number"?a:200)}};b.fancybox.init=function(){if(!b("#fancybox-wrap").length){b("body").append(g=b('
'),i=b('
'),l=b('
'),f=b('
'));x=b('
').append('
').appendTo(f); +x.append(m=b('
'),D=b(''),o=b('
'),A=b(''),B=b(''));D.click(b.fancybox.close);i.click(b.fancybox.cancel);A.click(function(a){a.preventDefault();b.fancybox.prev()});B.click(function(a){a.preventDefault();b.fancybox.next()}); +b.fn.mousewheel&&f.bind("mousewheel.fb",function(a,c){if(j)a.preventDefault();else if(b(a.target).get(0).clientHeight==0||b(a.target).get(0).scrollHeight===b(a.target).get(0).clientHeight){a.preventDefault();b.fancybox[c>0?"prev":"next"]()}});b.support.opacity||f.addClass("fancybox-ie");if(M){i.addClass("fancybox-ie6");f.addClass("fancybox-ie6");b('').prependTo(x)}}}; +b.fn.fancybox.defaults={padding:10,margin:40,opacity:false,modal:false,cyclic:false,scrolling:"auto",width:560,height:340,autoScale:true,autoDimensions:true,centerOnScroll:false,ajax:{},swf:{wmode:"transparent"},hideOnOverlayClick:true,hideOnContentClick:false,overlayShow:true,overlayOpacity:0.7,overlayColor:"#777",titleShow:true,titlePosition:"float",titleFormat:null,titleFromAlt:false,transitionIn:"fade",transitionOut:"fade",speedIn:300,speedOut:300,changeSpeed:300,changeFade:"fast",easingIn:"swing", +easingOut:"swing",showCloseButton:true,showNavArrows:true,enableEscapeButton:true,enableKeyboardNav:true,onStart:function(){},onCancel:function(){},onComplete:function(){},onCleanup:function(){},onClosed:function(){},onError:function(){}};b(document).ready(function(){b.fancybox.init()})})(jQuery);define("jquery.fancybox-1.3.4",function(){}); +define("index",["require","jquery","hashDispatch","jquery.fancybox-1.3.4"],function(b,g){g(function(){var i=!!navigator.buildID,l=i&&navigator.userAgent.match(/Firefox\/([^\s]+)/);if(i&&l){l=parseFloat(l[1]);i=l>3.99}if(!i){g("#downloadFF4").hide();g("#no36").show();g("#info36").show();g("#firefox").show()}g(".fancybox").fancybox({type:"iframe",href:"http://player.vimeo.com/video/21374067?title=0&byline=0&portrait=0&autoplay=true",width:700,height:468,autoScale:false,autoDimensions:false}); +g("body").delegate("#firefox","click",function(){location="http://www.mozilla.com/en-US/firefox/beta/"}).delegate(".downloadXpi","click",function(f){var x=location.href;location=x.indexOf("staging")!==-1||x.indexOf("linkdrop")!==-1?"/ffshare.xpi":"https://addons.mozilla.org/services/install.php?addon_id=252539&addon_name=F1%20by%20Mozilla%20Labs&src=external-f1home";f.preventDefault()})})}); \ No newline at end of file diff --git a/web/0.3.4/jquery.fancybox-1.3.4.css b/web/0.3.4/jquery.fancybox-1.3.4.css new file mode 100755 index 0000000..d029c0d --- /dev/null +++ b/web/0.3.4/jquery.fancybox-1.3.4.css @@ -0,0 +1,359 @@ +/* + * FancyBox - jQuery Plugin + * Simple and fancy lightbox alternative + * + * Examples and documentation at: http://fancybox.net + * + * Copyright (c) 2008 - 2010 Janis Skarnelis + * That said, it is hardly a one-person project. Many people have submitted bugs, code, and offered their advice freely. Their support is greatly appreciated. + * + * Version: 1.3.4 (11/11/2010) + * Requires: jQuery v1.3+ + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + */ + +#fancybox-loading { + position: fixed; + top: 50%; + left: 50%; + width: 40px; + height: 40px; + margin-top: -20px; + margin-left: -20px; + cursor: pointer; + overflow: hidden; + z-index: 1104; + display: none; +} + +#fancybox-loading div { + position: absolute; + top: 0; + left: 0; + width: 40px; + height: 480px; + background-image: url('i/fancybox/fancybox.png'); +} + +#fancybox-overlay { + position: absolute; + top: 0; + left: 0; + width: 100%; + z-index: 1100; + display: none; +} + +#fancybox-tmp { + padding: 0; + margin: 0; + border: 0; + overflow: auto; + display: none; +} + +#fancybox-wrap { + position: absolute; + top: 0; + left: 0; + padding: 20px 10px 10px 20px; + z-index: 1101; + outline: none; + display: none; +} + +#fancybox-outer { + position: relative; + width: 100%; + height: 100%; + background: #fff; +} + +#fancybox-content { + width: 0; + height: 0; + padding: 0; + outline: none; + position: relative; + overflow: hidden; + z-index: 1102; + border: 0px solid #fff; +} + +#fancybox-hide-sel-frame { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: transparent; + z-index: 1101; +} + +#fancybox-close { + position: absolute; + top: -15px; + right: -25px; + width: 30px; + height: 30px; + background: transparent url('i/fancybox/fancybox.png') -40px 0px; + cursor: pointer; + z-index: 1103; + display: none; +} + +#fancybox-error { + color: #444; + font: normal 12px/20px Arial; + padding: 14px; + margin: 0; +} + +#fancybox-img { + width: 100%; + height: 100%; + padding: 0; + margin: 0; + border: none; + outline: none; + line-height: 0; + vertical-align: top; +} + +#fancybox-frame { + width: 100%; + height: 100%; + border: none; + display: block; +} + +#fancybox-left, #fancybox-right { + position: absolute; + bottom: 0px; + height: 100%; + width: 35%; + cursor: pointer; + outline: none; + background: transparent url('i/fancybox/blank.gif'); + z-index: 1102; + display: none; +} + +#fancybox-left { + left: 0px; +} + +#fancybox-right { + right: 0px; +} + +#fancybox-left-ico, #fancybox-right-ico { + position: absolute; + top: 50%; + left: -9999px; + width: 30px; + height: 30px; + margin-top: -15px; + cursor: pointer; + z-index: 1102; + display: block; +} + +#fancybox-left-ico { + background-image: url('i/fancybox/fancybox.png'); + background-position: -40px -30px; +} + +#fancybox-right-ico { + background-image: url('i/fancybox/fancybox.png'); + background-position: -40px -60px; +} + +#fancybox-left:hover, #fancybox-right:hover { + visibility: visible; /* IE6 */ +} + +#fancybox-left:hover span { + left: 20px; +} + +#fancybox-right:hover span { + left: auto; + right: 20px; +} + +.fancybox-bg { + position: absolute; + padding: 0; + margin: 0; + border: 0; + width: 20px; + height: 20px; + z-index: 1001; +} + +#fancybox-bg-n { + top: -20px; + left: 0; + width: 100%; + background-image: url('i/fancybox/fancybox-x.png'); +} + +#fancybox-bg-ne { + top: -20px; + right: -20px; + background-image: url('i/fancybox/fancybox.png'); + background-position: -40px -162px; +} + +#fancybox-bg-e { + top: 0; + right: -20px; + height: 100%; + background-image: url('i/fancybox/fancybox-y.png'); + background-position: -20px 0px; +} + +#fancybox-bg-se { + bottom: -20px; + right: -20px; + background-image: url('i/fancybox/fancybox.png'); + background-position: -40px -182px; +} + +#fancybox-bg-s { + bottom: -20px; + left: 0; + width: 100%; + background-image: url('i/fancybox/fancybox-x.png'); + background-position: 0px -20px; +} + +#fancybox-bg-sw { + bottom: -20px; + left: -20px; + background-image: url('i/fancybox/fancybox.png'); + background-position: -40px -142px; +} + +#fancybox-bg-w { + top: 0; + left: -20px; + height: 100%; + background-image: url('i/fancybox/fancybox-y.png'); +} + +#fancybox-bg-nw { + top: -20px; + left: -20px; + background-image: url('i/fancybox/fancybox.png'); + background-position: -40px -122px; +} + +#fancybox-title { + font-family: Helvetica; + font-size: 12px; + z-index: 1102; +} + +.fancybox-title-inside { + padding-bottom: 10px; + text-align: center; + color: #333; + background: #fff; + position: relative; +} + +.fancybox-title-outside { + padding-top: 10px; + color: #fff; +} + +.fancybox-title-over { + position: absolute; + bottom: 0; + left: 0; + color: #FFF; + text-align: left; +} + +#fancybox-title-over { + padding: 10px; + background-image: url('i/fancybox/fancy_title_over.png'); + display: block; +} + +.fancybox-title-float { + position: absolute; + left: 0; + bottom: -20px; + height: 32px; +} + +#fancybox-title-float-wrap { + border: none; + border-collapse: collapse; + width: auto; +} + +#fancybox-title-float-wrap td { + border: none; + white-space: nowrap; +} + +#fancybox-title-float-left { + padding: 0 0 0 15px; + background: url('i/fancybox/fancybox.png') -40px -90px no-repeat; +} + +#fancybox-title-float-main { + color: #FFF; + line-height: 29px; + font-weight: bold; + padding: 0 0 3px 0; + background: url('i/fancybox/fancybox-x.png') 0px -40px; +} + +#fancybox-title-float-right { + padding: 0 0 0 15px; + background: url('i/fancybox/fancybox.png') -55px -90px no-repeat; +} + +/* IE6 */ + +.fancybox-ie6 #fancybox-close { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='i/fancybox/fancy_close.png', sizingMethod='scale'); } + +.fancybox-ie6 #fancybox-left-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='i/fancybox/fancy_nav_left.png', sizingMethod='scale'); } +.fancybox-ie6 #fancybox-right-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='i/fancybox/fancy_nav_right.png', sizingMethod='scale'); } + +.fancybox-ie6 #fancybox-title-over { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='i/fancybox/fancy_title_over.png', sizingMethod='scale'); zoom: 1; } +.fancybox-ie6 #fancybox-title-float-left { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='i/fancybox/fancy_title_left.png', sizingMethod='scale'); } +.fancybox-ie6 #fancybox-title-float-main { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='i/fancybox/fancy_title_main.png', sizingMethod='scale'); } +.fancybox-ie6 #fancybox-title-float-right { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='i/fancybox/fancy_title_right.png', sizingMethod='scale'); } + +.fancybox-ie6 #fancybox-bg-w, .fancybox-ie6 #fancybox-bg-e, .fancybox-ie6 #fancybox-left, .fancybox-ie6 #fancybox-right, #fancybox-hide-sel-frame { + height: expression(this.parentNode.clientHeight + "px"); +} + +#fancybox-loading.fancybox-ie6 { + position: absolute; margin-top: 0; + top: expression( (-20 + (document.documentElement.clientHeight ? document.documentElement.clientHeight/2 : document.body.clientHeight/2 ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop )) + 'px'); +} + +#fancybox-loading.fancybox-ie6 div { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='i/fancybox/fancy_loading.png', sizingMethod='scale'); } + +/* IE6, IE7, IE8 */ + +.fancybox-ie .fancybox-bg { background: transparent !important; } + +.fancybox-ie #fancybox-bg-n { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='i/fancybox/fancy_shadow_n.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-ne { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='i/fancybox/fancy_shadow_ne.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-e { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='i/fancybox/fancy_shadow_e.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-se { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='i/fancybox/fancy_shadow_se.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-s { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='i/fancybox/fancy_shadow_s.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-sw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='i/fancybox/fancy_shadow_sw.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-w { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='i/fancybox/fancy_shadow_w.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-nw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='i/fancybox/fancy_shadow_nw.png', sizingMethod='scale'); } \ No newline at end of file diff --git a/web/0.3.4/play/ac.html b/web/0.3.4/play/ac.html new file mode 100644 index 0000000..a590f92 --- /dev/null +++ b/web/0.3.4/play/ac.html @@ -0,0 +1,57 @@ + + + + Autocomplete test + + + + + +
+ + + +
+ + diff --git a/web/0.3.4/play/designs/i/background.gif b/web/0.3.4/play/designs/i/background.gif new file mode 100644 index 0000000000000000000000000000000000000000..b74689c9a2d2caefe9e12d88ac40ec6752e2afef GIT binary patch literal 17495 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 G1OPij6k`hj literal 0 HcmV?d00001 diff --git a/web/0.3.4/play/designs/i/bryanAvatar.jpg b/web/0.3.4/play/designs/i/bryanAvatar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cad554be7af2243a82d99672e5613e163c69b174 GIT binary patch literal 607 zcmex=iF;o{=v;^GnD0RsUZK7IjyJ|1CV5fNcw z8EI*08F@HhWM^mR<>8eO5Ri}(6%>_%OAyQWe}F-dgF%8pf|*f}fk}{&S&;Gn5r#qr z1}0`kpex~km5qsoor4i1j4aN=3iLBGn*ak7BQp@NFhex}1qFd}LTrkLj){dvfsIPS zPRi_pj0`~SNCtq+6I3*0`G1Rn2WTIYAhRHYJwtfST&2HDShI2zBQE^>9Ls&eKjp37 zldcHmJAP-+gze7g;aH%2|J;(vrT-a3pBX=SlV>PCX{O3nmswZmKm9f1P3r4A+Fbp$ zg0t_dOHZDYzhk}LR;O#<#b!zz&6wcrwtg1#eec!3UhV6YjQ?=M#*M?z=i7I^nHo#B z&Cc{cx1jm;<#k=FB3^uB&$_kWGdFs+ZvAF^sjSPS%_DkapZntVUUGN$mabZH zX2FExQV(X%P#1ifH_uzbj#KX9uDJ~^uFF@dd+M*4CzHO=(0|R&Ge73B>-JZuZD)!K zR9PzPe{I*AlCANZww~LzUMN9ajG1wccg6ctCPDQT46_)W7P^1ZvAb0~ueWcB=Q`8X J2j~C42>|ogu)qKS literal 0 HcmV?d00001 diff --git a/web/0.3.4/play/designs/i/linkdropiconfaded.png b/web/0.3.4/play/designs/i/linkdropiconfaded.png new file mode 100644 index 0000000000000000000000000000000000000000..3a2f06b05070e72473e05409cf3043cf70a4b5fb GIT binary patch literal 302 zcmV+}0nz@6P)+oo-1qL+~&!39)~q32x*)punNLyCvA>Xur)tVavwECh6oC({`%4 zFi#T^U|>#j+oaCtJq$i~x_M-!{E5bwePye6vgC&opOFVdQ&MBb@0FWqHc>n+a literal 0 HcmV?d00001 diff --git a/web/0.3.4/play/designs/nativeShare.css b/web/0.3.4/play/designs/nativeShare.css new file mode 100644 index 0000000..5c050ba --- /dev/null +++ b/web/0.3.4/play/designs/nativeShare.css @@ -0,0 +1,581 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +* { + margin: 0; + padding: 0; + outline: none; + border: none; + border-collapse: collapse; + position: relative; + font-family: inherit; + font-weight: inherit; + font-style: inherit; + font-size: 100%; + vertical-align: top; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + list-style-type: none; +} + +body { + font-size: 11px; + font-family: "lucida grande"; + max-height: 128px; + overflow: hidden; + background-color: #fff; + background-position: bottom center; + background-repeat: no-repeat; + background-color: #fff; +} + +button::-moz-focus-inner { + border: 0; +} + +a { + text-decoration: none; + outline: none; +} + +#tabs { + overflow: hidden; + border-bottom: 1px solid #515151; +} + +#twitter, #facebook, #gmail, #settings { + /* background-image: -moz-linear-gradient(top, #d0d0d0 0%, #a8a8a8 100%); */ + background-color: #a7a7a7; +/* + border-top: 1px solid #515151; + -moz-box-shadow: 0 2px 0 -1px #e3e3e3 inset; +*/ +} + +ul.nav { + -moz-box-shadow:0 2px 0 -1px #CDCDCD inset; + background-color:#A7A7A7; + display: block; + width: 100%; + padding: 0 10px; +} + +ul.nav .username { + font-size: 11px; + line-height: 24px; + padding: 0 10px; + margin: 4px 10px; + border-left: 1px dotted #888; + display: inline-block; +} + +ul.nav .username img { + border: 1px solid #fff; + -moz-box-shadow: 0 1px 1px rgba(0,0,0,0.25); + width: 23px; + height: 23px; + margin-right: 5px; +} + +ul.nav .username .userId { + color: #000; + font-weight: bold; + text-shadow: 1px 1px 0 #bbb; +} + +ul.nav .navWrap { + width: 960px; +/* + background-image: url("i/logo.gif"); + background-repeat: no-repeat; + background-position: right center; +*/ + position: relative; + left: 50%; + margin-left: -480px; +} + +ul.nav li { + width: auto; + display: inline-block; + float: left; + list-style-type: none; + margin: 3px 0; + font-size: 11px; + line-height: 24px; + background-image: -moz-linear-gradient(center top , #FDFDFD 0%, #AAAAAA 100%); + border-width: 1px; + border-style: solid; + border-color: #666; + -moz-box-shadow: 0 1px 0 #CDCDCD; +} + +ul.nav li:hover { + background-color: rgba(255,255,255,0.5); +} + +ul.nav li.ui-tabs-selected { + background-image: -moz-linear-gradient(center top , #bbb 0%, #aaa 100%); + -moz-box-shadow: 0 0 3px #666 inset,0 1px 0 #CDCDCD; +} + +ul.nav li:first-child { + z-index: 1; + -moz-border-radius: 3px 0 0 3px; +} + +ul.nav li:nth-child(2) { + z-index: 2; + border-left: none; + border-right: none; +} + +ul.nav li:nth-child(3) { + z-index: 1; + -moz-border-radius: 0 3px 3px 0; +} + +ul.nav li a { + color: #fff; +} + +ul.nav li a.icon { + width: 36px; + height: 24px; + background-repeat: no-repeat; + background-position: center center; + display: block; +} + +ul.nav li a.icon.twitter { + background-image: url("../share/i/twitterIcon.png"); +} + +ul.nav li a.icon.facebook { + background-image: url("../share/i/facebookIcon.png"); +} + +ul.nav li a.icon.gmail { + background-image: url("../share/i/gmailIcon.png"); +} + +ul.nav li a.icon.settings { + background-image: url("../share/i/settingsIcon.png"); +} + +ul.nav li.debug { + position: absolute; + right: 46px; + top: 0; + width: 60px; + text-align: center; +} + +ul.nav li.debug span.name { + display: block; + padding: 0; + text-align: center; + font-weight: normal; + color: #fff; +} + +ul.nav li.debug a.icon { + width: auto; +} + +ul.nav li span.name { + display: none; +} + +ul.nav li.ui-tabs-selected span.name { + display: none; +} + + +ul.nav li.settings, +ul.nav li.settings.ui-tabs-selected { + position: absolute; + right: 0; + top: 0; + text-align: center; + -moz-border-radius: 3px; +} + +ul.nav li.settings:hover span.name, +ul.nav li.settings.ui-tabs-selected span.name { + opacity: 1; +} + +ul.nav li.settings span.name { + display: none; +} + +ul.nav li.ui-tabs-selected { + +} + +ul.nav li span.name { + opacity: 0.5; +} + +ul.nav li.ui-tabs-selected a.icon, +ul.nav li.ui-tabs-selected span.name { + opacity: 1; +} + +ul.nav li span.name { + font-weight: bold; + color: #fff; +} + +ul.nav li.ui-tabs-selected span.name { + color: #0a0a0a; +} + +ul.nav span.name { + display: block; + padding-left: 24px; +} + +ul.nav li.ui-tabs-selected.settings span.name { + display: none; +} + +ul.nav li.ui-tabs-selected a.twitter, +ul.nav li:hover a.twitter { + background-image: url("../share/i/twitterIconColor.png"); +} + +ul.nav li.ui-tabs-selected a.facebook, +ul.nav li:hover a.facebook { + background-image: url("../share/i/facebookIconColor.png"); +} + +ul.nav li.ui-tabs-selected a.gmail, +ul.nav li:hover a.gmail { + background-image: url(".../share/i/gmailIconColor.png"); +} + +ul.nav li.ui-tabs-selected a { + color: #0a0a0a; +} + +div.user { + font-size: small; + width: 140px; + overflow: hidden; +} + +div.user.inactive { + opacity: 0.5; + background: -moz-repeating-linear-gradient(top left -45deg, #aaa, #aaa 5px, #fff 5px, #fff 10px) #aaa no-repeat fixed; + -moz-border-radius: 1%; + cursor: pointer; +} + +div.user .username { + color: #444; + font-weight: bold; +} + +td.image { + width: 90px; +} + +.thumbnail { + height: 71px; + padding: 4px; + border: 1px solid #999; + margin: 0 5px 0 0; + -moz-border-radius: 3px; + background-color: #ccc; +} + +div.thumb { + border: 1px solid #aaa; + background-color: #fff; + height: 61px; + width: 90px; + display: inline-block; +} + +ul.info { + display: inline-block; + width: 150px; + font-size: 11px; + padding: 0 5px 0 10px; +} + +.info .description { + color: #000; + font-size: 10px; +} + +.thumb .title { + color: #3B5998; + text-decoration: underline; + font-size: small; + cursor: pointer; +} + +.thumb .description { + color: #808080; + font-size: x-small; +} + +button { + padding: 2px 15px; + font-family: "helvetica neue", helvetica, arial, sans-serif; + font-size: 11px; + line-height:24px; + background-image: -moz-linear-gradient(top,#fdfdfd 0%,#aaa 100%); + border-width: 1px; + border-style: solid; + border-color: #5C5C5C #888 #666; + -moz-border-radius: 3px; + margin-left: 5px; + cursor: pointer; +} + +button.share { + -moz-border-radius: 0 3px 3px 0; + -moz-box-shadow: 0 1px 0 #cdcdcd; + border-left: none; + margin-left: 0; +} + +/* +button:hover, button:active { + border: 1px solid #999; +} +*/ + +button:active { + -moz-box-shadow: 0 0 0 1px rgba(255,255,255,0.35) inset, 0 0 3px rgba(0,0,0,0.75) inset; +} + +textarea, input[type="text"] { + -moz-box-shadow: 0 2px 2px -2px #555 inset, 0 1px 0 #cdcdcd; + border-width: 1px; + border-style: solid; + border-color: #5c5c5c #929292 #929292; + font-family: "lucida grande" + font-size: 12px; + line-height: 18px; + padding: 3px; + margin: 0; + width: 100%; + -moz-border-radius: 3px; +} + +textarea.message { + min-height: 71px; + -moz-border-radius: 3px 0 0 3px; + font-size: 14px; +} + +textarea:focus, input[type="text"]:focus { + +} + +.inputs { + margin: 0 5px 0 0; +} + +input[type="text"] { + height: 26px; + width: 238px; + display: block; +} + +input[type="text"]#to { + margin-bottom: 5px; +} + +.entry { + padding: 5px 0; + width: 960px; + left: 50%; + margin-left: -480px; + position: relative; + min-height: 71px; +} + +.entry .urlConfirmation { + padding: 1px 5px; + -moz-border-radius: 10px; + background-image: -moz-linear-gradient(top, #fafafa 0%, #e6e6e6 100%); + border: 1px solid #bebebe; + color: green; + position: absolute; + left: 5px; + bottom: 5px; + z-index: 1; + color: green; + font-size: 10px; + cursor: pointer; + display: none; +} + +.entry .urlConfirmation span { + color: #333; +} + +#settings .entry ul li { + display: inline-block; + float: left; +} + +#settings .entry ul li button { + margin: 0 10px 0 0; + width: 128px; +} + +.entry h1 { + margin: 0 0 10px 0; +} + +/* START hbox/vbox normalization from http://alex.dojotoolkit.org/2009/08/css-3-progress/ */ +/* hbox and vbox classes */ + +.hbox { + display: -webkit-box; + -webkit-box-orient: horizontal; + -webkit-box-align: stretch; + + display: -moz-box; + -moz-box-orient: horizontal; + -moz-box-align: stretch; + + display: box; + box-orient: horizontal; + box-align: stretch; +} + +.hbox > * { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + display: block; +} + +.vbox { + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-box-align: stretch; + + display: -moz-box; + -moz-box-orient: vertical; + -moz-box-align: stretch; + + display: box; + box-orient: vertical; + box-align: stretch; +} + +.vbox > * { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + display: block; +} + +.spacer { + -webkit-box-flex: 1; + -moz-box-flex: 1; + box-flex: 1; +} + +.reverse { + -webkit-box-direction: reverse; + -moz-box-direction: reverse; + box-direction: reverse; +} + +.boxFlex0 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; +} + +.boxFlex1, .boxFlex { + -webkit-box-flex: 1; + -moz-box-flex: 1; + box-flex: 1; +} + +.boxFlex2 { + -webkit-box-flex: 2; + -moz-box-flex: 2; + box-flex: 2; +} + +.boxGroup1 { + -webkit-box-flex-group: 1; + -moz-box-flex-group: 1; + box-flex-group: 1; +} + +.boxGroup2 { + -webkit-box-flex-group: 2; + -moz-box-flex-group: 2; + box-flex-group: 2; +} + +.start { + -webkit-box-pack: start; + -moz-box-pack: start; + box-pack: start; +} + +.end { + -webkit-box-pack: end; + -moz-box-pack: end; + box-pack: end; +} + +.center { + -webkit-box-pack: center; + -moz-box-pack: center; + box-pack: center; +} +/* END hbox/vbox normalization from http://alex.dojotoolkit.org/2009/08/css-3-progress/ */ + +/* clearfix */ + +.clearfix:after { + content: "."; + display: block; + clear: both; + visibility: hidden; + line-height: 0; + height: 0; +} + +html[xmlns] .clearfix { + display: block; +} + +* html .clearfix { + height: 1%; +} diff --git a/web/0.3.4/play/designs/nativeShare.html b/web/0.3.4/play/designs/nativeShare.html new file mode 100644 index 0000000..4c056c9 --- /dev/null +++ b/web/0.3.4/play/designs/nativeShare.html @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+ + re-insert link +
+ +
+
+ +
+
+
+
+
    +
  • Title
  • +
  • Description
  • +
+
+ + +
+
+ +
+
+
+ + +
+
+ + re-insert link +
+ +
+
+ +
+
+

Settings

+
    +
  • +
  • +
  • +
  • +
+
+
+ +
+ + + + diff --git a/web/0.3.4/play/designs/neutralShare.css b/web/0.3.4/play/designs/neutralShare.css new file mode 100644 index 0000000..3f71186 --- /dev/null +++ b/web/0.3.4/play/designs/neutralShare.css @@ -0,0 +1,630 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +* { + margin: 0; + padding: 0; + outline: none; + border: none; + border-collapse: collapse; + position: relative; + font-family: inherit; + font-weight: inherit; + font-style: inherit; + font-size: 100%; + vertical-align: top; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + list-style-type: none; +} + +body { + font-size: 11px; + font-family: "lucida grande"; + max-height: 128px; + overflow: hidden; + background-color: #fff; + background-position: bottom center; + background-repeat: no-repeat; + background-color: #fff; +} + +button::-moz-focus-inner { + border: 0; +} + +a { + text-decoration: none; + outline: none; + color: #00A0FF; +} + +a:hover { + text-decoration: underline; +} + +#tabs { + overflow: hidden; + width: 100%; + border-bottom: 1px solid #777; + background-color: #ddd; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.5); + background-image:-moz-linear-gradient(center top , #EEEEEE 0%, #DDDDDD 100%); +} + +#twitter, #facebook, #gmail, #settings { +} + +ul.nav { + display: block; + width: 100%; + padding: 0 10px; +} + +ul.nav .username { + font-size: 11px; + line-height: 24px; + padding: 0 10px; + margin: 4px 10px; + border-left: 1px dotted #888; + display: inline-block; +} + +ul.nav .username img { + border: 1px solid #fff; + -moz-box-shadow: 0 1px 1px rgba(0,0,0,0.25); + width: 23px; + height: 23px; + margin-right: 5px; +} + +ul.nav .username .userId { + color: #000; + font-weight: bold; + /* text-shadow: 1px 1px 0 #bbb; */ +} + +ul.nav .navWrap { + position: relative; +/* + width: 960px; + left: 50%; + margin-left: -480px; +*/ +} + +ul.nav li { + width: auto; + display: inline-block; + float: left; + list-style-type: none; + margin: 3px 0; + font-size: 11px; + line-height: 24px; + background-image: -moz-linear-gradient(center top , #fafafa 0%, #ddd 100%); + border-width: 1px; + border-style: solid; + border-color: #888; + -moz-box-shadow: 0 1px 0 #fff; +} + +ul.nav li:hover { + background-color: rgba(255,255,255,0.5); +} + +ul.nav li.ui-tabs-selected { + -moz-box-shadow:0 0 1px #666666 inset, 0 1px 0 #FFFFFF; + background-image:-moz-linear-gradient(center top , #EEEEEE 0%, #CCCCCC 100%); +} + +ul.nav li:first-child { + z-index: 1; + -moz-border-radius: 2px 0 0 2px; +} + +ul.nav li:nth-child(2) { + z-index: 2; + border-left: none; + border-right: none; +} + +ul.nav li:nth-child(3) { + z-index: 1; + -moz-border-radius: 0 2px 2px 0; +} + +ul.nav li a { + color: #fff; +} + +ul.nav li a.icon { + width: 36px; + height: 24px; + background-repeat: no-repeat; + background-position: center center; + display: block; +} + +ul.nav li a.icon.twitter { + background-image: url("../share/i/twitterIcon.png"); +} + +ul.nav li a.icon.facebook { + background-image: url("../share/i/facebookIcon.png"); +} + +ul.nav li a.icon.gmail { + background-image: url("../share/i/gmailIcon.png"); +} + +ul.nav li a.icon.settings { + background-image: url("../share/i/settingsIcon.png"); +} + +ul.nav li.debug { + position: absolute; + right: 46px; + top: 0; + width: 60px; + text-align: center; +} + +ul.nav li.debug span.name { + display: block; + padding: 0; + text-align: center; + font-weight: normal; + color: #fff; +} + +ul.nav li.debug a.icon { + width: auto; +} + +ul.nav li span.name { + display: none; +} + +ul.nav li.ui-tabs-selected span.name { + display: none; +} + + +ul.nav li.settings, +ul.nav li.settings.ui-tabs-selected { + position: absolute; + right: 0; + top: 0; + text-align: center; + -moz-border-radius: 2px; +} + +ul.nav li.settings:hover span.name, +ul.nav li.settings.ui-tabs-selected span.name { + opacity: 1; +} + +ul.nav li.settings span.name { + display: none; +} + +ul.nav li span.name { + opacity: 0.5; +} + +ul.nav li.ui-tabs-selected a.icon, +ul.nav li.ui-tabs-selected span.name { + opacity: 1; +} + +ul.nav li span.name { + font-weight: bold; + color: #fff; +} + +ul.nav li.ui-tabs-selected span.name { + color: #0a0a0a; +} + +ul.nav span.name { + display: block; + padding-left: 24px; +} + +ul.nav li.ui-tabs-selected.settings span.name { + display: none; +} + +ul.nav li.ui-tabs-selected a.twitter, +ul.nav li:hover a.twitter { + background-image: url("../share/i/twitterIconColor.png"); +} + +ul.nav li.ui-tabs-selected a.facebook, +ul.nav li:hover a.facebook { + background-image: url("../share/i/facebookIconColor.png"); +} + +ul.nav li.ui-tabs-selected a.gmail, +ul.nav li:hover a.gmail { + background-image: url("../share/i/gmailIconColor.png"); +} + +ul.nav li.ui-tabs-selected a { + color: #0a0a0a; +} + +div.user { + font-size: small; + width: 140px; + overflow: hidden; +} + +div.user.inactive { + opacity: 0.5; + background: -moz-repeating-linear-gradient(top left -45deg, #aaa, #aaa 5px, #fff 5px, #fff 10px) #aaa no-repeat fixed; + -moz-border-radius: 1%; + cursor: pointer; +} + +div.user .username { + color: #444; + font-weight: bold; +} + +td.image { + width: 90px; +} + +.thumbnail { + height: 71px; + padding: 4px; + border: 1px solid #bbb; + margin: 0 5px 0 0; + -moz-border-radius: 2px; + background-image: -moz-linear-gradient(center top , #EEEEEE 0%, #DDDDDD 100%); +} + +div.thumb { + border: 1px solid #aaa; + background-color: #fff; + height: 61px; + width: 90px; + display: inline-block; +} + +ul.info { + display: inline-block; + width: 150px; + font-size: 11px; + padding: 0 5px 0 10px; +} + +.info .description { + color: #444; + font-size: 10px; +} + +.thumb .title { + color: #3B5998; + text-decoration: underline; + font-size: small; + cursor: pointer; +} + +.thumb .description { + color: #808080; + font-size: x-small; +} + +button { + padding: 2px 15px; + background-image: -moz-linear-gradient(center top , #FAFAFA 0%, #DDDDDD 100%); + border-width: 1px; + border-style: solid; + border-color: #888; + -moz-border-radius: 2px; + margin-left: 5px; + cursor: pointer; + -moz-box-shadow: 0 1px 0 #fff; +} + +button.share { + -moz-border-radius: 0 2px 2px 0; + border-left: none; + margin-left: 0; +} + +button:active { + background-image: -moz-linear-gradient(center top , #EEEEEE 0%, #CCCCCC 100%); + -moz-box-shadow:0 0 1px #666666 inset, 0 1px 0 #FFFFFF; +} + +textarea, input[type="text"] { + border-width: 1px; + border-style: solid; + border-color: #888; + font-family: "lucida grande" + font-size: 12px; + line-height: 18px; + padding: 3px; + margin: 0; + width: 100%; + -moz-border-radius: 2px; + -moz-box-shadow:0 3px 3px -3px rgba(0, 0, 0, 0.25) inset, 0 1px 0 #fff; +} + +textarea.message { + min-height: 71px; + -moz-border-radius: 2px 0 0 2px; + font-size: 14px; +} + +textarea:focus, input[type="text"]:focus { +} + +.inputs { + margin: 0 5px 0 0; +} + +input[type="text"] { + height: 26px; + width: 238px; + display: block; +} + +input[type="text"]#to { + margin-bottom: 5px; +} + +.entry { + padding: 5px 10px; + width: 100%; +/* + width: 960px; + left: 50%; + margin-left: -480px; +*/ + position: relative; + min-height: 71px; +} + +.entry .urlConfirmation { + padding: 1px 5px; + -moz-border-radius: 10px; + background-image: -moz-linear-gradient(top, #fafafa 0%, #e6e6e6 100%); + border: 1px solid #bebebe; + color: green; + position: absolute; + left: 5px; + bottom: 5px; + z-index: 1; + color: green; + font-size: 10px; + cursor: pointer; + display: none; +} + +.entry .urlConfirmation span { + color: #333; +} + +#settings .entry ul { + min-width: 660px; +} + +#settings .entry ul li { + display: inline-block; + float: left; + width: 220px; + min-height: 71px; +} + +#settings .entry ul li:nth-child(1) { + padding: 0 10px 0 0; +} + +#settings .entry ul li:nth-child(2) { + padding: 0 10px 0; +} + +#settings .entry ul li:nth-child(3) { + padding: 0 0 0 10px; +} + +#settings .entry ul li button { + margin: 0; + width: 100%; + padding: 5px 0; +} + +#settings .entry ul li h1 { + margin: 0 0 10px 0; +} + +.entry h1 { + font-weight: bold; + margin: 0 0 5px 0; + color: #0a0a0a; + padding: 5px 0 0 0; + /* border-top: 1px dotted #888; */ +} + +.entry h1 a { + font-weight: normal; +} + +.entry h1 img { + margin-top: -1px; +} + +#settings .entry .settings { + width: 253px; + margin: 0 0 0 10px; + padding: 0 0 0 10px; + border-left: 1px dotted #888; + color: #444; +} + +#settings .entry .success { + width: 100%; + line-height: 24px; + color: #54B851; + font-weight: bold; +} + +#settings .entry .success span.check { + width: 24px; + background-color: #54B851; + color: #fff; + -moz-border-radius: 12px; + display: inline-block; + font-size: 12px; + font-weight: normal; + text-align: center; +} + +/* START hbox/vbox normalization from http://alex.dojotoolkit.org/2009/08/css-3-progress/ */ +/* hbox and vbox classes */ + +.hbox { + display: -webkit-box; + -webkit-box-orient: horizontal; + -webkit-box-align: stretch; + + display: -moz-box; + -moz-box-orient: horizontal; + -moz-box-align: stretch; + + display: box; + box-orient: horizontal; + box-align: stretch; +} + +.hbox > * { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + display: block; +} + +.vbox { + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-box-align: stretch; + + display: -moz-box; + -moz-box-orient: vertical; + -moz-box-align: stretch; + + display: box; + box-orient: vertical; + box-align: stretch; +} + +.vbox > * { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + display: block; +} + +.spacer { + -webkit-box-flex: 1; + -moz-box-flex: 1; + box-flex: 1; +} + +.reverse { + -webkit-box-direction: reverse; + -moz-box-direction: reverse; + box-direction: reverse; +} + +.boxFlex0 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; +} + +.boxFlex1, .boxFlex { + -webkit-box-flex: 1; + -moz-box-flex: 1; + box-flex: 1; +} + +.boxFlex2 { + -webkit-box-flex: 2; + -moz-box-flex: 2; + box-flex: 2; +} + +.boxGroup1 { + -webkit-box-flex-group: 1; + -moz-box-flex-group: 1; + box-flex-group: 1; +} + +.boxGroup2 { + -webkit-box-flex-group: 2; + -moz-box-flex-group: 2; + box-flex-group: 2; +} + +.start { + -webkit-box-pack: start; + -moz-box-pack: start; + box-pack: start; +} + +.end { + -webkit-box-pack: end; + -moz-box-pack: end; + box-pack: end; +} + +.center { + -webkit-box-pack: center; + -moz-box-pack: center; + box-pack: center; +} +/* END hbox/vbox normalization from http://alex.dojotoolkit.org/2009/08/css-3-progress/ */ + +/* clearfix */ + +.clearfix:after { + content: "."; + display: block; + clear: both; + visibility: hidden; + line-height: 0; + height: 0; +} + +html[xmlns] .clearfix { + display: block; +} + +* html .clearfix { + height: 1%; +} diff --git a/web/0.3.4/play/designs/neutralShare.html b/web/0.3.4/play/designs/neutralShare.html new file mode 100644 index 0000000..7e9ac60 --- /dev/null +++ b/web/0.3.4/play/designs/neutralShare.html @@ -0,0 +1,120 @@ + + + + + F1 + + + + + + + + +
+ + + +
+
+
+ + re-insert link +
+ +
+
+ +
+
+
+
+
    +
  • Title
  • +
  • Description
  • +
+
+ + +
+
+ +
+
+
+ + +
+
+ + re-insert link +
+ +
+
+ +
+
+
    +
  • +

    Twitter

    + +
  • +
  • +

    Facebook

    + +
  • +
  • +

    Gmail - manage | add account

    +
    + 3 accounts configured +
    +
  • +
+
+

Advanced settings

+ Don't see what you need? Try the account manager to get into the nitty gritty. +
+
+
+ +
+ + + + diff --git a/web/0.3.4/play/designs/share.css b/web/0.3.4/play/designs/share.css new file mode 100644 index 0000000..8d8ed93 --- /dev/null +++ b/web/0.3.4/play/designs/share.css @@ -0,0 +1,568 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +* { + margin: 0; + padding: 0; + outline: none; + border: none; + border-collapse: collapse; + position: relative; + font-family: inherit; + font-weight: inherit; + font-style: inherit; + font-size: 100%; + vertical-align: top; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + list-style-type: none; +} + +body { + font-size: 14px; + font-family: "helvetica neue", helvetica, arial, sans-serif; + max-height: 128px; + overflow: hidden; + background-color: #fff; + background-position: bottom center; + background-repeat: no-repeat; + background-color: #fff; +} + +button::-moz-focus-inner { + border: 0; +} + +a { + text-decoration: none; + outline: none; +} + +#tabs { + -moz-box-shadow: 0 -5px 2px -4px #DDDDDD inset; + height: 125px; + overflow: hidden; + border-bottom: 1px solid #ccc; + background-color: #f2f2f2; +} + +ul.nav { + background-image: url("i/background.gif"); + -moz-box-shadow: 0 -2px 3px rgba(0,0,0,0.5) inset; + display: block; + width: 100%; + padding: 0 10px; +} + +ul.nav .username { + height: 24px; + font-size: 12px; + color: #fff; + font-weight: bold; + line-height: 24px; + position: absolute; + right: 35px; + top: 6px; +} + +ul.nav .username img { + border: 1px solid #fff; + width: 23px; + height: 23px; + margin-left: 5px; +} + +ul.nav .navWrap { + width: 962px; + position: relative; + left: 50%; + margin-left:-481px; + border-left: 1px solid #222; + border-right: 1px solid #222; +} + +ul.nav li { + width: auto; + display: inline-block; + float: left; + list-style-type: none; + background-color: #444; + margin: 10px 0 0 0px; + font-size: 12px; + line-height: 24px; + -moz-border-radius: 5px 5px 0 0; + -moz-box-shadow: 0 -2px 2px rgba(0, 0, 0, 0.45); +} + +ul.nav li:hover { + background-color: #555; +} + +ul.nav li:nth-child(n+2) { + margin-left: -5px; +} + +ul.nav li:nth-child(1) { + z-index: 1; +} + +ul.nav li:nth-child(2) { + z-index: 2; +} + +ul.nav li:nth-child(3) { + z-index: 1; +} + +ul.nav li a { + color: #fff; +} + +ul.nav li a.icon { + width: 24px; + height: 24px; + margin: 0 5px; + background-repeat: no-repeat; + background-position: center center; + display: block; +} + +ul.nav li a.icon.twitter { + background-image: url("../share/i/twitter_w.png"); +} + +ul.nav li a.icon.facebook { + background-image: url("../share/i/facebook_w.png"); +} + +ul.nav li a.icon.gmail { + background-image: url("../share/i/gmail_w.png"); +} + +ul.nav li a.icon.settings { + background-image: url("i/settings.png"); + background-position: top left; +} + +ul.nav li.debug { + position: absolute; + right: 46px; + top: 0; + width: 60px; + text-align: center; +} + +ul.nav li.debug span.name { + display: block; + padding: 0; + text-align: center; + font-weight: normal; + color: #fff; +} + +ul.nav li.debug a.icon { + width: auto; +} + +ul.nav li span.name { + display: none; +} + +ul.nav li.ui-tabs-selected span.name { + display: block; +} + + +ul.nav li.settings, +ul.nav li.settings.ui-tabs-selected { + position: absolute; + background-color: transparent; + background-image: none; + -moz-box-shadow: none; + right: 15px; + top: 0; + width: 16px; + text-align: center; +} + +ul.nav li.settings:hover span.name, +ul.nav li.settings.ui-tabs-selected span.name { + opacity: 1; +} + +ul.nav li.settings span.name { + display: none; +} + +ul.nav li.ui-tabs-selected { + background-color: #fff; + background-image: -moz-linear-gradient(top, #fff 0%, #f2f2f2 100%); + width: 128px; + z-index: 100; +} + +ul.nav li a.icon, +ul.nav li span.name { + opacity: 0.5; +} + +ul.nav li.ui-tabs-selected a.icon, +ul.nav li.ui-tabs-selected span.name { + opacity: 1; +} + +ul.nav li span.name { + font-weight: bold; + color: #fff; +} + +ul.nav li.ui-tabs-selected span.name { + color: #0a0a0a; +} + +ul.nav span.name { + display: block; + padding-left: 24px; +} + +ul.nav li.ui-tabs-selected.settings { + width: 16px; +} + +ul.nav li.ui-tabs-selected.settings span.name { + display: none; +} + +ul.nav li.ui-tabs-selected a.twitter { + background-image: url(".../share/i/twitter_b.png"); +} + +ul.nav li.ui-tabs-selected a.facebook { + background-image: url("../share/i/facebook_b.png"); +} + +ul.nav li.ui-tabs-selected a.gmail { + background-image: url("../share/i/gmail_b.png"); +} + +ul.nav li.ui-tabs-selected a { + color: #0a0a0a; +} + +table { + width: 100%; +} + +td.user { + width: 140px; + padding-right: 10px; + white-space: nowrap; +} + +td.thumb { + width: 220px; + padding: 0 10px; +} + +td.message { + width: 300px; + padding: 0 10px; +} + +td.button { + padding: 1px 20px; + vertical-align: bottom; +} + +div.user { + font-size: small; + width: 140px; + overflow: hidden; +} + +div.user.inactive { + opacity: 0.5; + background: -moz-repeating-linear-gradient(top left -45deg, #aaa, #aaa 5px, #fff 5px, #fff 10px) #aaa no-repeat fixed; + -moz-border-radius: 1%; + cursor: pointer; +} + +div.user .username { + color: #444; + font-weight: bold; +} + +td.image { + width: 90px; +} + +div.thumb { + border: 1px solid #aaa; + background-color: #fff; + height: 71px; + width: 90px; + display: inline-block; +} + +ul.info { + display: inline-block; + width: 150px; + font-size: 12px; + padding: 0 10px; +} + +.info .description { + color: #666; + font-size: 10px; +} + +.thumb .title { + color: #3B5998; + text-decoration: underline; + font-size: small; + cursor: pointer; +} + +.thumb .description { + color: #808080; + font-size: x-small; +} + +button { + padding: 2px 15px; + font-family: "helvetica neue", helvetica, arial, sans-serif; + font-size: 12px; + line-height:24px; + background-image: -moz-linear-gradient(top,#fafafa 0%,#e6e6e6 100%); + border: 1px solid #bebebe; + -moz-box-shadow: 0 0 0 1px #fff inset; + margin-left: 10px; + cursor: pointer; +} + +button:hover, button:active { + border: 1px solid #999; +} + +button:active { + -moz-box-shadow: 0 0 0 1px rgba(255,255,255,0.35) inset, 0 0 3px rgba(0,0,0,0.75) inset; +} + +textarea, input[type="text"] { + -moz-box-shadow: 0 0 2px #CCCCCC inset; +/* background-image: -moz-linear-gradient(center top , #FFFFFF 0%, #F2F2F2 100%); */ + border: 1px solid #BEBEBE; + font-family: "helvetica neue",helvetica,arial,sans-serif; + font-size: 14px; + line-height: 24px; + padding: 3px; + margin: 0; + width: 100%; +} + +textarea:focus, input[type="text"]:focus { + border: 1px solid #999; +} + +.inputs { + margin: 0 10px 0 0; +} + +input[type="text"] { + height: 30px; + width: 234px; + display: block; +} + +input[type="text"]#to { + margin-bottom: 11px; +} + +.entry { + padding: 10px; + width: 962px; + left: 50%; + margin-left: -481px; + position: relative; + border-left: 1px solid #ccc; + border-right: 1px solid #ccc; + min-height: 70px; +} + +.entry .urlConfirmation { + padding: 1px 5px; + -moz-border-radius: 10px; + background-image: -moz-linear-gradient(top, #fafafa 0%, #e6e6e6 100%); + border: 1px solid #bebebe; + color: green; + position: absolute; + left: 5px; + bottom: 5px; + z-index: 1; + color: green; + font-size: 10px; + cursor: pointer; +} + +.entry .urlConfirmation span { + color: #333; +} + +#settings .entry ul li { + display: inline-block; + float: left; +} + +#settings .entry ul li button { + margin: 0 10px 0 0; + width: 128px; +} + +.entry h1 { + margin: 0 0 10px 0; +} + +/* START hbox/vbox normalization from http://alex.dojotoolkit.org/2009/08/css-3-progress/ */ +/* hbox and vbox classes */ + +.hbox { + display: -webkit-box; + -webkit-box-orient: horizontal; + -webkit-box-align: stretch; + + display: -moz-box; + -moz-box-orient: horizontal; + -moz-box-align: stretch; + + display: box; + box-orient: horizontal; + box-align: stretch; +} + +.hbox > * { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + display: block; +} + +.vbox { + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-box-align: stretch; + + display: -moz-box; + -moz-box-orient: vertical; + -moz-box-align: stretch; + + display: box; + box-orient: vertical; + box-align: stretch; +} + +.vbox > * { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + display: block; +} + +.spacer { + -webkit-box-flex: 1; + -moz-box-flex: 1; + box-flex: 1; +} + +.reverse { + -webkit-box-direction: reverse; + -moz-box-direction: reverse; + box-direction: reverse; +} + +.boxFlex0 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; +} + +.boxFlex1, .boxFlex { + -webkit-box-flex: 1; + -moz-box-flex: 1; + box-flex: 1; +} + +.boxFlex2 { + -webkit-box-flex: 2; + -moz-box-flex: 2; + box-flex: 2; +} + +.boxGroup1 { + -webkit-box-flex-group: 1; + -moz-box-flex-group: 1; + box-flex-group: 1; +} + +.boxGroup2 { + -webkit-box-flex-group: 2; + -moz-box-flex-group: 2; + box-flex-group: 2; +} + +.start { + -webkit-box-pack: start; + -moz-box-pack: start; + box-pack: start; +} + +.end { + -webkit-box-pack: end; + -moz-box-pack: end; + box-pack: end; +} + +.center { + -webkit-box-pack: center; + -moz-box-pack: center; + box-pack: center; +} +/* END hbox/vbox normalization from http://alex.dojotoolkit.org/2009/08/css-3-progress/ */ + +/* clearfix */ + +.clearfix:after { + content: "."; + display: block; + clear: both; + visibility: hidden; + line-height: 0; + height: 0; +} + +html[xmlns] .clearfix { + display: block; +} + +* html .clearfix { + height: 1%; +} diff --git a/web/0.3.4/play/designs/share.html b/web/0.3.4/play/designs/share.html new file mode 100644 index 0000000..6e7e9d8 --- /dev/null +++ b/web/0.3.4/play/designs/share.html @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+ + re-insert link +
+ +
+
+ +
+
+
+
+
    +
  • Title
  • +
  • Description
  • +
+
+ + +
+
+ +
+
+
+ + +
+
+ + re-insert link +
+ +
+
+ +
+
+

Settings

+
    +
  • +
  • +
  • +
  • +
+
+
+ +
+ + + + diff --git a/web/0.3.4/play/designs/sidebar/i/sprite.png b/web/0.3.4/play/designs/sidebar/i/sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..57c666b44b1332d8a420df03e9a46cdfc74eb6e7 GIT binary patch literal 3359 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 literal 0 HcmV?d00001 diff --git a/web/0.3.4/play/designs/sidebar/i/thumb.jpg b/web/0.3.4/play/designs/sidebar/i/thumb.jpg new file mode 100644 index 0000000000000000000000000000000000000000..721d4278776a1b9ae5a43f82e5baab0476479aa3 GIT binary patch literal 1708 zcmZ`&c~p}}5Z^CfZV(8DLanBvPz8%3c!3-dEHwz0U_=_MTmg>&Hr$BRmIBoh!XZQf zD_21R2IVFeEtIP^0uoU%ArOfIqJSw-lq>yOtnc|pfBW9<&dkovZ+2(YeQE{Jadx6P z0SE;E3mHKD5|H*r__JdG1keBgH$*i7wDz!0`2_%06QY6CGLQgJ?*Jn^7>&#@8iW1^ z7%b*rV6iwH9*4sc2t*=*p!q%^7=|%u3;~NJtk586tkBj%psoGyp|^|Xvh=>+J4xLH zNO)iam@q^FC=vvdAayIagwTdC0EQ5vZ-MZ^6NnHB2SX6_o&^9DgjjU|LIwq+H1KcT zAS4w)!sucRarmt(_t1Sg>&ThChY25kXHgwqvpsTGdZnci5)^TRFj(Awfglvg5Y|Ow zw!Yd!cfk5`(wlqMe^*fXWSxb(S_(9g%TXkl1nj}!Gmvk`zS|Y(CkjYu>;ApvbgU@5 zP!oSmV3uel7fKjIi{x)JDFgSvs#uwL=MPrqdSg9(VgZAkK-$8^t^9d*VOx%H#G_a%XL)je8L% zJj&@|$ED`RX3d_mgS=wKQewYUGNv=M;+}#?Tg$_pQ$#2=&CA?p`4*rrlaUGmAOZ{3I}Y5%<)6&{ubi;q*j&q}Jj=$V|x z%{F6ycA*qgOhdD8*fvIc40pwHLqnT4=qvRRhjS*4YO|VJ z0vhhx+&!*}_Y6q7=bixY&hBZs&}f?3Z^h%)t`ACNBD&lsUXnv&W{xWk+sL!ZLWmG` zBL=*qv89vcr1PgE<*JTiZ4$3ggGCxB@D4u`cbg4qQ34r(KN{Qgj*x40rZQGJfR1Yt4LG&9-XL^Mxu|J?5zHBD2p{^;qL-kjTOf?5+`R5Cx)<5Wrcy`k) ztj)Nx5BCwnEaE0({H5suy(O*k5fy7TMwW4+#yYY^?3}5apY-#_!r`Wh&Q}y>-6+kL z7c^l~$)7f>>WQ$f=}1!wH$L~cz>y0a+jnvF+r?l!-yoHjdjkP;|Sna$WEy#?Ie(g#-CM#V|x|pS~-L-AiSrMMt8$_@chV+(K zJ)jqdxRm!hrY3kEUdlE;u@5qYRtGC@+V@-&f59&?EbsiHY4MX*lKGnta+&gnvgB3q zA)9kOk2{|^gt;Ug=xedc3=Qk!vNv)dfp07zDzyA_OsT# zio@uwln+V{O)3Ndg$-V9rhBy+UHka6*IV8F$zQweA2o_=_Q6pGG0^nf^2ctQp9&n? z@{_H-GR9zbL;cfRyou)*8q)KQc&z*Ng-H^Zk7e;(E^t^HQ_V`n1Jnfw|O~YSq-1mj>5E^FO99)qP_Zu=u^+ z1OrPA7d%S!n4c9;XhFB+UEC|Dfbl2UUb5ou?NY}YRUQv++QzPt` ziw~P{JI20d`th4vk6uUTzPHds?3^e%`?m`6fr?m|vdT@I+F< z=dy>h)*p+tXs@8j$XNRH{zcLA`)?*bnlZ`W{pE5Czz*IvdD7EC3j;3}Y+Rx4M38T> zg@0ypVD+^=5f|IrzdOX#GDAN-PGDXl;``2ec~}Kk8*5@ES>{zkvPliLYi**?ggSG1 zXK9$~m#9>-s;AzR=Gt(lp{ysae&Z;&a6o9=C2UnSj+E@^ubZ&4bTrFI@l%!lVM3E! zpC}a{DKK7REj+Zhq_X#~JZ*ks5yLip=!Ry|=*9W4`&Xy>ca9yTMppmtv;EV{7O92a W + + + F1: Sidebar + + + + + + + +
+ +
+ +
+

Share

+ +
+ +
+
+

F1 by Mozilla Labs

+
+ + + + + + + +
+
+
+ +
+
+

Latest from the F1 team

+
"F1 goes live!"
+
+
+
+ +
+ + + +
+ +
+

Share configuration

+ +
+ +
    +
  • manage
  • +
  • add account
  • +
  • settings
  • +
+ +
+ +
+

manage your accounts

+
    +
  • +

    + + _andychung +

    + +
  • +
  • +

    + + Andy Chung +

    + +
  • +
  • +

    + + animalyouth@gmail.com +

    + +
  • +
+
+ +
+

add more accounts

+
    +
  • +

    + + Twitter +

    + +
  • +
  • +

    + + Facebook +

    + +
  • +
  • +

    + + Google Mail +

    + +
  • +
+
+ +
+

F1 settings

+
    +
  • +
    +
  • +
  • +
    +
  • +
+
+ +
+ +
+
+ + +
+
+ +
+ +
+ + + \ No newline at end of file diff --git a/web/0.3.4/play/designs/sidebar/js/init.js b/web/0.3.4/play/designs/sidebar/js/init.js new file mode 100644 index 0000000..223f9f4 --- /dev/null +++ b/web/0.3.4/play/designs/sidebar/js/init.js @@ -0,0 +1,103 @@ +$(document).ready(function($) { + + // set panel min-height to full browser height + $(window).bind("load resize", function(){ + var h = $(window).height(); + $("#wrapper, #panel1, #panel2").css({ "min-height" : (h) }); + }); + + // create ellipsis for gecko + $(function() { + $(".overflow").textOverflow(null,true); + }); + + // simple accordian menu + $(".accountToggle").click(function() { + $(".accountPanel:visible").slideUp(200); + if ($(this).next().is(":hidden")) { + $(this).next().slideDown(200); + } + }); + + $(".accountPanel").hide(); + $(".open").trigger("click"); + + $(".accountToggle").click(function() { + $(this).parent().toggleClass("selected"); + $(this).parent().siblings().removeClass("selected"); + }); + + // hide and display facebook form + $(".group, .list").hide(); + + $("select.facebookDropdown").change(function () { + if ($(".group, .list").is(":hidden")) { + $(".group, .list").css({ "display" : "block" }); + } + else { + $(".group, .list").css({ "display" : "none" }); + } + }); + + // account manager simple tabs + $("ul#tabs li").click(function() { + $(this).addClass("selected"); + $(this).siblings().removeClass("selected"); + }); + + $("ul#tabs li.manage").click(function() { + if ($("section#manageAccounts").is(":hidden")) { + $("section#manageAccounts").fadeIn(200); + $("section#manageAccounts").siblings().fadeOut(0); + } + else { + $("section#manageAccounts").noop(); + } + }); + + $("ul#tabs li.add").click(function() { + if ($("section#addAccounts").is(":hidden")) { + $("section#addAccounts").fadeIn(200); + $("section#addAccounts").siblings().fadeOut(0); + } + else { + $("section#addAccounts").noop(); + } + }); + + $("ul#tabs li.settings").click(function() { + if ($("section#accountSettings").is(":hidden")) { + $("section#accountSettings").fadeIn(200); + $("section#accountSettings").siblings().fadeOut(0); + } + else { + $("section#manageAccounts").noop(); + } + }); + + $("section#addAccounts, section#accountSettings").hide(); + + // 3d flip with fade fallback + $(function() { + if (jQuery.browser.webkit) { + $("a.configureToggle").bind("click", function() { + $("#panel1").toggleClass("front_flip"); + $("#panel2").toggleClass("back_flip"); + }); + } + else { + $("a.configureToggle").bind("click", function() { + if ($("#panel1").is(":visible")) { + $("#panel1").fadeOut(100); + $("#panel2").fadeIn(100); + } + else { + $("#panel1").fadeIn(100); + $("#panel2").fadeOut(100); + } + }); + } + }); + + // done! +}); diff --git a/web/0.3.4/play/designs/sidebar/js/jquery.textOverflow.js b/web/0.3.4/play/designs/sidebar/js/jquery.textOverflow.js new file mode 100644 index 0000000..e7c4957 --- /dev/null +++ b/web/0.3.4/play/designs/sidebar/js/jquery.textOverflow.js @@ -0,0 +1,108 @@ +/*! + * jQuery Text Overflow v0.7 + * + * Licensed under the new BSD License. + * Copyright 2009-2010, Bram Stein + * All rights reserved. + */ +/*global jQuery, document, setInterval*/ +(function ($) { + var style = document.documentElement.style, + hasTextOverflow = ('textOverflow' in style || 'OTextOverflow' in style), + + domSplit = function (root, maxIndex) { + var index = 0, result = [], + domSplitAux = function (nodes) { + var i = 0, tmp; + + if (index > maxIndex) { + return; + } + + for (i = 0; i < nodes.length; i += 1) { + if (nodes[i].nodeType === 1) { + tmp = nodes[i].cloneNode(false); + result[result.length - 1].appendChild(tmp); + result.push(tmp); + domSplitAux(nodes[i].childNodes); + result.pop(); + } else if (nodes[i].nodeType === 3) { + if (index + nodes[i].length < maxIndex) { + result[result.length - 1].appendChild(nodes[i].cloneNode(false)); + } else { + tmp = nodes[i].cloneNode(false); + tmp.textContent = $.trim(tmp.textContent.substring(0, maxIndex - index)); + result[result.length - 1].appendChild(tmp); + } + index += nodes[i].length; + } else { + result.appendChild(nodes[i].cloneNode(false)); + } + } + }; + result.push(root.cloneNode(false)); + domSplitAux(root.childNodes); + return $(result.pop().childNodes); + }; + + $.extend($.fn, { + textOverflow: function (str, autoUpdate) { + var more = str || '…'; + + if (!hasTextOverflow) { + return this.each(function () { + var element = $(this), + + // the clone element we modify to measure the width + clone = element.clone(), + + // we save a copy so we can restore it if necessary + originalElement = element.clone(), + originalText = element.text(), + originalWidth = element.width(), + low = 0, mid = 0, + high = originalText.length, + reflow = function () { + if (originalWidth !== element.width()) { + element.replaceWith(originalElement); + element = originalElement; + originalElement = element.clone(); + element.textOverflow(str, false); + originalWidth = element.width(); + } + }; + + element.after(clone.hide().css({ + 'position': 'absolute', + 'width': 'auto', + 'overflow': 'visible', + 'max-width': 'inherit' + })); + + if (clone.width() > originalWidth) { + while (low < high) { + mid = Math.floor(low + ((high - low) / 2)); + clone.empty().append(domSplit(originalElement.get(0), mid)).append(more); + if (clone.width() < originalWidth) { + low = mid + 1; + } else { + high = mid; + } + } + + if (low < originalText.length) { + element.empty().append(domSplit(originalElement.get(0), low - 1)).append(more); + } + } + clone.remove(); + + if (autoUpdate) { + setInterval(reflow, 200); + } + }); + } else { + return this; + } + } + }); +})(jQuery); \ No newline at end of file diff --git a/web/0.3.4/play/designs/sidebar/style.css b/web/0.3.4/play/designs/sidebar/style.css new file mode 100644 index 0000000..ee6fc0a --- /dev/null +++ b/web/0.3.4/play/designs/sidebar/style.css @@ -0,0 +1,625 @@ +* { + padding: 0; + margin: 0; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +/* + general +*/ + +body { + font-family: "Lucida Grande", Verdana, Sans-serif; + font-size: 11px; + line-height: 110%; +} + +#wrapper { + max-width: 400px; + min-width: 200px; + position: relative; + border-right: 1px solid #404040; + -webkit-perspective: 1500; +} + +button::-moz-focus-inner { + border: 0; +} + +button { + height: 24px; + border-width: 1px; + border-style: solid; + border-color: #aaa; + cursor: pointer; + padding: 0 10px; + + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; + + background-image: -moz-linear-gradient(center top , #fafafa 0%, #ddd 100%); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #ddd)); +} + +button:active { + -moz-box-shadow: 0 0 1px #666666 inset; + -webkit-box-shadow: 0 0 1px #666666 inset; + box-shadow: 0 0 1px #666666 inset; + + background-image: -moz-linear-gradient(center top , #eee 0%, #ccc 100%); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #eee), color-stop(100%, #ccc)); +} + +h2 { + font-size: 13px; + color: #535f6d; + text-shadow: 1px 1px 0 rgba(255,255,255, 0.5); +} + +h3 { + font-weight: bold; + font-size: 11px; + line-height: 14px; + color: #535f6d; +} + +/* + panel settings +*/ + +#panel1, +#panel2 { + width: 100%; + color: #535f6d; + overflow: auto; + position: absolute; + top: 0; + left: 0; +} + +#panel1 { + background-color: #d4dde5; + z-index: 2; +} + +#panel1 a, +#panel2 a { + color: #535f6d; +} + +#panel2 { + background-color: #E9EEF2; + z-index: 1; + -webkit-transform: rotateY(180deg); +} + +/* + header section +*/ + +header { + width: 100%; + padding: 8px 5px 10px 10px; + background-color: #d4dde5; +} + +header h1 { + font-size: 11px; +} + +header a { + text-decoration: none; + outline: none; +} + +header a:hover { + text-decoration: underline; +} + +header nav ul { + list-style-type: none; +} + +header nav ul li { + display: inline-block; + padding: 0 5px; + float: left; +} + +header nav ul li.settings { + border-width: 0 1px 0 0; + border-style: solid; + border-color: #535f6d; +} + +header span.close { + width: 12px; + height: 13px; + background-image: url("i/sprite.png"); + background-position: center 0; + display: block; +} + +header span.close:active { + background-position: center -13px; +} + +/* + page info +*/ +section#pageInfo { + width: 100%; + padding: 10px; +} + +section#pageInfo .thumbnail { + border: 1px solid #a6afb6; + -moz-box-shadow: 1px 1px 0 rgba(255,255,255, 0.5); + -webkit-box-shadow: 1px 1px 0 rgba(255,255,255, 0.5); + box-shadow: 1px 1px 0 rgba(255,255,255, 0.5); +} + +section#pageInfo .thumbnail img { + float: left; +} + +section#pageInfo h2 { + line-height: 60px; + margin: 0 0 0 20px; +} + +/* + generic styles for account panels +*/ +section { + display: block; +} + +section.account { + color: #535F6D; + display: block; + border-width: 1px 0; + border-color: #a6afb6; + border-style: solid; + margin-top: -1px; + background-image: -moz-linear-gradient(top, #d4dde5 0%, #c6d1da 100%); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #d4dde5), color-stop(100%, #c6d1da)); +} + +section.account:hover, +section.account.selected { + background-image: none; +} + +section.account.selected { + background-color: #e9eef2; +} + +section.account .username { + display: none; +} + +section.account.selected .username { + display: block; +} + +section.account .accountToggle { + padding: 10px; + cursor: pointer; + width: 100%; +} + +span.arrow, +span.icon { + display: inline-block; + background-image: url("i/sprite.png"); + background-repeat: no-repeat; + vertical-align: middle; +} + + +span.arrow { + width: 12px; + height: 14px; +} + +span.icon { + width: 16px; + height: 14px; + margin: 0 5px; +} + +section.account .accountToggle span.arrow { + background-position: center -102px; +} + +section.account.selected .accountToggle span.arrow { + background-position: center -120px; +} + +section.account .accountPanel { + display: block; +} + +section.account .accountPanel .padding { + padding: 0 10px 10px 10px; +} + +section.account textarea, +section.account input[type="text"] { + width: 100%; + font-family: "Lucida Grande", Verdana, Sans-serif; + font-size: 11px; + padding: 5px; + border-width: 1px; + border-style: solid; + border-color: #A6AFB6; + -moz-box-shadow: 0 1px 1px rgba(0,0,0,0.15) inset; + -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.15) inset; + box-shadow: 0 1px 1px rgba(0,0,0,0.15) inset; +} + +section.account textarea:focus, +section.account input[type="text"]:focus { + -moz-box-shadow: 0 0 0 2px #C2ECFF inset; + -webkit-box-shadow: 0 0 0 2px #C2ECFF inset; + box-shadow: 0 0 0 2px #C2ECFF inset; + outline: none; +} + +button:focus { + outline: none; + z-index: 1; + position: relative; +} + +section.account textarea { + width: 100%; + height: 80px; +} + +section.account input[type="text"] { + height: 24px; +} + +section.account .accountActions { + width: 100%; + margin: 10px 0 0 0; +} + +section.account span.count { + line-height: 24px; + color: #535F6D; +} + +section.account label { + display: block; + margin: 0 0 5px 0; +} + +/* + twitter styles +*/ +span.icon.twitter { + background-position: center -35px; +} + +/* + facebook styles +*/ +section#facebook.account .facebookActions { + margin: 0 0 10px 0; + width: 100%; +} + +section#facebook.account .facebookActions .to { + width: 100px; + margin-right: 10px; +} + +section#facebook.account .facebookActions .to .dropdownContainer { + height: 24px; + line-height: 24px; + display: block; +} + +section#facebook.account .facebookActions .to select { + width: 100%; +} + +section#facebook.account .facebookActions .list label { + visibility: hidden; +} + +section#facebook.account .facebookActions .list button { + border-left: none; + width: 24px; + background-image: url("i/sprite.png"), -moz-linear-gradient(center top , #fafafa 0%, #ddd 100%); + background-image: url("i/sprite.png"), -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #ddd)); + background-position: center -157px, center top; + background-repeat: no-repeat; + -moz-border-radius: 0 2px 2px 0; + -webkit-border-radius: 0 2px 2px 0; + border-radius: 0 2px 2px 0; +} + +section#facebook.account .facebookActions .list button:active { + background-image: url("i/sprite.png"), -moz-linear-gradient(center top , #eee 0%, #ccc 100%); + background-image: url("i/sprite.png"), -webkit-gradient(linear, left top, left bottom, color-stop(0%, #eee), color-stop(100%, #ccc)); +} + +span.icon.facebook { + background-position: center -59px; +} + +/* + google styles +*/ +section#google.account .subject { + margin: 5px 0; +} + +span.icon.google { + background-position: center -82px; +} + +/* + account configuration +*/ + +ul#tabs { + width: 100%; + padding: 10px 10px 0 10px; + list-style-type: none; + background-color: #D4DDE5; +} + +ul#tabs li { + padding: 7px 20px; + margin: 0 3px 0 0; + display: inline-block; + font-weight: bold; + text-align: center; + background-color: #E9EEF2; + border-width: 1px 1px 0 1px; + border-style: solid; + border-color: #A6AFB6; + -moz-border-radius: 3px 3px 0 0; + -webkit-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; + float: left; + cursor: pointer; +} + +ul#tabs li.selected { + position: relative; + z-index: 100; +} + +#accountPanels { + padding: 10px 0 0; + border-top: 1px solid #a6afb6; + position: relative; + z-index: 90; + margin-top: -1px; +} + +section.configuration { + padding: 10px; + display: block; +} + +section.configuration h2 { + margin: 0 0 10px 0; +} + +section.configuration ul { + background-color: #fff; + border: 1px solid #A6AFB6; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; + list-style-type: none; +} + +section.configuration ul li { + padding: 10px; + border-bottom: 1px solid #A6AFB6; + width: 100%; +} + +section.configuration ul li:last-child { + border: none; +} + +section.configuration h3 { + line-height: 24px; +} + +section.configuration h3 .username { + font-weight: normal; +} + +section.configuration input[type="checkbox"] { + margin-right: 5px; +} + +section.configuration .done { + width: 100%; +} + +section#news { + padding: 10px; + width: 100%; +} + +section#news span.icon.rss { + background-position: center -183px; + margin: 0 5px 0 0; +} + +section#news .story { + padding: 5px 0; +} + +/* + hbox & vbox +*/ + +.hbox { + display: -webkit-box; + -webkit-box-orient: horizontal; + -webkit-box-align: stretch; + + display: -moz-box; + -moz-box-orient: horizontal; + -moz-box-align: stretch; + + display: box; + box-orient: horizontal; + box-align: stretch; +} + +.hbox > * { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + display: block; +} + +.vbox { + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-box-align: stretch; + + display: -moz-box; + -moz-box-orient: vertical; + -moz-box-align: stretch; + + display: box; + box-orient: vertical; + box-align: stretch; +} + +.vbox > * { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + display: block; +} + +.spacer { + -webkit-box-flex: 1; + -moz-box-flex: 1; + box-flex: 1; +} + +.reverse { + -webkit-box-direction: reverse; + -moz-box-direction: reverse; + box-direction: reverse; +} + +.boxFlex0 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; +} + +.boxFlex1, .boxFlex { + -webkit-box-flex: 1; + -moz-box-flex: 1; + box-flex: 1; +} + +.boxFlex2 { + -webkit-box-flex: 2; + -moz-box-flex: 2; + box-flex: 2; +} + +.boxGroup1 { + -webkit-box-flex-group: 1; + -moz-box-flex-group: 1; + box-flex-group: 1; +} + +.boxGroup2 { + -webkit-box-flex-group: 2; + -moz-box-flex-group: 2; + box-flex-group: 2; +} + +.start { + -webkit-box-pack: start; + -moz-box-pack: start; + box-pack: start; +} + +.end { + -webkit-box-pack: end; + -moz-box-pack: end; + box-pack: end; +} + +.center { + -webkit-box-pack: center; + -moz-box-pack: center; + box-pack: center; +} + +/* + clearfix +*/ + +.clearfix:after { + content: "."; + display: block; + clear: both; + visibility: hidden; + line-height: 0; + height: 0; +} + +html[xmlns] .clearfix { + display: block; +} + +* html .clearfix { + height: 1%; +} + +/* + webkit specific styles +*/ +@media screen and (-webkit-min-device-pixel-ratio:0) { + +#wrapper { + background-color: #404040; +} + +.overflow { + text-overflow: ellipsis; + overflow-x: hidden; + white-space: nowrap; +} + +.flip { + -webkit-transform-style: preserve-3d; + -webkit-backface-visibility: hidden; + -webkit-transition: -webkit-transform 0.7s ease-in-out; +} + +.front_flip { + -webkit-transform: rotateY(-180deg); + z-index: 900; +} + +.back_flip { + -webkit-transform: rotateY(0deg) !important; + z-index: 1000; +} +} \ No newline at end of file diff --git a/web/0.3.4/play/scratch/send/index.html b/web/0.3.4/play/scratch/send/index.html new file mode 100644 index 0000000..e7f452f --- /dev/null +++ b/web/0.3.4/play/scratch/send/index.html @@ -0,0 +1,152 @@ + + + + + + + Send a message + + + + + + + + +
+ +
+ + +
+
+
+
+ + Send via + Twitter + Facebook + No Service + + + + + + +
+
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + diff --git a/web/0.3.4/rdapi/f/StayPuft/COPYING.LIB b/web/0.3.4/rdapi/f/StayPuft/COPYING.LIB new file mode 100644 index 0000000..eb685a5 --- /dev/null +++ b/web/0.3.4/rdapi/f/StayPuft/COPYING.LIB @@ -0,0 +1,481 @@ + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Library General Public License, applies to some +specially designated Free Software Foundation software, and to any +other libraries whose authors decide to use it. You can use it for +your libraries, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if +you distribute copies of the library, or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link a program with the library, you must provide +complete object files to the recipients so that they can relink them +with the library, after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + Our method of protecting your rights has two steps: (1) copyright +the library, and (2) offer you this license which gives you legal +permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain +that everyone understands that there is no warranty for this free +library. If the library is modified by someone else and passed on, we +want its recipients to know that what they have is not the original +version, so that any problems introduced by others will not reflect on +the original authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that companies distributing free +software will individually obtain patent licenses, thus in effect +transforming the program into proprietary software. To prevent this, +we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License, which was designed for utility programs. This +license, the GNU Library General Public License, applies to certain +designated libraries. This license is quite different from the ordinary +one; be sure to read it in full, and don't assume that anything in it is +the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that +they blur the distinction we usually make between modifying or adding to a +program and simply using it. Linking a program with a library, without +changing the library, is in some sense simply using the library, and is +analogous to running a utility program or application program. However, in +a textual and legal sense, the linked executable is a combined work, a +derivative of the original library, and the ordinary General Public License +treats it as such. + + Because of this blurred distinction, using the ordinary General +Public License for libraries did not effectively promote software +sharing, because most developers did not use the libraries. We +concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the +users of those programs of all benefit from the free status of the +libraries themselves. This Library General Public License is intended to +permit developers of non-free programs to use free libraries, while +preserving your freedom as a user of such programs to change the free +libraries that are incorporated in them. (We have not seen how to achieve +this as regards changes in header files, but we have achieved it as regards +changes in the actual functions of the Library.) The hope is that this +will lead to faster development of free libraries. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, while the latter only +works together with the library. + + Note that it is possible for a library to be covered by the ordinary +General Public License rather than by this special one. + + GNU LIBRARY GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library which +contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Library +General Public License (also called "this License"). Each licensee is +addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also compile or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + c) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + d) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the source code distributed need not include anything that is normally +distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Library General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/web/0.3.4/rdapi/f/StayPuft/README.txt b/web/0.3.4/rdapi/f/StayPuft/README.txt new file mode 100644 index 0000000..0aa6802 --- /dev/null +++ b/web/0.3.4/rdapi/f/StayPuft/README.txt @@ -0,0 +1,35 @@ +The Stay-Puft Marshmallow Font + +Copyright (c) 2003 by John Stracke + +Not a very impressive piece of work, but fun. I sat down to fiddle +with pfaedit, and started seeing what I could do freehand, with +minimal splines. The result was all rounded (not surprising), sort of +marshmallowy, and I started thinking of it as the Stay-Puft +Marshmallow Font (see Ghostbusters if you don't get it). Once I had a +name, I felt compelled to round out the font (ISO 8859-1, at least). +The outcome looks sort of like Comic Sans MS. It's kind of cute, and +might be good for frivolous stuff such as birthday cards. I've used +it on my National Academy of Silly Walks merchandise +(http://www.cafepress.com/sillywalks/). + +It is released under the terms of the GNU Lesser General Public +License (see COPYING.LIB). Where the LGPL refers to "source code", I +take that to refer to the file called StayPuft.sfd, which is a file +for editing with pfaedit (http://pfaedit.sourceforge.net/), an outline +font editor program. Thus, according to the LGPL, if you distribute +this font, you must make StayPuft.sfd available to the recipient(s) +under the terms the LGPL specifies for source availability. Each of +the download links below is an archive (tarfile or zipfile) which +includes StayPuft.sfd, the LGPL, a readme, and at least one font file +(e.g., Isabella.ttf for TrueType files). I chose the LGPL instead of +the GPL because, arguably, using the GPL might mean that PostScript +and PDF files with this font embedded would be GPLed (they're like +programs that link to a static library). + +The font has ASCII, Latin-1, and a few other useful characters: left +and right quotation marks (single and double), ellipsis, long dash, +and Euro. I don't intend to round it out as much as I did with +Isabella (http://www.thibault.org/fonts/isabella/); this is a much +less interesting project. Anyone who wants to donate extra +letterforms is welcome, of course. diff --git a/web/0.3.4/rdapi/f/StayPuft/StayPuft.ttf b/web/0.3.4/rdapi/f/StayPuft/StayPuft.ttf new file mode 100644 index 0000000000000000000000000000000000000000..09ced57d741c10a4df025174b14717bba524d6aa GIT binary patch literal 35572 zcmcG%2b?6?Stl6ph4&E|F1>eESygGOvb?YM-c9$ko0*;&&Gh)uXskvC8RWf?Kn5Yq z0y;p5K{(-rSys4R-~@{nmKCcz;D_18i-lG9{a-|8b@$AO)Bf(Zva>4VMP$VL%=`TN znj;*?+1xjAJootiJ$v_Y4IFda|HM1J|HSdrUwZ$SeuLwPkK=#ZfBLrV-wl56GaN?^ z96x;gba!xi_zQ<{{49>o-t)+n$J>7xycx&8h3~xao~NHIa~1j=#|dX}Ubz3ts~*38 z9Z%wf+i|Si|L}A7op}De5{~cUxTpT;>MO3?`v+fr^Ive>t2c3e{wfC4vr-zz?Edwu zk39M8XQ+D=#~a0R-E-ym4?cpqz4p)WyzhVH%CnD?D*YJ8z5ac;zWnHwM_%#X zfA<8=zaDdzU-|fBuX^&6|D*C1j(ckz-~UaH!OkFY@TPbRqrYri(!JmqtE%I9#`&tcX)urR^R#_;?raNqaDm3wZ1 zo8c>gdkU~>Tp7P5&f*w1rMQ55ef&4VH3IjB-OrTsxsW5|r^(*~TMG9Dytw#x^0!Yw z3(6_r6ZZ2>44(;o*dce~zP2e;U``PIAf4KgY>%a8n z7ry+NFMs;W-~Z*eeYrWhGcLdNhk%#K2Y-|eevUIr zzVCa#|Nr>GANZk9f98jOcX>PyOW2{>;z)Jolvh~GrkGz)q)K9I-0kzZ%TC6}M4wD;09|+82p_?H}kzzjj}R-j2H#z&Zb! z*Fe=Nj`JkhFA+bGr6^pO$E!6rT$t;UW~(Vn{CpHfp)AQ#3&#udcP$elnzWa1De^Lr z)FvS`Z0n`+v?SMgDyL`iUcr&*KlLuE+G{28d(L-ro+u42eOTZ>a%zrHns| zmr75tLseFI5+BmPdBZV}5Z-#@QJ)0tv%t%kDLZ7(^0++x5HI3cp8|eg1S0Su*(8RT z!Oh@bn2!eiT|DfLVFVYBu*NXAd#7ZKA&iYJ%(B0&xqgh&4#VvD1REd5!>uYtB?fNt zR5`%IV=64n2MlPCc4Dfb$Q4g^n!TcvZ&`aP0Fr=wON*({ZHh#(r)Nx}O4+8Oxs9e% z7pY>lng-8@-TAub^$fi#NrD<~4?{bsR(U6t>$zrH*9G42W~NkSPbf=#p z^TF!6NwRjB0!hqb%hW?%7X`IFr75PNo5hB1IF_aGLajS&RjRfi`KxPY&gyuIm+$q& za#-;tGn$)o9o^G4mEg)2!RIg}YPs*4p=k=dT4@s8+V}8`!KtSPm4d}f!Saej0yAS1 zUMkED32A0SlRyHcI7$uP<{pW8Z7vF89v{;?YBH)vvmwTDrZ36hz%gOsQ(@#s;Ra#k z11)C z9E%rRD%2Vh{b#!&NTlKxQm!j27nTiuLKGEVkwh_z8T1{h5wTL>sgte(cvCH?1z#xy zz^Co?<^f!P;+m#3f5PanuiQbrVyyzM}nkR2wGqU-;I{x%Ow zhr5?y?*^dY!O$CQQ1H>10Y~B~;X^PUKE(XWcrAHhFcy>GH} z9izQeARX5)<#U<k%-OW&;H@#e!luVeN$z+9~kq?VrWKWsaQqaQxZj4%2&46{j@uy3!1kuZ+ogg6Rvf2%10}qSEE!=%Wcy!it{xhi(#{! z^-_!9_PM2?niH9x%wO1JrsSrXt1c__$Ag9bfyFSR8-n0YVQFP`P{eKYqqSaD6g!%r z`v>=!B})5u&Di-Y5tZt2exg*8y^Nfn9;gbme!;VOF@0~Z+$_NGC9rcpNIpy7%5BFq z128XxgIx@?LMAX0Y$VHo{RUoo{X}>Ed}tVs8G6%Gkg7FX(!Fli(Uc&S;;B~eWgS0T zp3J7)>1j)oizUUdTMdg)KNErF=Vui9K+qp-^+V4zWnQY!IA&m3BCmw~o?~e>L-M2P z#lzF-z%)f(ZFLRJGIWE`XwbEwh^DK|bmbfZocaW9Jw95nLr;i_DYHl0V`~z!tPi!ll56 z#8l4+FT(^gf1KL4RuXuIgwpDz_XVzZcuz@|3PqymmDL^c>z1D7c?M!tF#_JybCLoL zMGUo|!JQ-AVNT_K2~gO8BF1_G1*6ZoY`Iu-)O4gdf&i^Q-798I(W*GvBN6>fe7jahRa}_}yQ0^dW}??vC|b8?=vOm5;Z-6jUsq;M zUH=+cu9Xt4TdbpIu_Q_u3$?ws3te&?4jzFzr6%K47_*XxQ@ zI{e@>pQ*g|bQ|zjIEAe71+I%3VS&bT^4VHuG-H1^$m}4YS%QlpWO72$roJ!>rh?MO znvC?>DMglz-Ws8zyx8^JAWb!%K+?*eShiC1xwPw2YHz(R<#=}-UdZLrmgN=|O;d8| z=9GKnt@Ui~r%!hG++Fw6n3o7#ou_}xLD_imT4Pcrkt7Ulem|MtE@#D3hs`UNEbL-7 z-Bz`RA=tcwC6yO=i5IGRN(u`lLmo7U7IaN>Ff9wbPECZ7*$z+SWyw8tt=<*2YpZ2y@nERS(N{#)rwNi~56p zl)ZY_W~F+WCmWJ{-xWX=0NV$_0Sqc859UYfEJ5g)*O40YbdHzUNxQD4_L;$;_z9YlC)24p}*&{VQvW2(Ca!)Wz%6_kvnF+ zMDB#?t802Y%x^{l6|*@>B~+bVvGmo3tj$~?_l5OBx;Wj)K67+pxi2f7LFBohtWd~` z#>w?I%u|kO4v*Z)>zq4=4SsCGP2i$dlkwIr{Sw-+;V~;QSVx{o47{`;Jvq@Pb`W`l zP87{36N(G@x~h~tU&|_m2&SJXtL2EoxAwI~O*v8~P$Yq9rTPQg(n>J34f2z{9oR{p z579Zbl@CILUV9|#3rcn8K)_>zg2|M@lQF2w^kyRr;2V%KSV2h)44D!j+s|6h zW?|l&k|S5=%l-~{OYG=orqgnCt>TDA_qID4no=yM>d{=^G1ZBzI)BGJrq9!V&Qj+9 z0W0<^@q@@Gy4iFbve?X9`N?U|XlAV3 zWY_;g&ytj#qf^BxODWy^TGD>CrapaXexEBEYp*?XtVDTP4VEg3Cd%6y{P@)sMknL? zzmQWrG#elq5dqQ^P>mN;LX=&?4CHF9CAC_vq(z6;%z(D5qC4y}2uwI+v*qt=4Z0cIxippYo3+Lfuv@Uuob6`~vpw65QeJYRepu0nF=!2E z3;KtXJEUv~RAF=%#%W+Tvdsrvjl*K{01@M`D2xRg19%j?z^Ihar}Z*`e*U#BS+K6| z-I%pu&4|?XM6njMPB&#S-Q`z$R+;kqUJkBjOV4NWPwq@jR1ck5I$boMSTxOhrqlhB zq)tuogI4`aSorp@GxIIj7C%Ma0$Nts%rWcP-LMLxBl4{y&7;iTAT|sRBdlPZ-Ev4s zi@6YVWn0e9SeY^|WhQu{9U# zS)h8Kei7UxyWN)HKW39%S^U4c`78ZN{!BhAr_id2xdZNTunJtZ7p;V zwUS6xaCXf}Mo*sn3*>pqn(aB+jHC_Eh*u1~v$i-D@O+TpJS&MG-M@D`4VPw#5Ixl9 zlsbba$BFd&co%Er2*Y<`ca4$U!dx-cn}r6OIy)X40j*jb>0xYt%sNOO0U%tYjnrlS8nXUH@4fFv9;R2_S2hp)m&AuBh~!Y zZy%fyMa1;AhcoMwQ@YxN+$B!xgYTSPPKBjP-tn@7ieP#>J5moipmO~>FY`4(T4qtE zF?|yP0aj*Z!#^6W?r*YtAh=l$y|btBV>bAFZ24I#te|x^zx2n82%Am2->nF2#tzBmHc_rUAb+KkJW-OCvEPK<)$CppOPfV z4I%BD8l+J6`ZfBeSQm>Uxy!Ugw89Li#Ab})O;EMMqMET;!hEG&WzuT?5rr2ziqTmpPqs~bVQ|lW!lc91-|d@-qL5aWWtCIb;;%F1s4ke9t*qI?3}J7dnkQ1Ftu@SwvJ?spp?0RE1O&i6D2G18CC5TY}{w3SYB^ z-Bw-F29hThG*Oo(YD8%q)owpFnAo$9bU;@Vr0V-~d3|l6JSEVuu)cS?Fi8*;EN-^$ z+*_X$`SkR~w_hAg3PfmHcR#hicE^?FJpE7kfvT@+`SiQ*nCNBOHP0{>LcUfO_j?jNBXkdFccpaHsUCVrlieA zE?4Py!imOQrPo~RX5hl_g5`~|wg1uc^QlAIh@&<1pfFmMU*!Eb3I?izYh!UWUX%$} zzj##w4QyE!D0mz&?%K7#svJ9h=R~0}n=YvOylIvW{)QiZ`grKvv^>kYYTH|sPMkPN z1#0moYDm6#W_?}a*H#}LBJg5wt%(YfV4$Y*k|y7Y`mCW=cg-EbluY&tztR>L`k|LiJj7M+LsH6QXfZ#)_Ab^9Q@%F{VI_bTV6g@dj3IG zOFx|#;aPb5d`Xh1yj?O>-z+@$K=-}|)D6-TClm_B#i)uZ1iDDCaUHD6c@LbrJDZx^ z0t`1n(P~D`WEH}O*gIuYGMdA^spunbK5rqoHFu@2P5W{rU!0|B*H$_gw-?I~yp3>$ z=IF^sRVs`8GA~S|GH&(V-#mA*cz%{flg-?_LubHh6BwU;Dn!g3v}v6!*-U z?zu-h%|dOO=NnslHv_%CaTAjQ8RT|?Ue3pXp6miF4fugN(Um> zwyNbw;2US|-cEUGq|p46LH)=7)ighlG6_pQ*soLqN~ zb}HX};#hv7ma?pVW*$psq8>E2YPm^6^qgGtVs>z{T-%0jUnvqpABZUMVNpBE50S6A zi^+JzAd}g$-z*2tSSy|{OPhl6W5*V7P!F&yFrb*GW2xDA<=kYr+>jgier)MO;eT}A zb@hTMTBau}mEq2MK4=UAF&|2nGC`U|Z#}^xuKdQ*JAa^@mgPcmeR}>em?OwHK^jEW z8Aq%_RLb3!B$<_?OP%GwrdrdLq?8>#M<008f=vbO$TPD`#UAO_+OwJT^RI2J7Q4uJ zIrb7P1At$B4Vk|7o_!+W_0_lBURbTiw}-V>=`4i72X7m$mS>ut?=Na{Yxpe><>kUM z@mdd+XBfUvF+=|mw%akb=pRAAM^7tSIl%&AFYYE?+?Gg`Pil=ZBwq6_PxU-2dUp&igN45TpmL($`Ao z$=2D&j+^?ls2w}{xNTqES^l7O`Qp3$@Y|n#Whn9LlaGBX<-g<6hcTa!GwCWa7O{;v z$|5jU#1j|h7J6_GfKi6o1e+uLN^D-UcqhDyt7Gd-?gi4npFJ^CpON`g@91p1D-!90 zV!@I;jS{h0Lz*CGA+F*p*KAWEo z1i4tjG7+=3;p7Ve>I(8UxtVgg${o)nl#@^L`*Aa^olB=%B&)vap6__{SXPPYsM4!3 z9nWK(#M5V>#^8v_;iH2U@->P*Gt)n$T0=jDQ}46a$v%JSIkx`lRG4b|u3ft7d66Uo$j9qtZ=fzW>wro}Tba7Y#Fi zae4+B(_r?yb>nAq`S+35`<^*a%-Y`TT$HZde&;kXa$(5`k6n4kk}4M`YJ)9T?DZ&=JVC^e(m&%%+&q(h zY;LhyV^d=$*-My>Yag-O#8n^E8(+DL;MURF9`#I?szF zudj$=er?q(rCPkuJ^q#p@5`^#uUhl-ox1JG*{uhxCmV%uW-`qSD}uO)pjNA+>iSPS zzAcG)#|~!J*PR@X9~m=t;k7Qp299T(Ofcp=#%1Hz?mBFaMGKpM!fUd$=Wx>~Z1TEN z_NRXM6WL5%RH(JOAd1WV zvR6-AUT$^2w*IDPR!^+W7VOfVSGvL7pFg=cXMlqy6?M-Wp6;EP>!}jv9H6#x6`po8 z@w?b$ZlE{8C-6QVW@Z)nMJtmZ=3A|urSkEW@Knxu@Xm7n;PV~z!hFrnPwuScj|Ff% zKR5GjpSpM0?Fn@9zIV^Rv6KIa`PApOgJ1gQ)0HBN_`K;S7rua6VNS;ku7g)uPDtV< z88a9^ZfpX?WM%#V(8)y8%`-~f{FRvO907Az;dFqt_vZC4KSbm72MX5&JU z_h&az^_W_^qaf`?C5f4xAEego+7v3z20+HYuj3ul9AhvEv>+6BxX7M!7%_n6jFAWiCHgu9K*u z8KSV5FXU0ndAMh*68*!)zTtKAxzeG_S5B;H+FDamvbVqE*AF3WPq$V5!R>Iity+8c zxf^@t%9YJoadx7aE*|s+%{_9SOdA3rTc?isJdMh#rGm;DB+^%4x5u_jvNpz6%Xk?_ zvGfJ(b9g0D53rluArfF6cFD+UO{JHenWI@n%G(HgsIl1Vzll&&k@6_4J zPA_t+UKM2?cHa$&-MD>wn*LW*&=vYk(>n0f)#CEx49`!A(!Tp2){d^uPEFDlBFa3! z>79>C7*$>YN!tBDYO@Dmakcrj3 z^Yw%ja*wBxBC^Bp>8!ZH@4k-yy*=o+?ikKUhMwNPc0`!$7dFZ)@QI@w^j$Kr+XkPJ@K3Vk6>YR4lkGmo!@7z&7R;`*cAZh+@n)8;#g;Y^H$_ zamWeqkaX3TbiY%aa`l60y{lM6k5FuLj#%1O+G!i2<r zG6GqYd4+gKp8J8o`;`Md`0>b>QMWVjoxo4=ytQ!mX5p<9{k&%K8ey67QH_bSAGId$ zRBC3nS}#njBCjk?%Qih;ukgIuMiB|AOv;*6EEeazxdk&bv2+`p zTxr3`;`ssMuJ7T#7hJN!szF z`DiCaGATJPs&+1tWyCj!=g%LQZps>g45p~fvdKR}2D?npEMTtV*)l+)u*E2Xe~D6N zG+|a#Qqhal0Bj^A3UHPceitYJK&8R}u-P0)wd^<97a~rw8i&6!VI70fZUtLcr z*$e_GVJaLPIxE56c=su?(GEjO>-$hFLnKMv{plG;S33%Cd)>Z`DzK&|7)uxCrXYA^qkQI6o4in-badZ#c&fC9X)iKR ze84NsnUuL@tCfi}^xTQ45v_(ATZJ<4`+xHVtirwIYok@jux^km|=(&D#LY* z`ytpfVa;)nE5Di@*Rkyl-;@durE?!R)z?sJM2Ia+6pcKxLB?c7Bm(?u zp_rqzym;^JgS4s>qX6q4Kd8_2U0F~sWE+zQRGP_%ks?@ohOn|OFWzO}pY<$(IEJ2U zLZp}mz6mKj_1Hag%ztvOFOg5gYaXQ^4W?^HdYBRDMyWOnLf(LROd$q&LbIqz+*Ti@ zr)d=x*TW-yOZ%IKA~+j&&(Cb4)`ll3CoAjw@7g;!qshzB@}d*k1xpZf%bRxp3r$^2 zb@ya^QCw_i_Re1WhiW%+wj;B(aJO@*S52Kg*4DKxTc17q^x1uRO{Kh3Dnsstk;sG= z;)0ZX1=@MYJf0-Em()nc^Yi1}Rx()zAXa*^QWzX;{&KY_>)1wtQkquVLuDe0H8rA5 ztd@_p-uo8RZfYghQ=Ho33|rKWC5f&4=#Abnt@6j=<`WlUayO_9{ z%S~pTVp`TqbzQBZTD3G`8wJF%O(R>L3EiAgY)ROzLHuj!*)c zykZE#@d9Q?@klcf^DrHm5W?x|G$bM{KV4KRs#Oj&ouIr}F{ivhGi28)uC%eaplSBg znm#j$9BkDyGzA{E0$Z|}$+>46;3Cp2(a%-)rSGU_zED_Ldl(AZQEP2IIK1Uayf#mc z)qP_)X%|ApZFcNo#t&w@MbjK=lA-3a#j-%eTEp0zDa~9Rt}w14ppVOaCu)DzvBGiQ7Kcf9&oRuDo#y!@e)3)d!^ z*p3j0xVs6)Y>>ZW+tC&zcB}CUVsenJ5Ijj@C}T$@QXt8*6NNdS2!mLf_gSonUCJW3 zF$2eS6k{R5Zk$jdVeVx4-5+HwDNt2n8Cg+sN~)|YvYB!v!?M;Zx~@VL@~Y!G#!@9{ z$)Y7t>R7Ibq!vuswkkO&NaelBSrnHDwwV&;sNyP?<5FG}B-`(l5j#h$R!Q^Oh^Iz( z|7w&+E>zR7#Y0j{Ipm$SR0OL}kg!Jv(O-iXf|QVwy~_5?L*;b1fBi@(Qwi#KPy4}U zL7FTYxp@mgJzcJx*jrGf(9_)N+GcrRDQcSVlc@?Q%RY;5 zvUQW-`K9O>pJ8PiW1Qbg0fzm^NBs`5%t#QUN=mj-6^y!E$?*U!B1N&X5TdLthMEe? zQIzenDr<^txhdJOW4zkfHmCAri|$2e%fYCXJfo$|*H-1*?n8glmAbQgMmVwm^3{D?qIBEQd+y(uV^Y<)zDBN*e}+`u$E0c^xYz?2rV%0lw!y8t zk|CZ`%*5bT_V-3i6sV3xZWR85FcD=Tl>~Xx4<}Q~Ty=idFQ5jSSXNH=N|UDM7@E!t zm0E70QG3N?NDj1@%GI(IrdyD+B0;X^`fLXK(WcUwE{f&Fws-AR3j$*4o~Hw^@W6e; z&?~v3YE8DV3(V1~XzL*lBQotdl_vz%zE4 zz=F&eW@95>?4ypM1~?;`jrzOe01(N4q+b|~NA#R;>iL4HNs`{2_H0BEkjvMzS)-(j zs*%pXmL)~_=J2lyLQxMrL0mf2tCn?(SgNiS3dp~deVP1|X&Q!JM##7A%8pSFH0#byKzR`UY$yG%&*pCbPk z_B_J=0Qp#vF(We)`0NFm#zzbZpxcP>F=?4>NeBv9abhm9JY;F2ZlV+f3Lke)G_ATnadc*Ku9J>q$plxwSI!Em(HLBvYs26jYrJ7pDa+q|41?_8PC ztki)`6GCL=WDOOCOZPZuUlA^?yO%Bf9%mU(jjms(pCLaO=dFM!h9oALAkV-ERbUf% zV=p$5cuPcloFw8B{3Z*Bi8SE1#uiMxLExEA4NkX6)O1~U^r+X&5x!^5$%RbWa{I1} zy}|*hG^Yh&wW^wqJS7``YFSkT0s9yfA;R{lwnZJ2d^nQ{_O3&>`p6-is#`@89X*%1 zY#!XuMJgV-ljvHtL(krgWwh6=cAP7<;Y1_Nig{hLl^@OjIr4UPiIVLq2lxz$aCt_h?K4q_zidDk^q_(6?6zV}v zmOHLAH7$j_FgGI>Q~rjomu*Xx6rx&FS*4O|Z@ON0v%%Bhtek{TSh!=zbQg)Qv_E=IXT@Qp`smgRieCB4Og)pwWr2sP{Zo+_9P; z{&yS2s;dX}^C!eb#n?~$`;Rs&DWoBoz6oJP{0;LWlbqASd<{#PP432oliAgzgb_z8 zgF%7d>7KGCo6Q#rKo1QD2d*z5S4^$MR}te}2CzYMOa>dHAj! z@+GaF@mJdsFGnX*|Y3ucU9%sVb5N(2%rLDrHby}>h4O}aDlmeF$%IuXm*?^XyD)bRL5 z*xxMsH6H~5m72xM+j1$&=Y1JACNZ5(8^j?+TjG_fBPhi^cfcPtSNfeoGw-*~9w~Vi zs%PEOT-r6!yd&riJbNOSoj_Vf!WL-u00*_9_|$C2RRXi{?LGuQK8*MFF$iMOx)9g0 zpgje!+>C<~FCAXhbcvX%E4M1x&cus6->wNSGsc^Z&1O0}w9<5lIdig}djlF6kZX6p z+$f7LCs;;g>ke{tH@<9T4`W1-K4RKg?7y~L*)k{QJ^0tcB~kx%*Q zD70jCxjd1>epN5T&Z{V$hRl-Ak#}uoP!L>g@}PLNj1?#>AF8RMTBt}eDWR;3lVD#f z(gZN{YVNN|pWKg%M#K>al<{q#y=25$kmmg~)tjXkW z4|}mj%+p8dKzv8Wyg2P6($ki?#A~kShUJTm|0Gq_! zLKv0fSA=1osevJi?(q2dCc9sYb56U@5ibeYh9w#Ss(hmiss>PNXX=pxkJlfpAkG2p zj5y6Ir-u)N4#4wr&Wm-@zmZpdG?VtbeJNM@KHP`9YWK>byQ9uE) zhr+3OO~37Gs&%gErm7XV?Q3R6FBz^~k)*~fGg0^74$0#W_n)5^rOi_!_U|fi{9DS9 z43MP}<--HZzH>fE&%vD}q(gaS(n#fzWP?CJ*{dMemM$2j!oD^|Vx`KHYcoqbizsNF zfC zD5=OQ(j^8AQI>SVFNz8~txSao&ZLd{Gy*?f%G6-N3L0`|C^V5%E_DQe2$_LobHx%` z2#OG-|3E4lP*qF|G6He&4XLkMxUuD<($x(k8<7JUXJy$GsUzVoh8!WOlxLSaTEM0O zQQe?42yAO6EOhr6`u(112z(jHNn5%Kb*F>9P_rbsz=$NGs)xwup4mAu>kz(s$7EYKtMUhm*q1ciVQeuF8 zoPn%^N~r&fR2g_G;FAa!j-c~Si5T)C+FPlbNIfV3q)aI!K1vZxP=GNQsEHywB!N&q z3d9&<&4#&$2|Olj<3b_0<*bcM zA_duRCU+8zn2fRgmrN}Un4pisPxHPfV=EDxv8O6JdJc&y`Or&KQ|2w1DWbE~6#W}; zQY1=C|8}x*?GGk9St=>+$#1{B_|^80zBFmYt2c61gzP4*n8(V~4qxUT227ZFyqztX zdLlv-5Jt*;K5<6EIQ^X{u2@gSx`in$_KpFDz8jr~GLYwhie4YLXC`fO<}n^?oJvX2 zZFP^6J6Q?6>T(}$RM$~6`RPZ$b$ww0LYHca)|@gmxnzJ%=V!3i!3F3)k)7ESpcjYc zZ&y{Z_~1w1n>R#NQxqXrP;zkcv}S?4E9a@H^Fc1D((Pp=qmBIxw23-?v%X!=mDI3o z74mXXFK=0HXky*Tr4}*>u!bb22_RUH^V8MUKyC* z8{L%9myBXx=RSHJEM#+c!5SF>I<|w7d_k<;nL-4c0GkOm*b#H|Vl)DSv4e2qFd@W9 zcMo^B`I64S(@OpAMsZ%1>Vv)0>kn-gkTgeE9#uVBN1xZTja@}QZrX5 zx`J@*BvEnND`YdbHL;HJ1xUzxAS(Lwq^9oVtJy+{{L}oQi6UA-nNRhZyvo) zltv8#gC96SzTo6C!Ba=-Ek8)1MEfu@Mm(}ng!mz4GPjVU(qdEyQl3fa-N(HkpNVW@ zx`!tqU2_FyyN~N(UNyEKfe0)n7-hg68h^2+grvP(ps2^7akcuGsS?v`m-!av;-a@+ zoTo(0xVCFIv~~+=Vxz1!E;m30jdJjqZ}M+hmq{l7%C^B9&DXY|@cqwHy_8hc6j8oJ z`j2EH2b|TZ1zK$rzP4l zFCbcj`f6&Bqhfs~sli!liUWv6Nu0*c14EKcxr=@mY>x-zDn)w~xqNGZ&V@NB>y;d8;=8$A~X4gt-sDA(tKk zNX50H;<8;B7N#|WN~@Ao?z$z^j88V8Kxkv2tbQ@4~ch-B2-EXvA%^_D~2{0s3`Y8al$zHW#yw#|F@m_p&88oNP%h<**(u8E{x zZY(r+Nsv5$WaTrmBr-xA(Ri1x(k@+aO{{xHA*|oI$Mw!C%8^&zxpRr~7Yzu;E}Oxu{_f^vc?jAGm33`a%o@>mGaCVHJJcX`x5b z7toYeV!e_eUoGy=xN{QAvB!8D@e#O!)nBorg+byi10SQ(!drSMU4DPyMw@7vmCsgT zronipg`#4-OfMy!tUpw%RG~2^-r3=STSH^@SeV_Ye^a~@|Ha&W4_i^AS=|sYUx&Nd z+5@LcaPV1Ze8kDI3`)KMh~g{Q{+^L5$wG)x_ziRW3yneK7R<0Lv79%|+y?7RXhPe$ z!?Y;gRZC5HHk?Fem&%9sAW4EMjBlLtuNCX2>=YL6dMoO*awqm-=et^~$%RN%qKHa1 zFC5vfViS@IJd%_QYr6b;qoB#g++>2u??h*VgE1x_f@GSYi%`a_D=m{ukia7u3>$$7 zgcl+9!;ry*FX>j*l?XbetdvoK)6Z9zizzDfv-FQhQPb;aRtHPoFi| z)|v|}FD<9g?yN8MUB;_+r*0wK1QEM95Yhb-n_06p1C4)Ve9Ys%HB|}GrtL|m-Z0?R z>zb9TVioENiiMEua2j=kXmY_6O}CKlWvZku0+o)=Yx7CWQn$#u}+#k~a z&MgBsfRxD?#1~^V3eZPEp)tSi+Ac94vuj!81Q&JsAqrfPQiT!aqeD-n)L}&yWr2G4 z3?wO{G-WS`XdKYS4n{O2q%_=Kwj!M#gx@1d&5i*BSr%R7?Lwges~!(b3GuxGN>(d~<+-MwLB=XT!-uslp*2-7s0(M#(Wsi6*`7u#G6_8* zwUlWVL?J6@9CAHE?+;PV8cs)tI!5*w)l=1`C`=*)S=h`SF|wAGDtY#?iKyKv)f8C+ zs zxKfpr9MvikNy7jxU~h$A&fk>1f-jMBLB3nESBBzyA7;T zAj8?|m+k>uTzv8FB0hz!=c|q3M}NMMe$8FjU9i1e4#NO_$KHBglAk>mq+i__?+t73 zTklR9di0W=Vdke^x}%KA(!=B!_e@NA`j@I_Q}5bEx6OZjcBZF-~VDoWbPN zWzkTY=-;Na=7cbUdl=LMLpD`8-7Z;Z6LL(dH(XK33lw)NlNs*Uv7W}g@K7#6UO6*9g(SDTtj7~T+J&(8_h+CjvO955+d9=Aq(_- zZ4<>m_@U*yc;Rlu&wbk#1W!U6O9O>=zAd}78G$vNEDBp)Q)q*uOq<;eWJBXTn#u_=Vc!b}K{qmDcoD#lP9w zxu13NNme#id5Km=t6TsDQjNdRWN++%KLdubSRCz6c)W!o7L ztHxE#QD>~q>_u=yh*-%VaCF?a>H4qpU_-i{~k2}yy^9FN}yIEu3 zaa-S;drOj3c?vZeMzLdPHkRt&yKsbpZr9bY=LP#mkbFTm03~yF2Ym?Piq#IBYvD>! zLNDx|YtZ*Iu7f{&7x<2U3DX7OIYav~G^37rZuqaY{>3T`A)n9-50>jwbw z{39YSTGqA4i@1^Bi{H#Dy7H;7MV|c)2r)G0GIi5{9M1@Q+Cy7*(^ZClwn{#7>-9$rGY zk3`*eQ>@PoE7K9|dlP*^l$vJb+N6e!|I>(wxP2#p-Z0kY%Ts8XAI%Q+j5kS~%>3iu zhML5}96G{5+0+i-O*R{oXheoSz_q<6N)I2oxPZR(=$55-(JiZ#vgrRw^J!alv)SI> zbTsZ~RdBq_0L_1h>h0N#mt>59l6XOqY|AsuWJ05pB z5jycR-bTt8pNgL`9%sD!d!#&i#!ct=>+v&Q$$jP4@9^IiKVuKMHyH;njyptESiCvz z7$hz9<01j3h>#9tTI&XvjQd56T#@(`lAhrx<{z_O92j7qSa^`V##J^bkbKWnn%LUq zbqj1@q#l?-bFY_eB_(D^>P}xp6`jvxHy9Zh-&kX*#sdg{;?7lM=6EVyYGUi&%QTsC zo^R6!#=;d!z>H-FuXlG9Df#)mA6D?Gm^UVoZnk?s5l4WdELqs}T zEm+w5j*Hbv6gp78IVGXFY?LdN#gw1PL@4#;v9}}Xagpa{SZ&vh(uIV zCiWb8AmCi203bq>%j5PJ%>AIBKJ=D1L|@v_RIgkvi^AFaX5Jh5KlDkbQbqsjYe{>I zrL+G^a}2WQ@-#0^zvu1I9~^?KP-Iz;=A(m;Wr831ogfG`@=n&0;j!a8^3ClRUfMWg zf8Jz#lk9Z=YRotP!u=&^ias>E<6n#U<}U7UM|^YhxxbA0<{!A zA{63#4Tw9s7s}_b`aRSIU*j8yOCJRHjM2rGED(rfw#3qLvCg0yG%gp!H6zDON+iRm z;2Zh8_)F~cOX|H#sDz{FQ_kuQ(4Pl^`f2>%CkT595!};CBl`rp$=^|#%+{kasb^h9 z_FR*a552hL`^{BZsf%KFCf#*^l4OtLhG;L1&dceIRV!y&1si$0`qlRI8~0{RCGTZP z9?7S4Z!+M)M8NhxlRtzf`{2!0(2R@5QZ5lxG3zuL^DrzVt0F1E9YH?Qp*X{avB+Zm z8nYw5z+Oz5$A58?Pvr)oJ%c9KP)U?l-R$PW?`(!m+SVG_phDV}#ky9qBx@NPc2;zx z(^UhmJWB04c@#;O@`}})K$RHnZZToSw?!{3Y%9tjD;X)2n&1|eq7YY4RU_4%J?%VD zj0$giZcn9n&{D!V*d7gDLq21j>b=={|%$BTKR)y z6w*QkD_ZKo-EA_O)prOL#2<0HVW9TYvu5N6BIVcRBOZ4 zBK_2H{C5t*c=u(xPWjR+JX%H(g&--{-jQ#}l!2B{jZ#6HoS(Z8Q5)`U-%C*dvv3~AyZV&5UuwT|0nh_Akd2lD6+*>H_ z=NWw|OIbrp;g*_CNY%|%ekz7)n&I<%ndos^zVcSF(7zba>S_w+0K|JH*o#rqI&YxX z+tLlIA~W>MmrznTvt=!}p%va_9D6=nxzFbu%VTk59^=@txmOL2U3fMr9AO+=d)Iu9 zxxd2}w<4qwi&Ti+`7@k9H}@KJ*&h?$iT6K9N(RA1Y&y{8A_jf9v9rkM6-G;aUWv3W zci9c=!?wN}Pr!)}dZ)cXH!`ocTV-x!-rC|Z*&7E&s+_}dcvP0E8vBRg^Sf$fh0ucC zQJ9}^3D$M#=H~)Dfw;(Tg=_yEF1`VV8DnsLFq{FGM`^UDrAPMLY%R6tjJPdl!KLkA zaG84!xI88J@OHcwn@3nP@E0AzCoo*}`8(%@aK;W{+x!H)g!v}K`fRDGfv*M8jm-o> zthU1On8n@W@is+v7*AnK20sSZaK0CH%k@kGBSAD4C?S^$mf5#r_T$ z9@e>}rl1R(l5h#;wV57R%HTf;S=*8Z|4-)POv$eiLK-1%6X5&WOM4*5ulBXK!@7b} z94yu7v4$Mb0tiN%*cw&^o0M7MyL?3w$S*O%-_BdeJ5-yJaFv`b0Vt0DB0~+lMgk=AXQLT?R_MQwLU3i}X2k;d7$Y*^^F9~lEn`(0P9$Rx; z-I}3Yw+h0Q2}`q_TisrBR;$7{qPwJU)6E@iFop6YF8bey@Ww6d09`L%heC(s+RB%HaDqMx(^$dO8FM+{KGx-Ev{*wi=rl9&J*>P?OAfVQcYTRk z_{(#bZjJ*_A>Xb_#v9-P1V;A_@zo}iXQUlRP`Vp%Mxr$kO~OAOs|&h8@O{JT!lr`7 z-yMal)$rZor2|3}YFmZ|F49;q+60Xby{8S?DfRoejY93U+imuCZo0y1_3yZ_6H|tj z=}cQ}lGL+d8>+N|>n z7>LiYjAgjuNUcADdB|aPS|w9&n^|=Dhl9RQqwvBqv*hu1U|TI%T@Noya7Zy62o5ht zEk>!3RU9F|)@2oXELFkjU5Nc8@9iUeBq24ApIS)Ga#HBZvC+VCVs%hyJ;n&iJL%+O zgs0Hqvy_cfuIP*8CN?io>^$-LNv|8SFyzBttZ<*mb}_IQ%W-Nm;;q6kkC#r1hrX;Z zrl%*b^Yju=@0&X*PGkSA6ZQs`!PS$yzRslRV!a1qWEVP^WeUg zd*-k3%#bvPa857Ie8$Mv{~@0!v-5k+BY1w)9MVfNp0dj^dJp4Qln&nr3{zm$gb)xu z5C6mc@SOBA=@pKne{X`^`y$voAqd|g_4Fak*{_oxtUq{Q{UsWG!TMuy zpzkDoxUVt#gY^jytbJ&kk3J9H0PWur9K1g?j6&8Arv-eA9G!a|{o%m%d4xG30D3R< z1?!JffzgHC^ZsCcG9OrfG=NUHvNWKB17*0-uU;0&anK(D=fj*9gcryri~}oZ$3l~M z9d?-r=&S!#$XDoLVXN@6_)+m*@fq>2QeOHwwql1&-U2T1@ z&2F2rectvvd%)glkJ=A9svYllwmaYLe8IKb^`d*+{gSA>ttouaWp}J@AeK735quy6PUZ1JIzhOng!G`A>6OH== z*1%xkkHO1>2b=6oH#GgWd3*EGmXVg-EicMf$`7_yw_elwaO)Fou8u^<%8vCNU+Wz2 zJl=J%>rnT)?rTCq=;NV7p+AJ4?YXh%K+hw~$CuxaGonJhw}vC(!SIgooe@VQ82MWt z>3cOwqRwbzv@;ryu8MAq$+6y8GIm~UYivjCs@U$>zSx0y7uMa?@zMD9xDvlQ{&fEZ z{g?Ku{gwXf`}ZfziNlF+CLT^ak@!{OPl*#NJ~Ln%@ZcDL&_H5f@4)v5y9TdIHY7We z(d4S+hUB*7mC2dp@vfhthFg<24C;R0v1%KiwQ4T}C zMP&mP$yy2*%sgH~nvwyVFxK`NFy2MzmkihjUVgxUon$5bsR6slk73oQm*XZ|gkKr3 zkK8UY-U})(`+YK1De$s>ii=}RG+-NXN_QKu zlQc^Y8nBBf(o+WPCS9gA2J9nSO*ym{z5opR=&(*79oFfi!#aI*Sf`H;>-5oKojy9O z(?^GO`slDuA05`|qr*CV){!EaA$#DJMkP}uM>HZsJ^^-wwzo_s@I)pXktPRC2N~MJ z8d9e5y||Mo=yw@^W2Ay~dE_r6m4Y*NWyBP4RghLj4i+opZF&pYhU;eBmGP%PU5{&l z!)cVUxU>vUtD-KJf~A+SQ?ME3jNvx~EjXFus{#KMBprQZmj6Xa7OAtqu88`lm<+^d zV;*H>flnW5TEHQ~OPNL-;q6PK&8$rP^PY|4r`LfYO+}eu1aw`#gM#V`Okln)hZ79K(1z5Bkm`4~sA0 zz0r=pbx5J$UgO*)Q;Ep(SY;xwmUGIaTq#T{C0WZU^7<{?o1LAFWXst|u{70}L5+DOtM%o136Y#OohKJ+ z={;kWtVTwaNwqRf#Jw2appd0BX$fZZ=7Mx`;M&C}i(hH$ExQ$*+-$BRec6tfDlwL+Jr#t8s z^h%m0hskYZAHM6pi*MLJllMVm=0oIj->uL_SPDMQ$WNAip7h zgFe@n$t&b#@+$cPxr;nPenjrZ{FlMb*d%!r|JB7Uum0o2k&!jVo zS=pV*r>Ct~SBl_*iM+i~nVw){VX9!BEavm+l4V9IVK{2G^faJyx-jYBiOXtXDzDgP z(j}$9MxvcVd={{#%bHSB%R8l+e5Gv46sM=t=G>l{oKi5O47E6ED(BPXoU~Ud6~$sf z5w+Q(Nz0WKMamW{B`K@!QpB>l+f-I|DFu_lrWUE778I0~FBWWNWm@Hs#D>2~xw?|h zTc$WCm(UcYtYIt*Y3)DZ0>=cOv^3Tx+XUt>j;hm$QL(OJ5i?xA~ataOFdC{CnH zc7Dfevh$iWH9x6XDg`wf9X!uoE@m~Im@FzDjm7L)b*fTQCP7kLI;$dCJeo8fo~K_E SgT~c}PYg-tR!T(-)qet1;j};i literal 0 HcmV?d00001 diff --git a/web/0.3.4/rdapi/i/2709984325_f5554afd53_o2.jpeg b/web/0.3.4/rdapi/i/2709984325_f5554afd53_o2.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..0037d76edf844be878698d6c20fcdca0cd908d55 GIT binary patch literal 292066 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
+ + + +
+
+ +
+
+ +

Notes

+ +

JSON is used for all API responses. + The request arguments are normally form-urlencoded + arguments (Content-Type: application/x-www-form-urlencoded; charset=UTF-8), except + for APIs that only accept a request body. In those cases, the request body should be JSON, + and the Content-Type for the request should be application/json; charset=UTF-8. Note that UTF-8 + should be used as the charset.

+ +
+

Notes: Standard Response

+

The success version of the Standard Response is used by a few APIs for success responses. Other APIs use + a specific success object that relates to the API. See the specific API call for more information.

+ +

The error version of the Standard Response is used by all APIs to indicate error responses.

+ +

A success response will be an object with the following properties (only used by some APIs):

+
    +
  • ids (array): Any IDs affected by the API call. May be empty
  • +
  • result (boolean): Value of true
  • +
  • error (object): null
  • +
+ +

An error response will be an object with the following properties (this is the error response + returned from all APIs):

+
    +
  • ids (array): Any IDs affected by the API call. May be empty
  • +
  • result (object): null if the API call has an error
  • +
  • error (object): An object with the following properties: +
      +
    • name (string): an error type name
    • +
    • message (string): An English description of the error
    • +
    +
  • +
+
+ + + +
+
+
+
+

Use a "Try It" link to try an API in this area.

+
+ +
+

+ + + +
+

Request Parameters

+ + +
+
+
+

Request Body

+ +
+ + +
+
+ +
+

{^doc}

+ + {is(routes.length) [} +
+

URL

+
    + {routes [} +
  • {}
  • + {]} +
+
+ {]} + + {and(urlargs, urlargs.length) [} +
+

URL Arguments

+
    + {urlargs[} +
  • {name} ({type}): {doc}
  • + {]} +
+
+ {]} + + {and(queryargs, queryargs.length) [} +
+

Parameters

+
    + {queryargs[} +
  • {name} ({type}): {doc}
  • + {]} +
+
+ {]} + + {is(body) [} +
+ {body [} +

Request Body ({type})

+

{doc}

+ {]} + + {examplebody [} + Example: +
{prettyJson(_)}
+ {]} +
+ {]} + + {response [} +
+

Response ({type})

+

{^addApiHyperlinks(doc)}

+
+ {]} +
+ +
+ {section} + {methods [} + {name} + {]} +
+ +
+

{section}

+

{^doc}

+ {methods [} +
+ Try It! +

{section}: {name}

+ {^content} +
+ {]} +
+ +
+ {#jsonBranch} +
+ + + + diff --git a/web/0.3.4/rdapi/scripts/index.js b/web/0.3.4/rdapi/scripts/index.js new file mode 100644 index 0000000..1b75807 --- /dev/null +++ b/web/0.3.4/rdapi/scripts/index.js @@ -0,0 +1,504 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ +'use strict'; +/*jslint plusplus: false, regexp: false */ +/*global require: false, define: false, location: true, setTimeout: false, + alert: false, window: false, document: false */ + +define([ 'jquery', 'rdapi', 'blade/object', 'blade/jig'], +function ($, rdapi, object, jig) { + + var docs, urlSection, toc = [], + urlParamRegExp = /\{([^\}]+)\}/g, + fragLinkRegExp = /#StandardResponse|#Attachment|#Message|#Conversation/g, + apiLinks = { + '#StandardResponse': 'Standard Response', + '#Attachment': 'Attachment', + '#Message': 'Message', + '#Conversation': 'Conversation' + }; + + //Add a pretty JSON method for use in templates + jig.addFn({ + prettyJson: function (text) { + return JSON.stringify(JSON.parse(text), null, " "); + }, + addApiHyperlinks: function (text) { + var output = '', startIndex = 0, match; + fragLinkRegExp.lastIndex = 0; + while ((match = fragLinkRegExp.exec(text))) { + match = match[0]; + output += jig.htmlEscape(text.substring(startIndex, fragLinkRegExp.lastIndex - match.length)); + output += '' + apiLinks[match] + ''; + startIndex = fragLinkRegExp.lastIndex; + } + if (startIndex < text.length - 1) { + output += jig.htmlEscape(text.substring(startIndex, text.length)); + } + return output; + }, + getType: function (it) { + if (require.isArray(it)) { + return 'array'; + } else if (typeof it === "object" && it !== undefined && it !== null) { + return 'object'; + } else { + return 'other'; + } + }, + formatSimpleType: function (it) { + if (it === null) { + return 'null'; + } else if (it === 0) { + return '0'; + } else if (it === undefined) { + return 'undefined'; + } else if (it === true) { + return 'true'; + } else if (it === false) { + return 'false'; + } else { + return it; + } + } + }); + + //Array sorting method for method entries. Separated as a distinct + //function to make JSLint happy. + function methodSort(a, b) { + return a.name > b.name ? 1 : -1; + } + + function hashUpdated() { + //Hmm, an overflow div does not jump if the hash is changed, as in + //a back/forward button press, so force it. + var hash = location.href.split('#')[1] || '', + listingNode = $('#listing')[0], + targetNode; + + if (hash) { + targetNode = $('[name="' + hash + '"]')[0]; + if (!targetNode) { + if (hash.indexOf('%') !== -1) { + //Try unescaping the URL. + hash = decodeURIComponent(hash); + targetNode = $('[name="' + hash + '"]')[0]; + } else { + //Try escaping it + hash = encodeURIComponent(hash); + targetNode = $('[name="' + hash + '"]')[0]; + } + } + } + + setTimeout(function () { + if (targetNode) { + listingNode.scrollTop = listingNode.scrollTop + targetNode.getBoundingClientRect().top; + } else { + listingNode.scrollTop = 0; + } + }, 15); + } + + function updateApiUrl(form, url) { + var apiUrl = form.find('.apiUrl'), + parameterUrl = form.find('.parameterUrl'), + match, urlParam, urlParams = '', urlParamObj; + + //Show the API URL + apiUrl.html(url).removeClass('hidden'); + parameterUrl.addClass('hidden'); + + //If the URL has arguments in its path, show options for it. + if (url.indexOf('{') !== -1) { + //Put in the parameterized URL and attach the source + //URL as a property on the DOM node for better perf + parameterUrl + .removeClass('hidden') + .find('.editApiUrl') + .remove() + .end() + .prepend('')[0] + .apiUrl = url; + + //Hide the normal h2 title + apiUrl.addClass('hidden'); + + //Parse out the fields in play + urlParamRegExp.lastIndex = 0; + while ((match = urlParamRegExp.exec(url))) { + urlParam = match[1]; + urlParamObj = form[0].raindropApiMethod.urlargs && form[0].raindropApiMethod.urlargs[urlParam]; + + urlParams += '' + urlParam + ''; + + if (urlParamObj && urlParamObj.allowed) { + urlParams += ''; + } else { + urlParams += ''; + } + + urlParams += ''; + } + form.find('.urlParams').html(urlParams); + } + } + + //delegated event handler that handles changes to URL arg fields, both input text ones, + //and select elements. + function changeApiUrl(evt) { + //Handle key ups for modifying URL parameters + //Only do an update on a timed delay, so that + //the DOM is not beaten up for each key stroke. + if (!urlSection) { + urlSection = $(evt.target).parents('.parameterUrl'); + setTimeout(function () { + var apiUrl = urlSection[0].apiUrl; + + urlSection.find('.urlParam, .urlParamSelect').each(function (i, node) { + var value = node.value.trim(); + if (value) { + apiUrl = apiUrl.replace('{' + node.name + '}', value); + } + }); + + //Update the final URL + urlSection.find('.editApiUrl').val(apiUrl); + + urlSection = null; + }, 200); + } + } + + function getCsrfToken() { + var token = /csrf=([^\; ]+)/.exec(document.cookie); + return token && token[1] ? token[1] : null; + } + + rdapi('docs', { + success: function (json) { + var prop, methodName, apiSection, methods, method, tocItem, obj, + i, route, parts, urlParam; + + docs = json; + + //TOC is by API section and method name, build it up, + //as well as the content that goes for each section. + for (prop in docs) { + if (docs.hasOwnProperty(prop)) { + apiSection = docs[prop]; + methods = apiSection.methods; + + //Create the TOC item for this API section. + tocItem = { + section: prop, + doc: apiSection.doc.replace(//g, ''), + value: apiSection, + methods: [] + }; + + //Create a method section in the TOC as well as the content + //that shows up in the main document section. + for (methodName in methods) { + if (methods.hasOwnProperty(methodName)) { + method = methods[methodName]; + + //Create quick lookups for urlargs parameters + if (method.urlargs) { + method.urlargs.forEach(function (arg) { + method.urlargs[arg.name] = arg; + }); + } + + //Make sure the API routes are prefixed with /api + if (method.routes) { + for (i = 0; (route = method.routes[i]); i++) { + //For any URL methods, if only one valid value, + //then just fix it to that value. Thinking mostly + //of contacts API where @{user} is normally just @me + parts = route.split('/'); + parts.forEach(function (part, j) { + urlParamRegExp.lastIndex = 0; + parts[j] = part.replace(urlParamRegExp, function (match, p1) { + if (method.urlargs) { + urlParam = method.urlargs[p1]; + if (urlParam && urlParam.allowed && urlParam.allowed.length === 1) { + return urlParam.allowed[0]; + } + } + return match; + }); + }); + route = parts.join('/'); + + if (route.indexOf('/api') !== 0) { + method.routes[i] = '/api' + route; + } + } + } + + obj = object.create(method, [{ + name: methodName, + link: encodeURIComponent(prop) + ":" + encodeURIComponent(methodName) + }]); + + //Generate the HTML content for this section. + obj.content = jig(jig.cache('methodContent'), obj, {}).replace(//g, ''); + + tocItem.methods.push(obj); + //Store a shortcut to reference the method by name. + tocItem.methods[methodName] = obj; + } + } + + //Sort the methods + tocItem.methods.sort(methodSort); + + //Store a shortcut to reference the section by name. + toc[prop] = tocItem; + toc.push(tocItem); + } + } + + //Sort the toc contents + toc.sort(function (a, b) { + return a.section > b.section ? 1 : -1; + }); + + //Wait for page load to fill in the page content + $(function () { + var tocHtml = '', + html = '', + apiCallNode = $('.apiCall')[0], + play = $('#play'); + + //Remove the apiCall node from the DOM, since just used for clone operations. + apiCallNode.parentNode.removeChild(apiCallNode); + + toc.forEach(function (tocItem) { + //Create TOC entry + tocHtml += jig(jig.cache('sectionToc'), tocItem, {}); + + //Create content entry + html += jig(jig.cache('sectionContent'), tocItem, {}); + }); + + $("#toc").append(tocHtml); + $("#content").append(html); + + //Add the name attributes to static sections here instead of the HTML + //to avoid a weird box sizing issue in Firefox. + ['Notes', 'Conversation', 'Message', 'Attachment'].forEach(function (name) { + document.getElementById(name + 'Title').setAttribute('name', name); + }); + + //If have a location hash, then navigate to it now, since the links for + //all TOC values have been inserted. + hashUpdated(); + window.addEventListener('hashchange', hashUpdated, false); + + $('body') + //Handle the Try links + .delegate('.try', 'click', function (evt) { + evt.preventDefault(); + + //Get the API container + var form = $(apiCallNode.cloneNode(true)).appendTo('#play'), + params = '', + linkParts = evt.target.href.split("#")[1].split(':'), + method = toc[linkParts[1]].methods[decodeURIComponent(linkParts[2])], + routes = method.routes, + apiUrl = routes && routes[0] || '', + routeChoices = ''; + + //Put the API data structure on the form, for ease of referencing later. + form[0].raindropApiMethod = method; + + //If more than one route, give a choice + if (routes && routes.length > 1) { + routes.forEach(function (route) { + routeChoices += ''; + }); + + form.find('.apiUrlExpand') + .removeClass('hidden') + .append(routeChoices); + } + + updateApiUrl(form, apiUrl); + + //Request options + if (!method.queryargs || !method.queryargs.length) { + form.find('.request').addClass('hidden'); + } else { + method.queryargs.forEach(function (arg) { + params += '' + arg.name + ''; + + if (arg.allowed) { + params += ''; + } else { + params += ''; + } + + params += ''; + }); + form.find('.requestParams').html(params); + } + + //Request Body + if (!method.body) { + form.find('.body').addClass('hidden'); + } else { + if (method.examplebody) { + form.find('.requestBody').val(method.examplebody); + } + } + //Make sure the new form is visible. + play[0].scrollTop = play[0].scrollHeight; + + }) + .delegate('.apiUrlExpand', 'change', function (evt) { + //Update the API URL choice. + var item = $(evt.target), + url = item.val(), + form = item.parents('form').first(); + + if (url) { + updateApiUrl(form, url); + } + }) + .delegate('.urlParam', 'keyup', changeApiUrl) + .delegate('.urlParamSelect', 'change', changeApiUrl) + //Handle play form submissions. + .delegate('.apiCall', 'submit', function (evt) { + var form = $(evt.target), + method = form[0].raindropApiMethod, + inputs = form.find('.requestParams input, .requestParams select'), + url = form.find('.apiUrl').html(), + editableUrl = form.find('.editApiUrl'), + requestBody = form.find('.requestBody').val().trim(), + data = {}, + options, csrfToken; + + evt.preventDefault(); + + //If there was a parameterized URL, favor that + if (!form.find('.parameterUrl').hasClass('hidden') && editableUrl.length) { + url = editableUrl.val().trim(); + if (url.indexOf('{') !== -1) { + alert('Please edit URL parameters to make a valid URL'); + return; + } + } + + //Put together the request attributes. + inputs.each(function (i, node) { + var value = $(node).val(); + if (value) { + data[node.name] = value; + } + }); + + //If a request body, then favor that for the data + if (method.body && requestBody) { + if (inputs.length) { + //Already have some data, need to clear + //it out, add it to the URL as query args + //to the URL. This is actually a bit goofy, + //should just have all query args or all + //body args. prefs/set is one API that goes here. + url += (url.indexOf('?') === -1 ? '?' : '&') + + $.param(data); + } + + data = requestBody; + } + + + options = { + type: 'POST', + url: url, + data: data, + processData: !method.body, + contentType: (method.body ? + 'application/json; charset=UTF-8' : + 'application/x-www-form-urlencoded; charset=UTF-8'), + success: function (data, textStatus, xhr) { + form.find('.output').html(jig.render(jig.cache('jsonResult'), data)); + }, + error: function (xhr, textStatus, errorThrown) { + form.find('.output').html(jig.render(jig.cache('jsonResult'), { + ERROR: xhr.responseText + })); + } + }; + + csrfToken = getCsrfToken(); + if (csrfToken) { + options.beforeSend = function (xhr) { + xhr.setRequestHeader('X-CSRF', csrfToken); + }; + } + + //Construct the data call. + $.ajax(options); + }) + //Handle close action for an API Call form + .delegate('form .apiCallClose', 'click', function (evt) { + evt.preventDefault(); + $(evt.target).parents('form').remove(); + }) + //Handle expanding and closing of sections in the JSON response + //for API calls + .delegate('.expander', 'click', function (evt) { + var button = $(evt.target), + listNode = button.next('ul,ol')[0]; + if (button.hasClass('closed')) { + listNode.style.display = ''; + button.removeClass('closed'); + button.html('▼'); + } else { + listNode.style.display = 'none'; + button.addClass('closed'); + button.html('►'); + } + return false; + }); + }); + }, + error: function (xhr, textStatus, errorThrown) { + $('#content').html(jig.htmlEscape(xhr.responseText)); + } + }); +}); diff --git a/web/0.3.4/robots.txt b/web/0.3.4/robots.txt new file mode 100644 index 0000000..c4aabe3 --- /dev/null +++ b/web/0.3.4/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: /api diff --git a/web/0.3.4/scripts/AutoComplete.js b/web/0.3.4/scripts/AutoComplete.js new file mode 100644 index 0000000..6e04c81 --- /dev/null +++ b/web/0.3.4/scripts/AutoComplete.js @@ -0,0 +1,241 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +/*jslint plusplus: false, indent: 2 */ +/*global require: false, define: false, window: false, setTimeout: false */ +"use strict"; + +define([ 'jquery', 'blade/object', 'blade/fn', 'module', 'dispatch', + 'text!AutoCompleteRefresh.html'], +function ($, object, fn, module, dispatch, + refreshHtml) { + + function split(val) { + return val.split(/,\s*/); + } + + function extractLast(term) { + return split(term).pop(); + } + + return object(null, null, { + className: module.id.replace('/', '-'), + + refreshShowing: false, + askRefresh: true, + + init: function (node, contactService) { + this.dom = $(node); + this.attachedWidget = false; + this.acOptions = []; + + // Listen for changes to the contacts. + contactService.notify(fn.bind(this, this.attachAutoComplete)); + + this.contactService = contactService; + + dispatch.sub('optionsChanged', fn.bind(this, function (data) { + // allow refetching contacts when a new page is shared. + this.askRefresh = true; + })); + }, + + /** + * Updates the formatted autocomplete options and binds the + * autocomplete widget, but only on the first call. + */ + attachAutoComplete: function (contactService, contactList) { + contactList = contactList || []; + this.acOptions = []; + + // Update the acOptions with formatted contact values. + contactList.forEach(fn.bind(this, function (contact) { + this.acOptions.push(contactService.formatContact(contact)); + })); + + if (!this.attachedWidget) { + + this.attachedWidget = true; + + // jQuery UI autocomplete setup from the jQuery UI demo page + this.dom + // don't navigate away from the field on tab when selecting an item, + // or when tabbing to the refresh contacts button. + .bind("keydown", fn.bind(this, function (event) { + if (event.keyCode === $.ui.keyCode.ENTER) { + // Do not submit the form on enter in the autocomplete field. + event.preventDefault(); + } else if (event.keyCode === $.ui.keyCode.TAB) { + if (this.dom.data("autocomplete").menu.active) { + //autocomplete is up. + event.preventDefault(); + this.dom.autocomplete().select(); + } else if (this.open) { + // select the first item in the autocomplete. + var item = this.dom.autocomplete('widget').find('li'); + this.dom.data("autocomplete").menu.active = item; + + this.dom.autocomplete().select(); + event.preventDefault(); + } + + // close out the refresh UI immediately so user can see the + // rest of the input form. + if (this.refreshShowing) { + this.hideRefresh(); + } + } else if (event.keyCode === $.ui.keyCode.DOWN && this.refreshShowing) { + // refresh contacts showing so focus on the refresh button. + event.preventDefault(); + this.focusingOnRefresh = true; + this.refreshDom.find('button').focus(); + } else if (event.keyCode === $.ui.keyCode.ESCAPE && this.refreshShowing) { + this.askRefresh = false; + this.hideRefresh(); + } + })) + .bind('blur', fn.bind(this, function (event) { + // be sure to close down the refresh UI if open, but do it + // on a timeout to allow button clicks in the UI. A bit hacky + // since it is a timing related thing. + if (this.refreshShowing && !this.focusingOnRefresh) { + setTimeout(fn.bind(this, function () { + this.hideRefresh(); + this.focusingOnRefresh = false; + }), 500); + } + })) + .autocomplete({ + minLength: 0, + source: fn.bind(this, function (request, response) { + // delegate back to autocomplete, but extract the last term + this.filtered = $.ui.autocomplete.filter(this.acOptions, extractLast(request.term)); + + // give the user the option to refresh the contacts + // if no matches. + if (!this.filtered.length && this.askRefresh) { + setTimeout(fn.bind(this, this.showRefresh), 0); + } else if (this.refreshShowing) { + this.hideRefresh(); + } + + response(this.filtered); + }), + focus: function () { + // prevent value inserted on focus + return false; + }, + select: function (event, ui) { + var terms = split(this.value); + // remove the current input + terms.pop(); + // add the selected item + terms.push(ui.item.value); + // add placeholder to get the comma-and-space at the end + terms.push(""); + this.value = terms.join(", "); + return false; + }, + open: fn.bind(this, function (event, ui) { + // Set the width of the autocomplete once shown. + if (!this.relatedWidth) { + this.determineRelatedWidth(); + } + this.open = true; + this.dom.autocomplete('widget').width(this.relatedWidth); + }), + close: fn.bind(this, function (event, ui) { + this.open = false; + }) + }); + } + + // account for a previous search waiting on a refresh. + if (this.waitingSearch) { + this.dom.autocomplete('search', this.waitingSearch); + this.dom.focus(); + delete this.waitingSearch; + this.hideSpinner(); + } + }, + + determineRelatedWidth: function () { + // Make sure to set the size of the autocomplete to not be bigger + // than the input area it is bound to. + var widthNode = this.dom[0]; + while (widthNode && (this.relatedWidth = widthNode.getBoundingClientRect().width) <= 0) { + widthNode = widthNode.parentNode; + } + }, + + hideRefresh: function () { + this.refreshDom.hide(); + }, + + /** + * Shows UI to allow refreshing the contacts list. + */ + showRefresh: function () { + if (!this.relatedWidth) { + this.determineRelatedWidth(); + } + + if (!this.refreshDom) { + this.refreshDom = $(refreshHtml) + .css({ + width: this.relatedWidth + 'px' + }) + .insertAfter(this.dom[0]) + .find('button') + .bind('click', fn.bind(this, function (evt) { + evt.preventDefault(); + this.waitingSearch = this.dom.val().trim(); + this.showSpinner(); + this.askRefresh = false; + this.contactService.fetch(); + this.hideRefresh(); + })) + .bind('blur', fn.bind(this, function (evt) { + this.hideRefresh(); + })) + .end(); + } + + this.refreshDom.show(); + + this.refreshShowing = true; + }, + + hideSpinner: function () { + this.spinnerDom.hide(); + }, + + showSpinner: function () { + if (!this.spinnerDom) { + this.spinnerDom = $('
') + .appendTo(this.dom[0].parentNode); + } + this.spinnerDom.show(); + } + }); +}); diff --git a/web/0.3.4/scripts/AutoCompleteRefresh.html b/web/0.3.4/scripts/AutoCompleteRefresh.html new file mode 100644 index 0000000..e493381 --- /dev/null +++ b/web/0.3.4/scripts/AutoCompleteRefresh.html @@ -0,0 +1 @@ +
No matches.
\ No newline at end of file diff --git a/web/0.3.4/scripts/Contacts.js b/web/0.3.4/scripts/Contacts.js new file mode 100644 index 0000000..3b77cbd --- /dev/null +++ b/web/0.3.4/scripts/Contacts.js @@ -0,0 +1,243 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +/*jslint plusplus: false, indent: 2 */ +/*global require: false, define: false, window: false */ +"use strict"; + +define([ 'jquery', 'blade/object', 'blade/fn', 'dispatch', 'rdapi', 'accounts'], +function ($, object, fn, dispatch, rdapi, accounts) { + + var Contacts; + + Contacts = object(null, null, { + init: function (svc, svcAccount) { + this.svc = svc; + this.svcAccount = svcAccount; + + this.callbacks = []; + this.lastUpdated = this.fromStore().lastUpdated; + // Time check is one day. + this.timeCheck = 24 * 60 * 60 * 1000; + + // listen for changes in the options, and if a greater than a day, + // refresh the contacts. + this.optionsChangeSub = dispatch.sub('optionsChanged', fn.bind(this, function (options) { + if (this.needFetch()) { + this.fetch(); + } + })); + }, + + /** + * Destroys this instance, not necessarily the data. For that, use + * clear(). + * Used as an opportunity to unbind event listeners. + */ + destroy: function () { + dispatch.unsub('optionsChanged', this.optionsChangeSub); + }, + + clear: function () { + var acct = this.svcAccount; + accounts.setData(acct.domain, acct.userid, acct.username, 'contacts'); + }, + + needFetch: function () { + return !this.lastUpdated || (new Date()).getTime() - this.lastUpdated > this.timeCheck; + }, + + /** + * Retrieves stored contacts. Should only be used internally or by subclasses. + */ + fromStore: function () { + var acct = this.svcAccount; + return accounts.getData(acct.domain, acct.userid, acct.username, 'contacts') || {}; + }, + + /** + * Saves contacts to storage. Should only be used internally or by + * subclasses. + * + * @param {Object} data an object with a "list" property which is this + * list of contacts to store. + */ + toStore: function (data) { + var acct = this.svcAccount; + + if (!data.lastUpdated) { + data.lastUpdated = this.lastUpdated; + } + + accounts.setData(acct.domain, acct.userid, acct.username, 'contacts', data); + + this.notifyCallbacks(); + + return data; + }, + + /** + * Includes any new names from a successful share into the autocomplete. + * By default, it does nothing, but subclasses may do something with it. + * @param {String} contactsText a comma-separated string of contacts that + * follow the format returned from findContact(). + */ + incorporate: function (contactsText) { + }, + + /** + * Notify about changes to the autocomplete list. Can be async, so callback is needed. + * @param {Function} callback called when contacts are available. + * It will receive an array of contacts. + */ + notify: function (callback) { + this.callbacks.push(callback); + this.contacts = this.fromStore().list; + + if (!this.contacts || this.needFetch()) { + this.fetch(); + } else { + this.notifyCallbacks(); + } + }, + + fetch: function () { + var acct = this.svcAccount, + svcData = accounts.getService(acct.domain, acct.userid, acct.username); + + rdapi('contacts/' + acct.domain, { + type: 'POST', + data: { + username: acct.username, + userid: acct.userid, + startindex: 0, + maxresults: 500, + account: JSON.stringify(svcData) + }, + //Only wait for 10 seconds, then give up. + timeout: 10000, + success: fn.bind(this, function (json) { + //Transform data to a form usable by the front end. + if (json && !json.error) { + var entries = json.result.entry; + + this.contacts = this.getFormattedContacts(entries); + this.lastUpdated = (new Date()).getTime(); + + this.toStore({ + list: this.contacts + }); + } + }), + error: fn.bind(this, function (xhr, textStatus, errorThrown) { + // does not matter what the error is, just eat it and hide + // the UI showing a wait. + this.notifyCallbacks(); + }) + }); + }, + + notifyCallbacks: function () { + this.callbacks.forEach(fn.bind(this, function (callback) { + callback(this, this.contacts); + })); + }, + + findContact: function (to) { + var contactId = to; + + (this.contacts || []).some(function (contact) { + if (contact.displayName === to) { + contactId = contact.email || contact.userid || contact.username; + return true; + } + return false; + }); + + return contactId; + }, + + /** + * Translates contact data from server into a format used on the client. + * @param {Array} entries + * @returns {Array} + */ + getFormattedContacts: function (entries) { + var data = []; + entries.forEach(function (entry) { + if (entry.accounts && entry.accounts.length) { + entry.accounts.forEach(function (account) { + data.push({ + displayName: entry.displayName, + email: '', + userid: account.userid, + username: account.username + }); + }); + } + }); + return data; + }, + + /** + * Converts a string that was created by formatContact to real IDs + * understood by the back-end API calls. + * + * @param {String} toText a comma-separated list of contacts. + * @returns {String} a comma-separated list of ID-based contacts. + */ + convert: function (toText) { + var newrecip = [], + result = '', + recip; + + if (this.contacts) { + recip = toText.split(','); + recip.forEach(fn.bind(this, function (to) { + var contactId = this.findContact(to.trim()); + if (contactId) { + newrecip.push(contactId); + } + })); + } + + if (newrecip.length > 0) { + result = newrecip.join(', '); + } + + return result; + }, + + /** + * Formats the contact for display, such as for use in an autocomplete. + * Overridden by Contact overlays. + */ + formatContact: function (contact) { + return contact.displayName; + } + }); + + Contacts.modelVersion = '3'; + + return Contacts; +}); diff --git a/web/0.3.4/scripts/ContactsEmail.js b/web/0.3.4/scripts/ContactsEmail.js new file mode 100644 index 0000000..ef558fd --- /dev/null +++ b/web/0.3.4/scripts/ContactsEmail.js @@ -0,0 +1,133 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +/*jslint indent: 2, regexp: false */ +/*global define: false */ +"use strict"; + +define([ 'blade/object', 'Contacts', 'jquery', 'accounts', 'blade/fn'], +function (object, Contacts, $, accounts, fn) { + + var bracketRegExp = /<([^>])+>/; + + /** + * Overrides the formatting of contacts and converting + * one of those formatted contacts into a user ID. + */ + return object(Contacts, null, function (parent) { + return { + formatContact: function (contact) { + var value = contact.displayName; + if (contact.email !== value) { + value += ' <' + contact.email + '>'; + } + + return value; + }, + + findContact: function (to) { + return to; + }, + + /** + * Determines if a to string is already in the contacts array. + * @param {String} to a plain email address (no name). + * @returns {Boolean} + */ + contains: function (to) { + return this.contacts.some(function (contact) { + return contact.email === to; + }); + }, + + incorporate: function (contactsText) { + var acct = this.svcAccount, + newContacts = [], + storedContacts, + contacts = contactsText.split(','); + + contacts.forEach(fn.bind(this, function (contact) { + contact = contact.trim(); + + var match = bracketRegExp.exec(contact); + + contact = (match && match[1]) || contact; + + if (!this.contains(contact)) { + newContacts.push({ + displayName: contact, + email: contact + }); + } + })); + + if (newContacts.length) { + // update storage of manually entered contacts. + storedContacts = accounts.getData(acct.domain, + acct.userid, + acct.username, + 'enteredContacts') || []; + + storedContacts = storedContacts.concat(newContacts); + accounts.setData(acct.domain, acct.userid, acct.username, + 'enteredContacts', storedContacts); + + // update the master merged list of contacts. + this.contacts = this.contacts.concat(newContacts); + this.toStore({ + list: this.contacts + }); + } + }, + + getFormattedContacts: function (entries) { + var data = [], + acct = this.svcAccount, + storedContacts = accounts.getData(acct.domain, + acct.userid, + acct.username, + 'enteredContacts'); + + // convert server data to the right format. + entries.forEach(function (entry) { + if (entry.emails && entry.emails.length) { + entry.emails.forEach(function (email) { + var displayName = entry.displayName ? entry.displayName : email.value; + data.push({ + displayName: displayName, + email: email.value + }); + }); + } + }); + + // add in any manually saved email addresses. + if (storedContacts) { + data = data.concat(storedContacts); + } + + return data; + } + }; + }); +}); diff --git a/web/0.3.4/scripts/ContactsTwitter.js b/web/0.3.4/scripts/ContactsTwitter.js new file mode 100644 index 0000000..a23a591 --- /dev/null +++ b/web/0.3.4/scripts/ContactsTwitter.js @@ -0,0 +1,61 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +/*jslint indent: 2 */ +/*global define: false */ +"use strict"; + +define([ 'blade/object', 'Contacts', 'jquery'], +function (object, Contacts, $) { + var idRegExp = /\@(\S+)/; + + /** + * Overrides the formatting of contacts and converting + * one of those formatted contacts into a user ID. + */ + return object(Contacts, null, function (parent) { + return { + formatContact: function (contact) { + var value = '@' + contact.username; + return value; + }, + + findContact: function (to) { + var match = idRegExp.exec(to), + value = '', + name = (match && match[1]) || to; + if (name) { + (this.contacts || []).some(function (contact) { + if (contact.username === name) { + value = contact.userid; + return true; + } + return false; + }); + } + + return value; + } + }; + }); +}); diff --git a/web/0.3.4/scripts/Select.css b/web/0.3.4/scripts/Select.css new file mode 100644 index 0000000..e834e31 --- /dev/null +++ b/web/0.3.4/scripts/Select.css @@ -0,0 +1,83 @@ +@charset "UTF-8"; + +/* TODO: some of these styles, like text sizing/box sizing and colors/borders + need to be set in the app that includes a Select widget. */ +.Select { + position:relative; + display: inline-block; + overflow: hidden; + padding-right: 15px; + z-index: 100; + border: 1px solid #A6AFB6; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15) inset; + height: 24px; + cursor: pointer; + background-color: white; +} + +.Select.open { + overflow: visible; + padding-right: 0; + border: 0; +} + +.Select ul { + list-style: none; + z-index: 100; + background-color: white; +} + +.Select.open ul { + position: absolute; + border: 1px solid gray; +} + +.Select li { + display: none; + height: 0; + padding: 0 5px; + white-space: nowrap; +} + +.Select li.selected { + display: block; + height: 24px; + line-height: 24px; +} + +.Select.open li { + display: block; + height: 24px; + line-height: 24px; + padding-right: 20px; +} + +.Select.open li.selected { + /* background-color: grey; */ +} + +.Select.open li.selected:hover, +.Select.open li:hover { + color:white; + background-color: #535F6D; +} + +.Select .triangle { + position: absolute; + right: 0; + top: 0; + width: 18px; + height: 24px; + line-height: 24px; + padding: 0 2px; + z-index: 101; + color: #A6AFB6; + background-color: white; + background-image: url("/share/i/sprite.png"); + background-position: center -362px; + background-repeat: no-repeat; +} + +.Select.open .triangle { + display: none; +} diff --git a/web/0.3.4/scripts/Select.html b/web/0.3.4/scripts/Select.html new file mode 100644 index 0000000..f0cebfd --- /dev/null +++ b/web/0.3.4/scripts/Select.html @@ -0,0 +1,9 @@ +
+ +
    + {options [} +
  • {name}
  • + {]} +
+
+
diff --git a/web/0.3.4/scripts/Select.js b/web/0.3.4/scripts/Select.js new file mode 100644 index 0000000..4533704 --- /dev/null +++ b/web/0.3.4/scripts/Select.js @@ -0,0 +1,206 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +/*jslint indent: 2, */ +/*global define: false, document: false */ +"use strict"; + +define([ 'blade/object', 'blade/Widget', 'blade/array', 'jquery', 'module', + 'text!./Select.html', 'text!./Select.css'], +function (object, Widget, array, $, module, + template, css) { + + var className = module.id.replace(/\//g, '-'), + style = document.createElement('style'), + openSelect; + + //Add the css to that page. + style.type = 'text/css'; + //If class name is changed since this is an anonymous module, update the + //CSS classes. + if (className !== 'Select') { + css = css.replace(/\.Select/g, '.' + className); + } + style.textContent = css; + document.getElementsByTagName('head')[0].appendChild(style); + + //Set up event handlers. + $(function () { + $('body') + .delegate('.' + className + ' .triangle', 'click', function (evt) { + Widget.closest(module.id, evt, 'onTriangleClick'); + evt.preventDefault(); + evt.stopPropagation(); + }) + .delegate('.' + className + ' li', 'click', function (evt) { + Widget.closest(module.id, evt, 'onOptionClick'); + evt.preventDefault(); + evt.stopPropagation(); + }); + + $(document).bind('click', function (evt) { + if (openSelect) { + openSelect.close(); + } + }); + }); + + + /** + * Define the widget. + * This widget assumes its member variables include the following + * properties (passed in on create of the widget) + * + * @param {Array} options: the options to show, with each option being + * an object with "name" and "value" properties. + * @param {String} name: the name to use for the form field. + * @param {Number} selectedIndex: the index of the options that should + * be selected. + */ + return object(Widget, null, function (parent) { + return { + moduleId: module.id, + className: className, + + template: template, + + onCreate: function () { + if (this.value) { + var index, value = this.value; + // Find the matching index for the value. + this.options.some(function (item, i) { + if (item.value === value) { + index = i; + return true; + } + return false; + }); + this.selectedIndex = index; + } else { + // No default value, work it out via selectedIndex if available. + this.selectedIndex = this.selectedIndex || 0; + this.value = this.options[this.selectedIndex].value; + } + }, + + onRender: function () { + this.dom = $(this.node); + + //Apply selected style. + $('li', this.node).eq(this.selectedIndex).addClass('selected'); + }, + + destroy: function () { + delete this.dom; + parent(this, "destroy", arguments); + }, + + /** + * Selects an item based on its index. + */ + selectIndex: function (index) { + return this.val(this.options[index].value); + }, + + /** + * Get or set the value for the select. Uses the value for the option. + */ + val: function (newValue) { + if (newValue === undefined) { + // Get + return $('li.selected', this.node)[0].getAttribute('data-value'); + } else { + // Set the value. + var liNode, ulNode, index; + + // Find the li node that corresponds with the value. + array.to.apply(null, $('li', this.dom)).some(function (node, i) { + if (node.getAttribute('data-value') === newValue) { + liNode = node; + index = i; + } + return false; + }); + + this.selectedIndex = index; + + ulNode = liNode.parentNode; + + // Find the index. + this.selectedIndex = array.to.apply(null, $('li', ulNode)).indexOf(liNode); + + // Make sure the right node has the selected class + $('li', ulNode).removeClass('selected'); + $(liNode).addClass('selected'); + + this.close(); + + this.dom.trigger('change'); + + return newValue; + } + }, + + close: function () { + var liNode = $('li.selected', this.node)[0]; + + // Put the value in the hidden input + $('input', this.node).val(liNode.getAttribute('data-value')); + + // Remove the open class. + this.dom.removeClass('open'); + + // Remove the artificial width + this.node.style.width = ''; + }, + + open: function () { + if (openSelect) { + openSelect.close(); + } + + // Since the options will position absolute, give the Select + // width so that surrounding content does not collapse around it. + this.node.style.width = this.node.getBoundingClientRect().width + 'px'; + + this.dom.addClass('open'); + openSelect = this; + }, + + onTriangleClick: function (evt) { + this.open(); + }, + + onOptionClick: function (evt) { + // Open the options if not already open. + if (!this.dom.hasClass('open')) { + this.open(); + return; + } + + this.val(evt.target.getAttribute('data-value')); + } + }; + }); + +}); diff --git a/web/0.3.4/scripts/TextCounter.js b/web/0.3.4/scripts/TextCounter.js new file mode 100644 index 0000000..5ff3581 --- /dev/null +++ b/web/0.3.4/scripts/TextCounter.js @@ -0,0 +1,67 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +/*jslint plusplus: false */ +/*global require: false, define: false */ +"use strict"; + +define([ 'jquery', 'blade/object', 'blade/fn'], +function ($, object, fn) { + + return object(null, null, { + init: function (node, countNode, limit) { + this.dom = $(node); + this.domPlaceholderText = this.dom[0].getAttribute('placeholder') || ''; + this.countDom = $(countNode); + this.limit = limit; + this.dom.bind('keyup', fn.bind(this, 'checkCount')); + this.checkCount(); + }, + + checkCount: function () { + var value = this.dom[0].value, + count; + + if (value.trim() === this.domPlaceholderText) { + value = ''; + } + + count = this.limit - value.length; + if (count < 0) { + this.countDom.addClass("TextCountOver"); + } else { + this.countDom.removeClass("TextCountOver"); + } + this.countDom.text(count === this.limit ? '' : count); + }, + + updateLimit: function (limit) { + this.limit = limit; + this.checkCount(); + }, + + isOver: function () { + return this.dom[0].value.length > this.limit; + } + }); +}); diff --git a/web/0.3.4/scripts/accounts.js b/web/0.3.4/scripts/accounts.js new file mode 100644 index 0000000..525a5c9 --- /dev/null +++ b/web/0.3.4/scripts/accounts.js @@ -0,0 +1,404 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +/*jslint indent: 2, plusplus: false */ +/*global require: false, define: false, window: false, location: true, + localStorage: false, opener: false, setTimeout: false */ +'use strict'; + +define([ 'storage', 'dispatch', 'rdapi', 'services'], +function (storage, dispatch, rdapi, services) { + + function isCacheMatch(cache, domain, userid, username) { + return cache.domain === domain && + ((userid && cache.userid === userid) || + (username && cache.username === username)); + } + + function fromJson(value) { + if (value) { + value = JSON.parse(value); + } + return value; + } + + var store = storage(), impl, + changeTypes = { + //localStorage is the most robust, since the change in localStorage + //can be listened to across windows. + + 'localStorage': { + + accounts: function (ok, error) { + // accounts now simply provides existing accounts retreived during + // the oauth dances + var accountCache = fromJson(store.accountCache) || [], + serviceCache = fromJson(store.serviceCache); + + if (!serviceCache) { + // fetch now, let the response call ok + // Set up serviceCache. This should only ever happen + // if the local store is cleared (e.g. first run, cleared cookies) + impl.fetch(ok, error); + return; + } + + serviceCache = serviceCache || []; + + //Call ok callback with current knowledge. If there is a change in the + //account info, then the fetch will trigger changed event later. + if (ok) { + ok(accountCache, serviceCache); + } + }, + + update: function (account_data) { + // XXX TODO + // get the account and push it into localstore, don't overwrite, we + // get one account at a time here + // We write into accountCache to have account.fetch continue to work. + // We also write into serviceCache which will be used by api calls + // to send the auth keys + var accountCache = fromJson(store.accountCache) || [], + serviceCache = fromJson(store.serviceCache), + existing = false, + profile, p, a, acct; + + // move the profile into accountCache + profile = account_data.profile; + for (p = 0; p < accountCache.length; p++) { + acct = accountCache[p].accounts[0]; + if (isCacheMatch(acct, account_data.domain, account_data.userid, + account_data.username)) { + accountCache[p] = profile; + existing = true; + break; + } + } + if (!existing) { + accountCache.push(profile); + } + store.accountCache = JSON.stringify(accountCache); + + // we store the entire object in serviceCache, at some point in the + // future we will remove accountCache + if (serviceCache) { + existing = false; + for (a = 0; a < serviceCache.length; a++) { + if (isCacheMatch(serviceCache[a], account_data.domain, + account_data.userid, account_data.username)) { + serviceCache[a] = account_data; + existing = true; + break; + } + } + } else { + serviceCache = []; + } + if (!existing) { + serviceCache.push(account_data); + } + store.serviceCache = JSON.stringify(serviceCache); + impl.changed(); + }, + + // remove this once there is time enough for all users + // to have been migrated over to the new cache. + fetch: function (ok, error) { + rdapi('account/get/full', { + success: function (json) { + if (json.error) { + json = []; + } + + store.serviceCache = JSON.stringify(json); + var accountCache = [], svc, p; + for (p = 0; p < json.length; p++) { + accountCache.push(json[p].profile); + + // clear the contacts cache + // remove this clearCache call when 3.6 is removed. + svc = services.domains[json[p].domain]; + svc.clearCache(store); + } + store.accountCache = JSON.stringify(accountCache); + if (ok) { + ok(accountCache, json); + } + }, + error: error || function () {} + }); + }, + + remove: function (domain, userid, username) { + var accountCache = fromJson(store.accountCache), + serviceCache = fromJson(store.serviceCache), + i, cache, a, p, s, svc; + + if (serviceCache) { + for (i = 0; (cache = serviceCache[i]); i++) { + if (isCacheMatch(cache, domain, userid, username)) { + serviceCache.splice(i, 1); + break; + } + } + store.serviceCache = JSON.stringify(serviceCache); + } + + // eventually we will deprecate accountCache + if (accountCache) { + for (p = 0; p < accountCache.length; p++) { + s = accountCache[p].accounts; + for (a = 0; a < s.length; a++) { + if (isCacheMatch(s[a], domain, userid, username)) { + accountCache.splice(p, 1); + break; + } + } + } + store.accountCache = JSON.stringify(accountCache); + } + + // clear the contacts cache + svc = services.domains[domain]; + + // remove this clearCache call when 3.6 is removed. + svc.clearCache(store); + + // Delete auxillary data. + impl.clearData(domain, userid, username); + + impl.changed(); + }, + + /** + * Set auxillary data related to an account. Deleted when the account + * is deleted. + */ + setData: function (domain, userid, username, name, value) { + var key = [domain, userid, username].join('|') + 'Data', + data = fromJson(store[key]) || {}; + + if (value === undefined || value === null) { + delete data[name]; + } else { + data[name] = value; + } + + store[key] = JSON.stringify(data); + + return value; + }, + + /** + * Get auxillary data related to an account. + */ + getData: function (domain, userid, username, name) { + var key = [domain, userid, username].join('|') + 'Data', + data = fromJson(store[key]) || {}; + + return data ? data[name] : null; + }, + + /** + * Clears auxillary data related to an account. Deleted when the account + * is deleted. + */ + clearData: function (domain, userid, username) { + var key = [domain, userid, username].join('|') + 'Data'; + delete store[key]; + }, + + getService: function (domain, userid, username) { + var serviceCache = fromJson(store.serviceCache), + i, cache; + + if (serviceCache) { + for (i = 0; (cache = serviceCache[i]); i++) { + if (isCacheMatch(cache, domain, userid, username)) { + return cache; + } + } + } + return null; + }, + + changed: function () { + store.accountChanged = (new Date()).getTime(); + //Force the onchange events to occur. Sometimes the storage + //events do not fire? + if (opener && !opener.closed) { + dispatch.pub('accountsChanged', null, opener); + } + dispatch.pub('accountsChanged'); + }, + + onChange: function (action) { + //Listen to storage changes, and if a the accountChanged key + //changes, refresh. + var lastValue = store.accountChanged; + window.addEventListener('storage', function (evt) { + //Only refresh if the accounts were changed. + if (store.accountChanged !== lastValue) { + action(); + } + }, false); + //Also use direct notification in case storage events fail. + dispatch.sub('accountsChanged', action); + } + }, + //Some extensions mess with localStorage, so in that case, fall back to + //using dispatching. + 'memory': { + + accounts: function (ok, error) { + }, + + changed: function () { + //Use dispatching. Dispatch to current window, but also to an opener + //if available. + store.accountChanged = (new Date()).getTime(); + + if (opener) { + dispatch.pub('accountsChanged', null, opener); + } + dispatch.pub('accountsChanged'); + }, + + onChange: function (action) { + dispatch.sub('accountsChanged', action); + } + } + }; + + impl = changeTypes[storage.type]; + + /** + * Gets the accounts. Can use a cached value. + * @param {Function} ok function to receive the account info. + * @param {Function} error function to call if an error. + */ + function accounts(ok, error) { + return impl.accounts(ok, error); + } + + /** + * Updates the accounts from a json account object. + * @param {Object} cookie object to update from + */ + accounts.update = function (account_data) { + impl.update(account_data); + }; + + /** + * Remove an accounts from storage. + * @param {string} domain + * @param {string} userid + * @param {string} username + */ + accounts.remove = function (account, userid, username) { + impl.remove(account, userid, username); + }; + + /** + * Fetch accounts stored on server. + * DEPRECATED, interim use for auto-adding accounts that + * users have already configured + */ + accounts.fetch = function (ok, error) { + impl.fetch(ok, error); + }; + + /** + * Get a full service account record + * @param {string} domain + * @param {string} userid + * @param {string} username + */ + accounts.getService = function (account, userid, username) { + return impl.getService(account, userid, username); + }; + + /** + * Clears the account data. Use this when it is known that the server + * info is no longer valid/expired. + */ + accounts.clear = function () { + delete store.accountCache; + delete store.serviceCache; + }; + + /** + * Sets auxillary data associated with an account. + * @param {string} domain + * @param {string} userid + * @param {string} username + */ + accounts.setData = function (account, userid, username, name, value) { + return impl.setData(account, userid, username, name, value); + }; + + /** + * Gets auxillary data associated with an account. + * @param {string} domain + * @param {string} userid + * @param {string} username + */ + accounts.getData = function (account, userid, username, name) { + return impl.getData(account, userid, username, name); + }; + + /** + * Sets auxillary data associated with an account. + * @param {string} domain + * @param {string} userid + * @param {string} username + */ + accounts.clearData = function (account, userid, username) { + return impl.clearData(account, userid, username); + }; + + /** + * Called when the cache of accounts has changed. + */ + accounts.changed = function () { + return impl.changed(); + }; + + /** + * Default action is to just reload. + */ + function defaultAction() { + location.reload(); + } + + /** + * Called to set up the action when accounts change. + * Call it with no args to get the default behavior, page reload. + */ + accounts.onChange = function (action) { + return impl.onChange(action || defaultAction); + }; + + return accounts; +}); diff --git a/web/0.3.4/scripts/blade/Widget.js b/web/0.3.4/scripts/blade/Widget.js new file mode 100644 index 0000000..0b1bafe --- /dev/null +++ b/web/0.3.4/scripts/blade/Widget.js @@ -0,0 +1,147 @@ +/** + * @license blade/Widget Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + * Available via the MIT, GPL or new BSD license. + * see: http://github.com/jrburke/blade for details + */ +/*jslint plusplus: false, nomen: false */ +/*global define: false, document */ + +'use strict'; + +/** + * Parts of this taken from Dojo, in particular DOM work related to + * dojo._toDom() + */ + +define([ 'require', './object', './jig', 'module'], +function (require, object, jig, module) { + + var tempNode, + baseAttrName = 'data-' + module.id.replace(/\//g, '-') + '-' + + (Math.random() + '').replace(/\d\./, ''), + typeAttr = baseAttrName + '-wtype', + idAttr = baseAttrName + '-wid', + idCounter = 0, + registry = {}, + + Widget = object(null, null, { + template: null, + /** + * Creates a new instance. Should be called by any derived objects. + * data can have some special properties: + * parent: the parent node to + * + */ + init: function (data, relNode, position) { + object.mixin(this, data, true); + + //Start widget lifecycle + if (this.onCreate) { + this.onCreate(); + } + + if (this.template) { + this.node = this.render(); + if (this.onRender) { + this.onRender(relNode); + } + } + + if (relNode && this.node) { + if (position === 'before') { + relNode.parentNode.insertBefore(this.node, relNode); + } else if (position === 'after') { + relNode.parentNode.insertBefore(this.node, relNode.nextSibling); + } else if (position === 'prepend' && relNode.firstChild) { + relNode.insertBefore(this.node, relNode.firstChild); + } else { + relNode.appendChild(this.node); + } + } + }, + + render: function (relativeNode) { + var doc, child, renderedNode, id; + if (this.template) { + //Normalize template by trimming whitespace. + this.template = this.template.trim(); + + doc = relativeNode && relativeNode.ownerDocument || document; + id = 'id' + idCounter++; + + //Set up a temp node to hold template + if (!tempNode || tempNode.ownerDocument !== doc) { + tempNode = doc.createElement('div'); + } + + tempNode.innerHTML = this.templatize(); + + // one node shortcut => return the node itself + if (tempNode.childNodes.length === 1) { + renderedNode = tempNode.removeChild(tempNode.firstChild); + renderedNode.setAttribute(idAttr, id); + renderedNode.setAttribute(typeAttr, this.moduleId); + } else { + // return multiple nodes as a document fragment + renderedNode = doc.createDocumentFragment(); + while ((child = tempNode.firstChild)) { + renderedNode.appendChild(child); + if (child.nodeType === 1) { + child.setAttribute(idAttr, id); + child.setAttribute(typeAttr, this.moduleId); + } + } + } + + this._widgetId = id; + registry[id] = this; + } + + return renderedNode; + }, + + templatize: function () { + var text = this.template, + cache = jig.cache(text) || jig.cache(text, text, this.jigOptions); + + return jig.render(cache, this, this.jigOptions); + }, + + /** + * Destroys the widget. Derived objects should call this method + * after they do their destroy work. destroy is a nice time to + * clean up event handlers. + */ + destroy: function () { + if (this.node && this.node.parentNode) { + this.node.parentNode.removeChild(this.node); + } + delete this.node; + delete registry[this._widgetId]; + } + }); + + Widget.closest = function (widgetType, evt, funcName) { + var refNode = evt.target, + widget; + + //Walk up the list of nodes until a match with the type is found. + while (refNode) { + if (refNode.getAttribute(typeAttr) === widgetType) { + break; + } + refNode = refNode.parentNode; + } + + if (refNode) { + widget = registry[refNode.getAttribute(idAttr)]; + if (widget) { + widget[funcName](evt); + } + } + }; + + Widget.registry = registry; + + return Widget; +}); diff --git a/web/0.3.4/scripts/blade/array.js b/web/0.3.4/scripts/blade/array.js new file mode 100644 index 0000000..7ad85ee --- /dev/null +++ b/web/0.3.4/scripts/blade/array.js @@ -0,0 +1,38 @@ +/** + * @license blade/array Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + * Available via the MIT, GPL or new BSD license. + * see: http://github.com/jrburke/blade for details + */ +/*jslint nomen: false, plusplus: false */ +/*global define: false */ + +'use strict'; + +define([], function () { + var ostring = Object.prototype.toString, + ap = Array.prototype, + aps = ap.slice, + + array = { + /** + * Determines if the input a function. + * @param {Object} it whatever you want to test to see if it is a function. + * @returns Boolean + */ + is: function (it) { + return ostring.call(it) === "[object Array]"; + }, + + /** + * Converts an array-like thing into a real array + * @param{ArrayLike} arrayLike something that looks like an array, + * has a length and can access members via indices. + * @returns {Array} + */ + to: function (arrayLike) { + return [].concat(aps.call(arguments, 0)); + } + }; + + return array; +}); diff --git a/web/0.3.4/scripts/blade/defer.js b/web/0.3.4/scripts/blade/defer.js new file mode 100644 index 0000000..656c5ad --- /dev/null +++ b/web/0.3.4/scripts/blade/defer.js @@ -0,0 +1,96 @@ +/** + * @license blade/defer Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + * Available via the MIT, GPL or new BSD license. + * see: http://github.com/jrburke/blade for details + */ +/*jslint nomen: false, plusplus: false */ +/*global define: false */ + +'use strict'; + +define(['./fn', './dispatch'], function (fn, bladeDispatch) { + + /** + * Creates an object representing a deferred action. + * @param {Function} [onCancel] optional function to call if the deferred + * action is canceled + * @param {Array} otherEventNames an array of event names to also allow + * sending and notifying on this type of deferred action. This allows you + * to express more complex interactions besides something that just indicates + * "ok", "error" or "cancel". + * @returns {Object} object representing the deferred action. It contains + * two properties: + * send: a function to send events. It takes a string name for the event, + * "ok", "error" or "cancel", and a value. + * listener: an object that only exposes an "ok", "error" and "cancel" + * functions that allow listening to those respective events. If otherEventNames + * specified other events, then there are listener registration functions + * for those event names too. + */ + function defer(onCancel, otherEventNames) { + var dfd = {}, + sentName, i, evtName, + dispatch = bladeDispatch.make(), + makeCb = function (name) { + return function (obj, f) { + var cb = fn.bind(obj, f); + dispatch.onAfter(name, function (evt) { + return cb(evt.returnValue); + }, true); + return dfd.listener; + }; + }; + + //Set up the cancellation action if desired. + if (onCancel) { + dispatch.onAfter('cancel', function (evt) { + return onCancel(); + }); + } + + dfd.send = function (name, value) { + //Do not allow sending more than one message for the deferred. + if (sentName) { + throw new Error('blade/defer object already sent event: ' + sentName); + } + sentName = name; + + dispatch.send({ + name: name, + args: [value], + persist: true + }); + + //If no error handlers on this deferred, be sure to at least + //log it to allow some sort of debugging. + if (name === 'error' && + (!dispatch._dispatchAfterQ || ! dispatch._dispatchAfterQ.error) && + defer.onErrorDefault) { + defer.onErrorDefault(value); + } + + return dfd; + }; + + dfd.listener = { + ok: makeCb('ok'), + error: makeCb('error'), + cancel: makeCb('cancel') + }; + + //Allow wiring up other event names + if (otherEventNames) { + for (i = 0; (evtName = otherEventNames[i]); i++) { + dfd.listener[evtName] = makeCb[evtName]; + } + } + + return dfd; + } + + defer.onErrorDefault = function (err) { + throw err; + }; + + return defer; +}); diff --git a/web/0.3.4/scripts/blade/dispatch.js b/web/0.3.4/scripts/blade/dispatch.js new file mode 100644 index 0000000..28fb586 --- /dev/null +++ b/web/0.3.4/scripts/blade/dispatch.js @@ -0,0 +1,227 @@ +/** + * @license blade/dispatch Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + * Available via the MIT, GPL or new BSD license. + * see: http://github.com/jrburke/blade for details + */ +/*jslint nomen: false, plusplus: false */ +/*global define: false */ + +'use strict'; + +define(['./object', './fn'], function (object, fn) { + var emptyFunc = function () {}, + mainDispatch, + slice = Array.prototype.slice, + + needBind = function (f) { + return f !== undefined && (typeof f === 'string' || fn.is(f)); + }, + + register = function (type) { + return function (name, obj, f) { + //Adjust args to allow for a bind call + if (needBind(f)) { + f = fn.bind(obj, f); + } else { + f = obj; + } + + var qName = type, + typeQ = this[qName] || (this[qName] = {}), + q = typeQ[name] || (typeQ[name] = []), index; + + index = q.push(f) - 1; + q.count = q.count ? q.count + 1 : 1; + + //Return an unregister function to allow removing + //a listener. Notice that it can make the q array sparsely + //populated. This should be a sparsely populated array + //to allow a callback to unregister itself without affecting + //other callbacks in the array. + return function () { + q[index] = null; + q.count -= 1; + if (q.count === 0) { + delete typeQ[name]; + } + + //Clean up closure references for good measure/avoid leaks. + qName = typeQ = q = null; + }; + }; + }, + + onAfter = register('_dispatchAfterQ'), + + /** + * Defines the dispatch object. You can call its methods for a general + * publish/subscribe mechanism, or mixin its prototype properties + * to another object to give that object dispatch capabilities. + */ + dispatch = { + on: register('_dispatchBeforeQ'), + onAfter: function (name, obj, f, wantValue) { + var doBind = needBind(f), result, value, callback, evt; + //Adjust args if needing a bind + if (doBind) { + callback = f = fn.bind(obj, f); + } else { + wantValue = f; + callback = obj; + } + + result = doBind ? onAfter.call(this, name, f, wantValue) : onAfter.call(this, name, obj, f); + if (wantValue) { + //value is the property on the object, unless it is something + //that should be immutable or does not exist, then only get a value from _dispatchPersisted + value = name in this ? this[name] : + (this._dispatchPersisted && name in this._dispatchPersisted ? this._dispatchPersisted[name] : undefined); + evt = { + preventDefault: emptyFunc, + stopPropagation: emptyFunc, + returnValue: value + }; + + if (value !== undefined) { + callback(evt); + } + } + return result; + }, + + /** + * Sends an event. An event can have its values modified by "before" + * listeners before the default action happens. A "before" listener + * can also prevent the default action from occurring. "after" listeners + * only get to be notified of the return value from the event. + * + * @param {Object||String} message the message can either be an object + * with the following properties: + * @param {String} message.name the name of the message + * @param {Array} message.args the array of arguments for the message + * @param {Boolean}message.persist the result of the send should be + * remembered, so that any subsequent listeners that listen after + * the result is rememberd can opt to get the last good value. + * @param {Function} [message.defaultAction] a default action to take + * if any of the "before" listeners do not call preventDefault() + * on the event object they receive. + * + * If message is a string, then that is like the "name" property mentioned + * above, and any additional function arguments are treated as the + * args array. + * + * If defaultAction is not passed, then the default action will be to + * either set the property value on this object that matches the name + * to the first arg value, or if the name maps to function property + * on the object, it will call that function with the args. + * + * @returns {Object} the returnValue from any + */ + send: function (message) { + if (typeof message === 'string') { + //Normalize message to object arg form. + message = { + name: message, + args: slice.call(arguments, 1) + }; + } + + var name = message.name, + beforeQ = this._dispatchBeforeQ && this._dispatchBeforeQ[name], + afterQ = this._dispatchAfterQ && this._dispatchAfterQ[name], + preventDefault = false, stopImmediatePropagation, + evt = { + preventDefault: function () { + preventDefault = true; + }, + stopImmediatePropagation: function () { + stopImmediatePropagation = true; + }, + args: message.args + }, + i, result, value, args, isFunc, persisted; + + //Trigger before listeners + if (beforeQ) { + for (i = 0; i < beforeQ.length; i++) { + //array can be sparse because of unregister functions + if (beforeQ[i]) { + beforeQ[i](evt); + if (stopImmediatePropagation) { + break; + } + } + } + } + + //If a before handler prevents the default action, exit + //early, using any return value found in the event that may + //have been set by a before handler. + if (preventDefault) { + return evt.returnValue; + } + + //Do the default action. + if (message.defaultAction) { + result = message.defaultAction.apply(this, evt.args); + } else { + //Only bother if the property already exists on the object, + //otherwise it is a catch all or just an event router + args = evt.args; + if (name in this) { + isFunc = fn.is(this[name]); + value = this[name]; + + if (args && args.length) { + //A set operation + result = isFunc ? value.apply(this, args) : this[name] = args[0]; + } else { + //A get operation + result = isFunc ? this[name]() : value; + } + } else if (this._dispatchCatchAll) { + //Allow the catch all to get it. + result = this._dispatchCatchAll(name, args); + } else { + result = args && args[0]; + } + } + + //Trigger mutable after listeners first, before the immutable ones + //to allow the mutable ones to modify the result. + if (afterQ) { + stopImmediatePropagation = false; + evt.returnValue = result; + for (i = 0; i < afterQ.length; i++) { + //array can be sparse because of unregister functions + if (afterQ[i]) { + afterQ[i](evt); + if (stopImmediatePropagation) { + break; + } + } + } + result = evt.returnValue; + } + + //Hold on to the result if need be. Useful for the deferred/promise + //cases where listeners can be added after the deferred completes. + if (message.persist) { + persisted = this._dispatchPersisted || (this._dispatchPersisted = {}); + persisted[message.name] = result; + } + + return result; + } + }; + + //Create a top level dispatch that can be used for "global" event routing, + //and which can make new dispatch objects that have all the methods above, + //but without the instance variables. + mainDispatch = object.create(dispatch); + mainDispatch.make = function () { + return object.create(dispatch); + }; + + return mainDispatch; +}); diff --git a/web/0.3.4/scripts/blade/fn.js b/web/0.3.4/scripts/blade/fn.js new file mode 100644 index 0000000..a5272c5 --- /dev/null +++ b/web/0.3.4/scripts/blade/fn.js @@ -0,0 +1,58 @@ +/** + * @license blade/func Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + * Available via the MIT, GPL or new BSD license. + * see: http://github.com/jrburke/blade for details + */ +/*jslint nomen: false, plusplus: false */ +/*global define: false */ + +'use strict'; + +define([], function () { + var slice = Array.prototype.slice, + ostring = Object.prototype.toString, + + fn = { + /** + * Determines if the input a function. + * @param {Object} it whatever you want to test to see if it is a function. + * @returns Boolean + */ + is: function (it) { + return ostring.call(it) === '[object Function]'; + }, + + /** + * Different from Function.prototype.bind in ES5 -- + * it has the "this" argument listed first. This is generally + * more readable, since the "this" object is visible before + * the function body, reducing chances for error by missing it. + * If only obj has a real value then obj will be returned, + * allowing this method to be called even if you are not aware + * of the format of the obj and f types. + * It also allows the function to be a string name, in which case, + * obj[f] is used to find the function. + * @param {Object||Function} obj the "this" object, or a function. + * @param {Function||String} f the function of function name that + * should be called with obj set as the "this" value. + * @returns {Function} + */ + bind: function (obj, f) { + //Do not bother if + if (!f) { + return obj; + } + + //Make sure we have a function + if (typeof f === 'string') { + f = obj[f]; + } + var args = slice.call(arguments, 2); + return function () { + return f.apply(obj, args.concat(slice.call(arguments, 0))); + }; + } + }; + + return fn; +}); diff --git a/web/0.3.4/scripts/blade/jig.js b/web/0.3.4/scripts/blade/jig.js new file mode 100644 index 0000000..90515a5 --- /dev/null +++ b/web/0.3.4/scripts/blade/jig.js @@ -0,0 +1,858 @@ +/** + * @license blade/jig Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + * Available via the MIT, GPL or new BSD license. + * see: http://github.com/jrburke/blade for details + */ +/*jslint nomen: false, plusplus: false */ +/*global define: false, document: false, console: false, jQuery: false */ + +'use strict'; + +define(['require', './object'], function (require, object) { + + //Fix unit test: something is wrong with it, says it passes, but + //with attachData change, the string is actually different now. + //TODO: for attachData, only generate a new ID when the data value changes, + //and similarly, only attach the data one time per data value. + + //If have browser tries to fetch + //{foo} if that is in markup. Doing a <{/}img, then FF browser treats that + //as <{/}img. Using b; + }, + gte: function (a, b) { + return a >= b; + }, + lt: function (a, b) { + return a < b; + }, + lte: function (a, b) { + return a <= b; + }, + or: function (a, b) { + return a || b; + }, + and: function (a, b) { + return a && b; + }, + is: function (a) { + return !!a; + }, + eachProp: function (obj) { + //Converts object properties into an array + //of objects that have 'prop' and 'value' properties. + var prop, ret = []; + for (prop in obj) { + if (obj.hasOwnProperty(prop)) { + ret.push({ + prop: prop, + value: obj[prop] + }); + } + } + + //Sort the names to be roughly alphabetic + return ret.sort(function (a, b) { + return a.prop > b.prop ? 1 : -1; + }); + } + }, + attachData = false, + dataIdCounter = 1, + controlIdCounter = 1, + dataRegistry = {}, + tempNode = typeof document !== 'undefined' && document.createElement ? + document.createElement('div') : null, + templateClassRegExp = /(\s*)(template)(\s*)/; + + function isArray(it) { + return ostring.call(it) === '[object Array]'; + } + + /** + * Gets a property from a context object. Allows for an alternative topContext + * object that can be used for the first part property lookup if it is not + * found in context first. + * @param {Array} parts the list of nested properties to look up on a context. + * @param {Object} context the context to start the property lookup + * @param {Object} [topContext] an object to use as an alternate context + * for the very first part property to look up if it is not found in context. + * @returns {Object} + */ + function getProp(parts, context, topContext) { + var obj = context, i, p; + for (i = 0; obj && (p = parts[i]); i++) { + obj = (typeof obj === 'object' && p in obj ? obj[p] : (topContext && i === 0 && p in topContext ? topContext[p] : undefined)); + } + return obj; // mixed + } + + function strToInt(value) { + return value ? parseInt(value, 10) : 0; + } + + function getObject(name, data, options) { + var brackRegExp = /\[([\w0-9\.'":]+)\]/, + part = name, + parent = data, + isTop = true, + match, pre, prop, obj, startIndex, endIndex, indices, result, + parenStart, parenEnd, func, funcName, arg, args, i, firstChar; + + //If asking for the default arg it means giving back the current data. + if (name === defaultArg) { + return data; + } + + //If name is just an integer, just return it. + if (wordRegExp.test(name)) { + return strToInt(name); + } + + //An empty string is just returned. + if (name === '') { + return ''; + } + + //If the name looks like a string, just return that. + firstChar = name.charAt(0); + if (firstChar === "'" || firstChar === "'") { + return name.substring(1, name.length - 1); + } + + //First check for function call. Function must be globally visible. + if ((parenStart = name.indexOf('(')) !== -1) { + parenEnd = name.lastIndexOf(')'); + funcName = name.substring(0, parenStart); + func = options.fn[funcName]; + if (!func) { + jig.error('Cannot find function named: ' + funcName + ' for ' + name); + return ''; + } + arg = name.substring(parenStart + 1, parenEnd); + if (arg.indexOf(',') !== -1) { + args = arg.split(','); + for (i = args.length - 1; i >= 0; i--) { + args[i] = getObject(args[i], data, options); + } + result = func.apply(null, args); + } else { + result = func(getObject(arg, data, options)); + } + if (parenEnd < name.length - 1) { + //More data properties after the function call, fetch them + //If the part after the paren is a dot, then skip over that part + if (name.charAt(parenEnd + 1) === '.') { + parenEnd += 1; + } + return getObject(name.substring(parenEnd + 1, name.length), result, options); + } else { + return result; + } + } + + //Now handle regular object references, which could have [] notation. + while ((match = brackRegExp.exec(part))) { + prop = match[1].replace(/['"]/g, ''); + pre = part.substring(0, match.index); + + part = part.substring(match.index + match[0].length, part.length); + if (part.indexOf('.') === 0) { + part = part.substring(1, part.length); + } + + obj = getProp(pre.split('.'), parent, isTop ? options.context : null); + isTop = false; + + if (!obj && prop) { + jig.error('blade/jig: No property "' + prop + '" on ' + obj); + return ''; + } + + if (prop.indexOf(':') !== -1) { + //An array slice action + indices = prop.split(':'); + startIndex = strToInt(indices[0]); + endIndex = strToInt(indices[1]); + + if (!endIndex) { + obj = obj.slice(startIndex); + } else { + obj = obj.slice(startIndex, endIndex); + } + } else { + if (options.strict && !(prop in obj)) { + jig.error('blade/jig: no property "' + prop + '"'); + } + obj = obj[prop]; + } + parent = obj; + } + + if (!part) { + result = parent; + } else { + result = getProp(part.split('.'), parent, isTop ? options.context : null); + } + + if (options.strict && result === undefined) { + jig.error('blade/jig: undefined value for property "' + name + '"'); + } + + return result; + } + + /** + * Gets a compiled template based on the template ID. Will look in the + * DOM for an element with that ID if a template is not found already in + * the compiled cache. + * @param {String} id the ID of the template/DOM node + * @param {Object} [options] + * + * @returns {Array} the compiled template. + */ + function compiledById(id, options) { + options = options || {}; + var compiled = jig.cache(id, options), node; + + //Did not find the text template. Maybe it is a DOM element. + if (compiled === undefined && typeof document !== 'undefined') { + node = document.getElementById(id); + if (node) { + jig.parse([node], options); + } + compiled = jig.cache(id, options); + } + if (compiled === undefined) { + throw new Error('blade/jig: no template or node with ID: ' + id); + } + return compiled; + } + + commands = { + '_default_': { + doc: 'Property reference', + action: function (args, data, options, children, render) { + var value = args[0] ? getObject(args[0], data, options) : data, + comparison = args[1] ? getObject(args[1], data, options) : undefined, + i, text = ''; + + //If comparing to some other value, then the value is the data, + //and need to compute if the values compare. + if (args[1]) { + comparison = value === comparison; + value = data; + } else { + //Just use the value, so the value is used in the comparison. + comparison = value; + } + //Want to allow returning 0 for values, so this next check is + //a bit verbose. + if (comparison === false || comparison === null || + comparison === undefined || (isArray(comparison) && !comparison.length)) { + return ''; + } else if (children) { + if (isArray(value)) { + for (i = 0; i < value.length; i++) { + text += render(children, value[i], options); + } + } else { + //If the value is true or false, then just use parent data. + //for the child rendering. + if (typeof value === 'boolean') { + value = data; + } + text = render(children, value, options); + } + } else { + text = value; + } + return text; + } + }, + '!': { + doc: 'Not', + action: function (args, data, options, children, render) { + var value = getObject(args[0], data, options), + comparison = args[1] ? getObject(args[1], data, options) : undefined; + + //If comparing to some other value, then the value is the data, + //and need to compute if the values compare. + if (args[1]) { + comparison = value === comparison; + value = data; + } else { + //Just use the value, so the value is used in the comparison. + comparison = value; + } + + if (children && !comparison) { + return render(children, data, options); + } + return ''; + } + }, + '#': { + doc: 'Template reference', + action: function (args, data, options, children, render) { + var compiled = compiledById(args[0], options); + data = getObject(args.length > 1 ? args[1] : defaultArg, data, options); + return render(compiled, data, options); + } + }, + '.': { + doc: 'Variable declaration', + action: function (args, data, options, children, render) { + options.context[args[0]] = getObject(args[1], data, options); + //TODO: allow definining a variable then doing a block with + //that variable. + return ''; + } + }, + '>': { + doc: 'Else', + action: function (args, data, options, children, render) { + if (children) { + return render(children, data, options); + } + return ''; + } + } + }; + + jig = function (text, data, options) { + var id; + if (typeof text === 'string') { + if (text.charAt(0) === '#') { + //a lookup by template ID + id = text.substring(1, text.length); + text = compiledById(id, options); + } else { + text = jig.compile(text, options); + } + } + return jig.render(text, data, options); + }; + + jig.htmlEscape = function (text) { + return text.replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + }; + + function compile(text, options) { + var compiled = [], + start = 0, + useRawHtml = false, + controlId = 0, + segment, index, match, tag, command, args, lastArg, lastChar, + children, i, tempTag; + + while ((index = text.indexOf(options.startToken, start)) !== -1) { + //Output any string that is before the template tag start + if (index !== start) { + compiled.push(text.substring(start, index)); + } + + //Find the end of the token + segment = text.substring(index); + match = options.endRegExp.exec(segment); + if (!match) { + //Just a loose start thing could be a regular punctuation. + compiled.push(segment); + return compiled; + } else { + //Command Match! + + //Increment start past the match. + start = index + match[0].length; + + //Pull out the command + tag = text.substring(index + options.startToken.length, index + match[0].length - options.endToken.length).trim(); + + //decode in case the value was in an URL field, like an href or an img src attribute + tag = decode(tag); + + //if the command is commented out end block call, that messes with stuff, + //just throw to let the user know, otherwise browser can lock up. + if (badCommentRegExp.test(tag)) { + throw new Error('blade/jig: end block tags should not be commented: ' + tag); + } + + command = tag.charAt(0); + + if (command === ']' && controlId) { + //In a control block, previous block was a related control block, + //so parse it without the starting ] character. + tempTag = tag.substring(1).trim(); + if (tempTag === '[') { + command = '>'; + } else { + command = tempTag.charAt(0); + //Remove the starting ] so it is seen as a regular tag + tag = tempTag; + } + } + + if (command && !options.propertyRegExp.test(command)) { + //Have a template command + tag = tag.substring(1).trim(); + } else { + command = '_default_'; + //Command could contain just the raw HTML indicator. + useRawHtml = (command === options.rawHtmlToken); + } + + //Allow for raw HTML output, but it is not the default. + //template references use raw by default though. + if ((useRawHtml = tag.indexOf(options.rawHtmlToken) === 0)) { + tag = tag.substring(options.rawHtmlToken.length, tag.length); + } + //However, template references use raw always + if (command === templateRefToken) { + useRawHtml = true; + } + + args = tag.split(options.argSeparator); + lastArg = args[args.length - 1]; + lastChar = lastArg.charAt(lastArg.length - 1); + children = null; + + if (command === ']') { + //If there are no other args, this is an end tag, to close + //out a block and possibly a set of control blocks. + if (lastChar !== '[') { + //End of a block. End the recursion, let the parent know + //the place where parsing stopped. + compiled.templateEnd = start; + + //Also end of a control section, indicate it as such. + compiled.endControl = true; + } else { + //End of a block. End the recursion, let the parent know + //the place where parsing stopped, before this end tag, + //so it can process it and match it to a control flow + //from previous control tag. + compiled.templateEnd = start - match[0].length; + } + + return compiled; + } else if (lastChar === '[') { + //If last arg ends with a [ it means a block element. + + //Assign a new control section ID if one is not in play already + if (!controlId) { + controlId = controlIdCounter++; + } + + //Adjust the last arg to not have the block character. + args[args.length - 1] = lastArg.substring(0, lastArg.length - 1); + + //Process the block + children = compile(text.substring(start), options); + + //Skip the part of the string that is part of the child compile. + start += children.templateEnd; + } + + //If this defines a template, save it off, + //if a comment (starts with /), then ignore it. + if (command === '+') { + options.templates[args[0]] = children; + } else if (command !== '/') { + //Adjust args if some end in commas, it means they are function + //args. + if (args.length > 1) { + for (i = args.length - 1; i >= 0; i--) { + if (args[i].charAt(args[i].length - 1) === ',') { + args[i] = args[i] + args[i + 1]; + args.splice(i + 1, 1); + } + } + } + + compiled.push({ + action: options.commands[command].action, + useRawHtml: useRawHtml, + args: args, + controlId: controlId, + children: children + }); + } + + //If the end of a block, clear the control ID + if (children && children.endControl) { + controlId = 0; + } + } + } + + if (start !== text.length - 1) { + compiled.push(text.substring(start, text.length)); + } + + return compiled; + } + + jig.compile = function (text, options) { + //Mix in defaults + options = options || {}; + object.mixin(options, { + startToken: startToken, + endToken: endToken, + rawHtmlToken: rawHtmlToken, + propertyRegExp: propertyRegExp, + commands: commands, + argSeparator: argSeparator, + templates: templateCache + }); + + options.endRegExp = new RegExp('[^\\r\\n]*?' + endToken); + + //Do some reset to avoid a number from getting too big. + controlIdCounter = 1; + + return compile(text, options); + }; + + /** + * Converts a node to a compiled template, and will store it in the cache. If already + * in the cache, it will give back the cached value. + */ + function nodeToCompiled(node, options) { + var text, compiled, clss, + id = node.id, + cache = options.templates || templateCache; + + //If the nodes has already been cached, then just get the cached value. + if (cache[id]) { + return cache[id]; + } + + //Call listener to allow processing of the node before + //template complication happens. + if (options.onBeforeParse) { + options.onBeforeParse(node); + } + + if (node.nodeName.toUpperCase() === 'SCRIPT') { + text = node.text.trim(); + if (node.parentNode) { + node.parentNode.removeChild(node); + } + } else { + //Put node in temp node to get the innerHTML so node's element + //html is in the output. + tempNode.appendChild(node); + + //Remove the id node and the template class, since this + //template text could be duplicated many times, and a + //template class is no longer useful. + node.removeAttribute('id'); + clss = (node.getAttribute('class') || '').trim(); + if (clss) { + node.setAttribute('class', clss.replace(templateClassRegExp, '$1$3')); + } + + //Decode braces when may get URL encoded as part of hyperlinks + text = tempNode.innerHTML.replace(/%7B/g, '{').replace(/%7D/g, '}'); + + //Clear out the temp node for the next use. + tempNode.removeChild(node); + } + compiled = jig.compile(text, options); + jig.cache(id, compiled, options); + return compiled; + } + + /** + * Parses an HTML document for templates, compiles them, and stores them + * in a cache of templates to use on the page. Only useful in browser environments. + * Script tags with type="text/template" are parsed, as well as DOM elements + * that have a class of "template" on them. The found nodes will be removed + * from the DOM as part of the parse operation. + * + * @param {Array-Like} [nodes] An array-like list of nodes. Could be a NodeList. + * @param {Object} [options] A collection of options to use for compilation. + */ + jig.parse = function (nodes, options) { + //Allow nodes to not be passed in, but still have options. + if (nodes && !nodes.length) { + options = nodes; + nodes = null; + } + + options = options || {}; + nodes = nodes || document.querySelectorAll('.template, script[type="text/template"]'); + + var node, i; + + for (i = nodes.length - 1; i > -1 && (node = nodes[i]); i--) { + nodeToCompiled(node, options); + } + }; + + function render(compiled, data, options) { + var text = '', i, dataId, controlId, currentControlId, currentValue, lastValue; + if (typeof compiled === 'string') { + text = compiled; + } else if (isArray(compiled)) { + for (i = 0; i < compiled.length; i++) { + //Account for control blocks (if/elseif/else) + //control blocks all have the same control ID, so only call the next + //control block if the first one did not return a value. + currentControlId = compiled[i].controlId; + if (!currentControlId || currentControlId !== controlId || !lastValue) { + currentValue = render(compiled[i], data, options); + text += currentValue; + if (currentControlId) { + controlId = currentControlId; + lastValue = currentValue; + } + } + } + } else { + //A template command to run. + text = compiled.action(compiled.args, data, options, compiled.children, render); + if (!text) { + text = ''; + } else if (!compiled.useRawHtml && !compiled.children) { + //Only html escape commands that are not block actions. + text = jig.htmlEscape(text.toString()); + } + } + + if (options.attachData) { + if (startTagRegExp.test(text)) { + dataId = 'id' + (dataIdCounter++); + text = text.replace(startTagRegExp, '$& data-blade-jig="' + dataId + '" '); + dataRegistry[dataId] = data; + } + } + + return text; + } + + /** + * Render a compiled template. + * + * @param {Array} compiled a compiled template + * @param {Object} data the data to use in the template + * @param {Object} options options for rendering. They include: + * @param {Object} templates a cache of compiled templates that might be + * referenced by the primary template + * @param {Object} options.fn a set of functions that might be used + * by the template(s). Each property on this object is a name of a function + * that may show up in the templates, and the value should be the function + * definition. + * @returns {String} the rendered template. + */ + jig.render = function (compiled, data, options) { + var i, result = ''; + + //Normalize options, filling in defaults. + options = options || {}; + object.mixin(options, { + templates: templateCache, + attachData: attachData, + strict: jig.strict + }); + + //Mix in default functions + if (options.fn) { + object.mixin(options.fn, defaultFuncs); + } else { + options.fn = defaultFuncs; + } + + //Mix in top level context object + options.context = options.context || object.create(data); + + //If data is an array, then render should be called for each item + //in the array. + if (isArray(data)) { + for (i = 0; i < data.length; i++) { + result += render(compiled, data[i], options); + } + return result; + } + + //Default case, just render + return render(compiled, data, options); + }; + + /** + * Enable strict template rendering checks. If a property does not exist on a + * data object, then an error will be logged. + */ + jig.strict = false; + + /** + * Track errors by logging to console if available. + */ + jig.error = function (msg) { + throw msg; + }; + + /** + * Adds functions to the default set of functions that can be used inside + * a template. Newer definitions of a function will take precedence + * over the previously registered function. + * @param {Object} an object whose properties are names of functions + * and values are the functions that correspond to the names. + */ + jig.addFn = function (obj) { + object.mixin(defaultFuncs, obj, true); + }; + + /** + * Gets and sets the data bound to a particular rendered template. Setting + * the data does not change the already rendered template. + * + * @param {String||DOMNode} dataId the data ID, or a DOM node with a + * data-blade-jig attribute that was generated from a rendered template. + * @returns {Object} the bound data. Can return undefined if there is + * no data stored with that ID. + */ + jig.data = function (dataId, value) { + if (typeof dataId !== 'string') { + //Should be a DOM node or node list if it is not already a string. + if (!dataId.nodeType) { + dataId = dataId[0]; + } + dataId = dataId.getAttribute('data-blade-jig'); + } + + if (value !== undefined) { + return (dataRegistry[dataId] = value); + } else { + return dataRegistry[dataId]; + } + }; + + /** + * Removes some data that was bound to a rendered template. + * @param {String} dataId the data ID. It can be fetched from the + * data-blade-jig attribute on a rendered template. + */ + jig.removeData = function (dataId) { + delete dataRegistry[dataId]; + }; + + /** + * Gets an object given a string representation. For example, + * jig.getObject('foo.bar', baz) will return the baz.foo.bar value. + * + * @param {String} name the string value to fetch. The following formats + * are allowed: 'foo.bar', 'foo['bar']', 'foo[0]', 'foo[2:6]'. The last one + * will return an array subset. Functions are also supported: 'doSomething(foo.bar)' + * but the doSomething function needs to be defined in the options.fn + * property, as options.fn.doSomething = function (){} + * + * @param {Object} data the object to use as the basis for the object lookup. + * + * @param {Object} options. Options to the lookup. The only supported option + * at this time is options.func, and object defining functions can could be + * called. + * + * @returns {Object} it could return null if the name is not found off the data + */ + jig.getObject = getObject; + + /** + * Gets or sets a compiled template from a template cache. + * @param {String} id the template ID + * @param {String} [value] A string to compile to a template, or + * the compiled template value. + * @param {Object} [options] optional options object with a 'templates' + * property that contains some cached templates. If provided, a matching + * cache value for the ID will be used from options.templates, otherwise, + * the ID will be used to look up in the global blade/jig template cache. + * @returns {Object} a compiled template. It could return undefined if + * not match is found. + */ + jig.cache = function (id, value, options) { + //Convert the value to a compiled templated if necessary. + if (typeof value === 'string') { + value = jig.compile(value, options); + } + + //If value is not an array, then a get operation, likely an options. + if (!isArray(value)) { + options = value; + value = undefined; + } + + var cache = (options && options.templates) || templateCache; + if (value !== undefined) { + cache[id] = value; + } + + //Return the value. For get use, the template may not be in + //the local options.templates, but in the global cache, so + //be sure to check both. + return cache[id] || templateCache[id]; + }; + + function addToJQuery(jQuery) { + //Only handles queries where it is by a node ID, '#something'. + jQuery.fn.jig = function (data, options) { + //Convert this, which is a DOM node into a string of data + options = options || {}; + + var id = this.selector, + compiled; + + if (id.charAt(0) !== '#') { + throw new Error('blade/jig: only ID selectors, like "#something" are allowed with jig()'); + } + id = id.substring(1, id.length); + + //See if the template is already compiled. + compiled = (options.templates || templateCache)[id]; + + if (!compiled) { + compiled = nodeToCompiled(this[0]); + } + + return jQuery(jig.render(compiled, data, options)); + }; + } + + //Set up the plugin with a RequireJS-aware jQuery module but also + //if there is a global jQuery. + //require.modify('jquery', 'jquery-jig', ['jquery'], addToJQuery); + if (typeof jQuery !== 'undefined') { + addToJQuery(jQuery); + } + + return jig; +}); diff --git a/web/0.3.4/scripts/blade/object.js b/web/0.3.4/scripts/blade/object.js new file mode 100644 index 0000000..73ae3e4 --- /dev/null +++ b/web/0.3.4/scripts/blade/object.js @@ -0,0 +1,128 @@ +/** + * @license blade/object Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + * Available via the MIT, GPL or new BSD license. + * see: http://github.com/jrburke/blade for details + */ +/*jslint plusplus: false */ +/*global define: false */ + +'use strict'; + +define(['./fn'], function (fn) { + + var empty = {}, + + /** + * Creates a new constructor function for generating objects of a certain type. + * + * @param {Object} base the base object to inherit from in the + * prototype chain. Pass null if no parent desired. + * + * @param {Array} mixins an array of objects to use to mix in their + * properties into the new object. Pass null if no mixins desired. + * + * @param {Function} objPropertyFunc, a function that returns an object + * whose properties should be part of this new object's prototype. + * The function will be passed the function used to call methods + * on the parent prototype used for this object. The function expects + * three arguments: + * - obj: pass the this object for this arg + * - funcName: the function name to call on the prototype object (a string) + * - args: an array of arguments. Normally just pass the arguments object. + * The parent prototype will be a combination of the base object + * with all mixins applied. + * + * @returns {Function} a constructor function. + */ + object = function (base, mixins, objPropertyFunc) { + base = base || {}; + var constructor, + + //Create the parent and its parentFunc calling wrapper. + //The parent function just makes it easier to call the parent + parent = object.create(base.prototype, mixins), + parentFunc = function (obj, funcName, args) { + return parent[funcName].apply(obj, args); + }, + + //Create a different object for the prototype instead of using + //parent, so that parent can still refer to parent object + //without the curren object's properties mixed in + //(via the objPropertyFunc) with the mixed in properties taking + //priority over the parent's properties. + proto = object.create(parent); + + object.mixin(proto, (fn.is(objPropertyFunc) ? objPropertyFunc(parentFunc) : objPropertyFunc), true); + + //Create the constructor function. Calls init if it is defined + //on the prototype (proto) + constructor = function () { + //Protect against a missing new + if (!(this instanceof constructor)) { + throw new Error('blade/object: constructor function called without "new" in front'); + } + + //Call initializer if present. + if (this.init) { + this.init.apply(this, arguments); + } + }; + + //Set the prototype for this constructor + constructor.prototype = proto; + + return constructor; + }; + + /** + * Similar to ES5 create, but instead of setting property attributes + * for the second arg, allow an array of mixins to mix in properties + * to the newly created object. + * A copy of dojo.delegate + * @param {Object} parent the parent object to use as the prototype. + * @param {Array} [mixins] array of mixin objects to mix in to the new object. + */ + function Temp() {} + + object.create = function (obj, mixins) { + Temp.prototype = obj; + var temp = new Temp(), i, mixin; + + //Avoid any extra memory hanging around + Temp.prototype = null; + + if (mixins) { + for (i = 0; (mixin = mixins[i]); i++) { + object.mixin(temp, mixin); + } + } + return temp; // Object + }; + + /** + * Simple function to mix in properties from source into target, + * but only if target does not already have a property of the same name, + * unless override is set to true. Borrowed from Dojo. + * + * To extend a prototype on a given object, pass in the prototype property + * to mixin. For example: object.mixin(func.prototype, {a: 'b'}); + * + * @param {Object} target the object receiving the mixed in properties. + * + * @param {Object} source the object that contains the properties to mix in. + * + * @param {Boolean} [override] if set to true, then the source's properties + * will be mixed in even if a property of the same name already exists on + * the target. + */ + object.mixin = function (target, source, override) { + //TODO: consider ES5 getters and setters in here. + for (var prop in source) { + if (!(prop in empty) && (!(prop in target) || override)) { + target[prop] = source[prop]; + } + } + }; + + return object; +}); diff --git a/web/0.3.4/scripts/blade/url.js b/web/0.3.4/scripts/blade/url.js new file mode 100644 index 0000000..97f9c00 --- /dev/null +++ b/web/0.3.4/scripts/blade/url.js @@ -0,0 +1,101 @@ +/** + * @license blade/url Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + * Available via the MIT, GPL or new BSD license. + * see: http://github.com/jrburke/blade for details + */ +/*jslint nomen: false, plusplus: false */ +/*global define: false */ + +'use strict'; + +define(['./array'], function (array) { + var ostring = Object.prototype.toString; + + return { + objectToQuery: function (/*Object*/ map) { + // summary: + // takes a name/value mapping object and returns a string representing + // a URL-encoded version of that object. + // example: + // this object: + // + // | { + // | blah: "blah", + // | multi: [ + // | "thud", + // | "thonk" + // | ] + // | }; + // + // yields the following query string: + // + // | "blah=blah&multi=thud&multi=thonk" + + // FIXME: need to implement encodeAscii!! + var enc = encodeURIComponent, + pairs = [], + backstop = {}, + name, value, assign, i; + for (name in map) { + if (map.hasOwnProperty(name)) { + value = map[name]; + if (value !== backstop[name]) { + assign = enc(name) + "="; + if (array.is(value)) { + for (i = 0; i < value.length; i++) { + pairs.push(assign + enc(value[i])); + } + } else { + pairs.push(assign + enc(value)); + } + } + } + } + return pairs.join("&"); // String + }, + + queryToObject: function (/*String*/ str) { + // summary: + // Create an object representing a de-serialized query section of a + // URL. Query keys with multiple values are returned in an array. + // + // example: + // This string: + // + // | "foo=bar&foo=baz&thinger=%20spaces%20=blah&zonk=blarg&" + // + // results in this object structure: + // + // | { + // | foo: [ "bar", "baz" ], + // | thinger: " spaces =blah", + // | zonk: "blarg" + // | } + // + // Note that spaces and other urlencoded entities are correctly + // handled. + var ret = {}, + qp = str.split('&'), + dec = decodeURIComponent, + parts, name, val; + + qp.forEach(function (item) { + if (item.length) { + parts = item.split('='); + name = dec(parts.shift()); + val = dec(parts.join('=')); + if (typeof ret[name] === 'string') { + ret[name] = [ret[name]]; + } + + if (ostring.call(ret[name]) === '[object Array]') { + ret[name].push(val); + } else { + ret[name] = val; + } + } + }); + return ret; + } + }; +}); diff --git a/web/0.3.4/scripts/cards.js b/web/0.3.4/scripts/cards.js new file mode 100644 index 0000000..f849cd1 --- /dev/null +++ b/web/0.3.4/scripts/cards.js @@ -0,0 +1,173 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +/*jslint */ +/*global require: false, define: false, window: false, document: false, cards: true */ +'use strict'; + +define([ 'jquery', 'text!templates/cardsHeader.html'], +function ($, headerTemplate) { + var header, display, back, nlCards, + cardPosition = 0, + headerText = '', + cardTitles = []; + + function adjustCardSizes() { + var cardWidth = display.outerWidth(), + cardList = $('.card'), + totalWidth = cardWidth * cardList.length, + height = window.innerHeight - header.outerHeight(); + + //Set height + display.css('height', height + 'px'); + + //Set widths and heights of cards. Need to set the heights + //explicitly so any card using iscroll will get updated correctly. + nlCards.css({ + width: totalWidth + 'px', + height: height + 'px' + }); + + cardList.css({ + width: cardWidth + 'px', + height: height + 'px' + }); + + //Reset the scroll correctly. + cards.scroll(); + } + + function cards(nl, options) { + nl = nl.jquery ? nl : $(nl); + + $(function () { + //Insert the header before the cards + header = $(headerTemplate).insertBefore(nl); + headerText = $('#headerText'); + + back = $('#back'); + back.css('display', 'none'); + back.click((options && options.onBack) || cards.back); + + display = nl; + nlCards = display.find('#cards'); + + adjustCardSizes(); + cards.setTitle(options && options.title); + + //Detect orientation changes and size the card container size accordingly. + if ('onorientationchange' in window) { + window.addEventListener('orientationchange', adjustCardSizes, false); + } + window.addEventListener('resize', adjustCardSizes, false); + + }); + } + + cards.adjustCardSizes = adjustCardSizes; + + /** + * Adds a new card to the list of cards, at the end of the cards. + * Only adds the card, does not navigate to it. Only adds the card + * if a DOM element with the info.id does not already exist in the page. + * + * @param {Object} info the info about the card. It must have the following + * properties: + * @param {String} info.id the ID to use for the new card's DOM element. + * @param {String} info.title the text title to use for the card. + * @param {String} info.content a string of HTML to use for the content. + */ + cards.add = function (info) { + var existing = $('#' + info.id), + title = info.title; + + if (!title) { + title = info.content.match(/

([^<]+)<\/h1>/); + title = (title && title[1]) || ''; + } + + if (!existing.length) { + existing = $('
' + info.content + '
') + .appendTo('#cards'); + cards.adjustCardSizes(); + } + + return existing[0]; + }; + + cards.back = function () { + cardPosition -= 1; + if (cardPosition < 0) { + cardPosition = 0; + } + cards.scroll(); + }; + + cards.moveTo = function (id) { + cardPosition = $('.card').index(document.getElementById(id)); + if (cardPosition < 0) { + cardPosition = 0; + } + cards.scroll(); + }; + + cards.forward = function (title) { + cardPosition += 1; + cards.scroll(title); + }; + + cards.scroll = function (title) { + if (title) { + cardTitles[cardPosition] = title; + } + + cards.setTitle(title); + + var left = display.outerWidth() * cardPosition; + + nlCards.animate( + { + left: '-' + left + 'px' + }, { + duration: 300, + easing: 'linear' + } + ); + +/* + Was used for CSS -webkit-transition + nlCards.css({ + left: '-' + left + 'px' + }); +*/ + //Hide/Show back button as appropriate + back.css('display', !cardPosition ? 'none' : ''); + }; + + cards.setTitle = function (title) { + title = title || cardTitles[cardPosition] || nlCards.find('.card').eq(cardPosition).attr('title') || ''; + headerText.html(title); + }; + + return cards; +}); diff --git a/web/0.3.4/scripts/dispatch.js b/web/0.3.4/scripts/dispatch.js new file mode 100644 index 0000000..4927dbc --- /dev/null +++ b/web/0.3.4/scripts/dispatch.js @@ -0,0 +1,81 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +/*jslint plusplus: false, indent: 2 */ +/*global require: false, define: false, location: false, window: false */ +"use strict"; + +/** + * A module that handles dispatching pub/sub topics, where the underlying + * dispatch is done by postMessage. This allows for chrome extensions + * to participate in the pub/sub via postMessage without having to + * participate in this particular module. + */ +define(['jquery'], function ($) { + + var origin = location.protocol + "//" + location.host; + + return { + sub: function (topic, callback, win, targetOrigin) { + win = win || window; + targetOrigin = targetOrigin || origin; + + var func = function (evt) { + //Make sure message is from this page, or from the browser extension + //that wants to communicate information back to the page. + if (evt.origin === targetOrigin || evt.origin === 'chrome://browser') { + //Assume pub/sub has JSON data with properties named + //'topic' and 'data'. + try { + var message = JSON.parse(evt.data), + pubTopic = message.topic; + if (pubTopic && pubTopic === topic) { + callback(message.data); + } + } catch (e) { + //Just ignore messages that are not JSON. There are some, like + //the oauth_success messages + } + } + }; + + win.addEventListener('message', func, false); + + //return the created function to allow unsubscribing + return func; + }, + + unsub: function (func, win) { + win = win || window; + win.removeEventListener('message', func, false); + }, + + pub: function (topic, data, win) { + win = win || window; + win.postMessage(JSON.stringify({ + topic: topic, + data: data + }), origin); + } + }; +}); diff --git a/web/0.3.4/scripts/dotCompare.js b/web/0.3.4/scripts/dotCompare.js new file mode 100644 index 0000000..f94b374 --- /dev/null +++ b/web/0.3.4/scripts/dotCompare.js @@ -0,0 +1,61 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +/*jslint indent: 2, plusplus: false */ +/*global define: false, window: false, location: false */ +"use strict"; + +define([], function () { + + /** + * A function that compares two "x.x.x" version numbers, and returns: + * @param {String} a value of "x.x.x". + * @param {String} b value of "x.x.x". + * @returns Number that depends on the equality: + * -1 if a is less than b + * 0 if they are the same + * 1 if a is greater than b + */ + function dotCompare(a, b) { + a = a || "0"; + b = b || "0"; + a = a.split('.'); + b = b.split('.'); + var i, ap, bp, + length = a.length > b.length ? a.length : b.length; + + for (i = 0; i < length; i++) { + ap = parseInt(a[i] || "0", 10); + bp = parseInt(b[i] || "0", 10); + if (ap > bp) { + return 1; + } else if (ap < bp) { + return -1; + } + } + + return 0; + } + + return dotCompare; +}); diff --git a/web/0.3.4/scripts/fancyzoom.js b/web/0.3.4/scripts/fancyzoom.js new file mode 100644 index 0000000..173c87a --- /dev/null +++ b/web/0.3.4/scripts/fancyzoom.js @@ -0,0 +1,174 @@ +(function($){ +$.fn.fancyZoom = function(options){ + + var options = options || {}; + var directory = options && options.directory ? options.directory : 'images'; + var zooming = false; + + if ($('#zoom').length == 0) { + var ext = $.browser.msie ? 'gif' : 'png'; + var html = ''; + + $('body').append(html); + + $('html').click(function(e){if($(e.target).parents('#zoom:visible').length == 0) hide();}); + $(document).keyup(function(event){ + if (event.keyCode == 27 && $('#zoom:visible').length > 0) hide(); + }); + + $('#zoom_close').click(hide); + } + + var zoom = $('#zoom'); + var zoom_table = $('#zoom_table'); + var zoom_close = $('#zoom_close'); + var zoom_content = $('#zoom_content'); + var middle_row = $('td.ml,td.mm,td.mr'); + + this.each(function(i) { + $($(this).attr('href')).hide(); + $(this).click(show); + }); + + return this; + + function show(e) { + if (zooming) return false; + zooming = true; + var content_div = $($(this).attr('href')); + var zoom_width = options.width; + var zoom_height = options.height; + + var width = window.innerWidth || (window.document.documentElement.clientWidth || window.document.body.clientWidth); + var height = window.innerHeight || (window.document.documentElement.clientHeight || window.document.body.clientHeight); + var x = window.pageXOffset || (window.document.documentElement.scrollLeft || window.document.body.scrollLeft); + var y = window.pageYOffset || (window.document.documentElement.scrollTop || window.document.body.scrollTop); + var window_size = {'width':width, 'height':height, 'x':x, 'y':y} + + var width = (zoom_width || content_div.width()) + 60; + var height = (zoom_height || content_div.height()) + 60; + var d = window_size; + + // ensure that newTop is at least 0 so it doesn't hide close button + var newTop = Math.max((d.height/2) - (height/2) + y, 0); + var newLeft = (d.width/2) - (width/2); + var curTop = e.pageY; + var curLeft = e.pageX; + + zoom_close.attr('curTop', curTop); + zoom_close.attr('curLeft', curLeft); + zoom_close.attr('scaleImg', options.scaleImg ? 'true' : 'false'); + + $('#zoom').hide().css({ + position : 'absolute', + top : curTop + 'px', + left : curLeft + 'px', + width : '1px', + height : '1px' + }); + + fixBackgroundsForIE(); + zoom_close.hide(); + + if (options.closeOnClick) { + $('#zoom').click(hide); + } + + if (options.scaleImg) { + zoom_content.html(content_div.html()); + $('#zoom_content img').css('width', '100%'); + } else { + zoom_content.html(''); + } + + $('#zoom').animate({ + top : newTop + 'px', + left : newLeft + 'px', + opacity : "show", + width : width, + height : height + }, 100, null, function() { + if (options.scaleImg != true) { + zoom_content.html(content_div.html()); + } + unfixBackgroundsForIE(); + zoom_close.show(); + zooming = false; + }) + return false; + } + + function hide() { + if (zooming) return false; + zooming = true; + $('#zoom').unbind('click'); + fixBackgroundsForIE(); + if (zoom_close.attr('scaleImg') != 'true') { + zoom_content.html(''); + } + zoom_close.hide(); + $('#zoom').animate({ + top : zoom_close.attr('curTop') + 'px', + left : zoom_close.attr('curLeft') + 'px', + opacity : "hide", + width : '1px', + height : '1px' + }, 100, null, function() { + if (zoom_close.attr('scaleImg') == 'true') { + zoom_content.html(''); + } + unfixBackgroundsForIE(); + zooming = false; + }); + return false; + } + + function switchBackgroundImagesTo(to) { + $('#zoom_table td').each(function(i) { + var bg = $(this).css('background-image').replace(/\.(png|gif|none)\"\)$/, '.' + to + '")'); + $(this).css('background-image', bg); + }); + var close_img = zoom_close.children('img'); + var new_img = close_img.attr('src').replace(/\.(png|gif|none)$/, '.' + to); + close_img.attr('src', new_img); + } + + function fixBackgroundsForIE() { + if ($.browser.msie && parseFloat($.browser.version) >= 7) { + switchBackgroundImagesTo('gif'); + } + } + + function unfixBackgroundsForIE() { + if ($.browser.msie && $.browser.version >= 7) { + switchBackgroundImagesTo('png'); + } + } +} +})(jQuery); \ No newline at end of file diff --git a/web/0.3.4/scripts/friendly.js b/web/0.3.4/scripts/friendly.js new file mode 100644 index 0000000..5af1fd4 --- /dev/null +++ b/web/0.3.4/scripts/friendly.js @@ -0,0 +1,128 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +/*jslint plusplus: false, nomen: false */ +/*global define: false */ +"use strict"; + +define(function () { + var friendly = { + timestamp: function (timestamp) { + return friendly.date(new Date(timestamp * 1000)); + }, + + date: function (date) { + var diff = (((new Date()).getTime() - date.getTime()) / 1000), + day_diff = Math.floor(diff / 86400), + dObj = { "friendly" : date.toLocaleDateString(), + "additional" : date.toLocaleTimeString(), + "utc" : date.toUTCString(), + "locale" : date.toLocaleString() }; + /* some kind of error */ + if (day_diff < 0) { + dObj.friendly = "in the future"; + return dObj; + } else if (isNaN(day_diff)) { + dObj.friendly = dObj.additional = "unknown"; + return dObj; + } + + if (day_diff === 0) { + if (diff < 60) { + dObj.friendly = "just now"; + return dObj; + } + if (diff < 120 + 30) { /* 1 minute plus some fuzz */ + dObj.friendly = "a minute ago"; + return dObj; + } + if (diff < 3600) { + dObj.friendly = Math.floor(diff / 60) + " minutes ago"; + return dObj; + } + if (diff < (60 * 60) * 2) { + dObj.friendly = "1 hour ago"; + return dObj; + } + if (diff < 24 * 60 * 60) { + dObj.friendly = Math.floor(diff / 3600) + " hours ago"; + return dObj; + } + } + if (day_diff === 1) { + dObj.friendly = "yesterday"; + return dObj; + } + if (day_diff < 7) { + dObj.friendly = day_diff + " days ago"; + return dObj; + } + if (day_diff < 8) { + dObj.friendly = "last week"; + return dObj; + } + /* for this scope: we want day of week and the date + plus the month (if different) */ + if (day_diff < 31) { + dObj.friendly = Math.ceil(day_diff / 7) + " weeks ago"; + return dObj; + } + + /* for this scope: we want month + date */ + if (day_diff < 62) { + dObj.friendly = "a month ago"; + return dObj; + } + if (day_diff < 365) { + dObj.friendly = Math.ceil(day_diff / 31) + " months ago"; + return dObj; + } + + /* for this scope: we want month + year */ + if (day_diff >= 365 && day_diff < 730) { + dObj.additional = date.toLocaleDateString(); + dObj.friendly = "a year ago"; + return dObj; + } + if (day_diff >= 365) { + dObj.additional = date.toLocaleDateString(); + dObj.friendly = Math.ceil(day_diff / 365) + " years ago"; + return dObj; + } + return dObj; + }, + + name: function (name) { + var firstName = name.split(' ')[0]; + if (firstName.indexOf('@') !== -1) { + firstName = firstName.split('@')[0]; + } + firstName = firstName.replace(" ", ""); + firstName = firstName.replace("'", ""); + firstName = firstName.replace('"', ""); + return firstName; + } + }; + + return friendly; +}); diff --git a/web/0.3.4/scripts/hashDispatch.js b/web/0.3.4/scripts/hashDispatch.js new file mode 100644 index 0000000..f284ac8 --- /dev/null +++ b/web/0.3.4/scripts/hashDispatch.js @@ -0,0 +1,65 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +'use strict'; +/*jslint nomen: false */ +/*global define: false, location: true, window: false */ + +define([], function () { + + /** + * Registers an object to receive hash changes. Expects the object + * to have property names that match the hash values. + * It will call the actions object immediately if the current hash + * matches a method on the object. + * + * @param {Object} actions the object that has property names that + * map to hash values and values for the properties are functions + * to be called. The name '_default' is used for any default action + * (one that corresponds to no hash value). A name of '_catchAll' is + * used to catch hash changes that do not map to a specific named + * action on the actions object. + */ + return function hashDispatch(actions) { + + function hashUpdated() { + var hash = (location.href.split('#')[1] || '_default'), + arg, index; + //Only use the part of the hash before a colon to find the action + index = hash.indexOf(':'); + if (index !== -1) { + arg = hash.substring(index + 1, hash.length); + hash = hash.substring(0, index); + } + + if (hash in actions) { + actions[hash](arg); + } else if (actions._catchAll) { + actions._catchAll(hash, arg); + } + } + + hashUpdated(); + window.addEventListener('hashchange', hashUpdated, false); + }; +}); diff --git a/web/0.3.4/scripts/iscroll-min.js b/web/0.3.4/scripts/iscroll-min.js new file mode 100644 index 0000000..78e8b55 --- /dev/null +++ b/web/0.3.4/scripts/iscroll-min.js @@ -0,0 +1 @@ +(function(){function a(f,c){this.element=typeof f=="object"?f:document.getElementById(f);this.wrapper=this.element.parentNode;this.is3d=("m11" in new WebKitCSSMatrix());var e="-webkit-transition-property:-webkit-transform;-webkit-transition-timing-function:cubic-bezier(0,0,0.25,1);-webkit-transition-duration:0;-webkit-transform:"+(this.is3d?"translate3d(0,0,0)":"translate(0,0)");this.element.setAttribute("style",e);this.options={bounce:this.is3d,momentum:this.is3d,checkDOMChanges:true,topOnDOMChanges:false,hScrollBar:true,vScrollBar:true,overflow:"auto"};if(typeof c=="object"){for(var d in c){this.options[d]=c[d]}}this.wrapper.style.overflow=this.options.overflow;this.refresh();window.addEventListener("orientationchange",this,false);this.element.addEventListener("touchstart",this,false);if(this.options.checkDOMChanges){this.element.addEventListener("DOMSubtreeModified",this,false)}}a.prototype={x:0,y:0,scrollBarTimeout:null,handleEvent:function(c){switch(c.type){case"touchstart":this.touchStart(c);break;case"touchmove":this.touchMove(c);break;case"touchend":this.touchEnd(c);break;case"webkitTransitionEnd":this.transitionEnd(c);break;case"orientationchange":this.refresh();break;case"DOMSubtreeModified":this.onDOMModified(c);break}},onDOMModified:function(c){this.refresh();if(this.options.topOnDOMChanges&&(this.x!=0||this.y!=0)){this.scrollTo(0,0,"0")}},refresh:function(){this.scrollWidth=this.wrapper.clientWidth;this.scrollHeight=this.wrapper.clientHeight;this.maxScrollX=this.scrollWidth-this.element.offsetWidth;this.maxScrollY=this.scrollHeight-this.element.offsetHeight;var d=this.x,c=this.y;if(this.scrollX){if(this.maxScrollX>=0){d=0}else{if(this.x=0){c=0}else{if(this.ythis.scrollWidth?true:false;this.scrollY=this.element.offsetHeight>this.scrollHeight?true:false;if(this.options.hScrollBar&&this.scrollX){this.scrollBarX=(this.scrollBarX instanceof b)?this.scrollBarX:new b("horizontal",this.wrapper);this.scrollBarX.init(this.scrollWidth,this.element.offsetWidth)}else{if(this.scrollBarX){this.scrollBarX=this.scrollBarX.remove()}}if(this.options.vScrollBar&&this.scrollY){this.scrollBarY=(this.scrollBarY instanceof b)?this.scrollBarY:new b("vertical",this.wrapper);this.scrollBarY.init(this.scrollHeight,this.element.offsetHeight)}else{if(this.scrollBarY){this.scrollBarY=this.scrollBarY.remove()}}},setPosition:function(c,e,d){this.x=c;this.y=e;this.element.style.webkitTransform=this.is3d?"translate3d("+this.x+"px,"+this.y+"px,0px)":"translate("+this.x+"px,"+this.y+"px)";if(!d){if(this.scrollBarX){this.scrollBarX.setPosition(this.x)}if(this.scrollBarY){this.scrollBarY.setPosition(this.y)}}},setTransitionTime:function(c){c=c||"0";this.element.style.webkitTransitionDuration=c;if(this.scrollBarX){this.scrollBarX.bar.style.webkitTransitionDuration=c+(this.is3d?",200ms":"")}if(this.scrollBarY){this.scrollBarY.bar.style.webkitTransitionDuration=c+(this.is3d?",200ms":"")}},touchStart:function(d){if(d.targetTouches.length!=1){return false}d.preventDefault();d.stopPropagation();this.setTransitionTime();if(this.options.momentum){var c=new WebKitCSSMatrix(window.getComputedStyle(this.element).webkitTransform);if(c.e!=this.x||c.f!=this.y){this.element.removeEventListener("webkitTransitionEnd",this,false);this.setPosition(c.e,c.f)}}if(this.scrollBarTimeout){clearTimeout(this.scrollBarTimeout);this.scrollBarTimeout=null}this.touchStartX=d.touches[0].pageX;this.scrollStartX=this.x;this.touchStartY=d.touches[0].pageY;this.scrollStartY=this.y;this.scrollStartTime=d.timeStamp;this.moved=false;this.element.addEventListener("touchmove",this,false);this.element.addEventListener("touchend",this,false)},touchMove:function(g){if(g.targetTouches.length!=1){return false}var d=this.scrollX===true?g.touches[0].pageX-this.touchStartX:0,c=this.scrollY===true?g.touches[0].pageY-this.touchStartY:0,h=this.x+d,f=this.y+c;if(h>0||h0||f250){this.scrollStartX=this.x;this.scrollStartY=this.y;this.scrollStartTime=g.timeStamp}},touchEnd:function(j){this.element.removeEventListener("touchmove",this,false);this.element.removeEventListener("touchend",this,false);var g=j.timeStamp-this.scrollStartTime;if(!this.moved){this.resetPosition();var k=j.changedTouches[0].target;while(k.nodeType!=1){k=k.parentNode}var l=document.createEvent("MouseEvents");l.initMouseEvent("click",true,true,j.view,1,k.screenX,k.screenY,k.clientX,k.clientY,j.ctrlKey,j.altKey,j.shiftKey,j.metaKey,0,null);k.dispatchEvent(l);return false}if(!this.options.momentum||g>250){this.resetPosition();return false}var d=this.scrollX===true?this.momentum(this.x-this.scrollStartX,g,this.options.bounce?-this.x+this.scrollWidth/3:-this.x,this.options.bounce?this.x+this.element.offsetWidth-this.scrollWidth+this.scrollWidth/3:this.x+this.element.offsetWidth-this.scrollWidth):{dist:0,time:0};var c=this.scrollY===true?this.momentum(this.y-this.scrollStartY,g,this.options.bounce?-this.y+this.scrollHeight/3:-this.y,this.options.bounce?this.y+this.element.offsetHeight-this.scrollHeight+this.scrollHeight/3:this.y+this.element.offsetHeight-this.scrollHeight):{dist:0,time:0};if(!d.dist&&!c.dist){this.resetPosition();return false}var f=Math.max(Math.max(d.time,c.time),1);var i=this.x+d.dist;var h=this.y+c.dist;this.scrollTo(i,h,f+"ms")},transitionEnd:function(){this.element.removeEventListener("webkitTransitionEnd",this,false);this.resetPosition()},resetPosition:function(e){var f=this.x,d=this.y,c=this,e=e||"600ms";if(this.x>=0){f=0}else{if(this.x=0){d=0}else{if(this.y0&&f>h){e=e*h/f;f=h}if(j<0&&f>c){e=e*c/f;f=c}f=f*(j<0?-1:1);k=e/i;return{dist:Math.round(f),time:Math.round(k)}}};var b=function(c,e){this.is3d=("m11" in new WebKitCSSMatrix());this.dir=c;this.bar=document.createElement("div");this.bar.className="scrollbar "+c;var d="-webkit-transition-timing-function:cubic-bezier(0,0,0.25,1);pointer-events:none;opacity:0;"+(this.is3d?"-webkit-transition-duration:0,200ms;-webkit-transition-property:-webkit-transform,opacity;-webkit-transform:translate3d(0,0,0)":"-webkit-transition-duration:0;-webkit-transition-property:webkit-transform;-webkit-transform:translate(0,0)");this.bar.setAttribute("style",d);e.appendChild(this.bar)};b.prototype={init:function(c,d){var e=this.dir=="horizontal"?this.bar.offsetWidth-this.bar.clientWidth:this.bar.offsetHeight-this.bar.clientHeight;this.maxSize=c-8;this.size=Math.round(this.maxSize*this.maxSize/d)+e;this.maxScroll=this.maxSize-this.size;this.toWrapperProp=this.maxScroll/(c-d);this.bar.style[this.dir=="horizontal"?"width":"height"]=(this.size-e)+"px"},setPosition:function(d,c){if(!c&&this.bar.style.opacity!="1"){this.show()}d=this.toWrapperProp*d;if(d<0){d=0}else{if(d>this.maxScroll){d=this.maxScroll}}if(this.is3d){d=this.dir=="horizontal"?"translate3d("+Math.round(d)+"px,0,0)":"translate3d(0,"+Math.round(d)+"px,0)"}else{d=this.dir=="horizontal"?"translate("+Math.round(d)+"px,0)":"translate(0,"+Math.round(d)+"px)"}this.bar.style.webkitTransform=d},show:function(){this.bar.style.opacity="1"},hide:function(){this.bar.style.opacity="0"},remove:function(){this.bar.parentNode.removeChild(this.bar);return null}};window.iScroll=a})(); \ No newline at end of file diff --git a/web/0.3.4/scripts/isoDate.js b/web/0.3.4/scripts/isoDate.js new file mode 100644 index 0000000..971da08 --- /dev/null +++ b/web/0.3.4/scripts/isoDate.js @@ -0,0 +1,172 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +//Ported directly from dojo.date.stamp +'use strict'; +/*jslint nomen: false, regexp: false, plusplus: false */ +/*global require: false */ + +define([], function () { + + // Methods to convert dates to or from a wire (string) format using well-known conventions + var _isoRegExp = /^(?:(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(.\d+)?)?((?:[+\-](\d{2}):(\d{2}))|Z)?)?$/, + + isoDate = function (/*String*/formattedString, /*Number?*/defaultTime) { + // summary: + // Returns a Date object given a string formatted according to a subset of the ISO-8601 standard. + // + // description: + // Accepts a string formatted according to a profile of ISO8601 as defined by + // [RFC3339](http://www.ietf.org/rfc/rfc3339.txt), except that partial input is allowed. + // Can also process dates as specified [by the W3C](http://www.w3.org/TR/NOTE-datetime) + // The following combinations are valid: + // + // * dates only + // | * yyyy + // | * yyyy-MM + // | * yyyy-MM-dd + // * times only, with an optional time zone appended + // | * THH:mm + // | * THH:mm:ss + // | * THH:mm:ss.SSS + // * and "datetimes" which could be any combination of the above + // + // timezones may be specified as Z (for UTC) or +/- followed by a time expression HH:mm + // Assumes the local time zone if not specified. Does not validate. Improperly formatted + // input may return null. Arguments which are out of bounds will be handled + // by the Date constructor (e.g. January 32nd typically gets resolved to February 1st) + // Only years between 100 and 9999 are supported. + // + // formattedString: + // A string such as 2005-06-30T08:05:00-07:00 or 2005-06-30 or T08:05:00 + // + // defaultTime: + // Used for defaults for fields omitted in the formattedString. + // Uses 1970-01-01T00:00:00.0Z by default. + + var match = _isoRegExp.exec(formattedString), + result = null, offset, zoneSign; + + if (match) { + match.shift(); + if (match[1]) { + match[1]--; // Javascript Date months are 0-based + } + if (match[6]) { + match[6] *= 1000; // Javascript Date expects fractional seconds as milliseconds + } + + if (defaultTime) { + // mix in defaultTime. Relatively expensive, so use || operators for the fast path of defaultTime === 0 + defaultTime = new Date(defaultTime); + ["FullYear", "Month", "Date", "Hours", "Minutes", "Seconds", "Milliseconds"].map(function (prop) { + return defaultTime["get" + prop](); + }).forEach(function (value, index) { + match[index] = match[index] || value; + }); + } + result = new Date(match[0] || 1970, match[1] || 0, match[2] || 1, match[3] || 0, match[4] || 0, match[5] || 0, match[6] || 0); //TODO: UTC defaults + if (match[0] < 100) { + result.setFullYear(match[0] || 1970); + } + + offset = 0; + zoneSign = match[7] && match[7].charAt(0); + if (zoneSign !== 'Z') { + offset = ((match[8] || 0) * 60) + (Number(match[9]) || 0); + if (zoneSign !== '-') { + offset *= -1; + } + } + if (zoneSign) { + offset -= result.getTimezoneOffset(); + } + if (offset) { + result.setTime(result.getTime() + offset * 60000); + } + } + + return result; // Date or null + }; + + /*===== + __Options = function(){ + // selector: String + // "date" or "time" for partial formatting of the Date object. + // Both date and time will be formatted by default. + // zulu: Boolean + // if true, UTC/GMT is used for a timezone + // milliseconds: Boolean + // if true, output milliseconds + this.selector = selector; + this.zulu = zulu; + this.milliseconds = milliseconds; + } + =====*/ + + isoDate.toIsoString = function (/*Date*/dateObject, /*__Options?*/options) { + // summary: + // Format a Date object as a string according a subset of the ISO-8601 standard + // + // description: + // When options.selector is omitted, output follows [RFC3339](http://www.ietf.org/rfc/rfc3339.txt) + // The local time zone is included as an offset from GMT, except when selector=='time' (time without a date) + // Does not check bounds. Only years between 100 and 9999 are supported. + // + // dateObject: + // A Date object + + var _ = function (n) { + return (n < 10) ? "0" + n : n; + }, + formattedDate, getter, date, year, time, millis, timezoneOffset, absOffset; + options = options || {}; + formattedDate = []; + getter = options.zulu ? "getUTC" : "get"; + date = ""; + if (options.selector !== "time") { + year = dateObject[getter + "FullYear"](); + date = ["0000".substr((year + "").length) + year, _(dateObject[getter + "Month"]() + 1), _(dateObject[getter + "Date"]())].join('-'); + } + formattedDate.push(date); + if (options.selector !== "date") { + time = [_(dateObject[getter + "Hours"]()), _(dateObject[getter + "Minutes"]()), _(dateObject[getter + "Seconds"]())].join(':'); + millis = dateObject[getter + "Milliseconds"](); + if (options.milliseconds) { + time += "." + (millis < 100 ? "0" : "") + _(millis); + } + if (options.zulu) { + time += "Z"; + } else if (options.selector !== "time") { + timezoneOffset = dateObject.getTimezoneOffset(); + absOffset = Math.abs(timezoneOffset); + time += (timezoneOffset > 0 ? "-" : "+") + + _(Math.floor(absOffset / 60)) + ":" + _(absOffset % 60); + } + formattedDate.push(time); + } + return formattedDate.join('T'); // String + }; + + return isoDate; +}); \ No newline at end of file diff --git a/web/0.3.4/scripts/jquery-ui-1.8.6.custom.min.js b/web/0.3.4/scripts/jquery-ui-1.8.6.custom.min.js new file mode 100755 index 0000000..0350d72 --- /dev/null +++ b/web/0.3.4/scripts/jquery-ui-1.8.6.custom.min.js @@ -0,0 +1,68 @@ +/*! + * jQuery UI 1.8.6 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(c,j){function k(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.6",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106, +NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this, +"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position"); +if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,l,m){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(l)g-=parseFloat(c.curCSS(f, +"border"+this+"Width",true))||0;if(m)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h, +d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");if("area"===b){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&k(a)}return(/input|select|textarea|button|object/.test(b)?!a.disabled:"a"==b?a.href||!isNaN(d):!isNaN(d))&&k(a)},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}}); +c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a

+>1>kipios|#o0DkmD6=ExagoXT4^MO6g+n(p*g$j%&TBq^MN~EOW=<$l|+K(q)-s`&Iqaz~=xRxE_bs{{XLC`)H9$o^mV^ zZD3iq;{zT409w%q%(I0{t=E#X421x5k6in4U6gOByfQ2nt7O{(u0R~;ujTyf99hR} zZ77#hx3`3#!yJ+UZn*piqJ-UB?Ac#(bFFAQGKkdbC?e=e9mF1U z$@iy2i@+3+gdU z8oEqEh7)nbF1}{w$G;;d-mY4^nL|sXMmN5T%r>$@Eg}X}6EVjlqLaxSXZq8jxRVJn zxrMEpExlt>5wLN;7&Rc$ZVJHnsM?0q8&L?`5$-meWPUYLS#8Lk<|rezo+bo53^`x+ zknno)I@WzlEd7c}_moM{#UpjWo8@WzWqbF9AJ{aJ04qLP_qP&|D?d@T5l$3|m@5 zjAK8YSCKB^^R-EB;b}?`Tg^Wx!NvjU-=#$yw!vh#y|mP%w#YHDg|`#VMiD~8JQ-0c|rDa{i-#712yV^X`a zjmhU3?SWVtT(*&F3nk>q9DZ45I3O&U>G)QlZ9ej81-$n%?Hge#`;X)NT~2A+P#gBN zOUdmcwu-Vs=t&RG6KExEaQrQRAek|WuA z0)6|`Q`=lB%`NBIw@31+CunTo@s6C(m=1rl%)8sol|vBG$k-inHl8{h{${L(jV`3S zk~^ze8FuH)4H@Ht4o5$YLk+YS3Xr?Kv$)&Q=PuQbn)#^nWIlB zB=gZ_8+UQZ2N)oLN7wbIT`_}g+>I`ud^clcd0EafGmQSGtu?gMEwssT9mtdJ`H9IG z$>%*d{V31|29h~m*`Ib#D8rG*O~8{&=Fbpi^6kWGfmIoPPzSDXX(n4}Hl^YT+!7g) zusU!XzvJytrNjl->~dT|3bO+y;@|`54;?wl=qX#M44W5H*(=#Zh$a#{$H)M7!2BvL zT?0iWyiCFj?*neoxc(7UrAu*nzB!?}R$vsD+(#Y9>sKb3NSy$*+E*&+mEH6|g<8>x ztDL$_B9F4Re-6ES*8A$th)lfsa9jHsCW(c-;6~e+Deu_lzyAPQr?%Ctt>H+b%Wr4gNx|gc5KeG(un=T-4$#cM{t)r3##oa;!7cfmU?)7hz7u+{Eqx=Lb0Hj+|0@ zh}f6SHq9WJ;DyQgS%Q*1MOA40xR^iM{>!(8c>@C3&UorE>sH>{>Ni-UjL9B8Vl#za ze>$vi7>81&PBPsT$YA+(f|nIhDZ*OA(*Q3bm$blFj?ug^d98 z86f>maaoarZ?-@cWKu>5-I66j0n+oIaHbW0#(wdg0CuxMfOBXCg2_Kbe-K+t_C9Ujaf_`NCr@jt->z$RNSyUrD zsvB!a!z2^!_*Q8cS+lExD~p1p$#pI|4=^Baz-F{9Y^93vSxvkdOorv#++>mJJ6AVo z$(EJwXAvMwY(dnX2tS2tZ?Kve?f&0%$gR1?K4E}QTzhn+!0APv;tba}G7jH1&_66z zLDM3R?bO8gFob5@$2%W6!0q}~IVH8&(YCFqGWP*;4lsWXqJ@^p9!EEtoP~ktak!2< zW4CHZ3)c3!glOx!);+`m0`y+sfI9T4BeS`kL48Kyaq_mow= z_}}v!b|7@BmJvCE=I&|48Fp7Ci;u1|*P3?(7xr=6ZDo<9kgmjip`rGlS-|<*+v6h5Wd!tx*ckXELth zSR(@X2cJxgp1++-V@P(XtNorgjx~8n9JjCISeDlpH>`p*@}%Avu}tTVIqzC>!6=+8 zwsN#ge}j@bb>xmY=}+^Zv7LhXffxQ-I-CReeJO}_-jjE7x%*|*`2*!*00;1_mCn}6YqwJ~Dhbd6gX!1b?wZ#L&U2GgZjM`7VG73}-H~zz zeFKbtF@T_{^b5mVh8IfaX#7b0=$s~%d{(GcqSec7t z737a!Oi+x9+IzLM;baT}Y+|&n2{7jk_usesMxoD|V*$fB`M4l~%}-#;Z6YLOlE?Kl z7ZSCM*5!A;Rzy3CV;{?{U9)AoY3?P*mOvnWeB-wjmlW)gvNx7;b^(!$cc^bftpsw# zB*GHd*$B%&u|0(%`V}wbL3Q?fb|&B{Z2AN5*w$>MO7=-2EJ$TRgUL7qllltNzlO{a za4uy@iC-~JK+Z4^>C@h_$R=BENeUz?Pw{-9XZ5N=TAH$?uVD~KV!0%SWMhCva!zT1 z5NRSsl3OqljuH47Jv|5+sPE08KWDtT@*_nJ7*{IJ-8dt!6qoiMWJtbxLXNS<82A2AyrT)QJm+2*8}ySS{Sfu*Y7;-X{0UO z#T1ElkQuRzXa4}NQX9>1$qbH`8e@_B@auv=?5s1zUbod(bE93Nv$2r?gtqWW!5sep zI*L2EFXxfum^6eG0nwByj!7V61CM$HVoIiRZSS?q>BEsJWCeVb^aS<%sRSA@xR&W* z)Gws@Vn)GSsTkx8WE|G)cY15g(UD`Ea^6`1xE=G8?L>E0k{SHTZBYa6KxS-X0|a_^ zpsr&cT{g~pM@a2PnL055Z2%rKf$8N3@Azl01uRNfPX5)O+HxEBk6l)zzG^m+j-7dk)#yo3IG`qW#f%PFDg(#htH^0r7nImU8x`qVP%jc+T>WfTzFh}-6O+&#`Y z;~Dqjvc{7$PdAZZk7{{UTgRyG#q=Y7?zmaIS_ zjKqgM#(Vawx}BMumYB#BG61MDM?g61{{Yvb`jFA)5b6dw@ib2W;9=Kt{SIqMbqFIu z72{};%QCm!2eHSfIU=-ftjwS-%H6T!AG+m^GmPV!&yzz~k&GtxFn;k0z~l0#$}2QO zaF-X>ks)ao6eJdjdi{NRk4}b?2<~H!MMwqejD>jLV~@l9Dzn+@mfm@{H%%LSzcyE% zoqN(gr*au0zpwy>*jgY}&Oc7sq?15jyt|%jaShG1<+&if-Q9n@54Bg4`rzB5PYNx= zs-qP@G^!6Ab{#pZA8)n4%olSyMxpU0M)l}MJ%>zHXlw&9{q*69KQIbOU&o~@_XJqe zVryiaHV{85yTJ-O^XthqtsDk;XY$3(!C#d@QS%P}07KTW#g(D9V(etjN=VETfPDsY zRpGgNdxb=vMN^Ohl6M^U^c6|=8fQ^)q})su;nVJxW#tJggU?bvp0%4DjpAGzbcxnS z1iD6?NA)8_4?J>f zsTa0QZ4%!!Qc4pKl`IMGgNz#HuH*3C&DuuLxIjKr7Dm?H>7Rd2)R$mI-6HSoBH}GV z_1tgDZw-~}$3IHnyR^5|6cHL#sWMn$3C5ZrE2N_0Kc}2Zlcod8%RK-81)>HN#9}I*1;!( zfsWp^)+m_X!F|c9Gue5nc26?OIR%`yKMdA2@v9eFee9&%#VV-< zTgeVeu?IK@jCSc+_bzQ^n$qygC81CnZktr+0m$o;4R zIs7TH5N%oI7k0&c_gbzf2zWX2wL-V4ZG0*d_&|b&-huK9y?f(ivQ8P)8>6 zK6Tm5sy~<3x%+pSuAfk_mM0}ZD0pWB_*>P7u4xR1!}@EiH?qxd_LmWEjRWAf%-QGg z71ThcO(|HymgUCt8k~gBVObh9{JTzUTw^aroC$9^njWA0lNoPLamepo9rcZ*@i4hf>x=+9 zj8~s(aElA5n#Or1m0KwpV!-E$r0=0JT~2}pjZihNp>-Ok$`yt|;~4`ZJwg1cv5pC6 z^Dd>4q?`9`h{$XxI3v{Lezji`Nhy}?6@x~(3Y-je>P9i1wPGu438YlJ7qQI|460iN zbJGVs4&Idw6pG;6kj^J~yux>hq22P1oa5W@tBlr<6I($$OLyfLEeIhQLFhm}hZM`J zxn+)DvOz2oyI|~Lw2b|J_g%%k&Lhdf1VV8LX2=g9X;w>+3Z?BD&9DvmvZIZK+5Nyewn1-U@QHO12w{> zv1rEqtQofho&Y()J?gVbf4((oWtE+GuJ$PFkMCe(JXVx*T0EKZqfirIFt}z@^#1@o zYLYy;iZHiU$})mBeWkrNjsfaPqB6eVF&5@%L&P-4^Rkhv7TknqfN{w*pJ$Ll5Jd&F zEuXr@_8fG_80bb#Xgef8Z)sZxX^vF@5PR+ej5EDFX#k>y&Uv z;Ep@<#Z?yUW4O1qR$-l+Bsg9E&F{w)?|s0tGrV@l_c9-`yJb{F2vsM5N$E!;rLHlaf7+Di?`JonBj7hof} zAwx##VHWs)Vg_0x-Lv`uMYq@>wT3N31)phF$=oD4JdAbDeJS!<$K=5@8*ZXei9qX~ z=dbBm(fLN^NeaAdyGr?T4#4x4>N@^j)p6AUBr6D*`7=x`3hYATYKG4MW0F6WSQ48_ z?Ia`4i+__LCvZ@DWAVmnqzdL4Hru?a(-Xa$_(|voPg>iwwTX%S&DvTE}%FMI_FGw%O2SXn0fs>AZl}`#Ru929S1_i!# z1yhWCt5s5KRDjEKadiypSb!Uo&Np=Ttm$=0A|@+AFPcd)vH6_mryYkTsXLuKq?hx( zsE*cQy_vUUeZ^o;01s?cNOb$#`57d+0Ye-&B+18qYW|(1$s~S!uNyFJ*ml6(o@=PL z)2DD+*=;uANp&O)`U;L~8M*c;Xu5T@cT-w4PLeJOb|33LhPCftv`LAM+S=ieW&Fm@ z(daYMq?Q}Sklh52?a{`h1nA3?kUpSN+gn&_2>0=A@?0Iu(Svsf9C1+JQ$B4@e(v0l zF&Xsu3t;(Za#!1m%FyA2!#s0Fl3<{atGZEjfTDY3RX2hJ#mj*S3Rvpg7IxFqnN+Tk`E8-$K)!}NWW#LtoGK=7unr{joX_5 z@%}ijhVls@^2eEJ ztqM(}KEiuRO3md#1nbER4s)Kv(z^(6XIRvW-99M603DpLJo@q8xCx3{>o6=kOe5t5 zTX!9CpU%507;gN@CV_03zVKILfDf?m?tSYyBN~fRmaTqn+8LmpH9*H8^R#3C0IgY8 zN@TQ|-4xt3ncib8NbQ5r9&1-sOV^Hgo9wFFfy95nPi*7RiomtLyRnUIgbQzPE9AVq zs}a<%Y}G|+phr-KR=1Ju2bzGWAxI+}_RlrZY11$;q{DQpha3aIJwKgux{ckn?2-MJ zDdS{afQ8#SH%ASr3+BzR;rb3b;)x)d>UOQE#)-Y4*oQd8ME)7$+N@jL8@U=a zSt0;#$&YUDY}Y4Zu*R%zS-i2s9mHpzr_#0m0JZGwI+s0Hj7-I%kFd0PEGu%b}>o7Bc*fn{sQNpGuw+5(u^~NeuWO zfXxXE*N*zp-@WXHzJdaxFwEM{}11aA7KqdC=1o~svvM)4QMVvEk z{pRe2ZZp9=_4KZmGrBc(Amjs7tZNO3t`(W!Jqco@{Z#(|^{XP?qc+bo$s;0UI)i|5 z)A6mD$q^QAp_GrzRt35HJ=Mfdn4)JO=caSkfR@JnmAnEKd1pf|H@Vy}xf#ddQJb4N zPA!?;c?5yMHJHg1M&jZ3m6Um7V&`)DaawU(#8s|B`4Qxh7@V>9^!iX@MYLPIW*qXr zDg)OQV!&^+f$&B~ap}!NI;GK$5Lp|E8iyGU+p+bN-0*jBB=Hx4vS1f~e z;l~*szny5<+{l*fQ+XLbHq(H8IIFX0-fDS`GpxP)g{wm52ra_LaGO_yoMiqKu3gSv zXl9L;=2+);&&+m^Hs?HNxa;^;8;z@|gxn-wDm|q}1{udcp{-eU$z+&CEO9lt;NX+^ z=CYO~hf%wPIdxWvRGz~Hu~!|+hUWVua9`i0PXr#UbO??K(Iw3#f{IF=QvYW zzR?o8LnMfjw?IxaSz62&7Y}5xFxsTM^NunH^`woZvDw`yj>0%m#7wb(Gv5QHd9B;a zbvT85+nJHe6Z{}>03WVv)^1^0;&fm@#sT!MM$^NRM|mW&7fy4@#c#ZEDOn0dybK4x$RA(Ms!OX` z!{#ZSCfaa9oRQ5JzM$EFwznJRNc52cu?rb;0Z>j)QghGqt-E+{U=gg1XKiYy8&f%9 zj)y+xvGrYA8=G0ga@^ZAYzUD?d-XW}xa(PBd)ws-zSxcSsh>HJ+MTNT zJmrmT!J%CFip?xmtOpDR_g`$Doj+PhBpzlI+ODwdhE=;Zv8WPF7y*8u1N6^oZM+v# zG^&p@unpTGNXN^Z5_j~^IqzMyo{?>8?I;f|!;P-)a#$Xt9Wm`zEaOpc5l}JDPpurt zNu!vy@b%Z0B6#iNiy?`b%%q=ObgrxH7Mnt~rM3X)5rO?G*(2p1l%=+YAZ2q)n3mfz z?(D68%;8{FIRk=6ap_Y1p42lU%If2i1ji%r%{uI{g>jr25P##su(c~Y>&x4F$ZgsL zP|?Uv-Oh{-?Qyyh zo?_2`P-{R#ca5f7Mi|?J5ym|}^;FQNmRktK%OI6W2Xtj{Gr;%b9FDb_4gRXv^2CB` zi&1ijrQs?(y}4%22SZBE<2J>tyOI9SrZF83!U!JSaaAB$T_#7cuw?Ta<gUjWXTa z$1SwO0fci6t^nX*jz0>mG&-odY1Yan8C||xjE?Q;OR4HM?Wsd)97GpHI|M#`>zV zpDe|0tT;%+83%GsbIn6@u1luPExfQnFevhkr2NNzHuU%JTTgKvq%yputN{a#GqfHE z{0XIY1~tjmnom4I4$#8@qXI`@O-xRuD1G z2(Dw<*JqT(XSNStt#;VX?kcGyUZ@;qBl+&9&NC+3`Q(x~WwyBcK+6bbQMjl*Rlgqf za!Z&lqL$dhdWDpNHsOH$YW$GLI*|K=WDv@5NBQ)u@u!=3t{55h3zy^>B>9Q$j>8_* zb0Hk;_Ky3S-q!YE6r~R1^93V0Uwq=L+*!{gC8o92SfCBOkPdybTQJ9}qWjnUAB9|P1YX(2HOddWoR->0)~nPMS5wX2 z=28epjP?Kx-_DR-N|H#*;aL6c$=lP4?e2U%3_zLSiJ(OR*ti>i9M%N-4YK)xnPZW@ z@09z<2iFy8#L-F}g+3s0Zt%%!MsPNxVS4dd@26hgBV9`g2_f3NVNiAbF-%Ksmm(IG zrH`u)GweO9u##EhOLHN+!jJ|a1r!y>W6%EpuBz79(Il18&q<*~j8t9NNQyAQjs}0N zGV@5Bd2WqsDya+dK28sOduFiw=x*yw~_)*35A#{ z`UV5_rkJ_e$*ryRti|o+cvEpzW#~xb^`vFIcYB+#CR9=~K{-8Zqmo2P3M*Qpb#00W zIq2N^->4{X+ZX%|p5gbRS#BDONhwVCicGyg&`9m?|oDZcx zOSseKk{K)!qm0P$oc{n3#&S8VJ2nyk@LfP;Y@EcI+BnF`_U+!CB3^k>NJYtjwo%$q z8k~=m0g;ZQKT3-kqq%lfd@;c%imzv=+1|-<6}vHL+iT=t6YX5Qajm_)09;tZd9}RB zT5?zp27B|<=}(&8_R`Q_>8)=#P+0kYBR(^co{h~%FLC;vbg;oX7^RLmKZAid;3#@Rc6e#vVx|Z<;J;A6VU0m19&X`@%OnrSS=cP${s;L#iaP60mIqkY8LO6BeKdw)8{ z>MMXcB9rqD;Dhz_rMI>J07;KF_jVHQ+}j%{;2h+dn(Ii@A8rV+k=x}lI6_aiYNv9# z&XgiBI%vdaj~OI=D><%UwuatYG!LgPa@pKt zJ@PxRI5nGnKAU|kFWR(1(1a#^Wq}}yKdY*zLWvaUCVKA zw&vdMM}kQMGM3y4{{UsbE-9g6)ewD-ceb1z&jI5t>PPkGtzMf(nhS{^O_B(qVU~#J zYaf5}#sy_qz_H)D-A3@2OV;!p(8yx;8Q?3JjIR}2)_~;7|PJ+VjaX~o3B5O zS+bt;$xLlL6WS}4a@h=?yp9hhr?;@Qxr*LicOLuj7hZP=HT;=dQ(orwa!Yyac4Sr0jO4s>fX!)REg^!CdN zg+&2b%XMx&IRo&h*8UlSIn`wVj#fxP!TwcV(@DI$^LAYyJ3F0KvdT%%C#b0JG=k`>N#>&*@bT9aJdtdAQ&E#q}?k<2ld>6ScxAB_&h%u4?NVwOY%0wo}iOmo!J zE%gV55XTf#LFMg0;0DT$bMICZW#g7YK}Fob8BX4~`Ekh3KRTIR6rIKU(;I$acYYb9 z+#3Tu59N<)P@*PXuv_^uHw0v_xB&DAj%o*z4YQ-X?J}muQbVqDf1oSbct9A}f;xb>@$MGu|xOJHN=+iZ=HJDzyY9cTg= zRN%&~0@NR520rH6iTj2@UY{J;>fh8Sg$l|;_54WQ+N z9A=zhk;=&@l@xpf`=7cnPDmZ9HS)}R?gx_sPUsN0%z44!k9^d#Bh0FkA((D1-@OMb zj9{GlcBkkCsb<7wA0$d2tdJ@Y;25y&*V8Djan@|x0!By z$jDOh#~TbLf4q3W9GXjI`!s%WEM=83o&kOc$x+VUr!=i?K(!n~a>!aVozxMzj^Hpk zINTpx(I-|>R1aU~>G0DaQcfj@k z0P9qime-b#z1Pc_4ck~`3{}#trM|vm56O;fui$%#Ur6YcP!ktIq6t7vZ2&oTc+}( zR=~*V*T2;DsagpIw2-fo;aQKEI)(Q9scjO~Z5z*wnH(^8-IAxa0IPbArAr-Ml=rNg zZCdPZ01uQA>5^+od9N+wkz}}*;m99+s^Hc}g>=H+7A+8E1byHM$NvCYmsK;$szXNV z=Yl01@!Qt3Yg0R!#^&boX!aYgq$<8DuUb|ed}J|bPAG~u1VYo zz$9bTky+Z?Gi{tk@k|ad$ET)6IPPmpakIk&T5s8qKo|nj4cRJr>-kg`cQRVUmaP@A z&&&*iA&0T818gthXxDGrSwkziIbu4Bsb=9pb`H7>#m<~*sawibd(~Imvi$Ur{~2}lkD*9bG48hp(CHD=jl}c0JN5AgBV`o z09&b< zUnbUTo26OiWiG^EfPR&VmL~Gz^l$PCAYe0$_s_pdX`(7gi4$8SPN&L^@Cv3*0mrQ* z7d~yms@ygJ`>oLl=L5I@0IIFEy^jU5W?<(X@lcl%l!gRgV{f{s0pFvs_u;G<#m| zFr&=a%0~W2-Z}TKbemSYP_a(V8}9-LQhombr6eO%YF}vrIVFezl`3M~82a!l4){wN z31hen<$(&Tfsaw1_1Ec_kwqHY$}T4J8zUecqo*g{ptwr_{$ks{3lOApkUE@tQv)8} z<>K;ONdia|;9!tXsrpvz7l|xOZ9UnRH90I0<+#q?J9?k+t1#+XU9i{$qA11NFz22#`2Llps9ZEDh{)g8pn~c@vOw7@ zGGLHbspx&WW~plnB+$z7%!V9tRDwsfD}m4brsXb#jVrL-!tFnvf6rR&bi&T1%Bas@ zt#Nip*3-OKvZ^i%08T-`2O0IQvd>u4Rums-NShmoBLz-#A~~r_^Z0p7Sit;CM4|Kq6*w}sG^?t%>C=O*Hy-NBk~ooAm0p&+^HX>VX zwDKgC?ISrqx)|r{R#c%_V2S3NXaRD>vHqE@=%Kco*z|AhvBLFZ5-TZxdtoSA?3NOxh^sOmeHQ=jz z7@FF=tsE}E?Zt4c#N|ljoSN=D__bIaazhRoPgVS@k)KVvg_#)|X!|hdk3;EAXja24 zteWOQwnC1-HV-^gm@(EhBb)(rsy*=;t&KL!*{e%2`OiU~6na)H@8s%wgGjCi+Jg`V zPx`v3vBPp(hA*kwDQJAWWT_c!Q8cL6_Lm|zc+_C! z4tw^-e=3Vn)T9@7lH0>`DlXE?fYsc7FO6-elkb|XD5T& zvu-uZrji!4Hs&Wz6^RU6o^g(PS1m01oy3oQ9-AGEZ6IkOjTpO}V?8m@_QhO|8vz?$ z+-N$D&BL4!#e6{$*r@WxUZ6j#9l%-ArZ6uD_U;yj~dbM?`UCD266k2YfZ7Des#qzS_ zxdnQA3ZPEf7H#}Cu(R8k?Zv!>lx`)@v!0yb8r_FOvxr;e=bfU?H?~6#cq67OpMvt| zPfK~1P1SCsehhLkF1S|L;c1lXVh)YN;S*2m&si&X3t3je82h*e@d4fMSV__)b$lk&zopA z=V?%Dl1XP0n54DU3XV$|zE&M^fVt=%$VKP( z$`2g~t9)+cWSZe%)TDt{;!7QB;rE6sDFv_r=m5u4T94vKh{hz+uVGdh-ux<`LUGsH zi#>|5)8z6F4Mi($hGrcCvHdHSlf+ZYZ6?hhQ5%U-@hW_dKdiJaH(?v$~SV4&k`>sb;c*NR}pFE)X{1Z~z{krE{=qclNMP6~2yMG;$LX zef7!YaodV?`qlK2+(rGI3X}j9lb6p>IN*%ZvjWt*eYKnFr7`F5z2|4~BOxJiH8#HBVlnia7zDEEjhB zuOu>{Uof1L*X12OYc^Y33%tmhl=kl@?=WTLbnJQ_KMKTCGrizG7mh%<+ra?vFuglw zqLFSQNzeQv`%IW^?)>il;K<`WGfgBVxw!3VYi{P|2H!h-iUz149M)ow(>9s<+U6&qON zc+U;bABVkU>#|JH+!DS`umFTXfiFL$Qrv0kW7t}~^~{$$AIaL-ROOq~{{Yur5=9;2 zNf3hczVn|ff{NWR52a`6x01zaaFJUg_b#u4)O^0*UwYECxVslS;kA*@(#$;EsxVh%d}Fnjf@_V@R;aqpJYTv@-~W{^J4PDTe_PwP%iQvOSZ zx%)k<9ilj+E(Qj3pJVt^R~mLObZG=nHJrk0h}&zTsr%XM_*ZuXerv-3u}6k8^AdMu zi1g1)0bXwn$}RKHBKb&}Pn3Prn%=e6)5{Eiyuw9ozHZXwaguoaz3EMLB5Pd^(imm) zWLY$eM=Hh0k7&bW^VFV3IIA<8+lxqGNTovMw-~mCjBel`Tzgk54x@2zJKV(!d6x(G z#iRpoUY@;ZwYs>B%>*wb5h%*3x)@`ej=eKkIIV$kcVE^ICm62%;Z#w~kJF5uPeqcMB3;ThDoL z{&k$D6+$EV)NUic`S+~5h;A*mi-n$8TZU0LR_lOC>A>shO`1J!{{VEi8fcD1QmGm^ zD&X}Q&l%#Qoi#SMfmcTnOlB-cnVj%>-JjB_5=|DNZ$51A?9xkaHU@CaKObKC6?rtv zl$_sbT8+Y~8F(0it;b?|S2Z?~siQ$O7BW1emt2pO{d3P+>0-LptqgI)q#KBc8{EDy zd-0xVU@SW1t8?}(Qp)DmZ{d(8QNZutADOEY*x70iZF&fDhvj8+^AAoBAN^{lb9buT zOXN+Vtd^wx_F=~#-RoS zk-d**u95F7ts;QSafNII+(|9|Cb$pnmX<3UJKIxiRaMc874r|*usm~Gb4RJ_F}#;L zZ1Khh_|YU*1-(Oiobn0jRpqy`d4N`Llwd-Gef8U0Hwt1u@+!@ z-~w2B;;?phmiDtH!FSzXh5HZg@ckNVPPq2`q zc^46@Ch!W6ka`iGymYRTYprJyI_MVj$lSjmZT)$rl3h$n5q(QKN9xyj1mPBYh@m3?&`RvV)m*zALDb0oRr zvBBheQt6tOtM)L9q~stfr_B509*5GE*&?dx46;aKzp(Po=5R`b_>6;9!bf!s&n5iw zs2ht(fESGI_aJ{dvvIBJ*6_q+(G?w^V#Z|{JaL22(Ms0vognqBm1EH=DO?K`{qfcmrPg}7)A~b z{(ZVvD}2-5;uN%DG0QT8ouk)1>BYP1XEe7oMbNpO;kmZ+GPre7(N9HCG1HDsTaFM} ztx+Okz=7sN%KCyw^{R1`610EWb0G>uWhBP&-{^buPBInpnXN86)`8{-GA>TFHzkGUEp?$8W~7Pnj%j40>y@k0lsL3qDU= zz`hft=wc9eX*O)cuIcqMmt$Irbj%U$DCBNqM0UzVUB6z z`Hs~Kvy5cpuQ=kI&m(;4re50403W)TsbD{g7{x_zb0l%b-)E9Wjl97)=-`e)<2gMl zt*9DS$Zg@0;_W7vIbwtpB>wH~?Ndc_16&5WWR_9#soEFHQZw^p_UVEBYP!A5muqu2 zpLps{LbiW$dSKvYn9|-zB$4#nkXf;@Mm7#P`?U>s0%wjCj#(}lV0zsXR!(5f~8XY!Rg06EMg+cbl zI`dAzbdPgsJ-ohAjFtI{mBAPzJXQ_u;Z%RL6nPlnBDO;*JTV8LQ#Grx zk}-)G;~w2IO+jN6^4uGlt(s!_Z1eK-!t|<)Ex9eHvR=I1N zbcPGNbcL9b3OG!RV;THv2;;k1QdHA#;b!~$PB!D;Z~4s^Z+~-Z6}`oVpxAST+&Aa0 z?BlgJsYzJ99hJgQ9n?B=M9LkMEW?&=r{6eHS~hxc^DgI^C$yEu!opmc7bNHNCb@g5 zwE-hM*7u=Q1<7o0IUP8_;9%$0m&~3<)?S?< zj^;LZ+az0&Hnw(y{dg6jHO`>RcI#!T#?2!T0&dSA!U*Zd>sfdI0BC*curv;!GqFr> zIPP)Rnh>sSG&b0~bhf)`9FW`tyn)HbKn{CXJT$pH>54%*Mo9T~G4$u#t}9-{SOuY9 zBwZ8F1bn#l^sRX{%ZXx*q0%pqvu!@B?r=C1)`DvLl&meIgi9=uGD?GRBe7-29Ag;b zvTn-Eky)vhIAYs^K>2acUgnk=H6@OBYiqei{ysu@C!BFllgPoe8oCY>d? zFA*%ms0XRfO1E|r>&et$x4gDyA2X5njz0GsVzbxHRk)O4Wmgz%aVOJ`Yeg+CZ0cyv zg5J&vL_+!(K4ALb7l z^}yp9?N!qClkHax7OKWFRgOmE$KF3rT9cZ{s}$4O7KPeYx7Y)DoE_c8K^?c-H@IUO z=jJSOxgXAwYwxyB2G%Gr%w>FlK;RxYrpNZVtR8!S4WzN($yUH88Ry=r!6f$rMOj~H8<4bzYVpvK-nT}fYLQxA zEtT93ku*pb7z{ug&-l?fJK2JQOq$VH!!)Mm>gr5#v32D22DAgnk))foq#tx5pdj(s z{{UL$W0fL}<7<$u$#w-uW8Vg?+xU?~HN=+}Pm%##FC(5Y_|ail+>%c=7eX)HK_Q-T z&U4bal!j!PmG?vgkGsGN?0su;4-x6s&|BI%`MFW^7hE6rx!}}q;yo@{=Z-rqjG&N9 zs0RnJ??r}@sT2zsozAD_NXn`{Qc45IO!YbIR;7S%jQ;>@q*B3w$-oEPXPz-!-R`Ls z+RHo$Y}|4(6tO;_XPU;6Sq|w4g~Of!0JtZqB9NKZ$9F6;ED`EQ$~nO*4U&Vo z8sv6A8`@qBjpS%hG0PEtQYt1?-+TK}0x^;2ULFbeHdi`sjT~%edF@bWbOR3wm z05=nz`Q-Mikn0vZO{?47&2R~CHb~S0N4{~7YE~0A2BBiE@r#RD)N(^`N8{hET(`Qi zodfwuBP4)IZd3S*#2WUMGss%PVJ_dBdMF3zN#>$&5?ap$u-T=>n}y+>6+rp|Mrkpl zqSOjYrr!B3qP5-J8oa~fPy&fp4`%DuZ>bB$oXxLC!qPwXokvHH#gSm zC%TEEL*3&lwHir0pikx8vK~a6NEO=2ey&d?jB@IgXk&J$o_ngLmJF>WaGEvP*~d8Z)en`Q*j_77`kTzsrRN^M79%8 zs9k>k;be&p;-dnq&I{{z>e=F9o_$c%@Z!=tnCeoSn^{z507q2+}yU zYqWr~fh0L3l5$aj=j;6Gp}}ffJ7T|pGeW9B<-YfR2e0(0Zf7xT8dO9hER4MR0Kn2U zt=ZIKpAx)7?y-<BQH=x1I0Vs(nij=s1zy@q}ZP`V148D z&q~d=zq-7+7YTatu^WD67+<2A&yZ@{EasXS3ryxTMqisfiO;V;l~y-m(&FYDhTSA= zRP7!9m71}M>5$H>ktmgClK?Tu$^0sX#-OrKC5$%fb#^cY{{XrVx%3=YA|}*r)(eU4 z%rMFc18F4(ZQO8ArCqhu8%ALP9n?tF1bCWqIJ8&f?3sj2s*V2dMn2 zD}7e^kI1OqrJC@>{s$p!Td6n(E|8$fcN(uwW1e9drFD zq!v3Hn=1)#5?OCN|6<)#! zgy^!taptcfl{W$3sT@`7KenUp`v;Uu9jwSO7u=q6OjarZp@af9x|sqLRsfU1$mbnt zwsBaNk|l#yR+=#r9h?DxGCwN4_U%wdJ|(yd9OK`fI<^W2jpiz{-!cw+~rwQB*% z^zA_h)c#dG!a3&9?d{sv$dYv?;J$J=VhXIi{tc0N_9$zg*{EK!D2}o^;Ft?O?u%Lfst(mT9OK@$;KM};B>ljDN|gEx(Q-^_bW2HPl2tOm&e?A);5QgOx>Y?ZO2~VO zE~h-VmID#AWUnKk>0KcE+=IcYHZm-BZq9HO<<2`{jWotke-Bz1t|E?WxctIco!P@< z8OPHN&Q>F$zJ)_edk_T0h!WZEtfL zUBZ(&a+x^;JcH2I4xxQ}Z4=x_cMP$G3$;)2U}v!JpU#@|1=zNuOAEaP^n0cwF4)78 zLC>+lsqJObqmxiJ@y=w55gRKo`P2-6zmVp+m^?vt(WEzOV|D6E{qL_|YQHClpK7S` zC1a6@fX+PurqNuc#9Hi0Zl#r^lgepAjy^zoWd8scwR5RGylFHyi+isKSx9%h2+-I63?HoRv5o-@;$zR4|&X%p%!vOY?52R-x0T2`=FttHN#97Y%<)lx7O zL5%PL{CI;=-hZ)ar@&2@%C7Ekw9gw-Yd&}n8l_P%Q`BB@}vQ@1ZMdr_}hD>BAEUMV`BmA1{ z;LAyP4?!pN6!*A^as!DNc0rT+QoV#@e`djZX%1(-csO-ZKs`DhDXRia6bySG_M?YFDpSZ z97xIrckcA|7|m5lV28|!CJQKS{{ZUnAE)tWp1-F`6}J%UTjhIYWVW-~F&^gyiudGx zW~YjKc9C958ICsmk*cXvk&mY}6memSCg{{W|?MU9loqXR7}WZ?ZOsTSsYb)2MYykv=3k}==Yx93_D$+je0HiBy?vAju> z^JgQTzVw@8M-bY5m(DW=!E!uRSx)4Rnh--58>d%T9Sd zVgWcK2kA+1aBNMpJ(9%DA>0v(;GD;mjeon(*P4>TY2im!n(kDH?AWma3i=X0 zzm+!H8kV}5Fl!gkH<2V(({BDSpnhkyYscbcGOHgl(5V3M3g@P9G3olz4WO7^{{YJ< z6AiXV@^ONB9@whZ))tc_HxK1Y2?R)SjjhKZ4!)F|LgkA(ST#!~1MJNDh5TSL$mHOY z!RhEK{KU-SOZQv0Bjkm0BN;!%-#u&38%DUdoPx3}q3H)umeCq%<%qVx1VG^<=dt|1DxnR{-R$;kbpakXe8Zoc9eZ)w zvMwN!>uiz9=SQ8TIuEWf)1I}PW*9k&Ru2~D+Pkn+W}?OiV|8-y-Rw7)R|tR?2ml%B z)2~zdR^^VNCDSssoy;k>JKSI&@y&VsuXhyg3W=g5422j2{qD86y1t-n<4B~69k~v1 z^B~Ru?~knv4#H$f2E$P7A;D;hl}#@Hh)A>DZn=Oms^e_YmEYnLT3C9#b_#^&5e z*!+P0l_ z1Fht-OC#-)2~Y*cIKyxW!0X4>x}7fMN2l6{j(;ozmIz4T`&O)p70g>*5@?ur91%+F z4qDS&h+MV2klb5c^1y8-IfvoX>s>TWZKzvsQnEth2M6@XtY^`Y;JGk2mhv*U&byUB z?7o%FNoRASOs{6sCB&Fnd2cB)Gq@b|&U%AM*@4;1X>DZ$V%ijjGc;s{{{VOaQp+9t z-3N)ISP>2vcMjZr?hga{*DU(hq?S{q^iW;0m1U9)o!}62z~k}7bT*pipMMg(Q~67JRTD3oPh-`v^7_IADf_Ta``XYlF3&OZ#)*5_5YNE#c9e=P_jEOO%nWsiQj z#V)6!+sp*bA>Et+azkgZ_p6$Ioh_n_6t@`qu>POUo|X|Hw72tq)u}8Ed7qGiPs%!B ze;Rh18!{})o?3kBNjNNboN?{_YeFazJg_X%9v&`nJ;I|h5X36+jFX-XaF^2VF4pe>w^w1Yn2fitC%-(`r2UfEyU17VvCY6>=`3I{0RnBUbW5*R@<_W<=J6Az;SX*^oXQ zmXA5lQ_m-%tFXzYorsogbod!>Cmj7h8o;u+i4qkSa^75w@D%Mnha>ehc3Yi8&0sFA zt)g+(CCE&AFdUkhEo>3kvoc2Vv~kG|rhu-MC<2^&Y)zHs<2s-dwU6gag1@1-kVk>PUYC*3L#0Y<$>IMuN|1J?|umc5PES_V?!EsR=toFYlV#L!5uzsgX!yC#gLFgE5iaLyH3*Q z03O+{HW;Lq=2nVEAcQ3S?xQ%(ZXH79=D4s)S~G#PrOg1g*8ok^CHCw3E z0fI=$kp2UuLN)us_WO;P+{6ZOMg}?WRhLJ&zT140+em|hoxxAkWBF6AZsF6Qh{C^6_vy%21&`zOqPghe z`zB|(`6bUJ4xg1e7VBoImQRQNq4Fw zXpmam{ha|-1gm6>bSE5V)~f01CA)x&o5gnpzG#NlB=V>50=njkCQw-;JbF|&XJH)t z%d1Ba`$g@7?d>g`FM>dn4wvIHda*nMi=t8*jFA~rHKU|=vU!OuVk zd;`vEquSa=E#0iIz+<_$GZu_?I2})4%9>-ha}wWtF-v7|;@m+Q5J@2U7?Z~yy#7@c z^mfqNt-y7S_mq|?kfncEpF`MnV1OC z*>EwRy2snDXt7JNnf{X;raN;p@>>kpDt@`5NiXMf1KW`v0VT4yC+Y4@T(oN`HzcvN zslnWzd5@>C{A*n%vS$&)E~t(^TyFzB`cttsIi`VN5n69h?o5uufO}S?@|!dEWqX8g zDVf;vc6$zkIO$p1lyX{Kypc~TsSO#GlpGGE53O0Xfv+#7x|sw_P%w?o2_M3F&AHPS+AwJ5yuqQmhSa6hDqP7Tmp3s*Y{khNFcjeSAB{3HvdXbt zAz2x|SrlNm*V?Ur!ab>NNm*WKxW*fC_r`lx#99~H;bPIXutG=A!5;a~O0HywPEYL( zhd^XhYnum~kj&A@2+y$RBBDA?hs)&2DQ8piOfk0&-_oT>+So0Q6SEgyB zSdvF;8|b0ASABtiI9ITXn!Nl`?XhAa+trZRivfzzdR9v_jO<5W}yl!TCDkPjgKJPM9W z4J1m*b#SKVE<#(78wb=6PkPUrQY5&RbiR=oH9CdG*Kn#c$ioekWsl_ITjh zIyP{Bop82y*EX`fx(Q4}aYkX(WaA@&`qso&dWGG!$J;KUo<>iWDAOzMIO+A~s8%vP$0(Sm&nWadV z`ghve+7B_A@xVK9an$`QqrRL;VSYL~!sV5^jt^SH()LZK7Pm%%7kL>+O`wxhoy{Op z(O`ynrFL(%C}myFqpmr}wNTw6T?JJeJcS1bfH$7i(%9P1Z3~IyidQE&QI0X*xrpW6 zd@#iAf;J<+bH!cDW`tHp%vnUDH|vmaaqC)3e=LLnbV`B!%oF(4dAyT|Bv@p*C7rk| zKm)En8i&nUrdbB$!klgx+y`Urzer9RdrFexlYE&R;`L^c+vu}5_zY=oTQzld|!^E_6`vq?6~6pSRn;PMVX zl~ZZ=SU|5Niy$7I#&epnX(4El#LsUSQpY`5{{TuxjzuW$CTpvvxq%uGxFn1b>5g%Z zzf4y+;l{5cV6Nne@OxpgT}0OllP8wbMtXofdLN~7*N(?gNzCDcM(KnDiXC!;ndYHC*B^PA*3d1{kf^s{3X&X;t zOZ#RCrSh(9*zA+!Wz3tKkP4iAew3$C(~&Ocg3XNO42-^38c;obYTbsZX?p}7Owq|E zz;=ci9C}fGtXWt9Wp;T_0T%_jdU{rRUdK9CD*pg%TNO_>Im0$Hh532u*9R5K&t+=T zNj0_g?YS$w2_q~D~Rl#(V?}RzQ$LcGdpHEF_){rH|wY!iRj!(>az#hFSgUnXy zZ?s(Qft=wCTZVY)&s;S1AV|mXw?ch*AB8K3 zqiqZZXd_8=f0U>LXi<(x&mAjqArr-b+hj=}Yv(vSzm;dkny>M_rLstVW>L^%xix0a z;v036-dnp@Wssb&83&%9jZTEJ(%vePlgBJGXOXm!eZd{6-)@DUZYE~NMiBE=FJ_MJ z6K;}R>?fU&Gh}*X@G7j9B4%k8Ekz3exK>!gs0RRZ)0#O&V&&EBEo@{{Ai-82DfJa) zZ|#ZCoq?XD5Ht0zYVO|KO@W?UX_>&vgE3*A+3Cep(sf8AW`;N-f=2*nmIu&dKIWZ^ zwb9)ZpHdH{XWY#y%Nj=vjTu%lKGHxK-~-1sTtjnggEw-^2VodhW%e2BDx~J>NZ49T za&wU^xp05o=qggwg1mQHizT(ZGe&0|w=0ZxT>UEa*LU%#^DlI$B*`v^JPzIYt~SOE zYtJ7hQ<1a*oaY&?^4V`Aj{+-Xlnz;r<|q97)iySYNhQt0+dEy$auDudmh1x@V}r-7 zIWAFPxVM(oq$XGSC1n}sJdEePX_S}(WV=X7JnaB}MCPKgMMHKF4kjRyIc@>#NiZ_t zwURZJ=3O#IVhSi-+Ya0e06SoQwN}={QjK;i!7vc$v$BM%~J3_$I`jjY;P85r*y;{ZlJXm@!Z+Z@)mUgv(K-&sAb$#hf?#J zBOaWy0lASpyyMpx;D3!@f*Z+5-*lGKt_TPa@!vQdGgt>v(`C7hA%b~s6ctkKmIFV< zk9xK(?7X<0rMZDjiiahR^WTxsd(sP|Mj>$W&m8yn3m*OMQB;TE0mvOVKb2_36pnEY zr#9b3RO9f*Yd*%>#@^y@BH}>fc^vLlUO7LBH9+c@%#SVAqE4P^jS7a1zVREl=Wa1U zEgM%FTr+vHO*>B8PIoFCarCP4>2@XvrnqRM4630=qX!hP2 zA;YXdgTH~u8-Ln7`%o4+4Pq;cOSrD&Q6Mg>{m?q&HMB00^hPDQF{vc&^1`Z*cIaz2 zSGM!?^|=r{6RE&gZcaGo)c2_Lx3zm~NRnw+1%r-Qf!B`1{{XF8ZjGbxnyR;{adgbn zMG$3Dz=61SH2d#2PJ~`a?R6wzvZEdkt90xt7$bSW5c%^cIZS~VC)AGhX89KCNbNSo z9-vftm?YtG$j_m{rE!$+uR|-eY8KQ0&9HNh4&&{}{{SMN8$lAuBsWsHEXZ>hY@Boc zKb1u)NoyaMHIuwY_iBjb0tP@B=OdibTSY#d=T9Y_!WlRL2q6jn@4xs}bkIa9MF=ckS((xg6hi7)F?U&T+AZOhwdGWlv`+~BphszhUh+& z2yu={Fbpt($oX)`Irk>3c!I_VV1{IOG6F*6?%aRKsXW!;d6VwDqXV{?On&mV_c>*0I5fe!69&UhP%9WnEcoP&Zt`qi5`S*lXP zW@us&?NT>|7yzI0DSxrF{fvg+%tpa&&Q9)YmAY$IOSgRHtR*T zUy}B8G7v|e$3IR-N=!z~b`~)&$!%^1PCig-SfPmyQZz&CG5XU*?SV+jU0b*;6m4K~ zPtvA140#}9KdnbI12;y`*x5iCS*2ge%}((fQe}ZjhdZ4!)7^iSY4uQ=L3~*sIE?b z5ZtZcw|Rt2SPTWmc+VTN#~-MnL#asDn!?4QmO~V<+{6ozBs;xNJ;z$3b);L7iEcFe z=$jl!xPE=dCbk|sIj#5I%e|RM8{eq*6+M*61+}uyA&prStAVt1=tpBt><&L|)q+AI zxw+E<^1GulBOiZi*c$cqv{v&?VlM4m?en5wGJ0@7{Z-Me^_a8ocga%Gxhi=3#ZCAUlK`dV2s0$Qbnc)3XL}HjHhjdmD)wBmtR8X4=C!#s{JN^IEE~22>MR zfY~ZMwm1W>LH#Q}=gfmr`MkGB;eq*h9*6P$D*B+6BRglgatkhG2jup_=dU$V?q;{K zG#3un2F@c3NWn|xN+=+nG3s(ZDlPz#bww8OOiYur(W`irloev&AdSA9ivv z?laGNBX+^NA}eGTlFexlX%t4e1mxuXD*Re}#%G=@Qqibg!*)S$@T_m$%Qel*?U|X^ zX(WvB4+HY9m}<{sY|=}*6(F$~=cj7cdxbrbHN@?*NaT&;i~v-ear)OG2@O2$0ZDdn zt%6Q@=~G?YU0#%Xh9)K{aY^fWGz+C4bKm+^VXDh_7TDP`&cy5>4AtwKYunQ@-CG47P;gaGCuzty zJwd?yYL&K;ELPTX7~PSa`JgW5LC-<;08!?`<}=4DfbvfxBlOAktt)#;5mY7Amg9_Z zyP^92wRSn~k*%#SbeNeuvF1o4BqJQ>pvHJ!oO47^9%J96MH4)1%*>1gN00~I@79Zk zq5 zn$BQB8yBm8TIeoyAt1RAvP6XhnNOR3axgR8RB-54w`&djGPFg)xH|zoJ@M;8c3O>G zr+N06!mRqG+~Jt1L_kX8`^TqoST`0ivGd`)GnE8>@;{LN9la~HZ7NiWm8XhkEHRkE zkUatQKD9-3tD^C&b6T?)fh4KH$86`{ueAz5nddH2DJ3#M5HodL;2dXzRwKfRWOK&e zS(s!GZ>4sxr^g$kUEM<@Zzj^9Imsu02X5VJE6oc;EwEihZ7%JlcqcxG{3`j8e97p{ zDDAE_2;`35N0C6?!+qh7r!?8K2}VgR-c;n;IXr$;jN0r~65c$3`3WrhK?FA3u0Fl0wZ6A}k{OaR_&+x1 z$y^@5){FTXlrgoEqe+kmbMs)Hf6i(fy(;TZiKMuW+CWDGjA!fpDWu13Zg9*lTCoikKrK$1mms9YPgT*%F^?(90`oO3`OXZGfqr&}XSJ00AOs#`yg zO2*Wr`$F7HXQYz^p+n2R?&Cjndh^pJwG!UeOIR09wf*Wk;4m$L^(TQ=A7S)_(`c5@YUsqvAl%C%^R)d1bAVeI9NfTImnu{+02ADU&OV3Mi`;z%t%R5G z$n(i_b2pYZ0tW58@CGnD)wnEP9e_ouTd`aWV``j}$3vc@@vD~e-hyP28W}CHB#9jD zW#kSIZ+`WsYh<@EwewtE7m$|+J4Qa4>BTWNQO4C-&Ca0$`RDh0a$h5%8O{ea3q0_` z3|IP-77T-W;Pc#bjDR@$*0O1^&J~_}p&;w~&$@j_)~1_Hnn`7p-(A41j0Jw4qaK_O z)}_l)7*`sVr}k?@buGm6Y}jS;itZf=HD^v#7H}9w*c&Bt)PhMBHmeQ2u9jlHyOK+H zkOz0`>-{O#U@fh(A;1x+AC)+oLvhm*uuYT5RzIb1NLb%q;4heo5-IixoM-W_?)dDq zpOQ|(2h{Og{+p&7>+M!%l%xW7QUT;(0mWG6&VXKNmX^P3K@?2Of=AxT>}xhiTH!qZ z04??&x#J?GxUjLbNnltdk~SlkZmEQw(~yz4stSclS^lAjL`*;Xja`L4g&`l8Fr3Tjz_%(+>}LoBN$!V?9AR~?&H(z)}5(aOKx^iL`Du&5<#f1qMXBeByaR$p!LB_ zbt8{zeUU(t1tW$d^{MV+n&k{pP9jn;-zX)$y{J!9rb_6+w$eQ7bh@;-RfjCACU%p~ zD^lM;o>X}scG5X_J4^mOaZb?UhC3^jw0oPG;t7OT=t$&XW4JYTcL{hGb+ZIfm6PV( zpW^2yul1z&IgDTUMvJ=ve+k9_P^;vE;d6dSTWiF+euojVjD2geJ{}Bk_gEfJmc%Dk{`k*BP5#2Lj5B??m9ReP z$2sKV-lo`jCTdWxbn+g4b{ z-A-i(B=5%VbI8xItFui10BN;x4CEFuwm@E^J^qyvWfqKguEmYyYC8psr{YaWAbbqm z&fk#!lm(r^JH@f|QM>i3ZE%boL;xtJD@ z^rf-^lIk}p9H7CfNhi&;gu;`Y59d=ua({ay+I{m#vF`=O?f%Lt*t66hC2qtA+b@sK zv$X`*A&uHAkvwOH@}mmF^Uw69xRV`b*Eces^hu-LaJ#(U#5R z635s`M<0z*xt`i-;7LxMAS&Sg@De(I_39|@bjZ6( z(_C)jAN9=AcVX1YM~(@u+Rbe(m+qlZq_=#Zo1i_ZZFOtVrLG}a4$+lYP&3nyuk@+n zn!|MYmT1>`A$+Xhame|4Qna=zLlG3QgPvd^zn3%(47t{(HuHgPEDR8~;=t!Q;Cs|s zM~Nc7X%U+)y@ZDqJDF}tFUR2O$nOq zqgzT|Q1?5Xx3Ld`-krNu8>?pX)I)80Ny@Z^_V5Q7AoEns%$p@K#b_oj0s$ZxUgZ4U zf0Z@wE+n{$K?~ce424^u%*XLPF^X#U24!8ww+bEN)MV!wci_KF4r`8(-Dr2hZz;Ty z%7!@3c_TlGuU3mrVG05N(pK&96UaHJJDIMb z)E<`+qjCLc_tvik^YAG`dnHJ>kBqJ!n-Il91?=)8dJnO>XsU@S_ zTzVdQb4^t*jLR8|1niJyK?kq4YSp^lHpwE2%$8j3-+~vX2eG4}1Fh$~4)Lwt_X8zl zLZyb|oMd`&L{`$-!z_<(kMr|}AG$&YcK-mi%`h98m7?-|=RgMGFk-cFUgg?I#kBrg z9#(Etfq*&B*O5X@3hnkG6c(^ave-$L+?W8KPDvyDnuQqJyc6!XW*;UIf#V*7xv3&a zS>;rc-CPpfuI9&FbJyCQkwYx3)7{)fFkQ}}1Z6#mA6lk>hVBLOblYhn9%87G@|hz& zy}O^nsLmrsj2|pJg83iC^v585YUz<>l(fg~TQGp1k%l?o9D16-)tMhthC5lV2??;1 z)O%;sno(T_hDMWL58gRzcyq9W-#v3(6jpKD#Ihy9g`^?eu+JSZeLtOB((J6fq>V3H z2FB5!my_r#avKZOC6w4)22-&m7|0#*%|xVSDP0APu=_Fp07ACCj4ATSBrza&-P=FT zpKS3$&Slf@>@GHd%>X4x^zJyOCYv;uEYs=M@hSfRmXXbZgZlpfOjQVV2e-bnw-*;u zt2%NY<>Z`(BzF0Fb7V`LwnN^rHZwk>mQ zb1dqywp2~LV;#q@6}Vfk*043}NSeay%eINGoNPh{2_%8n@uBJk4+q69rM=8E737Hl z^yGv3is_pA(lW@`R{OEY4U_o_^Un`Oa+k$#B6(qSWnVG34Cinkku~ViByj~;;z-Z3 zfr=!x0*Si}AIP`3x;XhjjN|h>S2#31M)FH1xkQU$-tO)lnEL=aV!KHDkU{5~$kp2T z%M>=|>N{77!IA-%S$Nx@LDr={fHr+4t}Y;XCI%!z6d>EQ5)T8PLCr^RqUo|kCos31 zS%G5bJAuLa^ryTU)VA7ZnBgVa{*b!One{I~{CBlVWtYd7DcXeUU z9qEqcxTCPO4Fr(eZBc;1LE!d1!9T4+x7tG6UESHhl0^tR%0x0hJabc~lLyKBfbSJ7Iu~sOB_NshEhDxPUD`LKBK6l4T*87I#|th4XljH!2%W^HgU+o z$9(mrvvT(i><{lCjld%ZJc2p=D^Vbg5Jr*58hQl)55w@R%|x^lT1b+-Wy3~D0G`J` zr7QFVU1($T70hVPIvjE;rS09lsuMFQ8NmmktOV3prLmIsSCxu0Z9Fo7e&`tM-lCjoEr#qN@rM`r5S-)h|EPTkVuI}N0 z00Xex19t#)$FByobcCPx(Fwqb9s@dPO4NN!;@8h zgGU*CaW%tR#!NB?BXg!R_3etaY|m!{m}9%JjaZNh?*~1{<bM9&>w}H~9Q|pF62-sdnPupa!@zYMe2vrJw_4AVITm3Z zz3jgpUV)-)WZ~VH?-) zu_@v;bWcu)9Xanzv6*1g;MfXFAwM?Kaz|00TGkpXnYDLf@rXxeeB@lH-Os3^(m5yJ zs@*CzuE4Ozj!T~1D>qQOYl}#Mc$l*VIAPBR`H#Lo(mo_KVQgE=5<43 z9_T&9jcpsDVu#Gy08{9^bfRc3Y}OM7;`qXW!42wtYCR_r+dP?BLpeK?a{m7S&aOP~ zaDf8P3C{#zoYQ2@j*?r1juH|^ZN-jTtDe7~O5L(+o0Pauu{-&g497Tg$0QF-W3Ot< zwMo&8mr^mJ1)Y^5gGs43X(7UD^Q`AB0@0o>ysr+TeyS#8n2)_3IbjllAI4r>VNvplieK+!e0 zaUSB>$i{P%&#fwJGr{HItP(N1aLD;E*cmzQGJgu5T`Wn_m$>19SLg2eP0#C4T&>$h zF*_q)EagLU(DgW~k$8sJ?J_}eExb`IVELi=E$ByFbiw-8J8ROJZ-AC5q9^4?zzCQ> zHyJqT$@Qt_cLS!1+5D)-mku_lJDrc{YRbVV`_r=e1W=>;*CaeqC}JDQ@>CZ%M%-iP z=Ij3N=4zMxBv+D%(e4U4iJTZ$1^o%g{4qj{8amS*z`a~bvagoM4!9#EcO7c+dDJSc zsBffz57xOGZxOPaarPVAmhwP(2->U3<+|dL{7a3zyll1;z|NGfrxs~pbUkJXw=yFd{Sxu%~%B>v3Uc6Rq*?D$$9D3uQ(y_IBD_c~#nly1K8%u6H`%^W-S?&cey1ND&&(%ROIlSr73Fi%oqsTm9KZq~gHPBew`7=Q?yGH97 zRNka2fH9r{8RoRGuCHTCAn0IwLp-xYF@v=3kNdn6n$gqbwE{`S^NV?MRwrNtdFnBa zqw7`e>~FzlhWtgJnMeV{HahY@I@^ZYB;4LyMn?YtSaHLgdVY00!)16}2S&=W6XlW) zeqo#u?SWUrXP$9ca%uLHJn^&;qvSHWas~qawW1IJ6m$Rz=5@#;j_MYg{TSPYWekHSCnTJ8`=j%%n=943 zS1R#5srUA0Z$5>no9f(7Z)QU|i$>X)LhC(A$iAx^iBd6m}pr%bO=p#a`O!FP9lfds3#fEzh2d)rNrjO5_ae2{{YaBy>s@vjM1Ezof##^4xMrIsC7+2GO@^6$?6nm1pO;8&8f`3R8U<< z5Exc0R|D(R(nzth-`!aV~9{TuYI>8{X$mT6_R{MZYL?m(dcqVHMKHmr%Dx@<_ehz_H08(X(uuWq!t zdysZ%sozLEyGYeWHv;jJ%bt1)xoaKNlkA#hMvc7FyaBs+`#*(a=yEjjEO$_|3=$as z00;v)&!uVF$sD(YwX9n)fUAN42OF4^L(ry;rWRb8=3ALZt8T~OD-%=HP>Xw+UhxD zwzWbXix77ng99I0=PY!qt7%$E?nSziK4u+ybO)_;7q^1W)XHUf;{XD$7#SRLI#qQB z$gL%wd&Cml&m>Ui!QN^UJ7ZSsDDY}O0HjR|$3Nh=R<20^@S6kgmcT|??H0Nj9s>}08ai5f9 zo;~V>+J>GZd8gDhTbRRR?LrhCsT0y89sT0eRI9Vy*hhTx51`+X0Z^-Arb{7fC0evKgzU??UG?l)E_|O`Br7*_M+y_OL^KU4)9qb zCp>y%+LiSSl&#YC-bo%?ojKUyNRnN|V?RI-)7GCo#O$kXk?HBEa?G2C6*Jo-oY5Vu zE4hGKINol+<-HHey1OXXs{za^=oJ@)(hK4w7Kq&7t4=a{{V$S-;J9WSK>?O`xQ=UgUogs1GIx!*3xnG{)Yj`W+FwiL zZ@gAx61D+R*c^B3`PDxs$P&xts;Xp$9FjdxT4Z*&Gsg18EW}_aEDlE;?#6TY(Qcw_ zw*|vniIz3DebOjR(qnMONylz;QZ2xd65eZ;W1WE_BqmQlU-PQ|O3Rp=V_PdIR4bou zSaZicYH8x~q>02<#Ty{D?=x@I9+d1N?%7Q7K?Tjfm=L28$%`22>*>$*s>T>vD5JJ! znlR+MuflrV+cBXm?@vDY24I5j;$ zu*j~`v}Q6gSO?&bOd98{z@J%fxmA#K+)go!cdJIq)=j=?)2`uZFvKRp2i1C<=CU!|xXuS&OP4dX&y&r(@bqbm7?j4>pG+;P&9Aku9cPIn9~QZ`)eC`#?f=NPRk8%V5e z1++Vi*B25D0s-0%ILYpQwabLLww==2ArNdU5a%U+xy^b>xwrETxt2DZ0!jn( zao3LZlLn<}b2RbV*}s_@vlevJ3_bz`dos#tpYD-e?1c^z3PGVu&BLFlKO6 z9FxN2XC9yZYRhZOyUQyZ>qsS6W42J7vMC2R&j$w;73#$^T3n0R)k+a0Oyuq-7$HYS z$o)+&w*zF&r`eZN_FHlWNB|Ggsa8HNJ+E1j<7m`pIby*=egoF1+o>0pyJn6i4gi%@5~CcPcO;M2 zpD$vO(%jfAzGSU&b9*bP1o?Yc@vbh>Cbhku-Im|YWoA<2DtdP5$6EAx^+-Yp_D?eo zIl`9w4iDrjjn?ea<`Z!=W;_gx4o5z%k6NgCkvQpdRx61mad0N{5mAs79Lfhd$8MDb zGeT|FLekA(2^lMghm+KGBi^v=?wwWJWWX6fSsAbx;~B#H6ISjKV7f)QFqA3|anD{k zIX(XXD$T=N3NGsA*-a^#9b}20JMyv;bNGH0o-U(k5=o{mobmOfqB6*a+(fGxmgamC%_i0ieuJms zQ7S^8xOkY(NFWl*7wM2PKD6i-_URfmWQo3HW|rVLQ`iCRSyxxGLZy+Sc?5t4`I#g= zIP7}#HEBE83-a5W;?f&nv27uS&4Ih_&g`D`4xMcT!NeBR$`#HZa^U-ql$wOae{k_U zvfNBvc3=&vtMnbYu9r=Q+BuE2vx|ur940W|kF`^kkdoHy=e3PKSgqlZTE`q}OJjRv zXWNc=thSN~Vz;${BqRXJLf{4?xhB0H>q(ya`WfA}+wBRpUm#BymEip{kXRXHC&G<}z3GqNkM#N+Eli7ki2P?IR= zG40nG=B_q{q=-be#^&TGF%7ckj^OmqHGJ6H<}fUgBP`<#Pb7{>{EcZvX9PoFUN;uO zJZC*N{ zXTK@sqx^)nN2O4;@f$M8(g`I1oUYs-!}Ao|Vi*1q$$}sdS*{y)JlQY~I*xkgqhAi0 z6{TBbbdiIQWo(h2rzG=T3|iHN#4jRBz=SNyLCTNurdew?4QmIPGTRWlK$C*l@ARbH zg2hODKW@6S>-)$Bgm^VmPjZUfLD_TtIS9JH;|- zp_O7-q*{W`%D5!PHv{#?b6o|TI&-=ow??5|w!*|O8RO8_ z?aif|ERtMXLg7@gB}PZ%RAAC!HjrhfRwxPm;UJPT(BxBd&}4UF8+6+h#lR<~BqV;d z=lZq5xRGp=5;GjOPZiT@HY;l9XW5uzqsO;DisHE_1ZMEB+2dRvm~Qh2U+)|oel+8- z;&qxl`jvzMQrbJaMaSnwVrF1jte_XZSz>+g7?R6eQQD)gs%sew%bgBN%@Ey&N}<> zYU~<)9YzIe9cJB?V0RMr!NzNyXzpdZ zp3*3p7&k%Gk5ToljZ03F&Eq6P!7{3vo2P~>g`u*0UPI1RlPC9c`q-l!0dX9*0*!;Vri~!5mpYW(r8M4<_=6K|eXjrM( z;5JAHrbpKmq2HnU`qmU$9-VOroIyRS$cvCz?ocs+K_{jM9@P7Ij+t$Jo0+6#%!OFz zYkGr@htiW>0LM#opIE!U^O9vCfS`TA4$+^k4Qs^|F)Jidq7I}e09Iy^WA+#(N03hM zDa-of{{XL=*62^AS-M9puCSd&zA_}1C=akFE&3>}OY5&9)tF)>bMktH^*-jPh{e{c zV2rzwR$Hd}eZ{QpO6c9*GGq5i@{IIjOwN0n+9mQSme%3GF58fv0rt%o_IEJI9TntE z^#h>y70;JVtgHgD>CJCiO|2p+hxf5#k24&P&XFS7v1w!99GDG}#w)1P32PV_bUFTJ zu$K2$EUNH8#GhWDk*&QcPxgJU82NMh&{R%l*+N|0%<56dDxW5J?tKLW+}#;%;oWpu zbG#50eut%BSR(s3pC}B)fE$k;c>H;&p+>T}%Um23J6C83x%TftY^!mnO>b`#$to@| zb`iL4?dghrgGgFPr*~{%FB#7szm-$6nT_qjUtLQ*v$kW9kCjiSuAU&?_dCE9(PRFS~Rnh`4dvK~j|YjQSR76-3N$<>tXw7*2=+E8EDYka5q z)yp@;WAi9`;q}{qN_aPfc{q@)RRmh-*FS{D3=y>Wq%}S7n zlIB@}duvivv4@oH1Rriq5=S=DZZ8@b&Nz&19eqzVl@#|;%X4lN3wQurxe5+?a(Unp zS#2e=PdS%Ry1m}}ibcYKoPnQjYH4>BnW-+LrdXJzM0wrG8-U#72fuo!t7N0q;X%M@n3LBz%YA(-7fH3bTcEdCGLlFn z62yILwTAx9_*UD?Dcm-NBiA(B13YN+$|N_J@-nw9v48$ii1qjl`I+sxw%ML z*_jDbwC>3Rj+qqZ@bn3%OJFYUW3@8*-0k@e?bsY}GAW?yB#)#=X!o!+tVksVr3?H) zx!iG__3K*E+@-`VJ*%|cM;va)*16`=?b}Vb((NxUW{N^iQZU%b&Np<iPCIw?Wli$T|x{M~}6@-Z#cqj-M z>Q7u$>vyNIkUp(&+ZTDm?HhB98o$3-D*!e$>+wl?HE7;j)R}Zr?S%4(#QKe z&F8=)F(VWKf}Y3Ln+}CxaiKE#o_b8Xe9gt#vcA7cb%SY+t8H$UZ#m0=6d#b1RkP?u zF-5+QJ-xJc%cyxrEVheJ5GO{G-DY#%^~&4`g&Gg zv3YT0WY-qZi8wrp3GFS zesTWl)tMV;F6;sU-=O?xdyN?vvFZ&6mP`|2l#&$gI63>hJ5@t>c!CJ7Z9MB{Kx8Zc z3!ZQZ;Nq;!X%zCjiE}BMP$9~d%C9GmJJTo7t>;^0dz+$T&cl(^{vO>aq!%#!%ULJ5 zn(Im_A1W1nJx+1g{Pn2fpGRpPJBtW_RRwbzgVgiap4F$R*xSSQd2X+-7#1o?VaV&# z9V?QXO4{yIwD1qXf4q$ zE#Q=v$va8HV=MUNRoR|vO9L}O1UD>xbd2&wc`NVK;*}mta?G!BG!73K3Q%x2at8ya z<5m3k*c8hmVD3AlU5D5ny=h-j5F~Ld61!YY3?dP5Hn#&Os2_mfRCe-9c#<^c&5De+ z_2(X-j+ChVIkM@?@A5!{FzDILEN5 z+Tn!C-@BX3k8Z#|Q-S(mnj0yrB2j44`4c2DeVjJZcLgMR<0GY9j_U5-&C*14oU;?S zmMT4KJ(f9zcbf*3Q#N``QLV7X+S1QIWWZLV&%6;MwqPJhdq!C9J_6d3j9aXo3$EV}cur-qM!jhtSBsqB8 z9=r^UXF07CxZxU}sX(R^mRTahDvWw{{A&jP08YG96TvizZhCrij@5t3 zlEK3jp2@=P4xFnGq2u+f`%B1Vwf_J~o(W_Cmm6`of4XXR*n^A~E2!_5Q#5-(RglI) z=brfeYkI>+aU20>Nn(ud10mBm>yG~booP0i=h>`c;(KNw5~_Y*Tw~LksMgok%pAcL z+5&RW{E~s&rw8$-nJh@HHCqODw~;jg{9;BbPdxzX-h-^kY-am)r1t6;<@s}y^&E3V z8nOmtG6#?ol$40ykI?n@tyr$?rp#}fc~2W98*}vRXrSk%D~17hHifE<6JhJ z*B4r*p>;m(gqMgP_PhQ{E2!}d?PaB17=bf7`Dua9PgD2|pTfE8NgmTm`)$JJW{=Hf z055Npep_m(qgd=ge}8oCEugZP65C*x8Af1u$sCSGYF#^4n)gnU%4acLJC`kuqhUGV zcNxh1DVim?cwXhvM&=Bo%PK(`ygNzSQn1er@{pK7oe+Kh4mKU|8of@`VJ z>IUA_TI!GHPLL3Zv+l+T;E;Jfyn0rQFAQ2SyS9QYL*;j6X$TBDk~8iH=TJf|QfRGa zn6ecvaKqDY)ShXU7FvvLFtN6>wX@HcAD9W-7-QI+=CfvZC6TY%&rF|B3e6xYK?)K{C-cqrmfQgJBz3MTV zscc?JN?GXeq(VXjuDJPka(U`cKcyrz$aLs!L&bQJ-(1`WcG?%^jo1L+F~=V+ahleO zDFl}S-7Re7VqRRgnCwp(Bc)MYHfe9}9!tq#-G|tXoUcv~WAyc_QOT!ieqf27M>q|% z?_-Zs&~>Ezfuh>ktMfg?_g(rWT?;Km>v9!9l zlXfz{AmE?jUP$>*UuxE&Q|ig;gRe8dJo+!h0< z92%PH^72U1*36{0jG6OQa=F|GPTl&`xk%s^bEUg1%Xu8~WZ?)Zr#Z+6r&``Ify z@f5l!H!CxZ(hlH({&=c-rk^S?DYldJP&Sa zrM1j$%Kb~NbtLhaCWRW}A{dz%0($fwpkkNpP~Nn5mf*u71+##_;2t~Fli6w43p9}= zWdK=041Rp)H5A`ui)&iFt$g>JXm8*dE^Xb4rP0o05;qP0Wa&Sg{ zYL2SA^xNV0zjjEaeM00HHa5s%K3h2R06AtobMICLpJ&(X@zseF&4H67?i_l9>rR2% zNYS4m$iojqO?MH=-&(-ea>S0dtX)E?pe9qaU}TH|*P76M1~C&YysZQ0B$dzMRdoyv zUL2A!A{+?IbA|8FeQT*89{&KXT$qeE)0kU4lFpL2C7p_qmB&GkdZ`ALsNhTHT5V-3 zwc|ZI9CKTD;F}Ae2su(YJu3R;R0jEvLyDeeRrEO{qu-%Xi)jjiGrJiF+Zgo}`%4?U zcZN1-t#?RR1W?%_PhLI6bz5`OIM1a}a31;-gYw4gKBR$7O6-s;s3`d^ZJ+(H zWz-|gjcsWt9Fnq-arlbR$K5>CSGg9q1PqddetdsgB*4zFyOuj>M7CFoxXwTiob%Y{ zy<2@&$rZOxL5JZzEIppV` zuUf4NM4H0K1uCxAKUx4m|^7B=>A{{W;+1*DU1iifE?f`RrVAxT^5p&l5!wPIob4Rf)oL-*@=a#jLP4-?83VyAY^i zZNojutvR&aL7Yg_!+gG8(y|P0=zD!XofiSCtW6WFS5N{myCdcNd#~$Oq`$VggrZI@ zWH`e*S3O6D-z&@Vht=!mI$d1hkSHU}@$Z_w-C+SM+;<=x4 zv#UiM5yPlM_tjalcXM2k>>a7y6g>$ji$cAbWatTfwGA-J`>hG}ty4guH)Yyu7| z8^lXAY^`?ym5gte50UM`#w%Vw>|3G>z%67P2K%G_`d&W+&1wGtWLmwm!7P(p#LP%6 z`5+#^`cT-^wLImbjm4A`Z($2w?!6d&LFRxg zVx$_&B3hQ zPIQJbkP4`2kNgC2`r?_ngB|Ky-D*yx8QW!~IOl4p8%XWeUh5lD0vD?Pl!5>gsjepNXr>0tvik| z4hj5go4T@O)aAXoc&$=+z>yWV1_a=ePB{l@u8DVLSQYZf^!;ly#5N}X08L<|E5_l$ z^d0{IPJaq$-e}bD`a)tc&-Pg_BID)c#-}(KBaZdclZDCS+}E0Ex0iZt?9Veb&+s|} z)cTGwj-7IAp)Id!SQ}GLwkIc(xR2-jzZ%X_)WNQ%<;J6DXiCpAtblIXIb--%LDsLY z{#`c6g*n8MatHMOe@dR$LbQaLW>a@D=P$_5)2HWKfmdh%0fEyTQqcj*u8}O4kx!`H zHQ$&p+jzqPz|ZH?710Q7Y@(7#p-7QNNm0rCd;T=}qiG?LRN?xm^dqHW>k~B4!3=J( zxdq&GA#sfUv?kja+2$Ip#2!I1TgB7Sr2hZ`>s=x!L{tN(L)_OrqqmnQ*;OHQNd982 z%w538zH?n6<1LP8eT?4aE1M{$^PkI8JE2f})kv(ZF2ol;L}R-y(Sm*b!4;)F)E4DL zuZKMp46*tF&1T!R;GX8*IM&t{K5`j(Y!k@Z4hKH{#Wk?CEuBA4+S~1I$QfN55E zBOYCpK5kD)*X7TpT@1Nq$K|HHz(FZyY%V$Q*ORVEvMW@8)JXEc>Z{+*v3vc_oCusaey!eeJYeC zmg4pdV1^Pep$-24*9Ncj=Nx+Gsazi_?%HqRe8S(4BlRDxJ@*l8XSfuj=rP`t7#_5z z?&NZFOlYBC3dbx3ff2~a2cXVJ=tW*5t_@I6-Rcto$d)y6?nejo+g4^Bj|r$3Q*3X%C^gPDt7fSGPaEyiiK~;j#5m{uN)!zicDjtYbOKL_euD3|3F} z*@N9)xM-CB0Ib`dNbQemtLQ5mhXiEwtc_AwQag5OVp1oJpO|nrfA#9iY4(6-NIcR0 z*)9CdRKBvaNO!HRvf5?jj8BFGQOxhI3_ zD}5r3c~w>Vaamg8yIP_~lF02K3aCco!9B>Nw*p&B+hQjL@OS?Jb&ft!#Xj!h3GL*8 zZc;773`!QjKGi*+NwK(m{rdD3Q~Pqy%Ug$eA+};wWo0E;f=B+!Y1^nA$kMIt(Arz- z#bTAiZzJc7s^AcF&q|+Cf@@{EyIo3YKG2?8MwuTr2h6@qs>&$VQ07ZS&BCEdmnW0nf5 z!i;b;=~R%>%7~7ys*Ra~-8*D(0m(T0D}GCXbGV6{3cF$2+f0Yt^v55etgRDHxMh~( z%UOhqSRu#nI%H?JQCsu5iGI&kfu!Kd7UiD@OlF-C!M(LOfk z01`3JdIV9HPdUtQCB4d)U8}cgJ;~1)s#h_aIbP!K-ect`dB{(pj4zan(=ZQ$Qk* z_up!XXDfiLq~Pa)(~(@fs7uNu1{l@&T<2gXwQpL@6F|))Niu_s1J6Oos**H!Xwvg# zGR8277y!~3wvX5A`cmA;R@!xn{z*ci%0{5`^{iX1LKcc2FAplnHxf?b2W);7ZS}jm zg_6z~ZIrmdCWEaWqkB;Bo(B_8hOPz}P9jikW zaY~5x=-b*|$1&r#135XZ*cRoRWwpu`97hex@O$yxa6#sxf;h_t({KLCamkuF2@YHR z-ud^>){*CheobE1duL)?N~EbI@tzOTvU-_Vp7I!;;^bUeO=%v|T45#wpMOE^QQDik zw}$NuSMo=kBY_*C?T$GZHEzx;m?3ZM`>TCM+m_h>0DXx)+ds~xhTg|f^B|hmYa8G) z?4xThJ(zH4xUOwmO7lV(It5$`t8RwoIi-8`-`LT{$*z^3VZ>X7*YjuAf<$_eXWWbUF*=UcU z9Y^3#(zR{%dudA~>h`iPUEM!EqwxZxmqWE@^B~MWyb_iE7HkpEe*U$P@#+@4*HMN$ z_sTT#_P_0f_o^KaLN*X+^JyM5%cT!72jHfPXT*e=LuB7#z2Vr#AYPwUw*At(vLx zNy{RVGD3sj9C7PT)NkatwYP%aD`~Lby$Zf!1?&p-?mn2QG&Q`wpHjKi(+JWqNZbR0 z*eC1!Bk-o%TU*blGNq7?1aM=NCfq3O4}6~0vNnn~Y~dF6&_T6Pf`Nh4KaF#G#q`$( zOKWCVR~}O!Ly$v!xyj(}_U~OxQb#&&f801)yVPndWzs1xa&lNWu zmX;I47T{Zpi6bIHIb-*?cdm-!cDIe3D>)pF{{W41Iu5Tl+3sV%f&S2BXHBVq-`?c# zFng2Uv_99UUl&Lt^5X7OoPAu3en8eOJD9X`liy#@sEy#fK>WLu{*~58sZ0@Vkt(}biLbuN(rvQBiLD2N}t$k(S)U6}EH_p0m z-HtSfmX*i<0IMRf;JUc`GNfuARXKR^hEblq`R6rJ8e@)=Ah(R0$%3nYt5!H}c>H=E z{cESwE#;0jn^L#7w{`#$PcP3I9S3^Cn%-HVg)Z)eqK4tzlI_>GQ`e>{aTC~Eqg?q{ zup!JsOomhI{HckX7kaER{_jtYd&$*HU+xc;KOxugCY9{%K-&~c7SX^@ zmp@!oSzJ~*r?z8xdh@edi-qUSJe34+0OzJV_o!{9x3{^H8=H|ehR@w&Dr9W*!0V5H zT6LU8du!u!IC&$TmQD(l1$kVaK*7)9Q&`!FwA+zyZkCto%@A>u(Ek7n9-#gerN&2b zB$sir>H2!WgXJwD04_aHbNSa9aTM0Nk{F~BZcrN_nB;Eb+dS8x*h_1D8(6!;HS7u& zM%sBj@t#d*YMMiNX5ii!B8=}0TY-;3)|_Q$VKsGQE*ra6xLMvQf@~}D=W3~5gN{$v z6vx#qpteY1#1m~J3-Yrm?!9@cCr_Q@TwcA@e6rx4bMNVaQ(NisEU_$cO)eLp1mF(e z&x)>9ayewmcDC0`Bi}u}(TtITa?E|n>0Q;G#+CMPHngn6a|T`5_9vxPu$3cqmg+fd zV*%BKpC%Kr>;7^o?c-^2S=;IhX41vHFgsf+JC^T{V^b%6%ZyS*X<$3ejhyKm!!oo4 z{e(?TSidj4svsvDEUUkIDY?jeNBpbnA ze(IhoDZD%T$lVqf8Ot_yu^xkp(%?;TZ>URd?-l0NViayU+Pwz^bCbM`g?y=Gq9-@rq~3niL``31?zY=fTul|8hYsx;nUsd(A@JVQBolzvA)(xDg5GG(#9j~z%*WP&KmGUO1;>J0^e1Y~0b(r5~>juBQd_3D52 zTDyVITBTvlu$<>Ivq|_9$LWf?dgGs39)NQCNceD~1 z6WscW^?gDJWww!~0d|6NI@b{BEPhpGe>bB10)lI2d)ol^98cG znIL2h3Nqz@Vsn$nQN>R!&Z`tZWx8~d)Pos)fU+(+XB{YT6N>11qF{{mtX*ZIcvc6! z7LLG?$1n6Jr~d$6xtkvl%L4gHBy&U#)k3>^oOSdcjcQG;>9>Dm`$R@R-W4E#SYte6 z(Ek8RR@9dkJ|TT=5Q0l6@2wP*k&@Xw@DE?*%{D=&t;9@jq|)yUi#w|f25z`x)9}q` zoh=l_C7s2^pF4;{!TN(u+oEmq5o}?ebklF%#$_a!ok?F#0sQ!>X1XTQ zJDa<8o^LRs%L0&4e|Tq{^`S6B?X@|gXO`wRm0tij!t~>Vou{1l&$Vtvc?9QTN<7?T zqkODC16<|2YdlenCj7OudxJto3C@1;KK`{yjIo&F)GZnbFiSjZ@*(H3r0dw z-sBvDGuon_-Wm3Zp-D*SSaLpwxqEB9LIegU7m;leVX|3N^e6a-PWk%Qpw{h7O(e|G z5DCXzM+X{}`2nAb^Kj2laniMGoy7|{JvZlt^{{VZ}>66bC%Yr%~ z$m^axdRHf|Z@8IkkTGdoDaUBj=5N;mx*4Vx&@{L$h2Rs^^dHi(w9HGWUEMkJB85K8 zzU)q1{$`PKdK6%iFPRL!L%$42;Qs)HU$MRxaxI?5Xx}qUqdO%&hmxa z?mzrSlsdy<#^*hy|F+Sbh*|xc1JE4s{S68t7#;QYitJt%U|VEL*+mt zh=sVEpP9Wrl?|rfvfA!pyUSkZ&{8Q7T&|rl+>)d(oE)9F{Ocy<=+VB$X(fDa${d6B zHDu_rF-wb?VvErNS}=&khnkEA2`k1uF;hdY z+lNKGvyK@^!7<wZ>Vch>1pd-a0V+iTtaty70^f*{(F{E3V?g7AHPfYuFtQ!(+ zZZ0(UVy4;lWd8sZEOMvtJbpFOZzPU`xTew2wMQFiV?C4VDVzsy-KPDrWDKa!p&1{A zdM=lC*LJa%RTHV%AO|2fd>-}5YT9z$OJRDleVSODDU%;?6T$orKMd8~7DH`%;yBSP z=E-eXf=Re-a;CfWgQzsiUw80}Ikxtv3^&eUjaKNV$cW0iJfec{BC#M~2k%XoG zt9AsA8|GBcAZ-Jn`kek1($99WZ;n6S+#ZO${%5fFu1dxqwkR=77D)G%@{bZQZb5FR zAc0!PVVjnzYoqIBYq0T9r2S7?j_pDiE`|q|*>Cp`2mF5uxHvsBJJTIQ zqbq>QK?EM+nia_pI5@zj{$y1<8CzpQ{K*q}XWVu_h{asa2=7kFktT^{hDeXybu09! zY^O589{&LKz?5Sx>jNG<*gM}aPDsPi>H~f5D6jS^Warv?2{urZez+lvE z#BjWl1$h@C04#Iqfk)aeCI0|XY-1goV~_lFbNs412qUzb>e@6&`STR_Dt-E%bNSYo z$9_+>E^ffgJG)s-mXptQBY`H?5&Vi3xb4qecdZz#tzr9+Mi2Lh$v=taq`HXDZ#+YW zBadU-`crM@6GarcBXWX%z3H|xUAP1&03UjzW=c(e6CM^_$_JwWf1YalW35swBfsOM zk#Y4?{{Y!iPT-5c9(bzGcHY}JATl!jNFe_Jjadh-Pd=4a>9)P3fbz0{bLc@I)~4u2 zg0bYD4N<@5&f{)!7dZNJ{VK+D$UM|nzwzmGxx*OSocmCKuosTC&-j8gmfG1G1i8$= zai#LX`A=5uTS(!fjesXA4P@((G}e(5ZEbP2_cF?GFahV^9Mz^5E@|a~;n)$h00`%>BvW47LWOfn%NDOt^+%*bEyXGte9!d;WF9>vGLB<^v;2 zseq&mY~!K)Gg`%JR7dF-H&RC>n@-zGhK&_-(B~r^_^!EDd;RjxmZ-QZxTYOWI*-=4 z>kT#CC1CFqh(_03gSVzWhx%7bBvQ=Q)7jpt*~X=hkN^sMfP3eh=Rbv9w=`_6H2ceC zQS%v6Mlg&s_gnA>9`ySqiQhA3YlR~c7S846y}0`N)9$Tfh{TqvEv+6P#3;u69FhrQTatGGBOHU77+e0fgoKGe}NcbfClb&f^A#|!PunmHkJ{<2K&2z#kLFfr3SaaN#s zF89Wf%cw@7w#HX(;y5I+>Uw%~q~^(W8H;J*)U=Td_M#|A%R8LySVrQwS1 z&T(;Mq>`I3&U)Y;o|FrlhMmewpjqby8)I<{<6^XvaCp7^x-GZ=hh-(|xi6Mq`(UBONyp)7q(F8e3^^t-j262|VCJ zs+H(T#u$^@tvc&=z)NQ|dZcYW=3?K#Kp4RKXODUoffuPx8))W^_9Tt;YtTzGZ8+K6 z4gM9er_C?fk>Z^-IFxNHt%uKky?;t|wahxQ+(RX)5l10RILg1i4(bEewLx@Dl1 zi7Xd)LVNSu+LK{$xz;V9iHJ#_Ok}1ul^Mr5=~wMq7lI=Ui6UdDV14x?n??A#A(e4;%QX(Oi5nqla}0QKu!rLMg8 z&fnUHD8X4CF_l4%{lVh88*AHJ$b`1?B+5p5@@PqkkltL!VQF=8{Sagfbv}R(dg8Us zR$Wg@g>B*~aLlYXrXD;T6VIt2es!_p8;NCjtl?Qg2VL?mLZfyJK?HTqeXE|cx4F93 ze$eEL6pc({KYx?7k?wNeh^vAwF*<0iW{%Iu6B9X8<~i%Q^&tA@soUEN3wfcAONW|9 z`9#f<2{_2d=UXAv_AA?(!PoDa(%xxfIh7a7jA#B@zaOB<{A!ytdJCn`YjH9AHsK#D z{{RC{59T(S*ldOzx6?J}`YgiEf3e1JT?Fx9_mBwoNI@-wv#+?Im@)Znn&D+0I&2^Gr#wIXAt#xugf;0Dir=X~2 zvAMpEL3eTFsT?F-o3Sm_kZ^lbO@Ye8HQG71j>c1XF}njSKCEj-4-d;L2h=9$cLfJ0 zKg;>n^_#-BqX@7S%E+K#D-OA;w_2*Lfz)i3Zmq%2bH?1@kURZ2s=dIs9h?^J=Bf`f zyRpgq&1YX;+u2@6JdW-AyiBO1?Toe+&-@Gdnu=R{y<1I^Da>$OiBFXxhfe#t)?y1CYEkwe*minXO&rRAQYNZBy4H8OL9G>r-$= z-o=~%82W!>06MGvsS4bEk&;s{pcx~-IQmq&Y|+gV%8U!Vj{8qh z&lw*;DAWfXF4-8g0!vpspDD_Z%ctp8FJird+YsJ~OOT2sj2=k?sK>2t0^LtFN^Hq> zZ5Lgn%16_I{LM|qn89&9s70Q}Lm1<9CwRxxuk)$mySKO{V4634^11nk;nu7we7HS+ zm0o*GTaWe7MC>{?IbX-9p|E2vPnqP~1D)wwMrelS;fUa{_ad{R zg5hqamJ5=}81j*38^>aBdXCj(Uo>U@+iv#iIP(`Shw%d=@f7c%jH}%ODTe6eV9EeQ zZ@Z7ev1hbPXDfAO`{RIK1D)T2%sM=&1EYnxKi@3O{{sx`OSJY?VY^RTey#P$!)6L)OSCZ^Q`Ig zo2zLflFUUUDh6UF9%mer*Pfj!`K}R>$Xn{y7C}`m?qVQ<$tO$>!#V3+h`ztMu!d-r z0d>ieEU-i9M^TP@dUUFXNjiXZcv{)jfNj|0q5MU4HkL41`GVdv5;xuhf%T;1IZEd& z+aPdTN4-W>z)>R>0QdI?1b(%rsae@e43bL+?}!0P z@L9S6@6BhvmE}gCXtw)Hs)6T4!>Pwoz5f6TE27ZXYbBUPB@x-aXk;9dkHhq#2%&9cXVxOSX+P1UQbc*^-8ln}x%`E7%Ea(`^sEgU z#MoIVY#E&Sj(ti00P9xz6$s47YOg2ynzMMV42@dpE#obX<|Q)_dS{}K#Qy*)%hIJ- z?4g5`aHPv7M=!hY8m)VC9o@n}a^7JVE;0NAgj4k&Ha+SR(g~5{Vqc)g<%$^+W$jf7 z@@E9JhbZ_RNaTKEonvOU(6*_0{-!aNQ^s4;tw3X)o;#Ju7zGIBSRelYT~Bjn`l803 zd{&kT{;zQV09)^lIHW^4iEb{YS)`I@^4a%o2LPXcYV9oT2AyM=-*v>G7HskO3d6k6 zuF%CDypYO{I`TS;XZmQVwZ6-LrMv)3Nfk*j2r+`$AT00w@&%{46JmOnCPHxmQNV};LbEnl~i zSf7_AcsR%Mq`>pr>-o;9{iAe7NA9JKMlliVliZBw@UF(u{M7mWcTO@--s2$tBB1d` zlCBc|*<*~Kl2Ch$b*ya~;KYL7bNkppRzKf}{nq>m#Z~UET{#_5jU8DXM3Im|9giH> zFKKHImX{Wyx^~!)X(;-pT5S@-1C5bay`##qoO^mkU4>& zmf;^{j=b(Zx%41|>CIHvC63lxdzW9dxZJ4_100T|{{SzoVQp+;j)o}hp#m8Ely11s zE${DDCA1ddW`wx%{$PWqJLB*;u2=mQ(Po}I>zjL~IWl<}$N4|XrA=&!RmJ_x<8DZJ z_NmY7p0#Qqj;00>%_MyJG7mO0_4~kndHhXiu1M!SYt16n@2+lbEv+`H#^s4Ua1T$Z z>0L@_Jz0_9`Bvuy>4$xVO z5=qY>RO_m-ni$%``ZD+&rvQ4AI&`V!)Sgm#X> zTc?~jw1>@H;5+0g_Z`pS`PED7Stg6lF4q@Pks>MKGCOVe85L9eR`+Z&E{}HTNe##t zA4jSOUYWkCdV#Y@wWPHR5bZM@Ri43#;S zFZW60eh2y0{O6I-f;M0?Fx&ll^Lqwqlm<+pupjGyT^80PE(iNi=aGGRTOz>cP1v`xsDhDrLr`GaRX_8QI;pyAC*!=Q97l)M<2S1dA-75erFY* zsoqMqp^R|GrPQf1WRe&jfO~q@Czk`vk;id=eIu}U8N%fC;C+8ew#cDowux;m?bV79 zW(21rBmz5%T$}6* zk9>OeuKwzIAu{>b5#2CdtkJIk_Rn8a`PTzz#!L3SQxK36#dl*3j1kD|intdI?vB3Z zV*(anmRKnyDVM1WqhjArO#I7>*7|&UvabPi-2;mlqSs7{Le}Zj_vT z0<7anMRKhI$_jpcl+w5~Zg;NWwPO%<-ZEqx1Kwu7nvyu{n`f@A+yg1*NV-vCeCsbcCsXKwf(ymC`^zB z2Pe7D*P76V!_Jaeua?j404oQBD!_Ip)1^C6)m0<%bmlh~O}#<@Nm4R8eQ{TOm5t7; zIRnoai$l=S^J&1EYL zvort^_Gw4W6MBQxamOE>RKC&YwJ?2x`gobu)Us~S$9aXZ}JY8R4S zB#c@Zfk5i2sw_1NDXi7mqmOPd5Mvyk z3Fo(=si3j4l*MxNU%k>0kWlHT?=+Q};PDu0LAgUGBqtrlcumrlHv z-IZ7(ZaZ>E9FBOv>za4yGob(wSwinTlZuMwV{Hj=zGRsSi~Z(32lcG08?8leTF&kU zbXda~m~AY3;0_Pz)~~`=>T^CzMG+|(^={|-esvGH7+0Dl+^mwtD$e0B%I6!7?3^FW zR%B7j8w+QYK{0Yx-ee{tp1}97KtMiW#tl`vw1Va)f_P(+A~A*)N@G$y%JSV#$F^6o zosJ$byQ6G>boc0L&Xad-XLS^}yU;i8)ry^}cXs~h>0X8QSj0jtnN{II?OuDTL1}S) zED=QhLa9S=t~RR=0a=>7uwr$CtO9{yF4wI^(@_x}>jnel3*m7T~*_ z@MLaD{00Sd7t_V3TSE=HfYF7HB>w!T?vLiiv$WkCP=U;HBW^iqosI(&)aUC{B4;jy zV@rSRfv8)s`)p3L#0Mk+)E}tLZRz(hPqf3Iv&e#IzK5v%4{v&{eRVW)+G*D8*=#2u zaqImmuz~b_LQOSyv`l{0Xi4k+^!~Kq`U))Sqs~X5u736_*fl6)gt60|WNazgR3E>C z{{W8x>J4wfB1ow+2HM<=RyMlkV+FJlOqWD%O@jnBah(1qJa?!xYUPa*XVY3+7Fn+2 z$Put3F8BoF&>p#Clg)I?4aENdHPeWY{{YK4iTz)x{4rc6mj@OTUkj8mk`ZG&vx9&S zehJ6Wk9z9twTm5LuPre!3dKNRRLBN1jCvkF8kU)XqO)1SELIUZMsXe)8j+@1Ma{*nv~m`=2mNFtc1T}EBa9mBQqmNV&9ijn zLbJClaqm;6;B#TRdjO~pT6G8ONK7n?h6gP^Of!2r?niQ zYLR%li`_K7O_Q=O{d73spFzkKwsJGZDviXk%92{5wDPdV#QqO*dsSOxn(Yc-%f3Wy zj}rW<2=05F@O>#TExqVwXzi5UNIQ-YA9m^ab5-WEn))dtyPOh72!MrC*!r9wTGB-b zyHo{02OYmEP!C=?sX%l3R-bDel3uE^+!3-xEK00^@<8p|@U3g462UA?j@y)sD{Uv+ zHC>6cy;j;*DfmC^$Oj*o{#BxJ*MrSdeL=I8i%gzn-+O3`%e7-sFA6%~`*f`MtnP^W zMD{k*tDNo<91Qjt>(kqyuIFw~Cnxl(7U7_|n%R%;*qLMcAG|*U&*M*-m2)EA%TcqA zew)yjiwZyZs!2zgsM z9=k{Q(u-N;BwXIk>POvAk$+BqS`ra7cQJVo&eAHQC}3FQgUwXC)GcR%cw=^*nHYZU z3v-S+0~HRJWory_!{kT4DOobZCmG1(^U#Xf`?weYd(yt5C_#NJ(Z=!E+&<(DmMWvC z*EJ!ZQ*XIvZiBY@kMvqw1u;S8W9~C2K7gEln5(xd&|@}FcaDyd&GbEs=~Yxwy_Gbz)zUCE(t5bpO+j8>v4w9Z>LIafr&a_ zz0_$WRucge9A%e0kFGjXnkRFcjUL`!`<2%}s2QyV$HZD`|>agUjEOPb@phGou`rkJFe?Z|#xa;7`_w#NSe3XbCX2;zA+e98&I7$@7Bt!1RaV>8bj z_fjz!!^yZ0rfDAA&b@)2=1GhyWC4KM2{;)8sq2c6ELepQDhCoc`IxEBSn_{d)#WPR zFgZ2O-P!7`B$FyyT_8DF##NipXV7&%wW9FrZv+dZj@M{~(FhpgSr6WT{_aABF4l^$7j zbLifKllgm9C9b0`kSD#{)+jz>?;#)1e>%U6dj5TDKTMw5TXt9^X_-k9mIOBb`K!Qg zJm)di`mj zh7FGXlqLoyp{lGUBDVs0C0)Ul*X0?;;0YUu>w#RlY3qG+XwP`JOA$NQt}uAX_ampE zt#1*gpAV4AVz$&AksAdE1G&eqV0}$i@b$V{+8b{yiNj_`2O-a~_UVJu6|8kvE(=q6 zV{VRl#Z%QMju=`tVzHGkG5+jhui|(gjc8}fQtU#GxjvQ0>JBvNYS!Q3rv?#xVY3W;&qN}N)s3u{t@&7x<<9KvOjG5Bug;+sykEO`Y2W2Cfh3_ zpwHdo)AOummQyTYgGrN;+2|>5WnphFk)~U)sT_}mbO>(7vc%C1Nw0e{EoQ`*7gZNF(&Qy5~X`301ZQ^rXjtujq?y;OwV83S7t z>+SwEj5W~Gd9m5JUb)?ZdGxB!6t_&1LhEg8*##Wr2JenJ`qfsCZhl4>IKiYdt%2jc zBIY0i=ac>-qk*C@Kv+kei`VH{8ePzWbywZ7&N%g}kmX^7922p7ds7-GwwxiA9e#2^ z9_?Bom97vG-)=L=HG?r|rZYxMdXv!BloN}abdzibR^5Q7<_FN8+|seAy0Xh=iE(8V zazD-H4u$wQ=j&DCmf7GdBucZm-gxBk-|1E)m4Jb6U5`-RI5mrRHs`ppwA|N^@~Plt z92|W*jL?u8Fo#4cyIXcKj(Dkn-zFP&dT=vU^xJuw-BIF2b*y9(N4?0IZDt;D66*^l9d_ViWAp$~tb5 zLH>10<3+H%JE2i$an~{62KtI4D*;-{bd@%S^A`c5Z2jat5A^&hNnu8mOwp;7a1T-| znbXX+7qe+{ZC6syZZnhq)PIjrT}sH4#~hJlspJgys@UEVO&Au2-@~`}7msq$T1-do z$oWXmIQLR>k3xMb(1s-n>xTqnHhW`==;T-16s^Tp-e6C-a7cLG2j z*u`~HX%Ol07q^>HRxS5XhAvO9w_n8Oppd=J4IL7^lupO{!)}uWW{t^k*W%D%Wnq*aBvvBh>kGcrY8K&H7l1eTM+1)&7 z$`%;Wzk84gV%X?8C;8(xurNY>ald&AGPv=R9ZAwOU&-WfV_!sehtI+px=l zo=+#Q1m?2P&68MaGs@E29X!O5@U5OC8Nl0+D&**4oi5PtiN0BXqkoNH{{UyC^BahD z7|QM?qzFD1jUrQUmDXrqx073`=M!6rC)`qnMcnzfTaod_|{o)TNt`BO$Yg@UX zy3^*naUlSQE5^)YDhJT!ogS5U9je<$sJv^pX~J>WB=UOFvJt0nxk%m-n~2YtfPWC~ zKN0;Z>`s!!9I=woumm4m)hHlqOI3V1IjYZ6BUfXOW0S$qYOc-+%u}gJ&OzKEjkvA~yf(HPPTz9K>$d>adYdCGyh${2^ z&%hb}N1CtpX<@jzbwstdEL=?{a-b2Bj=a@|63q7I-Z#72Ji=xr7Y+J)Q*5!2J+v~3 zRNY-k8)X(H!naTfVeD$-%N$a@ycSkr7Xy6kdiBnG<29Qkj}(ZnbAU)Lma*h+#xeP0 z^Q(67e&*#Muu$NQo^x&_=c@zIcctblbu2}Eu|1~SxfuaDju`Xi08c+dk;N#wXm6po zF%U`+3TGJ65jf$3STblc@rySVv?I6xIh&teV--Sw&6;VNz-u#~!!{g;%csRt_~kEhIQGsHCUj0CR)u z?^Lz7m+aA*Bbo!eg)y?RCkKvrAI_(#7cISnI-QNhtfOj~8w>|3f6o=0_S<-_Bhs~d zSR=#!;Zb;vKmZ)~$<8s;6|ZLZYLd6v7an7A=JVIwQr$r%;suh`qL2f!RCO&LM>wMT zjTnxzv}o40S9XBNbB7^BW0GI4K7%z>>K8M~bgM0<&^E^u>9uzAg1O^AUuv4-?p+H? zw2saThgB+CMmbHt#7?6O)(Z*}G3 zK^frW_2Yr-TueG#*DWk@g;^skpq0SD0OaGnc5a}}Bu^YME3&e(M&}%I27a9Sngcx~rV$~ZWF zdXHZ9R!e-xa1&`%cf3hwki9({x#D*t37=1HV*`sN#&eGy}Y}z2&mY)kM z1BmU(VV*EOXqqVQZezGHYS))&0y9L0Ai(fR&)2u5QPTBms|$CAXpGlEa=X{ROlQ+I zzXjHzc@);aX|;}4A1jFl;7Q~FI|2CCEu86?+QyrxY06}P zU_m@yZOGA@FJ!hMH2?y3 zod?K&-XFvKz3Whn6Tv;RRpxl%j#(x9fk|RUaw(_K5e3Y}wp+r(&X=Ja?OyFxV2L4# zV~7D7j0(ZGvAVM@b#EH6bGhx0L|pI`_CDP+`s~|X!*d(7Om_o^R^gQT5!#i&x&~An zfN44Vq>)HDBo0kfyu7xsjLAFg8yWH4faH-yz@@8d2H6tc8DU%LIYo1fs63JCKoRC4|H9ne1WoNOSjQnEmF@w*XX{?6=l4!FVntI%k-><2;1H z=xZ>>zh;Kg+_J?V-S;EE*Qxw#a?;@5+TGY)Ad&u54oCXHM{(Hu)Lg~8mK9-={9WZF z7|1!}2dVy57m12bV6v-h)L>yXu~Cu;JrAHfic~P!HKn|OCihsP1EQY9`+Il%D>GWO znI``LNZ!`?DoH1gdO|Mf`hd8NSO!R?21Fm+VfT~pJpMJXs-|_D2Y4HEo`SsY$)8NT zFz+jAGlH@nkj>lZ7;tOQ?dJ2)NEZ!^Fvs0t)KxXq-Y)3D)%3X+P`ACeo5_Mk+Ti`g zaxwWgL-@#BW&dOFvZc3YF zP^f`;&T=u1e*sLA>M)Xdk|v#OgaV`eV;@X*&!=CdWu@ZU%REsx+vHXOWgzT{JFlik zx3{Hc>6(4*<|Q62TDxBv0b<@%N9=pUSRSX{%?tM*>@?JEV~ESo8T-pWg&Jg1nBL8lGef2OwZ% zQs5DT^J1u4x7nmN4o(2w2`8$0ejE>`D)tUJY*fDDD_q-srU`AyWzQG@N(fNbSgIr&9n zUfp?$vsgy=b3)s}UKEew1-_o1m2d3NKhJvRLD$P(5Pf}r8oHrC3KxuY?exV;V@7(% zEznscxMLG8LPU0{2j8jvD%3GU3i)uxh`Ho10R3vMj&0t12HbWZGCy=<>+EtrDu(k| zx3RsnvbqvRCj_jdVFPEOJ&ER?uV7`HGq6o$Pt6lxf4F%c)P5Cf9QFSI>(*`Xc%+8v z7ZADq%eh?OG2r0(ALm*6N84udroT&}bgJnl{uHoo3XghibrGRF>tS;(!{^GCRB`-L z4B!uPKb2k&=fIO7Vi|V@Jaz19maA(8)tO6_4+^@w0-=Wo(yiE9$7N{^tO2~F7#ogF zA>78(@2;i3zPFVvQKMxNg<^LSpyV2-tz2sfc2iDknG?t_^2QIA`-itYXNuo+j^6GT zNYOmN!0VLmkIRmox>YSKYY|=Di`Zq7 z)?y__EI)F`s`cs8to^RmJJ|!>+l|n#SLcR5<5QhR%}U~M!x;HgpX4d?2*T7AUs-^X z-z=z32m8O3YU^u%C8TMltm5l>^BZm2xf#zsm5X&bmsClimBqTaGW?Cm!tv6&k*QfQ z8Mu!>?E*iYHh^V|dAApBvUJ`?_|+R>tH-K5 z0p^QOe8{Fn4dsEsT>Fv;{At^u8}t10TS5r~K5KmkPuKZVWw3%)G63-0f6qwUYknkk z{Bu_4qfb(x+kUP`gt`0RtP=fM2xdF}1)0*R0k zISe>u`Vq*WME%$Q0M$`kOXNiI<9X}{@i#y}5^9(FU8V=meQ)Y`k$|;F-<|)CjbNNx0;f^y> z#)|&{W^~9)tA*})2OphQwpoic;cqx&Y6buho}iBB`U;ZbMwOD$GE0J7{{VG6{(V0> zxSt}bk-!)Nftm8#MRLaC-a~71$L|w{`Y`BzhN&HGE%P1l!;krBzjeN&xAOO`i6UnG z^m|rO_y+bh!1#@00cMdT0cBFiI`!xcTqAH>o#D8NA!~kvd7Jf=nc&=~EL$FCe@cIKmo11w7vtnp46mKdXM zKpuzit4MskjXPADNs=2!c8c7FcN{G2dV|MdpT@d;f>d&~TE^LJEtU{kM*b#ltbI*c zB#ur=?NKI6V;JtnK&YjfD`+L2W)Z}IvoY){W0DCyYlhbK2(>G>(Ba=8AAG6fce(Ul zzg$rjcVJtUA%ZUu-W^s!DOAd@I0MiRanzqv?OV25d=`zqCY?YVLYMhhCYIV5t)Pwz zak4ZR10Uz!rIO>xjif4D8~`~k$Dpm7Hb|wb>JeK*Cz?-`tG-`Z0Noy;M-|%0V9@Q)%uUOVN#vhkeJL|J zOHzl}^-FQ(%Wjto#vC?E{Y6u~o@)kJlGH@(3G*390Dqt7LDjAu*`$d|9E_`To;%jE z+*|54Mhk{;po|gADIMxbDBCfH6AVa9j(~yPhXCOERhuhl7U&XOC{m$DcATF6^_40; ztf&>4lzqlu7|+~CL=03e)TbM&SoPgQ15v&kHh6&X#qzuO`v zAs#_q0-W>*y+Z<*v@sSW&6BhqR~hI0`qqWE*sS7;HkFj+iDAy_Kxa#A_VR{RcYrWE zy{lH(ESA>Kk~13h`U-qb9hC`Ugn&U61PXkZaBwyb$NF0p+0FyzfW=pvzc8YtcSe%cQ03X+y&_=d} zP?cD~7|sAE*BsR}vXc!p%&Ta)`9~Yir(U1VsaxG!NX}3eeuTD3&*R#FvDA%9-Ut}m z#dR~2XM9PJ<0u)fczJd-asaCqsAjw#l^y^2(m zRtVcwMpzGrsCG0zw3xejmiJJL3Andrj&wN=IA!`D!j4d9SE}iWe|IO@(U#}{{&Ju7Za(QXM#A-+ zznq3SgP7-E`QBanxhoPeWQ3vm~gWy%K_qGwa=U}z$2l+_5OLQvFouh+awnrU6`0GnCm@dA^}=Y@@k^~u1>8$4MTNnA!~`qI&*NQn{idKHVfK_| zRXha8Zr`n8_)KoQl*)iy2HMS!zA>6{S}=+(Pxc$DyXU!S<3~7FQ=QoK0DD%bOAC0l z8NS_e!cqi^Nco#@Krz&g4QtPBaV*J+qg#Ezl>?GKzgmXjo-4?jW(jM%7z2&R7%%$N za}xG3e#N9EourE#&x5rgE^u;r?Z^eXk7|Zbu-M(&G)Z*A3@CMw5V_!k$3I`CYfA>D z1Is*avdF}cp$h@W-5ER%hx4UKHFi(+_Q~m(@Im@hOi2+PYQp8(MU|sy&Q-8ZM;XY+ zO4N^3wVE$7CN9~)K)jap8LI6SzCSb!e2LQpR`KILdXtD0FHkueTzaL%F`{Gq$(C$nGZ4JfdOIo;}qh{<-aM>X2PrrCms6(m zS#EsEBR7rGI6*#G0|Ssc@-vTmqLF6iDb2mKkx4G3ceKUW0GxK|z$di%>3tlmU+uq$w`Gcc_)M{N|5R6!Cj!C0k|jBjDh$MdY0DSW?O@81=ZU)9F{So4@`CLdKzT5^WHp( zWd+J^B((F9^W+?0eq0LQ(uBgn4LuAVKC;JcC%PcSCt-Pj*MbJyCXZA#iZnI#J} zkuok>Vqysd_r@vbT(JX$nZE!r`H@VUHd(bFyO#%H^IyMCdR2!z7DwHXs!l~<+v|3* zEc@e^ah2PKPr6P=@q5$m^>}2mxsDj_o>oGt0%w!QY}7SyMxC@NEu1h;vB-uYxmaX! zKmB!&ccK_&d%ZsCt?nEoL_awJvw%)W&q~veQqz-UM&=lwZZPL*2!5nIvS~6ATVn8?}iFt-g2!bE(@M5(l= z8Rf^WYo#hATs9lq8O>oGD^I&i#qydM+>~!EiiW_!By{Wis=0>Qmw#yrs=8ZEZMT+P z*-2Np3_2f9l(yEP<%Tzf7S=$bGONmPd-{|7s@d@SB$H1S{L1YCgk)d?j0WQzj(Mbu zNxqH=Uefc+naVPe@{9~_2d_{G&tI6;TpKa3G`6!T8%8CaUocGHI?2X%ur;}BJ*CB@ zS2lK*@LiVjf@}ejPT>ClKc!ci*Ia`3*5&Se?KxO^kz~2(a!(oj2cV`wre57oaeZs6 zN9DV*ia<9q=Zt!G#SBLE#FqMPgp*u(l0btmh1^@;9s1_6q|`L%%!0-NcOs{lzJw4+ zBRxUE>FHWaq_>weS2x#pf#l!w5HXH}=~1PPrGSdw#@;BVAb`Mfi`?h&{c3avVmseH zD#;|gV2psh*wsj_+e}4EWqXT22g#hYW7U0rlr#pilNf7r3 zztW@<7v%vWmB2%|D`Oe=tkM3Nan2sv7Qx8kNeA>_=k%$s9o&mpTNAL{&Hn&A*SY%o zRIsFQ#<9YEPp51#_7ZmpTi$0l`@_fvsyoF{bCC|TH3f7wHRBTOYrrYZGHkU=b z%UIV8xWcK=2tS$kt({ZPx&|9LR7n#no-$m2v&hK?qqw_m7_F2VRm_$lKuIEDyC*q2 zPgCFVr)k!)!x7XYH|qnP@mtDyRy|1X&1uY8X6Apf+ZVWGSp++#kw!MC>VKg6*F9?9 zaC^(BPui{kj@~?x<;Bz|wtACRh;3IKDGWXpG&dSEv~FuK=81^P%u>b`sbx{I%VAU_ZK#o&c^cJ5zY@; zQ=-a0t!jg5G+$`6d5~@jj^&iM_}4dm6ssxJY=aBiak@A8#H~1d($nN53Jn0C9SBC`s#vMWb06vuai=QMal`=@&Dh{lF&w9+7-biO% zN@b1z0Ozs}LJ#jRsUEcM1+33@epY*1Q{SYI{{X~~)}=O(c`t9}g^1)4_3!R|>ewNa z5K)wjf)56Rk`G95Dk5-yTy7Hy6Xu>L}Tv&sjkW_ztJ}RWoKGyN*k_UiD`ATXzZ^bUQ~J^!x=<*KjUPd2Yz? zrrOCJlAu{vPEJS2mmJsr#%VpR>qfR4(7L6PhXsu{&i~RF+IG{ zwu%!{{TZ*Ib!RR$9&Z**)~0l ztUv-_y!(PbsHtA|&LRYtR;YU5$TLh58v#FPzxj@LuOILcR>>shvLMuK1;z1e>o5zh z)8+x6lyt2HyR~3hE+CKro*Wt^!6FM=YkA_4rGgnlNbU0|JZ?0T*;~UDlR@WOZBpO6 zk%wZ14pX*C{H^LzdSjg(1hI#z~rF}t^?d>n^;DI5%QoBZ0R0p1? z<`^`$H&<{$D0@@pu-L5=ZW%muJooplla4Td`qiH&?=Ik8O2!O_j;EmhwE4S;b+opu zi50xjw$%%_p#!!@T7BH6C}wpyY+-%L;8M?NZ$3QeQHr0Gk;?rKQCU*0$+;21J6uH< z?-?aM`wicj=h~?OVCm4m*dKeX#ke9l2VO=FN4+knZ(-BfbmFTiWgE8VV&~>;dVx~M zdlR^ZK=$_^+;NQk4?|0G<;+&7O0)dTM`Q<+{D4H$v(NUsiPC;#F+|dhuOwrk zBex{}m8li&q|&@l+`}x2c95(I$m>#f_wQW&j*j*>2^u31=;OBT;wXwiwA zcXODdA~CvmI}m!4{&V*bIT%yzj*=x;u;=qoL0P z9FA+aH`cpJFY=B{5O6*7T>a&=TFN!Z2wr0k9yJy!%;cuZXkp`x};FXLQG2V zH)8~PVDrUQg6~nkm31&e#xj7Z0hKy`EcC1P{v9tWeXZo4JmEnfE;|A%t4%T}A!YKT zDhJ&hWOpBxQ)v!Tw#0g7uMrVjOXf69^1~^~3_Aut-mZst7|tsm4LK579yyrVI{yHx z>$LP6Pw?PYe7p64}FO-rlLm)e3Sm{_`T$vvC$;Cp>*c?Qy;bH!~1 zV`!@nRUl)WS1YUP45lcp8AS3ij@b57(WO4akUi^9R=l?<|=- zFC=?lS3mZftJeYl0C5j06dasqxvr|(5ekTtYN;3=)UDiz#^qFk{!qbeE(jeNus@lt zOJQ*Y23alL(*thSQ~Zr)eWpz_?6%LT#Sm#XIl_{vK$5|Q);vn^C`hGnsc%rtsn75wFq~wJIlj)w-N6pk>wVC0P+VKb* zLXp77B$3}WOnF0m&U}^Rvnj?uFUE#}#NWl7cN>X`Ccy(eK&pAD$y|k@rS8?M{rc#R&Pn z;`jCy4ZKWB5*V&>J;h5ICMZY%e2d@MPzvQakj*YI%;ex>*U(gVG5-K(2>i(Y(=i;C zAniVYd-~FgkF`fUmaGwoD;YWI@Adxx3as)=WYAvAC!eS|C}ZFm4hA#m2Xo%3BW4iX zMvB)Oyu>=Vk|fF8G1vjuuS(3B?{A)2?4tV}qLSN*8Ta=7W}MJ84lZutZ9?ur@*?DO zo&g<~+uNGyZ2UDn)RElk63G(vNEGmg=qlZ#t2t#=%SfD`*=!7Dq`#j1*9^#numitS zkHZwQMWv~nJC)`Y%W>FZy$0(<@?Hk9`!$ukYQ(dWa>Q|w(EUwkUt8SAbEQN5 zqLRra!|i8_mHB^!eR-(%m)LQp`kaK8+EAGhUgu4dZtS`gAodwtVv_4m)TND{JEy;a zc+cMakFVCfBF9R&fZl&-UM{4vZ2&TGxX*9Ks9bnrH8Rhnzt}FAe|Y(4@a;)e?l%c7 zn7S^dWvW9IDg&Z7%KB%U4$UHa<5T z{osGjYiCaJ4bof-O;D(rPZAN2G!NuQarn}ldled&(UDIB=yM=xabY8!um1o((w@it zmac-GiC8FYSFJQZF=%ac3&!!#`37OrPQd^RA8= z(q&doLG9chL+?pEF!%gK)Jl7V_AlkU$f$qMHJC60;#P;`bM>Gtw#KR$%7&Qs< znCxb03#jasuP#l*ZTB|-8GUn()wJ;=#_1xfqYN-3Ac}a$48RINNzO?F`P4ngyJmH} z$!j3AxMp}y`k6`X{nkFd{pv|4^BBbhiy8xlkmCUQFR7?5S}U}cDIH_7&LohwHyrd+ z+qX5(?`hFe@yuFEf~s)J%t1UHbv%BYRYhM??bLH`y|rlk>1=I7Fu4w;9Y5el@18$j zYJIw_wl@hnt*({`!-7LdKbg<1Tk|895k8@{H1xrSCIqm@0h`x8lrNQY7VFgsZjuH_ z^OnXq+&`63EX<9!+Z0baEi0cbK*Jmi`F!*zo^#rj7UJdvdtH`RI9KvXO;*ASCvCb-lcrD({FARH>O95Efodb1XrHS9Lesj=D<1}M(e zJ$X3xJt(-7FrZtlN?VWY%VBL3F)r>7PERVtfO-$%IOeymts{-BZs$~&%5AK6Z~^E* z?T_V}xodG9oKJ6cBvCXNQhEm+i2DBkO3t{wxW4nPEg^lUD*O$^A5wTh^~v_63A>t8 z%?+>(JexE3K;@h0I-kP1v#LB&To?w(noY}*xtBdgI0K(jD@Mahh0MnE?v-C-Mi`Js zV$JuPBh=&Ct?Cw5;wUa*M~X{qx(LVvZ$=p8V;TIZq*9kdnV(QeiCeqInM`H8q4Vwl z`Ys1=Q_`&@QU;gEw0RvlTxV>ZIurnU^*yVkx3tpq_48x$V=c&bIbsPXjQf+vy+?0z zvg+>M3u}piVJdO70N&>uWFO9gZe+`8eTE_{NFC%08Fd7ZdBHs3@M?K%H92o(xPh(h zVQ5T7HFNTj_gG+c&U06F19|1gCzWjqtf=37vHQcX1Jgz6h>=n zNMb~WG3KyQf&R$+@_!0Ts|!npGtC~!KtH`xwUm8F@-$xJ7U_(pD`?+;ne#CRq7J{G zPtLC>Ju!jpT!p+Bwut(LnwCiq8&~Hkla0~zZn^nzdGA`5`s5EA8@9jf~7qSL&53NNsv0KE_NC{s|WU=)6 z)Hj!Q_7J_z+=XFKS%^~D1J@Nvu4Ig}vq$#AAP-MK^qlpV9{$Td^L&#Qf+=k4Igj~cg{cW}Uw zj2?&SPRvHk_HsunUD<70llRe&%P9BsZ+d^*qId~ZZ?tD&h@Y4@q4xLbinVh*c8Fe5 z*(U*1WU=%DvR=mGSq7l4uR(|EUzZrJ{>nc7W1OUvA2=5XKa=V&10WM}5aIIc9qH1K_&PLkd3B!4bh5RhDe zGI7~`Nc+aLgbflc&wF!ws90NzD6Xd;JhFLZR!-Uf0C0Y_eCc<#@)og{+E`rfXr)Xk zZ|`yM+N}nMOoPn1o6eoErOpF6;9z@xl&J=!`jnDIdh4g*OGd~KZa_bUY3ONd8goJ} z9tV+vtY>-T=QzjZSO6nI+`jsS#l^(QWn^|;x{?_1E#v59KIfnmx~8UKSkeU(Pa|!H zJ-_Rl`^Wu(R&A{fgl-yNv|dVl$>urBx2Mo{6(mYUN#cV|(tghZ;xu2B7Uo0WKBV(i zzRh(UR(E=QaWKGaIps<1^!BX_t9Wje7T_}?kmKgT2CF(=s6QyPCQ_)1rIuAc#lgt> z(lfcVrruq<&dF2n9?E^IGZEO`2xTGGLB2L8By+&}b^U62XNnl3fn)OJRV|XIC)D-p z^`##{VjzojZjC9&ERM#(OGwE|Jv&sdw z@7&7WAY=Ru{=xkXR_2uFW2e7{d!O?6=mZ?^@*43WkO z_XKqxjcUUMHJ< z_SP3S7iQ*h3&^Nq-Mh0zC?bPLn=9Pftnqm}i9ySFC$RPC|wDH&u zMP`N;_bXM1TSOcM;5!1ixS9^ge3iEaC+reCr-D-$UM zME?NX`g(pYnzo;W>0$2CnDTFO^AwvmnxWPeYg{&jK6 zjm3z-?oR+#bfL8*Xizj(M}qkIq#x}14}Z#~AS}st1dR*|ZZ1b9LBLPzvbWpcgjsLQcj#8~dlIKb|V1V#4co;I?zO&Ce0Z*!u(g$Gt^$sznA;B5o$h zUJuHr-1k1iCaS<)vz@MO)=4mukCs8`!>wcLnw_v%&AftpsGKkf_k9Q~eo?_a>oM)_ z?ygmCOWMP5PC*z1fxy}7NB6xtRok5yZ?^j~ti@X{WpBK=>_^?f!N3EhF1INmudUwP zKl&sw#~)+&vVY!UtN9aH%{;0m4XE4*mohS|6T!*;5Tn<*=~~vh92ah7x|Vm68C(U< z2n6H;dC0-zrv|M{9fqHIXe3)`;4v~T{CuPw<0sgk%AL~CXFf%~*&l7i*49y-s6o$s zo!oQlS8pvmyUS>8V!fUmm6(9QCPxHq1GqV@YrFedtZw0fXPC5X7t4u=>FPMAL#R(I zFv%X7dmv;Dl2v)Y>61?2os0cnr0Cvm#!oUsgva0O$I}%Ap<+dL)30)6WFfNK zNAS1Ir-BdXT_wHM$J%e7`!?i~Q-LBJe52lr`{ppk8`$a)ZkjbDpgeBL`=t6&aa_Y_ z<3kCBZeZUhmVf{bdFm9Y9V)_IT%WVZm%?DAx`M;qazg-d!Tu`f7g4d9K%LSl4sf!m zU*;;Lc6N8eQBf3W12>YTI0aW8oE}M}m|nn|)5KLTZ5}>;R$TnwgMUJ5^^MFo4RJb1 z9o_S^@XDisk<@zrHJti)+03XUX;OW#qT95a z@*A#WCvf}9Mj3viwJB^N_Yp$zFr87O87;e|F}JU2HtQi~~!GOx=dp!}{e_Yb~% z_N}gKa?4w_<{~9cv}A{I$C%xedZ^c6e#hsgBCz# z80YFU(D$qE(x`WE;XqT=9{l6d zc>^E*s*>{Z3ma)}u3RK3)aR-69{$yomZVA|Nj!F5X_s+QK}>aGe}sGg0G`#w6RheJ z-rc&z<^KSyjuQU>D}Zy2!?&sKew8~#KDlvkbuGhxXQ14%s3Yb*gLn5ohplugy;Men zY7PblF;t^r#wJFX?#U!g1kf_|3^lmV zR*mGca$hUCcK9!4cBj3sP802wm9}-AO!#AKkhpGH2Icswk z%+YfsWUaC+tUmE4g+Ax{Rk{A(Bxx=6<3|ZS5bRukGgczEktC8GGAQRz33*T5i9q?Q zwbMK=rTIy7ERCtOiVj(h!aapdrr9@a^OcWJk7FcrT`9;V6cSJ4%}XV`B1r>j_kLb- z7$!jDzD0XvHju!AIAMwe9Re-@{HiEdH#em5g1!F$*{BXgc!V)px+`1G(9go05{Gvl zn5~#DuJq{uxr|@HLExM=JwfPy99O1Y=(<(-D|2H5l5@BWHhpp{mA&xI)}GBaog-Y? z?fIZ(+`tb{QB60{YU^T@cNXLu{Vr4I08qmD-lX*>J^Fq^pBmuA6iKCBW?*x{}!Q;2*fnC0j z0ln1Oq=#+2paFLdOrOjD0Msj6*<8w_=6tBy(R4#)y6)}X;`&ZWZgvj9d)Gv{EXNoF zy(nFyBR;gNy9A8aB&6Qvu~u3TOrlujiIHSeo)}~>_Z{nlvX)Z%FPQGB_USMs8Ejx+ zEqWOtRFb5(psotgk26Z#5HY`%aK|io9S^Nsb{adp_CJaAqz}0DKZQqw5a5?n$UdCZ znE86-^I5Wym8>sp>j)xwyH8 zc*)5OjHer0u?N<&;b9g1!a=zNgU^YG#u_X_fPrf@uwwb zR2|XIY5Ii1Z?jIjuY&c)1=9ZjcxU*>e_H6$MUW(j`;_9a@3i4E`6QU6L%A3nG9T{` zdaY%BG;^Cvu%i1LxZ!S>`^)J5qM5X2YfYv>bYJa7r&a}9x6|^fDX34NO>1tp&n=_; zt+Ssr_8@kD=UdUbx~n1FhrjvnRW%sqn%YR=SPK#|Tz2;Nrk_E$olU*MT|%=$!e!1n zV1wv=#ZbAvhkHZkh@n+2Bj=Jh7+=qm?~eR%(5|CteKSXV-b{cAS&7E)?lJ6t+OCe> zEcIEEYh{5VRoileWbx5{naRy&;bvs?6=qxWy5z@gqyGS^Nb$H_F9$z{2kJW2-#AHU zB$o>fwWs{DTy;)^aQwacRXdj#Y3D})I&3%!F^%UveaA|UNsZ0HzPW~f?AX*iYteW= zc!S^iQwxZaq*5-WsKGo@90XQ5F2gv_zdU_;tBo8M@xG&UmlH{nV~$qb#Gh`*IQmpd z9#xlCyC@+40G4r+!l^jRXTQ>_JdI>+?=PZ~U_*Io045`nN7o{OSkkzPX)}K$Zr2B9 zA|xLuXP<6PIjoDci*Y+EYBFG~O5_c>;C1|J3(I?g z|Z1e+yg6$cm3Mam{n9JDSNbLu})`qh0>%GTxW zXSfUzT~&zVZ$Bx|vHc0B{{UveXQ#_=Xs)DX!xOo;1Duk5=`oQ@e`~1OY6jHG_)t5|uSLtLUwl~M`&tVTd5peNFx(=_O9E$#$U%RF}Y#30!STC<5@S_LDp0xvO^q6G=)e6IyQQ#2emmg`JTq_O%g?MIzqP1Bk&0zl1Lr? zU}(0tCdQrB+&4C|!)q$c%qillCg0zO=W&|@7vYVN10#}X~Jq79sR-7JfiLY|oeBP3%7-k{gCnKdhWm6`3~ zw^+!GhHRn8JBS^64l4DQpK^5h;?$=}u4j*IjH`?dxB!g*0G?^wMYwefd5lrT9mJc^ zNTfzW?Cfip)-G*c@-VEiO8)>V6O3FiAP{rZ4%or#gX=B6n|-E;EbZ=|?1;R!Qn)D| zd1X2K$DkkKTR&jauZNgoW{4`MmQDcLasv*>GzH2(ZPaW)v~-Q69D^Y(wR6-F%P;CX z`qX+Y{ocK7WtK>zw>eo-HOAHiji8+55rTjE^|7cbU4Nh;Q2aYMAL={g9?j`lQOW(0 zbn%}hl1#G&02w`5KZz}hi^fH~x6rE2RI z8jbDbH&BS}g}(}9Y^M2B9p;!J)yR}aGHFXL~LhhJbc;h*b~yWEi|YtEzP>icRXe_iw`Dn zql^q=9cv2rTe(eM9X4xtvk8TwN?|A&hy~EIw2p%$~xM z-q@owvmZ9;h6{AsJr~eYU^dzb44-PbVAltrA9f+=zvEW`OYLbf!zdv9 zpk(BlgH+UJy=H~gZFK#C)!Bn2gMv2zazk=3Ij&izoiC%cx3{!{G*B6(BQu`ck8|j~ zyPDDwE-R@lQ(Ilhd8cWjc~b;NM`b_3yQ;=NTIjURI^Ro)VO9oL`_6bWH=zFj3TpkI zPPCF(A$cwxOr!+{M?R!~O3(W$>yK-4w-dym11abSrq4s1^Hyse3vs38^!G4c+1b6S z?u<&L?gP^Vbv$!Y-rrl;+eaFqX!wp8m+xFR_eZy>r(bFo_BN=2WHEoMjZl2|4bubL z)vArXyIQkq`pmFLdc$ghz%9Cebw{tg7bVKW?CjkomiGQo`h=^4j*u^8Ut#N79%BXu zR`U??xqkLN>lO9boc^3{{SIR(ySwS zUN#2ZmvRvrguxi@26`V_5<=!gQfqp4;P63zaNP1BB!0Db`)SmeqtP`dVt(^R27SG& zS+x5UY{*GH%#$(xW~%B*rAZaq2`m=l8A2Fjky0GSRJzT`^7d&OkT~c7qgYof!rJ>FnWJl)3a?H!qeNs$yGwg->7ARoxlbPbu2c%Mf&S)`uY zJP(zlApHpfv?0IJuHEIdx`Cu_svr6qitf?`SY(LG>dX}8Qosyz*CVx3J|DK82;J5f zc2G{}g7)=XQo6A2b@q2JD;Ta45jNkHa(pm0w=z_@SdBFRpzCA(y@8T%5Sg!;(mXHY9Nsz$curgSQw5A}r*gRa$lju$hVk-kZbGHl8@TBp{__6-hiYyhKI#v&pu-sD zQ z<|{_ctzOzAZUVucox$&)e_Erex7pg>_BI0P2~im9I-aYK*YNkMVRGf&vs}dL4#^1& zjgPv+kZPmTYJ%dl3ZN05zq2E!H@$1k(NB1jEwQprn|7Vf+2K} zCz}(A3!j;>o_RjR){Wc^G%Xr@vi;;I_*fi+`HFlcZ*2i13hF~IaC#B^#X`Q|nJ7?0 z5za+W($$v2*$5=2=>Gukl1KEZbmnHXg(S}O%xq7nIR60a(%9e|xVjaYkH0u?>p)y( zxearuuW-xH`~Xs15^gl~Zcmt7@>BjImf26*^)7Ssr{}a&n+H*abN3-;Bi)z}=xMIt zSe`_VDP)mDBB>;G7{zB=>2~p3Kzz1>eV~?&ik-)k)309jJ?P3?+mJtdC_+86lllst z;^A%Lnq~x*8-VpahvIQbI|Yoz7t40ig1Uq-je~X(@_8qY3C2A-nz(fcwo9}>+Qt{k zakYs(20yJ&X9)=@A2JX2 zhkvO2s!LRPnXhGCuHy(g>`ue#dYUiP3RV}Z6E&^YR^Y!b!yaQF?|L6j-j%U&Ja)0X zl5PMH0`(;J1Kia+>uY(TX(uZd)hBrw!1O+&+w$hJtmkO%VH$yzV^tnVbN;VA$?gvW zCy~(gqSw@SHtk?=&phOPsm2+5MnAd_=TEq{isd}HP_mv!vGoVBt3)U#j(;krad05o zs=j2+!X|ldbLc(lE+aNe>x&JRw;$;fIokvD^ADr?eR?0QU$nPaRz_zM%;XsxrsL>6 z0Q9I<)cG=-g11)^51f&~9)NZg6{9_?t+d6SCpd~j$v^C|_4GaIt%_S47~VM!?b8!Yf#D~R(EAsz{z580QIc%=IS7yo*NV2qsl*`{-%YvCUSPM z-xw|4Ip?{A0QV9o1f!9b2s{0IR*kLvkTek6EOSCeNCf=3CnG+?9er!4RE-rPjxee^ z05}4plE&8HlQpywlhm?;e>&MzT}@QiQ<|RsX%Z`yw`i{wfK!vo5t19!R7PDWZa;)7##xo=ehi;wkfD; zR~I*$gpr6(?);S*z|Tzf9X-u-=%5g)xL-_Q3PQJ5IylxeSkYBcMidSJ0+Lyh2-;al zR0EUm>F@NSX=AsEq?NXy?thop+PQm+yUjxL>^2x%&ZM4F%@6S(Sv?18EH=crp7T__ zYYR5=?s5Ca{{WvfKl@PrmAMv|qiNB@Y+zO>03Asu)cc-k_I9yocH+|6HsiXA=};40*K zjCv~dJHMa*0Ir&;XxI0b6G@0e5H{x-a$iLZ^K_Sy4IGOhR^1poMyE|KWY~fg7K#>lB8j9Z9J6L0d7?uh$$CAg? z`_-VMfJx8uq~&s%M^kImw=-F^D(RLx$paXsX^!$FlFEF^Sz{!D!8=7WTWI6cF4fhY zWL=o-3F)6|i%fKi25C$&ppGn%-!I(*tsMf!)<8aozqM!2s6!pfTPX9UKYRm?i;uj0 zx_)A^?)6!vj(Dt-ZNd|{$T8&s*C(D&Zr{qNMhB9hq=>8mefTdY`^VGTsV?DSj;9)3 z-9DpXy%r@QxX+#HRDN9du5Ng|_~O(pN(l+fVS66xe!TuQ*&L}3ye~@St|3To=7pF? zYTz_H;3M_meMJvVL77i+=fI8$Qb4al)0CY)$L7cGQ~v-#73WVAwal@=h5W)KRYB@M zmUCV8t9f>oh`{a;pg8r~D^~8bDJ$w^U8BCcc`77vnAS0Za327%{P_HnIriPg%wzf1wwZ44rrGS0)>wj&Jjek(c^zp_ zWM>Uz&F}5KJ&=XDP2dtn4<5Ywb5>hd)8HmKuH#1D6TjX)tD3vIHsfJy8D_|gL?8n> z?0MjK{3<`~D41h)zuqVQJqIifJ$mz5xSJ$&$5Vz&OUtV#TcZ#pfN_!rahl@v`K6Nc zO~Hs;8@F{VxMIhs$Ef1E6)7hqbu5+!ttp zOM3O~(9}`t7J!Ikp57+}1|Mb{P>yk*ZfSB0W2%Etv$$nQt`b=YBmu!V$8W?@e{Q!H zH;~8)SB-%O>0I`oaMwHKwEH|H5;Nr}WB&l_;xISu$F*|OM{zEnVZ4N9oDi7C4)w1> zB38ALAd|_FiTUxJyz+hPX_(M@G7FI$F+#EfDjb!Y?)gA>IsR2oQMR_c@-40{CXvnv znK<&Bvjf_;tfQ6E;cr5i!{Rd7%Zv_4^(LFBT3g*iwclc)+(dps5E84^=*g(vo|7JMB0{BDByI*msV7kN6to&CS+_ zA|>RrU05C?x*(Q_e|Aq%?^Zr@t(Zz8Wr8@}m|&~)Ira6dJAF1wIeyz3$b<}Ri2Tue zu6l$0(_1iIB+9r8xQvV(h902z6)e#t(X=eip!WoVD7i@(b`slacMz+})=H&>i?NY-)vqBe^2S-4<|81Oy4fTXeu zX%lMK?UH`rBL^8g;1iR{$F*IDMvTb!P&g8o-yTQso^al@2*0Ok#?&*)%Qf7Dw31+C zpHHP%)@F(r6gk;(l45R#Hvad}XZm-mM*cXGU$m=R%z(2aAHDSTtg9F$)NY>k@e(In8x1N^v9)U7Hv2YA!Dci01IRNPqF_1XWz99Lfc68 zt}JJex)6McJF<`AC;P+ou0d|~h_!sg)7@AJA7r~Q%NXUAvN`FI_}6)JZxz%&Tak~x zti4c*628C+m%okAbn5tqR&*i zy3m(UhTbD|sCUOEM&=*m*YT^-MHQ^(&Awqw(~nT-(663Fk(#+spDW zZbsqI{v(gTRFqKg_NMxbb1K4NNSn(jr z>{%Emo=HryF5F=4IXTJe{xsLsMUI_wt2LbO8%ktw2+9r=6VJD5tK|9ky`N9G^CD?> z$dafyB;UOg7i)b#4NE#syW_^aS!ck=~04($V!ebt|n_NJEuL6*r#X41hhk zCZn5ESoKIE^33x}%>)BD18*+G{zLGn?DUIW9VDK{Nm@x&B30fBvjKp39l1Y+SiZBf zTU$6?8cUeiExs752{G3rw^C>o$nUivwsT%wK_W$Lo@~*BlG1iu^y7km3P`o%_NlC= zwF@wXCX6F)5(XSE*ZOl>k=t8Z*!`YjB!nUJOY^^uNzYu>Z9c*Tk+0U>V9JGvbt<0z z=hLvH#BRCJyfHRPha4d!;r99*;ICqR z>sw9IhLLObRGw+0$;NOtl6l5HwRZa1ZezeyGA?$L)7&3p-ltFSX;&H+3VX zJ=h*UBi^O4->EUutO<<0vP{awhne$by?Oj983a!YY1S}8W93<}Hbwb$Y@UPj6=;2? z@Ez*bmdE&W^SJjT?*9NkrCCH+ky0d8Md$+dr*Shn#S9*8w9+$PV=W>3(=TSv>5kQ= zNelB3a5IzGR(_zX9BX!EiWiLTR%XCHtDi$yH@e*Or~FH!QdRc2lc~YO0y?Pa*QhkD zb~LVQHo0uedhl+z5UVgM!0#id9OonHTvgV(Jomf3y0&nq2?~OCdKAdP3<(E5m0sk< zEY}x0RB*|5&daqQht4?1d~$QZ_pJ!D`J#d;wI%-0y50y?0FBw;l5w1L^d6O>jf;$R zGoaHGQ~NH~dwn`FxJCgRk6t_eC-4=E-lesYd;5Jt z5p?#K!HTq8W)|mx>JP8IT(YoemfC$$Ve?~LMigY^^&aQiuH}ukuwS&rsSCH3+si!5 z_lfC{PBx5EYP!v?oou0i3V+pGugcPoQ|Q0WqSZBGvKvcymgfHes>D9zKkYf`_*P}M zkvxJ+`9QzDKR1~#Di8ZB-|Bd!=FI0(#T#plQto!VU65Qb+OtTf2Za@-bUd3x%~M$~p_6&Dw3s$a$ghvCLv*UD#`^H0L{>mD!Q6m(>OH#i zNv4C5qo7SANJoiX?`|1mU|6{MN4`3fo+vPB>ack_Jk29zS987-{O9zg(sZ_h{%E4S znOZpVS2+mB9Q*K371JFh1-eBo-OPxrB;<~{^{H$}FZLZ7kyZ4~Nn9~yXqAS}{2bRm zaih+yJ6NpO5G(naDYPeI#2zQOpMe29u{<+eq4ep>=O}yCn}+ZiEhpZcl2xbq29vH0f=r+esRz+Z%8c_RBCl zduFd+cybeS2id2Z8-{ifowkIz#ssbEarEo_sRfEp zu3y_O>)kwrSi`faAQR|1jM7P|TWT{~Ah`08(;i&Bbv=Cu#(B?Ly=kCo*7vf@2B0B` zgMvov=ke)LUFl4MM7yx_SOAh-!rw7d&nf`VdMvIh8W$QBwZvvLDnaP3H!thR{41Tg z({F7cmetr?SP{%Kv1I=MfWK5D-}9|FH0@5>5p|+o8_O>&g@M-uk^c7|mMX=jw-k=n zx`aZ?`)=*0C3E%ce!jG>z~-#=X|1LZU$nOKa3hv(k|$u~b@qDgBV?cE0IZyELU|wO z*0L?MsV?DUe<3!h46HH>ALK`JJw;-Nz0l-Tkj*WU^lq|SjQ;@R>FxZg`L1ah_c~ka zMYwxX`+!IJhfTxZ@)ciE)90Ep`h4cv;a|)O4i%f%*}dyZ&i*Upgp!$IxpDVgda3@M zMP0;xhw|@5%?@Hqt8*+-UP&B!j}m;tVmsplfA>#3FyQyC%WYbF30l)r^PV*S0G8}I z0|Syr1ZA)fd~~Z9x@DH75;e{@rZzqXvGiYj9(UaI7Ma4+v9`g>(E_Y_~nDWp#LO zA+=b9kV|opyZ9kNAd%{L$Koki$aIiNEV4;y7<*MOIu7{hf-0)Usu2eO4%HJ{z-`jqqhBa?^!LxNzpZB6 zUdyJgE{j}7aw2|=ThYJxugpo-!-Vv$b97|1`b^{Ey}t|3QOS)p;k?838QX0e%U-z{qA z_bhqZf4G0A<@I*zBGsJDA~bUm_Nb28KiWN;@#|5-L>F`0kU~lO=>EUNKau=tw|Rk* z`aJDL#KXHs>+VNi&YyZqLlx8@NbzDs$MKHi@dVKI8be?zmv>N%jo?bT@BAnA1M{LB zN2y;7QW!`R$abrDQQf}|KRS{q(kRj> z!BkZOs#`0{WW03>&+^8n_+$S76P*53lSw7Zy`(NyCE|8d&-;M-p8l0h=mS9eeBwif zvWWb-=_`)^073fx6p|}x!R{jYtq08{S^J#*FRx`8JTZ+J-7M;ppt#TW69xj z(T^%V^HzNakYnLKCRe}-;Hm4 z-G8l8xwmOmWsQV)D0fE3*UtSMdme(%Qi! zx}DAgs^v$n-&6WlZ}umfJhzieI$S$$UCp~^9sN(}D`wKkEs`*0Yl&5M`Hj~efOZvV zp~2b!tyYGKSkBY!=YlzY(dC&-ec;5F1EzD{uE{)bC}|FJz#Z830-JGgw&1A&=D|C2 zjy*~2J?oQcZ?)+k>~a;gA0(F}jl;S_o}TSbaBOYnp?Rs?HLjjl&Qph%?XWR2+eNXc>>h``?pQc**j1Vd+{YmZm*OW+P z{?CMYyBB(MjNt4Q-yJ(%bVY4e(c>$~Xh$cp>Dsclaw2KNtl2ZPa=4CAcCwO54bL2L z+t#C(#1;t9h#h7ONGEpPm>ueg(si;Je`~=WK;>Wu4gKz)UMa7mYItUCUfq6NWWX>R z*ZJ{Pp+`pRYpGd*A}sduC}10p$J)88yE&F8iLT?fiZn%#WZ?X`7(M!QJ#$jcVXWID z%>E!)q6i22zWiYO{XOds?7F0rO)cK0751v(mpRDcvCtoC5*j62>qzB$L{BQ-F}P)c z8Ta*XZr=4M)NPtTJowp98NuuMRDWQ+eY>>?xKXtEAnkGdU;S#3*x$Op{7qm+AZ`7^ z{HNBfv68+0m~cGg8<%iBvG4EJuyu)%p3?0BDvyL3)^c;w@gNFy6_j&a_hU9PJlfK-4%&su&*APiP_H@Mjf!wXEx z_+CgHpTKvl7^af)T^;1hGS4cHFb%{7?Og)4dZ`CJYXZ+;eI?^46i+e1Y_@UF)9FlY z9Y2&t>?$6|BQ+UDApEiKKGhtLDJ_l;c^zsuW;;rSpS*`8gbgZK)&HdB-zZw_BMBSClw25GsNrFik z@KwljkO<3vJ+<6f$|Qr#X56^s@-W@_t}{;4KeXQF_s{zb0k%fi$zl#pJ+p!MS6vmY zydivxi^j(cttM5DF`OE?y-B4TBG8L;k0VHSfEW|o@SqT4bdY?kPC@VMOhs_TlgoAE zBRI`lXl=^7lF7TM-N)0Ki<;PM7SKlshiG)i-3N+f`gNr7x*!M}gOQL&y-d=eAG>JC z>5y}Zi7rut9qc=G>q&PNx}0Usg{f%yn@dA^U=HWD4a$4QdwnZL!&idxFjd*H!(?Hj zK90SQy>zl&D(nDcdY;wKYFacm(*3&DVW(=K{IjP=_Ho=*DR&6U#;5`Q@C8p?^O~b| zYVyKji6MCKN0jUGwR5)Gy!LYoEm9$4K5!fUSWWJy_)oV=>tdZGByM2+c9DbldXIX3 zX33^=*Y>)NyjBfqa9Tiou^1R9Kf|Bm7#$n)ss8}AY>?XN+JSLwK4xW70YB{l%8*BH zD}N^g(DbZbO43`Y5lj%x5XKnr$bCZtp2C6}G%cb!j-@5kzEqa!f`u6El=TD;QC&)o zNj|)q^DDt~X>=yHzlmSv4!8V>uwgRjW^Pa^|BlV%c&A{H& zKhv&Zvx@^`^4QKB9FhL$KbantZA7*agmgC+N}vWohfqC0;Qk+#P|)SKXid)WWNtEf z!jE4cGCCaftDkC~4ld$5Kj*3pui`q7)KW~5j4mud^26L&_gv-U z9^c*`-ABD!Nh7(7dNRus0zGs7eJVwCbqZX!ApsXReR<@fs89yt3y50Vj z4C-|7_Yi{6e-s(}%uiJGKHVs=44&c{?N~})8=b%eUSwGZOnUu&DyrMfsY5Jx$I6v* zrX)C3ZpS_9cp+(+>I*8ip^c<;3cvHr{{WBlr?Z)M-av=WPnKBE3`e2&9YrCgLRclV zGOS`V6NX@;r)K>#R+#L)Jd8Yf03JAR{>r01Pno}mg5i4SjN|%`bv0H`KL2heo=Nc^iV)NY2xKAWy2Vm*|% z^{Y!UPqp5v?~t&D70=$m!2L=5DS*>xlHSWDqb;C_e+bGmp1EF}52sU6+1+{fK6T*o zCdMFN;gNf?=ehLjin1f$w@wViV|~MpGoEpuR{m66#~!E}*Jw5>aO^nT!?GUO?nlyu ztRch=MnJ`PStDc&{{XIG-~G}0)r*UV4sC5zOLj(2_hTR4Z}6&Y1w(;t)3AE^V_{{TGFO{gaG4XT^T#|04m)9!i-j%z9J zB6#m7SkRC4adZc|J8|oI3!4<a9e4UZd455kUxtD0FQd-=D9_jh_0qvyHd`wCJ5(-3=bGQ zAFgV>qTgS<^DU6mqJDRiw6Q%;9P`2B1M6BS_bot8LT|NOJ70+6f-XQ1S8GxFpf zhn$1fs8|VgKQi7_NFtF=)4MD{80Wh;PFwP=I~y%GPQ4a!G`Bao-0Z`J<2m#P>CICw zB)1nc>4OZ(<_*c6;GL&w9H|`f?^IQd+dDfAHP+Sx95OJ^%-=ki>U~XY3=laAPa_}a z^sapAG2BOOKB^H)AY5)IEuZgo?b4>a)S$6cfbNZm#BfG4ET4z)k8??moDo)3kVCLA_5WaZ++v`nmoi z?b4;V)Q6mwmJvPN%-cypl~dpH{Hlelx7y47hBs>{m9XyV^E%@=&rIXDaa~Lh+3AY* z+H?^cmSAK#$KvhSV05T{W@-nWLu-Gk>SEqyFF4(}f>&tlN%Zab*JzqerM{Z-1XDAB zgku3oAx;OcT3cJIXf+M+vtCH!ZQQ88D*Ao{r{h{zFB@Hbk~tB#$s0O@_fB(>_1pSW zl%B@QU5VrKECR(SGurT}AOk3KfE(AhH66pi_m-}bM$TNtAp{UcGqn5k#Xniu_7fz5 zUKC)=r0vg9*XnclS2ba$TtM;L!925}C4hW^AIpLB9#1_u6*1RR8#MK6H1g!0c_M`s zfmKixANP-QT%#zPRkVr+K6jSEw)EI~bNF^rp`>x8NNVU0QwHN=~^v~dA;3EgGahmhIgI!yEg(j*o8BP)^>MonjarY0SQ_mdo}HNEtQ%wk*1 z&QIZ2POWRXl$(f{ec;hI%k|@mqic5p7m3WV$tigh5z$HO{c5{f>9-cJ#%?A=xI00| z&neDxoM()Fv^1_#MxWa)XTOKbxP`VOXXeMuNFUJD_x6i@X*3%nm6%~S5-@#1?e!JS zt%IAZsO|6IX+~5>EMVuMKg?FNR-)PoX1gh4w4a(6Ap-i~@%mC>q087@>fRnyhW;7f zOgKo$8`?IX`;{l%^1I;?(thbtQ}!!P4qoY3i-y6tZwwZ&moOSKbU@G<8aotF6blYR3x?Fi}A;1hk1cUw7%VVAo zdZ|Q|$~Tr0=~KwsdnECF`C%s+{{U_|Xja6VJicH@y*mX}8G-P>J7C7s4LyCBHe8zdF& z?pC_Hh?e#zw{DHloNz}%J?fNNWNU5qTZBhEmTZvQy;Sz34P0fut9xbS2?Af+IaNlC z=czp#upcPF=DNFUyKA)H6RE=#WzQjiKO?kBI*)g4CCJwoOva?wnqe3Hg+!Fw)!3G96; z%FlUh0^P&*sJP6r4nY3^X@A4=q4ohj%PpIkEYwX2=gDK!-4Ac4Po-YAxr*#FM$MJ` z%0?Lvp&h7-<|~vELn2KcNF;VXp4An_qDn-H#tV=>Sr>vmkEr%EwF116Noylq*(h~C z>tgKx0PQcMe>$5s_x8`vnHvld$SQruVk$VV9tT)81&$Xu0%62*e}VQtoh8My`G)4y zgt-1Ne(a;szoDYwCAGtbYdgQ5a59cZ6ECmV*Z%;oS@!o21k!2Nk*uqez}a%DduR;R2lW9q`<9p4B$UJdHB#ZQ+5IRS$&&1m#Hl%{`}iQajDNF0I(C z$<*!sA@s*1=}=v^*tG~%fl>v`M0Xv3n9t))u`@~#rfd9xv^t)hwu;O9G%@K2#u$w5 zFpLHc=RJt$_^QE?L^`~ok0&GFC;yD9=ZNsT2UvH440cr&oLVl zJdx2y<XqM8+ zL_7SYMbA0Qe~GFv&Mf1W85GT^XK=?`ll|f8>5kPA6WmTGx{5@aHDZBARuKgzC2G*HLpO8XPk^UY>UtVR_1F*VHD!6WV`xj)cz z^r;dk)?YH_SGk;XyBG`p=>GsFrNx0T6W)SbeYLlyaPob92kS`&%NbJDFt&~Urys!G zN`5^@<5q;xByTBozy$U0+ck$R)9Nf7 zI0NynYf?#WGk*$66hi@@C0V;}1E?4~N%SMqq|@?1mh`>D!noQ;%Nft`kL%Z(=+4gEuEup-6uW0e+oHUdIu{yXLUs{BP?h-mN){q?MGW^e9O%!EUMrm zvv90O0g!b#>FHD&(^S^tAKJ!CZ=X8@bQ$0U9DXM?J;si0qwU~Ep2Z#h4Ze`OI&2_)~d^!l2mJ-x)}!_Lc-_Xpj_*RE;Y&B$b>3&i%T zB(o2fcL4@Zq3U@3YUSG9quRM3kbZxg1D`-Y8qRMzBKR>hiUwDAKZnwqZ)f>@%XuYX z&o7ho>C%vvqp#(e?&C=Jg^TBtj2?YGY6<3$c~5BDT8sJ~)mX`yGHUPui zb+13WL1}#z+W_%T@~|VLkLpM2D`&&k&0#gojNW8|U*6j<8E!u4Ju-i#XD!5z<)6xp z-SL1co4dPP@g#m>gHKXC#senc5x_z}9Mn&FHT(-L@0o3A7?q7i8e$GdxW_}=p7j$u z%-f^^NEk#>g^YR+@v2cRB2DGYO2cF^@f1Lk5PFl`)F`CfT$1BIE>Gc0GGZAYATR`z zoDul;rdb{xiwPX65=S}WsCO-m#~VR7G{=lKR6qkW`7e_agw1oHsQv5 z&>ND&xr;6XXQgx6^wG_8VW+rxSUHfYjPgIptLIX;Q#wXSWKvzv7{SIrLtNZ*Ow!GM z{#pWd#tH3?x%TFwM6*{*h)t@A<3(6w4E-_5z#M)CwV*~YLU(@%?d?!#P?WX%TapdK zhXD21IA8JnYfjP$9@gEL7}zS1;#s~Q=qmM?8Op zb;Dy7Df0pW1RUnP{Ib~@1nc&TX2>i?58_ANKK&21TC$${&M6;Gk!~%syUCTgRsR4! zhMSL6Wf^k2NbT50>oQCSmUt&UYZ`R>HTIDRnI_#dj7eM`od!7VS@&AamEF2Uez(?Q zMdcN8Gm(Rwamc9J^3EH}6c_63ts}EMcqx!EfsAocV|66Xv9XsNZpkO>OpP~Vl22?` zF%GF=3r#!|>N>^49PI;W&#D0DO-1x3RZ`r)sp>4O`hJ>H zTjRqpKkC2w{{YIl^jWWGI!&V~mpkW~dIA0a0O$v;W!-8>p>1^AW@*pN+ZTIhxne(; z=T@})omMDX-$}8K7h{=alQKym^&oHuv8!!F$~Tj{*zXb;ppF}Bafl;OssPErsN}ec z-^?=H!EYXajz9?fE1NntwR#u(LsYpVf>1ui{FnS`$>H51(Se>@QvJ(-N&f)8iLPl@ ziPWOagz+Ya6u&;JZz1o4k@{9;$B6WkAs^b&$r;J}jo0$4ai)}*5!_*W>`{;Wb!uRA z?0>JhBiuLmRIEbmB^FVGU(wjI{{U)QZuiRP^Q*}`6YTpn+!877t{b1Aq-Zpm7c$Io z{@Mh}AV`qB&Z>AExJNPh$JnyA%_>Mma9i8j-ZBJLqPOg5aZMN*SX z)O5_YnVah+=j_rq%%Anm`+X{{uBT@!tSxgTljr?Z%dms^@N2SXf0GOgkN|xB?|RTl z7DY=4e08_I63S2cB;CDpKYk9OSqKC56I((UvPSZ zSdvAn>8=^owQEt)k+#l*9=#fxX_T4K&1r9N2b~OVM?yy;tKPvIpgusFRU4NF3=gw* zs#bdKz0oP=d6JF{WNejwsCxbtsFKAgZL)mXz*E8ey3^QaFKumeJ?Gl(r@D;s<|F)t zk4yuM9{ojJZDUl1W2f9(IwXXu$-=kAmFR=xG)R#6AI^SS8B8EwAjx93>0w6_*w zNp%YwxQlE_2LuD#gMxS*Rd1*rMW(-}NXFHq7V{y-#yBI}{{YonvCNJ#t-FrLn&4v6 zwCThbaiXldbGUyO80C2s#?$pXTah)cpnQVaXn@qq>@E+QE8|svaU};GoPng5bQ-2{pF$~ zPo-T(cD~l^tjBRD=~pfF3wwpP`yM1@jYKHld7ZzBhj0G5s8>|f;zF)8`3_GeP)Hm4 zU>{HARxanWg`{{5v^&7_T^Mh1*baF2J*Xe4b~Ozgu&l*k88grQ_U-}xy}DD_E5tT3 z+3Bh}{nF#me{_DPs{_6lWMlI?Cei8@s5abYRKmI5<}4r$NqpQDL-g8~*?|KV*tao^iVyQ}gfm15f)T*9tz_ zaLm2qi0xm*^*^O$j}ht8GbN#t@zioq00-2Z3dkNSn(9`D(%qp0KRYRt@WTH9jWre= zhi4i?ZlWmTNMh_1U<$8us##iXNp2T;;3(vupspAn5nas9a#3x$!n15A(2%)5hH2KC z1Taf2)85@Q?hZ(8pbtUcAB|Fna+C{S@RUU*{ls=^6gUKzQa)km2PBb?%Be&(`}x{U zLE?_ogRux8`y2!O&*4mkBC)-Id2)T0R#6Oy0aDl_Cm6vwJ$))$tLv%S_R`T3E0lEu z8ExuU?_>@+s<&d1X46Ko)56IdUTlEmv-6+BrEMr;bIx;7Lo4|yCBRslXxWZbC`>nyAhKLgbM6)(8Rt}QPnyAnqKLXM84{sSp90%o{MX5AiBGnT}J-^r% zT4=nTUEH1PqH$V4Yu~^zUd_=q-x%$+PC#v`2xk7wo|n6&Z~ja{jDOP*3PFO6GErt!--!q(Vs&C|Oq+ zA9f}5AJq4(sH2<2v$SirEg4ByJccX}Z+^c@fHeBUiy36NwX{Nq&m1W|vVRN@^PZmK zON}boQaP-E!NQox01m89fBj~qs|iO@x`2CVVAJ&LWnejGQ_KUi4^};^64B?pjunbq zn=L%d$mT(k%Fir!sP<&&2@g$xfWI%AKmT9-=`8D9G8SfG<=C?6QXqn&7*(-!6yYr8@UFvCu{9a=Hfg_C9^Wi5oIN<*khp|PL%FTWqnfa z5p2+JH#XmBWzN!eXPh2Bocq>poA!gHLjXw)v3-(AryG83eSLdY&aG&c{zb*q=1Ykj z84C<>1_8xkX%R^s%r{pNx~BJkDVu0ubAycM^sDGo_)eZ3YD>d?W2eT#QG%sG^vCq3 zSX*oJTQpa~V!^}iI3td6f@ZS^CDEoBjq2^ z)R~-Bxsn^Td!ZXyy0Wh9WrlwaD{=3%E0BP+(2z`ElqZwhgVTzYY_F#>0Te8%#ZG*) z`DJ=lS#+7L(s>%f2T}=U+NT4#7+`1`Wvw>e!W)#I?UUO~3EZ+0q3};*?ax}bsoY)N zTrHlNCApG4vPiATV0h{1I6qugO|dqNC%Le>P#2>+1a3VD$LmR@&lbzu%iku_^b_Tn zfJScr0Dt(oz@=`bKIc=Xz?SUr#4`+FL=PBd>c{gnHSV8hs4tgyY?lL^5;-4FN`l#S z3rHgjBfTGah#_2)$v%g#wOo$w-c)BLm5>t1{5p?uQ1>9Z74j3x zL64Vr*CUbN>so#wzkzJoO3MjF!B*g}_|}H48p);HHOvbuOmb0=A$t#F-|??A)HNBd z7T&_)x5%y#xm*po$Q}DukxheT%`;1q;)ab*!CU+TP*ewu0%#r4lTFtMe*@(4L#U zGgEtkkFIG^N)#bLz!M%>tqAKV>D|v~IS_^9Y!%wo*6G3wQFLuk@~#(fr@HbE(c3-huB&4;q|1F_xXh}4QPyb3RVVw))E`beRjFG*MuwZM#dZp( znLLO-c-U>4KXSbr>OU&nhT=I_%!*Gje_Z+z)K>&r(^N&ekg;y7Bxh`heUJ35CK|<} ziRF#8dwgV15ZOAf`%BTOy;-WCbF*g$8OR;-JJn0OYkQ>f?qErQ<0r4+de%*bvlY^k zj+blPBJGhs-jDn%VmpYZ0K)4i?~m~9O2zJDE}K4_lQx$t?{Am~ZKNNsL->!zt=MbV z@t2ELw~jXee8ILB^~YoR)`N8!BxCicE@4}UB!Ki`j+vuzIHJapt7*61bg6WoXpxH) zV}?~60ncB<*18o6dFR%==TFkmJkl86*5SF^vxQU6IU7$-)neA$Skq>eqrPjaX3i5h z!Ox>)eneEdWP3BQn!*;4%^N+n&;0a{g2Ugj{Ar$T-Lb^ceX2k2M7Uw~U+}JO)5JQD znIw9SoVMF~F*poAQTo=6kBKzP{Kgt+h!2L%esar>R=1+AD$#8|t zY9<(Bs(Uc^&r#`8kv&ObTWQr|w`a4sh+qt1)Or!zAIq&iMl&>VTmfr*r!mMm41K=6 z)bmMkBog6ot>w0H(aHP2M;$*(YYAR5t`k+VZtIQUejFde28(JtkTkLxOz44b;#^H0 zc$qWQ9{ut8RSB-GEs871zCsM410=xweuoue<~6#vc#+!bFsBD4Wq|wiB!0Yis9qg6 zNwu|j?GB(E?2NI=8Rvj{3Tr@35GC!R!XT34Ebkc3)5uV{tw`oe){*0p86{v{f%~y2 z{WFvJ8mPL?obs5=F^F~#o6E@zNdz7{VuiM}ZMT-5Y;4Vz1AyCdFy4#DPijpK8YWXD zsW?#5Hx}{dqW5BZ59#%%r|y~IfSa4rb0Z(Rzh6K*3aRGp$udZ+{{VYx=2<`8AHu%% zWGP63%IT(B{{VC_-rrX3`k#7RJp@;{SnbN9??MJ!>5ht~rhr^uqEB$%R3v1= zhw#HUe@s*3lG-p*%GPOf-B$pgcRhbvtsC7X%+Sd^R*}E&K#%4i^dl#aL({!G2QOn; zlFkL+BEb@I*8p+pP%X)rV%FDk^Yh9!s2<(V=~3d+5+vHvOaA~pB;@{QrDxph){rB+ zO&$kbfVL0eRHFA9gEd8rZo#g~-5$6rgkMjW{Bu@XNTb`5tHwC=u06H+Zen>X?dF}q z;aP~?_zcuBrn!9^{iTynC+>tlbb6o9)|!b*9nE{qM$X3OX(f?TDWd_2{_^+yLH#Q( zUlLv1Tb0r+#PS2QZs4DM4&PEMFZ(yknkzY`SvS7_0N#>IkVZ4drg+KgU35^QF4)jU zzKSpfR-Hzoa|1=Y)l}(Jvt-3~iN8bGFMHgrwV46pC ziG0bVjxp+Zp~!X|ssjUzW2HUbG+plK5OpkgtlP~}D`?D*EOv?6<{Y>Cs5v!?msk3f zg{)yVvHt+i)!O{n{{Uh>gX(HQ%ekw4twm`XmLe2yy3D^bpY{-P-=$;41@^Bl+2wsQ z)sG;!`$WUgpWzU*Ah)A_iKPFO;IVH*6o`kLk&Rk3;AZ7)l@)F&k3Sq|9A z`ku8pxA8Whz|D6So}b-`FxdK^=qg+8MUH_$RM-+Ymps!BrKeiR8tVGmBp$L1{*{Kl z6IRRLUQc!3=aHK~s1;!}jUL#AEoitr@R|KaYd2XGpvW$@eF8~dRn=hg4gnuA$o#4_ z*7QUhf3$7G5!VO&D_BFMMn)w7dmr!>AcskltgL>nar)C$S7G}zAnLk%{IO~)ck{ReaUc={`1SoOBL00q z`DuG*$vl5{XntS^eapey(~7+w#I$YMUz>?r?Zk~pj(41H9^Ql6wl*B zY>MOefif3q$p_U*>OWf6g8u&2H)N7MO4&|6ZscaR%{JhxgEHbw{ zsk2{Pd4IcA^6)x?$JUE7jXB`6xj($NMgZh8@JHob<@bk`6iKJZ(E>hXz;*iVKhqU% z8_BL8X(-=LF`a$tr#7j1 zG67*>FPGS)dw?Ff;YZ+2E}Q+4aU+Fj8q@;C+>GRU4ukT|Zq0dTF-v&lKV}&c6hvAX#Q+yn!k$3N#a(ocOIm93?{#22ydAr+K> zcVjuuezii=R-D`4<|(%}UO5BO{OAF3kQtKb2pBWPmEzTElZ~ zBKfmGq&Y`88&reP^HTk*PK`EQTHhiLG8b?e1dva*I@VL9pF-5+M$qY6nuz}Zak%ra z;|K8R`Bf<_buBGf^y{K+K+lxqvH|RRukxk-#j&`P{RZKp+^Xntv}KO~gTc>iREFmB zNu6W5m2WMH!1;z(-#xz{%vN@kU%JZXPexd<)~%*^?JiPF8|FCy&k_&zTfJ{dHo+eK zp}jMlpL)i*)2uaUU7i@Ywl>gY@B<*h`c(^$3C5B$>Ei0e{{X!MfC&EpbetNl zU~=w9{f><-i`iV1wuEiMu`J4YIc)VO6(loi15;?OV0i4zU%TUQRtLL#iq7(Nt6#b; zwMh9H1j8u&xF(*u^mgPW=i4kFp%)PDU;FKU!mT@vNgY;84B+qW$4{@db9Q&udW*Ez z7FK~)MvTbMjkxID2V5TYqYeGN;uVeIxI@A6WDSw@;EJaujf9q_!YLlo9l`c=IR`(* z?@5fWscE(`#+T@T3`3)eAwdaLoTXakO{{YKCjEne^Pvuuv{t`#GkuEOPE(sxBWC1|> z1*gGw?{3eus}0{a+^%!SzG@pCLsF6_n(EB#@>Pb|$R-d{&{ z&N{aCD1EsCv2^QXv{~z4{QZ5yj8RMMigNnAo(`;wRmSjQ0H_E+p$!rQupjs8a)p+`h zmXdjJMkCw`DPl<^V4lQr`O|dhHK$vZygw|7wM>njrzB@+9mYQ@ieD4iM(r4y2A4c6 zD$_CiurpK|^IpHpMPuYbPZC`|IR5~yYe6nZ+J{ZkE$!aT+Ei87!X$)5D z(3D@BpHouB&QJqcx^-`|ixfR3xjUR6WE>C1u3BhT{%Dfm&3ivzGGm>jo}hFUY8#}M zcY&P{DZ>K5{{Sl1M74mKxO@SVo~`uhidQAEvN?t=kiii_!7RIrR&~y$9h4K?T`Fxw z+);7!6VQHi`|VUmH`$;Yu1Mry0EZvWxW(Uje&K<*g4pMQ{tk;{MW|b9 zQd+}d43VNoIA6TNLfIrZBaCA_Vx=1EV&<)7crL8&V7h`kHB%nXD=QKe``z=;7^_-u znIs}>t;M1FBSurSZR2srQ~bJA8hXsCk;q!|-VS5jFwz7604*`l^N2q%nRKMayMB}-#D9AQQe9-oan zgE>t=y~e67=9=Lmkyp!ekYoqAKAiNfltF7S()9R}B~B)kl14~BksW&aion(68s4c8 ziRDyQ!VZNLbz*yV71n5W$#wRrB_c?a>_ue+cFE_jYN>38DRee2uPsB_%^ZSVlK_0M zTY?Df^%S?aSCT*y&erK9ED3WT-5Kl&t5?bejG{0G!Mp%FgP-YFmBUAs!*1kOW@ZhI z)R76+TWi^y%wkz%9Q608Z?y;>(n#Jbn0J*=o)!a=2V8rawO|f!2Y)%grAu^6PhlSb zd7I8Z*$4WOOQ_L{tZEu_*$DjKIyoN%M%g@bf&mBeq)jT#qSLM8U*478@*^G0gRW0f z2_vp*uZUW2wc4eXlvlS~7?mIu10yB7{#@1VHVcpi)N{H>Rb$&H%)AaqsQI(d_NUOT z#vMOV(|~(|29it5d-)-@zJyz}ZI*J_!R(-(RGjoao$E^a?&1px zoZCn){_3g?!I=7EoOkJ5^@MU?>9SnkLmW)MB7_B5NZ^yWbM)y#?jimoyq3n!MVdvp zMN@|(4WDuT7026Y^1ODhWfi=dlyUj2$0VNlKEFzjQl0MP79v?BiY6P*2~s-%eSMGN z>0Mrd71G$X!fp#D?=g7}zJ@c?xB10svNL+WK_}KN=d-f7MuzI{Nixwg;aH9^NgOET z=jrQOmTzryXtq~ShSOxn*_e)?@)y|k0Q*-vX(YN${E<5?&77EZcjZCg9l6IRC-kn9 z?USwD-L|H-aaklQjBsRPc-l$rkItc*Slt3ESXD^~r~uDQ52au}m1Zx0wj@z&0Qsa- zkP8luarp3RIQ2_ZQ7!cCaM6+@LIru;F9Mf3?v-zb+!4b9s>z?cJ&6AR8rnyPP_+`m;AfCWK3fm){{TH|wBu2_ zHgY+aP1Dvf=c|=fjDk7?*o=dpTFim}0I~HCv$xsPPMmItsp{v@^gmxrRdgkpGD2)M z0(OXPZX0PGqMNw(4fluC*I8+){hmaES5^zg>~oL8vM!PJ7;Z%H`EfQ8igb&(Z1*Zp zZp7AhpCp$EZSK{U?iVQgPB7X2N3A!g9agKM>DP|8rV^~&iK07QPp(B_G#a&|Gx4m% zI1Cs?I*(=?H{)GoZbqLNU;`2eQY$KZg@j>oETo0N?e(Ul(Mv*=uC*I5g{4=VWA`(U zDpBk^8rY8J85vR8t>r(%AlgsUvHUA8N3*$Rv(#)7;qj6j1GA4)&VH3lX|t-j>6(kG zbBlS;n;96-9r4XRYnK_FeoirrVxv5hk~lLU@&Q8JKv?}s(YAsr zjJk-oFxi`%vJfJTq;2cRIqSg9Ykz7+ZkoyCb(}uT0th2+bNuPkYBr`8G0ugUl}xV% zy|eYJNLDbW)l%MOic6hBSu&)RW!sNThWDa^Ek`kK^*qDO(H z)S_@35&|*3fW|ZFTFZB*2MQ*DJ7)vfb^NJVEOTR3y0j9rE%p0Lf_6Vl05QPh{{Yul zKHql=$8l+;d9$`SJBu&;359f#vQHAr8S^7ykVP+)2^6Wm^7G!o{EH+t+A&*e1f6~W*|5c6d|*c=bWsK(mO^O+#GT_H~f zYlG%aN3iI%vlg4A>0u(@LE2)3E$1{Lkg9%QS%$43=(ydzz(vsaxsMqt4GH&T$k-GV-5c*n8CrZ7Ta( zm2S0dt8Aw!03@RRAH;u8ttm>%?0b+luYG+d*|aEHL?;I3MJ0dW3*YNn7Ty_%xxCe8 zd&`{U$t!N#_T%{;p(gZ3@_B#&{|@Z;%O{&U?(#hP1&5`-wc75DT5gVQJ8 zv%H?#6>DnCqUy@iYTL!Uo&z2;^gU1Enyqntc3hQIi#Y1ar2ct7pr;^;E1B*kTR*ac z@-qTk9)O>`Y3p-m8#|YPOx+c_AoQczq&0R`Xyv&-HS8R9z-Pzec>OAiJH~~HxaW`* zcKQqq@l(&KG?N&ij>IaTzq3F6VO4yUmPHo}0`(?PyORU1cpYm+1chsE%9k|OLUP4$rN^qC=l=k&Q(}3H z`+KcPU63fB2bC_Ye=ZyO)tA(*UO{htYvsw;BomLo;fL21B+UetkY1a%!?0NX(4g+g z=yAvttrdmzjbm{S*>BJjv@tjys(mp~;IDL2nVEN>>Dr34_UxEF!Rmga`sTRntv6QF zn0#9)3t zhuj~^o!Z}2J0@~bwxK+6&XF6)22aRCeqi8=nk3ZO+{30wU5M(4G28pq&|c`pBwO7& zR*3a1obDdu_=oHDr|EjEKWUQA?0uT>kKKd!Wge=1eX5dAR6~K69*wL?AC+-6y`*Qe zw&FSTP(PhpZwp&N51T#H-#GbzakW7mz#rE&x~%d^HP`KQ7qDBOGbpyU!b3;ioittOR;Wo7!~6*5|?C*9qS!jF1ISk>FiU>kxx{{SlIW|nUdOfBt+{>et@PZul?B>w=g zKU$XUs{o#BpAbp*TVVG3N7tFht9l{qJJzo2T`dK@q7OTOaylNvkLCE(7dIc-@JVf9 z8{Axf5l}a7^z_do*j5rbJL!tu}RNYu}#}!T6wIZlXczH zuP`}%gl$h^Pu@RH1!U@4oL4HbY4A?)gSRf^um1pC)tk)~G{}UKLa%T~%enUw-uV>G zIySO`&iW*dSRAmG)MeH}akPSQ->(&`Rw1VMDe2cA*&3XlWw3T|5qJcLJqA5L!n*xI z^&4F=%mrYajH-srlDR$m4!n_EcCaIY@owXtWma!ANU8=-@0beg4DWYuX0cvev&oF| z0a4I&9;AL$+t%Vv&ckdPcGIQRVz!<=L59$*8OR`X`Hw<#%})f{wavGcs6>$5Jl`V5 z%5b4~W9yOM*0z4h95LapF18}%=2OLDs%ewmLoCuPa+r%2^9XRn^y{2}4J1+~fv2(4 z<(FP?(}u#hJBcTN7XymSu(!RQ!%=&=(&a;kQ-%df_38&v#($MxFzE6ayxmS)h*|c= zH=mh?4l+44K!0XL*X<3;825TSoFX@&bQ$3ye2l8Cd}vN1;*}sWYOnxZ*!ZrmhmQu;7KF-dMX@e zxl(X3>_$G7(RtA7Dq^@_D(DOYj=rM@uezGuw1#5`?#;KE_gf%>tUGnCe_gxs)rG~p zX?&Owva!UOJPx0!JXB5`+M`HF%7)_O!;?C)Ji0;oo+ZgJ=lJ9Q0B75^Yibt}+(#6) z%+Cw1;l@;tUMd@V*fj+EJklwY6S35THwkspxfUQ3-0;#lU57f*KOLCA!k<5Ag3 z?b?V%`%?K98Z`ib5MFTdO9Csax9gYX7#yO^)AVBMFX{_p2vk{d? zB1Aa)*5fR8_OVN-+~6p}wh8lhXpvZ?6QigMm zLGD47hyC&~OEtaZ0Sm*WS|M$#vro={GgZ`l%)Yw*nF53tHUWJEjNi#^+w`< z`sHfv`kYlrhN>f0hD%VSWFN7C{Eb-t(bnzuhIKSC#BeH~b`!%>uey5tW-Wk!dt$BBIeJSs8Fybi4!x+h zw3!13Z?xI44IHX^bI{Y4NMo2P#)?Nw9;Sj))N>gfn%xTqW+7R|LHcLfpKqkzm2o?) zb6~HSyqe9p`)qq3c}tw)J)d}R0X+Iu%cH8zra=Q;Ja;YDMEMElj+yO1-(q=fphWVe zIb>a`dy$UjvvjH2&7!irSwylHa?ElN4&Rk(#}}0f8;J|Z0A0=0)d^-t)GgvjT4@{P zkd@(7gSdnE4zvh`w7 zbj!DfZoPiL$k#=wLm()&<~w$qa!DrBf(XC|9SP1eS^gVXZLJYxm`iap5@Y}X*yyJn zz~}L$xx12k>7xGAwzt!iCNj!*Hcw1**Kg}k*>P4NTU+F{yoxK^xV1Dp)JcaTG5jEr zf;sE-skGI+zEv0Z0_lhh&avz!KjA_>PgCvnspW?LaeQy%w`4f`DaZv0_vilr)l}^C z`+_8mWrjPXRw8&u${64Q?|=^;^wCEB^pRSqy?2H;MPvckC~`*&pQshZ8=(=N2k#Ji5#K)5)!oF=Sbp*Z)g)2#ERF_q)a2JFZJs!$wQaH4{Gvq)0b!hl zR?i)|^d8hAY*~|7l^Qj(5L?(P6x$;3;PJV$+@6En=Bq}Ik3J58R43K*InQEDuwkO3u{VQ#JsZ?IE$+eo@0R_6`Woe)Q720xdmbjW2Ii zVS~)#5LaIhVOFkaWO?eKqq%U)YOQr zrVGeE(G*a{CM9pZG0ExbD#Kh%Z_~}PnCyuC#tn_fuVdKLw7Y>a+& zWb?;8E1B^Uwav;+=e$;uC=$NYk^cYzJcG?#Q7zbqNwT@T{{V?mXrm4q;oLDfLyUcU z@m)R0xX|VT+D3b6aur*sJvl#*2fstu))t$2V`p)5ZEt;;ULP(dKXx|$?(W&mcM7(; zg{w$~Gc-FgNNfYzokystY;ae)e9~^Xf?;!&5+XKV%Gx;jk2%LXezm=%*lGH;j5m^R zxRZ01+IEfHWM{581ZJwM&to~WS7=WC<2>QIXFc)`3Gc!6s`_p1&XaX_46*M=ZR9fm zsC$I~XV>x+nWe5@v$&4-{{T_2TL!a`66oxunID38lg1l9zO~ibTzT+=<(Q;gqc2UY zJAa>Q#noQzV2WKkWxd4POqc*U86VRkpAftk3ioB<42ZKVeO&YmNa@oD9@P&~8dt*J z<$lOe-ag<;E(io1{Mq1FFMS=Q>|)kAmRscyJaIDNat|wm$?iXubkk}YZk!g~wjnLF zA`JZ9dHj!B<&ev-&7<$_t2z#&woaxycx`cp$Bf;PDg5x0S)0B>w? zF;F}b+FwQTL||``Il&Ltl5$RerE1$xZDN8Ti3+gX-kA3_M)uv_;@#P0aLgH3J5@2< z58^ZiyBh6oE&|9T3pP0f)_v85jHAoFwYHpNKQaP;Iv;6D(KheJzadZBiC@PsG46S zC9;TeOQqupd_GLU-s=Z=qQ{MPS1# zd!|YcZ!n?#MO#fq8PtFxkYl3Ehx&@==ekSRJ3KvSDgOX%mp}OEHC6P_Gjl(Ow8Y0! z8O8_T1!>AVv#1Mb?77qAByy}H93NbR?rJx()0=8FrOE)shsgf`DfJkxP8}_-5X%Oi zZWsNDr61OTX*>;yEvHeQHr_}-n5Lo^XI{3NQ6-3%hAo00mOaR+g`SoQx0P_kcXU@h zc|VwwDNaf& zQ7GJ9D@904YFf0$Tb3Ct++cbSLG4y=wI4Bsx)6{SRUn)I3F_GTec%58Rc7jXr1H5) z6MHEnfPdAG>fg)j(k&kPFF#Vbxrt4>gxZ8;<#KuU=QS~dm%PnA4WA)yE$-vEj^Y?j z){T=PoDcS~!00j1cC0(iUh3ZAt?e0BU76lFVV>szWc_Nq`o^)U`ADH6ws*k5$5Y0B zgB7)I_S!rmC3|POor!68?k(zmQNZnwdfQ=I$2S^ZU4(f|ivkgVxeWfNI6T*9r&?)p zX~Jl<*MO!**^?|-Tr?PAhx*X>pLMj0*+?Ob?BpY||FmSlY9sNNy zE!>wj7j`l>o^Sv4qf@kA1ICn16AR|kWD4Q(*G%M){M zy*Uy80QOaz3SZCXnC>CQ_9U{8o3~G(6p6Xb>Q^Y&QKgiPb8QCj;z79-@%MkvYD){N z$*wfpIc^&2!ge8+KosC-jE>znsRxJkTLCe*@@L-6*jCz3eTeB&+GzT`(_3CoJ+y5Z z41;-W@s6Nz*WRk=M%Ao$5b6_1_VLAOzhq>=sTZg{KH z*;}N7^q`b;Zz_+-+(%qw&AVp#tBHccj z{(qS7SMN0YEpph&7B^>c9SXPfKK<)v>U%i}cjbTq<8&j;U&MY!xv6CPHP-tnEy9tQ z%5;%E2&Cq6UBcoHA(x1)bLv#W;k?a+Lyl3045 zdUe&cuDxu>VDrEMhH$|Bf03;Fd0oR;-#%{>K3t4BnMbetU(T*Fzo{-HCL!g9KoxV( z)}&l~pqyupM>OCt#5g;8V-(}R%*aMLKAmcbIvpp-jR-aod>IbjbwZAU`sx=!4zAm2ZU> z5F{|FeWkzzC?6>3G4$vMuRgU;NwzkSNqu<2ONL_X-`{i8kK{ieTD4{+y0~U*ONnGW zup9uLFbT(ApG^AJ4)T|hDQswIwux;MUr*ETFFDV@zo7j4*4?CTo2Hxnd-B-+5!rtV z%y+uExKNhSc~Bk9tuF=p4hLb+<5FCqy>QjDWWA&%l% z)=6YUz$`e)>x_O>M!>f)?jw$SWVeLOR|aT=q-SSF01u$znWFi!UL>@uJ)&;fV+%E1$eS&uXDdx#%_; zeC;*c$26kKcP{M19C{}t6ehjJaI=T zU=B$q`P6o!Oj!3#6}mGsHz|{XPCI%5QO%&!GcF;r(_*)d;s|dMGSF;t8DFUw&wpR7 zF$JuteJ#DcoKS86$2ZDcfsol5CzGCQZt~vNODQI{j@m+)btnPk9RC0+#Jtor=p?)5 z+{d|C?E@#}0~n{Rgx!Zkbc>5?Up_H(!!qRdX5^j^ukxysUg*YYtp3Q;<-Fp)W-#Z5 z$SXCj;xjtM+;wt2}>bn%S6=uak^77|*%%p(oUvwrEZL zmWy{K)y%eDeguUM=59TIz*Lg5`HOXHsmmp)+cOeQGC1flfzv-hLGb>NrKC%{RKO$x z+G@S%b4^R@M`Iaz6lVb7k=zf;sLOw(O$6Ju3(*z`Vo5mX z=}BdOX&g52e`&atoTk#dx3*7CJD=xM8}3rn$|vpC$uYH$PurA*LH-rT&C`LNJ-X7B zO;!hj;Q+gjAch@t$3DlQ6M(22G{PablOHL@N3~&V z)+11}j`G~H%rL>fy2GY_k^cbeRgE_KJL@Qt5&fytAL;{UQPf$=Cc<;ypH8$YlXP7ibEns zhvp1@N$LlsJBZoTwEqCKfh*nILmFX%FHSm-#{RkIILL2>uwrpV7+&csbYWtzNc^h0AIB*HQ-pFEa(hT=Xe?G#b@d>T;BOn zTE{bcmc>)LxVX1>32Ow9C=6uhZr{&}&pM`~sgEYeEuFi4=@1?A5B78SNBduuG_DB} z$#)K#&jh=sz9114UpXB0Zo~1aWwo2w%QTH|ZVp01Mt>O(U!v4T*lBY{trlX=?g4G> z-zTX&_pNbxEWo@dV}}_Gah!YhAFtt6YY&xmDCw5Ea8o>i6fgx@n+$m%f=@ZkSiKf9 zMIh*-o#dS zcWdS#iXa06)SjSyDc8?;bc-7_ae%>r18*bhYV=kYGF_FHI8d?%1&&F<$9>+Sq`R`b zwOEQvZLzbKb||UG9mn$RQE_t_maTS{@GqGgHqbj9({F{#qRAq{%$eK9Fi#%7^}lDP z&o!mIhfrc!6}led{pyb9!g!6kw6M%%kRaTEdY?~kT3o=SXMLk$1-Y@1#sC>nxj@Ii z6++@md7d=45tP_+tT-ot1`i!gZ^>(U3o|vmjJ=r;Pv`wBDtN8#q#{&TborPOf_*vY ze-qlOG9Nc`jJh*I4V$Q^2JEg z+!SdQttTou+=UzQ#d67QeWF|&ts+H5KYAj6cQ3d5C$F_`T5IxOv%FHJt->GPMBFkT zaol^wmNvG+bX7lcR)}B}4S%w0SrDbbcnnh=Pmcx9^o>+Cj8E!G}K$9|T zVv|y9tIUxk@-*EB3InwV^FM_qrycodtdd(#FoND+I3u2Leuwm}-6q{(fTCekVlji+ zMn9fSW<_B(wR@>c9Fan(L~AHxxC~&9KA){VZArO_9*e46mSKxz1A?q`$4+|>)~v^+ zYf?n)q6>YP`E$6FocHKE*J`>hry#_dv5i4e1WG^{7{^|Ruhydf0EA^iNYmd=>{Dr! z3=jb)BQ3bF;l6P7LVlk1MO$mQ`1DmLi0fynbn{C$OWFzI?^ zuMCmgJ@o8+!4t>_PNM*DIqy$>Ge(6SZlSufP^=2G6%3^0jl+(^y&U6HXCHHEuFMzB z)CI!7|Z6lUxs&t8OfD z{J^e$4-Vg7360LxiT-6=9H+P7DXDh_F6QKS8oY5$dgjh}_WZ5@Esfa52eAk1nxUu9 ze;6XlTL^7D<|lM)p@BIdoM1L{^saDAeWEm${%y5s;{8%Y}O;^kH*u@I8a9>U2h`hYMv_Urgp2F)5@T3yQ{&jf{mBw#5G z)9K%ua8_cu(L~VP!#cq%PjNdWQIZNXCVpYhTy(Cc?r3GUy0r}Q`8b&!KqCvt9OFFk zjQ1TY3Lmq}d8ec{i7KGUKsh0ssUUP5*ITK;XRwiA1xP{{V&@=^R1Sy#0M$}SpQl4C z`CG|vqsZUomf4e>HgWhKz3W0ND@47yj9WlMBDl)uo<@1BZ7NG!Ju1#s^KGF?TWU%{ zlVLbH$5WgdwSRGOEQuAQ7qOR(lX*bB!Q*lC%`T!YSy|c1_Mq0*$1=7uqmGpxpJ5YQ znUK$J@;k^1IUEvk$4;2-RPAQFu(G;evP~$DdEMqOTn^c*E2yQtmylzg&go+b8qAwR zH$j8Y`qHrOSDMoD_6pZ?}Th&eg}B;3Bp<0oA|Hax0!_Bhjxsr6S#DlL)H3s)59fj!p?V<d_2C*LN6K9FE{ z5Z^Rw63Sx}{ovX8Kqsid;hwL1)p*2doYFo-loCj;IZmsbP2t2(y6R>n8+$VE%Q|KAMs$!y}7mi7v{gCnwX= zhWeEq$Rdu?=tgc*LQ(f)aoR}!@bCE5d&`ML@v1${xnt$V7vvcJBEy{WYeBTn-exP6 zcl78;_dc}cj(L2&_`$er9#O#L&XuXSBJJDICd`z~ucij+E~=Se&+F zOGOksXZJHlkS2rp%6`8RO|szPgflSzF5iaQOqTJu~l$qo)0eK?74Dvq%_*Kh)5ZjpA+fcUq1;;|ncSgtAyB}kU!b{yw$;#}{eS~sH zt`GF5*vV&qEz4X;7DgoFrb+GidLF*??3ifHz=kFgT3$3w*8y_Bm-VYHeLF-_=F$s+ z+{QV_t_@&|OT8vVlFTIbpyb5o?u}aXWo-VBs8D;+fbegASa{gIZ zk}#^o6(^Pd0QFM21&OYb>QvboEnTe2B2u9*q5z`wq05wxu=DewS$_{mW|i$+ZCe+8&XoVfDu* zq}26@-fty0h}WEq{JeedsqN|3w6zHm1WOo(@xqX!JDafjcRt*Au6pSl+(8^MPjL{- zzZmlmsrJr)D#8n$-IXWGjWMM}@Iuy-M+-PT8;l;OkytZWTw1NfG0g+Q+0HqUy{gO* z-fFYMw$@ne!tOXbM$yn`--^+-&}6!2m_))gau@gHXP&=Kaa}tZ^S*@(NMW_yXJv*H zfOqvLuS#>al>Y!Vxd|rV5Tt)G!R^O6HL-c5eTvDXNNrT98%|3Q#QKp~kO!5fvw0fU zX&cHfpOl>RKAdMAxuW7z)ax`IDoaLn&;D7 zxsePvi**#rz_?AMpa-Z@Guo2!3mpj4bwgy(E~0+X=I;`m=Wn4Or9K;Ll#@@LuN7^h zi)$j11F_>ZnJ%d{&BeXGovKA6xFm@}sn4Jo>sk@PIg3t=Y7-W689`O(IVTvV?jmDn zs2d}0x4=$WiI9TDS3ChlmA$GYD)&87gtce+qQW(YnSjW}0^Bfl!nBa4Nhu zcaA5`*OzdzmtT|+2?N{Q)TBEal22~lWvr9Nvas4zk-L${6-};$)=FAL^GQ@?$j9qP9=5o9OMDFpg6}|)mROiyQm=3(AfM^QD3v zS@yT~tW6kfHs$4p@27FaD_BJOQw2%jke0ee9$`FWcE)=Sm6>sG42T{`5XSPHm0neW zAmi#km%T@RHC;W;JPaT>l>7|l~;QCO@QnD)BWN8KA%dNue6Iyiqi8=y+Iw~G*`*;%Z@YX-%8Yi zJvIjn@)FtkOEy6KD;rs~YYTTsBY5xGAiert; z%(S@srB7Vv`qVL6o7?3Dilkg9pi@Y~Aqxwx60OqWR1wiI{hdXt~VuC=v{634n5;ToZLGB92{b;rNuL?dK2Lusu_ zBaR=lB0CMmqGHQ47xSU(0A(cbpC6#l?T=AZNO1$#f{g>^r+CtD3B}+^W zeLZO)y^9GPI#d(LINS$cewnQVQf*^Y-b8m1MF4EB;2DSm@aH%+TwQ9xWGy58o$$?- z11-Tk)ywHMBvBlOCh??;zW`*E7t(zS37N}NoRyhTcltDz9iU2JuyO8*qxovK$6c>f&SQU ztnGREj@$4u+vp%n&XIl8uP$2W?J>asEU{%qMhh{b5r~C-jpAg%d+ZeCyS-jzfMgyJ0lt0XVHI~x#8`Rsox>(CBvX(jJ6k@2y ztt=Ad;gey`)lt^D$S&fVC~jC8e8_`tVo4{^{x!L#>Q-SHWl?D`$52RbeAcX+_a>iM zx71;4SG8nvbMvkb`RiGRNaFyu%Xkwk&(JT|*0$ul)9<%JZeWp!&Hy7Hk80!Yrh`zq z*=WxupBdVtubja0#CK8HcQsL01WN67tnOIiKVn~*B6E*3(Vy4Ze>$Gl^ji6_s-h2hdexg9 zLRszN@-3ygk$y*E!U8zze?I+c)tnJrqFqewbs-r(W(Y&v1?VtxJ!%%7D+}wO?vceh z`Kk~1fWvYB0DS(nlVl9IYw>YoBfYE}i$(GR@9D9mcqq_TLqdM4eE_zA(PR;JTZ`$W>LZ!5M!pS-Kl zeaHU*UXt@vfuVbH(%MfU5sx)W<2(`%LxGc8GFw3+ASf6r;R^6ncEKI#rcyY2SnefD zw^JKQ9GgN8K69L?=bx_zqIeXm!6an1PC@(Iy7BMrkHfua!qP#i-dn{l?*LOD?t#Js z*}JjJenz0WypHP1@$VvNo-u(dU^8>TJ+L_A`BegXoZISU;<&VSk>K7DrROW`4|Bod ztX%1mNReN`BEvF_qpv14>>K;b>*@5Wmebv>vMj9>&`927hi2m3=La0~f$v)O*KKOV zuyJV3hEvNx$DAMY&24amxt655ex>I}bPQ>2e-eDrlb`q!p6k}AM$&nSb0n@%I6pSy zpJ7$yiff-L>IL#HRIx_RLIQYJ{{Ur&Zr_bwx4BEZW{qQ59Z3#^e8~QWvyv(HI&D(< zZEes&u*)aiVb0O(T!x^V?sSV{MmKrRGucLKRU~PwZPIAnr+|fI$0Z2k`c`eqZ`PSG z{{SVn)5mrpc>E10?qtr2DPxCCQxvJ@tXaW4?jt|U)z1uDn_VzG${~4VW?)Wo*~j#* zb5*m3($0AUUPwp_ur^DK_Wf$qT5Zho*~JUR_IN~5$rzcH*kMV?93D<-NoWyAp(w%Y z*R^HqQy8oyNcR_fD(yVyukU9k3b4gM9*>i+;~m7<32QtAXAV=OTe?70K( zXP?8iYc#bf38CqcT3%`s?lMZ)1hipUSoIhKr%Kwq0#k2jLE9tcfgMzGe-4B3s+xR| zT3avK^y`~=T$aM7c+VN+oZt>BG{3c%QJKu;0z{}cf}|74>-1W!ZaWyd!Hz4J7RX~U zjl?RF9FLfc4mtTp;%d@slib8 zf<_87&}WGHvX5`erFJst7cfQ*jmlgy?b;{j7|uthIsGaZxVyHUQs&k{gRwz7)pMS6 zo;VBNy;Nmk#hKc7h;5^RZLcn+CvgmZ>kfJm*mG5NTN`sc;sg7+0C-71#6O4hsjqGH z+xvBtt3>|*H!J*SIQrIQ&9(ikaHNHAEl?H)FTB2)HF34eO%v#vlfiIN3;EN1;zm5Y zby3ZB8imlehD46y<|vqQ(I(>?j!r#}G3}c3YiDI^5Uf1hxsk~ES9UrdVO?C4Fu2;2 zUB-}&m?Pz7&jgHebKjxw(A3H{Bb4YM`!=0#_FI){CwN0M19DL`4h==Z!g`Ycq>|@Jl8+gybGLz+!t<#ML66c;UTRkrOWe05(Q@Zc+mQ z$>fYx2rV1?T#*cd#ft&8uu;b&q3MEuDpWt(4J=VdEy3Tp{NMvBFCQeGbHT=adr%_s zM%Ly{R>_nh;UGM#Cm7m!Dosm99^&0D#+h_%&9Sncfz~?_&lGVD8v{O+dV6>LYd&aA)4ro+X0Ioeuspc}MLkN7$G=*} z@a5yC@9kMF?U|3+<19#N895~9{p=55DLqjv=r1FhLbq2Np@4j{My<;sJy`p7$JVuC zh8WcnD56Nm-2e_MD~Cb4A0}yw3>5={JYW) zyjF5sUOUGWd%U?aag{y&@NxRrDXm=G-s)CXc1SmWtR_V&2po_z-1M%&tZhtEsf?K! zO7CO2zcbBb-084uc6O7>SuRupTpSR?gU?>Ms*CCeo{KwS6sWf4Wm!uslCc4l1IJu; z?^=?^VUk;|I15*bJ@0H&D*WK#v&MSXMZK|W`@3h7NM&5N%OTw-1E@WEnw{mlf=7;1 z6spaZR8YB4e_Z-i*l6gM`%ly~m$$+r$H_z3gOWd;HcLkE_xe&agUn-qJB~Y61lJJW zTf&K9In*<>+^7l}bB;jk!L8`^h_2etPr6dikseQ8l!5sbAijNGc_EWwfXKU9#&ALB ziqpD*Z2V6giE7In@c{AycCG;cW9kK9T;XN9nIhROyKH407@QDl-lce#V@ki8;pCAe z^05+t5RyLkT#N%w!Y0?{it65DZz4$ICM1r`2x0u1w2kzaa6vR*y7LuSk<_1RF0|-j zk0{a-Tqy+bK?QmY4)v3ylO~N|I4-$EoQzVGOv^XFaSofW@&S+w%d@Mmu|Y3ZmJ% ze>y;Z&JI94?mqtj=k%&>+6}u8^Uc=D_wNK`4CAk_p!OA`{gUF~9LHiNmM4l=P#Q;XxdG>pdz!*)yZuB(X46i#Y~OxP8cd#p^Q_w?$kCI;epqO< zdov@I1hECk{{VRRH9$kH-?5(N?n`*z<~YKSah{p0T6L74XpO8OLvOjnu`t`Qha8i^ z?s&~>9Wvb_KiU(^sY;**jv#h{oc8E(>qwND$j@`h3PcsbV923y;Gf;W+UEagQ z5{WRYycSjO$oKx0=`E%#sM|EFDA~C!D}2ZD&-1LyJss?l?@&vn69r}1A_Y{bIK>yx ze5}j0w_9`ad56r6J0aC&e?KU$PZE+LZK-P?Ig8zMvI zDaTTdIpfgsDclZ1Yq?{$`!mYoHXsguY;C}P^fjWD_cT)OUeTUu zuB8&Vx0Pf4;%6go_lNg^_5ABWpF_^wrg>X~BLWK_uS(_TON+wSFdrnTEgLAt!JhvB z?4IlR;-rdoo+gwjj^Z}j(c>iu{+@=Vs}SR3ru!C`Dzd7Zc@IV>IWU=1OOJAbUaVIq%tvrnCPn0cbCZt5?IZCOZu;`dVdbTy#AgmhIaK}; z&l&AV1Z$L8r?`jik0}m+k>j;83ADGlHq*zcd5qYNNc-69j+yUTrD9&C`E^m`h|^AJ zWBGnoamIaxR84B?)eJ#5jZ4KI6#cCgUDobYo;2dVT+xs@Wzb|bhilqT&RXngf zaa~1}5WUQ;Z(yb&5--kv>tvqelj~U;<(Y=@ZWbuuEDGTdaya82)kqrZXit9ET5<>T z?XQaA${`;x;B$_h>t5GZvWf`fn(3sFCYkkt)pIrYk=&-ql93? z=xQ5lDXgB##x#oLDQ9UJI8lrN`i?5(g6`d(V75}*AG{Sw^2qPUZ}6hRxz4qXfN_mZ z^LTB_OgSs~^{hb@t1L^p;pL2}j#Inl9l`YU#dMnVmnj9at6GBZf#mR95$ZwX8LWwI z?k=K&8=tWxV2!b)S!O+nY;`oy{L80R)#7a0+FDyjkGK$=pIqR6RXb~%tH{RJPVzz8 zU(5vVKG^6%r0Gi!>4UAgN)<3{{Uu{kgi}`_=8Z6 z>7L@sca4r@0Z!yS2GV+rb~Nih5Hy;l!%JrI2LTgvUkAz0@(?#N2$oU@7@#ny?$l@XxkM@8X{aK3cd457W7z$gQaTpZ8KjDj6F% zJdOy*;wy-=Gf8ngmuyd#c05d{X#{ZJFXK~-cy5_4?cF}kB=X-1axu>t>!0U}IYAvZ zpqfljU7Vy6L$#R2_oF26NC(!PX?ynV9L!uZgk*9!`G@(><5-_%v3rMDX19t`2gxj; zIRl}_IQ?r1Yu8)rt6P2Sn?7tve|W>tgMvC#^7IRx7Sy%AEWsKkK3sr|fzX5bAJEj- zdVQF7VH8Oq1><~Y3VM%lI{gW(n50YAm1Dm$x)hbS5;}|%&U$pK{%)Zdi5a0g0c6}q z%mBd|<39CPFLKqe`(3P-a}VAp13cr?>yAg^?_Asnwr?$jgsO}*dFrD$Bk(*{t-SKV za*|3SE5>#(IUk><58!G)5nGtrJHVTSXL%XMM@ApW{syv-yDJZLLllw6D*Wn)Ip-%e zteG)FK+o>eka7GXuvKxj$4C%BEO%v)b{v16DKQwg(`q;K{JKTlP9rS2BN;pl`*p14 z(XSO`3#Q7_vwYdcF`skjE4PAZ#ntSxJYfM;893-O{{XX8?|Ww%A+D{L>f)u!!!T`h zTP00C3GBdZJF>n$TyQ#lYWwKcv9V|+y0?&!Nk`!G???8Hte5Y$;T$YLa0%p->GZ2# zZMM$_;GCXBPtWN};<hyO6FVQb#NR0B03BgH(5gZfs$ZbB1`a(?0yw z>&w`gB1VGq=9LFA5uS5bMc7=Avfh#YDTh8?KL}_E1=Fz!Utp{8O8v?$okftgXL#UX!j7y9Citr(k(h&j>x+rE9%~q!#KPB>PhzlW$Z#g8L4i z{<_Mvife3K&l4BiWtvU9hV$DVz~kGRo-ILV)DPM)7!DUb2X22n{{Z!?MyymBVo6B5G?e}6_ACv%o_kZi_VnZflwYJ=EWjI`e z$EhTA{{SDQNV3mo1@4J!1-;DTCi5pp;Z8X$J$(oGRHvysn0hUcyw&DK=H4JxA36Dt zbMMx+%RH(t*(4gBl%^*6vAs#aC!iyr=UJW@oLbE~NLo^iMigMN=rLUiG|}p}@n1&; ztK7r#;Qiy!em!Z=akgAnx;I10b+xd#KYU@BzB_gSznH5xHnG}5w{S!Zu|Jqt^2|Hr z{R#Z4j){w{8SSQt?MgE)44Ei?@Hy>_=kTl0-pzjo$SuUu08(aSwE^$$eR!y3xfiDi zb8m2f~;_i2n7V^qQb`ClpUPe38 z+Su4fZp(8ThDUWJ+c*J_sr1DssAy>EL4Lt&w?A=CJt(kJ-)x)$15DWCs2?c)RYJlI zFYHk=#c0eECm08%KGRQ*3kW6qMdh>kdzhq$1G(VjQ59h%Tlp_8nI96t65xU|3m&{5 zLHz2q#go7SX_A{sq+|QPyqNBGo}IZA>o4sKOJO9DrP4lRZGa?$J;>;AG3nB$)2?E^ zGhM6YkIEIeWM856>p=?r79-?g{{ZXH zH0~oJJsR_E$+B#f!vfgbBK9BeeL9M#Wj~bitgxrdaWr7#cjM2?{cF3rw})4NOJK_x zi{)e-oR8rk9th^SdGy0QsFpl6>_a#pfg*p0w_{o<-*Ou2iM09RjIFY|%V{7cHuUvV z{(qfP)NPwix;OCekyH;gdijw9{{W#c9QPGo$IYH0Y_Ud`%Eg-PXn*mOSu%0m&c!s=FFSe9K+SLPTP+LnDINBW^OwR4jJOt6etY*z!>4>Rb8> zg3e2OJBckFT0i4}oc+R2%6^9<@Tv6A+}~cv;E*MZU~|UC{{ZXONSCpx;w1*&6e4Ui z$_Yb^@O$vQKzp=a;lcaOVW{Tg+10)P!zB9%}XX;lmO*WXTE2^2sMlH00<><%Ka%ZMQC&#vIrH!YtqO4rWSi^yNDJrPms(SGtW6*+}Bpu zU=A&BNXHnA*BhzJ44ReGPjz{vD@U*$;yveYOb~Z{Dk54t8%R&OjX^C$(X<+(S>)0sBB_mQJxYIec}+B!r7PO@*h~ z1H5B-bMpo&csoZU=~KaO#_I8+yt$7BP;NW;#(VSLq0_GIlE&R+X>o#2?%4PB#X8FV z&^6<5<>Ae-Y>MN0CSH{O*>Of zF;S$Q#8MI$F`N=l10%Tl)+{!EWsZA4?X(Rh$MXPf;IALy#b36t(W8=iWVsgxQW=o& zgy%nZ>z~fAVsEL1ZKGbb-k}*5(^!QumMTCijOBmY{XUhUX&8^n7Hn;%$VgSjK*;2h zdf*?=KDB+OwrwvlUP&CRy8^2m9GqhvJJb;Q60elnjB!BGH*x#7cjFlE#Zz|;M+;4h zKAknNYb=M1Zp(dF)b+^ssh$gq_-2aKtUJF*xj^_4i95jZ!F-xyS1}hx#4J+bHt>Dc=7A?$A4Nuxn9!7?l>Mhd#Eo;mR8-6 za&Qkk^MQ}XpCpoALwf{%ZJo=FtfL##&}XuN)c2`k(yU^Uu5IVKw`iEOiyVaS$2eef z>}qTFf?;QUZt+Z}MTyAygQ?F1WCMfP^rdka@-3un(Fx+Zx>$nFSmi`y<0Bk`r=O>K zlS_Egc`aQH?8rz$pE3{cV>}GxH~b2V*&-K~_D^DGp5PqF%ns3va;wLuk87E%nTspw2^u=-hN3^`N#EEPi;_QhU1>{&}cUC9{vRzr50t8(HUy z@*}!J?AZ$#9CA6_Phvautvg+2(WaVnx*s)Fwl*>uMjM`;3U{roDhNe|w#A7)Kn?(^ zH`+a&&D>E)k*Ii|=3WTHDIVQ_l|9B;TdRqIHqqLXj;$y^qUNdD$9i7!7rl-JNly{S z$Oq=?bL;6;B=Dz~brr>>-eg_O1EBedB>cn?o=$27(sf+@k#81hpp)$cuwl3`I8t-d zBR`c1b_C2%5<-@`sslW((n4I8`^>;F`@`rspjfr#ids=+ZV@QVO6*p~)HX|MK)W(soWoD3DLWVVBqa5|=Sa#YZPpI5o zupcDM0PZkJAI_}kTD+Q)N#>@<1mn}LD@x4lxYX08XUILdMX9?H&EDve%G##PlK5pO zp(45K%{t=3%JNo}S)$CpIUI5iZ+zmn-^5qew>J^qqzIvL7z2}!#MC$1n`*iR#DQVl z9WlS|{o&U&S7;4OpWav*21(kF)97oE(*am+?emS7G7qLrZ!Pt>(;&BL16@73{Hy-& zTEMfHWzMb(a4sFbltd9OrEt+jZxy>KxtA)0j)S>A!>wvrTf?W?D?09G?A=K`)FOfU#$hupj-K8PA{yyVE)PN9sQiB_rDx~gOxD_5u|{J;UUme8KjYW+ z^{BNS8_Tzf?JnkPcXeH|AHFfm`u6;)4BU!0cVF5p*4DyU^w@r4igMC(%QbC7q{JFG z)nCtroSS&n3cGs|o}Bdd>sk66+FD6yWscrUvRK9gkDGD+FHY6yD`gvbreI~bf4t+3 zzwY{Cq(w<=E-s>VmA=e?W+;^OBc|j12kTcYo*AuGRxuoBDo_p-^dSDU=xz*q;=C%7 zpw8pcMgI4o~-A(;xM+FB|dISEZAGAatmQm&aPE>UC=RDMtMQLkt@@h9ea=L=XM!*aRA8>KpepMv)u|#ie z;DI*DZ}O@j=LCcN#TEmHzqo>E>@5|7+liyyBS;E?#zuOdt}D>3q)UnJ-Zze9-ig5k zU=RMiahg4{Uh1;j+%EVnQ3|7U+<4@4;}zCgY1VfTdHzId&dlM{-M&5MFY$K0G7?ygWKwVPsXZRrQVzN zmb+*MoUQUIbLB4_@_KtxxQuNP?JjMQOo3%)C>;TfNdR$$IL<#h&(y6O?Q0&K-h4_n zv3^x^pO<%B6Zste8v1-t-5pNXC(06M8}e9oKB_p+_;^k3GrEgv&abPASLX>s2tp#4YXMZ8OAqU}?(5F;4>0KR{wX_kv) zBr%y*Ak8pbvf%uqaUTAa&mCmhq_#RR1+B0zyW~utaycfUhR`*<0!59c19)a#*lxef z)@9S_lENd3>6s)Te3Cy4pPRo`OqSo-@Qlg~d1Cp`9^U@dG?#JMTd7tPUfsJDJw1m` zantjseTGXrQiL7v9HjG|u0Z2HoFC4pXrD`!T`po|X!pp{#-#GdPhLOIBDq~xOieoS zGZ2&P%^=*)#F6zR`qx2g<=b5^`owLB?Z1t~~jJr+%$>8Vw zXK2Oo_&LG&Ln*3W%q3=zqDA)m}vXHW*_Y=MA1s*S#~ zmO62ZPqdy{QOPSRkCjO$B#!ltuN+R&&uMpaaU$<$Y$?V%=b)`U66Z-tW)ej(mQGIQ z`7xe95$j8rxHs5KEfVKZm+ef-h*+_df(g&}2Vu@J^{&57wYGvKk{E)se8q{$C)YJ% zOUq#!kF+mL9i$c?g>u?e{qVb3Z;YbRV|}g09PY>`9q@7ZP}>pMF#|lGdd+jX_B@k; z8+H1R@vND3xjdVhBC}&6Oc4>3=19pLjCbo+A-!w3?5^H36s(RJ2s|D*_3cuYw;8^_ zE^*eYUKVRf{%m0jeq7cxTHNhyZY9&+Hr%U%P8bt|jx)t(YnrHzSB@uH8yi3vIOC=% zD6ttAmgyF#?Q);HnKq<>h%qoZ3=gkSUA$BjXCFgOY^(G<>ed5%^Xd{@#u8UzqE#$&&N&{{YStJx z0SwkAAq%auN3@|Iq>&N_qn))0wQ zv~40?yZpR@03)c#;1OHebju~JsJWF=HxgR%Mh?@J!9R^D4ktQbmKLAPRfc##W?qE! z$RB~Oy;xo8s9S8MLCNY^5AhX`tHlvpNn=wUpv=iOI0OO7Kc#8t@x8a5Wg!OxEARe6 z6`bCeE;<;tlK>h9f0`ySo(aeu58^Rf)~<%u+a&?=*RRl4B(NfClEabnL=R4-Nnho* zw(Vn#TH6nl{_TH|t!`yvo`wXTblZn7BYtOZ{>xNmy^%%ALgzSB(;yR*lm7sHf1FkA z9ZXt$vJtVooc{pmNBY%BZ(s=}tH30bFj2Ru#(I8L&joq5ZuTk%ivHF}=C*mH$WRsd zVtqP#*3=eSovB5R+FvVZ+^a6#&FpiW3W_)$IFQ8=j_=G+toS>dllMo^R>9Qoqg}G; z(#71Jb%1A$KT42B6nhlYN8j5tdZj_LK6EzNGWku2@;zw3{!q+hvRl?=QHM z>5opeXGOb~;wy%d28CKjWny!?lhfN6t!XETP9&BkZa6Fl2BEOIk#B8mAi9(6s>I15 z!YJLr#~J!oRg4<4UqrVsO4cKI3^wHF1$TW0MRZzwZnTa;hR)^$bJdMYB=JPZhFGFK zaL1A}{{Yve%nn8Z%d5Zkt1Y>TbGPjLuTIL``~J1Brkm%0e`rLhbQ!aZV;T0M+IZee z`J;4_F(4UJoZ&@X^ATb)yDCNo;z{T}v|KJ=>Ithg{kPd#HM9j!?=iQ2M^61Wew3bG zxbkXaC(Csr*zZy0pHs)KYW$bBlU-WD4Cy4oO~eD9HlO~rX|E$YX}6#mv09s(TXoef zJ)k{g@ zxVpTS-e{(bgynev;QCTcrE!(k!t7qhC)z^VDkfuGfEZ^u9)~0Hs@9e|oL9F~T-~k3 ztCqxMl2at(8Lo_t$EFTyiPUT(aIbd&Vo2q^IH5_gEliK>m~Si~+@R%0P&(u3T;<1x zZtdIs65-)d*qpCE)!S*zO`Wh^rE$+ad8=~VK?&P5(MCul1~|wadec(WmlMXWtgm!) zcCsSetgDuD$l&)C*J%1}vT0x1ZEn!+QvP2|o}8YzHJ{>vXC=rHy2#DD1x`S0jxpY; z*iU$)$dXIDWh6Y=UzCR6ah^Hn@vX0PTxDc+0Q5i$zYthU4d}9tL`X2ERs)wL4B&h1 z6{o7n4YX2u7SKs^f$}ooGW#B%jdJkbku9{}+V||nO@*2dymO2&&rBY*wG_8kmQ4&A zkC;|s49r3|1pK%lf<5at4Cb|MBI@!RPqAAn-AtR=4hA-!c|TE6+UhT78MV}{e3xay zpHe=Z^IP_C%N^dAbft`r%%zVWVui^idUI215@}Z#H-Bn2;zR~G_nxhRmi<7g=Dy-u znKQ7|Z^FrZrYBM$iJTT086z0!$6lipCCg7V6T7*PZ6q)Qp#%97SsI0$T4&krEwVmH zjt(}HpU;kJ>*eCMz4H~1m#~lTV?6zSU*$@1&=AiM#!~vqd^g@-VsaUO!l}*`=eB_D zNLTmrWaA_pDxb%n!nFKQ%CSW$ByA|!&!dm=teqt#yZcP2-IjiVmn7N%I0PgDcTqf zqtmBOxvdCiDRP#A(A`HMAh^%Tk({0|c*h>qt7OVW9WwqKEj{n2W}j4)2;xONVaEety47X=)@ELTd|^lQ?35!BgKH@$X$Fh1=?yuKAVYF+f>?JY*cN zKU2u8NG37Gs$b4l3#UN@QJ!4%&mE2{Vg+dQ@bQF>=HgE(Ez7tPPayjql&83*xviwz zm@VE*h*mojF)tdv;H`nnF#E$f1br({P``^$yAs3Y$i)ImnZRG}l6`uNbt0*~%(gJY zqguv>>j4WX0ZBZap!e(7r@bY-aB0Kr*D#B#iPWq^J$+Z620G`z=};>Z6xAl3JlPh> zCj=aE&~(7(r>Pw}R&C5yc9&9H$tT+8IA8-R@OqL+JpMI)SZ*e^D}Ohca}nPhOO*^4 zpQ~hKQE92^qgGoOELz?6ZQZa1&r#FVH|b0oDv0#Q(-wBRQ#nC^&V*#~j1gC6)8&a` zj?U?&5}l=YZBU?Op5xGT??Jq?QKf0qM~2 zrO3fknR)P&}Fpq1XxHmzLR#u>-I@$K-y!PN8E~-svqP zcrL(-;Rfd?C(X(G!`D8YM@oC!&8R6ieq=BnV~iXy^elaQ;-faQ-b9y;Dhsvw?ZWbr zkL#Z2{{YugMX0UHr`e);Zch%K1WnvCdt>WM%!3SRa>XRAZ8TOFu|8Z31b;^Q5IP3gbCk{ryX*AD^gg@ zu?>d}!3VZ`Ra|KEi7hnQt{|4qTgCGO22qt`j;HXXwYGge^Ub)F&W+XEuctplgZP^4 zWi}TP7mC~)&8Hqx<&nP*och-hb#XkY8%Y_05XLs-F$aPCh#!SokknP~L#jWR!ur?^ zk;%J0sBjqmct44&HaWSzy-CjXX(Gr6{gNv8+2fkSE`gX0vK;3lI6ve0RvwQlt@X@u z97!LRuk}|8{c4`qL#U12Qra6ybh#0&qCRr(X9MTtboZ%%&x009B+^=-b`TepT{+J{&tU5 zwOyBi<7~4oFk{H;#(lBuYJE>lmV4QzZB_KUW($p~xpx5P1oP9H;8>o7)JN531e1I#}sCZ+!XMw>)fe$@@mVF;wQ&oO}f4^d8m;1`O8y{`Q&^&_Uno5;7~|>z{y7~qrs&!qr#Tk;rW5_s!WEM+3b)U<(d7zZcXtF5yVJj=V6 z9XNfz%N1J2%Ge~SRHb2`5k?YCOZ<#sM{s-?w%qVB0f{QkVj$ls|$7{!zI1T zjxb7XANckvJEe-)+FWKhqgghS&|r*zJXGy+()_m8^2!MN=jC6__53NO4VgsUohC$v z2-Ki%vSgj4^aJTsV-ZahX?HYVW_X@5p-Ex2vN+CqWbivynk0!e#1}ULIM44@WBF8r z!5Qn<>DICT0C^13T0&CUN%J9=L5$#VIrUtQeGOQyT{1=XW&10%%L^{iz%91~g-|kh z?rK}6WtI(NPfxYPV%sW%%Pw=rzqL|V5v`(Wwk+0K80kPJK3!Jk4Nt5(_nuDn@{9N^{RHafJ=EK_SZ3%ml@l*3;;T=eGMeU zVQZEs+P;|unp;6LqcA5Si51JBCjcly;!TSyJf z`ON%G2NJ(OBKy>uU7&zm+*@ibeQxXWs~qe-eR%wZVQD&r+G;oP$TvVTTaUbbX(Yx` zz0s~BX>RWxIbs7V<(3#Z=yH8AReZQ5(5{SeO!#ynH<+ro%sTT=T|~=ae>K#ST*z5s z4YwErwg>a7@=F|=9n32WPCVc?slnPZf2CHUHzKrE(V~-l>i+;|Q}_M4S0wV8E;Tz; zBXrkK894i^{73Q!^RC`Qvrb5WBjt@Tk8mr6(qK1Qo$EL|OR^7r#FBp{{b|zFYjdW8 zNMf->g_UG(0*-AUow@FM)HFqme+_9-6>FJbOgQ;~9AmQmYo~b*maQekh4k^!&n*|R_4@UylF1#l z@>^SZcDsghak1Y#DIJbG&@bSUL2-V3n3cA~4=U%OaC?vC_|i%41UIHPTYKF`QEI#Y z0MWr2NXZ-*?a$;Yt=^}1bCC-rv>^TNuOkD=QP2Q!&rf=1Vtcq z80v)Q{{V^(Xw{s?!#kU&%H75@LuDosUr%ir z)91EW-BSzYj;aS74!n-X@U2!@=Zr#=J?WDrLpD`CTaK9R?^!B<#J4W%e$x%fYR#4d zuv6ay*QYq5F(#DI-6YZ7#VOjuI4s}Y`t}Te8U)aiTX}bIn~S+p(l_$_-g7bPRmeYk zIl=FW+BU}iH;U?6mNofRLww3{!EAMIM-;X;(A-*iw^+E}xtJaVWSo)gM@;)wD|@+C z<5IJ?BIa~eWpa2U9Z#v~KmBwWlkmIux_m4bws}}Z}w6-v` zjz!Xq>h1TljzIQ4{{WR|>XH4XeI^NKx@(tYk!A-9LF>nCV0zbC4bXT5)4XvoB_Agk zVg7SNW4VlFwU*n=7WWD=PnjUjce}8*<7`hZIOiKa zU(tnJwz+bTQ?1n|Fj-i_N`OvW`(vNyS{i&>ZQ}`{geW7-KRLiBjE;RXRQ0%x#7S;S zV4>jl&J84HK03L5Yd3ua~b%iMVw_y;9qpDISduTF2OoG~1COsC zT5~LR-)(4PjwFg4VN?OQ^T+8|F}nUV90h^D^dbHgfoAu!4Pslwc-Bj#iZx-6ln^+r zHzk`l2_#l3E$xNH$|8t{aq|uV&$daX2_~0LMY>i?l2$1)F_VxF=~|~aI3OD59BT*u zJ|(xA%z(zK2naxIXY0iw8&?)qw=ERY+eI{q$}=b>K9ycoyN))?Lv;`tA%@l?zaxq) zE-&U;h5f8{(jx@<8*p=sk`JdfE%ci#uO!AmjlY#oTLDJXOozyUh+@SQlgB)I)h$kI zEjlvpuQZtoFmsY>8|`T{+ekJQ=xA)X#>lDmd+kx6xX<=<3gy@32YTa- zuUz%3Ho9ao3u~8>Nxo2akT#w@F3YEc?SPNy}FoQvmKgSmjt-Z9@Nwgqz+ zhf6Ys7HtBbm`NDN(>31Q!4>2$47g~Ula9yMxZ9|viRQ7nmR6r1D-kkQ1U68JZe*~%5P7S#?nGWrJ;CYHx7$azV0l6F zZqJmt&U)ly)c$qOTU%U1a&9iHZ*C+wB$JlTdC4c~T?$>@OD(WA(!~ph54}!Mj+~EQ z=~Bj#&s|vCM;o*=K$7lkqN!Y-oZ!}52cJ#Q?029J(ldYu7;d2U>-y9ZB+=^Eaa}a4 z9E?OP4+{Ni^{1C{XQ*lO#Gh$T-o_8!L;P4jUVj>RXKc%r$#b2Mx6uE0G2 z$v;6_7I$ks-GuRp0Fp4Tk&JLh^9xyNb8&XIR#8aoF}>T+4y04;Cw7L?S90v6ufGlr zOxA;o)U&L9>r}CrFAUC&k97zC0A;I|>;=8QEPr;N$W>nu5I)a2ZJ}h0{-l5G)oR@b z+3mXj0IOd9!j(7fqOGWw1)EHioQ%Sx=eNi!Ceq4jE|O$dl17o(bjN@8y{k`0f3#^u zvI%GuAN%JY(xuYaZ?$8bhZ*PBfByhlvZS?TF`~}m%6nO(uvD12!7ZGeANIbrX70xB z_DJTrvE0fr!()$6y<3-@8&>QmU)Ll0)x~eS$A4bcuQyT-ZpE+TwvIbnIGQlcfq*}V z{{XdEv$S`YDRFfKVS{Z9NeJX*V0_p(!8O@ffUwFAM%g4Cdi=(s{?4$NDK_M;^B@6; z0gidbcyh zy*tVM-LOD+qX14YP6+)fc{F`Bl>^%=AYGiXJbHDbnF2YRTkDHRZbiH{rZvp0r~%qA z21h+96I;5vw(}%QLuo4TANYoFc+a@}>wY~iPm)`r*3sv1jO3m`10T+jv<)@T2<_J0 zgKt(tf~P&Rnq0^(?sDmO6|39a!498p2IdZ`a8wR+?eh=PwHI8wWiBSu^Nfs=GC0OP zde)Wgu9;&Usg~LwFD5=$sKGe>D#5qYcZ@-57!Wc>I&}V2?mL|1*Oxc5#~s17Ge-MR z5X0spr%ZAvw!NC&=_iUCoKaM{n{#V%wd%C`5~rQe*en>W~Yu?L|wU3AOv`-Y#U_0Hl3N$dRUq=L@Y z(|TLNkf}SHXvaRaXg_5H{yk}P_7^eBS^ofRrL0R5Ta;Yma}4Jvtz+viKI?fkDD8aS zk&NemJwK7I&cOcwqC{{(B>w<2S$-n4S*(_3jw!@0A7imqBcTM2-Twdzr1b>PG?hfR z@!JUS(T&Qj!UMQq@z14oEqguPkcF?TAc3FD`^8zxoD~NjO6KmK)_qFKSrt5i8IXvN z501kOpS{neNbFQd^%xG16m!B5sSp!^vw^|+dYZPHUZH|V*d2=&%P3=$ z-z92EY^9d*EDiPM$l~)i6jDLlHuH~TS0YQf=DtVNrxC_L1~gDxE0dFh(t#YFu?6?` zK%Q_Vi+X|-fXC**=WnU5eml2WKEp4c5dpYn1y2p=J?p*GEg%|d-rt$7!ftWB_h19Z z9W%vqQrR@9C6uV0oVEv02p{}VrsS<=Qrw@#r)`1hpD3Pvccm_k_Iq108RJ(~0|emY z4F3Q!X}&IB-9a7+3{^ewTz`c$*g`D@+skk!JeA$@l1?iuKfsET)X;%<2$wtZa!5T- zL;UkvT4PBU_KnoS>MMj@%^3q=X5?)+$?Q4xtcg-6;<|Ey7C6b=4&0tcBz;9{Tije+ zSlS;o-Q~Cn6<9dhr~Ai}KgP8(EnPq!>c>qjwFG%{u#qNuf=5Hwudhm0(q8Tv9xIGT zA;?0wDw*TvA4;bYc{M#^=YIB7D5qgk3He4l5y7XR@j69umXFH;L_}jM0qd}J$m`E) zLJN&H!%K{nOHp?qI~Cgn&NGsECZn;pxJx*-ZA>J0F~kzxK|?ye z?6XfX%)jXXg^iB`Xg`lXO0%e2$9H{aZ*M1-r{;Z}=ieO(`A_FS?niDThTeH~7#Z$n zKe{dd04)jRVE+IKJRfhuq`3o1vUx9|d($JTw2AkJKhw9ZTXS_a>4xPayS9Z!cKoMv zcPe_|e>$h9&vxc`9tk{v*;r=4d=hXJ=jH>Bw5|w|p;+$H{qim%U*7f-#&Po>%cs}Y zs?08Bh6K|5_+(j0^W%@@Xz|A<8SPhXt&>odCSxp`d_?&w zR~Jhhio2URI2p%bPU0%S*H-Cg=UH91l^bNJQ@OA^1J8Pn)+-}2Uv34WL*~c{%dzKa z9^Ce+?Dg$B=pbq1hT*vK*z=Rq>sIb<1n#p$QY*FPU$YU}hjB@XtxWSg_ZK%1&8J4{ zR4hp6C4uV4uwI`08i8Yq+F301CTp2pGZT@PW&Y}p#2g>Wq><+~w-ebBZ8GjJB&;&> z58?V|p_JSkIBymowBN)8uPI%Mf4l~H#tESfd5fm4z<02@l1Pwcgka#GVtWh_a6QLr zw9`SRUo1*dA($WCpve*r;YU1={RXM(aLg9k_ToayNY9qLKplSfQ^w)=)c5n)TUnR4 zn$aXeB~ZBBaDBbA`O_7R7M|+pGDm8$LdsOM=NTXFkLqfroCVUMsPFeDO^bwk~0jKuv>oR zO8KY&2Ly~952*cXfSm}mo>`2Gym^cmbUicq{{SlPrH=3IwsJi2Cgpg}#O;mUN%lRf zk2ZoiZlGsp0pyG>?l4Cjel*i5ZDB2Mj5gRXG{Mvy4ud}_$^0`}h^9SGX%qspKwpk> z$~o!omA_?cZw8Ue+${ZtR*F zAd+4K?Z^b+_UAe4T1~5qJ6$xrrMVKUMT@u?Y=O}7NWtgnOtQ3vtcVat9QztFz;n1{ zXEjevl6kas7Pd>MUqsDp&oCK`btfJA_Ng$5+&mLIq zlHxG=A?F}Bw(i^#c&)ox%=Y%uK0|E^*%&z-9y@gDQ0j>smNMl8raVX#{{R*aas4V2 z)S{MwcW-f~2MDnuvmghmu5t!XUZd+%=?f$lj}(#ZRFQ(53^30JkF9cdvTI@+*=`Vd z(=ce(HX8r~00Y#VbIo7S;bfhz8hpm+#G=0&z!}QbG*T_;TcEwvEbw;ZGLNCh@+(?% zsfzN}VsRTQMC9}x$MQd&a`5WEY1O5bK(^Y!SmQYz3FnXQpTfH-w8)+bGSW|R!z;+y z!w#Hu9Q#tYaBN_a9rFUsa>G1EK3x4z6$;06w{B&Y8zh-?@{q(89;bkDkIJ?!<`Y94 zst3$EdLHBJnx&|`Zx4{8eb#qJ7#S>m2<#6``_!($gf^BJQO^>}w-W)ioVMbm@(=Z> zt@Q(O5J+P4u9WSUvLg<;KhS!L=Pg`X-y{<6I&7#4^a3yr0qH`?p;>Rk~68 zw!%po4o*5S9^L)El~(R1CEcmmx01>vx{bF-k%j*NbPsyL)x^4uymxX0irq;CNG$QT zN8au`pKJ>1V~vRWb=0x82IUHJk&j&WKJ`)HmRU}qpXl=A3XHi|UsoQ!{i&uSn~v&c z%S$1O@$juW@}@k05FI|F*SA4t+BhxD&1+{T?_}!}d4Y%>LHpR?Qzo>I?{tYHY11|c zib3+XIozx}pHb~c*luEqQ!FR#3HLS)#m|052p?KtBFFZPD$3S*FIME`8c5a42Irof zjE;t^$tK?<7?RQzZzYKVqy%ssP;?+3zW&viuX@nHo<^bwJJ@Y<6}s`3&tKa)bS)AIyGLMdG&9ucK&j<;1>YOBur#JqCTcURv(Dt z`BgnS@-HuSz>?N^n94+hXgTNs=y=6Xb#f$<4K`q~NhS=84p66j9>ny)_pPG}GL>ak zLOL)MhS^?O76_!cZ@Q{n{uNrn5|*&6oXL&N{_*7grm1Q+YFY~`StPgf4);)Un-`On zJaTY9IxeoSt*zxVM-vnBERnVVW9kp*#(GeYSmGi@{?*o}i7wd-m5c}4tU2k($0~dJ zS8+01+1X8XF(_6%yD7&w#(LwuahhGa$sM~KhMMFs3^$1scg`@Ulls?htIUvDt4U)m z^kLML7z5jOdvyIOrKpVSVQXh)_Ulbb?pPZKbeL`6agIkpQR%X=v6AKpp}U)DC08oW z-Ep3kV*bFkm2GFWP`fBAo^p90A5OKJwwInBvIfc)xN^ox26$8)<36W~Nsi;J?ZwuZ z?Io!VGcoxF@S~gMcu)XUh0g{fGwnrSLe$w7*J1Nz*jNh>!@uZ zj#>CuF681w-O%7xrJNA0r`k(3 zyPU{fIKb_Z)1a)qI6)b~BEEkR7G4;r%;h?AV24=2!mwUcu-$aYEKnj5SY+}S>64+IPVIV<(1BHo;n!5`Zp zjyI8ykpxG-Y^m-33-4P{!x{%`Ne|lxGbEgOjq1a(^dqHHv4YWM*=KmMtVknJTX!UL z@}I)BCRtc3T*2mJkt8JKe^L6uh2+A4jz_*f zN)s8IG&h&BeWu|deJ#omfrfGhI48M3%CWU*rDEbnozgSr77A69oNWWB7$>g9gKv0+${3OBBQ{a*Q}%nh7Prk)`CE}>zD zzKQmT$=V%zuRMdzT5I<=6M5G65YH-L#0L^Df2IKBcOLbARny+p<(-vN0PaKcObN(r zbRGWy9M(WjE=x^*5pvdLh?C6c3)65>k6K{0IwfIYa3Z{pN4INj-Y0sjDe)-A@#p@KNBx3U&Ra>Hp;jie7^SMsfe)zaqG zE#^sKl&BLjslXrX{eQ-iVkydH^SnKCKg$*{rZNvu2PFM_R-|#;X^k?-Zf<@?xM>`h zAdCZ#PBHmbRm7%ED$Rr;7T!-R$m@^*5p&eS$7ayUg!&RwI**YF>a)h*RSJKex)R1#e8j9QBh@)xC1>g&u^)!Ht{$1 zip?*|*du5JbNKsWwDkEC&5Mi@`*`ig{{UW%L6J2@%Yem6A6=*XD@Og(REmT0Y-VweJh!?npm}qo1{jOP8F6jhF`8lb+UDPdv1^x+Ebe8*O1pAN9Fvp9OL417DULH?Do7=cOfbVI`PVxpgDT%! z%Ls`q{LWQNE2@E>PjQjbjf7f#XKod&uGD(gHmTwWp59w^w~;pjrJaTjM+1*q>~CQc zK+(LLV?4iqm(%|MuU<`Z&`GGwV`NwZ@r;qr`NcRzH*qsY($Z;7wD$_v0R|Nm9jXuE z{&8D(8lA&iHNKw|aLB)XixNN`M@~Mq5^57Yq;}UUJWn9pffRwbV1*=e{{Ys_Q97&= zEzA=nu4Fi!k#_Drp17yD?P6Q6CU{ob6qXDf<%i6~`}=!UhSW6%xKH$pnBu_PsgF)Y zX2q&cZ7GJs%Y_a}GB5=3+OKI5UtL@oWW8p|$s2(mm^1-7zq>eRzq>~H_Td1*JdXV1 zns%G1%WJ=UmsgOok1YxSQ`{W)sy-ljV!DB+B3OsY0Vjj&Q6p;P*vo3JBf#Wz6q*C2 z{{V!9D9c$~mCsT|Q@qxrxLD9ZG)x;Ii!T`jdi&NMxqEz<0y$)O{!U7Rf@^C^wuF6} zaE$Yb5N<3_A4*)d)ORUbT{Waiji|_hNdEwqXfiqLlk}yU`U|KaNiKZdLNmhT8 zeJoMzj^Z}Y-Yit}+rO?WSU{-vdTNMP)ptHO7h+C10E}Q}xtn+U9oUZESCL7{%Iw$CX{`ATF}!0lFkRt7HnxoaMmd(;WKM=&hmD+kEXRG6gw9gPa(nVEp`b&!@FRO5?f8Ua-A_Q0&ciA9}djpzuBYjbi<>QWEJ%O-WRwfMADT zQ_XkZ*y$*qM4Ig+SsVfwe8A&5t_J6QhNB|ftC$@cAYFQWPkPo4`Wi*_G&I|kx0R%J zCN_vDBL^onPSNIqNZ~Dj##aCULC1c+^!+N%YpA^Ydxc2D6hc7G(trI`qb`z`5?i{- zxy+83KTrO>O-oqD5qG&`#7srH@CnNE>GQ2;4qBS5q~ep%EhwDF#V7H~?0372<5(q+S^+khBNp3JUe~IsX9Js#qkF7i>hV5tN)h z3Bv$-{xyl9Oe4LxjJ824{{WxLe^5U<-)OOYJT3ApxdZVZ;%QpbW#3DiclT1Ivlg(q zP^_=JSGt4T@m(%#(5zB07@d(bi0fR zp57PF0!(r^>*>~jQZCrsz`}UMv7NHNMjpBTwRo@_a&ixP!MA-O?(fvCnfaB25CA_Y z&JW>DxxUdNa~TmcgS3_CKh9}#jMIV0xx7FQcPr%g%8&4^4b6Z%*E0lmGu}xoD8x=V;`NEBIXZsz#Ztl53(5U{D-A7MLt0~}>?q>xv zg7`TehqtDE>2)UBo@IXofo8Vy3fx=eytWJ`-VC6*~tLIDlVI*vM4&0Q3Z_EC*d7_Q}L zFu5Oh4bDF?`BomJkz8wfd|M-JsyCCgl;=Hjka!)9TaQj=zK_gwkVd=6^6|;Y$5Z}s zSnC(s^`PM*Yj!LFjln9b$2b6t^y+x1Ky2Dv{i9O5x-5}G(J4*DWQ?DiAMhH5wHPhz zbvw0|EXvODuHloA0OLO2l{KxcZm;g_t>T6yU7|)*8CBc&LG?L5l`f!cO`YUc(ZD6Q zV29<#9|MEy#R&o+mg3giPPMT6WKzs=<^^DWUQ2(4XGB(av{=(~Gjef)L4G>>Mn~aN znWX!5&7#Q}1Spb5%COEe$4#IE-;RB1)t{3lqnmaTLm0p#z6RX>W$G$uicG=rNAGT| z<0k{ojefWU{{T@|=bARt;fQYC@(vLFeLbriU!Tp^Y@-BZN?iR(+CTIP*83bVSwnDv z%%q_wcc}jW>($eZpoezJWFl0!L|}~Xu}cC6-dyL7ooeJ!-K5$KKWB~OM`;X!Lq`@Oa^b6cm(m9+tQbAou%8d$qNrMG8pBTh8XGBgW9OgB89cu zs%i}X03;1Md4D$Xg8bm9{{ZXPP&FG+powwQKPz$iS0ScEAp3o|ju?EoVr(phvIFBM zo(acF?)PKnJ$vNT$q34d`pvHI8K+)|20`hJ{{ULc4P!2|G_v_-Ah=zijzC^``kL1l z_OM-EG`BIworeX7r=@2@c^c~Tya_eHbvW3kCx!LLp`if@mUyl1rP7_|xHB+RcWhvB z(1V_y)W2xCeKDuHn%?5zp<=BG8%aHnYSXly@t*E9wv90}6Xr?C&pj9G>s9Wgd9AK3 zWW9n}%ChW=Gm_nLjGt;&5w!#>1QA4o0Td`1s11#?-6i8hzi11z9Cr8hsjcSwMXWO` zV6uasPAeYH{!0m`v(;|0-eK~kazA*d*BvqaX)fY4+6!BQ9E}tcGB)LG1BM=z7M-cv zU-{9*+h>fGkqG<0k3&&kYSuPTdBR1UpSY2XmOnv8k85#hW`FBzF+`J1i?TyQ@cx+M*La#rRz z+y#sY7a_>WI6qTS+UnC>E%SYqkibY{$8LJ`2ip`OnIWtv(yffLG}k{O@>uuV^sPI4 zn+DS3KvhdYf&^p_yN^z4xRv73?4X`Ih{@PX5yxG}q4qU$+WOfv$YXiDq9FUO3geF1 zrX345m(VqxvE9#>x%m&E_NKM&+_0^7&!>+_uAznJIs2D7ERy0E>}V1o8LXLa)jnwe0)?E0UYv-AtYY?DXj?lHL-Cm$p7 z56}>QI=^{wGszYBWfqaR5}mjV2Otjp&pzU$#>VD_b`7-A-AQrhD|v^``{zCSdgp=C zwuILcjgZ?Fgp3!M<0IL6{&=a>LnB9UHkTtP{qT9<{#9&amg2LyXPr+TrnmD-;$1>3 zQM9(-Eg~5Es=4IgjFatI%Q;DKr>j^t(^HtygK+3GXz#cD*6TZ}}2XO<^Bo7|rD6tKs02uF}9W4Ra}Lv;jt)j01S zW_x5sYved_)l>bi$Ef^jEbnpHqo|8^pUE;Rvtnf>LGs_G{C6FX;ZD+TJc(u zg$S}f0Gj|37q{g_&Xi)6Z|&n*CIb$xaI89#G5&q4KKbmV(}m27JaC`|7!TgtlhAg` zobl;a8?$7^Ab&Cl+HENtCK27cl^xW7ck!#z+(mk0h6nQ${L&HGeGj2Np4G&zzjytg zYN#grYQLB~v4GKsAgSj*wbfeL386QN^1*u{+{HQ*&;mLfesoxtSh$UDUK?fz$a3rm z-~rS1Kcz<)**a)j&+8(@$#{3qW%>MLDB1be2P zrG?&Bz;q*^1Fufh2upi8WQ>Hqz1xQ;<{qaU;-4jjtdLt@OXl3Xdt@e7E;jUT4;}OP zQKxEFaodkJ>J>Yizdv}@ zWc3Z%TigAw&Z51zO)_7!p)9U{c@p(+_SAcK_WE-?7XE8}uIZ9l9dMv>k*OUAu6vpu zqeQmQZHdhOT-Oqv(h@j7?EM7{B(n`9E~eczEsOkYn` z{#40bFQpdoF>6J^nY%gcgZZDs){=cehMhWHJoinMxqMb_`H%kqs+!kOF6dT}%+W!(GTX!vl^CwaKQ?;v_nYa8)pgWoyHRO8S2|%E8Cmj4 z9ddEsr{PsCwRz#UNWRSs*Gw}R4kKCcGT0}-AXcWFAhxvoX6vC8gUs72ZZVF#N4HvS zh(6MyXgw=%P#pfP`c>!IS|L>=l!hZzf+3sEaO>p$q&j)Vzt?VZ^501^Pn9lQQj!f3m#@2$SkG?1zLjHd;9{(Y-_I$T}f%-7Fy z3~~iv@OTZ`rw7E}GD11?G9j_fns*1o4D)uppbZGYxUql7VrEOI?D>q(B{ z>GNG%iKD!R;^OE85;6cmIM1)WMR{`5YIZ~Hw}2?&N`Ox}^1kc9uDv^x5X!E4LvD>w(|UQ6md@ zW|})I+ij{_tYFSYW&YJ|Pz$W1;&^VSg=Bd7UOMDs2iCE4iJJ1}E2OYk z#E_3NaKINlU=jEl=_HmYV`*iTVvKT2a0OI`wIX|4DU>VQ!pNi?6&w*r)7f0hKA$5a z$&55l{6LPl^yE`6FD)R5&S!~NJg^|-^!#f-PTQSBSe`VEBp|6EWFQ#Mdh_Y+QnlPh zZQt5;2zJeFEvMgwN)Ppz=XT!1Ak*~QyKDGb*7+~K*&5tUV zZPGWCv|l4GIOOM?XZhDXJWF!r(p!Nn)0I?b+S?Bq&vD00)_}Jpwzjpi)irB)t>qED zzUBEcLG=T-QTbO-VS8;Ix-7u?ftgnkl5w1XKLcD{%(u4Mfp%pGyDe)ODRlyhsoDx3{f}zx| zr5Cm`+yz4Js74MH9FF3dXr>)Nr$#8CjAM}B{d$+g#K^HW22`nEu1#u^dzXDKbQ*-a zZR~EjJ9*&q#vA_tWvm@WCX&kK;($SIxHucZ5)AT4>`iX`ml{6xVBtpZ!>{r+iFB|= zu%U1DvF+Q_o`)X1gIG~u^+x8Gs=%`8f#p72(U{{Ws-6f|{{R~3?vWz0m<)tppC3b- z;xr|zgF+5*uzGW&$GG~v*w0oH+bX}V28+7xeeUTCd zKqs$Csi?y}>;PHJiot;=%qyO~O7rM(RT9N7?BPqf?yjLK2}WQBN4Nm-QMHZDg@Qw; z-aIWHOA>*z*Vn&FkTi7(#h#liv&e9$H$U?=gD9N zj@nC{PQWWG#y)O2Aomr)`Am{sO|?grCkmsE5B04hqPah4=yc1AEid=?TbAZgwL-Q+ zk5CV-Akt>Oyf;u>#Uu=O5JpJ)j@25#n(D?)%ENR3+@O1U)x$hmBA8)#?x!P=0~Y)# z6gGQ3Dhsw-i;O!aI2>o1=rr9n&eA>BuXY8xAiEjk$Bc@FRpz5yXKz|W>?dG!11iPCnM zBwzvMtgICBI`QpQ6H1!lM64kRBBz+4jvr~r&lI!+6I-^tI)FJcTjzH{v{ylD@U6A9 z-fU$A%ek^JIL&5ix+V40uQ-=-FvB9TttHd$MXj}yn0&V2^#qNibHy+js99+mfk*RV z60!MM9ELxITecQ@eX7i7i^=}^Z<&KByKI+Kc#FgoYw7gJXa+pY_qUImc~yx ?)xQkZu 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 ul { + padding-left: 20px; + margin: 5px 0; +} + +.method .section p { + margin: 5px 0; +} + +.method .required { + color: red; +} + +.apiCall { + padding: 10px ; + position: relative; + border-bottom: 1px solid #ccc; +} + +.apiCall:nth-child(odd) { + background-color: #e6e6e6; +} + +.apiCallClose { + position: absolute; + top: 10px; + right: 0px; + font-weight: bold; + color: #0a0a0a; + border: 0; + font-family: "helvetica neue", helvetica, arial, sans-serif; + font-size: 14px; + background-color: transparent; +} + +.apiCall .apiUrlExpand { + position: absolute; + top: 15px; + right: 60px; +} + +.apiCall h3 { + margin: 0; +} + +.apiCall h4 { + margin: 10px 0 5px 0; +} + +.apiCall .editApiUrl { + width: 50%; + margin-top: 4px; + font-weight: bold; + font-size: larger; +} + +.apiCall .requestBody { + width: 100%; + min-height: 300px; +} + +.apiCall .output { + margin: 10px 0; +} + +.apiCall button[name=submit] { + margin: 10px 0; +} + +.jsonResult .expander { + margin: 0; + padding: 0; + border: 0; + font-size: xx-small; + background-color: transparent; + cursor: pointer; +} + + +.jsonResult ol.array, +.jsonResult ul.object { + list-style: none; +} + +.jsonResult .prop, +.jsonResult .brace, +.jsonResult .bracket { + font-weight: bold; +} + +/* START hbox/vbox normalization from http://alex.dojotoolkit.org/2009/08/css-3-progress/ */ +/* hbox and vbox classes */ + +.hbox { + display: -webkit-box; + -webkit-box-orient: horizontal; + -webkit-box-align: stretch; + + display: -moz-box; + -moz-box-orient: horizontal; + -moz-box-align: stretch; + + display: box; + box-orient: horizontal; + box-align: stretch; +} + +.hbox > * { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + display: block; +} + +.vbox { + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-box-align: stretch; + + display: -moz-box; + -moz-box-orient: vertical; + -moz-box-align: stretch; + + display: box; + box-orient: vertical; + box-align: stretch; +} + +.vbox > * { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + display: block; +} + +.spacer { + -webkit-box-flex: 1; + -moz-box-flex: 1; + box-flex: 1; +} + +.reverse { + -webkit-box-direction: reverse; + -moz-box-direction: reverse; + box-direction: reverse; +} + +.boxFlex0 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; +} + +.boxFlex1, .boxFlex { + -webkit-box-flex: 1; + -moz-box-flex: 1; + box-flex: 1; +} + +.boxFlex2 { + -webkit-box-flex: 2; + -moz-box-flex: 2; + box-flex: 2; +} + +.boxGroup1 { + -webkit-box-flex-group: 1; + -moz-box-flex-group: 1; + box-flex-group: 1; +} + +.boxGroup2 { + -webkit-box-flex-group: 2; + -moz-box-flex-group: 2; + box-flex-group: 2; +} + +.start { + -webkit-box-pack: start; + -moz-box-pack: start; + box-pack: start; +} + +.end { + -webkit-box-pack: end; + -moz-box-pack: end; + box-pack: end; +} + +.center { + -webkit-box-pack: center; + -moz-box-pack: center; + box-pack: center; +} +/* END hbox/vbox normalization from http://alex.dojotoolkit.org/2009/08/css-3-progress/ */ diff --git a/web/0.3.4/rdapi/index.html b/web/0.3.4/rdapi/index.html new file mode 100644 index 0000000..33eb54c --- /dev/null +++ b/web/0.3.4/rdapi/index.html @@ -0,0 +1,240 @@ + + + + + Raindrop API + + + + + +

",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
  • #{label}
  • "},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&& +e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b= +d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]|| +(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a._sanitizeSelector(i));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=d("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); +this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected= +this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); +if(c.selected>=0&&this.anchors.length){d(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],d(a._sanitizeSelector(a.anchors[c.selected].hash))))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")); +this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+ +g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal", +function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")}; +this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=d(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected=-1;c.cookie&& +a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier."; +d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e= +d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b, +e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=d("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]); +j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove(); +if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null, +this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this}, +load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){d(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c,"cache.tabs", +true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this},url:function(b, +e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.6"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k=0)&&b(g).is(":focusable")}}); +b(function(){var g=document.body,e=g.appendChild(e=document.createElement("div"));b.extend(e.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});b.support.minHeight=e.offsetHeight===100;b.support.selectstart="onselectstart"in e;g.removeChild(e).style.display="none"});b.extend(b.ui,{plugin:{add:function(g,e,a){g=b.ui[g].prototype;for(var d in a){g.plugins[d]=g.plugins[d]||[];g.plugins[d].push([e,a[d]])}},call:function(g,e,a){if((e=g.plugins[e])&&g.element[0].parentNode)for(var d=0;d0)return true;g[e]=1;a=g[e]>0;g[e]=0;return a},isOverAxis:function(g,e,a){return g>e&&g=9)&&!c.button)return this._mouseUp(c);if(this._mouseStarted){this._mouseDrag(c); +return c.preventDefault()}if(this._mouseDistanceMet(c)&&this._mouseDelayMet(c))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,c)!==false)?this._mouseDrag(c):this._mouseUp(c);return!this._mouseStarted},_mouseUp:function(c){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;c.target==this._mouseDownEvent.target&&b.data(c.target,this.widgetName+".preventClickEvent", +true);this._mouseStop(c)}return false},_mouseDistanceMet:function(c){return Math.max(Math.abs(this._mouseDownEvent.pageX-c.pageX),Math.abs(this._mouseDownEvent.pageY-c.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); +(function(b){b.widget("ui.draggable",b.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper== +"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(c){var f= +this.options;if(this.helper||f.disabled||b(c.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(c);if(!this.handle)return false;return true},_mouseStart:function(c){var f=this.options;this.helper=this._createHelper(c);this._cacheHelperProportions();if(b.ui.ddmanager)b.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top- +this.margins.top,left:this.offset.left-this.margins.left};b.extend(this.offset,{click:{left:c.pageX-this.offset.left,top:c.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(c);this.originalPageX=c.pageX;this.originalPageY=c.pageY;f.cursorAt&&this._adjustOffsetFromHelper(f.cursorAt);f.containment&&this._setContainment();if(this._trigger("start",c)===false){this._clear();return false}this._cacheHelperProportions(); +b.ui.ddmanager&&!f.dropBehaviour&&b.ui.ddmanager.prepareOffsets(this,c);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(c,true);return true},_mouseDrag:function(c,f){this.position=this._generatePosition(c);this.positionAbs=this._convertPositionTo("absolute");if(!f){f=this._uiHash();if(this._trigger("drag",c,f)===false){this._mouseUp({});return false}this.position=f.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis|| +this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";b.ui.ddmanager&&b.ui.ddmanager.drag(this,c);return false},_mouseStop:function(c){var f=false;if(b.ui.ddmanager&&!this.options.dropBehaviour)f=b.ui.ddmanager.drop(this,c);if(this.dropped){f=this.dropped;this.dropped=false}if(!this.element[0]||!this.element[0].parentNode)return false;if(this.options.revert=="invalid"&&!f||this.options.revert=="valid"&&f||this.options.revert===true||b.isFunction(this.options.revert)&&this.options.revert.call(this.element, +f)){var g=this;b(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){g._trigger("stop",c)!==false&&g._clear()})}else this._trigger("stop",c)!==false&&this._clear();return false},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(c){var f=!this.options.handle||!b(this.options.handle,this.element).length?true:false;b(this.options.handle,this.element).find("*").andSelf().each(function(){if(this== +c.target)f=true});return f},_createHelper:function(c){var f=this.options;c=b.isFunction(f.helper)?b(f.helper.apply(this.element[0],[c])):f.helper=="clone"?this.element.clone():this.element;c.parents("body").length||c.appendTo(f.appendTo=="parent"?this.element[0].parentNode:f.appendTo);c[0]!=this.element[0]&&!/(fixed|absolute)/.test(c.css("position"))&&c.css("position","absolute");return c},_adjustOffsetFromHelper:function(c){if(typeof c=="string")c=c.split(" ");if(b.isArray(c))c={left:+c[0],top:+c[1]|| +0};if("left"in c)this.offset.click.left=c.left+this.margins.left;if("right"in c)this.offset.click.left=this.helperProportions.width-c.right+this.margins.left;if("top"in c)this.offset.click.top=c.top+this.margins.top;if("bottom"in c)this.offset.click.top=this.helperProportions.height-c.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var c=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&b.ui.contains(this.scrollParent[0], +this.offsetParent[0])){c.left+=this.scrollParent.scrollLeft();c.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&b.browser.msie)c={top:0,left:0};return{top:c.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:c.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var c=this.element.position();return{top:c.top- +(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:c.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var c=this.options;if(c.containment== +"parent")c.containment=this.helper[0].parentNode;if(c.containment=="document"||c.containment=="window")this.containment=[(c.containment=="document"?0:b(window).scrollLeft())-this.offset.relative.left-this.offset.parent.left,(c.containment=="document"?0:b(window).scrollTop())-this.offset.relative.top-this.offset.parent.top,(c.containment=="document"?0:b(window).scrollLeft())+b(c.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(c.containment=="document"? +0:b(window).scrollTop())+(b(c.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(c.containment)&&c.containment.constructor!=Array){var f=b(c.containment)[0];if(f){c=b(c.containment).offset();var g=b(f).css("overflow")!="hidden";this.containment=[c.left+(parseInt(b(f).css("borderLeftWidth"),10)||0)+(parseInt(b(f).css("paddingLeft"),10)||0)-this.margins.left,c.top+(parseInt(b(f).css("borderTopWidth"), +10)||0)+(parseInt(b(f).css("paddingTop"),10)||0)-this.margins.top,c.left+(g?Math.max(f.scrollWidth,f.offsetWidth):f.offsetWidth)-(parseInt(b(f).css("borderLeftWidth"),10)||0)-(parseInt(b(f).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,c.top+(g?Math.max(f.scrollHeight,f.offsetHeight):f.offsetHeight)-(parseInt(b(f).css("borderTopWidth"),10)||0)-(parseInt(b(f).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}}else if(c.containment.constructor== +Array)this.containment=c.containment},_convertPositionTo:function(c,f){if(!f)f=this.position;c=c=="absolute"?1:-1;var g=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&b.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(g[0].tagName);return{top:f.top+this.offset.relative.top*c+this.offset.parent.top*c-(b.browser.safari&&b.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop(): +e?0:g.scrollTop())*c),left:f.left+this.offset.relative.left*c+this.offset.parent.left*c-(b.browser.safari&&b.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:g.scrollLeft())*c)}},_generatePosition:function(c){var f=this.options,g=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&b.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(g[0].tagName),a=c.pageX,d=c.pageY; +if(this.originalPosition){if(this.containment){if(c.pageX-this.offset.click.leftthis.containment[2])a=this.containment[2]+this.offset.click.left;if(c.pageY-this.offset.click.top>this.containment[3])d=this.containment[3]+this.offset.click.top}if(f.grid){d=this.originalPageY+Math.round((d-this.originalPageY)/ +f.grid[1])*f.grid[1];d=this.containment?!(d-this.offset.click.topthis.containment[3])?d:!(d-this.offset.click.topthis.containment[2])?a:!(a-this.offset.click.left
    ').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(b(this).offset()).appendTo("body")})}, +stop:function(){b("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});b.ui.plugin.add("draggable","opacity",{start:function(c,f){c=b(f.helper);f=b(this).data("draggable").options;if(c.css("opacity"))f._opacity=c.css("opacity");c.css("opacity",f.opacity)},stop:function(c,f){c=b(this).data("draggable").options;c._opacity&&b(f.helper).css("opacity",c._opacity)}});b.ui.plugin.add("draggable","scroll",{start:function(){var c=b(this).data("draggable");if(c.scrollParent[0]!= +document&&c.scrollParent[0].tagName!="HTML")c.overflowOffset=c.scrollParent.offset()},drag:function(c){var f=b(this).data("draggable"),g=f.options,e=false;if(f.scrollParent[0]!=document&&f.scrollParent[0].tagName!="HTML"){if(!g.axis||g.axis!="x")if(f.overflowOffset.top+f.scrollParent[0].offsetHeight-c.pageY=0;n--){var q=g.snapElements[n].left,l=q+g.snapElements[n].width,k=g.snapElements[n].top,m=k+g.snapElements[n].height;if(q-a=n&&d<=q||h>=n&&h<=q||dq)&&(e>= +i&&e<=j||a>=i&&a<=j||ej);default:return false}};b.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(c,f){var g=b.ui.ddmanager.droppables[c.options.scope]||[],e=f?f.type:null,a=(c.currentItem||c.element).find(":data(droppable)").andSelf(),d=0;a:for(;d').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(), +top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle= +this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=e.handles||(!b(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne", +nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var a=this.handles.split(",");this.handles={};for(var d=0;d');/sw|se|ne|nw/.test(h)&&i.css({zIndex:++e.zIndex});"se"==h&&i.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[h]=".ui-resizable-"+h;this.element.append(i)}}this._renderAxis=function(j){j=j||this.element;for(var n in this.handles){if(this.handles[n].constructor== +String)this.handles[n]=b(this.handles[n],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var q=b(this.handles[n],this.element),l=0;l=/sw|ne|nw|se|n|s/.test(n)?q.outerHeight():q.outerWidth();q=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");j.css(q,l);this._proportionallyResize()}b(this.handles[n])}};this._renderAxis(this.element);this._handles=b(".ui-resizable-handle",this.element).disableSelection(); +this._handles.mouseover(function(){if(!g.resizing){if(this.className)var j=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);g.axis=j&&j[1]?j[1]:"se"}});if(e.autoHide){this._handles.hide();b(this.element).addClass("ui-resizable-autohide").hover(function(){b(this).removeClass("ui-resizable-autohide");g._handles.show()},function(){if(!g.resizing){b(this).addClass("ui-resizable-autohide");g._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var g=function(a){b(a).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()}; +if(this.elementIsWrapper){g(this.element);var e=this.element;e.after(this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);g(this.originalElement);return this},_mouseCapture:function(g){var e=false;for(var a in this.handles)if(b(this.handles[a])[0]==g.target)e=true;return!this.options.disabled&&e},_mouseStart:function(g){var e=this.options,a=this.element.position(), +d=this.element;this.resizing=true;this.documentScroll={top:b(document).scrollTop(),left:b(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:a.top,left:a.left});b.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();a=c(this.helper.css("left"));var h=c(this.helper.css("top"));if(e.containment){a+=b(e.containment).scrollLeft()||0;h+=b(e.containment).scrollTop()||0}this.offset= +this.helper.offset();this.position={left:a,top:h};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:a,top:h};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=typeof e.aspectRatio=="number"?e.aspectRatio: +this.originalSize.width/this.originalSize.height||1;e=b(".ui-resizable-"+this.axis).css("cursor");b("body").css("cursor",e=="auto"?this.axis+"-resize":e);d.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(g){var e=this.helper,a=this.originalMousePosition,d=this._change[this.axis];if(!d)return false;a=d.apply(this,[g,g.pageX-a.left||0,g.pageY-a.top||0]);if(this._aspectRatio||g.shiftKey)a=this._updateRatio(a,g);a=this._respectSize(a,g);this._propagate("resize", +g);e.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(a);this._trigger("resize",g,this.ui());return false},_mouseStop:function(g){this.resizing=false;var e=this.options,a=this;if(this._helper){var d=this._proportionallyResizeElements,h=d.length&&/textarea/i.test(d[0].nodeName);d=h&&b.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height; +h={width:a.size.width-(h?0:a.sizeDiff.width),height:a.size.height-d};d=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var i=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;e.animate||this.element.css(b.extend(h,{top:i,left:d}));a.helper.height(a.size.height);a.helper.width(a.size.width);this._helper&&!e.animate&&this._proportionallyResize()}b("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop", +g);this._helper&&this.helper.remove();return false},_updateCache:function(g){this.offset=this.helper.offset();if(f(g.left))this.position.left=g.left;if(f(g.top))this.position.top=g.top;if(f(g.height))this.size.height=g.height;if(f(g.width))this.size.width=g.width},_updateRatio:function(g){var e=this.position,a=this.size,d=this.axis;if(g.height)g.width=a.height*this.aspectRatio;else if(g.width)g.height=a.width/this.aspectRatio;if(d=="sw"){g.left=e.left+(a.width-g.width);g.top=null}if(d=="nw"){g.top= +e.top+(a.height-g.height);g.left=e.left+(a.width-g.width)}return g},_respectSize:function(g){var e=this.options,a=this.axis,d=f(g.width)&&e.maxWidth&&e.maxWidthg.width,j=f(g.height)&&e.minHeight&&e.minHeight>g.height;if(i)g.width=e.minWidth;if(j)g.height=e.minHeight;if(d)g.width=e.maxWidth;if(h)g.height=e.maxHeight;var n=this.originalPosition.left+this.originalSize.width,q=this.position.top+this.size.height, +l=/sw|nw|w/.test(a);a=/nw|ne|n/.test(a);if(i&&l)g.left=n-e.minWidth;if(d&&l)g.left=n-e.maxWidth;if(j&&a)g.top=q-e.minHeight;if(h&&a)g.top=q-e.maxHeight;if((e=!g.width&&!g.height)&&!g.left&&g.top)g.top=null;else if(e&&!g.top&&g.left)g.left=null;return g},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var g=this.helper||this.element,e=0;e');var e=b.browser.msie&&b.browser.version<7,a=e?1:0;e=e?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+e,height:this.element.outerHeight()+e,position:"absolute",left:this.elementOffset.left-a+"px",top:this.elementOffset.top-a+"px",zIndex:++g.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(g,e){return{width:this.originalSize.width+ +e}},w:function(g,e){return{left:this.originalPosition.left+e,width:this.originalSize.width-e}},n:function(g,e,a){return{top:this.originalPosition.top+a,height:this.originalSize.height-a}},s:function(g,e,a){return{height:this.originalSize.height+a}},se:function(g,e,a){return b.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,e,a]))},sw:function(g,e,a){return b.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,e,a]))},ne:function(g,e,a){return b.extend(this._change.n.apply(this, +arguments),this._change.e.apply(this,[g,e,a]))},nw:function(g,e,a){return b.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,e,a]))}},_propagate:function(g,e){b.ui.plugin.call(this,g,[e,this.ui()]);g!="resize"&&this._trigger(g,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});b.extend(b.ui.resizable, +{version:"1.8.7"});b.ui.plugin.add("resizable","alsoResize",{start:function(){var g=b(this).data("resizable").options,e=function(a){b(a).each(function(){var d=b(this);d.data("resizable-alsoresize",{width:parseInt(d.width(),10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof g.alsoResize=="object"&&!g.alsoResize.parentNode)if(g.alsoResize.length){g.alsoResize=g.alsoResize[0];e(g.alsoResize)}else b.each(g.alsoResize, +function(a){e(a)});else e(g.alsoResize)},resize:function(g,e){var a=b(this).data("resizable");g=a.options;var d=a.originalSize,h=a.originalPosition,i={height:a.size.height-d.height||0,width:a.size.width-d.width||0,top:a.position.top-h.top||0,left:a.position.left-h.left||0},j=function(n,q){b(n).each(function(){var l=b(this),k=b(this).data("resizable-alsoresize"),m={},o=q&&q.length?q:l.parents(e.originalElement[0]).length?["width","height"]:["width","height","top","left"];b.each(o,function(p,s){if((p= +(k[s]||0)+(i[s]||0))&&p>=0)m[s]=p||null});if(b.browser.opera&&/relative/.test(l.css("position"))){a._revertToRelativePosition=true;l.css({position:"absolute",top:"auto",left:"auto"})}l.css(m)})};typeof g.alsoResize=="object"&&!g.alsoResize.nodeType?b.each(g.alsoResize,function(n,q){j(n,q)}):j(g.alsoResize)},stop:function(){var g=b(this).data("resizable"),e=g.options,a=function(d){b(d).each(function(){var h=b(this);h.css({position:h.data("resizable-alsoresize").position})})};if(g._revertToRelativePosition){g._revertToRelativePosition= +false;typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?b.each(e.alsoResize,function(d){a(d)}):a(e.alsoResize)}b(this).removeData("resizable-alsoresize")}});b.ui.plugin.add("resizable","animate",{stop:function(g){var e=b(this).data("resizable"),a=e.options,d=e._proportionallyResizeElements,h=d.length&&/textarea/i.test(d[0].nodeName),i=h&&b.ui.hasScroll(d[0],"left")?0:e.sizeDiff.height;h={width:e.size.width-(h?0:e.sizeDiff.width),height:e.size.height-i};i=parseInt(e.element.css("left"),10)+(e.position.left- +e.originalPosition.left)||null;var j=parseInt(e.element.css("top"),10)+(e.position.top-e.originalPosition.top)||null;e.element.animate(b.extend(h,j&&i?{top:j,left:i}:{}),{duration:a.animateDuration,easing:a.animateEasing,step:function(){var n={width:parseInt(e.element.css("width"),10),height:parseInt(e.element.css("height"),10),top:parseInt(e.element.css("top"),10),left:parseInt(e.element.css("left"),10)};d&&d.length&&b(d[0]).css({width:n.width,height:n.height});e._updateCache(n);e._propagate("resize", +g)}})}});b.ui.plugin.add("resizable","containment",{start:function(){var g=b(this).data("resizable"),e=g.element,a=g.options.containment;if(e=a instanceof b?a.get(0):/parent/.test(a)?e.parent().get(0):a){g.containerElement=b(e);if(/document/.test(a)||a==document){g.containerOffset={left:0,top:0};g.containerPosition={left:0,top:0};g.parentData={element:b(document),left:0,top:0,width:b(document).width(),height:b(document).height()||document.body.parentNode.scrollHeight}}else{var d=b(e),h=[];b(["Top", +"Right","Left","Bottom"]).each(function(n,q){h[n]=c(d.css("padding"+q))});g.containerOffset=d.offset();g.containerPosition=d.position();g.containerSize={height:d.innerHeight()-h[3],width:d.innerWidth()-h[1]};a=g.containerOffset;var i=g.containerSize.height,j=g.containerSize.width;j=b.ui.hasScroll(e,"left")?e.scrollWidth:j;i=b.ui.hasScroll(e)?e.scrollHeight:i;g.parentData={element:e,left:a.left,top:a.top,width:j,height:i}}}},resize:function(g){var e=b(this).data("resizable"),a=e.options,d=e.containerOffset, +h=e.position;g=e._aspectRatio||g.shiftKey;var i={top:0,left:0},j=e.containerElement;if(j[0]!=document&&/static/.test(j.css("position")))i=d;if(h.left<(e._helper?d.left:0)){e.size.width+=e._helper?e.position.left-d.left:e.position.left-i.left;if(g)e.size.height=e.size.width/a.aspectRatio;e.position.left=a.helper?d.left:0}if(h.top<(e._helper?d.top:0)){e.size.height+=e._helper?e.position.top-d.top:e.position.top;if(g)e.size.width=e.size.height*a.aspectRatio;e.position.top=e._helper?d.top:0}e.offset.left= +e.parentData.left+e.position.left;e.offset.top=e.parentData.top+e.position.top;a=Math.abs((e._helper?e.offset.left-i.left:e.offset.left-i.left)+e.sizeDiff.width);d=Math.abs((e._helper?e.offset.top-i.top:e.offset.top-d.top)+e.sizeDiff.height);h=e.containerElement.get(0)==e.element.parent().get(0);i=/relative|absolute/.test(e.containerElement.css("position"));if(h&&i)a-=e.parentData.left;if(a+e.size.width>=e.parentData.width){e.size.width=e.parentData.width-a;if(g)e.size.height=e.size.width/e.aspectRatio}if(d+ +e.size.height>=e.parentData.height){e.size.height=e.parentData.height-d;if(g)e.size.width=e.size.height*e.aspectRatio}},stop:function(){var g=b(this).data("resizable"),e=g.options,a=g.containerOffset,d=g.containerPosition,h=g.containerElement,i=b(g.helper),j=i.offset(),n=i.outerWidth()-g.sizeDiff.width;i=i.outerHeight()-g.sizeDiff.height;g._helper&&!e.animate&&/relative/.test(h.css("position"))&&b(this).css({left:j.left-d.left-a.left,width:n,height:i});g._helper&&!e.animate&&/static/.test(h.css("position"))&& +b(this).css({left:j.left-d.left-a.left,width:n,height:i})}});b.ui.plugin.add("resizable","ghost",{start:function(){var g=b(this).data("resizable"),e=g.options,a=g.size;g.ghost=g.originalElement.clone();g.ghost.css({opacity:0.25,display:"block",position:"relative",height:a.height,width:a.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:"");g.ghost.appendTo(g.helper)},resize:function(){var g=b(this).data("resizable");g.ghost&&g.ghost.css({position:"relative", +height:g.size.height,width:g.size.width})},stop:function(){var g=b(this).data("resizable");g.ghost&&g.helper&&g.helper.get(0).removeChild(g.ghost.get(0))}});b.ui.plugin.add("resizable","grid",{resize:function(){var g=b(this).data("resizable"),e=g.options,a=g.size,d=g.originalSize,h=g.originalPosition,i=g.axis;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var j=Math.round((a.width-d.width)/(e.grid[0]||1))*(e.grid[0]||1);e=Math.round((a.height-d.height)/(e.grid[1]||1))*(e.grid[1]||1);if(/^(se|s|e)$/.test(i)){g.size.width= +d.width+j;g.size.height=d.height+e}else if(/^(ne)$/.test(i)){g.size.width=d.width+j;g.size.height=d.height+e;g.position.top=h.top-e}else{if(/^(sw)$/.test(i)){g.size.width=d.width+j;g.size.height=d.height+e}else{g.size.width=d.width+j;g.size.height=d.height+e;g.position.top=h.top-e}g.position.left=h.left-j}}});var c=function(g){return parseInt(g,10)||0},f=function(g){return!isNaN(parseInt(g,10))}})(jQuery); +(function(b){b.widget("ui.selectable",b.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=b(c.options.filter,c.element[0]);f.each(function(){var g=b(this),e=g.offset();b.data(this,"selectable-item",{element:this,$element:g,left:e.left,top:e.top,right:e.left+g.outerWidth(),bottom:e.top+g.outerHeight(),startselected:false,selected:g.hasClass("ui-selected"), +selecting:g.hasClass("ui-selecting"),unselecting:g.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=b("
    ")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX, +c.pageY];if(!this.options.disabled){var g=this.options;this.selectees=b(g.filter,this.element[0]);this._trigger("start",c);b(g.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});g.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var e=b.data(this,"selectable-item");e.startselected=true;if(!c.metaKey){e.$element.removeClass("ui-selected");e.selected=false;e.$element.addClass("ui-unselecting");e.unselecting=true;f._trigger("unselecting", +c,{unselecting:e.element})}});b(c.target).parents().andSelf().each(function(){var e=b.data(this,"selectable-item");if(e){var a=!c.metaKey||!e.$element.hasClass("ui-selected");e.$element.removeClass(a?"ui-unselecting":"ui-selected").addClass(a?"ui-selecting":"ui-unselecting");e.unselecting=!a;e.selecting=a;(e.selected=a)?f._trigger("selecting",c,{selecting:e.element}):f._trigger("unselecting",c,{unselecting:e.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var g= +this.options,e=this.opos[0],a=this.opos[1],d=c.pageX,h=c.pageY;if(e>d){var i=d;d=e;e=i}if(a>h){i=h;h=a;a=i}this.helper.css({left:e,top:a,width:d-e,height:h-a});this.selectees.each(function(){var j=b.data(this,"selectable-item");if(!(!j||j.element==f.element[0])){var n=false;if(g.tolerance=="touch")n=!(j.left>d||j.righth||j.bottome&&j.righta&&j.bottom *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){this.containerCache={};this.element.addClass("ui-sortable"); +this.refresh();this.floating=this.items.length?/left|right/.test(this.items[0].item.css("float")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var c=this.items.length-1;c>=0;c--)this.items[c].item.removeData("sortable-item");return this},_setOption:function(c,f){if(c==="disabled"){this.options[c]=f;this.widget()[f?"addClass":"removeClass"]("ui-sortable-disabled")}else b.Widget.prototype._setOption.apply(this, +arguments)},_mouseCapture:function(c,f){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(c);var g=null,e=this;b(c.target).parents().each(function(){if(b.data(this,"sortable-item")==e){g=b(this);return false}});if(b.data(c.target,"sortable-item")==e)g=b(c.target);if(!g)return false;if(this.options.handle&&!f){var a=false;b(this.options.handle,g).find("*").andSelf().each(function(){if(this==c.target)a=true});if(!a)return false}this.currentItem= +g;this._removeCurrentsFromItems();return true},_mouseStart:function(c,f,g){f=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(c);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");b.extend(this.offset, +{click:{left:c.pageX-this.offset.left,top:c.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(c);this.originalPageX=c.pageX;this.originalPageY=c.pageY;f.cursorAt&&this._adjustOffsetFromHelper(f.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();f.containment&&this._setContainment(); +if(f.cursor){if(b("body").css("cursor"))this._storedCursor=b("body").css("cursor");b("body").css("cursor",f.cursor)}if(f.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",f.opacity)}if(f.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",f.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start", +c,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!g)for(g=this.containers.length-1;g>=0;g--)this.containers[g]._trigger("activate",c,e._uiHash(this));if(b.ui.ddmanager)b.ui.ddmanager.current=this;b.ui.ddmanager&&!f.dropBehaviour&&b.ui.ddmanager.prepareOffsets(this,c);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(c);return true},_mouseDrag:function(c){this.position=this._generatePosition(c);this.positionAbs=this._convertPositionTo("absolute"); +if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var f=this.options,g=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-c.pageY=0;f--){g=this.items[f];var e=g.item[0],a=this._intersectsWithPointer(g);if(a)if(e!=this.currentItem[0]&&this.placeholder[a==1?"next":"prev"]()[0]!=e&&!b.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!b.ui.contains(this.element[0],e):true)){this.direction=a==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(g))this._rearrange(c, +g);else break;this._trigger("change",c,this._uiHash());break}}this._contactContainers(c);b.ui.ddmanager&&b.ui.ddmanager.drag(this,c);this._trigger("sort",c,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(c,f){if(c){b.ui.ddmanager&&!this.options.dropBehaviour&&b.ui.ddmanager.drop(this,c);if(this.options.revert){var g=this;f=g.placeholder.offset();g.reverting=true;b(this.helper).animate({left:f.left-this.offset.parent.left-g.margins.left+(this.offsetParent[0]== +document.body?0:this.offsetParent[0].scrollLeft),top:f.top-this.offset.parent.top-g.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){g._clear(c)})}else this._clear(c,f);return false}},cancel:function(){var c=this;if(this.dragging){this._mouseUp();this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var f=this.containers.length-1;f>=0;f--){this.containers[f]._trigger("deactivate", +null,c._uiHash(this));if(this.containers[f].containerCache.over){this.containers[f]._trigger("out",null,c._uiHash(this));this.containers[f].containerCache.over=0}}}this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();b.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?b(this.domPosition.prev).after(this.currentItem): +b(this.domPosition.parent).prepend(this.currentItem);return this},serialize:function(c){var f=this._getItemsAsjQuery(c&&c.connected),g=[];c=c||{};b(f).each(function(){var e=(b(c.item||this).attr(c.attribute||"id")||"").match(c.expression||/(.+)[-=_](.+)/);if(e)g.push((c.key||e[1]+"[]")+"="+(c.key&&c.expression?e[1]:e[2]))});!g.length&&c.key&&g.push(c.key+"=");return g.join("&")},toArray:function(c){var f=this._getItemsAsjQuery(c&&c.connected),g=[];c=c||{};f.each(function(){g.push(b(c.item||this).attr(c.attribute|| +"id")||"")});return g},_intersectsWith:function(c){var f=this.positionAbs.left,g=f+this.helperProportions.width,e=this.positionAbs.top,a=e+this.helperProportions.height,d=c.left,h=d+c.width,i=c.top,j=i+c.height,n=this.offset.click.top,q=this.offset.click.left;n=e+n>i&&e+nd&&f+qc[this.floating?"width":"height"]?n:d0?"down":"up")}, +_getDragHorizontalDirection:function(){var c=this.positionAbs.left-this.lastPositionAbs.left;return c!=0&&(c>0?"right":"left")},refresh:function(c){this._refreshItems(c);this.refreshPositions();return this},_connectWith:function(){var c=this.options;return c.connectWith.constructor==String?[c.connectWith]:c.connectWith},_getItemsAsjQuery:function(c){var f=[],g=[],e=this._connectWith();if(e&&c)for(c=e.length-1;c>=0;c--)for(var a=b(e[c]),d=a.length-1;d>=0;d--){var h=b.data(a[d],"sortable");if(h&&h!= +this&&!h.options.disabled)g.push([b.isFunction(h.options.items)?h.options.items.call(h.element):b(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}g.push([b.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):b(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(c=g.length-1;c>=0;c--)g[c][0].each(function(){f.push(this)});return b(f)},_removeCurrentsFromItems:function(){for(var c= +this.currentItem.find(":data(sortable-item)"),f=0;f=0;a--)for(var d=b(e[a]),h=d.length-1;h>=0;h--){var i=b.data(d[h],"sortable"); +if(i&&i!=this&&!i.options.disabled){g.push([b.isFunction(i.options.items)?i.options.items.call(i.element[0],c,{item:this.currentItem}):b(i.options.items,i.element),i]);this.containers.push(i)}}for(a=g.length-1;a>=0;a--){c=g[a][1];e=g[a][0];h=0;for(d=e.length;h= +0;f--){var g=this.items[f],e=this.options.toleranceElement?b(this.options.toleranceElement,g.item):g.item;if(!c){g.width=e.outerWidth();g.height=e.outerHeight()}e=e.offset();g.left=e.left;g.top=e.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(f=this.containers.length-1;f>=0;f--){e=this.containers[f].element.offset();this.containers[f].containerCache.left=e.left;this.containers[f].containerCache.top=e.top;this.containers[f].containerCache.width= +this.containers[f].element.outerWidth();this.containers[f].containerCache.height=this.containers[f].element.outerHeight()}return this},_createPlaceholder:function(c){var f=c||this,g=f.options;if(!g.placeholder||g.placeholder.constructor==String){var e=g.placeholder;g.placeholder={element:function(){var a=b(document.createElement(f.currentItem[0].nodeName)).addClass(e||f.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)a.style.visibility="hidden";return a}, +update:function(a,d){if(!(e&&!g.forcePlaceholderSize)){d.height()||d.height(f.currentItem.innerHeight()-parseInt(f.currentItem.css("paddingTop")||0,10)-parseInt(f.currentItem.css("paddingBottom")||0,10));d.width()||d.width(f.currentItem.innerWidth()-parseInt(f.currentItem.css("paddingLeft")||0,10)-parseInt(f.currentItem.css("paddingRight")||0,10))}}}}f.placeholder=b(g.placeholder.element.call(f.element,f.currentItem));f.currentItem.after(f.placeholder);g.placeholder.update(f,f.placeholder)},_contactContainers:function(c){for(var f= +null,g=null,e=this.containers.length-1;e>=0;e--)if(!b.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(f&&b.ui.contains(this.containers[e].element[0],f.element[0]))){f=this.containers[e];g=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",c,this._uiHash(this));this.containers[e].containerCache.over=0}if(f)if(this.containers.length===1){this.containers[g]._trigger("over",c,this._uiHash(this)); +this.containers[g].containerCache.over=1}else if(this.currentContainer!=this.containers[g]){f=1E4;e=null;for(var a=this.positionAbs[this.containers[g].floating?"left":"top"],d=this.items.length-1;d>=0;d--)if(b.ui.contains(this.containers[g].element[0],this.items[d].item[0])){var h=this.items[d][this.containers[g].floating?"left":"top"];if(Math.abs(h-a)this.containment[2])a=this.containment[2]+this.offset.click.left;if(c.pageY-this.offset.click.top>this.containment[3])d=this.containment[3]+this.offset.click.top}if(f.grid){d=this.originalPageY+Math.round((d-this.originalPageY)/f.grid[1])*f.grid[1];d=this.containment?!(d-this.offset.click.topthis.containment[3])? +d:!(d-this.offset.click.topthis.containment[2])?a:!(a-this.offset.click.left=0;e--)if(b.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!f){g.push(function(a){return function(d){a._trigger("receive", +d,this._uiHash(this))}}.call(this,this.containers[e]));g.push(function(a){return function(d){a._trigger("update",d,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){f||g.push(function(a){return function(d){a._trigger("deactivate",d,this._uiHash(this))}}.call(this,this.containers[e]));if(this.containers[e].containerCache.over){g.push(function(a){return function(d){a._trigger("out",d,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over= +0}}this._storedCursor&&b("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!f){this._trigger("beforeStop",c,this._uiHash());for(e=0;e").addClass("ui-effects-wrapper").css({fontSize:"100%", +background:"transparent",border:"none",margin:0,padding:0});l.wrap(m);m=l.parent();if(l.css("position")=="static"){m.css({position:"relative"});l.css({position:"relative"})}else{b.extend(k,{position:l.css("position"),zIndex:l.css("z-index")});b.each(["top","left","bottom","right"],function(o,p){k[p]=l.css(p);if(isNaN(parseInt(k[p],10)))k[p]="auto"});l.css({position:"relative",top:0,left:0})}return m.css(k).show()},removeWrapper:function(l){if(l.parent().is(".ui-effects-wrapper"))return l.parent().replaceWith(l); +return l},setTransition:function(l,k,m,o){o=o||{};b.each(k,function(p,s){unit=l.cssUnit(s);if(unit[0]>0)o[s]=unit[0]*m+unit[1]});return o}});b.fn.extend({effect:function(l){var k=h.apply(this,arguments),m={options:k[1],duration:k[2],callback:k[3]};k=m.options.mode;var o=b.effects[l];if(b.fx.off||!o)return k?this[k](m.duration,m.callback):this.each(function(){m.callback&&m.callback.call(this)});return o.call(this,m)},_show:b.fn.show,show:function(l){if(i(l))return this._show.apply(this,arguments); +else{var k=h.apply(this,arguments);k[1].mode="show";return this.effect.apply(this,k)}},_hide:b.fn.hide,hide:function(l){if(i(l))return this._hide.apply(this,arguments);else{var k=h.apply(this,arguments);k[1].mode="hide";return this.effect.apply(this,k)}},__toggle:b.fn.toggle,toggle:function(l){if(i(l)||typeof l==="boolean"||b.isFunction(l))return this.__toggle.apply(this,arguments);else{var k=h.apply(this,arguments);k[1].mode="toggle";return this.effect.apply(this,k)}},cssUnit:function(l){var k=this.css(l), +m=[];b.each(["em","px","%","pt"],function(o,p){if(k.indexOf(p)>0)m=[parseFloat(k),p]});return m}});b.easing.jswing=b.easing.swing;b.extend(b.easing,{def:"easeOutQuad",swing:function(l,k,m,o,p){return b.easing[b.easing.def](l,k,m,o,p)},easeInQuad:function(l,k,m,o,p){return o*(k/=p)*k+m},easeOutQuad:function(l,k,m,o,p){return-o*(k/=p)*(k-2)+m},easeInOutQuad:function(l,k,m,o,p){if((k/=p/2)<1)return o/2*k*k+m;return-o/2*(--k*(k-2)-1)+m},easeInCubic:function(l,k,m,o,p){return o*(k/=p)*k*k+m},easeOutCubic:function(l, +k,m,o,p){return o*((k=k/p-1)*k*k+1)+m},easeInOutCubic:function(l,k,m,o,p){if((k/=p/2)<1)return o/2*k*k*k+m;return o/2*((k-=2)*k*k+2)+m},easeInQuart:function(l,k,m,o,p){return o*(k/=p)*k*k*k+m},easeOutQuart:function(l,k,m,o,p){return-o*((k=k/p-1)*k*k*k-1)+m},easeInOutQuart:function(l,k,m,o,p){if((k/=p/2)<1)return o/2*k*k*k*k+m;return-o/2*((k-=2)*k*k*k-2)+m},easeInQuint:function(l,k,m,o,p){return o*(k/=p)*k*k*k*k+m},easeOutQuint:function(l,k,m,o,p){return o*((k=k/p-1)*k*k*k*k+1)+m},easeInOutQuint:function(l, +k,m,o,p){if((k/=p/2)<1)return o/2*k*k*k*k*k+m;return o/2*((k-=2)*k*k*k*k+2)+m},easeInSine:function(l,k,m,o,p){return-o*Math.cos(k/p*(Math.PI/2))+o+m},easeOutSine:function(l,k,m,o,p){return o*Math.sin(k/p*(Math.PI/2))+m},easeInOutSine:function(l,k,m,o,p){return-o/2*(Math.cos(Math.PI*k/p)-1)+m},easeInExpo:function(l,k,m,o,p){return k==0?m:o*Math.pow(2,10*(k/p-1))+m},easeOutExpo:function(l,k,m,o,p){return k==p?m+o:o*(-Math.pow(2,-10*k/p)+1)+m},easeInOutExpo:function(l,k,m,o,p){if(k==0)return m;if(k== +p)return m+o;if((k/=p/2)<1)return o/2*Math.pow(2,10*(k-1))+m;return o/2*(-Math.pow(2,-10*--k)+2)+m},easeInCirc:function(l,k,m,o,p){return-o*(Math.sqrt(1-(k/=p)*k)-1)+m},easeOutCirc:function(l,k,m,o,p){return o*Math.sqrt(1-(k=k/p-1)*k)+m},easeInOutCirc:function(l,k,m,o,p){if((k/=p/2)<1)return-o/2*(Math.sqrt(1-k*k)-1)+m;return o/2*(Math.sqrt(1-(k-=2)*k)+1)+m},easeInElastic:function(l,k,m,o,p){l=1.70158;var s=0,r=o;if(k==0)return m;if((k/=p)==1)return m+o;s||(s=p*0.3);if(r").css({position:"absolute",visibility:"visible",left:-j*(d/g),top:-i*(h/f)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:d/g,height:h/f,left:a.left+j*(d/g)+(c.options.mode=="show"?(j-Math.floor(g/2))*(d/g):0),top:a.top+i*(h/f)+(c.options.mode=="show"?(i-Math.floor(f/2))*(h/f):0),opacity:c.options.mode=="show"?0:1}).animate({left:a.left+j*(d/g)+(c.options.mode=="show"?0:(j-Math.floor(g/2))*(d/g)),top:a.top+ +i*(h/f)+(c.options.mode=="show"?0:(i-Math.floor(f/2))*(h/f)),opacity:c.options.mode=="show"?1:0},c.duration||500);setTimeout(function(){c.options.mode=="show"?e.css({visibility:"visible"}):e.css({visibility:"visible"}).hide();c.callback&&c.callback.apply(e[0]);e.dequeue();b("div.ui-effects-explode").remove()},c.duration||500)})}})(jQuery); +(function(b){b.effects.fade=function(c){return this.queue(function(){var f=b(this),g=b.effects.setMode(f,c.options.mode||"hide");f.animate({opacity:g},{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){c.callback&&c.callback.apply(this,arguments);f.dequeue()}})})}})(jQuery); +(function(b){b.effects.fold=function(c){return this.queue(function(){var f=b(this),g=["position","top","left"],e=b.effects.setMode(f,c.options.mode||"hide"),a=c.options.size||15,d=!!c.options.horizFirst,h=c.duration?c.duration/2:b.fx.speeds._default/2;b.effects.save(f,g);f.show();var i=b.effects.createWrapper(f).css({overflow:"hidden"}),j=e=="show"!=d,n=j?["width","height"]:["height","width"];j=j?[i.width(),i.height()]:[i.height(),i.width()];var q=/([0-9]+)%/.exec(a);if(q)a=parseInt(q[1],10)/100* +j[e=="hide"?0:1];if(e=="show")i.css(d?{height:0,width:a}:{height:a,width:0});d={};q={};d[n[0]]=e=="show"?j[0]:a;q[n[1]]=e=="show"?j[1]:0;i.animate(d,h,c.options.easing).animate(q,h,c.options.easing,function(){e=="hide"&&f.hide();b.effects.restore(f,g);b.effects.removeWrapper(f);c.callback&&c.callback.apply(f[0],arguments);f.dequeue()})})}})(jQuery); +(function(b){b.effects.highlight=function(c){return this.queue(function(){var f=b(this),g=["backgroundImage","backgroundColor","opacity"],e=b.effects.setMode(f,c.options.mode||"show"),a={backgroundColor:f.css("backgroundColor")};if(e=="hide")a.opacity=0;b.effects.save(f,g);f.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(a,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){e=="hide"&&f.hide();b.effects.restore(f,g);e=="show"&&!b.support.opacity&& +this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);f.dequeue()}})})}})(jQuery); +(function(b){b.effects.pulsate=function(c){return this.queue(function(){var f=b(this),g=b.effects.setMode(f,c.options.mode||"show");times=(c.options.times||5)*2-1;duration=c.duration?c.duration/2:b.fx.speeds._default/2;isVisible=f.is(":visible");animateTo=0;if(!isVisible){f.css("opacity",0).show();animateTo=1}if(g=="hide"&&isVisible||g=="show"&&!isVisible)times--;for(g=0;g').appendTo(document.body).addClass(c.options.className).css({top:e.top,left:e.left,height:f.innerHeight(),width:f.innerWidth(),position:"absolute"}).animate(g,c.duration,c.options.easing,function(){a.remove();c.callback&&c.callback.apply(f[0],arguments); +f.dequeue()})})}})(jQuery); +(function(b){b.widget("ui.accordion",{options:{active:0,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var c=this,f=c.options;c.running=0;c.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix");c.headers= +c.element.find(f.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){f.disabled||b(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){f.disabled||b(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){f.disabled||b(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){f.disabled||b(this).removeClass("ui-state-focus")});c.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"); +if(f.navigation){var g=c.element.find("a").filter(f.navigationFilter).eq(0);if(g.length){var e=g.closest(".ui-accordion-header");c.active=e.length?e:g.closest(".ui-accordion-content").prev()}}c.active=c._findActive(c.active||f.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");c.active.next().addClass("ui-accordion-content-active");c._createIcons();c.resize();c.element.attr("role","tablist");c.headers.attr("role","tab").bind("keydown.accordion", +function(a){return c._keydown(a)}).next().attr("role","tabpanel");c.headers.not(c.active||"").attr({"aria-expanded":"false",tabIndex:-1}).next().hide();c.active.length?c.active.attr({"aria-expanded":"true",tabIndex:0}):c.headers.eq(0).attr("tabIndex",0);b.browser.safari||c.headers.find("a").attr("tabIndex",-1);f.event&&c.headers.bind(f.event.split(" ").join(".accordion ")+".accordion",function(a){c._clickHandler.call(c,a,this);a.preventDefault()})},_createIcons:function(){var c=this.options;if(c.icons){b("").addClass("ui-icon "+ +c.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(c.icons.header).toggleClass(c.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var c=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabIndex"); +this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var f=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(c.autoHeight||c.fillHeight)f.css("height","");return b.Widget.prototype.destroy.call(this)},_setOption:function(c,f){b.Widget.prototype._setOption.apply(this,arguments);c=="active"&&this.activate(f);if(c=="icons"){this._destroyIcons(); +f&&this._createIcons()}if(c=="disabled")this.headers.add(this.headers.next())[f?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(c){if(!(this.options.disabled||c.altKey||c.ctrlKey)){var f=b.ui.keyCode,g=this.headers.length,e=this.headers.index(c.target),a=false;switch(c.keyCode){case f.RIGHT:case f.DOWN:a=this.headers[(e+1)%g];break;case f.LEFT:case f.UP:a=this.headers[(e-1+g)%g];break;case f.SPACE:case f.ENTER:this._clickHandler({target:c.target},c.target); +c.preventDefault()}if(a){b(c.target).attr("tabIndex",-1);b(a).attr("tabIndex",0);a.focus();return false}return true}},resize:function(){var c=this.options,f;if(c.fillSpace){if(b.browser.msie){var g=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}f=this.element.parent().height();b.browser.msie&&this.element.parent().css("overflow",g);this.headers.each(function(){f-=b(this).outerHeight(true)});this.headers.next().each(function(){b(this).height(Math.max(0,f-b(this).innerHeight()+ +b(this).height()))}).css("overflow","auto")}else if(c.autoHeight){f=0;this.headers.next().each(function(){f=Math.max(f,b(this).height("").height())}).height(f)}return this},activate:function(c){this.options.active=c;c=this._findActive(c)[0];this._clickHandler({target:c},c);return this},_findActive:function(c){return c?typeof c==="number"?this.headers.filter(":eq("+c+")"):this.headers.not(this.headers.not(c)):c===false?b([]):this.headers.filter(":eq(0)")},_clickHandler:function(c,f){var g=this.options; +if(!g.disabled)if(c.target){c=b(c.currentTarget||f);f=c[0]===this.active[0];g.active=g.collapsible&&f?false:this.headers.index(c);if(!(this.running||!g.collapsible&&f)){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(g.icons.headerSelected).addClass(g.icons.header);if(!f){c.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(g.icons.header).addClass(g.icons.headerSelected); +c.next().addClass("ui-accordion-content-active")}d=c.next();e=this.active.next();a={options:g,newHeader:f&&g.collapsible?b([]):c,oldHeader:this.active,newContent:f&&g.collapsible?b([]):d,oldContent:e};g=this.headers.index(this.active[0])>this.headers.index(c[0]);this.active=f?b([]):c;this._toggle(d,e,a,f,g)}}else if(g.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(g.icons.headerSelected).addClass(g.icons.header); +this.active.next().addClass("ui-accordion-content-active");var e=this.active.next(),a={options:g,newHeader:b([]),oldHeader:g.active,newContent:b([]),oldContent:e},d=this.active=b([]);this._toggle(d,e,a)}},_toggle:function(c,f,g,e,a){var d=this,h=d.options;d.toShow=c;d.toHide=f;d.data=g;var i=function(){if(d)return d._completed.apply(d,arguments)};d._trigger("changestart",null,d.data);d.running=f.size()===0?c.size():f.size();if(h.animated){g={};g=h.collapsible&&e?{toShow:b([]),toHide:f,complete:i, +down:a,autoHeight:h.autoHeight||h.fillSpace}:{toShow:c,toHide:f,complete:i,down:a,autoHeight:h.autoHeight||h.fillSpace};if(!h.proxied)h.proxied=h.animated;if(!h.proxiedDuration)h.proxiedDuration=h.duration;h.animated=b.isFunction(h.proxied)?h.proxied(g):h.proxied;h.duration=b.isFunction(h.proxiedDuration)?h.proxiedDuration(g):h.proxiedDuration;e=b.ui.accordion.animations;var j=h.duration,n=h.animated;if(n&&!e[n]&&!b.easing[n])n="slide";e[n]||(e[n]=function(q){this.slide(q,{easing:n,duration:j||700})}); +e[n](g)}else{if(h.collapsible&&e)c.toggle();else{f.hide();c.show()}i(true)}f.prev().attr({"aria-expanded":"false",tabIndex:-1}).blur();c.prev().attr({"aria-expanded":"true",tabIndex:0}).focus()},_completed:function(c){this.running=c?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");this._trigger("change",null,this.data)}}});b.extend(b.ui.accordion,{version:"1.8.7",animations:{slide:function(c, +f){c=b.extend({easing:"swing",duration:300},c,f);if(c.toHide.size())if(c.toShow.size()){var g=c.toShow.css("overflow"),e=0,a={},d={},h;f=c.toShow;h=f[0].style.width;f.width(parseInt(f.parent().width(),10)-parseInt(f.css("paddingLeft"),10)-parseInt(f.css("paddingRight"),10)-(parseInt(f.css("borderLeftWidth"),10)||0)-(parseInt(f.css("borderRightWidth"),10)||0));b.each(["height","paddingTop","paddingBottom"],function(i,j){d[j]="hide";i=(""+b.css(c.toShow[0],j)).match(/^([\d+-.]+)(.*)$/);a[j]={value:i[1], +unit:i[2]||"px"}});c.toShow.css({height:0,overflow:"hidden"}).show();c.toHide.filter(":hidden").each(c.complete).end().filter(":visible").animate(d,{step:function(i,j){if(j.prop=="height")e=j.end-j.start===0?0:(j.now-j.start)/(j.end-j.start);c.toShow[0].style[j.prop]=e*a[j.prop].value+a[j.prop].unit},duration:c.duration,easing:c.easing,complete:function(){c.autoHeight||c.toShow.css("height","");c.toShow.css({width:h,overflow:g});c.complete()}})}else c.toHide.animate({height:"hide",paddingTop:"hide", +paddingBottom:"hide"},c);else c.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},c)},bounceslide:function(c){this.slide(c,{easing:c.down?"easeOutBounce":"swing",duration:c.down?1E3:200})}}})})(jQuery); +(function(b){b.widget("ui.autocomplete",{options:{appendTo:"body",delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},_create:function(){var c=this,f=this.element[0].ownerDocument,g;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(e){if(!(c.options.disabled||c.element.attr("readonly"))){g=false;var a=b.ui.keyCode;switch(e.keyCode){case a.PAGE_UP:c._move("previousPage", +e);break;case a.PAGE_DOWN:c._move("nextPage",e);break;case a.UP:c._move("previous",e);e.preventDefault();break;case a.DOWN:c._move("next",e);e.preventDefault();break;case a.ENTER:case a.NUMPAD_ENTER:if(c.menu.active){g=true;e.preventDefault()}case a.TAB:if(!c.menu.active)return;c.menu.select(e);break;case a.ESCAPE:c.element.val(c.term);c.close(e);break;default:clearTimeout(c.searching);c.searching=setTimeout(function(){if(c.term!=c.element.val()){c.selectedItem=null;c.search(null,e)}},c.options.delay); +break}}}).bind("keypress.autocomplete",function(e){if(g){g=false;e.preventDefault()}}).bind("focus.autocomplete",function(){if(!c.options.disabled){c.selectedItem=null;c.previous=c.element.val()}}).bind("blur.autocomplete",function(e){if(!c.options.disabled){clearTimeout(c.searching);c.closing=setTimeout(function(){c.close(e);c._change(e)},150)}});this._initSource();this.response=function(){return c._response.apply(c,arguments)};this.menu=b("
      ").addClass("ui-autocomplete").appendTo(b(this.options.appendTo|| +"body",f)[0]).mousedown(function(e){var a=c.menu.element[0];b(e.target).closest(".ui-menu-item").length||setTimeout(function(){b(document).one("mousedown",function(d){d.target!==c.element[0]&&d.target!==a&&!b.ui.contains(a,d.target)&&c.close()})},1);setTimeout(function(){clearTimeout(c.closing)},13)}).menu({focus:function(e,a){a=a.item.data("item.autocomplete");false!==c._trigger("focus",e,{item:a})&&/^key/.test(e.originalEvent.type)&&c.element.val(a.value)},selected:function(e,a){var d=a.item.data("item.autocomplete"), +h=c.previous;if(c.element[0]!==f.activeElement){c.element.focus();c.previous=h;setTimeout(function(){c.previous=h;c.selectedItem=d},1)}false!==c._trigger("select",e,{item:d})&&c.element.val(d.value);c.term=c.element.val();c.close(e);c.selectedItem=d},blur:function(){c.menu.element.is(":visible")&&c.element.val()!==c.term&&c.element.val(c.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");b.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup"); +this.menu.element.remove();b.Widget.prototype.destroy.call(this)},_setOption:function(c,f){b.Widget.prototype._setOption.apply(this,arguments);c==="source"&&this._initSource();if(c==="appendTo")this.menu.element.appendTo(b(f||"body",this.element[0].ownerDocument)[0])},_initSource:function(){var c=this,f,g;if(b.isArray(this.options.source)){f=this.options.source;this.source=function(e,a){a(b.ui.autocomplete.filter(f,e.term))}}else if(typeof this.options.source==="string"){g=this.options.source;this.source= +function(e,a){c.xhr&&c.xhr.abort();c.xhr=b.ajax({url:g,data:e,dataType:"json",success:function(d,h,i){i===c.xhr&&a(d);c.xhr=null},error:function(d){d===c.xhr&&a([]);c.xhr=null}})}}else this.source=this.options.source},search:function(c,f){c=c!=null?c:this.element.val();this.term=this.element.val();if(c.length").data("item.autocomplete",f).append(b("").text(f.label)).appendTo(c)},_move:function(c,f){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(c)||this.menu.last()&&/^next/.test(c)){this.element.val(this.term);this.menu.deactivate()}else this.menu[c](f);else this.search(null,f)},widget:function(){return this.menu.element}}); +b.extend(b.ui.autocomplete,{escapeRegex:function(c){return c.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(c,f){var g=new RegExp(b.ui.autocomplete.escapeRegex(f),"i");return b.grep(c,function(e){return g.test(e.label||e.value||e)})}})})(jQuery); +(function(b){b.widget("ui.menu",{_create:function(){var c=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(f){if(b(f.target).closest(".ui-menu-item a").length){f.preventDefault();c.select(f)}});this.refresh()},refresh:function(){var c=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex", +-1).mouseenter(function(f){c.activate(f,b(this).parent())}).mouseleave(function(){c.deactivate()})},activate:function(c,f){this.deactivate();if(this.hasScroll()){var g=f.offset().top-this.element.offset().top,e=this.element.attr("scrollTop"),a=this.element.height();if(g<0)this.element.attr("scrollTop",e+g);else g>=a&&this.element.attr("scrollTop",e+g-a+f.height())}this.active=f.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",c,{item:f})}, +deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");this._trigger("blur");this.active=null}},next:function(c){this.move("next",".ui-menu-item:first",c)},previous:function(c){this.move("prev",".ui-menu-item:last",c)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(c,f,g){if(this.active){c=this.active[c+"All"](".ui-menu-item").eq(0); +c.length?this.activate(g,c):this.activate(g,this.element.children(f))}else this.activate(g,this.element.children(f))},nextPage:function(c){if(this.hasScroll())if(!this.active||this.last())this.activate(c,this.element.children(".ui-menu-item:first"));else{var f=this.active.offset().top,g=this.element.height(),e=this.element.children(".ui-menu-item").filter(function(){var a=b(this).offset().top-f-g+b(this).height();return a<10&&a>-10});e.length||(e=this.element.children(".ui-menu-item:last"));this.activate(c, +e)}else this.activate(c,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(c){if(this.hasScroll())if(!this.active||this.first())this.activate(c,this.element.children(".ui-menu-item:last"));else{var f=this.active.offset().top,g=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var e=b(this).offset().top-f+g-b(this).height();return e<10&&e>-10});result.length||(result=this.element.children(".ui-menu-item:first")); +this.activate(c,result)}else this.activate(c,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()").addClass("ui-button-text").html(this.options.label).appendTo(e.empty()).text(),d=this.options.icons,h=d.primary&&d.secondary;if(d.primary||d.secondary){e.addClass("ui-button-text-icon"+(h?"s":d.primary?"-primary":"-secondary"));d.primary&&e.prepend("");d.secondary&&e.append("");if(!this.options.text){e.addClass(h?"ui-button-icons-only":"ui-button-icon-only").removeClass("ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary"); +this.hasTitle||e.attr("title",a)}}else e.addClass("ui-button-text-only")}}});b.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(e,a){e==="disabled"&&this.buttons.button("option",e,a);b.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end()}, +destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");b.Widget.prototype.destroy.call(this)}})})(jQuery); +(function(b,c){function f(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._inDialog=this._datepickerShowing=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass= +"ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su", +"Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,yearRange:"c-10:c+10",showOtherMonths:false,selectOtherMonths:false,showWeek:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10", +minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false};b.extend(this._defaults,this.regional[""]);this.dpDiv=b('
      ')}function g(a,d){b.extend(a,d);for(var h in d)if(d[h]== +null||d[h]==c)a[h]=d[h];return a}b.extend(b.ui,{datepicker:{version:"1.8.7"}});var e=(new Date).getTime();b.extend(f.prototype,{markerClassName:"hasDatepicker",log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){g(this._defaults,a||{});return this},_attachDatepicker:function(a,d){var h=null;for(var i in this._defaults){var j=a.getAttribute("date:"+i);if(j){h=h||{};try{h[i]=eval(j)}catch(n){h[i]=j}}}i=a.nodeName.toLowerCase(); +j=i=="div"||i=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var q=this._newInst(b(a),j);q.settings=b.extend({},d||{},h||{});if(i=="input")this._connectDatepicker(a,q);else j&&this._inlineDatepicker(a,q)},_newInst:function(a,d){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:d,dpDiv:!d?this.dpDiv:b('
      ')}}, +_connectDatepicker:function(a,d){var h=b(a);d.append=b([]);d.trigger=b([]);if(!h.hasClass(this.markerClassName)){this._attachments(h,d);h.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(i,j,n){d.settings[j]=n}).bind("getData.datepicker",function(i,j){return this._get(d,j)});this._autoSize(d);b.data(a,"datepicker",d)}},_attachments:function(a,d){var h=this._get(d,"appendText"),i=this._get(d,"isRTL");d.append&& +d.append.remove();if(h){d.append=b(''+h+"");a[i?"before":"after"](d.append)}a.unbind("focus",this._showDatepicker);d.trigger&&d.trigger.remove();h=this._get(d,"showOn");if(h=="focus"||h=="both")a.focus(this._showDatepicker);if(h=="button"||h=="both"){h=this._get(d,"buttonText");var j=this._get(d,"buttonImage");d.trigger=b(this._get(d,"buttonImageOnly")?b("").addClass(this._triggerClass).attr({src:j,alt:h,title:h}):b('').addClass(this._triggerClass).html(j== +""?h:b("").attr({src:j,alt:h,title:h})));a[i?"before":"after"](d.trigger);d.trigger.click(function(){b.datepicker._datepickerShowing&&b.datepicker._lastInput==a[0]?b.datepicker._hideDatepicker():b.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var d=new Date(2009,11,20),h=this._get(a,"dateFormat");if(h.match(/[DM]/)){var i=function(j){for(var n=0,q=0,l=0;ln){n=j[l].length;q=l}return q};d.setMonth(i(this._get(a, +h.match(/MM/)?"monthNames":"monthNamesShort")));d.setDate(i(this._get(a,h.match(/DD/)?"dayNames":"dayNamesShort"))+20-d.getDay())}a.input.attr("size",this._formatDate(a,d).length)}},_inlineDatepicker:function(a,d){var h=b(a);if(!h.hasClass(this.markerClassName)){h.addClass(this.markerClassName).append(d.dpDiv).bind("setData.datepicker",function(i,j,n){d.settings[j]=n}).bind("getData.datepicker",function(i,j){return this._get(d,j)});b.data(a,"datepicker",d);this._setDate(d,this._getDefaultDate(d), +true);this._updateDatepicker(d);this._updateAlternate(d);d.dpDiv.show()}},_dialogDatepicker:function(a,d,h,i,j){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=b('');this._dialogInput.keydown(this._doKeyDown);b("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};b.data(this._dialogInput[0],"datepicker",a)}g(a.settings,i||{}); +d=d&&d.constructor==Date?this._formatDate(a,d):d;this._dialogInput.val(d);this._pos=j?j.length?j:[j.pageX,j.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=h;this._inDialog=true;this.dpDiv.addClass(this._dialogClass); +this._showDatepicker(this._dialogInput[0]);b.blockUI&&b.blockUI(this.dpDiv);b.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var d=b(a),h=b.data(a,"datepicker");if(d.hasClass(this.markerClassName)){var i=a.nodeName.toLowerCase();b.removeData(a,"datepicker");if(i=="input"){h.append.remove();h.trigger.remove();d.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup", +this._doKeyUp)}else if(i=="div"||i=="span")d.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var d=b(a),h=b.data(a,"datepicker");if(d.hasClass(this.markerClassName)){var i=a.nodeName.toLowerCase();if(i=="input"){a.disabled=false;h.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(i=="div"||i=="span")d.children("."+this._inlineClass).children().removeClass("ui-state-disabled");this._disabledInputs=b.map(this._disabledInputs, +function(j){return j==a?null:j})}},_disableDatepicker:function(a){var d=b(a),h=b.data(a,"datepicker");if(d.hasClass(this.markerClassName)){var i=a.nodeName.toLowerCase();if(i=="input"){a.disabled=true;h.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(i=="div"||i=="span")d.children("."+this._inlineClass).children().addClass("ui-state-disabled");this._disabledInputs=b.map(this._disabledInputs,function(j){return j==a?null: +j});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var d=0;d-1}},_doKeyUp:function(a){a=b.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(b.datepicker.parseDate(b.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,b.datepicker._getFormatConfig(a))){b.datepicker._setDateFromField(a);b.datepicker._updateAlternate(a);b.datepicker._updateDatepicker(a)}}catch(d){b.datepicker.log(d)}return true}, +_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=b("input",a.parentNode)[0];if(!(b.datepicker._isDisabledDatepicker(a)||b.datepicker._lastInput==a)){var d=b.datepicker._getInst(a);b.datepicker._curInst&&b.datepicker._curInst!=d&&b.datepicker._curInst.dpDiv.stop(true,true);var h=b.datepicker._get(d,"beforeShow");g(d.settings,h?h.apply(a,[a,d]):{});d.lastVal=null;b.datepicker._lastInput=a;b.datepicker._setDateFromField(d);if(b.datepicker._inDialog)a.value="";if(!b.datepicker._pos){b.datepicker._pos= +b.datepicker._findPos(a);b.datepicker._pos[1]+=a.offsetHeight}var i=false;b(a).parents().each(function(){i|=b(this).css("position")=="fixed";return!i});if(i&&b.browser.opera){b.datepicker._pos[0]-=document.documentElement.scrollLeft;b.datepicker._pos[1]-=document.documentElement.scrollTop}h={left:b.datepicker._pos[0],top:b.datepicker._pos[1]};b.datepicker._pos=null;d.dpDiv.empty();d.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});b.datepicker._updateDatepicker(d);h=b.datepicker._checkOffset(d, +h,i);d.dpDiv.css({position:b.datepicker._inDialog&&b.blockUI?"static":i?"fixed":"absolute",display:"none",left:h.left+"px",top:h.top+"px"});if(!d.inline){h=b.datepicker._get(d,"showAnim");var j=b.datepicker._get(d,"duration"),n=function(){b.datepicker._datepickerShowing=true;var q=d.dpDiv.find("iframe.ui-datepicker-cover");if(q.length){var l=b.datepicker._getBorders(d.dpDiv);q.css({left:-l[0],top:-l[1],width:d.dpDiv.outerWidth(),height:d.dpDiv.outerHeight()})}};d.dpDiv.zIndex(b(a).zIndex()+1);b.effects&& +b.effects[h]?d.dpDiv.show(h,b.datepicker._get(d,"showOptions"),j,n):d.dpDiv[h||"show"](h?j:null,n);if(!h||!j)n();d.input.is(":visible")&&!d.input.is(":disabled")&&d.input.focus();b.datepicker._curInst=d}}},_updateDatepicker:function(a){var d=this,h=b.datepicker._getBorders(a.dpDiv);a.dpDiv.empty().append(this._generateHTML(a));var i=a.dpDiv.find("iframe.ui-datepicker-cover");i.length&&i.css({left:-h[0],top:-h[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()});a.dpDiv.find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout", +function(){b(this).removeClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&b(this).removeClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&b(this).removeClass("ui-datepicker-next-hover")}).bind("mouseover",function(){if(!d._isDisabledDatepicker(a.inline?a.dpDiv.parent()[0]:a.input[0])){b(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");b(this).addClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!= +-1&&b(this).addClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&b(this).addClass("ui-datepicker-next-hover")}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();h=this._getNumberOfMonths(a);i=h[1];i>1?a.dpDiv.addClass("ui-datepicker-multi-"+i).css("width",17*i+"em"):a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");a.dpDiv[(h[0]!=1||h[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a, +"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==b.datepicker._curInst&&b.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input.focus();if(a.yearshtml){var j=a.yearshtml;setTimeout(function(){j===a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);j=a.yearshtml=null},0)}},_getBorders:function(a){var d=function(h){return{thin:1,medium:2,thick:3}[h]||h};return[parseFloat(d(a.css("border-left-width"))),parseFloat(d(a.css("border-top-width")))]}, +_checkOffset:function(a,d,h){var i=a.dpDiv.outerWidth(),j=a.dpDiv.outerHeight(),n=a.input?a.input.outerWidth():0,q=a.input?a.input.outerHeight():0,l=document.documentElement.clientWidth+b(document).scrollLeft(),k=document.documentElement.clientHeight+b(document).scrollTop();d.left-=this._get(a,"isRTL")?i-n:0;d.left-=h&&d.left==a.input.offset().left?b(document).scrollLeft():0;d.top-=h&&d.top==a.input.offset().top+q?b(document).scrollTop():0;d.left-=Math.min(d.left,d.left+i>l&&l>i?Math.abs(d.left+i- +l):0);d.top-=Math.min(d.top,d.top+j>k&&k>j?Math.abs(j+q):0);return d},_findPos:function(a){for(var d=this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1);)a=a[d?"previousSibling":"nextSibling"];a=b(a).offset();return[a.left,a.top]},_hideDatepicker:function(a){var d=this._curInst;if(!(!d||a&&d!=b.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(d,"showAnim");var h=this._get(d,"duration"),i=function(){b.datepicker._tidyDialog(d);this._curInst=null};b.effects&&b.effects[a]? +d.dpDiv.hide(a,b.datepicker._get(d,"showOptions"),h,i):d.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?h:null,i);a||i();if(a=this._get(d,"onClose"))a.apply(d.input?d.input[0]:null,[d.input?d.input.val():"",d]);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(b.blockUI){b.unblockUI();b("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")}, +_checkExternalClick:function(a){if(b.datepicker._curInst){a=b(a.target);a[0].id!=b.datepicker._mainDivId&&a.parents("#"+b.datepicker._mainDivId).length==0&&!a.hasClass(b.datepicker.markerClassName)&&!a.hasClass(b.datepicker._triggerClass)&&b.datepicker._datepickerShowing&&!(b.datepicker._inDialog&&b.blockUI)&&b.datepicker._hideDatepicker()}},_adjustDate:function(a,d,h){a=b(a);var i=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(i,d+(h=="M"?this._get(i,"showCurrentAtPos"): +0),h);this._updateDatepicker(i)}},_gotoToday:function(a){a=b(a);var d=this._getInst(a[0]);if(this._get(d,"gotoCurrent")&&d.currentDay){d.selectedDay=d.currentDay;d.drawMonth=d.selectedMonth=d.currentMonth;d.drawYear=d.selectedYear=d.currentYear}else{var h=new Date;d.selectedDay=h.getDate();d.drawMonth=d.selectedMonth=h.getMonth();d.drawYear=d.selectedYear=h.getFullYear()}this._notifyChange(d);this._adjustDate(a)},_selectMonthYear:function(a,d,h){a=b(a);var i=this._getInst(a[0]);i._selectingMonthYear= +false;i["selected"+(h=="M"?"Month":"Year")]=i["draw"+(h=="M"?"Month":"Year")]=parseInt(d.options[d.selectedIndex].value,10);this._notifyChange(i);this._adjustDate(a)},_clickMonthYear:function(a){var d=this._getInst(b(a)[0]);d.input&&d._selectingMonthYear&&setTimeout(function(){d.input.focus()},0);d._selectingMonthYear=!d._selectingMonthYear},_selectDay:function(a,d,h,i){var j=b(a);if(!(b(i).hasClass(this._unselectableClass)||this._isDisabledDatepicker(j[0]))){j=this._getInst(j[0]);j.selectedDay=j.currentDay= +b("a",i).html();j.selectedMonth=j.currentMonth=d;j.selectedYear=j.currentYear=h;this._selectDate(a,this._formatDate(j,j.currentDay,j.currentMonth,j.currentYear))}},_clearDate:function(a){a=b(a);this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,d){a=this._getInst(b(a)[0]);d=d!=null?d:this._formatDate(a);a.input&&a.input.val(d);this._updateAlternate(a);var h=this._get(a,"onSelect");if(h)h.apply(a.input?a.input[0]:null,[d,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a); +else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var d=this._get(a,"altField");if(d){var h=this._get(a,"altFormat")||this._get(a,"dateFormat"),i=this._getDate(a),j=this.formatDate(h,i,this._getFormatConfig(a));b(d).each(function(){b(this).val(j)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var d= +a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((d-a)/864E5)/7)+1},parseDate:function(a,d,h){if(a==null||d==null)throw"Invalid arguments";d=typeof d=="object"?d.toString():d+"";if(d=="")return null;for(var i=(h?h.shortYearCutoff:null)||this._defaults.shortYearCutoff,j=(h?h.dayNamesShort:null)||this._defaults.dayNamesShort,n=(h?h.dayNames:null)||this._defaults.dayNames,q=(h?h.monthNamesShort:null)||this._defaults.monthNamesShort,l=(h?h.monthNames:null)||this._defaults.monthNames, +k=h=-1,m=-1,o=-1,p=false,s=function(x){(x=y+1-1){k=1;m=o;do{i=this._getDaysInMonth(h,k-1);if(m<=i)break;k++;m-=i}while(1)}B=this._daylightSavingAdjust(new Date(h,k-1,m));if(B.getFullYear()!=h||B.getMonth()+1!=k||B.getDate()!=m)throw"Invalid date";return B},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y", +RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,d,h){if(!d)return"";var i=(h?h.dayNamesShort:null)||this._defaults.dayNamesShort,j=(h?h.dayNames:null)||this._defaults.dayNames,n=(h?h.monthNamesShort:null)||this._defaults.monthNamesShort;h=(h?h.monthNames:null)||this._defaults.monthNames;var q=function(s){(s=p+112?a.getHours()+2:0);return a},_setDate:function(a,d,h){var i=!d,j=a.selectedMonth,n=a.selectedYear;d=this._restrictMinMax(a,this._determineDate(a,d,new Date));a.selectedDay= +a.currentDay=d.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=d.getMonth();a.drawYear=a.selectedYear=a.currentYear=d.getFullYear();if((j!=a.selectedMonth||n!=a.selectedYear)&&!h)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(i?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var d=new Date;d=this._daylightSavingAdjust(new Date(d.getFullYear(), +d.getMonth(),d.getDate()));var h=this._get(a,"isRTL"),i=this._get(a,"showButtonPanel"),j=this._get(a,"hideIfNoPrevNext"),n=this._get(a,"navigationAsDateFormat"),q=this._getNumberOfMonths(a),l=this._get(a,"showCurrentAtPos"),k=this._get(a,"stepMonths"),m=q[0]!=1||q[1]!=1,o=this._daylightSavingAdjust(!a.currentDay?new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),p=this._getMinMaxDate(a,"min"),s=this._getMinMaxDate(a,"max");l=a.drawMonth-l;var r=a.drawYear;if(l<0){l+=12;r--}if(s){var u= +this._daylightSavingAdjust(new Date(s.getFullYear(),s.getMonth()-q[0]*q[1]+1,s.getDate()));for(u=p&&uu;){l--;if(l<0){l=11;r--}}}a.drawMonth=l;a.drawYear=r;u=this._get(a,"prevText");u=!n?u:this.formatDate(u,this._daylightSavingAdjust(new Date(r,l-k,1)),this._getFormatConfig(a));u=this._canAdjustMonth(a,-1,r,l)?''+u+"":j?"":''+u+"";var v=this._get(a,"nextText");v=!n?v:this.formatDate(v,this._daylightSavingAdjust(new Date(r,l+k,1)),this._getFormatConfig(a));j=this._canAdjustMonth(a,+1,r,l)?''+v+"":j?"":''+v+"";k=this._get(a,"currentText");v=this._get(a,"gotoCurrent")&&a.currentDay?o:d;k=!n?k:this.formatDate(k,v,this._getFormatConfig(a));n=!a.inline?'":"";i=i?'
      '+(h?n:"")+(this._isInRange(a,v)?'":"")+(h?"":n)+"
      ":"";n=parseInt(this._get(a,"firstDay"),10);n=isNaN(n)?0:n;k=this._get(a,"showWeek");v=this._get(a,"dayNames");this._get(a,"dayNamesShort");var w=this._get(a,"dayNamesMin"),y= +this._get(a,"monthNames"),B=this._get(a,"monthNamesShort"),x=this._get(a,"beforeShowDay"),C=this._get(a,"showOtherMonths"),J=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var M=this._getDefaultDate(a),K="",G=0;G1)switch(H){case 0:D+=" ui-datepicker-group-first";A=" ui-corner-"+(h?"right":"left");break;case q[1]- +1:D+=" ui-datepicker-group-last";A=" ui-corner-"+(h?"left":"right");break;default:D+=" ui-datepicker-group-middle";A="";break}D+='">'}D+='
      '+(/all|left/.test(A)&&G==0?h?j:u:"")+(/all|right/.test(A)&&G==0?h?u:j:"")+this._generateMonthYearHeader(a,l,r,p,s,G>0||H>0,y,B)+'
      ';var E=k?'":"";for(A=0;A<7;A++){var z= +(A+n)%7;E+="=5?' class="ui-datepicker-week-end"':"")+'>'+w[z]+""}D+=E+"";E=this._getDaysInMonth(r,l);if(r==a.selectedYear&&l==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,E);A=(this._getFirstDayOfMonth(r,l)-n+7)%7;E=m?6:Math.ceil((A+E)/7);z=this._daylightSavingAdjust(new Date(r,l,1-A));for(var P=0;P";var Q=!k?"":'";for(A=0;A<7;A++){var I= +x?x.apply(a.input?a.input[0]:null,[z]):[true,""],F=z.getMonth()!=l,L=F&&!J||!I[0]||p&&zs;Q+='";z.setDate(z.getDate()+1);z=this._daylightSavingAdjust(z)}D+= +Q+""}l++;if(l>11){l=0;r++}D+="
      '+this._get(a,"weekHeader")+"
      '+this._get(a,"calculateWeek")(z)+""+(F&&!C?" ":L?''+z.getDate()+"":''+z.getDate()+"")+"
      "+(m?""+(q[0]>0&&H==q[1]-1?'
      ':""):"");N+=D}K+=N}K+=i+(b.browser.msie&&parseInt(b.browser.version,10)<7&&!a.inline?'':"");a._keyEvent=false;return K},_generateMonthYearHeader:function(a,d,h,i,j,n,q,l){var k=this._get(a,"changeMonth"),m=this._get(a,"changeYear"),o=this._get(a,"showMonthAfterYear"),p='
      ', +s="";if(n||!k)s+=''+q[d]+"";else{q=i&&i.getFullYear()==h;var r=j&&j.getFullYear()==h;s+='"}o||(p+=s+(n||!(k&& +m)?" ":""));a.yearshtml="";if(n||!m)p+=''+h+"";else{l=this._get(a,"yearRange").split(":");var v=(new Date).getFullYear();q=function(w){w=w.match(/c[+-].*/)?h+parseInt(w.substring(1),10):w.match(/[+-].*/)?v+parseInt(w,10):parseInt(w,10);return isNaN(w)?v:w};d=q(l[0]);l=Math.max(d,q(l[1]||""));d=i?Math.max(d,i.getFullYear()):d;l=j?Math.min(l,j.getFullYear()):l;for(a.yearshtml+='";if(b.browser.mozilla)p+='";else{p+=a.yearshtml;a.yearshtml=null}}p+=this._get(a,"yearSuffix");if(o)p+=(n||!(k&&m)?" ":"")+s;p+="
      ";return p},_adjustInstDate:function(a,d,h){var i= +a.drawYear+(h=="Y"?d:0),j=a.drawMonth+(h=="M"?d:0);d=Math.min(a.selectedDay,this._getDaysInMonth(i,j))+(h=="D"?d:0);i=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(i,j,d)));a.selectedDay=i.getDate();a.drawMonth=a.selectedMonth=i.getMonth();a.drawYear=a.selectedYear=i.getFullYear();if(h=="M"||h=="Y")this._notifyChange(a)},_restrictMinMax:function(a,d){var h=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");d=h&&da?a:d},_notifyChange:function(a){var d=this._get(a, +"onChangeMonthYear");if(d)d.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,d){return this._determineDate(a,this._get(a,d+"Date"),null)},_getDaysInMonth:function(a,d){return 32-(new Date(a,d,32)).getDate()},_getFirstDayOfMonth:function(a,d){return(new Date(a,d,1)).getDay()},_canAdjustMonth:function(a,d,h,i){var j=this._getNumberOfMonths(a); +h=this._daylightSavingAdjust(new Date(h,i+(d<0?d:j[0]*j[1]),1));d<0&&h.setDate(this._getDaysInMonth(h.getFullYear(),h.getMonth()));return this._isInRange(a,h)},_isInRange:function(a,d){var h=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!h||d.getTime()>=h.getTime())&&(!a||d.getTime()<=a.getTime())},_getFormatConfig:function(a){var d=this._get(a,"shortYearCutoff");d=typeof d!="string"?d:(new Date).getFullYear()%100+parseInt(d,10);return{shortYearCutoff:d,dayNamesShort:this._get(a, +"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,d,h,i){if(!d){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}d=d?typeof d=="object"?d:this._daylightSavingAdjust(new Date(i,h,d)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),d,this._getFormatConfig(a))}});b.fn.datepicker= +function(a){if(!b.datepicker.initialized){b(document).mousedown(b.datepicker._checkExternalClick).find("body").append(b.datepicker.dpDiv);b.datepicker.initialized=true}var d=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return b.datepicker["_"+a+"Datepicker"].apply(b.datepicker,[this[0]].concat(d));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return b.datepicker["_"+a+"Datepicker"].apply(b.datepicker,[this[0]].concat(d)); +return this.each(function(){typeof a=="string"?b.datepicker["_"+a+"Datepicker"].apply(b.datepicker,[this].concat(d)):b.datepicker._attachDatepicker(this,a)})};b.datepicker=new f;b.datepicker.initialized=false;b.datepicker.uuid=(new Date).getTime();b.datepicker.version="1.8.7";window["DP_jQuery_"+e]=b})(jQuery); +(function(b,c){var f={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},g={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true};b.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:{my:"center",at:"center",collision:"fit",using:function(e){var a=b(this).css(e).offset().top;a<0&& +b(this).css("top",e.top-a)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var e=this,a=e.options,d=a.title||" ",h=b.ui.dialog.getTitleId(e.element),i=(e.uiDialog=b("
      ")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+a.dialogClass).css({zIndex:a.zIndex}).attr("tabIndex", +-1).css("outline",0).keydown(function(q){if(a.closeOnEscape&&q.keyCode&&q.keyCode===b.ui.keyCode.ESCAPE){e.close(q);q.preventDefault()}}).attr({role:"dialog","aria-labelledby":h}).mousedown(function(q){e.moveToTop(false,q)});e.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(i);var j=(e.uiDialogTitlebar=b("
      ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(i),n=b('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role", +"button").hover(function(){n.addClass("ui-state-hover")},function(){n.removeClass("ui-state-hover")}).focus(function(){n.addClass("ui-state-focus")}).blur(function(){n.removeClass("ui-state-focus")}).click(function(q){e.close(q);return false}).appendTo(j);(e.uiDialogTitlebarCloseText=b("")).addClass("ui-icon ui-icon-closethick").text(a.closeText).appendTo(n);b("").addClass("ui-dialog-title").attr("id",h).html(d).prependTo(j);if(b.isFunction(a.beforeclose)&&!b.isFunction(a.beforeClose))a.beforeClose= +a.beforeclose;j.find("*").add(j).disableSelection();a.draggable&&b.fn.draggable&&e._makeDraggable();a.resizable&&b.fn.resizable&&e._makeResizable();e._createButtons(a.buttons);e._isOpen=false;b.fn.bgiframe&&i.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var e=this;e.overlay&&e.overlay.destroy();e.uiDialog.hide();e.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");e.uiDialog.remove();e.originalTitle&& +e.element.attr("title",e.originalTitle);return e},widget:function(){return this.uiDialog},close:function(e){var a=this,d,h;if(false!==a._trigger("beforeClose",e)){a.overlay&&a.overlay.destroy();a.uiDialog.unbind("keypress.ui-dialog");a._isOpen=false;if(a.options.hide)a.uiDialog.hide(a.options.hide,function(){a._trigger("close",e)});else{a.uiDialog.hide();a._trigger("close",e)}b.ui.dialog.overlay.resize();if(a.options.modal){d=0;b(".ui-dialog").each(function(){if(this!==a.uiDialog[0]){h=b(this).css("z-index"); +isNaN(h)||(d=Math.max(d,h))}});b.ui.dialog.maxZ=d}return a}},isOpen:function(){return this._isOpen},moveToTop:function(e,a){var d=this,h=d.options;if(h.modal&&!e||!h.stack&&!h.modal)return d._trigger("focus",a);if(h.zIndex>b.ui.dialog.maxZ)b.ui.dialog.maxZ=h.zIndex;if(d.overlay){b.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",b.ui.dialog.overlay.maxZ=b.ui.dialog.maxZ)}e={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};b.ui.dialog.maxZ+=1;d.uiDialog.css("z-index",b.ui.dialog.maxZ); +d.element.attr(e);d._trigger("focus",a);return d},open:function(){if(!this._isOpen){var e=this,a=e.options,d=e.uiDialog;e.overlay=a.modal?new b.ui.dialog.overlay(e):null;e._size();e._position(a.position);d.show(a.show);e.moveToTop(true);a.modal&&d.bind("keypress.ui-dialog",function(h){if(h.keyCode===b.ui.keyCode.TAB){var i=b(":tabbable",this),j=i.filter(":first");i=i.filter(":last");if(h.target===i[0]&&!h.shiftKey){j.focus(1);return false}else if(h.target===j[0]&&h.shiftKey){i.focus(1);return false}}}); +b(e.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();e._isOpen=true;e._trigger("open");return e}},_createButtons:function(e){var a=this,d=false,h=b("
      ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),i=b("
      ").addClass("ui-dialog-buttonset").appendTo(h);a.uiDialog.find(".ui-dialog-buttonpane").remove();typeof e==="object"&&e!==null&&b.each(e,function(){return!(d=true)});if(d){b.each(e,function(j, +n){n=b.isFunction(n)?{click:n,text:j}:n;j=b('').attr(n,true).unbind("click").click(function(){n.click.apply(a.element[0],arguments)}).appendTo(i);b.fn.button&&j.button()});h.appendTo(a.uiDialog)}},_makeDraggable:function(){function e(j){return{position:j.position,offset:j.offset}}var a=this,d=a.options,h=b(document),i;a.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(j,n){i= +d.height==="auto"?"auto":b(this).height();b(this).height(b(this).height()).addClass("ui-dialog-dragging");a._trigger("dragStart",j,e(n))},drag:function(j,n){a._trigger("drag",j,e(n))},stop:function(j,n){d.position=[n.position.left-h.scrollLeft(),n.position.top-h.scrollTop()];b(this).removeClass("ui-dialog-dragging").height(i);a._trigger("dragStop",j,e(n));b.ui.dialog.overlay.resize()}})},_makeResizable:function(e){function a(j){return{originalPosition:j.originalPosition,originalSize:j.originalSize, +position:j.position,size:j.size}}e=e===c?this.options.resizable:e;var d=this,h=d.options,i=d.uiDialog.css("position");e=typeof e==="string"?e:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:h.maxWidth,maxHeight:h.maxHeight,minWidth:h.minWidth,minHeight:d._minHeight(),handles:e,start:function(j,n){b(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",j,a(n))},resize:function(j,n){d._trigger("resize",j,a(n))},stop:function(j, +n){b(this).removeClass("ui-dialog-resizing");h.height=b(this).height();h.width=b(this).width();d._trigger("resizeStop",j,a(n));b.ui.dialog.overlay.resize()}}).css("position",i).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var e=this.options;return e.height==="auto"?e.minHeight:Math.min(e.minHeight,e.height)},_position:function(e){var a=[],d=[0,0],h;if(e){if(typeof e==="string"||typeof e==="object"&&"0"in e){a=e.split?e.split(" "):[e[0],e[1]];if(a.length=== +1)a[1]=a[0];b.each(["left","top"],function(i,j){if(+a[i]===a[i]){d[i]=a[i];a[i]=j}});e={my:a.join(" "),at:a.join(" "),offset:d.join(" ")}}e=b.extend({},b.ui.dialog.prototype.options.position,e)}else e=b.ui.dialog.prototype.options.position;(h=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(b.extend({of:window},e));h||this.uiDialog.hide()},_setOptions:function(e){var a=this,d={},h=false;b.each(e,function(i,j){a._setOption(i,j);if(i in f)h=true;if(i in +g)d[i]=j});h&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(e,a){var d=this,h=d.uiDialog;switch(e){case "beforeclose":e="beforeClose";break;case "buttons":d._createButtons(a);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+a);break;case "dialogClass":h.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+a);break;case "disabled":a?h.addClass("ui-dialog-disabled"):h.removeClass("ui-dialog-disabled"); +break;case "draggable":var i=h.is(":data(draggable)");i&&!a&&h.draggable("destroy");!i&&a&&d._makeDraggable();break;case "position":d._position(a);break;case "resizable":(i=h.is(":data(resizable)"))&&!a&&h.resizable("destroy");i&&typeof a==="string"&&h.resizable("option","handles",a);!i&&a!==false&&d._makeResizable(a);break;case "title":b(".ui-dialog-title",d.uiDialogTitlebar).html(""+(a||" "));break}b.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var e=this.options,a,d,h= +this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(e.minWidth>e.width)e.width=e.minWidth;a=this.uiDialog.css({height:"auto",width:e.width}).height();d=Math.max(0,e.minHeight-a);if(e.height==="auto")if(b.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();e=this.element.css("height","auto").height();h||this.uiDialog.hide();this.element.height(Math.max(e,d))}else this.element.height(Math.max(e.height-a,0));this.uiDialog.is(":data(resizable)")&& +this.uiDialog.resizable("option","minHeight",this._minHeight())}});b.extend(b.ui.dialog,{version:"1.8.7",uuid:0,maxZ:0,getTitleId:function(e){e=e.attr("id");if(!e){this.uuid+=1;e=this.uuid}return"ui-dialog-title-"+e},overlay:function(e){this.$el=b.ui.dialog.overlay.create(e)}});b.extend(b.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:b.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(e){return e+".dialog-overlay"}).join(" "),create:function(e){if(this.instances.length=== +0){setTimeout(function(){b.ui.dialog.overlay.instances.length&&b(document).bind(b.ui.dialog.overlay.events,function(d){if(b(d.target).zIndex()").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(), +height:this.height()});b.fn.bgiframe&&a.bgiframe();this.instances.push(a);return a},destroy:function(e){var a=b.inArray(e,this.instances);a!=-1&&this.oldInstances.push(this.instances.splice(a,1)[0]);this.instances.length===0&&b([document,window]).unbind(".dialog-overlay");e.remove();var d=0;b.each(this.instances,function(){d=Math.max(d,this.css("z-index"))});this.maxZ=d},height:function(){var e,a;if(b.browser.msie&&b.browser.version<7){e=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight); +a=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return e0?a.left-h:Math.max(a.left-d.collisionPosition.left,a.left)},top:function(a,d){var h=b(window);h=d.collisionPosition.top+d.collisionHeight-h.height()-h.scrollTop();a.top=h>0?a.top-h:Math.max(a.top-d.collisionPosition.top,a.top)}},flip:{left:function(a,d){if(d.at[0]!=="center"){var h=b(window);h=d.collisionPosition.left+d.collisionWidth-h.width()-h.scrollLeft();var i=d.my[0]==="left"?-d.elemWidth:d.my[0]==="right"?d.elemWidth:0,j=d.at[0]==="left"?d.targetWidth:-d.targetWidth,n=-2*d.offset[0];a.left+= +d.collisionPosition.left<0?i+j+n:h>0?i+j+n:0}},top:function(a,d){if(d.at[1]!=="center"){var h=b(window);h=d.collisionPosition.top+d.collisionHeight-h.height()-h.scrollTop();var i=d.my[1]==="top"?-d.elemHeight:d.my[1]==="bottom"?d.elemHeight:0,j=d.at[1]==="top"?d.targetHeight:-d.targetHeight,n=-2*d.offset[1];a.top+=d.collisionPosition.top<0?i+j+n:h>0?i+j+n:0}}}};if(!b.offset.setOffset){b.offset.setOffset=function(a,d){if(/static/.test(b.curCSS(a,"position")))a.style.position="relative";var h=b(a), +i=h.offset(),j=parseInt(b.curCSS(a,"top",true),10)||0,n=parseInt(b.curCSS(a,"left",true),10)||0;i={top:d.top-i.top+j,left:d.left-i.left+n};"using"in d?d.using.call(a,i):h.css(i)};b.fn.offset=function(a){var d=this[0];if(!d||!d.ownerDocument)return null;if(a)return this.each(function(){b.offset.setOffset(this,a)});return e.call(this)}}})(jQuery); +(function(b,c){b.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=b("
      ").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"); +this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(f){if(f===c)return this._value();this._setOption("value",f);return this},_setOption:function(f,g){if(f==="value"){this.options.value=g;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var f=this.options.value;if(typeof f!=="number")f=0;return Math.min(this.options.max,Math.max(this.min,f))},_percentage:function(){return 100* +this._value()/this.options.max},_refreshValue:function(){var f=this.value(),g=this._percentage();if(this.oldValue!==f){this.oldValue=f;this._trigger("change")}this.valueDiv.toggleClass("ui-corner-right",f===this.options.max).width(g.toFixed(0)+"%");this.element.attr("aria-valuenow",f)}});b.extend(b.ui.progressbar,{version:"1.8.7"})})(jQuery); +(function(b){b.widget("ui.slider",b.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var c=this,f=this.options;this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all");f.disabled&&this.element.addClass("ui-slider-disabled ui-disabled"); +this.range=b([]);if(f.range){if(f.range===true){this.range=b("
      ");if(!f.values)f.values=[this._valueMin(),this._valueMin()];if(f.values.length&&f.values.length!==2)f.values=[f.values[0],f.values[0]]}else this.range=b("
      ");this.range.appendTo(this.element).addClass("ui-slider-range");if(f.range==="min"||f.range==="max")this.range.addClass("ui-slider-range-"+f.range);this.range.addClass("ui-widget-header")}b(".ui-slider-handle",this.element).length===0&&b("").appendTo(this.element).addClass("ui-slider-handle"); +if(f.values&&f.values.length)for(;b(".ui-slider-handle",this.element).length").appendTo(this.element).addClass("ui-slider-handle");this.handles=b(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(g){g.preventDefault()}).hover(function(){f.disabled||b(this).addClass("ui-state-hover")},function(){b(this).removeClass("ui-state-hover")}).focus(function(){if(f.disabled)b(this).blur(); +else{b(".ui-slider .ui-state-focus").removeClass("ui-state-focus");b(this).addClass("ui-state-focus")}}).blur(function(){b(this).removeClass("ui-state-focus")});this.handles.each(function(g){b(this).data("index.ui-slider-handle",g)});this.handles.keydown(function(g){var e=true,a=b(this).data("index.ui-slider-handle"),d,h,i;if(!c.options.disabled){switch(g.keyCode){case b.ui.keyCode.HOME:case b.ui.keyCode.END:case b.ui.keyCode.PAGE_UP:case b.ui.keyCode.PAGE_DOWN:case b.ui.keyCode.UP:case b.ui.keyCode.RIGHT:case b.ui.keyCode.DOWN:case b.ui.keyCode.LEFT:e= +false;if(!c._keySliding){c._keySliding=true;b(this).addClass("ui-state-active");d=c._start(g,a);if(d===false)return}break}i=c.options.step;d=c.options.values&&c.options.values.length?(h=c.values(a)):(h=c.value());switch(g.keyCode){case b.ui.keyCode.HOME:h=c._valueMin();break;case b.ui.keyCode.END:h=c._valueMax();break;case b.ui.keyCode.PAGE_UP:h=c._trimAlignValue(d+(c._valueMax()-c._valueMin())/5);break;case b.ui.keyCode.PAGE_DOWN:h=c._trimAlignValue(d-(c._valueMax()-c._valueMin())/5);break;case b.ui.keyCode.UP:case b.ui.keyCode.RIGHT:if(d=== +c._valueMax())return;h=c._trimAlignValue(d+i);break;case b.ui.keyCode.DOWN:case b.ui.keyCode.LEFT:if(d===c._valueMin())return;h=c._trimAlignValue(d-i);break}c._slide(g,a,h);return e}}).keyup(function(g){var e=b(this).data("index.ui-slider-handle");if(c._keySliding){c._keySliding=false;c._stop(g,e);c._change(g,e);b(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider"); +this._mouseDestroy();return this},_mouseCapture:function(c){var f=this.options,g,e,a,d,h;if(f.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();g=this._normValueFromMouse({x:c.pageX,y:c.pageY});e=this._valueMax()-this._valueMin()+1;d=this;this.handles.each(function(i){var j=Math.abs(g-d.values(i));if(e>j){e=j;a=b(this);h=i}});if(f.range===true&&this.values(1)===f.min){h+=1;a=b(this.handles[h])}if(this._start(c, +h)===false)return false;this._mouseSliding=true;d._handleIndex=h;a.addClass("ui-state-active").focus();f=a.offset();this._clickOffset=!b(c.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:c.pageX-f.left-a.width()/2,top:c.pageY-f.top-a.height()/2-(parseInt(a.css("borderTopWidth"),10)||0)-(parseInt(a.css("borderBottomWidth"),10)||0)+(parseInt(a.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(c,h,g);return this._animateOff=true},_mouseStart:function(){return true}, +_mouseDrag:function(c){var f=this._normValueFromMouse({x:c.pageX,y:c.pageY});this._slide(c,this._handleIndex,f);return false},_mouseStop:function(c){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(c,this._handleIndex);this._change(c,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(c){var f; +if(this.orientation==="horizontal"){f=this.elementSize.width;c=c.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{f=this.elementSize.height;c=c.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}f=c/f;if(f>1)f=1;if(f<0)f=0;if(this.orientation==="vertical")f=1-f;c=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+f*c)},_start:function(c,f){var g={handle:this.handles[f],value:this.value()};if(this.options.values&&this.options.values.length){g.value= +this.values(f);g.values=this.values()}return this._trigger("start",c,g)},_slide:function(c,f,g){var e;if(this.options.values&&this.options.values.length){e=this.values(f?0:1);if(this.options.values.length===2&&this.options.range===true&&(f===0&&g>e||f===1&&g1){this.options.values[c]=this._trimAlignValue(f);this._refreshValue();this._change(null,c)}if(arguments.length)if(b.isArray(arguments[0])){g=this.options.values;e=arguments[0];for(a=0;a=this._valueMax())return this._valueMax();var f=this.options.step>0?this.options.step:1,g=(c-this._valueMin())%f;alignValue=c-g;if(Math.abs(g)*2>=f)alignValue+=g>0?f:-f;return parseFloat(alignValue.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max}, +_refreshValue:function(){var c=this.options.range,f=this.options,g=this,e=!this._animateOff?f.animate:false,a,d={},h,i,j,n;if(this.options.values&&this.options.values.length)this.handles.each(function(q){a=(g.values(q)-g._valueMin())/(g._valueMax()-g._valueMin())*100;d[g.orientation==="horizontal"?"left":"bottom"]=a+"%";b(this).stop(1,1)[e?"animate":"css"](d,f.animate);if(g.options.range===true)if(g.orientation==="horizontal"){if(q===0)g.range.stop(1,1)[e?"animate":"css"]({left:a+"%"},f.animate); +if(q===1)g.range[e?"animate":"css"]({width:a-h+"%"},{queue:false,duration:f.animate})}else{if(q===0)g.range.stop(1,1)[e?"animate":"css"]({bottom:a+"%"},f.animate);if(q===1)g.range[e?"animate":"css"]({height:a-h+"%"},{queue:false,duration:f.animate})}h=a});else{i=this.value();j=this._valueMin();n=this._valueMax();a=n!==j?(i-j)/(n-j)*100:0;d[g.orientation==="horizontal"?"left":"bottom"]=a+"%";this.handle.stop(1,1)[e?"animate":"css"](d,f.animate);if(c==="min"&&this.orientation==="horizontal")this.range.stop(1, +1)[e?"animate":"css"]({width:a+"%"},f.animate);if(c==="max"&&this.orientation==="horizontal")this.range[e?"animate":"css"]({width:100-a+"%"},{queue:false,duration:f.animate});if(c==="min"&&this.orientation==="vertical")this.range.stop(1,1)[e?"animate":"css"]({height:a+"%"},f.animate);if(c==="max"&&this.orientation==="vertical")this.range[e?"animate":"css"]({height:100-a+"%"},{queue:false,duration:f.animate})}}});b.extend(b.ui.slider,{version:"1.8.7"})})(jQuery); +(function(b,c){function f(){return++e}function g(){return++a}var e=0,a=0;b.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"
      ",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
    • #{label}
    • "},_create:function(){this._tabify(true)},_setOption:function(d,h){if(d=="selected")this.options.collapsible&& +h==this.options.selected||this.select(h);else{this.options[d]=h;this._tabify()}},_tabId:function(d){return d.title&&d.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+f()},_sanitizeSelector:function(d){return d.replace(/:/g,"\\:")},_cookie:function(){var d=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+g());return b.cookie.apply(null,[d].concat(b.makeArray(arguments)))},_ui:function(d,h){return{tab:d,panel:h,index:this.anchors.index(d)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var d= +b(this);d.html(d.data("label.tabs")).removeData("label.tabs")})},_tabify:function(d){function h(r,u){r.css("display","");!b.support.opacity&&u.opacity&&r[0].style.removeAttribute("filter")}var i=this,j=this.options,n=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=b(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return b("a",this)[0]});this.panels=b([]);this.anchors.each(function(r,u){var v=b(u).attr("href"),w=v.split("#")[0],y;if(w&&(w===location.toString().split("#")[0]|| +(y=b("base")[0])&&w===y.href)){v=u.hash;u.href=v}if(n.test(v))i.panels=i.panels.add(i.element.find(i._sanitizeSelector(v)));else if(v&&v!=="#"){b.data(u,"href.tabs",v);b.data(u,"load.tabs",v.replace(/#.*$/,""));v=i._tabId(u);u.href="#"+v;u=i.element.find("#"+v);if(!u.length){u=b(j.panelTemplate).attr("id",v).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(i.panels[r-1]||i.list);u.data("destroy.tabs",true)}i.panels=i.panels.add(u)}else j.disabled.push(r)});if(d){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); +this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(j.selected===c){location.hash&&this.anchors.each(function(r,u){if(u.hash==location.hash){j.selected=r;return false}});if(typeof j.selected!=="number"&&j.cookie)j.selected=parseInt(i._cookie(),10);if(typeof j.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)j.selected= +this.lis.index(this.lis.filter(".ui-tabs-selected"));j.selected=j.selected||(this.lis.length?0:-1)}else if(j.selected===null)j.selected=-1;j.selected=j.selected>=0&&this.anchors[j.selected]||j.selected<0?j.selected:0;j.disabled=b.unique(j.disabled.concat(b.map(this.lis.filter(".ui-state-disabled"),function(r){return i.lis.index(r)}))).sort();b.inArray(j.selected,j.disabled)!=-1&&j.disabled.splice(b.inArray(j.selected,j.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); +if(j.selected>=0&&this.anchors.length){i.element.find(i._sanitizeSelector(i.anchors[j.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(j.selected).addClass("ui-tabs-selected ui-state-active");i.element.queue("tabs",function(){i._trigger("show",null,i._ui(i.anchors[j.selected],i.element.find(i._sanitizeSelector(i.anchors[j.selected].hash))))});this.load(j.selected)}b(window).bind("unload",function(){i.lis.add(i.anchors).unbind(".tabs");i.lis=i.anchors=i.panels=null})}else j.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")); +this.element[j.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");j.cookie&&this._cookie(j.selected,j.cookie);d=0;for(var q;q=this.lis[d];d++)b(q)[b.inArray(d,j.disabled)!=-1&&!b(q).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");j.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(j.event!=="mouseover"){var l=function(r,u){u.is(":not(.ui-state-disabled)")&&u.addClass("ui-state-"+r)},k=function(r,u){u.removeClass("ui-state-"+ +r)};this.lis.bind("mouseover.tabs",function(){l("hover",b(this))});this.lis.bind("mouseout.tabs",function(){k("hover",b(this))});this.anchors.bind("focus.tabs",function(){l("focus",b(this).closest("li"))});this.anchors.bind("blur.tabs",function(){k("focus",b(this).closest("li"))})}var m,o;if(j.fx)if(b.isArray(j.fx)){m=j.fx[0];o=j.fx[1]}else m=o=j.fx;var p=o?function(r,u){b(r).closest("li").addClass("ui-tabs-selected ui-state-active");u.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal", +function(){h(u,o);i._trigger("show",null,i._ui(r,u[0]))})}:function(r,u){b(r).closest("li").addClass("ui-tabs-selected ui-state-active");u.removeClass("ui-tabs-hide");i._trigger("show",null,i._ui(r,u[0]))},s=m?function(r,u){u.animate(m,m.duration||"normal",function(){i.lis.removeClass("ui-tabs-selected ui-state-active");u.addClass("ui-tabs-hide");h(u,m);i.element.dequeue("tabs")})}:function(r,u){i.lis.removeClass("ui-tabs-selected ui-state-active");u.addClass("ui-tabs-hide");i.element.dequeue("tabs")}; +this.anchors.bind(j.event+".tabs",function(){var r=this,u=b(r).closest("li"),v=i.panels.filter(":not(.ui-tabs-hide)"),w=i.element.find(i._sanitizeSelector(r.hash));if(u.hasClass("ui-tabs-selected")&&!j.collapsible||u.hasClass("ui-state-disabled")||u.hasClass("ui-state-processing")||i.panels.filter(":animated").length||i._trigger("select",null,i._ui(this,w[0]))===false){this.blur();return false}j.selected=i.anchors.index(this);i.abort();if(j.collapsible)if(u.hasClass("ui-tabs-selected")){j.selected= +-1;j.cookie&&i._cookie(j.selected,j.cookie);i.element.queue("tabs",function(){s(r,v)}).dequeue("tabs");this.blur();return false}else if(!v.length){j.cookie&&i._cookie(j.selected,j.cookie);i.element.queue("tabs",function(){p(r,w)});i.load(i.anchors.index(this));this.blur();return false}j.cookie&&i._cookie(j.selected,j.cookie);if(w.length){v.length&&i.element.queue("tabs",function(){s(r,v)});i.element.queue("tabs",function(){p(r,w)});i.load(i.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier."; +b.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(d){if(typeof d=="string")d=this.anchors.index(this.anchors.filter("[href$="+d+"]"));return d},destroy:function(){var d=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var h= +b.data(this,"href.tabs");if(h)this.href=h;var i=b(this).unbind(".tabs");b.each(["href","load","cache"],function(j,n){i.removeData(n+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){b.data(this,"destroy.tabs")?b(this).remove():b(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});d.cookie&&this._cookie(null,d.cookie);return this},add:function(d, +h,i){if(i===c)i=this.anchors.length;var j=this,n=this.options;h=b(n.tabTemplate.replace(/#\{href\}/g,d).replace(/#\{label\}/g,h));d=!d.indexOf("#")?d.replace("#",""):this._tabId(b("a",h)[0]);h.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var q=j.element.find("#"+d);q.length||(q=b(n.panelTemplate).attr("id",d).data("destroy.tabs",true));q.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(i>=this.lis.length){h.appendTo(this.list);q.appendTo(this.list[0].parentNode)}else{h.insertBefore(this.lis[i]); +q.insertBefore(this.panels[i])}n.disabled=b.map(n.disabled,function(l){return l>=i?++l:l});this._tabify();if(this.anchors.length==1){n.selected=0;h.addClass("ui-tabs-selected ui-state-active");q.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){j._trigger("show",null,j._ui(j.anchors[0],j.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[i],this.panels[i]));return this},remove:function(d){d=this._getIndex(d);var h=this.options,i=this.lis.eq(d).remove(),j=this.panels.eq(d).remove(); +if(i.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(d+(d+1=d?--n:n});this._tabify();this._trigger("remove",null,this._ui(i.find("a")[0],j[0]));return this},enable:function(d){d=this._getIndex(d);var h=this.options;if(b.inArray(d,h.disabled)!=-1){this.lis.eq(d).removeClass("ui-state-disabled");h.disabled=b.grep(h.disabled,function(i){return i!=d});this._trigger("enable",null, +this._ui(this.anchors[d],this.panels[d]));return this}},disable:function(d){d=this._getIndex(d);var h=this.options;if(d!=h.selected){this.lis.eq(d).addClass("ui-state-disabled");h.disabled.push(d);h.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[d],this.panels[d]))}return this},select:function(d){d=this._getIndex(d);if(d==-1)if(this.options.collapsible&&this.options.selected!=-1)d=this.options.selected;else return this;this.anchors.eq(d).trigger(this.options.event+".tabs");return this}, +load:function(d){d=this._getIndex(d);var h=this,i=this.options,j=this.anchors.eq(d)[0],n=b.data(j,"load.tabs");this.abort();if(!n||this.element.queue("tabs").length!==0&&b.data(j,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(d).addClass("ui-state-processing");if(i.spinner){var q=b("span",j);q.data("label.tabs",q.html()).html(i.spinner)}this.xhr=b.ajax(b.extend({},i.ajaxOptions,{url:n,success:function(l,k){h.element.find(h._sanitizeSelector(j.hash)).html(l);h._cleanup();i.cache&&b.data(j, +"cache.tabs",true);h._trigger("load",null,h._ui(h.anchors[d],h.panels[d]));try{i.ajaxOptions.success(l,k)}catch(m){}},error:function(l,k){h._cleanup();h._trigger("load",null,h._ui(h.anchors[d],h.panels[d]));try{i.ajaxOptions.error(l,k,d,j)}catch(m){}}}));h.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this}, +url:function(d,h){this.anchors.eq(d).removeData("cache.tabs").data("load.tabs",h);return this},length:function(){return this.anchors.length}});b.extend(b.ui.tabs,{version:"1.8.7"});b.extend(b.ui.tabs.prototype,{rotation:null,rotate:function(d,h){var i=this,j=this.options,n=i._rotate||(i._rotate=function(q){clearTimeout(i.rotation);i.rotation=setTimeout(function(){var l=j.selected;i.select(++l 1 && String(value) !== "[object Object]") { + options = jQuery.extend({}, options); + + if (value === null || value === undefined) { + options.expires = -1; + } + + if (typeof options.expires === 'number') { + var days = options.expires, t = options.expires = new Date(); + t.setDate(t.getDate() + days); + } + + value = String(value); + + return (document.cookie = [ + encodeURIComponent(key), '=', + options.raw ? value : encodeURIComponent(value), + options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE + options.path ? '; path=' + options.path : '', + options.domain ? '; domain=' + options.domain : '', + options.secure ? '; secure' : '' + ].join('')); + } + + // key and possibly options given, get cookie... + options = value || {}; + var result, decode = options.raw ? function (s) { return s; } : decodeURIComponent; + return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null; +}; diff --git a/web/0.3.4/scripts/jquery.easing.1.3.js b/web/0.3.4/scripts/jquery.easing.1.3.js new file mode 100644 index 0000000..ef74321 --- /dev/null +++ b/web/0.3.4/scripts/jquery.easing.1.3.js @@ -0,0 +1,205 @@ +/* + * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ + * + * Uses the built in easing capabilities added In jQuery 1.1 + * to offer multiple easing options + * + * TERMS OF USE - jQuery Easing + * + * Open source under the BSD License. + * + * Copyright © 2008 George McGinley Smith + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * Neither the name of the author nor the names of contributors may be used to endorse + * or promote products derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +// t: current time, b: begInnIng value, c: change In value, d: duration +jQuery.easing['jswing'] = jQuery.easing['swing']; + +jQuery.extend( jQuery.easing, +{ + def: 'easeOutQuad', + swing: function (x, t, b, c, d) { + //alert(jQuery.easing.default); + return jQuery.easing[jQuery.easing.def](x, t, b, c, d); + }, + easeInQuad: function (x, t, b, c, d) { + return c*(t/=d)*t + b; + }, + easeOutQuad: function (x, t, b, c, d) { + return -c *(t/=d)*(t-2) + b; + }, + easeInOutQuad: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t + b; + return -c/2 * ((--t)*(t-2) - 1) + b; + }, + easeInCubic: function (x, t, b, c, d) { + return c*(t/=d)*t*t + b; + }, + easeOutCubic: function (x, t, b, c, d) { + return c*((t=t/d-1)*t*t + 1) + b; + }, + easeInOutCubic: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t + b; + return c/2*((t-=2)*t*t + 2) + b; + }, + easeInQuart: function (x, t, b, c, d) { + return c*(t/=d)*t*t*t + b; + }, + easeOutQuart: function (x, t, b, c, d) { + return -c * ((t=t/d-1)*t*t*t - 1) + b; + }, + easeInOutQuart: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t*t + b; + return -c/2 * ((t-=2)*t*t*t - 2) + b; + }, + easeInQuint: function (x, t, b, c, d) { + return c*(t/=d)*t*t*t*t + b; + }, + easeOutQuint: function (x, t, b, c, d) { + return c*((t=t/d-1)*t*t*t*t + 1) + b; + }, + easeInOutQuint: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b; + return c/2*((t-=2)*t*t*t*t + 2) + b; + }, + easeInSine: function (x, t, b, c, d) { + return -c * Math.cos(t/d * (Math.PI/2)) + c + b; + }, + easeOutSine: function (x, t, b, c, d) { + return c * Math.sin(t/d * (Math.PI/2)) + b; + }, + easeInOutSine: function (x, t, b, c, d) { + return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; + }, + easeInExpo: function (x, t, b, c, d) { + return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b; + }, + easeOutExpo: function (x, t, b, c, d) { + return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; + }, + easeInOutExpo: function (x, t, b, c, d) { + if (t==0) return b; + if (t==d) return b+c; + if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b; + return c/2 * (-Math.pow(2, -10 * --t) + 2) + b; + }, + easeInCirc: function (x, t, b, c, d) { + return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b; + }, + easeOutCirc: function (x, t, b, c, d) { + return c * Math.sqrt(1 - (t=t/d-1)*t) + b; + }, + easeInOutCirc: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b; + return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b; + }, + easeInElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; + }, + easeOutElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; + }, + easeInOutElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5); + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; + return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; + }, + easeInBack: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + return c*(t/=d)*t*((s+1)*t - s) + b; + }, + easeOutBack: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; + }, + easeInOutBack: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; + return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; + }, + easeInBounce: function (x, t, b, c, d) { + return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b; + }, + easeOutBounce: function (x, t, b, c, d) { + if ((t/=d) < (1/2.75)) { + return c*(7.5625*t*t) + b; + } else if (t < (2/2.75)) { + return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; + } else if (t < (2.5/2.75)) { + return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; + } else { + return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; + } + }, + easeInOutBounce: function (x, t, b, c, d) { + if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b; + return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b; + } +}); + +/* + * + * TERMS OF USE - EASING EQUATIONS + * + * Open source under the BSD License. + * + * Copyright © 2001 Robert Penner + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * Neither the name of the author nor the names of contributors may be used to endorse + * or promote products derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ \ No newline at end of file diff --git a/web/0.3.4/scripts/jquery.fancybox-1.3.4.js b/web/0.3.4/scripts/jquery.fancybox-1.3.4.js new file mode 100755 index 0000000..be77275 --- /dev/null +++ b/web/0.3.4/scripts/jquery.fancybox-1.3.4.js @@ -0,0 +1,1156 @@ +/* + * FancyBox - jQuery Plugin + * Simple and fancy lightbox alternative + * + * Examples and documentation at: http://fancybox.net + * + * Copyright (c) 2008 - 2010 Janis Skarnelis + * That said, it is hardly a one-person project. Many people have submitted bugs, code, and offered their advice freely. Their support is greatly appreciated. + * + * Version: 1.3.4 (11/11/2010) + * Requires: jQuery v1.3+ + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + */ + +;(function($) { + var tmp, loading, overlay, wrap, outer, content, close, title, nav_left, nav_right, + + selectedIndex = 0, selectedOpts = {}, selectedArray = [], currentIndex = 0, currentOpts = {}, currentArray = [], + + ajaxLoader = null, imgPreloader = new Image(), imgRegExp = /\.(jpg|gif|png|bmp|jpeg)(.*)?$/i, swfRegExp = /[^\.]\.(swf)\s*$/i, + + loadingTimer, loadingFrame = 1, + + titleHeight = 0, titleStr = '', start_pos, final_pos, busy = false, fx = $.extend($('
      ')[0], { prop: 0 }), + + isIE6 = $.browser.msie && $.browser.version < 7 && !window.XMLHttpRequest, + + /* + * Private methods + */ + + _abort = function() { + loading.hide(); + + imgPreloader.onerror = imgPreloader.onload = null; + + if (ajaxLoader) { + ajaxLoader.abort(); + } + + tmp.empty(); + }, + + _error = function() { + if (false === selectedOpts.onError(selectedArray, selectedIndex, selectedOpts)) { + loading.hide(); + busy = false; + return; + } + + selectedOpts.titleShow = false; + + selectedOpts.width = 'auto'; + selectedOpts.height = 'auto'; + + tmp.html( '

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

      ' ); + + _process_inline(); + }, + + _start = function() { + var obj = selectedArray[ selectedIndex ], + href, + type, + title, + str, + emb, + ret; + + _abort(); + + selectedOpts = $.extend({}, $.fn.fancybox.defaults, (typeof $(obj).data('fancybox') == 'undefined' ? selectedOpts : $(obj).data('fancybox'))); + + ret = selectedOpts.onStart(selectedArray, selectedIndex, selectedOpts); + + if (ret === false) { + busy = false; + return; + } else if (typeof ret == 'object') { + selectedOpts = $.extend(selectedOpts, ret); + } + + title = selectedOpts.title || (obj.nodeName ? $(obj).attr('title') : obj.title) || ''; + + if (obj.nodeName && !selectedOpts.orig) { + selectedOpts.orig = $(obj).children("img:first").length ? $(obj).children("img:first") : $(obj); + } + + if (title === '' && selectedOpts.orig && selectedOpts.titleFromAlt) { + title = selectedOpts.orig.attr('alt'); + } + + href = selectedOpts.href || (obj.nodeName ? $(obj).attr('href') : obj.href) || null; + + if ((/^(?:javascript)/i).test(href) || href == '#') { + href = null; + } + + if (selectedOpts.type) { + type = selectedOpts.type; + + if (!href) { + href = selectedOpts.content; + } + + } else if (selectedOpts.content) { + type = 'html'; + + } else if (href) { + if (href.match(imgRegExp)) { + type = 'image'; + + } else if (href.match(swfRegExp)) { + type = 'swf'; + + } else if ($(obj).hasClass("iframe")) { + type = 'iframe'; + + } else if (href.indexOf("#") === 0) { + type = 'inline'; + + } else { + type = 'ajax'; + } + } + + if (!type) { + _error(); + return; + } + + if (type == 'inline') { + obj = href.substr(href.indexOf("#")); + type = $(obj).length > 0 ? 'inline' : 'ajax'; + } + + selectedOpts.type = type; + selectedOpts.href = href; + selectedOpts.title = title; + + if (selectedOpts.autoDimensions) { + if (selectedOpts.type == 'html' || selectedOpts.type == 'inline' || selectedOpts.type == 'ajax') { + selectedOpts.width = 'auto'; + selectedOpts.height = 'auto'; + } else { + selectedOpts.autoDimensions = false; + } + } + + if (selectedOpts.modal) { + selectedOpts.overlayShow = true; + selectedOpts.hideOnOverlayClick = false; + selectedOpts.hideOnContentClick = false; + selectedOpts.enableEscapeButton = false; + selectedOpts.showCloseButton = false; + } + + selectedOpts.padding = parseInt(selectedOpts.padding, 10); + selectedOpts.margin = parseInt(selectedOpts.margin, 10); + + tmp.css('padding', (selectedOpts.padding + selectedOpts.margin)); + + $('.fancybox-inline-tmp').unbind('fancybox-cancel').bind('fancybox-change', function() { + $(this).replaceWith(content.children()); + }); + + switch (type) { + case 'html' : + tmp.html( selectedOpts.content ); + _process_inline(); + break; + + case 'inline' : + if ( $(obj).parent().is('#fancybox-content') === true) { + busy = false; + return; + } + + $('
      ') + .hide() + .insertBefore( $(obj) ) + .bind('fancybox-cleanup', function() { + $(this).replaceWith(content.children()); + }).bind('fancybox-cancel', function() { + $(this).replaceWith(tmp.children()); + }); + + $(obj).appendTo(tmp); + + _process_inline(); + break; + + case 'image': + busy = false; + + $.fancybox.showActivity(); + + imgPreloader = new Image(); + + imgPreloader.onerror = function() { + _error(); + }; + + imgPreloader.onload = function() { + busy = true; + + imgPreloader.onerror = imgPreloader.onload = null; + + _process_image(); + }; + + imgPreloader.src = href; + break; + + case 'swf': + selectedOpts.scrolling = 'no'; + + str = ''; + emb = ''; + + $.each(selectedOpts.swf, function(name, val) { + str += ''; + emb += ' ' + name + '="' + val + '"'; + }); + + str += ''; + + tmp.html(str); + + _process_inline(); + break; + + case 'ajax': + busy = false; + + $.fancybox.showActivity(); + + selectedOpts.ajax.win = selectedOpts.ajax.success; + + ajaxLoader = $.ajax($.extend({}, selectedOpts.ajax, { + url : href, + data : selectedOpts.ajax.data || {}, + error : function(XMLHttpRequest, textStatus, errorThrown) { + if ( XMLHttpRequest.status > 0 ) { + _error(); + } + }, + success : function(data, textStatus, XMLHttpRequest) { + var o = typeof XMLHttpRequest == 'object' ? XMLHttpRequest : ajaxLoader; + if (o.status == 200) { + if ( typeof selectedOpts.ajax.win == 'function' ) { + ret = selectedOpts.ajax.win(href, data, textStatus, XMLHttpRequest); + + if (ret === false) { + loading.hide(); + return; + } else if (typeof ret == 'string' || typeof ret == 'object') { + data = ret; + } + } + + tmp.html( data ); + _process_inline(); + } + } + })); + + break; + + case 'iframe': + _show(); + break; + } + }, + + _process_inline = function() { + var + w = selectedOpts.width, + h = selectedOpts.height; + + if (w.toString().indexOf('%') > -1) { + w = parseInt( ($(window).width() - (selectedOpts.margin * 2)) * parseFloat(w) / 100, 10) + 'px'; + + } else { + w = w == 'auto' ? 'auto' : w + 'px'; + } + + if (h.toString().indexOf('%') > -1) { + h = parseInt( ($(window).height() - (selectedOpts.margin * 2)) * parseFloat(h) / 100, 10) + 'px'; + + } else { + h = h == 'auto' ? 'auto' : h + 'px'; + } + + tmp.wrapInner('
      '); + + selectedOpts.width = tmp.width(); + selectedOpts.height = tmp.height(); + + _show(); + }, + + _process_image = function() { + selectedOpts.width = imgPreloader.width; + selectedOpts.height = imgPreloader.height; + + $("").attr({ + 'id' : 'fancybox-img', + 'src' : imgPreloader.src, + 'alt' : selectedOpts.title + }).appendTo( tmp ); + + _show(); + }, + + _show = function() { + var pos, equal; + + loading.hide(); + + if (wrap.is(":visible") && false === currentOpts.onCleanup(currentArray, currentIndex, currentOpts)) { + $.event.trigger('fancybox-cancel'); + + busy = false; + return; + } + + busy = true; + + $(content.add( overlay )).unbind(); + + $(window).unbind("resize.fb scroll.fb"); + $(document).unbind('keydown.fb'); + + if (wrap.is(":visible") && currentOpts.titlePosition !== 'outside') { + wrap.css('height', wrap.height()); + } + + currentArray = selectedArray; + currentIndex = selectedIndex; + currentOpts = selectedOpts; + + if (currentOpts.overlayShow) { + overlay.css({ + 'background-color' : currentOpts.overlayColor, + 'opacity' : currentOpts.overlayOpacity, + 'cursor' : currentOpts.hideOnOverlayClick ? 'pointer' : 'auto', + 'height' : $(document).height() + }); + + if (!overlay.is(':visible')) { + if (isIE6) { + $('select:not(#fancybox-tmp select)').filter(function() { + return this.style.visibility !== 'hidden'; + }).css({'visibility' : 'hidden'}).one('fancybox-cleanup', function() { + this.style.visibility = 'inherit'; + }); + } + + overlay.show(); + } + } else { + overlay.hide(); + } + + final_pos = _get_zoom_to(); + + _process_title(); + + if (wrap.is(":visible")) { + $( close.add( nav_left ).add( nav_right ) ).hide(); + + pos = wrap.position(), + + start_pos = { + top : pos.top, + left : pos.left, + width : wrap.width(), + height : wrap.height() + }; + + equal = (start_pos.width == final_pos.width && start_pos.height == final_pos.height); + + content.fadeTo(currentOpts.changeFade, 0.3, function() { + var finish_resizing = function() { + content.html( tmp.contents() ).fadeTo(currentOpts.changeFade, 1, _finish); + }; + + $.event.trigger('fancybox-change'); + + content + .empty() + .removeAttr('filter') + .css({ + 'border-width' : currentOpts.padding, + 'width' : final_pos.width - currentOpts.padding * 2, + 'height' : selectedOpts.autoDimensions ? 'auto' : final_pos.height - titleHeight - currentOpts.padding * 2 + }); + + if (equal) { + finish_resizing(); + + } else { + fx.prop = 0; + + $(fx).animate({prop: 1}, { + duration : currentOpts.changeSpeed, + easing : currentOpts.easingChange, + step : _draw, + complete : finish_resizing + }); + } + }); + + return; + } + + wrap.removeAttr("style"); + + content.css('border-width', currentOpts.padding); + + if (currentOpts.transitionIn == 'elastic') { + start_pos = _get_zoom_from(); + + content.html( tmp.contents() ); + + wrap.show(); + + if (currentOpts.opacity) { + final_pos.opacity = 0; + } + + fx.prop = 0; + + $(fx).animate({prop: 1}, { + duration : currentOpts.speedIn, + easing : currentOpts.easingIn, + step : _draw, + complete : _finish + }); + + return; + } + + if (currentOpts.titlePosition == 'inside' && titleHeight > 0) { + title.show(); + } + + content + .css({ + 'width' : final_pos.width - currentOpts.padding * 2, + 'height' : selectedOpts.autoDimensions ? 'auto' : final_pos.height - titleHeight - currentOpts.padding * 2 + }) + .html( tmp.contents() ); + + wrap + .css(final_pos) + .fadeIn( currentOpts.transitionIn == 'none' ? 0 : currentOpts.speedIn, _finish ); + }, + + _format_title = function(title) { + if (title && title.length) { + if (currentOpts.titlePosition == 'float') { + return '
      ' + title + '
      '; + } + + return '
      ' + title + '
      '; + } + + return false; + }, + + _process_title = function() { + titleStr = currentOpts.title || ''; + titleHeight = 0; + + title + .empty() + .removeAttr('style') + .removeClass(); + + if (currentOpts.titleShow === false) { + title.hide(); + return; + } + + titleStr = $.isFunction(currentOpts.titleFormat) ? currentOpts.titleFormat(titleStr, currentArray, currentIndex, currentOpts) : _format_title(titleStr); + + if (!titleStr || titleStr === '') { + title.hide(); + return; + } + + title + .addClass('fancybox-title-' + currentOpts.titlePosition) + .html( titleStr ) + .appendTo( 'body' ) + .show(); + + switch (currentOpts.titlePosition) { + case 'inside': + title + .css({ + 'width' : final_pos.width - (currentOpts.padding * 2), + 'marginLeft' : currentOpts.padding, + 'marginRight' : currentOpts.padding + }); + + titleHeight = title.outerHeight(true); + + title.appendTo( outer ); + + final_pos.height += titleHeight; + break; + + case 'over': + title + .css({ + 'marginLeft' : currentOpts.padding, + 'width' : final_pos.width - (currentOpts.padding * 2), + 'bottom' : currentOpts.padding + }) + .appendTo( outer ); + break; + + case 'float': + title + .css('left', parseInt((title.width() - final_pos.width - 40)/ 2, 10) * -1) + .appendTo( wrap ); + break; + + default: + title + .css({ + 'width' : final_pos.width - (currentOpts.padding * 2), + 'paddingLeft' : currentOpts.padding, + 'paddingRight' : currentOpts.padding + }) + .appendTo( wrap ); + break; + } + + title.hide(); + }, + + _set_navigation = function() { + if (currentOpts.enableEscapeButton || currentOpts.enableKeyboardNav) { + $(document).bind('keydown.fb', function(e) { + if (e.keyCode == 27 && currentOpts.enableEscapeButton) { + e.preventDefault(); + $.fancybox.close(); + + } else if ((e.keyCode == 37 || e.keyCode == 39) && currentOpts.enableKeyboardNav && e.target.tagName !== 'INPUT' && e.target.tagName !== 'TEXTAREA' && e.target.tagName !== 'SELECT') { + e.preventDefault(); + $.fancybox[ e.keyCode == 37 ? 'prev' : 'next'](); + } + }); + } + + if (!currentOpts.showNavArrows) { + nav_left.hide(); + nav_right.hide(); + return; + } + + if ((currentOpts.cyclic && currentArray.length > 1) || currentIndex !== 0) { + nav_left.show(); + } + + if ((currentOpts.cyclic && currentArray.length > 1) || currentIndex != (currentArray.length -1)) { + nav_right.show(); + } + }, + + _finish = function () { + if (!$.support.opacity) { + content.get(0).style.removeAttribute('filter'); + wrap.get(0).style.removeAttribute('filter'); + } + + if (selectedOpts.autoDimensions) { + content.css('height', 'auto'); + } + + wrap.css('height', 'auto'); + + if (titleStr && titleStr.length) { + title.show(); + } + + if (currentOpts.showCloseButton) { + close.show(); + } + + _set_navigation(); + + if (currentOpts.hideOnContentClick) { + content.bind('click', $.fancybox.close); + } + + if (currentOpts.hideOnOverlayClick) { + overlay.bind('click', $.fancybox.close); + } + + $(window).bind("resize.fb", $.fancybox.resize); + + if (currentOpts.centerOnScroll) { + $(window).bind("scroll.fb", $.fancybox.center); + } + + if (currentOpts.type == 'iframe') { + $('').appendTo(content); + } + + wrap.show(); + + busy = false; + + $.fancybox.center(); + + currentOpts.onComplete(currentArray, currentIndex, currentOpts); + + _preload_images(); + }, + + _preload_images = function() { + var href, + objNext; + + if ((currentArray.length -1) > currentIndex) { + href = currentArray[ currentIndex + 1 ].href; + + if (typeof href !== 'undefined' && href.match(imgRegExp)) { + objNext = new Image(); + objNext.src = href; + } + } + + if (currentIndex > 0) { + href = currentArray[ currentIndex - 1 ].href; + + if (typeof href !== 'undefined' && href.match(imgRegExp)) { + objNext = new Image(); + objNext.src = href; + } + } + }, + + _draw = function(pos) { + var dim = { + width : parseInt(start_pos.width + (final_pos.width - start_pos.width) * pos, 10), + height : parseInt(start_pos.height + (final_pos.height - start_pos.height) * pos, 10), + + top : parseInt(start_pos.top + (final_pos.top - start_pos.top) * pos, 10), + left : parseInt(start_pos.left + (final_pos.left - start_pos.left) * pos, 10) + }; + + if (typeof final_pos.opacity !== 'undefined') { + dim.opacity = pos < 0.5 ? 0.5 : pos; + } + + wrap.css(dim); + + content.css({ + 'width' : dim.width - currentOpts.padding * 2, + 'height' : dim.height - (titleHeight * pos) - currentOpts.padding * 2 + }); + }, + + _get_viewport = function() { + return [ + $(window).width() - (currentOpts.margin * 2), + $(window).height() - (currentOpts.margin * 2), + $(document).scrollLeft() + currentOpts.margin, + $(document).scrollTop() + currentOpts.margin + ]; + }, + + _get_zoom_to = function () { + var view = _get_viewport(), + to = {}, + resize = currentOpts.autoScale, + double_padding = currentOpts.padding * 2, + ratio; + + if (currentOpts.width.toString().indexOf('%') > -1) { + to.width = parseInt((view[0] * parseFloat(currentOpts.width)) / 100, 10); + } else { + to.width = currentOpts.width + double_padding; + } + + if (currentOpts.height.toString().indexOf('%') > -1) { + to.height = parseInt((view[1] * parseFloat(currentOpts.height)) / 100, 10); + } else { + to.height = currentOpts.height + double_padding; + } + + if (resize && (to.width > view[0] || to.height > view[1])) { + if (selectedOpts.type == 'image' || selectedOpts.type == 'swf') { + ratio = (currentOpts.width ) / (currentOpts.height ); + + if ((to.width ) > view[0]) { + to.width = view[0]; + to.height = parseInt(((to.width - double_padding) / ratio) + double_padding, 10); + } + + if ((to.height) > view[1]) { + to.height = view[1]; + to.width = parseInt(((to.height - double_padding) * ratio) + double_padding, 10); + } + + } else { + to.width = Math.min(to.width, view[0]); + to.height = Math.min(to.height, view[1]); + } + } + + to.top = parseInt(Math.max(view[3] - 20, view[3] + ((view[1] - to.height - 40) * 0.5)), 10); + to.left = parseInt(Math.max(view[2] - 20, view[2] + ((view[0] - to.width - 40) * 0.5)), 10); + + return to; + }, + + _get_obj_pos = function(obj) { + var pos = obj.offset(); + + pos.top += parseInt( obj.css('paddingTop'), 10 ) || 0; + pos.left += parseInt( obj.css('paddingLeft'), 10 ) || 0; + + pos.top += parseInt( obj.css('border-top-width'), 10 ) || 0; + pos.left += parseInt( obj.css('border-left-width'), 10 ) || 0; + + pos.width = obj.width(); + pos.height = obj.height(); + + return pos; + }, + + _get_zoom_from = function() { + var orig = selectedOpts.orig ? $(selectedOpts.orig) : false, + from = {}, + pos, + view; + + if (orig && orig.length) { + pos = _get_obj_pos(orig); + + from = { + width : pos.width + (currentOpts.padding * 2), + height : pos.height + (currentOpts.padding * 2), + top : pos.top - currentOpts.padding - 20, + left : pos.left - currentOpts.padding - 20 + }; + + } else { + view = _get_viewport(); + + from = { + width : currentOpts.padding * 2, + height : currentOpts.padding * 2, + top : parseInt(view[3] + view[1] * 0.5, 10), + left : parseInt(view[2] + view[0] * 0.5, 10) + }; + } + + return from; + }, + + _animate_loading = function() { + if (!loading.is(':visible')){ + clearInterval(loadingTimer); + return; + } + + $('div', loading).css('top', (loadingFrame * -40) + 'px'); + + loadingFrame = (loadingFrame + 1) % 12; + }; + + /* + * Public methods + */ + + $.fn.fancybox = function(options) { + if (!$(this).length) { + return this; + } + + $(this) + .data('fancybox', $.extend({}, options, ($.metadata ? $(this).metadata() : {}))) + .unbind('click.fb') + .bind('click.fb', function(e) { + e.preventDefault(); + + if (busy) { + return; + } + + busy = true; + + $(this).blur(); + + selectedArray = []; + selectedIndex = 0; + + var rel = $(this).attr('rel') || ''; + + if (!rel || rel == '' || rel === 'nofollow') { + selectedArray.push(this); + + } else { + selectedArray = $("a[rel=" + rel + "], area[rel=" + rel + "]"); + selectedIndex = selectedArray.index( this ); + } + + _start(); + + return; + }); + + return this; + }; + + $.fancybox = function(obj) { + var opts; + + if (busy) { + return; + } + + busy = true; + opts = typeof arguments[1] !== 'undefined' ? arguments[1] : {}; + + selectedArray = []; + selectedIndex = parseInt(opts.index, 10) || 0; + + if ($.isArray(obj)) { + for (var i = 0, j = obj.length; i < j; i++) { + if (typeof obj[i] == 'object') { + $(obj[i]).data('fancybox', $.extend({}, opts, obj[i])); + } else { + obj[i] = $({}).data('fancybox', $.extend({content : obj[i]}, opts)); + } + } + + selectedArray = jQuery.merge(selectedArray, obj); + + } else { + if (typeof obj == 'object') { + $(obj).data('fancybox', $.extend({}, opts, obj)); + } else { + obj = $({}).data('fancybox', $.extend({content : obj}, opts)); + } + + selectedArray.push(obj); + } + + if (selectedIndex > selectedArray.length || selectedIndex < 0) { + selectedIndex = 0; + } + + _start(); + }; + + $.fancybox.showActivity = function() { + clearInterval(loadingTimer); + + loading.show(); + loadingTimer = setInterval(_animate_loading, 66); + }; + + $.fancybox.hideActivity = function() { + loading.hide(); + }; + + $.fancybox.next = function() { + return $.fancybox.pos( currentIndex + 1); + }; + + $.fancybox.prev = function() { + return $.fancybox.pos( currentIndex - 1); + }; + + $.fancybox.pos = function(pos) { + if (busy) { + return; + } + + pos = parseInt(pos); + + selectedArray = currentArray; + + if (pos > -1 && pos < currentArray.length) { + selectedIndex = pos; + _start(); + + } else if (currentOpts.cyclic && currentArray.length > 1) { + selectedIndex = pos >= currentArray.length ? 0 : currentArray.length - 1; + _start(); + } + + return; + }; + + $.fancybox.cancel = function() { + if (busy) { + return; + } + + busy = true; + + $.event.trigger('fancybox-cancel'); + + _abort(); + + selectedOpts.onCancel(selectedArray, selectedIndex, selectedOpts); + + busy = false; + }; + + // Note: within an iframe use - parent.$.fancybox.close(); + $.fancybox.close = function() { + if (busy || wrap.is(':hidden')) { + return; + } + + busy = true; + + if (currentOpts && false === currentOpts.onCleanup(currentArray, currentIndex, currentOpts)) { + busy = false; + return; + } + + _abort(); + + $(close.add( nav_left ).add( nav_right )).hide(); + + $(content.add( overlay )).unbind(); + + $(window).unbind("resize.fb scroll.fb"); + $(document).unbind('keydown.fb'); + + content.find('iframe').attr('src', isIE6 && /^https/i.test(window.location.href || '') ? 'javascript:void(false)' : 'about:blank'); + + if (currentOpts.titlePosition !== 'inside') { + title.empty(); + } + + wrap.stop(); + + function _cleanup() { + overlay.fadeOut('fast'); + + title.empty().hide(); + wrap.hide(); + + $.event.trigger('fancybox-cleanup'); + + content.empty(); + + currentOpts.onClosed(currentArray, currentIndex, currentOpts); + + currentArray = selectedOpts = []; + currentIndex = selectedIndex = 0; + currentOpts = selectedOpts = {}; + + busy = false; + } + + if (currentOpts.transitionOut == 'elastic') { + start_pos = _get_zoom_from(); + + var pos = wrap.position(); + + final_pos = { + top : pos.top , + left : pos.left, + width : wrap.width(), + height : wrap.height() + }; + + if (currentOpts.opacity) { + final_pos.opacity = 1; + } + + title.empty().hide(); + + fx.prop = 1; + + $(fx).animate({ prop: 0 }, { + duration : currentOpts.speedOut, + easing : currentOpts.easingOut, + step : _draw, + complete : _cleanup + }); + + } else { + wrap.fadeOut( currentOpts.transitionOut == 'none' ? 0 : currentOpts.speedOut, _cleanup); + } + }; + + $.fancybox.resize = function() { + if (overlay.is(':visible')) { + overlay.css('height', $(document).height()); + } + + $.fancybox.center(true); + }; + + $.fancybox.center = function() { + var view, align; + + if (busy) { + return; + } + + align = arguments[0] === true ? 1 : 0; + view = _get_viewport(); + + if (!align && (wrap.width() > view[0] || wrap.height() > view[1])) { + return; + } + + wrap + .stop() + .animate({ + 'top' : parseInt(Math.max(view[3] - 20, view[3] + ((view[1] - content.height() - 40) * 0.5) - currentOpts.padding)), + 'left' : parseInt(Math.max(view[2] - 20, view[2] + ((view[0] - content.width() - 40) * 0.5) - currentOpts.padding)) + }, typeof arguments[0] == 'number' ? arguments[0] : 200); + }; + + $.fancybox.init = function() { + if ($("#fancybox-wrap").length) { + return; + } + + $('body').append( + tmp = $('
      '), + loading = $('
      '), + overlay = $('
      '), + wrap = $('
      ') + ); + + outer = $('
      ') + .append('
      ') + .appendTo( wrap ); + + outer.append( + content = $('
      '), + close = $(''), + title = $('
      '), + + nav_left = $(''), + nav_right = $('') + ); + + close.click($.fancybox.close); + loading.click($.fancybox.cancel); + + nav_left.click(function(e) { + e.preventDefault(); + $.fancybox.prev(); + }); + + nav_right.click(function(e) { + e.preventDefault(); + $.fancybox.next(); + }); + + if ($.fn.mousewheel) { + wrap.bind('mousewheel.fb', function(e, delta) { + if (busy) { + e.preventDefault(); + + } else if ($(e.target).get(0).clientHeight == 0 || $(e.target).get(0).scrollHeight === $(e.target).get(0).clientHeight) { + e.preventDefault(); + $.fancybox[ delta > 0 ? 'prev' : 'next'](); + } + }); + } + + if (!$.support.opacity) { + wrap.addClass('fancybox-ie'); + } + + if (isIE6) { + loading.addClass('fancybox-ie6'); + wrap.addClass('fancybox-ie6'); + + $('').prependTo(outer); + } + }; + + $.fn.fancybox.defaults = { + padding : 10, + margin : 40, + opacity : false, + modal : false, + cyclic : false, + scrolling : 'auto', // 'auto', 'yes' or 'no' + + width : 560, + height : 340, + + autoScale : true, + autoDimensions : true, + centerOnScroll : false, + + ajax : {}, + swf : { wmode: 'transparent' }, + + hideOnOverlayClick : true, + hideOnContentClick : false, + + overlayShow : true, + overlayOpacity : 0.7, + overlayColor : '#777', + + titleShow : true, + titlePosition : 'float', // 'float', 'outside', 'inside' or 'over' + titleFormat : null, + titleFromAlt : false, + + transitionIn : 'fade', // 'elastic', 'fade' or 'none' + transitionOut : 'fade', // 'elastic', 'fade' or 'none' + + speedIn : 300, + speedOut : 300, + + changeSpeed : 300, + changeFade : 'fast', + + easingIn : 'swing', + easingOut : 'swing', + + showCloseButton : true, + showNavArrows : true, + enableEscapeButton : true, + enableKeyboardNav : true, + + onStart : function(){}, + onCancel : function(){}, + onComplete : function(){}, + onCleanup : function(){}, + onClosed : function(){}, + onError : function(){} + }; + + $(document).ready(function() { + $.fancybox.init(); + }); + +})(jQuery); \ No newline at end of file diff --git a/web/0.3.4/scripts/jquery.masonry.js b/web/0.3.4/scripts/jquery.masonry.js new file mode 100644 index 0000000..fbf8425 --- /dev/null +++ b/web/0.3.4/scripts/jquery.masonry.js @@ -0,0 +1,308 @@ +/************************************************* +** jQuery Masonry version 1.2.0 +** copyright David DeSandro, licensed GPL & MIT +** http://desandro.com/resources/jquery-masonry +**************************************************/ +;(function($){ + + /*! + * smartresize: debounced resize event for jQuery + * http://github.com/lrbabe/jquery-smartresize + * + * Copyright (c) 2009 Louis-Remi Babe + * Licensed under the GPL license. + * http://docs.jquery.com/License + * + */ + var event = $.event, + resizeTimeout; + + event.special[ "smartresize" ] = { + setup: function() { + $( this ).bind( "resize", event.special.smartresize.handler ); + }, + teardown: function() { + $( this ).unbind( "resize", event.special.smartresize.handler ); + }, + handler: function( event, execAsap ) { + // Save the context + var context = this, + args = arguments; + + // set correct event type + event.type = "smartresize"; + + if(resizeTimeout) + clearTimeout(resizeTimeout); + resizeTimeout = setTimeout(function() { + jQuery.event.handle.apply( context, args ); + }, execAsap === "execAsap"? 0 : 100); + } + }; + + $.fn.smartresize = function( fn ) { + return fn ? this.bind( "smartresize", fn ) : this.trigger( "smartresize", ["execAsap"] ); + }; + + + + // masonry code begin + $.fn.masonry = function(options, callback) { + + function getBricks(props, opts) { + props.$bricks = opts.itemSelector == undefined ? + opts.$brickParent.children() : + opts.$brickParent.find(opts.itemSelector); + } + + function placeBrick($brick, setCount, setY, setSpan, props, opts) { + var shortCol = 0; + + for ( i=0; i < setCount; i++ ) { + if ( setY[i] < setY[ shortCol ] ) shortCol = i; + } + + var position = { + left: props.colW * shortCol + props.posLeft, + top: setY[ shortCol ] + }; + + + if( props.masoned && opts.animate ) { + $brick.animate( position, { + duration: opts.animationOptions.duration, + easing: opts.animationOptions.easing, + complete: opts.animationOptions.complete, + step: opts.animationOptions.step, + queue: opts.animationOptions.queue, + specialEasing: opts.animationOptions.specialEasing + }); + } else { + $brick.css(position); + } + + for ( i=0; i < setSpan; i++ ) { + props.colY[ shortCol + i ] = setY[ shortCol ] + $brick.outerHeight(true) ; + } + }; + + + function masonrySetup($wall, opts, props) { + getBricks(props, opts); + + if ( opts.columnWidth == undefined) { + props.colW = props.masoned ? + $wall.data('masonry').colW : + props.$bricks.outerWidth(true); + } else { + props.colW = opts.columnWidth; + } + + props.colCount = Math.floor( $wall.width() / props.colW ) ; + props.colCount = Math.max( props.colCount, 1 ); + }; + + + function masonryArrange($wall, opts, props) { + // if masonry hasn't been called before + if( !props.masoned ) $wall.css( 'position', 'relative' ); + + if ( !props.masoned || opts.appendedContent != undefined ) { + // just the new bricks + props.$bricks.css( 'position', 'absolute' ); + } + + // get top left position of where the bricks should be + var cursor = $('
      '); + $wall.prepend( cursor ); + props.posTop = Math.round( cursor.position().top ); + props.posLeft = Math.round( cursor.position().left ); + cursor.remove(); + + // set up column Y array + if ( props.masoned && opts.appendedContent != undefined ) { + // if appendedContent is set, use colY from last call + props.colY = $wall.data('masonry').colY; + + /* + * in the case that the wall is not resizeable, + * but the colCount has changed from the previous time + * masonry has been called + */ + for (i= $wall.data('masonry').colCount; i < props.colCount; i++) { + props.colY[i] = props.posTop; + }; + + } else { + props.colY = []; + for ( i=0; i < props.colCount; i++) { + props.colY[i] = props.posTop; + } + } + + + // layout logic + if ( opts.singleMode ) { + props.$bricks.each(function(){ + var $brick = $(this); + placeBrick($brick, props.colCount, props.colY, 1, props, opts); + }); + } else { + props.$bricks.each(function() { + var $brick = $(this); + + //how many columns does this brick span + var colSpan = Math.ceil( $brick.outerWidth(true) / props.colW); + colSpan = Math.min( colSpan, props.colCount ); + + + if ( colSpan == 1 ) { + // if brick spans only one column, just like singleMode + placeBrick($brick, props.colCount, props.colY, 1, props, opts); + } else { + // brick spans more than one column + + //how many different places could this brick fit horizontally + var groupCount = props.colCount + 1 - colSpan; + var groupY = [0]; + // for each group potential horizontal position + for ( i=0; i < groupCount; i++ ) { + groupY[i] = 0; + // for each column in that group + for ( j=0; j < colSpan; j++ ) { + // get the maximum column height in that group + groupY[i] = Math.max( groupY[i], props.colY[i+j] ); + } + } + + placeBrick($brick, groupCount, groupY, colSpan, props, opts); + } + }); // /props.bricks.each(function() { + } // /layout logic + + // set the height of the wall to the tallest column + props.wallH = 0; + for ( i=0; i < props.colCount; i++ ) { + props.wallH = Math.max( props.wallH, props.colY[i] ); + } + var wallCSS = { height: props.wallH - props.posTop }; + // $wall.height( props.wallH - props.posTop ); + if ( props.masoned && opts.animate ) { + $wall.animate(wallCSS, { + duration: opts.animationOptions.duration, + easing: opts.animationOptions.easing, + complete: opts.animationOptions.complete, + step: opts.animationOptions.step, + queue: opts.animationOptions.queue, + specialEasing: opts.animationOptions.specialEasing + }); + } else { + $wall.css(wallCSS); + } + + // add masoned class first time around + if ( !props.masoned ) $wall.addClass('masoned'); + + // provide props.bricks as context for the callback + callback.call( props.$bricks ); + + // set all data so we can retrieve it for appended appendedContent + // or anyone else's crazy jquery fun + $wall.data('masonry', props ); + + + }; // /masonryArrange function + + + function masonryResize($wall, opts, props) { + props.masoned = $wall.data('masonry') != undefined; + var prevColCount = $wall.data('masonry').colCount; + masonrySetup($wall, opts, props); + if ( props.colCount != prevColCount ) masonryArrange($wall, opts, props); + }; + + + /* + * let's begin + * IN A WORLD... + */ + return this.each(function() { + + var $wall = $(this); + + var props = $.extend( {}, $.masonry ); + + // checks if masonry has been called before on this object + props.masoned = $wall.data('masonry') != undefined; + + var previousOptions = props.masoned ? $wall.data('masonry').options : {}; + + var opts = $.extend( + {}, + props.defaults, + previousOptions, + options + ); + + // should we save these options for next time? + props.options = opts.saveOptions ? opts : previousOptions; + + //picked up from Paul Irish + callback = callback || function(){}; + + + if ( props.masoned && opts.appendedContent != undefined ) { + // if we're dealing with appendedContent + opts.$brickParent = opts.appendedContent; + } else { + opts.$brickParent = $wall; + } + + getBricks(props, opts); + + + if ( props.$bricks.length ) { + // call masonry layout + masonrySetup($wall, opts, props); + masonryArrange($wall, opts, props); + + // binding window resizing + var resizeOn = previousOptions.resizeable; + if ( !resizeOn && opts.resizeable ) { + $(window).bind('smartresize.masonry', function() { masonryResize($wall, opts, props); } ); + } + if ( resizeOn && !opts.resizeable ) $(window).unbind('smartresize.masonry'); + } else { + // brickParent is empty, do nothing, go back home and eat chips + return this; + } + + }); // /return this.each(function() + }; // /$.fn.masonry = function(options) + + + + $.masonry = { + defaults : { + singleMode: false, + columnWidth: undefined, + itemSelector: undefined, + appendedContent: undefined, + saveOptions: true, + resizeable: true, + animate: false, + animationOptions: {} + }, + colW: undefined, + colCount: undefined, + colY: undefined, + wallH: undefined, + masoned: undefined, + posTop: 0, + posLeft: 0, + options: undefined, + $bricks: undefined, + $brickParent: undefined + }; + +})(jQuery); \ No newline at end of file diff --git a/web/0.3.4/scripts/jquery.textOverflow.js b/web/0.3.4/scripts/jquery.textOverflow.js new file mode 100644 index 0000000..6be6e62 --- /dev/null +++ b/web/0.3.4/scripts/jquery.textOverflow.js @@ -0,0 +1,108 @@ +/*! + * jQuery Text Overflow v0.7 + * + * Licensed under the new BSD License. + * Copyright 2009-2010, Bram Stein + * All rights reserved. + */ +/*global jQuery, document, setInterval*/ +(function ($) { + var style = document.documentElement.style, + hasTextOverflow = ('textOverflow' in style || 'OTextOverflow' in style), + + domSplit = function (root, maxIndex) { + var index = 0, result = [], + domSplitAux = function (nodes) { + var i = 0, tmp; + + if (index > maxIndex) { + return; + } + + for (i = 0; i < nodes.length; i += 1) { + if (nodes[i].nodeType === 1) { + tmp = nodes[i].cloneNode(false); + result[result.length - 1].appendChild(tmp); + result.push(tmp); + domSplitAux(nodes[i].childNodes); + result.pop(); + } else if (nodes[i].nodeType === 3) { + if (index + nodes[i].length < maxIndex) { + result[result.length - 1].appendChild(nodes[i].cloneNode(false)); + } else { + tmp = nodes[i].cloneNode(false); + tmp.textContent = $.trim(tmp.textContent.substring(0, maxIndex - index)); + result[result.length - 1].appendChild(tmp); + } + index += nodes[i].length; + } else { + result.appendChild(nodes[i].cloneNode(false)); + } + } + }; + result.push(root.cloneNode(false)); + domSplitAux(root.childNodes); + return $(result.pop().childNodes); + }; + + $.extend($.fn, { + textOverflow: function (str, autoUpdate) { + var more = str || '…'; + + if (!hasTextOverflow) { + return this.each(function () { + var element = $(this), + + // the clone element we modify to measure the width + clone = element.clone(), + + // we save a copy so we can restore it if necessary + originalElement = element.clone(), + originalText = element.text(), + originalWidth = element.width(), + low = 0, mid = 0, + high = originalText.length, + reflow = function () { + if (originalWidth !== element.width()) { + element.replaceWith(originalElement); + element = originalElement; + originalElement = element.clone(); + element.textOverflow(str, false); + originalWidth = element.width(); + } + }; + + element.after(clone.hide().css({ + 'position': 'absolute', + 'width': 'auto', + 'overflow': 'visible', + 'max-width': 'inherit' + })); + + if (clone.width() > originalWidth) { + while (low < high) { + mid = Math.floor(low + ((high - low) / 2)); + clone.empty().append(domSplit(originalElement.get(0), mid)).append(more); + if (clone.width() < originalWidth) { + low = mid + 1; + } else { + high = mid; + } + } + + if (low < originalText.length) { + element.empty().append(domSplit(originalElement.get(0), low - 1)).append(more); + } + } + clone.remove(); + + if (autoUpdate) { + setInterval(reflow, 200); + } + }); + } else { + return this; + } + } + }); +})(jQuery); diff --git a/web/0.3.4/scripts/jquery.tmpl.js b/web/0.3.4/scripts/jquery.tmpl.js new file mode 100644 index 0000000..936a7bf --- /dev/null +++ b/web/0.3.4/scripts/jquery.tmpl.js @@ -0,0 +1,486 @@ + /* + * jQuery Templating Plugin + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + */ +(function( jQuery, undefined ){ + var oldManip = jQuery.fn.domManip, tmplItmAtt = "_tmplitem", htmlExpr = /^[^<]*(<[\w\W]+>)[^>]*$/, + newTmplItems = {}, wrappedItems = {}, appendToTmplItems, topTmplItem = { key: 0, data: {} }, itemKey = 0, cloneIndex = 0, stack = []; + + function newTmplItem( options, parentItem, fn, data ) { + // Returns a template item data structure for a new rendered instance of a template (a 'template item'). + // The content field is a hierarchical array of strings and nested items (to be + // removed and replaced by nodes field of dom elements, once inserted in DOM). + var newItem = { + data: data || (parentItem ? parentItem.data : {}), + _wrap: parentItem ? parentItem._wrap : null, + tmpl: null, + parent: parentItem || null, + nodes: [], + calls: tiCalls, + nest: tiNest, + wrap: tiWrap, + html: tiHtml, + update: tiUpdate + }; + if ( options ) { + jQuery.extend( newItem, options, { nodes: [], parent: parentItem } ); + } + if ( fn ) { + // Build the hierarchical content to be used during insertion into DOM + newItem.tmpl = fn; + newItem._ctnt = newItem._ctnt || newItem.tmpl( jQuery, newItem ); + newItem.key = ++itemKey; + // Keep track of new template item, until it is stored as jQuery Data on DOM element + (stack.length ? wrappedItems : newTmplItems)[itemKey] = newItem; + } + return newItem; + } + + // Override appendTo etc., in order to provide support for targeting multiple elements. (This code would disappear if integrated in jquery core). + jQuery.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" + }, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var ret = [], insert = jQuery( selector ), + parent = this.length === 1 && this[0].parentNode; + + appendToTmplItems = newTmplItems || {}; + if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) { + insert[ original ]( this[0] ); + ret = this; + } else { + for ( var i = 0, l = insert.length; i < l; i++ ) { + cloneIndex = i; + var elems = (i > 0 ? this.clone(true) : this).get(); + jQuery.fn[ original ].apply( jQuery(insert[i]), elems ); + ret = ret.concat( elems ); + } + cloneIndex = 0; + ret = this.pushStack( ret, name, insert.selector ); + } + var tmplItems = appendToTmplItems; + appendToTmplItems = null; + jQuery.tmpl.complete( tmplItems ); + return ret; + }; + }); + + jQuery.fn.extend({ + // Use first wrapped element as template markup. + // Return wrapped set of template items, obtained by rendering template against data. + tmpl: function( data, options, parentItem ) { + return jQuery.tmpl( this[0], data, options, parentItem ); + }, + + // Find which rendered template item the first wrapped DOM element belongs to + tmplItem: function() { + return jQuery.tmplItem( this[0] ); + }, + + // Consider the first wrapped element as a template declaration, and get the compiled template or store it as a named template. + templates: function( name ) { + return jQuery.templates( name, this[0] ); + }, + + domManip: function( args, table, callback, options ) { + // This appears to be a bug in the appendTo, etc. implementation + // it should be doing .call() instead of .apply(). See #6227 + if ( args[0].nodeType ) { + var dmArgs = jQuery.makeArray( arguments ), argsLength = args.length, i = 0, tmplItem; + while ( i < argsLength && !(tmplItem = jQuery.data( args[i++], "tmplItem" ))) {}; + if ( argsLength > 1 ) { + dmArgs[0] = [jQuery.makeArray( args )]; + } + if ( tmplItem && cloneIndex ) { + dmArgs[2] = function( fragClone ) { + // Handler called by oldManip when rendered template has been inserted into DOM. + jQuery.tmpl.afterManip( this, fragClone, callback ); + } + } + oldManip.apply( this, dmArgs ); + } else { + oldManip.apply( this, arguments ); + } + cloneIndex = 0; + if ( !appendToTmplItems ) { + jQuery.tmpl.complete( newTmplItems ); + } + return this; + } + }); + + jQuery.extend({ + // Return wrapped set of template items, obtained by rendering template against data. + tmpl: function( tmpl, data, options, parentItem ) { + var ret, topLevel = !parentItem; + if ( topLevel ) { + // This is a top-level tmpl call (not from a nested template using {{tmpl}}) + parentItem = topTmplItem; + tmpl = jQuery.templates[tmpl] || jQuery.templates( null, tmpl ); + } else if ( !tmpl ) { + // The template item is already associated with DOM - this is a refresh. + // Re-evaluate rendered template for the parentItem + tmpl = parentItem.tmpl; + newTmplItems[parentItem.key] = parentItem; + parentItem.nodes = []; + updateWrapped( parentItem ); + // Rebuild, without creating a new template item + return jQuery( build( parentItem, null, parentItem.tmpl( jQuery, parentItem ) )); + } + if ( !tmpl ) { + return []; // Could throw... + } + if ( typeof data === "function" ) { + data = data.call( parentItem || {} ); + } + if ( options && options.wrapped ) { + // Create template item for wrapped content, without rendering template + parentItem = newTmplItem( options, parentItem, null, data ); + parentItem.key = ++itemKey; + wrappedItems[itemKey] = parentItem; + parentItem.tmpl = tmpl; + updateWrapped( parentItem ); + } + ret = jQuery.isArray( data ) ? + jQuery.map( data, function( dataItem ) { + return dataItem ? newTmplItem( options, parentItem, tmpl, dataItem ) : null; + }) : + [ newTmplItem( options, parentItem, tmpl, data ) ]; + + return topLevel ? jQuery( build( parentItem, null, ret ) ) : ret; + }, + + // Return rendered template item for an element. + tmplItem: function( elem ) { + var tmplItem; + if ( elem instanceof jQuery ) { + elem = tmpl[0]; + } + while ( elem && elem.nodeType === 1 && !(tmplItem = jQuery.data( elem, "tmplItem" )) && (elem = elem.parentNode) ) {} + return tmplItem || topTmplItem; + }, + + // Set: + // Use $.templates( name, tmpl ) to cache a named template, + // where tmpl is a template string, a script element or a jQuery instance wrapping a script element, etc. + // Use $( "selector" ).templates( name ) to provide access by name to a script block template declaration. + + // Get: + // Use $.templates( name ) to access a cached template. + // Also $( selectorToScriptBlock ).templates(), or $.templates( null, templateString ) + // will return the compiled template, without adding a name reference. + // If templateString includes at least one HTML tag, $.templates( templateString ) is equivalent + // to $.templates( null, templateString ) + templates: function( name, tmpl ) { + if (tmpl) { + // Compile template and associate with name + if ( typeof tmpl === "string" ) { + // This is an HTML string being passed directly in. + tmpl = buildTmplFn( tmpl ) + } else if ( tmpl instanceof jQuery ) { + tmpl = tmpl[0] || {}; + } + if ( tmpl.nodeType ) { + // If this is a template block, use cached copy, or generate tmpl function and cache. + tmpl = jQuery.data( tmpl, "tmpl" ) || jQuery.data( tmpl, "tmpl", buildTmplFn( tmpl.innerHTML )); + } + return typeof name === "string" ? (jQuery.templates[name] = tmpl) : tmpl; + } + // Return named compiled template + return typeof name !== "string" ? jQuery.templates( null, name ): + (jQuery.templates[name] || + // If not in map, treat as a selector. (If integrated with core, use quickExpr.exec) + jQuery.templates( null, htmlExpr.test( name ) ? name : jQuery( name ))); + }, + + encode: function( text ) { + // Do HTML encoding replacing < > & and ' and " by corresponding entities. + return ("" + text).split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'"); + } + }); + + jQuery.extend( jQuery.tmpl, { + tags: { + "tmpl": { + _default: { $2: "null" }, + open: "if($notnull_1){_=_.concat($item.nest($1,$2));}" + // tmpl target parameter can be of type function, so use $1, not $1a (so not auto detection of functions) + // This means that {{tmpl foo}} treats foo as a template (which IS a function). + // Explicit parens can be used if foo is a function that returns a template: {{tmpl foo()}}. + }, + "wrap": { + _default: { $2: "null" }, + open: "$item.calls(_,$1,$2);_=[];", + close: "call=$item.calls();_=call._.concat($item.wrap(call,_));" + }, + "each": { + _default: { $2: "$index, $value" }, + open: "if($notnull_1){$.each($1a,function($2){with(this){", + close: "}});}" + }, + "if": { + open: "if(($notnull_1) && $1a){", + close: "}" + }, + "else": { + open: "}else{" + }, + "html": { + open: "if($notnull_1){_.push($1a);}" + }, + "=": { + _default: { $1: "$data" }, + open: "if($notnull_1){_.push($.encode($1a));}" + } + }, + + // This stub can be overridden, e.g. in jquery.tmplPlus for providing rendered events + complete: function( items ) { + newTmplItems = {}; + }, + + // Call this from code which overrides domManip, or equivalent + // Manage cloning/storing template items etc. + afterManip: function afterManip( elem, fragClone, callback ) { + // Provides cloned fragment ready for fixup prior to and after insertion into DOM + var content = fragClone.nodeType === 11 ? + jQuery.makeArray(fragClone.childNodes) : + fragClone.nodeType === 1 ? [fragClone] : []; + + // Return fragment to original caller (e.g. append) for DOM insertion + callback.call( elem, fragClone ); + + // Fragment has been inserted:- Add inserted nodes to tmplItem data structure. Replace inserted element annotations by jQuery.data. + storeTmplItems( content ); + cloneIndex++; + } + }); + + //========================== Private helper functions, used by code above ========================== + + function build( tmplItem, nested, content ) { + // Convert hierarchical content into flat string array + // and finally return array of fragments ready for DOM insertion + var frag, ret = jQuery.map( content, function( item ) { + return (typeof item === "string") ? + // Insert template item annotations, to be converted to jQuery.data( "tmplItem" ) when elems are inserted into DOM. + item.replace( /(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g, "$1 " + tmplItmAtt + "=\"" + tmplItem.key + "\" $2" ) : + // This is a child template item. Build nested template. + build( item, tmplItem, item._ctnt ); + }); + if ( nested ) { + return ret; + } + // top-level template + ret = ret.join(""); + + // Support templates which have initial or final text nodes, or consist only of text + // Also support HTML entities within the HTML markup. + ret.replace( /^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/, function( all, before, middle, after) { + frag = jQuery( middle ).get(); + + storeTmplItems( frag ); + if ( before ) { + frag = unencode( before ).concat(frag); + } + if ( after ) { + frag = frag.concat(unencode( after )); + } + }); + return frag ? frag : unencode( ret ); + } + + function unencode( text ) { + // Use createElement, since createTextNode will not render HTML entities correctly + var el = document.createElement( "div" ); + el.innerHTML = text; + return jQuery.makeArray(el.childNodes); + } + + // Generate a reusable function that will serve to render a template against data + function buildTmplFn( markup ) { + return new Function("jQuery","$item", + "var $=jQuery,_=[],$data=$item.data;" + + + // Introduce the data as local variables using with(){} + "with($data){_.push('" + + + // Convert the template into pure JavaScript + $.trim(markup) + .replace( /([\\'])/g, "\\$1" ) + .replace( /[\r\t\n]/g, " " ) + .replace( /\${([^}]*)}/g, "{{= $1}}" ) + .replace( /{{(\/?)(\w+|.)(?:\(((?:.(?!}}))*?)?\))?(?:\s+(.*?)?)?(\((.*?)\))?\s*}}/g, + function( all, slash, type, fnargs, target, parens, args ) { + var cmd = jQuery.tmpl.tags[ type ], def, expr, exprAutoFnDetect; + if ( !cmd ) { + throw "Template command not found: " + type; + } + def = cmd._default || []; + if ( target ) { + target = unescape( target ); + args = args ? ("," + unescape( args ) + ")") : (parens ? ")" : ""); + if ( parens && target.indexOf(".") > -1 ) { + // Support for target being things like a.toLowerCase(); + // In that case don't call with template item as 'this' pointer. Just evaluate... + target += parens; + args = ""; + } + expr = args ? ("(" + target + ").call($item" + args) : target; + exprAutoFnDetect = args ? expr : "(typeof(" + target + ")==='function'?(" + target + ").call($item):(" + target + "))"; + } else { + expr = def["$1"] || "null"; + } + fnargs = unescape( fnargs ); + return "');" + + cmd[ slash ? "close" : "open" ] + .split( "$notnull_1" ).join( "typeof(" + target + ")!=='undefined' && (" + target + ")!=null" ) + .split( "$1a" ).join( exprAutoFnDetect ) + .split( "$1" ).join( expr ) + .split( "$2" ).join( fnargs ? + fnargs.replace( /\s*([^\(]+)\s*(\((.*?)\))?/g, function( all, name, parens, params ) { + params = params ? ("," + params + ")") : (parens ? ")" : ""); + return params ? ("(" + name + ").call($item" + params) : all; + }) + : (def["$2"]||"") + ) + + "_.push('"; + }) + + "');}return _;" + ); + } + + function updateWrapped( tmplItem ) { + if ( tmplItem.wrapped ) { + var wrapped = tmplItem.wrapped; + // Build the wrapped content + tmplItem._wrap = build( tmplItem, true, + jQuery.isArray( wrapped ) ? wrapped : [htmlExpr.test( wrapped ) ? wrapped : jQuery( wrapped ).html()] + ).join(""); + } + } + + function unescape( args ) { + return args ? args.replace( /\\'/g, "'").replace(/\\\\/g, "\\" ) : null; + } + function outerHtml( elem ) { + var div = document.createElement("div"); + div.appendChild( elem.cloneNode(true) ); + return div.innerHTML; + } + + // Store template items in jQuery.data(), ensuring a unique tmplItem data data structure for each rendered template instance. + function storeTmplItems( content ) { + var keySuffix = "_" + cloneIndex, elem, elems, newClonedItems = {}; + for ( var i = 0, l = content.length; i < l; i++ ) { + if ( (elem = content[i]).nodeType !== 1 ) { + continue; + } + elems = elem.getElementsByTagName("*"); + for ( var m = elems.length - 1; m >= 0; m-- ) { + processItemKey( elems[m] ); + } + processItemKey( elem ); + } + // Cannot remove temporary wrappedItem objects, since needed during updating of nested items. //wrappedItems = {}; + // TODO - ensure no memory leaks + + function processItemKey( el ) { + var pntKey, pntNode = el, pntItem, tmplItem, key; + // Ensure that each rendered template inserted into the DOM has its own template item, + if ( key = el.getAttribute( tmplItmAtt )) { + while ((pntNode = pntNode.parentNode).nodeType === 1 && !(pntKey = pntNode.getAttribute( tmplItmAtt ))) { } + if ( pntKey !== key ) { + // The next ancestor with a _tmplitem expando is on a different key than this one. + // So this is a top-level element within this template item + pntNode = pntNode.nodeType === 11 ? 0 : (pntNode.getAttribute( tmplItmAtt ) || 0); + if ( !(tmplItem = newTmplItems[key]) ) { + // The item is for wrapped content, and was copied from the temporary parent wrappedItem. + tmplItem = wrappedItems[key]; + tmplItem = newTmplItem( tmplItem, newTmplItems[pntNode]||wrappedItems[pntNode], null, true ); + tmplItem.key = ++itemKey; + // Note that there is a remaining issue on parenting of wrappedItems. + // ...Currently there may be additional newTmplItems items wrapped contexts, leading to duplicate rendered events. + newTmplItems[itemKey] = tmplItem; + } + if ( cloneIndex ) { + cloneTmplItem( key ); + } + } + el.removeAttribute( tmplItmAtt ); + } else if ( cloneIndex && (tmplItem = jQuery.data( el, "tmplItem" )) ) { + // This was a rendered element, cloned during append or appendTo etc. + // TmplItem stored in jQuery data has already been cloned in cloneCopyEvent. We must replace it with a fresh cloned tmplItem. + cloneTmplItem( tmplItem.key ); + newTmplItems[tmplItem.key] = tmplItem; + pntNode = jQuery.data( el.parentNode, "tmplItem" ); + pntNode = pntNode ? pntNode.key : 0; + } + if ( tmplItem ) { + pntItem = tmplItem; + // Find the template item of the parent element + while ( pntItem && pntItem.key != pntNode ) { + // Add this element as a top-level node for this rendered template item, as well as for any + // ancestor items between this item and the item of its parent element + pntItem.nodes.push( el ); + pntItem = pntItem.parent; + } + // Delete content built during rendering - reduce API surface area and memory use, and avoid exposing of stale data after rendering... + delete tmplItem._ctnt; + delete tmplItem._wrap; + // Store template item as jQuery data on the element + jQuery.data( el, "tmplItem", tmplItem ); + } + function cloneTmplItem( key ) { + key = key + keySuffix; + tmplItem = newClonedItems[key] + = (newClonedItems[key] || newTmplItem( tmplItem, newTmplItems[tmplItem.parent.key + keySuffix] || tmplItem.parent, null, true )); + } + } + } + + //---- Helper functions for template item ---- + + function tiCalls( content, tmpl, data, options ) { + if ( !content ) { + return stack.pop(); + } + var l = stack.length; + stack.push({ _: content, tmpl: tmpl, parent: l ? stack[l - 1].item : this, item:this, data: data, options: options }); + } + + function tiNest( tmpl, data, options ) { + // nested template, using {{tmpl}} tag + return jQuery.tmpl( jQuery.templates( tmpl ), data, options, this ); + } + + function tiWrap( call, wrapped ) { + // nested template, using {{wrap}} tag + var options = call.options; + options.wrapped = wrapped; + // Apply the template, which may incorporate wrapped content, + return jQuery.tmpl( jQuery.templates( call.tmpl ), call.data, options, call.parent ); + } + + function tiHtml( filter, textOnly ) { + var wrapped = this._wrap; + return jQuery.map( + jQuery( jQuery.isArray( wrapped ) ? wrapped.join("") : wrapped ).filter( filter || "*" ), + function(e) { + return textOnly ? + e.innerText || e.textContent : + e.outerHTML || outerHtml(e); + }); + } + + function tiUpdate() { + var coll = this.nodes; + jQuery.tmpl( null, null, null, this).insertBefore( coll[0] ); + jQuery( coll ).remove(); + } +})(jQuery); diff --git a/web/0.3.4/scripts/jquery.vgrid.0.1.5.js b/web/0.3.4/scripts/jquery.vgrid.0.1.5.js new file mode 100644 index 0000000..d048205 --- /dev/null +++ b/web/0.3.4/scripts/jquery.vgrid.0.1.5.js @@ -0,0 +1,334 @@ +/** + * jQuery VGrid v0.1.5 - variable grid layout plugin + * + * Terms of Use - jQuery VGrid + * under the MIT (http://www.opensource.org/licenses/mit-license.php) License. + * + * Copyright 2009-2010 xlune.com All rights reserved. + * (http://blog.xlune.com/2009/09/jqueryvgrid.html) + */ +(function($) +{ + function makePos(self) + { + var _childs = self.data("_vgchild"); + var _width = self.width(); + var _matrix = [[0,_width,0]]; + var _hmax=0, _c, _size, _point; + _childs.each(function(i) + { + _c = $(this); + _size = getSize(_c); + _point = getAttachPoint(_matrix, _size[0]); + _matrix = updateAttachArea(_matrix, _point, _size); + _hmax = Math.max(_hmax, _point[1] + _size[1]); + _c.data("_vgleft", _point[0]); + _c.data("_vgtop", _point[1]); + }); + self.data("_vgwrapheight", _hmax); + heightTo(self); + }; + function getAttachPoint(mtx, width) + { + var _mtx = mtx.concat().sort(matrixSortDepth); + var _max = _mtx[_mtx.length-1][2]; + for(var i=0,imax=_mtx.length; i= _max) break; + if(_mtx[i][1]-_mtx[i][0] >= width) + { + return [_mtx[i][0], _mtx[i][2]]; + } + } + return [0, _max]; + }; + function updateAttachArea(mtx, point, size) + { + var _mtx = mtx.concat().sort(matrixSortDepth); + var _cell = [point[0], point[0]+size[0], point[1]+size[1]]; + for(var i=0,imax=_mtx.length; i b[0]) || a[2] > b[2]) ? 1 : -1; + }; + function matrixSortX(a, b) + { + if(!a || !b) return 0; + return (a[0] > b[0]) ? 1 : -1; + }; + function matrixJoin(mtx, cell) + { + var _mtx = mtx.concat([cell]).sort(matrixSortX); + var _mtx_join = []; + for(var i=0,imax=_mtx.length; i 0 + && _mtx_join[_mtx_join.length-1][1] == _mtx[i][0] + && _mtx_join[_mtx_join.length-1][2] == _mtx[i][2]) + { + _mtx_join[_mtx_join.length-1][1] = _mtx[i][1]; + } + else + { + _mtx_join.push(_mtx[i]); + } + } + return _mtx_join; + }; + function matrixTrimWidth(a, b) + { + if(a[0] >= b[0] && a[0] < b[1] || a[1] >= b[0] && a[1] < b[1]) + { + if(a[0] >= b[0] && a[0] < b[1]) + { + a[0] = b[1]; + } + else + { + a[1] = b[0]; + } + } + return a; + }; + function getSize(child) + { + var _w = child.width(); + var _h = child.height(); + _w += Number(child.css("margin-left").replace('px', '')) + +Number(child.css("padding-left").replace('px', '')) + +Number(child.get(0).style.borderLeftWidth.replace('px', '')) + +Number(child.css("margin-right").replace('px', '')) + +Number(child.css("padding-right").replace('px', '')) + +Number(child.get(0).style.borderRightWidth.replace('px', '')); + _h += Number(child.css("margin-top").replace('px', '')) + +Number(child.css("padding-top").replace('px', '')) + +Number(child.get(0).style.borderTopWidth.replace('px', '')) + +Number(child.css("margin-bottom").replace('px', '')) + +Number(child.css("padding-bottom").replace('px', '')) + +Number(child.get(0).style.borderBottomWidth.replace('px', '')); + return [_w, _h]; + }; + function heightTo(self) + { + var _self = self; + var _delay = _self.data("_vgchild").length + * (_self.data("_vgopt").delay || 0) + + _self.data("_vgopt").time || 500; + _self.stop(); + if(_self.height() < _self.data("_vgwrapheight")) + { + if($.browser.msie) + { + _self.height(_self.data("_vgwrapheight")); + } + else + { + _self.animate( + { + height: _self.data("_vgwrapheight")+"px" + }, + (_self.data("_vgopt").time || 500), + "easeOutQuart" + ); + } + } + else + { + clearTimeout(_self.data("_vgwraptimeout")); + _self.data("_vgwraptimeout", setTimeout(function(){ + if($.browser.msie) + { + _self.height(_self.data("_vgwrapheight")); + } + else + { + _self.animate( + { + height: _self.data("_vgwrapheight")+"px" + }, + (_self.data("_vgopt").time || 500), + "easeOutQuart" + ); + } + }, _delay)); + } + }; + function moveTo(childs) + { + var _c; + childs.each(function(i) + { + _c = $(this); + _c.css("left", ~~_c.data("_vgleft")+"px"); + _c.css("top", ~~_c.data("_vgtop")+"px"); + }); + }; + function animateTo(childs, easing, time, delay) + { + var _self = $(childs).parent(); + var isMove = false; + var imax = childs.length; + var i,_c,_pos; + for(i=0; i") + .text(" ") + .attr("id", "_vgridspan") + .hide() + .appendTo("body"); + s.data("size", s.css("font-size")); + s.data("timer", setInterval(function(){ + if(s.css("font-size") != s.data("size")) + { + s.data("size", s.css("font-size")); + $(window).resize(); + } + }, 1000)); + }; + $.fn.extend({ + vgrid: function(option) + { + var _self = $(this); + var _opt = option || {}; + _self.data("_vgopt", _opt); + _self.data("_vgchild", _self.find("> *")); + _self.data("_vgdefchild", _self.data("_vgchild")); + _self.css({ + "position": "relative", + "width": "auto" + }); + _self.data("_vgchild").css("position", "absolute"); + makePos(_self); + moveTo(_self.data("_vgchild")); + if(_self.data("_vgopt").fadeIn) + { + var _prop = (typeof(_self.data("_vgopt").fadeIn)=='object') + ? _self.data("_vgopt").fadeIn + : {time: _self.data("_vgopt").fadeIn} ; + _self.data("_vgchild").each(function(i) + { + var _c = $(this); + _c.css('display', 'none'); + setTimeout(function(){ + _c.fadeIn(_prop.time || 250); + }, i * (_prop.delay || 0)); + }); + } + $(window).resize(function(e) + { + refleshHandler(_self); + }); + setFontSizeListener(); + return _self; + }, + vgrefresh: function(easeing, time, delay, func) + { + var _obj = $(this); + if(_obj.data("_vgchild")) + { + _obj.data("_vgchild", _obj.find("> *")); + _obj.data("_vgchild").css("position", "absolute"); + makePos(_obj); + time = typeof(time)=="number" ? time : _obj.data("_vgopt").time || 500; + delay = typeof(delay)=="number" ? delay : _obj.data("_vgopt").delay || 0; + animateTo( + _obj.data("_vgchild"), + easeing || _obj.data("_vgopt").easeing || "linear", + time, + delay + ); + if(typeof(func)=='function') + { + setTimeout( + func, + _obj.data("_vgchild").length * delay + time + ); + } + } + return _obj; + }, + vgsort: function(func, easeing, time, delay) + { + var _obj = $(this); + if(_obj.data("_vgchild")) + { + _obj.data("_vgchild", _obj.data("_vgchild").sort(func)); + _obj.data("_vgchild").each(function(num){ + $(this).appendTo(_obj); + }); + makePos(_obj); + animateTo( + _obj.data("_vgchild"), + easeing || _obj.data("_vgopt").easeing || "linear", + typeof(time)=="number" ? time : _obj.data("_vgopt").time || 500, + typeof(delay)=="number" ? delay : _obj.data("_vgopt").delay || 0 + ); + } + return _obj; + } + }); +})(jQuery); diff --git a/web/0.3.4/scripts/jqueryStub.js b/web/0.3.4/scripts/jqueryStub.js new file mode 100644 index 0000000..9551bab --- /dev/null +++ b/web/0.3.4/scripts/jqueryStub.js @@ -0,0 +1,2 @@ +//A stub file used for RequireJS optimizer builds. +define({}); diff --git a/web/0.3.4/scripts/json2.js b/web/0.3.4/scripts/json2.js new file mode 100644 index 0000000..d552778 --- /dev/null +++ b/web/0.3.4/scripts/json2.js @@ -0,0 +1,7 @@ +if(!this.JSON)this.JSON={}; +(function(){function k(a){return a<10?"0"+a:a}function n(a){o.lastIndex=0;return o.test(a)?'"'+a.replace(o,function(c){var d=q[c];return typeof d==="string"?d:"\\u"+("0000"+c.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function l(a,c){var d,f,i=g,e,b=c[a];if(b&&typeof b==="object"&&typeof b.toJSON==="function")b=b.toJSON(a);if(typeof j==="function")b=j.call(c,a,b);switch(typeof b){case "string":return n(b);case "number":return isFinite(b)?String(b):"null";case "boolean":case "null":return String(b); +case "object":if(!b)return"null";g+=m;e=[];if(Object.prototype.toString.apply(b)==="[object Array]"){f=b.length;for(a=0;a 16) bkey = binl_md5(bkey, key.length * 8); + + var ipad = Array(16), opad = Array(16); + for(var i = 0; i < 16; i++) + { + ipad[i] = bkey[i] ^ 0x36363636; + opad[i] = bkey[i] ^ 0x5C5C5C5C; + } + + var hash = binl_md5(ipad.concat(rstr2binl(data)), 512 + data.length * 8); + return binl2rstr(binl_md5(opad.concat(hash), 512 + 128)); +} + +/* + * Convert a raw string to a hex string + */ +function rstr2hex(input) +{ + try { hexcase } catch(e) { hexcase=0; } + var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; + var output = ""; + var x; + for(var i = 0; i < input.length; i++) + { + x = input.charCodeAt(i); + output += hex_tab.charAt((x >>> 4) & 0x0F) + + hex_tab.charAt( x & 0x0F); + } + return output; +} + +/* + * Convert a raw string to a base-64 string + */ +function rstr2b64(input) +{ + try { b64pad } catch(e) { b64pad=''; } + var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + var output = ""; + var len = input.length; + for(var i = 0; i < len; i += 3) + { + var triplet = (input.charCodeAt(i) << 16) + | (i + 1 < len ? input.charCodeAt(i+1) << 8 : 0) + | (i + 2 < len ? input.charCodeAt(i+2) : 0); + for(var j = 0; j < 4; j++) + { + if(i * 8 + j * 6 > input.length * 8) output += b64pad; + else output += tab.charAt((triplet >>> 6*(3-j)) & 0x3F); + } + } + return output; +} + +/* + * Convert a raw string to an arbitrary string encoding + */ +function rstr2any(input, encoding) +{ + var divisor = encoding.length; + var i, j, q, x, quotient; + + /* Convert to an array of 16-bit big-endian values, forming the dividend */ + var dividend = Array(Math.ceil(input.length / 2)); + for(i = 0; i < dividend.length; i++) + { + dividend[i] = (input.charCodeAt(i * 2) << 8) | input.charCodeAt(i * 2 + 1); + } + + /* + * Repeatedly perform a long division. The binary array forms the dividend, + * the length of the encoding is the divisor. Once computed, the quotient + * forms the dividend for the next step. All remainders are stored for later + * use. + */ + var full_length = Math.ceil(input.length * 8 / + (Math.log(encoding.length) / Math.log(2))); + var remainders = Array(full_length); + for(j = 0; j < full_length; j++) + { + quotient = Array(); + x = 0; + for(i = 0; i < dividend.length; i++) + { + x = (x << 16) + dividend[i]; + q = Math.floor(x / divisor); + x -= q * divisor; + if(quotient.length > 0 || q > 0) + quotient[quotient.length] = q; + } + remainders[j] = x; + dividend = quotient; + } + + /* Convert the remainders to the output string */ + var output = ""; + for(i = remainders.length - 1; i >= 0; i--) + output += encoding.charAt(remainders[i]); + + return output; +} + +/* + * Encode a string as utf-8. + * For efficiency, this assumes the input is valid utf-16. + */ +function str2rstr_utf8(input) +{ + var output = ""; + var i = -1; + var x, y; + + while(++i < input.length) + { + /* Decode utf-16 surrogate pairs */ + x = input.charCodeAt(i); + y = i + 1 < input.length ? input.charCodeAt(i + 1) : 0; + if(0xD800 <= x && x <= 0xDBFF && 0xDC00 <= y && y <= 0xDFFF) + { + x = 0x10000 + ((x & 0x03FF) << 10) + (y & 0x03FF); + i++; + } + + /* Encode output as utf-8 */ + if(x <= 0x7F) + output += String.fromCharCode(x); + else if(x <= 0x7FF) + output += String.fromCharCode(0xC0 | ((x >>> 6 ) & 0x1F), + 0x80 | ( x & 0x3F)); + else if(x <= 0xFFFF) + output += String.fromCharCode(0xE0 | ((x >>> 12) & 0x0F), + 0x80 | ((x >>> 6 ) & 0x3F), + 0x80 | ( x & 0x3F)); + else if(x <= 0x1FFFFF) + output += String.fromCharCode(0xF0 | ((x >>> 18) & 0x07), + 0x80 | ((x >>> 12) & 0x3F), + 0x80 | ((x >>> 6 ) & 0x3F), + 0x80 | ( x & 0x3F)); + } + return output; +} + +/* + * Encode a string as utf-16 + */ +function str2rstr_utf16le(input) +{ + var output = ""; + for(var i = 0; i < input.length; i++) + output += String.fromCharCode( input.charCodeAt(i) & 0xFF, + (input.charCodeAt(i) >>> 8) & 0xFF); + return output; +} + +function str2rstr_utf16be(input) +{ + var output = ""; + for(var i = 0; i < input.length; i++) + output += String.fromCharCode((input.charCodeAt(i) >>> 8) & 0xFF, + input.charCodeAt(i) & 0xFF); + return output; +} + +/* + * Convert a raw string to an array of little-endian words + * Characters >255 have their high-byte silently ignored. + */ +function rstr2binl(input) +{ + var output = Array(input.length >> 2); + for(var i = 0; i < output.length; i++) + output[i] = 0; + for(var i = 0; i < input.length * 8; i += 8) + output[i>>5] |= (input.charCodeAt(i / 8) & 0xFF) << (i%32); + return output; +} + +/* + * Convert an array of little-endian words to a string + */ +function binl2rstr(input) +{ + var output = ""; + for(var i = 0; i < input.length * 32; i += 8) + output += String.fromCharCode((input[i>>5] >>> (i % 32)) & 0xFF); + return output; +} + +/* + * Calculate the MD5 of an array of little-endian words, and a bit length. + */ +function binl_md5(x, len) +{ + /* append padding */ + x[len >> 5] |= 0x80 << ((len) % 32); + x[(((len + 64) >>> 9) << 4) + 14] = len; + + var a = 1732584193; + var b = -271733879; + var c = -1732584194; + var d = 271733878; + + for(var i = 0; i < x.length; i += 16) + { + var olda = a; + var oldb = b; + var oldc = c; + var oldd = d; + + a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936); + d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586); + c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819); + b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330); + a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897); + d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426); + c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341); + b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983); + a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416); + d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417); + c = md5_ff(c, d, a, b, x[i+10], 17, -42063); + b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162); + a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682); + d = md5_ff(d, a, b, c, x[i+13], 12, -40341101); + c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290); + b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329); + + a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510); + d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632); + c = md5_gg(c, d, a, b, x[i+11], 14, 643717713); + b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302); + a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691); + d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083); + c = md5_gg(c, d, a, b, x[i+15], 14, -660478335); + b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848); + a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438); + d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690); + c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961); + b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501); + a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467); + d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784); + c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473); + b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734); + + a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558); + d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463); + c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562); + b = md5_hh(b, c, d, a, x[i+14], 23, -35309556); + a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060); + d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353); + c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632); + b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640); + a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174); + d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222); + c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979); + b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189); + a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487); + d = md5_hh(d, a, b, c, x[i+12], 11, -421815835); + c = md5_hh(c, d, a, b, x[i+15], 16, 530742520); + b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651); + + a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844); + d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415); + c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905); + b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055); + a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571); + d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606); + c = md5_ii(c, d, a, b, x[i+10], 15, -1051523); + b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799); + a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359); + d = md5_ii(d, a, b, c, x[i+15], 10, -30611744); + c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380); + b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649); + a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070); + d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379); + c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259); + b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551); + + a = safe_add(a, olda); + b = safe_add(b, oldb); + c = safe_add(c, oldc); + d = safe_add(d, oldd); + } + return Array(a, b, c, d); +} + +/* + * These functions implement the four basic operations the algorithm uses. + */ +function md5_cmn(q, a, b, x, s, t) +{ + return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b); +} +function md5_ff(a, b, c, d, x, s, t) +{ + return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t); +} +function md5_gg(a, b, c, d, x, s, t) +{ + return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t); +} +function md5_hh(a, b, c, d, x, s, t) +{ + return md5_cmn(b ^ c ^ d, a, b, x, s, t); +} +function md5_ii(a, b, c, d, x, s, t) +{ + return md5_cmn(c ^ (b | (~d)), a, b, x, s, t); +} + +/* + * Add integers, wrapping at 2^32. This uses 16-bit operations internally + * to work around bugs in some JS interpreters. + */ +function safe_add(x, y) +{ + var lsw = (x & 0xFFFF) + (y & 0xFFFF); + var msw = (x >> 16) + (y >> 16) + (lsw >> 16); + return (msw << 16) | (lsw & 0xFFFF); +} + +/* + * Bitwise rotate a 32-bit number to the left. + */ +function bit_rol(num, cnt) +{ + return (num << cnt) | (num >>> (32 - cnt)); +} diff --git a/web/0.3.4/scripts/oauth.js b/web/0.3.4/scripts/oauth.js new file mode 100644 index 0000000..9369bd4 --- /dev/null +++ b/web/0.3.4/scripts/oauth.js @@ -0,0 +1,94 @@ + +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +/*jslint indent: 2 */ +/*global define: false, window: false, location: false */ +"use strict"; + +define([ 'accounts'], +function (accounts) { + + var authDone, win, lastTime = 0; + + //Handle communication from the auth window, when it completes. + window.addEventListener("message", function (evt) { + //TODO: ideally lock down the domain check on evt.origin. + var data, status; + try { + data = JSON.parse(evt.data); + } catch (e) { + return; + } + if (data.target) { + if (data.target === 'oauth_success' && data.account) { + status = true; + accounts.update(data.account); + } else { + status = false; + } + + //Reset windows + win = null; + + if (authDone) { + authDone(status); + authDone = null; + } + } + }, false); + + return function oauth(domain, forceLogin, callback) { + if (callback) { + authDone = callback; + } + var url = location.protocol + "//" + location.host + "/0.3.4/auth.html", + currentTime = (new Date()).getTime(), + newLocation; + + //Could have a window handle, but could be closed, so account for it. + if (win && win.closed) { + win = null; + } + + //If got another request for the domain and window has not shown up yet + //for 4 seconds, or if domain is different, then try window open call. + //4 seconds is a bit arbitrary, slower systems may have a longer wait, + //but just trying to reduce the edge cases of seeing multiple windows. + if ((currentTime > lastTime + 4000)) { + lastTime = currentTime; + newLocation = url + "?domain=" + domain + (forceLogin ? '&forceLogin=1' : ''); + try { + win = window.open(newLocation, + "ffshareOAuth", + "dialog=yes, modal=yes, width=900, height=500, scrollbars=yes"); + win.focus(); + } catch (e) { + // XXX dialog=yes fails on fennec, lets just do window.location + window.location = newLocation + "&end_point_success=" + encodeURI(window.location); + } + } else if (win) { + win.focus(); + } + }; +}); diff --git a/web/0.3.4/scripts/placeholder.js b/web/0.3.4/scripts/placeholder.js new file mode 100644 index 0000000..5cf9c1c --- /dev/null +++ b/web/0.3.4/scripts/placeholder.js @@ -0,0 +1,104 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +/*jslint nomen: false, plusplus: false */ +/*global define: false, clearTimeout: false, setTimeout: false */ +"use strict"; + +define(["jquery"], function ($) { + + /** + * Set the input value to use placeholder value if HTML5 placeholder + * attribute is not supported. + * @param {DOMNode} input an input element. + */ + function setPlaceholder(input) { + //If no native support for placeholder then JS to the rescue! + var missingNative = !("placeholder" in input), + placeholder = input.getAttribute("placeholder"), + trimmed = input.value.trim(); + + if (!trimmed || trimmed === placeholder) { + if (missingNative) { + $(input).addClass("placeholder"); + input.value = placeholder; + if (placeholder === "password" && input.type === "password") { + input.type = "text"; + } + } + } else { + $(input).removeClass("placeholder"); + } + } + + /** + * Handles focus events on the node to see if placehoder needs to be removed. + * @param {Event} evt + */ + function onfocus(evt) { + //Clear out placeholder, change the style. + var input = evt.target, + placeholder = input.getAttribute("placeholder"); + if (input.value === placeholder) { + if (!("placeholder" in input)) { + input.value = ""; + if (placeholder === "password" && input.type === "text") { + input.type = "password"; + } + } + $(input).removeClass("placeholder"); + } + } + + /** Handles blur events on the node to see if placeholder needs to be reinstated. + * @param {Event} evt + */ + function onblur(evt) { + //Reset placeholder text if necessary. + setPlaceholder(evt.target); + } + + /** + * Scans domNode and its children for text input/textarea elements that have a placeholder + * attribute, and attach placeholder behavior to it. + * Allow for the existence of browsers that already have placeholder support + * built in. + * + * @param {DOMNode} domNode + * @param {Widget} [widget] an optional widget that will track the connect handles. + * + */ + return function (domNode, widget) { + $('input[type="text"], input[type="password"], textarea', domNode).each(function (i, node) { + //Skip nodes that have already been bound + if (node.getAttribute("data-rdwPlaceholder") !== "set") { + $(node).focus(onfocus).blur(onblur); + + node.setAttribute("data-rdwPlaceholder", "set"); + } + + //Set up initial state. + setPlaceholder(node); + }); + }; +}); diff --git a/web/0.3.4/scripts/protovis/protovis-r3.2.js b/web/0.3.4/scripts/protovis/protovis-r3.2.js new file mode 100755 index 0000000..95bb3be --- /dev/null +++ b/web/0.3.4/scripts/protovis/protovis-r3.2.js @@ -0,0 +1,277 @@ +// fba9dc2 +var a;if(!Array.prototype.map)Array.prototype.map=function(b,c){for(var d=this.length,f=new Array(d),g=0;g>>0,f=0;f=d)throw new Error("reduce: no values, no initial value");}for(;f=0&&d=69&&m<100?1900:0)});return"([0-9]+)";case "%Y":q.push(function(m){g=m});return"([0-9]+)";case "%%":q.push(function(){}); +return"%"}return n});(f=f.match(o))&&f.forEach(function(n,m){q[m](n)});return new Date(g,h,i,j,l,k)};return c}; +pv.Format.time=function(b){function c(f){f=Number(f);switch(b){case "short":if(f>=31536E6)return(f/31536E6).toFixed(1)+" years";else if(f>=6048E5)return(f/6048E5).toFixed(1)+" weeks";else if(f>=864E5)return(f/864E5).toFixed(1)+" days";else if(f>=36E5)return(f/36E5).toFixed(1)+" hours";else if(f>=6E4)return(f/6E4).toFixed(1)+" minutes";return(f/1E3).toFixed(1)+" seconds";case "long":var g=[],h=f%36E5/6E4>>0;g.push(d("0",2,f%6E4/1E3>>0));if(f>=36E5){var i=f%864E5/36E5>>0;g.push(d("0",2,h));if(f>=864E5){g.push(d("0", +2,i));g.push(Math.floor(f/864E5).toFixed())}else g.push(i.toFixed())}else g.push(h.toFixed());return g.reverse().join(":")}}var d=pv.Format.pad;c.format=c;c.parse=function(f){switch(b){case "short":for(var g=/([0-9,.]+)\s*([a-z]+)/g,h,i=0;h=g.exec(f);){var j=parseFloat(h[0].replace(",","")),l=0;switch(h[2].toLowerCase()){case "year":case "years":l=31536E6;break;case "week":case "weeks":l=6048E5;break;case "day":case "days":l=864E5;break;case "hour":case "hours":l=36E5;break;case "minute":case "minutes":l= +6E4;break;case "second":case "seconds":l=1E3;break}i+=j*l}return i;case "long":h=f.replace(",","").split(":").reverse();i=0;if(h.length)i+=parseFloat(h[0])*1E3;if(h.length>1)i+=parseFloat(h[1])*6E4;if(h.length>2)i+=parseFloat(h[2])*36E5;if(h.length>3)i+=parseFloat(h[3])*864E5;return i}};return c}; +pv.Format.number=function(){function b(n){if(Infinity>h)n=Math.round(n*i)/i;var m=String(Math.abs(n)).split("."),r=m[0];n=n<0?"-":"";if(r.length>d)r=r.substring(r.length-d);if(k&&r.length3)r=r.replace(/\B(?=(?:\d{3})+(?!\d))/g,o);if(!k&&r.lengthd)m=m.substring(m.length-d);n=n[1]?Number("0."+n[1]):0;if(Infinity>h)n=Math.round(n*i)/i;return Math.round(m)+n};b.integerDigits=function(n,m){if(arguments.length){c=Number(n);d=arguments.length>1?Number(m):c;f=c+Math.floor(c/3)*o.length;return this}return[c,d]};b.fractionDigits=function(n,m){if(arguments.length){g= +Number(n);h=arguments.length>1?Number(m):g;i=Math.pow(10,h);return this}return[g,h]};b.integerPad=function(n){if(arguments.length){j=String(n);k=/\d/.test(j);return this}return j};b.fractionPad=function(n){if(arguments.length){l=String(n);return this}return l};b.decimal=function(n){if(arguments.length){q=String(n);return this}return q};b.group=function(n){if(arguments.length){o=n?String(n):"";f=c+Math.floor(c/3)*o.length;return this}return o};return b}; +pv.map=function(b,c){var d={};return c?b.map(function(f,g){d.index=g;return c.call(d,f)}):b.slice()};pv.repeat=function(b,c){if(arguments.length==1)c=2;return pv.blend(pv.range(c).map(function(){return b}))};pv.cross=function(b,c){for(var d=[],f=0,g=b.length,h=c.length;fc){b.length=d;for(var f=c;fc?1:0}; +pv.reverseOrder=function(b,c){return cb?1:0};pv.search=function(b,c,d){if(!d)d=pv.identity;for(var f=0,g=b.length-1;f<=g;){var h=f+g>>1,i=d(b[h]);if(ic)g=h-1;else return h}return-f-1};pv.search.index=function(b,c,d){b=pv.search(b,c,d);return b<0?-b-1:b}; +pv.range=function(b,c,d){if(arguments.length==1){c=b;b=0}if(d==undefined)d=1;if((c-b)/d==Infinity)throw new Error("range must be finite");var f=[],g=0,h;if(d<0)for(;(h=b+d*g++)>c;)f.push(h);else for(;(h=b+d*g++)f){f=i;d=h}}return d}; +pv.min=function(b,c){if(c==pv.index)return 0;return Math.min.apply(null,c?pv.map(b,c):b)};pv.min.index=function(b,c){if(!b.length)return-1;if(c==pv.index)return 0;if(!c)c=pv.identity;for(var d=0,f=Infinity,g={},h=0;h0?Math.pow(c,Math.floor(pv.log(b,c))):-Math.pow(c,-Math.floor(-pv.log(-b,c)))};pv.logCeil=function(b,c){return b>0?Math.pow(c,Math.ceil(pv.log(b,c))):-Math.pow(c,-Math.ceil(-pv.log(-b,c)))}; +(function(){var b=Math.PI/180,c=180/Math.PI;pv.radians=function(d){return b*d};pv.degrees=function(d){return c*d}})();pv.keys=function(b){var c=[];for(var d in b)c.push(d);return c};pv.entries=function(b){var c=[];for(var d in b)c.push({key:d,value:b[d]});return c};pv.values=function(b){var c=[];for(var d in b)c.push(b[d]);return c};pv.dict=function(b,c){for(var d={},f={},g=0;g=94608E6){n=31536E6;t="%Y";p=function(w){w.setFullYear(w.getFullYear()+v)}}else if(u>=7776E6){n=2592E6;t="%m/%Y";p=function(w){w.setMonth(w.getMonth()+v)}}else if(u>=18144E5){n=6048E5;t="%m/%d";p=function(w){w.setDate(w.getDate()+7*v)}}else if(u>=2592E5){n=864E5;t="%m/%d";p=function(w){w.setDate(w.getDate()+v)}}else if(u>=108E5){n=36E5;t="%I:%M %p";p=function(w){w.setHours(w.getHours()+ +v)}}else if(u>=18E4){n=6E4;t="%I:%M %p";p=function(w){w.setMinutes(w.getMinutes()+v)}}else if(u>=3E3){n=1E3;t="%I:%M:%S";p=function(w){w.setSeconds(w.getSeconds()+v)}}else{n=1;t="%S.%Qs";p=function(w){w.setTime(w.getTime()+v)}}q=pv.Format.date(t);s=new Date(s);t=[];x(s,n);u=u/n;if(u>10)switch(n){case 36E5:v=u>20?6:3;s.setHours(Math.floor(s.getHours()/v)*v);break;case 2592E6:v=3;s.setMonth(Math.floor(s.getMonth()/v)*v);break;case 6E4:v=u>30?15:u>15?10:5;s.setMinutes(Math.floor(s.getMinutes()/v)*v); +break;case 1E3:v=u>90?15:u>60?10:5;s.setSeconds(Math.floor(s.getSeconds()/v)*v);break;case 1:v=u>1E3?250:u>200?100:u>100?50:u>50?25:5;s.setMilliseconds(Math.floor(s.getMilliseconds()/v)*v);break;default:v=pv.logCeil(u/15,10);if(u/v<2)v/=5;else if(u/v<5)v/=2;s.setFullYear(Math.floor(s.getFullYear()/v)*v);break}for(;;){p(s);if(s>m)break;t.push(new Date(s))}return r?t.reverse():t}arguments.length||(o=10);v=pv.logFloor(u/o,10);n=o/(u/v);if(n<=0.15)v*=10;else if(n<=0.35)v*=5;else if(n<=0.75)v*=2;n=Math.ceil(s/ +v)*v;m=Math.floor(m/v)*v;q=pv.Format.number().fractionDigits(Math.max(0,-Math.floor(pv.log(v,10)+0.01)));m=pv.range(n,m+v,v);return r?m.reverse():m};c.tickFormat=function(o){return q(o)};c.nice=function(){if(d.length!=2)return this;var o=d[0],n=d[d.length-1],m=n0;i--)k.push(-g(-j)*i);else{for(;jh[1];l--);return k.slice(j,l)};b.tickFormat=function(h){return h.toPrecision(1)}; +b.nice=function(){var h=b.domain();return b.domain(pv.logFloor(h[0],c),pv.logCeil(h[1],c))};b.base=function(h){if(arguments.length){c=Number(h);d=Math.log(c);b.transform(f,g);return this}return c};b.domain.apply(b,arguments);return b.base(10)};pv.Scale.root=function(){var b=pv.Scale.quantitative();b.power=function(c){if(arguments.length){var d=Number(c),f=1/d;b.transform(function(g){return Math.pow(g,f)},function(g){return Math.pow(g,d)});return this}return d};b.domain.apply(b,arguments);return b.power(2)}; +pv.Scale.ordinal=function(){function b(g){g in d||(d[g]=c.push(g)-1);return f[d[g]%f.length]}var c=[],d={},f=[];b.domain=function(g,h){if(arguments.length){g=g instanceof Array?arguments.length>1?pv.map(g,h):g:Array.prototype.slice.call(arguments);c=[];for(var i={},j=0;j1?pv.map(g,h):g:Array.prototype.slice.call(arguments); +if(typeof f[0]=="string")f=f.map(pv.color);return this}return f};b.split=function(g,h){var i=(h-g)/this.domain().length;f=pv.range(g+i/2,h,i);return this};b.splitFlush=function(g,h){var i=this.domain().length,j=(h-g)/(i-1);f=i==1?[(g+h)/2]:pv.range(g,h+j/2,j);return this};b.splitBanded=function(g,h,i){if(arguments.length<3)i=1;if(i<0){var j=this.domain().length;j=(h-g- -i*j)/(j+1);f=pv.range(g+j,h,j-i);f.band=-i}else{j=(h-g)/(this.domain().length+(1-i));f=pv.range(g+j*(1-i),h,j);f.band=j*i}return this}; +b.by=function(g){function h(){return b(g.apply(this,arguments))}for(var i in b)h[i]=b[i];return h};b.domain.apply(b,arguments);return b}; +pv.Scale.quantile=function(){function b(i){return h(Math.max(0,Math.min(d,pv.search.index(f,i)-1))/d)}var c=-1,d=-1,f=[],g=[],h=pv.Scale.linear();b.quantiles=function(i){if(arguments.length){c=Number(i);if(c<0){f=[g[0]].concat(g);d=g.length-1}else{f=[];f[0]=g[0];for(var j=1;j<=c;j++)f[j]=g[~~(j*(g.length-1)/c)];d=c-1}return this}return f};b.domain=function(i,j){if(arguments.length){g=i instanceof Array?pv.map(i,j):Array.prototype.slice.call(arguments);g.sort(pv.naturalOrder);b.quantiles(c);return this}return g}; +b.range=function(){if(arguments.length){h.range.apply(h,arguments);return this}return h.range()};b.by=function(i){function j(){return b(i.apply(this,arguments))}for(var l in b)j[l]=b[l];return j};b.domain.apply(b,arguments);return b}; +pv.histogram=function(b,c){var d=true;return{bins:function(f){var g=pv.map(b,c),h=[];arguments.length||(f=pv.Scale.linear(g).ticks());for(var i=0;i360)j-=360;else if(j<0)j+=360;if(j<60)return i+(h-i)*j/60;if(j<180)return h;if(j<240)return i+(h-i)*(240-j)/60;return i}function c(j){return Math.round(b(j)*255)}var d=this.h,f=this.s,g=this.l;d%=360;if(d<0)d+=360;f=Math.max(0,Math.min(f,1));g=Math.max(0,Math.min(g,1));var h=g<=0.5?g*(1+f):g+f-g*f,i=2*g-h;return pv.rgb(c(d+120),c(d),c(d-120),this.a)}; +pv.Color.names={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400", +darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc", +ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a", +lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1", +moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57", +seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32",transparent:pv.Color.transparent=pv.rgb(0,0,0,0)};(function(){var b=pv.Color.names;for(var c in b)b[c]=pv.color(b[c])})(); +pv.colors=function(){var b=pv.Scale.ordinal();b.range.apply(b,arguments);return b};pv.Colors={};pv.Colors.category10=function(){var b=pv.colors("#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf");b.domain.apply(b,arguments);return b}; +pv.Colors.category20=function(){var b=pv.colors("#1f77b4","#aec7e8","#ff7f0e","#ffbb78","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5","#8c564b","#c49c94","#e377c2","#f7b6d2","#7f7f7f","#c7c7c7","#bcbd22","#dbdb8d","#17becf","#9edae5");b.domain.apply(b,arguments);return b}; +pv.Colors.category19=function(){var b=pv.colors("#9c9ede","#7375b5","#4a5584","#cedb9c","#b5cf6b","#8ca252","#637939","#e7cb94","#e7ba52","#bd9e39","#8c6d31","#e7969c","#d6616b","#ad494a","#843c39","#de9ed6","#ce6dbd","#a55194","#7b4173");b.domain.apply(b,arguments);return b};pv.ramp=function(){var b=pv.Scale.linear();b.range.apply(b,arguments);return b}; +pv.Scene=pv.SvgScene={svg:"http://www.w3.org/2000/svg",xmlns:"http://www.w3.org/2000/xmlns",xlink:"http://www.w3.org/1999/xlink",xhtml:"http://www.w3.org/1999/xhtml",scale:1,events:["DOMMouseScroll","mousewheel","mousedown","mouseup","mouseover","mouseout","mousemove","click","dblclick"],implicit:{svg:{"shape-rendering":"auto","pointer-events":"painted",x:0,y:0,dy:0,"text-anchor":"start",transform:"translate(0,0)",fill:"none","fill-opacity":1,stroke:"none","stroke-opacity":1,"stroke-width":1.5,"stroke-linejoin":"miter"}, +css:{font:"10px sans-serif"}}};pv.SvgScene.updateAll=function(b){if(b.length&&b[0].reverse&&b.type!="line"&&b.type!="area"){for(var c=pv.extend(b),d=0,f=b.length-1;f>=0;d++,f--)c[d]=b[f];b=c}this.removeSiblings(this[b.type](b))};pv.SvgScene.create=function(b){return document.createElementNS(this.svg,b)}; +pv.SvgScene.expect=function(b,c,d,f){if(b){if(b.tagName=="a")b=b.firstChild;if(b.tagName!=c){c=this.create(c);b.parentNode.replaceChild(c,b);b=c}}else b=this.create(c);for(var g in d){c=d[g];if(c==this.implicit.svg[g])c=null;c==null?b.removeAttribute(g):b.setAttribute(g,c)}for(g in f){c=f[g];if(c==this.implicit.css[g])c=null;if(c==null)b.style.removeProperty(g);else b.style[g]=c}return b}; +pv.SvgScene.append=function(b,c,d){b.$scene={scenes:c,index:d};b=this.title(b,c[d]);b.parentNode||c.$g.appendChild(b);return b.nextSibling};pv.SvgScene.title=function(b,c){var d=b.parentNode;if(d&&d.tagName!="a")d=null;if(c.title){if(!d){d=this.create("a");b.parentNode&&b.parentNode.replaceChild(d,b);d.appendChild(b)}d.setAttributeNS(this.xlink,"title",c.title);return d}d&&d.parentNode.replaceChild(b,d);return b}; +pv.SvgScene.dispatch=pv.listener(function(b){var c=b.target.$scene;if(c){var d=b.type;switch(d){case "DOMMouseScroll":d="mousewheel";b.wheel=-480*b.detail;break;case "mousewheel":b.wheel=(window.opera?12:1)*b.wheelDelta;break}pv.Mark.dispatch(d,c.scenes,c.index)&&b.preventDefault()}});pv.SvgScene.removeSiblings=function(b){for(;b;){var c=b.nextSibling;b.parentNode.removeChild(b);b=c}};pv.SvgScene.undefined=function(){}; +pv.SvgScene.pathBasis=function(){function b(f,g,h,i,j){return{x:f[0]*g.left+f[1]*h.left+f[2]*i.left+f[3]*j.left,y:f[0]*g.top+f[1]*h.top+f[2]*i.top+f[3]*j.top}}var c=[[1/6,2/3,1/6,0],[0,2/3,1/3,0],[0,1/3,2/3,0],[0,1/6,2/3,1/6]],d=function(f,g,h,i){var j=b(c[1],f,g,h,i),l=b(c[2],f,g,h,i);f=b(c[3],f,g,h,i);return"C"+j.x+","+j.y+","+l.x+","+l.y+","+f.x+","+f.y};d.segment=function(f,g,h,i){var j=b(c[0],f,g,h,i),l=b(c[1],f,g,h,i),k=b(c[2],f,g,h,i);f=b(c[3],f,g,h,i);return"M"+j.x+","+j.y+"C"+l.x+","+l.y+ +","+k.x+","+k.y+","+f.x+","+f.y};return d}();pv.SvgScene.curveBasis=function(b){if(b.length<=2)return"";var c="",d=b[0],f=d,g=d,h=b[1];c+=this.pathBasis(d,f,g,h);for(var i=2;i1){j=c[1];h=b[l];l++;f+="C"+(g.left+i.x)+","+(g.top+i.y)+","+(h.left-j.x)+","+(h.top-j.y)+","+h.left+","+h.top;for(g=2;g9){l=3/Math.sqrt(l);f[h]= +l*i*d[h];f[h+1]=l*j*d[h]}}for(h=0;h2&&(g.interpolate=="basis"||g.interpolate=="cardinal"||g.interpolate=="monotone")?d:c)(k,q-1));k=q-1}}if(!j.length)return f;f=this.expect(f,"path",{"shape-rendering":g.antialias?null:"crispEdges","pointer-events":g.events,cursor:g.cursor,d:"M"+j.join("ZM")+"Z",fill:h.color,"fill-opacity":h.opacity|| +null,stroke:i.color,"stroke-opacity":i.opacity||null,"stroke-width":i.opacity?g.lineWidth/this.scale:null});return this.append(f,b,0)}; +pv.SvgScene.areaSegment=function(b){var c=b.$g.firstChild,d=b[0],f,g;if(d.interpolate=="basis"||d.interpolate=="cardinal"||d.interpolate=="monotone"){f=[];g=[];for(var h=0,i=b.length;h2&&(d.interpolate=="basis"||d.interpolate=="cardinal"||d.interpolate=="monotone"))switch(d.interpolate){case "basis":h+=this.curveBasis(b);break;case "cardinal":h+=this.curveCardinal(b,d.tension);break;case "monotone":h+=this.curveMonotone(b); +break}else for(var i=1;i1)break;return"A"+f+","+f+" 0 0,"+d+" "+c.left+","+c.top;case "step-before":return"V"+c.top+"H"+c.left;case "step-after":return"H"+c.left+"V"+c.top}return"L"+c.left+","+c.top};pv.SvgScene.lineIntersect=function(b,c,d,f){return b.plus(c.times(d.minus(b).dot(f.perp())/c.dot(f.perp())))}; +pv.SvgScene.pathJoin=function(b,c,d,f){var g=pv.vector(c.left,c.top);d=pv.vector(d.left,d.top);var h=d.minus(g),i=h.perp().norm(),j=i.times(c.lineWidth/(2*this.scale));c=g.plus(j);var l=d.plus(j),k=d.minus(j);j=g.minus(j);if(b&&b.visible){b=g.minus(b.left,b.top).perp().norm().plus(i);j=this.lineIntersect(g,b,j,h);c=this.lineIntersect(g,b,c,h)}if(f&&f.visible){f=pv.vector(f.left,f.top).minus(d).perp().norm().plus(i);k=this.lineIntersect(d,f,k,h);l=this.lineIntersect(d,f,l,h)}return"M"+c.x+","+c.y+ +"L"+l.x+","+l.y+" "+k.x+","+k.y+" "+j.x+","+j.y}; +pv.SvgScene.panel=function(b){for(var c=b.$g,d=c&&c.firstChild,f=0;f=2*Math.PI)i=i?"M0,"+j+"A"+j+","+j+" 0 1,1 0,"+-j+"A"+j+","+j+" 0 1,1 0,"+j+"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"Z":"M0,"+j+"A"+j+","+j+" 0 1,1 0,"+-j+"A"+j+","+j+" 0 1,1 0,"+j+"Z";else{var k=Math.min(f.startAngle,f.endAngle),q=Math.max(f.startAngle,f.endAngle), +o=Math.cos(k),n=Math.cos(q);k=Math.sin(k);q=Math.sin(q);i=i?"M"+j*o+","+j*k+"A"+j+","+j+" 0 "+(l1?c:null)}; +a.anchor=function(b){function c(g){for(var h=d,i=[];!(f=h.scene);){g=g.parent;i.push({index:g.index,childIndex:h.childIndex});h=h.parent}for(;i.length;){g=i.pop();f=f[g.index].children[g.childIndex]}if(d.hasOwnProperty("index")){i=pv.extend(f[d.index]);i.right=i.top=i.left=i.bottom=0;return[i]}return f}var d=this,f;b||(b="center");return(new pv.Anchor(this)).name(b).def("$mark.anchor",function(){f=this.scene.target=c(this)}).data(function(){return f.map(function(g){return g.data})}).visible(function(){return f[this.index].visible}).left(function(){var g= +f[this.index],h=g.width||0;switch(this.name()){case "bottom":case "top":case "center":return g.left+h/2;case "left":return null}return g.left+h}).top(function(){var g=f[this.index],h=g.height||0;switch(this.name()){case "left":case "right":case "center":return g.top+h/2;case "top":return null}return g.top+h}).right(function(){var g=f[this.index];return this.name()=="left"?g.right+(g.width||0):null}).bottom(function(){var g=f[this.index];return this.name()=="top"?g.bottom+(g.height||0):null}).textAlign(function(){switch(this.name()){case "bottom":case "top":case "center":return"center"; +case "right":return"right"}return"left"}).textBaseline(function(){switch(this.name()){case "right":case "left":case "center":return"middle";case "top":return"top"}return"bottom"})};a.anchorTarget=function(){return this.proto.anchorTarget()};a.margin=function(b){return this.left(b).right(b).top(b).bottom(b)};a.instance=function(b){var c=this.scene||this.parent.instance(-1).children[this.childIndex],d=!arguments.length||this.hasOwnProperty("index")?this.index:b;return c[d<0?c.length-1:d]};a.first=function(){return this.scene[0]}; +a.last=function(){return this.scene[this.scene.length-1]};a.sibling=function(){return this.index==0?null:this.scene[this.index-1]};a.cousin=function(){var b=this.parent;return(b=b&&b.sibling())&&b.children?b.children[this.childIndex][this.index]:null}; +a.render=function(){function b(i,j,l){i.scale=l;if(j=0;k--){var q=l[k];if(!(q.name in c)){c[q.name]=q;switch(q.name){case "data":f=q;break;case "visible":g=q;break;default:d[q.type].push(q);break}}}while(j=j.proto)}var c={},d=[[],[],[],[]],f,g;b(this);b(this.defaults);d[1].reverse();d[3].reverse();var h=this;do for(var i in h.properties)i in c||d[2].push(c[i]={name:i,type:2,value:null});while(h=h.proto);h=d[0].concat(d[1]);for(i=0;ih.id)d[g.name]={id:0,value:g.type&1?g.value.apply(this,c):g.value}}}d=this.binds.data;d=d.type&1?d.value.apply(this,c):d.value;c.unshift(null); +b.length=d.length;for(f=0;f0;k--){n=m[k];n.scale=q;q*=n.scene[n.index].transform.k}if(o.children){k=0;for(m=o.children.length;k=3*Math.PI/2};pv.Wedge.prototype.buildImplied=function(b){if(b.angle==null)b.angle=b.endAngle-b.startAngle;else if(b.endAngle==null)b.endAngle=b.startAngle+b.angle;pv.Mark.prototype.buildImplied.call(this,b)};pv.simulation=function(b){return new pv.Simulation(b)};pv.Simulation=function(b){for(var c=0;c=s,t=q.y>=u;k.leaf=false;switch((t<<1)+x){case 0:k=k.c1||(k.c1=new pv.Quadtree.Node);break;case 1:k=k.c2||(k.c2=new pv.Quadtree.Node);break;case 2:k=k.c3||(k.c3=new pv.Quadtree.Node);break;case 3:k=k.c4||(k.c4=new pv.Quadtree.Node); +break}if(x)o=s;else m=s;if(t)n=u;else r=u;c(k,q,o,n,m,r)}var f,g=Number.POSITIVE_INFINITY,h=g,i=Number.NEGATIVE_INFINITY,j=i;for(f=b;f;f=f.next){if(f.xi)i=f.x;if(f.y>j)j=f.y}f=i-g;var l=j-h;if(f>l)j=h+f;else i=g+l;this.xMin=g;this.yMin=h;this.xMax=i;this.yMax=j;this.root=new pv.Quadtree.Node;for(f=b;f;f=f.next)c(this.root,f,g,h,i,j)};pv.Quadtree.Node=function(){this.leaf=true;this.p=this.c4=this.c3=this.c2=this.c1=null};pv.Force={}; +pv.Force.charge=function(b){function c(k){function q(m){c(m);k.cn+=m.cn;o+=m.cn*m.cx;n+=m.cn*m.cy}var o=0,n=0;k.cn=0;if(!k.leaf){k.c1&&q(k.c1);k.c2&&q(k.c2);k.c3&&q(k.c3);k.c4&&q(k.c4)}if(k.p){k.cn+=b;o+=b*k.p.x;n+=b*k.p.y}k.cx=o/k.cn;k.cy=n/k.cn}function d(k,q,o,n,m,r){var s=k.cx-q.x,u=k.cy-q.y,x=1/Math.sqrt(s*s+u*u);if(k.leaf&&k.p!=q||(m-o)*xg)x=g;k=k.cn*x*x*x;s=s*k;u=u*k;q.fx+=s;q.fy+=u}}else if(!k.leaf){var t=(o+m)*0.5,p=(n+r)*0.5;k.c1&&d(k.c1,q,o,n,t,p);k.c2&&d(k.c2,q,t,n, +m,p);k.c3&&d(k.c3,q,o,p,t,r);k.c4&&d(k.c4,q,t,p,m,r);if(!(xg)x=g;if(k.p&&k.p!=q){k=b*x*x*x;s=s*k;u=u*k;q.fx+=s;q.fy+=u}}}}var f=2,g=1/f,h=500,i=1/h,j=0.9,l={};arguments.length||(b=-40);l.constant=function(k){if(arguments.length){b=Number(k);return l}return b};l.domain=function(k,q){if(arguments.length){f=Number(k);g=1/f;h=Number(q);i=1/h;return l}return[f,h]};l.theta=function(k){if(arguments.length){j=Number(k);return l}return j};l.apply=function(k,q){c(q.root);for(k=k;k;k=k.next)d(q.root, +k,q.xMin,q.yMin,q.xMax,q.yMax)};return l};pv.Force.drag=function(b){var c={};arguments.length||(b=0.1);c.constant=function(d){if(arguments.length){b=d;return c}return b};c.apply=function(d){if(b)for(d=d;d;d=d.next){d.fx-=b*d.vx;d.fy-=b*d.vy}};return c}; +pv.Force.spring=function(b){var c=0.1,d=20,f,g,h={};arguments.length||(b=0.1);h.links=function(i){if(arguments.length){f=i;g=i.map(function(j){return 1/Math.sqrt(Math.max(j.sourceNode.linkDegree,j.targetNode.linkDegree))});return h}return f};h.constant=function(i){if(arguments.length){b=Number(i);return h}return b};h.damping=function(i){if(arguments.length){c=Number(i);return h}return c};h.length=function(i){if(arguments.length){d=Number(i);return h}return d};h.apply=function(){for(var i=0;ig,p=sh){k.c1&&t&&c(k.c1,q,o,n,s,u);k.c2&&p&&c(k.c2,q,s,n,m,u)}if(x){k.c3&&t&&c(k.c3,q,o,u,s,r);k.c4&&p&&c(k.c4,q,s,u,m,r)}}if(k.p&&k.p!=q){o=q.x-k.p.x;n=q.y-k.p.y;m=Math.sqrt(o*o+n*n);r=f+b(k.p);if(mm)m=n}for(var r=0;rc.max?c.max:g.x;if(d)for(g=f;g;g=g.next)g.y=g.yd.max?d.max:g.y};return b};pv.Layout=function(){pv.Panel.call(this)};pv.Layout.prototype=pv.extend(pv.Panel); +pv.Layout.prototype.property=function(b,c){if(!this.hasOwnProperty("properties"))this.properties=pv.extend(this.properties);this.properties[b]=true;this.propertyMethod(b,false,pv.Mark.cast[b]=c);return this}; +pv.Layout.Network=function(){pv.Layout.call(this);var b=this;this.$id=pv.id();(this.node=(new pv.Mark).data(function(){return b.nodes()}).strokeStyle("#1f77b4").fillStyle("#fff").left(function(c){return c.x}).top(function(c){return c.y})).parent=this;this.link=(new pv.Mark).extend(this.node).data(function(c){return[c.sourceNode,c.targetNode]}).fillStyle(null).lineWidth(function(c,d){return d.linkValue*1.5}).strokeStyle("rgba(0,0,0,.2)");this.link.add=function(c){return b.add(pv.Panel).data(function(){return b.links()}).add(c).extend(this)}; +(this.label=(new pv.Mark).extend(this.node).textMargin(7).textBaseline("middle").text(function(c){return c.nodeName||c.nodeValue}).textAngle(function(c){c=c.midAngle;return pv.Wedge.upright(c)?c:c+Math.PI}).textAlign(function(c){return pv.Wedge.upright(c.midAngle)?"left":"right"})).parent=this}; +pv.Layout.Network.prototype=pv.extend(pv.Layout).property("nodes",function(b){return b.map(function(c,d){if(typeof c!="object")c={nodeValue:c};c.index=d;c.linkDegree=0;return c})}).property("links",function(b){return b.map(function(c){if(isNaN(c.linkValue))c.linkValue=isNaN(c.value)?1:c.value;return c})});pv.Layout.Network.prototype.reset=function(){this.$id=pv.id();return this}; +pv.Layout.Network.prototype.buildProperties=function(b,c){if((b.$id||0)=this.$id)return true;b.$id=this.$id;b.links.forEach(function(c){var d=c.linkValue;(c.sourceNode||(c.sourceNode=b.nodes[c.source])).linkDegree+=d;(c.targetNode||(c.targetNode=b.nodes[c.target])).linkDegree+=d})}; +pv.Layout.Hierarchy=function(){pv.Layout.Network.call(this);this.link.strokeStyle("#ccc")};pv.Layout.Hierarchy.prototype=pv.extend(pv.Layout.Network);pv.Layout.Hierarchy.prototype.buildImplied=function(b){if(!b.links)b.links=pv.Layout.Hierarchy.links.call(this);pv.Layout.Network.prototype.buildImplied.call(this,b)};pv.Layout.Hierarchy.links=function(){return this.nodes().filter(function(b){return b.parentNode}).map(function(b){return{sourceNode:b,targetNode:b.parentNode,linkValue:1}})}; +pv.Layout.Hierarchy.NodeLink={buildImplied:function(b){function c(m){return m.parentNode?m.depth*(o-q)+q:0}function d(m){return m.parentNode?(m.breadth-0.25)*2*Math.PI:0}function f(m){switch(i){case "left":return m.depth*l;case "right":return l-m.depth*l;case "top":return m.breadth*l;case "bottom":return l-m.breadth*l;case "radial":return l/2+c(m)*Math.cos(m.midAngle)}}function g(m){switch(i){case "left":return m.breadth*k;case "right":return k-m.breadth*k;case "top":return m.depth*k;case "bottom":return k- +m.depth*k;case "radial":return k/2+c(m)*Math.sin(m.midAngle)}}var h=b.nodes,i=b.orient,j=/^(top|bottom)$/.test(i),l=b.width,k=b.height;if(i=="radial"){var q=b.innerRadius,o=b.outerRadius;if(q==null)q=0;if(o==null)o=Math.min(l,k)/2}for(b=0;bb.dy?0:-Math.PI/2});(this.leaf=(new pv.Mark).extend(this.node).fillStyle(null).strokeStyle(null).visible(function(b){return!b.firstChild})).parent= +this;delete this.link};pv.Layout.Treemap.prototype=pv.extend(pv.Layout.Hierarchy).property("round",Boolean).property("paddingLeft",Number).property("paddingRight",Number).property("paddingTop",Number).property("paddingBottom",Number).property("mode",String).property("order",String);a=pv.Layout.Treemap.prototype;a.defaults=(new pv.Layout.Treemap).extend(pv.Layout.Hierarchy.prototype.defaults).mode("squarify").order("ascending");a.padding=function(b){return this.paddingLeft(b).paddingRight(b).paddingTop(b).paddingBottom(b)}; +a.$size=function(b){return Number(b.nodeValue)};a.size=function(b){this.$size=pv.functor(b);return this}; +a.buildImplied=function(b){function c(r,s,u,x,t,p,v){for(var w=0,y=0;wu)u=v;t+=v}t*=t;s*=s;return Math.max(s*u/t,t/(s*x))}function f(r,s){function u(A){var D=p==y,G=pv.sum(A,o),E=y?n(G/y):0;c(A,G,D,x,t,D?p:E,D?E:v);if(D){t+=E;v-=E}else{x+= +E;p-=E}y=Math.min(p,v);return D}var x=r.x+j,t=r.y+k,p=r.dx-j-l,v=r.dy-k-q;if(m!="squarify")c(r.childNodes,r.size,m=="slice"?true:m=="dice"?false:s&1,x,t,p,v);else{var w=[];s=Infinity;var y=Math.min(p,v),z=p*v/r.size;if(!(r.size<=0)){r.visitBefore(function(A){A.size*=z});for(r=r.childNodes.slice();r.length;){var C=r[r.length-1];if(C.size){w.push(C);z=d(w,y);if(z<=s){r.pop();s=z}else{w.pop();u(w);w.length=0;s=Infinity}}else r.pop()}if(u(w))for(s=0;s0){i(l(C,p,v),p,B);A+=B;D+=B}G+=C.mod;A+=y.mod;E+=w.mod;D+=z.mod;C=h(C);y=g(y)}if(C&&!h(z)){z.thread=C;z.mod+=G-D}if(y&&!g(w)){w.thread=y;w.mod+=A-E;v=p}}return v}function g(p){return p.firstChild||p.thread}function h(p){return p.lastChild||p.thread}function i(p,v,w){var y=v.number-p.number;v.change-=w/y;v.shift+=w;p.change+= +w/y;v.prelim+=w;v.mod+=w}function j(p){var v=0,w=0;for(p=p.lastChild;p;p=p.previousSibling){p.prelim+=v;p.mod+=v;w+=p.change;v+=p.shift+w}}function l(p,v,w){return p.ancestor.parentNode==v.parentNode?p.ancestor:w}function k(p,v){return(v?1:u+1)/(m=="radial"?p:1)}function q(p){return m=="radial"?p.breadth/r:0}function o(p){switch(m){case "left":return p.depth;case "right":return x-p.depth;case "top":case "bottom":return p.breadth+x/2;case "radial":return x/2+p.depth*Math.cos(q(p))}}function n(p){switch(m){case "left":case "right":return p.breadth+ +t/2;case "top":return p.depth;case "bottom":return t-p.depth;case "radial":return t/2+p.depth*Math.sin(q(p))}}if(!pv.Layout.Hierarchy.prototype.buildImplied.call(this,b)){var m=b.orient,r=b.depth,s=b.breadth,u=b.group,x=b.width,t=b.height;b=b.nodes[0];b.visitAfter(function(p,v){p.ancestor=p;p.prelim=0;p.mod=0;p.change=0;p.shift=0;p.number=p.previousSibling?p.previousSibling.number+1:0;p.depth=v});c(b);d(b,-b.prelim,0);b.visitAfter(function(p){p.breadth*=s;p.depth*=r;p.midAngle=q(p);p.x=o(p);p.y=n(p); +if(p.firstChild)p.midAngle+=Math.PI;delete p.breadth;delete p.depth;delete p.ancestor;delete p.prelim;delete p.mod;delete p.change;delete p.shift;delete p.number;delete p.thread})}};pv.Layout.Indent=function(){pv.Layout.Hierarchy.call(this);this.link.interpolate("step-after")};pv.Layout.Indent.prototype=pv.extend(pv.Layout.Hierarchy).property("depth",Number).property("breadth",Number);pv.Layout.Indent.prototype.defaults=(new pv.Layout.Indent).extend(pv.Layout.Hierarchy.prototype.defaults).depth(15).breadth(15); +pv.Layout.Indent.prototype.buildImplied=function(b){function c(i,j,l){i.x=g+l++*f;i.y=h+j++*d;i.midAngle=0;for(i=i.firstChild;i;i=i.nextSibling)j=c(i,j,l);return j}if(!pv.Layout.Hierarchy.prototype.buildImplied.call(this,b)){var d=b.breadth,f=b.depth,g=0,h=0;c(b.nodes[0],1,1)}};pv.Layout.Pack=function(){pv.Layout.Hierarchy.call(this);this.node.radius(function(b){return b.radius}).strokeStyle("rgb(31, 119, 180)").fillStyle("rgba(31, 119, 180, .25)");this.label.textAlign("center");delete this.link}; +pv.Layout.Pack.prototype=pv.extend(pv.Layout.Hierarchy).property("spacing",Number).property("order",String);pv.Layout.Pack.prototype.defaults=(new pv.Layout.Pack).extend(pv.Layout.Hierarchy.prototype.defaults).spacing(1).order("ascending");pv.Layout.Pack.prototype.$radius=function(){return 1};pv.Layout.Pack.prototype.size=function(b){this.$radius=typeof b=="function"?function(){return Math.sqrt(b.apply(this,arguments))}:(b=Math.sqrt(b),function(){return b});return this}; +pv.Layout.Pack.prototype.buildImplied=function(b){function c(o){var n=pv.Mark.stack;n.unshift(null);for(var m=0,r=o.length;m0.0010}var u=Infinity,x=-Infinity,t=Infinity,p=-Infinity,v,w,y,z,C;v=o[0];v.x=-v.radius;v.y=0;n(v);if(o.length>1){w=o[1];w.x=w.radius;w.y=0;n(w);if(o.length>2){y=o[2];g(v,w,y);n(y);m(v,y);v.p= +y;m(y,w);w=v.n;for(var A=3;A0){r(v,z);w=z;A--}else if(D<0){r(z,w);v=z;A--}}}}v=(u+x)/2;w=(t+p)/2;for(A=y=0;Ao.min){o.sim.step(); +q=true}q&&d.render()},42)}else for(l=0;lg)g=j;i.size=i.firstChild?pv.sum(i.childNodes,function(l){return l.size}):c.$size.apply(c,(f[0]=i,f))});f.shift();switch(b.order){case "ascending":d.sort(function(i,j){return i.size-j.size});break;case "descending":d.sort(function(i,j){return j.size-i.size});break}var h=1/g;d.minBreadth=0;d.breadth= +0.5;d.maxBreadth=1;d.visitBefore(function(i){for(var j=i.minBreadth,l=i.maxBreadth-j,k=i.firstChild;k;k=k.nextSibling){k.minBreadth=j;k.maxBreadth=j+=k.size/i.size*l;k.breadth=(j+k.minBreadth)/2}});d.visitAfter(function(i,j){i.minDepth=(j-1)*h;i.maxDepth=i.depth=j*h});pv.Layout.Hierarchy.NodeLink.buildImplied.call(this,b)}};pv.Layout.Partition.Fill=function(){pv.Layout.Partition.call(this);pv.Layout.Hierarchy.Fill.constructor.call(this)};pv.Layout.Partition.Fill.prototype=pv.extend(pv.Layout.Partition); +pv.Layout.Partition.Fill.prototype.buildImplied=function(b){pv.Layout.Partition.prototype.buildImplied.call(this,b)||pv.Layout.Hierarchy.Fill.buildImplied.call(this,b)};pv.Layout.Arc=function(){pv.Layout.Network.call(this);var b,c,d,f=this.buildImplied;this.buildImplied=function(g){f.call(this,g);c=g.directed;b=g.orient=="radial"?"linear":"polar";d=g.orient=="right"||g.orient=="top"};this.link.data(function(g){var h=g.sourceNode;g=g.targetNode;return d!=(c||h.breadth>1)*f:null}).bottom(function(l,k){return d=="mirror"?k&1?null:(k+1>>1)*-f:(k&1||-1)*(k+1>>1)*f}).fillStyle(function(l,k){return(k&1?h:i)((k>>1)+1)});this.band.add=function(l){return b.add(pv.Panel).extend(c).add(l).extend(this)}};pv.Layout.Horizon.prototype=pv.extend(pv.Layout).property("bands",Number).property("mode",String).property("backgroundStyle",pv.color).property("positiveStyle",pv.color).property("negativeStyle",pv.color); +pv.Layout.Horizon.prototype.defaults=(new pv.Layout.Horizon).extend(pv.Layout.prototype.defaults).bands(2).mode("offset").backgroundStyle("white").positiveStyle("#1f77b4").negativeStyle("#d62728"); +pv.Layout.Rollup=function(){pv.Layout.Network.call(this);var b=this,c,d,f=b.buildImplied;this.buildImplied=function(g){f.call(this,g);c=g.$rollup.nodes;d=g.$rollup.links};this.node.data(function(){return c}).size(function(g){return g.nodes.length*20});this.link.interpolate("polar").eccentricity(0.8);this.link.add=function(g){return b.add(pv.Panel).data(function(){return d}).add(g).extend(this)}};pv.Layout.Rollup.prototype=pv.extend(pv.Layout.Network).property("directed",Boolean); +pv.Layout.Rollup.prototype.x=function(b){this.$x=pv.functor(b);return this};pv.Layout.Rollup.prototype.y=function(b){this.$y=pv.functor(b);return this}; +pv.Layout.Rollup.prototype.buildImplied=function(b){function c(r){return i[r]+","+j[r]}if(!pv.Layout.Network.prototype.buildImplied.call(this,b)){var d=b.nodes,f=b.links,g=b.directed,h=d.length,i=[],j=[],l=0,k={},q={},o=pv.Mark.stack,n={parent:this};o.unshift(null);for(var m=0;ml.index?l.index+","+d.index:d.index+","+l.index;(o=q[h])||(o=q[h]={sourceNode:d,targetNode:l,linkValue:0,links:[]});o.links.push(f[m]);o.linkValue+=f[m].linkValue}b.$rollup={nodes:pv.values(k),links:pv.values(q)}}}; +pv.Layout.Matrix=function(){pv.Layout.Network.call(this);var b,c,d,f,g,h=this.buildImplied;this.buildImplied=function(i){h.call(this,i);b=i.nodes.length;c=i.width/b;d=i.height/b;f=i.$matrix.labels;g=i.$matrix.pairs};this.link.data(function(){return g}).left(function(){return c*(this.index%b)}).top(function(){return d*Math.floor(this.index/b)}).width(function(){return c}).height(function(){return d}).lineWidth(1.5).strokeStyle("#fff").fillStyle(function(i){return i.linkValue?"#555":"#eee"}).parent= +this;delete this.link.add;this.label.data(function(){return f}).left(function(){return this.index&1?c*((this.index>>1)+0.5):null}).top(function(){return this.index&1?null:d*((this.index>>1)+0.5)}).textMargin(4).textAlign(function(){return this.index&1?"left":"right"}).textAngle(function(){return this.index&1?-Math.PI/2:0});delete this.node};pv.Layout.Matrix.prototype=pv.extend(pv.Layout.Network).property("directed",Boolean);pv.Layout.Matrix.prototype.sort=function(b){this.$sort=b;return this}; +pv.Layout.Matrix.prototype.buildImplied=function(b){if(!pv.Layout.Network.prototype.buildImplied.call(this,b)){var c=b.nodes,d=b.links,f=this.$sort,g=c.length,h=pv.range(g),i=[],j=[],l={};b.$matrix={labels:i,pairs:j};f&&h.sort(function(m,r){return f(c[m],c[r])});for(var k=0;kl)k=null;if(g){if(k&&g.scene==k.scene&&g.index==k.index)return;pv.Mark.dispatch("unpoint",g.scene,g.index)}if(g=k){pv.Mark.dispatch("point",k.scene,k.index);pv.listen(this.root.canvas(),"mouseout",f)}}function f(k){if(g&&!pv.ancestor(this,k.relatedTarget)){pv.Mark.dispatch("unpoint",g.scene,g.index);g=null}}var g,h=null,i=1,j=1,l=arguments.length?b*b:900;d.collapse=function(k){if(arguments.length){h=String(k);switch(h){case "y":i= +1;j=0;break;case "x":i=0;j=1;break;default:j=i=1;break}return d}return h};return d}; +pv.Behavior.select=function(){function b(j){g=this.index;f=this.scene;i=this.mouse();h=j;h.x=i.x;h.y=i.y;h.dx=h.dy=0;pv.Mark.dispatch("selectstart",f,g)}function c(){if(f){f.mark.context(f,g,function(){var j=this.mouse();h.x=Math.max(0,Math.min(i.x,j.x));h.y=Math.max(0,Math.min(i.y,j.y));h.dx=Math.min(this.width(),Math.max(j.x,i.x))-h.x;h.dy=Math.min(this.height(),Math.max(j.y,i.y))-h.y;this.render()});pv.Mark.dispatch("select",f,g)}}function d(){if(f){pv.Mark.dispatch("selectend",f,g);f=null}}var f, +g,h,i;pv.listen(window,"mousemove",c);pv.listen(window,"mouseup",d);return b}; +pv.Behavior.resize=function(b){function c(l){h=this.index;g=this.scene;j=this.mouse();i=l;switch(b){case "left":j.x=i.x+i.dx;break;case "right":j.x=i.x;break;case "top":j.y=i.y+i.dy;break;case "bottom":j.y=i.y;break}pv.Mark.dispatch("resizestart",g,h)}function d(){if(g){g.mark.context(g,h,function(){var l=this.mouse();i.x=Math.max(0,Math.min(j.x,l.x));i.y=Math.max(0,Math.min(j.y,l.y));i.dx=Math.min(this.parent.width(),Math.max(l.x,j.x))-i.x;i.dy=Math.min(this.parent.height(),Math.max(l.y,j.y))-i.y; +this.render()});pv.Mark.dispatch("resize",g,h)}}function f(){if(g){pv.Mark.dispatch("resizeend",g,h);g=null}}var g,h,i,j;pv.listen(window,"mousemove",d);pv.listen(window,"mouseup",f);return c}; +pv.Behavior.pan=function(){function b(){g=this.index;f=this.scene;i=pv.vector(pv.event.pageX,pv.event.pageY);h=this.transform();j=1/(h.k*this.scale);if(l)l={x:(1-h.k)*this.width(),y:(1-h.k)*this.height()}}function c(){if(f){f.mark.context(f,g,function(){var k=h.translate((pv.event.pageX-i.x)*j,(pv.event.pageY-i.y)*j);if(l){k.x=Math.max(l.x,Math.min(0,k.x));k.y=Math.max(l.y,Math.min(0,k.y))}this.transform(k).render()});pv.Mark.dispatch("pan",f,g)}}function d(){f=null}var f,g,h,i,j,l;b.bound=function(k){if(arguments.length){l= +Boolean(k);return this}return Boolean(l)};pv.listen(window,"mousemove",c);pv.listen(window,"mouseup",d);return b}; +pv.Behavior.zoom=function(b){function c(){var f=this.mouse(),g=pv.event.wheel*b;f=this.transform().translate(f.x,f.y).scale(g<0?1E3/(1E3-g):(1E3+g)/1E3).translate(-f.x,-f.y);if(d){f.k=Math.max(1,f.k);f.x=Math.max((1-f.k)*this.width(),Math.min(0,f.x));f.y=Math.max((1-f.k)*this.height(),Math.min(0,f.y))}this.transform(f).render();pv.Mark.dispatch("zoom",this.scene,this.index)}var d;arguments.length||(b=1/48);c.bound=function(f){if(arguments.length){d=Boolean(f);return this}return Boolean(d)};return c}; +pv.Geo=function(){}; +pv.Geo.projections={mercator:{project:function(b){return{x:b.lng/180,y:b.lat>85?1:b.lat<-85?-1:Math.log(Math.tan(Math.PI/4+pv.radians(b.lat)/2))/Math.PI}},invert:function(b){return{lng:b.x*180,lat:pv.degrees(2*Math.atan(Math.exp(b.y*Math.PI))-Math.PI/2)}}},"gall-peters":{project:function(b){return{x:b.lng/180,y:Math.sin(pv.radians(b.lat))}},invert:function(b){return{lng:b.x*180,lat:pv.degrees(Math.asin(b.y))}}},sinusoidal:{project:function(b){return{x:pv.radians(b.lng)*Math.cos(pv.radians(b.lat))/Math.PI, +y:b.lat/90}},invert:function(b){return{lng:pv.degrees(b.x*Math.PI/Math.cos(b.y*Math.PI/2)),lat:b.y*90}}},aitoff:{project:function(b){var c=pv.radians(b.lng);b=pv.radians(b.lat);var d=Math.acos(Math.cos(b)*Math.cos(c/2));return{x:2*(d?Math.cos(b)*Math.sin(c/2)*d/Math.sin(d):0)/Math.PI,y:2*(d?Math.sin(b)*d/Math.sin(d):0)/Math.PI}},invert:function(b){var c=b.y*Math.PI/2;return{lng:pv.degrees(b.x*Math.PI/2/Math.cos(c)),lat:pv.degrees(c)}}},hammer:{project:function(b){var c=pv.radians(b.lng);b=pv.radians(b.lat); +var d=Math.sqrt(1+Math.cos(b)*Math.cos(c/2));return{x:2*Math.SQRT2*Math.cos(b)*Math.sin(c/2)/d/3,y:Math.SQRT2*Math.sin(b)/d/1.5}},invert:function(b){var c=b.x*3;b=b.y*1.5;var d=Math.sqrt(1-c*c/16-b*b/4);return{lng:pv.degrees(2*Math.atan2(d*c,2*(2*d*d-1))),lat:pv.degrees(Math.asin(d*b))}}},identity:{project:function(b){return{x:b.lng/180,y:b.lat/90}},invert:function(b){return{lng:b.x*180,lat:b.y*90}}}}; +pv.Geo.scale=function(b){function c(m){if(!o||m.lng!=o.lng||m.lat!=o.lat){o=m;m=d(m);n={x:l(m.x),y:k(m.y)}}return n}function d(m){return j.project({lng:m.lng-q.lng,lat:m.lat})}function f(m){m=j.invert(m);m.lng+=q.lng;return m}var g={x:0,y:0},h={x:1,y:1},i=[],j=pv.Geo.projections.identity,l=pv.Scale.linear(-1,1).range(0,1),k=pv.Scale.linear(-1,1).range(1,0),q={lng:0,lat:0},o,n;c.x=function(m){return c(m).x};c.y=function(m){return c(m).y};c.ticks={lng:function(m){var r;if(i.length>1){var s=pv.Scale.linear(); +if(m==undefined)m=10;r=s.domain(i,function(u){return u.lat}).ticks(m);m=s.domain(i,function(u){return u.lng}).ticks(m)}else{r=pv.range(-80,81,10);m=pv.range(-180,181,10)}return m.map(function(u){return r.map(function(x){return{lat:x,lng:u}})})},lat:function(m){return pv.transpose(c.ticks.lng(m))}};c.invert=function(m){return f({x:l.invert(m.x),y:k.invert(m.y)})};c.domain=function(m,r){if(arguments.length){i=m instanceof Array?arguments.length>1?pv.map(m,r):m:Array.prototype.slice.call(arguments); +if(i.length>1){var s=i.map(function(x){return x.lng}),u=i.map(function(x){return x.lat});q={lng:(pv.max(s)+pv.min(s))/2,lat:(pv.max(u)+pv.min(u))/2};s=i.map(d);l.domain(s,function(x){return x.x});k.domain(s,function(x){return x.y})}else{q={lng:0,lat:0};l.domain(-1,1);k.domain(-1,1)}o=null;return this}return i};c.range=function(m,r){if(arguments.length){if(typeof m=="object"){g={x:Number(m.x),y:Number(m.y)};h={x:Number(r.x),y:Number(r.y)}}else{g={x:0,y:0};h={x:Number(m),y:Number(r)}}l.range(g.x,h.x); +k.range(h.y,g.y);o=null;return this}return[g,h]};c.projection=function(m){if(arguments.length){j=typeof m=="string"?pv.Geo.projections[m]||pv.Geo.projections.identity:m;return this.domain(i)}return m};c.by=function(m){function r(){return c(m.apply(this,arguments))}for(var s in c)r[s]=c[s];return r};arguments.length&&c.projection(b);return c}; diff --git a/web/0.3.4/scripts/rdapi.js b/web/0.3.4/scripts/rdapi.js new file mode 100644 index 0000000..2f98bda --- /dev/null +++ b/web/0.3.4/scripts/rdapi.js @@ -0,0 +1,244 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +/*jslint plusplus: false, nomen: false, regexp: false */ +/*global define: false, document: false, hex_md5: false, localStorage: false, console: false */ +"use strict"; + +define([ 'require', 'jquery', 'blade/object', 'blade/jig', 'friendly', 'isoDate', 'md5'], +function (require, $, object, jig, friendly, isoDate) { + + var rdapi, + csrfHeader = 'X-CSRF', + csrfRegExp = /csrf=([^\; ]+)/, + contacts = {}, + jigFunctions = { + contact: function (identity) { + return identity.iid && identity.domain ? contacts[identity.iid] || {} : identity; + }, + contactPhotoUrl: function (contact) { + var url = 'i/face2.png', photos, mailaddr; + contact = jigFunctions.contact(contact); + photos = contact.photos; + if (photos && photos.length) { + url = photos[0].value; + photos.forEach(function (photo) { + if (photo.primary) { + url = photo.value; + } + }); + } else + if (contact.emails && contact.emails.length) { + // gravatar as a default + mailaddr = contact.emails[0].value; + contact.emails.forEach(function (email) { + if (email.primary) { + mailaddr = email.value; + } + }); + url = 'http://www.gravatar.com/avatar/' + hex_md5(mailaddr) + '?s=24 &d=identicon'; + } + return url; + }, + allMessages: function (conversation) { + return [conversation.topic].concat(conversation.messages || []); + }, + friendlyDate: function (isoString) { + return friendly.date(isoDate(isoString)).friendly; + }, + htmlBody: function (text) { + return jig.htmlEscape(text).replace(/\n/g, '
      '); + } + }, + config = { + baseUrl: '/', + apiPath: 'api/', + saveTemplateData: true + }; + + //Register functions with jig + jig.addFn(jigFunctions); + + function normalize(options) { + if (typeof options === 'string') { + options = { + template: options + }; + } else if (options.templateId) { + options.template = jig.cache(options.templateId); + } + + if (!('attachData' in options)) { + options.attachData = rdapi.attachTemplateData; + } + + if (options.emptyTemplateId) { + options.emptyTemplate = jig.cache(options.emptyTemplateId); + } + + return options; + } + + function getCsrfToken() { + var token = csrfRegExp.exec(document.cookie); + return token && token[1] ? token[1] : null; + } + + function ajax(url, options) { + options.url = config.baseUrl + config.apiPath + url; + + object.mixin(options, { + limit: 30, + message_limit: 3, + dataType: 'json', + error: function (xhr, textStatus, errorThrown) { + throw errorThrown; + } + }); + + var oldSuccess = options.success, + csrfToken = getCsrfToken(); + + //Intercept any success calls to get a hold of contacts from + //any API call that returns them. Also be sure to remember any + //user token + options.success = function (json, textStatus, xhr) { + if (json && json.contacts) { + object.mixin(contacts, json.contacts, true); + } + if (oldSuccess) { + return oldSuccess.apply(null, arguments); + } else { + return json; + } + }; + + if (csrfToken) { + options.beforeSend = function (xhr) { + xhr.setRequestHeader(csrfHeader, csrfToken); + }; + } + + $.ajax(options); + } + + function finishApiTemplating(html, options) { + var parentNode = options.forId ? + document.getElementById(options.forId) : null; + if (parentNode) { + parentNode.innerHTML = html; + } + + if (options.onTemplateDone) { + options.onTemplateDone(html); + } + + $(document).trigger('rdapi-done', parentNode); + } + + rdapi = function (url, options) { + options = normalize(options); + + object.mixin(options, { + success: function (json) { + var template = options.template, + emptyTemplate = options.emptyTemplate, + html = ''; + + if (options.forId && template) { + if (options.prop) { + json = jig.getObject(options.prop, json, options); + } + + if (require.isArray(json)) { + if (!json.length) { + html += jig(emptyTemplate, json, options); + } else { + json.forEach(function (item) { + html += jig(template, item, options); + }); + } + } else { + html += jig(!json ? emptyTemplate : template, json, options); + } + + finishApiTemplating(html, options); + } + }, + error: function (xhr, textStatus, errorThrown) { + if (options.emptyTemplate) { + var html = jig(options.emptyTemplate, errorThrown, options); + finishApiTemplating(html, options); + } else { + throw errorThrown; + } + } + }); + + ajax(url, options); + }; + + rdapi.contactPhotoUrl = jigFunctions.contactPhotoUrl; + + rdapi.attachTemplateData = false; + + require.ready(function () { + var apiOptions = []; + + //Build up lists of templates to use. + jig.parse({ + //rdapi adds some additional semantics to some nodes, + //to allow automatic API calls, so pull off those attributes + //to use later for each template parsed. + onBeforeParse: function (node) { + var id = node.id, + api = node.getAttribute('data-rdapi'), + forId = node.getAttribute('data-rdfor'), + prop = node.getAttribute('data-rdprop'); + + if (api) { + apiOptions.push({ + templateId: id, + api: api, + forId: forId, + prop: prop + }); + } + + //Remove the data attributes specific to rdapi + ['data-rdapi', 'data-rdprop', 'data-rdfor'].forEach(function (attr) { + node.removeAttribute(attr); + }); + } + }); + + //Finally, do all the API calls. This is a separate loop because + //all templates need to be strings before the api calls execute in + //case subtemplates are needed. + apiOptions.forEach(function (apiOption) { + rdapi(apiOption.api, apiOption); + }); + }); + + return rdapi; +}); diff --git a/web/0.3.4/scripts/requireplugins-jquery.js b/web/0.3.4/scripts/requireplugins-jquery.js new file mode 100644 index 0000000..ba5655e --- /dev/null +++ b/web/0.3.4/scripts/requireplugins-jquery.js @@ -0,0 +1,214 @@ +/* + RequireJS 0.22.0 Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + Available via the MIT or new BSD license. + see: http://github.com/jrburke/requirejs for details + RequireJS i18n Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + Available via the MIT or new BSD license. + see: http://github.com/jrburke/requirejs for details + RequireJS text Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + Available via the MIT or new BSD license. + see: http://github.com/jrburke/requirejs for details + RequireJS order Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + Available via the MIT or new BSD license. + see: http://github.com/jrburke/requirejs for details + + jQuery JavaScript Library v1.4.4 + http://jquery.com/ + + Copyright 2010, John Resig + Dual licensed under the MIT or GPL Version 2 licenses. + http://jquery.org/license + + Includes Sizzle.js + http://sizzlejs.com/ + Copyright 2010, The Dojo Foundation + Released under the MIT, BSD, and GPL Licenses. + + Date: Thu Nov 11 19:04:53 2010 -0500 +*/ +var require,define; +(function(){function R(y){return ja.call(y)==="[object Function]"}function B(y){return ja.call(y)==="[object Array]"}function Aa(y,E,L){for(var M in E)if(!(M in ra)&&(!(M in y)||L))y[M]=E[M];return G}function $(y,E,L){var M,ha,S;for(M=0;S=E[M];M++){S=typeof S==="string"?{name:S}:S;ha=S.location;if(L&&(!ha||ha.indexOf("/")!==0&&ha.indexOf(":")===-1))S.location=L+"/"+(S.location||S.name);S.location=S.location||S.name;S.lib=S.lib||"lib";S.main=(S.main||"lib/main").replace(W,"");y[S.name]=S}}function J(y){function E(k){var o, +s;for(o=0;s=k[o];o++)if(s==="."){k.splice(o,1);o-=1}else if(s==="..")if(o===1&&(k[2]===".."||k[0]===".."))break;else if(o>0){k.splice(o-1,2);o-=2}}function L(k,o){var s;if(k.charAt(0)===".")if(o){if(ma.packages[o])o=[o];else{o=o.split("/");o=o.slice(0,o.length-1)}k=o.concat(k.split("/"));E(k);s=ma.packages[o=k[0]];k=k.join("/");if(s&&k===o+"/"+s.main)k=o}return k}function M(k,o){var s=k?k.indexOf("!"):-1,x=null,F=o?o.name:null,T=k,N,aa;if(s!==-1){x=k.substring(0,s);k=k.substring(s+1,k.length)}if(x){x= +L(x,F);x=Ya[x]||x}if(k){if(x)N=(s=ea[x])?s.normalize?s.normalize(k,function(ia){return L(ia,F)}):L(k,F):"__$p"+F+"@"+k;else N=L(k,F);aa=Za[N];if(!aa){aa=G.toModuleUrl?G.toModuleUrl(K,k,o):K.nameToUrl(k,null,o);Za[N]=aa}}return{prefix:x,name:N,parentMap:o,url:aa,originalName:T,fullName:x?x+"!"+N:N}}function ha(){var k=true,o=ma.priorityWait,s,x;if(o){for(x=0;s=o[x];x++)if(!va[s]){k=false;break}k&&delete ma.priorityWait}return k}function S(k){return function(o){k.exports=o}}function Qa(k,o,s){return function(){var x= +[].concat(ka.call(arguments,0)),F;if(s&&R(F=x[x.length-1]))F.__requireJsBuild=true;x.push(o);return k.apply(null,x)}}function gb(k,o){o=Qa(K.require,k,o);Aa(o,{nameToUrl:Qa(K.nameToUrl,k),toUrl:Qa(K.toUrl,k),isDefined:Qa(K.isDefined,k),ready:G.ready,isBrowser:G.isBrowser});if(G.paths)o.paths=G.paths;return o}function nb(k){var o,s,x,F,T,N,aa,ia=Ra[k];if(ia)for(F=0;s=ia[F];F++){o=s.fullName;s=M(s.originalName,s.parentMap);s=s.fullName;x=na[o];if(s!==o){na[s]=x;delete na[o];for(T=0;T0;N--){T=s.slice(0,N).join("/");if(x[T]){s.splice(0,N,x[T]);break}else if(T=F[T]){k=k===T.name?T.location+"/"+T.main:T.location+"/"+T.lib;s.splice(0,N,k);break}}o=s.join("/")+(o||".js");o=(o.charAt(0)=== +"/"||o.match(/^\w+:/)?"":aa.baseUrl)+o}}return aa.urlArgs?o+((o.indexOf("?")===-1?"?":"&")+aa.urlArgs):o}};K.jQueryCheck=ab;K.resume=la;return K}function X(){var y,E,L;if(ta&&ta.readyState==="interactive")return ta;y=document.getElementsByTagName("script");for(E=y.length-1;E>-1&&(L=y[E]);E--)if(L.readyState==="interactive")return ta=L;return null}var O=/(\/\*([\s\S]*?)\*\/|\/\/(.*)$)/mg,U=/require\(["']([^'"\s]+)["']\)/g,W=/^\.\//,ja=Object.prototype.toString,ba=Array.prototype,ka=ba.slice,oa=ba.splice, +sa=!!(typeof window!=="undefined"&&navigator&&document),wa=!sa&&typeof importScripts!=="undefined",pa=sa&&navigator.platform==="PLAYSTATION 3"?/^complete$/:/^(complete|loaded)$/,Ca="_r@@",ra={},w={},c=[],ta=null,qb=false,db=false,Ya={text:"require/text",i18n:"require/i18n",order:"require/order"},G;ba={};var eb,ca,Ka,Ta,Ua,Fa,Va,Da,lb,Wa,Ja,Xa,fb,Ga;if(typeof require!=="undefined")if(R(require))return;else ba=require;G=require=function(y,E,L){var M="_",ha;if(!B(y)&&typeof y!=="string"){ha=y;if(B(E)){y= +E;E=L}else y=[]}if(ha&&ha.context)M=ha.context;L=w[M]||(w[M]=J(M));ha&&L.configure(ha);return L.require(y,E)};G.version="0.22.0";G.isArray=B;G.isFunction=R;G.mixin=Aa;G.jsExtRegExp=/^\/|:|\?|\.js$/;ca=G.s={contexts:w,skipAsync:{},isPageLoaded:!sa,readyCalls:[]};if(G.isAsync=G.isBrowser=sa){Ka=ca.head=document.getElementsByTagName("head")[0];if(Ta=document.getElementsByTagName("base")[0])Ka=ca.head=Ta.parentNode}G.onError=function(y){throw y;};G.load=function(y,E,L){var M=y.contextName,ha=y.urlFetched, +S=y.loaded;qb=false;S[E]||(S[E]=false);if(!ha[L]){y.scriptCount+=1;G.attach(L,M,E);ha[L]=true;if(y.jQuery&&!y.jQueryIncremented){y.jQuery.readyWait+=1;y.jQueryIncremented=true}}};define=G.def=function(y,E,L){var M;if(typeof y!=="string"){L=E;E=y;y=null}if(!G.isArray(E)){L=E;E=[]}if(!y&&!E.length&&G.isFunction(L))if(L.length){L.toString().replace(O,"").replace(U,function(ha,S){E.push(S)});E=["require","exports","module"].concat(E)}if(db){M=eb||X();if(!M)return G.onError(new Error("ERROR: No matching script interactive for "+ +L));y||(y=M.getAttribute("data-requiremodule"));M=w[M.getAttribute("data-requirecontext")]}(M?M.defQueue:c).push([y,E,L])};G.execCb=function(y,E,L){return E.apply(null,L)};G.onScriptLoad=function(y){var E=y.currentTarget||y.srcElement,L;if(y.type==="load"||pa.test(E.readyState)){ta=null;y=E.getAttribute("data-requirecontext");L=E.getAttribute("data-requiremodule");w[y].completeLoad(L);E.removeEventListener?E.removeEventListener("load",G.onScriptLoad,false):E.detachEvent("onreadystatechange",G.onScriptLoad)}}; +G.attach=function(y,E,L,M,ha){var S;if(sa){M=M||G.onScriptLoad;S=document.createElement("script");S.type=ha||"text/javascript";S.charset="utf-8";S.async=!ca.skipAsync[y];S.setAttribute("data-requirecontext",E);S.setAttribute("data-requiremodule",L);if(S.addEventListener)S.addEventListener("load",M,false);else{db=true;S.attachEvent("onreadystatechange",M)}S.src=y;eb=S;Ta?Ka.insertBefore(S,Ta):Ka.appendChild(S);eb=null;return S}else if(wa){M=w[E];E=M.loaded;E[L]=false;importScripts(y);M.completeLoad(L)}return null}; +ca.baseUrl=ba.baseUrl;if(sa&&(!ca.baseUrl||!Ka)){Ua=document.getElementsByTagName("script");Va=ba.baseUrlMatch?ba.baseUrlMatch:/(requireplugins-|require-)?jquery[\-\d\.]*(min)?\.js(\W|$)/i;for(Ja=Ua.length-1;Ja>-1&&(Fa=Ua[Ja]);Ja--){if(!Ka)Ka=Fa.parentNode;if(!Wa&&(Wa=Fa.getAttribute("data-main"))){ba.deps=ba.deps?ba.deps.concat(Wa):[Wa];if(!ba.baseUrl&&(Da=Fa.src)){Da=Da.split("/");Da.pop();ca.baseUrl=ba.baseUrl=Da.length?Da.join("/"):"./"}}if(!ca.baseUrl&&(Da=Fa.src))if(lb=Da.match(Va)){ca.baseUrl= +Da.substring(0,lb.index);break}}}G.pageLoaded=function(){if(!ca.isPageLoaded){ca.isPageLoaded=true;Xa&&clearInterval(Xa);if(fb)document.readyState="complete";G.callReady()}};G.checkReadyState=function(){var y=ca.contexts,E;for(E in y)if(!(E in ra))if(y[E].waitCount)return;ca.isDone=true;G.callReady()};G.callReady=function(){var y=ca.readyCalls,E,L,M;if(ca.isPageLoaded&&ca.isDone){if(y.length){ca.readyCalls=[];for(E=0;L=y[E];E++)L()}y=ca.contexts;for(M in y)if(!(M in ra)){E=y[M];if(E.jQueryIncremented){E.jQuery.readyWait-= +1;E.jQueryIncremented=false}}}};G.ready=function(y){ca.isPageLoaded&&ca.isDone?y():ca.readyCalls.push(y);return G};if(sa){if(document.addEventListener){document.addEventListener("DOMContentLoaded",G.pageLoaded,false);window.addEventListener("load",G.pageLoaded,false);if(!document.readyState){fb=true;document.readyState="loading"}}else if(window.attachEvent){window.attachEvent("onload",G.pageLoaded);if(self===self.top)Xa=setInterval(function(){try{if(document.body){document.documentElement.doScroll("left"); +G.pageLoaded()}}catch(y){}},30)}document.readyState==="complete"&&G.pageLoaded()}G(ba);if(typeof setTimeout!=="undefined"){Ga=ca.contexts[ba.context||"_"];Ga.requireWait=true;setTimeout(function(){Ga.requireWait=false;Ga.takeGlobalQueue();Ga.jQueryCheck();Ga.scriptCount||Ga.resume();G.checkReadyState()},0)}})(); +(function(){function R($,J,X,O,U,W){if(J[$]){X.push($);if(J[$]===true||J[$]===1)O.push(U+$+"/"+W)}}function B($,J,X,O,U){J=O+J+"/"+U;require._fileExists($.nameToUrl(J,null))&&X.push(J)}var Aa=/(^.*(^|\/)nls(\/|$))([^\/]*)\/?([^\/]*)/;define("require/i18n",{load:function($,J,X,O){O=O||{};var U=Aa.exec($),W=U[1],ja=U[4],ba=U[5],ka=ja.split("-"),oa=[],sa={},wa,pa,Ca="";if(U[5]){W=U[1];$=W+ba}else{$=$;ba=U[4];ja=O.locale||(O.locale=typeof navigator==="undefined"?"root":(navigator.language||navigator.userLanguage|| +"root").toLowerCase());ka=ja.split("-")}if(O.isBuild){oa.push($);B(J,"root",oa,W,ba);for(wa=0;pa=ka[wa];wa++){Ca+=(Ca?"-":"")+pa;B(J,Ca,oa,W,ba)}J(oa);X()}else J([$],function(ra){var w=[];R("root",ra,w,oa,W,ba);for(wa=0;pa=ka[wa];wa++){Ca+=(Ca?"-":"")+pa;R(Ca,ra,w,oa,W,ba)}J(oa,function(){var c,ta;for(c=w.length-1;c>-1&&(pa=w[c]);c--){ta=ra[pa];if(ta===true||ta===1)ta=J(W+pa+"/"+ba);require.mixin(sa,ta)}X(sa)})})}})})(); +(function(){var R=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],B=/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,Aa=/]*>\s*([\s\S]+)\s*<\/body>/im,$=[];if(!require.textStrip)require.textStrip=function(J){if(J){J=J.replace(B,"");var X=J.match(Aa);if(X)J=X[1]}else J="";return J};if(!require.jsEscape)require.jsEscape=function(J){return J.replace(/(['\\])/g,"\\$1").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g, +"\\r")};if(!require.getXhr)require.getXhr=function(){var J,X,O;if(typeof XMLHttpRequest!=="undefined")return new XMLHttpRequest;else for(X=0;X<3;X++){O=R[X];try{J=new ActiveXObject(O)}catch(U){}if(J){R=[O];break}}if(!J)throw new Error("require.getXhr(): XMLHttpRequest not available");return J};if(!require.fetchText)require.fetchText=function(J,X){var O=require.getXhr();O.open("GET",J,true);O.onreadystatechange=function(){O.readyState===4&&X(O.responseText)};O.send(null)};define("require/text",{load:function(J, +X,O,U){var W=false,ja=J.indexOf("."),ba=J.substring(0,ja),ka=J.substring(ja+1,J.length);ja=ka.indexOf("!");if(ja!==-1){W=ka.substring(ja+1,ka.length);W=W==="strip";ka=ka.substring(0,ja)}X=X.nameToUrl(ba,"."+ka);require.fetchText(X,function(oa){oa=W?require.textStrip(oa):oa;if(U.isBuild&&U.inlineText)$[J]=oa;O(oa)})},write:function(J,X,O){if(X in $){var U=require.jsEscape($[X]);O("define('"+J+"!"+X+"', function () { return '"+U+"';});\n")}}})})(); +(function(){function R(O,U,W){U([O],function(ja){W(function(){return ja})})}function B(O){var U=O.currentTarget||O.srcElement,W;if(O.type==="load"||$.test(U.readyState)){O=U.getAttribute("data-requiremodule");X[O]=true;for(O=0;W=J[O];O++)if(X[W.name])R(W.name,W.req,W.onLoad);else break;O>0&&J.splice(0,O);setTimeout(function(){U.parentNode.removeChild(U)},15)}}var Aa=typeof document!=="undefined"&&typeof window!=="undefined"&&(document.createElement("script").async||window.opera&&Object.prototype.toString.call(window.opera)=== +"[object Opera]"||"MozAppearance"in document.documentElement.style),$=/^(complete|loaded)$/,J=[],X={};define("require/order",{load:function(O,U,W,ja){var ba=U.nameToUrl(O,null);if(ja.isBuild)R(O,U,W);else{require.s.skipAsync[ba]=true;if(Aa)U([O],function(ka){W(function(){return ka})});else if(U.isDefined(O))U([O],function(ka){W(function(){return ka})});else{J.push({name:O,req:U,onLoad:W});require.attach(ba,"",O,B,"script/cache")}}}})})(); +(function(R,B){function Aa(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false"?false:d==="null"?null:!c.isNaN(d)?parseFloat(d):qb.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function $(){return false}function J(){return true}function X(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function O(a){var b,d,e,f,h,m,l,p,A,v,H,Q=[];f=[];h=c.data(this,this.nodeType?"events":"__events__");if(typeof h==="function")h= +h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)H=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var fa=h.live.slice(0);for(l=0;ld)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;H=f.handleObj.origHandler.apply(f.elem,arguments);if(H===false||a.isPropagationStopped()){d=f.level;if(H===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function U(a,b){return(a&&a!=="*"?a+".": +"")+b.replace(Da,"`").replace(lb,"&")}function W(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ja(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(gb.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function ba(a){return c.nodeName(a,"table")? +a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function ka(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this,e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var m in e[h])c.event.add(this,h,e[h][m],e[h][m].data)}}})}function oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)} +function sa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?$a:ob,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a,"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function wa(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||T.test(a)?e(a,h):wa(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)? +e(a,""):c.each(b,function(f,h){wa(a+"["+f+"]",h,d,e)});else e(a,b)}function pa(a,b){var d={};c.each(tb.concat.apply([],tb.slice(0,b)),function(){d[this]=a});return d}function Ca(a){if(!rb[a]){var b=c("<"+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";rb[a]=d}return rb[a]}function ra(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var w=R.document,c=function(){function a(){if(!b.isReady){try{w.documentElement.doScroll("left")}catch(j){setTimeout(a, +1);return}b.ready()}}var b=function(j,t){return new b.fn.init(j,t)},d=R.jQuery,e=R.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,m=/\S/,l=/^\s+/,p=/\s+$/,A=/\W/,v=/\d/,H=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,Q=/^[\],:{}\s]*$/,fa=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,C=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,da=/(?:^|:|,)(?:\s*\[)+/g,xa=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,q=navigator.userAgent,r=false, +u=[],D,I=Object.prototype.toString,Y=Object.prototype.hasOwnProperty,ua=Array.prototype.push,ya=Array.prototype.slice,za=String.prototype.trim,V=Array.prototype.indexOf,Pa={};b.fn=b.prototype={init:function(j,t){var z,P;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!t&&w.body){this.context=w;this[0]=w.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((z=h.exec(j))&&(z[1]||!t))if(z[1]){P=t?t.ownerDocument||t:w;if(j=H.exec(j))if(b.isPlainObject(t)){j= +[w.createElement(j[1])];b.fn.attr.call(j,t,true)}else j=[P.createElement(j[1])];else{j=b.buildFragment([z[1]],[P]);j=(j.cacheable?j.fragment.cloneNode(true):j.fragment).childNodes}return b.merge(this,j)}else{if((t=w.getElementById(z[2]))&&t.parentNode){if(t.id!==z[2])return f.find(j);this.length=1;this[0]=t}this.context=w;this.selector=j;return this}else if(!t&&!A.test(j)){this.selector=j;this.context=w;j=w.getElementsByTagName(j);return b.merge(this,j)}else return!t||t.jquery?(t||f).find(j):b(t).find(j); +else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length},toArray:function(){return ya.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,t,z){var P=b();b.isArray(j)?ua.apply(P,j):b.merge(P,j);P.prevObject=this;P.context=this.context;if(t==="find")P.selector=this.selector+(this.selector?" ": +"")+z;else if(t)P.selector=this.selector+"."+t+"("+z+")";return P},each:function(j,t){return b.each(this,j,t)},ready:function(j){b.bindReady();if(b.isReady)j.call(w,b);else u&&u.push(j);return this},eq:function(j){return j===-1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(ya.apply(this,arguments),"slice",ya.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(t,z){return j.call(t, +z,t)}))},end:function(){return this.prevObject||b(null)},push:ua,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,t,z,P,ga,Z=arguments[0]||{},qa=1,Ba=arguments.length,sb=false;if(typeof Z==="boolean"){sb=Z;Z=arguments[1]||{};qa=2}if(typeof Z!=="object"&&!b.isFunction(Z))Z={};if(Ba===qa){Z=this;--qa}for(;qa0))if(u){var t=0,z=u;for(u=null;j=z[t++];)j.call(w,b);b.fn.trigger&&b(w).trigger("ready").unbind("ready")}}},bindReady:function(){if(!r){r=true;if(w.readyState=== +"complete")return setTimeout(b.ready,1);if(w.addEventListener){w.addEventListener("DOMContentLoaded",D,false);R.addEventListener("load",b.ready,false)}else if(w.attachEvent){w.attachEvent("onreadystatechange",D);R.attachEvent("onload",b.ready);var j=false;try{j=R.frameElement==null}catch(t){}w.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in +j},isNaN:function(j){return j==null||!v.test(j)||isNaN(j)},type:function(j){return j==null?String(j):Pa[I.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&&!Y.call(j,"constructor")&&!Y.call(j.constructor.prototype,"isPrototypeOf"))return false;var t;for(t in j);return t===B||Y.call(j,t)},isEmptyObject:function(j){for(var t in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!== +"string"||!j)return null;j=b.trim(j);if(Q.test(j.replace(fa,"@").replace(C,"]").replace(da,"")))return R.JSON&&R.JSON.parse?R.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&&m.test(j)){var t=w.getElementsByTagName("head")[0]||w.documentElement,z=w.createElement("script");z.type="text/javascript";if(b.support.scriptEval)z.appendChild(w.createTextNode(j));else z.text=j;t.insertBefore(z,t.firstChild);t.removeChild(z)}},nodeName:function(j, +t){return j.nodeName&&j.nodeName.toUpperCase()===t.toUpperCase()},each:function(j,t,z){var P,ga=0,Z=j.length,qa=Z===B||b.isFunction(j);if(z)if(qa)for(P in j){if(t.apply(j[P],z)===false)break}else for(;ga
      a";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],m=w.createElement("select"),l=m.appendChild(w.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length, +htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:l.selected,deleteExpando:true,optDisabled:false,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};m.disabled=true;c.support.optDisabled= +!l.disabled;b.type="text/javascript";try{b.appendChild(w.createTextNode("window."+e+"=1;"))}catch(p){}a.insertBefore(b,a.firstChild);if(R[e]){c.support.scriptEval=true;delete R[e]}try{delete b.test}catch(A){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function v(){c.support.noCloneEvent=false;d.detachEvent("onclick",v)});d.cloneNode(true).fireEvent("onclick")}d=w.createElement("div");d.innerHTML=""; +a=w.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var v=w.createElement("div");v.style.width=v.style.paddingLeft="1px";w.body.appendChild(v);c.boxModel=c.support.boxModel=v.offsetWidth===2;if("zoom"in v.style){v.style.display="inline";v.style.zoom=1;c.support.inlineBlockNeedsLayout=v.offsetWidth===2;v.style.display="";v.innerHTML="
      ";c.support.shrinkWrapBlocks=v.offsetWidth!== +2}v.innerHTML="
      t
      ";var H=v.getElementsByTagName("td");c.support.reliableHiddenOffsets=H[0].offsetHeight===0;H[0].style.display="";H[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&H[0].offsetHeight===0;v.innerHTML="";w.body.removeChild(v).style.display="none"});a=function(v){var H=w.createElement("div");v="on"+v;var Q=v in H;if(!Q){H.setAttribute(v,"return;");Q=typeof H[v]==="function"}return Q}; +c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ta={},qb=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==R?ta:a;var e=a.nodeType,f=e?a[c.expando]:null,h=c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h, +b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==R?ta:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando);else if(d)delete f[e];else for(var m in a)delete a[m]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()]; +if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,m=e.length;h-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one";if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h=0;else if(c.nodeName(this,"select")){var H=c.makeArray(v);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),H)>=0});if(!H.length)this.selectedIndex=-1}else this.value=v}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d); +e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=eb.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&ca.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:Ka.test(a.nodeName)||Ta.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&& +e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var Fa=/\.(.*)$/,Va=/^(?:textarea|input|select)$/i,Da=/\./g,lb=/ /g,Wa=/[^\w\s.|`]/g,Ja=function(a){return a.replace(Wa,"\\$&")},Xa={focusin:0,focusout:0};c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==R&&!a.frameElement)a= +R;if(d===false)d=$;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var m=a.nodeType?"events":"__events__",l=h[m],p=h.handle;if(typeof l==="function"){p=l.handle;l=l.events}else if(!l){a.nodeType||(h[m]=h=function(){});h.events=l={}}if(!p)h.handle=p=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(p.elem,arguments):B};p.elem=a;b=b.split(" ");for(var A=0,v;m=b[A++];){h=f?c.extend({},f):{handler:d,data:e};if(m.indexOf(".")> +-1){v=m.split(".");m=v.shift();h.namespace=v.slice(0).sort().join(".")}else{v=[];h.namespace=""}h.type=m;if(!h.guid)h.guid=d.guid;var H=l[m],Q=c.event.special[m]||{};if(!H){H=l[m]=[];if(!Q.setup||Q.setup.call(a,e,v,p)===false)if(a.addEventListener)a.addEventListener(m,p,false);else a.attachEvent&&a.attachEvent("on"+m,p)}if(Q.add){Q.add.call(a,h);if(!h.handler.guid)h.handler.guid=d.guid}H.push(h);c.event.global[m]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType=== +8)){if(d===false)d=$;var f,h,m=0,l,p,A,v,H,Q,fa=a.nodeType?"events":"__events__",C=c.data(a),da=C&&C[fa];if(C&&da){if(typeof da==="function"){C=da;da=da.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in da)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[m++];){v=f;l=f.indexOf(".")<0;p=[];if(!l){p=f.split(".");f=p.shift();A=new RegExp("(^|\\.)"+c.map(p.slice(0).sort(),Ja).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(H=da[f])if(d){v=c.event.special[f]|| +{};for(h=e||0;h=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType? +c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var m;e=a.target;var l=f.replace(Fa,""),p=c.nodeName(e,"a")&&l==="click",A=c.event.special[l]||{};if((!A._default||A._default.call(d,a)===false)&&!p&&!(e&&e.nodeName&& +c.noData[e.nodeName.toLowerCase()])){try{if(e[l]){if(m=e["on"+l])e["on"+l]=null;c.event.triggered=true;e[l]()}}catch(v){}if(m)e["on"+l]=m;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||R.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=new RegExp("(^|\\.)"+d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType? +"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var m=d.length;f-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},L=function(a,b){var d=a.target,e,f;if(!(!Va.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=E(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired= +B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:L,beforedeactivate:L,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return L.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return L.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",E(a))}},setup:function(){if(this.type=== +"file")return false;for(var a in y)c.event.add(this,a+".specialChange",y[a]);return Va.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return Va.test(this.nodeName)}};y=c.event.special.change.filters;y.focus=y.beforeactivate}w.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){Xa[b]++===0&&w.addEventListener(a,d,true)},teardown:function(){--Xa[b]=== +0&&w.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var m=b==="one"?c.proxy(f,function(p){c(this).unbind(p,m);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var l=this.length;h0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});R.attachEvent&&!R.addEventListener&&c(R).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}}); +(function(){function a(g,i,n,q,r,u){r=0;for(var D=q.length;r0){Y=I;break}}I=I[g]}q[r]=Y}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,m=true;[0,0].sort(function(){m=false;return 0});var l=function(g,i,n,q){n=n||[];var r=i=i||w;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var u,D,I,Y,ua,ya=true,za=l.isXML(i),V=[],Pa=g;do{d.exec("");if(u=d.exec(Pa)){Pa=u[3];V.push(u[1]);if(u[2]){Y= +u[3];break}}}while(u);if(V.length>1&&A.exec(g))if(V.length===2&&p.relative[V[0]])D=xa(V[0]+V[1],i);else for(D=p.relative[V[0]]?[i]:l(V.shift(),i);V.length;){g=V.shift();if(p.relative[g])g+=V.shift();D=xa(g,D)}else{if(!q&&V.length>1&&i.nodeType===9&&!za&&p.match.ID.test(V[0])&&!p.match.ID.test(V[V.length-1])){u=l.find(V.shift(),i,za);i=u.expr?l.filter(u.expr,u.set)[0]:u.set[0]}if(i){u=q?{expr:V.pop(),set:Q(q)}:l.find(V.pop(),V.length===1&&(V[0]==="~"||V[0]==="+")&&i.parentNode?i.parentNode:i,za);D= +u.expr?l.filter(u.expr,u.set):u.set;if(V.length>0)I=Q(D);else ya=false;for(;V.length;){u=ua=V.pop();if(p.relative[ua])u=V.pop();else ua="";if(u==null)u=i;p.relative[ua](I,u,za)}}else I=[]}I||(I=D);I||l.error(ua||g);if(f.call(I)==="[object Array]")if(ya)if(i&&i.nodeType===1)for(g=0;I[g]!=null;g++){if(I[g]&&(I[g]===true||I[g].nodeType===1&&l.contains(i,I[g])))n.push(D[g])}else for(g=0;I[g]!=null;g++)I[g]&&I[g].nodeType===1&&n.push(D[g]);else n.push.apply(n,I);else Q(I,n);if(Y){l(Y,r,n,q);l.uniqueSort(n)}return n}; +l.uniqueSort=function(g){if(C){h=m;g.sort(C);if(h)for(var i=1;i0};l.find=function(g,i,n){var q;if(!g)return[];for(var r=0,u=p.order.length;r":function(g,i){var n,q=typeof i==="string",r=0,u=g.length;if(q&&!/\W/.test(i))for(i=i.toLowerCase();r=0))n||q.push(D);else if(n)i[u]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&& +"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n,q,r,u){i=g[1].replace(/\\/g,"");if(!u&&p.attrMap[i])g[1]=p.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,q,r){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=l(g[3],null,null,i);else{g=l.filter(g[3],i,n,true^r);n||q.push.apply(q,g);return false}else if(p.match.POS.test(g[0])||p.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}}, +filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!l(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"=== +g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,q){return i===q.length-1},even:function(g,i){return i%2=== +0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return in[3]-0},nth:function(g,i,n){return n[3]-0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,q){var r=i[1],u=p.filters[r];if(u)return u(g,n,i,q);else if(r==="contains")return(g.textContent||g.innerText||l.getText([g])||"").indexOf(i[3])>=0;else if(r==="not"){i=i[3];n=0;for(q=i.length;n= +0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];g=p.attrHandle[n]?p.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);n=g+"";var q=i[2];i=i[4];return g==null?q==="!=":q==="="?n===i:q==="*="?n.indexOf(i)>=0:q==="~="?(" "+n+" ").indexOf(i)>=0:!i?n&&g!==false:q==="!="?n!==i:q==="^="? +n.indexOf(i)===0:q==="$="?n.substr(n.length-i.length)===i:q==="|="?n===i||n.substr(0,i.length+1)===i+"-":false},POS:function(g,i,n,q){var r=p.setFilters[i[2]];if(r)return r(g,n,i,q)}}},A=p.match.POS,v=function(g,i){return"\\"+(i-0+1)};for(var H in p.match){p.match[H]=new RegExp(p.match[H].source+/(?![^\[]*\])(?![^\(]*\))/.source);p.leftMatch[H]=new RegExp(/(^(?:.|\r|\n)*?)/.source+p.match[H].source.replace(/\\(\d+)/g,v))}var Q=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g); +return i}return g};try{Array.prototype.slice.call(w.documentElement.childNodes,0)}catch(fa){Q=function(g,i){var n=0;i=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(i,g);else if(typeof g.length==="number")for(var q=g.length;n";n.insertBefore(g,n.firstChild);if(w.getElementById(i)){p.find.ID=function(q,r,u){if(typeof r.getElementById!=="undefined"&&!u)return(r=r.getElementById(q[1]))?r.id===q[1]||typeof r.getAttributeNode!=="undefined"&&r.getAttributeNode("id").nodeValue=== +q[1]?[r]:B:[]};p.filter.ID=function(q,r){var u=typeof q.getAttributeNode!=="undefined"&&q.getAttributeNode("id");return q.nodeType===1&&u&&u.nodeValue===r}}n.removeChild(g);n=g=null})();(function(){var g=w.createElement("div");g.appendChild(w.createComment(""));if(g.getElementsByTagName("*").length>0)p.find.TAG=function(i,n){n=n.getElementsByTagName(i[1]);if(i[1]==="*"){i=[];for(var q=0;n[q];q++)n[q].nodeType===1&&i.push(n[q]);n=i}return n};g.innerHTML="";if(g.firstChild&&typeof g.firstChild.getAttribute!== +"undefined"&&g.firstChild.getAttribute("href")!=="#")p.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();w.querySelectorAll&&function(){var g=l,i=w.createElement("div");i.innerHTML="

      ";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){l=function(q,r,u,D){r=r||w;q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!D&&!l.isXML(r))if(r.nodeType===9)try{return Q(r.querySelectorAll(q),u)}catch(I){}else if(r.nodeType===1&&r.nodeName.toLowerCase()!== +"object"){var Y=r.getAttribute("id"),ua=Y||"__sizzle__";Y||r.setAttribute("id",ua);try{return Q(r.querySelectorAll("#"+ua+" "+q),u)}catch(ya){}finally{Y||r.removeAttribute("id")}}return g(q,r,u,D)};for(var n in g)l[n]=g[n];i=null}}();(function(){var g=w.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(w.documentElement,"[test!='']:sizzle")}catch(q){n=true}if(i)l.matchesSelector=function(r,u){u=u.replace(/\=\s*([^'"\]]*)\s*\]/g, +"='$1']");if(!l.isXML(r))try{if(n||!p.match.PSEUDO.test(u)&&!/!=/.test(u))return i.call(r,u)}catch(D){}return l(u,null,null,[r]).length>0}})();(function(){var g=w.createElement("div");g.innerHTML="
      ";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){p.order.splice(1,0,"CLASS");p.find.CLASS=function(i,n,q){if(typeof n.getElementsByClassName!=="undefined"&& +!q)return n.getElementsByClassName(i[1])};g=null}}})();l.contains=w.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:w.documentElement.compareDocumentPosition?function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};l.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var xa=function(g,i){var n,q=[],r="";for(i=i.nodeType?[i]:i;n=p.match.PSEUDO.exec(g);){r+=n[0];g=g.replace(p.match.PSEUDO,"")}g= +p.relative[g]?g+"*":g;n=0;for(var u=i.length;n0)for(var h=d;h0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var m,l={},p=1;if(h&&a.length){e=0;for(f=a.length;e-1:c(h).is(a))d.push({selector:m,elem:h,level:p})}h=h.parentNode;p++}}return d}m=hb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a|| +typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(W(a[0])||W(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", +d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? +a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,e){var f=c.map(this,b,d);ha.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||Qa.test(e))&&S.test(a))f=f.reverse();return this.pushStack(f,a,nb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a= +a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&&e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Sa=/ jQuery\d+="(?:\d+|null)"/g,Na=/^\s+/,La=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,ab=/<([\w:]+)/,jb=/\s]+\/)>/g,la={option:[1,""],legend:[1,"
      ","
      "],thead:[1,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],col:[2,"","
      "],area:[1,"",""],_default:[0,"",""]};la.optgroup=la.option;la.tbody=la.tfoot=la.colgroup=la.caption=la.thead;la.th=la.td;if(!c.support.htmlSerialize)la._default= +[1,"div
      ","
      "];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||w).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d= +this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments, +true,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments, +false,function(b){this.parentNode.insertBefore(b,this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Sa,"").replace(K,'="$1">').replace(Na,"")],e)[0]}else return this.cloneNode(true)});if(a===true){ka(this,b);ka(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Sa,""):null; +else if(typeof a==="string"&&!cb.test(a)&&(c.support.leadingWhitespace||!Na.test(a))&&!la[(ab.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(La,"<$1>");try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?h.cloneNode(true):h)}l.length&&c.each(l, +oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:w;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===w&&!cb.test(a[0])&&(c.support.checkClone||!kb.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"}, +function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f0?this.clone(true):this).get();c(d[f])[b](m);e=e.concat(m)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||w;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||w;for(var f=[],h=0,m;(m=a[h])!=null;h++){if(typeof m=== +"number")m+="";if(m){if(typeof m==="string"&&!bb.test(m))m=b.createTextNode(m);else if(typeof m==="string"){m=m.replace(La,"<$1>");var l=(ab.exec(m)||["",""])[1].toLowerCase(),p=la[l]||la._default,A=p[0],v=b.createElement("div");for(v.innerHTML=p[1]+m+p[2];A--;)v=v.lastChild;if(!c.support.tbody){A=jb.test(m);l=l==="table"&&!A?v.firstChild&&v.firstChild.childNodes:p[1]===""&&!A?v.childNodes:[];for(p=l.length-1;p>=0;--p)c.nodeName(l[p],"tbody")&&!l[p].childNodes.length&&l[p].parentNode.removeChild(l[p])}!c.support.leadingWhitespace&& +Na.test(m)&&v.insertBefore(b.createTextNode(Na.exec(m)[0]),v.firstChild);m=v.childNodes}if(m.nodeType)f.push(m);else f=c.merge(f,m)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script"))));d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special, +h=c.support.deleteExpando,m=0,l;(l=a[m])!=null;m++)if(!(l.nodeName&&c.noData[l.nodeName.toLowerCase()]))if(d=l[c.expando]){if((b=e[d])&&b.events)for(var p in b.events)f[p]?c.event.remove(l,p):c.removeEvent(l,p,b.handle);if(h)delete l[c.expando];else l.removeAttribute&&l.removeAttribute(c.expando);delete e[d]}}});var ma=/alpha\([^)]*\)/i,Oa=/opacity=([^)]*)/,Ma=/-([a-z])/ig,Za=/([A-Z])/g,ea=/^-?\d+(?:px)?$/i,va=/^-?\d/,Ia={position:"absolute",visibility:"hidden",display:"block"},$a=["Left","Right"], +ob=["Top","Bottom"],na,Ha,Ea,Ra=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){a=na(a,"opacity","opacity");return a===""?"1":a}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true,zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a, +b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),m=a.style,l=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!l||!("set"in l)||(d=l.set(a,d))!==B)try{m[b]=d}catch(p){}}}else{if(l&&"get"in l&&(f=l.get(a,false,e))!==B)return f;return m[b]}}},css:function(a,b,d){var e,f=c.camelCase(b),h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(na)return na(a, +b,f)},swap:function(a,b,d){var e={};for(var f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(Ma,Ra)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=sa(d,b,f);else c.swap(d,Ia,function(){h=sa(d,b,f)});if(h<=0){h=na(d,b,b);if(h==="0px"&&Ea)h=Ea(d,b,b);if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px": +h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(ea.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return Oa.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){a=a.style;a.zoom=1;b=c.isNaN(b)?"":"alpha(opacity="+b*100+")";var d=a.filter||"";a.filter=ma.test(d)?d.replace(ma,b):a.filter+" "+b}};if(w.defaultView&&w.defaultView.getComputedStyle)Ha= +function(a,b,d){var e;d=d.replace(Za,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(w.documentElement.currentStyle)Ea=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!ea.test(f)&&va.test(f)){d=h.left;e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left= +d;a.runtimeStyle.left=e}return f===""?"auto":f};na=Ha||Ea;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var k=c.now(),o=/)<[^<]*)*<\/script>/gi,s=/^(?:select|textarea)/i,x=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i, +F=/^(?:GET|HEAD)$/,T=/\[\]$/,N=/\=\?(&|$)/,aa=/\?/,ia=/([?&])_=[^&]*/,ib=/^(\w+:)?\/\/([^\/?#]+)/,pb=/%20/g,wb=/#.*$/,ub=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&ub)return ub.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b, +complete:function(m,l){if(l==="success"||l==="notmodified")h.html(f?c("
      ").append(m.responseText.replace(o,"")).find(f):m.responseText);d&&h.each(d,[m.responseText,l,m])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||s.test(this.nodeName)||x.test(this.type))}).map(function(a,b){a=c(this).val(); +return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a, +b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new R.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}}, +ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),m=F.test(h);b.url=b.url.replace(wb,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")N.test(b.url)||(b.url+=(aa.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data||!N.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&& +(b.data&&N.test(b.data)||N.test(b.url))){d=b.jsonpCallback||"jsonp"+k++;if(b.data)b.data=(b.data+"").replace(N,"="+d+"$1");b.url=b.url.replace(N,"="+d+"$1");b.dataType="script";var l=R[d];R[d]=function(q){if(c.isFunction(l))l(q);else{R[d]=B;try{delete R[d]}catch(r){}}f=q;c.handleSuccess(b,C,e,f);c.handleComplete(b,C,e,f);v&&v.removeChild(H)}}if(b.dataType==="script"&&b.cache===null)b.cache=false;if(b.cache===false&&m){var p=c.now(),A=b.url.replace(ia,"$1_="+p);b.url=A+(A===b.url?(aa.test(b.url)?"&": +"?")+"_="+p:"")}if(b.data&&m)b.url+=(aa.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");p=(p=ib.exec(b.url))&&(p[1]&&p[1].toLowerCase()!==location.protocol||p[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&p){var v=w.getElementsByTagName("head")[0]||w.documentElement,H=w.createElement("script");if(b.scriptCharset)H.charset=b.scriptCharset;H.src=b.url;if(!d){var Q=false;H.onload=H.onreadystatechange=function(){if(!Q&&(!this.readyState||this.readyState=== +"loaded"||this.readyState==="complete")){Q=true;c.handleSuccess(b,C,e,f);c.handleComplete(b,C,e,f);H.onload=H.onreadystatechange=null;v&&H.parentNode&&v.removeChild(H)}}}v.insertBefore(H,v.firstChild);return B}var fa=false,C=b.xhr();if(C){b.username?C.open(h,b.url,b.async,b.username,b.password):C.open(h,b.url,b.async);try{if(b.data!=null&&!m||a&&a.contentType)C.setRequestHeader("Content-Type",b.contentType);if(b.ifModified){c.lastModified[b.url]&&C.setRequestHeader("If-Modified-Since",c.lastModified[b.url]); +c.etag[b.url]&&C.setRequestHeader("If-None-Match",c.etag[b.url])}p||C.setRequestHeader("X-Requested-With","XMLHttpRequest");C.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(da){}if(b.beforeSend&&b.beforeSend.call(b.context,C,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");C.abort();return false}b.global&&c.triggerGlobal(b,"ajaxSend",[C,b]);var xa=C.onreadystatechange=function(q){if(!C||C.readyState===0|| +q==="abort"){fa||c.handleComplete(b,C,e,f);fa=true;if(C)C.onreadystatechange=c.noop}else if(!fa&&C&&(C.readyState===4||q==="timeout")){fa=true;C.onreadystatechange=c.noop;e=q==="timeout"?"timeout":!c.httpSuccess(C)?"error":b.ifModified&&c.httpNotModified(C,b.url)?"notmodified":"success";var r;if(e==="success")try{f=c.httpData(C,b.dataType,b)}catch(u){e="parsererror";r=u}if(e==="success"||e==="notmodified")d||c.handleSuccess(b,C,e,f);else c.handleError(b,C,e,r);d||c.handleComplete(b,C,e,f);q==="timeout"&& +C.abort();if(b.async)C=null}};try{var g=C.abort;C.abort=function(){C&&Function.prototype.call.call(g,C);xa("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){C&&!fa&&xa("timeout")},b.timeout);try{C.send(m||b.data==null?null:b.data)}catch(n){c.handleError(b,C,null,n);c.handleComplete(b,C,e,f)}b.async||xa();return C}},param:function(a,b){var d=[],e=function(h,m){m=c.isFunction(m)?m():m;d[d.length]=encodeURIComponent(h)+"="+encodeURIComponent(m)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)|| +a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)wa(f,a[f],b,e);return d.join("&").replace(pb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess",[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a, +"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304}, +httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}});if(R.ActiveXObject)c.ajaxSettings.xhr=function(){if(R.location.protocol!=="file:")try{return new R.XMLHttpRequest}catch(a){}try{return new R.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}; +c.support.ajax=!!c.ajaxSettings.xhr();var rb={},xb=/^(?:toggle|show|hide)$/,yb=/^([+\-]=)?([\d+.\-]+)(.*)$/,mb,tb=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(pa("show",3),a,b,d);else{d=0;for(var e=this.length;d=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:pa("show",1),slideUp:pa("hide",1),slideToggle:pa("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b,d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a, +easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a*Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype= +{update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-10000?a:0},custom:function(a,b,d){function e(m){return f.step(m)}var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos= +this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!mb)mb=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= +this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(l,p){f.style["overflow"+p]=h.overflow[l]})}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var m in this.options.curAnim)c.style(this.elem,m,this.options.orig[m]);this.options.complete.call(this.elem)}return false}else{a= +b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b
      "; +a.insertBefore(b,a.firstChild);d=b.firstChild;e=d.firstChild;f=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=e.offsetTop!==5;this.doesAddBorderForTableAndCells=f.offsetTop===5;e.style.position="fixed";e.style.top="20px";this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15;e.style.position=e.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==h;a.removeChild(b); +c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.css(a,"marginTop"))||0;d+=parseFloat(c.css(a,"marginLeft"))||0}return{top:b,left:d}},setOffset:function(a,b,d){var e=c.css(a,"position");if(e==="static")a.style.position="relative";var f=c(a),h=f.offset(),m=c.css(a,"top"),l=c.css(a,"left"),p=e==="absolute"&&c.inArray("auto",[m,l])>-1;e={};var A={};if(p)A=f.position();m=p?A.top:parseInt(m, +10)||0;l=p?A.left:parseInt(l,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+m;if(b.left!=null)e.left=b.left-h.left+l;"using"in b?b.using.call(a,e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=vb.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0], +"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||w.body;a&&!vb.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=ra(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=ra(f))?"pageXOffset"in +h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(m){var l=c(this);l[d](e.call(this, +m,l[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}});typeof define!=="undefined"&&define("jquery",[],function(){return c})})(window); diff --git a/web/0.3.4/scripts/rssFeed.js b/web/0.3.4/scripts/rssFeed.js new file mode 100644 index 0000000..44e8594 --- /dev/null +++ b/web/0.3.4/scripts/rssFeed.js @@ -0,0 +1,71 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +/*jslint indent: 2, plusplus: false */ +/*global define: false, window: false, document: false */ +"use strict"; + +define([], function () { + + var masterCallback; + + //Callback handler for JSONP feed response from Google. + window.onRssFeedLoad = function (x, data) { + var title, link, i, entry; + if (data && data.feed && data.feed.entries) { + for (i = 0; (entry = data.feed.entries[i]); i++) { + if (entry.categories && entry.categories.indexOf('Sharing') !== -1) { + link = entry.link; + title = entry.title; + break; + } + } + } + + if (link && masterCallback) { + masterCallback(title, link); + } + }; + + /** + * Fetches RSS feed and gives back the title and link for the first + * "Sharing" category RSS feed entry. Calls the callback with the + * string values for title and link as function arguments. + * Only calls the callback if there is a match found. + * @param {Function} callback + */ + function rssFeed(callback) { + masterCallback = callback; + + //Fetch the feed. + var node = document.createElement("script"); + node.charset = "utf-8"; + node.async = true; + node.src = 'https://www.google.com/uds/Gfeeds?v=1.0&callback=onRssFeedLoad&context=' + + '&output=json&' + + 'q=http%3A%2F%2Fmozillalabs.com%2Fmessaging%2Ffeed%2F'; + document.getElementsByTagName('head')[0].appendChild(node); + } + + return rssFeed; +}); diff --git a/web/0.3.4/scripts/services.js b/web/0.3.4/scripts/services.js new file mode 100644 index 0000000..0eaea8a --- /dev/null +++ b/web/0.3.4/scripts/services.js @@ -0,0 +1,290 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +/*jslint indent: 2 */ +/*global define: false, window: false, location: true, localStorage: false, + opener: false, setTimeout: false, navigator: false */ + +'use strict'; + +define([ 'blade/object', 'storage'], +function (object, storage) { + + var newHotness = parseFloat(navigator.userAgent.split('Firefox/')[1]) >= 4, + store = storage(), + svcs, prop; + + function SvcBase(name, options) { + if (!name) { + return; + } + this.name = name; + this.type = name.replace(/\s/g, '').toLowerCase(); + this.tabName = this.type + 'Tab'; + this.icon = 'i/' + this.type + 'Icon.png'; + + // set features + this.features = { + counter: false, + direct: false, + subject: false + }; + + object.mixin(this, options, true); + } + SvcBase.constructor = SvcBase; + SvcBase.prototype = { + clearCache: function (store) { + //This first delete is only needed for 3.6 support. + //Remove the call in accounts.js when it is removed. + delete store[this.type + 'Contacts']; + }, + //This method can be removed once 3.6 support is dropped. + getContacts: function (store) { + if (store[this.type + 'Contacts']) { + var contacts = JSON.parse(store[this.type + 'Contacts']); + return contacts; + } + return null; + }, + //This method can be removed once 3.6 support is dropped. + setContacts: function (store, contacts) { + store[this.type + 'Contacts'] = JSON.stringify(contacts); + }, + + // stub function that should not return data for non-mail services + // for the FF 3.6 extension. + get36FormattedContacts: function () { + return null; + } + }; + + /* common functionality for email based services */ + function EmailSvcBase() { + SvcBase.constructor.apply(this, arguments); + this.features.direct = true; + this.features.subject = true; + } + + EmailSvcBase.prototype = new SvcBase(); + EmailSvcBase.constructor = EmailSvcBase; + EmailSvcBase.prototype.validate = function (sendData) { + if (!sendData.to || !sendData.to.trim()) { + return false; + } + return true; + }; + + // The old top browser UI in the 3.6 extension expects the contacts data + // as an array. + // TODO: remove when Firefox 3.6 is no longer supported. + EmailSvcBase.prototype.get36FormattedContacts = function (entries) { + var data = []; + entries.forEach(function (entry) { + if (entry.emails && entry.emails.length) { + entry.emails.forEach(function (email) { + var displayName = entry.displayName ? entry.displayName : email.value; + data.push({ + displayName: displayName, + email: email.value + }); + }); + } + }); + return data; + }; + + EmailSvcBase.prototype.overlays = { + 'Contacts': 'ContactsEmail' + }; + + svcs = { + domains: { + 'twitter.com': new SvcBase('Twitter', { + features: { + //TODO: remove direct when old UI is no longer in use, + //or remove it from use. + direct: true, + subject: false, + counter: true + }, + shareTypes: [{ + type: 'public', + name: 'public' + }, { + type: 'direct', + name: 'direct message', + showTo: true, + toLabel: 'type in name of recipient' + }], + textLimit: 140, + shorten: true, + serviceUrl: 'http://twitter.com', + revokeUrl: 'http://twitter.com/settings/connections', + signOutUrl: 'http://twitter.com/logout', + accountLink: function (account) { + return 'http://twitter.com/' + account.username; + }, + forceLogin: { + name: 'force_login', + value: true + }, + overlays: { + 'Contacts': 'ContactsTwitter' + } + }), + 'facebook.com': new SvcBase('Facebook', { + features: { + //TODO: remove direct when old UI is no longer in use, + //or remove it from use. + direct: true, + subject: false, + counter: true, + medium: true + }, + shareTypes: [{ + type: 'wall', + name: 'my wall' + }, { + type: 'groupWall', + name: 'group wall', + showTo: true, + toLabel: 'type in the name of the group' + }], + textLimit: 420, + serviceUrl: 'http://facebook.com', + revokeUrl: 'http://www.facebook.com/editapps.php?v=allowed', + signOutUrl: 'http://facebook.com', + accountLink: function (account) { + return 'http://www.facebook.com/profile.php?id=' + account.userid; + }, + overlays: { + 'widgets/AccountPanel': 'widgets/AccountPanelFaceBook' + } + }), + 'google.com': new EmailSvcBase('Gmail', { + shareTypes: [{ + type: 'direct', + name: 'direct', + showTo: true + }], + serviceUrl: 'https://mail.google.com', + revokeUrl: 'https://www.google.com/accounts/IssuedAuthSubTokens', + signOutUrl: 'http://google.com/preferences', + accountLink: function (account) { + return 'http://google.com/profiles/' + account.username; + }, + forceLogin: { + name: 'pape_max_auth_age', + value: 0 + } + }), + 'googleapps.com': new EmailSvcBase('Google Apps', { + shareTypes: [{ + type: 'direct', + name: 'direct', + showTo: true + }], + icon: 'i/gmailIcon.png', + serviceUrl: 'https://mail.google.com', + revokeUrl: 'https://www.google.com/accounts/IssuedAuthSubTokens', + signOutUrl: 'http://google.com/preferences', + accountLink: function (account) { + return 'http://google.com/profiles/' + account.username; + }, + forceLogin: { + name: 'pape_max_auth_age', + value: 0 + } + }), + 'yahoo.com': new EmailSvcBase('Yahoo', { + shareTypes: [{ + type: 'direct', + name: 'direct', + showTo: true + }], + name: 'Yahoo!', + serviceUrl: 'http://mail.yahoo.com', // XXX yahoo doesn't have ssl enabled mail? + revokeUrl: 'https://api.login.yahoo.com/WSLogin/V1/unlink', + signOutUrl: 'https://login.yahoo.com/config/login?logout=1', + accountLink: function (account) { + return 'http://profiles.yahoo.com/' + account.username; + } + }), + 'linkedin.com': new SvcBase('LinkedIn', { + isNew: true, + features: { + //TODO: remove direct when old UI is no longer in use, + //or remove it from use. + direct: true, + subject: true, + counter: false + }, + shareTypes: [{ + type: 'public', + name: 'anyone' + }, { + type: 'myConnections', + name: 'connections only', + specialTo: 'connections-only' + }, { + type: 'contact', + name: 'send message', + showTo: true, + toLabel: 'type in the name of the contact' + }], + serviceUrl: 'http://linkedin.com', + revokeUrl: 'http://linkedin.com/settings/connections', + signOutUrl: 'https://www.linkedin.com/secure/login?session_full_logout=&trk=hb_signout', + accountLink: function (account) { + return 'http://linkedin.com/' + account.username; + }, + overlays: { + 'widgets/AccountPanel': 'widgets/AccountPanelLinkedIn' + } + }) + }, + domainList: [], + + //Patch to allow old share UI to work + //Remove when it goes away. + svcBaseProto: SvcBase.prototype + }; + + // Build up an list of services + for (prop in svcs.domains) { + if (svcs.domains.hasOwnProperty(prop)) { + svcs.domainList.push(prop); + + // Clear out the old contacts model. + // TODO: Remove this once the 3.6 add-on/UI is finally + // shut off. + if (newHotness) { + delete store[svcs.domains[prop].type + 'Contacts']; + delete store.contactsModelVersion; + } + } + } + + return svcs; +}); diff --git a/web/0.3.4/scripts/shareOptions.js b/web/0.3.4/scripts/shareOptions.js new file mode 100644 index 0000000..1728198 --- /dev/null +++ b/web/0.3.4/scripts/shareOptions.js @@ -0,0 +1,109 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +/*jslint indent: 2 */ +/*global define: false, location: false */ +"use strict"; + +define(['storage', 'blade/url'], function (storage, url) { + var cache = {}; + + function shareOptions(str) { + str = str || + (typeof location !== 'undefined' && location.href.split('#')[1]) || + ''; + + //If a cached value is available, return that, since the cached + //options value may have properties added/adjusted by the other modules. + if (cache[str]) { + return cache[str]; + } + + var options = {}, + store = storage(), + vimeoCdnRegExp = /vimeocdn\.com\//, + vimeoSourceRegExp = /clip_id=(\d+)/, + urlArgs, prop, source, videoId; + + if (str) { + urlArgs = url.queryToObject(str); + if (urlArgs.options) { + options = JSON.parse(urlArgs.options); + } + } + + options.prefs = options.prefs || {}; + + if (!options.title) { + options.title = options.url; + } + + if (!options.prefs.system) { + options.prefs.system = 'prod'; + } + + source = options.source; + + //If the source is larger than ~4KB then it will exceed the GET size + //limits in most browsers, so discard it. + if (source && source.length > 4000) { + source = ''; + delete options.source; + } + + //START domain-specific hacks + // vimeo.com does not give a usable video embed, fix it up here. + if (source && vimeoCdnRegExp.test(source)) { + videoId = vimeoSourceRegExp.exec(source); + videoId = videoId && videoId[1]; + if (videoId) { + options.source = 'http://vimeo.com/moogaloop.swf?clip_id=' + videoId + '&server=vimeo.com&show_title=1&show_byline=1&show_portrait=1&color=00dcdc&fullscreen=1&autoplay=0&loop=0'; + } else { + delete options.source; + } + } + //END domain-specific hacks. + + //Save the extension version in the localStorage, for use in + //other pages like settings. + if (options.version) { + store.extensionVersion = options.version; + } + + //Save the preferences in localStorage, for use in + //other ppages like setting. + if (options.prefs) { + for (prop in options.prefs) { + if (options.prefs.hasOwnProperty(prop)) { + store['prefs.' + prop] = options.prefs[prop]; + } + } + } + + cache[str] = options; + + return options; + } + + return shareOptions; +}); diff --git a/web/0.3.4/scripts/storage.js b/web/0.3.4/scripts/storage.js new file mode 100644 index 0000000..1f801ac --- /dev/null +++ b/web/0.3.4/scripts/storage.js @@ -0,0 +1,52 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +/*jslint indent: 2 */ +/*global define: false, localStorage: false */ +"use strict"; + +define([], function () { + var store = localStorage, type = 'localStorage'; + + //Capability detect for localStorage. At least one add-on does weird things + //with it. + try { + store.tempVar = 'temp'; + //Test reading. + if (store.tempVar === 'temp') {} + //Test deletion. + delete store.tempVar; + } catch (e) { + //Just use a simple in-memory object. Not as nice, but code will still work. + store = {}; + type = 'memory'; + } + + function storage() { + return store; + } + + storage.type = type; + + return storage; +}); \ No newline at end of file diff --git a/web/0.3.4/scripts/templates/cardsHeader.html b/web/0.3.4/scripts/templates/cardsHeader.html new file mode 100644 index 0000000..54edc32 --- /dev/null +++ b/web/0.3.4/scripts/templates/cardsHeader.html @@ -0,0 +1,8 @@ + diff --git a/web/0.3.4/scripts/webtrends.js b/web/0.3.4/scripts/webtrends.js new file mode 100644 index 0000000..3e15ea7 --- /dev/null +++ b/web/0.3.4/scripts/webtrends.js @@ -0,0 +1,741 @@ +// WebTrends SmartSource Data Collector Tag +// Version: 9.3.0 +// Tag Builder Version: 3.1 +// Created: 3/15/2011 5:10:56 PM + +function WebTrends(){ + var that=this; + // begin: user modifiable + this.dcsid="dcsjd66bq10000k73ngwoin8k_7d1l"; + this.domain="statse.webtrendslive.com"; + this.timezone=0; + this.fpcdom=".mozillamessaging.com"; + this.onsitedoms=""; + this.downloadtypes="xls,doc,pdf,txt,csv,zip"; + this.navigationtag="div,table"; + this.trackevents=true; + this.trimoffsiteparams=true; + this.enabled=true; + this.i18n=false; + this.fpc="WT_FPC"; + this.paidsearchparams="gclid"; + this.splitvalue=""; + this.preserve=true; + // end: user modifiable + this.DCS={}; + this.WT={}; + this.DCSext={}; + this.images=[]; + this.index=0; + this.exre=(function(){return(window.RegExp?new RegExp("dcs(uri)|(ref)|(aut)|(met)|(sta)|(sip)|(pro)|(byt)|(dat)|(p3p)|(cfg)|(redirect)|(cip)","i"):"");})(); + this.re=(function(){return(window.RegExp?(that.i18n?{"%25":/\%/g,"%26":/\&/g}:{"%09":/\t/g,"%20":/ /g,"%23":/\#/g,"%26":/\&/g,"%2B":/\+/g,"%3F":/\?/g,"%5C":/\\/g,"%22":/\"/g,"%7F":/\x7F/g,"%A0":/\xA0/g}):"");})(); +} +WebTrends.prototype.dcsGetId=function(){ + if (this.enabled&&(document.cookie.indexOf(this.fpc+"=")==-1)&&(document.cookie.indexOf("WTLOPTOUT=")==-1)){ + document.write("<\/scr"+"ipt>"); + } +} +WebTrends.prototype.dcsGetCookie=function(name){ + var cookies=document.cookie.split("; "); + var cmatch=[]; + var idx=0; + var i=0; + var namelen=name.length; + var clen=cookies.length; + for (i=0;i0){ + idx=0; + if ((cmatchCount>1)&&(name==this.fpc)){ + var dLatest=new Date(0); + for (i=0;idLatest){ + dLatest.setTime(dLst.getTime()); + idx=i; + } + } + } + return unescape(cmatch[idx].substring(namelen+1)); + } + else{ + return null; + } +} +WebTrends.prototype.dcsGetCrumb=function(cval,crumb,sep){ + var aCookie=cval.split(sep||":"); + for (var i=0;i(dLst.getTime()+1800000))||(dCur.getTime()>(dSes.getTime()+28800000))){ + WT.vt_f_tlv=Math.floor((dSes.getTime()-adj)/1000); + dSes.setTime(dCur.getTime()); + WT.vt_f_s="1"; + } + if ((dCur.getDay()!=dLst.getDay())||(dCur.getMonth()!=dLst.getMonth())||(dCur.getYear()!=dLst.getYear())){ + WT.vt_f_d="1"; + } + } + WT.co_f=escape(WT.co_f); + WT.vtid=(typeof(this.vtid)=="undefined")?WT.co_f:(this.vtid||""); + WT.vtvs=(dSes.getTime()-adj).toString(); + var expiry="; expires="+dExp.toGMTString(); + var cur=dCur.getTime().toString(); + var ses=dSes.getTime().toString(); + document.cookie=name+"="+"id="+WT.co_f+":lv="+cur+":ss="+ses+expiry+"; path=/"+(((this.fpcdom!=""))?("; domain="+this.fpcdom):("")); + var rc=this.dcsIsFpcSet(name,WT.co_f,cur,ses); + if (rc!=0){ + WT.co_f=WT.vtvs=WT.vt_f_s=WT.vt_f_d=WT.vt_f_tlh=WT.vt_f_tlv=""; + if (typeof(this.vtid)=="undefined"){ + WT.vtid=""; + } + WT.vt_f=WT.vt_f_a=rc; + } +} +WebTrends.prototype.dcsIsOnsite=function(host){ + if (host.length>0){ + host=host.toLowerCase(); + if (host==window.location.hostname.toLowerCase()){ + return true; + } + if (typeof(this.onsitedoms.test)=="function"){ + return this.onsitedoms.test(host); + } + else if (this.onsitedoms.length>0){ + var doms=this.dcsSplit(this.onsitedoms); + var len=doms.length; + for (var i=0;i0)&&(pr.indexOf("http")==0)&&!this.dcsIsOnsite(hn)){ + var qry=e.search?e.search.substring(e.search.indexOf("?")+1,e.search.length):""; + var pth=e.pathname?((e.pathname.indexOf("/")!=0)?"/"+e.pathname:e.pathname):"/"; + this.dcsMultiTrack("DCS.dcssip", hn, "DCS.dcsuri", pth, "DCS.dcsqry", this.trimoffsiteparams ? "" : qry, "DCS.dcsref", window.location, "WT.ti", "Offsite:" + hn + pth + (qry.length ? ("?" + qry) : ""), "WT.dl", "24", "WT.nv", this.dcsNavigation(evt)); + } + } + } +} + +WebTrends.prototype.dcsAdv=function(){ + if (this.trackevents&&(typeof(this.dcsET)=="function")){ + if (window.addEventListener){ + window.addEventListener("load",this.dcsET.wtbind(this),false); + } + else if (window.attachEvent){ + window.attachEvent("onload",this.dcsET.wtbind(this)); + } + } + this.dcsFPC(); +} +WebTrends.prototype.dcsVar=function(){ + var dCurrent=new Date(); + var WT=this.WT; + var DCS=this.DCS; + WT.tz=parseInt(dCurrent.getTimezoneOffset()/60*-1)||"0"; + WT.bh=dCurrent.getHours()||"0"; + WT.ul=navigator.appName=="Netscape"?navigator.language:navigator.userLanguage; + if (typeof(screen)=="object"){ + WT.cd=navigator.appName=="Netscape"?screen.pixelDepth:screen.colorDepth; + WT.sr=screen.width+"x"+screen.height; + } + if (typeof(navigator.javaEnabled())=="boolean"){ + WT.jo=navigator.javaEnabled()?"Yes":"No"; + } + if (document.title){ + if (window.RegExp){ + var tire=new RegExp("^"+window.location.protocol+"//"+window.location.hostname+"\\s-\\s"); + WT.ti=document.title.replace(tire,""); + } + else{ + WT.ti=document.title; + } + } + WT.js="Yes"; + WT.jv=(function(){ + var agt=navigator.userAgent.toLowerCase(); + var major=parseInt(navigator.appVersion); + var mac=(agt.indexOf("mac")!=-1); + var ff=(agt.indexOf("firefox")!=-1); + var ff0=(agt.indexOf("firefox/0.")!=-1); + var ff10=(agt.indexOf("firefox/1.0")!=-1); + var ff15=(agt.indexOf("firefox/1.5")!=-1); + var ff20=(agt.indexOf("firefox/2.0")!=-1); + var ff3up=(ff&&!ff0&&!ff10&!ff15&!ff20); + var nn=(!ff&&(agt.indexOf("mozilla")!=-1)&&(agt.indexOf("compatible")==-1)); + var nn4=(nn&&(major==4)); + var nn6up=(nn&&(major>=5)); + var ie=((agt.indexOf("msie")!=-1)&&(agt.indexOf("opera")==-1)); + var ie4=(ie&&(major==4)&&(agt.indexOf("msie 4")!=-1)); + var ie5up=(ie&&!ie4); + var op=(agt.indexOf("opera")!=-1); + var op5=(agt.indexOf("opera 5")!=-1||agt.indexOf("opera/5")!=-1); + var op6=(agt.indexOf("opera 6")!=-1||agt.indexOf("opera/6")!=-1); + var op7up=(op&&!op5&&!op6); + var jv="1.1"; + if (ff3up){ + jv="1.8"; + } + else if (ff20){ + jv="1.7"; + } + else if (ff15){ + jv="1.6"; + } + else if (ff0||ff10||nn6up||op7up){ + jv="1.5"; + } + else if ((mac&&ie5up)||op6){ + jv="1.4"; + } + else if (ie5up||nn4||op5){ + jv="1.3"; + } + else if (ie4){ + jv="1.2"; + } + return jv; + })(); + WT.ct="unknown"; + if (document.body&&document.body.addBehavior){ + try{ + document.body.addBehavior("#default#clientCaps"); + WT.ct=document.body.connectionType||"unknown"; + document.body.addBehavior("#default#homePage"); + WT.hp=document.body.isHomePage(location.href)?"1":"0"; + } + catch(e){ + } + } + if (document.all){ + WT.bs=document.body?document.body.offsetWidth+"x"+document.body.offsetHeight:"unknown"; + } + else{ + WT.bs=window.innerWidth+"x"+window.innerHeight; + } + WT.fv=(function(){ + var i,flash; + if (window.ActiveXObject){ + for(i=15;i>0;i--){ + try{ + flash=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+i); + return i+".0"; + } + catch(e){ + } + } + } + else if (navigator.plugins&&navigator.plugins.length){ + for (i=0;i0;i--){ + M=i; + if (Silverlight.isInstalled(M+".0")){ + break; + } + if (slv==M){ + break; + } + } + for (m=9;m>=0;m--){ + F=M+"."+m; + if (Silverlight.isInstalled(F)){ + slv=F; + break; + } + if (slv==F){ + break; + } + } + } + } + return slv; + })(); + if (this.i18n){ + if (typeof(document.defaultCharset)=="string"){ + WT.le=document.defaultCharset; + } + else if (typeof(document.characterSet)=="string"){ + WT.le=document.characterSet; + } + else{ + WT.le="unknown"; + } + } + WT.tv="9.3.0"; + WT.sp=this.splitvalue; + WT.dl="0"; + WT.ssl=(window.location.protocol.indexOf('https:')==0)?"1":"0"; + DCS.dcsdat=dCurrent.getTime(); + DCS.dcssip=window.location.hostname; + DCS.dcsuri=window.location.pathname; + WT.es=DCS.dcssip+DCS.dcsuri; + if (window.location.search){ + DCS.dcsqry=window.location.search; + } + if (DCS.dcsqry){ + var dcsqry=DCS.dcsqry.toLowerCase(); + var params=this.paidsearchparams.length?this.paidsearchparams.toLowerCase().split(","):[]; + for (var i=0;i'); + } +} +WebTrends.prototype.dcsMeta=function(){ + var elems; + if (document.documentElement){ + elems=document.getElementsByTagName("meta"); + } + else if (document.all){ + elems=document.all.tags("meta"); + } + if (typeof(elems)!="undefined"){ + var length=elems.length; + for (var i=0;i0){ + if (name.toUpperCase().indexOf("WT.")==0){ + this.WT[name.substring(3)]=content; + } + else if (name.toUpperCase().indexOf("DCSEXT.")==0){ + this.DCSext[name.substring(7)]=content; + } + else if (name.toUpperCase().indexOf("DCS.")==0){ + this.DCS[name.substring(4)]=content; + } + } + } + } +} +WebTrends.prototype.dcsTag=function(){ + if (document.cookie.indexOf("WTLOPTOUT=")!=-1){ + return; + } + var WT=this.WT; + var DCS=this.DCS; + var DCSext=this.DCSext; + var i18n=this.i18n; + var P="http"+(window.location.protocol.indexOf('https:')==0?'s':'')+"://"+this.domain+(this.dcsid==""?'':'/'+this.dcsid)+"/dcs.gif?"; + if (i18n){ + WT.dep=""; + } + for (var N in DCS){ + if (DCS[N]&&(typeof DCS[N]!="function")){ + P+=this.dcsA(N,DCS[N]); + } + } + for (N in WT){ + if (WT[N]&&(typeof WT[N]!="function")){ + P+=this.dcsA("WT."+N,WT[N]); + } + } + for (N in DCSext){ + if (DCSext[N]&&(typeof DCSext[N]!="function")){ + if (i18n){ + WT.dep=(WT.dep.length==0)?N:(WT.dep+";"+N); + } + P+=this.dcsA(N,DCSext[N]); + } + } + if (i18n&&(WT.dep.length>0)){ + P+=this.dcsA("WT.dep",WT.dep); + } + if (P.length>2048&&navigator.userAgent.indexOf('MSIE')>=0){ + P=P.substring(0,2040)+"&WT.tu=1"; + } + this.dcsCreateImage(P); + this.WT.ad=""; +} +WebTrends.prototype.dcsDebug=function(){ + var t=this; + var i=t.images[0].src; + var q=i.indexOf("?"); + var r=i.substring(0,q).split("/"); + var m="Protocol
      "+r[0]+"
      "; + m+="Domain
      "+r[2]+"
      "; + m+="Path
      /"+r[3]+"/"+r[4]+"
      "; + m+="Query Params"+i.substring(q+1).replace(/\&/g,"
      ")+"
      "; + m+="
      Cookies
      "+document.cookie.replace(/\;/g,"
      ")+"
      "; + if (t.w&&!t.w.closed){ + t.w.close(); + } + t.w=window.open("","dcsDebug","width=500,height=650,scrollbars=yes,resizable=yes"); + t.w.document.write(m); + t.w.focus(); +} +WebTrends.prototype.dcsCollect=function(){ + if (this.enabled){ + this.dcsVar(); + this.dcsMeta(); + this.dcsAdv(); + if (typeof(this.dcsCustom)=="function"){ + this.dcsCustom(); + } + this.dcsTag(); + } +} + +function dcsMultiTrack(){ + if (typeof(_tag)!="undefined"){ + return(_tag.dcsMultiTrack()); + } +} + +function dcsDebug(){ + if (typeof(_tag)!="undefined"){ + return(_tag.dcsDebug()); + } +} + +Function.prototype.wtbind = function(obj){ + var method=this; + var temp=function(){ + return method.apply(obj,arguments); + }; + return temp; +} \ No newline at end of file diff --git a/web/0.3.4/service/down.html b/web/0.3.4/service/down.html new file mode 100644 index 0000000..a7c35f6 --- /dev/null +++ b/web/0.3.4/service/down.html @@ -0,0 +1,112 @@ + + + + + + + F1 Down + + + + +
      + +
      + The F1 service is unavailable at the moment. +
      +
      + + + + diff --git a/web/0.3.4/service/favicon.png b/web/0.3.4/service/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..216b13a33d06a3e04caf2efa7540c23447033c13 GIT binary patch literal 469 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 JPDHLkV1kDsz4!nC literal 0 HcmV?d00001 diff --git a/web/0.3.4/service/privacy.html b/web/0.3.4/service/privacy.html new file mode 100644 index 0000000..426dc53 --- /dev/null +++ b/web/0.3.4/service/privacy.html @@ -0,0 +1,94 @@ + + + + Privacy Policy + + + + +
      + +

      Mozilla F1 Privacy policy data collection, analysis, and retention

      + +F1 is an experiment by Mozilla to understand how people like to share links they find on the web. It consists of an add-on for Firefox and a web service, with which Firefox users can easily send links and commentary about those links to their contacts on a variety of service providers. In this beta phase, three services are provided: Twitter, Facebook, and Gmail. + +F1 uses OAuth to ask the user for permission to access their profile data on these services, and to send messages on their behalf each time they choose to share a link. + +

      Data collection

      + +

      Authentication Data

      + +

      To use F1, the user authenticates F1 to their service provider (gmail, twitter, facebook, etc.). Doing so results in the service provider sending F1:

      + +
        +
      • the user's username on the service
      • +
      • the user's userid
      • +
      • the user's profile information, including their name and profile image. The kind of data included in the profile will differ from service to service, but typically does include personally identifiable information by design, including name, email addresses and userids.
      • +
      • OAuth "tokens" which F1 can then use to do later authorized transactions on the user's behalf (tweeting, posting on a wall, emailing).
      • +
      + +

      In order to function, F1 needs to store all of the above information to be able to send on the user's behalf without asking for a reauthorization each time.

      + +

      Sharing Data

      + +

      When a user sends a link, information about the action is stored, including: who sent it, to whom was it sent, using what service, when, and including the message and the link.

      + +

      Mozilla collects this information to understand the usage of the service, and to improve it. Mozilla will not look at individual records, but instead run aggregate queries on data sets to understand the usage of the service on a population basis. Example aggregate analyses include: general number of shares/day, number of users/day, which service is more popular when, what is the distribution of number of sharing events per day per user.

      + +

      Publication of the data

      + +

      Mozilla will not publish any individual records from this service. We will publish summary graphs showing aggregate service usage.

      + +

      Data retention

      + +

      Sharing data records will be discarded after 30 days. Authentication data is retained forever, but users can revoke the authentication of F1 by their service provider using links provided by the F1 user interface.

      + +

      URL Shortening via bit.ly

      + +

      When sharing via twitter, F1 shortens the URLs so that users have more room for their own words in the tweets. F1 currently uses the bit.ly service to do that shortening and redirection. See http://bit.ly/pages/terms-of-service for the terms of service of bit.ly and http://bit.ly/pages/privacy for their privacy policy

      + +
      + + + diff --git a/web/0.3.4/service/style.css b/web/0.3.4/service/style.css new file mode 100644 index 0000000..72c4357 --- /dev/null +++ b/web/0.3.4/service/style.css @@ -0,0 +1,26 @@ +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 12px; +} + +#container { + position: absolute; + width: 300px; + top: 50%; + left: 50%; + margin-top: -45px; + margin-left: -150px; +} + +#container .logo { + width: 62px; + height: 56px; + margin: 10px auto; + display: block; + background-image: url("i/f1logo.png"); +} + +#container .errorMsg { + text-align: center; + color: #00A0FF; +} \ No newline at end of file diff --git a/web/0.3.4/settings/build.js b/web/0.3.4/settings/build.js new file mode 100644 index 0000000..7bf04e9 --- /dev/null +++ b/web/0.3.4/settings/build.js @@ -0,0 +1,10 @@ +({ + baseUrl: "../scripts/", + paths: { + "index": "../settings/index", + "jquery": "requireplugins-jquery" + }, + name: "index", + exclude: ['jquery'], + out: './index.js' +}) diff --git a/web/0.3.4/settings/i/LinkedIn_Logo16px.png b/web/0.3.4/settings/i/LinkedIn_Logo16px.png new file mode 100644 index 0000000000000000000000000000000000000000..c717e80fdd8409f42400030904e95c53854bd90f GIT binary patch literal 716 zcmV;-0yF)IP)+P^&^ z+)%*}H3$eXOJXC~M(YAdS}fHZZ7n-~;AzJm8i?cENEUNH*YLEo0!vD4WeiYj`k_^6 zdZ@Vpu8!@+i9KnI=F@oep^UogLQ1hYO7|o%yyJziR$brtIp{zpj^|4?EY=(--DMKy z+@};7&yGj~!Z?1QAPSR3Pez2z7jykFR2?66LQX~_l!m|>spGRkCV^HE;&at8=|vbp z>A-S*g?b~zwebQjAJ5}`xqGxKFrxNoa1f|a=S;wzqfs^BFJ z7N4`-cveC_-G|~rg$rSDg`AkyidR0pRDCmUtb*Fcd75BW!$e-tX0~W=3;IY{7mn?| yJ3aT~l#2c{_)+WsKPcAoN&2799?s4D6<`3&2tQfo$JZ(V0000G)qSS literal 0 HcmV?d00001 diff --git a/web/0.3.4/settings/i/f1Logo.png b/web/0.3.4/settings/i/f1Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..73cf10d66ab15535c3a8d3808658c488f63814bb GIT binary patch literal 4823 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 literal 0 HcmV?d00001 diff --git a/web/0.3.4/settings/i/thumb.jpg b/web/0.3.4/settings/i/thumb.jpg new file mode 100644 index 0000000000000000000000000000000000000000..721d4278776a1b9ae5a43f82e5baab0476479aa3 GIT binary patch literal 1708 zcmZ`&c~p}}5Z^CfZV(8DLanBvPz8%3c!3-dEHwz0U_=_MTmg>&Hr$BRmIBoh!XZQf zD_21R2IVFeEtIP^0uoU%ArOfIqJSw-lq>yOtnc|pfBW9<&dkovZ+2(YeQE{Jadx6P z0SE;E3mHKD5|H*r__JdG1keBgH$*i7wDz!0`2_%06QY6CGLQgJ?*Jn^7>&#@8iW1^ z7%b*rV6iwH9*4sc2t*=*p!q%^7=|%u3;~NJtk586tkBj%psoGyp|^|Xvh=>+J4xLH zNO)iam@q^FC=vvdAayIagwTdC0EQ5vZ-MZ^6NnHB2SX6_o&^9DgjjU|LIwq+H1KcT zAS4w)!sucRarmt(_t1Sg>&ThChY25kXHgwqvpsTGdZnci5)^TRFj(Awfglvg5Y|Ow zw!Yd!cfk5`(wlqMe^*fXWSxb(S_(9g%TXkl1nj}!Gmvk`zS|Y(CkjYu>;ApvbgU@5 zP!oSmV3uel7fKjIi{x)JDFgSvs#uwL=MPrqdSg9(VgZAkK-$8^t^9d*VOx%H#G_a%XL)je8L% zJj&@|$ED`RX3d_mgS=wKQewYUGNv=M;+}#?Tg$_pQ$#2=&CA?p`4*rrlaUGmAOZ{3I}Y5%<)6&{ubi;q*j&q}Jj=$V|x z%{F6ycA*qgOhdD8*fvIc40pwHLqnT4=qvRRhjS*4YO|VJ z0vhhx+&!*}_Y6q7=bixY&hBZs&}f?3Z^h%)t`ACNBD&lsUXnv&W{xWk+sL!ZLWmG` zBL=*qv89vcr1PgE<*JTiZ4$3ggGCxB@D4u`cbg4qQ34r(KN{Qgj*x40rZQGJfR1Yt4LG&9-XL^Mxu|J?5zHBD2p{^;qL-kjTOf?5+`R5Cx)<5Wrcy`k) ztj)Nx5BCwnEaE0({H5suy(O*k5fy7TMwW4+#yYY^?3}5apY-#_!r`Wh&Q}y>-6+kL z7c^l~$)7f>>WQ$f=}1!wH$L~cz>y0a+jnvF+r?l!-yoHjdjkP;|Sna$WEy#?Ie(g#-CM#V|x|pS~-L-AiSrMMt8$_@chV+(K zJ)jqdxRm!hrY3kEUdlE;u@5qYRtGC@+V@-&f59&?EbsiHY4MX*lKGnta+&gnvgB3q zA)9kOk2{|^gt;Ug=xedc3=Qk!vNv)dfp07zDzyA_OsT# zio@uwln+V{O)3Ndg$-V9rhBy+UHka6*IV8F$zQweA2o_=_Q6pGG0^nf^2ctQp9&n? z@{_H-GR9zbL;cfRyou)*8q)KQc&z*Ng-H^Zk7e;(E^t^HQ_V`n1Jnfw|O~YSq-1mj>5E^FO99)qP_Zu=u^+ z1OrPA7d%S!n4c9;XhFB+UEC|Dfbl2UUb5ou?NY}YRUQv++QzPt` ziw~P{JI20d`th4vk6uUTzPHds?3^e%`?m`6fr?m|vdT@I+F< z=dy>h)*p+tXs@8j$XNRH{zcLA`)?*bnlZ`W{pE5Czz*IvdD7EC3j;3}Y+Rx4M38T> zg@0ypVD+^=5f|IrzdOX#GDAN-PGDXl;``2ec~}Kk8*5@ES>{zkvPliLYi**?ggSG1 zXK9$~m#9>-s;AzR=Gt(lp{ysae&Z;&a6o9=C2UnSj+E@^ubZ&4bTrFI@l%!lVM3E! zpC}a{DKK7REj+Zhq_X#~JZ*ks5yLip=!Ry|=*9W4`&Xy>ca9yTMppmtv;EV{7O92a W + + + Mozilla F1: Configuration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Feedback + +
      + + + + + + + + +
        +
      • accounts
      • + + +
      + +
      + +
      +

      My accounts

      + + +

      Add accounts

      + +
      + + + + +
      + +
      +
      + +
      + + + +
      +
      + +
      + We care about your privacy, seriously. +
      +
      +
      + +
      + + + + + + + + + diff --git a/web/0.3.4/settings/index.js b/web/0.3.4/settings/index.js new file mode 100644 index 0000000..2041856 --- /dev/null +++ b/web/0.3.4/settings/index.js @@ -0,0 +1,99 @@ +/* + blade/func Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + Available via the MIT, GPL or new BSD license. + see: http://github.com/jrburke/blade for details + blade/object Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + Available via the MIT, GPL or new BSD license. + see: http://github.com/jrburke/blade for details + blade/jig Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + Available via the MIT, GPL or new BSD license. + see: http://github.com/jrburke/blade for details + blade/array Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + Available via the MIT, GPL or new BSD license. + see: http://github.com/jrburke/blade for details + blade/url Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + Available via the MIT, GPL or new BSD license. + see: http://github.com/jrburke/blade for details +*/ +define("blade/fn",[],function(){var f=Array.prototype.slice,b=Object.prototype.toString;return{is:function(d){return b.call(d)==="[object Function]"},bind:function(d,c){if(!c)return d;if(typeof c==="string")c=d[c];var a=f.call(arguments,2);return function(){return c.apply(d,a.concat(f.call(arguments,0)))}}}}); +define("blade/object",["./fn"],function(f){function b(){}var d={},c=function(a,e,h){a=a||{};var j,p=c.create(a.prototype,e);a=function(q,m,n){return p[m].apply(q,n)};e=c.create(p);c.mixin(e,f.is(h)?h(a):h,true);j=function(){if(!(this instanceof j))throw new Error('blade/object: constructor function called without "new" in front');this.init&&this.init.apply(this,arguments)};j.prototype=e;return j};c.create=function(a,e){b.prototype=a;a=new b;var h,j;b.prototype=null;if(e)for(h=0;j=e[h];h++)c.mixin(a, +j);return a};c.mixin=function(a,e,h){for(var j in e)if(!(j in d)&&(!(j in a)||h))a[j]=e[j]};return c}); +define("blade/jig",["require","./object"],function(f,b){function d(g){return v.call(g)==="[object Array]"}function c(g,i,l){i=i;var k,o;for(k=0;i&&(o=g[k]);k++)i=typeof i==="object"&&o in i?i[o]:l&&k===0&&o in l?l[o]:undefined;return i}function a(g){return g?parseInt(g,10):0}function e(g,i,l){var k=/\[([\w0-9\.'":]+)\]/,o=g,r=i,t=true,x,A;if(g===w)return i;if(E.test(g))return a(g);if(g==="")return"";x=g.charAt(0);if(x==="'"||x==="'")return g.substring(1,g.length-1);if((x=g.indexOf("("))!==-1){k=g.lastIndexOf(")"); +t=g.substring(0,x);o=l.fn[t];if(!o){n.error("Cannot find function named: "+t+" for "+g);return""}t=g.substring(x+1,k);if(t.indexOf(",")!==-1){t=t.split(",");for(r=t.length-1;r>=0;r--)t[r]=e(t[r],i,l);o=o.apply(null,t)}else o=o(e(t,i,l));if(k";else{t=o.charAt(0);A=o}}if(t&&!i.propertyRegExp.test(t))A=A.substring(1).trim();else t="_default_";if(o=A.indexOf(i.rawHtmlToken)===0)A=A.substring(i.rawHtmlToken.length,A.length);if(t===y)o=true;A=A.split(i.argSeparator);L=A[A.length-1];N=L.charAt(L.length-1);J=null;if(t==="]"){if(N!=="["){l.templateEnd=k;l.endControl=true}else l.templateEnd=k-x[0].length;return l}else if(N==="["){r||(r=H++);A[A.length-1]=L.substring(0,L.length- +1);J=j(g.substring(k),i);k+=J.templateEnd}if(t==="+")i.templates[A[0]]=J;else if(t!=="/"){if(A.length>1)for(x=A.length-1;x>=0;x--)if(A[x].charAt(A[x].length-1)===","){A[x]+=A[x+1];A.splice(x+1,1)}l.push({action:i.commands[t].action,useRawHtml:o,args:A,controlId:r,children:J})}if(J&&J.endControl)r=0}else{l.push(k);return l}}k!==g.length-1&&l.push(g.substring(k,g.length));return l}function p(g,i){var l,k=g.id;l=i.templates||G;if(l[k])return l[k];i.onBeforeParse&&i.onBeforeParse(g);if(g.nodeName.toUpperCase()=== +"SCRIPT"){l=g.text.trim();g.parentNode&&g.parentNode.removeChild(g)}else{K.appendChild(g);g.removeAttribute("id");(l=(g.getAttribute("class")||"").trim())&&g.setAttribute("class",l.replace(M,"$1$3"));l=K.innerHTML.replace(/%7B/g,"{").replace(/%7D/g,"}");K.removeChild(g)}g=n.compile(l,i);n.cache(k,g,i);return g}function q(g,i,l){var k="",o,r,t,x,A;if(typeof g==="string")k=g;else if(d(g))for(o=0;oi},gte:function(g,i){return g>=i},lt:function(g,i){return go.prop?1:-1})}},F=1,H=1,I={},K=typeof document!=="undefined"&&document.createElement?document.createElement("div"):null,M=/(\s*)(template)(\s*)/;u={_default_:{doc:"Property reference",action:function(g,i,l,k,o){var r=g[0]?e(g[0],i,l):i,t=g[1]?e(g[1],i,l):undefined,x="";if(g[1]){t=r===t;r=i}else t=r;if(t===false||t===null||t===undefined||d(t)&&!t.length)return"";else if(k)if(d(r))for(g=0;g1?g[1]:w,i,l);return o(k,i,l)}},".":{doc:"Variable declaration",action:function(g,i,l){l.context[g[0]]=e(g[1],i,l);return""}},">":{doc:"Else",action:function(g,i,l,k,o){if(k)return o(k,i,l);return""}}};n=function(g,i,l){if(typeof g==="string")if(g.charAt(0)=== +"#"){g=g.substring(1,g.length);g=h(g,l)}else g=n.compile(g,l);return n.render(g,i,l)};n.htmlEscape=function(g){return g.replace(/&/g,"&").replace(//g,">").replace(/"/g,""")};n.compile=function(g,i){i=i||{};b.mixin(i,{startToken:"{",endToken:"}",rawHtmlToken:"^",propertyRegExp:s,commands:u,argSeparator:" ",templates:G});i.endRegExp=/[^\r\n]*?}/;H=1;return j(g,i)};n.parse=function(g,i){if(g&&!g.length){i=g;g=null}i=i||{};g=g||document.querySelectorAll('.template, script[type="text/template"]'); +var l,k;for(k=g.length-1;k>-1&&(l=g[k]);k--)p(l,i)};n.render=function(g,i,l){var k,o="";l=l||{};b.mixin(l,{templates:G,attachData:false,strict:n.strict});if(l.fn)b.mixin(l.fn,D);else l.fn=D;l.context=l.context||b.create(i);if(d(i)){for(k=0;k=365&&c<730){a.additional=b.toLocaleDateString(); +a.friendly="a year ago";return a}if(c>=365){a.additional=b.toLocaleDateString();a.friendly=Math.ceil(c/365)+" years ago";return a}return a},name:function(b){b=b.split(" ")[0];if(b.indexOf("@")!==-1)b=b.split("@")[0];b=b.replace(" ","");b=b.replace("'","");return b=b.replace('"',"")}};return f}); +define("isoDate",[],function(){var f=/^(?:(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(.\d+)?)?((?:[+\-](\d{2}):(\d{2}))|Z)?)?$/,b=function(d,c){var a=f.exec(d);d=null;var e,h;if(a){a.shift();a[1]&&a[1]--;if(a[6])a[6]*=1E3;if(c){c=new Date(c);["FullYear","Month","Date","Hours","Minutes","Seconds","Milliseconds"].map(function(j){return c["get"+j]()}).forEach(function(j,p){a[p]=a[p]||j})}d=new Date(a[0]||1970,a[1]||0,a[2]||1,a[3]||0,a[4]||0,a[5]||0,a[6]||0);if(a[0]<100)d.setFullYear(a[0]|| +1970);e=0;h=a[7]&&a[7].charAt(0);if(h!=="Z"){e=(a[8]||0)*60+(Number(a[9])||0);if(h!=="-")e*=-1}if(h)e-=d.getTimezoneOffset();e&&d.setTime(d.getTime()+e*6E4)}return d};b.toIsoString=function(d,c){var a=function(p){return p<10?"0"+p:p},e,h,j;c=c||{};e=[];h=c.zulu?"getUTC":"get";j="";if(c.selector!=="time"){j=d[h+"FullYear"]();j=["0000".substr((j+"").length)+j,a(d[h+"Month"]()+1),a(d[h+"Date"]())].join("-")}e.push(j);if(c.selector!=="date"){j=[a(d[h+"Hours"]()),a(d[h+"Minutes"]()),a(d[h+"Seconds"]())].join(":"); +h=d[h+"Milliseconds"]();if(c.milliseconds)j+="."+(h<100?"0":"")+a(h);if(c.zulu)j+="Z";else if(c.selector!=="time"){d=d.getTimezoneOffset();c=Math.abs(d);j+=(d>0?"-":"+")+a(Math.floor(c/60))+":"+a(c%60)}e.push(j)}return e.join("T")};return b});var EXPORTED_SYMBOLS=["hex_md5"],hexcase=0,b64pad="";function hex_md5(f){return rstr2hex(rstr_md5(str2rstr_utf8(f)))}function b64_md5(f){return rstr2b64(rstr_md5(str2rstr_utf8(f)))}function any_md5(f,b){return rstr2any(rstr_md5(str2rstr_utf8(f)),b)} +function hex_hmac_md5(f,b){return rstr2hex(rstr_hmac_md5(str2rstr_utf8(f),str2rstr_utf8(b)))}function b64_hmac_md5(f,b){return rstr2b64(rstr_hmac_md5(str2rstr_utf8(f),str2rstr_utf8(b)))}function any_hmac_md5(f,b,d){return rstr2any(rstr_hmac_md5(str2rstr_utf8(f),str2rstr_utf8(b)),d)}function md5_vm_test(){return hex_md5("abc").toLowerCase()=="900150983cd24fb0d6963f7d28e17f72"}function rstr_md5(f){return binl2rstr(binl_md5(rstr2binl(f),f.length*8))} +function rstr_hmac_md5(f,b){var d=rstr2binl(f);if(d.length>16)d=binl_md5(d,f.length*8);var c=Array(16);f=Array(16);for(var a=0;a<16;a++){c[a]=d[a]^909522486;f[a]=d[a]^1549556828}b=binl_md5(c.concat(rstr2binl(b)),512+b.length*8);return binl2rstr(binl_md5(f.concat(b),640))}function rstr2hex(f){for(var b=hexcase?"0123456789ABCDEF":"0123456789abcdef",d="",c,a=0;a>>4&15)+b.charAt(c&15)}return d} +function rstr2b64(f){for(var b="",d=f.length,c=0;cf.length*8?b64pad:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(a>>>6*(3-e)&63);return b} +function rstr2any(f,b){var d=b.length,c,a,e,h,j,p=Array(Math.ceil(f.length/2));for(c=0;c0||e>0)j[j.length]=e}f[a]=h;p=j}d="";for(c=f.length-1;c>=0;c--)d+=b.charAt(f[c]);return d} +function str2rstr_utf8(f){for(var b="",d=-1,c,a;++d>>6&31,128|c&63);else if(c<=65535)b+=String.fromCharCode(224|c>>>12&15,128|c>>>6&63,128|c&63);else if(c<=2097151)b+=String.fromCharCode(240|c>>>18&7,128|c>>>12&63,128|c>>>6&63,128|c&63)}return b} +function str2rstr_utf16le(f){for(var b="",d=0;d>>8&255);return b}function str2rstr_utf16be(f){for(var b="",d=0;d>>8&255,f.charCodeAt(d)&255);return b}function rstr2binl(f){for(var b=Array(f.length>>2),d=0;d>5]|=(f.charCodeAt(d/8)&255)<>5]>>>d%32&255);return b} +function binl_md5(f,b){f[b>>5]|=128<>>9<<4)+14]=b;b=1732584193;for(var d=-271733879,c=-1732584194,a=271733878,e=0;e>16)+(b>>16)+(d>>16)<<16|d&65535}function bit_rol(f,b){return f<>>32-b}define("md5",function(){}); +define("rdapi",["require","jquery","blade/object","blade/jig","friendly","isoDate","md5"],function(f,b,d,c,a,e){function h(s){if(typeof s==="string")s={template:s};else if(s.templateId)s.template=c.cache(s.templateId);if(!("attachData"in s))s.attachData=m.attachTemplateData;if(s.emptyTemplateId)s.emptyTemplate=c.cache(s.emptyTemplateId);return s}function j(){var s=u.exec(document.cookie);return s&&s[1]?s[1]:null}function p(s,w){w.url=y.baseUrl+y.apiPath+s;d.mixin(w,{limit:30,message_limit:3,dataType:"json", +error:function(C,G,D){throw D;}});var B=w.success,E=j();w.success=function(C){C&&C.contacts&&d.mixin(v,C.contacts,true);return B?B.apply(null,arguments):C};if(E)w.beforeSend=function(C){C.setRequestHeader(n,E)};b.ajax(w)}function q(s,w){var B=w.forId?document.getElementById(w.forId):null;if(B)B.innerHTML=s;w.onTemplateDone&&w.onTemplateDone(s);b(document).trigger("rdapi-done",B)}var m,n="X-CSRF",u=/csrf=([^\; ]+)/,v={},z={contact:function(s){return s.iid&&s.domain?v[s.iid]||{}:s},contactPhotoUrl:function(s){var w= +"i/face2.png",B,E;s=z.contact(s);if((B=s.photos)&&B.length){w=B[0].value;B.forEach(function(C){if(C.primary)w=C.value})}else if(s.emails&&s.emails.length){E=s.emails[0].value;s.emails.forEach(function(C){if(C.primary)E=C.value});w="http://www.gravatar.com/avatar/"+hex_md5(E)+"?s=24 &d=identicon"}return w},allMessages:function(s){return[s.topic].concat(s.messages||[])},friendlyDate:function(s){return a.date(e(s)).friendly},htmlBody:function(s){return c.htmlEscape(s).replace(/\n/g,"
      ")}},y={baseUrl:"/", +apiPath:"api/",saveTemplateData:true};c.addFn(z);m=function(s,w){w=h(w);d.mixin(w,{success:function(B){var E=w.template,C=w.emptyTemplate,G="";if(w.forId&&E){if(w.prop)B=c.getObject(w.prop,B,w);if(f.isArray(B))if(B.length)B.forEach(function(D){G+=c(E,D,w)});else G+=c(C,B,w);else G+=c(!B?C:E,B,w);q(G,w)}},error:function(B,E,C){if(w.emptyTemplate){B=c(w.emptyTemplate,C,w);q(B,w)}else throw C;}});p(s,w)};m.contactPhotoUrl=z.contactPhotoUrl;m.attachTemplateData=false;f.ready(function(){var s=[];c.parse({onBeforeParse:function(w){var B= +w.id,E=w.getAttribute("data-rdapi"),C=w.getAttribute("data-rdfor"),G=w.getAttribute("data-rdprop");E&&s.push({templateId:B,api:E,forId:C,prop:G});["data-rdapi","data-rdprop","data-rdfor"].forEach(function(D){w.removeAttribute(D)})}});s.forEach(function(w){m(w.api,w)})});return m});define("storage",[],function(){function f(){return b}var b=localStorage,d="localStorage";try{b.tempVar="temp";delete b.tempVar}catch(c){b={};d="memory"}f.type=d;return f}); +define("dispatch",["jquery"],function(){var f=location.protocol+"//"+location.host;return{sub:function(b,d,c,a){c=c||window;a=a||f;var e=function(h){if(h.origin===a||h.origin==="chrome://browser")try{var j=JSON.parse(h.data),p=j.topic;p&&p===b&&d(j.data)}catch(q){}};c.addEventListener("message",e,false);return e},unsub:function(b,d){d=d||window;d.removeEventListener("message",b,false)},pub:function(b,d,c){c=c||window;c.postMessage(JSON.stringify({topic:b,data:d}),f)}}}); +define("services",["blade/object","storage"],function(f,b){function d(j,p){if(j){this.name=j;this.type=j.replace(/\s/g,"").toLowerCase();this.tabName=this.type+"Tab";this.icon="i/"+this.type+"Icon.png";this.features={counter:false,direct:false,subject:false};f.mixin(this,p,true)}}function c(){d.constructor.apply(this,arguments);this.features.direct=true;this.features.subject=true}var a=parseFloat(navigator.userAgent.split("Firefox/")[1])>=4;b=b();var e,h;d.constructor=d;d.prototype={clearCache:function(j){delete j[this.type+ +"Contacts"]},getContacts:function(j){if(j[this.type+"Contacts"])return JSON.parse(j[this.type+"Contacts"]);return null},setContacts:function(j,p){j[this.type+"Contacts"]=JSON.stringify(p)},get36FormattedContacts:function(){return null}};c.prototype=new d;c.constructor=c;c.prototype.validate=function(j){if(!j.to||!j.to.trim())return false;return true};c.prototype.get36FormattedContacts=function(j){var p=[];j.forEach(function(q){q.emails&&q.emails.length&&q.emails.forEach(function(m){p.push({displayName:q.displayName? +q.displayName:m.value,email:m.value})})});return p};c.prototype.overlays={Contacts:"ContactsEmail"};e={domains:{"twitter.com":new d("Twitter",{features:{direct:true,subject:false,counter:true},shareTypes:[{type:"public",name:"public"},{type:"direct",name:"direct message",showTo:true,toLabel:"type in name of recipient"}],textLimit:140,shorten:true,serviceUrl:"http://twitter.com",revokeUrl:"http://twitter.com/settings/connections",signOutUrl:"http://twitter.com/logout",accountLink:function(j){return"http://twitter.com/"+ +j.username},forceLogin:{name:"force_login",value:true},overlays:{Contacts:"ContactsTwitter"}}),"facebook.com":new d("Facebook",{features:{direct:true,subject:false,counter:true,medium:true},shareTypes:[{type:"wall",name:"my wall"},{type:"groupWall",name:"group wall",showTo:true,toLabel:"type in the name of the group"}],textLimit:420,serviceUrl:"http://facebook.com",revokeUrl:"http://www.facebook.com/editapps.php?v=allowed",signOutUrl:"http://facebook.com",accountLink:function(j){return"http://www.facebook.com/profile.php?id="+ +j.userid},overlays:{"widgets/AccountPanel":"widgets/AccountPanelFaceBook"}}),"google.com":new c("Gmail",{shareTypes:[{type:"direct",name:"direct",showTo:true}],serviceUrl:"https://mail.google.com",revokeUrl:"https://www.google.com/accounts/IssuedAuthSubTokens",signOutUrl:"http://google.com/preferences",accountLink:function(j){return"http://google.com/profiles/"+j.username},forceLogin:{name:"pape_max_auth_age",value:0}}),"googleapps.com":new c("Google Apps",{shareTypes:[{type:"direct",name:"direct", +showTo:true}],icon:"i/gmailIcon.png",serviceUrl:"https://mail.google.com",revokeUrl:"https://www.google.com/accounts/IssuedAuthSubTokens",signOutUrl:"http://google.com/preferences",accountLink:function(j){return"http://google.com/profiles/"+j.username},forceLogin:{name:"pape_max_auth_age",value:0}}),"yahoo.com":new c("Yahoo",{shareTypes:[{type:"direct",name:"direct",showTo:true}],name:"Yahoo!",serviceUrl:"http://mail.yahoo.com",revokeUrl:"https://api.login.yahoo.com/WSLogin/V1/unlink",signOutUrl:"https://login.yahoo.com/config/login?logout=1", +accountLink:function(j){return"http://profiles.yahoo.com/"+j.username}}),"linkedin.com":new d("LinkedIn",{isNew:true,features:{direct:true,subject:true,counter:false},shareTypes:[{type:"public",name:"anyone"},{type:"myConnections",name:"connections only",specialTo:"connections-only"},{type:"contact",name:"send message",showTo:true,toLabel:"type in the name of the contact"}],serviceUrl:"http://linkedin.com",revokeUrl:"http://linkedin.com/settings/connections",signOutUrl:"https://www.linkedin.com/secure/login?session_full_logout=&trk=hb_signout", +accountLink:function(j){return"http://linkedin.com/"+j.username},overlays:{"widgets/AccountPanel":"widgets/AccountPanelLinkedIn"}})},domainList:[],svcBaseProto:d.prototype};for(h in e.domains)if(e.domains.hasOwnProperty(h)){e.domainList.push(h);if(a){delete b[e.domains[h].type+"Contacts"];delete b.contactsModelVersion}}return e}); +define("accounts",["storage","dispatch","rdapi","services"],function(f,b,d,c){function a(m,n,u,v){return m.domain===n&&(u&&m.userid===u||v&&m.username===v)}function e(m){if(m)m=JSON.parse(m);return m}function h(m,n){return q.accounts(m,n)}function j(){location.reload()}var p=f(),q;q={localStorage:{accounts:function(m,n){var u=e(p.accountCache)||[],v=e(p.serviceCache);if(v){v=v||[];m&&m(u,v)}else q.fetch(m,n)},update:function(m){var n=e(p.accountCache)||[],u=e(p.serviceCache),v=false,z,y,s;z=m.profile; +for(y=0;yc+4E3){c=j;a=h+"?domain="+a+(e?"&forceLogin=1":"");try{d=window.open(a,"ffshareOAuth", +"dialog=yes, modal=yes, width=900, height=500, scrollbars=yes");d.focus()}catch(p){window.location=a+"&end_point_success="+encodeURI(window.location)}}else d&&d.focus()}});define("dotCompare",[],function(){function f(b,d){b=b||"0";d=d||"0";b=b.split(".");d=d.split(".");var c,a,e,h=b.length>d.length?b.length:d.length;for(c=0;ce)return 1;else if(ae))for(m=0;mn){for(;u-1,B=q(y.extensionVersion,"0.7.4")>-1,E=m.queryToObject(location.href.split("#")[1]|| +"")||{},C={},G=E.show==="new";e.addFn({domainType:function(D){return(D=n.domains[D.accounts[0].domain])?D.type:""},domainName:function(D){return(D=n.domains[D.accounts[0].domain])?D.name:""},accountName:function(D,F){return F.username&&F.username!==D?D+", "+F.username:D}});p.onChange();p(function(D){b(function(){var F="";D.forEach(function(H){F+=e("#accountTemplate",H);C[H.accounts[0].domain]=true});if(F){b("#existingHeader").removeClass("hidden");b("#existing").append(F).removeClass("hidden")}F= +"";n.domainList.forEach(function(H){var I=n.domains[H];if(B||!C[H]){I.domain=H;I.enableSignOut=!I.forceLogin&&C[H];F+=e("#addTemplate",n.domains[H])}});if(F){b("#availableHeader").removeClass("hidden");b("#available").append(F).removeClass("hidden")}G&&b(function(){b("li.newItem").animate({backgroundColor:"#ffff99"},200).delay(1E3).animate({backgroundColor:"#fafafa"},3E3)})})});b(function(){function D(){var k={};g.find(".error").addClass("hidden");b.each(g[0].elements,function(o,r){o=b(r).val().trim(); +if(r.getAttribute("placeholder")===o)o="";r.value=o;if(r.value)k[r.name]=r.value});if(k.login&&k.apiKey)return k;else if(k.login&&!k.apiKey)b("#bitlyApiKeyMissing").removeClass("hidden");else k.apiKey&&!k.login&&b("#bitlyLoginMissing").removeClass("hidden");return null}function F(){g.find('[name="login"]').val("");g.find('[name="apiKey"]').val("");g.find('[name="domain"]').val("")}function H(k){b.each(g[0].elements,function(o,r){(o=k[r.getAttribute("name")])&&b(r).val(o)});u(g[0])}function I(){i[0].checked= +true;g.slideDown("100")}function K(){i[0].checked=false;g.slideUp("100",function(){g.css({display:"none"})})}function M(){F();delete y.shortenPrefs;K()}if(G){delete E.show;location.replace(location.href.split("#")[0]+"#"+m.objectToQuery(E))}var g=b("#shortenForm"),i=b("#bitlyCheckbox"),l;b(window).bind("load resize",function(){var k=b(window).height();b("#wrapper").css({"min-height":k})});if(s){s=JSON.parse(s);H(s);I()}else K();b("body").delegate("#bitlyCheckbox","click",function(){i[0].checked?I(): +M()}).delegate("#shortenForm","submit",function(k){var o=D();o?b.ajax({url:"http://api.bitly.com/v3/validate",type:"GET",data:{format:"json",login:o.login,x_login:o.login,x_apiKey:o.apiKey,apiKey:o.apiKey},dataType:"json",success:function(r){if(r.status_code===200&&r.data.valid)y.shortenPrefs=JSON.stringify(o);else{b("#bitlyNotValid").removeClass("hidden");delete y.shortenPrefs}},error:function(){b("#bitlyNotValid").removeClass("hidden");delete y.shortenPrefs}}):M();k.preventDefault()}).delegate(".close", +"click",function(){window.close()}).delegate(".auth","click",function(k){k=k.target.getAttribute("data-domain");var o=n.domains[k].type;v();a(k,C[k],function(r){if(r)y.lastSelection=o;else z("statusOAuthFailed")})}).delegate(".remove","click",function(k){var o=k.target,r=o.getAttribute("data-domain"),t=o.getAttribute("data-username");o=o.getAttribute("data-userid");try{v();p.remove(r,o,t)}catch(x){p.clear()}k.preventDefault()}).delegate('#settings [type="checkbox"]',"click",function(k){var o=k.target; +k=o.id;o=o.checked;y["prefs."+k]=o;opener&&!opener.closed&&h.pub("prefChanged",{name:k,value:o},opener)});l=(l=y["prefs.use_accel_key"])?JSON.parse(l):false;b("#use_accel_key")[0].checked=l||false;l=(l=y["prefs.bookmarking"])?JSON.parse(l):false;b("#bookmarking")[0].checked=l||false;b(function(){b(".overflow").textOverflow(null,true)});w&&b('li[data-tab="settings"]').removeClass("hidden");B&&b('li[data-tab="advanced"]').removeClass("hidden");b("body").delegate("ul#tabs li","click",function(){var k= +b(this),o=b("#"+k.attr("data-tab"));v();k.addClass("selected");k.siblings().removeClass("selected");if(o.is(":hidden")){o.fadeIn(200);o.siblings().fadeOut(0)}});window.onFeedLoad=function(k,o){var r,t,x;if(o&&o.feed&&o.feed.entries)for(k=0;x=o.feed.entries[k];k++)if(x.categories&&x.categories.indexOf("Sharing")!==-1){t=x.link;r=x.title;break}if(t){b("#newsFooter .headline").removeClass("invisible");b("#rssLink").attr("href",t).text(r)}};l=document.createElement("script");l.charset="utf-8";l.async= +true;l.src="https://www.google.com/uds/Gfeeds?v=1.0&callback=onFeedLoad&context=&output=json&q=http%3A%2F%2Fmozillalabs.com%2Fmessaging%2Ffeed%2F";b("head")[0].appendChild(l)})}); \ No newline at end of file diff --git a/web/0.3.4/settings/style.css b/web/0.3.4/settings/style.css new file mode 100644 index 0000000..ee3d62e --- /dev/null +++ b/web/0.3.4/settings/style.css @@ -0,0 +1,558 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +* { + margin: 0; + padding: 0; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + list-style-type: none; +} + +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 21px; + color: #0a0a0a; + overflow-y: scroll; +} + +.hidden, +#tabs li.hidden, +.hbox > *.hidden { + display: none; +} + +.invisible { + visibility: hidden; +} + +button::-moz-focus-inner { + border: 0; +} + +button { + height: 24px; + border-width: 1px; + border-style: solid; + border-color: #aaa; + cursor: pointer; + padding: 0 10px; + + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; + + background-image: -moz-linear-gradient(center top , #fafafa 0%, #ddd 100%); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #ddd)); +} + +button:active { + -moz-box-shadow: 0 0 1px #666666 inset; + -webkit-box-shadow: 0 0 1px #666666 inset; + box-shadow: 0 0 1px #666666 inset; + + background-image: -moz-linear-gradient(center top , #eee 0%, #ccc 100%); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #eee), color-stop(100%, #ccc)); +} + +button span.remove, +button span.add { + color: #fff; + font-weight: bold; + width: 14px; + height: 14px; + display: inline-block; + background-image: url("i/sprite.png"); + background-repeat: no-repeat; + vertical-align: text-bottom; + margin: 0 0 0 5px; +} + +button.done { + height: 32px; + font-size: 14px; + padding: 0 20px; + margin-bottom: 40px; +} + +button.config { + width: 100px; + text-align: center; +} + +button span.remove { + background-position: center -305px; +} + +button span.add { + background-position: center -339px; +} + +a { + color: #00a0ff; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +.status.error { + text-align: center; +} + +.error { + color: #FF0000; +} +/* From the uservoice feedback button */ +#feedback { + position: fixed; + top: 40%; + left: 0; + width: 25px; + height: 98px; + padding: 0; + margin: -45px 0 0; + text-indent: -1000px; + background-image: url("https://cdn.uservoice.com/images/widgets/en/feedback_tab_white.png"); + background-position: 2px 50%; + background-color: red; + border-color: #FF0000 #FF0000 #FF0000 -moz-use-text-color; + border-style: outset outset outset none; + border-width: 1px 1px 1px medium; + z-index: 500; +} +#feedback:hover { + text-decoration: none; + background-color: #0066CC; + border-color: #0066CC #0066CC #0066CC -moz-use-text-color; +} + +strong { + font-weight: bold; +} + +#wrapper { + width: 720px; + margin: 0 auto; + overflow: hidden; + position: relative; +} + +#shortenForm label.text { + line-height: 24px; +} + +#shortenForm input { + width: 220px; + height: 24px; + border-color: #aaa; + border-style: solid; + border-width: 1px; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15) inset; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 12px; + padding: 2px 5px; +} + +#shortenForm select { + width: 220px; +} + +/* + grid +*/ + +.c1, .c2, .c3 { + display: inline-block; + float: left; + min-height: 1%; + margin: 0 10px; + position: relative; +} + +.c1 { + width: 220px; +} + +.c2 { + width: 460px; +} + +.c3 { + width: 700px; +} + +.row { + float: left; + margin: 10px 0; +} + +.row.about { + margin: 20px 0; +} + +h1 { + font-size: 18px; + font-weight: normal; + color: #00A0FF; +} + +span.micro { + font-size: 12px; + margin: 5px 0 10px 0; + display: block; + color: #666; +} + +a.micro { + margin: 0 10px; +} + +/* + header +*/ + +#header.row { + margin: 36px 0; +} + +#header.row .c3, +#header.row .c2, +#header.row .c1 { + height: 90px; + line-height: 90px; + text-align: right; +} + +#header.row .logo { + background-image: url("i/f1Logo.png"); + background-repeat: no-repeat; + background-position: 0 -9px; +} + +/* + tabs +*/ + +ul#tabs { + display: block; + margin: 10px 10px 0 10px; +} + +ul#tabs li { + display: inline-block; + padding: 7px 20px; + border-width: 1px 1px 0 1px; + border-color: #ccc; + border-style: solid; + float: left; + margin: 0 5px; + background-color: #fff; + cursor: pointer; + -moz-border-radius: 3px 3px 0 0; + -webkit-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; +} + +ul#tabs li.selected { + background-color: #fafafa; + position: relative; + z-index: 2; +} + +/* + config +*/ + +#config { + border-top: 1px solid #ccc; + margin: -1px 10px 0 10px; + position: relative; + z-index: 1; + background-image: -moz-linear-gradient(top, #fafafa 0%, #fff 20px); +} + +.icon { + width: 16px; + height: 16px; + margin-right: 10px; + display: inline-block; + background-image: url("i/sprite.png"); + background-repeat: no-repeat; + vertical-align: text-bottom; +} + +.icon.twitter { + background-position: center -36px; +} + +.icon.facebook { + background-position: center -69px; +} + +.icon.gmail { + background-position: center -101px; +} + +.icon.yahoo { + background-position: center -132px; +} + +.icon.googleapps { + background-position: center -165px; +} + +.icon.linkedin { + background-image: url("i/LinkedIn_Logo16px.png"); + background-position: center; +} + +.icon.rss { + background-position: center -271px; + margin: 0; +} + +#done { + padding: 0 10px; +} + +.panel { + width: 100%; + margin: 20px 0; +} + +#config .about { + color: #444; + text-align: center; +} + +#config .username { + color: #aaa; +} + +#config .new { + color: #ff5959; + font-style: italic; +} + +#config ul { + margin: 10px 0 20px; + border: 1px solid #ccc; + background-color: #fafafa; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; +} + +#config ul li { + width: 100%; + padding: 10px 20px; + border-bottom: 1px solid #ccc; +} + +#config ul li .accountType { + line-height: 24px; +} + +.accountType .multipleSignOut { + float: right; + margin-right: 10px; + color: #AAAAAA; +} + +#config ul li:last-child { + border-bottom: none; + -moz-border-radius: 0 0 5px 5px; + -webkit-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; +} + +#settings .key { + margin-right: 10px; + padding: 0 3px 0 5px; + -moz-border-radius: 4px; + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.75), 0 1px 0 rgba(0, 0, 0, 0.3); + background: -moz-linear-gradient(#f8f8f8, #dddee0) repeat scroll 0 0 #ecedef; + color: #434343; + font-weight: bold; + text-align: center; + text-shadow: 0 1px 1px white; + -moz-user-select: none; +} + +#newsFooter { + padding: 0 10px; + margin: 10px 0; + position: absolute; + bottom: 0; + width: 720px; +} + +#newsFooter .privacy { + margin: 0 0 0 10px; + color: #444; +} + +/* + hbox & vbox +*/ + +.hbox { + display: -webkit-box; + -webkit-box-orient: horizontal; + -webkit-box-align: stretch; + + display: -moz-box; + -moz-box-orient: horizontal; + -moz-box-align: stretch; + + display: box; + box-orient: horizontal; + box-align: stretch; + + width: 100%; +} + +.hbox > * { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + display: block; +} + +.vbox { + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-box-align: stretch; + + display: -moz-box; + -moz-box-orient: vertical; + -moz-box-align: stretch; + + display: box; + box-orient: vertical; + box-align: stretch; +} + +.vbox > * { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + display: block; +} + +.spacer { + -webkit-box-flex: 1; + -moz-box-flex: 1; + box-flex: 1; +} + +.reverse { + -webkit-box-direction: reverse; + -moz-box-direction: reverse; + box-direction: reverse; +} + +.boxFlex0 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; +} + +.boxFlex1, .boxFlex { + -webkit-box-flex: 1; + -moz-box-flex: 1; + box-flex: 1; +} + +.boxFlex2 { + -webkit-box-flex: 2; + -moz-box-flex: 2; + box-flex: 2; +} + +.boxGroup1 { + -webkit-box-flex-group: 1; + -moz-box-flex-group: 1; + box-flex-group: 1; +} + +.boxGroup2 { + -webkit-box-flex-group: 2; + -moz-box-flex-group: 2; + box-flex-group: 2; +} + +.start { + -webkit-box-pack: start; + -moz-box-pack: start; + box-pack: start; +} + +.end { + -webkit-box-pack: end; + -moz-box-pack: end; + box-pack: end; +} + +.center { + -webkit-box-pack: center; + -moz-box-pack: center; + box-pack: center; +} + +/* + clearfix +*/ + +.clearfix:after { + content: "."; + display: block; + clear: both; + visibility: hidden; + line-height: 0; + height: 0; +} + +html[xmlns] .clearfix { + display: block; +} + +* html .clearfix { + height: 1%; +} + +/* + webkit specific styles +*/ +@media screen and (-webkit-min-device-pixel-ratio:0) { + +.overflow { + text-overflow: ellipsis; + overflow-x: hidden; + white-space: nowrap; +} + +} diff --git a/web/0.3.4/share/build.js b/web/0.3.4/share/build.js new file mode 100644 index 0000000..6bdae6b --- /dev/null +++ b/web/0.3.4/share/build.js @@ -0,0 +1,10 @@ +({ + baseUrl: "../scripts/", + paths: { + "index": "../share/index", + "jquery": "requireplugins-jquery" + }, + name: "index", + exclude: ['jquery'], + out: './index.js' +}) diff --git a/web/0.3.4/share/i/LinkedIn_Logo16px.png b/web/0.3.4/share/i/LinkedIn_Logo16px.png new file mode 100644 index 0000000000000000000000000000000000000000..c717e80fdd8409f42400030904e95c53854bd90f GIT binary patch literal 716 zcmV;-0yF)IP)+P^&^ z+)%*}H3$eXOJXC~M(YAdS}fHZZ7n-~;AzJm8i?cENEUNH*YLEo0!vD4WeiYj`k_^6 zdZ@Vpu8!@+i9KnI=F@oep^UogLQ1hYO7|o%yyJziR$brtIp{zpj^|4?EY=(--DMKy z+@};7&yGj~!Z?1QAPSR3Pez2z7jykFR2?66LQX~_l!m|>spGRkCV^HE;&at8=|vbp z>A-S*g?b~zwebQjAJ5}`xqGxKFrxNoa1f|a=S;wzqfs^BFJ z7N4`-cveC_-G|~rg$rSDg`AkyidR0pRDCmUtb*Fcd75BW!$e-tX0~W=3;IY{7mn?| yJ3aT~l#2c{_)+WsKPcAoN&2799?s4D6<`3&2tQfo$JZ(V0000G)qSS literal 0 HcmV?d00001 diff --git a/web/0.3.4/share/i/bug_b.png b/web/0.3.4/share/i/bug_b.png new file mode 100644 index 0000000000000000000000000000000000000000..cb693b1500feb7227d39c7c4b37b9a2f9b43f3ee GIT binary patch literal 235 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 literal 0 HcmV?d00001 diff --git a/web/0.3.4/share/i/loader.gif b/web/0.3.4/share/i/loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..2acb45ea5767e7d13b0080cf2574eeaebc4a7125 GIT binary patch literal 2433 zcmd6niC2*VE7GD(!6HNdZ{{&R;OkKk!|CpYIbD9mx$zB?B_} zs})R6PJaIU`N)wY6B83-V`HyhzpksR8y_G4@ZrOyOP4-<`czX>)7#rSIy!pw>ebVy zPv5?MyT8Bx+_`htu3bBN^ys^H?^;?~Uc7kG)6;X~#*OROuRnS6q_(#9)TvX=&CMet zBQ~4OYPH_KfB)gbheo6E(W6HulgVPSoH=u5U|;}6(T^WLzIpSet*x!Iv$LtG>E+9p z&z?Qg>2wVZ4Xv%MX0v&Cc=-AA=NB(t92y$Ba^=dgW5@J*{oA*1U%h&D`SN9h!Eo!= zt;WX2n>TO1fB*i%g$oZJJh*e`&WRHz>g(&fy1Kf%yPrONdh+DSEnBu!R8*9fmTud& zt*EGI$BrFaw{AUn@SsAW*tc)r#*G^vKYpB>o134XKR7s;kdUBKsm`B29~&E+k&!WX z?%ZX|mX(*6uUN4nD=SN_R`1!fXTydK%a<dcidwpKX-P>*dV0D{COdriaAszv zQmI_KcJ21<+c$6C?C0mVfB*hft5(gLH7hPIuCTC>!C>s&yEi&IdiU<#X=!OpCX>hG zB_}7RrlyKSqWJju&JJlxmUmrkb(1OmBSo|2N%(a}*{ zT)cSk;+UA2UAuO1I2Zpo6UB1 zb`}bS)z#JO)~#!AZx0I#JA3x5tE=n1d-r^Nd;$XlSFc{ZbLUQpMB?G$;pOEO6ckih zSs4%z06|b$S=raGU+r=J-yZ#|^RkG96#`yt1bYq(i?REof5G7au!6vEUcb!*z&!v1 z<5-Bnk>x}PphzuR7%boGj|ia_K3Ev(ibW&cfHNdy-iie>)dJ24GD#c60URD8BEwk( zdFYYVJNi52X1wEq0MG+Ymw7cIDDUNpecEJ3RYw4oTqKAVOmXfxr7K;oQN3D?FNy}9>36$6H}!b9VJc)XSthA z0#9f8G+bshg8FFe-@FEPrsz!7VeJIw>^4MT8do5MR1He1E}1OpH#Cp}(shzZoRUL`Is9w; zz{$PMSnAck`D4t+LLZWMq?GLt>%NC|wYq$Lt5Ht(pVGBWr7q$SeLE;*S|kxOmrL=I zRN-4?O4Sng_99+)mu_Y}0rx|j03dt!-zwPf?fCF|gGCNIQO6Nfq4IVoGPn#wbD`3j ztur&V&JIp&A~k^*Sxj+q2$rIw;ttP+MBRO1#R=G3wC=_dMwjnWFSuZSNJ(6CFIaU@ zH>)PN2|XHSofH1|R9jIM#>yZO;UD5yfVZFizvwTr0fGXKs6^UL-`B{Zw5wYbq%hsj z;fvPeECL+4Ew^5v=D5wv|6(!G1(g(Cjc_U#(|d8gFtl_GtphHi6r9)Q!iY)^GrNjN ztZ!2{1YIGRU`jeF(^_j)acC)Q`5pSO{hRp@`n4>+fhYPleu+&X!#L>wY?j#Cs+K=s zK#OSh@r#^Nh701&jz1-`!kPbIDWD>(Rl>|o8tjBZSMj->Xke74So}}!x$t{l4gu2` z^WDm`6b+nh(2yyQpCuze8B64z^L~Rq0EB;|pYg5y$#gq^kp6Pqig$RvD((h#va;XU zI+Yp77~(u!soulUxxi1NrV_(643lTM3UL(a0*XDA$FUUh%~G0J>z4#*NxDa9`2bqR z|4A1IhQ_fKu5j4=#jz16MufrqXdVEpy>}P;*>iy2yBDofHz;BKFs5x(P)&5ye?huu zC+~B2ox-1}h%2TFRu^OtgWEfgPWN(ENVN4BHCs(eFHJkMLghdb_XzWBO1x->4zZ=m z#fwpC^$fs|#R{-QZmv};lDUaZ!k&F6N7IvDELkxn5by`}n`+n$H j&pfStY literal 0 HcmV?d00001 diff --git a/web/0.3.4/share/i/sprite.png b/web/0.3.4/share/i/sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..c61ed04676cdf3e30a022d2b53d450e99c6adae4 GIT binary patch literal 4309 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 Dq@w?* literal 0 HcmV?d00001 diff --git a/web/0.3.4/share/index.html b/web/0.3.4/share/index.html new file mode 100644 index 0000000..e791710 --- /dev/null +++ b/web/0.3.4/share/index.html @@ -0,0 +1,226 @@ + + + + + F1 Alpha + + + + + + + + + + + + + + + + + + + + + + +
      + Try me! +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/web/0.3.4/share/index.js b/web/0.3.4/share/index.js new file mode 100644 index 0000000..60e223d --- /dev/null +++ b/web/0.3.4/share/index.js @@ -0,0 +1,139 @@ +/* + blade/func Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + Available via the MIT, GPL or new BSD license. + see: http://github.com/jrburke/blade for details + blade/object Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + Available via the MIT, GPL or new BSD license. + see: http://github.com/jrburke/blade for details + blade/jig Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + Available via the MIT, GPL or new BSD license. + see: http://github.com/jrburke/blade for details + blade/array Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + Available via the MIT, GPL or new BSD license. + see: http://github.com/jrburke/blade for details + blade/url Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + Available via the MIT, GPL or new BSD license. + see: http://github.com/jrburke/blade for details +*/ +define("blade/fn",[],function(){var b=Array.prototype.slice,d=Object.prototype.toString;return{is:function(e){return d.call(e)==="[object Function]"},bind:function(e,c){if(!c)return e;if(typeof c==="string")c=e[c];var a=b.call(arguments,2);return function(){return c.apply(e,a.concat(b.call(arguments,0)))}}}}); +define("blade/object",["./fn"],function(b){function d(){}var e={},c=function(a,f,g){a=a||{};var h,j=c.create(a.prototype,f);a=function(k,l,o){return j[l].apply(k,o)};f=c.create(j);c.mixin(f,b.is(g)?g(a):g,true);h=function(){if(!(this instanceof h))throw new Error('blade/object: constructor function called without "new" in front');this.init&&this.init.apply(this,arguments)};h.prototype=f;return h};c.create=function(a,f){d.prototype=a;a=new d;var g,h;d.prototype=null;if(f)for(g=0;h=f[g];g++)c.mixin(a, +h);return a};c.mixin=function(a,f,g){for(var h in f)if(!(h in e)&&(!(h in a)||g))a[h]=f[h]};return c}); +define("blade/jig",["require","./object"],function(b,d){function e(i){return z.call(i)==="[object Array]"}function c(i,m,n){m=m;var r,p;for(r=0;m&&(p=i[r]);r++)m=typeof m==="object"&&p in m?m[p]:n&&r===0&&p in n?n[p]:undefined;return m}function a(i){return i?parseInt(i,10):0}function f(i,m,n){var r=/\[([\w0-9\.'":]+)\]/,p=i,B=m,y=true,E,G;if(i===A)return m;if(x.test(i))return a(i);if(i==="")return"";E=i.charAt(0);if(E==="'"||E==="'")return i.substring(1,i.length-1);if((E=i.indexOf("("))!==-1){r=i.lastIndexOf(")"); +y=i.substring(0,E);p=n.fn[y];if(!p){o.error("Cannot find function named: "+y+" for "+i);return""}y=i.substring(E+1,r);if(y.indexOf(",")!==-1){y=y.split(",");for(B=y.length-1;B>=0;B--)y[B]=f(y[B],m,n);p=p.apply(null,y)}else p=p(f(y,m,n));if(r";else{y=p.charAt(0);G=p}}if(y&&!m.propertyRegExp.test(y))G=G.substring(1).trim();else y="_default_";if(p=G.indexOf(m.rawHtmlToken)===0)G=G.substring(m.rawHtmlToken.length,G.length);if(y===F)p=true;G=G.split(m.argSeparator);R=G[G.length-1];S=R.charAt(R.length-1);P=null;if(y==="]"){if(S!=="["){n.templateEnd=r;n.endControl=true}else n.templateEnd=r-E[0].length;return n}else if(S==="["){B||(B=Z++);G[G.length-1]=R.substring(0,R.length- +1);P=h(i.substring(r),m);r+=P.templateEnd}if(y==="+")m.templates[G[0]]=P;else if(y!=="/"){if(G.length>1)for(E=G.length-1;E>=0;E--)if(G[E].charAt(G[E].length-1)===","){G[E]+=G[E+1];G.splice(E+1,1)}n.push({action:m.commands[y].action,useRawHtml:p,args:G,controlId:B,children:P})}if(P&&P.endControl)B=0}else{n.push(r);return n}}r!==i.length-1&&n.push(i.substring(r,i.length));return n}function j(i,m){var n,r=i.id;n=m.templates||K;if(n[r])return n[r];m.onBeforeParse&&m.onBeforeParse(i);if(i.nodeName.toUpperCase()=== +"SCRIPT"){n=i.text.trim();i.parentNode&&i.parentNode.removeChild(i)}else{V.appendChild(i);i.removeAttribute("id");(n=(i.getAttribute("class")||"").trim())&&i.setAttribute("class",n.replace(aa,"$1$3"));n=V.innerHTML.replace(/%7B/g,"{").replace(/%7D/g,"}");V.removeChild(i)}i=o.compile(n,m);o.cache(r,i,m);return i}function k(i,m,n){var r="",p,B,y,E,G;if(typeof i==="string")r=i;else if(e(i))for(p=0;pm},gte:function(i,m){return i>=m},lt:function(i,m){return ip.prop?1:-1})}},Y=1,Z=1,T={},V=typeof document!=="undefined"&&document.createElement?document.createElement("div"):null,aa=/(\s*)(template)(\s*)/;s={_default_:{doc:"Property reference",action:function(i,m,n,r,p){var B=i[0]?f(i[0],m,n):m,y=i[1]?f(i[1],m,n):undefined,E="";if(i[1]){y=B===y;B=m}else y=B;if(y===false||y===null||y===undefined||e(y)&&!y.length)return"";else if(r)if(e(B))for(i=0;i1?i[1]:A,m,n);return p(r,m,n)}},".":{doc:"Variable declaration",action:function(i,m,n){n.context[i[0]]=f(i[1],m,n);return""}},">":{doc:"Else",action:function(i,m,n,r,p){if(r)return p(r,m,n);return""}}};o=function(i,m,n){if(typeof i==="string")if(i.charAt(0)=== +"#"){i=i.substring(1,i.length);i=g(i,n)}else i=o.compile(i,n);return o.render(i,m,n)};o.htmlEscape=function(i){return i.replace(/&/g,"&").replace(//g,">").replace(/"/g,""")};o.compile=function(i,m){m=m||{};d.mixin(m,{startToken:"{",endToken:"}",rawHtmlToken:"^",propertyRegExp:v,commands:s,argSeparator:" ",templates:K});m.endRegExp=/[^\r\n]*?}/;Z=1;return h(i,m)};o.parse=function(i,m){if(i&&!i.length){m=i;i=null}m=m||{};i=i||document.querySelectorAll('.template, script[type="text/template"]'); +var n,r;for(r=i.length-1;r>-1&&(n=i[r]);r--)j(n,m)};o.render=function(i,m,n){var r,p="";n=n||{};d.mixin(n,{templates:K,attachData:false,strict:o.strict});if(n.fn)d.mixin(n.fn,O);else n.fn=O;n.context=n.context||d.create(m);if(e(m)){for(r=0;r=365&&c<730){a.additional=d.toLocaleDateString(); +a.friendly="a year ago";return a}if(c>=365){a.additional=d.toLocaleDateString();a.friendly=Math.ceil(c/365)+" years ago";return a}return a},name:function(d){d=d.split(" ")[0];if(d.indexOf("@")!==-1)d=d.split("@")[0];d=d.replace(" ","");d=d.replace("'","");return d=d.replace('"',"")}};return b}); +define("isoDate",[],function(){var b=/^(?:(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(.\d+)?)?((?:[+\-](\d{2}):(\d{2}))|Z)?)?$/,d=function(e,c){var a=b.exec(e);e=null;var f,g;if(a){a.shift();a[1]&&a[1]--;if(a[6])a[6]*=1E3;if(c){c=new Date(c);["FullYear","Month","Date","Hours","Minutes","Seconds","Milliseconds"].map(function(h){return c["get"+h]()}).forEach(function(h,j){a[j]=a[j]||h})}e=new Date(a[0]||1970,a[1]||0,a[2]||1,a[3]||0,a[4]||0,a[5]||0,a[6]||0);if(a[0]<100)e.setFullYear(a[0]|| +1970);f=0;g=a[7]&&a[7].charAt(0);if(g!=="Z"){f=(a[8]||0)*60+(Number(a[9])||0);if(g!=="-")f*=-1}if(g)f-=e.getTimezoneOffset();f&&e.setTime(e.getTime()+f*6E4)}return e};d.toIsoString=function(e,c){var a=function(j){return j<10?"0"+j:j},f,g,h;c=c||{};f=[];g=c.zulu?"getUTC":"get";h="";if(c.selector!=="time"){h=e[g+"FullYear"]();h=["0000".substr((h+"").length)+h,a(e[g+"Month"]()+1),a(e[g+"Date"]())].join("-")}f.push(h);if(c.selector!=="date"){h=[a(e[g+"Hours"]()),a(e[g+"Minutes"]()),a(e[g+"Seconds"]())].join(":"); +g=e[g+"Milliseconds"]();if(c.milliseconds)h+="."+(g<100?"0":"")+a(g);if(c.zulu)h+="Z";else if(c.selector!=="time"){e=e.getTimezoneOffset();c=Math.abs(e);h+=(e>0?"-":"+")+a(Math.floor(c/60))+":"+a(c%60)}f.push(h)}return f.join("T")};return d});var EXPORTED_SYMBOLS=["hex_md5"],hexcase=0,b64pad="";function hex_md5(b){return rstr2hex(rstr_md5(str2rstr_utf8(b)))}function b64_md5(b){return rstr2b64(rstr_md5(str2rstr_utf8(b)))}function any_md5(b,d){return rstr2any(rstr_md5(str2rstr_utf8(b)),d)} +function hex_hmac_md5(b,d){return rstr2hex(rstr_hmac_md5(str2rstr_utf8(b),str2rstr_utf8(d)))}function b64_hmac_md5(b,d){return rstr2b64(rstr_hmac_md5(str2rstr_utf8(b),str2rstr_utf8(d)))}function any_hmac_md5(b,d,e){return rstr2any(rstr_hmac_md5(str2rstr_utf8(b),str2rstr_utf8(d)),e)}function md5_vm_test(){return hex_md5("abc").toLowerCase()=="900150983cd24fb0d6963f7d28e17f72"}function rstr_md5(b){return binl2rstr(binl_md5(rstr2binl(b),b.length*8))} +function rstr_hmac_md5(b,d){var e=rstr2binl(b);if(e.length>16)e=binl_md5(e,b.length*8);var c=Array(16);b=Array(16);for(var a=0;a<16;a++){c[a]=e[a]^909522486;b[a]=e[a]^1549556828}d=binl_md5(c.concat(rstr2binl(d)),512+d.length*8);return binl2rstr(binl_md5(b.concat(d),640))}function rstr2hex(b){for(var d=hexcase?"0123456789ABCDEF":"0123456789abcdef",e="",c,a=0;a>>4&15)+d.charAt(c&15)}return e} +function rstr2b64(b){for(var d="",e=b.length,c=0;cb.length*8?b64pad:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(a>>>6*(3-f)&63);return d} +function rstr2any(b,d){var e=d.length,c,a,f,g,h,j=Array(Math.ceil(b.length/2));for(c=0;c0||f>0)h[h.length]=f}b[a]=g;j=h}e="";for(c=b.length-1;c>=0;c--)e+=d.charAt(b[c]);return e} +function str2rstr_utf8(b){for(var d="",e=-1,c,a;++e>>6&31,128|c&63);else if(c<=65535)d+=String.fromCharCode(224|c>>>12&15,128|c>>>6&63,128|c&63);else if(c<=2097151)d+=String.fromCharCode(240|c>>>18&7,128|c>>>12&63,128|c>>>6&63,128|c&63)}return d} +function str2rstr_utf16le(b){for(var d="",e=0;e>>8&255);return d}function str2rstr_utf16be(b){for(var d="",e=0;e>>8&255,b.charCodeAt(e)&255);return d}function rstr2binl(b){for(var d=Array(b.length>>2),e=0;e>5]|=(b.charCodeAt(e/8)&255)<>5]>>>e%32&255);return d} +function binl_md5(b,d){b[d>>5]|=128<>>9<<4)+14]=d;d=1732584193;for(var e=-271733879,c=-1732584194,a=271733878,f=0;f>16)+(d>>16)+(e>>16)<<16|e&65535}function bit_rol(b,d){return b<>>32-d}define("md5",function(){}); +define("rdapi",["require","jquery","blade/object","blade/jig","friendly","isoDate","md5"],function(b,d,e,c,a,f){function g(v){if(typeof v==="string")v={template:v};else if(v.templateId)v.template=c.cache(v.templateId);if(!("attachData"in v))v.attachData=l.attachTemplateData;if(v.emptyTemplateId)v.emptyTemplate=c.cache(v.emptyTemplateId);return v}function h(){var v=s.exec(document.cookie);return v&&v[1]?v[1]:null}function j(v,A){A.url=F.baseUrl+F.apiPath+v;e.mixin(A,{limit:30,message_limit:3,dataType:"json", +error:function(D,K,O){throw O;}});var w=A.success,x=h();A.success=function(D){D&&D.contacts&&e.mixin(z,D.contacts,true);return w?w.apply(null,arguments):D};if(x)A.beforeSend=function(D){D.setRequestHeader(o,x)};d.ajax(A)}function k(v,A){var w=A.forId?document.getElementById(A.forId):null;if(w)w.innerHTML=v;A.onTemplateDone&&A.onTemplateDone(v);d(document).trigger("rdapi-done",w)}var l,o="X-CSRF",s=/csrf=([^\; ]+)/,z={},C={contact:function(v){return v.iid&&v.domain?z[v.iid]||{}:v},contactPhotoUrl:function(v){var A= +"i/face2.png",w,x;v=C.contact(v);if((w=v.photos)&&w.length){A=w[0].value;w.forEach(function(D){if(D.primary)A=D.value})}else if(v.emails&&v.emails.length){x=v.emails[0].value;v.emails.forEach(function(D){if(D.primary)x=D.value});A="http://www.gravatar.com/avatar/"+hex_md5(x)+"?s=24 &d=identicon"}return A},allMessages:function(v){return[v.topic].concat(v.messages||[])},friendlyDate:function(v){return a.date(f(v)).friendly},htmlBody:function(v){return c.htmlEscape(v).replace(/\n/g,"
      ")}},F={baseUrl:"/", +apiPath:"api/",saveTemplateData:true};c.addFn(C);l=function(v,A){A=g(A);e.mixin(A,{success:function(w){var x=A.template,D=A.emptyTemplate,K="";if(A.forId&&x){if(A.prop)w=c.getObject(A.prop,w,A);if(b.isArray(w))if(w.length)w.forEach(function(O){K+=c(x,O,A)});else K+=c(D,w,A);else K+=c(!w?D:x,w,A);k(K,A)}},error:function(w,x,D){if(A.emptyTemplate){w=c(A.emptyTemplate,D,A);k(w,A)}else throw D;}});j(v,A)};l.contactPhotoUrl=C.contactPhotoUrl;l.attachTemplateData=false;b.ready(function(){var v=[];c.parse({onBeforeParse:function(A){var w= +A.id,x=A.getAttribute("data-rdapi"),D=A.getAttribute("data-rdfor"),K=A.getAttribute("data-rdprop");x&&v.push({templateId:w,api:x,forId:D,prop:K});["data-rdapi","data-rdprop","data-rdfor"].forEach(function(O){A.removeAttribute(O)})}});v.forEach(function(A){l(A.api,A)})});return l});define("storage",[],function(){function b(){return d}var d=localStorage,e="localStorage";try{d.tempVar="temp";delete d.tempVar}catch(c){d={};e="memory"}b.type=e;return b}); +define("dispatch",["jquery"],function(){var b=location.protocol+"//"+location.host;return{sub:function(d,e,c,a){c=c||window;a=a||b;var f=function(g){if(g.origin===a||g.origin==="chrome://browser")try{var h=JSON.parse(g.data),j=h.topic;j&&j===d&&e(h.data)}catch(k){}};c.addEventListener("message",f,false);return f},unsub:function(d,e){e=e||window;e.removeEventListener("message",d,false)},pub:function(d,e,c){c=c||window;c.postMessage(JSON.stringify({topic:d,data:e}),b)}}}); +define("services",["blade/object","storage"],function(b,d){function e(h,j){if(h){this.name=h;this.type=h.replace(/\s/g,"").toLowerCase();this.tabName=this.type+"Tab";this.icon="i/"+this.type+"Icon.png";this.features={counter:false,direct:false,subject:false};b.mixin(this,j,true)}}function c(){e.constructor.apply(this,arguments);this.features.direct=true;this.features.subject=true}var a=parseFloat(navigator.userAgent.split("Firefox/")[1])>=4;d=d();var f,g;e.constructor=e;e.prototype={clearCache:function(h){delete h[this.type+ +"Contacts"]},getContacts:function(h){if(h[this.type+"Contacts"])return JSON.parse(h[this.type+"Contacts"]);return null},setContacts:function(h,j){h[this.type+"Contacts"]=JSON.stringify(j)},get36FormattedContacts:function(){return null}};c.prototype=new e;c.constructor=c;c.prototype.validate=function(h){if(!h.to||!h.to.trim())return false;return true};c.prototype.get36FormattedContacts=function(h){var j=[];h.forEach(function(k){k.emails&&k.emails.length&&k.emails.forEach(function(l){j.push({displayName:k.displayName? +k.displayName:l.value,email:l.value})})});return j};c.prototype.overlays={Contacts:"ContactsEmail"};f={domains:{"twitter.com":new e("Twitter",{features:{direct:true,subject:false,counter:true},shareTypes:[{type:"public",name:"public"},{type:"direct",name:"direct message",showTo:true,toLabel:"type in name of recipient"}],textLimit:140,shorten:true,serviceUrl:"http://twitter.com",revokeUrl:"http://twitter.com/settings/connections",signOutUrl:"http://twitter.com/logout",accountLink:function(h){return"http://twitter.com/"+ +h.username},forceLogin:{name:"force_login",value:true},overlays:{Contacts:"ContactsTwitter"}}),"facebook.com":new e("Facebook",{features:{direct:true,subject:false,counter:true,medium:true},shareTypes:[{type:"wall",name:"my wall"},{type:"groupWall",name:"group wall",showTo:true,toLabel:"type in the name of the group"}],textLimit:420,serviceUrl:"http://facebook.com",revokeUrl:"http://www.facebook.com/editapps.php?v=allowed",signOutUrl:"http://facebook.com",accountLink:function(h){return"http://www.facebook.com/profile.php?id="+ +h.userid},overlays:{"widgets/AccountPanel":"widgets/AccountPanelFaceBook"}}),"google.com":new c("Gmail",{shareTypes:[{type:"direct",name:"direct",showTo:true}],serviceUrl:"https://mail.google.com",revokeUrl:"https://www.google.com/accounts/IssuedAuthSubTokens",signOutUrl:"http://google.com/preferences",accountLink:function(h){return"http://google.com/profiles/"+h.username},forceLogin:{name:"pape_max_auth_age",value:0}}),"googleapps.com":new c("Google Apps",{shareTypes:[{type:"direct",name:"direct", +showTo:true}],icon:"i/gmailIcon.png",serviceUrl:"https://mail.google.com",revokeUrl:"https://www.google.com/accounts/IssuedAuthSubTokens",signOutUrl:"http://google.com/preferences",accountLink:function(h){return"http://google.com/profiles/"+h.username},forceLogin:{name:"pape_max_auth_age",value:0}}),"yahoo.com":new c("Yahoo",{shareTypes:[{type:"direct",name:"direct",showTo:true}],name:"Yahoo!",serviceUrl:"http://mail.yahoo.com",revokeUrl:"https://api.login.yahoo.com/WSLogin/V1/unlink",signOutUrl:"https://login.yahoo.com/config/login?logout=1", +accountLink:function(h){return"http://profiles.yahoo.com/"+h.username}}),"linkedin.com":new e("LinkedIn",{isNew:true,features:{direct:true,subject:true,counter:false},shareTypes:[{type:"public",name:"anyone"},{type:"myConnections",name:"connections only",specialTo:"connections-only"},{type:"contact",name:"send message",showTo:true,toLabel:"type in the name of the contact"}],serviceUrl:"http://linkedin.com",revokeUrl:"http://linkedin.com/settings/connections",signOutUrl:"https://www.linkedin.com/secure/login?session_full_logout=&trk=hb_signout", +accountLink:function(h){return"http://linkedin.com/"+h.username},overlays:{"widgets/AccountPanel":"widgets/AccountPanelLinkedIn"}})},domainList:[],svcBaseProto:e.prototype};for(g in f.domains)if(f.domains.hasOwnProperty(g)){f.domainList.push(g);if(a){delete d[f.domains[g].type+"Contacts"];delete d.contactsModelVersion}}return f}); +define("accounts",["storage","dispatch","rdapi","services"],function(b,d,e,c){function a(l,o,s,z){return l.domain===o&&(s&&l.userid===s||z&&l.username===z)}function f(l){if(l)l=JSON.parse(l);return l}function g(l,o){return k.accounts(l,o)}function h(){location.reload()}var j=b(),k;k={localStorage:{accounts:function(l,o){var s=f(j.accountCache)||[],z=f(j.serviceCache);if(z){z=z||[];l&&l(s,z)}else k.fetch(l,o)},update:function(l){var o=f(j.accountCache)||[],s=f(j.serviceCache),z=false,C,F,v;C=l.profile; +for(F=0;Fc+4E3){c=h;a=g+"?domain="+a+(f?"&forceLogin=1":"");try{e=window.open(a,"ffshareOAuth", +"dialog=yes, modal=yes, width=900, height=500, scrollbars=yes");e.focus()}catch(j){window.location=a+"&end_point_success="+encodeURI(window.location)}}else e&&e.focus()}});define("blade/array",[],function(){var b=Object.prototype.toString,d=Array.prototype.slice;return{is:function(e){return b.call(e)==="[object Array]"},to:function(){return[].concat(d.call(arguments,0))}}}); +define("blade/url",["./array"],function(b){var d=Object.prototype.toString;return{objectToQuery:function(e){var c=encodeURIComponent,a=[],f={},g,h,j,k;for(g in e)if(e.hasOwnProperty(g)){h=e[g];if(h!==f[g]){j=c(g)+"=";if(b.is(h))for(k=0;kthis.limit}})}); +(function(b,d){function e(c){return!b(c).parents().andSelf().filter(function(){return b.curCSS(this,"visibility")==="hidden"||b.expr.filters.hidden(this)}).length}b.ui=b.ui||{};if(!b.ui.version){b.extend(b.ui,{version:"1.8.6",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109, +PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});b.fn.extend({_focus:b.fn.focus,focus:function(c,a){return typeof c==="number"?this.each(function(){var f=this;setTimeout(function(){b(f).focus();a&&a.call(f)},c)}):this._focus.apply(this,arguments)},scrollParent:function(){var c;c=b.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(b.curCSS(this, +"position",1))&&/(auto|scroll)/.test(b.curCSS(this,"overflow",1)+b.curCSS(this,"overflow-y",1)+b.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(b.curCSS(this,"overflow",1)+b.curCSS(this,"overflow-y",1)+b.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!c.length?b(document):c},zIndex:function(c){if(c!==d)return this.css("zIndex",c);if(this.length){c=b(this[0]);for(var a;c.length&&c[0]!==document;){a=c.css("position"); +if(a==="absolute"||a==="relative"||a==="fixed"){a=parseInt(c.css("zIndex"),10);if(!isNaN(a)&&a!==0)return a}c=c.parent()}}return 0},disableSelection:function(){return this.bind((b.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(c){c.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});b.each(["Width","Height"],function(c,a){function f(k,l,o,s){b.each(g,function(){l-=parseFloat(b.curCSS(k,"padding"+this,true))||0;if(o)l-=parseFloat(b.curCSS(k, +"border"+this+"Width",true))||0;if(s)l-=parseFloat(b.curCSS(k,"margin"+this,true))||0});return l}var g=a==="Width"?["Left","Right"]:["Top","Bottom"],h=a.toLowerCase(),j={innerWidth:b.fn.innerWidth,innerHeight:b.fn.innerHeight,outerWidth:b.fn.outerWidth,outerHeight:b.fn.outerHeight};b.fn["inner"+a]=function(k){if(k===d)return j["inner"+a].call(this);return this.each(function(){b(this).css(h,f(this,k)+"px")})};b.fn["outer"+a]=function(k,l){if(typeof k!=="number")return j["outer"+a].call(this,k);return this.each(function(){b(this).css(h, +f(this,k,true,l)+"px")})}});b.extend(b.expr[":"],{data:function(c,a,f){return!!b.data(c,f[3])},focusable:function(c){var a=c.nodeName.toLowerCase(),f=b.attr(c,"tabindex");if("area"===a){a=c.parentNode;f=a.name;if(!c.href||!f||a.nodeName.toLowerCase()!=="map")return false;c=b("img[usemap=#"+f+"]")[0];return!!c&&e(c)}return(/input|select|textarea|button|object/.test(a)?!c.disabled:"a"==a?c.href||!isNaN(f):!isNaN(f))&&e(c)},tabbable:function(c){var a=b.attr(c,"tabindex");return(isNaN(a)||a>=0)&&b(c).is(":focusable")}}); +b(function(){var c=document.body,a=c.appendChild(a=document.createElement("div"));b.extend(a.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});b.support.minHeight=a.offsetHeight===100;b.support.selectstart="onselectstart"in a;c.removeChild(a).style.display="none"});b.extend(b.ui,{plugin:{add:function(c,a,f){c=b.ui[c].prototype;for(var g in f){c.plugins[g]=c.plugins[g]||[];c.plugins[g].push([a,f[g]])}},call:function(c,a,f){if((a=c.plugins[a])&&c.element[0].parentNode)for(var g=0;g0)return true;c[a]=1;f=c[a]>0;c[a]=0;return f},isOverAxis:function(c,a,f){return c>a&&c
      ",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
    • #{label}
    • "},_create:function(){this._tabify(true)},_setOption:function(g,h){if(g=="selected")this.options.collapsible&& +h==this.options.selected||this.select(h);else{this.options[g]=h;this._tabify()}},_tabId:function(g){return g.title&&g.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+e()},_sanitizeSelector:function(g){return g.replace(/:/g,"\\:")},_cookie:function(){var g=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+c());return b.cookie.apply(null,[g].concat(b.makeArray(arguments)))},_ui:function(g,h){return{tab:g,panel:h,index:this.anchors.index(g)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var g= +b(this);g.html(g.data("label.tabs")).removeData("label.tabs")})},_tabify:function(g){function h(w,x){w.css("display","");!b.support.opacity&&x.opacity&&w[0].style.removeAttribute("filter")}var j=this,k=this.options,l=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=b(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return b("a",this)[0]});this.panels=b([]);this.anchors.each(function(w,x){var D=b(x).attr("href"),K=D.split("#")[0],O;if(K&&(K===location.toString().split("#")[0]|| +(O=b("base")[0])&&K===O.href)){D=x.hash;x.href=D}if(l.test(D))j.panels=j.panels.add(j._sanitizeSelector(D));else if(D&&D!=="#"){b.data(x,"href.tabs",D);b.data(x,"load.tabs",D.replace(/#.*$/,""));D=j._tabId(x);x.href="#"+D;x=b("#"+D);if(!x.length){x=b(k.panelTemplate).attr("id",D).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(j.panels[w-1]||j.list);x.data("destroy.tabs",true)}j.panels=j.panels.add(x)}else k.disabled.push(w)});if(g){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); +this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(k.selected===d){location.hash&&this.anchors.each(function(w,x){if(x.hash==location.hash){k.selected=w;return false}});if(typeof k.selected!=="number"&&k.cookie)k.selected=parseInt(j._cookie(),10);if(typeof k.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)k.selected= +this.lis.index(this.lis.filter(".ui-tabs-selected"));k.selected=k.selected||(this.lis.length?0:-1)}else if(k.selected===null)k.selected=-1;k.selected=k.selected>=0&&this.anchors[k.selected]||k.selected<0?k.selected:0;k.disabled=b.unique(k.disabled.concat(b.map(this.lis.filter(".ui-state-disabled"),function(w){return j.lis.index(w)}))).sort();b.inArray(k.selected,k.disabled)!=-1&&k.disabled.splice(b.inArray(k.selected,k.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); +if(k.selected>=0&&this.anchors.length){b(j._sanitizeSelector(j.anchors[k.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(k.selected).addClass("ui-tabs-selected ui-state-active");j.element.queue("tabs",function(){j._trigger("show",null,j._ui(j.anchors[k.selected],b(j._sanitizeSelector(j.anchors[k.selected].hash))))});this.load(k.selected)}b(window).bind("unload",function(){j.lis.add(j.anchors).unbind(".tabs");j.lis=j.anchors=j.panels=null})}else k.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")); +this.element[k.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");k.cookie&&this._cookie(k.selected,k.cookie);g=0;for(var o;o=this.lis[g];g++)b(o)[b.inArray(g,k.disabled)!=-1&&!b(o).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");k.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(k.event!=="mouseover"){var s=function(w,x){x.is(":not(.ui-state-disabled)")&&x.addClass("ui-state-"+w)},z=function(w,x){x.removeClass("ui-state-"+ +w)};this.lis.bind("mouseover.tabs",function(){s("hover",b(this))});this.lis.bind("mouseout.tabs",function(){z("hover",b(this))});this.anchors.bind("focus.tabs",function(){s("focus",b(this).closest("li"))});this.anchors.bind("blur.tabs",function(){z("focus",b(this).closest("li"))})}var C,F;if(k.fx)if(b.isArray(k.fx)){C=k.fx[0];F=k.fx[1]}else C=F=k.fx;var v=F?function(w,x){b(w).closest("li").addClass("ui-tabs-selected ui-state-active");x.hide().removeClass("ui-tabs-hide").animate(F,F.duration||"normal", +function(){h(x,F);j._trigger("show",null,j._ui(w,x[0]))})}:function(w,x){b(w).closest("li").addClass("ui-tabs-selected ui-state-active");x.removeClass("ui-tabs-hide");j._trigger("show",null,j._ui(w,x[0]))},A=C?function(w,x){x.animate(C,C.duration||"normal",function(){j.lis.removeClass("ui-tabs-selected ui-state-active");x.addClass("ui-tabs-hide");h(x,C);j.element.dequeue("tabs")})}:function(w,x){j.lis.removeClass("ui-tabs-selected ui-state-active");x.addClass("ui-tabs-hide");j.element.dequeue("tabs")}; +this.anchors.bind(k.event+".tabs",function(){var w=this,x=b(w).closest("li"),D=j.panels.filter(":not(.ui-tabs-hide)"),K=b(j._sanitizeSelector(w.hash));if(x.hasClass("ui-tabs-selected")&&!k.collapsible||x.hasClass("ui-state-disabled")||x.hasClass("ui-state-processing")||j.panels.filter(":animated").length||j._trigger("select",null,j._ui(this,K[0]))===false){this.blur();return false}k.selected=j.anchors.index(this);j.abort();if(k.collapsible)if(x.hasClass("ui-tabs-selected")){k.selected=-1;k.cookie&& +j._cookie(k.selected,k.cookie);j.element.queue("tabs",function(){A(w,D)}).dequeue("tabs");this.blur();return false}else if(!D.length){k.cookie&&j._cookie(k.selected,k.cookie);j.element.queue("tabs",function(){v(w,K)});j.load(j.anchors.index(this));this.blur();return false}k.cookie&&j._cookie(k.selected,k.cookie);if(K.length){D.length&&j.element.queue("tabs",function(){A(w,D)});j.element.queue("tabs",function(){v(w,K)});j.load(j.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier."; +b.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(g){if(typeof g=="string")g=this.anchors.index(this.anchors.filter("[href$="+g+"]"));return g},destroy:function(){var g=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var h= +b.data(this,"href.tabs");if(h)this.href=h;var j=b(this).unbind(".tabs");b.each(["href","load","cache"],function(k,l){j.removeData(l+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){b.data(this,"destroy.tabs")?b(this).remove():b(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});g.cookie&&this._cookie(null,g.cookie);return this},add:function(g, +h,j){if(j===d)j=this.anchors.length;var k=this,l=this.options;h=b(l.tabTemplate.replace(/#\{href\}/g,g).replace(/#\{label\}/g,h));g=!g.indexOf("#")?g.replace("#",""):this._tabId(b("a",h)[0]);h.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var o=b("#"+g);o.length||(o=b(l.panelTemplate).attr("id",g).data("destroy.tabs",true));o.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(j>=this.lis.length){h.appendTo(this.list);o.appendTo(this.list[0].parentNode)}else{h.insertBefore(this.lis[j]); +o.insertBefore(this.panels[j])}l.disabled=b.map(l.disabled,function(s){return s>=j?++s:s});this._tabify();if(this.anchors.length==1){l.selected=0;h.addClass("ui-tabs-selected ui-state-active");o.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){k._trigger("show",null,k._ui(k.anchors[0],k.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[j],this.panels[j]));return this},remove:function(g){g=this._getIndex(g);var h=this.options,j=this.lis.eq(g).remove(),k=this.panels.eq(g).remove(); +if(j.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(g+(g+1=g?--l:l});this._tabify();this._trigger("remove",null,this._ui(j.find("a")[0],k[0]));return this},enable:function(g){g=this._getIndex(g);var h=this.options;if(b.inArray(g,h.disabled)!=-1){this.lis.eq(g).removeClass("ui-state-disabled");h.disabled=b.grep(h.disabled,function(j){return j!=g});this._trigger("enable",null, +this._ui(this.anchors[g],this.panels[g]));return this}},disable:function(g){g=this._getIndex(g);var h=this.options;if(g!=h.selected){this.lis.eq(g).addClass("ui-state-disabled");h.disabled.push(g);h.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[g],this.panels[g]))}return this},select:function(g){g=this._getIndex(g);if(g==-1)if(this.options.collapsible&&this.options.selected!=-1)g=this.options.selected;else return this;this.anchors.eq(g).trigger(this.options.event+".tabs");return this}, +load:function(g){g=this._getIndex(g);var h=this,j=this.options,k=this.anchors.eq(g)[0],l=b.data(k,"load.tabs");this.abort();if(!l||this.element.queue("tabs").length!==0&&b.data(k,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(g).addClass("ui-state-processing");if(j.spinner){var o=b("span",k);o.data("label.tabs",o.html()).html(j.spinner)}this.xhr=b.ajax(b.extend({},j.ajaxOptions,{url:l,success:function(s,z){b(h._sanitizeSelector(k.hash)).html(s);h._cleanup();j.cache&&b.data(k,"cache.tabs", +true);h._trigger("load",null,h._ui(h.anchors[g],h.panels[g]));try{j.ajaxOptions.success(s,z)}catch(C){}},error:function(s,z){h._cleanup();h._trigger("load",null,h._ui(h.anchors[g],h.panels[g]));try{j.ajaxOptions.error(s,z,g,k)}catch(C){}}}));h.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this},url:function(g, +h){this.anchors.eq(g).removeData("cache.tabs").data("load.tabs",h);return this},length:function(){return this.anchors.length}});b.extend(b.ui.tabs,{version:"1.8.6"});b.extend(b.ui.tabs.prototype,{rotation:null,rotate:function(g,h){var j=this,k=this.options,l=j._rotate||(j._rotate=function(o){clearTimeout(j.rotation);j.rotation=setTimeout(function(){var s=k.selected;j.select(++sf))for(l=0;lo){for(;s/g,">").replace(/"/g,"""):q}function F(){k.pub("hide")}function v(){E.addClass("hidden");d("div.status").addClass("hidden");h()}function A(){var q=n&&n.domain||"twitter.com",u= +p.siteName,H=p.url||"",J=H.indexOf("//")+2;d("#statusShared").empty().append(f("#sharedTemplate",{domain:u||H.slice(J,H.indexOf("/",J)),service:m[q].name,href:m[q].serviceUrl})).find(".shareTitle").textOverflow(null,true);i("statusShared",true)}function w(q,u){d("#captchaImage").attr("src",q.imageurl);u&&d("#captchaMsg").text(u.message);d("#captchaSound").attr("src",q.audiourl);i("statusCaptcha",false)}function x(){var q={link:n.link,domain:n.domain,formData:m[n.domain].getFormData()};L.sessionRestore= +JSON.stringify(q);i("statusAuth")}function D(){i("statusSharing");if(m[n.domain].validate(n)){var q=l.getService(n.domain,n.userid,n.username);n.account=JSON.stringify(q);c("send",{type:"POST",data:n,success:function(u){if(u.error&&u.error.status){var H=u.error.status;if(H===401||H===535)x();else if(u.error.code==="Client.HumanVerificationRequired")w(u.error.detail);else u.error.code==="Client.WrongInput"?w(u.error.detail,u.error):i("statusError",u.error.message)}else if(u.error)i("statusError",u.error.message); +else{L.lastSelection=m[n.domain].type;A()}delete L.sessionRestore},error:function(u,H,J){if(u.status===403)x();else u.status===503?i("statusServerBusy"):i("statusError",J)}})}else i("statusToError")}function K(q){var u=s.domains[q];d("#"+u.type).find('[name="to"]');(u=u.getContacts(L))||(u=[]);q==="google.com"&&k.pub("autoCompleteData",u)}function O(q,u){var H=u.accounts[0],J=s.domains[H.domain];if(J.getContacts(L))K(H.domain);else{q=l.getService(H.domain,H.userid,H.username);c("contacts/"+H.domain, +{type:"POST",data:{username:H.username,userid:H.userid,startindex:0,maxresults:500,account:JSON.stringify(q)},success:function(M){if(M&&!M.error){var N=[];N=J.get36FormattedContacts(M.result.entry);J.setContacts(L,N);K(H.domain)}}})}}function Y(q,u){var H=q="",J=true,M="",N=u.panel.id,I=d(".user-info");if(N!=="debug"){q=d(u.panel).find("div.user img.avatar").attr("src");H=d(u.panel).find("div.user .username").text();J=d(u.panel).find("div.user").hasClass("inactive");M=d(u.panel).find("div.user input[type='hidden'][name='domain']").val()}d(".user-info img.avatar").attr("src", +q);q?I.show():I.hide();d(".user-info .status").toggleClass("inactive",J);d(".user-info .username").text(H);d(".user-info").attr("data-domain",M)}function Z(q,u){d(function(){var H=u.displayName,J=u.accounts[0],M=u.photos&&u.photos[0]&&u.photos[0].value,N=d("#"+q),I;if((I=J.username)&&I!==H)H=H+" <"+I+">";d("."+q+"Tab").removeClass("hidden");H&&N.find(".username").text(H);M&&N.find(".avatar").attr("src",M);N.find('input[name="userid"]').val(J.userid);N.find('input[name="username"]').val(J.username); +N.find("div.user").removeClass("inactive")})}function T(){var q,u;if(L.lastSelection)q="#"+L.lastSelection;else if(S&&S.length){u=S[0].accounts[0].domain;if(m[u])if(u=m[u].type)q="#"+u}return q}function V(){d(".ui-tabs-nav > li").removeClass("first").removeClass("last").filter(function(){var q=d(this),u=q.hasClass("hidden");q=q.hasClass("debugTab");return!u&&!q}).first().addClass("first").end().last().addClass("last")}function aa(q){var u=false,H={},J=L.sessionRestore,M;q&&q.length&&q.forEach(function(N){var I= +N.accounts[0].domain;if(I&&m[I]){u||(u=m[I].type===L.lastSelection);H[m[I].type]=N}});!u&&!L.accountAdded&&L.lastSelection&&delete L.lastSelection;L.accountAdded&&delete L.accountAdded;for(M in H)if(H.hasOwnProperty(M)){Z(M,H[M]);O(M,H[M])}if(J){J=JSON.parse(J);if(p.link!==J.link){J=null;delete L.sessionRestore}if(J){m[J.domain].setFormData(J.formData);h()}}if(G){q=T();B.tabs("select",q);Y(null,{panel:d(q)[0]})}V()}var i,m=s.domains;b=location.href.split("#")[1];var n,r,p={},B,y,E,G=true,R,S,P,L= +o();z.mixin(s.svcBaseProto,{validate:function(){if(this.counter)return!this.counter||!this.counter.isOver();return true},startCounter:function(q){if(!(this.textLimit<1)){if(!this.counter)this.counter=new j(d("#"+this.type+" textarea.message"),d("#"+this.type+" .counter"),this.textLimit-26);this.counter.updateLimit(q.shortUrl?this.textLimit-(q.shortUrl.length+1):this.textLimit-26)}},getFormData:function(){var q=d("#"+this.type);return{to:q.find('[name="to"]').val().trim()||"",subject:q.find('[name="subject"]').val().trim()|| +"",message:q.find("textarea.message").val().trim()||"",picture:q.find('[name="picture"]').val().trim()||"",canonicalUrl:q.find('[name="link"]').val().trim()||"",title:q.find('[name="title"]').val().trim()||"",description:q.find('[name="description"]').val().trim()||"",shortUrl:(q.find('[name="surl"]').val()||"").trim()}},setFormData:function(q){var u=d("#"+this.type);q.to&&u.find('[name="to"]').val(q.to);q.subject&&u.find('[name="subject"]').val(q.subject);q.message&&u.find("textarea.message").val(q.message); +q.previews&&q.previews.length&&u.find('[name="picture"]').val(q.previews[0]);if(q.canonicalUrl||q.url)u.find('[name="link"]').val(q.canonicalUrl||q.url);q.title&&u.find('[name="title"]').val(q.title);q.description&&u.find('[name="description"]').val(q.description);q.shortUrl&&u.find('[name="surl"]').val(q.shortUrl);this.startCounter(q)}});f.addFn({profilePic:function(q){return q&&q[0]&&q[0].value||"i/face2.png"},serviceName:function(q){return m[q].name}});window.closeShare=F;i=function(q,u){d("div.status").addClass("hidden"); +E.removeClass("hidden");d("#"+q).removeClass("hidden");if(u===true)setTimeout(function(){k.pub("success",{domain:n.domain,username:n.username,userid:n.userid})},2E3);else u&&d("#"+q+"Message").text(u)};window.showStatus=i;window.showStatusShared=A;window.handleCaptcha=w;if(b){g=g.queryToObject(b);if(g.options)p=JSON.parse(g.options)}p.prefs=p.prefs||{};if(!p.title)p.title=p.url;if(!p.prefs.system)p.prefs.system="prod";if(p.version)L.extensionVersion=p.version;if(p.prefs)for(r in p.prefs)if(p.prefs.hasOwnProperty(r))L["prefs."+ +r]=p.prefs[r];if(r=L.newTimerV2){r=JSON.parse(r);if((new Date).getTime()-r<2592E5)P=true}else{L.newTimerV1=(new Date).getTime();P=true}d(function(){var q,u=L.sessionRestore,H,J="",M="",N;s.domainList.forEach(function(I){var Q=s.domains[I];Q.domain=I;if(I==="linkedin.com")Q.features.subject=false;J+=f("#tabsTemplate",Q);M+=f("#panelsTemplate",Q)});d(".nav .debugTab").before(J);d("#tabs #debug").before(M);q=d("img.thumb");y=d("body");E=d("#clickBlock");p.prefs.system&&d(document.documentElement).addClass(p.prefs.system); +if(p.prefs.system==="dev"){d("#debugOutput").val(JSON.stringify(p));d("#debugCurrentLocation").val(location.href)}P&&d("#newLink").removeClass("hidden");y.delegate("#statusAuthButton, .statusErrorButton","click",function(){v()}).delegate(".statusErrorCloseButton","click",function(){F()}).delegate(".statusResetErrorButton","click",function(){location.reload()}).delegate(".nav .close","click",F);d("#authOkButton").click(function(){a(n.domain,false,function(I){if(I){l.clear();l()}else i("statusOAuthFailed")})}); +d("#captchaButton").click(function(){v();E.removeClass("hidden");n.HumanVerification=d("#captcha").attr("value");n.HumanVerificationImage=d("#captchaImage").attr("src");D()});l.onChange();if(o.type==="memory")i("statusEnableLocalStorage");else{l(function(I){S=I;G=false;aa(S);G=true;if(R=T()){d("."+R.slice(1)+"Tab").addClass("ui-tabs-selected ui-state-active");H=d(R);H.removeClass("ui-tabs-hide");Y(null,{panel:H[0]});B=d("#tabs");B.tabs({fx:{opacity:"toggle",duration:100}});B.bind("tabsselect",Y); +B.removeClass("invisible");y.removeClass("loading");V()}else i("statusSettings")},function(I,Q,U){I.status===503?i("statusServerBusyClose"):i("statusServerError",U)});for(N in s.domains)s.domains.hasOwnProperty(N)&&s.domains[N].setFormData(p);if(u)u=JSON.parse(u);p.title&&d(".title").text(p.title);p.description&&d(".description").text(p.description);if(p.previews&&p.previews.length){u=C(p.previews[0]);q.attr("src",u)}else p.thumbnail&&q.attr("src",C(p.thumbnail));d(".title").textOverflow(null,true); +d(".description").textOverflow(null,true);d(".url").textOverflow(null,true);d(".surl").textOverflow(null,true);d("form.messageForm").submit(function(I){I=I.target;var Q,U,$;n={};d.each(I.elements,function(W,X){W=X.value.trim();if(X.getAttribute("placeholder")===W)W="";X.value=W;if(X.value)n[X.name]=X.value});I=s.domains[n.domain];if(p.shortUrl)n.shorturl=p.shortUrl;else if(I.shorten)n.shorten=true;if(n.to){Q=I.getContacts(L);$=[];if(Q){I=n.to.split(",");I.forEach(function(W){if((U=Q[W.trim()])&&!U.email)$.push(U.userid? +U.userid:U.username)})}if($.length>0)n.to=$.join(", ")}D();return false}).each(function(I,Q){h(Q)})}})}); \ No newline at end of file diff --git a/web/0.3.4/share/panel/build.js b/web/0.3.4/share/panel/build.js new file mode 100644 index 0000000..83b8c28 --- /dev/null +++ b/web/0.3.4/share/panel/build.js @@ -0,0 +1,12 @@ +({ + baseUrl: "../../scripts/", + paths: { + "index": "../share/panel/index", + "jquery": "jqueryStub", + "widgets": "../share/panel/scripts/widgets" + }, + name: "index", + include: ['widgets/AccountPanelLinkedIn', 'widgets/AccountPanelFaceBook', 'ContactsEmail', 'ContactsTwitter'], + exclude: ['jquery', 'require/text'], + out: './index.js' +}) diff --git a/web/0.3.4/share/panel/i/sprite.png b/web/0.3.4/share/panel/i/sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..57c666b44b1332d8a420df03e9a46cdfc74eb6e7 GIT binary patch literal 3359 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 literal 0 HcmV?d00001 diff --git a/web/0.3.4/share/panel/i/thumb.jpg b/web/0.3.4/share/panel/i/thumb.jpg new file mode 100644 index 0000000000000000000000000000000000000000..721d4278776a1b9ae5a43f82e5baab0476479aa3 GIT binary patch literal 1708 zcmZ`&c~p}}5Z^CfZV(8DLanBvPz8%3c!3-dEHwz0U_=_MTmg>&Hr$BRmIBoh!XZQf zD_21R2IVFeEtIP^0uoU%ArOfIqJSw-lq>yOtnc|pfBW9<&dkovZ+2(YeQE{Jadx6P z0SE;E3mHKD5|H*r__JdG1keBgH$*i7wDz!0`2_%06QY6CGLQgJ?*Jn^7>&#@8iW1^ z7%b*rV6iwH9*4sc2t*=*p!q%^7=|%u3;~NJtk586tkBj%psoGyp|^|Xvh=>+J4xLH zNO)iam@q^FC=vvdAayIagwTdC0EQ5vZ-MZ^6NnHB2SX6_o&^9DgjjU|LIwq+H1KcT zAS4w)!sucRarmt(_t1Sg>&ThChY25kXHgwqvpsTGdZnci5)^TRFj(Awfglvg5Y|Ow zw!Yd!cfk5`(wlqMe^*fXWSxb(S_(9g%TXkl1nj}!Gmvk`zS|Y(CkjYu>;ApvbgU@5 zP!oSmV3uel7fKjIi{x)JDFgSvs#uwL=MPrqdSg9(VgZAkK-$8^t^9d*VOx%H#G_a%XL)je8L% zJj&@|$ED`RX3d_mgS=wKQewYUGNv=M;+}#?Tg$_pQ$#2=&CA?p`4*rrlaUGmAOZ{3I}Y5%<)6&{ubi;q*j&q}Jj=$V|x z%{F6ycA*qgOhdD8*fvIc40pwHLqnT4=qvRRhjS*4YO|VJ z0vhhx+&!*}_Y6q7=bixY&hBZs&}f?3Z^h%)t`ACNBD&lsUXnv&W{xWk+sL!ZLWmG` zBL=*qv89vcr1PgE<*JTiZ4$3ggGCxB@D4u`cbg4qQ34r(KN{Qgj*x40rZQGJfR1Yt4LG&9-XL^Mxu|J?5zHBD2p{^;qL-kjTOf?5+`R5Cx)<5Wrcy`k) ztj)Nx5BCwnEaE0({H5suy(O*k5fy7TMwW4+#yYY^?3}5apY-#_!r`Wh&Q}y>-6+kL z7c^l~$)7f>>WQ$f=}1!wH$L~cz>y0a+jnvF+r?l!-yoHjdjkP;|Sna$WEy#?Ie(g#-CM#V|x|pS~-L-AiSrMMt8$_@chV+(K zJ)jqdxRm!hrY3kEUdlE;u@5qYRtGC@+V@-&f59&?EbsiHY4MX*lKGnta+&gnvgB3q zA)9kOk2{|^gt;Ug=xedc3=Qk!vNv)dfp07zDzyA_OsT# zio@uwln+V{O)3Ndg$-V9rhBy+UHka6*IV8F$zQweA2o_=_Q6pGG0^nf^2ctQp9&n? z@{_H-GR9zbL;cfRyou)*8q)KQc&z*Ng-H^Zk7e;(E^t^HQ_V`n1Jnfw|O~YSq-1mj>5E^FO99)qP_Zu=u^+ z1OrPA7d%S!n4c9;XhFB+UEC|Dfbl2UUb5ou?NY}YRUQv++QzPt` ziw~P{JI20d`th4vk6uUTzPHds?3^e%`?m`6fr?m|vdT@I+F< z=dy>h)*p+tXs@8j$XNRH{zcLA`)?*bnlZ`W{pE5Czz*IvdD7EC3j;3}Y+Rx4M38T> zg@0ypVD+^=5f|IrzdOX#GDAN-PGDXl;``2ec~}Kk8*5@ES>{zkvPliLYi**?ggSG1 zXK9$~m#9>-s;AzR=Gt(lp{ysae&Z;&a6o9=C2UnSj+E@^ubZ&4bTrFI@l%!lVM3E! zpC}a{DKK7REj+Zhq_X#~JZ*ks5yLip=!Ry|=*9W4`&Xy>ca9yTMppmtv;EV{7O92a W + + + F1: Popup + + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + + + + + + + + diff --git a/web/0.3.4/share/panel/index.js b/web/0.3.4/share/panel/index.js new file mode 100644 index 0000000..c910772 --- /dev/null +++ b/web/0.3.4/share/panel/index.js @@ -0,0 +1,540 @@ +/* + blade/func Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + Available via the MIT, GPL or new BSD license. + see: http://github.com/jrburke/blade for details + blade/object Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + Available via the MIT, GPL or new BSD license. + see: http://github.com/jrburke/blade for details + blade/jig Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + Available via the MIT, GPL or new BSD license. + see: http://github.com/jrburke/blade for details + blade/array Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + Available via the MIT, GPL or new BSD license. + see: http://github.com/jrburke/blade for details + blade/url Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + Available via the MIT, GPL or new BSD license. + see: http://github.com/jrburke/blade for details + blade/Widget Copyright (c) 2010, The Dojo Foundation All Rights Reserved. + Available via the MIT, GPL or new BSD license. + see: http://github.com/jrburke/blade for details +*/ +define("blade/fn",[],function(){var b=Array.prototype.slice,c=Object.prototype.toString;return{is:function(f){return c.call(f)==="[object Function]"},bind:function(f,d){if(!d)return f;if(typeof d==="string")d=f[d];var e=b.call(arguments,2);return function(){return d.apply(f,e.concat(b.call(arguments,0)))}}}}); +define("blade/object",["./fn"],function(b){function c(){}var f={},d=function(e,a,g){e=e||{};var h,i=d.create(e.prototype,a);e=function(j,l,o){return i[l].apply(j,o)};a=d.create(i);d.mixin(a,b.is(g)?g(e):g,true);h=function(){if(!(this instanceof h))throw new Error('blade/object: constructor function called without "new" in front');this.init&&this.init.apply(this,arguments)};h.prototype=a;return h};d.create=function(e,a){c.prototype=e;e=new c;var g,h;c.prototype=null;if(a)for(g=0;h=a[g];g++)d.mixin(e, +h);return e};d.mixin=function(e,a,g){for(var h in a)if(!(h in f)&&(!(h in e)||g))e[h]=a[h]};return d}); +define("blade/jig",["require","./object"],function(b,c){function f(r){return k.call(r)==="[object Array]"}function d(r,w,y){w=w;var z,F;for(z=0;w&&(F=r[z]);z++)w=typeof w==="object"&&F in w?w[F]:y&&z===0&&F in y?y[F]:undefined;return w}function e(r){return r?parseInt(r,10):0}function a(r,w,y){var z=/\[([\w0-9\.'":]+)\]/,F=r,E=w,C=true,H,B;if(r===u)return w;if(s.test(r))return e(r);if(r==="")return"";H=r.charAt(0);if(H==="'"||H==="'")return r.substring(1,r.length-1);if((H=r.indexOf("("))!==-1){z=r.lastIndexOf(")"); +C=r.substring(0,H);F=y.fn[C];if(!F){o.error("Cannot find function named: "+C+" for "+r);return""}C=r.substring(H+1,z);if(C.indexOf(",")!==-1){C=C.split(",");for(E=C.length-1;E>=0;E--)C[E]=a(C[E],w,y);F=F.apply(null,C)}else F=F(a(C,w,y));if(z";else{C=F.charAt(0);B=F}}if(C&&!w.propertyRegExp.test(C))B=B.substring(1).trim();else C="_default_";if(F=B.indexOf(w.rawHtmlToken)===0)B=B.substring(w.rawHtmlToken.length,B.length);if(C===q)F=true;B=B.split(w.argSeparator);S=B[B.length-1];L=S.charAt(S.length-1);P=null;if(C==="]"){if(L!=="["){y.templateEnd=z;y.endControl=true}else y.templateEnd=z-H[0].length;return y}else if(L==="["){E||(E=K++);B[B.length-1]=S.substring(0,S.length- +1);P=h(r.substring(z),w);z+=P.templateEnd}if(C==="+")w.templates[B[0]]=P;else if(C!=="/"){if(B.length>1)for(H=B.length-1;H>=0;H--)if(B[H].charAt(B[H].length-1)===","){B[H]+=B[H+1];B.splice(H+1,1)}y.push({action:w.commands[C].action,useRawHtml:F,args:B,controlId:E,children:P})}if(P&&P.endControl)E=0}else{y.push(z);return y}}z!==r.length-1&&y.push(r.substring(z,r.length));return y}function i(r,w){var y,z=r.id;y=w.templates||A;if(y[z])return y[z];w.onBeforeParse&&w.onBeforeParse(r);if(r.nodeName.toUpperCase()=== +"SCRIPT"){y=r.text.trim();r.parentNode&&r.parentNode.removeChild(r)}else{V.appendChild(r);r.removeAttribute("id");(y=(r.getAttribute("class")||"").trim())&&r.setAttribute("class",y.replace(X,"$1$3"));y=V.innerHTML.replace(/%7B/g,"{").replace(/%7D/g,"}");V.removeChild(r)}r=o.compile(y,w);o.cache(z,r,w);return r}function j(r,w,y){var z="",F,E,C,H,B;if(typeof r==="string")z=r;else if(f(r))for(F=0;Fw},gte:function(r,w){return r>=w},lt:function(r,w){return rF.prop?1:-1})}},I=1,K=1,M={},V=typeof document!=="undefined"&&document.createElement?document.createElement("div"):null,X=/(\s*)(template)(\s*)/;m={_default_:{doc:"Property reference",action:function(r,w,y,z,F){var E=r[0]?a(r[0],w,y):w,C=r[1]?a(r[1],w,y):undefined,H="";if(r[1]){C=E===C;E=w}else C=E;if(C===false||C===null||C===undefined||f(C)&&!C.length)return"";else if(z)if(f(E))for(r=0;r1?r[1]:u,w,y);return F(z,w,y)}},".":{doc:"Variable declaration",action:function(r,w,y){y.context[r[0]]=a(r[1],w,y);return""}},">":{doc:"Else",action:function(r,w,y,z,F){if(z)return F(z,w,y);return""}}};o=function(r,w,y){if(typeof r==="string")if(r.charAt(0)=== +"#"){r=r.substring(1,r.length);r=g(r,y)}else r=o.compile(r,y);return o.render(r,w,y)};o.htmlEscape=function(r){return r.replace(/&/g,"&").replace(//g,">").replace(/"/g,""")};o.compile=function(r,w){w=w||{};c.mixin(w,{startToken:"{",endToken:"}",rawHtmlToken:"^",propertyRegExp:p,commands:m,argSeparator:" ",templates:A});w.endRegExp=/[^\r\n]*?}/;K=1;return h(r,w)};o.parse=function(r,w){if(r&&!r.length){w=r;r=null}w=w||{};r=r||document.querySelectorAll('.template, script[type="text/template"]'); +var y,z;for(z=r.length-1;z>-1&&(y=r[z]);z--)i(y,w)};o.render=function(r,w,y){var z,F="";y=y||{};c.mixin(y,{templates:A,attachData:false,strict:o.strict});if(y.fn)c.mixin(y.fn,D);else y.fn=D;y.context=y.context||c.create(w);if(f(w)){for(z=0;z=365&&d<730){e.additional=c.toLocaleDateString(); +e.friendly="a year ago";return e}if(d>=365){e.additional=c.toLocaleDateString();e.friendly=Math.ceil(d/365)+" years ago";return e}return e},name:function(c){c=c.split(" ")[0];if(c.indexOf("@")!==-1)c=c.split("@")[0];c=c.replace(" ","");c=c.replace("'","");return c=c.replace('"',"")}};return b}); +define("isoDate",[],function(){var b=/^(?:(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(.\d+)?)?((?:[+\-](\d{2}):(\d{2}))|Z)?)?$/,c=function(f,d){var e=b.exec(f);f=null;var a,g;if(e){e.shift();e[1]&&e[1]--;if(e[6])e[6]*=1E3;if(d){d=new Date(d);["FullYear","Month","Date","Hours","Minutes","Seconds","Milliseconds"].map(function(h){return d["get"+h]()}).forEach(function(h,i){e[i]=e[i]||h})}f=new Date(e[0]||1970,e[1]||0,e[2]||1,e[3]||0,e[4]||0,e[5]||0,e[6]||0);if(e[0]<100)f.setFullYear(e[0]|| +1970);a=0;g=e[7]&&e[7].charAt(0);if(g!=="Z"){a=(e[8]||0)*60+(Number(e[9])||0);if(g!=="-")a*=-1}if(g)a-=f.getTimezoneOffset();a&&f.setTime(f.getTime()+a*6E4)}return f};c.toIsoString=function(f,d){var e=function(i){return i<10?"0"+i:i},a,g,h;d=d||{};a=[];g=d.zulu?"getUTC":"get";h="";if(d.selector!=="time"){h=f[g+"FullYear"]();h=["0000".substr((h+"").length)+h,e(f[g+"Month"]()+1),e(f[g+"Date"]())].join("-")}a.push(h);if(d.selector!=="date"){h=[e(f[g+"Hours"]()),e(f[g+"Minutes"]()),e(f[g+"Seconds"]())].join(":"); +g=f[g+"Milliseconds"]();if(d.milliseconds)h+="."+(g<100?"0":"")+e(g);if(d.zulu)h+="Z";else if(d.selector!=="time"){f=f.getTimezoneOffset();d=Math.abs(f);h+=(f>0?"-":"+")+e(Math.floor(d/60))+":"+e(d%60)}a.push(h)}return a.join("T")};return c});var EXPORTED_SYMBOLS=["hex_md5"],hexcase=0,b64pad="";function hex_md5(b){return rstr2hex(rstr_md5(str2rstr_utf8(b)))}function b64_md5(b){return rstr2b64(rstr_md5(str2rstr_utf8(b)))}function any_md5(b,c){return rstr2any(rstr_md5(str2rstr_utf8(b)),c)} +function hex_hmac_md5(b,c){return rstr2hex(rstr_hmac_md5(str2rstr_utf8(b),str2rstr_utf8(c)))}function b64_hmac_md5(b,c){return rstr2b64(rstr_hmac_md5(str2rstr_utf8(b),str2rstr_utf8(c)))}function any_hmac_md5(b,c,f){return rstr2any(rstr_hmac_md5(str2rstr_utf8(b),str2rstr_utf8(c)),f)}function md5_vm_test(){return hex_md5("abc").toLowerCase()=="900150983cd24fb0d6963f7d28e17f72"}function rstr_md5(b){return binl2rstr(binl_md5(rstr2binl(b),b.length*8))} +function rstr_hmac_md5(b,c){var f=rstr2binl(b);if(f.length>16)f=binl_md5(f,b.length*8);var d=Array(16);b=Array(16);for(var e=0;e<16;e++){d[e]=f[e]^909522486;b[e]=f[e]^1549556828}c=binl_md5(d.concat(rstr2binl(c)),512+c.length*8);return binl2rstr(binl_md5(b.concat(c),640))}function rstr2hex(b){for(var c=hexcase?"0123456789ABCDEF":"0123456789abcdef",f="",d,e=0;e>>4&15)+c.charAt(d&15)}return f} +function rstr2b64(b){for(var c="",f=b.length,d=0;db.length*8?b64pad:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>>6*(3-a)&63);return c} +function rstr2any(b,c){var f=c.length,d,e,a,g,h,i=Array(Math.ceil(b.length/2));for(d=0;d0||a>0)h[h.length]=a}b[e]=g;i=h}f="";for(d=b.length-1;d>=0;d--)f+=c.charAt(b[d]);return f} +function str2rstr_utf8(b){for(var c="",f=-1,d,e;++f>>6&31,128|d&63);else if(d<=65535)c+=String.fromCharCode(224|d>>>12&15,128|d>>>6&63,128|d&63);else if(d<=2097151)c+=String.fromCharCode(240|d>>>18&7,128|d>>>12&63,128|d>>>6&63,128|d&63)}return c} +function str2rstr_utf16le(b){for(var c="",f=0;f>>8&255);return c}function str2rstr_utf16be(b){for(var c="",f=0;f>>8&255,b.charCodeAt(f)&255);return c}function rstr2binl(b){for(var c=Array(b.length>>2),f=0;f>5]|=(b.charCodeAt(f/8)&255)<>5]>>>f%32&255);return c} +function binl_md5(b,c){b[c>>5]|=128<>>9<<4)+14]=c;c=1732584193;for(var f=-271733879,d=-1732584194,e=271733878,a=0;a>16)+(c>>16)+(f>>16)<<16|f&65535}function bit_rol(b,c){return b<>>32-c}define("md5",function(){}); +define("rdapi",["require","jquery","blade/object","blade/jig","friendly","isoDate","md5"],function(b,c,f,d,e,a){function g(p){if(typeof p==="string")p={template:p};else if(p.templateId)p.template=d.cache(p.templateId);if(!("attachData"in p))p.attachData=l.attachTemplateData;if(p.emptyTemplateId)p.emptyTemplate=d.cache(p.emptyTemplateId);return p}function h(){var p=m.exec(document.cookie);return p&&p[1]?p[1]:null}function i(p,u){u.url=q.baseUrl+q.apiPath+p;f.mixin(u,{limit:30,message_limit:3,dataType:"json", +error:function(x,A,D){throw D;}});var v=u.success,s=h();u.success=function(x){x&&x.contacts&&f.mixin(k,x.contacts,true);return v?v.apply(null,arguments):x};if(s)u.beforeSend=function(x){x.setRequestHeader(o,s)};c.ajax(u)}function j(p,u){var v=u.forId?document.getElementById(u.forId):null;if(v)v.innerHTML=p;u.onTemplateDone&&u.onTemplateDone(p);c(document).trigger("rdapi-done",v)}var l,o="X-CSRF",m=/csrf=([^\; ]+)/,k={},n={contact:function(p){return p.iid&&p.domain?k[p.iid]||{}:p},contactPhotoUrl:function(p){var u= +"i/face2.png",v,s;p=n.contact(p);if((v=p.photos)&&v.length){u=v[0].value;v.forEach(function(x){if(x.primary)u=x.value})}else if(p.emails&&p.emails.length){s=p.emails[0].value;p.emails.forEach(function(x){if(x.primary)s=x.value});u="http://www.gravatar.com/avatar/"+hex_md5(s)+"?s=24 &d=identicon"}return u},allMessages:function(p){return[p.topic].concat(p.messages||[])},friendlyDate:function(p){return e.date(a(p)).friendly},htmlBody:function(p){return d.htmlEscape(p).replace(/\n/g,"
      ")}},q={baseUrl:"/", +apiPath:"api/",saveTemplateData:true};d.addFn(n);l=function(p,u){u=g(u);f.mixin(u,{success:function(v){var s=u.template,x=u.emptyTemplate,A="";if(u.forId&&s){if(u.prop)v=d.getObject(u.prop,v,u);if(b.isArray(v))if(v.length)v.forEach(function(D){A+=d(s,D,u)});else A+=d(x,v,u);else A+=d(!v?x:s,v,u);j(A,u)}},error:function(v,s,x){if(u.emptyTemplate){v=d(u.emptyTemplate,x,u);j(v,u)}else throw x;}});i(p,u)};l.contactPhotoUrl=n.contactPhotoUrl;l.attachTemplateData=false;b.ready(function(){var p=[];d.parse({onBeforeParse:function(u){var v= +u.id,s=u.getAttribute("data-rdapi"),x=u.getAttribute("data-rdfor"),A=u.getAttribute("data-rdprop");s&&p.push({templateId:v,api:s,forId:x,prop:A});["data-rdapi","data-rdprop","data-rdfor"].forEach(function(D){u.removeAttribute(D)})}});p.forEach(function(u){l(u.api,u)})});return l});define("storage",[],function(){function b(){return c}var c=localStorage,f="localStorage";try{c.tempVar="temp";delete c.tempVar}catch(d){c={};f="memory"}b.type=f;return b}); +define("dispatch",["jquery"],function(){var b=location.protocol+"//"+location.host;return{sub:function(c,f,d,e){d=d||window;e=e||b;var a=function(g){if(g.origin===e||g.origin==="chrome://browser")try{var h=JSON.parse(g.data),i=h.topic;i&&i===c&&f(h.data)}catch(j){}};d.addEventListener("message",a,false);return a},unsub:function(c,f){f=f||window;f.removeEventListener("message",c,false)},pub:function(c,f,d){d=d||window;d.postMessage(JSON.stringify({topic:c,data:f}),b)}}}); +define("services",["blade/object","storage"],function(b,c){function f(h,i){if(h){this.name=h;this.type=h.replace(/\s/g,"").toLowerCase();this.tabName=this.type+"Tab";this.icon="i/"+this.type+"Icon.png";this.features={counter:false,direct:false,subject:false};b.mixin(this,i,true)}}function d(){f.constructor.apply(this,arguments);this.features.direct=true;this.features.subject=true}var e=parseFloat(navigator.userAgent.split("Firefox/")[1])>=4;c=c();var a,g;f.constructor=f;f.prototype={clearCache:function(h){delete h[this.type+ +"Contacts"]},getContacts:function(h){if(h[this.type+"Contacts"])return JSON.parse(h[this.type+"Contacts"]);return null},setContacts:function(h,i){h[this.type+"Contacts"]=JSON.stringify(i)},get36FormattedContacts:function(){return null}};d.prototype=new f;d.constructor=d;d.prototype.validate=function(h){if(!h.to||!h.to.trim())return false;return true};d.prototype.get36FormattedContacts=function(h){var i=[];h.forEach(function(j){j.emails&&j.emails.length&&j.emails.forEach(function(l){i.push({displayName:j.displayName? +j.displayName:l.value,email:l.value})})});return i};d.prototype.overlays={Contacts:"ContactsEmail"};a={domains:{"twitter.com":new f("Twitter",{features:{direct:true,subject:false,counter:true},shareTypes:[{type:"public",name:"public"},{type:"direct",name:"direct message",showTo:true,toLabel:"type in name of recipient"}],textLimit:140,shorten:true,serviceUrl:"http://twitter.com",revokeUrl:"http://twitter.com/settings/connections",signOutUrl:"http://twitter.com/logout",accountLink:function(h){return"http://twitter.com/"+ +h.username},forceLogin:{name:"force_login",value:true},overlays:{Contacts:"ContactsTwitter"}}),"facebook.com":new f("Facebook",{features:{direct:true,subject:false,counter:true,medium:true},shareTypes:[{type:"wall",name:"my wall"},{type:"groupWall",name:"group wall",showTo:true,toLabel:"type in the name of the group"}],textLimit:420,serviceUrl:"http://facebook.com",revokeUrl:"http://www.facebook.com/editapps.php?v=allowed",signOutUrl:"http://facebook.com",accountLink:function(h){return"http://www.facebook.com/profile.php?id="+ +h.userid},overlays:{"widgets/AccountPanel":"widgets/AccountPanelFaceBook"}}),"google.com":new d("Gmail",{shareTypes:[{type:"direct",name:"direct",showTo:true}],serviceUrl:"https://mail.google.com",revokeUrl:"https://www.google.com/accounts/IssuedAuthSubTokens",signOutUrl:"http://google.com/preferences",accountLink:function(h){return"http://google.com/profiles/"+h.username},forceLogin:{name:"pape_max_auth_age",value:0}}),"googleapps.com":new d("Google Apps",{shareTypes:[{type:"direct",name:"direct", +showTo:true}],icon:"i/gmailIcon.png",serviceUrl:"https://mail.google.com",revokeUrl:"https://www.google.com/accounts/IssuedAuthSubTokens",signOutUrl:"http://google.com/preferences",accountLink:function(h){return"http://google.com/profiles/"+h.username},forceLogin:{name:"pape_max_auth_age",value:0}}),"yahoo.com":new d("Yahoo",{shareTypes:[{type:"direct",name:"direct",showTo:true}],name:"Yahoo!",serviceUrl:"http://mail.yahoo.com",revokeUrl:"https://api.login.yahoo.com/WSLogin/V1/unlink",signOutUrl:"https://login.yahoo.com/config/login?logout=1", +accountLink:function(h){return"http://profiles.yahoo.com/"+h.username}}),"linkedin.com":new f("LinkedIn",{isNew:true,features:{direct:true,subject:true,counter:false},shareTypes:[{type:"public",name:"anyone"},{type:"myConnections",name:"connections only",specialTo:"connections-only"},{type:"contact",name:"send message",showTo:true,toLabel:"type in the name of the contact"}],serviceUrl:"http://linkedin.com",revokeUrl:"http://linkedin.com/settings/connections",signOutUrl:"https://www.linkedin.com/secure/login?session_full_logout=&trk=hb_signout", +accountLink:function(h){return"http://linkedin.com/"+h.username},overlays:{"widgets/AccountPanel":"widgets/AccountPanelLinkedIn"}})},domainList:[],svcBaseProto:f.prototype};for(g in a.domains)if(a.domains.hasOwnProperty(g)){a.domainList.push(g);if(e){delete c[a.domains[g].type+"Contacts"];delete c.contactsModelVersion}}return a}); +define("accounts",["storage","dispatch","rdapi","services"],function(b,c,f,d){function e(l,o,m,k){return l.domain===o&&(m&&l.userid===m||k&&l.username===k)}function a(l){if(l)l=JSON.parse(l);return l}function g(l,o){return j.accounts(l,o)}function h(){location.reload()}var i=b(),j;j={localStorage:{accounts:function(l,o){var m=a(i.accountCache)||[],k=a(i.serviceCache);if(k){k=k||[];l&&l(m,k)}else j.fetch(l,o)},update:function(l){var o=a(i.accountCache)||[],m=a(i.serviceCache),k=false,n,q,p;n=l.profile; +for(q=0;qd+4E3){d=h;e=g+"?domain="+e+(a?"&forceLogin=1":"");try{f=window.open(e,"ffshareOAuth", +"dialog=yes, modal=yes, width=900, height=500, scrollbars=yes");f.focus()}catch(i){window.location=e+"&end_point_success="+encodeURI(window.location)}}else f&&f.focus()}});define("blade/array",[],function(){var b=Object.prototype.toString,c=Array.prototype.slice;return{is:function(f){return b.call(f)==="[object Array]"},to:function(){return[].concat(c.call(arguments,0))}}}); +define("blade/url",["./array"],function(b){var c=Object.prototype.toString;return{objectToQuery:function(f){var d=encodeURIComponent,e=[],a={},g,h,i,j;for(g in f)if(f.hasOwnProperty(g)){h=f[g];if(h!==a[g]){i=d(g)+"=";if(b.is(h))for(j=0;jNo matches.
      \n'}); +define("AutoComplete",["jquery","blade/object","blade/fn","module","dispatch","text!AutoCompleteRefresh.html"],function(b,c,f,d,e,a){function g(i){return i.split(/,\s*/)}function h(i){return g(i).pop()}return c(null,null,{className:d.id.replace("/","-"),refreshShowing:false,askRefresh:true,init:function(i,j){this.dom=b(i);this.attachedWidget=false;this.acOptions=[];j.notify(f.bind(this,this.attachAutoComplete));this.contactService=j;e.sub("optionsChanged",f.bind(this,function(){this.askRefresh=true}))}, +attachAutoComplete:function(i,j){j=j||[];this.acOptions=[];j.forEach(f.bind(this,function(l){this.acOptions.push(i.formatContact(l))}));if(!this.attachedWidget){this.attachedWidget=true;this.dom.bind("keydown",f.bind(this,function(l){if(l.keyCode===b.ui.keyCode.ENTER)l.preventDefault();else if(l.keyCode===b.ui.keyCode.TAB){if(this.dom.data("autocomplete").menu.active){l.preventDefault();this.dom.autocomplete().select()}else if(this.open){var o=this.dom.autocomplete("widget").find("li");this.dom.data("autocomplete").menu.active= +o;this.dom.autocomplete().select();l.preventDefault()}this.refreshShowing&&this.hideRefresh()}else if(l.keyCode===b.ui.keyCode.DOWN&&this.refreshShowing){l.preventDefault();this.focusingOnRefresh=true;this.refreshDom.find("button").focus()}else if(l.keyCode===b.ui.keyCode.ESCAPE&&this.refreshShowing){this.askRefresh=false;this.hideRefresh()}})).bind("blur",f.bind(this,function(){this.refreshShowing&&!this.focusingOnRefresh&&setTimeout(f.bind(this,function(){this.hideRefresh();this.focusingOnRefresh= +false}),500)})).autocomplete({minLength:0,source:f.bind(this,function(l,o){this.filtered=b.ui.autocomplete.filter(this.acOptions,h(l.term));if(!this.filtered.length&&this.askRefresh)setTimeout(f.bind(this,this.showRefresh),0);else this.refreshShowing&&this.hideRefresh();o(this.filtered)}),focus:function(){return false},select:function(l,o){l=g(this.value);l.pop();l.push(o.item.value);l.push("");this.value=l.join(", ");return false},open:f.bind(this,function(){this.relatedWidth||this.determineRelatedWidth(); +this.open=true;this.dom.autocomplete("widget").width(this.relatedWidth)}),close:f.bind(this,function(){this.open=false})})}if(this.waitingSearch){this.dom.autocomplete("search",this.waitingSearch);this.dom.focus();delete this.waitingSearch;this.hideSpinner()}},determineRelatedWidth:function(){for(var i=this.dom[0];i&&(this.relatedWidth=i.getBoundingClientRect().width)<=0;)i=i.parentNode},hideRefresh:function(){this.refreshDom.hide()},showRefresh:function(){this.relatedWidth||this.determineRelatedWidth(); +if(!this.refreshDom)this.refreshDom=b(a).css({width:this.relatedWidth+"px"}).insertAfter(this.dom[0]).find("button").bind("click",f.bind(this,function(i){i.preventDefault();this.waitingSearch=this.dom.val().trim();this.showSpinner();this.askRefresh=false;this.contactService.fetch();this.hideRefresh()})).bind("blur",f.bind(this,function(){this.hideRefresh()})).end();this.refreshDom.show();this.refreshShowing=true},hideSpinner:function(){this.spinnerDom.hide()},showSpinner:function(){if(!this.spinnerDom)this.spinnerDom= +b('
      ').appendTo(this.dom[0].parentNode);this.spinnerDom.show()}})}); +define("shareOptions",["storage","blade/url"],function(b,c){function f(e){e=e||typeof location!=="undefined"&&location.href.split("#")[1]||"";if(d[e])return d[e];var a={},g=b(),h=/vimeocdn\.com\//,i=/clip_id=(\d+)/,j,l;if(e){j=c.queryToObject(e);if(j.options)a=JSON.parse(j.options)}a.prefs=a.prefs||{};if(!a.title)a.title=a.url;if(!a.prefs.system)a.prefs.system="prod";if((j=a.source)&&j.length>4E3){j="";delete a.source}if(j&&h.test(j))if(h=(h=i.exec(j))&&h[1])a.source="http://vimeo.com/moogaloop.swf?clip_id="+ +h+"&server=vimeo.com&show_title=1&show_byline=1&show_portrait=1&color=00dcdc&fullscreen=1&autoplay=0&loop=0";else delete a.source;if(a.version)g.extensionVersion=a.version;if(a.prefs)for(l in a.prefs)if(a.prefs.hasOwnProperty(l))g["prefs."+l]=a.prefs[l];return d[e]=a}var d={};return f}); +define("blade/Widget",["require","./object","./jig","module"],function(b,c,f,d){var e;b="data-"+d.id.replace(/\//g,"-")+"-"+(Math.random()+"").replace(/\d\./,"");var a=b+"-wtype",g=b+"-wid",h=0,i={};b=c(null,null,{template:null,init:function(j,l,o){c.mixin(this,j,true);this.onCreate&&this.onCreate();if(this.template){this.node=this.render();this.onRender&&this.onRender(l)}if(l&&this.node)if(o==="before")l.parentNode.insertBefore(this.node,l);else if(o==="after")l.parentNode.insertBefore(this.node, +l.nextSibling);else o==="prepend"&&l.firstChild?l.insertBefore(this.node,l.firstChild):l.appendChild(this.node)},render:function(j){var l,o;if(this.template){this.template=this.template.trim();l=j&&j.ownerDocument||document;j="id"+h++;if(!e||e.ownerDocument!==l)e=l.createElement("div");e.innerHTML=this.templatize();if(e.childNodes.length===1){l=e.removeChild(e.firstChild);l.setAttribute(g,j);l.setAttribute(a,this.moduleId)}else for(l=l.createDocumentFragment();o=e.firstChild;){l.appendChild(o);if(o.nodeType=== +1){o.setAttribute(g,j);o.setAttribute(a,this.moduleId)}}this._widgetId=j;i[j]=this}return l},templatize:function(){var j=this.template;j=f.cache(j)||f.cache(j,j,this.jigOptions);return f.render(j,this,this.jigOptions)},destroy:function(){this.node&&this.node.parentNode&&this.node.parentNode.removeChild(this.node);delete this.node;delete i[this._widgetId]}});b.closest=function(j,l,o){for(var m=l.target;m;){if(m.getAttribute(a)===j)break;m=m.parentNode}if(m)(j=i[m.getAttribute(g)])&&j[o](l)};b.registry= +i;return b}); +define("widgets/jigFuncs",["blade/jig","services"],function(b,c){var f={thumb:function(d){d=d.previews&&d.previews[0];if(!d)return"";if(d.http_url)return b.htmlEscape(d.http_url);return d.base64},preview:function(d){return(d=d.previews&&d.previews[0])&&d.http_url},preview_base64:function(d){return(d=d.previews&&d.previews[0])&&f.rawBase64(d.base64)},link:function(d){return d.canonicalUrl||d.url},cleanLink:function(d){return d?d.replace(/^https?:\/\//,"").replace(/^www\./,""):d},profilePic:function(d){return d&&d[0]&& +d[0].value||"/share/i/face2.png"},serviceName:function(d){return c.domains[d].name},lastToShareType:function(d){var e,a;for(e=d.length-1;a=d[e];e--)if(a.showTo)return a;return null},rawBase64:function(d){return d&&d.replace("data:image/png;base64,","")}};b.addFn(f);return f});define("require/text!widgets/PageInfo.html",function(){return'
      \n
      \n
      \n
      \n
      \n
      \n
      {options.title}
      \n
      {options.description}
      \n {cleanLink(options.url)}\n {cleanLink(options.shortUrl)}\n
      \n
      \n
      \n'}); +(function(b){var c=document.documentElement.style,f="textOverflow"in c||"OTextOverflow"in c,d=function(e,a){var g=0,h=[],i=function(j){var l=0,o;if(!(g>a))for(l=0;lo){for(;m\n \n \n

      debug

      \n developer\n
      \n
      \n
      \n \n \n \n \n \n \n \n \n \n
      \n
      \n'}); +define("widgets/DebugPanel",["blade/object","blade/Widget","jquery","text!./DebugPanel.html"],function(b,c,f,d){return b(c,null,function(){return{template:d}})});define("require/text!widgets/AccountPanel.html",function(){return'
      \n \n \n

      {svc.name}

      \n {displayName}\n
      \n\n
      \n
      \n
      \n
      \n \n \n \n \n \n \n \n \n \n {svc.features.medium [}\n \n \n {]}\n \n
      \n
      \n {gt(svc.shareTypes.length, 1) [}\n
      \n
      \n \n
      \n {eq(svc.shareTypes.length, 2) [}\n send to {svc.shareTypes[1].name} instead?\n {]}\n
      \n {. lastType lastToShareType(svc.shareTypes)}\n \n \n
      \n
      \n {] [}\n {svc.features.direct [}\n \n {svc.features.subject [}\n \n {]}\n {]}\n {]}\n \n
      \n
      \n {svc.features.counter [}\n
      \n {]}\n
      \n \n
      \n
      \n
      \n
      \n
      \n'}); +define("TextCounter",["jquery","blade/object","blade/fn"],function(b,c,f){return c(null,null,{init:function(d,e,a){this.dom=b(d);this.domPlaceholderText=this.dom[0].getAttribute("placeholder")||"";this.countDom=b(e);this.limit=a;this.dom.bind("keyup",f.bind(this,"checkCount"));this.checkCount()},checkCount:function(){var d=this.dom[0].value;if(d.trim()===this.domPlaceholderText)d="";d=this.limit-d.length;d<0?this.countDom.addClass("TextCountOver"):this.countDom.removeClass("TextCountOver");this.countDom.text(d=== +this.limit?"":d)},updateLimit:function(d){this.limit=d;this.checkCount()},isOver:function(){return this.dom[0].value.length>this.limit}})});define("require/text!Select.html",function(){return'
      \n \n
        \n {options [}\n
      • {name}
      • \n {]}\n
      \n
      \n
      \n'});define("require/text!Select.css",function(){return'@charset "UTF-8";\n\n/* TODO: some of these styles, like text sizing/box sizing and colors/borders\n need to be set in the app that includes a Select widget. */\n.Select {\n position:relative;\n display: inline-block;\n overflow: hidden;\n padding-right: 15px;\n z-index: 100;\n border: 1px solid #A6AFB6;\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15) inset;\n height: 24px;\n cursor: pointer;\n background-color: white;\n}\n\n.Select.open {\n overflow: visible;\n padding-right: 0;\n border: 0;\n}\n\n.Select ul {\n list-style: none;\n z-index: 100;\n background-color: white;\n}\n\n.Select.open ul {\n position: absolute;\n border: 1px solid gray;\n}\n\n.Select li {\n display: none;\n height: 0;\n padding: 0 5px;\n white-space: nowrap;\n}\n\n.Select li.selected {\n display: block;\n height: 24px;\n line-height: 24px;\n}\n\n.Select.open li {\n display: block;\n height: 24px;\n line-height: 24px;\n padding-right: 20px;\n}\n\n.Select.open li.selected {\n /* background-color: grey; */\n}\n\n.Select.open li.selected:hover,\n.Select.open li:hover {\n color:white;\n background-color: #535F6D;\n}\n\n.Select .triangle {\n position: absolute;\n right: 0;\n top: 0;\n width: 18px;\n height: 24px;\n line-height: 24px;\n padding: 0 2px;\n z-index: 101;\n color: #A6AFB6;\n background-color: white;\n background-image: url("/share/i/sprite.png");\n background-position: center -362px;\n background-repeat: no-repeat;\n}\n\n.Select.open .triangle {\n display: none;\n}\n'}); +define("Select",["blade/object","blade/Widget","blade/array","jquery","module","text!./Select.html","text!./Select.css"],function(b,c,f,d,e,a,g){var h=e.id.replace(/\//g,"-"),i=document.createElement("style"),j;i.type="text/css";if(h!=="Select")g=g.replace(/\.Select/g,"."+h);i.textContent=g;document.getElementsByTagName("head")[0].appendChild(i);d(function(){d("body").delegate("."+h+" .triangle","click",function(l){c.closest(e.id,l,"onTriangleClick");l.preventDefault();l.stopPropagation()}).delegate("."+ +h+" li","click",function(l){c.closest(e.id,l,"onOptionClick");l.preventDefault();l.stopPropagation()});d(document).bind("click",function(){j&&j.close()})});return b(c,null,function(l){return{moduleId:e.id,className:h,template:a,onCreate:function(){if(this.value){var o,m=this.value;this.options.some(function(k,n){if(k.value===m){o=n;return true}return false});this.selectedIndex=o}else{this.selectedIndex=this.selectedIndex||0;this.value=this.options[this.selectedIndex].value}},onRender:function(){this.dom= +d(this.node);d("li",this.node).eq(this.selectedIndex).addClass("selected")},destroy:function(){delete this.dom;l(this,"destroy",arguments)},selectIndex:function(o){return this.val(this.options[o].value)},val:function(o){if(o===undefined)return d("li.selected",this.node)[0].getAttribute("data-value");else{var m,k,n;f.to.apply(null,d("li",this.dom)).some(function(q,p){if(q.getAttribute("data-value")===o){m=q;n=p}return false});this.selectedIndex=n;k=m.parentNode;this.selectedIndex=f.to.apply(null,d("li", +k)).indexOf(m);d("li",k).removeClass("selected");d(m).addClass("selected");this.close();this.dom.trigger("change");return o}},close:function(){var o=d("li.selected",this.node)[0];d("input",this.node).val(o.getAttribute("data-value"));this.dom.removeClass("open");this.node.style.width=""},open:function(){j&&j.close();this.node.style.width=this.node.getBoundingClientRect().width+"px";this.dom.addClass("open");j=this},onTriangleClick:function(){this.open()},onOptionClick:function(o){this.dom.hasClass("open")? +this.val(o.target.getAttribute("data-value")):this.open()}}})}); +define("widgets/AccountPanel",["blade/object","blade/Widget","jquery","text!./AccountPanel.html","TextCounter","storage","module","placeholder","dispatch","accounts","require","AutoComplete","rdapi","blade/fn","./jigFuncs","Select","jquery.textOverflow"],function(b,c,f,d,e,a,g,h,i,j,l,o,m,k,n,q){var p=a(),u=g.id.replace(/\//g,"-");f(function(){f("body").delegate("."+u+" form.messageForm","submit",function(v){c.closest(g.id,v,"onSubmit")}).delegate("."+u+" .shareType2","click",function(v){c.closest(g.id, +v,"selectSecondShareType");v.preventDefault()})});return b(c,null,function(v){return{moduleId:g.id,className:u,counter:null,urlSize:26,template:d,contactsName:"Contacts",strings:{shareTypeLabel:"send to"},onCreate:function(){var s=this.account.displayName,x;this.svcAccount=this.account.accounts[0];this.storeId="AccountPanel-"+this.svcAccount.domain;this.memStore={};if(x=p[this.storeId]){x=JSON.parse(x);if(this.theGameHasChanged(x)){this.clearSavedData();x=null}else this.options=b.create(this.options, +[x])}this.photo=this.account.photos&&this.account.photos[0]&&this.account.photos[0].value;if((x=this.svcAccount.username)&&x!==s)s=s+" ("+x+")";this.displayName=s;this.contactsName=this.svc.overlays&&this.svc.overlays[this.contactsName]||this.contactsName;this.optionsChangedSub=i.sub("optionsChanged",k.bind(this,function(A){this.options=A;this.optionsChanged()}));this.base64PreviewSub=i.sub("base64Preview",k.bind(this,function(A){f('[name="picture_base64"]',this.bodyNode).val(n.rawBase64(A))}));this.sendCompleteSub= +i.sub("sendComplete",k.bind(this,function(A){var D=this.svcAccount;A.to&&D.domain===A.domain&&D.userid===A.userid&&D.username===A.username&&this.contacts.incorporate(A.to)}))},destroy:function(){i.unsub(this.optionsChangedSub);i.unsub(this.base64PreviewSub);i.unsub(this.sendCompleteSub);this.select.dom.unbind("change",this.selectChangeFunc);delete this.selectChangeFunc;this.select.destroy();this.select=null;v(this,"destroy")},onRender:function(){var s,x,A;for(s=0;x=this.node.childNodes[s];s++)if(x.nodeType=== +1&&x.className.indexOf(this.className)!==-1){this.bodyNode=x;break}if(this.svc.shareTypes.length>1){this.select=new q({name:"shareType",value:this.options.shareType,options:this.svc.shareTypes.map(function(D){return{name:D.name,value:D.type}})},f(".shareTypeSelectSection",this.bodyNode)[0]);this.selectChangeFunc=k.bind(this,function(D){this.onShareTypeChange(D)});this.select.dom.bind("change",this.selectChangeFunc);this.options.shareType&&this.changeShareType(this.getShareType(this.options.shareType))}this.svc.textLimit&& +this.startCounter();h(this.bodyNode);(A=f('[name="to"]',this.bodyNode)[0])&&l([this.contactsName],k.bind(this,function(D){this.contacts=new D(this.svc,this.svcAccount);this.autoComplete=new o(A,this.contacts)}));f(".overflow",this.node).textOverflow()},theGameHasChanged:function(s){return s.link!==n.link(this.options)||s.userid!==String(this.svcAccount.userid)||s.domain!==String(this.svcAccount.domain)||s.username!==String(this.svcAccount.username)},clearSavedData:function(){this.memStore={};delete p[this.storeId]; +var s=f(this.bodyNode);s.find('[name="to"]').val("");s.find('[name="subject"]').val("");s.find('[name="message"]').val("");this.svc.textLimit&&s.find(".counter").html("");h(this.bodyNode)},saveData:function(){var s=this.getFormData();p[this.storeId]=JSON.stringify(s)},validate:function(){return!this.counter||!this.counter.isOver()},startCounter:function(){if(!this.counter)this.counter=new e(f("textarea.message",this.bodyNode),f(".counter",this.bodyNode),this.svc.textLimit-this.urlSize);this.updateCounter()}, +updateCounter:function(){this.counter.updateLimit(this.options.shortUrl?this.svc.textLimit-(this.options.shortUrl.length+1):this.svc.textLimit-this.urlSize)},optionsChanged:function(){var s=f(this.bodyNode),x=this.options,A=n.link(x),D=this.memStore[A],I;I=this.getFormData();if(I.to||I.message||I.subject)this.memStore[I.link]=I;if(D&&this.theGameHasChanged(D)){D=null;delete this.memStore[A]}if(D)x=b.create(x,[{to:D.to,subject:D.subject,message:D.message,shareType:D.shareType}]);s.find('[name="picture"]').val(n.preview(x)); +s.find('[name="picture_base64"]').val(n.preview_base64(x));s.find('[name="link"]').val(A);s.find('[name="title"]').val(x.title);s.find('[name="caption"]').val(x.caption);s.find('[name="description"]').val(x.description);s.find('[name="medium"]').val(x.medium);s.find('[name="source"]').val(x.source);if(this.select)if(x.shareType){this.select.val(x.shareType);this.changeShareType(this.getShareType(x.shareType))}else this.selectFirstShareType();s.find('[name="to"]').val(x.to);s.find('[name="subject"]').val(x.subject); +s.find('[name="message"]').val(x.message);this.counter&&this.updateCounter();h(this.bodyNode)},getFormData:function(){var s=f("form",this.bodyNode),x={};f.each(s[0].elements,function(A,D){A=D.value.trim();if(D.getAttribute("placeholder")===A)A="";D.value=A;if(D.value)x[D.name]=D.value});return x},getShareType:function(s){for(var x=0,A;A=this.svc.shareTypes[x];x++)if(A.type===s)return A;return null},selectFirstShareType:function(){this.select.selectIndex(0);this.changeShareType(this.svc.shareTypes[0])}, +selectSecondShareType:function(){this.select.selectIndex(1);this.changeShareType(this.svc.shareTypes[1])},changeShareType:function(s){var x=f(".toSection",this.bodyNode),A=f(".shareTypeSelectSection",this.bodyNode),D=f(".shareType2",this.bodyNode),I=f(".toSection input",this.bodyNode);I.val(s.specialTo?s.specialTo:"");h(I[0]);if(s.showTo){x.removeClass("hiddenImportant");A.addClass("fixedSize");D.addClass("hiddenImportant");I.focus()}else{x.addClass("hiddenImportant");A.removeClass("fixedSize");D.removeClass("hiddenImportant")}}, +onShareTypeChange:function(){this.changeShareType(this.getShareType(this.select.val()))},onSubmit:function(s){s.preventDefault();s=this.getFormData();if(this.validate(s)){if(this.options.shortUrl)s.shorturl=this.options.shortUrl;else if(this.svc.shorten)s.shorten=true;if(s.to)s.to=this.contacts.convert(s.to);i.pub("sendMessage",s)}}}})}); +define("dotCompare",[],function(){function b(c,f){c=c||"0";f=f||"0";c=c.split(".");f=f.split(".");var d,e,a,g=c.length>f.length?c.length:f.length;for(d=0;da)return 1;else if(e=0)&&b(d).is(":focusable")}}); +b(function(){var d=document.body,e=d.appendChild(e=document.createElement("div"));b.extend(e.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});b.support.minHeight=e.offsetHeight===100;b.support.selectstart="onselectstart"in e;d.removeChild(e).style.display="none"});b.extend(b.ui,{plugin:{add:function(d,e,a){d=b.ui[d].prototype;for(var g in a){d.plugins[g]=d.plugins[g]||[];d.plugins[g].push([e,a[g]])}},call:function(d,e,a){if((e=d.plugins[e])&&d.element[0].parentNode)for(var g=0;g0)return true;d[e]=1;a=d[e]>0;d[e]=0;return a},isOverAxis:function(d,e,a){return d>e&&d=9)&&!c.button)return this._mouseUp(c);if(this._mouseStarted){this._mouseDrag(c); +return c.preventDefault()}if(this._mouseDistanceMet(c)&&this._mouseDelayMet(c))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,c)!==false)?this._mouseDrag(c):this._mouseUp(c);return!this._mouseStarted},_mouseUp:function(c){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;c.target==this._mouseDownEvent.target&&b.data(c.target,this.widgetName+".preventClickEvent", +true);this._mouseStop(c)}return false},_mouseDistanceMet:function(c){return Math.max(Math.abs(this._mouseDownEvent.pageX-c.pageX),Math.abs(this._mouseDownEvent.pageY-c.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); +(function(b){b.widget("ui.draggable",b.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper== +"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(c){var f= +this.options;if(this.helper||f.disabled||b(c.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(c);if(!this.handle)return false;return true},_mouseStart:function(c){var f=this.options;this.helper=this._createHelper(c);this._cacheHelperProportions();if(b.ui.ddmanager)b.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top- +this.margins.top,left:this.offset.left-this.margins.left};b.extend(this.offset,{click:{left:c.pageX-this.offset.left,top:c.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(c);this.originalPageX=c.pageX;this.originalPageY=c.pageY;f.cursorAt&&this._adjustOffsetFromHelper(f.cursorAt);f.containment&&this._setContainment();if(this._trigger("start",c)===false){this._clear();return false}this._cacheHelperProportions(); +b.ui.ddmanager&&!f.dropBehaviour&&b.ui.ddmanager.prepareOffsets(this,c);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(c,true);return true},_mouseDrag:function(c,f){this.position=this._generatePosition(c);this.positionAbs=this._convertPositionTo("absolute");if(!f){f=this._uiHash();if(this._trigger("drag",c,f)===false){this._mouseUp({});return false}this.position=f.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis|| +this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";b.ui.ddmanager&&b.ui.ddmanager.drag(this,c);return false},_mouseStop:function(c){var f=false;if(b.ui.ddmanager&&!this.options.dropBehaviour)f=b.ui.ddmanager.drop(this,c);if(this.dropped){f=this.dropped;this.dropped=false}if(!this.element[0]||!this.element[0].parentNode)return false;if(this.options.revert=="invalid"&&!f||this.options.revert=="valid"&&f||this.options.revert===true||b.isFunction(this.options.revert)&&this.options.revert.call(this.element, +f)){var d=this;b(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){d._trigger("stop",c)!==false&&d._clear()})}else this._trigger("stop",c)!==false&&this._clear();return false},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(c){var f=!this.options.handle||!b(this.options.handle,this.element).length?true:false;b(this.options.handle,this.element).find("*").andSelf().each(function(){if(this== +c.target)f=true});return f},_createHelper:function(c){var f=this.options;c=b.isFunction(f.helper)?b(f.helper.apply(this.element[0],[c])):f.helper=="clone"?this.element.clone():this.element;c.parents("body").length||c.appendTo(f.appendTo=="parent"?this.element[0].parentNode:f.appendTo);c[0]!=this.element[0]&&!/(fixed|absolute)/.test(c.css("position"))&&c.css("position","absolute");return c},_adjustOffsetFromHelper:function(c){if(typeof c=="string")c=c.split(" ");if(b.isArray(c))c={left:+c[0],top:+c[1]|| +0};if("left"in c)this.offset.click.left=c.left+this.margins.left;if("right"in c)this.offset.click.left=this.helperProportions.width-c.right+this.margins.left;if("top"in c)this.offset.click.top=c.top+this.margins.top;if("bottom"in c)this.offset.click.top=this.helperProportions.height-c.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var c=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&b.ui.contains(this.scrollParent[0], +this.offsetParent[0])){c.left+=this.scrollParent.scrollLeft();c.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&b.browser.msie)c={top:0,left:0};return{top:c.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:c.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var c=this.element.position();return{top:c.top- +(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:c.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var c=this.options;if(c.containment== +"parent")c.containment=this.helper[0].parentNode;if(c.containment=="document"||c.containment=="window")this.containment=[(c.containment=="document"?0:b(window).scrollLeft())-this.offset.relative.left-this.offset.parent.left,(c.containment=="document"?0:b(window).scrollTop())-this.offset.relative.top-this.offset.parent.top,(c.containment=="document"?0:b(window).scrollLeft())+b(c.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(c.containment=="document"? +0:b(window).scrollTop())+(b(c.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(c.containment)&&c.containment.constructor!=Array){var f=b(c.containment)[0];if(f){c=b(c.containment).offset();var d=b(f).css("overflow")!="hidden";this.containment=[c.left+(parseInt(b(f).css("borderLeftWidth"),10)||0)+(parseInt(b(f).css("paddingLeft"),10)||0)-this.margins.left,c.top+(parseInt(b(f).css("borderTopWidth"), +10)||0)+(parseInt(b(f).css("paddingTop"),10)||0)-this.margins.top,c.left+(d?Math.max(f.scrollWidth,f.offsetWidth):f.offsetWidth)-(parseInt(b(f).css("borderLeftWidth"),10)||0)-(parseInt(b(f).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,c.top+(d?Math.max(f.scrollHeight,f.offsetHeight):f.offsetHeight)-(parseInt(b(f).css("borderTopWidth"),10)||0)-(parseInt(b(f).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}}else if(c.containment.constructor== +Array)this.containment=c.containment},_convertPositionTo:function(c,f){if(!f)f=this.position;c=c=="absolute"?1:-1;var d=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&b.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName);return{top:f.top+this.offset.relative.top*c+this.offset.parent.top*c-(b.browser.safari&&b.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop(): +e?0:d.scrollTop())*c),left:f.left+this.offset.relative.left*c+this.offset.parent.left*c-(b.browser.safari&&b.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:d.scrollLeft())*c)}},_generatePosition:function(c){var f=this.options,d=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&b.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName),a=c.pageX,g=c.pageY; +if(this.originalPosition){if(this.containment){if(c.pageX-this.offset.click.leftthis.containment[2])a=this.containment[2]+this.offset.click.left;if(c.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(f.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/ +f.grid[1])*f.grid[1];g=this.containment?!(g-this.offset.click.topthis.containment[3])?g:!(g-this.offset.click.topthis.containment[2])?a:!(a-this.offset.click.left').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(b(this).offset()).appendTo("body")})}, +stop:function(){b("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});b.ui.plugin.add("draggable","opacity",{start:function(c,f){c=b(f.helper);f=b(this).data("draggable").options;if(c.css("opacity"))f._opacity=c.css("opacity");c.css("opacity",f.opacity)},stop:function(c,f){c=b(this).data("draggable").options;c._opacity&&b(f.helper).css("opacity",c._opacity)}});b.ui.plugin.add("draggable","scroll",{start:function(){var c=b(this).data("draggable");if(c.scrollParent[0]!= +document&&c.scrollParent[0].tagName!="HTML")c.overflowOffset=c.scrollParent.offset()},drag:function(c){var f=b(this).data("draggable"),d=f.options,e=false;if(f.scrollParent[0]!=document&&f.scrollParent[0].tagName!="HTML"){if(!d.axis||d.axis!="x")if(f.overflowOffset.top+f.scrollParent[0].offsetHeight-c.pageY=0;l--){var o=d.snapElements[l].left,m=o+d.snapElements[l].width,k=d.snapElements[l].top,n=k+d.snapElements[l].height;if(o-a=l&&g<=o||h>=l&&h<=o||go)&&(e>=i&&e<=j||a>=i&&a<=j||ej); +default:return false}};b.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(c,f){var d=b.ui.ddmanager.droppables[c.options.scope]||[],e=f?f.type:null,a=(c.currentItem||c.element).find(":data(droppable)").andSelf(),g=0;a:for(;g').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(), +top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle= +this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=e.handles||(!b(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne", +nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var a=this.handles.split(",");this.handles={};for(var g=0;g');/sw|se|ne|nw/.test(h)&&i.css({zIndex:++e.zIndex});"se"==h&&i.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[h]=".ui-resizable-"+h;this.element.append(i)}}this._renderAxis=function(j){j=j||this.element;for(var l in this.handles){if(this.handles[l].constructor== +String)this.handles[l]=b(this.handles[l],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=b(this.handles[l],this.element),m=0;m=/sw|ne|nw|se|n|s/.test(l)?o.outerHeight():o.outerWidth();o=["padding",/ne|nw|n/.test(l)?"Top":/se|sw|s/.test(l)?"Bottom":/^e$/.test(l)?"Right":"Left"].join("");j.css(o,m);this._proportionallyResize()}b(this.handles[l])}};this._renderAxis(this.element);this._handles=b(".ui-resizable-handle",this.element).disableSelection(); +this._handles.mouseover(function(){if(!d.resizing){if(this.className)var j=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);d.axis=j&&j[1]?j[1]:"se"}});if(e.autoHide){this._handles.hide();b(this.element).addClass("ui-resizable-autohide").hover(function(){b(this).removeClass("ui-resizable-autohide");d._handles.show()},function(){if(!d.resizing){b(this).addClass("ui-resizable-autohide");d._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var d=function(a){b(a).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()}; +if(this.elementIsWrapper){d(this.element);var e=this.element;e.after(this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);d(this.originalElement);return this},_mouseCapture:function(d){var e=false;for(var a in this.handles)if(b(this.handles[a])[0]==d.target)e=true;return!this.options.disabled&&e},_mouseStart:function(d){var e=this.options,a=this.element.position(), +g=this.element;this.resizing=true;this.documentScroll={top:b(document).scrollTop(),left:b(document).scrollLeft()};if(g.is(".ui-draggable")||/absolute/.test(g.css("position")))g.css({position:"absolute",top:a.top,left:a.left});b.browser.opera&&/relative/.test(g.css("position"))&&g.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();a=c(this.helper.css("left"));var h=c(this.helper.css("top"));if(e.containment){a+=b(e.containment).scrollLeft()||0;h+=b(e.containment).scrollTop()||0}this.offset= +this.helper.offset();this.position={left:a,top:h};this.size=this._helper?{width:g.outerWidth(),height:g.outerHeight()}:{width:g.width(),height:g.height()};this.originalSize=this._helper?{width:g.outerWidth(),height:g.outerHeight()}:{width:g.width(),height:g.height()};this.originalPosition={left:a,top:h};this.sizeDiff={width:g.outerWidth()-g.width(),height:g.outerHeight()-g.height()};this.originalMousePosition={left:d.pageX,top:d.pageY};this.aspectRatio=typeof e.aspectRatio=="number"?e.aspectRatio: +this.originalSize.width/this.originalSize.height||1;e=b(".ui-resizable-"+this.axis).css("cursor");b("body").css("cursor",e=="auto"?this.axis+"-resize":e);g.addClass("ui-resizable-resizing");this._propagate("start",d);return true},_mouseDrag:function(d){var e=this.helper,a=this.originalMousePosition,g=this._change[this.axis];if(!g)return false;a=g.apply(this,[d,d.pageX-a.left||0,d.pageY-a.top||0]);if(this._aspectRatio||d.shiftKey)a=this._updateRatio(a,d);a=this._respectSize(a,d);this._propagate("resize", +d);e.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(a);this._trigger("resize",d,this.ui());return false},_mouseStop:function(d){this.resizing=false;var e=this.options;if(this._helper){var a=this._proportionallyResizeElements,g=a.length&&/textarea/i.test(a[0].nodeName);a=g&&b.ui.hasScroll(a[0],"left")?0:this.sizeDiff.height; +g={width:this.size.width-(g?0:this.sizeDiff.width),height:this.size.height-a};a=parseInt(this.element.css("left"),10)+(this.position.left-this.originalPosition.left)||null;var h=parseInt(this.element.css("top"),10)+(this.position.top-this.originalPosition.top)||null;e.animate||this.element.css(b.extend(g,{top:h,left:a}));this.helper.height(this.size.height);this.helper.width(this.size.width);this._helper&&!e.animate&&this._proportionallyResize()}b("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing"); +this._propagate("stop",d);this._helper&&this.helper.remove();return false},_updateCache:function(d){this.offset=this.helper.offset();if(f(d.left))this.position.left=d.left;if(f(d.top))this.position.top=d.top;if(f(d.height))this.size.height=d.height;if(f(d.width))this.size.width=d.width},_updateRatio:function(d){var e=this.position,a=this.size,g=this.axis;if(d.height)d.width=a.height*this.aspectRatio;else if(d.width)d.height=a.width/this.aspectRatio;if(g=="sw"){d.left=e.left+(a.width-d.width);d.top= +null}if(g=="nw"){d.top=e.top+(a.height-d.height);d.left=e.left+(a.width-d.width)}return d},_respectSize:function(d){var e=this.options,a=this.axis,g=f(d.width)&&e.maxWidth&&e.maxWidthd.width,j=f(d.height)&&e.minHeight&&e.minHeight>d.height;if(i)d.width=e.minWidth;if(j)d.height=e.minHeight;if(g)d.width=e.maxWidth;if(h)d.height=e.maxHeight;var l=this.originalPosition.left+this.originalSize.width,o=this.position.top+ +this.size.height,m=/sw|nw|w/.test(a);a=/nw|ne|n/.test(a);if(i&&m)d.left=l-e.minWidth;if(g&&m)d.left=l-e.maxWidth;if(j&&a)d.top=o-e.minHeight;if(h&&a)d.top=o-e.maxHeight;if((e=!d.width&&!d.height)&&!d.left&&d.top)d.top=null;else if(e&&!d.top&&d.left)d.left=null;return d},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var d=this.helper||this.element,e=0;e');var e=b.browser.msie&&b.browser.version<7,a=e?1:0;e=e?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+e,height:this.element.outerHeight()+e,position:"absolute",left:this.elementOffset.left-a+"px",top:this.elementOffset.top-a+"px",zIndex:++d.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(d, +e){return{width:this.originalSize.width+e}},w:function(d,e){return{left:this.originalPosition.left+e,width:this.originalSize.width-e}},n:function(d,e,a){return{top:this.originalPosition.top+a,height:this.originalSize.height-a}},s:function(d,e,a){return{height:this.originalSize.height+a}},se:function(d,e,a){return b.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[d,e,a]))},sw:function(d,e,a){return b.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[d,e, +a]))},ne:function(d,e,a){return b.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[d,e,a]))},nw:function(d,e,a){return b.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[d,e,a]))}},_propagate:function(d,e){b.ui.plugin.call(this,d,[e,this.ui()]);d!="resize"&&this._trigger(d,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize, +originalPosition:this.originalPosition}}});b.extend(b.ui.resizable,{version:"1.8.7"});b.ui.plugin.add("resizable","alsoResize",{start:function(){var d=b(this).data("resizable").options,e=function(a){b(a).each(function(){var g=b(this);g.data("resizable-alsoresize",{width:parseInt(g.width(),10),height:parseInt(g.height(),10),left:parseInt(g.css("left"),10),top:parseInt(g.css("top"),10),position:g.css("position")})})};if(typeof d.alsoResize=="object"&&!d.alsoResize.parentNode)if(d.alsoResize.length){d.alsoResize= +d.alsoResize[0];e(d.alsoResize)}else b.each(d.alsoResize,function(a){e(a)});else e(d.alsoResize)},resize:function(d,e){var a=b(this).data("resizable");d=a.options;var g=a.originalSize,h=a.originalPosition,i={height:a.size.height-g.height||0,width:a.size.width-g.width||0,top:a.position.top-h.top||0,left:a.position.left-h.left||0},j=function(l,o){b(l).each(function(){var m=b(this),k=b(this).data("resizable-alsoresize"),n={},q=o&&o.length?o:m.parents(e.originalElement[0]).length?["width","height"]:["width", +"height","top","left"];b.each(q,function(p,u){if((p=(k[u]||0)+(i[u]||0))&&p>=0)n[u]=p||null});if(b.browser.opera&&/relative/.test(m.css("position"))){a._revertToRelativePosition=true;m.css({position:"absolute",top:"auto",left:"auto"})}m.css(n)})};typeof d.alsoResize=="object"&&!d.alsoResize.nodeType?b.each(d.alsoResize,function(l,o){j(l,o)}):j(d.alsoResize)},stop:function(){var d=b(this).data("resizable"),e=d.options,a=function(g){b(g).each(function(){var h=b(this);h.css({position:h.data("resizable-alsoresize").position})})}; +if(d._revertToRelativePosition){d._revertToRelativePosition=false;typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?b.each(e.alsoResize,function(g){a(g)}):a(e.alsoResize)}b(this).removeData("resizable-alsoresize")}});b.ui.plugin.add("resizable","animate",{stop:function(d){var e=b(this).data("resizable"),a=e.options,g=e._proportionallyResizeElements,h=g.length&&/textarea/i.test(g[0].nodeName),i=h&&b.ui.hasScroll(g[0],"left")?0:e.sizeDiff.height;h={width:e.size.width-(h?0:e.sizeDiff.width),height:e.size.height- +i};i=parseInt(e.element.css("left"),10)+(e.position.left-e.originalPosition.left)||null;var j=parseInt(e.element.css("top"),10)+(e.position.top-e.originalPosition.top)||null;e.element.animate(b.extend(h,j&&i?{top:j,left:i}:{}),{duration:a.animateDuration,easing:a.animateEasing,step:function(){var l={width:parseInt(e.element.css("width"),10),height:parseInt(e.element.css("height"),10),top:parseInt(e.element.css("top"),10),left:parseInt(e.element.css("left"),10)};g&&g.length&&b(g[0]).css({width:l.width, +height:l.height});e._updateCache(l);e._propagate("resize",d)}})}});b.ui.plugin.add("resizable","containment",{start:function(){var d=b(this).data("resizable"),e=d.element,a=d.options.containment;if(e=a instanceof b?a.get(0):/parent/.test(a)?e.parent().get(0):a){d.containerElement=b(e);if(/document/.test(a)||a==document){d.containerOffset={left:0,top:0};d.containerPosition={left:0,top:0};d.parentData={element:b(document),left:0,top:0,width:b(document).width(),height:b(document).height()||document.body.parentNode.scrollHeight}}else{var g= +b(e),h=[];b(["Top","Right","Left","Bottom"]).each(function(l,o){h[l]=c(g.css("padding"+o))});d.containerOffset=g.offset();d.containerPosition=g.position();d.containerSize={height:g.innerHeight()-h[3],width:g.innerWidth()-h[1]};a=d.containerOffset;var i=d.containerSize.height,j=d.containerSize.width;j=b.ui.hasScroll(e,"left")?e.scrollWidth:j;i=b.ui.hasScroll(e)?e.scrollHeight:i;d.parentData={element:e,left:a.left,top:a.top,width:j,height:i}}}},resize:function(d){var e=b(this).data("resizable"),a=e.options, +g=e.containerOffset,h=e.position;d=e._aspectRatio||d.shiftKey;var i={top:0,left:0},j=e.containerElement;if(j[0]!=document&&/static/.test(j.css("position")))i=g;if(h.left<(e._helper?g.left:0)){e.size.width+=e._helper?e.position.left-g.left:e.position.left-i.left;if(d)e.size.height=e.size.width/a.aspectRatio;e.position.left=a.helper?g.left:0}if(h.top<(e._helper?g.top:0)){e.size.height+=e._helper?e.position.top-g.top:e.position.top;if(d)e.size.width=e.size.height*a.aspectRatio;e.position.top=e._helper? +g.top:0}e.offset.left=e.parentData.left+e.position.left;e.offset.top=e.parentData.top+e.position.top;a=Math.abs((e._helper?e.offset.left-i.left:e.offset.left-i.left)+e.sizeDiff.width);g=Math.abs((e._helper?e.offset.top-i.top:e.offset.top-g.top)+e.sizeDiff.height);h=e.containerElement.get(0)==e.element.parent().get(0);i=/relative|absolute/.test(e.containerElement.css("position"));if(h&&i)a-=e.parentData.left;if(a+e.size.width>=e.parentData.width){e.size.width=e.parentData.width-a;if(d)e.size.height= +e.size.width/e.aspectRatio}if(g+e.size.height>=e.parentData.height){e.size.height=e.parentData.height-g;if(d)e.size.width=e.size.height*e.aspectRatio}},stop:function(){var d=b(this).data("resizable"),e=d.options,a=d.containerOffset,g=d.containerPosition,h=d.containerElement,i=b(d.helper),j=i.offset(),l=i.outerWidth()-d.sizeDiff.width;i=i.outerHeight()-d.sizeDiff.height;d._helper&&!e.animate&&/relative/.test(h.css("position"))&&b(this).css({left:j.left-g.left-a.left,width:l,height:i});d._helper&&!e.animate&& +/static/.test(h.css("position"))&&b(this).css({left:j.left-g.left-a.left,width:l,height:i})}});b.ui.plugin.add("resizable","ghost",{start:function(){var d=b(this).data("resizable"),e=d.options,a=d.size;d.ghost=d.originalElement.clone();d.ghost.css({opacity:0.25,display:"block",position:"relative",height:a.height,width:a.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:"");d.ghost.appendTo(d.helper)},resize:function(){var d=b(this).data("resizable"); +d.ghost&&d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})},stop:function(){var d=b(this).data("resizable");d.ghost&&d.helper&&d.helper.get(0).removeChild(d.ghost.get(0))}});b.ui.plugin.add("resizable","grid",{resize:function(){var d=b(this).data("resizable"),e=d.options,a=d.size,g=d.originalSize,h=d.originalPosition,i=d.axis;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var j=Math.round((a.width-g.width)/(e.grid[0]||1))*(e.grid[0]||1);e=Math.round((a.height-g.height)/ +(e.grid[1]||1))*(e.grid[1]||1);if(/^(se|s|e)$/.test(i)){d.size.width=g.width+j;d.size.height=g.height+e}else if(/^(ne)$/.test(i)){d.size.width=g.width+j;d.size.height=g.height+e;d.position.top=h.top-e}else{if(/^(sw)$/.test(i)){d.size.width=g.width+j;d.size.height=g.height+e}else{d.size.width=g.width+j;d.size.height=g.height+e;d.position.top=h.top-e}d.position.left=h.left-j}}});var c=function(d){return parseInt(d,10)||0},f=function(d){return!isNaN(parseInt(d,10))}})(jQuery); +(function(b){b.widget("ui.selectable",b.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=b(c.options.filter,c.element[0]);f.each(function(){var d=b(this),e=d.offset();b.data(this,"selectable-item",{element:this,$element:d,left:e.left,top:e.top,right:e.left+d.outerWidth(),bottom:e.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"), +selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=b("
      ")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX, +c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=b(d.filter,this.element[0]);this._trigger("start",c);b(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var e=b.data(this,"selectable-item");e.startselected=true;if(!c.metaKey){e.$element.removeClass("ui-selected");e.selected=false;e.$element.addClass("ui-unselecting");e.unselecting=true;f._trigger("unselecting", +c,{unselecting:e.element})}});b(c.target).parents().andSelf().each(function(){var e=b.data(this,"selectable-item");if(e){var a=!c.metaKey||!e.$element.hasClass("ui-selected");e.$element.removeClass(a?"ui-unselecting":"ui-selected").addClass(a?"ui-selecting":"ui-unselecting");e.unselecting=!a;e.selecting=a;(e.selected=a)?f._trigger("selecting",c,{selecting:e.element}):f._trigger("unselecting",c,{unselecting:e.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d= +this.options,e=this.opos[0],a=this.opos[1],g=c.pageX,h=c.pageY;if(e>g){var i=g;g=e;e=i}if(a>h){i=h;h=a;a=i}this.helper.css({left:e,top:a,width:g-e,height:h-a});this.selectees.each(function(){var j=b.data(this,"selectable-item");if(!(!j||j.element==f.element[0])){var l=false;if(d.tolerance=="touch")l=!(j.left>g||j.righth||j.bottome&&j.righta&&j.bottom *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){this.containerCache={};this.element.addClass("ui-sortable"); +this.refresh();this.floating=this.items.length?/left|right/.test(this.items[0].item.css("float")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var c=this.items.length-1;c>=0;c--)this.items[c].item.removeData("sortable-item");return this},_setOption:function(c,f){if(c==="disabled"){this.options[c]=f;this.widget()[f?"addClass":"removeClass"]("ui-sortable-disabled")}else b.Widget.prototype._setOption.apply(this, +arguments)},_mouseCapture:function(c,f){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(c);var d=null,e=this;b(c.target).parents().each(function(){if(b.data(this,"sortable-item")==e){d=b(this);return false}});if(b.data(c.target,"sortable-item")==e)d=b(c.target);if(!d)return false;if(this.options.handle&&!f){var a=false;b(this.options.handle,d).find("*").andSelf().each(function(){if(this==c.target)a=true});if(!a)return false}this.currentItem= +d;this._removeCurrentsFromItems();return true},_mouseStart:function(c,f,d){f=this.options;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(c);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");b.extend(this.offset, +{click:{left:c.pageX-this.offset.left,top:c.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(c);this.originalPageX=c.pageX;this.originalPageY=c.pageY;f.cursorAt&&this._adjustOffsetFromHelper(f.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();f.containment&&this._setContainment(); +if(f.cursor){if(b("body").css("cursor"))this._storedCursor=b("body").css("cursor");b("body").css("cursor",f.cursor)}if(f.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",f.opacity)}if(f.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",f.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start", +c,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!d)for(d=this.containers.length-1;d>=0;d--)this.containers[d]._trigger("activate",c,this._uiHash(this));if(b.ui.ddmanager)b.ui.ddmanager.current=this;b.ui.ddmanager&&!f.dropBehaviour&&b.ui.ddmanager.prepareOffsets(this,c);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(c);return true},_mouseDrag:function(c){this.position=this._generatePosition(c);this.positionAbs=this._convertPositionTo("absolute"); +if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var f=this.options,d=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-c.pageY=0;f--){d=this.items[f];var e=d.item[0],a=this._intersectsWithPointer(d);if(a)if(e!=this.currentItem[0]&&this.placeholder[a==1?"next":"prev"]()[0]!=e&&!b.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!b.ui.contains(this.element[0],e):true)){this.direction=a==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(d))this._rearrange(c, +d);else break;this._trigger("change",c,this._uiHash());break}}this._contactContainers(c);b.ui.ddmanager&&b.ui.ddmanager.drag(this,c);this._trigger("sort",c,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(c,f){if(c){b.ui.ddmanager&&!this.options.dropBehaviour&&b.ui.ddmanager.drop(this,c);if(this.options.revert){var d=this;f=d.placeholder.offset();d.reverting=true;b(this.helper).animate({left:f.left-this.offset.parent.left-d.margins.left+(this.offsetParent[0]== +document.body?0:this.offsetParent[0].scrollLeft),top:f.top-this.offset.parent.top-d.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){d._clear(c)})}else this._clear(c,f);return false}},cancel:function(){if(this.dragging){this._mouseUp();this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var c=this.containers.length-1;c>=0;c--){this.containers[c]._trigger("deactivate", +null,this._uiHash(this));if(this.containers[c].containerCache.over){this.containers[c]._trigger("out",null,this._uiHash(this));this.containers[c].containerCache.over=0}}}this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();b.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?b(this.domPosition.prev).after(this.currentItem): +b(this.domPosition.parent).prepend(this.currentItem);return this},serialize:function(c){var f=this._getItemsAsjQuery(c&&c.connected),d=[];c=c||{};b(f).each(function(){var e=(b(c.item||this).attr(c.attribute||"id")||"").match(c.expression||/(.+)[-=_](.+)/);if(e)d.push((c.key||e[1]+"[]")+"="+(c.key&&c.expression?e[1]:e[2]))});!d.length&&c.key&&d.push(c.key+"=");return d.join("&")},toArray:function(c){var f=this._getItemsAsjQuery(c&&c.connected),d=[];c=c||{};f.each(function(){d.push(b(c.item||this).attr(c.attribute|| +"id")||"")});return d},_intersectsWith:function(c){var f=this.positionAbs.left,d=f+this.helperProportions.width,e=this.positionAbs.top,a=e+this.helperProportions.height,g=c.left,h=g+c.width,i=c.top,j=i+c.height,l=this.offset.click.top,o=this.offset.click.left;l=e+l>i&&e+lg&&f+oc[this.floating?"width":"height"]?l:g0?"down":"up")}, +_getDragHorizontalDirection:function(){var c=this.positionAbs.left-this.lastPositionAbs.left;return c!=0&&(c>0?"right":"left")},refresh:function(c){this._refreshItems(c);this.refreshPositions();return this},_connectWith:function(){var c=this.options;return c.connectWith.constructor==String?[c.connectWith]:c.connectWith},_getItemsAsjQuery:function(c){var f=[],d=[],e=this._connectWith();if(e&&c)for(c=e.length-1;c>=0;c--)for(var a=b(e[c]),g=a.length-1;g>=0;g--){var h=b.data(a[g],"sortable");if(h&&h!= +this&&!h.options.disabled)d.push([b.isFunction(h.options.items)?h.options.items.call(h.element):b(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}d.push([b.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):b(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(c=d.length-1;c>=0;c--)d[c][0].each(function(){f.push(this)});return b(f)},_removeCurrentsFromItems:function(){for(var c= +this.currentItem.find(":data(sortable-item)"),f=0;f=0;a--)for(var g=b(e[a]),h=g.length-1;h>=0;h--){var i=b.data(g[h],"sortable"); +if(i&&i!=this&&!i.options.disabled){d.push([b.isFunction(i.options.items)?i.options.items.call(i.element[0],c,{item:this.currentItem}):b(i.options.items,i.element),i]);this.containers.push(i)}}for(a=d.length-1;a>=0;a--){c=d[a][1];e=d[a][0];h=0;for(g=e.length;h= +0;f--){var d=this.items[f],e=this.options.toleranceElement?b(this.options.toleranceElement,d.item):d.item;if(!c){d.width=e.outerWidth();d.height=e.outerHeight()}e=e.offset();d.left=e.left;d.top=e.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(f=this.containers.length-1;f>=0;f--){e=this.containers[f].element.offset();this.containers[f].containerCache.left=e.left;this.containers[f].containerCache.top=e.top;this.containers[f].containerCache.width= +this.containers[f].element.outerWidth();this.containers[f].containerCache.height=this.containers[f].element.outerHeight()}return this},_createPlaceholder:function(c){var f=c||this,d=f.options;if(!d.placeholder||d.placeholder.constructor==String){var e=d.placeholder;d.placeholder={element:function(){var a=b(document.createElement(f.currentItem[0].nodeName)).addClass(e||f.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)a.style.visibility="hidden";return a}, +update:function(a,g){if(!(e&&!d.forcePlaceholderSize)){g.height()||g.height(f.currentItem.innerHeight()-parseInt(f.currentItem.css("paddingTop")||0,10)-parseInt(f.currentItem.css("paddingBottom")||0,10));g.width()||g.width(f.currentItem.innerWidth()-parseInt(f.currentItem.css("paddingLeft")||0,10)-parseInt(f.currentItem.css("paddingRight")||0,10))}}}}f.placeholder=b(d.placeholder.element.call(f.element,f.currentItem));f.currentItem.after(f.placeholder);d.placeholder.update(f,f.placeholder)},_contactContainers:function(c){for(var f= +null,d=null,e=this.containers.length-1;e>=0;e--)if(!b.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(f&&b.ui.contains(this.containers[e].element[0],f.element[0]))){f=this.containers[e];d=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",c,this._uiHash(this));this.containers[e].containerCache.over=0}if(f)if(this.containers.length===1){this.containers[d]._trigger("over",c,this._uiHash(this)); +this.containers[d].containerCache.over=1}else if(this.currentContainer!=this.containers[d]){f=1E4;e=null;for(var a=this.positionAbs[this.containers[d].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(b.ui.contains(this.containers[d].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[d].floating?"left":"top"];if(Math.abs(h-a)this.containment[2])a=this.containment[2]+this.offset.click.left;if(c.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(f.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/f.grid[1])*f.grid[1];g=this.containment?!(g-this.offset.click.topthis.containment[3])? +g:!(g-this.offset.click.topthis.containment[2])?a:!(a-this.offset.click.left=0;e--)if(b.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!f){d.push(function(a){return function(g){a._trigger("receive", +g,this._uiHash(this))}}.call(this,this.containers[e]));d.push(function(a){return function(g){a._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){f||d.push(function(a){return function(g){a._trigger("deactivate",g,this._uiHash(this))}}.call(this,this.containers[e]));if(this.containers[e].containerCache.over){d.push(function(a){return function(g){a._trigger("out",g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over= +0}}this._storedCursor&&b("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!f){this._trigger("beforeStop",c,this._uiHash());for(e=0;e").addClass("ui-effects-wrapper").css({fontSize:"100%", +background:"transparent",border:"none",margin:0,padding:0});m.wrap(n);n=m.parent();if(m.css("position")=="static"){n.css({position:"relative"});m.css({position:"relative"})}else{b.extend(k,{position:m.css("position"),zIndex:m.css("z-index")});b.each(["top","left","bottom","right"],function(q,p){k[p]=m.css(p);if(isNaN(parseInt(k[p],10)))k[p]="auto"});m.css({position:"relative",top:0,left:0})}return n.css(k).show()},removeWrapper:function(m){if(m.parent().is(".ui-effects-wrapper"))return m.parent().replaceWith(m); +return m},setTransition:function(m,k,n,q){q=q||{};b.each(k,function(p,u){unit=m.cssUnit(u);if(unit[0]>0)q[u]=unit[0]*n+unit[1]});return q}});b.fn.extend({effect:function(m){var k=h.apply(this,arguments),n={options:k[1],duration:k[2],callback:k[3]};k=n.options.mode;var q=b.effects[m];if(b.fx.off||!q)return k?this[k](n.duration,n.callback):this.each(function(){n.callback&&n.callback.call(this)});return q.call(this,n)},_show:b.fn.show,show:function(m){if(i(m))return this._show.apply(this,arguments); +else{var k=h.apply(this,arguments);k[1].mode="show";return this.effect.apply(this,k)}},_hide:b.fn.hide,hide:function(m){if(i(m))return this._hide.apply(this,arguments);else{var k=h.apply(this,arguments);k[1].mode="hide";return this.effect.apply(this,k)}},__toggle:b.fn.toggle,toggle:function(m){if(i(m)||typeof m==="boolean"||b.isFunction(m))return this.__toggle.apply(this,arguments);else{var k=h.apply(this,arguments);k[1].mode="toggle";return this.effect.apply(this,k)}},cssUnit:function(m){var k=this.css(m), +n=[];b.each(["em","px","%","pt"],function(q,p){if(k.indexOf(p)>0)n=[parseFloat(k),p]});return n}});b.easing.jswing=b.easing.swing;b.extend(b.easing,{def:"easeOutQuad",swing:function(m,k,n,q,p){return b.easing[b.easing.def](m,k,n,q,p)},easeInQuad:function(m,k,n,q,p){return q*(k/=p)*k+n},easeOutQuad:function(m,k,n,q,p){return-q*(k/=p)*(k-2)+n},easeInOutQuad:function(m,k,n,q,p){if((k/=p/2)<1)return q/2*k*k+n;return-q/2*(--k*(k-2)-1)+n},easeInCubic:function(m,k,n,q,p){return q*(k/=p)*k*k+n},easeOutCubic:function(m, +k,n,q,p){return q*((k=k/p-1)*k*k+1)+n},easeInOutCubic:function(m,k,n,q,p){if((k/=p/2)<1)return q/2*k*k*k+n;return q/2*((k-=2)*k*k+2)+n},easeInQuart:function(m,k,n,q,p){return q*(k/=p)*k*k*k+n},easeOutQuart:function(m,k,n,q,p){return-q*((k=k/p-1)*k*k*k-1)+n},easeInOutQuart:function(m,k,n,q,p){if((k/=p/2)<1)return q/2*k*k*k*k+n;return-q/2*((k-=2)*k*k*k-2)+n},easeInQuint:function(m,k,n,q,p){return q*(k/=p)*k*k*k*k+n},easeOutQuint:function(m,k,n,q,p){return q*((k=k/p-1)*k*k*k*k+1)+n},easeInOutQuint:function(m, +k,n,q,p){if((k/=p/2)<1)return q/2*k*k*k*k*k+n;return q/2*((k-=2)*k*k*k*k+2)+n},easeInSine:function(m,k,n,q,p){return-q*Math.cos(k/p*(Math.PI/2))+q+n},easeOutSine:function(m,k,n,q,p){return q*Math.sin(k/p*(Math.PI/2))+n},easeInOutSine:function(m,k,n,q,p){return-q/2*(Math.cos(Math.PI*k/p)-1)+n},easeInExpo:function(m,k,n,q,p){return k==0?n:q*Math.pow(2,10*(k/p-1))+n},easeOutExpo:function(m,k,n,q,p){return k==p?n+q:q*(-Math.pow(2,-10*k/p)+1)+n},easeInOutExpo:function(m,k,n,q,p){if(k==0)return n;if(k== +p)return n+q;if((k/=p/2)<1)return q/2*Math.pow(2,10*(k-1))+n;return q/2*(-Math.pow(2,-10*--k)+2)+n},easeInCirc:function(m,k,n,q,p){return-q*(Math.sqrt(1-(k/=p)*k)-1)+n},easeOutCirc:function(m,k,n,q,p){return q*Math.sqrt(1-(k=k/p-1)*k)+n},easeInOutCirc:function(m,k,n,q,p){if((k/=p/2)<1)return-q/2*(Math.sqrt(1-k*k)-1)+n;return q/2*(Math.sqrt(1-(k-=2)*k)+1)+n},easeInElastic:function(m,k,n,q,p){var u=0,v=q;if(k==0)return n;if((k/=p)==1)return n+q;u||(u=p*0.3);if(v").css({position:"absolute",visibility:"visible",left:-j*(g/d),top:-i*(h/f)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:g/d,height:h/f,left:a.left+j*(g/d)+(c.options.mode=="show"?(j-Math.floor(d/2))*(g/d):0),top:a.top+i*(h/f)+(c.options.mode=="show"?(i-Math.floor(f/2))*(h/f):0),opacity:c.options.mode=="show"?0:1}).animate({left:a.left+j*(g/d)+(c.options.mode=="show"?0:(j-Math.floor(d/2))*(g/d)),top:a.top+ +i*(h/f)+(c.options.mode=="show"?0:(i-Math.floor(f/2))*(h/f)),opacity:c.options.mode=="show"?1:0},c.duration||500);setTimeout(function(){c.options.mode=="show"?e.css({visibility:"visible"}):e.css({visibility:"visible"}).hide();c.callback&&c.callback.apply(e[0]);e.dequeue();b("div.ui-effects-explode").remove()},c.duration||500)})}})(jQuery); +(function(b){b.effects.fade=function(c){return this.queue(function(){var f=b(this),d=b.effects.setMode(f,c.options.mode||"hide");f.animate({opacity:d},{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){c.callback&&c.callback.apply(this,arguments);f.dequeue()}})})}})(jQuery); +(function(b){b.effects.fold=function(c){return this.queue(function(){var f=b(this),d=["position","top","left"],e=b.effects.setMode(f,c.options.mode||"hide"),a=c.options.size||15,g=!!c.options.horizFirst,h=c.duration?c.duration/2:b.fx.speeds._default/2;b.effects.save(f,d);f.show();var i=b.effects.createWrapper(f).css({overflow:"hidden"}),j=e=="show"!=g,l=j?["width","height"]:["height","width"];j=j?[i.width(),i.height()]:[i.height(),i.width()];var o=/([0-9]+)%/.exec(a);if(o)a=parseInt(o[1],10)/100* +j[e=="hide"?0:1];if(e=="show")i.css(g?{height:0,width:a}:{height:a,width:0});g={};o={};g[l[0]]=e=="show"?j[0]:a;o[l[1]]=e=="show"?j[1]:0;i.animate(g,h,c.options.easing).animate(o,h,c.options.easing,function(){e=="hide"&&f.hide();b.effects.restore(f,d);b.effects.removeWrapper(f);c.callback&&c.callback.apply(f[0],arguments);f.dequeue()})})}})(jQuery); +(function(b){b.effects.highlight=function(c){return this.queue(function(){var f=b(this),d=["backgroundImage","backgroundColor","opacity"],e=b.effects.setMode(f,c.options.mode||"show"),a={backgroundColor:f.css("backgroundColor")};if(e=="hide")a.opacity=0;b.effects.save(f,d);f.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(a,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){e=="hide"&&f.hide();b.effects.restore(f,d);e=="show"&&!b.support.opacity&& +this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);f.dequeue()}})})}})(jQuery); +(function(b){b.effects.pulsate=function(c){return this.queue(function(){var f=b(this),d=b.effects.setMode(f,c.options.mode||"show");times=(c.options.times||5)*2-1;duration=c.duration?c.duration/2:b.fx.speeds._default/2;isVisible=f.is(":visible");animateTo=0;if(!isVisible){f.css("opacity",0).show();animateTo=1}if(d=="hide"&&isVisible||d=="show"&&!isVisible)times--;for(d=0;d').appendTo(document.body).addClass(c.options.className).css({top:e.top,left:e.left,height:f.innerHeight(),width:f.innerWidth(),position:"absolute"}).animate(d,c.duration,c.options.easing,function(){a.remove();c.callback&&c.callback.apply(f[0],arguments); +f.dequeue()})})}})(jQuery); +(function(b){b.widget("ui.accordion",{options:{active:0,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var c=this,f=c.options;c.running=0;c.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix");c.headers= +c.element.find(f.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){f.disabled||b(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){f.disabled||b(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){f.disabled||b(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){f.disabled||b(this).removeClass("ui-state-focus")});c.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"); +if(f.navigation){var d=c.element.find("a").filter(f.navigationFilter).eq(0);if(d.length){var e=d.closest(".ui-accordion-header");c.active=e.length?e:d.closest(".ui-accordion-content").prev()}}c.active=c._findActive(c.active||f.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");c.active.next().addClass("ui-accordion-content-active");c._createIcons();c.resize();c.element.attr("role","tablist");c.headers.attr("role","tab").bind("keydown.accordion", +function(a){return c._keydown(a)}).next().attr("role","tabpanel");c.headers.not(c.active||"").attr({"aria-expanded":"false",tabIndex:-1}).next().hide();c.active.length?c.active.attr({"aria-expanded":"true",tabIndex:0}):c.headers.eq(0).attr("tabIndex",0);b.browser.safari||c.headers.find("a").attr("tabIndex",-1);f.event&&c.headers.bind(f.event.split(" ").join(".accordion ")+".accordion",function(a){c._clickHandler.call(c,a,this);a.preventDefault()})},_createIcons:function(){var c=this.options;if(c.icons){b("").addClass("ui-icon "+ +c.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(c.icons.header).toggleClass(c.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var c=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabIndex"); +this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var f=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(c.autoHeight||c.fillHeight)f.css("height","");return b.Widget.prototype.destroy.call(this)},_setOption:function(c,f){b.Widget.prototype._setOption.apply(this,arguments);c=="active"&&this.activate(f);if(c=="icons"){this._destroyIcons(); +f&&this._createIcons()}if(c=="disabled")this.headers.add(this.headers.next())[f?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(c){if(!(this.options.disabled||c.altKey||c.ctrlKey)){var f=b.ui.keyCode,d=this.headers.length,e=this.headers.index(c.target),a=false;switch(c.keyCode){case f.RIGHT:case f.DOWN:a=this.headers[(e+1)%d];break;case f.LEFT:case f.UP:a=this.headers[(e-1+d)%d];break;case f.SPACE:case f.ENTER:this._clickHandler({target:c.target},c.target); +c.preventDefault()}if(a){b(c.target).attr("tabIndex",-1);b(a).attr("tabIndex",0);a.focus();return false}return true}},resize:function(){var c=this.options,f;if(c.fillSpace){if(b.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}f=this.element.parent().height();b.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){f-=b(this).outerHeight(true)});this.headers.next().each(function(){b(this).height(Math.max(0,f-b(this).innerHeight()+ +b(this).height()))}).css("overflow","auto")}else if(c.autoHeight){f=0;this.headers.next().each(function(){f=Math.max(f,b(this).height("").height())}).height(f)}return this},activate:function(c){this.options.active=c;c=this._findActive(c)[0];this._clickHandler({target:c},c);return this},_findActive:function(c){return c?typeof c==="number"?this.headers.filter(":eq("+c+")"):this.headers.not(this.headers.not(c)):c===false?b([]):this.headers.filter(":eq(0)")},_clickHandler:function(c,f){var d=this.options; +if(!d.disabled)if(c.target){c=b(c.currentTarget||f);f=c[0]===this.active[0];d.active=d.collapsible&&f?false:this.headers.index(c);if(!(this.running||!d.collapsible&&f)){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);if(!f){c.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected); +c.next().addClass("ui-accordion-content-active")}g=c.next();e=this.active.next();a={options:d,newHeader:f&&d.collapsible?b([]):c,oldHeader:this.active,newContent:f&&d.collapsible?b([]):g,oldContent:e};d=this.headers.index(this.active[0])>this.headers.index(c[0]);this.active=f?b([]):c;this._toggle(g,e,a,f,d)}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header); +this.active.next().addClass("ui-accordion-content-active");var e=this.active.next(),a={options:d,newHeader:b([]),oldHeader:d.active,newContent:b([]),oldContent:e},g=this.active=b([]);this._toggle(g,e,a)}},_toggle:function(c,f,d,e,a){var g=this,h=g.options;g.toShow=c;g.toHide=f;g.data=d;var i=function(){if(g)return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data);g.running=f.size()===0?c.size():f.size();if(h.animated){d={};d=h.collapsible&&e?{toShow:b([]),toHide:f,complete:i, +down:a,autoHeight:h.autoHeight||h.fillSpace}:{toShow:c,toHide:f,complete:i,down:a,autoHeight:h.autoHeight||h.fillSpace};if(!h.proxied)h.proxied=h.animated;if(!h.proxiedDuration)h.proxiedDuration=h.duration;h.animated=b.isFunction(h.proxied)?h.proxied(d):h.proxied;h.duration=b.isFunction(h.proxiedDuration)?h.proxiedDuration(d):h.proxiedDuration;e=b.ui.accordion.animations;var j=h.duration,l=h.animated;if(l&&!e[l]&&!b.easing[l])l="slide";e[l]||(e[l]=function(o){this.slide(o,{easing:l,duration:j||700})}); +e[l](d)}else{if(h.collapsible&&e)c.toggle();else{f.hide();c.show()}i(true)}f.prev().attr({"aria-expanded":"false",tabIndex:-1}).blur();c.prev().attr({"aria-expanded":"true",tabIndex:0}).focus()},_completed:function(c){this.running=c?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");this._trigger("change",null,this.data)}}});b.extend(b.ui.accordion,{version:"1.8.7",animations:{slide:function(c, +f){c=b.extend({easing:"swing",duration:300},c,f);if(c.toHide.size())if(c.toShow.size()){var d=c.toShow.css("overflow"),e=0,a={},g={},h;f=c.toShow;h=f[0].style.width;f.width(parseInt(f.parent().width(),10)-parseInt(f.css("paddingLeft"),10)-parseInt(f.css("paddingRight"),10)-(parseInt(f.css("borderLeftWidth"),10)||0)-(parseInt(f.css("borderRightWidth"),10)||0));b.each(["height","paddingTop","paddingBottom"],function(i,j){g[j]="hide";i=(""+b.css(c.toShow[0],j)).match(/^([\d+-.]+)(.*)$/);a[j]={value:i[1], +unit:i[2]||"px"}});c.toShow.css({height:0,overflow:"hidden"}).show();c.toHide.filter(":hidden").each(c.complete).end().filter(":visible").animate(g,{step:function(i,j){if(j.prop=="height")e=j.end-j.start===0?0:(j.now-j.start)/(j.end-j.start);c.toShow[0].style[j.prop]=e*a[j.prop].value+a[j.prop].unit},duration:c.duration,easing:c.easing,complete:function(){c.autoHeight||c.toShow.css("height","");c.toShow.css({width:h,overflow:d});c.complete()}})}else c.toHide.animate({height:"hide",paddingTop:"hide", +paddingBottom:"hide"},c);else c.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},c)},bounceslide:function(c){this.slide(c,{easing:c.down?"easeOutBounce":"swing",duration:c.down?1E3:200})}}})})(jQuery); +(function(b){b.widget("ui.autocomplete",{options:{appendTo:"body",delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},_create:function(){var c=this,f=this.element[0].ownerDocument,d;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(e){if(!(c.options.disabled||c.element.attr("readonly"))){d=false;var a=b.ui.keyCode;switch(e.keyCode){case a.PAGE_UP:c._move("previousPage", +e);break;case a.PAGE_DOWN:c._move("nextPage",e);break;case a.UP:c._move("previous",e);e.preventDefault();break;case a.DOWN:c._move("next",e);e.preventDefault();break;case a.ENTER:case a.NUMPAD_ENTER:if(c.menu.active){d=true;e.preventDefault()}case a.TAB:if(!c.menu.active)return;c.menu.select(e);break;case a.ESCAPE:c.element.val(c.term);c.close(e);break;default:clearTimeout(c.searching);c.searching=setTimeout(function(){if(c.term!=c.element.val()){c.selectedItem=null;c.search(null,e)}},c.options.delay); +break}}}).bind("keypress.autocomplete",function(e){if(d){d=false;e.preventDefault()}}).bind("focus.autocomplete",function(){if(!c.options.disabled){c.selectedItem=null;c.previous=c.element.val()}}).bind("blur.autocomplete",function(e){if(!c.options.disabled){clearTimeout(c.searching);c.closing=setTimeout(function(){c.close(e);c._change(e)},150)}});this._initSource();this.response=function(){return c._response.apply(c,arguments)};this.menu=b("
        ").addClass("ui-autocomplete").appendTo(b(this.options.appendTo|| +"body",f)[0]).mousedown(function(e){var a=c.menu.element[0];b(e.target).closest(".ui-menu-item").length||setTimeout(function(){b(document).one("mousedown",function(g){g.target!==c.element[0]&&g.target!==a&&!b.ui.contains(a,g.target)&&c.close()})},1);setTimeout(function(){clearTimeout(c.closing)},13)}).menu({focus:function(e,a){a=a.item.data("item.autocomplete");false!==c._trigger("focus",e,{item:a})&&/^key/.test(e.originalEvent.type)&&c.element.val(a.value)},selected:function(e,a){var g=a.item.data("item.autocomplete"), +h=c.previous;if(c.element[0]!==f.activeElement){c.element.focus();c.previous=h;setTimeout(function(){c.previous=h;c.selectedItem=g},1)}false!==c._trigger("select",e,{item:g})&&c.element.val(g.value);c.term=c.element.val();c.close(e);c.selectedItem=g},blur:function(){c.menu.element.is(":visible")&&c.element.val()!==c.term&&c.element.val(c.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");b.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup"); +this.menu.element.remove();b.Widget.prototype.destroy.call(this)},_setOption:function(c,f){b.Widget.prototype._setOption.apply(this,arguments);c==="source"&&this._initSource();if(c==="appendTo")this.menu.element.appendTo(b(f||"body",this.element[0].ownerDocument)[0])},_initSource:function(){var c=this,f,d;if(b.isArray(this.options.source)){f=this.options.source;this.source=function(e,a){a(b.ui.autocomplete.filter(f,e.term))}}else if(typeof this.options.source==="string"){d=this.options.source;this.source= +function(e,a){c.xhr&&c.xhr.abort();c.xhr=b.ajax({url:d,data:e,dataType:"json",success:function(g,h,i){i===c.xhr&&a(g);c.xhr=null},error:function(g){g===c.xhr&&a([]);c.xhr=null}})}}else this.source=this.options.source},search:function(c,f){c=c!=null?c:this.element.val();this.term=this.element.val();if(c.length").data("item.autocomplete",f).append(b("").text(f.label)).appendTo(c)},_move:function(c,f){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(c)||this.menu.last()&&/^next/.test(c)){this.element.val(this.term);this.menu.deactivate()}else this.menu[c](f);else this.search(null,f)},widget:function(){return this.menu.element}}); +b.extend(b.ui.autocomplete,{escapeRegex:function(c){return c.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(c,f){var d=new RegExp(b.ui.autocomplete.escapeRegex(f),"i");return b.grep(c,function(e){return d.test(e.label||e.value||e)})}})})(jQuery); +(function(b){b.widget("ui.menu",{_create:function(){var c=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(f){if(b(f.target).closest(".ui-menu-item a").length){f.preventDefault();c.select(f)}});this.refresh()},refresh:function(){var c=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex", +-1).mouseenter(function(f){c.activate(f,b(this).parent())}).mouseleave(function(){c.deactivate()})},activate:function(c,f){this.deactivate();if(this.hasScroll()){var d=f.offset().top-this.element.offset().top,e=this.element.attr("scrollTop"),a=this.element.height();if(d<0)this.element.attr("scrollTop",e+d);else d>=a&&this.element.attr("scrollTop",e+d-a+f.height())}this.active=f.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",c,{item:f})}, +deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");this._trigger("blur");this.active=null}},next:function(c){this.move("next",".ui-menu-item:first",c)},previous:function(c){this.move("prev",".ui-menu-item:last",c)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(c,f,d){if(this.active){c=this.active[c+"All"](".ui-menu-item").eq(0); +c.length?this.activate(d,c):this.activate(d,this.element.children(f))}else this.activate(d,this.element.children(f))},nextPage:function(c){if(this.hasScroll())if(!this.active||this.last())this.activate(c,this.element.children(".ui-menu-item:first"));else{var f=this.active.offset().top,d=this.element.height(),e=this.element.children(".ui-menu-item").filter(function(){var a=b(this).offset().top-f-d+b(this).height();return a<10&&a>-10});e.length||(e=this.element.children(".ui-menu-item:last"));this.activate(c, +e)}else this.activate(c,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(c){if(this.hasScroll())if(!this.active||this.first())this.activate(c,this.element.children(".ui-menu-item:last"));else{var f=this.active.offset().top,d=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var e=b(this).offset().top-f+d-b(this).height();return e<10&&e>-10});result.length||(result=this.element.children(".ui-menu-item:first")); +this.activate(c,result)}else this.activate(c,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()").addClass("ui-button-text").html(this.options.label).appendTo(e.empty()).text(),g=this.options.icons,h=g.primary&&g.secondary;if(g.primary||g.secondary){e.addClass("ui-button-text-icon"+(h?"s":g.primary?"-primary":"-secondary"));g.primary&&e.prepend("");g.secondary&&e.append("");if(!this.options.text){e.addClass(h?"ui-button-icons-only":"ui-button-icon-only").removeClass("ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary"); +this.hasTitle||e.attr("title",a)}}else e.addClass("ui-button-text-only")}}});b.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(e,a){e==="disabled"&&this.buttons.button("option",e,a);b.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end()}, +destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return b(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");b.Widget.prototype.destroy.call(this)}})})(jQuery); +(function(b,c){function f(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._inDialog=this._datepickerShowing=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass= +"ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su", +"Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,yearRange:"c-10:c+10",showOtherMonths:false,selectOtherMonths:false,showWeek:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10", +minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false};b.extend(this._defaults,this.regional[""]);this.dpDiv=b('
        ')}function d(a,g){b.extend(a,g);for(var h in g)if(g[h]== +null||g[h]==c)a[h]=g[h];return a}b.extend(b.ui,{datepicker:{version:"1.8.7"}});var e=(new Date).getTime();b.extend(f.prototype,{markerClassName:"hasDatepicker",log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){d(this._defaults,a||{});return this},_attachDatepicker:function(a,g){var h=null;for(var i in this._defaults){var j=a.getAttribute("date:"+i);if(j){h=h||{};try{h[i]=eval(j)}catch(l){h[i]=j}}}i=a.nodeName.toLowerCase(); +j=i=="div"||i=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var o=this._newInst(b(a),j);o.settings=b.extend({},g||{},h||{});if(i=="input")this._connectDatepicker(a,o);else j&&this._inlineDatepicker(a,o)},_newInst:function(a,g){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:g,dpDiv:!g?this.dpDiv:b('
        ')}}, +_connectDatepicker:function(a,g){var h=b(a);g.append=b([]);g.trigger=b([]);if(!h.hasClass(this.markerClassName)){this._attachments(h,g);h.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(i,j,l){g.settings[j]=l}).bind("getData.datepicker",function(i,j){return this._get(g,j)});this._autoSize(g);b.data(a,"datepicker",g)}},_attachments:function(a,g){var h=this._get(g,"appendText"),i=this._get(g,"isRTL");g.append&& +g.append.remove();if(h){g.append=b(''+h+"");a[i?"before":"after"](g.append)}a.unbind("focus",this._showDatepicker);g.trigger&&g.trigger.remove();h=this._get(g,"showOn");if(h=="focus"||h=="both")a.focus(this._showDatepicker);if(h=="button"||h=="both"){h=this._get(g,"buttonText");var j=this._get(g,"buttonImage");g.trigger=b(this._get(g,"buttonImageOnly")?b("").addClass(this._triggerClass).attr({src:j,alt:h,title:h}):b('').addClass(this._triggerClass).html(j== +""?h:b("").attr({src:j,alt:h,title:h})));a[i?"before":"after"](g.trigger);g.trigger.click(function(){b.datepicker._datepickerShowing&&b.datepicker._lastInput==a[0]?b.datepicker._hideDatepicker():b.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var g=new Date(2009,11,20),h=this._get(a,"dateFormat");if(h.match(/[DM]/)){var i=function(j){for(var l=0,o=0,m=0;ml){l=j[m].length;o=m}return o};g.setMonth(i(this._get(a, +h.match(/MM/)?"monthNames":"monthNamesShort")));g.setDate(i(this._get(a,h.match(/DD/)?"dayNames":"dayNamesShort"))+20-g.getDay())}a.input.attr("size",this._formatDate(a,g).length)}},_inlineDatepicker:function(a,g){var h=b(a);if(!h.hasClass(this.markerClassName)){h.addClass(this.markerClassName).append(g.dpDiv).bind("setData.datepicker",function(i,j,l){g.settings[j]=l}).bind("getData.datepicker",function(i,j){return this._get(g,j)});b.data(a,"datepicker",g);this._setDate(g,this._getDefaultDate(g), +true);this._updateDatepicker(g);this._updateAlternate(g);g.dpDiv.show()}},_dialogDatepicker:function(a,g,h,i,j){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=b('');this._dialogInput.keydown(this._doKeyDown);b("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};b.data(this._dialogInput[0],"datepicker",a)}d(a.settings,i||{}); +g=g&&g.constructor==Date?this._formatDate(a,g):g;this._dialogInput.val(g);this._pos=j?j.length?j:[j.pageX,j.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=h;this._inDialog=true;this.dpDiv.addClass(this._dialogClass); +this._showDatepicker(this._dialogInput[0]);b.blockUI&&b.blockUI(this.dpDiv);b.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var g=b(a),h=b.data(a,"datepicker");if(g.hasClass(this.markerClassName)){var i=a.nodeName.toLowerCase();b.removeData(a,"datepicker");if(i=="input"){h.append.remove();h.trigger.remove();g.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup", +this._doKeyUp)}else if(i=="div"||i=="span")g.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var g=b(a),h=b.data(a,"datepicker");if(g.hasClass(this.markerClassName)){var i=a.nodeName.toLowerCase();if(i=="input"){a.disabled=false;h.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(i=="div"||i=="span")g.children("."+this._inlineClass).children().removeClass("ui-state-disabled");this._disabledInputs=b.map(this._disabledInputs, +function(j){return j==a?null:j})}},_disableDatepicker:function(a){var g=b(a),h=b.data(a,"datepicker");if(g.hasClass(this.markerClassName)){var i=a.nodeName.toLowerCase();if(i=="input"){a.disabled=true;h.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(i=="div"||i=="span")g.children("."+this._inlineClass).children().addClass("ui-state-disabled");this._disabledInputs=b.map(this._disabledInputs,function(j){return j==a?null: +j});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var g=0;g-1}},_doKeyUp:function(a){a=b.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(b.datepicker.parseDate(b.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,b.datepicker._getFormatConfig(a))){b.datepicker._setDateFromField(a);b.datepicker._updateAlternate(a);b.datepicker._updateDatepicker(a)}}catch(g){b.datepicker.log(g)}return true}, +_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=b("input",a.parentNode)[0];if(!(b.datepicker._isDisabledDatepicker(a)||b.datepicker._lastInput==a)){var g=b.datepicker._getInst(a);b.datepicker._curInst&&b.datepicker._curInst!=g&&b.datepicker._curInst.dpDiv.stop(true,true);var h=b.datepicker._get(g,"beforeShow");d(g.settings,h?h.apply(a,[a,g]):{});g.lastVal=null;b.datepicker._lastInput=a;b.datepicker._setDateFromField(g);if(b.datepicker._inDialog)a.value="";if(!b.datepicker._pos){b.datepicker._pos= +b.datepicker._findPos(a);b.datepicker._pos[1]+=a.offsetHeight}var i=false;b(a).parents().each(function(){i|=b(this).css("position")=="fixed";return!i});if(i&&b.browser.opera){b.datepicker._pos[0]-=document.documentElement.scrollLeft;b.datepicker._pos[1]-=document.documentElement.scrollTop}h={left:b.datepicker._pos[0],top:b.datepicker._pos[1]};b.datepicker._pos=null;g.dpDiv.empty();g.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});b.datepicker._updateDatepicker(g);h=b.datepicker._checkOffset(g, +h,i);g.dpDiv.css({position:b.datepicker._inDialog&&b.blockUI?"static":i?"fixed":"absolute",display:"none",left:h.left+"px",top:h.top+"px"});if(!g.inline){h=b.datepicker._get(g,"showAnim");var j=b.datepicker._get(g,"duration"),l=function(){b.datepicker._datepickerShowing=true;var o=g.dpDiv.find("iframe.ui-datepicker-cover");if(o.length){var m=b.datepicker._getBorders(g.dpDiv);o.css({left:-m[0],top:-m[1],width:g.dpDiv.outerWidth(),height:g.dpDiv.outerHeight()})}};g.dpDiv.zIndex(b(a).zIndex()+1);b.effects&& +b.effects[h]?g.dpDiv.show(h,b.datepicker._get(g,"showOptions"),j,l):g.dpDiv[h||"show"](h?j:null,l);if(!h||!j)l();g.input.is(":visible")&&!g.input.is(":disabled")&&g.input.focus();b.datepicker._curInst=g}}},_updateDatepicker:function(a){var g=this,h=b.datepicker._getBorders(a.dpDiv);a.dpDiv.empty().append(this._generateHTML(a));var i=a.dpDiv.find("iframe.ui-datepicker-cover");i.length&&i.css({left:-h[0],top:-h[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()});a.dpDiv.find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout", +function(){b(this).removeClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&b(this).removeClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&b(this).removeClass("ui-datepicker-next-hover")}).bind("mouseover",function(){if(!g._isDisabledDatepicker(a.inline?a.dpDiv.parent()[0]:a.input[0])){b(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");b(this).addClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!= +-1&&b(this).addClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&b(this).addClass("ui-datepicker-next-hover")}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();h=this._getNumberOfMonths(a);i=h[1];i>1?a.dpDiv.addClass("ui-datepicker-multi-"+i).css("width",17*i+"em"):a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");a.dpDiv[(h[0]!=1||h[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a, +"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==b.datepicker._curInst&&b.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input.focus();if(a.yearshtml){var j=a.yearshtml;setTimeout(function(){j===a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);j=a.yearshtml=null},0)}},_getBorders:function(a){var g=function(h){return{thin:1,medium:2,thick:3}[h]||h};return[parseFloat(g(a.css("border-left-width"))),parseFloat(g(a.css("border-top-width")))]}, +_checkOffset:function(a,g,h){var i=a.dpDiv.outerWidth(),j=a.dpDiv.outerHeight(),l=a.input?a.input.outerWidth():0,o=a.input?a.input.outerHeight():0,m=document.documentElement.clientWidth+b(document).scrollLeft(),k=document.documentElement.clientHeight+b(document).scrollTop();g.left-=this._get(a,"isRTL")?i-l:0;g.left-=h&&g.left==a.input.offset().left?b(document).scrollLeft():0;g.top-=h&&g.top==a.input.offset().top+o?b(document).scrollTop():0;g.left-=Math.min(g.left,g.left+i>m&&m>i?Math.abs(g.left+i- +m):0);g.top-=Math.min(g.top,g.top+j>k&&k>j?Math.abs(j+o):0);return g},_findPos:function(a){for(var g=this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1);)a=a[g?"previousSibling":"nextSibling"];a=b(a).offset();return[a.left,a.top]},_hideDatepicker:function(a){var g=this._curInst;if(!(!g||a&&g!=b.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(g,"showAnim");var h=this._get(g,"duration"),i=function(){b.datepicker._tidyDialog(g);this._curInst=null};b.effects&&b.effects[a]? +g.dpDiv.hide(a,b.datepicker._get(g,"showOptions"),h,i):g.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?h:null,i);a||i();if(a=this._get(g,"onClose"))a.apply(g.input?g.input[0]:null,[g.input?g.input.val():"",g]);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(b.blockUI){b.unblockUI();b("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")}, +_checkExternalClick:function(a){if(b.datepicker._curInst){a=b(a.target);a[0].id!=b.datepicker._mainDivId&&a.parents("#"+b.datepicker._mainDivId).length==0&&!a.hasClass(b.datepicker.markerClassName)&&!a.hasClass(b.datepicker._triggerClass)&&b.datepicker._datepickerShowing&&!(b.datepicker._inDialog&&b.blockUI)&&b.datepicker._hideDatepicker()}},_adjustDate:function(a,g,h){a=b(a);var i=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(i,g+(h=="M"?this._get(i,"showCurrentAtPos"): +0),h);this._updateDatepicker(i)}},_gotoToday:function(a){a=b(a);var g=this._getInst(a[0]);if(this._get(g,"gotoCurrent")&&g.currentDay){g.selectedDay=g.currentDay;g.drawMonth=g.selectedMonth=g.currentMonth;g.drawYear=g.selectedYear=g.currentYear}else{var h=new Date;g.selectedDay=h.getDate();g.drawMonth=g.selectedMonth=h.getMonth();g.drawYear=g.selectedYear=h.getFullYear()}this._notifyChange(g);this._adjustDate(a)},_selectMonthYear:function(a,g,h){a=b(a);var i=this._getInst(a[0]);i._selectingMonthYear= +false;i["selected"+(h=="M"?"Month":"Year")]=i["draw"+(h=="M"?"Month":"Year")]=parseInt(g.options[g.selectedIndex].value,10);this._notifyChange(i);this._adjustDate(a)},_clickMonthYear:function(a){var g=this._getInst(b(a)[0]);g.input&&g._selectingMonthYear&&setTimeout(function(){g.input.focus()},0);g._selectingMonthYear=!g._selectingMonthYear},_selectDay:function(a,g,h,i){var j=b(a);if(!(b(i).hasClass(this._unselectableClass)||this._isDisabledDatepicker(j[0]))){j=this._getInst(j[0]);j.selectedDay=j.currentDay= +b("a",i).html();j.selectedMonth=j.currentMonth=g;j.selectedYear=j.currentYear=h;this._selectDate(a,this._formatDate(j,j.currentDay,j.currentMonth,j.currentYear))}},_clearDate:function(a){a=b(a);this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,g){a=this._getInst(b(a)[0]);g=g!=null?g:this._formatDate(a);a.input&&a.input.val(g);this._updateAlternate(a);var h=this._get(a,"onSelect");if(h)h.apply(a.input?a.input[0]:null,[g,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a); +else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var g=this._get(a,"altField");if(g){var h=this._get(a,"altFormat")||this._get(a,"dateFormat"),i=this._getDate(a),j=this.formatDate(h,i,this._getFormatConfig(a));b(g).each(function(){b(this).val(j)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var g= +a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((g-a)/864E5)/7)+1},parseDate:function(a,g,h){if(a==null||g==null)throw"Invalid arguments";g=typeof g=="object"?g.toString():g+"";if(g=="")return null;for(var i=(h?h.shortYearCutoff:null)||this._defaults.shortYearCutoff,j=(h?h.dayNamesShort:null)||this._defaults.dayNamesShort,l=(h?h.dayNames:null)||this._defaults.dayNames,o=(h?h.monthNamesShort:null)||this._defaults.monthNamesShort,m=(h?h.monthNames:null)||this._defaults.monthNames, +k=h=-1,n=-1,q=-1,p=false,u=function(K){(K=D+1-1){k=1;n=q;do{i=this._getDaysInMonth(h,k-1);if(n<=i)break;k++;n-=i}while(1)}I=this._daylightSavingAdjust(new Date(h,k-1,n));if(I.getFullYear()!=h||I.getMonth()+1!=k||I.getDate()!=n)throw"Invalid date";return I},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y", +RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,g,h){if(!g)return"";var i=(h?h.dayNamesShort:null)||this._defaults.dayNamesShort,j=(h?h.dayNames:null)||this._defaults.dayNames,l=(h?h.monthNamesShort:null)||this._defaults.monthNamesShort;h=(h?h.monthNames:null)||this._defaults.monthNames;var o=function(u){(u=p+112?a.getHours()+2:0);return a},_setDate:function(a,g,h){var i=!g,j=a.selectedMonth,l=a.selectedYear;g=this._restrictMinMax(a,this._determineDate(a,g,new Date));a.selectedDay= +a.currentDay=g.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=g.getMonth();a.drawYear=a.selectedYear=a.currentYear=g.getFullYear();if((j!=a.selectedMonth||l!=a.selectedYear)&&!h)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(i?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var g=new Date;g=this._daylightSavingAdjust(new Date(g.getFullYear(), +g.getMonth(),g.getDate()));var h=this._get(a,"isRTL"),i=this._get(a,"showButtonPanel"),j=this._get(a,"hideIfNoPrevNext"),l=this._get(a,"navigationAsDateFormat"),o=this._getNumberOfMonths(a),m=this._get(a,"showCurrentAtPos"),k=this._get(a,"stepMonths"),n=o[0]!=1||o[1]!=1,q=this._daylightSavingAdjust(!a.currentDay?new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),p=this._getMinMaxDate(a,"min"),u=this._getMinMaxDate(a,"max");m=a.drawMonth-m;var v=a.drawYear;if(m<0){m+=12;v--}if(u){var s= +this._daylightSavingAdjust(new Date(u.getFullYear(),u.getMonth()-o[0]*o[1]+1,u.getDate()));for(s=p&&ss;){m--;if(m<0){m=11;v--}}}a.drawMonth=m;a.drawYear=v;s=this._get(a,"prevText");s=!l?s:this.formatDate(s,this._daylightSavingAdjust(new Date(v,m-k,1)),this._getFormatConfig(a));s=this._canAdjustMonth(a,-1,v,m)?''+s+"":j?"":''+s+"";var x=this._get(a,"nextText");x=!l?x:this.formatDate(x,this._daylightSavingAdjust(new Date(v,m+k,1)),this._getFormatConfig(a));j=this._canAdjustMonth(a,+1,v,m)?''+x+"":j?"":''+x+"";k=this._get(a,"currentText");x=this._get(a,"gotoCurrent")&&a.currentDay?q:g;k=!l?k:this.formatDate(k,x,this._getFormatConfig(a));l=!a.inline?'":"";i=i?'
        '+(h?l:"")+(this._isInRange(a,x)?'":"")+(h?"":l)+"
        ":"";l=parseInt(this._get(a,"firstDay"),10);l=isNaN(l)?0:l;k=this._get(a,"showWeek");x=this._get(a,"dayNames");this._get(a,"dayNamesShort");var A=this._get(a,"dayNamesMin"),D= +this._get(a,"monthNames"),I=this._get(a,"monthNamesShort"),K=this._get(a,"beforeShowDay"),M=this._get(a,"showOtherMonths"),V=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var X=this._getDefaultDate(a),r="",w=0;w1)switch(z){case 0:C+=" ui-datepicker-group-first";E=" ui-corner-"+(h?"right":"left");break;case o[1]- +1:C+=" ui-datepicker-group-last";E=" ui-corner-"+(h?"left":"right");break;default:C+=" ui-datepicker-group-middle";E="";break}C+='">'}C+='
        '+(/all|left/.test(E)&&w==0?h?j:s:"")+(/all|right/.test(E)&&w==0?h?s:j:"")+this._generateMonthYearHeader(a,m,v,p,u,w>0||z>0,D,I)+'
        ';var H=k?'":"";for(E=0;E<7;E++){var B= +(E+l)%7;H+="=5?' class="ui-datepicker-week-end"':"")+'>'+A[B]+""}C+=H+"";H=this._getDaysInMonth(v,m);if(v==a.selectedYear&&m==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,H);E=(this._getFirstDayOfMonth(v,m)-l+7)%7;H=n?6:Math.ceil((E+H)/7);B=this._daylightSavingAdjust(new Date(v,m,1-E));for(var S=0;S";var L=!k?"":'";for(E=0;E<7;E++){var P= +K?K.apply(a.input?a.input[0]:null,[B]):[true,""],T=B.getMonth()!=m,O=T&&!V||!P[0]||p&&Bu;L+='";B.setDate(B.getDate()+1);B=this._daylightSavingAdjust(B)}C+= +L+""}m++;if(m>11){m=0;v++}C+="
        '+this._get(a,"weekHeader")+"
        '+this._get(a,"calculateWeek")(B)+""+(T&&!M?" ":O?''+B.getDate()+"":''+B.getDate()+"")+"
        "+(n?""+(o[0]>0&&z==o[1]-1?'
        ':""):"");y+=C}r+=y}r+=i+(b.browser.msie&&parseInt(b.browser.version,10)<7&&!a.inline?'':"");a._keyEvent=false;return r},_generateMonthYearHeader:function(a,g,h,i,j,l,o,m){var k=this._get(a,"changeMonth"),n=this._get(a,"changeYear"),q=this._get(a,"showMonthAfterYear"),p='
        ', +u="";if(l||!k)u+=''+o[g]+"";else{o=i&&i.getFullYear()==h;var v=j&&j.getFullYear()==h;u+='"}q||(p+=u+(l||!(k&& +n)?" ":""));a.yearshtml="";if(l||!n)p+=''+h+"";else{m=this._get(a,"yearRange").split(":");var x=(new Date).getFullYear();o=function(A){A=A.match(/c[+-].*/)?h+parseInt(A.substring(1),10):A.match(/[+-].*/)?x+parseInt(A,10):parseInt(A,10);return isNaN(A)?x:A};g=o(m[0]);m=Math.max(g,o(m[1]||""));g=i?Math.max(g,i.getFullYear()):g;m=j?Math.min(m,j.getFullYear()):m;for(a.yearshtml+='";if(b.browser.mozilla)p+='";else{p+=a.yearshtml;a.yearshtml=null}}p+=this._get(a,"yearSuffix");if(q)p+=(l||!(k&&n)?" ":"")+u;p+="
        ";return p},_adjustInstDate:function(a,g,h){var i= +a.drawYear+(h=="Y"?g:0),j=a.drawMonth+(h=="M"?g:0);g=Math.min(a.selectedDay,this._getDaysInMonth(i,j))+(h=="D"?g:0);i=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(i,j,g)));a.selectedDay=i.getDate();a.drawMonth=a.selectedMonth=i.getMonth();a.drawYear=a.selectedYear=i.getFullYear();if(h=="M"||h=="Y")this._notifyChange(a)},_restrictMinMax:function(a,g){var h=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");g=h&&ga?a:g},_notifyChange:function(a){var g=this._get(a, +"onChangeMonthYear");if(g)g.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,g){return this._determineDate(a,this._get(a,g+"Date"),null)},_getDaysInMonth:function(a,g){return 32-(new Date(a,g,32)).getDate()},_getFirstDayOfMonth:function(a,g){return(new Date(a,g,1)).getDay()},_canAdjustMonth:function(a,g,h,i){var j=this._getNumberOfMonths(a); +h=this._daylightSavingAdjust(new Date(h,i+(g<0?g:j[0]*j[1]),1));g<0&&h.setDate(this._getDaysInMonth(h.getFullYear(),h.getMonth()));return this._isInRange(a,h)},_isInRange:function(a,g){var h=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!h||g.getTime()>=h.getTime())&&(!a||g.getTime()<=a.getTime())},_getFormatConfig:function(a){var g=this._get(a,"shortYearCutoff");g=typeof g!="string"?g:(new Date).getFullYear()%100+parseInt(g,10);return{shortYearCutoff:g,dayNamesShort:this._get(a, +"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,g,h,i){if(!g){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}g=g?typeof g=="object"?g:this._daylightSavingAdjust(new Date(i,h,g)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),g,this._getFormatConfig(a))}});b.fn.datepicker= +function(a){if(!b.datepicker.initialized){b(document).mousedown(b.datepicker._checkExternalClick).find("body").append(b.datepicker.dpDiv);b.datepicker.initialized=true}var g=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return b.datepicker["_"+a+"Datepicker"].apply(b.datepicker,[this[0]].concat(g));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return b.datepicker["_"+a+"Datepicker"].apply(b.datepicker,[this[0]].concat(g)); +return this.each(function(){typeof a=="string"?b.datepicker["_"+a+"Datepicker"].apply(b.datepicker,[this].concat(g)):b.datepicker._attachDatepicker(this,a)})};b.datepicker=new f;b.datepicker.initialized=false;b.datepicker.uuid=(new Date).getTime();b.datepicker.version="1.8.7";window["DP_jQuery_"+e]=b})(jQuery); +(function(b,c){var f={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},d={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true};b.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:{my:"center",at:"center",collision:"fit",using:function(e){var a=b(this).css(e).offset().top;a<0&& +b(this).css("top",e.top-a)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var e=this,a=e.options,g=a.title||" ",h=b.ui.dialog.getTitleId(e.element),i=(e.uiDialog=b("
        ")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+a.dialogClass).css({zIndex:a.zIndex}).attr("tabIndex", +-1).css("outline",0).keydown(function(o){if(a.closeOnEscape&&o.keyCode&&o.keyCode===b.ui.keyCode.ESCAPE){e.close(o);o.preventDefault()}}).attr({role:"dialog","aria-labelledby":h}).mousedown(function(o){e.moveToTop(false,o)});e.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(i);var j=(e.uiDialogTitlebar=b("
        ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(i),l=b('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role", +"button").hover(function(){l.addClass("ui-state-hover")},function(){l.removeClass("ui-state-hover")}).focus(function(){l.addClass("ui-state-focus")}).blur(function(){l.removeClass("ui-state-focus")}).click(function(o){e.close(o);return false}).appendTo(j);(e.uiDialogTitlebarCloseText=b("")).addClass("ui-icon ui-icon-closethick").text(a.closeText).appendTo(l);b("").addClass("ui-dialog-title").attr("id",h).html(g).prependTo(j);if(b.isFunction(a.beforeclose)&&!b.isFunction(a.beforeClose))a.beforeClose= +a.beforeclose;j.find("*").add(j).disableSelection();a.draggable&&b.fn.draggable&&e._makeDraggable();a.resizable&&b.fn.resizable&&e._makeResizable();e._createButtons(a.buttons);e._isOpen=false;b.fn.bgiframe&&i.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){this.overlay&&this.overlay.destroy();this.uiDialog.hide();this.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");this.uiDialog.remove(); +this.originalTitle&&this.element.attr("title",this.originalTitle);return this},widget:function(){return this.uiDialog},close:function(e){var a=this,g,h;if(false!==a._trigger("beforeClose",e)){a.overlay&&a.overlay.destroy();a.uiDialog.unbind("keypress.ui-dialog");a._isOpen=false;if(a.options.hide)a.uiDialog.hide(a.options.hide,function(){a._trigger("close",e)});else{a.uiDialog.hide();a._trigger("close",e)}b.ui.dialog.overlay.resize();if(a.options.modal){g=0;b(".ui-dialog").each(function(){if(this!== +a.uiDialog[0]){h=b(this).css("z-index");isNaN(h)||(g=Math.max(g,h))}});b.ui.dialog.maxZ=g}return a}},isOpen:function(){return this._isOpen},moveToTop:function(e,a){var g=this.options;if(g.modal&&!e||!g.stack&&!g.modal)return this._trigger("focus",a);if(g.zIndex>b.ui.dialog.maxZ)b.ui.dialog.maxZ=g.zIndex;if(this.overlay){b.ui.dialog.maxZ+=1;this.overlay.$el.css("z-index",b.ui.dialog.overlay.maxZ=b.ui.dialog.maxZ)}e={scrollTop:this.element.attr("scrollTop"),scrollLeft:this.element.attr("scrollLeft")}; +b.ui.dialog.maxZ+=1;this.uiDialog.css("z-index",b.ui.dialog.maxZ);this.element.attr(e);this._trigger("focus",a);return this},open:function(){if(!this._isOpen){var e=this.options,a=this.uiDialog;this.overlay=e.modal?new b.ui.dialog.overlay(this):null;this._size();this._position(e.position);a.show(e.show);this.moveToTop(true);e.modal&&a.bind("keypress.ui-dialog",function(g){if(g.keyCode===b.ui.keyCode.TAB){var h=b(":tabbable",this),i=h.filter(":first");h=h.filter(":last");if(g.target===h[0]&&!g.shiftKey){i.focus(1); +return false}else if(g.target===i[0]&&g.shiftKey){h.focus(1);return false}}});b(this.element.find(":tabbable").get().concat(a.find(".ui-dialog-buttonpane :tabbable").get().concat(a.get()))).eq(0).focus();this._isOpen=true;this._trigger("open");return this}},_createButtons:function(e){var a=this,g=false,h=b("
        ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),i=b("
        ").addClass("ui-dialog-buttonset").appendTo(h);a.uiDialog.find(".ui-dialog-buttonpane").remove(); +typeof e==="object"&&e!==null&&b.each(e,function(){return!(g=true)});if(g){b.each(e,function(j,l){l=b.isFunction(l)?{click:l,text:j}:l;j=b('').attr(l,true).unbind("click").click(function(){l.click.apply(a.element[0],arguments)}).appendTo(i);b.fn.button&&j.button()});h.appendTo(a.uiDialog)}},_makeDraggable:function(){function e(j){return{position:j.position,offset:j.offset}}var a=this,g=a.options,h=b(document),i;a.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close", +handle:".ui-dialog-titlebar",containment:"document",start:function(j,l){i=g.height==="auto"?"auto":b(this).height();b(this).height(b(this).height()).addClass("ui-dialog-dragging");a._trigger("dragStart",j,e(l))},drag:function(j,l){a._trigger("drag",j,e(l))},stop:function(j,l){g.position=[l.position.left-h.scrollLeft(),l.position.top-h.scrollTop()];b(this).removeClass("ui-dialog-dragging").height(i);a._trigger("dragStop",j,e(l));b.ui.dialog.overlay.resize()}})},_makeResizable:function(e){function a(j){return{originalPosition:j.originalPosition, +originalSize:j.originalSize,position:j.position,size:j.size}}e=e===c?this.options.resizable:e;var g=this,h=g.options,i=g.uiDialog.css("position");e=typeof e==="string"?e:"n,e,s,w,se,sw,ne,nw";g.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:g.element,maxWidth:h.maxWidth,maxHeight:h.maxHeight,minWidth:h.minWidth,minHeight:g._minHeight(),handles:e,start:function(j,l){b(this).addClass("ui-dialog-resizing");g._trigger("resizeStart",j,a(l))},resize:function(j,l){g._trigger("resize", +j,a(l))},stop:function(j,l){b(this).removeClass("ui-dialog-resizing");h.height=b(this).height();h.width=b(this).width();g._trigger("resizeStop",j,a(l));b.ui.dialog.overlay.resize()}}).css("position",i).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var e=this.options;return e.height==="auto"?e.minHeight:Math.min(e.minHeight,e.height)},_position:function(e){var a=[],g=[0,0],h;if(e){if(typeof e==="string"||typeof e==="object"&&"0"in e){a=e.split?e.split(" "): +[e[0],e[1]];if(a.length===1)a[1]=a[0];b.each(["left","top"],function(i,j){if(+a[i]===a[i]){g[i]=a[i];a[i]=j}});e={my:a.join(" "),at:a.join(" "),offset:g.join(" ")}}e=b.extend({},b.ui.dialog.prototype.options.position,e)}else e=b.ui.dialog.prototype.options.position;(h=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(b.extend({of:window},e));h||this.uiDialog.hide()},_setOptions:function(e){var a=this,g={},h=false;b.each(e,function(i,j){a._setOption(i,j); +if(i in f)h=true;if(i in d)g[i]=j});h&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",g)},_setOption:function(e,a){var g=this.uiDialog;switch(e){case "beforeclose":e="beforeClose";break;case "buttons":this._createButtons(a);break;case "closeText":this.uiDialogTitlebarCloseText.text(""+a);break;case "dialogClass":g.removeClass(this.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+a);break;case "disabled":a?g.addClass("ui-dialog-disabled"): +g.removeClass("ui-dialog-disabled");break;case "draggable":var h=g.is(":data(draggable)");h&&!a&&g.draggable("destroy");!h&&a&&this._makeDraggable();break;case "position":this._position(a);break;case "resizable":(h=g.is(":data(resizable)"))&&!a&&g.resizable("destroy");h&&typeof a==="string"&&g.resizable("option","handles",a);!h&&a!==false&&this._makeResizable(a);break;case "title":b(".ui-dialog-title",this.uiDialogTitlebar).html(""+(a||" "));break}b.Widget.prototype._setOption.apply(this,arguments)}, +_size:function(){var e=this.options,a,g,h=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(e.minWidth>e.width)e.width=e.minWidth;a=this.uiDialog.css({height:"auto",width:e.width}).height();g=Math.max(0,e.minHeight-a);if(e.height==="auto")if(b.support.minHeight)this.element.css({minHeight:g,height:"auto"});else{this.uiDialog.show();e=this.element.css("height","auto").height();h||this.uiDialog.hide();this.element.height(Math.max(e,g))}else this.element.height(Math.max(e.height- +a,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}});b.extend(b.ui.dialog,{version:"1.8.7",uuid:0,maxZ:0,getTitleId:function(e){e=e.attr("id");if(!e){this.uuid+=1;e=this.uuid}return"ui-dialog-title-"+e},overlay:function(e){this.$el=b.ui.dialog.overlay.create(e)}});b.extend(b.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:b.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(e){return e+".dialog-overlay"}).join(" "), +create:function(e){if(this.instances.length===0){setTimeout(function(){b.ui.dialog.overlay.instances.length&&b(document).bind(b.ui.dialog.overlay.events,function(g){if(b(g.target).zIndex()").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(), +height:this.height()});b.fn.bgiframe&&a.bgiframe();this.instances.push(a);return a},destroy:function(e){var a=b.inArray(e,this.instances);a!=-1&&this.oldInstances.push(this.instances.splice(a,1)[0]);this.instances.length===0&&b([document,window]).unbind(".dialog-overlay");e.remove();var g=0;b.each(this.instances,function(){g=Math.max(g,this.css("z-index"))});this.maxZ=g},height:function(){var e,a;if(b.browser.msie&&b.browser.version<7){e=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight); +a=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return e0?a.left-h:Math.max(a.left-g.collisionPosition.left,a.left)},top:function(a,g){var h=b(window);h=g.collisionPosition.top+g.collisionHeight-h.height()-h.scrollTop();a.top=h>0?a.top-h:Math.max(a.top-g.collisionPosition.top,a.top)}},flip:{left:function(a,g){if(g.at[0]!=="center"){var h=b(window);h=g.collisionPosition.left+g.collisionWidth-h.width()-h.scrollLeft();var i=g.my[0]==="left"?-g.elemWidth:g.my[0]==="right"?g.elemWidth:0,j=g.at[0]==="left"?g.targetWidth:-g.targetWidth,l=-2*g.offset[0];a.left+= +g.collisionPosition.left<0?i+j+l:h>0?i+j+l:0}},top:function(a,g){if(g.at[1]!=="center"){var h=b(window);h=g.collisionPosition.top+g.collisionHeight-h.height()-h.scrollTop();var i=g.my[1]==="top"?-g.elemHeight:g.my[1]==="bottom"?g.elemHeight:0,j=g.at[1]==="top"?g.targetHeight:-g.targetHeight,l=-2*g.offset[1];a.top+=g.collisionPosition.top<0?i+j+l:h>0?i+j+l:0}}}};if(!b.offset.setOffset){b.offset.setOffset=function(a,g){if(/static/.test(b.curCSS(a,"position")))a.style.position="relative";var h=b(a), +i=h.offset(),j=parseInt(b.curCSS(a,"top",true),10)||0,l=parseInt(b.curCSS(a,"left",true),10)||0;i={top:g.top-i.top+j,left:g.left-i.left+l};"using"in g?g.using.call(a,i):h.css(i)};b.fn.offset=function(a){var g=this[0];if(!g||!g.ownerDocument)return null;if(a)return this.each(function(){b.offset.setOffset(this,a)});return e.call(this)}}})(jQuery); +(function(b,c){b.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=b("
        ").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"); +this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(f){if(f===c)return this._value();this._setOption("value",f);return this},_setOption:function(f,d){if(f==="value"){this.options.value=d;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var f=this.options.value;if(typeof f!=="number")f=0;return Math.min(this.options.max,Math.max(this.min,f))},_percentage:function(){return 100* +this._value()/this.options.max},_refreshValue:function(){var f=this.value(),d=this._percentage();if(this.oldValue!==f){this.oldValue=f;this._trigger("change")}this.valueDiv.toggleClass("ui-corner-right",f===this.options.max).width(d.toFixed(0)+"%");this.element.attr("aria-valuenow",f)}});b.extend(b.ui.progressbar,{version:"1.8.7"})})(jQuery); +(function(b){b.widget("ui.slider",b.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var c=this,f=this.options;this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all");f.disabled&&this.element.addClass("ui-slider-disabled ui-disabled"); +this.range=b([]);if(f.range){if(f.range===true){this.range=b("
        ");if(!f.values)f.values=[this._valueMin(),this._valueMin()];if(f.values.length&&f.values.length!==2)f.values=[f.values[0],f.values[0]]}else this.range=b("
        ");this.range.appendTo(this.element).addClass("ui-slider-range");if(f.range==="min"||f.range==="max")this.range.addClass("ui-slider-range-"+f.range);this.range.addClass("ui-widget-header")}b(".ui-slider-handle",this.element).length===0&&b("").appendTo(this.element).addClass("ui-slider-handle"); +if(f.values&&f.values.length)for(;b(".ui-slider-handle",this.element).length").appendTo(this.element).addClass("ui-slider-handle");this.handles=b(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(d){d.preventDefault()}).hover(function(){f.disabled||b(this).addClass("ui-state-hover")},function(){b(this).removeClass("ui-state-hover")}).focus(function(){if(f.disabled)b(this).blur(); +else{b(".ui-slider .ui-state-focus").removeClass("ui-state-focus");b(this).addClass("ui-state-focus")}}).blur(function(){b(this).removeClass("ui-state-focus")});this.handles.each(function(d){b(this).data("index.ui-slider-handle",d)});this.handles.keydown(function(d){var e=true,a=b(this).data("index.ui-slider-handle"),g,h,i;if(!c.options.disabled){switch(d.keyCode){case b.ui.keyCode.HOME:case b.ui.keyCode.END:case b.ui.keyCode.PAGE_UP:case b.ui.keyCode.PAGE_DOWN:case b.ui.keyCode.UP:case b.ui.keyCode.RIGHT:case b.ui.keyCode.DOWN:case b.ui.keyCode.LEFT:e= +false;if(!c._keySliding){c._keySliding=true;b(this).addClass("ui-state-active");g=c._start(d,a);if(g===false)return}break}i=c.options.step;g=c.options.values&&c.options.values.length?(h=c.values(a)):(h=c.value());switch(d.keyCode){case b.ui.keyCode.HOME:h=c._valueMin();break;case b.ui.keyCode.END:h=c._valueMax();break;case b.ui.keyCode.PAGE_UP:h=c._trimAlignValue(g+(c._valueMax()-c._valueMin())/5);break;case b.ui.keyCode.PAGE_DOWN:h=c._trimAlignValue(g-(c._valueMax()-c._valueMin())/5);break;case b.ui.keyCode.UP:case b.ui.keyCode.RIGHT:if(g=== +c._valueMax())return;h=c._trimAlignValue(g+i);break;case b.ui.keyCode.DOWN:case b.ui.keyCode.LEFT:if(g===c._valueMin())return;h=c._trimAlignValue(g-i);break}c._slide(d,a,h);return e}}).keyup(function(d){var e=b(this).data("index.ui-slider-handle");if(c._keySliding){c._keySliding=false;c._stop(d,e);c._change(d,e);b(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider"); +this._mouseDestroy();return this},_mouseCapture:function(c){var f=this.options,d,e,a,g,h;if(f.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();d=this._normValueFromMouse({x:c.pageX,y:c.pageY});e=this._valueMax()-this._valueMin()+1;g=this;this.handles.each(function(i){var j=Math.abs(d-g.values(i));if(e>j){e=j;a=b(this);h=i}});if(f.range===true&&this.values(1)===f.min){h+=1;a=b(this.handles[h])}if(this._start(c, +h)===false)return false;this._mouseSliding=true;g._handleIndex=h;a.addClass("ui-state-active").focus();f=a.offset();this._clickOffset=!b(c.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:c.pageX-f.left-a.width()/2,top:c.pageY-f.top-a.height()/2-(parseInt(a.css("borderTopWidth"),10)||0)-(parseInt(a.css("borderBottomWidth"),10)||0)+(parseInt(a.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(c,h,d);return this._animateOff=true},_mouseStart:function(){return true}, +_mouseDrag:function(c){var f=this._normValueFromMouse({x:c.pageX,y:c.pageY});this._slide(c,this._handleIndex,f);return false},_mouseStop:function(c){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(c,this._handleIndex);this._change(c,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(c){var f; +if(this.orientation==="horizontal"){f=this.elementSize.width;c=c.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{f=this.elementSize.height;c=c.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}f=c/f;if(f>1)f=1;if(f<0)f=0;if(this.orientation==="vertical")f=1-f;c=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+f*c)},_start:function(c,f){var d={handle:this.handles[f],value:this.value()};if(this.options.values&&this.options.values.length){d.value= +this.values(f);d.values=this.values()}return this._trigger("start",c,d)},_slide:function(c,f,d){var e;if(this.options.values&&this.options.values.length){e=this.values(f?0:1);if(this.options.values.length===2&&this.options.range===true&&(f===0&&d>e||f===1&&d1){this.options.values[c]=this._trimAlignValue(f);this._refreshValue();this._change(null,c)}if(arguments.length)if(b.isArray(arguments[0])){d=this.options.values;e=arguments[0];for(a=0;a=this._valueMax())return this._valueMax();var f=this.options.step>0?this.options.step:1,d=(c-this._valueMin())%f;alignValue=c-d;if(Math.abs(d)*2>=f)alignValue+=d>0?f:-f;return parseFloat(alignValue.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max}, +_refreshValue:function(){var c=this.options.range,f=this.options,d=this,e=!this._animateOff?f.animate:false,a,g={},h,i,j,l;if(this.options.values&&this.options.values.length)this.handles.each(function(o){a=(d.values(o)-d._valueMin())/(d._valueMax()-d._valueMin())*100;g[d.orientation==="horizontal"?"left":"bottom"]=a+"%";b(this).stop(1,1)[e?"animate":"css"](g,f.animate);if(d.options.range===true)if(d.orientation==="horizontal"){if(o===0)d.range.stop(1,1)[e?"animate":"css"]({left:a+"%"},f.animate); +if(o===1)d.range[e?"animate":"css"]({width:a-h+"%"},{queue:false,duration:f.animate})}else{if(o===0)d.range.stop(1,1)[e?"animate":"css"]({bottom:a+"%"},f.animate);if(o===1)d.range[e?"animate":"css"]({height:a-h+"%"},{queue:false,duration:f.animate})}h=a});else{i=this.value();j=this._valueMin();l=this._valueMax();a=l!==j?(i-j)/(l-j)*100:0;g[d.orientation==="horizontal"?"left":"bottom"]=a+"%";this.handle.stop(1,1)[e?"animate":"css"](g,f.animate);if(c==="min"&&this.orientation==="horizontal")this.range.stop(1, +1)[e?"animate":"css"]({width:a+"%"},f.animate);if(c==="max"&&this.orientation==="horizontal")this.range[e?"animate":"css"]({width:100-a+"%"},{queue:false,duration:f.animate});if(c==="min"&&this.orientation==="vertical")this.range.stop(1,1)[e?"animate":"css"]({height:a+"%"},f.animate);if(c==="max"&&this.orientation==="vertical")this.range[e?"animate":"css"]({height:100-a+"%"},{queue:false,duration:f.animate})}}});b.extend(b.ui.slider,{version:"1.8.7"})})(jQuery); +(function(b,c){function f(){return++e}function d(){return++a}var e=0,a=0;b.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"
        ",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
      • #{label}
      • "},_create:function(){this._tabify(true)},_setOption:function(g,h){if(g=="selected")this.options.collapsible&& +h==this.options.selected||this.select(h);else{this.options[g]=h;this._tabify()}},_tabId:function(g){return g.title&&g.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+f()},_sanitizeSelector:function(g){return g.replace(/:/g,"\\:")},_cookie:function(){var g=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+d());return b.cookie.apply(null,[g].concat(b.makeArray(arguments)))},_ui:function(g,h){return{tab:g,panel:h,index:this.anchors.index(g)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var g= +b(this);g.html(g.data("label.tabs")).removeData("label.tabs")})},_tabify:function(g){function h(v,s){v.css("display","");!b.support.opacity&&s.opacity&&v[0].style.removeAttribute("filter")}var i=this,j=this.options,l=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=b(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return b("a",this)[0]});this.panels=b([]);this.anchors.each(function(v,s){var x=b(s).attr("href"),A=x.split("#")[0],D;if(A&&(A===location.toString().split("#")[0]|| +(D=b("base")[0])&&A===D.href)){x=s.hash;s.href=x}if(l.test(x))i.panels=i.panels.add(i.element.find(i._sanitizeSelector(x)));else if(x&&x!=="#"){b.data(s,"href.tabs",x);b.data(s,"load.tabs",x.replace(/#.*$/,""));x=i._tabId(s);s.href="#"+x;s=i.element.find("#"+x);if(!s.length){s=b(j.panelTemplate).attr("id",x).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(i.panels[v-1]||i.list);s.data("destroy.tabs",true)}i.panels=i.panels.add(s)}else j.disabled.push(v)});if(g){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); +this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(j.selected===c){location.hash&&this.anchors.each(function(v,s){if(s.hash==location.hash){j.selected=v;return false}});if(typeof j.selected!=="number"&&j.cookie)j.selected=parseInt(i._cookie(),10);if(typeof j.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)j.selected= +this.lis.index(this.lis.filter(".ui-tabs-selected"));j.selected=j.selected||(this.lis.length?0:-1)}else if(j.selected===null)j.selected=-1;j.selected=j.selected>=0&&this.anchors[j.selected]||j.selected<0?j.selected:0;j.disabled=b.unique(j.disabled.concat(b.map(this.lis.filter(".ui-state-disabled"),function(v){return i.lis.index(v)}))).sort();b.inArray(j.selected,j.disabled)!=-1&&j.disabled.splice(b.inArray(j.selected,j.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); +if(j.selected>=0&&this.anchors.length){i.element.find(i._sanitizeSelector(i.anchors[j.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(j.selected).addClass("ui-tabs-selected ui-state-active");i.element.queue("tabs",function(){i._trigger("show",null,i._ui(i.anchors[j.selected],i.element.find(i._sanitizeSelector(i.anchors[j.selected].hash))))});this.load(j.selected)}b(window).bind("unload",function(){i.lis.add(i.anchors).unbind(".tabs");i.lis=i.anchors=i.panels=null})}else j.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")); +this.element[j.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");j.cookie&&this._cookie(j.selected,j.cookie);g=0;for(var o;o=this.lis[g];g++)b(o)[b.inArray(g,j.disabled)!=-1&&!b(o).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");j.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(j.event!=="mouseover"){var m=function(v,s){s.is(":not(.ui-state-disabled)")&&s.addClass("ui-state-"+v)},k=function(v,s){s.removeClass("ui-state-"+ +v)};this.lis.bind("mouseover.tabs",function(){m("hover",b(this))});this.lis.bind("mouseout.tabs",function(){k("hover",b(this))});this.anchors.bind("focus.tabs",function(){m("focus",b(this).closest("li"))});this.anchors.bind("blur.tabs",function(){k("focus",b(this).closest("li"))})}var n,q;if(j.fx)if(b.isArray(j.fx)){n=j.fx[0];q=j.fx[1]}else n=q=j.fx;var p=q?function(v,s){b(v).closest("li").addClass("ui-tabs-selected ui-state-active");s.hide().removeClass("ui-tabs-hide").animate(q,q.duration||"normal", +function(){h(s,q);i._trigger("show",null,i._ui(v,s[0]))})}:function(v,s){b(v).closest("li").addClass("ui-tabs-selected ui-state-active");s.removeClass("ui-tabs-hide");i._trigger("show",null,i._ui(v,s[0]))},u=n?function(v,s){s.animate(n,n.duration||"normal",function(){i.lis.removeClass("ui-tabs-selected ui-state-active");s.addClass("ui-tabs-hide");h(s,n);i.element.dequeue("tabs")})}:function(v,s){i.lis.removeClass("ui-tabs-selected ui-state-active");s.addClass("ui-tabs-hide");i.element.dequeue("tabs")}; +this.anchors.bind(j.event+".tabs",function(){var v=this,s=b(v).closest("li"),x=i.panels.filter(":not(.ui-tabs-hide)"),A=i.element.find(i._sanitizeSelector(v.hash));if(s.hasClass("ui-tabs-selected")&&!j.collapsible||s.hasClass("ui-state-disabled")||s.hasClass("ui-state-processing")||i.panels.filter(":animated").length||i._trigger("select",null,i._ui(this,A[0]))===false){this.blur();return false}j.selected=i.anchors.index(this);i.abort();if(j.collapsible)if(s.hasClass("ui-tabs-selected")){j.selected= +-1;j.cookie&&i._cookie(j.selected,j.cookie);i.element.queue("tabs",function(){u(v,x)}).dequeue("tabs");this.blur();return false}else if(!x.length){j.cookie&&i._cookie(j.selected,j.cookie);i.element.queue("tabs",function(){p(v,A)});i.load(i.anchors.index(this));this.blur();return false}j.cookie&&i._cookie(j.selected,j.cookie);if(A.length){x.length&&i.element.queue("tabs",function(){u(v,x)});i.element.queue("tabs",function(){p(v,A)});i.load(i.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier."; +b.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(g){if(typeof g=="string")g=this.anchors.index(this.anchors.filter("[href$="+g+"]"));return g},destroy:function(){var g=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var h= +b.data(this,"href.tabs");if(h)this.href=h;var i=b(this).unbind(".tabs");b.each(["href","load","cache"],function(j,l){i.removeData(l+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){b.data(this,"destroy.tabs")?b(this).remove():b(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});g.cookie&&this._cookie(null,g.cookie);return this},add:function(g, +h,i){if(i===c)i=this.anchors.length;var j=this,l=this.options;h=b(l.tabTemplate.replace(/#\{href\}/g,g).replace(/#\{label\}/g,h));g=!g.indexOf("#")?g.replace("#",""):this._tabId(b("a",h)[0]);h.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var o=j.element.find("#"+g);o.length||(o=b(l.panelTemplate).attr("id",g).data("destroy.tabs",true));o.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(i>=this.lis.length){h.appendTo(this.list);o.appendTo(this.list[0].parentNode)}else{h.insertBefore(this.lis[i]); +o.insertBefore(this.panels[i])}l.disabled=b.map(l.disabled,function(m){return m>=i?++m:m});this._tabify();if(this.anchors.length==1){l.selected=0;h.addClass("ui-tabs-selected ui-state-active");o.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){j._trigger("show",null,j._ui(j.anchors[0],j.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[i],this.panels[i]));return this},remove:function(g){g=this._getIndex(g);var h=this.options,i=this.lis.eq(g).remove(),j=this.panels.eq(g).remove(); +if(i.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(g+(g+1=g?--l:l});this._tabify();this._trigger("remove",null,this._ui(i.find("a")[0],j[0]));return this},enable:function(g){g=this._getIndex(g);var h=this.options;if(b.inArray(g,h.disabled)!=-1){this.lis.eq(g).removeClass("ui-state-disabled");h.disabled=b.grep(h.disabled,function(i){return i!=g});this._trigger("enable",null, +this._ui(this.anchors[g],this.panels[g]));return this}},disable:function(g){g=this._getIndex(g);var h=this.options;if(g!=h.selected){this.lis.eq(g).addClass("ui-state-disabled");h.disabled.push(g);h.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[g],this.panels[g]))}return this},select:function(g){g=this._getIndex(g);if(g==-1)if(this.options.collapsible&&this.options.selected!=-1)g=this.options.selected;else return this;this.anchors.eq(g).trigger(this.options.event+".tabs");return this}, +load:function(g){g=this._getIndex(g);var h=this,i=this.options,j=this.anchors.eq(g)[0],l=b.data(j,"load.tabs");this.abort();if(!l||this.element.queue("tabs").length!==0&&b.data(j,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(g).addClass("ui-state-processing");if(i.spinner){var o=b("span",j);o.data("label.tabs",o.html()).html(i.spinner)}this.xhr=b.ajax(b.extend({},i.ajaxOptions,{url:l,success:function(m,k){h.element.find(h._sanitizeSelector(j.hash)).html(m);h._cleanup();i.cache&&b.data(j, +"cache.tabs",true);h._trigger("load",null,h._ui(h.anchors[g],h.panels[g]));try{i.ajaxOptions.success(m,k)}catch(n){}},error:function(m,k){h._cleanup();h._trigger("load",null,h._ui(h.anchors[g],h.panels[g]));try{i.ajaxOptions.error(m,k,g,j)}catch(n){}}}));h.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this}, +url:function(g,h){this.anchors.eq(g).removeData("cache.tabs").data("load.tabs",h);return this},length:function(){return this.anchors.length}});b.extend(b.ui.tabs,{version:"1.8.7"});b.extend(b.ui.tabs.prototype,{rotation:null,rotate:function(g,h){var i=this,j=this.options,l=i._rotate||(i._rotate=function(o){clearTimeout(i.rotation);i.rotation=setTimeout(function(){var m=j.selected;i.select(++m-1;window.hideShare=s;window.closeShare=x;window.updateChromeStatus=A;window.showStatus=I;l.sub("shareState",V);window.showStatusShared=X;window.handleCaptcha=r;delete O.newTimerV1; +delete O.newTimerV2;if(d=O.newTimerV3){d=JSON.parse(d);if((new Date).getTime()-d<2592E5)P=true}else{O.newTimerV3=(new Date).getTime();P=true}c(function(){B.prefs.system&&c(document.documentElement).addClass(B.prefs.system);if(B.ui==="sidebar"){c("#panelHeader").text("");c("#closeLink").addClass("hidden")}P&&c("#newLink").removeClass("hidden");l.sub("sendMessage",function(J){F(J)});S=c("body");S.delegate("#statusAuthButton, .statusErrorButton","click",function(){M()}).delegate(".statusErrorCloseButton", +"click",function(){M()}).delegate(".statusResetErrorButton","click",function(){location.reload()}).delegate("nav .close","click",x);c("#authOkButton").click(function(){a(L.domain,false,function(J){if(J){o.clear();o()}else I("statusOAuthFailed")})});c("#captchaButton").click(function(){M();c("#clickBlock").removeClass("hidden");L.HumanVerification=c("#captcha").attr("value");L.HumanVerificationImage=c("#captchaImage").attr("src");F(L)});o.onChange();if(m.type==="memory")I("statusEnableLocalStorage"); +else{new q({options:B},c(".sharebox")[0],"prepend");o(C,function(J,N,Q){J.status===503?I("statusServerBusyClose"):I("statusServerError",Q)});var G=(new Date).getTime();window.addEventListener("hashchange",function(){if((new Date).getTime()-G>864E5)location.reload(true);else{B=n();l.pub("getShareState",null);l.pub("optionsChanged",B);y();o();l.pub("sizeToContent")}},false)}})}); +define("widgets/AccountPanelLinkedIn",["blade/object","./AccountPanel","jquery"],function(b,c,f){return b(c,null,function(d){return{onCreate:function(){d(this,"onCreate",arguments);this.strings.shareTypeLabel="visible to"},onRender:function(){d(this,"onRender",arguments);f('option[value="contact"]',this.bodyNode).addClass("lineSeparatorOption")}}})}); +define("widgets/AccountPanelFaceBook",["blade/object","./AccountPanel","jquery"],function(b,c,f){return b(c,null,function(d){return{onRender:function(){d(this,"onRender",arguments);this.sourceInputDom=f('[name="source"]',this.bodyNode);this.formatVideoShare()},optionsChanged:function(){d(this,"optionsChanged",arguments);this.formatVideoShare()},formatVideoShare:function(){if(!this.options.previews||!this.options.previews[0]||!this.options.previews[0].http_url)this.sourceInputDom.val("")}}})}); +define("Contacts",["jquery","blade/object","blade/fn","dispatch","rdapi","accounts"],function(b,c,f,d,e,a){b=c(null,null,{init:function(g,h){this.svc=g;this.svcAccount=h;this.callbacks=[];this.lastUpdated=this.fromStore().lastUpdated;this.timeCheck=864E5;this.optionsChangeSub=d.sub("optionsChanged",f.bind(this,function(){this.needFetch()&&this.fetch()}))},destroy:function(){d.unsub("optionsChanged",this.optionsChangeSub)},clear:function(){var g=this.svcAccount;a.setData(g.domain,g.userid,g.username, +"contacts")},needFetch:function(){return!this.lastUpdated||(new Date).getTime()-this.lastUpdated>this.timeCheck},fromStore:function(){var g=this.svcAccount;return a.getData(g.domain,g.userid,g.username,"contacts")||{}},toStore:function(g){var h=this.svcAccount;if(!g.lastUpdated)g.lastUpdated=this.lastUpdated;a.setData(h.domain,h.userid,h.username,"contacts",g);this.notifyCallbacks();return g},incorporate:function(){},notify:function(g){this.callbacks.push(g);this.contacts=this.fromStore().list;!this.contacts|| +this.needFetch()?this.fetch():this.notifyCallbacks()},fetch:function(){var g=this.svcAccount,h=a.getService(g.domain,g.userid,g.username);e("contacts/"+g.domain,{type:"POST",data:{username:g.username,userid:g.userid,startindex:0,maxresults:500,account:JSON.stringify(h)},timeout:1E4,success:f.bind(this,function(i){if(i&&!i.error){this.contacts=this.getFormattedContacts(i.result.entry);this.lastUpdated=(new Date).getTime();this.toStore({list:this.contacts})}}),error:f.bind(this,function(){this.notifyCallbacks()})})}, +notifyCallbacks:function(){this.callbacks.forEach(f.bind(this,function(g){g(this,this.contacts)}))},findContact:function(g){var h=g;(this.contacts||[]).some(function(i){if(i.displayName===g){h=i.email||i.userid||i.username;return true}return false});return h},getFormattedContacts:function(g){var h=[];g.forEach(function(i){i.accounts&&i.accounts.length&&i.accounts.forEach(function(j){h.push({displayName:i.displayName,email:"",userid:j.userid,username:j.username})})});return h},convert:function(g){var h= +[],i="";if(this.contacts){g=g.split(",");g.forEach(f.bind(this,function(j){(j=this.findContact(j.trim()))&&h.push(j)}))}if(h.length>0)i=h.join(", ");return i},formatContact:function(g){return g.displayName}});b.modelVersion="3";return b}); +define("ContactsEmail",["blade/object","Contacts","jquery","accounts","blade/fn"],function(b,c,f,d,e){var a=/<([^>])+>/;return b(c,null,function(){return{formatContact:function(g){var h=g.displayName;if(g.email!==h)h+=" <"+g.email+">";return h},findContact:function(g){return g},contains:function(g){return this.contacts.some(function(h){return h.email===g})},incorporate:function(g){var h=this.svcAccount,i=[];g.split(",").forEach(e.bind(this,function(j){j=j.trim();var l=a.exec(j);j=l&&l[1]||j;this.contains(j)|| +i.push({displayName:j,email:j})}));if(i.length){g=d.getData(h.domain,h.userid,h.username,"enteredContacts")||[];g=g.concat(i);d.setData(h.domain,h.userid,h.username,"enteredContacts",g);this.contacts=this.contacts.concat(i);this.toStore({list:this.contacts})}},getFormattedContacts:function(g){var h=[],i=this.svcAccount;i=d.getData(i.domain,i.userid,i.username,"enteredContacts");g.forEach(function(j){j.emails&&j.emails.length&&j.emails.forEach(function(l){h.push({displayName:j.displayName?j.displayName: +l.value,email:l.value})})});if(i)h=h.concat(i);return h}}})});define("ContactsTwitter",["blade/object","Contacts","jquery"],function(b,c){var f=/\@(\S+)/;return b(c,null,function(){return{formatContact:function(d){return"@"+d.username},findContact:function(d){var e=f.exec(d),a="",g=e&&e[1]||d;if(g)(this.contacts||[]).some(function(h){if(h.username===g){a=h.userid;return true}return false});return a}}})}); \ No newline at end of file diff --git a/web/0.3.4/share/panel/js/jquery.textOverflow.js b/web/0.3.4/share/panel/js/jquery.textOverflow.js new file mode 100644 index 0000000..e7c4957 --- /dev/null +++ b/web/0.3.4/share/panel/js/jquery.textOverflow.js @@ -0,0 +1,108 @@ +/*! + * jQuery Text Overflow v0.7 + * + * Licensed under the new BSD License. + * Copyright 2009-2010, Bram Stein + * All rights reserved. + */ +/*global jQuery, document, setInterval*/ +(function ($) { + var style = document.documentElement.style, + hasTextOverflow = ('textOverflow' in style || 'OTextOverflow' in style), + + domSplit = function (root, maxIndex) { + var index = 0, result = [], + domSplitAux = function (nodes) { + var i = 0, tmp; + + if (index > maxIndex) { + return; + } + + for (i = 0; i < nodes.length; i += 1) { + if (nodes[i].nodeType === 1) { + tmp = nodes[i].cloneNode(false); + result[result.length - 1].appendChild(tmp); + result.push(tmp); + domSplitAux(nodes[i].childNodes); + result.pop(); + } else if (nodes[i].nodeType === 3) { + if (index + nodes[i].length < maxIndex) { + result[result.length - 1].appendChild(nodes[i].cloneNode(false)); + } else { + tmp = nodes[i].cloneNode(false); + tmp.textContent = $.trim(tmp.textContent.substring(0, maxIndex - index)); + result[result.length - 1].appendChild(tmp); + } + index += nodes[i].length; + } else { + result.appendChild(nodes[i].cloneNode(false)); + } + } + }; + result.push(root.cloneNode(false)); + domSplitAux(root.childNodes); + return $(result.pop().childNodes); + }; + + $.extend($.fn, { + textOverflow: function (str, autoUpdate) { + var more = str || '…'; + + if (!hasTextOverflow) { + return this.each(function () { + var element = $(this), + + // the clone element we modify to measure the width + clone = element.clone(), + + // we save a copy so we can restore it if necessary + originalElement = element.clone(), + originalText = element.text(), + originalWidth = element.width(), + low = 0, mid = 0, + high = originalText.length, + reflow = function () { + if (originalWidth !== element.width()) { + element.replaceWith(originalElement); + element = originalElement; + originalElement = element.clone(); + element.textOverflow(str, false); + originalWidth = element.width(); + } + }; + + element.after(clone.hide().css({ + 'position': 'absolute', + 'width': 'auto', + 'overflow': 'visible', + 'max-width': 'inherit' + })); + + if (clone.width() > originalWidth) { + while (low < high) { + mid = Math.floor(low + ((high - low) / 2)); + clone.empty().append(domSplit(originalElement.get(0), mid)).append(more); + if (clone.width() < originalWidth) { + low = mid + 1; + } else { + high = mid; + } + } + + if (low < originalText.length) { + element.empty().append(domSplit(originalElement.get(0), low - 1)).append(more); + } + } + clone.remove(); + + if (autoUpdate) { + setInterval(reflow, 200); + } + }); + } else { + return this; + } + } + }); +})(jQuery); \ No newline at end of file diff --git a/web/0.3.4/share/panel/scripts/widgets/AccountPanel.html b/web/0.3.4/share/panel/scripts/widgets/AccountPanel.html new file mode 100644 index 0000000..218ff5d --- /dev/null +++ b/web/0.3.4/share/panel/scripts/widgets/AccountPanel.html @@ -0,0 +1,62 @@ +
        + + +

        {svc.name}

        + {displayName} +
        + +
        +
        +
        +
        + + + + + + + + + + {svc.features.medium [} + + + {]} + +
        +
        + {gt(svc.shareTypes.length, 1) [} +
        +
        + +
        + {eq(svc.shareTypes.length, 2) [} + send to {svc.shareTypes[1].name} instead? + {]} +
        + {. lastType lastToShareType(svc.shareTypes)} + + +
        +
        + {] [} + {svc.features.direct [} + + {svc.features.subject [} + + {]} + {]} + {]} + +
        +
        + {svc.features.counter [} +
        + {]} +
        + +
        +
        +
        +
        +
        diff --git a/web/0.3.4/share/panel/scripts/widgets/AccountPanel.js b/web/0.3.4/share/panel/scripts/widgets/AccountPanel.js new file mode 100644 index 0000000..e14b33c --- /dev/null +++ b/web/0.3.4/share/panel/scripts/widgets/AccountPanel.js @@ -0,0 +1,435 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +/*jslint indent: 2, plusplus: false, nomen: false */ +/*global define: false, document: false */ +"use strict"; + +define([ 'blade/object', 'blade/Widget', 'jquery', 'text!./AccountPanel.html', + 'TextCounter', 'storage', 'module', 'placeholder', 'dispatch', 'accounts', + 'require', 'AutoComplete', 'rdapi', 'blade/fn', './jigFuncs', 'Select', + 'jquery.textOverflow'], +function (object, Widget, $, template, + TextCounter, storage, module, placeholder, dispatch, accounts, + require, AutoComplete, rdapi, fn, jigFuncs, Select) { + + var store = storage(), + className = module.id.replace(/\//g, '-'); + + //Set up event handlers. + $(function () { + $('body') + .delegate('.' + className + ' form.messageForm', 'submit', function (evt) { + Widget.closest(module.id, evt, 'onSubmit'); + }) + .delegate('.' + className + ' .shareType2', 'click', function (evt) { + Widget.closest(module.id, evt, 'selectSecondShareType'); + evt.preventDefault(); + }); + }); + + /** + * Define the widget. + * This widget assumes its member variables include the following objects: + * + * options: the options for the URL/page being shared. + * account: the account returned from /account/get + * svc: The share service config, from services module. + */ + return object(Widget, null, function (parent) { + return { + moduleId: module.id, + className: className, + + // text counter support + counter: null, + urlSize: 26, + + template: template, + + // The module name for the Contacts module + contactsName: 'Contacts', + + strings: { + shareTypeLabel: 'send to' + }, + + onCreate: function () { + var name = this.account.displayName, + userName, savedOptions; + + //Set up the svcAccount property + this.svcAccount = this.account.accounts[0]; + this.storeId = 'AccountPanel-' + this.svcAccount.domain; + + //Set up memory store for when user switches tabs, their messages for + //old URLs is retained in case they are doing a composition. + //This needs to be in onCreate and not + //on the prototype since each instance should get its own object. + this.memStore = {}; + + //Check for saved data. Only use if the URL + //and the account match + savedOptions = store[this.storeId]; + if (savedOptions) { + savedOptions = JSON.parse(savedOptions); + + if (this.theGameHasChanged(savedOptions)) { + this.clearSavedData(); + savedOptions = null; + } else { + //Mix in the savedOptions with options. + this.options = object.create(this.options, [savedOptions]); + } + } + + //Set up the photo property + this.photo = this.account.photos && this.account.photos[0] && this.account.photos[0].value; + + //Set up nicer display name + // XXX for email services, we should show the email account, but we + // cannot rely on userid being a 'pretty' name we can display + userName = this.svcAccount.username; + if (userName && userName !== name) { + name = name + " (" + userName + ")"; + } + + this.displayName = name; + + // Figure out what module will handle contacts. + this.contactsName = (this.svc.overlays && + this.svc.overlays[this.contactsName]) || + this.contactsName; + + //Listen for options changes and update the account. + this.optionsChangedSub = dispatch.sub('optionsChanged', fn.bind(this, function (options) { + this.options = options; + this.optionsChanged(); + })); + + //Listen for updates to base64Preview + this.base64PreviewSub = dispatch.sub('base64Preview', fn.bind(this, function (dataUrl) { + $('[name="picture_base64"]', this.bodyNode).val(jigFuncs.rawBase64(dataUrl)); + })); + + // listen for successful send, and if so, update contacts list, if + // the send matches this account. + this.sendCompleteSub = dispatch.sub('sendComplete', fn.bind(this, function (data) { + var acct = this.svcAccount; + if (data.to && acct.domain === data.domain && + acct.userid === data.userid && + acct.username === data.username) { + this.contacts.incorporate(data.to); + } + })); + }, + + destroy: function () { + dispatch.unsub(this.optionsChangedSub); + dispatch.unsub(this.base64PreviewSub); + dispatch.unsub(this.sendCompleteSub); + this.select.dom.unbind('change', this.selectChangeFunc); + delete this.selectChangeFunc; + this.select.destroy(); + this.select = null; + parent(this, 'destroy'); + }, + + onRender: function () { + var i, tempNode, acNode; + + //Get a handle on the accordion body + for (i = 0; (tempNode = this.node.childNodes[i]); i++) { + if (tempNode.nodeType === 1 && + tempNode.className.indexOf(this.className) !== -1) { + this.bodyNode = tempNode; + break; + } + } + + if (this.svc.shareTypes.length > 1) { + //Insert a Select widget if it is desired. + this.select = new Select({ + name: 'shareType', + value: this.options.shareType, + options: this.svc.shareTypes.map(function (item) { + return { + name: item.name, + value: item.type + }; + }) + }, $('.shareTypeSelectSection', this.bodyNode)[0]); + + // Listen to changes in the Select + this.selectChangeFunc = fn.bind(this, function (evt) { + this.onShareTypeChange(evt); + }); + this.select.dom.bind('change', this.selectChangeFunc); + + // Update the display that is linked to the select. + if (this.options.shareType) { + this.changeShareType(this.getShareType(this.options.shareType)); + } + } + + if (this.svc.textLimit) { + this.startCounter(); + } + placeholder(this.bodyNode); + + // Set up autocomplete and contacts used for autocomplete. + // Since contacts can have a different + // format/display per service, allow for service overrides. + acNode = $('[name="to"]', this.bodyNode)[0]; + if (acNode) { + require([this.contactsName], fn.bind(this, function (Contacts) { + this.contacts = new Contacts(this.svc, this.svcAccount); + this.autoComplete = new AutoComplete(acNode, this.contacts); + })); + } + + //Create ellipsis for anything wanting ... overflow + $(".overflow", this.node).textOverflow(); + }, + + //Tron Legacy soundtrack anyone? + theGameHasChanged: function (data) { + //If the account/url has changed the data should no + //longer be tracked. + //Convert svcAccount fields to strings because the + //form data will be in strings, even though the + //account data can have things like integers, and want + //string equality operators to stay for linting. + return data.link !== jigFuncs.link(this.options) || + data.userid !== String(this.svcAccount.userid) || + data.domain !== String(this.svcAccount.domain) || + data.username !== String(this.svcAccount.username); + }, + + clearSavedData: function () { + this.memStore = {}; + delete store[this.storeId]; + + //Also clear up the form data. + var root = $(this.bodyNode); + root.find('[name="to"]').val(''); + root.find('[name="subject"]').val(''); + root.find('[name="message"]').val(''); + if (this.svc.textLimit) { + root.find('.counter').html(''); + } + + placeholder(this.bodyNode); + }, + + saveData: function () { + var data = this.getFormData(); + store[this.storeId] = JSON.stringify(data); + }, + + validate: function (sendData) { + return !this.counter || !this.counter.isOver(); + }, + + startCounter: function () { + //Set up text counter + if (!this.counter) { + this.counter = new TextCounter($('textarea.message', this.bodyNode), + $('.counter', this.bodyNode), + this.svc.textLimit - this.urlSize); + } + this.updateCounter(); + }, + + updateCounter: function () { + // Update counter. If using a short url from the web page itself, it could + // potentially be a different length than a bit.ly url so account for + // that. The + 1 is to account for a space before adding the URL to the + // tweet. + this.counter.updateLimit(this.options.shortUrl ? + (this.svc.textLimit - (this.options.shortUrl.length + 1)) : + this.svc.textLimit - this.urlSize); + }, + + //The page options have changed, update the relevant HTML bits. + optionsChanged: function () { + var root = $(this.bodyNode), + opts = this.options, + formLink = jigFuncs.link(opts), + restoredData = this.memStore[formLink], + oldData; + + //Save off previous form data for old URL. + oldData = this.getFormData(); + if (oldData.to || oldData.message || oldData.subject) { + this.memStore[oldData.link] = oldData; + } + + //Delete memory data for current URL if the account changed. + if (restoredData && this.theGameHasChanged(restoredData)) { + restoredData = null; + delete this.memStore[formLink]; + } + + //Mix in any saved data for the new URL if it was in storage. + if (restoredData) { + //Create a temp object so we do not mess with pristine options. + opts = object.create(opts, [{ + to: restoredData.to, + subject: restoredData.subject, + message: restoredData.message, + shareType: restoredData.shareType + }]); + } + + //Update the DOM. + root.find('[name="picture"]').val(jigFuncs.preview(opts)); + root.find('[name="picture_base64"]').val(jigFuncs.preview_base64(opts)); + root.find('[name="link"]').val(formLink); + root.find('[name="title"]').val(opts.title); + root.find('[name="caption"]').val(opts.caption); + root.find('[name="description"]').val(opts.description); + root.find('[name="medium"]').val(opts.medium); + root.find('[name="source"]').val(opts.source); + + //Only set share types if they are available for this type of account. + if (this.select) { + + if (opts.shareType) { + this.select.val(opts.shareType); + this.changeShareType(this.getShareType(opts.shareType)); + } else { + this.selectFirstShareType(); + } + } + + root.find('[name="to"]').val(opts.to); + root.find('[name="subject"]').val(opts.subject); + root.find('[name="message"]').val(opts.message); + + // update text limit for the text counter, if enabled. + if (this.counter) { + this.updateCounter(); + } + + //Kick the placeholder logic to recompute, to avoid gray text issues. + placeholder(this.bodyNode); + }, + + getFormData: function () { + var dom = $('form', this.bodyNode), + data = {}; + //Make sure all form elements are trimmed and username exists. + //Then collect the form values into the data object. + $.each(dom[0].elements, function (i, node) { + var trimmed = node.value.trim(); + + if (node.getAttribute("placeholder") === trimmed) { + trimmed = ""; + } + + node.value = trimmed; + + if (node.value) { + data[node.name] = node.value; + } + }); + + return data; + }, + + getShareType: function (shareTypeValue) { + for (var i = 0, item; (item = this.svc.shareTypes[i]); i++) { + if (item.type === shareTypeValue) { + return item; + } + } + return null; + }, + + selectFirstShareType: function () { + this.select.selectIndex(0); + this.changeShareType(this.svc.shareTypes[0]); + }, + + selectSecondShareType: function () { + this.select.selectIndex(1); + this.changeShareType(this.svc.shareTypes[1]); + }, + + changeShareType: function (shareType) { + var toSectionDom = $('.toSection', this.bodyNode), + shareTypeSectionDom = $('.shareTypeSelectSection', this.bodyNode), + shareType2Dom = $('.shareType2', this.bodyNode), + toInputDom = $('.toSection input', this.bodyNode); + + //If there is a special to value (like linkedin my connections), drop it in + toInputDom.val(shareType.specialTo ? shareType.specialTo : ''); + placeholder(toInputDom[0]); + + if (shareType.showTo) { + toSectionDom.removeClass('hiddenImportant'); + shareTypeSectionDom.addClass('fixedSize'); + shareType2Dom.addClass('hiddenImportant'); + toInputDom.focus(); + } else { + toSectionDom.addClass('hiddenImportant'); + shareTypeSectionDom.removeClass('fixedSize'); + shareType2Dom.removeClass('hiddenImportant'); + } + }, + + onShareTypeChange: function (evt) { + var shareType = this.getShareType(this.select.val()); + this.changeShareType(shareType); + }, + + onSubmit: function (evt) { + //Do not submit the form as-is. + evt.preventDefault(); + + //Make sure all form elements are trimmed and username exists. + //Then collect the form values into the data object. + var sendData = this.getFormData(); + + if (!this.validate(sendData)) { + return; + } + + if (this.options.shortUrl) { + sendData.shorturl = this.options.shortUrl; + } else if (this.svc.shorten) { + sendData.shorten = true; + } + + // fixup to addressing if necessary + if (sendData.to) { + sendData.to = this.contacts.convert(sendData.to); + } + + //Notify the page of a send. + dispatch.pub('sendMessage', sendData); + } + }; + }); +}); diff --git a/web/0.3.4/share/panel/scripts/widgets/AccountPanelFaceBook.js b/web/0.3.4/share/panel/scripts/widgets/AccountPanelFaceBook.js new file mode 100644 index 0000000..e7d24da --- /dev/null +++ b/web/0.3.4/share/panel/scripts/widgets/AccountPanelFaceBook.js @@ -0,0 +1,58 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +/*jslint indent: 2 */ +/*global define: false */ +"use strict"; + +define([ 'blade/object', './AccountPanel', 'jquery'], +function (object, AccountPanel, $) { + /** + * Just overrides a text string. + */ + return object(AccountPanel, null, function (parent) { + return { + + onRender: function () { + //Call Parent logic + parent(this, "onRender", arguments); + + this.sourceInputDom = $('[name="source"]', this.bodyNode); + this.formatVideoShare(); + }, + + optionsChanged: function () { + parent(this, "optionsChanged", arguments); + this.formatVideoShare(); + }, + + formatVideoShare: function () { + // facebook will not allow a video share unless there is an image preview, + // so if no image preview, remove the source value. + if (!this.options.previews || !this.options.previews[0] || !this.options.previews[0].http_url) { + this.sourceInputDom.val(''); + } + } + }; + }); +}); diff --git a/web/0.3.4/share/panel/scripts/widgets/AccountPanelLinkedIn.js b/web/0.3.4/share/panel/scripts/widgets/AccountPanelLinkedIn.js new file mode 100644 index 0000000..9292c55 --- /dev/null +++ b/web/0.3.4/share/panel/scripts/widgets/AccountPanelLinkedIn.js @@ -0,0 +1,47 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +/*jslint indent: 2 */ +/*global define: false */ +"use strict"; + +define([ 'blade/object', './AccountPanel', 'jquery'], +function (object, AccountPanel, $) { + /** + * Just overrides a text string. + */ + return object(AccountPanel, null, function (parent) { + return { + onCreate: function () { + //Call Parent logic + parent(this, "onCreate", arguments); + this.strings.shareTypeLabel = 'visible to'; + }, + onRender: function () { + parent(this, "onRender", arguments); + //Add styling to last item in "visible to" dropdown + $('option[value="contact"]', this.bodyNode).addClass('lineSeparatorOption'); + } + }; + }); +}); diff --git a/web/0.3.4/share/panel/scripts/widgets/DebugPanel.html b/web/0.3.4/share/panel/scripts/widgets/DebugPanel.html new file mode 100644 index 0000000..56e4bea --- /dev/null +++ b/web/0.3.4/share/panel/scripts/widgets/DebugPanel.html @@ -0,0 +1,19 @@ +
        + + +

        debug

        + developer +
        +
        +
        + + + + + + + + + +
        +
        diff --git a/web/0.3.4/share/panel/scripts/widgets/DebugPanel.js b/web/0.3.4/share/panel/scripts/widgets/DebugPanel.js new file mode 100644 index 0000000..e6bd075 --- /dev/null +++ b/web/0.3.4/share/panel/scripts/widgets/DebugPanel.js @@ -0,0 +1,37 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +/*jslint indent: 2 */ +/*global define: false */ +"use strict"; + +define([ 'blade/object', 'blade/Widget', 'jquery', 'text!./DebugPanel.html'], +function (object, Widget, $, template) { + + //Define the widget. + return object(Widget, null, function (parent) { + return { + template: template + }; + }); +}); diff --git a/web/0.3.4/share/panel/scripts/widgets/PageInfo.html b/web/0.3.4/share/panel/scripts/widgets/PageInfo.html new file mode 100644 index 0000000..e817684 --- /dev/null +++ b/web/0.3.4/share/panel/scripts/widgets/PageInfo.html @@ -0,0 +1,13 @@ +
        +
        +
        +
        +
        +
        +
        {options.title}
        +
        {options.description}
        + {cleanLink(options.url)} + {cleanLink(options.shortUrl)} +
        +
        +
        diff --git a/web/0.3.4/share/panel/scripts/widgets/PageInfo.js b/web/0.3.4/share/panel/scripts/widgets/PageInfo.js new file mode 100644 index 0000000..fe199bd --- /dev/null +++ b/web/0.3.4/share/panel/scripts/widgets/PageInfo.js @@ -0,0 +1,78 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +/*jslint indent: 2 */ +/*global define: false */ +"use strict"; + +define([ 'blade/object', 'blade/Widget', 'blade/fn', 'jquery', 'dispatch', + './jigFuncs', 'text!./PageInfo.html', 'jquery.textOverflow'], +function (object, Widget, fn, $, dispatch, + jigFuncs, template) { + + //Define any global handlers + $(function () { + $('body').delegate('#pageInfo .nofollow', 'click', function (evt) { + evt.preventDefault(); + }); + }); + + //Define the widget. + return object(Widget, null, function (parent) { + return { + template: template, + + optionsChanged: function () { + //options have updated, update the UI. + var root = $(this.node), + opts = this.options; + + root.find('.thumb').attr('src', jigFuncs.thumb(opts)); + root.find('.title').text(opts.title); + root.find('.description').text(opts.description); + root.find('.url').text(jigFuncs.cleanLink(opts.url)); + root.find('.shorturl').text(jigFuncs.cleanLink(opts.shortUrl)); + + //Update text overflow. + $(".overflow", this.node).textOverflow(); + }, + + onCreate: function () { + this.optionsChangedSub = dispatch.sub('optionsChanged', fn.bind(this, function (options) { + this.options = options; + this.optionsChanged(); + })); + }, + + onRender: function () { + //Create ellipsis for anything wanting ... overflow + $(".overflow", this.node).textOverflow(); + }, + + destroy: function () { + dispatch.unsub(this.optionsChangedSub); + parent(this, 'destroy'); + } + }; + }); +}); diff --git a/web/0.3.4/share/panel/scripts/widgets/jigFuncs.js b/web/0.3.4/share/panel/scripts/widgets/jigFuncs.js new file mode 100644 index 0000000..9d339f7 --- /dev/null +++ b/web/0.3.4/share/panel/scripts/widgets/jigFuncs.js @@ -0,0 +1,81 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +/*jslint indent: 2, plusplus: false */ +/*global define: false */ +"use strict"; + +define(['blade/jig', 'services'], function (jig, services) { + + var funcs = { + thumb: function (options) { + var preview = options.previews && options.previews[0]; + if (!preview) { + return ""; + } + if (preview.http_url) { + return jig.htmlEscape(preview.http_url); + } + // Return our data url, this is the thumbnail + return preview.base64; + }, + preview: function (options) { + var preview = options.previews && options.previews[0]; + return preview && preview.http_url; + }, + preview_base64: function (options) { + // Strip the URL down to just the base64 content + var preview = options.previews && options.previews[0]; + return preview && funcs.rawBase64(preview.base64); + }, + link: function (options) { + return options.canonicalUrl || options.url; + }, + cleanLink: function (url) { + return url ? url.replace(/^https?:\/\//, '').replace(/^www\./, '') : url; + }, + profilePic: function (photos) { + //TODO: check for a thumbnail picture, hopefully one that is square. + return photos && photos[0] && photos[0].value || '/share/i/face2.png'; + }, + serviceName: function (domain) { + return services.domains[domain].name; + }, + lastToShareType: function (shareTypes) { + var i, shareType; + for (i = shareTypes.length - 1; (shareType = shareTypes[i]); i--) { + if (shareType.showTo) { + return shareType; + } + } + return null; + }, + rawBase64: function (dataUrl) { + return dataUrl && dataUrl.replace("data:image/png;base64,", ""); + } + }; + + jig.addFn(funcs); + + return funcs; +}); \ No newline at end of file diff --git a/web/0.3.4/share/panel/style.css b/web/0.3.4/share/panel/style.css new file mode 100644 index 0000000..9c9e654 --- /dev/null +++ b/web/0.3.4/share/panel/style.css @@ -0,0 +1,1082 @@ + +/* + jQuery UI autocomplete styles +*/ +.ui-autocomplete.ui-widget-content { + background-color: white; + border: 1px solid #A6AFB6; + color: #222222; +} + +/* Fix the height of the autocomplete */ +.ui-autocomplete { + max-height: 85px; + overflow-x: hidden; + overflow-y: auto; + + position: absolute; + cursor: default; +} + +.ui-menu { + list-style:none; + padding: 2px; + margin: 0; + display:block; + float: left; +} +.ui-menu .ui-menu { + margin-top: -3px; +} +.ui-menu .ui-menu-item { + margin:0; + padding: 0; + zoom: 1; + float: left; + clear: left; + width: 100%; +} +.ui-menu .ui-menu-item a { + text-decoration:none; + display:block; + padding:.2em .4em; + line-height:1.5; + zoom:1; +} +.ui-menu .ui-menu-item a.ui-state-hover, +.ui-menu .ui-menu-item a.ui-state-active { + font-weight: normal; + margin: -1px; +} + + +/* Interaction states +----------------------------------*/ +.ui-autocomplete .ui-state-default, +.ui-widget-content .ui-state-default, +.ui-widget-header .ui-state-default { +} +.ui-autocomplete .ui-state-default a, +.ui-state-default a:link, +.ui-state-default a:visited { + text-decoration: none; +} + +.ui-autocomplete .ui-state-hover, +.ui-widget-content .ui-state-hover, +.ui-widget-header .ui-state-hover, +.ui-state-focus, +.ui-widget-content .ui-state-focus, +.ui-widget-header .ui-state-focus { + border: 1px solid #535F6D; + background-color: #535F6D; + color: white; +} + +.ui-autocomplete .ui-state-hover a, +.ui-state-hover a:hover { + text-decoration: none; +} + +.ui-autocomplete .ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active { + border: 1px solid #535F6D; + background-color: #535F6D; + color: white; +} + +.ui-autocomplete .ui-state-active a, +.ui-state-active a:link, +.ui-state-active a:visited { + color: white; + text-decoration: none; +} + +.ui-autocomplete .ui-widget :active { + outline: none; +} + +.AutoCompleteRefresh { + position: absolute; + right: 0; + display: none; + border-color: #A6AFB6; + border-style: solid; + border-width: 0 1px 1px 1px; + margin: 0; + padding: 2px; + background: white; + line-height: 24px; + z-index: 100; +} + +.addressing .AutoCompleteRefresh { + top: 26px; +} + +.addressing .toSection .AutoCompleteRefresh { + top: 45px; +} + +.AutoCompleteRefresh button { + float: right; +} + +.addressing .AutoCompleteSpinner { + position: absolute; + top: 6px; + right: 3px; + width: 16px; + height: 16px; + background-image: url('/share/i/loader.gif'); + z-index: 200; +} + +.addressing .toSection .AutoCompleteSpinner { + top: 25px; +} + +* { + padding: 0; + margin: 0; + + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +/* + general +*/ + +body { + font-family: "Lucida Grande", Verdana, Sans-serif; + font-size: 11px; + line-height: 110%; + overflow: hidden; + max-width: 400px; + width: 100%; + height: 100%; + background-color: #d4dde5; +} + +noscript { + display: block; + padding: 20px; + font-size: 14px; + line-height: 16px; +} + +#wrapper { + width: 100%; + max-width: 400px; + min-height: 180px; + height: 100%; +} + +button::-moz-focus-inner { + border: 0; +} + +button { + height: 24px; + border-width: 1px; + border-style: solid; + border-color: #aaa; + cursor: pointer; + padding: 0 10px; + + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; + + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #ddd)); + background-image: -moz-linear-gradient(center top , #fafafa 0%, #ddd 100%); +} + +button:active { + -webkit-box-shadow: 0 0 1px #666666 inset; + -moz-box-shadow: 0 0 1px #666666 inset; + box-shadow: 0 0 1px #666666 inset; + + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #eee), color-stop(100%, #ccc)); + background-image: -moz-linear-gradient(center top , #eee 0%, #ccc 100%); +} + +h2 { + font-size: 13px; + color: #535f6d; + text-shadow: 1px 1px 0 rgba(255,255,255, 0.5); +} + +h3 { + font-weight: bold; + font-size: 11px; + line-height: 14px; + color: #535f6d; +} + +/* + header +*/ + +header { + width: 100%; + padding: 8px 5px 10px 10px; + background-color: #d4dde5; +} + +header h1 { + font-size: 11px; +} + +header a { + text-decoration: none; + outline: none; + color: #535F6D; +} + +header a:hover { + text-decoration: underline; +} + +header nav ul { + list-style-type: none; +} + +header nav ul li { + display: inline-block; + padding: 0 5px; + float: left; +} + +header nav ul li.settings { + border-width: 0 1px 0 0; + border-style: solid; + border-color: #535f6d; +} + +header span.close { + width: 12px; + height: 13px; + background-image: url("i/sprite.png"); + background-position: center 0; + display: block; + cursor: pointer; +} + +header span.close:active { + background-position: center -13px; +} + +header a.new { + color: #ff5959; + font-weight: bold; +} + +#pageInfo, #accounts { + width: 100%; + + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #d4dde5), color-stop(100%, #c6d1da)); + background-image: -moz-linear-gradient(top, #d4dde5 0%, #c6d1da 100%); +} + +/* + page info +*/ +#pageInfo { + padding: 10px 10px 20px; + + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #d4dde5), color-stop(100%, #c6d1da)); + background-image: -moz-linear-gradient(top, #d4dde5 0%, #c6d1da 100%); +} + +#pageInfo .thumbContainer { + /* Set to be the max values for .thumbnail img */ + width: 90px; + height: 60px; + overflow:hidden; +} + +#pageInfo .thumbnail { + margin: 0 auto; +} + +#pageInfo .thumbnail img { + border: none; + margin: 0 auto; + + /* See .thumbContainer styles if these values changed. */ + max-width: 90px; + max-height: 60px; + display: block; + + border: 1px solid #a6afb6; + + -webkit-box-shadow: 1px 1px 0 rgba(255,255,255, 0.5); + -moz-box-shadow: 1px 1px 0 rgba(255,255,255, 0.5); + box-shadow: 1px 1px 0 rgba(255,255,255, 0.5); +} + +#pageInfo .shareInfo { + padding: 0 0 0 10px; +} + +#pageInfo .pageTitle { + line-height: 18px; + font-size: 13px; + color: #535f6d; + text-shadow: 1px 1px 0 rgba(255,255,255, 0.5); +} + +#pageInfo .pageDescription { + padding: 5px 0; + font-size: 10px; + color: #535F6D; +} + +#pageInfo .pageDescription:empty { + display: none; +} + +#pageInfo .url, +#pageInfo .shorturl { + font-size: 10px; + color: #A6AFB6; + display: table; + text-decoration: none; + padding: 3px 5px; + cursor: default; +} + +#pageInfo .url.selected, +#pageInfo .shorturl.selected { + background-color: #E1E7ED; + color: #848B91; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +/* + generic styles for account panels +*/ + +.ui-accordion-header { + color: #535F6D; + display: block; + border-width: 1px 0; + border-color: #a6afb6; + border-style: solid; + margin-top: -1px; + outline: none; + padding: 10px; + cursor: pointer; + width: 100%; + + -moz-user-select: none; + + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #d4dde5), color-stop(100%, #c6d1da)); + background-image: -moz-linear-gradient(top, #d4dde5 0%, #c6d1da 100%); +} + +.ui-accordion-header.ui-state-active { + background-image: none; + border-bottom: 1px solid transparent; + background-color: #E9EEF2; +} + +.ui-accordion-content { + background-color: #e9eef2; +} + +.share { + float: right; +} + +img.avatar { + border: 1px solid #FFFFFF; + height: 23px; + margin: 2px 10px 0 0; + width: 23px; + + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.25); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.25); +} + +.shareTypeSection { + padding: 2px 0 5px; + height: 52px; +} + +.widgets-AccountPanel .addressing { + position: relative; +} + +.hidden { + display: none; +} + +.hiddenImportant { + display: none !important; +} + +span.arrow, +span.icon { + display: inline-block; + background-image: url("i/sprite.png"); + background-repeat: no-repeat; + vertical-align: middle; +} + +span.arrow { + width: 12px; + height: 14px; +} + +span.icon { + width: 16px; + height: 14px; + margin: 0 5px; +} + + + +span.icon.settings { + background-image: url("/share/i/sprite.png"); + background-position: center 4px; +} + +span.icon.twitter { + background-image: url("/share/i/sprite.png"); + background-position: center -37px; +} + +span.icon.facebook { + background-image: url("/share/i/sprite.png"); + background-position: center -70px; +} + +span.icon.gmail { + background-image: url("/share/i/sprite.png"); + background-position: center -103px; +} + +span.icon.yahoo { + background-image: url("/share/i/sprite.png"); + background-position: center -134px; +} + +span.icon.googleapps { + background-image: url("/share/i/sprite.png"); + background-position: center -166px; +} + +span.icon.linkedin { + background-image: url("/share/i/LinkedIn_Logo16px.png"); + background-position: center; +} + +span.icon.debug { + background-image: url("/share/i/bug_b.png"); + background-position: center; +} + + +.ui-accordion-header span.arrow { + background-position: center -102px; +} + +.ui-accordion-header.ui-state-active span.arrow { + background-position: center -120px; +} + +.ui-accordion-header:not(.ui-state-active) .username { + opacity: 0.5; +} + +.ui-accordion-header.ui-state-hover .username { + opacity: 1.0; +} + +.ui-accordion-content .padding { + padding: 0 10px 10px; +} + +.ui-accordion-content textarea, +.ui-accordion-content input[type="text"] { + width: 100%; + font-family: "Lucida Grande", Verdana, Sans-serif; + font-size: 11px; + padding: 2px; + margin: 2px 0; + border-width: 1px; + border-style: solid; + border-color: #A6AFB6; + + -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.15) inset; + -moz-box-shadow: 0 1px 1px rgba(0,0,0,0.15) inset; + box-shadow: 0 1px 1px rgba(0,0,0,0.15) inset; +} + +.placeholder { + color: #aaa; +} + +.ui-accordion-content textarea:focus, +.ui-accordion-content input[type="text"]:focus { + outline: none; + + -webkit-box-shadow: 0 0 0 2px #C2ECFF inset; + -moz-box-shadow: 0 0 0 2px #C2ECFF inset; + box-shadow: 0 0 0 2px #C2ECFF inset; +} + +button:focus { + outline: 0; +} + +.account textarea { + width: 100%; + height: 80px; +} + +.ui-accordion-content input[type="text"] { + height: 24px; +} + +.ui-accordion-content .accountActions { + width: 100%; + margin: 8px 0 0 0; +} + +.ui-accordion-content span.count { + line-height: 24px; + color: #535F6D; +} +.ui-accordion-content div.counter { + line-height: 24px; + color: #535F6D; +} + +.ui-accordion-content div.counter.TextCountOver { + color: #880000 +} + +.ui-accordion-content label { + display: block; + margin: 0 0 5px 0; +} + +/* Generic AccountPanel styles */ + +.shareTypeSection label { + color: #535F6D; +} + +.shareTypeSelectSection.fixedSize { + width: 100px; +} + +.Select { + margin: 2px 0 0 0; +} + +.shareTypeSelectSection.fixedSize select { + width: 100px; + margin: 2px 0 0 0; +} + +.toSection { + padding-left: 10px; +} + +body .toSection input[type="text"] { + width: 100%; +} + +.shareType2 { + line-height: 64px; + padding: 0 0 0 10px; + text-decoration: none; + font-style: italic; + color: #535F6D; +} + +.lineSeparatorOption { + border-top: 1px solid #CCCCCC; +} + +.widgets-AccountPanel button:focus { + box-shadow: 0 0 0 3px rgba(0, 162, 255, 0.25); +} + +/* + twitter styles + +span.icon.twitter { + background-position: center -35px; +} + +*/ + + +/* + facebook styles +*/ + +.facebook .facebookActions { + margin: 0 0 10px 0; + width: 100%; +} + +.facebook .facebookActions .to { + width: 100px; + margin-right: 10px; +} + +.facebook .facebookActions .to .dropdownContainer { + height: 24px; + line-height: 24px; + display: block; +} + +.facebook .facebookActions .to select { + width: 100%; +} + +.facebook .facebookActions .list label { + visibility: hidden; +} + +.facebook .facebookActions .list button { + border-left: none; + width: 24px; + background-position: center -157px, center top; + background-repeat: no-repeat; + + -webkit-border-radius: 0 2px 2px 0; + -moz-border-radius: 0 2px 2px 0; + border-radius: 0 2px 2px 0; + + background-image: url("i/sprite.png"), -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #ddd)); + background-image: url("i/sprite.png"), -moz-linear-gradient(center top , #fafafa 0%, #ddd 100%); +} + +.facebook .facebookActions .list button:active { + background-image: url("i/sprite.png"), -webkit-gradient(linear, left top, left bottom, color-stop(0%, #eee), color-stop(100%, #ccc)); + background-image: url("i/sprite.png"), -moz-linear-gradient(center top , #eee 0%, #ccc 100%); +} + +/* + +span.icon.facebook { + background-position: center -59px; +} +*/ + +/* + google styles +*/ + +.google .subject { + margin: 5px 0; +} + +span.icon.google { + background-position: center -82px; +} + +#news { + padding: 10px; + width: 100%; +} + +#news span.icon.rss { + background-position: center -183px; + margin: 0 5px 0 0; +} + +#news .story { + padding: 5px 0; +} + +/* + hbox & vbox +*/ + +.hbox { + display: -webkit-box; + -webkit-box-orient: horizontal; + -webkit-box-align: stretch; + + display: -moz-box; + -moz-box-orient: horizontal; + -moz-box-align: stretch; + + display: box; + box-orient: horizontal; + box-align: stretch; + width: 100%; +} + +.hbox > * { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + display: block; +} + +.vbox { + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-box-align: stretch; + + display: -moz-box; + -moz-box-orient: vertical; + -moz-box-align: stretch; + + display: box; + box-orient: vertical; + box-align: stretch; +} + +.vbox > * { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + display: block; +} + +.spacer { + -webkit-box-flex: 1; + -moz-box-flex: 1; + box-flex: 1; +} + +.reverse { + -webkit-box-direction: reverse; + -moz-box-direction: reverse; + box-direction: reverse; +} + +.boxFlex0 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; +} + +.boxFlex1, .boxFlex { + -webkit-box-flex: 1; + -moz-box-flex: 1; + box-flex: 1; +} + +.boxFlex2 { + -webkit-box-flex: 2; + -moz-box-flex: 2; + box-flex: 2; +} + +.boxGroup1 { + -webkit-box-flex-group: 1; + -moz-box-flex-group: 1; + box-flex-group: 1; +} + +.boxGroup2 { + -webkit-box-flex-group: 2; + -moz-box-flex-group: 2; + box-flex-group: 2; +} + +.start { + -webkit-box-pack: start; + -moz-box-pack: start; + box-pack: start; +} + +.end { + -webkit-box-pack: end; + -moz-box-pack: end; + box-pack: end; +} + +.center { + -webkit-box-pack: center; + -moz-box-pack: center; + box-pack: center; +} + +/* + clearfix +*/ + +.clearfix:after { + content: "."; + display: block; + clear: both; + visibility: hidden; + line-height: 0; + height: 0; +} + +html[xmlns] .clearfix { + display: block; +} + +* html .clearfix { + height: 1%; +} + +/* + webkit specific styles +*/ +@media screen and (-webkit-min-device-pixel-ratio:0) { + + #wrapper { + background-color: #404040; + } + + .overflow { + text-overflow: ellipsis; + overflow-x: hidden; + white-space: nowrap; + } + + div.title { + white-space: wrap; + } + + .flip { + -webkit-transform-style: preserve-3d; + -webkit-backface-visibility: hidden; + -webkit-transition: -webkit-transform 0.7s ease-in-out; + } + + .front_flip { + -webkit-transform: rotateY(-180deg); + z-index: 900; + } + + .back_flip { + -webkit-transform: rotateY(0deg) !important; + z-index: 1000; + } + +} + +/* === STATUS MESSAGES === */ + +div.status { + position: absolute; + height: 100%; + width: 100%; + min-height: 180px; + top: 0; + left: 0; + color: #0a0a0a; + font-size: 14px; + text-align: center; + line-height: 18px; + z-index: 500; +} + +div.status table { + width: 100%; + height: 100%; + padding: 10px; +} + +div.status td { + vertical-align: center; + height: 100%; +} + +#statusCaptcha { + line-height: normal; + background-color: #f2f2f2; +} + +div.captcha-wrap { + /* we need this to take up the full height of the status bar */ +} + +div.captcha-wrap img { + width: 200px; + height: 55px; + margin: 0 10px; +} + +div.captcha-wrap .text, +div.captcha-wrap .subtext { + font-size: smaller; + color: #444; + text-align: left; +} + +div.captcha-wrap .subtext { + color: #666; +} + +div.captcha-wrap .controls { + width: 100%; +} + +div.captcha-wrap button { + height: 30px; + border-width: 1px 1px 1px 0; + border-style: solid; + border-color: #888; + cursor: pointer; + padding: 0 10px; + margin: 0; + + -webkit-border-radius: 0 2px 2px 0; + -moz-border-radius: 0 2px 2px 0; + border-radius: 0 2px 2px 0; + + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #ddd)); + background-image: -moz-linear-gradient(center top , #fafafa 0%, #ddd 100%); +} + +div.captcha-wrap button:active { + -webkit-box-shadow: 0 0 1px #666666 inset; + -moz-box-shadow: 0 0 1px #666666 inset; + box-shadow: 0 0 1px #666666 inset; + + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #eee), color-stop(100%, #ccc)); + background-image: -moz-linear-gradient(center top , #eee 0%, #ccc 100%); +} + +div.captcha-wrap input { + border-width: 1px; + border-style: solid; + border-color: #888; + font-family: "Lucida Grande", Verdana, sans-serif; + font-size: 12px; + line-height: 18px; + padding: 3px; + margin: 0; + + -webkit-border-radius: 2px 0 0 2px; + -moz-border-radius: 2px 0 0 2px; + border-radius: 2px 0 0 2px; + + -webkit-box-shadow:0 3px 3px -3px rgba(0, 0, 0, 0.25) inset, 0 1px 0 #fff; + -moz-box-shadow:0 3px 3px -3px rgba(0, 0, 0, 0.25) inset, 0 1px 0 #fff; + box-shadow:0 3px 3px -3px rgba(0, 0, 0, 0.25) inset, 0 1px 0 #fff; +} + +#captchaSuround { + max-height: 80px; +} +#captchaImage { + border: 1px solid #888; +} + +#captchaSound { + border: 1px solid #888; + width: 10px; + height: 10px; +} + +div.status img { + vertical-align: middle; +} + +#statusSharing { + background-color: #f2f2f2; + + -webkit-box-shadow: 0 0 200px rgba(0,0,0,0.25) inset; + -moz-box-shadow: 0 0 200px rgba(0,0,0,0.25) inset; + box-shadow: 0 0 200px rgba(0,0,0,0.25) inset; +} + +#statusShared { + background-color: #77E069; + + -webkit-box-shadow: 0 0 200px rgba(0,0,0,0.25) inset; + -moz-box-shadow: 0 0 200px rgba(0,0,0,0.25) inset; + box-shadow: 0 0 200px rgba(0,0,0,0.25) inset; +} + +#statusShared a { + color: #0a0a0a; + text-decoration: underline; +} + +.shareDomain { + display: inline-block; + max-width: 200px; + font-weight: bold; +} + +div.status.error, +div.status.warning { + background-color: #ff5959; + color: #fff; + text-align: center; + + -webkit-box-shadow: 0 0 200px rgba(0,0,0,0.25) inset; + -moz-box-shadow: 0 0 200px rgba(0,0,0,0.25) inset; + box-shadow: 0 0 200px rgba(0,0,0,0.25) inset; +} + +div.status.intermediate.error { + background-color: #FFA770; + + -webkit-box-shadow: 0 0 200px rgba(0,0,0,0.25) inset; + -moz-box-shadow: 0 0 200px rgba(0,0,0,0.25) inset; + box-shadow: 0 0 200px rgba(0,0,0,0.25) inset; +} + +div.status.intermediate.error .statusButton { + border-color: #AB4D00; +} + +div.status.noConfig { + text-shadow: 1px 1px 0 rgba(255,255,255,0.75); + line-height: 18px; + background-color: #f2f2f2; +} + +div.status.noConfig img { + display: block; + margin: 0 auto 5px; +} + +div.status.noConfig a { + color: #00A0FF; + text-decoration: none; +} + +div.status.noConfig a:hover { + text-decoration: underline; +} + +.statusButton { + font-size: 11px; + vertical-align: baseline; + font-weight: normal; + border-color: maroon; + position: absolute; + right: 10px; + bottom: 10px; + + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.statusButton:active { + -webkit-box-shadow: 0 0 1px #666666 inset, 0 1px 0 rgba(255,255,255,0.25); + -moz-box-shadow: 0 0 1px #666666 inset, 0 1px 0 rgba(255,255,255,0.25); + box-shadow: 0 0 1px #666666 inset, 0 1px 0 rgba(255,255,255,0.25); +} + +#statusErrorMessage { + display: inline-block; +} diff --git a/web/0.3.4/share/share.css b/web/0.3.4/share/share.css new file mode 100644 index 0000000..348e4a1 --- /dev/null +++ b/web/0.3.4/share/share.css @@ -0,0 +1,1038 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +* { + margin: 0; + padding: 0; + outline: none; + border: none; + border-collapse: collapse; + position: relative; + font-family: inherit; + font-weight: inherit; + font-style: inherit; + font-size: 100%; + vertical-align: top; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + list-style-type: none; +} + +noscript { + display: block; + text-align: center; + padding: 20px; + font-size: larger; +} + +body { + font-size: 11px; + font-family: "Lucida Grande", Verdana, sans-serif; + max-height: 113px; + overflow: hidden; + background-color: #fff; + background-position: bottom center; + background-repeat: no-repeat; + background-color: #fff; +} + +body.loading { + background-color: #ddd; + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.5); + background-image: -moz-linear-gradient(center top , #EEEEEE 0%, #DDDDDD 100%); +} + +body.status { + height: 37px; + max-height: 37px; +} + +/* Turn off some things if not in dev */ +html.staging body li.debugTab, +html.prod body li.debugTab { + display: none; +} + +a { + text-decoration: none; + outline: none; + color: #00A0FF; +} + +.hidden, +ul.nav li.hidden { + display: none; +} + +.invisible, +body #tabs.invisible { + visibility: hidden; +} + +#tabs { + min-height: 113px; + padding: 0 10px; + overflow: hidden; + border-bottom: 1px solid #777; + background-color: #ddd; + background-image: -moz-linear-gradient(center top , #EEEEEE 0%, #DDDDDD 100%); +} + +button::-moz-focus-inner { + border: 0; +} + +button { + padding: 2px 15px; + background-image: -moz-linear-gradient(center top , #FAFAFA 0%, #DDDDDD 100%); + border-width: 1px; + border-style: solid; + border-color: #888; + -moz-border-radius: 2px; + margin-left: 5px; + cursor: pointer; + -moz-box-shadow: 0 1px 0 #fff; +} + +button:active { + background-image: -moz-linear-gradient(center top , #EEEEEE 0%, #CCCCCC 100%); + -moz-box-shadow:0 0 1px #666666 inset, 0 1px 0 #FFFFFF; +} + +/* === TABS === */ + +ul.nav { + display: block; + width: 100%; + /* min-height for when all tabs are hidden on first config. */ + min-height: 32px; +} + +ul.nav li { + width: auto; + display: inline-block; + float: left; + list-style-type: none; + margin: 3px 0; + font-size: 11px; + line-height: 24px; + background-image: -moz-linear-gradient(center top , #fafafa 0%, #ddd 100%); + border-width: 1px; + border-style: solid; + border-color: #888; + -moz-box-shadow: 0 1px 0 #fff; + position: relative; +} + +ul.nav li.ui-state-focus { + -moz-box-shadow: 0 0 0 3px rgba(0, 162, 255, 0.25); + z-index: 1000; + position: relative; +} + +ul.nav li:nth-child(n+2) { + border-left: none; + -moz-border-radius: 0; +} + +ul.nav li.first { + -moz-border-radius-topleft: 2px; + -moz-border-radius-bottomleft: 2px; + border-left: 1px solid #888888; +} + +ul.nav li.last { + -moz-border-radius-topright: 2px; + -moz-border-radius-bottomright: 2px; +} + +ul.nav li.first.last { + border-left: 1px solid #888; +} + +ul.nav li a.icon { + font-weight: bold; + color: #333; + text-shadow: 1px 1px 0 rgba(255,255,255,0.25); + height: 24px; + background-repeat: no-repeat; + background-position: left center; + display: block; + background-image: url("i/sprite.png"); + background-repeat: no-repeat; + padding: 0 17px 0 17px; + text-indent: -1000px; + position: relative; +} + +ul.nav li a.icon:hover:before { + content: "\25B2"; + position: absolute; + left: 12px; + top: 14px; + color: rgba(0,0,0,0.75); + display: block; + text-indent: 0; + text-shadow: none; + z-index: 100000; +} + +ul.nav li a.icon:hover:after { + content: attr(name); + position: absolute; + left: 0; + top: 30px; + color: #fafafa; + padding: 0 10px; + display: block; + text-indent: 0; + background-color: rgba(0,0,0,0.75); + text-shadow: none; + text-align: center; + white-space: nowrap; + overflow: visible; + z-index: 100000; +} + +ul.nav li a.icon.settings { + background-position: center 4px; +} + +ul.nav li a.icon.twitter { + background-position: center -31px; +} + +ul.nav li a.icon.facebook { + background-position: center -65px; +} + +ul.nav li a.icon.gmail { + background-position: center -98px; +} + +ul.nav li a.icon.yahoo { + background-position: center -128px; +} + +ul.nav li a.icon.googleapps { + background-position: center -161px; +} + +ul.nav li a.icon.linkedin { + background-image: url("i/LinkedIn_Logo16px.png"); + background-position: center; +} + +ul.nav li a.icon.debug { + background-image: url("i/bug_b.png"); + background-position: center; +} + +ul.nav .rightActions { + position: absolute; + top: 8px; + right: 0; + height: 16px; + line-height: 16px; +} + +ul.nav .rightActions a { + padding: 0 5px; + border-right: 1px dotted #888; +} + +ul.nav .rightActions a:hover { + text-decoration: underline; +} + +ul.nav .rightActions a.new { + color: #ff5959; + font-weight: bold; +} + +ul.nav .rightActions span.close { + width: 16px; + height: 16px; + display: inline-block; + margin-left: 3px; + cursor: pointer; + background-image: url("i/sprite.png"); + background-position: left -237px; + background-repeat: no-repeat; +} + +ul.nav .rightActions span.close:hover { + background-image: url("i/sprite.png"); + background-position: left -201px; + background-repeat: no-repeat; +} + +/* === TAB TOOLTIP === */ + +#tabToolTip { + position: absolute; + background-color: rgba(0,0,0,0.8); + color: #fff; + top: 2px; + left: 52px; + width: 70px; + text-align: center; + z-index: 100; + display: none; + line-height: 20px; +} + +#tabToolTip span.arrow { + border-color:transparent rgba(0,0,0,0.8) transparent transparent; + border-style: solid; + border-width: 10px; + height: 0; + left: -20px; + position: absolute; + top: 0; + width: 0; +} + +/* === USER INFO TAB THING === */ + +ul.nav .user-info { + border-left: 1px dotted #888888; + display: inline-block; + font-size: 11px; + line-height: 21px; + margin: 4px 10px; + padding: 0 10px; +} + +ul.nav .user-info .status { + display: none; + -moz-border-radius: 100px; + width: 8px; + height: 8px; + vertical-align: middle; + background-image: -moz-radial-gradient(center, circle cover, #44aaff 0% , #2288ff 50%, #0066dd 90%, #444 100%); +} + +ul.nav .user-info .status.inactive { + background-image: -moz-radial-gradient(center, circle cover, #ddd 0%, #999 50%, #777 90%, #444 100%); +} + +ul.nav .user-info .username { + font-size: 11px; + vertical-align: middle; + font-weight: bold; +} + +ul.nav .user-info img.avatar { + -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.25); + border: 1px solid #FFFFFF; + height: 23px; + margin-right: 5px; + width: 23px; +} + +/* === SETTINGS TAB === */ + +ul.nav li.settings, +ul.nav li.settings.ui-tabs-selected { + text-align: center; + -moz-border-radius: 2px; +} + +ul.nav li.settings { + border: 1px solid #888; +} + +ul.nav .navSpacer { + border-left: 1px dotted #888888; + display: inline-block; + min-height: 24px; + float: left; + margin: 4px 10px; +} + +/* === TAB SELECTED === */ + +ul.nav li.ui-tabs-selected { + -moz-box-shadow:0 0 5px #444 inset, 0 1px 0 #FFFFFF; + background-image:-moz-linear-gradient(center top , #bbb 0%, #aaa 100%); + border-color: #666; +} + +ul.nav li.ui-tabs-selected a.debug { + background-image: url("i/bug_b.png"); +} + +/* === TAB PANELS === */ + +.messageForm { + min-height: 71px; + padding: 5px 0; + width: 100%; +} + +.ui-tabs .ui-tabs-hide { + display: none; +} + +.ui-tabs-panel .user { + display: none; +} + +.thumb { + -moz-border-radius: 2px 2px 2px 2px; + -moz-box-shadow: 0 1px 0 #fff; + background-image: -moz-linear-gradient(center top , #EEEEEE 0%, #DDDDDD 100%); + border: 1px solid #BBBBBB; + height: 71px; + margin: 0 5px 0 0; + padding: 4px; +} + +.thumb .image { + background-color: #FFFFFF; + border: 1px solid #AAAAAA; + display: inline-block; + height: 61px; + width: 90px; + text-align: center; +} + +.thumb .image .thumb { + -moz-border-radius: 0px; + background-image: none; + border: none; + height: auto; + margin: 0; + padding: 0; + max-width: 90px; +} + +div.image, +div.meta { + display: inline-block; + overflow: hidden; +} + +.meta { + padding: 0 3px; + width: 150px; + line-height: 14px; +} + +.meta .title { + font-size: 11px; + font-weight: bold; + white-space: nowrap; +} + +.meta .description { + color: #444; + white-space: normal; + font-size: 9px; + overflow: hidden; +} + +.meta .url, +.meta .surl { + font-size: 9px; + text-decoration: none; + display: block; + white-space: nowrap; + color: #00A0FF; +} + +.addressing { + margin: 0 5px 0 0; + width: 253px; +} + +button.share { + -moz-border-radius: 0 2px 2px 0; + border-left: medium none; + margin-left: 0; +} + +button.share:focus { + -moz-box-shadow: 0 0 0 3px rgba(0, 162, 255, 0.25); +} + +/* Disable user resizing of text area since it covers the twitter count. */ +textarea { + resize: none; +} + +textarea, input[type="text"] { + border-width: 1px; + border-style: solid; + border-color: #888; + font-family: "Lucida Grande", Verdana, sans-serif; + font-size: 12px; + line-height: 18px; + padding: 3px; + margin: 0; + width: 100%; + -moz-border-radius: 2px; + -moz-box-shadow:0 3px 3px -3px rgba(0, 0, 0, 0.25) inset, 0 1px 0 #fff; +} + +textarea:focus, input[type="text"]:focus { + -moz-box-shadow: 0 0 0 3px rgba(0, 162, 255, 0.25) inset, 0 1px 0 #fff; +} + + +textarea.message { + -moz-border-radius: 2px 0 0 2px; + font-size: 14px; + min-height: 71px; +} + +input[type="text"] { + height: 33px; + width: 100%; + margin-bottom: 5px; +} + +input[type="text"]:last-child { + margin-bottom: 0; +} + +input[type="text"].placeholder, +input[type="password"].placeholder, +textarea.placeholder { + color: #888; +} + +/* === TWITTER PANEL === */ +.message .counter { + position: absolute; + bottom: 3px; + right: 5px; + color: #888; + font-weight: bold; +} + +.TextCountOver { + color: red !important; +} + +/* === AUTOCOMPLETE === */ +ul.ui-autocomplete { + background-color: #fff; + min-width: 253px; + width: 253px; + border: 1px solid #aaa; + border-top: none; + -moz-box-shadow: 0 2px 2px rgba(0,0,0,0.5); +} + +ul.ui-autocomplete li.ui-menu-item a { + padding: 5px; + width: 100%; + overflow-x: hidden; + white-space: nowrap; + cursor: pointer; + display: block; +} + +ul.ui-autocomplete li.ui-menu-item a.ui-state-hover { + background-color: #00A0FF; + background-image: -moz-linear-gradient(top, #00a0ff 0%, #0D93E0 100%); + color: white; + font-weight: bold; +} + +/* === SETTINGS PANEL === */ + +#settings .aboutLink { + display: block; +} + +#settings .account { + display: inline-block; + width: 100%; + line-height: 22px; + color: #54B851; + font-weight: bold; +} + +#settings .account img { + width: 22px; + height: 22px; +} + +#settings .account .name, +#settings .account .accountDomain { + +} + +#settings ul { + min-width: 660px; +} + +#settings ul li { + display: inline-block; + float: left; + width: 140px; + min-height: 71px; +} + +#settings ul li { + padding: 0 10px 0; + border-width: 0 1px; + border-left-style: dotted; + border-color: #888; +} + +#settings ul li:nth-child(1) { + padding: 0 10px 0 0; + border: none; +} + +#settings ul li:nth-child(4) { + padding: 0 0 0 10px; +} + +#settings ul li button { + margin: 0; + width: 100%; + padding: 5px 0; +} + + +#settings ul li h1 { + margin: 0 0 10px 0; +} + +#settings ul li h1 span.accountIcon { + width: 16px; + height: 16px; + display: inline-block; +} + +#settings ul li h1 .twitterIcon { + background-image: url("i/sprite.png"); + background-position: left -36px; + background-repeat: no-repeat; +} + +#settings ul li h1 .facebookIcon { + background-image: url("i/sprite.png"); + background-position: left -70px; + background-repeat: no-repeat; +} + +#settings ul li h1 .gmailIcon { + background-image: url("i/sprite.png"); + background-position: left -103px; + background-repeat: no-repeat; +} + +#settings ul li h1 .yahooIcon { + background-image: url("i/sprite.png"); + background-position: left -132px; + background-repeat: no-repeat; +} + +#settings ul li h1 .googleappsIcon { + background-image: url("i/sprite.png"); + background-position: left -165px; + background-repeat: no-repeat; +} + +#settings ul li h1 .linkedinIcon { + background-image: url("i/LinkedIn_Logo16px.png"); + background-position: left -192px; + background-repeat: no-repeat; +} + +h1 { + font-weight: bold; + margin: 0 0 5px 0; + color: #0a0a0a; + padding: 5px 0 0 0; + /* border-top: 1px dotted #888; */ +} + +h1 a { + font-weight: normal; +} + +h1 img { + margin-top: -1px; +} + +#settings .settings { + width: 253px; + margin: 0 0 0 10px; + padding: 0 0 0 10px; + border-left: 1px dotted #888; + color: #444; +} + +#settings .success { + width: 100%; + line-height: 24px; + color: #54B851; + font-weight: bold; +} + +#settings span.check { + width: 22px; + background-color: #54B851; + color: #fff; + -moz-border-radius: 12px; + display: inline-block; + font-size: 12px; + font-weight: normal; + text-align: center; +} + +#settings .config { + color: #444444; + margin: 0 0 0 10px; + padding: 0 0 0 10px; + border-left: 1px dotted #888; + width: 220px; +} + +#settings .config ul { + width: auto; + min-width: 0; +} + +#settings .config ul li { + display: block; + border: none; + width: auto; + min-height: 0; + height: auto; + float: none; + padding: 4px 0; +} + +#settings .config ul li input[type="checkbox"] { + margin: 0 5px 0 0; +} + +#settings .remove { + font-weight: normal; + line-height: 7px; + padding-left: 26px; + display: block; +} + + +#settings .remove a:hover { + color: red; +} + +/* === STATUS MESSAGES === */ + +#clickBlock { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-image:-moz-linear-gradient(center top , #EEEEEE 0%, #DDDDDD 100%); +} + +div.status { + position: absolute; + width: 100%; + height: 113px; + line-height: 113px; + top: 0; + left: 0; + color: #0a0a0a; + font-size: 14px; + text-align: center; +} + +#statusCaptcha { + line-height: normal; +} + +div.captcha-wrap { + /* we need this to take up the full height of the status bar */ + height: 113px; +} + +div.captcha-wrap img { + width: 200px; + height: 55px; + margin: 0 10px; +} + +div.captcha-wrap .text, +div.captcha-wrap .subtext { + font-size: smaller; + color: #444; + text-align: left; +} + +div.captcha-wrap .subtext { + color: #666; +} + +div.captcha-wrap .controls { + width: 100%; +} + +div.captcha-wrap button { + height: 30px; + border-width: 1px 1px 1px 0; + border-style: solid; + border-color: #888; + cursor: pointer; + padding: 0 10px; + margin: 0; + -moz-border-radius: 0 2px 2px 0; + -webkit-border-radius: 0 2px 2px 0; + border-radius: 0 2px 2px 0; + background-image: -moz-linear-gradient(center top , #fafafa 0%, #ddd 100%); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #ddd)); +} + +div.captcha-wrap button:active { + -moz-box-shadow: 0 0 1px #666666 inset; + -webkit-box-shadow: 0 0 1px #666666 inset; + box-shadow: 0 0 1px #666666 inset; + background-image: -moz-linear-gradient(center top , #eee 0%, #ccc 100%); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #eee), color-stop(100%, #ccc)); +} + +div.captcha-wrap input { + border-width: 1px; + border-style: solid; + border-color: #888; + font-family: "Lucida Grande", Verdana, sans-serif; + font-size: 12px; + line-height: 18px; + padding: 3px; + margin: 0; + -moz-border-radius: 2px 0 0 2px; + -moz-box-shadow:0 3px 3px -3px rgba(0, 0, 0, 0.25) inset, 0 1px 0 #fff; +} + +#captchaSuround { + max-height: 80px; +} +#captchaImage { + border: 1px solid #888; +} + +#captchaSound { + border: 1px solid #888; + width: 10px; + height: 10px; +} + +div.status img { + vertical-align: middle; +} + +#statusSharing { + background-color: transparent; +} + +#statusShared { + background-color: rgba(0,255,0,0.4); +} + +#statusShared a { + color: #0a0a0a; + text-decoration: underline; +} + +.shareDomain { + display: inline-block; + max-width: 200px; + font-weight: bold; +} + +div.status.error, +div.status.warning { + background-color: rgba(255,0,0,0.5); + color: #fff; +} + +div.status.intermediate.error { + background-color: rgba(255,115,0,0.75); +} + +div.status.intermediate.error .statusButton { + border-color: #AB4D00; +} + +div.status.noConfig { + text-shadow: 1px 1px 0 rgba(255,255,255,0.75); + line-height: 18px; +} + +div.status.noConfig img { + display: block; + margin: 20px auto 5px; +} + +.statusButton { + font-size: 11px; + vertical-align: baseline; + font-weight: normal; + -moz-box-shadow: none; + border-color: maroon; +} + +.statusButton:active { + -moz-box-shadow: 0 0 1px #666666 inset, 0 1px 0 rgba(255,255,255,0.25); +} + +#statusErrorMessage { + display: inline-block; +} + +/* START hbox/vbox normalization from http://alex.dojotoolkit.org/2009/08/css-3-progress/ */ +/* hbox and vbox classes */ + +.hbox { + display: -webkit-box; + -webkit-box-orient: horizontal; + -webkit-box-align: stretch; + + display: -moz-box; + -moz-box-orient: horizontal; + -moz-box-align: stretch; + + display: box; + box-orient: horizontal; + box-align: stretch; +} + +.hbox > * { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + display: block; +} + +.vbox { + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-box-align: stretch; + + display: -moz-box; + -moz-box-orient: vertical; + -moz-box-align: stretch; + + display: box; + box-orient: vertical; + box-align: stretch; +} + +.vbox > * { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + display: block; +} + +.spacer { + -webkit-box-flex: 1; + -moz-box-flex: 1; + box-flex: 1; +} + +.reverse { + -webkit-box-direction: reverse; + -moz-box-direction: reverse; + box-direction: reverse; +} + +.boxFlex0 { + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; +} + +.boxFlex1, .boxFlex { + -webkit-box-flex: 1; + -moz-box-flex: 1; + box-flex: 1; +} + +.boxFlex2 { + -webkit-box-flex: 2; + -moz-box-flex: 2; + box-flex: 2; +} + +.boxGroup1 { + -webkit-box-flex-group: 1; + -moz-box-flex-group: 1; + box-flex-group: 1; +} + +.boxGroup2 { + -webkit-box-flex-group: 2; + -moz-box-flex-group: 2; + box-flex-group: 2; +} + +.start { + -webkit-box-pack: start; + -moz-box-pack: start; + box-pack: start; +} + +.end { + -webkit-box-pack: end; + -moz-box-pack: end; + box-pack: end; +} + +.center { + -webkit-box-pack: center; + -moz-box-pack: center; + box-pack: center; +} +/* END hbox/vbox normalization from http://alex.dojotoolkit.org/2009/08/css-3-progress/ */ + +/* clearfix */ + +.clearfix:after { + content: "."; + display: block; + clear: both; + visibility: hidden; + line-height: 0; + height: 0; +} + +html[xmlns] .clearfix { + display: block; +} + +* html .clearfix { + height: 1%; +} diff --git a/web/0.3.4/share/testframe.html b/web/0.3.4/share/testframe.html new file mode 100644 index 0000000..f8c954b --- /dev/null +++ b/web/0.3.4/share/testframe.html @@ -0,0 +1,82 @@ + + + + + Test IFrame + + + + + + + +
        +
        +
        + Options: + + +
        + + diff --git a/web/0.3.4/stats/index.html b/web/0.3.4/stats/index.html new file mode 100644 index 0000000..b771bcb --- /dev/null +++ b/web/0.3.4/stats/index.html @@ -0,0 +1,48 @@ + + + + Share History + + + + + + + + +

        Statistics

        + +
        There was an error: {message}
        +
        +
        +
        Accounts per domain
        +
        +
        +
        +
        Shares per domain
        +
        +
        +
        +
        +
        +
        Shares per day
        +
        +
        +
        +
        +
        + + diff --git a/web/0.3.4/stats/index.js b/web/0.3.4/stats/index.js new file mode 100644 index 0000000..964a882 --- /dev/null +++ b/web/0.3.4/stats/index.js @@ -0,0 +1,180 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +/*jslint plusplus: false */ +/*global define: false, location: true, window: false, alert: false */ +"use strict"; + +define([ "require", "jquery", "rdapi", "blade/jig"], +function (require, $, rdapi, jig) { + rdapi('stats/accounts', { + data: { + opts: 'domain' + }, + success: function (json) { + if (json.error) { + $('#notifications').append(jig('#error', json.error)); + } else { + $('#notifications').append(jig('#error', json.result)); + + var w = 200, + h = 200, + r = w / 2 + + var sum = pv.sum(json.map(function (d) d[0])); + + var vis = new pv.Panel() + .width(w) + .height(h) + .canvas("accounts_per_domain"); + + vis.add(pv.Wedge) + .data(json) + .left(w/2) + .bottom(w/2) + .outerRadius(r) + .angle(function(d) d[0] / sum * 2 * Math.PI) + .strokeStyle("white") + .lineWidth(4) + .anchor("center").add(pv.Label) + .text(function(d) d[1]+": "+(d[0] / sum * 100).toFixed(2)+"%"); + vis.render(); + + } + } + }); + + rdapi('stats/history', { + data: { + opts: 'domain' + }, + success: function (json) { + if (json.error) { + $('#notifications').append(jig('#error', json.error)); + } else { + $('#notifications').append(jig('#error', json.result)); + + var w = 200, + h = 200, + r = w / 2 + + var sum = pv.sum(json.map(function (d) d[0])); + + var vis = new pv.Panel() + .width(w) + .height(h) + .canvas("shares_per_domain"); + + vis.add(pv.Wedge) + .data(json) + .left(w/2) + .bottom(w/2) + .outerRadius(r) + .angle(function(d) d[0] / sum * 2 * Math.PI) + .strokeStyle("white") + .lineWidth(4) + .anchor("center").add(pv.Label) + .text(function(d) d[1]+": "+(d[0] / sum * 100).toFixed(2)+"%"); + vis.render(); + + } + } + }); + + rdapi('stats/history', { + data: { + opts: 'perday' + }, + success: function (json) { + if (json.error) { + $('#notifications').append(jig('#error', json.error)); + } else { + $('#notifications').append(jig('#error', json.result)); +// test data +//json = [["2010-11-10", 242], ["2010-11-11", 6321], ["2010-11-12", 6059], +// ["2010-11-13", 3585], ["2010-11-14", 2391], ["2010-11-15", 3222], +// ["2010-11-16", 3403], ["2010-11-17", 2950], ["2010-11-18", 2788], +// ["2010-11-19", 2369], ["2010-11-20", 1458], ["2010-11-21", 1415], +// ["2010-11-22", 2039], ["2010-11-23", 1945], ["2010-11-24", 1966], +// ["2010-11-25", 1880], ["2010-11-26", 1784], ["2010-11-27", 1121], +// ["2010-11-28", 1221], ["2010-11-29", 1782], ["2010-11-30", 1875], +// ["2010-12-01", 1798], ["2010-12-02", 1601]]; + var max = pv.max(json.map(function (d) d[1])); + var days = json.map(function (d) d[0]); + + /* Sizing and scales. */ + var w = 800, + h = 400, + left = 40, + btm = 100, + bsp = 2, + bw = (w/json.length-2) - bsp; + + /* The root panel. */ + var vis = new pv.Panel() + .width(w) + .height(h) + .canvas("shares_per_day"); + + /* The bars. */ + vis.add(pv.Bar) + .data(json) + .bottom(btm-10).width(bw) + .height(function(d) (d[1] / max) * h) + .left(function() this.index * (bw+bsp) + left); + + /* y-axis and ticks. */ + var hmarks = 10; + var interval = max/hmarks; + var hspace = ((h-btm)/interval)/(hmarks-1); + vis.add(pv.Rule) + .data(pv.range(0, max, interval)) + .bottom(function(d) d * hspace + btm -10) + .strokeStyle("lightgrey") + .left(left) + .width(w-left) + .anchor("left").add(pv.Label) + .visible(function(d) d > 0) + .text(function (d) d.toFixed()); + + /* X-axis and ticks. */ + vis.add(pv.Rule) + .data(days) + .left(function() this.index * (bw+bsp) + left + bw/2) + .bottom(80) + .height(5) + .anchor("bottom").add(pv.Label) + .text(function (d) d) + .textAlign("left") + .textBaseline("middle") + .textAngle(Math.PI / 2) + + + vis.render(); + + } + } + }); + + +}); diff --git a/web/0.3.4/style.css b/web/0.3.4/style.css new file mode 100644 index 0000000..5f082fb --- /dev/null +++ b/web/0.3.4/style.css @@ -0,0 +1,339 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Raindrop. + * + * The Initial Developer of the Original Code is + * Mozilla Messaging, Inc.. + * Portions created by the Initial Developer are Copyright (C) 2009 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * */ + +* { + margin: 0; + padding: 0; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + list-style-type: none; +} + +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 21px; + color: #0a0a0a; +} + +button::-moz-focus-inner { + border: 0; +} + +a { + color: #00a0ff; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +strong { + font-weight: bold; +} + +.textRight { + text-align: right; +} + +hr { + display: block; + width: 700px; + height: 1px; + background-color: #e6e6e6; + color: #e6e6e6; + border: none; + margin: 0 auto 20px; +} + +/* grid */ + +.c1, .c2, .c3 { + display: inline-block; + float: left; + min-height: 1%; + margin: 0 10px; + position: relative; +} + +.c1 { + width: 220px; +} + +.c2 { + width: 460px; +} + +.c3 { + width: 700px; +} + +.row { + float: left; + margin: 10px 0; +} + +.row.about { + margin: 20px 0; +} + +/* end grid */ + +#wrapper { + width: 720px; + margin: 0 auto; + overflow: hidden; +} + +#header.row { + margin: 36px 0; +} + +#header.row .c1, +#header.row .c2 { + height: 90px; +} + +#header.row .logo { + background-image: url("i/f1Logo.png"); + background-repeat: no-repeat; + background-position: 0 -9px; + line-height: 80px; + font-size: 15px; + font-weight: bold; + padding: 0 0 0 185px; + color: #00a0ff; +} + +#header.row button.download { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 18px; + color: #004607; + text-shadow: 1px 1px 0 rgba(255,255,255,0.4); + width: 100%; + border: 1px solid #004607; + padding: 5px 0; + cursor: pointer; + + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; + + background-image: -moz-linear-gradient(center top , #84c63c 0%, #5ea330 100%); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #84c63c), color-stop(100%, #5ea330)); +} + +#header.row button.download:hover { + -webkit-box-shadow: 0 0 10px rgba(0,0,0,0.5); + -moz-box-shadow: 0 0 10px rgba(0,0,0,0.5); + box-shadow: 0 0 10px rgba(0,0,0,0.5); +} + +#header.row button.download:active { + -webkit-box-shadow: 0 0 5px rgba(0,0,0,0.5) inset; + -moz-box-shadow: 0 0 5px rgba(0,0,0,0.5) inset; + box-shadow: 0 0 5px rgba(0,0,0,0.5) inset; +} + +#header.row button.download img { + vertical-align: middle; + margin: -1px 4px 0 0; +} + +#header.row button.download span.meta { + display: block; + font-size: 10px; + color: #004607; +} + +#header.row #firefox { + display: none; + font-size: 14px; + padding: 10px 0; +} + +#header.row #no36 { + display: none; + font-size: 11px; +} + +#header.row #noButtonFF4 { + display: none; +} + +.row.headline h1 { + margin: 100px 0 20px; + color: #00A0FF; + font-weight: normal; + font-size: 24px; +} + +.row.headline button { + display: block; + width: 100%; + height: 40px; + margin: 20px 0 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + + background-image: -moz-linear-gradient(center top , #fafafa 0%, #ddd 100%); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #ddd)); + + border: 1px solid #888888; + padding: 5px 0; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + cursor: pointer; +} + +.row.headline button:hover { + border: 1px solid #444; +} + +.row.headline button:active { + -webkit-box-shadow: 0 0 5px rgba(0,0,0,0.5) inset; + -moz-box-shadow: 0 0 5px rgba(0,0,0,0.5) inset; +} + +#movie.c3 { + -moz-box-shadow: 0 5px 10px 0 #666; + -webkit-box-shadow: 0 5px 10px 0 #666; + position: relative; + overflow-x: hidden; +} + +#movie.c3 .corner { + position: absolute; + width: 5px; + height: 5px; + display: block; + z-index: 1; +} + +#movie.c3 .corner.tl { + top: 0; + left: 0; + background-image: url("i/cornerTopLeft.png"); +} + +#movie.c3 .corner.tr { + top: 0; + right: 0; + background-image: url("i/cornerTopRight.png"); +} + +/* +#movie.c3 .corner.br { + bottom: 0; + right: 0; + background-image: url("i/cornerBottomRight.png"); +} + +#movie.c3 .corner.bl { + bottom: 0; + left: 0; + background-image: url("i/cornerBottomLeft.png"); +} +*/ + +#movie.c3 iframe { + float: left; + z-index: 0; + position: relative; +} + +#tagline.c3 { + padding: 10px 0; + border-width: 0 0 1px 0; + border-color: #e6e6e6; + border-style: solid; + font-style: italic; + font-size: 16px; + color: #00A0FF; +} + +#tagline.c3 span.watch { + color: #888; + font-size: 12px; + float: right; + font-style: normal +} + +.description { + font-size: 12px; + color: #666; +} + +.description h1, +.description h2 { + font-size: 14px; + color: #0a0a0a; +} + +.description h3 { + color:#00A0FF; + margin-top:10px; + font-size: 12px; +} + +.description.steps { + margin-top: 14px +} + +.description.steps img { + margin-top: 7px; +} + +.description.steps span.step { + color: #fff; + background-color: orange; + width: 21px; + font-family: monospace; + -moz-border-radius: 12px; + -webkit-border-radius: 12px; + display: inline-block; + text-align: center; + margin-right: 5px; +} + +#footer.row { + font-size: 10px; + color: #888; +} + +#footer .c3 { + border-top: 1px solid #e6e6e6; + padding: 10px 0 0 0; +} + +#info36 { + display: none; + color: #888; + font-size: 11px; + line-height: 11px; +} + +#installFrame { + display: none; +}

        H+^`m~3KFvj(Sslh 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 Q6#xJL07*qoM6N<$f`PZYD*ylh literal 0 HcmV?d00001 diff --git a/web/0.3.4/i/panel/step-03.png b/web/0.3.4/i/panel/step-03.png new file mode 100644 index 0000000000000000000000000000000000000000..814a88f2a64bda32074cb6665b8d0bf195ecce8a GIT binary patch literal 5312 zcmV;x6hG^UP)?)%|~OcXqRzkc5C> zY-vjhVvz(W&`ST7OBzHuH6K7klZXOxA67v?NW9>wBLEX(Mgm_Nk-x=zP$bA^ceS>;*yQ}Dl1t+=8vmJV@SDj8)bV(Iy5E}V88iUpQIs-Q$m53TKdNX4%R9@Y}XJ9SAC*I;i|wI-SmM&RkS^ z3A`(%q$N}=BO)R~LPFsF0%`^2<>fB(XPnZ&GXon;9lLqkL1ZUSmeK5OVx0syrR zEPA(9h`yx^nDbXL+(bYfh$UMEQVQ`b7uRvNTkNDu%oK3|)pZSVD&m9i(-A&(+1&+aFGyJbzzKLf5g=;#YN6)w7In@4f8+BiE@ZYy?CZ3)FmO9OrI&+Y4W_R zv{AhUCt<>8*{XH?^LGMtWrJOtrL3=IEFfS z9;|pdVU^>}E&Ka2H_qLNGFMJraee3iy*RJWjI~RieJJNdW@Cnz>f&z`qo3I5h+nyV zO`D2uCk&ky`^it2tRFn8FrAj;!&>!Ccl>GP_L(j6cRic@9@#gvz)BR&W-B^;cwV>8 z=ue|&E$tC!LS@_Dh#s~G{qxI1t@Cyb9uu!`etFd^tq6OMFQ3*l;gdbfVy>jk9zVU` z?|YYy?O^yt=l1BUYzKO5__!gFp{)2g9*NLH=#6}I>Da;|hy1?N-9dUDFY>7nv#>&fQG)wG0)m4itQR~IOXvmTAbX!)rk ze&Zae`H+uXwK~1xH@fbtirEJmgifhxyA-TbEIQ;V{N|e~vDY99sZl;*?8q)r+)8*e z&JDF#9SY~*mmT{e^j-YJIAQAh-(IWmXEH^D{UP86>{D$7bBRPN46}V{PMs-&;BJ#vP|Wr78VtkyVcm43mzkVz*T8H z=bi@^GO@mzn^aE4qLK=`@Vr^pJ>(Xibab~j?`MDg*D+6~rTqDcn2@io*t~HbG5!CR zlezuF;qA}7`+A>dofh7(S4wK?^l9GJO-shd9A2B$J7(C5^HO%!#d$*`Kl)A$29vv$ zVI?1s{{Qsb>vr${YCDe|OS*BXEhk@%_(jhlpEU11@$K0!wv#zUig)_g9S5QdMRsU8 z_thk%^OOxEiJab*l10kL$jTF7*LX!%Qq?Ap#m`xBJohwbA2;l)9J^qam2=+IW#G8f zvuygT<|r%kZmC*b!efR``ry3%`~(Bqy772{u>0zN#g@_1Yu|2kpzsibGN-XILR&M> z=JR5BV?)Y&((A^$6U!LN<;9VY_w74qAddl0wF^P0@bcl+HnixQj9JO?U7zX{qen$0 zeC%f9t|HvzI%8z#>9=krM}kgPJ^E%v$rH`E52qFTkW%IGqD`|#E&DR#N>0xA**C~` z%SW21#4gy?Xg_1jtn`yvIXP!@a_@0sR=H*VhtHi zzTtJWXGZ7oOLmgVUp&2k&6*>{;#FpRz324l{d1q|obEtd(vEWPg1Ipv=#EXP8QItK zd9UHpfz{LJuK%eFSm%pZmEBAd-$=j2C-oHQ6!LL^6e93${)yoX2?Ye#o(2l*&PsvK z^JlqerF6s8uF~0`pRuh#t?W+|k$J!ue4xXLpNNj{@4lwuJ7=$UU2WW(8MmB5)N(Gh zpZL--amncy3)NlkYX|3!9xCNddASGs1R3TLwHmp z2IP_YQKh9jzCQX?k0-0}IfTLwt*bFYj5$iJ#nBVY;o-iLkOv>7n$^dN%1-tV>)Q0K z_j<+sJm<*lxhqkN>0=-F+6~C4ok_OO?Tn0vYC-s2#m^!5e-Fw?N>j_%Qr_BfVCUjp z`MRdvmu=oWYDgDQwfbp5uL3ElTGB7b9spuKJb2>5!4rWdT4|(IYo`^xc}xG0BG=7 z2S^Ff9DtMnFy8ZvX&D2>?<805x?et1)d008qD~clEx}0RZZjmo;k=f&m$T zI}}#d*&O25&%9W0N^Y7hR-1YweCW3-=}Rnulz;{iOZa==0F9aN zn)T>Fr~{}2^9=(s0NP|GC?!C9A$WCtO5h}*KKbYuDZzRJ>eF(AQUU@p`i8!5faa7E z2KfT&A3l9bP)dNtNC}h#Xiq5t03apc0f@d?7?1(b1hTTSM4zx`gM0yi+G6CPLx&`# z1X2Pt!N{bfBuOb@G6H}m7#R@}QA>div{M3ViII{|SyNI1B>}a?NXe%}@HqrPBaD=M zN>t;|Apn5dVWixrtl{Sn06^_9Qt~Nbh75pK7%BObFhd4FD~yzUN}o!}_)tn{rv&(o zSRUTjMX7|5=Kw7M`*I6?DJ5dJ?>$1P$*HDDQoc}@@SSxx@q)5)F9K%y7>nd!)!YD* zQewP30YCeZaEKKHHLeg@dMSL9Dj=R0V_DriT@gK`C{R(XYA(-NFcM7)f4y#Jr@5r- zs*|IY?l3D$&${Q8o)N9KbgOZt2Z5z>#1moVgQFafl`K2~*KLy1M#|z{>hQfh3%t7k zO@V=15CmYAGO3k@6s+zO`bYz$3)l?Su5LV%-egqAIn&Yfs{eRNQsVQ z#mNffb5dR+*9h+hY($axM?-G1=tQSdSP`9K45SPWM#_Jk{NfN-TT@NRf_|g$6yxO9NR*eYj&t&o|%+6QT3;1yTmK zOiGL-ONE1DWVu~fk*Mhum->fJX0HW0I*?J1oD5eVqmYQUX}iP{NEyIlDLIi2o{?lJ zBa01{*-^Q}MNMkc8;X?FQd4y#bPUlW6T>UFUZ$q37?=Yog8)v}Wwi+-OKsd@C5xS- zroc;w;BnS}phLYzMlUdu(9z5wJMT^)$=#I2J)o39V!O#gt#%pD$c!)MYrpbOj+n{& zlY*~FE_E)_czROXhxqJ8S z(hoi&^d85mVg#mWt^!g9wpdCQoQfskrGi71d8Q1Ns;HC-<@1!cavJ%2 zLL)G)#medGe*#hli&BbhLsTqnPJw4tQnIQlrRsj4d08IxL_%AYyqg}BGWf(&hLpDL&9s*nfUMYM8tJUmRt1w01bnQ+^38ruv3W?+BrkF$hji%P*?(=%xFw}g z5SRW^4W_^TmoM3ODX~KuIHESz4wN#0LmWl8;}l6L1v*tywVXpEW>}B*?;7o?^+(k- zSFfo^K9q@df5(87!623hxjk2Z0v&Z?g*^U%wzq7&-w!?gAh(XaP#Dfd7Bf?-MN4B@?U;sw39s!Lrms^ zmkuiE8mXgeJW--tf-Eq@L}#9BkQ74~dtilOfSeSi8{$9bgnF!9Fptek zL+E;8=`uFF76yHQQa*_0o1`(ddg1!{gCkpiKcwel3wPfkJMD;V8QqjWUQxjp;0Nw(xSsHU~;f9Q8?r}l zB$T3wv5_Ae5#F}{%s-+bvCUc}Y-;&@t2zB9XO&=MV{%9!?;}0tZJif3;J3euj*f28 z`i(1Al;(FDZ8z&7lSz_H0${B_-uyVPP2Ai%aZbVW!HxJ~nG{xdVlSg)v^vB}>0}$+F1! znGc1cre+jrLJ>w3X5_|am>6y_n+}Gq1-eYiKhC1Vy#0xF1ohGx&1NpUe6&QR_DF`1 zjh_#Q2@Tb&3ZXtEG}Qf+av~}QZO~MDakRNkb`=nP2M;e@A7|;f4-b&6ThEhXDICzs zq(S}-yztal?lUi`r(Wl(xuQ})%0Ol$a?LrR$HK>163>w5F_a2oc~wep-IdiY$H0F| zrWZd6$1rV6@X4f}|E_?3oTX4EpM!HfDW#XZs^pXZ`W$m<kS$rePq@8D4>c-6)ufN$K6HCd0 zOU35<;7sC7{Zk1 z+ow6U0kepS0zal#D%k^XClAjGZ@6X>BLt@q)nz>OzVA5V+0nDUs>Fue=rsSu$q}-? zl5L%LpS$uQdj7D)k&g0dQ;RBDy(o%mESI%S5U>5F&MK*Ag~J3-LmGRR0KouTQwCcG z4;z%LlU#>12)r(a0V9$+iQ<@x8Qb69iUPl9wJ1tc>T}yFEL7u*z{Lww$-(!5D8-C% zWwwDI3`J2CB;MY)PpRVC_~dcGpRRsUlU7v}Bd(>NBlWUIV{DjxiGVBV5>_o5VkhAb zXhv`uSQQ{u|93~HGz76Sri&M2za5wlYik0hJW{oUlS5*3=*K4M-fGw`G9w#=~Jg&YvPp^WhSqLki&7IrA>VWhHrP@r|Ooq@GWTZID! zgtC)Z^aM&)>)I_8N|QY%DPh_;3c4j?i^TO4kO)o4EYrLkZBmR!togLeFc%x7lTCt7FPY znT$Ld@u_D=^Lz}##-*C0yRLQdd8(%0)3ci_16HzAr{**jB^9_0J;H`9dYXF8f>i=hek6!W^g-% zSB~TTS*uOOs@kQUl%boFPbm1(Fmq?}m`X0#=C)WEK^(@*Daa{IGj~>Rz58}tDcn`a0NCys=`;XOeyC~ecOgVetRug8ivH)PSS-b z7ilo6zCPJYhkYwZJ%P}!7|>Sj4J~CXRj@D0^5eC-8$BT_Ql%Tshf+H*DHdvvaOzIZ z)A3$?7cQf)zx@{>G5dYQ*DzN?_v?6fR>0abY8@$-T zYtNLImzU90db3{t$A5n34h!Y8rAnDg)dpWUi2gR)QrEl6yGeS(>tek=>?B$>35bfm z9n2QP!^7tX+!@3YuzGKguW4qNDl#-wSEDT}_R7l1(bLf(v??koD%P5G$s!vJ$hg$a zT*cJj{U(W3>sp^00%pedN6RMS9P8{#o0xS0+cb+A|k9*oA_b$y&El*(i=7{F|VW^9m4B&+MbLU}}q zinJwJrfPLuk1@;@aQpd#Tt~#4dH3{`g{`@Cl!fq1O0L+dbZJzIQs^#DdRj^*!5CYv zj4@QMBAbq4zhZ9u$E%y`{qDVjaS>vTje=;nkt2vPJ2E2gTlvuj z)lulnFk0qecIx$-+jQYfRu&PR@~@+y^PYPQGGQWO;-|m%buA978TInzJwfk*pxZem zc62h~EEB3>oHhPee4DJKBo0@I{MGGmOfk4NQc?eQ@JpFWPDWZ9TyLMn?{Akof25{6 z-1c$EKcT>@1YQmi7BboWhCdLEm&;={$vU>^p<)qrp*I$7ru`>i}w z5+WEjV55x?Q4uETE+JbiOH!d}=jPT;2WC_Z{T#YjC^5zn#xz)fHp_&DlCDvMGFyd> zLr{%^&MA#}j5lPOx~lVYWO>s(Y_^<_sKv0@@XJDFD32nZ-NF&NV1RnkCnnzIpWFg6 z9i!m_fw7uC9j?15q9oil{k8hxP;4QEL9e%j6dr#PNNN19Afu6(a(g~$kUe4yURP^?KXmwc4^S@FkLI&-QrOUVbT<-xT=JsS|-aeX;-PHIvBUi|4 z+y43PG$g$Q0jiqfmZlK=k}QzaY}(^Ho(a_0uKUO9eXrBMGJ%Gj?u?C+mI)+$7|2dg z24vd1SHFF|acs;jJ5jw~=uk=(OP6foBw~`B4Wzm8jUp>^#1|C`wvXhgiy*%&{%&H$ ztCl%qelwM>NFiw%GY^|1qQRVFzVYptrTBCJIuk3^C`02NLnn?N^K*?qW;KgftyyH$ zK}hG-cRmo|E9wQgjaS10gI0UKU1So zENeaWL&Dt7j)}wl=3v(0Z?lAzy7uzB6Q$(y3?bT~eRal{V>+>Z-i#xkpDwN%$P$B<_68 zusDui9R&hk_nl=S)fl4;Nc5n5YUL~eQ)i;t*xw5 zBnBd!P~c~EXU36?g<8GMtN!>CqPH9KSH&c@m6VNzNtOzVl!CPos7v|URq$|iv>ASz zxioZ46jk8w^B~Hp$LTO7AGNsF$QJ3UGj&MUI}=H=_HPAA`+; z&_$63p|@zi@`;F$it#x8>#nYj``o=1trl!+Ys;9OLzQZ7U|=94BQpreR4ff9t0O&{ zl_MwRvYLp(rViG6;I@awZ@&>9W6I9BrPQfnZx3Gv!jYkDYF`S8L~X%iKpiaA|!Aqg^x_%ig&n-bu1XMId4O)C@H*1zuUYAX4BK5=Zkx>DP0u}YjIpk*l(uG=#Z2Yc@siccmN4>R!kJC z^BwK-_=Fws3Z@HQD^h-D{?x0O=2{`S*Qw4>swhx8(r#R?VMjdJj4xCOtPK>L#F}oc z@#8pqA6Bq<+j@r^eL1r^5*C_kOkF0M2@HMdT9tv2=SjQ!;oN+g+75HkrMugV6qaef zv7sUH=IvUCoAIY)h2P)Mp&Q?yH{PRkOzTWV^bZ(rULLQ*QT>p(4;L!t`8NFBjusd} zfv10YLWiuU^JH8K@}cCmrb>URw;UQY>8ER>M7U)^K%v!zVr@L}>OSPfGUg>Z6l z^#oUoN3wwZ37=D~69(u~5pO$$q-vEjn7cxus%tRgFQEWM<3QJ=fHnQKm?QrPB@zW#3fIkUM+sF|XQd*85O{Tt#* z^Xf+o5_iwf98;>SEF)~E`c4c*(OM#WtEADmX3&{_XC2mi6WQ1M(|ylpUF3leTL9^R zb%XwZDRP5VZ4R}2veHEEe<8uq0szR++E6l>#Js?#Lugop?wdI!@eg;h8W3iFPH_|# zOc@HJdda#bQ<}!1&mV+5SyIG52wRGSBqawne}&Pje7^xYst-i%UtA=e`3hzls`$sP z7DFD2&XR?+RHLkHqd9J0^R!wFJy(GAO-dKf9^5{~#i4Qh z861?}MBS=^(wgBbp0)8rO(Il}QoFI=4jfVg$`n#`R1_2yE(TJ;ApEFAg*Fw&NX0N~ zcqu0>H#eTo9NW~zg>wn5Df~;gGYvZnOE?`(5C~?I`mwb{)ba8YE~DLyao-wz3M0eHW(K=Rz7q|rvT&NrDo~l`{a%Ji+Bhp)sJ#xHJ-Zo{q(WU$U=O ztn+vG_NKBv{idEeoG;r=t3wC%sQO=ee-ZI!>oX$ggBjuAKU!^tuA}*(Vc!-eM$qo{ zuosjYqDr<<&zEbwYwcQL@EvbaqUKB@Wp#a22_=A@5a8Hq-E|OTIBlJGrrhAn5!ibd z7Z+;TxQn;YkKo5|#%FqWpY`h`Qw=x_>e#*Ov41EK^&se4yIy(Toeo+=%s>P5z4UX@ z{NaQZ7YPVDSn?j_i<^GTv$-=JBE(=|=y&cTY!zjPndb~ECDlL-mEvObpW_kb)pFU~S=%Ttp?54fKW-`mXgRAu1=_SyYy3R&=MJ*4>^jZjVn-Z?xF!xwujybT1{Ke#-{uN($UcY96F=cuh9J48O+srqaedJ$Mp)WvJ0fMo_o^* zPY{R(TtR@3RW;daeSZd^PCK5zQ6osjvm>_|fC95XQHN4pAoYk~aF+u=ao;6OFx*&p z2N3FmDq+#IxjD_7(}IEm0OrG*!g~9Kz!(@pwKQ2zBY=;=b@{qgx3(!r$cRS9U7oD` z>m*Ly60Hw4^&o5OzWaZEfNm1>{?_aZ^J*;LWiv|^EVLl6sEFdN#mvU`b_?FPx^gAq zu`@1Hb?7lwd#GNnIq9ExC!wFQq#fcAkC5>20{UYSNjX3}-iz6EA&QLR~lMxjC=la`|kF-=axX+4M$ z5!-t$AneLLWuPhXeto)~7QR-_;dMZIM`y98@ImMv>-0LWoj>eHntZjJ zN=sNy07d0oBNd4uY?SlN9PoS>LHoAq)CbKyIz0M<;a9cT2^vkAEtX3p`UJD(DGYxk zC<()MD|Y@hNBvw}V#Q>+(9zRRN z>|O zRcqY;!0y;d#m`7=QTO{KzD>rgqu7LeajePt)$idzqwDv-TFb731Dhm!7bPx@Gwx&* zgUTV?sXK@!%s;rWtjWDpdbPV_@bu>fD9e$u$Qdyoc|*g$ogT+5z2UCs=6lI~a(N?& z9hZMDnY=av_-_7~AQ`7`HS9|n7_0!>Rf3llCcI)5*vQkJ@Px)L&Yx^%C?IMJJIUMI z+e(>iB7#pEBq=M^t;g^BqxqAL#Ym(cL7`Q2cDvlQbawdj#1U%cSA3-MCc;m2rN<*-gV3DZ?7@56@=#xC74nib)1K-DU66b=~KvHVjI$pemmWOAt01UMJ;NPx3=KGU5 zUT-gtl{RZ#Uguv|A`&I=>SuGC>+#RlH5^WUS+U?ec$@-UQrRv&W&9#en(h#RI{)0~=|99oW2>yI?7 zX)oO_CcO+z%afNZon7}?m^0Pr?~J>L$H&44P96mH!Zdx&YdgeLzh;C@~1pcShO zalxp=wRG0TACfFL(vbyJ+#R)l)do%Y%(~(Vd82$Y`h+>HhQh{BQ&&M3&_z!c*CTSr zof$^(jF$J`7)9Ay65{6}nP~{e#`Z)<%PQ`gP%KX=&|#B@Vy4uWMIxrAnj0 z;ficbOrOshS)|o9%x}oZmeGC5E9H~efk2G0NKpeGxecmU_gRWoT6Im_PGwj6y^Ush}7smWDh!Un-;lO zKcl53GQ%VlTmZyQD_YdAcV1YjyU@C==jo&e_@1Mqd){P{ahA@?+{vUuo|_VO+{8EB zjmfRfUeJjYW~0#)L-( z8zy`d;ACR5dwIBg=maD$8|Iu%*?3LXiU?&LieX_8$Z`p=P9krq1~er z6V3VpMR2Hs{MY+}#1!DEe;Tzp{`&Px{G%@-o%#r!%6Ezjpp)DwPJc4rL@wIhwCa1@ zBf){uhx;?={P29Q`w+;?&tULK^Jq#&#<$jBloHfe z;O#NVMdS9pD<#4Z4!CA;LxQ37HT&)BkX7h#KhU?k0%A?w zsK)mZXkjYeB@a#k%|{+8n4O1w#w+bAoeUDY=xXqj*OUGAAw7ZK8A$q9%r32Qi1NX+U`>PYg6zO8TB84!wY+!=x?GTaK%YMNx0%sT%RH&*|=&mH5L3v z!7qMewu^sj_kP%lbU|-cQB(|#2>%g+I#?p&b4BBfi1KnXucjt^DGkVLpFq6;6fq09 z#UF)k<(eTc7X(CWjz1pp&^Y)9)=D3 z>9E>b{|l(jp`l0My2Mrb`-g+#M91|`{8IOW84Ez;l3xTWA)xG`f8QBbMi*B+But%baAwPq^^&_DnsN;(etfzeZJLU0!9&qrburSnKWwd$b~Zt=SgLeURzYNG%EeKao!ff|@h*#zG|;CWKzAuhY6rQFoub z+fhg2ANS*AC@Op>Y)5~^fYld5F;L4a+RZwR5S~Gq#dIg z_88A#6?;0MHZGtnEZtINyl*5B7eH@3@dKfLgG2N94}Cd0vOR-ol`?|=^lN{f`fOn? z^&EM{Q8oj8n9ni6V%klFH)st?i`YW>1|JoaFB&is=65wp4*(lO;7iD1o7ucB@~V2{ z>L_(6EMyj%dfj>o3I=UJymnzh+m($(C$PR$Ej`PnJtKC`kspgz-}>NRKPlx8Y!~5w za^k;3w>rGeO|fX*&GRIX_!3t4eRh%WSXeAeWQwK#eCt^%mc#5LW+*^x@4uCVt3WSL z&dDJpBiQSnB_DU5HhtH_A?w)HzS_~K^_u(16VpyVQ0fz?aM+~OD%f@7R+icx&`4m# z=Itr@(V2U6V3P*2bfALSFYc04uM;v(<|1wgtdphH2vAXeeH!Ii{v<0cj^>Q(kF_My zwTOK#j37{Bl=bZ*fmCQlKG^sMM7%5dA&2EK45~|lLu8F`6J?}Ot4!4$i3+O3=BuQu zz9i(kRjjx2g#DWzXqppR+@*|SpdG<$7=9*y`L^G28LMF5y``8Pup2}Qrd7Uk`@Fy2 zOB7A#i74$2s{0XT@P1tumlaJM843UJDB5NY2V?e2C1fFNj*6}l4;HovI^t7(a`KKU zv_XCy*@MR*6gbAvDpIa%bZjgpIvP8LUXTe%LsAmP5V;c$iZA#KrW~_Q{Lmk9yk(@=x(~SNAx^nL=|{WL`lz3kSaWL7P42S6w&ngi-5i zijvq)VM^i_Km(ke_r9r)^TSxjzaI(2B$_6r!Pae!lp>HKe7)U@Bu8)<91#KNT+sgR z!0+E7>QERzD===L^=QEn5fL`X++?%Ucpey>O3dGo0K3jzYTy)!T(0L|@qSvY_7fl% zB-m7se1GnH7joH#D}Q>rJ)TAEkqz95=i~UC zJTf7RL52AheuU~T;2)_9t#EX5S^pl4W+!)qqlB8gV}+tn%@=jRX8~z3aDRVz@aB{_ z;X<~JdI|MUBDs>D8X+%5(nEd<3#&JCf^8_8Hr>Z@=35RBJtqt$KpsOA!kZ+dLHalb zA#f)OyiMwh^gW@E5_LPAqrDe4$nKaBIkx1@%r)jw& zUydl>J;wUsm?R?!QQw=AtIte4c;6{NfwwNB-P4a z0mcIxg$x5|cx9k$I8C0f%g#VcURhZw$3=63B90RWq(J)dL-Xhj0GYygm~T)Uag2x< zu(g}@Gqc%TUjhtA(na|gT0QEM(`u^&=m&q$n?GPpM8gtOiy#EUv?aNGXXYe@_D53W zwOfcHVs55uw_gZTllueksuwL&n8IvnglHk(8wUOgacOFMz1i3#xLg#>=pKY6YSB+o z-bB_&YxECeJ5hUP8prV91x>^$Zv6Ke;ZO?uVzrlDn`j}{>-2XPgr zMLkolPH5sww>V+UxL{7BSQ$z^$nI_k+hZ4xh%ZGw6!j&b;c{SwF2E`ure`swR|4qg zpsnxqj^vZTr&j1$XLhnGBpc|L7Mt17j*idr^726WmXP@r{OABRwrlRQX(Nx(OdGgN zCgQ7{C)@$_%W}`nbN0R$$=1XyfN&akL~5&NJ+RHbg`CeI&RR|9#aocgz|NcU-_)O9 zu6u1nh??z8u5_7TkWL_Z0xWNC!KrfRq2c=?cBG z7mXGg2mMp8&eWSKSX*&+M6ivz9q`wwBelqna0o2=T#c+0$U&5R7Ella_~=? zP{-VIt=+}U|566uve)n4agDGO#jTG-@nY|n_$UMd(!Vk3bib@J&dM+cwFgrUH$~F$ zV+YbsiRSg7Iz!XNe)=gDc?UMD@NhbpeAbCH*44Docz?3KcRZtG6!@N^G1E-FSP*R= zOSIp|rf;qKw^ESTt0496;`^AgU`;K6SKn$~X~{6%^*D=ySu59J%4HT=_3NQ1wk;Cp z=bCM`HeuXE=7B?CzgUTX!E>=$LIj(og-WzFQ(0VG?4v1hJu{8)>>aU#nR|#TZd3jJVATHSkl30a?GkY=}uO zn445A@T2tH1{>jr4+>^YeEGYQ`goCk_u}MeG#uWr|8SPOv|t1uv6rg$L{pJE{y?G3 z-y4REP&yV$V^4vy+2c4P_L|5}(vgs%Q)N8d8iebi)Nz)Hqobos5K#n5ls5~laOqWF zfVcy*kwi6V>r}1~;_5X(KugO;UPM6g37Dq5z=18mWZ4L2nU-zk*fmc|AQSnH1|{jv zMTGXB_ZwyEFBxi2d)0?@EV+)z8NU!u8JCN>P6*nUQf%aJOmcl2_dTRZ^BZC#a{&+r zbHB9+9BXBBb29+;KA+?7W|%iF!ZjM_=t~7R0bE>;{v(GulpFoY*f_vj?|vbYYm-?V z)*Y+@GMOGzIzT}I(d+Ig`pzEKiGrAA5y#z+S2`h{b0}{Hm^Qt5az6DJ?VgGn;&S-t#S(_{SM<#9eUC z=}aN4_mB3)LIy94k+G2?$NZO({X0W4zv3A%Q1@=WhJhzLXYK(J2R#(F7=K2bN-ytR z9O%aVrtb&rpJ+C9^!1T^+wH+@NoT-e?!TjXv*E43YDel;6)(&XA4?)2iu?+ljC6B+ zCsB@yf&u^rgur#cZKx9i!W@ct~w$HV;76=5gv0-5Oujd)D5DZxOIIq;rX zFF4b!9j>$R8{qfP)LTet3#l}`TE<2t`d{E(AOSMY$lu$_aGRd#j?!t{8Lz7x6wecFKp7p{+w>n>W?JQ(Y!%rNSE9O8qyUd zA4UE3P0@#Ds$-P9+_qROEN;HZroH1Tl66mPSnA*>Xni1UckKIl6G;sE_2{7f{zg{^ zGJwuRQ7eym+R%O)uaYyV_1b@=2etcum!!+g8n0w9qbIz8OuwJ?mA_9`i|JvD?r6RJ zaHsEXdL%h>dX0VB`0=ENIP!M4>QuC-?m=Cnk69EodHz$!Z>B&3c!cY{$u6Ht{gJ_i zNtU9w|32H2-T=9)XUEi+Ix(DOwv?$2UR#HcE)Umz>ox4YkF zAp^|P3&0)UM`_jIngRJdu50Sr%PebQEKak1C;wX4>@7*8-0~om!}DZmQ>{r~pdHvR zRafLmg}wS>KhqJ$%gzIY$M^OK*&y(^DgJ5k0d9&%qjxVeoSnQ@^_AI{NF$WKpy!{G z`LUU|p~idVQs0w!M$Ip?px4s*!)8NP0g~i@1Wi|g1dVy%&kb41KLHJT^8pC@Jdz4R zyWIG{T>e>9SGTh}I$Eq6m2EJ-6$U~F*7*TT_ASNyRg1*f*cu9}Fap+=mdPf?FD8cr zUmPBP7!z|)ak5?^!QHs1VyFfr<^y8Cq(_BhX^SIt#0JlJ0z57g0arrT#hk`x{Stk}RANzh) z;)c9HBXzF=36AEL1C0-{W&aLR964|R?3Uhj>)uz5-oO8NfWcr&S8T-P637&yNFcfT z$-XO!5)mktzR_+T(+4*X%Uo4MLDokju$gE*O-z+-aM-#XDk!^{;`El8oBO(~#om#1 z63?b_uWFo#_mR^fge*b|#gJ2P4fQ6( zt2(r)JdVQRw-Smrg5HeTn#67n-bXa4q}%e%mwEUjNh$uD|nCe_>;8 zS*^w!f20Pb{Q9joBo_T^@$1W^mbqIcO=^wH>to9m!wp?^5ZSA(e*5lC-3Pkk*)(kV zFIDz+HW|a9htiM~|674{X+9QD!YgmN)RNb}_ZpD^#+*F|Hsg-oFuO;D3P)Rg_Lu9? z*8ow3yimAd?6>X?;uyr#-7BtgZQ^J{W-Z3wp^GhFQznC0QPQowj_%9tpCyeNv_2Qo zC|0z%zkja_-7TfWPPWk4qF1FqzEM@!w6coeb`Q#2*N&6WBTcO#dv&^f>NB}5vvWo! z)agYFJ_tc=>=%!c>rk$pY+8nno}J_Lgxkxra7UVc+4;aXpg1<&$F}j(=kI5CZ;^^I zhD`DEdTT%~FO>7?#!J0cTO$mi{M=67HKRS&-B@f|)6nzI{pqN0R1~a1vUC;3lUV#8 z%pRm4p9Y0V4Y;AQFewBoYpWLzCLJti4Xfm=Ou*y#F*<8AwFokFX%&6AxdG4L^ZNbW%E|yuS~7F#rV3_dfU%o4^M(pS%Vr($=N3KRQeM*0(hU4(vuZfg%IFv z=XuWt@Beyy4p+mtpwJk)%f-gY%gpow3~0cqmy?!$0R-*R($X)(aUDR^0?3U46eYwt zMD;qR<+^e;vjiqpl1KBMFXv4;$Q}M>KOboeoIgX&sB_EC!dVp-U1mCaxAB0oxI7z{nRN7d1z zT$TnOadb2+ZNEs|A+nL3X{XXBxof?0%~f6`tRT@)!mui#P;5`@d9pyeP|i5oIX3TO z698BW^MFN~Uo&6zX6iQ!wEqF%V|}hK=pBfpy6*bCJh%iO0?Do9)$O5Jpm!(s15Uty zGz@^iH8J<@5eMwu#$;xd)BZ03$J*Yn8x2qMs#_=rYI9>1l^YqdQCeX&%?nnhH}Ykf zye1Ea#t#^i$nZ zUOP&{PF*QZHta&~5Zp*q%M+&zt-e%i; zF9@ZDsNJ>7Y*L8B7u1CL91vReoCYjRkXHNS>vtE2%&^{(lv_ovM=7-b&PepECI+}V zH{}JOe?rC?OYuA%*dy)oIuq@%Iz78xovtzM3EJs2A$d2<@i{CXv`UO};_*FMei(Lm zb%0{ltA)D&%%1axKV-}-EG273xVNXPd_V#@&+lxdH$X@dh*Zu1HjMraki#--vYG_4 zH;8pw?*$F(U0zP>ojg|!`YcG$dBDr+0bO--3IK7km4M$!5e_<@g>i8K>?U4^zy5bC z)-)hs_nr5>2STm-n13+#IJ2fXBG-RC99ir{%?zjH#`6uPZjxmwr8VHp+ctd{W@u%qh#Q26h z^4Tl@@#0-s%qXDC^ZPe1c-q1IoVPpRXvIf6hC6^;jd3GWaf&#~V8b~K$WmiwJS(*S z{gk@jy!hLSqh;$kJjF_qQN7mXy;Is_J$Ii!*^_lHKh?Cix2pS|+Us)Ok>>V%vg9wN zEG4BcQak(4o|=u3@dKaZT7g6u0LSYA5B0qF83VgtR_tLj4DfpmYnA{78H_Ph%^*rdX`T%xS zL|a8!dBKKzBj{b^Y8r6Mg5mVN5G2Fh&4W}7Ydv?J41=!mZZXr|fB}lPN6`8?UAk4- zZ9-ZELn%(FVdbpCuA(bZOOB1=apci6{o+^)f4~w$SY?E3^nnnYL`0k4T)B|@g7mhGZjw^fYnL>qXxQ3Zw zz5@CX6D#ZF__$HGcY|pi;+F^vAUna4GdY7Bego7V?l>4)a^HhOAmDCgZ4Jx3q6~PU zEx<5?8xYlkjHY7eWn{Fv?W<-he-rl?0hGb_BlB%)KfnRh)YMG605V#V2I$1xNpO-3 zXSqefNBQep*;^r&nlJywSz6w-Cwp~|=eJ;LHLN&AaB#J4QooK!l8(@T1IiqY-35pL zmB#BC&P2MoJ$gP}Xe2fLSm|&fF#8r~LgC@2AC5`dRj?Ml2_dHMAb{~}56E>4Z#i2o zJ^33^X<{ViOu-X?Fn9d3_wf5M;=|c;bbf6e&2>w4BK-i@wD69fEvk=$Qbq9(-m)}J z#swFb!pG8zEid@85>PIm00>7eZ`6XVVK5wTQ^Cf)rKD56i(9@{U2t@@Z9vrx8e@CF zhI^?(%lc@cqW&J69|-9J=eO@-098Xnej3;M1=F zebjg#J7BLN3%Be_2NO;@g^=z-~JmTQk&zMeYfZ96V4d9sr$XGBd47ZuMD z0DbDgq6w;l?+9pA_ShSkm5( z^iVkcE3Us;-DN``B=OQ)1|-s5<0s;7*&NB6wfD7&cTsu_%VOhWd(n|0okvDySi@JgbXSRw(X202aK7>)rzBOj6&_qGMyF9)LX; zb5ST2X~;sbd^@Od44q(nOlz@DeH!ne{63_Z0_SZRZtuVfV9xj!;{V}8<#Mo<@pYvb` zSEkRnrEW4KZpDb-)=TjAJUlU0|Jw-ZywSmoKm`BDa#ew&GhvcQ*+{kCBY9Xz3T-Xh z1^zbMCew&WzAR%Gl!d*EZYqg2@*wJslDC7hn%HYIly%>rW83l%3`LS6^B|Ml+7&Jg5Jivj5`WYWZz_D8oSc$UQZBPVr2zum zKsvn*p!ysWfP5++49a1Rk)>kk%5F(cJ8?CBY5`i zY2I#;JE2``+IR%-su#;z!ch{9&TqZ=q;YB7Y~7)}@^72S4jn-pnjDS?NaOe)l9MXg|JvLTk z{X$7500jHf6OyvBvc7*;tX*xkZ35x~FE9QOaZb>%afd6dkN{*Xof*i4^z7&P!5pJ^ z?P3t1EllYby$Ms*y%BGHZd4|K6?MIx8~QanD}}p#zx(%o-_W>;JFUs3z9?CPfcjIZ zS=U$IoSshUl`85UHoqq?G*ESt2gxnYKDtxTR#jMV{xp83F#MrzJHhn6HwljL_Hn0| zHGA8I;1B1;Cd2{X^?!vE+BR&H9#UN?nh{E;7#;={#)k{GByD5N@#v{7w(D!3Tk#3@ z_|E5KYU5oPJ~w|8)Qp}`@NxV$GC|G(24qd)UUU-P{&4Hz=(spgBPL7~O*EDl?z`d8 z=BD|U?I`Crpxb@gfYjP~84P&_qAU#4>eT#ZE$h3OtYEG-@^Jb)X^G~$>_SFt*5#=} zH*WJ0Z=p6rmCD6n!^%y;R`t+w>FDE|&fvsr(@MG#^RV}YH_EA?3r>p9tB&FRZA24} z!tc&4QM2h?_9zn))1BuQhYoN!nR3SI=AVc~O<4tyX4#M}p8`XZbkPja&e(}=wAO5y zQ{TW#^`>AvspSx7%Wt;DRhovU%}&LZe}^xGW+MJ-5ZovMivhSgYdYO_Y}D+63uXsE zlNxc-)=mRk8Ccw@J3MLWG&HgdY?+056a6G`z}jP#l>9x)4%FB#My=+V%?&F ziH9kA@-t7)?J!Xeqgf?JgF+}nh2obe9sAJSw0j58>$B)ZFn@IG8}^IB zpQgMXTorTEw|M;C3htv@hbL3{pl;K&QmxBe&D)P?(5{t@+aM3uW%Sk2qW4~=fxz@( zP$EQb%9+w?5r1%l;lCNWO%^aiz}8pNR`G&Un-l|F}@foojsHEG5 z=nt1%BLvy0JJ#XaxP%x_Eu6K2sN03VmBV-QKdLh=UM2mtJfesd9dl%ABrw(FpKz7o zFP)Q5qr{0;E=0*-zP-8v=)Lgc=DC0>%m+owDKi{Z2PT0_9g(MvquZe8!yv6{HU?&9 zY7&1a^usVbSeQohMo6=vE2JHa%uFfgyLj+9}Ez;9kGM1^qtm1(as}#)OLHv z{C`3$8|2xZ%cf!yvV`jjP>8d6E;dG!wH|IntlQEp6 zV`{9A4uZP$Yn9o1&S%2fRZ}KjFr)wOSMe(gUW~0ypCQFO*8sLuq^P$6lAOLsrYDlV z%IOZA#*@(vOUfi{Mh$urOtxYuheVXiGDmiPoU#|?X zi~%vS#f6FDgfeg|P{9>o$DQ+x#k6`ixEI0unGOG!(~JLPWHRj9zGbrZ+%y^NY?cj@ zBw!W`j~sy&Py{LYsY=gJO(q?tbTHLN47uYy6>6%1vTojx!jAA`t2QSw zbp>30^*0sDy{5ic#Bazi2|?Uc`c<<;@v`^$wWyv~Mx26=`5< z>L+*vMwtVEVXYew9WW<`9`fYJ)APD0CLrMRD-<4>rVG;4#L;>O0=vMt)Vc@Q1+7(MB@+WF<4Pi*4-%k74eZuOh*S)$p*<5rJa-vcDp$tvLOc3>l;*0`s&WC2nd zy%FVTBGfuPuI#iChYD zEj!fxYtzch+w(aXSR|b)-T#vFBfv;S*j1|%yq{hypehuzC%?|-cK=^TXB8G@yGG$* z=tfFP7`j6QQ5az8?vk#dBm||UyBS(Q8l=IW5+nsdIwhq`B$N)R{kji0gURoDzvo$N z-3#fT=;H)lDzdV&_jk7dh8jet?!TYXkOW-4naAqNhdp3E6XN5`NNt|fk4cc#aYt(0 zI!LuACH(=$g61(Gg6M-ls4@yH;|ZliS7&ySQwkw<8O?8zds>-P=p?x*DKe43h=(D; zVX8Ml&2QFrxs_qAA5i@lWNpCKV7l=l;w{KU5{UVMPit@xD9C$n|S(Bi57^ z{u?5O`XHS;_83b3qIOE}L%ORtuwN1-@4SJ%4UESu6Fy1LeJV)MCTHIQeXlyLNw}u@d9~O}2ptUE22B>UYLn zz;tM{O)>&_1Qha6O?V=WN=*@z5_Q%S3E_0O!WN|7ls? zc%yZzg!pHI-z%ju+4`npje)BjjAL+#*K@0AW8z0ICQZ+5y7l|)g=i4GSNOQ+ZL35C zR@kp^|9hY>edYBVvu};R;}Y6;S*(9&YWQb)}e?XQFp995-g-GDhyDc}^Kh;E!YZ_!3ErhKV z^A}5h)|j*$gG+C&!GX->OC_iHn{8DR%5})E>B`w~{D`a-He1dP84ENd)RNF7d;T; zjd&pxou3bjvjcf(x4&$1wH)Y$pW;%zY*zAF{BI*7i~I;r2WFW=r@~X>J>m z6nKOZ9-m=1Ygs0msqamu7%%JRIkpXsOLbpn2ET4uV1^FJmP`&Hxnync2k%QKXtZgVg1_@F zl8--(cHD^zz>$wO2hajeL;~XUCkllE;^U*BD2X^@wh>#v%{Na0xG59`l?u2$GeDWA z-gV>iBM8GtvQ*7hBifGoXo)2*VZ+1w`%bly-gg(B_x?Ktkvll>xJIk089PTwz~+{} zE)Z*aTQ^JOj$l~+&l+2vX52YWsEjNQn<{vxFj!4>xbSDQMG}~`3Qj`l3nzE-y7nGN zpk;y4S0$Hb6DVBL;Tsdyr~56* z()beAK@HFUx>taN+L@rVO`oTZ!$eEqQ&S1oy6LV_Hzkj>82PeAFw_;M6z%exehwRr zJIB6+B;@x^zw`iER|}j(%Jzq$l7eU=Uu)Su6_=DSMt`wD*c4P+pY|9aD5McHAUizq zpBvf`4KHqdUAgg1&QYbn7WS}|4>_S;ra}laQ5MwY5Cj<6668Yq$KN|MB!vm-uctpC zV}8noCQf!5X38f@tBk>bafO+AHjau25GBzI(?CWoyj_oGS1h6vMB+3biv4K|J&%vU z%s{RPo?`!Q%f*)9}(g{pM4WM``TfKAWZK1+eeHU0*KsJ92k|WEb&loGcM9cvUP464d89TW6zkY96>c0~=1ZwDXa^{vv-(I)m0)Z;k< zIB$7r+VQEuZQ(~gtztq20!Bk7Z6WUiAB-TREu@ip66^*hO-VEt7Fog~3MSM?+owZ4 zJ5h@Wrl?-LVb+mHpOX|I&PVo#eo4+Cc|TD#e}Fw6r}55vhk)e`Txy+d+vqD3vKU)5 zzuPTXU4@dJgdLq)>vEpEb=$vNq@vq|4;&X36=;`1T8WY2ks+SyR4d>>)Z?PyfFBLR z54+Hvn0x>}l%G5+uL9?)QCc0>eBH$PjOGQ^rO~TTt4R;AA9O!n2UZd)2RDj7LK`lO zGN};_OWt|6$t}vZixwPw!1ggc>J7n#^ovvlj0S81t}-TfYIn*SKj36y<@;@=8Mvy^ ziz7TijAlnaA0MHoi|?ioguQBb2!B)|uU@(3yEVc8pD0}m+g_TL@qZ)fIca3ZKd5PF z-fsxm>m7#(ij}0Mr_C!<48p^o3dPa57HMrfp6sTy2q?KCf8&`Pr10cJ zVd8|$Br4!E`)p_0-Tk@0BmVRx;Kp0XjbI5peW+Hb3p&pwVC^i%*S_==9vNZ$MHeOJ z;c=CBhiFoTsL>PSm;65xiI4C>CSYOcK;%N_CQX8{hz?~*80;}cu~;9o0f3bDsGwfG zRAvfW=&c@>q7>h_eBkwg2thzToJvtXfljIWi^fEcLOcy-ZtMf{68HVNiJ}_Fx_~eV zS|$qNY8Hggg~5Z~#GV-brLmfThjy|^z$i4L$8)*fj(F{oO6yRwB4pT?!an4i5Fj=R zxpvt51WX{>mUl(T6Fs0UC88iBhjIs!t?DgxDI5E8rivPu(GL|?|KL3p!z!BhOg@hp zGo+&cE-oJAD3nNJsDB1#^kDXXNJV4h`Tl=3lp5HVu?hs0_%Ck2#Gd5Jf>yc=$Q%Ua z5?Ux86-3_uFdA_B|Gpnvk*IRjP?eVS`@Uhll6fBm+Zy5=FV}BP%UH}5ETAroCkezb zs4FxvRyLoM!c}J4evgJ@{av}gy8uN)-*BQm2~ey_230T6mZg@VUA4vhXrdG3U2Ql= zeoMR!8*!V_`VwHoX=qwpG?6_)P$NirG>?O#Xfw(%$Z*vNy|KsNi+XSk>9m9*FeXRD!aR-8}9xgUKb&r ziDqav`Mjr$M-P0m0E7=C`KWFVa&359N}rq*0?M-_{`_Q}40Q<4eJ_YggfG-WE)uL~uZ+c@0-%IiHxbrV1bt>=0a6GL`N z0vaq1d#2C|*t*&QpRg)Xz>g$+hQK2v)xb+dd7t!az!7ogzkcy_ViY}asRj_ho9*Ev zh#{3YsFVV=Q)E2sw%a?fk1lSBz~@)EEn<@j`=TxYNs%8tad(+M2+VrgvbXxhrj+l` zbAQX8nn#@*1vICP?h90*9X0A?rJ6gh?u=K>ExPK*AKfI$zhFX;kOu#j{`y#%B;8!o z!=BpAhc46jq9Sy3w$9v@p^!o;oaKgyvi4$VX0UO&hR$*x%Ar6?L$gx_LEGt~Fy5o- z+R)|Z?DBH`2~d<2&0k<97QB#d5orx#j7v%zGK$>7Z^#mIAnn_Ti;Dxw`Vo0pk^@+& zK|1yZEN&J&=$GK=K=|o@)Dlqak;h`AmkhY+PhwV8@jKg{rZSI?oRvA$w1EEWy8shJ ztLs|#zl|cPHSqrK5_g;cg((CEC!7l$o)0>WuU78BaI2)DaZ$m3_@H5l|Giv%@P4R^ zOyDBTTO-VPN;RAta$ogK!EoRD)V#+NOMYzKq2WgAAxSymHRX<+tUYAjWztw15D zzZ!ya22Ao&japk-A?6jIsWOnefvo}EwV)5Y<#**-BCk4-1Ej7uU|-50G|TS-3S|T< zh5*zBT0W2h{p1e}R77yFIS?I?f^G<^OXi&`5XS%G5rIb?!UVGm_P~+Bj>ize{4m+< zwgFsLFs^n#M!|^sAm4w2ptptX17cNh&-~JXO-!#!?1b25l!>_X6D7^6)?6IYp>rwV zx0j+mWshOcJAci{2>2WtA$yY6)^67>=7Nz*APRWy&7{vZd-{`{mrh~+I%A}W*v4Zq zIlEYq!6ITAh>dv-SQN}63O(uv59n!V{243r%ZANFWGU#$SyDLLwjr{79Q~x)Gv^1` zzUTX#NNmo)4R46Oo>PRj<Uc75$&Zz>0=99W2 zY>gX2u|y)yJY795VX$1?dEt$|EGMhteC1cNe4JD^{TWX;W2{}d9CGk&_n{-%i<&Y? zrhL6EDaz^&C z5t`-g{i98^b;q%jWM*%woDFr>;_wOeE1yd`Ff~D$kze1}l}X4%)5*j{O+wJ`dw&T& z<@)F1Vgc5z808WKPqjX?9yVthS26ml+5RmX&sHNgy+MxbX>BL2x;c{wX(yy=qwibv zhS`^DIXM&@w*%BQB58LN)>INU;7S0+QN=4S$+kX_`gnN0t?8omeV|v(?@xwlQQUQN zzZy#Xj@t*!cS;`!>zvk@e2EnJ*y}m?ygn|P$s1NF=DQvcZdYh#$Jag2@jP|K#f(c+ zLSJ-fc|jisd-og!%Apt5;S{!wMpDidR+2M=?`}YvG+0TcGhW6{F_g{l1|P4d7QLNT zUwDsybNIh5<-ku-uAT~^JQ=JMDE&(S==*phqp;`gr0dpmb|UEDGjQKw^>J0oD3e+< z{}s_z#5+98cFL`X6_Wy=0&aaFJGU1r8qiYJOhK@f1B`bIIEEi|SlQY0#NVb@ols0( z1=|1{9%6WR`$9(toVq#6`ezrQdkhG`6m#%wBy{on%SH|Hvs43S@@6H!K!Ejw2WA0R=?8Kmc;V8Q7CM<|+Noj+ z#lp~9Rr1O?)yl}ol2v(5fTU2uz|++Rp=Z42Z4vPdu+p7+K+Nj?>w&*P@&uLWb+(&+ zWqsG?vy{EXY^wpD6o&?^_`b8!X&Nr`U{Jypq@>8T3ocfmfg;`mKpwUJt^zEzxb13_5m z*y!J3>wWHQH3*hav^o}zI;yEXW2Ek?KC^C4D}p>}K;O9%x`@iG1YBv*5K4{+eq>N% z^2_7m5xrrP>qPIOiLIi}?%3 zjFqaU6T-FvR3Ouq|8&*k&vJX0$zXf#HrN!q?T-L`n?hJWP<*g8lmT8-ED9jTp>t*} zuWdjfm2Ew>fCB#>b8=GB5lH_7+b5nz81Jmf|Jt*z4AcG+6zfg=`6+OgDgO4{I#E0# zBp)jVVKi>H6GRu(3l5XW3eX0EZqW|t+lFwdl_>clMtmb>W#x1})2!@l{60~@cO&R) zIss%2x{H{PfsA39k5cW=Nq)#+KQKDlM-__Z0lF}eUZyCUGBnCKgir*KYNV;tls!Oi z)4NF^q=n{!LzSg=S^CZ5qiXuH#~i#%aLr(+afKHfTFllf%~zKT^9z8&g+&NsFBz3y7K(I1J7YLQjKv4_!MXtaE#PSa=k2b)O%4hodE3yNzYyhMh z@L8MG+Y;J8>WA&(d1J3KQ;J06-ehf2F5)XQW-|eGsS(J;piaXdbQ8Wk+r=D~Lw3=P zlZ{E&&OY%%6)uV``Cn~i{42=<3MuYZTucl!wP#ns0zeHEPhO?c)w*r)VyhotR4S-lTR*g(eF{({3!x{9@r?){f zgo;{tKAXA!Ew1RxPc@HJhKAP)+>EN}!*4pgrCtuo31odf@)%(=-10hX_ggC-s1i(@ zSBb&n)z6-G!senjC3- z2rN8Ym=0H(l$2DL&1UqV2u-}KWIE#`+^j&sDhu0ptkVssQE+t1!!8F# zv1k}soegd_1(d8HNWXHVeWE+R5)=9~Mmh=O$^y~dFJ-{_PVi%H4Ujj@c-UI;fiCis zYFNN1B|BV@1OH{H1etfZe)mPn*}Eme%e^Mhvb^^^u0Deh3&U=Ln~yc`Zhh!E=*qi3 z|1&VGh>!OeXo|TK9(Qv`fgzzxXkXmeHL6TIJ-_#}bD1yhw{UxGhrnAFQq4&#I8@yK zEU;q8__wL4xY7H>-vmd4*%0HAbwud5lG0N23Iv4`jDwaW3`@skm0cFSz9^^S)GU0H z4$X?E2jdQ`Y66NZEG({%g&`v2FM%&3?t6;Jkzp7gwsu()$t;lE;UZx`;iVI<$GtxC z0dF)NJMzx| zTG%Cd?&A0Ik0z(i`!9@OM3VcFkPzL1^3!6Q4U72tkEjS>yq?6wADDz1?KawHj2Al~ zPiA7q=ZuneRYO}oek2LQf#bBN_KEQkR3msFB%;L`Ci=r$Jr6*}&xoW3yrd)&*glW} zk3g3~awzGc$3&srKYg>gNx|s*51<-!0uKcEoCW^`R~S!wD+Mp2Cvj1F*?fPpWC)1G zU94J>T`uIQpwXkMA2;Y`6{m>aHI7S~4OTzC3q$~9AWtfOlwD_80=9~J(pov++;OuF za=J{58F>vJo{Xh;$seSQ!+xQ!3@{3DgtVm5oH{JGJs&7dHmIr7q{iI#*>X|*PRGe3n#kleApnT)ca&>i={Ldq!gLGcw ze~K7;P}z{ogrj9lGV$HGbgJNKBZb*#xZMwGcr0V>a&Z{k)=Gc6I?!ca$Je^ zVlm03V8fWl){A1{NYbZzhCOqs;}&vXjQ2K^T*5NDr`RR}{3JWpA!0Hq8H?{S@pD1= z^9b05DYxbrHN>ncAG#QTIXZ@UPyaW?f9jWO%0QUvPKlB9?;NdZ%1q<&UDx=>#5mV| zw6Dgwd+ZH61N==)=zMx8GW||QM8If4{yqPM#l`(xRG`AI$ZJ!nN$$e2{Q#8eWF}Y) z`oon3+=gM$nqDfG_b!(i;n7 zv?Fy33m`6st-o%exgF8o)*RYuZuUH&DQnQLWPNoFWP3NM_kY1n~uC zJ2aKj0wdF`bO;zHux}z)iyeukLYXR?zDL0-fy9mB%_hyeF-W#cpNWc#=Jo`%i$K{B zZ=%*zTRwb$0#GnHDJdPkpdam6gdjhjdI^eUtR17>AiT?KCI zq9ZMCm<5zsBqTZ(PD@?j@g^AgVp0_z9>L$9`*(P$ld8Tly?SPfe94vx*?d23+m6ool|>#bdu^hxh8I~>Z&uS$jgh`t@fI@|jm z&CxJaLK?larrXc`BM{n%hL@Q6r~ZyRrL?TmeA!b=7DZTWxT(-XVS+(`Xzg)nN(IS8 zpPs(L#=WQXqQ1v>mKTXM!hgH3VzG%IX>y*3yjmPDc=IEIkd$-q92|4WIE`Xr zxLUf>sg62l$L)KnY&u&RuK#6LnG<2;(SGx>&wy0@HCyeczm;i+=JN-o$Io>Z zX~%V+*#UOW1!Yr@wSA=(Ofy%a?NI-r`bfm;D>_kW`0GKXZD(VJ2Ir+OzZ!H%v9~ZL zQnjE>YEiMVMP9NOTaLL2v zoy)%#DUK`Z1;Pqg@+%mt$tzNm_0#dz6}a!DN)!ntQTD7X0h1NG#Gh_p+SllMF{E;g zVu}8L=?rJ~-)D;1{a(CY0(RKN`}md3%e5;F zNpDn(p$Vmgd5sSdIoGa$T&F;$MW#__GRp%;;^4cdmsvaz?jWb1Sw<->UHm9<&;54~ zuFn8jDSvflp&k*N{2(&bNNM7w(}iq?&%B9o70>eB4Z2=B{?`7dj`Mihle~^*wDOYg z-f$GfW}pNIo3shjF!9mdu*l;S&C(g;RnLeYlfIB`7-W7lewW_(2LJ;JW~trZE0_Fh zAn;zwRti(DOEzMDG^Pk2XTVDS=ZAGag!`cqQ0j)cemGx43Y`%KYU#p|LVMM zdHJ&v|*FV zPB{6|k>^A7PuwPc#^H0AkUCRMTk)56U?Bq&H0Vy17O1G$1^%C~nz4yV8z>X>uk5ho zK(GU|-SRzW#t?W@GNOM#+Kb=3WB;@u+M7^@_JmnoE|ygs6?3SVO;~j~kmcoPXb?-r zx{x$Y+-&+YYx+fy0c76Ol3Tu~QTumpP20xBbuB0#vbEg?QP7i<6MzycylVx@RZ>!t zE|&+e@=l`w+6!z(5vk{sZyc#VKl^7loS|yXwl^B>y)~po@&)sFsxaGiAHKs63W6XX z?G>a;oHvoECfORafd>MbV^X20kPu7EI=IP^*e^G`0o|v&|A`-%+oTJEnmxq35pz9} z#6@{;-n_xd$|m)r&akX2(6wRZ$cQm1YtvQy50k4}aneWz%e) zlId}EbgkfOQ|3nc5`U}mPpb4y`nj^`x941gw1jW>93$Iid7}+UI;)AAP1lS(NxJP< z5RkeA_Rj6#CF`h512ZvQ$=vH(hPd$yeg@y^-+wdAZlzuxY=Q-uaIE_O6vdxU<~Qor z&qd`d7Xqvm=fUq#80qfp^_cnFM=&Vhsmu1&2sP4%~jgUG{pD!2pcCL zIxLEdwol$n+4=r*SR?4M5xk&XK_tfz2$yTiq3b(d6U)AI=#|o+IxQ$5mzWp!v11eI z^){%b$#XR5Sn@%w{1$XwgQA@Ar;XD}3c7kx%W}Lh8Z}uax6(;{E>`L4_jPU@eaQ75 z3 z?thdz;0Mt?5Nj4IOT(-UsI6mAr**`Ja=yvAyn=yI%`oKCl1Zm1CU`q4e(#2@qC_tMZ6gU3U%J z7LSEv$tK_9H6Lux)H-};r#Xp%2D9w}Dm#|l@e@bh0GuyP+1mP-pTxu1-q_xoLs!9! zp<{TSdhHP@chhW{4Hoa*@PbFp)N?!pagfv7#wV=+uwEiC{nY`dvlFy2m@|(<|x* z|5FVrNwE|*NTN`y9bC|iB17_iePVn~i99-i#0=jqn+$Y0Gt8dZVS=x_C`7(&AS>GD zxg2GlhGhLKk9Y^#%DQCcbhCN3AHDJ;&-@hXXFt#Lc5azcX=toAB|2Ij3uZoo_(G7k zbTQda2j+wgj|sI@ou{N?!3~UOrS%?Drar62q2g(y%jZ^oBmUdL9CSDj;tV=_gZV{+ z5-~&V`t0C5JxTk%_Te*Kp_RY;f-3bPT;l05@ig3pD=z-L*~X$*mFDBBnjG7eX~zsd z?>@thqs-GA1-|8XB6(zWL@Q(Jc;3(%P?X5RXGo*WC2!>6^kYat(0b8p^_Y%`pPygS z_Y@~^HW;0s;c9?ZA`73#aeA~EvPk5LD@AGb5Ypc?Q5^Nf-b?1M#_U0F0)*g^lA~ZX zPNIiIL_lOO-H@PTO3#&FZpn)l6ABE*u37yNyk4dufqAEdjXC8K(s=oaOvo5JX|y8C z*rJJ&`|`8tPlrA2jts;PnnwXe1s+=^Tbt+J3S>r4>U4 z25>{4NJzNQu|!73hxWN+4It}&4L@Z9R*yWmS^3Fycy+ zmzNLuk}o!e_xzb?mh)=$=YWI33xBWspaBi3VhhMT5qEw10(Ohd`7QCoN%JH-`RbJJ zii(EIUiO&bRN2ow+d_ILTXKUoYips`6EB3wV~W3N!@o`V@sh@WaG0>iSbGIGi!BW5 zcm0bS+0!vwT;%;>TWdsX|9kpHlNkLTY=9U8_QMm^=-4r)8WYW1FX?xCP4)Zo@~c?j z_1pGlO^(f>SOQ{J(xZ1rOnPZ%sn4_~UPP=@MOc?7%d$fkGg1n+gL_)cLv?EB0;0d+ z9k*sLLeTn~exs+R;b%O|-v7aXJwC$4wUL?nxDgt7)uuZ8;bbhxREY#nkZjXlt=6)z z7`CKuM{UbP2@5PM><`hz#X{dHKl0|GXDUZr;KW|Uu)f#-)S#HWxaVF;+M%i<(jk$& zGIXZqO^5;8%a%&7!{eKt(_8kxU{>fIovXh){?l-B8YIr|dc20GLyD>nD1uyQeEBlYLt~}ojY9esT8+tzbw~x-*h$$)WyOMh z_#Eh`186R|(!Y=81AuE?G!E0l6h=kxd!aFQphphE4WV21~wOO!cjA#ZEzg{|H}| z*YNu_x|^OJKlT%GL$y8VCqDK<1hnF;Yu<}<1d3QcoKuQ!>7Af8;!AsGB+PayhkYe= zmz&)A+nMle#pSA8KY?4fj$a&o$@<2aK>G#>5AxyG=<>9gQGIVz(L(sU}bR#Wi z966RJNqqhamOn~z*>FleGCb@KMH17^vExw4B?&v*tf;=s$HN4!t>YIq2p6QF2u0?Cv9fS#oy_?vzqCaWibXf zJ*jlJAVk69Yn@!W1*wtMX@fRABxbC~K`F4aVEwsE)eI{3jqd@F9)yy7CA^>yY zMWVJI#jQw!Fd1h|2%i8^ob?7G-DX2llo{M4(^-_v7~SJWdpew8u>5J&dol~iw2ez@ VjW}T^_%~`0B{_B38flA={{d(t-YftB literal 0 HcmV?d00001 diff --git a/web/0.3.4/i/shareIcon.png b/web/0.3.4/i/shareIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..37cd3b77ff028db5700fd74754f61d0d3d84f61a GIT binary patch literal 1180 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 literal 0 HcmV?d00001 diff --git a/web/0.3.4/i/step-01.png b/web/0.3.4/i/step-01.png new file mode 100644 index 0000000000000000000000000000000000000000..c80578f7b4a7cc69e2910ff740ee987775071364 GIT binary patch literal 4160 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

        DT^Y`LU_GOmhi3998K6wEYv4=d0v3S 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