Custom Twitter Feeds - Version 1.7

Version Description

  • New: Integrations with popular GDPR cookie consent solutions added: Cookie Notice by dFactory, GDPR Cookie Consent by WebToffee, Cookiebot by Cybot A/S, Complianz by Really Simple Plugins, and Borlabs Cookie by Borlabs. Visit the Twitter Feed settings page, Customize tab, Advanced section for more information.
  • Tweak: Icon font support was discontinued. Only SVGs will be used for icons in feeds.
  • Tweak: Twitter Intents JS updated to the latest version.
Download this release

Release Info

Developer smashballoon
Plugin Icon 128x128 Custom Twitter Feeds
Version 1.7
Comparing to
See all releases

Code changes from version 1.6.1 to 1.7

README.txt CHANGED
@@ -5,7 +5,7 @@ Support Website: http://smashballoon/custom-twitter-feeds/
5
  Tags: Twitter, Twitter feed, Twitter Tweets, Twitter widget, Custom Twitter Feed
6
  Requires at least: 3.4
7
  Tested up to: 5.6
8
- Stable tag: 1.6.1
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -233,8 +233,13 @@ If you're still having trouble displaying your Tweets after trying the common is
233
  7. To display a Twitter feed just copy and paste the shortcode into a Twitter widget or page
234
 
235
  == Changelog ==
 
 
 
 
 
236
  = 1.6.1 =
237
- * Tweak: Added support for improved dashboard notices on the plugin settings page.
238
  * Tweak: HTML attribute rel="noopener noreferrer" added to all outbound links for extra security.
239
  * Fix: Fixed PHP warning "non-numeric value encountered" when setting the tweet multiplier option to something that wasn't a number.
240
 
5
  Tags: Twitter, Twitter feed, Twitter Tweets, Twitter widget, Custom Twitter Feed
6
  Requires at least: 3.4
7
  Tested up to: 5.6
8
+ Stable tag: 1.7
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
233
  7. To display a Twitter feed just copy and paste the shortcode into a Twitter widget or page
234
 
235
  == Changelog ==
236
+ = 1.7 =
237
+ * New: Integrations with popular GDPR cookie consent solutions added: Cookie Notice by dFactory, GDPR Cookie Consent by WebToffee, Cookiebot by Cybot A/S, Complianz by Really Simple Plugins, and Borlabs Cookie by Borlabs. Visit the Twitter Feed settings page, Customize tab, Advanced section for more information.
238
+ * Tweak: Icon font support was discontinued. Only SVGs will be used for icons in feeds.
239
+ * Tweak: Twitter Intents JS updated to the latest version.
240
+
241
  = 1.6.1 =
242
+ * Tweak: Added support for dynamic dashboard notices on the plugin settings page.
243
  * Tweak: HTML attribute rel="noopener noreferrer" added to all outbound links for extra security.
244
  * Fix: Fixed PHP warning "non-numeric value encountered" when setting the tweet multiplier option to something that wasn't a number.
245
 
css/ctf-admin-styles.css CHANGED
@@ -625,6 +625,73 @@
625
  content: "\f301";
626
  }
627
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
628
  /* Lite Notice */
629
  @media screen and (max-width: 600px) {
630
  #ctf-notice-bar {
625
  content: "\f301";
626
  }
627
 
628
+ /* GDPR Settings */
629
+ #ctf-admin .ctf-list{
630
+ list-style: inside disc;
631
+ }
632
+ #ctf-admin .ctf-box{
633
+ float: left;
634
+ clear: both;
635
+ width: 96%;
636
+ max-width: 900px;
637
+
638
+ padding: 10px 15px;
639
+ margin: 10px 0;
640
+ font-size: 13px;
641
+ background: #f9f9f9;
642
+ background: rgba(255,255,255,0.8);
643
+
644
+ -moz-border-radius: 8px;
645
+ -webkit-border-radius: 8px;
646
+ border-radius: 8px;
647
+ }
648
+ .gdpr_tooltip p{
649
+ padding: 0 0 10px 0;
650
+ }
651
+ .gdpr_tooltip span{
652
+ display: inline-block;
653
+ margin: 0;
654
+ font-weight: bold;
655
+ font-size: 14px;
656
+ }
657
+ .gdpr_tooltip .ctf-list{
658
+ padding: 0 0 10px 0;
659
+ }
660
+ .gdpr_tooltip li{
661
+ padding: 0;
662
+ }
663
+ .ctf_gdpr_plugin_active .ctf_active{
664
+ display: inline-block;
665
+ padding: 10px 20px 15px 20px;
666
+ border-radius: 5px;
667
+ background: #edf4f0;
668
+ border: 1px solid #2c8649;
669
+ color: #2c8649;
670
+ margin: 8px 0 0 0;
671
+ }
672
+ .ctf_gdpr_plugin_active svg{
673
+ width: 16px;
674
+ height: 16px;
675
+ position: relative;
676
+ top: 3px;
677
+ margin-right: 2px;
678
+ }
679
+ .ctf_gdpr_plugin_active path{
680
+ fill: green;
681
+ }
682
+ .ctf_gdpr_list,
683
+ .ctf_gdpr_yes,
684
+ .ctf_gdpr_no{
685
+ display: none;
686
+ }
687
+ #ctf-admin .ctf_gdpr_error{
688
+ padding: 10px 20px 15px 20px;
689
+ border-radius: 5px;
690
+ background: #F7E6E6;
691
+ border: 1px solid #BA7B7B;
692
+ color: #592626;
693
+ }
694
+
695
  /* Lite Notice */
696
  @media screen and (max-width: 600px) {
697
  #ctf-notice-bar {
css/ctf-styles.css CHANGED
@@ -364,6 +364,7 @@
364
  #ctf.ctf-narrow .ctf-hide-avatar .ctf-tweet-actions,
365
  #ctf.ctf-narrow .ctf-hide-avatar .ctf-quoted-tweet,
366
  #ctf.ctf-narrow .ctf-hide-avatar .ctf-author-box,
 
367
  #ctf.ctf-super-narrow .ctf-hide-avatar .ctf-context,
368
  #ctf.ctf-super-narrow .ctf-hide-avatar .ctf-tweet-content,
369
  #ctf.ctf-super-narrow .ctf-hide-avatar .ctf-tweet-actions,
@@ -371,6 +372,16 @@
371
  #ctf.ctf-super-narrow .ctf-hide-avatar .ctf-author-box{
372
  margin-left: 0;
373
  }
 
 
 
 
 
 
 
 
 
 
374
 
375
  /*Quoted tweets*/
376
  #ctf .ctf-quoted-tweet{
364
  #ctf.ctf-narrow .ctf-hide-avatar .ctf-tweet-actions,
365
  #ctf.ctf-narrow .ctf-hide-avatar .ctf-quoted-tweet,
366
  #ctf.ctf-narrow .ctf-hide-avatar .ctf-author-box,
367
+ #ctf .ctf-hide-avatar .ctf-author-name,
368
  #ctf.ctf-super-narrow .ctf-hide-avatar .ctf-context,
369
  #ctf.ctf-super-narrow .ctf-hide-avatar .ctf-tweet-content,
370
  #ctf.ctf-super-narrow .ctf-hide-avatar .ctf-tweet-actions,
372
  #ctf.ctf-super-narrow .ctf-hide-avatar .ctf-author-box{
373
  margin-left: 0;
374
  }
375
+ #ctf .ctf-hide-avatar .ctf-context {
376
+ padding-left: 0;
377
+ }
378
+ #ctf .ctf-header-img.ctf-no-consent .ctf-header-img-hover,
379
+ #ctf .ctf-header-img.ctf-no-consent {
380
+ display: block;
381
+ opacity: 1;
382
+ height: 48px;
383
+ }
384
+
385
 
386
  /*Quoted tweets*/
387
  #ctf .ctf-quoted-tweet{
css/ctf-styles.min.css CHANGED
@@ -1 +1 @@
1
- #ctf{overflow-y:auto;-ms-overflow-y:auto}#ctf .ctf-item{padding:15px 5px;border-top:1px solid #ddd;border-top:1px solid rgba(0,0,0,.1);overflow:hidden}#ctf .ctf-item:first-child{border-top:none}#ctf .ctf_remaining{display:none}#ctf .ctf_more{padding:1px;border:1px solid transparent;border-radius:3px;display:inline-block;line-height:1}#ctf .ctf_more:hover{cursor:pointer;background:rgba(0,0,0,.05);border:1px solid rgba(0,0,0,.1);text-decoration:none}#ctf .ctf-header{float:left;clear:both;margin:0;padding:5px 5px 15px 5px;line-height:1.2;width:100%;border-bottom:1px solid #ddd;border-bottom:1px solid rgba(0,0,0,.1);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#ctf .ctf-header a{float:left;display:block}#ctf .ctf-header-img{float:left;position:relative;width:48px;margin:0 0 0 -100%!important;overflow:hidden;-moz-border-radius:40px;-webkit-border-radius:40px;border-radius:40px}#ctf .ctf-header-img img{display:block;float:left;margin:0!important;padding:0!important;border:none!important;-moz-border-radius:40px;-webkit-border-radius:40px;border-radius:40px}#ctf .ctf-author-avatar{clear:both;margin:3px 6px 0 -53px}#ctf .ctf-author-name{margin-left:6px}#ctf .ctf-author-box{margin-left:53px}#ctf .ctf-header-generic-icon,#ctf .ctf-header-img-hover{display:none;position:absolute;width:100%;top:0;bottom:0;left:0;text-align:center;color:#fff;background:#1b95e0;background:rgba(27,149,224,.85);-moz-border-radius:40px;-webkit-border-radius:40px;border-radius:40px;z-index:999}#ctf .ctf-header-generic-icon .fa,#ctf .ctf-header-generic-icon svg,#ctf .ctf-header-img-hover .fa,#ctf .ctf-header-img-hover svg{position:absolute;top:50%;left:50%;margin-top:-10px;margin-left:-8px;font-size:20px;z-index:1000}#ctf .ctf-header-generic-icon svg,#ctf .ctf-header-img-hover svg{margin-top:-10px;margin-left:-10px}#ctf .ctf-header-text{float:left;width:100%;padding-top:5px}#ctf .ctf-no-bio .ctf-header-text{padding-top:13px}#ctf .ctf-header a{text-decoration:none}#ctf .ctf-header-text .ctf-header-user,#ctf .ctf-header-text p{float:left;clear:both;width:auto;margin:0 0 0 60px!important;padding:0!important}#ctf .ctf-header-name{font-weight:700;margin-right:6px}#ctf .ctf-header-text .ctf-header-bio{padding:0!important;word-break:break-word}#ctf .ctf-header-text .ctf-verified{margin-right:5px}#ctf .ctf-header .ctf-header-follow{display:inline-block;padding:3px 6px;margin:0 0 0 2px;position:relative;top:-2px;background:#1b95e0;color:#fff;font-size:11px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-transition:background .6s ease-in-out;-webkit-transition:background .6s ease-in-out;-o-transition:background .6s ease-in-out;transition:background .6s ease-in-out}#ctf .ctf-header .ctf-header-follow .fa,#ctf .ctf-header .ctf-header-follow svg{margin-right:3px;font-size:12px}#ctf .ctf-header a:hover .ctf-header-follow{background:#0c7abf;-moz-transition:background .2s ease-in-out;-webkit-transition:background .2s ease-in-out;-o-transition:background .2s ease-in-out;transition:background .2s ease-in-out}#ctf .ctf-header-type-generic .ctf-header-img{color:#fff;width:48px;height:48px;position:relative}#ctf .ctf-header-type-generic .ctf-header-link:hover .ctf-header-generic-icon{background:#0c7abf}#ctf .ctf-header-type-generic .ctf-header-no-bio{padding-top:9px!important;font-size:16px;font-weight:700}#ctf .ctf-header-type-generic .ctf-header-generic-icon{display:block;color:#fff;background:#1b95e0;-moz-transition:background .2s ease-in-out;-webkit-transition:background .2s ease-in-out;-o-transition:background .2s ease-in-out;transition:background .2s ease-in-out}#ctf .ctf-header-type-generic:hover .ctf-header-generic-icon{display:block;opacity:1}#ctf .ctf-header .ctf-header-user{font-size:16px;line-height:1.3;-ms-word-wrap:break-word;word-break:break-word}#ctf .ctf-header .ctf-header-screenname,#ctf .ctf-header p{font-size:13px;line-height:1.3}.ctf-screenreader{text-indent:-9999px!important;display:inline-block!important;width:0!important;height:0!important;line-height:0!important;text-align:left!important}#ctf .ctf-header-text.sbi-no-info .ctf-header-user{padding-top:9px!important}#ctf .ctf-header-text.sbi-no-bio .ctf-header-counts{clear:both}#ctf .ctf-context{width:100%;padding-left:42px;margin-bottom:2px}#ctf .ctf-with-logo .ctf-context{padding-right:30px}#ctf .ctf-retweet-icon{display:inline-block;font-size:inherit;line-height:1;margin:0 5px 0 0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}#ctf.ctf-super-narrow .ctf-retweet-icon{margin:0 5px 0 0}#ctf .ctf-reply-icon{display:inline-block;font-size:inherit;padding:1px 3px 3px 3px;line-height:1;margin:0 3px 0 0}#ctf .ctf-author-box{margin-left:56px}#ctf .ctf-author-avatar{width:48px;height:48px;margin:3px 6px 0 -56px;float:left;overflow:hidden;border:none;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}#ctf .ctf-author-avatar img{margin:0!important;padding:0}#ctf .ctf-author-name,#ctf .ctf-author-screenname,#ctf .ctf-tweet-meta,#ctf .ctf-verified{margin-left:4px;margin-right:4px;display:inline-block}#ctf .ctf-screename-sep{margin:0 2px;display:inline-block}#ctf .ctf-author-name{font-weight:700!important;margin-top:4px}#ctf .ctf-author-box-link{color:#000;text-decoration:none;display:inline;line-height:1.5!important}#ctf .ctf-quoted-verified,#ctf .ctf-verified{color:#77c7f7;margin-left:0}#ctf .ctf-quoted-verified{margin-right:4px}#ctf .ctf-tweet-meta{display:inline-block}#ctf .ctf-replied-to-text a{font-size:inherit;color:inherit;font-weight:inherit}#ctf p.ctf-media-link,#ctf p.ctf-tweet-text{padding:0!important;margin:0!important;line-height:1.4}#ctf .ctf-tweet-actions,#ctf .ctf-tweet-content{margin-left:58px;margin-top:3px;max-width:100%}#ctf .ctf-corner-logo{display:inline-block;float:right;color:#1b95e0;font-size:24px}#ctf.ctf-narrow .ctf-corner-logo{font-size:20px}#ctf .ctf-hide-avatar .ctf-author-box,#ctf .ctf-hide-avatar .ctf-context,#ctf .ctf-hide-avatar .ctf-quoted-tweet,#ctf .ctf-hide-avatar .ctf-tweet-actions,#ctf .ctf-hide-avatar .ctf-tweet-content,#ctf.ctf-narrow .ctf-hide-avatar .ctf-author-box,#ctf.ctf-narrow .ctf-hide-avatar .ctf-context,#ctf.ctf-narrow .ctf-hide-avatar .ctf-quoted-tweet,#ctf.ctf-narrow .ctf-hide-avatar .ctf-tweet-actions,#ctf.ctf-narrow .ctf-hide-avatar .ctf-tweet-content,#ctf.ctf-super-narrow .ctf-hide-avatar .ctf-author-box,#ctf.ctf-super-narrow .ctf-hide-avatar .ctf-context,#ctf.ctf-super-narrow .ctf-hide-avatar .ctf-quoted-tweet,#ctf.ctf-super-narrow .ctf-hide-avatar .ctf-tweet-actions,#ctf.ctf-super-narrow .ctf-hide-avatar .ctf-tweet-content{margin-left:0}#ctf .ctf-quoted-tweet{display:block;clear:both;margin:7px 0 5px 58px;padding:8px 12px;border:1px solid #ddd;border:1px solid rgba(0,0,0,.1);text-decoration:none;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-moz-transition:background .1s ease-in-out;-webkit-transition:background .1s ease-in-out;-o-transition:background .1s ease-in-out;transition:background .1s ease-in-out}#ctf .ctf-quoted-tweet:focus,#ctf .ctf-quoted-tweet:hover{background:#eee;background:rgba(0,0,0,.05);border:1px solid #ddd;border:1px solid rgba(0,0,0,.05);-moz-transition:background .1s ease-in-out;-webkit-transition:background .1s ease-in-out;-o-transition:background .1s ease-in-out;transition:background .1s ease-in-out}#ctf .ctf-quoted-author-name{font-weight:700;margin-right:4px}#ctf .ctf-quoted-tweet p{margin:2px 0}#ctf .ctf-tweet-actions a{padding:2px 10px 2px 5px;float:left}#ctf .ctf-tweet-actions a.ctf-like,#ctf .ctf-tweet-actions a.ctf-reply,#ctf .ctf-tweet-actions a.ctf-retweet{color:#bbb;color:rgba(0,0,0,.35);text-decoration:none;border:none;-moz-transition:color .1s ease-in-out;-webkit-transition:color .1s ease-in-out;-o-transition:color .1s ease-in-out;transition:color .1s ease-in-out}#ctf .ctf-tweet-actions a span.fa,#ctf .ctf-tweet-actions a svg{width:1.1em;height:1.1em;font-size:1.1em}#ctf .ctf-tweet-actions a span.fa.fa-retweet{width:1.2em;height:1.2em;font-size:1.2em}#ctf .ctf-tweet-actions .ctf-reply{margin-left:-5px}#ctf .ctf-tweet-actions a:focus,#ctf .ctf-tweet-actions a:hover{-moz-transition:color .1s ease-in-out;-webkit-transition:color .1s ease-in-out;-o-transition:color .1s ease-in-out;transition:color .1s ease-in-out}#ctf .ctf-tweet-actions .ctf-reply:focus,#ctf .ctf-tweet-actions .ctf-reply:hover{color:#e34f0e!important}#ctf .ctf-tweet-actions .ctf-retweet:focus,#ctf .ctf-tweet-actions .ctf-retweet:hover{color:#19cf86!important}#ctf .ctf-tweet-actions .ctf-like:focus,#ctf .ctf-tweet-actions .ctf-like:hover{color:#e81c4f!important}#ctf .ctf-action-count{float:right;padding-left:3px;font-size:.9em;margin-top:.25em;line-height:1.2em}#ctf .ctf-twitterlink{margin-top:.3em;line-height:1.2em;font-size:.8em}#ctf .ctf-quoted-tweet-text-media-wrap,#ctf .ctf-tweet-text-media-wrap{margin-left:5px;padding:4px;display:inline-block;border:1px solid #ddd;border:1px solid rgba(0,0,0,.15);color:inherit;text-decoration:none;line-height:1;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-transition:background .1s ease-in-out;-webkit-transition:background .1s ease-in-out;-o-transition:background .1s ease-in-out;transition:background .1s ease-in-out}#ctf .ctf-tweet-text-media-wrap:focus,#ctf .ctf-tweet-text-media-wrap:hover{background:#eee;background:rgba(0,0,0,.05);border:1px solid #ddd;border:1px solid rgba(0,0,0,.1);-moz-transition:background .1s ease-in-out;-webkit-transition:background .1s ease-in-out;-o-transition:background .1s ease-in-out;transition:background .1s ease-in-out}.ctf-multi-media-icon .ctf-tweet-text-media,.ctf-quoted-tweet-text .ctf-tweet-text-media{margin-left:3px}#ctf #ctf-more{display:block;border:none;background:#eee;background:rgba(0,0,0,.05);width:100%;min-height:30px;padding:5px 0;margin:0;position:relative;text-align:center;box-sizing:border-box;outline:0;text-decoration:none;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-moz-transition:background .1s ease-in-out;-webkit-transition:background .1s ease-in-out;-o-transition:background .1s ease-in-out;transition:background .1s ease-in-out}#ctf #ctf-more:hover{background:#ddd;background:rgba(0,0,0,.1);-moz-transition:background .1s ease-in-out;-webkit-transition:background .1s ease-in-out;-o-transition:background .1s ease-in-out;transition:background .1s ease-in-out}#ctf #ctf-more.ctf-loading span{-moz-transition:opacity .5s ease-in-out;-webkit-transition:opacity .5s ease-in-out;-o-transition:opacity .5s ease-in-out;transition:opacity .5s ease-in-out}#ctf #ctf-more.ctf-loading span{opacity:0}#ctf .ctf-loader{width:20px;height:20px;position:absolute;top:50%;left:50%;margin:-10px 0 0 -10px;background-color:unset;background-color:rgba(0,0,0,.5);border-radius:100%;-webkit-animation:ctf-sk-scaleout 1s infinite ease-in-out;animation:ctf-sk-scaleout 1s infinite ease-in-out}@-webkit-keyframes ctf-sk-scaleout{0%{-webkit-transform:scale(0)}100%{-webkit-transform:scale(1);opacity:0}}@keyframes ctf-sk-scaleout{0%{-webkit-transform:scale(0);transform:scale(0)}100%{-webkit-transform:scale(1);transform:scale(1);opacity:0}}.ctf-credit-link{width:100%;clear:both;padding:5px 0;margin-top:5px;text-align:center;font-size:12px}.ctf-credit-link .fa,.ctf-credit-link svg{margin-right:4px}#ctf svg{box-sizing:unset}#ctf svg:not(:root).svg-inline--fa,#ctf_lightbox svg:not(:root).svg-inline--fa{box-sizing:unset;overflow:visible;width:1em}#ctf .svg-inline--fa.fa-w-16{width:16px}#ctf .svg-inline--fa.fa-w-20{width:20px}#ctf .ctf-context .ctf-retweet-icon svg{width:1.2em;height:1.2em}#ctf .svg-inline--fa,#ctf_lightbox .svg-inline--fa{display:inline-block;font-size:inherit;height:1em;overflow:visible;vertical-align:-.125em}#ctf #ctf .ctf-photo-hover span.fa-arrows-alt,#ctf .ctf-photo-hover svg.fa-arrows-alt{display:none}#ctf.ctf-styles .ctf-author-screenname,#ctf.ctf-styles .ctf-context,#ctf.ctf-styles .ctf-screename-sep,#ctf.ctf-styles .ctf-tweet-meta{font-size:12px}#ctf .ctf-error{width:100%;text-align:center}#ctf .ctf-error code,#ctf .ctf-error iframe,#ctf .ctf-error p{padding:0;margin:0 2px}#ctf .ctf-error-user p{padding-bottom:5px}#ctf .ctf-error-user{width:100%}#ctf .ctf-error-admin{margin-top:15px;display:inline-block}#ctf .ctf-error code{display:block;padding:4px}.ctf_smash_error{border:1px solid #ddd;background:#eee;color:#333;margin:10px 0 0;padding:10px 15px;font-size:13px;text-align:center;clear:both;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.ctf_smash_error p{padding:5px 0!important;margin:0!important;line-height:1.3!important}.ctf_smash_error span{font-size:12px}#ctf .ctf-out-of-tweets{width:100%}#ctf .ctf-out-of-tweets{display:block;border:1px solid rgba(0,0,0,.1);background:0 0;background:0 0;width:100%;min-height:30px;padding:5px 0;margin:0;position:relative;text-align:center;box-sizing:border-box;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}#ctf .ctf-out-of-tweets iframe,#ctf .ctf-out-of-tweets p{margin:0 2px;padding:0}#ctf .ctf-out-of-tweets p{padding:3px;display:none}#ctf.ctf-narrow .ctf-author-avatar,#ctf.ctf-narrow .ctf-author-avatar img{width:38px;height:38px}#ctf.ctf-narrow .ctf-quoted-tweet,#ctf.ctf-narrow .ctf-tweet-actions,#ctf.ctf-narrow .ctf-tweet-content{margin-left:48px}#ctf.ctf-narrow .ctf-context{margin-left:49px}#ctf.ctf-narrow .ctf-author-box{margin-left:46px}#ctf.ctf-narrow .ctf-author-avatar{margin-left:-46px}#ctf.ctf-narrow .ctf-tweet-content{padding:3px 0 5px 0}#ctf.ctf-narrow .ctf-tweet-actions{float:left;clear:both}#ctf.ctf-super-narrow .ctf-context,#ctf.ctf-super-narrow .ctf-quoted-tweet,#ctf.ctf-super-narrow .ctf-tweet-actions,#ctf.ctf-super-narrow .ctf-tweet-content{margin-left:0}#ctf.ctf-super-narrow .ctf-author-box{min-height:32px;margin-bottom:2px}#ctf.ctf-super-narrow .ctf-author-avatar,#ctf.ctf-super-narrow .ctf-author-avatar img{width:32px;height:32px}#ctf.ctf-super-narrow .ctf-author-box{margin-left:38px;float:left;clear:both}#ctf.ctf-super-narrow .ctf-author-avatar{margin-left:-38px;margin-top:0}#ctf.ctf-super-narrow .ctf-author-screenname,#ctf.ctf-super-narrow .ctf-screename-sep{display:none}#ctf.ctf-super-narrow .ctf-context{padding-bottom:5px}#ctf.ctf-super-narrow .ctf-author-name{display:inline-block}#ctf.ctf-super-narrow .ctf-tweet-content{float:left;clear:both}#ctf.ctf-super-narrow .ctf-credit-link{font-size:10px}#ctf.ctf-super-narrow .ctf-header-bio{margin:0!important;padding-top:5px}#ctf.ctf-super-narrow .ctf-header-user{min-height:48px}#ctf.ctf-super-narrow .ctf-header-text{padding-top:10px}#ctf.ctf-super-narrow .ctf-header-follow{margin-top:5px}#ctf.ctf-super-narrow .ctf-more span{display:block;margin-top:3px}@media all and (max-width:640px){#ctf.ctf-width-resp{width:100%!important}}
1
+ #ctf{overflow-y:auto;-ms-overflow-y:auto}#ctf .ctf-item{padding:15px 5px;border-top:1px solid #ddd;border-top:1px solid rgba(0,0,0,.1);overflow:hidden}#ctf .ctf-item:first-child{border-top:none}#ctf .ctf_remaining{display:none}#ctf .ctf_more{padding:1px;border:1px solid transparent;border-radius:3px;display:inline-block;line-height:1}#ctf .ctf_more:hover{cursor:pointer;background:rgba(0,0,0,.05);border:1px solid rgba(0,0,0,.1);text-decoration:none}#ctf .ctf-header{float:left;clear:both;margin:0;padding:5px 5px 15px 5px;line-height:1.2;width:100%;border-bottom:1px solid #ddd;border-bottom:1px solid rgba(0,0,0,.1);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#ctf .ctf-header a{float:left;display:block}#ctf .ctf-header-img{float:left;position:relative;width:48px;margin:0 0 0 -100%!important;overflow:hidden;-moz-border-radius:40px;-webkit-border-radius:40px;border-radius:40px}#ctf .ctf-header-img img{display:block;float:left;margin:0!important;padding:0!important;border:none!important;-moz-border-radius:40px;-webkit-border-radius:40px;border-radius:40px}#ctf .ctf-author-avatar{clear:both;margin:3px 6px 0 -53px}#ctf .ctf-author-name{margin-left:6px}#ctf .ctf-author-box{margin-left:53px}#ctf .ctf-header-generic-icon,#ctf .ctf-header-img-hover{display:none;position:absolute;width:100%;top:0;bottom:0;left:0;text-align:center;color:#fff;background:#1b95e0;background:rgba(27,149,224,.85);-moz-border-radius:40px;-webkit-border-radius:40px;border-radius:40px;z-index:999}#ctf .ctf-header-generic-icon .fa,#ctf .ctf-header-generic-icon svg,#ctf .ctf-header-img-hover .fa,#ctf .ctf-header-img-hover svg{position:absolute;top:50%;left:50%;margin-top:-10px;margin-left:-8px;font-size:20px;z-index:1000}#ctf .ctf-header-generic-icon svg,#ctf .ctf-header-img-hover svg{margin-top:-10px;margin-left:-10px}#ctf .ctf-header-text{float:left;width:100%;padding-top:5px}#ctf .ctf-no-bio .ctf-header-text{padding-top:13px}#ctf .ctf-header a{text-decoration:none}#ctf .ctf-header-text .ctf-header-user,#ctf .ctf-header-text p{float:left;clear:both;width:auto;margin:0 0 0 60px!important;padding:0!important}#ctf .ctf-header-name{font-weight:700;margin-right:6px}#ctf .ctf-header-text .ctf-header-bio{padding:0!important;word-break:break-word}#ctf .ctf-header-text .ctf-verified{margin-right:5px}#ctf .ctf-header .ctf-header-follow{display:inline-block;padding:3px 6px;margin:0 0 0 2px;position:relative;top:-2px;background:#1b95e0;color:#fff;font-size:11px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-transition:background .6s ease-in-out;-webkit-transition:background .6s ease-in-out;-o-transition:background .6s ease-in-out;transition:background .6s ease-in-out}#ctf .ctf-header .ctf-header-follow .fa,#ctf .ctf-header .ctf-header-follow svg{margin-right:3px;font-size:12px}#ctf .ctf-header a:hover .ctf-header-follow{background:#0c7abf;-moz-transition:background .2s ease-in-out;-webkit-transition:background .2s ease-in-out;-o-transition:background .2s ease-in-out;transition:background .2s ease-in-out}#ctf .ctf-header-type-generic .ctf-header-img{color:#fff;width:48px;height:48px;position:relative}#ctf .ctf-header-type-generic .ctf-header-link:hover .ctf-header-generic-icon{background:#0c7abf}#ctf .ctf-header-type-generic .ctf-header-no-bio{padding-top:9px!important;font-size:16px;font-weight:700}#ctf .ctf-header-type-generic .ctf-header-generic-icon{display:block;color:#fff;background:#1b95e0;-moz-transition:background .2s ease-in-out;-webkit-transition:background .2s ease-in-out;-o-transition:background .2s ease-in-out;transition:background .2s ease-in-out}#ctf .ctf-header-type-generic:hover .ctf-header-generic-icon{display:block;opacity:1}#ctf .ctf-header .ctf-header-user{font-size:16px;line-height:1.3;-ms-word-wrap:break-word;word-break:break-word}#ctf .ctf-header .ctf-header-screenname,#ctf .ctf-header p{font-size:13px;line-height:1.3}.ctf-screenreader{text-indent:-9999px!important;display:inline-block!important;width:0!important;height:0!important;line-height:0!important;text-align:left!important}#ctf .ctf-header-text.sbi-no-info .ctf-header-user{padding-top:9px!important}#ctf .ctf-header-text.sbi-no-bio .ctf-header-counts{clear:both}#ctf .ctf-context{width:100%;padding-left:42px;margin-bottom:2px}#ctf .ctf-with-logo .ctf-context{padding-right:30px}#ctf .ctf-retweet-icon{display:inline-block;font-size:inherit;line-height:1;margin:0 5px 0 0;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}#ctf.ctf-super-narrow .ctf-retweet-icon{margin:0 5px 0 0}#ctf .ctf-reply-icon{display:inline-block;font-size:inherit;padding:1px 3px 3px 3px;line-height:1;margin:0 3px 0 0}#ctf .ctf-author-box{margin-left:56px}#ctf .ctf-author-avatar{width:48px;height:48px;margin:3px 6px 0 -56px;float:left;overflow:hidden;border:none;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}#ctf .ctf-author-avatar img{margin:0!important;padding:0}#ctf .ctf-author-name,#ctf .ctf-author-screenname,#ctf .ctf-tweet-meta,#ctf .ctf-verified{margin-left:4px;margin-right:4px;display:inline-block}#ctf .ctf-screename-sep{margin:0 2px;display:inline-block}#ctf .ctf-author-name{font-weight:700!important;margin-top:4px}#ctf .ctf-author-box-link{color:#000;text-decoration:none;display:inline;line-height:1.5!important}#ctf .ctf-quoted-verified,#ctf .ctf-verified{color:#77c7f7;margin-left:0}#ctf .ctf-quoted-verified{margin-right:4px}#ctf .ctf-tweet-meta{display:inline-block}#ctf .ctf-replied-to-text a{font-size:inherit;color:inherit;font-weight:inherit}#ctf p.ctf-media-link,#ctf p.ctf-tweet-text{padding:0!important;margin:0!important;line-height:1.4}#ctf .ctf-tweet-actions,#ctf .ctf-tweet-content{margin-left:58px;margin-top:3px;max-width:100%}#ctf .ctf-corner-logo{display:inline-block;float:right;color:#1b95e0;font-size:24px}#ctf.ctf-narrow .ctf-corner-logo{font-size:20px}#ctf .ctf-hide-avatar .ctf-author-box,#ctf .ctf-hide-avatar .ctf-author-name,#ctf .ctf-hide-avatar .ctf-context,#ctf .ctf-hide-avatar .ctf-quoted-tweet,#ctf .ctf-hide-avatar .ctf-tweet-actions,#ctf .ctf-hide-avatar .ctf-tweet-content,#ctf.ctf-narrow .ctf-hide-avatar .ctf-author-box,#ctf.ctf-narrow .ctf-hide-avatar .ctf-context,#ctf.ctf-narrow .ctf-hide-avatar .ctf-quoted-tweet,#ctf.ctf-narrow .ctf-hide-avatar .ctf-tweet-actions,#ctf.ctf-narrow .ctf-hide-avatar .ctf-tweet-content,#ctf.ctf-super-narrow .ctf-hide-avatar .ctf-author-box,#ctf.ctf-super-narrow .ctf-hide-avatar .ctf-context,#ctf.ctf-super-narrow .ctf-hide-avatar .ctf-quoted-tweet,#ctf.ctf-super-narrow .ctf-hide-avatar .ctf-tweet-actions,#ctf.ctf-super-narrow .ctf-hide-avatar .ctf-tweet-content{margin-left:0}#ctf .ctf-hide-avatar .ctf-context{padding-left:0}#ctf .ctf-header-img.ctf-no-consent,#ctf .ctf-header-img.ctf-no-consent .ctf-header-img-hover{display:block;opacity:1;height:48px}#ctf .ctf-quoted-tweet{display:block;clear:both;margin:7px 0 5px 58px;padding:8px 12px;border:1px solid #ddd;border:1px solid rgba(0,0,0,.1);text-decoration:none;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-moz-transition:background .1s ease-in-out;-webkit-transition:background .1s ease-in-out;-o-transition:background .1s ease-in-out;transition:background .1s ease-in-out}#ctf .ctf-quoted-tweet:focus,#ctf .ctf-quoted-tweet:hover{background:#eee;background:rgba(0,0,0,.05);border:1px solid #ddd;border:1px solid rgba(0,0,0,.05);-moz-transition:background .1s ease-in-out;-webkit-transition:background .1s ease-in-out;-o-transition:background .1s ease-in-out;transition:background .1s ease-in-out}#ctf .ctf-quoted-author-name{font-weight:700;margin-right:4px}#ctf .ctf-quoted-tweet p{margin:2px 0}#ctf .ctf-tweet-actions a{padding:2px 10px 2px 5px;float:left}#ctf .ctf-tweet-actions a.ctf-like,#ctf .ctf-tweet-actions a.ctf-reply,#ctf .ctf-tweet-actions a.ctf-retweet{color:#bbb;color:rgba(0,0,0,.35);text-decoration:none;border:none;-moz-transition:color .1s ease-in-out;-webkit-transition:color .1s ease-in-out;-o-transition:color .1s ease-in-out;transition:color .1s ease-in-out}#ctf .ctf-tweet-actions a span.fa,#ctf .ctf-tweet-actions a svg{width:1.1em;height:1.1em;font-size:1.1em}#ctf .ctf-tweet-actions a span.fa.fa-retweet{width:1.2em;height:1.2em;font-size:1.2em}#ctf .ctf-tweet-actions .ctf-reply{margin-left:-5px}#ctf .ctf-tweet-actions a:focus,#ctf .ctf-tweet-actions a:hover{-moz-transition:color .1s ease-in-out;-webkit-transition:color .1s ease-in-out;-o-transition:color .1s ease-in-out;transition:color .1s ease-in-out}#ctf .ctf-tweet-actions .ctf-reply:focus,#ctf .ctf-tweet-actions .ctf-reply:hover{color:#e34f0e!important}#ctf .ctf-tweet-actions .ctf-retweet:focus,#ctf .ctf-tweet-actions .ctf-retweet:hover{color:#19cf86!important}#ctf .ctf-tweet-actions .ctf-like:focus,#ctf .ctf-tweet-actions .ctf-like:hover{color:#e81c4f!important}#ctf .ctf-action-count{float:right;padding-left:3px;font-size:.9em;margin-top:.25em;line-height:1.2em}#ctf .ctf-twitterlink{margin-top:.3em;line-height:1.2em;font-size:.8em}#ctf .ctf-quoted-tweet-text-media-wrap,#ctf .ctf-tweet-text-media-wrap{margin-left:5px;padding:4px;display:inline-block;border:1px solid #ddd;border:1px solid rgba(0,0,0,.15);color:inherit;text-decoration:none;line-height:1;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-moz-transition:background .1s ease-in-out;-webkit-transition:background .1s ease-in-out;-o-transition:background .1s ease-in-out;transition:background .1s ease-in-out}#ctf .ctf-tweet-text-media-wrap:focus,#ctf .ctf-tweet-text-media-wrap:hover{background:#eee;background:rgba(0,0,0,.05);border:1px solid #ddd;border:1px solid rgba(0,0,0,.1);-moz-transition:background .1s ease-in-out;-webkit-transition:background .1s ease-in-out;-o-transition:background .1s ease-in-out;transition:background .1s ease-in-out}.ctf-multi-media-icon .ctf-tweet-text-media,.ctf-quoted-tweet-text .ctf-tweet-text-media{margin-left:3px}#ctf #ctf-more{display:block;border:none;background:#eee;background:rgba(0,0,0,.05);width:100%;min-height:30px;padding:5px 0;margin:0;position:relative;text-align:center;box-sizing:border-box;outline:0;text-decoration:none;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-moz-transition:background .1s ease-in-out;-webkit-transition:background .1s ease-in-out;-o-transition:background .1s ease-in-out;transition:background .1s ease-in-out}#ctf #ctf-more:hover{background:#ddd;background:rgba(0,0,0,.1);-moz-transition:background .1s ease-in-out;-webkit-transition:background .1s ease-in-out;-o-transition:background .1s ease-in-out;transition:background .1s ease-in-out}#ctf #ctf-more.ctf-loading span{-moz-transition:opacity .5s ease-in-out;-webkit-transition:opacity .5s ease-in-out;-o-transition:opacity .5s ease-in-out;transition:opacity .5s ease-in-out}#ctf #ctf-more.ctf-loading span{opacity:0}#ctf .ctf-loader{width:20px;height:20px;position:absolute;top:50%;left:50%;margin:-10px 0 0 -10px;background-color:unset;background-color:rgba(0,0,0,.5);border-radius:100%;-webkit-animation:ctf-sk-scaleout 1s infinite ease-in-out;animation:ctf-sk-scaleout 1s infinite ease-in-out}@-webkit-keyframes ctf-sk-scaleout{0%{-webkit-transform:scale(0)}100%{-webkit-transform:scale(1);opacity:0}}@keyframes ctf-sk-scaleout{0%{-webkit-transform:scale(0);transform:scale(0)}100%{-webkit-transform:scale(1);transform:scale(1);opacity:0}}.ctf-credit-link{width:100%;clear:both;padding:5px 0;margin-top:5px;text-align:center;font-size:12px}.ctf-credit-link .fa,.ctf-credit-link svg{margin-right:4px}#ctf svg{box-sizing:unset}#ctf svg:not(:root).svg-inline--fa,#ctf_lightbox svg:not(:root).svg-inline--fa{box-sizing:unset;overflow:visible;width:1em}#ctf .svg-inline--fa.fa-w-16{width:16px}#ctf .svg-inline--fa.fa-w-20{width:20px}#ctf .ctf-context .ctf-retweet-icon svg{width:1.2em;height:1.2em}#ctf .svg-inline--fa,#ctf_lightbox .svg-inline--fa{display:inline-block;font-size:inherit;height:1em;overflow:visible;vertical-align:-.125em}#ctf #ctf .ctf-photo-hover span.fa-arrows-alt,#ctf .ctf-photo-hover svg.fa-arrows-alt{display:none}#ctf.ctf-styles .ctf-author-screenname,#ctf.ctf-styles .ctf-context,#ctf.ctf-styles .ctf-screename-sep,#ctf.ctf-styles .ctf-tweet-meta{font-size:12px}#ctf .ctf-error{width:100%;text-align:center}#ctf .ctf-error code,#ctf .ctf-error iframe,#ctf .ctf-error p{padding:0;margin:0 2px}#ctf .ctf-error-user p{padding-bottom:5px}#ctf .ctf-error-user{width:100%}#ctf .ctf-error-admin{margin-top:15px;display:inline-block}#ctf .ctf-error code{display:block;padding:4px}.ctf_smash_error{border:1px solid #ddd;background:#eee;color:#333;margin:10px 0 0;padding:10px 15px;font-size:13px;text-align:center;clear:both;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.ctf_smash_error p{padding:5px 0!important;margin:0!important;line-height:1.3!important}.ctf_smash_error span{font-size:12px}#ctf .ctf-out-of-tweets{width:100%}#ctf .ctf-out-of-tweets{display:block;border:1px solid rgba(0,0,0,.1);background:0 0;background:0 0;width:100%;min-height:30px;padding:5px 0;margin:0;position:relative;text-align:center;box-sizing:border-box;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}#ctf .ctf-out-of-tweets iframe,#ctf .ctf-out-of-tweets p{margin:0 2px;padding:0}#ctf .ctf-out-of-tweets p{padding:3px;display:none}#ctf.ctf-narrow .ctf-author-avatar,#ctf.ctf-narrow .ctf-author-avatar img{width:38px;height:38px}#ctf.ctf-narrow .ctf-quoted-tweet,#ctf.ctf-narrow .ctf-tweet-actions,#ctf.ctf-narrow .ctf-tweet-content{margin-left:48px}#ctf.ctf-narrow .ctf-context{margin-left:49px}#ctf.ctf-narrow .ctf-author-box{margin-left:46px}#ctf.ctf-narrow .ctf-author-avatar{margin-left:-46px}#ctf.ctf-narrow .ctf-tweet-content{padding:3px 0 5px 0}#ctf.ctf-narrow .ctf-tweet-actions{float:left;clear:both}#ctf.ctf-super-narrow .ctf-context,#ctf.ctf-super-narrow .ctf-quoted-tweet,#ctf.ctf-super-narrow .ctf-tweet-actions,#ctf.ctf-super-narrow .ctf-tweet-content{margin-left:0}#ctf.ctf-super-narrow .ctf-author-box{min-height:32px;margin-bottom:2px}#ctf.ctf-super-narrow .ctf-author-avatar,#ctf.ctf-super-narrow .ctf-author-avatar img{width:32px;height:32px}#ctf.ctf-super-narrow .ctf-author-box{margin-left:38px;float:left;clear:both}#ctf.ctf-super-narrow .ctf-author-avatar{margin-left:-38px;margin-top:0}#ctf.ctf-super-narrow .ctf-author-screenname,#ctf.ctf-super-narrow .ctf-screename-sep{display:none}#ctf.ctf-super-narrow .ctf-context{padding-bottom:5px}#ctf.ctf-super-narrow .ctf-author-name{display:inline-block}#ctf.ctf-super-narrow .ctf-tweet-content{float:left;clear:both}#ctf.ctf-super-narrow .ctf-credit-link{font-size:10px}#ctf.ctf-super-narrow .ctf-header-bio{margin:0!important;padding-top:5px}#ctf.ctf-super-narrow .ctf-header-user{min-height:48px}#ctf.ctf-super-narrow .ctf-header-text{padding-top:10px}#ctf.ctf-super-narrow .ctf-header-follow{margin-top:5px}#ctf.ctf-super-narrow .ctf-more span{display:block;margin-top:3px}@media all and (max-width:640px){#ctf.ctf-width-resp{width:100%!important}}
custom-twitter-feed.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Custom Twitter Feeds
4
  Plugin URI: http://smashballoon.com/custom-twitter-feeds
5
  Description: Customizable Twitter feeds for your website
6
- Version: 1.6.1
7
  Author: Smash Balloon
8
  Author URI: http://smashballoon.com/
9
  Text Domain: custom-twitter-feeds
@@ -24,7 +24,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
24
  */
25
 
26
  define( 'CTF_URL', plugin_dir_path( __FILE__ ) );
27
- define( 'CTF_VERSION', '1.6.1' );
28
  define( 'CTF_TITLE', 'Custom Twitter Feeds' );
29
  define( 'CTF_JS_URL', plugins_url( '/js/ctf-scripts.min.js?ver=' . CTF_VERSION , __FILE__ ) );
30
  define( 'OAUTH_PROCESSOR_URL', 'https://api.smashballoon.com/twitter-login.php?return_uri=' );
@@ -57,6 +57,7 @@ function ctf_plugin_init() {
57
  }
58
 
59
  include_once trailingslashit( CTF_PLUGIN_DIR ) . 'inc/class-ctf-tracking.php';
 
60
 
61
  if ( is_admin() ) {
62
  if ( version_compare( PHP_VERSION, '5.3.0' ) >= 0
@@ -354,7 +355,7 @@ add_filter( 'ctf_quoted_tweet_text', 'ctf_replace_urls', 9, 3 );
354
 
355
  function ctf_get_fa_el( $icon ) {
356
  $options = get_option( 'ctf_options' );
357
- $font_method = isset( $options['font_method'] ) ? $options['font_method'] : 'svg';
358
 
359
  $elems = array(
360
  'fa-arrows-alt' => array(
@@ -527,26 +528,20 @@ register_deactivation_hook( __FILE__, 'ctf_deactivate' );
527
  function ctf_scripts_and_styles( $enqueue = false ) {
528
  $options = get_option( 'ctf_options' );
529
  $not_ajax_theme = (! isset( $options['ajax_theme'] ) || ! $options['ajax_theme']);
530
- $font_method = isset( $options['font_method'] ) ? $options['font_method'] : 'svg';
531
- $disable_awesome = isset( $options['disableawesome'] ) ? $options['disableawesome'] : false;
 
 
 
532
 
533
  wp_enqueue_style( 'ctf_styles', plugins_url( '/css/ctf-styles.min.css', __FILE__ ), array(), CTF_VERSION );
534
 
535
- if ( $font_method === 'fontfile' && ! $disable_awesome ) {
536
- wp_enqueue_style( 'sb-font-awesome', 'https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css' );
537
- }
538
 
539
  if ( $not_ajax_theme ) {
540
  wp_register_script( 'ctf_scripts', plugins_url( '/js/ctf-scripts.min.js', __FILE__ ), array( 'jquery' ), CTF_VERSION, true );
541
- wp_localize_script( 'ctf_scripts', 'ctf', array(
542
- 'ajax_url' => admin_url( 'admin-ajax.php' )
543
- )
544
- );
545
  } else {
546
- wp_localize_script( 'jquery', 'ctf', array(
547
- 'ajax_url' => admin_url( 'admin-ajax.php' )
548
- )
549
- );
550
  }
551
 
552
  if ( $enqueue ) {
@@ -612,4 +607,12 @@ add_action( 'admin_enqueue_scripts', 'ctf_admin_scripts_and_styles' );
612
 
613
  function ctf_is_pro_version() {
614
  return defined( 'CTF_STORE_URL' );
 
 
 
 
 
 
 
 
615
  }
3
  Plugin Name: Custom Twitter Feeds
4
  Plugin URI: http://smashballoon.com/custom-twitter-feeds
5
  Description: Customizable Twitter feeds for your website
6
+ Version: 1.7
7
  Author: Smash Balloon
8
  Author URI: http://smashballoon.com/
9
  Text Domain: custom-twitter-feeds
24
  */
25
 
26
  define( 'CTF_URL', plugin_dir_path( __FILE__ ) );
27
+ define( 'CTF_VERSION', '1.7' );
28
  define( 'CTF_TITLE', 'Custom Twitter Feeds' );
29
  define( 'CTF_JS_URL', plugins_url( '/js/ctf-scripts.min.js?ver=' . CTF_VERSION , __FILE__ ) );
30
  define( 'OAUTH_PROCESSOR_URL', 'https://api.smashballoon.com/twitter-login.php?return_uri=' );
57
  }
58
 
59
  include_once trailingslashit( CTF_PLUGIN_DIR ) . 'inc/class-ctf-tracking.php';
60
+ include_once trailingslashit( CTF_PLUGIN_DIR ) . 'inc/class-ctf-gdpr-integrations.php';
61
 
62
  if ( is_admin() ) {
63
  if ( version_compare( PHP_VERSION, '5.3.0' ) >= 0
355
 
356
  function ctf_get_fa_el( $icon ) {
357
  $options = get_option( 'ctf_options' );
358
+ $font_method = 'svg';
359
 
360
  $elems = array(
361
  'fa-arrows-alt' => array(
528
  function ctf_scripts_and_styles( $enqueue = false ) {
529
  $options = get_option( 'ctf_options' );
530
  $not_ajax_theme = (! isset( $options['ajax_theme'] ) || ! $options['ajax_theme']);
531
+ $font_method = 'svg';
532
+
533
+ $loacalize_args = array(
534
+ 'ajax_url' => admin_url( 'admin-ajax.php' )
535
+ );
536
 
537
  wp_enqueue_style( 'ctf_styles', plugins_url( '/css/ctf-styles.min.css', __FILE__ ), array(), CTF_VERSION );
538
 
 
 
 
539
 
540
  if ( $not_ajax_theme ) {
541
  wp_register_script( 'ctf_scripts', plugins_url( '/js/ctf-scripts.min.js', __FILE__ ), array( 'jquery' ), CTF_VERSION, true );
542
+ wp_localize_script( 'ctf_scripts', 'ctf', $loacalize_args );
 
 
 
543
  } else {
544
+ wp_localize_script( 'jquery', 'ctf', $loacalize_args );
 
 
 
545
  }
546
 
547
  if ( $enqueue ) {
607
 
608
  function ctf_is_pro_version() {
609
  return defined( 'CTF_STORE_URL' );
610
+ }
611
+
612
+
613
+ function ctf_get_database_settings() {
614
+ $options = get_option( 'ctf_options', array() );
615
+
616
+ return $options;
617
+
618
  }
inc/CtfAdmin.php CHANGED
@@ -523,6 +523,23 @@ class CtfAdmin
523
  'extra' => '*will be fired every time more tweets are loaded'
524
  ));
525
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
526
  add_settings_section(
527
  'ctf_options_advanced', // matches the section name
528
  'Advanced',
@@ -642,32 +659,6 @@ class CtfAdmin
642
  'whatis' => "Twitter provides JavaScript that allows visitors of your site to reply to, retweet, and like tweets without leaving your site. This can be disabled using this setting"
643
  ));
644
 
645
- $this->create_settings_field( array(
646
- 'name' => 'font_method',
647
- 'title' => '<label for="ctf_font_method">Icon Method</label>', // label for the input field
648
- 'callback' => 'default_select', // name of the function that outputs the html
649
- 'page' => 'ctf_options_advanced', // matches the section name
650
- 'section' => 'ctf_options_advanced', // matches the section name
651
- 'option' => 'ctf_options', // matches the options name
652
- 'class' => 'default-text', // class for the wrapper and input field
653
- 'fields' => array(
654
- array( 'svg', 'SVG' ),
655
- array( 'fontfile', 'Font File' )
656
- ),
657
- 'whatis' => "This plugin uses SVGs for all icons in the feed. Use this setting to switch to font icons" // what is this? text
658
- ) );
659
-
660
- $this->create_settings_field( array(
661
- 'name' => 'disableawesome',
662
- 'title' => '<label for="ctf_disableawesome">Disable icon font</label>', // label for the input field
663
- 'callback' => 'default_checkbox', // name of the function that outputs the html
664
- 'page' => 'ctf_options_advanced', // matches the section name
665
- 'section' => 'ctf_options_advanced', // matches the section name
666
- 'option' => 'ctf_options', // matches the options name
667
- 'class' => '',
668
- 'whatis' => "Twitter provides JavaScript that allows visitors of your site to reply to, retweet, and like tweets without leaving your site. This can be disabled using this setting"
669
- ));
670
-
671
  $this->create_settings_field( array(
672
  'name' => 'shorturls',
673
  'title' => '<label for="ctf_shorturls">Use shortened urls</label>', // label for the input field
@@ -1746,6 +1737,112 @@ class CtfAdmin
1746
  <?php
1747
  }
1748
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1749
  public function clear_persistent_cache_button( $args ) {
1750
  ?>
1751
  <input id="ctf-clear-persistent-cache" class="button-secondary" style="margin-top: 1px;" type="submit" value="<?php esc_attr_e( 'Clear Persistent Caches' ); ?>" />
523
  'extra' => '*will be fired every time more tweets are loaded'
524
  ));
525
 
526
+ add_settings_section(
527
+ 'ctf_options_gdpr', // matches the section name
528
+ 'GDPR',
529
+ array( $this, 'general_section_text' ), // callback function to explain the section
530
+ 'ctf_options_gdpr' // matches the section name
531
+ );
532
+
533
+ $this->create_settings_field( array(
534
+ 'name' => 'gdpr',
535
+ 'title' => '<label for="ctf_gdpr">Enable GDPR Settings</label>', // label for the input field
536
+ 'callback' => 'gdpr', // name of the function that outputs the html
537
+ 'page' => 'ctf_options_gdpr', // matches the section name
538
+ 'section' => 'ctf_options_gdpr', // matches the section name
539
+ 'option' => 'ctf_options', // matches the options name
540
+ 'class' => 'default-text', // class for the wrapper and input field
541
+ ));
542
+
543
  add_settings_section(
544
  'ctf_options_advanced', // matches the section name
545
  'Advanced',
659
  'whatis' => "Twitter provides JavaScript that allows visitors of your site to reply to, retweet, and like tweets without leaving your site. This can be disabled using this setting"
660
  ));
661
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
662
  $this->create_settings_field( array(
663
  'name' => 'shorturls',
664
  'title' => '<label for="ctf_shorturls">Use shortened urls</label>', // label for the input field
1737
  <?php
1738
  }
1739
 
1740
+ public function gdpr( $args ) {
1741
+ $options = get_option( $args['option'] );
1742
+ $gdpr = ( isset( $options[ $args['name'] ] ) ) ? esc_attr( $options[ $args['name'] ] ) : '';
1743
+ $select_options = array(
1744
+ array(
1745
+ 'label' => __( 'Automatic', 'custom-twitter-feeds' ),
1746
+ 'value' => 'auto'
1747
+ ),
1748
+ array(
1749
+ 'label' => __( 'Yes', 'custom-twitter-feeds' ),
1750
+ 'value' => 'yes'
1751
+ ),
1752
+ array(
1753
+ 'label' => __( 'No', 'custom-twitter-feeds' ),
1754
+ 'value' => 'no'
1755
+ )
1756
+ )
1757
+ ?>
1758
+ <?php
1759
+ $gdpr_list = "<ul class='ctf-list'>
1760
+ <li>" . __( 'Avatars will be replaced with a Twitter logo in the feed header.', 'custom-twitter-feeds' ) . "</li>
1761
+ <li>" . __( 'Avatars will not display in Tweets.', 'custom-twitter-feeds' ) . "</li>
1762
+ <li>" . __( 'Twitter intents (for replying, retweeting, and liking) will be plain links.', 'custom-twitter-feeds' ) . "</li>
1763
+ </ul>";
1764
+ ?>
1765
+ <div>
1766
+ <select name="<?php echo $args['option'].'['.$args['name'].']'; ?>" id="ctf_gdpr_setting">
1767
+ <?php foreach ( $select_options as $select_option ) :
1768
+ $selected = $select_option['value'] === $gdpr ? ' selected' : '';
1769
+ ?>
1770
+ <option value="<?php echo esc_attr( $select_option['value'] ); ?>"<?php echo $selected; ?> ><?php echo esc_html( $select_option['label'] ); ?></option>
1771
+ <?php endforeach; ?>
1772
+ </select>
1773
+ <a class="ctf-tooltip-link" href="JavaScript:void(0);"><?php _e('What does this mean?', 'custom-twitter-feeds'); ?></a>
1774
+ <div class="ctf-tooltip ctf-more-info gdpr_tooltip">
1775
+
1776
+ <p><span><?php _e("Yes", 'custom-twitter-feeds' ); ?>:</span> <?php _e("Enabling this setting prevents all images and videos from being loaded directly from Twitter's servers (CDN) to prevent any requests to external websites in your browser. To accommodate this, some features of the plugin will be disabled or limited.", 'custom-twitter-feeds' ); ?> <a href="JavaScript:void(0);" class="ctf_show_gdpr_list"><?php _e( 'What will be limited?', 'custom-twitter-feeds' ); ?></a></p>
1777
+
1778
+ <?php echo "<div class='ctf_gdpr_list'>" . $gdpr_list . '</div>'; ?>
1779
+
1780
+
1781
+ <p><span><?php _e("No", 'custom-twitter-feeds' ); ?>:</span> <?php _e("The plugin will still make some requests to load and display images and videos directly from Twitter.", 'custom-twitter-feeds' ); ?></p>
1782
+
1783
+
1784
+ <p><span><?php _e("Automatic", 'custom-twitter-feeds' ); ?>:</span> <?php echo sprintf( __( 'The plugin will only load images and videos directly from Twitter if consent has been given by one of these integrated %s', 'custom-twitter-feeds' ), '<a href="https://smashballoon.com/doc/gdpr-plugin-list/?twitter" target="_blank" rel="noopener">' . __( 'GDPR cookie plugins', 'custom-twitter-feeds' ) . '</a>' ); ?></p>
1785
+
1786
+ <p><?php echo sprintf( __( '%s to learn more about GDPR compliance in the Custom Twitter Feed plugin.', 'custom-twitter-feeds' ), '<a href="https://smashballoon.com/doc/custom-twitter-feeds-gdpr-compliance/?twitter" target="_blank" rel="noopener">'. __( 'Click here', 'custom-twitter-feeds' ).'</a>' ); ?></p>
1787
+ </div>
1788
+ </div>
1789
+
1790
+ <?php if ( ! CTF_GDPR_Integrations::gdpr_tests_successful( isset( $_GET['retest'] ) ) ) :
1791
+ $errors = CTF_GDPR_Integrations::gdpr_tests_error_message();
1792
+ ?>
1793
+ <div class="ctf-box ctf_gdpr_error">
1794
+ <div class="ctf-box-setting">
1795
+ <p>
1796
+ <strong><?php _e( 'Error:', 'custom-twitter-feeds' ); ?></strong> <?php _e("Due to a configuration issue on your web server, the GDPR setting is unable to be enabled. Please see below for more information.", 'custom-twitter-feeds' ); ?></p>
1797
+ <p>
1798
+ <?php echo $errors; ?>
1799
+ </p>
1800
+ </div>
1801
+ </div>
1802
+ <?php else: ?>
1803
+
1804
+ <div class="ctf_gdpr_auto">
1805
+ <?php if ( CTF_GDPR_Integrations::gdpr_plugins_active() ) :
1806
+ $active_plugin = CTF_GDPR_Integrations::gdpr_plugins_active();
1807
+ ?>
1808
+ <div class="ctf_gdpr_plugin_active">
1809
+ <div class="ctf_active">
1810
+ <p>
1811
+ <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="check-circle" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="svg-inline--fa fa-check-circle fa-w-16 fa-2x"><path fill="currentColor" d="M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z" class=""></path></svg>
1812
+ <b><?php echo sprintf( __( '%s detected', 'custom-twitter-feeds' ), $active_plugin ); ?></b>
1813
+ <br />
1814
+ <?php _e( 'Some Custom Twitter Feed features will be limited for visitors to ensure GDPR compliance until they give consent.', 'custom-twitter-feeds' ); ?>
1815
+ <a href="JavaScript:void(0);" class="ctf_show_gdpr_list"><?php _e( 'What will be limited?', 'custom-twitter-feeds' ); ?></a>
1816
+ </p>
1817
+ <?php echo "<div class='ctf_gdpr_list'>" . $gdpr_list . '</div>'; ?>
1818
+ </div>
1819
+
1820
+ </div>
1821
+ <?php else: ?>
1822
+ <div class="ctf-box">
1823
+ <div class="ctf-box-setting">
1824
+ <p><?php _e( 'No GDPR consent plugin detected. Install a compatible <a href="https://smashballoon.com/doc/gdpr-plugin-list/?twitter">GDPR consent plugin</a>, or manually enable the setting above to display a GDPR compliant version of the feed to all visitors.', 'custom-twitter-feeds' ); ?></p>
1825
+ </div>
1826
+ </div>
1827
+ <?php endif; ?>
1828
+ </div>
1829
+
1830
+ <div class="ctf-box ctf_gdpr_yes">
1831
+ <div class="ctf-box-setting">
1832
+ <p><?php _e( "No requests will be made to third-party websites. To accommodate this, some features of the plugin will be limited:", 'custom-twitter-feeds' ); ?></p>
1833
+ <?php echo $gdpr_list; ?>
1834
+ </div>
1835
+ </div>
1836
+
1837
+ <div class="ctf-box ctf_gdpr_no">
1838
+ <div class="ctf-box-setting">
1839
+ <p><?php _e( "The plugin will function as normal and load images and videos directly from Twitter.", 'custom-twitter-feeds' ); ?></p>
1840
+ </div>
1841
+ </div>
1842
+
1843
+ <?php endif;
1844
+ }
1845
+
1846
  public function clear_persistent_cache_button( $args ) {
1847
  ?>
1848
  <input id="ctf-clear-persistent-cache" class="button-secondary" style="margin-top: 1px;" type="submit" value="<?php esc_attr_e( 'Clear Persistent Caches' ); ?>" />
inc/CtfFeed.php CHANGED
@@ -162,6 +162,7 @@ class CtfFeed
162
  $this->setStandardTextOptions( 'font_method', 'svg' );
163
  $this->setStandardTextOptions( 'multiplier', 1.25 );
164
  $this->setStandardTextOptions( 'twitterlinktext', 'Twitter' );
 
165
 
166
  $this->setStandardTextOptions( 'buttontext', __( 'Load More...', 'custom-twitter-feeds' ) );
167
  $this->setStandardTextOptions( 'textlength', 280 );
@@ -212,6 +213,10 @@ class CtfFeed
212
  $this->setDimensionOptions();
213
  $this->setCacheTimeOptions();
214
  $this->setIncludeExcludeOptions();
 
 
 
 
215
  }
216
 
217
  /**
@@ -1383,9 +1388,6 @@ class CtfFeed
1383
  $html .= '<a class="twitter-follow-button" href="https://twitter.com/' . $feed_options['screenname'] . '" target="_blank" rel="noopener noreferrer" data-show-count="false" data-size="large" data-dnt="true">Follow</a>';
1384
  }
1385
  $html .= '</p>';
1386
- if ( !$feed_options['disableintents'] ) {
1387
- $html .= "<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>";
1388
- }
1389
  $html .= '</div>';
1390
 
1391
  return $html;
@@ -1411,8 +1413,13 @@ class CtfFeed
1411
  $ctf_feed_classes = apply_filters( 'ctf_feed_classes', $ctf_feed_classes ); //add_filter( 'ctf_feed_classes', function( $ctf_feed_classes ) { return $ctf_feed_classes . ' new-class'; }, 10, 1 );
1412
  $ctf_feed_html = '';
1413
 
 
 
 
 
 
1414
  $ctf_feed_html .= '<!-- Custom Twitter Feeds by Smash Balloon -->';
1415
- $ctf_feed_html .= '<div id="ctf" class="' . $ctf_feed_classes . '" style="' . $feed_options['width'] . $feed_options['height'] . $feed_options['bgcolor'] . '" data-ctfshortcode="' . $this->getShortCodeJSON() . '"' .$ctf_data_disablelinks . $ctf_data_linktextcolor . $ctf_enable_intents . ' data-ctfneeded="'. $ctf_data_needed .'">';
1416
  $tweet_set = $this->tweet_set;
1417
 
1418
  // dynamically include header
@@ -1499,7 +1506,11 @@ class CtfFeed
1499
  $ctf_header_html .= '</div>';
1500
  $ctf_header_html .= '<div class="ctf-header-img">';
1501
  $ctf_header_html .= '<div class="ctf-header-img-hover">' . ctf_get_fa_el( 'fa-twitter' ) . '</div>';
1502
- $ctf_header_html .= '<img src="' . $tweet_set[0]['user']['profile_image_url_https'] . '" alt="' . $tweet_set[0]['user']['name'] . '" width="48" height="48">';
 
 
 
 
1503
  $ctf_header_html .= '</div>';
1504
  $ctf_header_html .= '</a>';
1505
  $ctf_header_html .= '</div>';
@@ -1653,7 +1664,11 @@ class CtfFeed
1653
  $tweet_html .= '<div class="ctf-author-box-link" style="' . $feed_options['authortextsize'] . $feed_options['authortextweight'] . $feed_options['textcolor'] . '">';
1654
  if ( ctf_show( 'avatar', $feed_options ) ) {
1655
  $tweet_html .= '<a href="https://twitter.com/' . $post['user']['screen_name'] . '" class="ctf-author-avatar" target="_blank" rel="noopener noreferrer" style="' . $feed_options['authortextsize'] . $feed_options['authortextweight'] . $feed_options['textcolor'] . '">';
1656
- $tweet_html .= '<img src="' . $post['user']['profile_image_url_https'] . '" alt="' . $post['user']['screen_name'] . '" width="48" height="48">';
 
 
 
 
1657
  $tweet_html .= '</a>';
1658
  }
1659
 
162
  $this->setStandardTextOptions( 'font_method', 'svg' );
163
  $this->setStandardTextOptions( 'multiplier', 1.25 );
164
  $this->setStandardTextOptions( 'twitterlinktext', 'Twitter' );
165
+ $this->setStandardTextOptions( 'gdpr', 'auto' );
166
 
167
  $this->setStandardTextOptions( 'buttontext', __( 'Load More...', 'custom-twitter-feeds' ) );
168
  $this->setStandardTextOptions( 'textlength', 280 );
213
  $this->setDimensionOptions();
214
  $this->setCacheTimeOptions();
215
  $this->setIncludeExcludeOptions();
216
+
217
+ if ( CTF_GDPR_Integrations::doing_gdpr( $this->feed_options ) ) {
218
+ CTF_GDPR_Integrations::init();
219
+ }
220
  }
221
 
222
  /**
1388
  $html .= '<a class="twitter-follow-button" href="https://twitter.com/' . $feed_options['screenname'] . '" target="_blank" rel="noopener noreferrer" data-show-count="false" data-size="large" data-dnt="true">Follow</a>';
1389
  }
1390
  $html .= '</p>';
 
 
 
1391
  $html .= '</div>';
1392
 
1393
  return $html;
1413
  $ctf_feed_classes = apply_filters( 'ctf_feed_classes', $ctf_feed_classes ); //add_filter( 'ctf_feed_classes', function( $ctf_feed_classes ) { return $ctf_feed_classes . ' new-class'; }, 10, 1 );
1414
  $ctf_feed_html = '';
1415
 
1416
+ $gdpr_att = '';
1417
+ if ( CTF_GDPR_Integrations::doing_gdpr( $feed_options ) ) {
1418
+ $gdpr_att = ' ctf-gdpr="1"';
1419
+ }
1420
+
1421
  $ctf_feed_html .= '<!-- Custom Twitter Feeds by Smash Balloon -->';
1422
+ $ctf_feed_html .= '<div id="ctf" class="' . $ctf_feed_classes . '" style="' . $feed_options['width'] . $feed_options['height'] . $feed_options['bgcolor'] . '" data-ctfshortcode="' . $this->getShortCodeJSON() . '"' .$ctf_data_disablelinks . $ctf_data_linktextcolor . $ctf_enable_intents . $gdpr_att .' data-ctfneeded="'. $ctf_data_needed .'">';
1423
  $tweet_set = $this->tweet_set;
1424
 
1425
  // dynamically include header
1506
  $ctf_header_html .= '</div>';
1507
  $ctf_header_html .= '<div class="ctf-header-img">';
1508
  $ctf_header_html .= '<div class="ctf-header-img-hover">' . ctf_get_fa_el( 'fa-twitter' ) . '</div>';
1509
+ if ( CTF_GDPR_Integrations::doing_gdpr( $feed_options ) ) {
1510
+ $ctf_header_html .= '<span data-avatar="' . esc_url( $tweet_set[0]['user']['profile_image_url_https'] ) . '" data-alt="' . $tweet_set[0]['user']['name'] . '" style="display: none;">Avatar</span>';
1511
+ } else {
1512
+ $ctf_header_html .= '<img src="' . $tweet_set[0]['user']['profile_image_url_https'] . '" alt="' . $tweet_set[0]['user']['name'] . '" width="48" height="48">';
1513
+ }
1514
  $ctf_header_html .= '</div>';
1515
  $ctf_header_html .= '</a>';
1516
  $ctf_header_html .= '</div>';
1664
  $tweet_html .= '<div class="ctf-author-box-link" style="' . $feed_options['authortextsize'] . $feed_options['authortextweight'] . $feed_options['textcolor'] . '">';
1665
  if ( ctf_show( 'avatar', $feed_options ) ) {
1666
  $tweet_html .= '<a href="https://twitter.com/' . $post['user']['screen_name'] . '" class="ctf-author-avatar" target="_blank" rel="noopener noreferrer" style="' . $feed_options['authortextsize'] . $feed_options['authortextweight'] . $feed_options['textcolor'] . '">';
1667
+ if ( CTF_GDPR_Integrations::doing_gdpr( $feed_options ) ) {
1668
+ $tweet_html .= '<span data-avatar="' . esc_url( $post['user']['profile_image_url_https'] ) . '" data-alt="' . $post['user']['screen_name'] . '">Avatar</span>';
1669
+ } else {
1670
+ $tweet_html .= '<img src="' . esc_url( $post['user']['profile_image_url_https'] ) . '" alt="' . $post['user']['screen_name'] . '" width="48" height="48">';
1671
+ }
1672
  $tweet_html .= '</a>';
1673
  }
1674
 
inc/CtfOauthConnect.php CHANGED
@@ -258,7 +258,12 @@ class CtfOauthConnect
258
  );
259
  $result = wp_remote_get( $url, $args );
260
 
261
- return $result['body']; // just need the body to keep everything simple
 
 
 
 
 
262
  }
263
 
264
  /**
258
  );
259
  $result = wp_remote_get( $url, $args );
260
 
261
+ if ( ! is_wp_error( $result ) ) {
262
+ return $result['body']; // just need the body to keep everything simple
263
+ } else {
264
+ return '{}';
265
+ }
266
+
267
  }
268
 
269
  /**
inc/class-ctf-gdpr-integrations.php ADDED
@@ -0,0 +1,116 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Class CTF_GDPR_Integrations
4
+ *
5
+ * Adds GDPR related workarounds for third-party plugins:
6
+ * https://wordpress.org/plugins/cookie-law-info/
7
+ *
8
+ * @since 1.7/1.12
9
+ */
10
+
11
+ if ( ! defined( 'ABSPATH' ) ) {
12
+ die( '-1' );
13
+ }
14
+
15
+ class CTF_GDPR_Integrations {
16
+
17
+ /**
18
+ * Undoing of Cookie Notice's Twitter Feed related code
19
+ * needs to be done late.
20
+ *
21
+ * @since 1.7/1.12
22
+ */
23
+ public static function init() {
24
+ add_filter( 'wt_cli_third_party_scripts', array( 'CTF_GDPR_Integrations', 'undo_script_blocking' ), 11 );
25
+ add_filter( 'cmplz_known_script_tags', array( 'CTF_GDPR_Integrations', 'undo_script_blocking' ), 11 );
26
+ }
27
+
28
+ /**
29
+ * Prevents changes made to how JavaScript file is added to
30
+ * pages.
31
+ *
32
+ * @since 1.7/1.12
33
+ */
34
+ public static function undo_script_blocking() {
35
+ $settings = ctf_get_database_settings();
36
+ if ( ! CTF_GDPR_Integrations::doing_gdpr( $settings ) ) {
37
+ return;
38
+ }
39
+ remove_filter( 'wt_cli_third_party_scripts', 'wt_cli_twitter_feed_script' );
40
+ remove_filter( 'cmplz_known_script_tags', 'cmplz_twitter_feed_script' );
41
+ }
42
+
43
+ /**
44
+ * Whether or not consent plugins that Twitter Feed
45
+ * is compatible with are active.
46
+ *
47
+ * @return bool|string
48
+ *
49
+ * @since 1.7/1.12
50
+ */
51
+ public static function gdpr_plugins_active() {
52
+ if ( class_exists( 'Cookie_Notice' ) ) {
53
+ return 'Cookie Notice by dFactory';
54
+ }
55
+ if ( function_exists( 'run_cookie_law_info' ) ) {
56
+ return 'GDPR Cookie Consent by WebToffee';
57
+ }
58
+ if ( class_exists( 'Cookiebot_WP' ) ) {
59
+ return 'Cookiebot by Cybot A/S';
60
+ }
61
+ if ( class_exists( 'COMPLIANZ' ) ) {
62
+ return 'Complianz by Really Simple Plugins';
63
+ }
64
+ if ( function_exists('BorlabsCookieHelper') ) {
65
+ return 'Borlabs Cookie by Borlabs';
66
+ }
67
+
68
+ return false;
69
+ }
70
+
71
+ /**
72
+ * GDPR features can be added automatically, forced enabled,
73
+ * or forced disabled.
74
+ *
75
+ * @param $settings
76
+ *
77
+ * @return bool
78
+ *
79
+ * @since 1.7/1.12
80
+ */
81
+ public static function doing_gdpr( $settings ) {
82
+ $gdpr = isset( $settings['gdpr'] ) ? $settings['gdpr'] : 'auto';
83
+ if ( $gdpr === 'no' ) {
84
+ return false;
85
+ }
86
+ if ( $gdpr === 'yes' ) {
87
+ return true;
88
+ }
89
+ return (CTF_GDPR_Integrations::gdpr_plugins_active() !== false);
90
+ }
91
+
92
+ /**
93
+ * No tests needed in free version
94
+ *
95
+ * @param bool $retest
96
+ *
97
+ * @return bool
98
+ *
99
+ * @since 1.7/1.12
100
+ */
101
+ public static function gdpr_tests_successful( $retest = false ) {
102
+ return true;
103
+ }
104
+
105
+ /**
106
+ * No tests needed in free version
107
+ *
108
+ * @return array
109
+ *
110
+ * @since 1.7/1.12
111
+ */
112
+ public static function gdpr_tests_error_message() {
113
+ return array();
114
+ }
115
+
116
+ }
js/ctf-admin-scripts.js CHANGED
@@ -348,4 +348,28 @@ jQuery(document).ready(function($){
348
  });
349
  });
350
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
351
  });
348
  });
349
  });
350
 
351
+ jQuery('.ctf_show_gdpr_list').on('click', function(){
352
+ jQuery(this).closest('div').find('.ctf_gdpr_list').slideToggle();
353
+ });
354
+
355
+ //Selecting a post style
356
+ jQuery('#ctf_gdpr_setting').on('change', function(){
357
+ ctfCheckGdprSetting( jQuery(this).val() );
358
+ });
359
+ function ctfCheckGdprSetting(option) {
360
+ if( option == 'yes' ){
361
+ jQuery('.ctf_gdpr_yes').show();
362
+ jQuery('.ctf_gdpr_no, .ctf_gdpr_auto').hide();
363
+ }
364
+ if( option == 'no' ){
365
+ jQuery('.ctf_gdpr_no').show();
366
+ jQuery('.ctf_gdpr_yes, .ctf_gdpr_auto').hide();
367
+ }
368
+ if( option == 'auto' ){
369
+ jQuery('.ctf_gdpr_auto').show();
370
+ jQuery('.ctf_gdpr_yes, .ctf_gdpr_no').hide();
371
+ }
372
+ }
373
+ ctfCheckGdprSetting();
374
+
375
  });
js/ctf-scripts.js CHANGED
@@ -4,3620 +4,31 @@ if(!ctf_js_exists){
4
  (function ($) {
5
 
6
  window.ctf_init = function() {
 
 
 
 
 
 
 
 
 
7
 
8
- if ($('.ctf').length <= $('.ctf_is_initialized').length) {
9
- return;
10
- }
11
-
12
- var ctfIntentsIncluded = false;
13
- $('.ctf').each(function () {
14
- if (!$(this).hasClass('ctf_is_initialized') && !ctfIntentsIncluded && typeof $(this).attr('data-ctfintents') !== 'undefined') {
15
- ctfIntentsIncluded = true;
16
- Function && Function.prototype && Function.prototype.bind && (/MSIE ([6789]|10)/.test(navigator.userAgent) || (window.__twttr && window.__twttr.widgets && window.__twttr.widgets.loaded && window.twttr.widgets.load && window.twttr.widgets.load(), window.__twttr && window.__twttr.widgets && window.__twttr.widgets.init || function (t) {
17
- function e(e) {
18
- for (var n, i, o = e[0], s = e[1], a = 0, c = []; a < o.length; a++) i = o[a], r[i] && c.push(r[i][0]), r[i] = 0;
19
- for (n in s) Object.prototype.hasOwnProperty.call(s, n) && (t[n] = s[n]);
20
- for (u && u(e); c.length;) c.shift()()
21
- }
22
-
23
- var n = {}, r = {1: 0};
24
-
25
- function i(e) {
26
- if (n[e]) return n[e].exports;
27
- var r = n[e] = {i: e, l: !1, exports: {}};
28
- return t[e].call(r.exports, r, r.exports, i), r.l = !0, r.exports
29
- }
30
-
31
- i.e = function (t) {
32
- var e = [], n = r[t];
33
- if (0 !== n) if (n) e.push(n[2]); else {
34
- var o = new Promise(function (e, i) {
35
- n = r[t] = [e, i]
36
- });
37
- e.push(n[2] = o);
38
- var s, a = document.getElementsByTagName("head")[0],
39
- u = document.createElement("script");
40
- u.charset = "utf-8", u.timeout = 120, i.nc && u.setAttribute("nonce", i.nc), u.src = function (t) {
41
- return i.p + "js/" + ({
42
- 0: "moment~timeline~tweet",
43
- 2: "dm_button",
44
- 3: "button",
45
- 4: "moment",
46
- 5: "periscope_on_air",
47
- 6: "timeline",
48
- 7: "tweet"
49
- }[t] || t) + "." + {
50
- 0: "ec04a6cb5ba879d0e0db41f211639fdf",
51
- 2: "6542a7407a2eccac51f5c5e0fac5bb80",
52
- 3: "d941c9a422e2e3faf474b82a1f39e936",
53
- 4: "0a3cc02317b85399478995c763a1296c",
54
- 5: "d26526abe761c4d8d8d71cf0ec565649",
55
- 6: "0a7b4db67eacd23e35c5ce02e6ea3470",
56
- 7: "b2d749028be81f16d9cb4994d9692feb"
57
- }[t] + ".js"
58
- }(t), s = function (e) {
59
- u.onerror = u.onload = null, clearTimeout(c);
60
- var n = r[t];
61
- if (0 !== n) {
62
- if (n) {
63
- var i = e && ("load" === e.type ? "missing" : e.type),
64
- o = e && e.target && e.target.src,
65
- s = new Error("Loading chunk " + t + " failed.\n(" + i + ": " + o + ")");
66
- s.type = i, s.request = o, n[1](s)
67
- }
68
- r[t] = void 0
69
- }
70
- };
71
- var c = setTimeout(function () {
72
- s({type: "timeout", target: u})
73
- }, 12e4);
74
- u.onerror = u.onload = s, a.appendChild(u)
75
- }
76
- return Promise.all(e)
77
- }, i.m = t, i.c = n, i.d = function (t, e, n) {
78
- i.o(t, e) || Object.defineProperty(t, e, {enumerable: !0, get: n})
79
- }, i.r = function (t) {
80
- "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {value: "Module"}), Object.defineProperty(t, "__esModule", {value: !0})
81
- }, i.t = function (t, e) {
82
- if (1 & e && (t = i(t)), 8 & e) return t;
83
- if (4 & e && "object" == typeof t && t && t.__esModule) return t;
84
- var n = Object.create(null);
85
- if (i.r(n), Object.defineProperty(n, "default", {
86
- enumerable: !0,
87
- value: t
88
- }), 2 & e && "string" != typeof t) for (var r in t) i.d(n, r, function (e) {
89
- return t[e]
90
- }.bind(null, r));
91
- return n
92
- }, i.n = function (t) {
93
- var e = t && t.__esModule ? function () {
94
- return t.default
95
- } : function () {
96
- return t
97
- };
98
- return i.d(e, "a", e), e
99
- }, i.o = function (t, e) {
100
- return Object.prototype.hasOwnProperty.call(t, e)
101
- }, i.p = "https://platform.twitter.com/", i.oe = function (t) {
102
- throw console.error(t), t
103
- };
104
- var o = window.__twttrll = window.__twttrll || [], s = o.push.bind(o);
105
- o.push = e, o = o.slice();
106
- for (var a = 0; a < o.length; a++) e(o[a]);
107
- var u = s;
108
- i(i.s = 94)
109
- }([function (t, e, n) {
110
- var r = n(1);
111
-
112
- function i(t, e) {
113
- var n;
114
- for (n in t) t.hasOwnProperty && !t.hasOwnProperty(n) || e(n, t[n]);
115
- return t
116
- }
117
-
118
- function o(t) {
119
- return {}.toString.call(t).match(/\s([a-zA-Z]+)/)[1].toLowerCase()
120
- }
121
-
122
- function s(t) {
123
- return t === Object(t)
124
- }
125
-
126
- function a(t) {
127
- var e;
128
- if (!s(t)) return !1;
129
- if (Object.keys) return !Object.keys(t).length;
130
- for (e in t) if (t.hasOwnProperty(e)) return !1;
131
- return !0
132
- }
133
-
134
- function u(t) {
135
- return t ? Array.prototype.slice.call(t) : []
136
- }
137
-
138
- t.exports = {
139
- aug: function (t) {
140
- return u(arguments).slice(1).forEach(function (e) {
141
- i(e, function (e, n) {
142
- t[e] = n
143
- })
144
- }), t
145
- }, async: function (t, e) {
146
- r.setTimeout(function () {
147
- t.call(e || null)
148
- }, 0)
149
- }, compact: function t(e) {
150
- return i(e, function (n, r) {
151
- s(r) && (t(r), a(r) && delete e[n]), void 0 !== r && null !== r && "" !== r || delete e[n]
152
- }), e
153
- }, contains: function (t, e) {
154
- return !(!t || !t.indexOf) && t.indexOf(e) > -1
155
- }, forIn: i, isObject: s, isEmptyObject: a, toType: o, isType: function (t, e) {
156
- return t == o(e)
157
- }, toRealArray: u
158
- }
159
- }, function (t, e) {
160
- t.exports = window
161
- }, function (t, e, n) {
162
- var r = n(6);
163
- t.exports = function () {
164
- var t = this;
165
- this.promise = new r(function (e, n) {
166
- t.resolve = e, t.reject = n
167
- })
168
- }
169
- }, function (t, e, n) {
170
- var r = n(11),
171
- i = /(?:^|(?:https?:)?\/\/(?:www\.)?twitter\.com(?::\d+)?(?:\/intent\/(?:follow|user)\/?\?screen_name=|(?:\/#!)?\/))@?([\w]+)(?:\?|&|$)/i,
172
- o = /(?:^|(?:https?:)?\/\/(?:www\.)?twitter\.com(?::\d+)?\/(?:#!\/)?[\w_]+\/status(?:es)?\/)(\d+)/i,
173
- s = /^http(s?):\/\/(\w+\.)*twitter\.com([:/]|$)/i, a = /^http(s?):\/\/pbs\.twimg\.com\//,
174
- u = /^#?([^.,<>!\s/#\-()'"]+)$/, c = /twitter\.com(?::\d{2,4})?\/intent\/(\w+)/,
175
- d = /^https?:\/\/(?:www\.)?twitter\.com\/\w+\/timelines\/(\d+)/i,
176
- l = /^https?:\/\/(?:www\.)?twitter\.com\/i\/moments\/(\d+)/i,
177
- f = /^https?:\/\/(?:www\.)?twitter\.com\/(\w+)\/(?:likes|favorites)/i,
178
- h = /^https?:\/\/(?:www\.)?twitter\.com\/(\w+)\/lists\/([\w-%]+)/i,
179
- p = /^https?:\/\/(?:www\.)?twitter\.com\/i\/live\/(\d+)/i,
180
- m = /^https?:\/\/syndication\.twitter\.com\/settings/i,
181
- v = /^https?:\/\/(localhost|platform)\.twitter\.com(?::\d+)?\/widgets\/widget_iframe\.(.+)/i,
182
- g = /^https?:\/\/(?:www\.)?twitter\.com\/search\?q=(\w+)/i;
183
-
184
- function w(t) {
185
- return "string" == typeof t && i.test(t) && RegExp.$1.length <= 20
186
- }
187
-
188
- function y(t) {
189
- if (w(t)) return RegExp.$1
190
- }
191
-
192
- function b(t, e) {
193
- var n = r.decodeURL(t);
194
- if (e = e || !1, n.screen_name = y(t), n.screen_name) return r.url("https://twitter.com/intent/" + (e ? "follow" : "user"), n)
195
- }
196
-
197
- function _(t) {
198
- return "string" == typeof t && u.test(t)
199
- }
200
-
201
- function E(t) {
202
- return "string" == typeof t && o.test(t)
203
- }
204
-
205
- t.exports = {
206
- isHashTag: _, hashTag: function (t, e) {
207
- if (e = void 0 === e || e, _(t)) return (e ? "#" : "") + RegExp.$1
208
- }, isScreenName: w, screenName: y, isStatus: E, status: function (t) {
209
- return E(t) && RegExp.$1
210
- }, intentForProfileURL: b, intentForFollowURL: function (t) {
211
- return b(t, !0)
212
- }, isTwitterURL: function (t) {
213
- return s.test(t)
214
- }, isTwimgURL: function (t) {
215
- return a.test(t)
216
- }, isIntentURL: function (t) {
217
- return c.test(t)
218
- }, isSettingsURL: function (t) {
219
- return m.test(t)
220
- }, isWidgetIframeURL: function (t) {
221
- return v.test(t)
222
- }, isSearchUrl: function (t) {
223
- return g.test(t)
224
- }, regexen: {profile: i}, momentId: function (t) {
225
- return l.test(t) && RegExp.$1
226
- }, collectionId: function (t) {
227
- return d.test(t) && RegExp.$1
228
- }, intentType: function (t) {
229
- return c.test(t) && RegExp.$1
230
- }, likesScreenName: function (t) {
231
- return f.test(t) && RegExp.$1
232
- }, listScreenNameAndSlug: function (t) {
233
- var e, n, r;
234
- if (h.test(t)) {
235
- e = RegExp.$1, n = RegExp.$2;
236
- try {
237
- r = decodeURIComponent(n)
238
- } catch (t) {
239
- }
240
- return {ownerScreenName: e, slug: r || n}
241
- }
242
- return !1
243
- }, eventId: function (t) {
244
- return p.test(t) && RegExp.$1
245
- }
246
- }
247
- }, function (t, e) {
248
- t.exports = document
249
- }, function (t, e, n) {
250
- var r = n(0), i = [!0, 1, "1", "on", "ON", "true", "TRUE", "yes", "YES"],
251
- o = [!1, 0, "0", "off", "OFF", "false", "FALSE", "no", "NO"];
252
-
253
- function s(t) {
254
- return void 0 !== t && null !== t && "" !== t
255
- }
256
-
257
- function a(t) {
258
- return c(t) && t % 1 == 0
259
- }
260
-
261
- function u(t) {
262
- return c(t) && !a(t)
263
- }
264
-
265
- function c(t) {
266
- return s(t) && !isNaN(t)
267
- }
268
-
269
- function d(t) {
270
- return r.contains(o, t)
271
- }
272
-
273
- function l(t) {
274
- return r.contains(i, t)
275
- }
276
-
277
- t.exports = {
278
- hasValue: s, isInt: a, isFloat: u, isNumber: c, isString: function (t) {
279
- return "string" === r.toType(t)
280
- }, isArray: function (t) {
281
- return s(t) && "array" == r.toType(t)
282
- }, isTruthValue: l, isFalseValue: d, asInt: function (t) {
283
- if (a(t)) return parseInt(t, 10)
284
- }, asFloat: function (t) {
285
- if (u(t)) return t
286
- }, asNumber: function (t) {
287
- if (c(t)) return t
288
- }, asBoolean: function (t) {
289
- return !(!s(t) || !l(t) && (d(t) || !t))
290
- }
291
- }
292
- }, function (t, e, n) {
293
- var r = n(1), i = n(21), o = n(48);
294
- i.hasPromiseSupport() || (r.Promise = o), t.exports = r.Promise
295
- }, function (t, e, n) {
296
- var r = n(0);
297
- t.exports = function (t, e) {
298
- var n = Array.prototype.slice.call(arguments, 2);
299
- return function () {
300
- var i = r.toRealArray(arguments);
301
- return t.apply(e, n.concat(i))
302
- }
303
- }
304
- }, function (t, e) {
305
- t.exports = location
306
- }, function (t, e, n) {
307
- var r = n(50);
308
- t.exports = new r("__twttr")
309
- }, function (t, e, n) {
310
- var r = n(0), i = /\b([\w-_]+)\b/g;
311
-
312
- function o(t) {
313
- return new RegExp("\\b" + t + "\\b", "g")
314
- }
315
-
316
- function s(t, e) {
317
- t.classList ? t.classList.add(e) : o(e).test(t.className) || (t.className += " " + e)
318
- }
319
-
320
- function a(t, e) {
321
- t.classList ? t.classList.remove(e) : t.className = t.className.replace(o(e), " ")
322
- }
323
-
324
- function u(t, e) {
325
- return t.classList ? t.classList.contains(e) : r.contains(c(t), e)
326
- }
327
-
328
- function c(t) {
329
- return r.toRealArray(t.classList ? t.classList : t.className.match(i))
330
- }
331
-
332
- t.exports = {
333
- add: s, remove: a, replace: function (t, e, n) {
334
- if (t.classList && u(t, e)) return a(t, e), void s(t, n);
335
- t.className = t.className.replace(o(e), n)
336
- }, toggle: function (t, e, n) {
337
- return void 0 === n && t.classList && t.classList.toggle ? t.classList.toggle(e, n) : (n ? s(t, e) : a(t, e), n)
338
- }, present: u, list: c
339
- }
340
- }, function (t, e, n) {
341
- var r = n(5), i = n(0);
342
-
343
- function o(t) {
344
- return encodeURIComponent(t).replace(/\+/g, "%2B").replace(/'/g, "%27")
345
- }
346
-
347
- function s(t) {
348
- return decodeURIComponent(t)
349
- }
350
-
351
- function a(t) {
352
- var e = [];
353
- return i.forIn(t, function (t, n) {
354
- var s = o(t);
355
- i.isType("array", n) || (n = [n]), n.forEach(function (t) {
356
- r.hasValue(t) && e.push(s + "=" + o(t))
357
- })
358
- }), e.sort().join("&")
359
- }
360
-
361
- function u(t) {
362
- var e = {};
363
- return t ? (t.split("&").forEach(function (t) {
364
- var n = t.split("="), r = s(n[0]), o = s(n[1]);
365
- if (2 == n.length) {
366
- if (!i.isType("array", e[r])) return r in e ? (e[r] = [e[r]], void e[r].push(o)) : void (e[r] = o);
367
- e[r].push(o)
368
- }
369
- }), e) : {}
370
- }
371
-
372
- t.exports = {
373
- url: function (t, e) {
374
- return a(e).length > 0 ? i.contains(t, "?") ? t + "&" + a(e) : t + "?" + a(e) : t
375
- }, decodeURL: function (t) {
376
- var e = t && t.split("?");
377
- return 2 == e.length ? u(e[1]) : {}
378
- }, decode: u, encode: a, encodePart: o, decodePart: s
379
- }
380
- }, function (t, e, n) {
381
- var r = n(8), i = n(1), o = n(0), s = {}, a = o.contains(r.href, "tw_debug=true");
382
-
383
- function u() {
384
- }
385
-
386
- function c() {
387
- }
388
-
389
- function d() {
390
- return i.performance && +i.performance.now() || +new Date
391
- }
392
-
393
- function l(t, e) {
394
- if (i.console && i.console[t]) switch (e.length) {
395
- case 1:
396
- i.console[t](e[0]);
397
- break;
398
- case 2:
399
- i.console[t](e[0], e[1]);
400
- break;
401
- case 3:
402
- i.console[t](e[0], e[1], e[2]);
403
- break;
404
- case 4:
405
- i.console[t](e[0], e[1], e[2], e[3]);
406
- break;
407
- case 5:
408
- i.console[t](e[0], e[1], e[2], e[3], e[4]);
409
- break;
410
- default:
411
- 0 !== e.length && i.console.warn && i.console.warn("too many params passed to logger." + t)
412
- }
413
- }
414
-
415
- t.exports = {
416
- devError: u, devInfo: c, devObject: function (t, e) {
417
- }, publicError: function () {
418
- l("error", o.toRealArray(arguments))
419
- }, publicLog: function () {
420
- l("info", o.toRealArray(arguments))
421
- }, time: function (t) {
422
- a && (s[t] = d())
423
- }, timeEnd: function (t) {
424
- a && s[t] && (d(), s[t])
425
- }
426
- }
427
- }, function (t, e, n) {
428
- var r = n(20), i = n(5), o = n(11), s = n(0), a = n(119);
429
- t.exports = function (t) {
430
- var e = t.href && t.href.split("?")[1], n = e ? o.decode(e) : {}, u = {
431
- lang: a(t),
432
- width: t.getAttribute("data-width") || t.getAttribute("width"),
433
- height: t.getAttribute("data-height") || t.getAttribute("height"),
434
- related: t.getAttribute("data-related"),
435
- partner: t.getAttribute("data-partner")
436
- };
437
- return i.asBoolean(t.getAttribute("data-dnt")) && r.setOn(), s.forIn(u, function (t, e) {
438
- var r = n[t];
439
- n[t] = i.hasValue(r) ? r : e
440
- }), s.compact(n)
441
- }
442
- }, function (t, e, n) {
443
- var r = n(81), i = n(23);
444
- t.exports = function () {
445
- var t = "data-twitter-extracted-" + i.generate();
446
- return function (e, n) {
447
- return r(e, n).filter(function (e) {
448
- return !e.hasAttribute(t)
449
- }).map(function (e) {
450
- return e.setAttribute(t, "true"), e
451
- })
452
- }
453
- }
454
- }, function (t, e) {
455
- function n(t, e, n, r, i, o, s) {
456
- this.factory = t, this.Sandbox = e, this.srcEl = o, this.targetEl = i, this.parameters = r, this.className = n, this.options = s
457
- }
458
-
459
- n.prototype.destroy = function () {
460
- this.srcEl = this.targetEl = null
461
- }, t.exports = n
462
- }, function (t, e) {
463
- t.exports = {
464
- DM_BUTTON: "twitter-dm-button",
465
- FOLLOW_BUTTON: "twitter-follow-button",
466
- HASHTAG_BUTTON: "twitter-hashtag-button",
467
- MENTION_BUTTON: "twitter-mention-button",
468
- MOMENT: "twitter-moment",
469
- PERISCOPE: "periscope-on-air",
470
- SHARE_BUTTON: "twitter-share-button",
471
- TIMELINE: "twitter-timeline",
472
- TWEET: "twitter-tweet"
473
- }
474
- }, function (t, e, n) {
475
- var r = n(6), i = n(20), o = n(53), s = n(52), a = n(35), u = n(5), c = n(0);
476
- t.exports = function (t, e, n) {
477
- var d;
478
- return t = t || [], e = e || {}, d = "ƒ(" + t.join(", ") + ", target, [options]);", function () {
479
- var l, f, h, p, m = Array.prototype.slice.apply(arguments, [0, t.length]),
480
- v = Array.prototype.slice.apply(arguments, [t.length]);
481
- return v.forEach(function (t) {
482
- t && (t.nodeType !== Node.ELEMENT_NODE ? c.isType("function", t) ? l = t : c.isType("object", t) && (f = t) : h = t)
483
- }), m.length !== t.length || 0 === v.length ? (l && c.async(function () {
484
- l(!1)
485
- }), r.reject(new Error("Not enough parameters. Expected: " + d))) : h ? (f = c.aug({}, f || {}, e), t.forEach(function (t) {
486
- f[t] = m.shift()
487
- }), u.asBoolean(f.dnt) && i.setOn(), p = a.getExperiments().then(function (t) {
488
- return o.addWidget(n(f, h, void 0, s.isHorizonTweetEnabled(t)))
489
- }), l && p.then(l, function () {
490
- l(!1)
491
- }), p) : (l && c.async(function () {
492
- l(!1)
493
- }), r.reject(new Error("No target element specified. Expected: " + d)))
494
- }
495
- }
496
- }, function (t, e, n) {
497
- var r = n(102), i = n(2), o = n(0);
498
-
499
- function s(t, e) {
500
- return function () {
501
- try {
502
- e.resolve(t.call(this))
503
- } catch (t) {
504
- e.reject(t)
505
- }
506
- }
507
- }
508
-
509
- t.exports = {
510
- sync: function (t, e) {
511
- t.call(e)
512
- }, read: function (t, e) {
513
- var n = new i;
514
- return r.read(s(t, n), e), n.promise
515
- }, write: function (t, e) {
516
- var n = new i;
517
- return r.write(s(t, n), e), n.promise
518
- }, defer: function (t, e, n) {
519
- var a = new i;
520
- return o.isType("function", t) && (n = e, e = t, t = 1), r.defer(t, s(e, a), n), a.promise
521
- }
522
- }
523
- }, function (t, e, n) {
524
- var r = n(9),
525
- i = ["https://syndication.twitter.com", "https://cdn.syndication.twimg.com", "https://localhost.twitter.com:8444"],
526
- o = ["https://syndication.twitter.com", "https://localhost.twitter.com:8445"],
527
- s = ["https://platform.twitter.com/embed/index.html", "https://localhost.twitter.com:8080", /https:\/\/ton\.smf1\.twitter\.com\/syndication-internal\/embed-iframe\/[0-9A-Za-z_-]+\/app\/index\.html/],
528
- a = function (t, e) {
529
- return t.some(function (t) {
530
- return t instanceof RegExp ? t.test(e) : t === e
531
- })
532
- }, u = function () {
533
- var t = r.get("backendHost");
534
- return t && a(i, t) ? t : "https://cdn.syndication.twimg.com"
535
- }, c = function () {
536
- var t = r.get("settingsSvcHost");
537
- return t && a(o, t) ? t : "https://syndication.twitter.com"
538
- }, d = function () {
539
- var t = r.get("embedIframeURL");
540
- return t && a(s, t) ? t : "https://platform.twitter.com/embed/index.html"
541
- };
542
-
543
- function l(t, e) {
544
- var n = [t];
545
- return e.forEach(function (t) {
546
- n.push(function (t) {
547
- var e = (t || "").toString(), n = "/" === e.slice(0, 1) ? 1 : 0, r = function (t) {
548
- return "/" === t.slice(-1)
549
- }(e) ? -1 : void 0;
550
- return e.slice(n, r)
551
- }(t))
552
- }), n.join("/")
553
- }
554
-
555
- t.exports = {
556
- cookieConsent: function (t) {
557
- var e = t || [];
558
- return e.unshift("cookie/consent"), l(c(), e)
559
- }, embedIframe: function () {
560
- return d()
561
- }, eventVideo: function (t) {
562
- var e = t || [];
563
- return e.unshift("video/event"), l(u(), e)
564
- }, grid: function (t) {
565
- var e = t || [];
566
- return e.unshift("grid/collection"), l(u(), e)
567
- }, moment: function (t) {
568
- var e = t || [];
569
- return e.unshift("moments"), l(u(), e)
570
- }, settings: function (t) {
571
- var e = t || [];
572
- return e.unshift("settings"), l(c(), e)
573
- }, timeline: function (t) {
574
- var e = t || [];
575
- return e.unshift("timeline"), l(u(), e)
576
- }, tweetBatch: function (t) {
577
- var e = t || [];
578
- return e.unshift("tweets.json"), l(u(), e)
579
- }, video: function (t) {
580
- var e = t || [];
581
- return e.unshift("widgets/video"), l(u(), e)
582
- }
583
- }
584
- }, function (t, e, n) {
585
- var r = n(4), i = n(8), o = n(38), s = n(79), a = n(5), u = n(33), c = !1,
586
- d = /https?:\/\/([^/]+).*/i;
587
- t.exports = {
588
- setOn: function () {
589
- c = !0
590
- }, enabled: function (t, e) {
591
- return !!(c || a.asBoolean(u.val("dnt")) || s.isUrlSensitive(e || i.host) || o.isFramed() && s.isUrlSensitive(o.rootDocumentLocation()) || (t = d.test(t || r.referrer) && RegExp.$1) && s.isUrlSensitive(t))
592
- }
593
- }
594
- }, function (t, e, n) {
595
- var r = n(4), i = n(12), o = n(95), s = n(1), a = n(0), u = o.userAgent;
596
-
597
- function c(t) {
598
- return /(Trident|MSIE|Edge[/ ]?\d)/.test(t = t || u)
599
- }
600
-
601
- t.exports = {
602
- retina: function (t) {
603
- return (t = t || s).devicePixelRatio ? t.devicePixelRatio >= 1.5 : !!t.matchMedia && t.matchMedia("only screen and (min-resolution: 144dpi)").matches
604
- }, anyIE: c, ie9: function (t) {
605
- return /MSIE 9/.test(t = t || u)
606
- }, ie10: function (t) {
607
- return /MSIE 10/.test(t = t || u)
608
- }, ios: function (t) {
609
- return /(iPad|iPhone|iPod)/.test(t = t || u)
610
- }, android: function (t) {
611
- return /^Mozilla\/5\.0 \(Linux; (U; )?Android/.test(t = t || u)
612
- }, canPostMessage: function (t, e) {
613
- return t = t || s, e = e || u, t.postMessage && !(c(e) && t.opener)
614
- }, touch: function (t, e, n) {
615
- return t = t || s, e = e || o, n = n || u, "ontouchstart" in t || /Opera Mini/.test(n) || e.msMaxTouchPoints > 0
616
- }, cssTransitions: function () {
617
- var t = r.body.style;
618
- return void 0 !== t.transition || void 0 !== t.webkitTransition || void 0 !== t.mozTransition || void 0 !== t.oTransition || void 0 !== t.msTransition
619
- }, hasPromiseSupport: function () {
620
- return !!(s.Promise && s.Promise.resolve && s.Promise.reject && s.Promise.all && s.Promise.race && (new s.Promise(function (e) {
621
- t = e
622
- }), a.isType("function", t)));
623
- var t
624
- }, hasIntersectionObserverSupport: function () {
625
- return !!s.IntersectionObserver
626
- }, hasPerformanceInformation: function () {
627
- return s.performance && s.performance.getEntriesByType
628
- }, hasLocalStorageSupport: function () {
629
- try {
630
- return s.localStorage.setItem("local_storage_support_test", "true"), void 0 !== s.localStorage
631
- } catch (t) {
632
- return i.devError("window.localStorage is not supported:", t), !1
633
- }
634
- }
635
- }
636
- }, function (t, e, n) {
637
- var r = n(6), i = n(2);
638
-
639
- function o(t, e) {
640
- return t.then(e, e)
641
- }
642
-
643
- function s(t) {
644
- return t instanceof r
645
- }
646
-
647
- t.exports = {
648
- always: o, allResolved: function (t) {
649
- var e;
650
- return void 0 === t ? r.reject(new Error("undefined is not an object")) : Array.isArray(t) ? (e = t.length) ? new r(function (n, r) {
651
- var i = 0, o = [];
652
-
653
- function a() {
654
- (i += 1) === e && (0 === o.length ? r() : n(o))
655
- }
656
-
657
- function u(t) {
658
- o.push(t), a()
659
- }
660
-
661
- t.forEach(function (t) {
662
- s(t) ? t.then(u, a) : u(t)
663
- })
664
- }) : r.resolve([]) : r.reject(new Error("Type error"))
665
- }, some: function (t) {
666
- var e;
667
- return e = (t = t || []).length, t = t.filter(s), e ? e !== t.length ? r.reject("non-Promise passed to .some") : new r(function (e, n) {
668
- var r = 0;
669
-
670
- function i() {
671
- (r += 1) === t.length && n()
672
- }
673
-
674
- t.forEach(function (t) {
675
- t.then(e, i)
676
- })
677
- }) : r.reject("no promises passed to .some")
678
- }, isPromise: s, allSettled: function (t) {
679
- function e() {
680
- }
681
-
682
- return r.all((t || []).map(function (t) {
683
- return o(t, e)
684
- }))
685
- }, timeout: function (t, e) {
686
- var n = new i;
687
- return setTimeout(function () {
688
- n.reject(new Error("Promise timed out"))
689
- }, e), t.then(function (t) {
690
- n.resolve(t)
691
- }, function (t) {
692
- n.reject(t)
693
- }), n.promise
694
- }
695
- }
696
- }, function (t, e) {
697
- var n = "i", r = 0, i = 0;
698
- t.exports = {
699
- generate: function () {
700
- return n + String(+new Date) + Math.floor(1e5 * Math.random()) + r++
701
- }, deterministic: function () {
702
- return n + String(i++)
703
- }
704
- }
705
- }, function (t, e, n) {
706
- var r = n(49), i = n(51), o = n(0);
707
- t.exports = o.aug(r.get("events") || {}, i.Emitter)
708
- }, function (t, e, n) {
709
- var r = n(26), i = n(110);
710
- t.exports = r.build([i])
711
- }, function (t, e, n) {
712
- var r = n(40), i = n(107), o = n(7);
713
- (r = Object.create(r)).build = o(r.build, null, i), t.exports = r
714
- }, function (t, e, n) {
715
- var r = n(40), i = n(41), o = n(7);
716
- (r = Object.create(r)).build = o(r.build, null, i), t.exports = r
717
- }, function (t, e, n) {
718
- var r = n(83), i = n(75), o = n(84), s = n(8), a = n(71), u = n(74), c = n(20), d = n(5),
719
- l = n(23), f = n(0);
720
-
721
- function h(t) {
722
- if (!t || !t.headers) throw new Error("unexpected response schema");
723
- return {
724
- html: t.body,
725
- config: t.config,
726
- pollInterval: 1e3 * parseInt(t.headers.xPolling, 10) || null,
727
- maxCursorPosition: t.headers.maxPosition,
728
- minCursorPosition: t.headers.minPosition
729
- }
730
- }
731
-
732
- function p(t) {
733
- if (t && t.headers) throw new Error(t.headers.status);
734
- throw t instanceof Error ? t : new Error(t)
735
- }
736
-
737
- t.exports = function (t) {
738
- t.params({
739
- instanceId: {required: !0, fallback: l.deterministic},
740
- lang: {required: !0, transform: a.matchLanguage, fallback: "en"},
741
- tweetLimit: {transform: d.asInt}
742
- }), t.defineProperty("endpoint", {
743
- get: function () {
744
- throw new Error("endpoint not specified")
745
- }
746
- }), t.defineProperty("pollEndpoint", {
747
- get: function () {
748
- return this.endpoint
749
- }
750
- }), t.define("cbId", function (t) {
751
- var e = t ? "_new" : "_old";
752
- return "tl_" + this.params.instanceId + "_" + this.id + e
753
- }), t.define("queryParams", function () {
754
- return {
755
- lang: this.params.lang,
756
- tz: u.getTimezoneOffset(),
757
- t: r(),
758
- domain: s.host,
759
- tweet_limit: this.params.tweetLimit,
760
- dnt: c.enabled()
761
- }
762
- }), t.define("fetch", function () {
763
- return i.fetch(this.endpoint, this.queryParams(), o, this.cbId()).then(h, p)
764
- }), t.define("poll", function (t, e) {
765
- var n, r;
766
- return n = {
767
- since_id: (t = t || {}).sinceId,
768
- max_id: t.maxId,
769
- min_position: t.minPosition,
770
- max_position: t.maxPosition
771
- }, r = f.aug(this.queryParams(), n), i.fetch(this.pollEndpoint, r, o, this.cbId(e)).then(h, p)
772
- })
773
- }
774
- }, function (t, e, n) {
775
- var r = n(51).makeEmitter();
776
- t.exports = {
777
- emitter: r,
778
- START: "start",
779
- ALL_WIDGETS_RENDER_START: "all_widgets_render_start",
780
- ALL_WIDGETS_RENDER_END: "all_widgets_render_end",
781
- ALL_WIDGETS_AND_IMAGES_LOADED: "all_widgets_and_images_loaded"
782
- }
783
- }, function (t, e, n) {
784
- var r = n(4), i = n(0);
785
- t.exports = function (t, e, n) {
786
- var o;
787
- if (n = n || r, t = t || {}, e = e || {}, t.name) {
788
- try {
789
- o = n.createElement('<iframe name="' + t.name + '"></iframe>')
790
- } catch (e) {
791
- (o = n.createElement("iframe")).name = t.name
792
- }
793
- delete t.name
794
- } else o = n.createElement("iframe");
795
- return t.id && (o.id = t.id, delete t.id), o.allowtransparency = "true", o.scrolling = "no", o.setAttribute("frameBorder", 0), o.setAttribute("allowTransparency", !0), i.forIn(t, function (t, e) {
796
- o.setAttribute(t, e)
797
- }), i.forIn(e, function (t, e) {
798
- o.style[t] = e
799
- }), o
800
- }
801
- }, function (t, e, n) {
802
- var r = n(1).JSON;
803
- t.exports = {stringify: r.stringify || r.encode, parse: r.parse || r.decode}
804
- }, function (t, e, n) {
805
- var r = n(0), i = n(43);
806
- t.exports = {
807
- closest: function t(e, n, o) {
808
- var s;
809
- if (n) return o = o || n && n.ownerDocument, s = r.isType("function", e) ? e : function (t) {
810
- return function (e) {
811
- return !!e.tagName && i(e, t)
812
- }
813
- }(e), n === o ? s(n) ? n : void 0 : s(n) ? n : t(s, n.parentNode, o)
814
- }
815
- }
816
- }, function (t, e, n) {
817
- var r, i = n(4);
818
-
819
- function o(t) {
820
- var e, n, o, s = 0;
821
- for (r = {}, e = (t = t || i).getElementsByTagName("meta"); e[s]; s++) {
822
- if (n = e[s], /^twitter:/.test(n.getAttribute("name"))) o = n.getAttribute("name").replace(/^twitter:/, ""); else {
823
- if (!/^twitter:/.test(n.getAttribute("property"))) continue;
824
- o = n.getAttribute("property").replace(/^twitter:/, "")
825
- }
826
- r[o] = n.getAttribute("content") || n.getAttribute("value")
827
- }
828
- }
829
-
830
- o(), t.exports = {
831
- init: o, val: function (t) {
832
- return r[t]
833
- }
834
- }
835
- }, function (t, e, n) {
836
- var r = n(4), i = n(31), o = n(20), s = n(0), a = n(44), u = n(9), c = n(3), d = n(32),
837
- l = a.version, f = u.get("clientEventEndpoint") || "https://syndication.twitter.com/i/jot",
838
- h = 1;
839
-
840
- function p(t) {
841
- return s.aug({client: "tfw"}, t || {})
842
- }
843
-
844
- function m(t, e, n) {
845
- return e = e || {}, s.aug({}, e, {
846
- _category_: t,
847
- triggered_on: e.triggered_on || +new Date,
848
- dnt: o.enabled(n)
849
- })
850
- }
851
-
852
- t.exports = {
853
- extractTermsFromDOM: function t(e, n) {
854
- var r;
855
- return n = n || {}, e && e.nodeType === Node.ELEMENT_NODE ? ((r = e.getAttribute("data-scribe")) && r.split(" ").forEach(function (t) {
856
- var e = t.trim().split(":"), r = e[0], i = e[1];
857
- r && i && !n[r] && (n[r] = i)
858
- }), t(e.parentNode, n)) : n
859
- },
860
- clickEventElement: function (t) {
861
- var e = d.closest("[data-expanded-url]", t),
862
- n = e && e.getAttribute("data-expanded-url");
863
- return n && c.isTwitterURL(n) ? "twitter_url" : "url"
864
- },
865
- flattenClientEventPayload: function (t, e) {
866
- return s.aug({}, e, {event_namespace: t})
867
- },
868
- formatGenericEventData: m,
869
- formatClientEventData: function (t, e, n) {
870
- var i = t && t.widget_origin || r.referrer;
871
- return (t = m("tfw_client_event", t, i)).client_version = l, t.format_version = void 0 !== n ? n : 1, e || (t.widget_origin = i), t
872
- },
873
- formatClientEventNamespace: p,
874
- formatTweetAssociation: function (t, e) {
875
- var n = {};
876
- return (e = e || {}).association_namespace = p(t), n[h] = e, n
877
- },
878
- noticeSeen: function (t) {
879
- return "notice" === t.element && "seen" === t.action
880
- },
881
- splitLogEntry: function (t) {
882
- var e, n, r, i, o;
883
- return t.item_ids && t.item_ids.length > 1 ? (e = Math.floor(t.item_ids.length / 2), n = t.item_ids.slice(0, e), r = {}, i = t.item_ids.slice(e), o = {}, n.forEach(function (e) {
884
- r[e] = t.item_details[e]
885
- }), i.forEach(function (e) {
886
- o[e] = t.item_details[e]
887
- }), [s.aug({}, t, {item_ids: n, item_details: r}), s.aug({}, t, {
888
- item_ids: i,
889
- item_details: o
890
- })]) : [t]
891
- },
892
- stringify: function (t) {
893
- var e, n = Array.prototype.toJSON;
894
- return delete Array.prototype.toJSON, e = i.stringify(t), n && (Array.prototype.toJSON = n), e
895
- },
896
- AUDIENCE_ENDPOINT: "https://syndication.twitter.com/i/jot/syndication",
897
- CLIENT_EVENT_ENDPOINT: f,
898
- RUFOUS_REDIRECT: "https://platform.twitter.com/jot.html"
899
- }
900
- }, function (t, e, n) {
901
- var r = n(113), i = n(116);
902
-
903
- function o(t) {
904
- return r.settingsLoaded().then(function (e) {
905
- return e[t]
906
- })
907
- }
908
-
909
- function s() {
910
- return o("experiments")
911
- }
912
-
913
- t.exports = {
914
- shouldObtainCookieConsent: function () {
915
- return o("shouldObtainCookieConsent")
916
- }, getExperiments: s, getExperiment: function (t) {
917
- return s().then(function (e) {
918
- if (!e[t]) throw new Error("Experiment not found");
919
- return e[t]
920
- })
921
- }, getActiveExperimentDataString: function () {
922
- return s().then(function (t) {
923
- var e = Object.keys(t).reduce(function (e, n) {
924
- var r;
925
- return t[n].version && (r = n.split("_").slice(-1)[0], e.push(r + ";" + t[n].bucket)), e
926
- }, []);
927
- return i(e.join(","))
928
- })
929
- }, getExperimentKeys: function () {
930
- return s().then(function (t) {
931
- return Object.keys(t)
932
- })
933
- }, load: function () {
934
- r.load()
935
- }
936
- }
937
- }, function (t, e, n) {
938
- var r = n(10), i = {}, o = -1, s = {};
939
-
940
- function a(t) {
941
- var e = t.getAttribute("data-twitter-event-id");
942
- return e || (t.setAttribute("data-twitter-event-id", ++o), o)
943
- }
944
-
945
- function u(t, e, n) {
946
- var r = 0, i = t && t.length || 0;
947
- for (r = 0; r < i; r++) if (t[r].call(e, n, e), n.ceaseImmediately) return !1
948
- }
949
-
950
- function c(t, e, n) {
951
- for (var i = n || t.target || t.srcElement, o = r.list(i).map(function (t) {
952
- return "." + t
953
- }).concat(i.tagName), s = 0, a = o.length; s < a; s++) if (!1 === u(e[o[s]], i, t)) return;
954
- t.cease || i !== this && c.call(this, t, e, i.parentElement || i.parentNode)
955
- }
956
-
957
- function d(t, e, n, r) {
958
- function i(r) {
959
- c.call(t, r, n[e])
960
- }
961
-
962
- !function (t, e, n, r) {
963
- t.id && (s[t.id] = s[t.id] || [], s[t.id].push({
964
- el: t,
965
- listener: e,
966
- type: n,
967
- rootId: r
968
- }))
969
- }(t, i, e, r), t.addEventListener(e, i, !1)
970
- }
971
-
972
- function l(t) {
973
- t && t.preventDefault ? t.preventDefault() : t.returnValue = !1
974
- }
975
-
976
- function f(t) {
977
- t && (t.cease = !0) && t.stopPropagation ? t.stopPropagation() : t.cancelBubble = !0
978
- }
979
-
980
- t.exports = {
981
- stop: function (t) {
982
- return f(t), l(t), !1
983
- }, stopPropagation: f, stopImmediatePropagation: function (t) {
984
- t && (t.ceaseImmediately = !0, f(t), t.stopImmediatePropagation())
985
- }, preventDefault: l, delegate: function (t, e, n, r) {
986
- var o = a(t);
987
- i[o] = i[o] || {}, i[o][e] || (i[o][e] = {}, d(t, e, i[o], o)), i[o][e][n] = i[o][e][n] || [], i[o][e][n].push(r)
988
- }, simulate: function (t, e, n) {
989
- var r = a(e), o = i[r] && i[r];
990
- c.call(e, {target: n}, o[t])
991
- }, removeDelegatesForWidget: function (t) {
992
- var e = s[t];
993
- e && (e.forEach(function (t) {
994
- t.el.removeEventListener(t.type, t.listener, !1), delete i[t.rootId]
995
- }), delete s[t])
996
- }
997
- }
998
- }, function (t, e, n) {
999
- var r = n(26), i = n(125);
1000
- t.exports = r.build([i])
1001
- }, function (t, e, n) {
1002
- var r = n(8), i = n(78), o = n(0), s = i.getCanonicalURL() || r.href, a = s;
1003
- t.exports = {
1004
- isFramed: function () {
1005
- return s !== a
1006
- }, rootDocumentLocation: function (t) {
1007
- return t && o.isType("string", t) && (s = t), s
1008
- }, currentDocumentLocation: function () {
1009
- return a
1010
- }
1011
- }
1012
- }, function (t, e, n) {
1013
- var r = n(77), i = n(104), o = n(80), s = n(34), a = new (n(112))(function (t) {
1014
- var e, n, a;
1015
- if (0 !== t.length) {
1016
- if (u(t)) return c(t);
1017
- e = r(t, function (t) {
1018
- return s.noticeSeen(t.input.namespace)
1019
- }), n = e.true, a = e.false, n && n.length > 0 && (n = n.slice(0, 1), o.canFlushOneItem(n[0]) || (n[0].input.data.message = ""), c(n)), a && (u(a) ? c : function (t) {
1020
- i.init(), t.forEach(function (t) {
1021
- var e = t.input.namespace, n = t.input.data, r = t.input.offsite,
1022
- o = t.input.version;
1023
- i.clientEvent(e, n, r, o)
1024
- }), i.flush().then(function () {
1025
- t.forEach(function (t) {
1026
- t.taskDoneDeferred.resolve()
1027
- })
1028
- }, function () {
1029
- t.forEach(function (t) {
1030
- t.taskDoneDeferred.reject()
1031
- })
1032
- })
1033
- })(a)
1034
- }
1035
- });
1036
-
1037
- function u(t) {
1038
- return 1 === t.length && o.canFlushOneItem(t[0])
1039
- }
1040
-
1041
- function c(t) {
1042
- t.forEach(function (t) {
1043
- var e = t.input.namespace, n = t.input.data, r = t.input.offsite, i = t.input.version;
1044
- o.clientEvent(e, n, r, i), t.taskDoneDeferred.resolve()
1045
- })
1046
- }
1047
-
1048
- t.exports = {
1049
- scribe: function (t, e, n, r) {
1050
- return a.add({namespace: t, data: e, offsite: n, version: r})
1051
- }, pause: function () {
1052
- a.pause()
1053
- }, resume: function () {
1054
- a.resume()
1055
- }
1056
- }
1057
- }, function (t, e, n) {
1058
- var r = n(105), i = n(106), o = n(0);
1059
- t.exports = {
1060
- couple: function () {
1061
- return o.toRealArray(arguments)
1062
- }, build: function (t, e, n) {
1063
- var o = new t;
1064
- return (e = i(r(e || []))).forEach(function (t) {
1065
- t.call(null, o)
1066
- }), o.build(n)
1067
- }
1068
- }
1069
- }, function (t, e, n) {
1070
- var r = n(108), i = n(0), o = n(42);
1071
-
1072
- function s() {
1073
- this.Component = this.factory(), this._adviceArgs = [], this._lastArgs = []
1074
- }
1075
-
1076
- i.aug(s.prototype, {
1077
- factory: o, build: function (t) {
1078
- var e = this;
1079
- return this.Component, i.aug(this.Component.prototype.boundParams, t), this._adviceArgs.concat(this._lastArgs).forEach(function (t) {
1080
- (function (t, e, n) {
1081
- var r = this[e];
1082
- if (!r) throw new Error(e + " does not exist");
1083
- this[e] = t(r, n)
1084
- }).apply(e.Component.prototype, t)
1085
- }), delete this._lastArgs, delete this._adviceArgs, this.Component
1086
- }, params: function (t) {
1087
- var e = this.Component.prototype.paramConfigs;
1088
- t = t || {}, this.Component.prototype.paramConfigs = i.aug({}, t, e)
1089
- }, define: function (t, e) {
1090
- if (t in this.Component.prototype) throw new Error(t + " has previously been defined");
1091
- this.override(t, e)
1092
- }, defineStatic: function (t, e) {
1093
- this.Component[t] = e
1094
- }, override: function (t, e) {
1095
- this.Component.prototype[t] = e
1096
- }, defineProperty: function (t, e) {
1097
- if (t in this.Component.prototype) throw new Error(t + " has previously been defined");
1098
- this.overrideProperty(t, e)
1099
- }, overrideProperty: function (t, e) {
1100
- var n = i.aug({configurable: !0}, e);
1101
- Object.defineProperty(this.Component.prototype, t, n)
1102
- }, before: function (t, e) {
1103
- this._adviceArgs.push([r.before, t, e])
1104
- }, after: function (t, e) {
1105
- this._adviceArgs.push([r.after, t, e])
1106
- }, around: function (t, e) {
1107
- this._adviceArgs.push([r.around, t, e])
1108
- }, last: function (t, e) {
1109
- this._lastArgs.push([r.after, t, e])
1110
- }
1111
- }), t.exports = s
1112
- }, function (t, e, n) {
1113
- var r = n(0);
1114
-
1115
- function i() {
1116
- return !0
1117
- }
1118
-
1119
- function o(t) {
1120
- return t
1121
- }
1122
-
1123
- t.exports = function () {
1124
- function t(t) {
1125
- var e = this;
1126
- t = t || {}, this.params = Object.keys(this.paramConfigs).reduce(function (n, s) {
1127
- var a = [], u = e.boundParams, c = e.paramConfigs[s], d = c.validate || i,
1128
- l = c.transform || o;
1129
- if (s in u && a.push(u[s]), s in t && a.push(t[s]), a = "fallback" in c ? a.concat(c.fallback) : a, n[s] = function (t, e, n) {
1130
- var i = null;
1131
- return t.some(function (t) {
1132
- if (t = r.isType("function", t) ? t() : t, e(t)) return i = n(t), !0
1133
- }), i
1134
- }(a, d, l), c.required && null == n[s]) throw new Error(s + " is a required parameter");
1135
- return n
1136
- }, {}), this.initialize()
1137
- }
1138
-
1139
- return r.aug(t.prototype, {
1140
- paramConfigs: {}, boundParams: {}, initialize: function () {
1141
- }
1142
- }), t
1143
- }
1144
- }, function (t, e, n) {
1145
- var r = n(1).HTMLElement,
1146
- i = r.prototype.matches || r.prototype.matchesSelector || r.prototype.webkitMatchesSelector || r.prototype.mozMatchesSelector || r.prototype.msMatchesSelector || r.prototype.oMatchesSelector;
1147
- t.exports = function (t, e) {
1148
- if (i) return i.call(t, e)
1149
- }
1150
- }, function (t) {
1151
- t.exports = {version: "2a81c84:1568701398616"}
1152
- }, function (t, e, n) {
1153
- var r, i = n(10), o = n(4), s = n(1), a = n(33), u = n(54), c = n(5), d = n(23), l = "csptest";
1154
- t.exports = {
1155
- inlineStyle: function () {
1156
- var t = l + d.generate(), e = o.createElement("div"), n = o.createElement("style"),
1157
- f = "." + t + " { visibility: hidden; }";
1158
- return !!o.body && (c.asBoolean(a.val("widgets:csp")) && (r = !1), void 0 !== r ? r : (e.style.display = "none", i.add(e, t), n.type = "text/css", n.appendChild(o.createTextNode(f)), o.body.appendChild(n), o.body.appendChild(e), r = "hidden" === s.getComputedStyle(e).visibility, u(e), u(n), r))
1159
- }
1160
- }
1161
- }, function (t, e, n) {
1162
- var r = n(1);
1163
- t.exports = function (t, e, n) {
1164
- var i, o = 0;
1165
- return n = n || null, function s() {
1166
- var a = n || this, u = arguments, c = +new Date;
1167
- if (r.clearTimeout(i), c - o > e) return o = c, void t.apply(a, u);
1168
- i = r.setTimeout(function () {
1169
- s.apply(a, u)
1170
- }, e)
1171
- }
1172
- }
1173
- }, function (t, e) {
1174
- t.exports = function (t) {
1175
- var e = t.getBoundingClientRect();
1176
- return {width: e.width, height: e.height}
1177
- }
1178
- }, function (t, e, n) {
1179
- /*!
1180
- * @overview es6-promise - a tiny implementation of Promises/A+.
1181
- * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
1182
- * @license Licensed under MIT license
1183
- * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
1184
- * @version v4.2.5+7f2b526d
1185
- */
1186
- var r;
1187
- r = function () {
1188
- "use strict";
1189
-
1190
- function t(t) {
1191
- return "function" == typeof t
1192
- }
1193
-
1194
- var e = Array.isArray ? Array.isArray : function (t) {
1195
- return "[object Array]" === Object.prototype.toString.call(t)
1196
- }, n = 0, r = void 0, i = void 0, o = function (t, e) {
1197
- f[n] = t, f[n + 1] = e, 2 === (n += 2) && (i ? i(h) : w())
1198
- }, s = "undefined" != typeof window ? window : void 0, a = s || {},
1199
- u = a.MutationObserver || a.WebKitMutationObserver,
1200
- c = "undefined" == typeof self && "undefined" != typeof process && "[object process]" === {}.toString.call(process),
1201
- d = "undefined" != typeof Uint8ClampedArray && "undefined" != typeof importScripts && "undefined" != typeof MessageChannel;
1202
-
1203
- function l() {
1204
- var t = setTimeout;
1205
- return function () {
1206
- return t(h, 1)
1207
- }
1208
- }
1209
-
1210
- var f = new Array(1e3);
1211
-
1212
- function h() {
1213
- for (var t = 0; t < n; t += 2) (0, f[t])(f[t + 1]), f[t] = void 0, f[t + 1] = void 0;
1214
- n = 0
1215
- }
1216
-
1217
- var p, m, v, g, w = void 0;
1218
-
1219
- function y(t, e) {
1220
- var n = this, r = new this.constructor(E);
1221
- void 0 === r[_] && k(r);
1222
- var i = n._state;
1223
- if (i) {
1224
- var s = arguments[i - 1];
1225
- o(function () {
1226
- return D(i, r, s, n._result)
1227
- })
1228
- } else I(n, r, t, e);
1229
- return r
1230
- }
1231
-
1232
- function b(t) {
1233
- if (t && "object" == typeof t && t.constructor === this) return t;
1234
- var e = new this(E);
1235
- return C(e, t), e
1236
- }
1237
-
1238
- c ? w = function () {
1239
- return process.nextTick(h)
1240
- } : u ? (m = 0, v = new u(h), g = document.createTextNode(""), v.observe(g, {characterData: !0}), w = function () {
1241
- g.data = m = ++m % 2
1242
- }) : d ? ((p = new MessageChannel).port1.onmessage = h, w = function () {
1243
- return p.port2.postMessage(0)
1244
- }) : w = void 0 === s ? function () {
1245
- try {
1246
- var t = Function("return this")().require("vertx");
1247
- return void 0 !== (r = t.runOnLoop || t.runOnContext) ? function () {
1248
- r(h)
1249
- } : l()
1250
- } catch (t) {
1251
- return l()
1252
- }
1253
- }() : l();
1254
- var _ = Math.random().toString(36).substring(2);
1255
-
1256
- function E() {
1257
- }
1258
-
1259
- var x = void 0, T = 1, A = 2, S = {error: null};
1260
-
1261
- function R(t) {
1262
- try {
1263
- return t.then
1264
- } catch (t) {
1265
- return S.error = t, S
1266
- }
1267
- }
1268
-
1269
- function N(e, n, r) {
1270
- n.constructor === e.constructor && r === y && n.constructor.resolve === b ? function (t, e) {
1271
- e._state === T ? L(t, e._result) : e._state === A ? j(t, e._result) : I(e, void 0, function (e) {
1272
- return C(t, e)
1273
- }, function (e) {
1274
- return j(t, e)
1275
- })
1276
- }(e, n) : r === S ? (j(e, S.error), S.error = null) : void 0 === r ? L(e, n) : t(r) ? function (t, e, n) {
1277
- o(function (t) {
1278
- var r = !1, i = function (t, e, n, r) {
1279
- try {
1280
- t.call(e, n, r)
1281
- } catch (t) {
1282
- return t
1283
- }
1284
- }(n, e, function (n) {
1285
- r || (r = !0, e !== n ? C(t, n) : L(t, n))
1286
- }, function (e) {
1287
- r || (r = !0, j(t, e))
1288
- }, t._label);
1289
- !r && i && (r = !0, j(t, i))
1290
- }, t)
1291
- }(e, n, r) : L(e, n)
1292
- }
1293
-
1294
- function C(t, e) {
1295
- var n, r;
1296
- t === e ? j(t, new TypeError("You cannot resolve a promise with itself")) : (r = typeof (n = e), null === n || "object" !== r && "function" !== r ? L(t, e) : N(t, e, R(e)))
1297
- }
1298
-
1299
- function P(t) {
1300
- t._onerror && t._onerror(t._result), O(t)
1301
- }
1302
-
1303
- function L(t, e) {
1304
- t._state === x && (t._result = e, t._state = T, 0 !== t._subscribers.length && o(O, t))
1305
- }
1306
-
1307
- function j(t, e) {
1308
- t._state === x && (t._state = A, t._result = e, o(P, t))
1309
- }
1310
-
1311
- function I(t, e, n, r) {
1312
- var i = t._subscribers, s = i.length;
1313
- t._onerror = null, i[s] = e, i[s + T] = n, i[s + A] = r, 0 === s && t._state && o(O, t)
1314
- }
1315
-
1316
- function O(t) {
1317
- var e = t._subscribers, n = t._state;
1318
- if (0 !== e.length) {
1319
- for (var r = void 0, i = void 0, o = t._result, s = 0; s < e.length; s += 3) r = e[s], i = e[s + n], r ? D(n, r, i, o) : i(o);
1320
- t._subscribers.length = 0
1321
- }
1322
- }
1323
-
1324
- function D(e, n, r, i) {
1325
- var o = t(r), s = void 0, a = void 0, u = void 0, c = void 0;
1326
- if (o) {
1327
- if ((s = function (t, e) {
1328
- try {
1329
- return t(e)
1330
- } catch (t) {
1331
- return S.error = t, S
1332
- }
1333
- }(r, i)) === S ? (c = !0, a = s.error, s.error = null) : u = !0, n === s) return void j(n, new TypeError("A promises callback cannot return that same promise."))
1334
- } else s = i, u = !0;
1335
- n._state !== x || (o && u ? C(n, s) : c ? j(n, a) : e === T ? L(n, s) : e === A && j(n, s))
1336
- }
1337
-
1338
- var z = 0;
1339
-
1340
- function k(t) {
1341
- t[_] = z++, t._state = void 0, t._result = void 0, t._subscribers = []
1342
- }
1343
-
1344
- var M = function () {
1345
- function t(t, n) {
1346
- this._instanceConstructor = t, this.promise = new t(E), this.promise[_] || k(this.promise), e(n) ? (this.length = n.length, this._remaining = n.length, this._result = new Array(this.length), 0 === this.length ? L(this.promise, this._result) : (this.length = this.length || 0, this._enumerate(n), 0 === this._remaining && L(this.promise, this._result))) : j(this.promise, new Error("Array Methods must be provided an Array"))
1347
- }
1348
-
1349
- return t.prototype._enumerate = function (t) {
1350
- for (var e = 0; this._state === x && e < t.length; e++) this._eachEntry(t[e], e)
1351
- }, t.prototype._eachEntry = function (t, e) {
1352
- var n = this._instanceConstructor, r = n.resolve;
1353
- if (r === b) {
1354
- var i = R(t);
1355
- if (i === y && t._state !== x) this._settledAt(t._state, e, t._result); else if ("function" != typeof i) this._remaining--, this._result[e] = t; else if (n === U) {
1356
- var o = new n(E);
1357
- N(o, t, i), this._willSettleAt(o, e)
1358
- } else this._willSettleAt(new n(function (e) {
1359
- return e(t)
1360
- }), e)
1361
- } else this._willSettleAt(r(t), e)
1362
- }, t.prototype._settledAt = function (t, e, n) {
1363
- var r = this.promise;
1364
- r._state === x && (this._remaining--, t === A ? j(r, n) : this._result[e] = n), 0 === this._remaining && L(r, this._result)
1365
- }, t.prototype._willSettleAt = function (t, e) {
1366
- var n = this;
1367
- I(t, void 0, function (t) {
1368
- return n._settledAt(T, e, t)
1369
- }, function (t) {
1370
- return n._settledAt(A, e, t)
1371
- })
1372
- }, t
1373
- }(), U = function () {
1374
- function e(t) {
1375
- this[_] = z++, this._result = this._state = void 0, this._subscribers = [], E !== t && ("function" != typeof t && function () {
1376
- throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")
1377
- }(), this instanceof e ? function (t, e) {
1378
- try {
1379
- e(function (e) {
1380
- C(t, e)
1381
- }, function (e) {
1382
- j(t, e)
1383
- })
1384
- } catch (e) {
1385
- j(t, e)
1386
- }
1387
- }(this, t) : function () {
1388
- throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")
1389
- }())
1390
- }
1391
-
1392
- return e.prototype.catch = function (t) {
1393
- return this.then(null, t)
1394
- }, e.prototype.finally = function (e) {
1395
- var n = this.constructor;
1396
- return t(e) ? this.then(function (t) {
1397
- return n.resolve(e()).then(function () {
1398
- return t
1399
- })
1400
- }, function (t) {
1401
- return n.resolve(e()).then(function () {
1402
- throw t
1403
- })
1404
- }) : this.then(e, e)
1405
- }, e
1406
- }();
1407
- return U.prototype.then = y, U.all = function (t) {
1408
- return new M(this, t).promise
1409
- }, U.race = function (t) {
1410
- var n = this;
1411
- return e(t) ? new n(function (e, r) {
1412
- for (var i = t.length, o = 0; o < i; o++) n.resolve(t[o]).then(e, r)
1413
- }) : new n(function (t, e) {
1414
- return e(new TypeError("You must pass an array to race."))
1415
- })
1416
- }, U.resolve = b, U.reject = function (t) {
1417
- var e = new this(E);
1418
- return j(e, t), e
1419
- }, U._setScheduler = function (t) {
1420
- i = t
1421
- }, U._setAsap = function (t) {
1422
- o = t
1423
- }, U._asap = o, U.polyfill = function () {
1424
- var t = void 0;
1425
- if ("undefined" != typeof global) t = global; else if ("undefined" != typeof self) t = self; else try {
1426
- t = Function("return this")()
1427
- } catch (t) {
1428
- throw new Error("polyfill failed because global object is unavailable in this environment")
1429
- }
1430
- var e = t.Promise;
1431
- if (e) {
1432
- var n = null;
1433
- try {
1434
- n = Object.prototype.toString.call(e.resolve())
1435
- } catch (t) {
1436
- }
1437
- if ("[object Promise]" === n && !e.cast) return
1438
- }
1439
- t.Promise = U
1440
- }, U.Promise = U, U
1441
- }, t.exports = r()
1442
- }, function (t, e, n) {
1443
- var r = n(50);
1444
- t.exports = new r("twttr")
1445
- }, function (t, e, n) {
1446
- var r = n(1), i = n(0);
1447
-
1448
- function o(t) {
1449
- return i.isType("string", t) ? t.split(".") : i.isType("array", t) ? t : []
1450
- }
1451
-
1452
- function s(t, e) {
1453
- (e = e || r)[t] = e[t] || {}, Object.defineProperty(this, "base", {value: e[t]}), Object.defineProperty(this, "name", {value: t})
1454
- }
1455
-
1456
- i.aug(s.prototype, {
1457
- get: function (t) {
1458
- return o(t).reduce(function (t, e) {
1459
- if (i.isObject(t)) return t[e]
1460
- }, this.base)
1461
- }, set: function (t, e, n) {
1462
- var r = o(t), s = function (t, e) {
1463
- var n = o(e).slice(0, -1);
1464
- return n.reduce(function (t, e, r) {
1465
- if (t[e] = t[e] || {}, !i.isObject(t[e])) throw new Error(n.slice(0, r + 1).join(".") + " is already defined with a value.");
1466
- return t[e]
1467
- }, t)
1468
- }(this.base, t), a = r.slice(-1);
1469
- return n && a in s ? s[a] : s[a] = e
1470
- }, init: function (t, e) {
1471
- return this.set(t, e, !0)
1472
- }, unset: function (t) {
1473
- var e = o(t), n = this.get(e.slice(0, -1));
1474
- n && delete n[e.slice(-1)]
1475
- }, aug: function (t) {
1476
- var e = this.get(t), n = i.toRealArray(arguments).slice(1);
1477
- if (e = void 0 !== e ? e : {}, n.unshift(e), !n.every(i.isObject)) throw new Error("Cannot augment non-object.");
1478
- return this.set(t, i.aug.apply(null, n))
1479
- }, call: function (t) {
1480
- var e = this.get(t), n = i.toRealArray(arguments).slice(1);
1481
- if (!i.isType("function", e)) throw new Error("Function " + t + "does not exist.");
1482
- return e.apply(null, n)
1483
- }, fullPath: function (t) {
1484
- var e = o(t);
1485
- return e.unshift(this.name), e.join(".")
1486
- }
1487
- }), t.exports = s
1488
- }, function (t, e, n) {
1489
- var r = n(0), i = n(7), o = {
1490
- bind: function (t, e) {
1491
- return this._handlers = this._handlers || {}, this._handlers[t] = this._handlers[t] || [], this._handlers[t].push(e)
1492
- }, unbind: function (t, e) {
1493
- var n;
1494
- this._handlers && this._handlers[t] && (e ? (n = this._handlers[t].indexOf(e)) >= 0 && this._handlers[t].splice(n, 1) : this._handlers[t] = [])
1495
- }, trigger: function (t, e) {
1496
- var n = this._handlers && this._handlers[t];
1497
- (e = e || {}).type = t, n && n.forEach(function (t) {
1498
- r.async(i(t, this, e))
1499
- })
1500
- }
1501
- };
1502
- t.exports = {
1503
- Emitter: o, makeEmitter: function () {
1504
- return r.aug(function () {
1505
- }, o)
1506
- }
1507
- }
1508
- }, function (t, e) {
1509
- var n = "tfw_horizon_tweet_embed_9555";
1510
- t.exports = {
1511
- isHorizonTweetEnabled: function (t) {
1512
- return !(!t || !t[n] || "hte" !== t[n].bucket)
1513
- }
1514
- }
1515
- }, function (t, e, n) {
1516
- var r = n(101), i = n(76), o = n(6), s = n(22), a = n(7), u = n(0), c = new i(function (t) {
1517
- var e = function (t) {
1518
- return t.reduce(function (t, e) {
1519
- return t[e._className] = t[e._className] || [], t[e._className].push(e), t
1520
- }, {})
1521
- }(t.map(r.fromRawTask));
1522
- u.forIn(e, function (t, e) {
1523
- s.allSettled(e.map(function (t) {
1524
- return t.initialize()
1525
- })).then(function () {
1526
- e.forEach(function (t) {
1527
- o.all([t.hydrate(), t.insertIntoDom()]).then(a(t.render, t)).then(a(t.success, t), a(t.fail, t))
1528
- })
1529
- })
1530
- })
1531
- });
1532
- t.exports = {
1533
- addWidget: function (t) {
1534
- return c.add(t)
1535
- }
1536
- }
1537
- }, function (t, e, n) {
1538
- var r = n(18);
1539
- t.exports = function (t) {
1540
- return r.write(function () {
1541
- t && t.parentNode && t.parentNode.removeChild(t)
1542
- })
1543
- }
1544
- }, function (t, e, n) {
1545
- n(12), t.exports = {
1546
- log: function (t, e) {
1547
- }
1548
- }
1549
- }, function (t, e, n) {
1550
- var r = n(1);
1551
-
1552
- function i(t) {
1553
- return (t = t || r).getSelection && t.getSelection()
1554
- }
1555
-
1556
- t.exports = {
1557
- getSelection: i, getSelectedText: function (t) {
1558
- var e = i(t);
1559
- return e ? e.toString() : ""
1560
- }
1561
- }
1562
- }, function (t, e, n) {
1563
- var r = n(4), i = n(1), o = n(2), s = 2e4;
1564
- t.exports = function (t) {
1565
- var e = new o, n = r.createElement("img");
1566
- return n.onload = n.onerror = function () {
1567
- i.setTimeout(e.resolve, 50)
1568
- }, n.src = t, i.setTimeout(e.reject, s), e.promise
1569
- }
1570
- }, function (t, e, n) {
1571
- var r = n(111);
1572
- t.exports = function (t) {
1573
- t.define("createElement", r), t.define("createFragment", r), t.define("htmlToElement", r), t.define("hasSelectedText", r), t.define("addRootClass", r), t.define("removeRootClass", r), t.define("hasRootClass", r), t.define("prependStyleSheet", r), t.define("appendStyleSheet", r), t.define("prependCss", r), t.define("appendCss", r), t.define("makeVisible", r), t.define("injectWidgetEl", r), t.define("matchHeightToContent", r), t.define("matchWidthToContent", r)
1574
- }
1575
- }, function (t, e) {
1576
- t.exports = function (t) {
1577
- var e, n = !1;
1578
- return function () {
1579
- return n ? e : (n = !0, e = t.apply(this, arguments))
1580
- }
1581
- }
1582
- }, function (t, e, n) {
1583
- var r = n(15), i = n(120), o = n(61), s = n(16);
1584
- t.exports = function (t, e, n) {
1585
- return new r(i, o, s.DM_BUTTON, t, e, n)
1586
- }
1587
- }, function (t, e, n) {
1588
- var r = n(62), i = n(25);
1589
- t.exports = r.isSupported() ? r : i
1590
- }, function (t, e, n) {
1591
- var r = n(26), i = n(121);
1592
- t.exports = r.build([i])
1593
- }, function (t, e, n) {
1594
- var r = n(15), i = n(124), o = n(37), s = n(16);
1595
- t.exports = function (t, e, n) {
1596
- return new r(i, o, s.FOLLOW_BUTTON, t, e, n)
1597
- }
1598
- }, function (t, e, n) {
1599
- var r = n(15), i = n(132), o = n(25), s = n(16);
1600
- t.exports = function (t, e, n) {
1601
- return new r(i, o, s.MOMENT, t, e, n)
1602
- }
1603
- }, function (t, e, n) {
1604
- var r = n(15), i = n(134), o = n(25), s = n(16);
1605
- t.exports = function (t, e, n) {
1606
- return new r(i, o, s.PERISCOPE, t, e, n)
1607
- }
1608
- }, function (t, e, n) {
1609
- var r = n(82), i = n(136), o = n(140), s = n(142), a = n(144), u = n(146),
1610
- c = {collection: i, event: o, likes: s, list: a, profile: u, url: l}, d = [u, s, i, a, o];
1611
-
1612
- function l(t) {
1613
- return r(d, function (e) {
1614
- try {
1615
- return new e(t)
1616
- } catch (t) {
1617
- }
1618
- })
1619
- }
1620
-
1621
- t.exports = function (t) {
1622
- return t ? function (t) {
1623
- var e, n;
1624
- return e = (t.sourceType + "").toLowerCase(), (n = c[e]) ? new n(t) : null
1625
- }(t) || l(t) : null
1626
- }
1627
- }, function (t, e, n) {
1628
- var r = n(15), i = n(148), o = n(25), s = n(16);
1629
- t.exports = function (t, e, n) {
1630
- return new r(i, o, s.TIMELINE, t, e, n)
1631
- }
1632
- }, function (t, e, n) {
1633
- var r = n(15), i = n(4), o = n(37), s = n(150), a = n(61), u = n(151), c = n(16);
1634
- t.exports = function (t, e, n, d) {
1635
- var l;
1636
- return d ? (l = i.createElement("div"), new r(s, o, c.TWEET, t, e, n, {sandboxWrapperEl: l})) : new r(u, a, c.TWEET, t, e, n)
1637
- }
1638
- }, function (t, e, n) {
1639
- var r = n(15), i = n(153), o = n(37), s = n(16);
1640
- t.exports = function (t, e, n) {
1641
- var a = t && t.type || "share",
1642
- u = "hashtag" == a ? s.HASHTAG_BUTTON : "mention" == a ? s.MENTION_BUTTON : s.SHARE_BUTTON;
1643
- return new r(i, o, u, t, e, n)
1644
- }
1645
- }, function (t, e, n) {
1646
- var r = n(39), i = n(38), o = n(0);
1647
- t.exports = function (t) {
1648
- var e = {
1649
- widget_origin: i.rootDocumentLocation(),
1650
- widget_frame: i.isFramed() ? i.currentDocumentLocation() : null,
1651
- duration_ms: t.duration,
1652
- item_ids: t.widgetIds || []
1653
- }, n = o.aug(t.namespace, {page: "page", component: "performance"});
1654
- r.scribe(n, e)
1655
- }
1656
- }, function (t, e, n) {
1657
- var r = n(0), i = n(137), o = ["ar", "fa", "he", "ur"];
1658
- t.exports = {
1659
- isRtlLang: function (t) {
1660
- return t = String(t).toLowerCase(), r.contains(o, t)
1661
- }, matchLanguage: function (t) {
1662
- return t = (t = (t || "").toLowerCase()).replace("_", "-"), i(t) ? t : (t = t.replace(/-.*/, ""), i(t) ? t : "en")
1663
- }
1664
- }
1665
- }, function (t) {
1666
- t.exports = {
1667
- tweetButtonHtmlPath: "/widgets/tweet_button.d6364fae9340b0be5f13818370141fd0.{{lang}}.html",
1668
- followButtonHtmlPath: "/widgets/follow_button.d6364fae9340b0be5f13818370141fd0.{{lang}}.html",
1669
- hubHtmlPath: "/widgets/hub.html",
1670
- widgetIframeHtmlPath: "/widgets/widget_iframe.d6364fae9340b0be5f13818370141fd0.html",
1671
- resourceBaseUrl: "https://platform.twitter.com"
1672
- }
1673
- }, function (t, e, n) {
1674
- var r = n(3), i = n(98), o = n(24), s = n(11), a = {
1675
- favorite: ["favorite", "like"],
1676
- follow: ["follow"],
1677
- like: ["favorite", "like"],
1678
- retweet: ["retweet"],
1679
- tweet: ["tweet"]
1680
- };
1681
-
1682
- function u(t) {
1683
- this.srcEl = [], this.element = t
1684
- }
1685
-
1686
- u.open = function (t, e, n) {
1687
- var u = (r.intentType(t) || "").toLowerCase();
1688
- r.isTwitterURL(t) && (function (t, e) {
1689
- i.open(t, {}, e)
1690
- }(t, n), e && o.trigger("click", {
1691
- target: e,
1692
- region: "intent",
1693
- type: "click",
1694
- data: {}
1695
- }), e && a[u] && a[u].forEach(function (n) {
1696
- o.trigger(n, {
1697
- target: e, region: "intent", type: n, data: function (t, e) {
1698
- var n = s.decodeURL(e);
1699
- switch (t) {
1700
- case"favorite":
1701
- case"like":
1702
- return {tweet_id: n.tweet_id};
1703
- case"follow":
1704
- return {screen_name: n.screen_name, user_id: n.user_id};
1705
- case"retweet":
1706
- return {source_tweet_id: n.tweet_id};
1707
- default:
1708
- return {}
1709
- }
1710
- }(u, t)
1711
- })
1712
- }))
1713
- }, t.exports = u
1714
- }, function (t, e) {
1715
- t.exports = {
1716
- getTimezoneOffset: function () {
1717
- var t = (new Date).toString().match(/(GMT[+-]?\d+)/);
1718
- return t && t[0] || "GMT"
1719
- }
1720
- }
1721
- }, function (t, e, n) {
1722
- var r = n(4), i = n(9), o = n(2), s = n(0), a = n(11), u = "cb", c = 0;
1723
- t.exports = {
1724
- fetch: function (t, e, n, d) {
1725
- var l, f, h;
1726
- return d = function (t) {
1727
- if (t) return t.replace(/[^\w$]/g, "_")
1728
- }(d || u + c++), l = i.fullPath(["callbacks", d]), f = r.createElement("script"), h = new o, e = s.aug({}, e, {
1729
- callback: l,
1730
- suppress_response_codes: !0
1731
- }), i.set(["callbacks", d], function (t) {
1732
- var e;
1733
- t = (e = n(t || !1)).resp, e.success ? h.resolve(t) : h.reject(t), f.onload = f.onreadystatechange = null, f.parentNode && f.parentNode.removeChild(f), i.unset(["callbacks", d])
1734
- }), f.onerror = function () {
1735
- h.reject(new Error("failed to fetch " + f.src))
1736
- }, f.src = a.url(t, e), f.async = "async", r.body.appendChild(f), h.promise
1737
- }
1738
- }
1739
- }, function (t, e, n) {
1740
- var r = n(2), i = n(103), o = n(7);
1741
-
1742
- function s(t) {
1743
- this._inputsQueue = [], this._task = t, this._hasFlushBeenScheduled = !1
1744
- }
1745
-
1746
- s.prototype.add = function (t) {
1747
- var e = new r;
1748
- return this._inputsQueue.push({
1749
- input: t,
1750
- taskDoneDeferred: e
1751
- }), this._hasFlushBeenScheduled || (this._hasFlushBeenScheduled = !0, i(o(this._flush, this))), e.promise
1752
- }, s.prototype._flush = function () {
1753
- try {
1754
- this._task.call(null, this._inputsQueue)
1755
- } catch (t) {
1756
- this._inputsQueue.forEach(function (e) {
1757
- e.taskDoneDeferred.reject(t)
1758
- })
1759
- }
1760
- this._inputsQueue = [], this._hasFlushBeenScheduled = !1
1761
- }, t.exports = s
1762
- }, function (t, e) {
1763
- t.exports = function (t, e) {
1764
- return t.reduce(function (t, n) {
1765
- var r = e(n);
1766
- return t[r] = t[r] || [], t[r].push(n), t
1767
- }, {})
1768
- }
1769
- }, function (t, e, n) {
1770
- var r = n(4), i = n(8), o = n(3);
1771
-
1772
- function s(t, e) {
1773
- var n, r;
1774
- return e = e || i, /^https?:\/\//.test(t) ? t : /^\/\//.test(t) ? e.protocol + t : (n = e.host + (e.port.length ? ":" + e.port : ""), 0 !== t.indexOf("/") && ((r = e.pathname.split("/")).pop(), r.push(t), t = "/" + r.join("/")), [e.protocol, "//", n, t].join(""))
1775
- }
1776
-
1777
- t.exports = {
1778
- absolutize: s, getCanonicalURL: function () {
1779
- for (var t, e = r.getElementsByTagName("link"), n = 0; e[n]; n++) if ("canonical" == (t = e[n]).rel) return s(t.href)
1780
- }, getScreenNameFromPage: function () {
1781
- for (var t, e, n, i = [r.getElementsByTagName("a"), r.getElementsByTagName("link")], s = 0, a = 0, u = /\bme\b/; t = i[s]; s++) for (a = 0; e = t[a]; a++) if (u.test(e.rel) && (n = o.screenName(e.href))) return n
1782
- }
1783
- }
1784
- }, function (t, e, n) {
1785
- var r = n(8), i = /^[^#?]*\.(gov|mil)(:\d+)?([#?].*)?$/i, o = {};
1786
-
1787
- function s(t) {
1788
- return t in o ? o[t] : o[t] = i.test(t)
1789
- }
1790
-
1791
- t.exports = {
1792
- isUrlSensitive: s, isHostPageSensitive: function () {
1793
- return s(r.host)
1794
- }
1795
- }
1796
- }, function (t, e, n) {
1797
- var r = n(20), i = n(55), o = n(11), s = n(34), a = n(0), u = n(9).get("scribeCallback"),
1798
- c = 2083, d = [], l = o.url(s.CLIENT_EVENT_ENDPOINT, {dnt: 0, l: ""}),
1799
- f = encodeURIComponent(l).length;
1800
-
1801
- function h(t, e, n, r) {
1802
- var i = !a.isObject(t), o = !!e && !a.isObject(e);
1803
- i || o || (u && u(arguments), p(s.formatClientEventNamespace(t), s.formatClientEventData(e, n, r), s.CLIENT_EVENT_ENDPOINT))
1804
- }
1805
-
1806
- function p(t, e, n) {
1807
- var r, u;
1808
- n && a.isObject(t) && a.isObject(e) && (i.log(t, e), r = s.flattenClientEventPayload(t, e), u = {l: s.stringify(r)}, s.noticeSeen(t) && (u.notice_seen = !0), r.dnt && (u.dnt = 1), w(o.url(n, u)))
1809
- }
1810
-
1811
- function m(t, e, n, r) {
1812
- var i = !a.isObject(t), o = !!e && !a.isObject(e);
1813
- if (!i && !o) return v(s.flattenClientEventPayload(s.formatClientEventNamespace(t), s.formatClientEventData(e, n, r)))
1814
- }
1815
-
1816
- function v(t) {
1817
- return d.push(t), d
1818
- }
1819
-
1820
- function g(t) {
1821
- return encodeURIComponent(t).length + 3
1822
- }
1823
-
1824
- function w(t) {
1825
- return (new Image).src = t
1826
- }
1827
-
1828
- t.exports = {
1829
- canFlushOneItem: function (t) {
1830
- var e = g(s.stringify(t));
1831
- return f + e < c
1832
- }, _enqueueRawObject: v, scribe: p, clientEvent: h, clientEvent2: function (t, e, n) {
1833
- return h(t, e, n, 2)
1834
- }, enqueueClientEvent: m, flushClientEvents: function () {
1835
- var t;
1836
- return d.length > 1 && m({
1837
- page: "widgets_js",
1838
- component: "scribe_pixel",
1839
- action: "batch_log"
1840
- }, {}), t = d, d = [], t.reduce(function (e, n, r) {
1841
- var i = e.length, o = i && e[i - 1];
1842
- return r + 1 == t.length && n.event_namespace && "batch_log" == n.event_namespace.action && (n.message = ["entries:" + r, "requests:" + i].join("/")), function t(e) {
1843
- return Array.isArray(e) || (e = [e]), e.reduce(function (e, n) {
1844
- var r, i = s.stringify(n), o = g(i);
1845
- return f + o < c ? e = e.concat(i) : (r = s.splitLogEntry(n)).length > 1 && (e = e.concat(t(r))), e
1846
- }, [])
1847
- }(n).forEach(function (t) {
1848
- var n = g(t);
1849
- (!o || o.urlLength + n > c) && (o = {
1850
- urlLength: f,
1851
- items: []
1852
- }, e.push(o)), o.urlLength += n, o.items.push(t)
1853
- }), e
1854
- }, []).map(function (t) {
1855
- var e = {l: t.items};
1856
- return r.enabled() && (e.dnt = 1), w(o.url(s.CLIENT_EVENT_ENDPOINT, e))
1857
- })
1858
- }, interaction: function (t, e, n, r) {
1859
- var i = s.extractTermsFromDOM(t.target || t.srcElement);
1860
- i.action = r || "click", h(i, e, n)
1861
- }
1862
- }
1863
- }, function (t, e, n) {
1864
- var r = n(0), i = n(43);
1865
- t.exports = function (t, e) {
1866
- return i(t, e) ? [t] : r.toRealArray(t.querySelectorAll(e))
1867
- }
1868
- }, function (t, e) {
1869
- t.exports = function (t, e, n) {
1870
- for (var r, i = 0; i < t.length; i++) if (r = e.call(n, t[i], i, t)) return r
1871
- }
1872
- }, function (t, e) {
1873
- t.exports = function () {
1874
- return Math.floor(+new Date / 9e5)
1875
- }
1876
- }, function (t, e, n) {
1877
- var r = n(12);
1878
- t.exports = function (t) {
1879
- var e, n;
1880
- return e = t.headers && t.headers.status, !(n = t && !t.error && 200 === e) && t.headers && t.headers.message && r.publicError(t.headers.message), {
1881
- success: n,
1882
- resp: t
1883
- }
1884
- }
1885
- }, function (t, e, n) {
1886
- var r, i = n(29), o = 0;
1887
-
1888
- function s() {
1889
- r && r.length === o && (i.emitter.trigger(i.ALL_WIDGETS_AND_IMAGES_LOADED, r), r = null)
1890
- }
1891
-
1892
- i.emitter.bind(i.ALL_WIDGETS_RENDER_END, function (t) {
1893
- r = t.widgets, s()
1894
- }), t.exports = {
1895
- reportImagesLoadForAWidget: function () {
1896
- o++, s()
1897
- }
1898
- }
1899
- }, , , , , , , , , function (t, e, n) {
1900
- var r, i = n(2), o = n(4), s = n(96), a = n(49), u = n(9), c = n(97), d = n(24), l = n(100),
1901
- f = n(154), h = n(162), p = n(163), m = n(29), v = n(35);
1902
- n(164), m.emitter.trigger(m.START), u.set("widgets.init", !0), a.set("init", !0), p(), r = new i, s.exposeReadyPromise(r.promise, a.base, "_e"), a.set("widgets", f), a.set("widgets.load", l.load), a.set("events", d), h(function () {
1903
- v.load(), r.resolve(a.base), c.attachTo(o), l.loadPage()
1904
- })
1905
- }, function (t, e) {
1906
- t.exports = navigator
1907
- }, function (t, e, n) {
1908
- var r = n(7);
1909
- t.exports = {
1910
- exposeReadyPromise: function (t, e, n) {
1911
- e.ready = r(t.then, t), n && Array.isArray(e[n]) && (e[n].forEach(r(t.then, t)), delete e[n])
1912
- }
1913
- }
1914
- }, function (t, e, n) {
1915
- var r = n(8), i = n(36), o = n(32), s = n(73), a = n(3);
1916
-
1917
- function u(t) {
1918
- var e, n, u;
1919
- t.altKey || t.metaKey || t.shiftKey || (e = o.closest(function (t) {
1920
- return "A" === t.tagName || "AREA" === t.tagName
1921
- }, t.target)) && a.isIntentURL(e.href) && (n = (n = (n = [u = e.href, "original_referer=" + r.href].join(-1 == u.indexOf("?") ? "?" : "&")).replace(/^http[:]/, "https:")).replace(/^\/\//, "https://"), s.open(n, e), i.preventDefault(t))
1922
- }
1923
-
1924
- t.exports = {
1925
- attachTo: function (t) {
1926
- t.addEventListener("click", u, !1)
1927
- }
1928
- }
1929
- }, function (t, e, n) {
1930
- var r, i = n(1), o = n(99), s = n(36), a = n(32), u = n(21), c = n(3), d = n(23), l = n(0),
1931
- f = "intent_", h = i.screen.width, p = i.screen.height;
1932
-
1933
- function m(t, e) {
1934
- function n(t) {
1935
- return Math.round(t / 2)
1936
- }
1937
-
1938
- return t > e ? {coordinate: 0, size: e} : {coordinate: n(e) - n(t), size: t}
1939
- }
1940
-
1941
- function v(t, e, n) {
1942
- var i, o;
1943
- e = r.parse(e), n = n || {}, i = m(e.width, n.width || h), e.left = i.coordinate, e.width = i.size, o = m(e.height, n.height || p), e.top = o.coordinate, e.height = o.size, this.win = t, this.features = function (t) {
1944
- var e = [];
1945
- return l.forIn(t, function (t, n) {
1946
- e.push(t + "=" + n)
1947
- }), e.join(",")
1948
- }(e)
1949
- }
1950
-
1951
- r = (new o).defaults({
1952
- width: 550,
1953
- height: 520,
1954
- personalbar: "0",
1955
- toolbar: "0",
1956
- location: "1",
1957
- scrollbars: "1",
1958
- resizable: "1"
1959
- }), v.prototype.open = function (t, e) {
1960
- var n = e && "click" == e.type && a.closest("a", e.target),
1961
- r = e && (e.altKey || e.metaKey || e.shiftKey), i = n && (u.ios() || u.android());
1962
- if (c.isTwitterURL(t)) return r || i ? this : (this.name = f + d.generate(), this.popup = this.win.open(t, this.name, this.features), e && s.preventDefault(e), this)
1963
- }, v.open = function (t, e, n) {
1964
- return new v(i, e).open(t, n)
1965
- }, t.exports = v
1966
- }, function (t, e, n) {
1967
- var r = n(5), i = n(0);
1968
-
1969
- function o() {
1970
- this.assertions = [], this._defaults = {}
1971
- }
1972
-
1973
- o.prototype.assert = function (t, e) {
1974
- return this.assertions.push({fn: t, msg: e || "assertion failed"}), this
1975
- }, o.prototype.defaults = function (t) {
1976
- return this._defaults = t || this._defaults, this
1977
- }, o.prototype.require = function (t) {
1978
- var e = this;
1979
- return (t = Array.isArray(t) ? t : i.toRealArray(arguments)).forEach(function (t) {
1980
- e.assert(function (t) {
1981
- return function (e) {
1982
- return r.hasValue(e[t])
1983
- }
1984
- }(t), "required: " + t)
1985
- }), this
1986
- }, o.prototype.parse = function (t) {
1987
- var e, n;
1988
- if (e = i.aug({}, this._defaults, t || {}), (n = this.assertions.reduce(function (t, n) {
1989
- return n.fn(e) || t.push(n.msg), t
1990
- }, [])).length > 0) throw new Error(n.join("\n"));
1991
- return e
1992
- }, t.exports = o
1993
- }, function (t, e, n) {
1994
- var r = n(4), i = n(52), o = n(6), s = n(22), a = n(53), u = n(33), c = n(9), d = n(39),
1995
- l = n(24), f = n(5), h = n(0), p = n(35), m = n(117), v = n(29);
1996
-
1997
- function g() {
1998
- var t = u.val("widgets:autoload") || !0;
1999
- return !f.isFalseValue(t) && (f.isTruthValue(t) ? r.body : r.querySelectorAll(t))
2000
- }
2001
-
2002
- function w(t, e) {
2003
- var n, i;
2004
- return t = (t = t || r.body).length ? h.toRealArray(t) : [t], d.pause(), i = function (t, e) {
2005
- return t.reduce(function (t, n) {
2006
- return t.concat(m.reduce(function (t, r) {
2007
- return t.concat(r(n, e))
2008
- }, []))
2009
- }, [])
2010
- }(t, e), v.emitter.trigger(v.ALL_WIDGETS_RENDER_START, {widgets: i}), n = s.allResolved(i.map(function (t) {
2011
- return a.addWidget(t)
2012
- })).then(function (t) {
2013
- l.trigger("loaded", {widgets: t}), t && t.length && v.emitter.trigger(v.ALL_WIDGETS_RENDER_END, {widgets: t})
2014
- }), s.always(n, function () {
2015
- d.resume()
2016
- }), n
2017
- }
2018
-
2019
- function y(t) {
2020
- return p.getExperiments().then(function (e) {
2021
- return w(t, i.isHorizonTweetEnabled(e))
2022
- })
2023
- }
2024
-
2025
- t.exports = {
2026
- load: y, loadPage: function () {
2027
- var t = g();
2028
- return !1 === t ? o.resolve() : (c.set("widgets.loaded", !0), y(t))
2029
- }, _getPageLoadTarget: g
2030
- }
2031
- }, function (t, e, n) {
2032
- var r = n(10), i = n(18), o = n(24), s = n(54), a = n(6), u = n(22);
2033
-
2034
- function c(t, e) {
2035
- this._widget = null, this._sandbox = null, this._hydrated = !1, this._insertedIntoDom = !1, this._Sandbox = t.Sandbox, this._factory = t.factory, this._widgetParams = t.parameters, this._resolve = e, this._className = t.className, this._renderedClassName = t.className + "-rendered", this._errorClassName = t.className + "-error", this._srcEl = t.srcEl, this._targetGlobal = function (t) {
2036
- return (t.srcEl || t.targetEl).ownerDocument.defaultView
2037
- }(t), this._sandboxWrapperEl = t.options ? t.options.sandboxWrapperEl : null, this._insertionStrategy = function (e) {
2038
- var n, r = t.srcEl, i = t.targetEl, o = t.options ? t.options.sandboxWrapperEl : null;
2039
- o ? (o.appendChild(e), n = o) : n = e, r ? i.insertBefore(n, r) : i.appendChild(n)
2040
- }
2041
- }
2042
-
2043
- c.fromRawTask = function (t) {
2044
- return new c(t.input, t.taskDoneDeferred.resolve)
2045
- }, c.prototype.initialize = function () {
2046
- var t = this, e = new this._Sandbox(this._targetGlobal);
2047
- return this._factory(this._widgetParams, e).then(function (n) {
2048
- return t._widget = n, t._sandbox = e, n._sandboxWrapperEl = t._sandboxWrapperEl, n
2049
- })
2050
- }, c.prototype.insertIntoDom = function () {
2051
- var t = this;
2052
- return this._widget ? this._sandbox.insert(this._widget.id, {class: [this._className, this._renderedClassName].join(" ")}, null, this._insertionStrategy).then(function () {
2053
- t._insertedIntoDom = !0
2054
- }) : a.reject(new Error("cannot insert widget into DOM before it is initialized"))
2055
- }, c.prototype.hydrate = function () {
2056
- var t = this;
2057
- return this._widget ? this._widget.hydrate().then(function () {
2058
- t._hydrated = !0
2059
- }) : a.reject(new Error("cannot hydrate widget before it is initialized"))
2060
- }, c.prototype.render = function () {
2061
- var t = this;
2062
-
2063
- function e(e) {
2064
- return s(t._sandbox.sandboxEl).then(function () {
2065
- return a.reject(e)
2066
- })
2067
- }
2068
-
2069
- return this._hydrated ? this._insertedIntoDom ? t._widget.render(t._sandbox).then(function () {
2070
- return t._sandbox.onResize(function () {
2071
- return t._widget.resize().then(function () {
2072
- o.trigger("resize", {target: t._sandbox.sandboxEl})
2073
- })
2074
- }), t._widget.show()
2075
- }).then(function () {
2076
- return s(t._srcEl).then(function () {
2077
- return t._sandbox.sandboxEl
2078
- })
2079
- }, e) : e(new Error("cannot render widget before DOM insertion")) : e(new Error("cannot render widget before hydration"))
2080
- }, c.prototype.fail = function () {
2081
- var t = this;
2082
- return this._srcEl ? u.always(i.write(function () {
2083
- r.add(t._srcEl, t._errorClassName)
2084
- }), function () {
2085
- o.trigger("rendered", {target: t._srcEl}), t._resolve(t._srcEl)
2086
- }) : (t._resolve(), a.resolve())
2087
- }, c.prototype.success = function () {
2088
- o.trigger("rendered", {target: this._sandbox.sandboxEl}), this._resolve(this._sandbox.sandboxEl)
2089
- }, t.exports = c
2090
- }, function (t, e, n) {
2091
- var r;
2092
- !function () {
2093
- "use strict";
2094
- var i = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.msRequestAnimationFrame || function (t) {
2095
- return window.setTimeout(t, 1e3 / 60)
2096
- };
2097
-
2098
- function o() {
2099
- this.frames = [], this.lastId = 0, this.raf = i, this.batch = {
2100
- hash: {},
2101
- read: [],
2102
- write: [],
2103
- mode: null
2104
- }
2105
- }
2106
-
2107
- o.prototype.read = function (t, e) {
2108
- var n = this.add("read", t, e), r = n.id;
2109
- return this.batch.read.push(n.id), "reading" === this.batch.mode || this.batch.scheduled ? r : (this.scheduleBatch(), r)
2110
- }, o.prototype.write = function (t, e) {
2111
- var n = this.add("write", t, e), r = this.batch.mode, i = n.id;
2112
- return this.batch.write.push(n.id), "writing" === r || "reading" === r || this.batch.scheduled ? i : (this.scheduleBatch(), i)
2113
- }, o.prototype.defer = function (t, e, n) {
2114
- "function" == typeof t && (n = e, e = t, t = 1);
2115
- var r = this, i = t - 1;
2116
- return this.schedule(i, function () {
2117
- r.run({fn: e, ctx: n})
2118
- })
2119
- }, o.prototype.clear = function (t) {
2120
- if ("function" == typeof t) return this.clearFrame(t);
2121
- t = Number(t);
2122
- var e = this.batch.hash[t];
2123
- if (e) {
2124
- var n = this.batch[e.type], r = n.indexOf(t);
2125
- delete this.batch.hash[t], ~r && n.splice(r, 1)
2126
- }
2127
- }, o.prototype.clearFrame = function (t) {
2128
- var e = this.frames.indexOf(t);
2129
- ~e && this.frames.splice(e, 1)
2130
- }, o.prototype.scheduleBatch = function () {
2131
- var t = this;
2132
- this.schedule(0, function () {
2133
- t.batch.scheduled = !1, t.runBatch()
2134
- }), this.batch.scheduled = !0
2135
- }, o.prototype.uniqueId = function () {
2136
- return ++this.lastId
2137
- }, o.prototype.flush = function (t) {
2138
- for (var e; e = t.shift();) this.run(this.batch.hash[e])
2139
- }, o.prototype.runBatch = function () {
2140
- try {
2141
- this.batch.mode = "reading", this.flush(this.batch.read), this.batch.mode = "writing", this.flush(this.batch.write), this.batch.mode = null
2142
- } catch (t) {
2143
- throw this.runBatch(), t
2144
- }
2145
- }, o.prototype.add = function (t, e, n) {
2146
- var r = this.uniqueId();
2147
- return this.batch.hash[r] = {id: r, fn: e, ctx: n, type: t}
2148
- }, o.prototype.run = function (t) {
2149
- var e = t.ctx || this, n = t.fn;
2150
- if (delete this.batch.hash[t.id], !this.onError) return n.call(e);
2151
- try {
2152
- n.call(e)
2153
- } catch (t) {
2154
- this.onError(t)
2155
- }
2156
- }, o.prototype.loop = function () {
2157
- var t, e = this, n = this.raf, r = !1;
2158
-
2159
- function i() {
2160
- var t = e.frames.shift();
2161
- e.frames.length ? n(i) : e.looping = !1, t && t()
2162
- }
2163
-
2164
- this.looping || (t = setTimeout(function () {
2165
- r = !0, i()
2166
- }, 500), n(function () {
2167
- r || (clearTimeout(t), i())
2168
- }), this.looping = !0)
2169
- }, o.prototype.schedule = function (t, e) {
2170
- return this.frames[t] ? this.schedule(t + 1, e) : (this.loop(), this.frames[t] = e)
2171
- };
2172
- var s = new o;
2173
- void 0 !== t && t.exports ? t.exports = s : void 0 === (r = function () {
2174
- return s
2175
- }.call(e, n, e, t)) || (t.exports = r)
2176
- }()
2177
- }, function (t, e, n) {
2178
- var r = n(48).Promise;
2179
- t.exports = r._asap
2180
- }, function (t, e, n) {
2181
- var r, i, o, s = n(4), a = n(1), u = n(30), c = n(20), d = n(2), l = n(6), f = n(55), h = n(34),
2182
- p = n(0), m = n(25), v = n(9).get("scribeCallback"),
2183
- g = Math.floor(1e3 * Math.random()) + "_", w = "rufous-frame-" + g + "-",
2184
- y = "rufous-form-" + g + "-", b = 0, _ = !1, E = new d;
2185
-
2186
- function x() {
2187
- var t = o.createElement("form"), e = o.createElement("input"), n = o.createElement("input");
2188
- return b++, t.action = h.CLIENT_EVENT_ENDPOINT, t.method = "POST", t.target = w + b, t.id = y + b, e.type = "hidden", e.name = "dnt", e.value = c.enabled(), n.type = "hidden", n.name = "tfw_redirect", n.value = h.RUFOUS_REDIRECT, t.appendChild(e), t.appendChild(n), t
2189
- }
2190
-
2191
- function T() {
2192
- var t = w + b;
2193
- return u({id: t, name: t, width: 0, height: 0, border: 0}, {display: "none"}, o.doc)
2194
- }
2195
-
2196
- t.exports = {
2197
- clientEvent: function (t, e, n, i) {
2198
- (function (t, e) {
2199
- var n = !p.isObject(t), r = !!e && !p.isObject(e), i = n || r;
2200
- return i
2201
- })(t, e) || (v && v(arguments), E.promise.then(function () {
2202
- !function (t, e) {
2203
- var n, i, s;
2204
- p.isObject(t) && p.isObject(e) && (f.log(t, e), s = h.flattenClientEventPayload(t, e), (n = r.firstChild).value = +(+n.value || s.dnt || 0), (i = o.createElement("input")).type = "hidden", i.name = "l", i.value = h.stringify(s), r.appendChild(i))
2205
- }(h.formatClientEventNamespace(t), h.formatClientEventData(e, n, i))
2206
- }))
2207
- }, flush: function () {
2208
- return E.promise.then(function () {
2209
- var t;
2210
- return r.children.length <= 2 ? l.reject() : (t = l.all([o.doc.body.appendChild(r), o.doc.body.appendChild(i)]).then(function (t) {
2211
- var e = t[0], n = t[1];
2212
- return n.addEventListener("load", function () {
2213
- !function (t, e) {
2214
- return function () {
2215
- var n = t.parentNode;
2216
- n && (n.removeChild(t), n.removeChild(e))
2217
- }
2218
- }(e, n)()
2219
- }), e.submit(), t
2220
- }), r = x(), i = T(), t)
2221
- })
2222
- }, init: function () {
2223
- return _ ? E.promise : ((o = new m(a)).insert("rufous-sandbox", null, {display: "none"}, function (t) {
2224
- s.body.appendChild(t)
2225
- }).then(function () {
2226
- o.setTitle("Twitter analytics iframe"), r = x(), i = T(), E.resolve([r, i])
2227
- }), _ = !0, E.promise)
2228
- }
2229
- }
2230
- }, function (t, e, n) {
2231
- var r = n(0);
2232
- t.exports = function t(e) {
2233
- var n = [];
2234
- return e.forEach(function (e) {
2235
- var i = r.isType("array", e) ? t(e) : [e];
2236
- n = n.concat(i)
2237
- }), n
2238
- }
2239
- }, function (t, e) {
2240
- t.exports = function (t) {
2241
- return t.filter(function (e, n) {
2242
- return t.indexOf(e) === n
2243
- })
2244
- }
2245
- }, function (t, e, n) {
2246
- var r = n(41), i = n(0), o = n(109);
2247
-
2248
- function s() {
2249
- r.apply(this, arguments)
2250
- }
2251
-
2252
- s.prototype = Object.create(r.prototype), i.aug(s.prototype, {factory: o}), t.exports = s
2253
- }, function (t, e, n) {
2254
- var r = n(22), i = n(0), o = n(7);
2255
- t.exports = {
2256
- before: function (t, e) {
2257
- return function () {
2258
- var n, i = this, o = arguments;
2259
- return n = e.apply(this, arguments), r.isPromise(n) ? n.then(function () {
2260
- return t.apply(i, o)
2261
- }) : t.apply(this, arguments)
2262
- }
2263
- }, after: function (t, e) {
2264
- return function () {
2265
- var n, i = this, o = arguments;
2266
-
2267
- function s(t, e) {
2268
- return r.isPromise(e) ? e.then(function () {
2269
- return t
2270
- }) : t
2271
- }
2272
-
2273
- return n = t.apply(this, arguments), r.isPromise(n) ? n.then(function (t) {
2274
- return s(t, e.apply(i, o))
2275
- }) : s(n, e.apply(this, arguments))
2276
- }
2277
- }, around: function (t, e) {
2278
- return function () {
2279
- var n = i.toRealArray(arguments);
2280
- return n.unshift(o(t, this)), e.apply(this, n)
2281
- }
2282
- }
2283
- }
2284
- }, function (t, e, n) {
2285
- var r = n(10), i = n(18), o = n(42), s = n(6), a = n(0);
2286
- t.exports = function () {
2287
- var t = o();
2288
-
2289
- function e(e) {
2290
- t.apply(this, arguments), Object.defineProperty(this, "targetGlobal", {value: e})
2291
- }
2292
-
2293
- return e.prototype = Object.create(t.prototype), a.aug(e.prototype, {
2294
- id: null,
2295
- initialized: !1,
2296
- width: 0,
2297
- height: 0,
2298
- sandboxEl: null,
2299
- insert: function () {
2300
- return s.reject()
2301
- },
2302
- onResize: function () {
2303
- },
2304
- addClass: function (t) {
2305
- var e = this.sandboxEl;
2306
- return t = Array.isArray(t) ? t : [t], i.write(function () {
2307
- t.forEach(function (t) {
2308
- r.add(e, t)
2309
- })
2310
- })
2311
- },
2312
- removeClass: function (t) {
2313
- var e = this.sandboxEl;
2314
- return t = Array.isArray(t) ? t : [t], i.write(function () {
2315
- t.forEach(function (t) {
2316
- r.remove(e, t)
2317
- })
2318
- })
2319
- },
2320
- styleSelf: function (t) {
2321
- var e = this;
2322
- return i.write(function () {
2323
- a.forIn(t, function (t, n) {
2324
- e.sandboxEl.style[t] = n
2325
- })
2326
- })
2327
- }
2328
- }), e
2329
- }
2330
- }, function (t, e, n) {
2331
- var r = n(4), i = n(10), o = n(18), s = n(56), a = n(26), u = n(57), c = n(45), d = n(46),
2332
- l = n(30), f = n(12), h = n(47), p = n(2), m = n(6), v = n(0), g = n(9), w = n(23),
2333
- y = n(7), b = {allowfullscreen: "true"}, _ = {
2334
- position: "absolute",
2335
- visibility: "hidden",
2336
- display: "block",
2337
- width: "0px",
2338
- height: "0px",
2339
- padding: "0",
2340
- border: "none"
2341
- }, E = {position: "static", visibility: "visible"}, x = "SandboxRoot",
2342
- T = ".SandboxRoot { display: none; }", A = 50;
2343
-
2344
- function S(t, e, n, r) {
2345
- return e = v.aug({id: t}, b, e), n = v.aug({}, _, n), l(e, n, r)
2346
- }
2347
-
2348
- function R(t, e, n, i, s) {
2349
- var a = new p, u = w.generate(), c = S(t, e, n, s);
2350
- return g.set(["sandbox", u], function () {
2351
- var t = c.contentWindow.document;
2352
- o.write(function () {
2353
- t.write("<!DOCTYPE html><html><head></head><body></body></html>")
2354
- }).then(function () {
2355
- t.close(), a.resolve(c)
2356
- })
2357
- }), c.src = ["javascript:", 'document.write("");', "try { window.parent.document; }", 'catch (e) { document.domain="' + r.domain + '"; }', "window.parent." + g.fullPath(["sandbox", u]) + "();"].join(""), c.addEventListener("error", a.reject, !1), o.write(function () {
2358
- i.parentNode.replaceChild(c, i)
2359
- }), a.promise
2360
- }
2361
-
2362
- t.exports = a.couple(n(58), function (t) {
2363
- t.overrideProperty("id", {
2364
- get: function () {
2365
- return this.sandboxEl && this.sandboxEl.id
2366
- }
2367
- }), t.overrideProperty("initialized", {
2368
- get: function () {
2369
- return !!this.win
2370
- }
2371
- }), t.overrideProperty("width", {
2372
- get: function () {
2373
- return this._width
2374
- }
2375
- }), t.overrideProperty("height", {
2376
- get: function () {
2377
- return this._height
2378
- }
2379
- }), t.overrideProperty("sandboxEl", {
2380
- get: function () {
2381
- return this.iframeEl
2382
- }
2383
- }), t.defineProperty("iframeEl", {
2384
- get: function () {
2385
- return this._iframe
2386
- }
2387
- }), t.defineProperty("rootEl", {
2388
- get: function () {
2389
- return this.doc && this.doc.documentElement
2390
- }
2391
- }), t.defineProperty("widgetEl", {
2392
- get: function () {
2393
- return this.doc && this.doc.body.firstElementChild
2394
- }
2395
- }), t.defineProperty("win", {
2396
- get: function () {
2397
- return this.iframeEl && this.iframeEl.contentWindow
2398
- }
2399
- }), t.defineProperty("doc", {
2400
- get: function () {
2401
- return this.win && this.win.document
2402
- }
2403
- }), t.define("_updateCachedDimensions", function () {
2404
- var t = this;
2405
- return o.read(function () {
2406
- var e, n = h(t.sandboxEl);
2407
- "visible" == t.sandboxEl.style.visibility ? t._width = n.width : (e = h(t.sandboxEl.parentElement).width, t._width = Math.min(n.width, e)), t._height = n.height
2408
- })
2409
- }), t.define("_setTargetToBlank", function () {
2410
- var t = this.createElement("base");
2411
- t.target = "_blank", this.doc.head.appendChild(t)
2412
- }), t.define("_didResize", function () {
2413
- var t = this, e = this._resizeHandlers.slice(0);
2414
- return this._updateCachedDimensions().then(function () {
2415
- e.forEach(function (e) {
2416
- e(t)
2417
- })
2418
- })
2419
- }), t.define("setTitle", function (t) {
2420
- this.iframeEl.title = t
2421
- }), t.override("createElement", function (t) {
2422
- return this.doc.createElement(t)
2423
- }), t.override("createFragment", function () {
2424
- return this.doc.createDocumentFragment()
2425
- }), t.override("htmlToElement", function (t) {
2426
- var e;
2427
- return (e = this.createElement("div")).innerHTML = t, e.firstElementChild
2428
- }), t.override("hasSelectedText", function () {
2429
- return !!s.getSelectedText(this.win)
2430
- }), t.override("addRootClass", function (t) {
2431
- var e = this.rootEl;
2432
- return t = Array.isArray(t) ? t : [t], this.initialized ? o.write(function () {
2433
- t.forEach(function (t) {
2434
- i.add(e, t)
2435
- })
2436
- }) : m.reject(new Error("sandbox not initialized"))
2437
- }), t.override("removeRootClass", function (t) {
2438
- var e = this.rootEl;
2439
- return t = Array.isArray(t) ? t : [t], this.initialized ? o.write(function () {
2440
- t.forEach(function (t) {
2441
- i.remove(e, t)
2442
- })
2443
- }) : m.reject(new Error("sandbox not initialized"))
2444
- }), t.override("hasRootClass", function (t) {
2445
- return i.present(this.rootEl, t)
2446
- }), t.define("addStyleSheet", function (t, e) {
2447
- var n, r = new p;
2448
- return this.initialized ? ((n = this.createElement("link")).type = "text/css", n.rel = "stylesheet", n.href = t, n.addEventListener("load", r.resolve, !1), n.addEventListener("error", r.reject, !1), o.write(y(e, null, n)).then(function () {
2449
- return u(t).then(r.resolve, r.reject), r.promise
2450
- })) : m.reject(new Error("sandbox not initialized"))
2451
- }), t.override("prependStyleSheet", function (t) {
2452
- var e = this.doc;
2453
- return this.addStyleSheet(t, function (t) {
2454
- var n = e.head.firstElementChild;
2455
- return n ? e.head.insertBefore(t, n) : e.head.appendChild(t)
2456
- })
2457
- }), t.override("appendStyleSheet", function (t) {
2458
- var e = this.doc;
2459
- return this.addStyleSheet(t, function (t) {
2460
- return e.head.appendChild(t)
2461
- })
2462
- }), t.define("addCss", function (t, e) {
2463
- var n;
2464
- return c.inlineStyle() ? ((n = this.createElement("style")).type = "text/css", n.appendChild(this.doc.createTextNode(t)), o.write(y(e, null, n))) : (f.devError("CSP enabled; cannot embed inline styles"), m.resolve())
2465
- }), t.override("prependCss", function (t) {
2466
- var e = this.doc;
2467
- return this.addCss(t, function (t) {
2468
- var n = e.head.firstElementChild;
2469
- return n ? e.head.insertBefore(t, n) : e.head.appendChild(t)
2470
- })
2471
- }), t.override("appendCss", function (t) {
2472
- var e = this.doc;
2473
- return this.addCss(t, function (t) {
2474
- return e.head.appendChild(t)
2475
- })
2476
- }), t.override("makeVisible", function () {
2477
- var t = this;
2478
- return this.styleSelf(E).then(function () {
2479
- t._updateCachedDimensions()
2480
- })
2481
- }), t.override("injectWidgetEl", function (t) {
2482
- var e = this;
2483
- return this.initialized ? this.widgetEl ? m.reject(new Error("widget already injected")) : o.write(function () {
2484
- e.doc.body.appendChild(t)
2485
- }) : m.reject(new Error("sandbox not initialized"))
2486
- }), t.override("matchHeightToContent", function () {
2487
- var t, e = this;
2488
- return o.read(function () {
2489
- t = e.widgetEl ? h(e.widgetEl).height : 0
2490
- }), o.write(function () {
2491
- e.sandboxEl.style.height = t + "px"
2492
- }).then(function () {
2493
- return e._updateCachedDimensions()
2494
- })
2495
- }), t.override("matchWidthToContent", function () {
2496
- var t, e = this;
2497
- return o.read(function () {
2498
- t = e.widgetEl ? h(e.widgetEl).width : 0
2499
- }), o.write(function () {
2500
- e.sandboxEl.style.width = t + "px"
2501
- }).then(function () {
2502
- return e._updateCachedDimensions()
2503
- })
2504
- }), t.after("initialize", function () {
2505
- this._iframe = null, this._width = this._height = 0, this._resizeHandlers = []
2506
- }), t.override("insert", function (t, e, n, r) {
2507
- var i = this, s = new p, a = this.targetGlobal.document, u = S(t, e, n, a);
2508
- return o.write(y(r, null, u)), u.addEventListener("load", function () {
2509
- (function (t) {
2510
- try {
2511
- t.contentWindow.document
2512
- } catch (t) {
2513
- return m.reject(t)
2514
- }
2515
- return m.resolve(t)
2516
- })(u).then(null, y(R, null, t, e, n, u, a)).then(s.resolve, s.reject)
2517
- }, !1), u.addEventListener("error", s.reject, !1), s.promise.then(function (t) {
2518
- var e = d(i._didResize, A, i);
2519
- return i._iframe = t, i.win.addEventListener("resize", e, !1), m.all([i._setTargetToBlank(), i.addRootClass(x), i.prependCss(T)])
2520
- })
2521
- }), t.override("onResize", function (t) {
2522
- this._resizeHandlers.push(t)
2523
- }), t.after("styleSelf", function () {
2524
- return this._updateCachedDimensions()
2525
- })
2526
- })
2527
- }, function (t, e) {
2528
- t.exports = function () {
2529
- throw new Error("unimplemented method")
2530
- }
2531
- }, function (t, e, n) {
2532
- var r = n(2), i = n(7), o = 100, s = 3e3;
2533
-
2534
- function a(t, e) {
2535
- this._inputsQueue = [], this._task = t, this._isPaused = !1, this._flushDelay = e && e.flushDelay || o, this._pauseLength = e && e.pauseLength || s, this._flushTimeout = void 0
2536
- }
2537
-
2538
- a.prototype.add = function (t) {
2539
- var e = new r;
2540
- return this._inputsQueue.push({
2541
- input: t,
2542
- taskDoneDeferred: e
2543
- }), this._scheduleFlush(), e.promise
2544
- }, a.prototype._scheduleFlush = function () {
2545
- this._isPaused || (clearTimeout(this._flushTimeout), this._flushTimeout = setTimeout(i(this._flush, this), this._flushDelay))
2546
- }, a.prototype._flush = function () {
2547
- try {
2548
- this._task.call(null, this._inputsQueue)
2549
- } catch (t) {
2550
- this._inputsQueue.forEach(function (e) {
2551
- e.taskDoneDeferred.reject(t)
2552
- })
2553
- }
2554
- this._inputsQueue = [], this._flushTimeout = void 0
2555
- }, a.prototype.pause = function (t) {
2556
- clearTimeout(this._flushTimeout), this._isPaused = !0, !t && this._pauseLength && setTimeout(i(this.resume, this), this._pauseLength)
2557
- }, a.prototype.resume = function () {
2558
- this._isPaused = !1, this._scheduleFlush()
2559
- }, t.exports = a
2560
- }, function (t, e, n) {
2561
- var r, i = n(72), o = n(30), s = n(2), a = n(4), u = n(19), c = n(21), d = n(31), l = n(8),
2562
- f = n(12), h = n(114), p = n(59), m = n(9), v = n(11), g = n(115), w = n(3), y = n(0),
2563
- b = n(1), _ = p(function () {
2564
- return new s
2565
- });
2566
-
2567
- function E(t) {
2568
- var e = t || {should_obtain_cookie_consent: !0, experiments: {}};
2569
- return new g(e.should_obtain_cookie_consent, e.experiments)
2570
- }
2571
-
2572
- t.exports = {
2573
- load: function () {
2574
- var t, e, n, s;
2575
- if (c.ie9() || c.ie10() || "http:" !== l.protocol && "https:" !== l.protocol) return f.devError("Using default settings due to unsupported browser or protocol."), r = E(), void _().resolve();
2576
- t = {origin: l.origin}, u.settings().indexOf("localhost") > -1 && (t.localSettings = !0), e = v.url(i.resourceBaseUrl + i.widgetIframeHtmlPath, t), n = function (t) {
2577
- var n;
2578
- if (e.substr(0, t.origin.length) === t.origin && w.isTwitterURL(t.origin)) try {
2579
- (n = "string" == typeof t.data ? d.parse(t.data) : t.data).namespace === h.settings && (r = E(n.settings), _().resolve())
2580
- } catch (t) {
2581
- f.devError(t)
2582
- }
2583
- }, b.addEventListener("message", n), s = o({
2584
- src: e,
2585
- title: "Twitter settings iframe"
2586
- }, {display: "none"}), a.body.appendChild(s)
2587
- }, settingsLoaded: function () {
2588
- var t, e, n;
2589
- return t = new s, e = m.get("experimentOverride"), _().promise.then(function () {
2590
- e && e.name && e.assignment && ((n = {})[e.name] = {bucket: e.assignment}, r.experiments = y.aug(r.experiments, n)), t.resolve(r)
2591
- }).catch(function (e) {
2592
- t.reject(e)
2593
- }), t.promise
2594
- }
2595
- }
2596
- }, function (t, e) {
2597
- t.exports = {settings: "twttr.settings"}
2598
- }, function (t, e) {
2599
- t.exports = function (t, e) {
2600
- this.shouldObtainCookieConsent = t, this.experiments = e || {}
2601
- }
2602
- }, function (t, e) {
2603
- t.exports = function (t) {
2604
- return t.split("").map(function (t) {
2605
- return t.charCodeAt(0).toString(16)
2606
- }).join("")
2607
- }
2608
- }, function (t, e, n) {
2609
- t.exports = [n(118), n(123), n(131), n(133), n(135), n(149), n(152)]
2610
- }, function (t, e, n) {
2611
- var r = n(11), i = n(5), o = n(0), s = n(13), a = n(14)(), u = n(60), c = "a.twitter-dm-button";
2612
- t.exports = function (t) {
2613
- return a(t, c).map(function (t) {
2614
- return u(function (t) {
2615
- var e = t.getAttribute("data-show-screen-name"), n = s(t),
2616
- a = t.getAttribute("href"), u = t.getAttribute("data-screen-name"),
2617
- c = e ? i.asBoolean(e) : null, d = t.getAttribute("data-size"),
2618
- l = r.decodeURL(a), f = l.recipient_id,
2619
- h = t.getAttribute("data-text") || l.text,
2620
- p = t.getAttribute("data-welcome-message-id") || l.welcomeMessageId;
2621
- return o.aug(n, {
2622
- screenName: u,
2623
- showScreenName: c,
2624
- size: d,
2625
- text: h,
2626
- userId: f,
2627
- welcomeMessageId: p
2628
- })
2629
- }(t), t.parentNode, t)
2630
- })
2631
- }
2632
- }, function (t, e, n) {
2633
- var r = n(0);
2634
- t.exports = function t(e) {
2635
- var n;
2636
- if (e) return n = e.lang || e.getAttribute("data-lang"), r.isType("string", n) ? n : t(e.parentElement)
2637
- }
2638
- }, function (t, e, n) {
2639
- var r = n(2);
2640
- t.exports = function (t, e) {
2641
- var i = new r;
2642
- return n.e(2).then(function (r) {
2643
- var o;
2644
- try {
2645
- o = n(86), i.resolve(new o(t, e))
2646
- } catch (t) {
2647
- i.reject(t)
2648
- }
2649
- }.bind(null, n)).catch(function (t) {
2650
- i.reject(t)
2651
- }), i.promise
2652
- }
2653
- }, function (t, e, n) {
2654
- var r = n(122), i = n(1), o = n(10), s = n(36), a = n(18), u = n(56), c = n(26), d = n(57),
2655
- l = n(45), f = n(47), h = n(7), p = n(46), m = n(6), v = n(0), g = 50, w = {
2656
- position: "absolute",
2657
- visibility: "hidden",
2658
- display: "block",
2659
- transform: "rotate(0deg)"
2660
- }, y = {position: "static", visibility: "visible"}, b = "twitter-widget", _ = "open",
2661
- E = "SandboxRoot", x = ".SandboxRoot { display: none; max-height: 10000px; }";
2662
- t.exports = c.couple(n(58), function (t) {
2663
- t.defineStatic("isSupported", function () {
2664
- return !!i.HTMLElement.prototype.attachShadow && l.inlineStyle()
2665
- }), t.overrideProperty("id", {
2666
- get: function () {
2667
- return this.sandboxEl && this.sandboxEl.id
2668
- }
2669
- }), t.overrideProperty("initialized", {
2670
- get: function () {
2671
- return !!this._shadowHost
2672
- }
2673
- }), t.overrideProperty("width", {
2674
- get: function () {
2675
- return this._width
2676
- }
2677
- }), t.overrideProperty("height", {
2678
- get: function () {
2679
- return this._height
2680
- }
2681
- }), t.overrideProperty("sandboxEl", {
2682
- get: function () {
2683
- return this._shadowHost
2684
- }
2685
- }), t.define("_updateCachedDimensions", function () {
2686
- var t = this;
2687
- return a.read(function () {
2688
- var e, n = f(t.sandboxEl);
2689
- "visible" == t.sandboxEl.style.visibility ? t._width = n.width : (e = f(t.sandboxEl.parentElement).width, t._width = Math.min(n.width, e)), t._height = n.height
2690
- })
2691
- }), t.define("_didResize", function () {
2692
- var t = this, e = this._resizeHandlers.slice(0);
2693
- return this._updateCachedDimensions().then(function () {
2694
- e.forEach(function (e) {
2695
- e(t)
2696
- })
2697
- })
2698
- }), t.override("createElement", function (t) {
2699
- return this.targetGlobal.document.createElement(t)
2700
- }), t.override("createFragment", function () {
2701
- return this.targetGlobal.document.createDocumentFragment()
2702
- }), t.override("htmlToElement", function (t) {
2703
- var e;
2704
- return (e = this.createElement("div")).innerHTML = t, e.firstElementChild
2705
- }), t.override("hasSelectedText", function () {
2706
- return !!u.getSelectedText(this.targetGlobal)
2707
- }), t.override("addRootClass", function (t) {
2708
- var e = this._shadowRootBody;
2709
- return t = Array.isArray(t) ? t : [t], this.initialized ? a.write(function () {
2710
- t.forEach(function (t) {
2711
- o.add(e, t)
2712
- })
2713
- }) : m.reject(new Error("sandbox not initialized"))
2714
- }), t.override("removeRootClass", function (t) {
2715
- var e = this._shadowRootBody;
2716
- return t = Array.isArray(t) ? t : [t], this.initialized ? a.write(function () {
2717
- t.forEach(function (t) {
2718
- o.remove(e, t)
2719
- })
2720
- }) : m.reject(new Error("sandbox not initialized"))
2721
- }), t.override("hasRootClass", function (t) {
2722
- return o.present(this._shadowRootBody, t)
2723
- }), t.override("addStyleSheet", function (t, e) {
2724
- return this.addCss('@import url("' + t + '");', e).then(function () {
2725
- return d(t)
2726
- })
2727
- }), t.override("prependStyleSheet", function (t) {
2728
- var e = this._shadowRoot;
2729
- return this.addStyleSheet(t, function (t) {
2730
- var n = e.firstElementChild;
2731
- return n ? e.insertBefore(t, n) : e.appendChild(t)
2732
- })
2733
- }), t.override("appendStyleSheet", function (t) {
2734
- var e = this._shadowRoot;
2735
- return this.addStyleSheet(t, function (t) {
2736
- return e.appendChild(t)
2737
- })
2738
- }), t.override("addCss", function (t, e) {
2739
- var n;
2740
- return this.initialized ? l.inlineStyle() ? ((n = this.createElement("style")).type = "text/css", n.appendChild(this.targetGlobal.document.createTextNode(t)), a.write(h(e, null, n))) : m.resolve() : m.reject(new Error("sandbox not initialized"))
2741
- }), t.override("prependCss", function (t) {
2742
- var e = this._shadowRoot;
2743
- return this.addCss(t, function (t) {
2744
- var n = e.firstElementChild;
2745
- return n ? e.insertBefore(t, n) : e.appendChild(t)
2746
- })
2747
- }), t.override("appendCss", function (t) {
2748
- var e = this._shadowRoot;
2749
- return this.addCss(t, function (t) {
2750
- return e.appendChild(t)
2751
- })
2752
- }), t.override("makeVisible", function () {
2753
- return this.styleSelf(y)
2754
- }), t.override("injectWidgetEl", function (t) {
2755
- var e = this;
2756
- return this.initialized ? this._shadowRootBody.firstElementChild ? m.reject(new Error("widget already injected")) : a.write(function () {
2757
- e._shadowRootBody.appendChild(t)
2758
- }).then(function () {
2759
- return e._updateCachedDimensions()
2760
- }).then(function () {
2761
- var t = p(e._didResize, g, e);
2762
- new r(e._shadowRootBody, t)
2763
- }) : m.reject(new Error("sandbox not initialized"))
2764
- }), t.override("matchHeightToContent", function () {
2765
- return m.resolve()
2766
- }), t.override("matchWidthToContent", function () {
2767
- return m.resolve()
2768
- }), t.override("insert", function (t, e, n, r) {
2769
- var i = this.targetGlobal.document, o = this._shadowHost = i.createElement(b),
2770
- u = this._shadowRoot = o.attachShadow({mode: _}),
2771
- c = this._shadowRootBody = i.createElement("div");
2772
- return v.forIn(e || {}, function (t, e) {
2773
- o.setAttribute(t, e)
2774
- }), o.id = t, u.appendChild(c), s.delegate(c, "click", "A", function (t, e) {
2775
- e.hasAttribute("target") || e.setAttribute("target", "_blank")
2776
- }), m.all([this.styleSelf(w), this.addRootClass(E), this.prependCss(x), a.write(r.bind(null, o))])
2777
- }), t.override("onResize", function (t) {
2778
- this._resizeHandlers.push(t)
2779
- }), t.after("initialize", function () {
2780
- this._shadowHost = this._shadowRoot = this._shadowRootBody = null, this._width = this._height = 0, this._resizeHandlers = []
2781
- }), t.after("styleSelf", function () {
2782
- return this._updateCachedDimensions()
2783
- })
2784
- })
2785
- }, function (t, e) {
2786
- var n;
2787
- (n = function (t, e) {
2788
- function r(t, e) {
2789
- if (t.resizedAttached) {
2790
- if (t.resizedAttached) return void t.resizedAttached.add(e)
2791
- } else t.resizedAttached = new function () {
2792
- var t, e;
2793
- this.q = [], this.add = function (t) {
2794
- this.q.push(t)
2795
- }, this.call = function () {
2796
- for (t = 0, e = this.q.length; t < e; t++) this.q[t].call()
2797
- }
2798
- }, t.resizedAttached.add(e);
2799
- t.resizeSensor = document.createElement("div"), t.resizeSensor.className = "resize-sensor";
2800
- var n = "position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;",
2801
- r = "position: absolute; left: 0; top: 0; transition: 0s;";
2802
- t.resizeSensor.style.cssText = n, t.resizeSensor.innerHTML = '<div class="resize-sensor-expand" style="' + n + '"><div style="' + r + '"></div></div><div class="resize-sensor-shrink" style="' + n + '"><div style="' + r + ' width: 200%; height: 200%"></div></div>', t.appendChild(t.resizeSensor), {
2803
- fixed: 1,
2804
- absolute: 1
2805
- }[function (t, e) {
2806
- return t.currentStyle ? t.currentStyle[e] : window.getComputedStyle ? window.getComputedStyle(t, null).getPropertyValue(e) : t.style[e]
2807
- }(t, "position")] || (t.style.position = "relative");
2808
- var i, o, s = t.resizeSensor.childNodes[0], a = s.childNodes[0],
2809
- u = t.resizeSensor.childNodes[1], c = (u.childNodes[0], function () {
2810
- a.style.width = s.offsetWidth + 10 + "px", a.style.height = s.offsetHeight + 10 + "px", s.scrollLeft = s.scrollWidth, s.scrollTop = s.scrollHeight, u.scrollLeft = u.scrollWidth, u.scrollTop = u.scrollHeight, i = t.offsetWidth, o = t.offsetHeight
2811
- });
2812
- c();
2813
- var d = function (t, e, n) {
2814
- t.attachEvent ? t.attachEvent("on" + e, n) : t.addEventListener(e, n)
2815
- }, l = function () {
2816
- t.offsetWidth == i && t.offsetHeight == o || t.resizedAttached && t.resizedAttached.call(), c()
2817
- };
2818
- d(s, "scroll", l), d(u, "scroll", l)
2819
- }
2820
-
2821
- var i = Object.prototype.toString.call(t),
2822
- o = "[object Array]" === i || "[object NodeList]" === i || "[object HTMLCollection]" === i || "undefined" != typeof jQuery && t instanceof jQuery || "undefined" != typeof Elements && t instanceof Elements;
2823
- if (o) for (var s = 0, a = t.length; s < a; s++) r(t[s], e); else r(t, e);
2824
- this.detach = function () {
2825
- if (o) for (var e = 0, r = t.length; e < r; e++) n.detach(t[e]); else n.detach(t)
2826
- }
2827
- }).detach = function (t) {
2828
- t.resizeSensor && (t.removeChild(t.resizeSensor), delete t.resizeSensor, delete t.resizedAttached)
2829
- }, void 0 !== t && void 0 !== t.exports ? t.exports = n : window.ResizeSensor = n
2830
- }, function (t, e, n) {
2831
- var r = n(3), i = n(0), o = n(13), s = n(14)(), a = n(63), u = n(5),
2832
- c = "a.twitter-follow-button";
2833
- t.exports = function (t) {
2834
- return s(t, c).map(function (t) {
2835
- return a(function (t) {
2836
- var e = o(t), n = {
2837
- screenName: r.screenName(t.href),
2838
- showScreenName: "false" !== t.getAttribute("data-show-screen-name"),
2839
- showCount: "false" !== t.getAttribute("data-show-count"),
2840
- size: t.getAttribute("data-size"),
2841
- count: t.getAttribute("data-count"),
2842
- preview: t.getAttribute("data-preview")
2843
- };
2844
- return i.forIn(n, function (t, n) {
2845
- var r = e[t];
2846
- e[t] = u.hasValue(r) ? r : n
2847
- }), e.screenName = e.screenName || e.screen_name, e
2848
- }(t), t.parentNode, t)
2849
- })
2850
- }
2851
- }, function (t, e, n) {
2852
- var r = n(2);
2853
- t.exports = function (t, e) {
2854
- var i = new r;
2855
- return n.e(3).then(function (r) {
2856
- var o;
2857
- try {
2858
- o = n(87), i.resolve(new o(t, e))
2859
- } catch (t) {
2860
- i.reject(t)
2861
- }
2862
- }.bind(null, n)).catch(function (t) {
2863
- i.reject(t)
2864
- }), i.promise
2865
- }
2866
- }, function (t, e, n) {
2867
- var r = n(18), i = n(126), o = n(59), s = n(30), a = n(2), u = n(6), c = n(7), d = n(0),
2868
- l = {position: "absolute", visibility: "hidden", width: "0px", height: "0px"},
2869
- f = {position: "static", visibility: "visible"}, h = {};
2870
- i(function (t, e, n) {
2871
- var r = h[t];
2872
- if (r) return e = e || 1, n = n || 1, r.styleSelf({
2873
- width: e + "px",
2874
- height: n + "px"
2875
- }).then(function () {
2876
- r.didResize()
2877
- })
2878
- }), t.exports = function (t) {
2879
- t.overrideProperty("id", {
2880
- get: function () {
2881
- return this.sandboxEl && this.sandboxEl.id
2882
- }
2883
- }), t.overrideProperty("initialized", {
2884
- get: function () {
2885
- return !!this.iframeEl
2886
- }
2887
- }), t.overrideProperty("width", {
2888
- get: function () {
2889
- return this._width
2890
- }
2891
- }), t.overrideProperty("height", {
2892
- get: function () {
2893
- return this._height
2894
- }
2895
- }), t.overrideProperty("sandboxEl", {
2896
- get: function () {
2897
- return this.iframeEl
2898
- }
2899
- }), t.defineProperty("iframeEl", {
2900
- get: function () {
2901
- return this._iframe
2902
- }
2903
- }), t.define("updateCachedDimensions", function () {
2904
- var t = this;
2905
- return this.initialized ? r.read(function () {
2906
- t._width = t.sandboxEl.offsetWidth, t._height = t.sandboxEl.offsetHeight
2907
- }) : u.resolve()
2908
- }), t.define("setTitle", function (t) {
2909
- this.iframeEl.title = t
2910
- }), t.define("makeVisible", function () {
2911
- return this.styleSelf(f)
2912
- }), t.define("didResize", function () {
2913
- var t = this, e = t._resizeHandlers.length > 0;
2914
- return this.updateCachedDimensions().then(function () {
2915
- e && t._resizeHandlers.forEach(function (e) {
2916
- e(t)
2917
- })
2918
- })
2919
- }), t.define("loadDocument", function (t) {
2920
- var e = new a;
2921
- return this.initialized ? this.iframeEl.src ? u.reject(new Error("widget already loaded")) : (this.iframeEl.addEventListener("load", e.resolve, !1), this.iframeEl.addEventListener("error", e.reject, !1), this.iframeEl.src = t, e.promise) : u.reject(new Error("sandbox not initialized"))
2922
- }), t.after("initialize", function () {
2923
- this._iframe = null, this._width = this._height = 0, this._resizeHandlers = []
2924
- }), t.override("insert", function (t, e, n, i) {
2925
- var a = this;
2926
- return e = d.aug({id: t}, e), n = d.aug({}, l, n), this._iframe = s(e, n), h[t] = this, this.onResize(o(function () {
2927
- a.makeVisible()
2928
- })), r.write(c(i, null, this._iframe))
2929
- }), t.override("onResize", function (t) {
2930
- this._resizeHandlers.push(t)
2931
- }), t.after("styleSelf", function () {
2932
- return this.updateCachedDimensions()
2933
- })
2934
- }
2935
- }, function (t, e, n) {
2936
- var r = n(1), i = n(127), o = n(129), s = n(24), a = n(5), u = n(130);
2937
- t.exports = function (t) {
2938
- function e(t, e) {
2939
- var n = u(this);
2940
- s.trigger(t, {target: n, region: e, type: t, data: {}})
2941
- }
2942
-
2943
- function n(e) {
2944
- var n = u(this), r = n && n.id, i = a.asInt(e.width), o = a.asInt(e.height);
2945
- r && void 0 !== i && void 0 !== o && t(r, i, o)
2946
- }
2947
-
2948
- (new i).attachReceiver(new o.Receiver(r, "twttr.button")).bind("twttr.private.trigger", e).bind("twttr.private.resizeButton", n), (new i).attachReceiver(new o.Receiver(r, "twttr.embed")).bind("twttr.private.trigger", e).bind("twttr.private.rendered", n).bind("twttr.private.resize", n)
2949
- }
2950
- }, function (t, e, n) {
2951
- var r = n(31), i = n(128), o = n(0), s = n(6), a = n(22), u = "2.0";
2952
-
2953
- function c(t) {
2954
- this.registry = t || {}
2955
- }
2956
-
2957
- function d(t) {
2958
- var e, n;
2959
- return e = o.isType("string", t), n = o.isType("number", t), e || n || null === t
2960
- }
2961
-
2962
- function l(t, e) {
2963
- return {jsonrpc: u, id: d(t) ? t : null, error: e}
2964
- }
2965
-
2966
- c.prototype._invoke = function (t, e) {
2967
- var n, r, i;
2968
- n = this.registry[t.method], r = t.params || [], r = o.isType("array", r) ? r : [r];
2969
- try {
2970
- i = n.apply(e.source || null, r)
2971
- } catch (t) {
2972
- i = s.reject(t.message)
2973
- }
2974
- return a.isPromise(i) ? i : s.resolve(i)
2975
- }, c.prototype._processRequest = function (t, e) {
2976
- var n, r;
2977
- return function (t) {
2978
- var e, n, r;
2979
- return !!o.isObject(t) && (e = t.jsonrpc === u, n = o.isType("string", t.method), r = !("id" in t) || d(t.id), e && n && r)
2980
- }(t) ? (n = "params" in t && (r = t.params, !o.isObject(r) || o.isType("function", r)) ? s.resolve(l(t.id, i.INVALID_PARAMS)) : this.registry[t.method] ? this._invoke(t, {source: e}).then(function (e) {
2981
- return n = t.id, {jsonrpc: u, id: n, result: e};
2982
- var n
2983
- }, function () {
2984
- return l(t.id, i.INTERNAL_ERROR)
2985
- }) : s.resolve(l(t.id, i.METHOD_NOT_FOUND)), null != t.id ? n : s.resolve()) : s.resolve(l(t.id, i.INVALID_REQUEST))
2986
- }, c.prototype.attachReceiver = function (t) {
2987
- return t.attachTo(this), this
2988
- }, c.prototype.bind = function (t, e) {
2989
- return this.registry[t] = e, this
2990
- }, c.prototype.receive = function (t, e) {
2991
- var n, a, u, c = this;
2992
- try {
2993
- u = t, t = o.isType("string", u) ? r.parse(u) : u
2994
- } catch (t) {
2995
- return s.resolve(l(null, i.PARSE_ERROR))
2996
- }
2997
- return e = e || null, a = ((n = o.isType("array", t)) ? t : [t]).map(function (t) {
2998
- return c._processRequest(t, e)
2999
- }), n ? function (t) {
3000
- return s.all(t).then(function (t) {
3001
- return (t = t.filter(function (t) {
3002
- return void 0 !== t
3003
- })).length ? t : void 0
3004
- })
3005
- }(a) : a[0]
3006
- }, t.exports = c
3007
- }, function (t) {
3008
- t.exports = {
3009
- PARSE_ERROR: {code: -32700, message: "Parse error"},
3010
- INVALID_REQUEST: {code: -32600, message: "Invalid Request"},
3011
- INVALID_PARAMS: {code: -32602, message: "Invalid params"},
3012
- METHOD_NOT_FOUND: {code: -32601, message: "Method not found"},
3013
- INTERNAL_ERROR: {code: -32603, message: "Internal error"}
3014
- }
3015
- }, function (t, e, n) {
3016
- var r = n(8), i = n(1), o = n(31), s = n(2), a = n(21), u = n(0), c = n(3), d = n(7),
3017
- l = a.ie9();
3018
-
3019
- function f(t, e, n) {
3020
- var r;
3021
- t && t.postMessage && (l ? r = (n || "") + o.stringify(e) : n ? (r = {})[n] = e : r = e, t.postMessage(r, "*"))
3022
- }
3023
-
3024
- function h(t) {
3025
- return u.isType("string", t) ? t : "JSONRPC"
3026
- }
3027
-
3028
- function p(t, e) {
3029
- return e ? u.isType("string", t) && 0 === t.indexOf(e) ? t.substring(e.length) : t && t[e] ? t[e] : void 0 : t
3030
- }
3031
-
3032
- function m(t, e) {
3033
- var n = t.document;
3034
- this.filter = h(e), this.server = null, this.isTwitterFrame = c.isTwitterURL(n.location.href), t.addEventListener("message", d(this._onMessage, this), !1)
3035
- }
3036
-
3037
- function v(t, e) {
3038
- this.pending = {}, this.target = t, this.isTwitterHost = c.isTwitterURL(r.href), this.filter = h(e), i.addEventListener("message", d(this._onMessage, this), !1)
3039
- }
3040
-
3041
- u.aug(m.prototype, {
3042
- _onMessage: function (t) {
3043
- var e, n = this;
3044
- this.server && (this.isTwitterFrame && !c.isTwitterURL(t.origin) || (e = p(t.data, this.filter)) && this.server.receive(e, t.source).then(function (e) {
3045
- e && f(t.source, e, n.filter)
3046
- }))
3047
- }, attachTo: function (t) {
3048
- this.server = t
3049
- }, detach: function () {
3050
- this.server = null
3051
- }
3052
- }), u.aug(v.prototype, {
3053
- _processResponse: function (t) {
3054
- var e = this.pending[t.id];
3055
- e && (e.resolve(t), delete this.pending[t.id])
3056
- }, _onMessage: function (t) {
3057
- var e;
3058
- if ((!this.isTwitterHost || c.isTwitterURL(t.origin)) && (e = p(t.data, this.filter))) {
3059
- if (u.isType("string", e)) try {
3060
- e = o.parse(e)
3061
- } catch (t) {
3062
- return
3063
- }
3064
- (e = u.isType("array", e) ? e : [e]).forEach(d(this._processResponse, this))
3065
- }
3066
- }, send: function (t) {
3067
- var e = new s;
3068
- return t.id ? this.pending[t.id] = e : e.resolve(), f(this.target, t, this.filter), e.promise
3069
- }
3070
- }), t.exports = {
3071
- Receiver: m, Dispatcher: v, _stringifyPayload: function (t) {
3072
- return arguments.length > 0 && (l = !!t), l
3073
- }
3074
- }
3075
- }, function (t, e, n) {
3076
- var r = n(4);
3077
- t.exports = function (t) {
3078
- for (var e, n = r.getElementsByTagName("iframe"), i = 0; n[i]; i++) if ((e = n[i]).contentWindow === t) return e
3079
- }
3080
- }, function (t, e, n) {
3081
- var r = n(5), i = n(0), o = n(3), s = n(13), a = n(14)(), u = n(64), c = "a.twitter-moment";
3082
- t.exports = function (t) {
3083
- return a(t, c).map(function (t) {
3084
- return u(function (t) {
3085
- var e = s(t), n = {
3086
- momentId: o.momentId(t.href),
3087
- chrome: t.getAttribute("data-chrome"),
3088
- limit: t.getAttribute("data-limit")
3089
- };
3090
- return i.forIn(n, function (t, n) {
3091
- var i = e[t];
3092
- e[t] = r.hasValue(i) ? i : n
3093
- }), e
3094
- }(t), t.parentNode, t)
3095
- })
3096
- }
3097
- }, function (t, e, n) {
3098
- var r = n(2);
3099
- t.exports = function (t, e) {
3100
- var i = new r;
3101
- return Promise.all([n.e(0), n.e(4)]).then(function (r) {
3102
- var o;
3103
- try {
3104
- o = n(88), i.resolve(new o(t, e))
3105
- } catch (t) {
3106
- i.reject(t)
3107
- }
3108
- }.bind(null, n)).catch(function (t) {
3109
- i.reject(t)
3110
- }), i.promise
3111
- }
3112
- }, function (t, e, n) {
3113
- var r = n(0), i = n(13), o = n(14)(), s = n(65), a = "a.periscope-on-air",
3114
- u = /^https?:\/\/(?:www\.)?(?:periscope|pscp)\.tv\/@?([a-zA-Z0-9_]+)\/?$/i;
3115
- t.exports = function (t) {
3116
- return o(t, a).map(function (t) {
3117
- return s(function (t) {
3118
- var e = i(t), n = t.getAttribute("href"), o = t.getAttribute("data-size"),
3119
- s = u.exec(n)[1];
3120
- return r.aug(e, {username: s, size: o})
3121
- }(t), t.parentNode, t)
3122
- })
3123
- }
3124
- }, function (t, e, n) {
3125
- var r = n(2);
3126
- t.exports = function (t, e) {
3127
- var i = new r;
3128
- return n.e(5).then(function (r) {
3129
- var o;
3130
- try {
3131
- o = n(89), i.resolve(new o(t, e))
3132
- } catch (t) {
3133
- i.reject(t)
3134
- }
3135
- }.bind(null, n)).catch(function (t) {
3136
- i.reject(t)
3137
- }), i.promise
3138
- }
3139
- }, function (t, e, n) {
3140
- var r = n(5), i = n(0), o = n(66), s = n(13), a = n(14)(), u = n(67), c = n(3), d = n(12),
3141
- l = "a.twitter-timeline,div.twitter-timeline,a.twitter-grid",
3142
- f = "Embedded Search timelines have been deprecated. See https://twittercommunity.com/t/deprecating-widget-settings/102295.",
3143
- h = "You may have been affected by an update to settings in embedded timelines. See https://twittercommunity.com/t/deprecating-widget-settings/102295.",
3144
- p = "Embedded grids have been deprecated and will now render as timelines. Please update your embed code to use the twitter-timeline class. More info: https://twittercommunity.com/t/update-on-the-embedded-grid-display-type/119564.";
3145
- t.exports = function (t) {
3146
- return a(t, l).map(function (t) {
3147
- return u(function (t) {
3148
- var e = s(t), n = t.getAttribute("data-show-replies"), a = {
3149
- isPreconfigured: !!t.getAttribute("data-widget-id"),
3150
- chrome: t.getAttribute("data-chrome"),
3151
- tweetLimit: t.getAttribute("data-tweet-limit") || t.getAttribute("data-limit"),
3152
- ariaLive: t.getAttribute("data-aria-polite"),
3153
- theme: t.getAttribute("data-theme"),
3154
- linkColor: t.getAttribute("data-link-color"),
3155
- borderColor: t.getAttribute("data-border-color"),
3156
- showReplies: n ? r.asBoolean(n) : null,
3157
- profileScreenName: t.getAttribute("data-screen-name"),
3158
- profileUserId: t.getAttribute("data-user-id"),
3159
- favoritesScreenName: t.getAttribute("data-favorites-screen-name"),
3160
- favoritesUserId: t.getAttribute("data-favorites-user-id"),
3161
- likesScreenName: t.getAttribute("data-likes-screen-name"),
3162
- likesUserId: t.getAttribute("data-likes-user-id"),
3163
- listOwnerScreenName: t.getAttribute("data-list-owner-screen-name"),
3164
- listOwnerUserId: t.getAttribute("data-list-owner-id"),
3165
- listId: t.getAttribute("data-list-id"),
3166
- listSlug: t.getAttribute("data-list-slug"),
3167
- customTimelineId: t.getAttribute("data-custom-timeline-id"),
3168
- staticContent: t.getAttribute("data-static-content"),
3169
- url: t.href
3170
- };
3171
- return a.isPreconfigured && (c.isSearchUrl(a.url) ? d.publicError(f, t) : d.publicLog(h, t)), "twitter-grid" === t.className && d.publicLog(p, t), (a = i.aug(a, e)).dataSource = o(a), a.id = a.dataSource && a.dataSource.id, a
3172
- }(t), t.parentNode, t)
3173
- })
3174
- }
3175
- }, function (t, e, n) {
3176
- var r = n(27);
3177
- t.exports = r.build([n(28), n(139)])
3178
- }, function (t, e, n) {
3179
- var r = n(0), i = n(138);
3180
- t.exports = function (t) {
3181
- return "en" === t || r.contains(i, t)
3182
- }
3183
- }, function (t, e) {
3184
- t.exports = ["hi", "zh-cn", "fr", "zh-tw", "msa", "fil", "fi", "sv", "pl", "ja", "ko", "de", "it", "pt", "es", "ru", "id", "tr", "da", "no", "nl", "hu", "fa", "ar", "ur", "he", "th", "cs", "uk", "vi", "ro", "bn", "el", "en-gb", "gu", "kn", "mr", "ta", "bg", "ca", "hr", "sr", "sk"]
3185
- }, function (t, e, n) {
3186
- var r = n(3), i = n(0), o = n(19), s = "collection:";
3187
-
3188
- function a(t, e) {
3189
- return r.collectionId(t) || e
3190
- }
3191
-
3192
- t.exports = function (t) {
3193
- t.params({id: {}, url: {}}), t.overrideProperty("id", {
3194
- get: function () {
3195
- var t = a(this.params.url, this.params.id);
3196
- return s + t
3197
- }
3198
- }), t.overrideProperty("endpoint", {
3199
- get: function () {
3200
- return o.timeline(["collection"])
3201
- }
3202
- }), t.around("queryParams", function (t) {
3203
- return i.aug(t(), {collection_id: a(this.params.url, this.params.id)})
3204
- }), t.before("initialize", function () {
3205
- if (!a(this.params.url, this.params.id)) throw new Error("one of url or id is required")
3206
- })
3207
- }
3208
- }, function (t, e, n) {
3209
- var r = n(27);
3210
- t.exports = r.build([n(28), n(141)])
3211
- }, function (t, e, n) {
3212
- var r = n(3), i = n(0), o = n(19), s = "event:";
3213
-
3214
- function a(t, e) {
3215
- return r.eventId(t) || e
3216
- }
3217
-
3218
- t.exports = function (t) {
3219
- t.params({id: {}, url: {}}), t.overrideProperty("id", {
3220
- get: function () {
3221
- var t = a(this.params.url, this.params.id);
3222
- return s + t
3223
- }
3224
- }), t.overrideProperty("endpoint", {
3225
- get: function () {
3226
- return o.timeline(["event"])
3227
- }
3228
- }), t.around("queryParams", function (t) {
3229
- return i.aug(t(), {event_id: a(this.params.url, this.params.id)})
3230
- }), t.before("initialize", function () {
3231
- if (!a(this.params.url, this.params.id)) throw new Error("one of url or id is required")
3232
- })
3233
- }
3234
- }, function (t, e, n) {
3235
- var r = n(27);
3236
- t.exports = r.build([n(28), n(143)])
3237
- }, function (t, e, n) {
3238
- var r = n(3), i = n(0), o = n(19), s = "likes:";
3239
-
3240
- function a(t) {
3241
- return r.likesScreenName(t.url) || t.screenName
3242
- }
3243
-
3244
- t.exports = function (t) {
3245
- t.params({
3246
- screenName: {},
3247
- userId: {},
3248
- url: {}
3249
- }), t.overrideProperty("id", {
3250
- get: function () {
3251
- var t = a(this.params) || this.params.userId;
3252
- return s + t
3253
- }
3254
- }), t.overrideProperty("endpoint", {
3255
- get: function () {
3256
- return o.timeline(["likes"])
3257
- }
3258
- }), t.define("_getLikesQueryParam", function () {
3259
- var t = a(this.params);
3260
- return t ? {screen_name: t} : {user_id: this.params.userId}
3261
- }), t.around("queryParams", function (t) {
3262
- return i.aug(t(), this._getLikesQueryParam())
3263
- }), t.before("initialize", function () {
3264
- if (!a(this.params) && !this.params.userId) throw new Error("screen name or user id is required")
3265
- })
3266
- }
3267
- }, function (t, e, n) {
3268
- var r = n(27);
3269
- t.exports = r.build([n(28), n(145)])
3270
- }, function (t, e, n) {
3271
- var r = n(3), i = n(0), o = n(19), s = "list:";
3272
-
3273
- function a(t) {
3274
- var e = r.listScreenNameAndSlug(t.url) || t;
3275
- return i.compact({
3276
- screen_name: e.ownerScreenName,
3277
- user_id: e.ownerUserId,
3278
- list_slug: e.slug
3279
- })
3280
- }
3281
-
3282
- t.exports = function (t) {
3283
- t.params({
3284
- id: {},
3285
- ownerScreenName: {},
3286
- ownerUserId: {},
3287
- slug: {},
3288
- url: {}
3289
- }), t.overrideProperty("id", {
3290
- get: function () {
3291
- var t, e, n;
3292
- return this.params.id ? s + this.params.id : (e = (t = a(this.params)) && t.list_slug.replace(/-/g, "_"), n = t && (t.screen_name || t.user_id), s + (n + ":") + e)
3293
- }
3294
- }), t.overrideProperty("endpoint", {
3295
- get: function () {
3296
- return o.timeline(["list"])
3297
- }
3298
- }), t.define("_getListQueryParam", function () {
3299
- return this.params.id ? {list_id: this.params.id} : a(this.params)
3300
- }), t.around("queryParams", function (t) {
3301
- return i.aug(t(), this._getListQueryParam())
3302
- }), t.before("initialize", function () {
3303
- var t = a(this.params);
3304
- if (i.isEmptyObject(t) && !this.params.id) throw new Error("qualified slug or list id required")
3305
- })
3306
- }
3307
- }, function (t, e, n) {
3308
- var r = n(27);
3309
- t.exports = r.build([n(28), n(147)])
3310
- }, function (t, e, n) {
3311
- var r = n(3), i = n(5), o = n(0), s = n(19), a = "profile:";
3312
-
3313
- function u(t, e) {
3314
- return r.screenName(t) || e
3315
- }
3316
-
3317
- t.exports = function (t) {
3318
- t.params({
3319
- showReplies: {fallback: !1, transform: i.asBoolean},
3320
- screenName: {},
3321
- userId: {},
3322
- url: {}
3323
- }), t.overrideProperty("id", {
3324
- get: function () {
3325
- var t = u(this.params.url, this.params.screenName);
3326
- return a + (t || this.params.userId)
3327
- }
3328
- }), t.overrideProperty("endpoint", {
3329
- get: function () {
3330
- return s.timeline(["profile"])
3331
- }
3332
- }), t.define("_getProfileQueryParam", function () {
3333
- var t = u(this.params.url, this.params.screenName),
3334
- e = t ? {screen_name: t} : {user_id: this.params.userId};
3335
- return o.aug(e, {with_replies: this.params.showReplies ? "true" : "false"})
3336
- }), t.around("queryParams", function (t) {
3337
- return o.aug(t(), this._getProfileQueryParam())
3338
- }), t.before("initialize", function () {
3339
- if (!u(this.params.url, this.params.screenName) && !this.params.userId) throw new Error("screen name or user id is required")
3340
- })
3341
- }
3342
- }, function (t, e, n) {
3343
- var r = n(2);
3344
- t.exports = function (t, e) {
3345
- var i = new r;
3346
- return Promise.all([n.e(0), n.e(6)]).then(function (r) {
3347
- var o;
3348
- try {
3349
- o = n(90), i.resolve(new o(t, e))
3350
- } catch (t) {
3351
- i.reject(t)
3352
- }
3353
- }.bind(null, n)).catch(function (t) {
3354
- i.reject(t)
3355
- }), i.promise
3356
- }
3357
- }, function (t, e, n) {
3358
- var r = n(10), i = n(3), o = n(0), s = n(13), a = n(14)(), u = n(68),
3359
- c = "blockquote.twitter-tweet, blockquote.twitter-video",
3360
- d = /\btw-align-(left|right|center)\b/;
3361
- t.exports = function (t, e) {
3362
- return a(t, c).map(function (t) {
3363
- return u(function (t) {
3364
- var e = s(t), n = t.getElementsByTagName("A"), a = n && n[n.length - 1],
3365
- u = a && i.status(a.href), c = t.getAttribute("data-conversation"),
3366
- l = "none" == c || "hidden" == c || r.present(t, "tw-hide-thread"),
3367
- f = t.getAttribute("data-cards"),
3368
- h = "none" == f || "hidden" == f || r.present(t, "tw-hide-media"),
3369
- p = t.getAttribute("data-align") || t.getAttribute("align"),
3370
- m = t.getAttribute("data-link-color"), v = t.getAttribute("data-theme");
3371
- return !p && d.test(t.className) && (p = RegExp.$1), o.aug(e, {
3372
- tweetId: u,
3373
- hideThread: l,
3374
- hideCard: h,
3375
- align: p,
3376
- linkColor: m,
3377
- theme: v,
3378
- id: u
3379
- })
3380
- }(t), t.parentNode, t, e)
3381
- })
3382
- }
3383
- }, function (t, e, n) {
3384
- var r = n(2);
3385
- t.exports = function (t, e) {
3386
- var i = new r;
3387
- return Promise.all([n.e(0), n.e(7)]).then(function (r) {
3388
- var o;
3389
- try {
3390
- o = n(91), i.resolve(new o(t, e))
3391
- } catch (t) {
3392
- i.reject(t)
3393
- }
3394
- }.bind(null, n)).catch(function (t) {
3395
- i.reject(t)
3396
- }), i.promise
3397
- }
3398
- }, function (t, e, n) {
3399
- var r = n(2);
3400
- t.exports = function (t, e) {
3401
- var i = new r;
3402
- return Promise.all([n.e(0), n.e(7)]).then(function (r) {
3403
- var o;
3404
- try {
3405
- o = n(92), i.resolve(new o(t, e))
3406
- } catch (t) {
3407
- i.reject(t)
3408
- }
3409
- }.bind(null, n)).catch(function (t) {
3410
- i.reject(t)
3411
- }), i.promise
3412
- }
3413
- }, function (t, e, n) {
3414
- var r = n(10), i = n(0), o = n(13), s = n(14)(), a = n(69), u = n(5),
3415
- c = "a.twitter-share-button, a.twitter-mention-button, a.twitter-hashtag-button",
3416
- d = "twitter-hashtag-button", l = "twitter-mention-button";
3417
- t.exports = function (t) {
3418
- return s(t, c).map(function (t) {
3419
- return a(function (t) {
3420
- var e = o(t), n = {
3421
- screenName: t.getAttribute("data-button-screen-name"),
3422
- text: t.getAttribute("data-text"),
3423
- type: t.getAttribute("data-type"),
3424
- size: t.getAttribute("data-size"),
3425
- url: t.getAttribute("data-url"),
3426
- hashtags: t.getAttribute("data-hashtags"),
3427
- via: t.getAttribute("data-via"),
3428
- buttonHashtag: t.getAttribute("data-button-hashtag")
3429
- };
3430
- return i.forIn(n, function (t, n) {
3431
- var r = e[t];
3432
- e[t] = u.hasValue(r) ? r : n
3433
- }), e.screenName = e.screenName || e.screen_name, e.buttonHashtag = e.buttonHashtag || e.button_hashtag || e.hashtag, r.present(t, d) && (e.type = "hashtag"), r.present(t, l) && (e.type = "mention"), e
3434
- }(t), t.parentNode, t)
3435
- })
3436
- }
3437
- }, function (t, e, n) {
3438
- var r = n(2);
3439
- t.exports = function (t, e) {
3440
- var i = new r;
3441
- return n.e(3).then(function (r) {
3442
- var o;
3443
- try {
3444
- o = n(93), i.resolve(new o(t, e))
3445
- } catch (t) {
3446
- i.reject(t)
3447
- }
3448
- }.bind(null, n)).catch(function (t) {
3449
- i.reject(t)
3450
- }), i.promise
3451
- }
3452
- }, function (t, e, n) {
3453
- var r = n(0);
3454
- t.exports = r.aug({}, n(155), n(156), n(157), n(158), n(159), n(160), n(161))
3455
- }, function (t, e, n) {
3456
- var r = n(60), i = n(17)(["userId"], {}, r);
3457
- t.exports = {createDMButton: i}
3458
- }, function (t, e, n) {
3459
- var r = n(63), i = n(17)(["screenName"], {}, r);
3460
- t.exports = {createFollowButton: i}
3461
- }, function (t, e, n) {
3462
- var r = n(64), i = n(17)(["momentId"], {}, r);
3463
- t.exports = {createMoment: i}
3464
- }, function (t, e, n) {
3465
- var r = n(65), i = n(17)(["username"], {}, r);
3466
- t.exports = {createPeriscopeOnAirButton: i}
3467
- }, function (t, e, n) {
3468
- var r = n(8), i = n(12), o = n(3), s = n(0), a = n(5), u = n(66), c = n(67),
3469
- d = n(17)([], {}, c), l = n(6),
3470
- f = "Embedded grids have been deprecated. Please use twttr.widgets.createTimeline instead. More info: https://twittercommunity.com/t/update-on-the-embedded-grid-display-type/119564.",
3471
- h = {
3472
- createTimeline: p, createGridFromCollection: function (t) {
3473
- var e = s.toRealArray(arguments).slice(1), n = {sourceType: "collection", id: t};
3474
- return e.unshift(n), i.publicLog(f), p.apply(this, e)
3475
- }
3476
- };
3477
-
3478
- function p(t) {
3479
- var e, n = s.toRealArray(arguments).slice(1);
3480
- return a.isString(t) || a.isNumber(t) ? l.reject("Embedded timelines with widget settings have been deprecated. See https://twittercommunity.com/t/deprecating-widget-settings/102295.") : s.isObject(t) ? (t = t || {}, n.forEach(function (t) {
3481
- s.isType("object", t) && function (t) {
3482
- t.ariaLive = t.ariaPolite
3483
- }(e = t)
3484
- }), e || (e = {}, n.push(e)), t.lang = e.lang, t.tweetLimit = e.tweetLimit, t.showReplies = e.showReplies, e.dataSource = u(t), d.apply(this, n)) : l.reject("data source must be an object.")
3485
- }
3486
-
3487
- o.isTwitterURL(r.href) && (h.createTimelinePreview = function (t, e, n) {
3488
- var r = {previewParams: t, useLegacyDefaults: !0, isPreviewTimeline: !0};
3489
- return r.dataSource = u(r), d(e, r, n)
3490
- }), t.exports = h
3491
- }, function (t, e, n) {
3492
- var r, i = n(0), o = n(68), s = n(17), a = (r = s(["tweetId"], {}, o), function () {
3493
- return i.toRealArray(arguments).slice(1).forEach(function (t) {
3494
- i.isType("object", t) && (t.hideCard = "none" == t.cards || "hidden" == t.cards, t.hideThread = "none" == t.conversation || "hidden" == t.conversation)
3495
- }), r.apply(this, arguments)
3496
- });
3497
- t.exports = {createTweet: a, createTweetEmbed: a, createVideo: a}
3498
- }, function (t, e, n) {
3499
- var r = n(0), i = n(69), o = n(17), s = o(["url"], {type: "share"}, i),
3500
- a = o(["buttonHashtag"], {type: "hashtag"}, i), u = o(["screenName"], {type: "mention"}, i);
3501
-
3502
- function c(t) {
3503
- return function () {
3504
- return r.toRealArray(arguments).slice(1).forEach(function (t) {
3505
- r.isType("object", t) && (t.screenName = t.screenName || t.screen_name, t.buttonHashtag = t.buttonHashtag || t.button_hashtag || t.hashtag)
3506
- }), t.apply(this, arguments)
3507
- }
3508
- }
3509
-
3510
- t.exports = {createShareButton: c(s), createHashtagButton: c(a), createMentionButton: c(u)}
3511
- }, function (t, e, n) {
3512
- var r, i, o, s = n(4), a = n(1), u = 0, c = [], d = s.createElement("a");
3513
-
3514
- function l() {
3515
- var t, e;
3516
- for (u = 1, t = 0, e = c.length; t < e; t++) c[t]()
3517
- }
3518
-
3519
- /^loade|c/.test(s.readyState) && (u = 1), s.addEventListener && s.addEventListener("DOMContentLoaded", i = function () {
3520
- s.removeEventListener("DOMContentLoaded", i, !1), l()
3521
- }, !1), d.doScroll && s.attachEvent("onreadystatechange", r = function () {
3522
- /^c/.test(s.readyState) && (s.detachEvent("onreadystatechange", r), l())
3523
- }), o = d.doScroll ? function (t) {
3524
- a.self != a.top ? u ? t() : c.push(t) : function () {
3525
- try {
3526
- d.doScroll("left")
3527
- } catch (e) {
3528
- return setTimeout(function () {
3529
- o(t)
3530
- }, 50)
3531
- }
3532
- t()
3533
- }()
3534
- } : function (t) {
3535
- u ? t() : c.push(t)
3536
- }, t.exports = o
3537
- }, function (t, e, n) {
3538
- var r = n(44), i = n(9);
3539
- t.exports = function () {
3540
- i.set("buildVersion", r.version)
3541
- }
3542
- }, function (t, e, n) {
3543
- n(165), n(85), n(168)
3544
- }, function (t, e, n) {
3545
- var r = n(166), i = n(29), o = n(70), s = new r, a = function (t) {
3546
- t.widgets && 1 === t.widgets.length && (s.start(), i.emitter.unbind(i.ALL_WIDGETS_RENDER_START, a))
3547
- }, u = function (t) {
3548
- var e;
3549
- t.widgets && 1 === t.widgets.length && (e = t.widgets[0], s.end(), e.dataset && e.dataset.tweetId && o({
3550
- duration: s.duration(),
3551
- namespace: {element: "tweet", action: "render"},
3552
- widgetIds: [e.dataset.tweetId]
3553
- })), i.emitter.unbind(i.ALL_WIDGETS_RENDER_END, u)
3554
- };
3555
- i.emitter.bind(i.ALL_WIDGETS_RENDER_START, a), i.emitter.bind(i.ALL_WIDGETS_RENDER_END, u)
3556
- }, function (t, e, n) {
3557
- var r = n(167);
3558
-
3559
- function i() {
3560
- }
3561
-
3562
- i.prototype.start = function () {
3563
- this._startTime = r()
3564
- }, i.prototype.end = function () {
3565
- this._duration = r() - this._startTime
3566
- }, i.prototype.duration = function () {
3567
- return this._duration
3568
- }, t.exports = i
3569
- }, function (t, e, n) {
3570
- var r = n(1);
3571
- t.exports = function () {
3572
- return r.performance && r.performance.now ? r.performance.now() : Date.now()
3573
- }
3574
- }, function (t, e, n) {
3575
- var r = n(29), i = n(70), o = n(169), s = n(3), a = n(1), u = n(0), c = n(21), d = n(62);
3576
-
3577
- function l(t) {
3578
- return t.performance.getEntriesByType("resource").filter(function (t) {
3579
- return s.isTwimgURL(t.name) || s.isTwitterURL(t.name)
3580
- }).reduce(function (t, e) {
3581
- return t[e.name] = e.duration, t
3582
- }, {})
3583
- }
3584
-
3585
- r.emitter.bind(r.ALL_WIDGETS_AND_IMAGES_LOADED, function (t) {
3586
- var e, n, r = [];
3587
- c.hasPerformanceInformation() && (e = l(a), d.isSupported() || (r = function (t) {
3588
- return t.reduce(function (t, e) {
3589
- return u.aug(t, l(e.contentDocument.defaultView))
3590
- }, {})
3591
- }(t)), n = u.aug({}, e, r), Object.keys(o).forEach(function (t) {
3592
- !function (t, e, n) {
3593
- var r = Object.keys(t).reduce(function (e, r) {
3594
- return n(r) ? e + t[r] : e
3595
- }, 0);
3596
- i({duration: r, namespace: {element: e, action: "resource"}})
3597
- }(n, t, o[t])
3598
- }))
3599
- })
3600
- }, function (t, e, n) {
3601
- var r = n(3), i = {
3602
- all: function () {
3603
- return !0
3604
- }, image: function (t) {
3605
- return r.isTwimgURL(t)
3606
- }, settings: function (t) {
3607
- return r.isSettingsURL(t)
3608
- }, widget_iframe: function (t) {
3609
- return r.isWidgetIframeURL(t)
3610
- }
3611
- };
3612
- t.exports = i
3613
- }])));
3614
- }
3615
- });
3616
-
3617
-
3618
  //Runs every time new tweets are loaded
3619
  function ctfScripts($ctf) {
3620
  $ctf.addClass('ctf_is_initialized');
 
 
 
 
 
 
3621
  //Loop through each newly loaded tweet
3622
  $ctf.find('.ctf-item.ctf-new').each(function () {
3623
 
@@ -3763,13 +174,6 @@ if(!ctf_js_exists){
3763
  //Change colors of some items to match tweet text
3764
  $ctf.find('.ctf-author-name, .ctf-tweet-date, .ctf-author-screenname, .ctf-twitterlink, .ctf-author-box-link, .ctf-retweet-text, .ctf-quoted-tweet').css('color', $ctf.find('.ctf-tweet-text').css('color'));
3765
 
3766
- //Header profile pic hover
3767
- $ctf.find('.ctf-header .ctf-header-link').hover(function () {
3768
- $ctf.find('.ctf-header .ctf-header-img-hover').fadeIn(200);
3769
- }, function () {
3770
- $ctf.find('.ctf-header .ctf-header-img-hover').stop().fadeOut(600);
3771
- });
3772
-
3773
  $ctf.find('.ctf_more').unbind('click').bind('click', function (e) {
3774
  e.preventDefault();
3775
  $(this).hide().next('.ctf_remaining').show();
@@ -3862,12 +266,198 @@ if(!ctf_js_exists){
3862
  });
3863
 
3864
  $ctf.find('.ctf-author-box-link p:empty').remove();
 
 
 
 
 
 
 
3865
  }); // end .cff each loop
 
 
3866
  }
3867
 
3868
  jQuery(document).ready(function($) {
3869
  ctf_init();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3870
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3871
  })(jQuery);
3872
 
3873
 
4
  (function ($) {
5
 
6
  window.ctf_init = function() {
7
+ window.ctfObject = {};
8
+ if ($('.ctf').length
9
+ && typeof $('.ctf').first().attr('ctf-gdpr') !== 'undefined') {
10
+ window.ctfObject.consentGiven = false;
11
+ window.ctfObject.gdpr = true;
12
+ } else {
13
+ window.ctfObject.consentGiven = true;
14
+ window.ctfObject.gdpr = false;
15
+ }
16
 
17
+ if ($('.ctf').length <= $('.ctf_is_initialized').length) {
18
+ return;
19
+ }
20
+ if (window.ctfObject.consentGiven) {
21
+ ctfMaybeAddIntents();
22
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  //Runs every time new tweets are loaded
24
  function ctfScripts($ctf) {
25
  $ctf.addClass('ctf_is_initialized');
26
+
27
+ if (ctfCheckConsent()) {
28
+ ctfRemovePrivacyFeatures($ctf);
29
+ } else {
30
+ ctfApplyPrivacyFeatures($ctf);
31
+ }
32
  //Loop through each newly loaded tweet
33
  $ctf.find('.ctf-item.ctf-new').each(function () {
34
 
174
  //Change colors of some items to match tweet text
175
  $ctf.find('.ctf-author-name, .ctf-tweet-date, .ctf-author-screenname, .ctf-twitterlink, .ctf-author-box-link, .ctf-retweet-text, .ctf-quoted-tweet').css('color', $ctf.find('.ctf-tweet-text').css('color'));
176
 
 
 
 
 
 
 
 
177
  $ctf.find('.ctf_more').unbind('click').bind('click', function (e) {
178
  e.preventDefault();
179
  $(this).hide().next('.ctf_remaining').show();
266
  });
267
 
268
  $ctf.find('.ctf-author-box-link p:empty').remove();
269
+ setTimeout(function () {
270
+ if (ctfCheckConsent()) {
271
+ ctfRemovePrivacyFeatures($ctf);
272
+ } else {
273
+ ctfApplyPrivacyFeatures($ctf);
274
+ }
275
+ }, 500);
276
  }); // end .cff each loop
277
+
278
+
279
  }
280
 
281
  jQuery(document).ready(function($) {
282
  ctf_init();
283
+
284
+ // Cookie Notice by dFactory
285
+ $('#cookie-notice a').click(function() {
286
+ setTimeout(function() {
287
+ ctfAterConsentToggled();
288
+ },1000);
289
+ });
290
+
291
+ // Cookie Notice by dFactory
292
+ $('#cookie-law-info-bar a').click(function() {
293
+ setTimeout(function() {
294
+ ctfAterConsentToggled();
295
+ },1000);
296
+ });
297
+
298
+ // GDPR Cookie Consent by WebToffee
299
+ $('.cli-user-preference-checkbox').click(function(){
300
+ ctfAterConsentToggled();
301
+ });
302
+
303
+ // Cookiebot
304
+ $(window).on('CookiebotOnAccept', function (event) {
305
+ ctfAterConsentToggled();
306
+ });
307
+
308
+ // Complianz by Really Simple Plugins
309
+ $(document).on('cmplzAcceptAll', function (event) {
310
+ ctfAterConsentToggled();
311
+ });
312
+
313
+ // Complianz by Really Simple Plugins
314
+ $(document).on('cmplzRevoke', function (event) {
315
+ ctfAterConsentToggled();
316
+ });
317
+
318
+ // Borlabs Cookie by Borlabs
319
+ $(document).on('borlabs-cookie-consent-saved', function (event) {
320
+ ctfAterConsentToggled();
321
+ });
322
  });
323
+
324
+ function ctfCheckConsent() {
325
+ if (window.ctfObject.consentGiven || !window.ctfObject.gdpr) {
326
+ return true;
327
+ }
328
+ if (typeof CLI_Cookie !== "undefined") { // GDPR Cookie Consent by WebToffee
329
+ if (CLI_Cookie.read(CLI_ACCEPT_COOKIE_NAME) !== null) {
330
+ window.ctfObject.consentGiven = CLI_Cookie.read('cookielawinfo-checkbox-non-necessary') === 'yes';
331
+ }
332
+
333
+ } else if (typeof window.cnArgs !== "undefined") { // Cookie Notice by dFactory
334
+ var value = "; " + document.cookie,
335
+ parts = value.split( '; cookie_notice_accepted=' );
336
+
337
+ if ( parts.length === 2 ) {
338
+ var val = parts.pop().split( ';' ).shift();
339
+
340
+ window.ctfObject.consentGiven = (val === 'true');
341
+ }
342
+ } else if (typeof window.cookieconsent !== 'undefined') { // Complianz by Really Simple Plugins
343
+ window.ctfObject.consentGiven = ctfCmplzGetCookie('complianz_consent_status') === 'allow';
344
+ } else if (typeof window.Cookiebot !== "undefined") { // Cookiebot by Cybot A/S
345
+ window.ctfObject.consentGiven = Cookiebot.consented;
346
+ } else if (typeof window.BorlabsCookie !== 'undefined') { // Borlabs Cookie by Borlabs
347
+ window.ctfObject.consentGiven = window.BorlabsCookie.checkCookieConsent('twitter');
348
+ }
349
+
350
+ var evt = jQuery.Event('ctfcheckconsent');
351
+ evt.feed = this;
352
+ jQuery(window).trigger(evt);
353
+
354
+ return window.ctfObject.consentGiven; // GDPR not enabled
355
+ }
356
+
357
+ function ctfApplyPrivacyFeatures($ctf) {
358
+ if (!$ctf.find('.ctf-hide-avatar').length || $ctf.find('.ctf-hide-avatar.ctf-no-consent').length) {
359
+ $ctf.find('.ctf-item').addClass('ctf-hide-avatar ctf-no-consent');
360
+ }
361
+ if ($('.ctf-header-img span').length) {
362
+ $('.ctf-header-img').addClass('ctf-no-consent');
363
+ }
364
+ }
365
+
366
+ function ctfRemovePrivacyFeatures($ctf) {
367
+ ctfMaybeAddIntents();
368
+ $ctf.find('.ctf-item.ctf-no-consent').removeClass('ctf-hide-avatar');
369
+ $ctf.find('.ctf-author-avatar').each(function() {
370
+ $(this).find('span').replaceWith('<img src="'+$(this).find('span').attr('data-avatar')+'" alt="'+$(this).find('span').attr('data-alt')+'" width="48" height="48">');
371
+ });
372
+ $ctf.find('.ctf-header-img').each(function() {
373
+ $(this).find('span').replaceWith('<img src="'+$(this).find('span').attr('data-avatar')+'" alt="'+$(this).find('span').attr('data-alt')+'" width="48" height="48">');
374
+ });
375
+ $ctf.find('.ctf-no-consent').removeClass('ctf-no-consent');
376
+ //Header profile pic hover
377
+ $ctf.find('.ctf-header .ctf-header-link').hover(function () {
378
+ $ctf.find('.ctf-header .ctf-header-img-hover').fadeIn(200);
379
+ }, function () {
380
+ $ctf.find('.ctf-header .ctf-header-img-hover').stop().fadeOut(600);
381
+ });
382
+ }
383
+
384
+ function ctfAterConsentToggled() {
385
+ if (ctfCheckConsent()) {
386
+ $('.ctf').each(function () {
387
+ ctfRemovePrivacyFeatures($(this));
388
+ });
389
+ }
390
+ }
391
+
392
+ function ctfMaybeAddIntents() {
393
+ if (typeof window.ctfObject.intentsIncluded === 'undefined') {
394
+ window.ctfObject.intentsIncluded = false;
395
+ }
396
+
397
+ $('.ctf').each(function () {
398
+ if (!window.ctfObject.intentsIncluded && typeof $(this).attr('data-ctfintents') !== 'undefined') {
399
+ window.ctfObject.intentsIncluded = true;
400
+ (function() {
401
+ if (window.__twitterIntentHandler) return;
402
+ var intentRegex = /twitter\.com\/intent\/(\w+)/,
403
+ windowOptions = 'scrollbars=yes,resizable=yes,toolbar=no,location=yes',
404
+ width = 550,
405
+ height = 420,
406
+ winHeight = screen.height,
407
+ winWidth = screen.width;
408
+
409
+ function handleIntent(e) {
410
+ e = e || window.event;
411
+ var target = e.target || e.srcElement,
412
+ m, left, top;
413
+
414
+ while (target && target.nodeName.toLowerCase() !== 'a') {
415
+ target = target.parentNode;
416
+ }
417
+
418
+ if (target && target.nodeName.toLowerCase() === 'a' && target.href) {
419
+ m = target.href.match(intentRegex);
420
+ if (m) {
421
+ left = Math.round((winWidth / 2) - (width / 2));
422
+ top = 0;
423
+
424
+ if (winHeight > height) {
425
+ top = Math.round((winHeight / 2) - (height / 2));
426
+ }
427
+
428
+ window.open(target.href, 'intent', windowOptions + ',width=' + width +
429
+ ',height=' + height + ',left=' + left + ',top=' + top);
430
+ e.returnValue = false;
431
+ e.preventDefault && e.preventDefault();
432
+ }
433
+ }
434
+ }
435
+
436
+ if (document.addEventListener) {
437
+ document.addEventListener('click', handleIntent, false);
438
+ } else if (document.attachEvent) {
439
+ document.attachEvent('onclick', handleIntent);
440
+ }
441
+ window.__twitterIntentHandler = true;
442
+ }());
443
+ }
444
+ });
445
+ }
446
+
447
+ function ctfCmplzGetCookie(cname) {
448
+ var name = cname + "="; //Create the cookie name variable with cookie name concatenate with = sign
449
+ var cArr = window.document.cookie.split(';'); //Create cookie array by split the cookie by ';'
450
+
451
+ //Loop through the cookies and return the cookie value if it find the cookie name
452
+ for (var i = 0; i < cArr.length; i++) {
453
+ var c = cArr[i].trim();
454
+ //If the name is the cookie string at position 0, we found the cookie and return the cookie value
455
+ if (c.indexOf(name) == 0)
456
+ return c.substring(name.length, c.length);
457
+ }
458
+
459
+ return "";
460
+ }
461
  })(jQuery);
462
 
463
 
js/ctf-scripts.min.js CHANGED
@@ -1 +1 @@
1
- var ctf_js_exists=void 0!==ctf_js_exists;ctf_js_exists||function(t){window.ctf_init=function(){if(!(t(".ctf").length<=t(".ctf_is_initialized").length)){var e=!1;t(".ctf").each(function(){t(this).hasClass("ctf_is_initialized")||e||void 0===t(this).attr("data-ctfintents")||(e=!0,Function&&Function.prototype&&Function.prototype.bind&&(/MSIE ([6789]|10)/.test(navigator.userAgent)||(window.__twttr&&window.__twttr.widgets&&window.__twttr.widgets.loaded&&window.twttr.widgets.load&&window.twttr.widgets.load(),window.__twttr&&window.__twttr.widgets&&window.__twttr.widgets.init||function(t){function e(e){for(var n,i,o=e[0],u=e[1],a=0,c=[];a<o.length;a++)i=o[a],r[i]&&c.push(r[i][0]),r[i]=0;for(n in u)Object.prototype.hasOwnProperty.call(u,n)&&(t[n]=u[n]);for(s&&s(e);c.length;)c.shift()()}var n={},r={1:0};function i(e){if(n[e])return n[e].exports;var r=n[e]={i:e,l:!1,exports:{}};return t[e].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.e=function(t){var e=[],n=r[t];if(0!==n)if(n)e.push(n[2]);else{var o=new Promise(function(e,i){n=r[t]=[e,i]});e.push(n[2]=o);var u,a=document.getElementsByTagName("head")[0],s=document.createElement("script");s.charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.src=function(t){return i.p+"js/"+({0:"moment~timeline~tweet",2:"dm_button",3:"button",4:"moment",5:"periscope_on_air",6:"timeline",7:"tweet"}[t]||t)+"."+{0:"ec04a6cb5ba879d0e0db41f211639fdf",2:"6542a7407a2eccac51f5c5e0fac5bb80",3:"d941c9a422e2e3faf474b82a1f39e936",4:"0a3cc02317b85399478995c763a1296c",5:"d26526abe761c4d8d8d71cf0ec565649",6:"0a7b4db67eacd23e35c5ce02e6ea3470",7:"b2d749028be81f16d9cb4994d9692feb"}[t]+".js"}(t),u=function(e){s.onerror=s.onload=null,clearTimeout(c);var n=r[t];if(0!==n){if(n){var i=e&&("load"===e.type?"missing":e.type),o=e&&e.target&&e.target.src,u=new Error("Loading chunk "+t+" failed.\n("+i+": "+o+")");u.type=i,u.request=o,n[1](u)}r[t]=void 0}};var c=setTimeout(function(){u({type:"timeout",target:s})},12e4);s.onerror=s.onload=u,a.appendChild(s)}return Promise.all(e)},i.m=t,i.c=n,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)i.d(n,r,function(e){return t[e]}.bind(null,r));return n},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="https://platform.twitter.com/",i.oe=function(t){throw console.error(t),t};var o=window.__twttrll=window.__twttrll||[],u=o.push.bind(o);o.push=e,o=o.slice();for(var a=0;a<o.length;a++)e(o[a]);var s=u;i(i.s=94)}([function(t,e,n){var r=n(1);function i(t,e){var n;for(n in t)t.hasOwnProperty&&!t.hasOwnProperty(n)||e(n,t[n]);return t}function o(t){return{}.toString.call(t).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}function u(t){return t===Object(t)}function a(t){var e;if(!u(t))return!1;if(Object.keys)return!Object.keys(t).length;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}function s(t){return t?Array.prototype.slice.call(t):[]}t.exports={aug:function(t){return s(arguments).slice(1).forEach(function(e){i(e,function(e,n){t[e]=n})}),t},async:function(t,e){r.setTimeout(function(){t.call(e||null)},0)},compact:function t(e){return i(e,function(n,r){u(r)&&(t(r),a(r)&&delete e[n]),null!=r&&""!==r||delete e[n]}),e},contains:function(t,e){return!(!t||!t.indexOf)&&t.indexOf(e)>-1},forIn:i,isObject:u,isEmptyObject:a,toType:o,isType:function(t,e){return t==o(e)},toRealArray:s}},function(t,e){t.exports=window},function(t,e,n){var r=n(6);t.exports=function(){var t=this;this.promise=new r(function(e,n){t.resolve=e,t.reject=n})}},function(t,e,n){var r=n(11),i=/(?:^|(?:https?:)?\/\/(?:www\.)?twitter\.com(?::\d+)?(?:\/intent\/(?:follow|user)\/?\?screen_name=|(?:\/#!)?\/))@?([\w]+)(?:\?|&|$)/i,o=/(?:^|(?:https?:)?\/\/(?:www\.)?twitter\.com(?::\d+)?\/(?:#!\/)?[\w_]+\/status(?:es)?\/)(\d+)/i,u=/^http(s?):\/\/(\w+\.)*twitter\.com([:\/]|$)/i,a=/^http(s?):\/\/pbs\.twimg\.com\//,s=/^#?([^.,<>!\s\/#\-()'"]+)$/,c=/twitter\.com(?::\d{2,4})?\/intent\/(\w+)/,d=/^https?:\/\/(?:www\.)?twitter\.com\/\w+\/timelines\/(\d+)/i,f=/^https?:\/\/(?:www\.)?twitter\.com\/i\/moments\/(\d+)/i,l=/^https?:\/\/(?:www\.)?twitter\.com\/(\w+)\/(?:likes|favorites)/i,h=/^https?:\/\/(?:www\.)?twitter\.com\/(\w+)\/lists\/([\w-%]+)/i,p=/^https?:\/\/(?:www\.)?twitter\.com\/i\/live\/(\d+)/i,m=/^https?:\/\/syndication\.twitter\.com\/settings/i,v=/^https?:\/\/(localhost|platform)\.twitter\.com(?::\d+)?\/widgets\/widget_iframe\.(.+)/i,g=/^https?:\/\/(?:www\.)?twitter\.com\/search\?q=(\w+)/i;function w(t){return"string"==typeof t&&i.test(t)&&RegExp.$1.length<=20}function y(t){if(w(t))return RegExp.$1}function b(t,e){var n=r.decodeURL(t);if(e=e||!1,n.screen_name=y(t),n.screen_name)return r.url("https://twitter.com/intent/"+(e?"follow":"user"),n)}function E(t){return"string"==typeof t&&s.test(t)}function _(t){return"string"==typeof t&&o.test(t)}t.exports={isHashTag:E,hashTag:function(t,e){if(e=void 0===e||e,E(t))return(e?"#":"")+RegExp.$1},isScreenName:w,screenName:y,isStatus:_,status:function(t){return _(t)&&RegExp.$1},intentForProfileURL:b,intentForFollowURL:function(t){return b(t,!0)},isTwitterURL:function(t){return u.test(t)},isTwimgURL:function(t){return a.test(t)},isIntentURL:function(t){return c.test(t)},isSettingsURL:function(t){return m.test(t)},isWidgetIframeURL:function(t){return v.test(t)},isSearchUrl:function(t){return g.test(t)},regexen:{profile:i},momentId:function(t){return f.test(t)&&RegExp.$1},collectionId:function(t){return d.test(t)&&RegExp.$1},intentType:function(t){return c.test(t)&&RegExp.$1},likesScreenName:function(t){return l.test(t)&&RegExp.$1},listScreenNameAndSlug:function(t){var e,n,r;if(h.test(t)){e=RegExp.$1,n=RegExp.$2;try{r=decodeURIComponent(n)}catch(t){}return{ownerScreenName:e,slug:r||n}}return!1},eventId:function(t){return p.test(t)&&RegExp.$1}}},function(t,e){t.exports=document},function(t,e,n){var r=n(0),i=[!0,1,"1","on","ON","true","TRUE","yes","YES"],o=[!1,0,"0","off","OFF","false","FALSE","no","NO"];function u(t){return null!=t&&""!==t}function a(t){return c(t)&&t%1==0}function s(t){return c(t)&&!a(t)}function c(t){return u(t)&&!isNaN(t)}function d(t){return r.contains(o,t)}function f(t){return r.contains(i,t)}t.exports={hasValue:u,isInt:a,isFloat:s,isNumber:c,isString:function(t){return"string"===r.toType(t)},isArray:function(t){return u(t)&&"array"==r.toType(t)},isTruthValue:f,isFalseValue:d,asInt:function(t){if(a(t))return parseInt(t,10)},asFloat:function(t){if(s(t))return t},asNumber:function(t){if(c(t))return t},asBoolean:function(t){return!(!u(t)||!f(t)&&(d(t)||!t))}}},function(t,e,n){var r=n(1),i=n(21),o=n(48);i.hasPromiseSupport()||(r.Promise=o),t.exports=r.Promise},function(t,e,n){var r=n(0);t.exports=function(t,e){var n=Array.prototype.slice.call(arguments,2);return function(){var i=r.toRealArray(arguments);return t.apply(e,n.concat(i))}}},function(t,e){t.exports=location},function(t,e,n){var r=n(50);t.exports=new r("__twttr")},function(t,e,n){var r=n(0),i=/\b([\w-_]+)\b/g;function o(t){return new RegExp("\\b"+t+"\\b","g")}function u(t,e){t.classList?t.classList.add(e):o(e).test(t.className)||(t.className+=" "+e)}function a(t,e){t.classList?t.classList.remove(e):t.className=t.className.replace(o(e)," ")}function s(t,e){return t.classList?t.classList.contains(e):r.contains(c(t),e)}function c(t){return r.toRealArray(t.classList?t.classList:t.className.match(i))}t.exports={add:u,remove:a,replace:function(t,e,n){if(t.classList&&s(t,e))return a(t,e),void u(t,n);t.className=t.className.replace(o(e),n)},toggle:function(t,e,n){return void 0===n&&t.classList&&t.classList.toggle?t.classList.toggle(e,n):(n?u(t,e):a(t,e),n)},present:s,list:c}},function(t,e,n){var r=n(5),i=n(0);function o(t){return encodeURIComponent(t).replace(/\+/g,"%2B").replace(/'/g,"%27")}function u(t){return decodeURIComponent(t)}function a(t){var e=[];return i.forIn(t,function(t,n){var u=o(t);i.isType("array",n)||(n=[n]),n.forEach(function(t){r.hasValue(t)&&e.push(u+"="+o(t))})}),e.sort().join("&")}function s(t){var e={};return t?(t.split("&").forEach(function(t){var n=t.split("="),r=u(n[0]),o=u(n[1]);if(2==n.length){if(!i.isType("array",e[r]))return r in e?(e[r]=[e[r]],void e[r].push(o)):void(e[r]=o);e[r].push(o)}}),e):{}}t.exports={url:function(t,e){return a(e).length>0?i.contains(t,"?")?t+"&"+a(e):t+"?"+a(e):t},decodeURL:function(t){var e=t&&t.split("?");return 2==e.length?s(e[1]):{}},decode:s,encode:a,encodePart:o,decodePart:u}},function(t,e,n){var r=n(8),i=n(1),o=n(0),u={},a=o.contains(r.href,"tw_debug=true");function s(){return i.performance&&+i.performance.now()||+new Date}function c(t,e){if(i.console&&i.console[t])switch(e.length){case 1:i.console[t](e[0]);break;case 2:i.console[t](e[0],e[1]);break;case 3:i.console[t](e[0],e[1],e[2]);break;case 4:i.console[t](e[0],e[1],e[2],e[3]);break;case 5:i.console[t](e[0],e[1],e[2],e[3],e[4]);break;default:0!==e.length&&i.console.warn&&i.console.warn("too many params passed to logger."+t)}}t.exports={devError:function(){},devInfo:function(){},devObject:function(t,e){},publicError:function(){c("error",o.toRealArray(arguments))},publicLog:function(){c("info",o.toRealArray(arguments))},time:function(t){a&&(u[t]=s())},timeEnd:function(t){a&&u[t]&&(s(),u[t])}}},function(t,e,n){var r=n(20),i=n(5),o=n(11),u=n(0),a=n(119);t.exports=function(t){var e=t.href&&t.href.split("?")[1],n=e?o.decode(e):{},s={lang:a(t),width:t.getAttribute("data-width")||t.getAttribute("width"),height:t.getAttribute("data-height")||t.getAttribute("height"),related:t.getAttribute("data-related"),partner:t.getAttribute("data-partner")};return i.asBoolean(t.getAttribute("data-dnt"))&&r.setOn(),u.forIn(s,function(t,e){var r=n[t];n[t]=i.hasValue(r)?r:e}),u.compact(n)}},function(t,e,n){var r=n(81),i=n(23);t.exports=function(){var t="data-twitter-extracted-"+i.generate();return function(e,n){return r(e,n).filter(function(e){return!e.hasAttribute(t)}).map(function(e){return e.setAttribute(t,"true"),e})}}},function(t,e){function n(t,e,n,r,i,o,u){this.factory=t,this.Sandbox=e,this.srcEl=o,this.targetEl=i,this.parameters=r,this.className=n,this.options=u}n.prototype.destroy=function(){this.srcEl=this.targetEl=null},t.exports=n},function(t,e){t.exports={DM_BUTTON:"twitter-dm-button",FOLLOW_BUTTON:"twitter-follow-button",HASHTAG_BUTTON:"twitter-hashtag-button",MENTION_BUTTON:"twitter-mention-button",MOMENT:"twitter-moment",PERISCOPE:"periscope-on-air",SHARE_BUTTON:"twitter-share-button",TIMELINE:"twitter-timeline",TWEET:"twitter-tweet"}},function(t,e,n){var r=n(6),i=n(20),o=n(53),u=n(52),a=n(35),s=n(5),c=n(0);t.exports=function(t,e,n){var d;return e=e||{},d="ƒ("+(t=t||[]).join(", ")+", target, [options]);",function(){var f,l,h,p,m=Array.prototype.slice.apply(arguments,[0,t.length]),v=Array.prototype.slice.apply(arguments,[t.length]);return v.forEach(function(t){t&&(t.nodeType!==Node.ELEMENT_NODE?c.isType("function",t)?f=t:c.isType("object",t)&&(l=t):h=t)}),m.length!==t.length||0===v.length?(f&&c.async(function(){f(!1)}),r.reject(new Error("Not enough parameters. Expected: "+d))):h?(l=c.aug({},l||{},e),t.forEach(function(t){l[t]=m.shift()}),s.asBoolean(l.dnt)&&i.setOn(),p=a.getExperiments().then(function(t){return o.addWidget(n(l,h,void 0,u.isHorizonTweetEnabled(t)))}),f&&p.then(f,function(){f(!1)}),p):(f&&c.async(function(){f(!1)}),r.reject(new Error("No target element specified. Expected: "+d)))}}},function(t,e,n){var r=n(102),i=n(2),o=n(0);function u(t,e){return function(){try{e.resolve(t.call(this))}catch(t){e.reject(t)}}}t.exports={sync:function(t,e){t.call(e)},read:function(t,e){var n=new i;return r.read(u(t,n),e),n.promise},write:function(t,e){var n=new i;return r.write(u(t,n),e),n.promise},defer:function(t,e,n){var a=new i;return o.isType("function",t)&&(n=e,e=t,t=1),r.defer(t,u(e,a),n),a.promise}}},function(t,e,n){var r=n(9),i=["https://syndication.twitter.com","https://cdn.syndication.twimg.com","https://localhost.twitter.com:8444"],o=["https://syndication.twitter.com","https://localhost.twitter.com:8445"],u=["https://platform.twitter.com/embed/index.html","https://localhost.twitter.com:8080",/https:\/\/ton\.smf1\.twitter\.com\/syndication-internal\/embed-iframe\/[0-9A-Za-z_-]+\/app\/index\.html/],a=function(t,e){return t.some(function(t){return t instanceof RegExp?t.test(e):t===e})},s=function(){var t=r.get("backendHost");return t&&a(i,t)?t:"https://cdn.syndication.twimg.com"},c=function(){var t=r.get("settingsSvcHost");return t&&a(o,t)?t:"https://syndication.twitter.com"};function d(t,e){var n=[t];return e.forEach(function(t){n.push(function(t){var e=(t||"").toString(),n="/"===e.slice(0,1)?1:0,r="/"===e.slice(-1)?-1:void 0;return e.slice(n,r)}(t))}),n.join("/")}t.exports={cookieConsent:function(t){var e=t||[];return e.unshift("cookie/consent"),d(c(),e)},embedIframe:function(){return(t=r.get("embedIframeURL"))&&a(u,t)?t:"https://platform.twitter.com/embed/index.html";var t},eventVideo:function(t){var e=t||[];return e.unshift("video/event"),d(s(),e)},grid:function(t){var e=t||[];return e.unshift("grid/collection"),d(s(),e)},moment:function(t){var e=t||[];return e.unshift("moments"),d(s(),e)},settings:function(t){var e=t||[];return e.unshift("settings"),d(c(),e)},timeline:function(t){var e=t||[];return e.unshift("timeline"),d(s(),e)},tweetBatch:function(t){var e=t||[];return e.unshift("tweets.json"),d(s(),e)},video:function(t){var e=t||[];return e.unshift("widgets/video"),d(s(),e)}}},function(t,e,n){var r=n(4),i=n(8),o=n(38),u=n(79),a=n(5),s=n(33),c=!1,d=/https?:\/\/([^\/]+).*/i;t.exports={setOn:function(){c=!0},enabled:function(t,e){return!!(c||a.asBoolean(s.val("dnt"))||u.isUrlSensitive(e||i.host)||o.isFramed()&&u.isUrlSensitive(o.rootDocumentLocation())||(t=d.test(t||r.referrer)&&RegExp.$1)&&u.isUrlSensitive(t))}}},function(t,e,n){var r=n(4),i=n(12),o=n(95),u=n(1),a=n(0),s=o.userAgent;function c(t){return/(Trident|MSIE|Edge[\/ ]?\d)/.test(t=t||s)}t.exports={retina:function(t){return(t=t||u).devicePixelRatio?t.devicePixelRatio>=1.5:!!t.matchMedia&&t.matchMedia("only screen and (min-resolution: 144dpi)").matches},anyIE:c,ie9:function(t){return/MSIE 9/.test(t=t||s)},ie10:function(t){return/MSIE 10/.test(t=t||s)},ios:function(t){return/(iPad|iPhone|iPod)/.test(t=t||s)},android:function(t){return/^Mozilla\/5\.0 \(Linux; (U; )?Android/.test(t=t||s)},canPostMessage:function(t,e){return e=e||s,(t=t||u).postMessage&&!(c(e)&&t.opener)},touch:function(t,e,n){return e=e||o,n=n||s,"ontouchstart"in(t=t||u)||/Opera Mini/.test(n)||e.msMaxTouchPoints>0},cssTransitions:function(){var t=r.body.style;return void 0!==t.transition||void 0!==t.webkitTransition||void 0!==t.mozTransition||void 0!==t.oTransition||void 0!==t.msTransition},hasPromiseSupport:function(){return!!(u.Promise&&u.Promise.resolve&&u.Promise.reject&&u.Promise.all&&u.Promise.race&&(new u.Promise(function(e){t=e}),a.isType("function",t)));var t},hasIntersectionObserverSupport:function(){return!!u.IntersectionObserver},hasPerformanceInformation:function(){return u.performance&&u.performance.getEntriesByType},hasLocalStorageSupport:function(){try{return u.localStorage.setItem("local_storage_support_test","true"),void 0!==u.localStorage}catch(t){return i.devError("window.localStorage is not supported:",t),!1}}}},function(t,e,n){var r=n(6),i=n(2);function o(t,e){return t.then(e,e)}function u(t){return t instanceof r}t.exports={always:o,allResolved:function(t){var e;return void 0===t?r.reject(new Error("undefined is not an object")):Array.isArray(t)?(e=t.length)?new r(function(n,r){var i=0,o=[];function a(){(i+=1)===e&&(0===o.length?r():n(o))}function s(t){o.push(t),a()}t.forEach(function(t){u(t)?t.then(s,a):s(t)})}):r.resolve([]):r.reject(new Error("Type error"))},some:function(t){var e;return e=(t=t||[]).length,t=t.filter(u),e?e!==t.length?r.reject("non-Promise passed to .some"):new r(function(e,n){var r=0;function i(){(r+=1)===t.length&&n()}t.forEach(function(t){t.then(e,i)})}):r.reject("no promises passed to .some")},isPromise:u,allSettled:function(t){function e(){}return r.all((t||[]).map(function(t){return o(t,e)}))},timeout:function(t,e){var n=new i;return setTimeout(function(){n.reject(new Error("Promise timed out"))},e),t.then(function(t){n.resolve(t)},function(t){n.reject(t)}),n.promise}}},function(t,e){var n=0,r=0;t.exports={generate:function(){return"i"+String(+new Date)+Math.floor(1e5*Math.random())+n++},deterministic:function(){return"i"+String(r++)}}},function(t,e,n){var r=n(49),i=n(51),o=n(0);t.exports=o.aug(r.get("events")||{},i.Emitter)},function(t,e,n){var r=n(26),i=n(110);t.exports=r.build([i])},function(t,e,n){var r=n(40),i=n(107),o=n(7);(r=Object.create(r)).build=o(r.build,null,i),t.exports=r},function(t,e,n){var r=n(40),i=n(41),o=n(7);(r=Object.create(r)).build=o(r.build,null,i),t.exports=r},function(t,e,n){var r=n(83),i=n(75),o=n(84),u=n(8),a=n(71),s=n(74),c=n(20),d=n(5),f=n(23),l=n(0);function h(t){if(!t||!t.headers)throw new Error("unexpected response schema");return{html:t.body,config:t.config,pollInterval:1e3*parseInt(t.headers.xPolling,10)||null,maxCursorPosition:t.headers.maxPosition,minCursorPosition:t.headers.minPosition}}function p(t){if(t&&t.headers)throw new Error(t.headers.status);throw t instanceof Error?t:new Error(t)}t.exports=function(t){t.params({instanceId:{required:!0,fallback:f.deterministic},lang:{required:!0,transform:a.matchLanguage,fallback:"en"},tweetLimit:{transform:d.asInt}}),t.defineProperty("endpoint",{get:function(){throw new Error("endpoint not specified")}}),t.defineProperty("pollEndpoint",{get:function(){return this.endpoint}}),t.define("cbId",function(t){var e=t?"_new":"_old";return"tl_"+this.params.instanceId+"_"+this.id+e}),t.define("queryParams",function(){return{lang:this.params.lang,tz:s.getTimezoneOffset(),t:r(),domain:u.host,tweet_limit:this.params.tweetLimit,dnt:c.enabled()}}),t.define("fetch",function(){return i.fetch(this.endpoint,this.queryParams(),o,this.cbId()).then(h,p)}),t.define("poll",function(t,e){var n,r;return n={since_id:(t=t||{}).sinceId,max_id:t.maxId,min_position:t.minPosition,max_position:t.maxPosition},r=l.aug(this.queryParams(),n),i.fetch(this.pollEndpoint,r,o,this.cbId(e)).then(h,p)})}},function(t,e,n){var r=n(51).makeEmitter();t.exports={emitter:r,START:"start",ALL_WIDGETS_RENDER_START:"all_widgets_render_start",ALL_WIDGETS_RENDER_END:"all_widgets_render_end",ALL_WIDGETS_AND_IMAGES_LOADED:"all_widgets_and_images_loaded"}},function(t,e,n){var r=n(4),i=n(0);t.exports=function(t,e,n){var o;if(n=n||r,e=e||{},(t=t||{}).name){try{o=n.createElement('<iframe name="'+t.name+'"></iframe>')}catch(e){(o=n.createElement("iframe")).name=t.name}delete t.name}else o=n.createElement("iframe");return t.id&&(o.id=t.id,delete t.id),o.allowtransparency="true",o.scrolling="no",o.setAttribute("frameBorder",0),o.setAttribute("allowTransparency",!0),i.forIn(t,function(t,e){o.setAttribute(t,e)}),i.forIn(e,function(t,e){o.style[t]=e}),o}},function(t,e,n){var r=n(1).JSON;t.exports={stringify:r.stringify||r.encode,parse:r.parse||r.decode}},function(t,e,n){var r=n(0),i=n(43);t.exports={closest:function t(e,n,o){var u;if(n)return o=o||n&&n.ownerDocument,u=r.isType("function",e)?e:function(t){return function(e){return!!e.tagName&&i(e,t)}}(e),n===o?u(n)?n:void 0:u(n)?n:t(u,n.parentNode,o)}}},function(t,e,n){var r,i=n(4);function o(t){var e,n,o,u=0;for(r={},e=(t=t||i).getElementsByTagName("meta");e[u];u++){if(n=e[u],/^twitter:/.test(n.getAttribute("name")))o=n.getAttribute("name").replace(/^twitter:/,"");else{if(!/^twitter:/.test(n.getAttribute("property")))continue;o=n.getAttribute("property").replace(/^twitter:/,"")}r[o]=n.getAttribute("content")||n.getAttribute("value")}}o(),t.exports={init:o,val:function(t){return r[t]}}},function(t,e,n){var r=n(4),i=n(31),o=n(20),u=n(0),a=n(44),s=n(9),c=n(3),d=n(32),f=a.version,l=s.get("clientEventEndpoint")||"https://syndication.twitter.com/i/jot";function h(t){return u.aug({client:"tfw"},t||{})}function p(t,e,n){return e=e||{},u.aug({},e,{_category_:t,triggered_on:e.triggered_on||+new Date,dnt:o.enabled(n)})}t.exports={extractTermsFromDOM:function t(e,n){var r;return n=n||{},e&&e.nodeType===Node.ELEMENT_NODE?((r=e.getAttribute("data-scribe"))&&r.split(" ").forEach(function(t){var e=t.trim().split(":"),r=e[0],i=e[1];r&&i&&!n[r]&&(n[r]=i)}),t(e.parentNode,n)):n},clickEventElement:function(t){var e=d.closest("[data-expanded-url]",t),n=e&&e.getAttribute("data-expanded-url");return n&&c.isTwitterURL(n)?"twitter_url":"url"},flattenClientEventPayload:function(t,e){return u.aug({},e,{event_namespace:t})},formatGenericEventData:p,formatClientEventData:function(t,e,n){var i=t&&t.widget_origin||r.referrer;return(t=p("tfw_client_event",t,i)).client_version=f,t.format_version=void 0!==n?n:1,e||(t.widget_origin=i),t},formatClientEventNamespace:h,formatTweetAssociation:function(t,e){var n={};return(e=e||{}).association_namespace=h(t),n[1]=e,n},noticeSeen:function(t){return"notice"===t.element&&"seen"===t.action},splitLogEntry:function(t){var e,n,r,i,o;return t.item_ids&&t.item_ids.length>1?(e=Math.floor(t.item_ids.length/2),n=t.item_ids.slice(0,e),r={},i=t.item_ids.slice(e),o={},n.forEach(function(e){r[e]=t.item_details[e]}),i.forEach(function(e){o[e]=t.item_details[e]}),[u.aug({},t,{item_ids:n,item_details:r}),u.aug({},t,{item_ids:i,item_details:o})]):[t]},stringify:function(t){var e,n=Array.prototype.toJSON;return delete Array.prototype.toJSON,e=i.stringify(t),n&&(Array.prototype.toJSON=n),e},AUDIENCE_ENDPOINT:"https://syndication.twitter.com/i/jot/syndication",CLIENT_EVENT_ENDPOINT:l,RUFOUS_REDIRECT:"https://platform.twitter.com/jot.html"}},function(t,e,n){var r=n(113),i=n(116);function o(t){return r.settingsLoaded().then(function(e){return e[t]})}function u(){return o("experiments")}t.exports={shouldObtainCookieConsent:function(){return o("shouldObtainCookieConsent")},getExperiments:u,getExperiment:function(t){return u().then(function(e){if(!e[t])throw new Error("Experiment not found");return e[t]})},getActiveExperimentDataString:function(){return u().then(function(t){var e=Object.keys(t).reduce(function(e,n){var r;return t[n].version&&(r=n.split("_").slice(-1)[0],e.push(r+";"+t[n].bucket)),e},[]);return i(e.join(","))})},getExperimentKeys:function(){return u().then(function(t){return Object.keys(t)})},load:function(){r.load()}}},function(t,e,n){var r=n(10),i={},o=-1,u={};function a(t){return t.getAttribute("data-twitter-event-id")||(t.setAttribute("data-twitter-event-id",++o),o)}function s(t,e,n){var r=0,i=t&&t.length||0;for(r=0;r<i;r++)if(t[r].call(e,n,e),n.ceaseImmediately)return!1}function c(t,e,n){for(var i=n||t.target||t.srcElement,o=r.list(i).map(function(t){return"."+t}).concat(i.tagName),u=0,a=o.length;u<a;u++)if(!1===s(e[o[u]],i,t))return;t.cease||i!==this&&c.call(this,t,e,i.parentElement||i.parentNode)}function d(t){t&&t.preventDefault?t.preventDefault():t.returnValue=!1}function f(t){t&&(t.cease=!0)&&t.stopPropagation?t.stopPropagation():t.cancelBubble=!0}t.exports={stop:function(t){return f(t),d(t),!1},stopPropagation:f,stopImmediatePropagation:function(t){t&&(t.ceaseImmediately=!0,f(t),t.stopImmediatePropagation())},preventDefault:d,delegate:function(t,e,n,r){var o=a(t);i[o]=i[o]||{},i[o][e]||(i[o][e]={},function(t,e,n,r){function i(r){c.call(t,r,n[e])}!function(t,e,n,r){t.id&&(u[t.id]=u[t.id]||[],u[t.id].push({el:t,listener:e,type:n,rootId:r}))}(t,i,e,r),t.addEventListener(e,i,!1)}(t,e,i[o],o)),i[o][e][n]=i[o][e][n]||[],i[o][e][n].push(r)},simulate:function(t,e,n){var r=a(e),o=i[r]&&i[r];c.call(e,{target:n},o[t])},removeDelegatesForWidget:function(t){var e=u[t];e&&(e.forEach(function(t){t.el.removeEventListener(t.type,t.listener,!1),delete i[t.rootId]}),delete u[t])}}},function(t,e,n){var r=n(26),i=n(125);t.exports=r.build([i])},function(t,e,n){var r=n(8),i=n(78),o=n(0),u=i.getCanonicalURL()||r.href,a=u;t.exports={isFramed:function(){return u!==a},rootDocumentLocation:function(t){return t&&o.isType("string",t)&&(u=t),u},currentDocumentLocation:function(){return a}}},function(t,e,n){var r=n(77),i=n(104),o=n(80),u=n(34),a=new(n(112))(function(t){var e,n,a;if(0!==t.length){if(s(t))return c(t);n=(e=r(t,function(t){return u.noticeSeen(t.input.namespace)})).true,a=e.false,n&&n.length>0&&(n=n.slice(0,1),o.canFlushOneItem(n[0])||(n[0].input.data.message=""),c(n)),a&&(s(a)?c:function(t){i.init(),t.forEach(function(t){var e=t.input.namespace,n=t.input.data,r=t.input.offsite,o=t.input.version;i.clientEvent(e,n,r,o)}),i.flush().then(function(){t.forEach(function(t){t.taskDoneDeferred.resolve()})},function(){t.forEach(function(t){t.taskDoneDeferred.reject()})})})(a)}});function s(t){return 1===t.length&&o.canFlushOneItem(t[0])}function c(t){t.forEach(function(t){var e=t.input.namespace,n=t.input.data,r=t.input.offsite,i=t.input.version;o.clientEvent(e,n,r,i),t.taskDoneDeferred.resolve()})}t.exports={scribe:function(t,e,n,r){return a.add({namespace:t,data:e,offsite:n,version:r})},pause:function(){a.pause()},resume:function(){a.resume()}}},function(t,e,n){var r=n(105),i=n(106),o=n(0);t.exports={couple:function(){return o.toRealArray(arguments)},build:function(t,e,n){var o=new t;return(e=i(r(e||[]))).forEach(function(t){t.call(null,o)}),o.build(n)}}},function(t,e,n){var r=n(108),i=n(0),o=n(42);function u(){this.Component=this.factory(),this._adviceArgs=[],this._lastArgs=[]}i.aug(u.prototype,{factory:o,build:function(t){var e=this;return this.Component,i.aug(this.Component.prototype.boundParams,t),this._adviceArgs.concat(this._lastArgs).forEach(function(t){(function(t,e,n){var r=this[e];if(!r)throw new Error(e+" does not exist");this[e]=t(r,n)}).apply(e.Component.prototype,t)}),delete this._lastArgs,delete this._adviceArgs,this.Component},params:function(t){var e=this.Component.prototype.paramConfigs;t=t||{},this.Component.prototype.paramConfigs=i.aug({},t,e)},define:function(t,e){if(t in this.Component.prototype)throw new Error(t+" has previously been defined");this.override(t,e)},defineStatic:function(t,e){this.Component[t]=e},override:function(t,e){this.Component.prototype[t]=e},defineProperty:function(t,e){if(t in this.Component.prototype)throw new Error(t+" has previously been defined");this.overrideProperty(t,e)},overrideProperty:function(t,e){var n=i.aug({configurable:!0},e);Object.defineProperty(this.Component.prototype,t,n)},before:function(t,e){this._adviceArgs.push([r.before,t,e])},after:function(t,e){this._adviceArgs.push([r.after,t,e])},around:function(t,e){this._adviceArgs.push([r.around,t,e])},last:function(t,e){this._lastArgs.push([r.after,t,e])}}),t.exports=u},function(t,e,n){var r=n(0);function i(){return!0}function o(t){return t}t.exports=function(){function t(t){var e=this;t=t||{},this.params=Object.keys(this.paramConfigs).reduce(function(n,u){var a=[],s=e.boundParams,c=e.paramConfigs[u],d=c.validate||i,f=c.transform||o;if(u in s&&a.push(s[u]),u in t&&a.push(t[u]),a="fallback"in c?a.concat(c.fallback):a,n[u]=function(t,e,n){var i=null;return a.some(function(t){if(t=r.isType("function",t)?t():t,e(t))return i=n(t),!0}),i}(0,d,f),c.required&&null==n[u])throw new Error(u+" is a required parameter");return n},{}),this.initialize()}return r.aug(t.prototype,{paramConfigs:{},boundParams:{},initialize:function(){}}),t}},function(t,e,n){var r=n(1).HTMLElement,i=r.prototype.matches||r.prototype.matchesSelector||r.prototype.webkitMatchesSelector||r.prototype.mozMatchesSelector||r.prototype.msMatchesSelector||r.prototype.oMatchesSelector;t.exports=function(t,e){if(i)return i.call(t,e)}},function(t){t.exports={version:"2a81c84:1568701398616"}},function(t,e,n){var r,i=n(10),o=n(4),u=n(1),a=n(33),s=n(54),c=n(5),d=n(23);t.exports={inlineStyle:function(){var t="csptest"+d.generate(),e=o.createElement("div"),n=o.createElement("style"),f="."+t+" { visibility: hidden; }";return!!o.body&&(c.asBoolean(a.val("widgets:csp"))&&(r=!1),void 0!==r?r:(e.style.display="none",i.add(e,t),n.type="text/css",n.appendChild(o.createTextNode(f)),o.body.appendChild(n),o.body.appendChild(e),r="hidden"===u.getComputedStyle(e).visibility,s(e),s(n),r))}}},function(t,e,n){var r=n(1);t.exports=function(t,e,n){var i,o=0;return n=n||null,function u(){var a=n||this,s=arguments,c=+new Date;if(r.clearTimeout(i),c-o>e)return o=c,void t.apply(a,s);i=r.setTimeout(function(){u.apply(a,s)},e)}}},function(t,e){t.exports=function(t){var e=t.getBoundingClientRect();return{width:e.width,height:e.height}}},function(t,e,n){var r;r=function(){"use strict";function t(t){return"function"==typeof t}var e=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},n=0,r=void 0,i=void 0,o=function(t,e){l[n]=t,l[n+1]=e,2===(n+=2)&&(i?i(h):w())},u="undefined"!=typeof window?window:void 0,a=u||{},s=a.MutationObserver||a.WebKitMutationObserver,c="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),d="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function f(){var t=setTimeout;return function(){return t(h,1)}}var l=new Array(1e3);function h(){for(var t=0;t<n;t+=2)(0,l[t])(l[t+1]),l[t]=void 0,l[t+1]=void 0;n=0}var p,m,v,g,w=void 0;function y(t,e){var n=this,r=new this.constructor(_);void 0===r[E]&&z(r);var i=n._state;if(i){var u=arguments[i-1];o(function(){return P(i,r,u,n._result)})}else N(n,r,t,e);return r}function b(t){if(t&&"object"==typeof t&&t.constructor===this)return t;var e=new this(_);return S(e,t),e}c?w=function(){return process.nextTick(h)}:s?(m=0,v=new s(h),g=document.createTextNode(""),v.observe(g,{characterData:!0}),w=function(){g.data=m=++m%2}):d?((p=new MessageChannel).port1.onmessage=h,w=function(){return p.port2.postMessage(0)}):w=void 0===u?function(){try{var t=Function("return this")().require("vertx");return void 0!==(r=t.runOnLoop||t.runOnContext)?function(){r(h)}:f()}catch(t){return f()}}():f();var E=Math.random().toString(36).substring(2);function _(){}var A=void 0,x=1,C=2,D={error:null};function T(t){try{return t.then}catch(t){return D.error=t,D}}function F(e,n,r){n.constructor===e.constructor&&r===y&&n.constructor.resolve===b?function(t,e){e._state===x?j(t,e._result):e._state===C?R(t,e._result):N(e,void 0,function(e){return S(t,e)},function(e){return R(t,e)})}(e,n):r===D?(R(e,D.error),D.error=null):void 0===r?j(e,n):t(r)?function(t,e,n){o(function(t){var r=!1,i=function(t,e,n,r){try{t.call(e,n,r)}catch(t){return t}}(n,e,function(n){r||(r=!0,e!==n?S(t,n):j(t,n))},function(e){r||(r=!0,R(t,e))},t._label);!r&&i&&(r=!0,R(t,i))},t)}(e,n,r):j(e,n)}function S(t,e){var n,r;t===e?R(t,new TypeError("You cannot resolve a promise with itself")):(r=typeof(n=e),null===n||"object"!==r&&"function"!==r?j(t,e):F(t,e,T(e)))}function B(t){t._onerror&&t._onerror(t._result),k(t)}function j(t,e){t._state===A&&(t._result=e,t._state=x,0!==t._subscribers.length&&o(k,t))}function R(t,e){t._state===A&&(t._state=C,t._result=e,o(B,t))}function N(t,e,n,r){var i=t._subscribers,u=i.length;t._onerror=null,i[u]=e,i[u+x]=n,i[u+C]=r,0===u&&t._state&&o(k,t)}function k(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r=void 0,i=void 0,o=t._result,u=0;u<e.length;u+=3)r=e[u],i=e[u+n],r?P(n,r,i,o):i(o);t._subscribers.length=0}}function P(e,n,r,i){var o=t(r),u=void 0,a=void 0,s=void 0,c=void 0;if(o){if((u=function(t,e){try{return t(e)}catch(t){return D.error=t,D}}(r,i))===D?(c=!0,a=u.error,u.error=null):s=!0,n===u)return void R(n,new TypeError("A promises callback cannot return that same promise."))}else u=i,s=!0;n._state!==A||(o&&s?S(n,u):c?R(n,a):e===x?j(n,u):e===C&&R(n,u))}var L=0;function z(t){t[E]=L++,t._state=void 0,t._result=void 0,t._subscribers=[]}var I=function(){function t(t,n){this._instanceConstructor=t,this.promise=new t(_),this.promise[E]||z(this.promise),e(n)?(this.length=n.length,this._remaining=n.length,this._result=new Array(this.length),0===this.length?j(this.promise,this._result):(this.length=this.length||0,this._enumerate(n),0===this._remaining&&j(this.promise,this._result))):R(this.promise,new Error("Array Methods must be provided an Array"))}return t.prototype._enumerate=function(t){for(var e=0;this._state===A&&e<t.length;e++)this._eachEntry(t[e],e)},t.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===b){var i=T(t);if(i===y&&t._state!==A)this._settledAt(t._state,e,t._result);else if("function"!=typeof i)this._remaining--,this._result[e]=t;else if(n===O){var o=new n(_);F(o,t,i),this._willSettleAt(o,e)}else this._willSettleAt(new n(function(e){return e(t)}),e)}else this._willSettleAt(r(t),e)},t.prototype._settledAt=function(t,e,n){var r=this.promise;r._state===A&&(this._remaining--,t===C?R(r,n):this._result[e]=n),0===this._remaining&&j(r,this._result)},t.prototype._willSettleAt=function(t,e){var n=this;N(t,void 0,function(t){return n._settledAt(x,e,t)},function(t){return n._settledAt(C,e,t)})},t}(),O=function(){function e(t){this[E]=L++,this._result=this._state=void 0,this._subscribers=[],_!==t&&("function"!=typeof t&&function(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}(),this instanceof e?function(t,e){try{e(function(e){S(t,e)},function(e){R(t,e)})}catch(e){R(t,e)}}(this,t):function(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}())}return e.prototype.catch=function(t){return this.then(null,t)},e.prototype.finally=function(e){var n=this.constructor;return t(e)?this.then(function(t){return n.resolve(e()).then(function(){return t})},function(t){return n.resolve(e()).then(function(){throw t})}):this.then(e,e)},e}();return O.prototype.then=y,O.all=function(t){return new I(this,t).promise},O.race=function(t){var n=this;return e(t)?new n(function(e,r){for(var i=t.length,o=0;o<i;o++)n.resolve(t[o]).then(e,r)}):new n(function(t,e){return e(new TypeError("You must pass an array to race."))})},O.resolve=b,O.reject=function(t){var e=new this(_);return R(e,t),e},O._setScheduler=function(t){i=t},O._setAsap=function(t){o=t},O._asap=o,O.polyfill=function(){var t=void 0;if("undefined"!=typeof global)t=global;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(t){throw new Error("polyfill failed because global object is unavailable in this environment")}var e=t.Promise;if(e){var n=null;try{n=Object.prototype.toString.call(e.resolve())}catch(t){}if("[object Promise]"===n&&!e.cast)return}t.Promise=O},O.Promise=O,O},t.exports=r()},function(t,e,n){var r=n(50);t.exports=new r("twttr")},function(t,e,n){var r=n(1),i=n(0);function o(t){return i.isType("string",t)?t.split("."):i.isType("array",t)?t:[]}function u(t,e){(e=e||r)[t]=e[t]||{},Object.defineProperty(this,"base",{value:e[t]}),Object.defineProperty(this,"name",{value:t})}i.aug(u.prototype,{get:function(t){return o(t).reduce(function(t,e){if(i.isObject(t))return t[e]},this.base)},set:function(t,e,n){var r=o(t),u=function(t,e){var n=o(e).slice(0,-1);return n.reduce(function(t,e,r){if(t[e]=t[e]||{},!i.isObject(t[e]))throw new Error(n.slice(0,r+1).join(".")+" is already defined with a value.");return t[e]},t)}(this.base,t),a=r.slice(-1);return n&&a in u?u[a]:u[a]=e},init:function(t,e){return this.set(t,e,!0)},unset:function(t){var e=o(t),n=this.get(e.slice(0,-1));n&&delete n[e.slice(-1)]},aug:function(t){var e=this.get(t),n=i.toRealArray(arguments).slice(1);if(e=void 0!==e?e:{},n.unshift(e),!n.every(i.isObject))throw new Error("Cannot augment non-object.");return this.set(t,i.aug.apply(null,n))},call:function(t){var e=this.get(t),n=i.toRealArray(arguments).slice(1);if(!i.isType("function",e))throw new Error("Function "+t+"does not exist.");return e.apply(null,n)},fullPath:function(t){var e=o(t);return e.unshift(this.name),e.join(".")}}),t.exports=u},function(t,e,n){var r=n(0),i=n(7),o={bind:function(t,e){return this._handlers=this._handlers||{},this._handlers[t]=this._handlers[t]||[],this._handlers[t].push(e)},unbind:function(t,e){var n;this._handlers&&this._handlers[t]&&(e?(n=this._handlers[t].indexOf(e))>=0&&this._handlers[t].splice(n,1):this._handlers[t]=[])},trigger:function(t,e){var n=this._handlers&&this._handlers[t];(e=e||{}).type=t,n&&n.forEach(function(t){r.async(i(t,this,e))})}};t.exports={Emitter:o,makeEmitter:function(){return r.aug(function(){},o)}}},function(t,e){var n="tfw_horizon_tweet_embed_9555";t.exports={isHorizonTweetEnabled:function(t){return!(!t||!t[n]||"hte"!==t[n].bucket)}}},function(t,e,n){var r=n(101),i=n(76),o=n(6),u=n(22),a=n(7),s=n(0),c=new i(function(t){var e=function(t){return t.reduce(function(t,e){return t[e._className]=t[e._className]||[],t[e._className].push(e),t},{})}(t.map(r.fromRawTask));s.forIn(e,function(t,e){u.allSettled(e.map(function(t){return t.initialize()})).then(function(){e.forEach(function(t){o.all([t.hydrate(),t.insertIntoDom()]).then(a(t.render,t)).then(a(t.success,t),a(t.fail,t))})})})});t.exports={addWidget:function(t){return c.add(t)}}},function(t,e,n){var r=n(18);t.exports=function(t){return r.write(function(){t&&t.parentNode&&t.parentNode.removeChild(t)})}},function(t,e,n){n(12),t.exports={log:function(t,e){}}},function(t,e,n){var r=n(1);function i(t){return(t=t||r).getSelection&&t.getSelection()}t.exports={getSelection:i,getSelectedText:function(t){var e=i(t);return e?e.toString():""}}},function(t,e,n){var r=n(4),i=n(1),o=n(2);t.exports=function(t){var e=new o,n=r.createElement("img");return n.onload=n.onerror=function(){i.setTimeout(e.resolve,50)},n.src=t,i.setTimeout(e.reject,2e4),e.promise}},function(t,e,n){var r=n(111);t.exports=function(t){t.define("createElement",r),t.define("createFragment",r),t.define("htmlToElement",r),t.define("hasSelectedText",r),t.define("addRootClass",r),t.define("removeRootClass",r),t.define("hasRootClass",r),t.define("prependStyleSheet",r),t.define("appendStyleSheet",r),t.define("prependCss",r),t.define("appendCss",r),t.define("makeVisible",r),t.define("injectWidgetEl",r),t.define("matchHeightToContent",r),t.define("matchWidthToContent",r)}},function(t,e){t.exports=function(t){var e,n=!1;return function(){return n?e:(n=!0,e=t.apply(this,arguments))}}},function(t,e,n){var r=n(15),i=n(120),o=n(61),u=n(16);t.exports=function(t,e,n){return new r(i,o,u.DM_BUTTON,t,e,n)}},function(t,e,n){var r=n(62),i=n(25);t.exports=r.isSupported()?r:i},function(t,e,n){var r=n(26),i=n(121);t.exports=r.build([i])},function(t,e,n){var r=n(15),i=n(124),o=n(37),u=n(16);t.exports=function(t,e,n){return new r(i,o,u.FOLLOW_BUTTON,t,e,n)}},function(t,e,n){var r=n(15),i=n(132),o=n(25),u=n(16);t.exports=function(t,e,n){return new r(i,o,u.MOMENT,t,e,n)}},function(t,e,n){var r=n(15),i=n(134),o=n(25),u=n(16);t.exports=function(t,e,n){return new r(i,o,u.PERISCOPE,t,e,n)}},function(t,e,n){var r=n(82),i=n(136),o=n(140),u=n(142),a=n(144),s=n(146),c={collection:i,event:o,likes:u,list:a,profile:s,url:f},d=[s,u,i,a,o];function f(t){return r(d,function(e){try{return new e(t)}catch(t){}})}t.exports=function(t){return t?function(t){var e,n;return e=(t.sourceType+"").toLowerCase(),(n=c[e])?new n(t):null}(t)||f(t):null}},function(t,e,n){var r=n(15),i=n(148),o=n(25),u=n(16);t.exports=function(t,e,n){return new r(i,o,u.TIMELINE,t,e,n)}},function(t,e,n){var r=n(15),i=n(4),o=n(37),u=n(150),a=n(61),s=n(151),c=n(16);t.exports=function(t,e,n,d){var f;return d?(f=i.createElement("div"),new r(u,o,c.TWEET,t,e,n,{sandboxWrapperEl:f})):new r(s,a,c.TWEET,t,e,n)}},function(t,e,n){var r=n(15),i=n(153),o=n(37),u=n(16);t.exports=function(t,e,n){var a=t&&t.type||"share",s="hashtag"==a?u.HASHTAG_BUTTON:"mention"==a?u.MENTION_BUTTON:u.SHARE_BUTTON;return new r(i,o,s,t,e,n)}},function(t,e,n){var r=n(39),i=n(38),o=n(0);t.exports=function(t){var e={widget_origin:i.rootDocumentLocation(),widget_frame:i.isFramed()?i.currentDocumentLocation():null,duration_ms:t.duration,item_ids:t.widgetIds||[]},n=o.aug(t.namespace,{page:"page",component:"performance"});r.scribe(n,e)}},function(t,e,n){var r=n(0),i=n(137),o=["ar","fa","he","ur"];t.exports={isRtlLang:function(t){return t=String(t).toLowerCase(),r.contains(o,t)},matchLanguage:function(t){return t=(t=(t||"").toLowerCase()).replace("_","-"),i(t)?t:(t=t.replace(/-.*/,""),i(t)?t:"en")}}},function(t){t.exports={tweetButtonHtmlPath:"/widgets/tweet_button.d6364fae9340b0be5f13818370141fd0.{{lang}}.html",followButtonHtmlPath:"/widgets/follow_button.d6364fae9340b0be5f13818370141fd0.{{lang}}.html",hubHtmlPath:"/widgets/hub.html",widgetIframeHtmlPath:"/widgets/widget_iframe.d6364fae9340b0be5f13818370141fd0.html",resourceBaseUrl:"https://platform.twitter.com"}},function(t,e,n){var r=n(3),i=n(98),o=n(24),u=n(11),a={favorite:["favorite","like"],follow:["follow"],like:["favorite","like"],retweet:["retweet"],tweet:["tweet"]};function s(t){this.srcEl=[],this.element=t}s.open=function(t,e,n){var s=(r.intentType(t)||"").toLowerCase();r.isTwitterURL(t)&&(function(t,e){i.open(t,{},e)}(t,n),e&&o.trigger("click",{target:e,region:"intent",type:"click",data:{}}),e&&a[s]&&a[s].forEach(function(n){o.trigger(n,{target:e,region:"intent",type:n,data:function(t,e){var n=u.decodeURL(e);switch(t){case"favorite":case"like":return{tweet_id:n.tweet_id};case"follow":return{screen_name:n.screen_name,user_id:n.user_id};case"retweet":return{source_tweet_id:n.tweet_id};default:return{}}}(s,t)})}))},t.exports=s},function(t,e){t.exports={getTimezoneOffset:function(){var t=(new Date).toString().match(/(GMT[+-]?\d+)/);return t&&t[0]||"GMT"}}},function(t,e,n){var r=n(4),i=n(9),o=n(2),u=n(0),a=n(11),s=0;t.exports={fetch:function(t,e,n,c){var d,f,l;return c=function(t){if(t)return t.replace(/[^\w$]/g,"_")}(c||"cb"+s++),d=i.fullPath(["callbacks",c]),f=r.createElement("script"),l=new o,e=u.aug({},e,{callback:d,suppress_response_codes:!0}),i.set(["callbacks",c],function(t){var e;t=(e=n(t||!1)).resp,e.success?l.resolve(t):l.reject(t),f.onload=f.onreadystatechange=null,f.parentNode&&f.parentNode.removeChild(f),i.unset(["callbacks",c])}),f.onerror=function(){l.reject(new Error("failed to fetch "+f.src))},f.src=a.url(t,e),f.async="async",r.body.appendChild(f),l.promise}}},function(t,e,n){var r=n(2),i=n(103),o=n(7);function u(t){this._inputsQueue=[],this._task=t,this._hasFlushBeenScheduled=!1}u.prototype.add=function(t){var e=new r;return this._inputsQueue.push({input:t,taskDoneDeferred:e}),this._hasFlushBeenScheduled||(this._hasFlushBeenScheduled=!0,i(o(this._flush,this))),e.promise},u.prototype._flush=function(){try{this._task.call(null,this._inputsQueue)}catch(t){this._inputsQueue.forEach(function(e){e.taskDoneDeferred.reject(t)})}this._inputsQueue=[],this._hasFlushBeenScheduled=!1},t.exports=u},function(t,e){t.exports=function(t,e){return t.reduce(function(t,n){var r=e(n);return t[r]=t[r]||[],t[r].push(n),t},{})}},function(t,e,n){var r=n(4),i=n(8),o=n(3);function u(t,e){var n,r;return e=e||i,/^https?:\/\//.test(t)?t:/^\/\//.test(t)?e.protocol+t:(n=e.host+(e.port.length?":"+e.port:""),0!==t.indexOf("/")&&((r=e.pathname.split("/")).pop(),r.push(t),t="/"+r.join("/")),[e.protocol,"//",n,t].join(""))}t.exports={absolutize:u,getCanonicalURL:function(){for(var t,e=r.getElementsByTagName("link"),n=0;e[n];n++)if("canonical"==(t=e[n]).rel)return u(t.href)},getScreenNameFromPage:function(){for(var t,e,n,i=[r.getElementsByTagName("a"),r.getElementsByTagName("link")],u=0,a=0,s=/\bme\b/;t=i[u];u++)for(a=0;e=t[a];a++)if(s.test(e.rel)&&(n=o.screenName(e.href)))return n}}},function(t,e,n){var r=n(8),i=/^[^#?]*\.(gov|mil)(:\d+)?([#?].*)?$/i,o={};function u(t){return t in o?o[t]:o[t]=i.test(t)}t.exports={isUrlSensitive:u,isHostPageSensitive:function(){return u(r.host)}}},function(t,e,n){var r=n(20),i=n(55),o=n(11),u=n(34),a=n(0),s=n(9).get("scribeCallback"),c=2083,d=[],f=o.url(u.CLIENT_EVENT_ENDPOINT,{dnt:0,l:""}),l=encodeURIComponent(f).length;function h(t,e,n,r){var i=!a.isObject(t),o=!!e&&!a.isObject(e);i||o||(s&&s(arguments),p(u.formatClientEventNamespace(t),u.formatClientEventData(e,n,r),u.CLIENT_EVENT_ENDPOINT))}function p(t,e,n){var r,s;n&&a.isObject(t)&&a.isObject(e)&&(i.log(t,e),r=u.flattenClientEventPayload(t,e),s={l:u.stringify(r)},u.noticeSeen(t)&&(s.notice_seen=!0),r.dnt&&(s.dnt=1),w(o.url(n,s)))}function m(t,e,n,r){var i=!a.isObject(t),o=!!e&&!a.isObject(e);if(!i&&!o)return v(u.flattenClientEventPayload(u.formatClientEventNamespace(t),u.formatClientEventData(e,n,r)))}function v(t){return d.push(t),d}function g(t){return encodeURIComponent(t).length+3}function w(t){return(new Image).src=t}t.exports={canFlushOneItem:function(t){var e=g(u.stringify(t));return l+e<c},_enqueueRawObject:v,scribe:p,clientEvent:h,clientEvent2:function(t,e,n){return h(t,e,n,2)},enqueueClientEvent:m,flushClientEvents:function(){var t;return d.length>1&&m({page:"widgets_js",component:"scribe_pixel",action:"batch_log"},{}),t=d,d=[],t.reduce(function(e,n,r){var i=e.length,o=i&&e[i-1];return r+1==t.length&&n.event_namespace&&"batch_log"==n.event_namespace.action&&(n.message=["entries:"+r,"requests:"+i].join("/")),function t(e){return Array.isArray(e)||(e=[e]),e.reduce(function(e,n){var r,i=u.stringify(n),o=g(i);return l+o<c?e=e.concat(i):(r=u.splitLogEntry(n)).length>1&&(e=e.concat(t(r))),e},[])}(n).forEach(function(t){var n=g(t);(!o||o.urlLength+n>c)&&(o={urlLength:l,items:[]},e.push(o)),o.urlLength+=n,o.items.push(t)}),e},[]).map(function(t){var e={l:t.items};return r.enabled()&&(e.dnt=1),w(o.url(u.CLIENT_EVENT_ENDPOINT,e))})},interaction:function(t,e,n,r){var i=u.extractTermsFromDOM(t.target||t.srcElement);i.action=r||"click",h(i,e,n)}}},function(t,e,n){var r=n(0),i=n(43);t.exports=function(t,e){return i(t,e)?[t]:r.toRealArray(t.querySelectorAll(e))}},function(t,e){t.exports=function(t,e,n){for(var r,i=0;i<t.length;i++)if(r=e.call(n,t[i],i,t))return r}},function(t,e){t.exports=function(){return Math.floor(+new Date/9e5)}},function(t,e,n){var r=n(12);t.exports=function(t){var e,n;return e=t.headers&&t.headers.status,!(n=t&&!t.error&&200===e)&&t.headers&&t.headers.message&&r.publicError(t.headers.message),{success:n,resp:t}}},function(t,e,n){var r,i=n(29),o=0;function u(){r&&r.length===o&&(i.emitter.trigger(i.ALL_WIDGETS_AND_IMAGES_LOADED,r),r=null)}i.emitter.bind(i.ALL_WIDGETS_RENDER_END,function(t){r=t.widgets,u()}),t.exports={reportImagesLoadForAWidget:function(){o++,u()}}},,,,,,,,,function(t,e,n){var r,i=n(2),o=n(4),u=n(96),a=n(49),s=n(9),c=n(97),d=n(24),f=n(100),l=n(154),h=n(162),p=n(163),m=n(29),v=n(35);n(164),m.emitter.trigger(m.START),s.set("widgets.init",!0),a.set("init",!0),p(),r=new i,u.exposeReadyPromise(r.promise,a.base,"_e"),a.set("widgets",l),a.set("widgets.load",f.load),a.set("events",d),h(function(){v.load(),r.resolve(a.base),c.attachTo(o),f.loadPage()})},function(t,e){t.exports=navigator},function(t,e,n){var r=n(7);t.exports={exposeReadyPromise:function(t,e,n){e.ready=r(t.then,t),n&&Array.isArray(e[n])&&(e[n].forEach(r(t.then,t)),delete e[n])}}},function(t,e,n){var r=n(8),i=n(36),o=n(32),u=n(73),a=n(3);function s(t){var e,n,s;t.altKey||t.metaKey||t.shiftKey||(e=o.closest(function(t){return"A"===t.tagName||"AREA"===t.tagName},t.target))&&a.isIntentURL(e.href)&&(n=(n=(n=[s=e.href,"original_referer="+r.href].join(-1==s.indexOf("?")?"?":"&")).replace(/^http[:]/,"https:")).replace(/^\/\//,"https://"),u.open(n,e),i.preventDefault(t))}t.exports={attachTo:function(t){t.addEventListener("click",s,!1)}}},function(t,e,n){var r,i=n(1),o=n(99),u=n(36),a=n(32),s=n(21),c=n(3),d=n(23),f=n(0),l=i.screen.width,h=i.screen.height;function p(t,e){function n(t){return Math.round(t/2)}return t>e?{coordinate:0,size:e}:{coordinate:n(e)-n(t),size:t}}function m(t,e,n){var i,o;n=n||{},i=p((e=r.parse(e)).width,n.width||l),e.left=i.coordinate,e.width=i.size,o=p(e.height,n.height||h),e.top=o.coordinate,e.height=o.size,this.win=t,this.features=function(t){var e=[];return f.forIn(t,function(t,n){e.push(t+"="+n)}),e.join(",")}(e)}r=(new o).defaults({width:550,height:520,personalbar:"0",toolbar:"0",location:"1",scrollbars:"1",resizable:"1"}),m.prototype.open=function(t,e){var n=e&&"click"==e.type&&a.closest("a",e.target),r=e&&(e.altKey||e.metaKey||e.shiftKey),i=n&&(s.ios()||s.android());if(c.isTwitterURL(t))return r||i?this:(this.name="intent_"+d.generate(),this.popup=this.win.open(t,this.name,this.features),e&&u.preventDefault(e),this)},m.open=function(t,e,n){return new m(i,e).open(t,n)},t.exports=m},function(t,e,n){var r=n(5),i=n(0);function o(){this.assertions=[],this._defaults={}}o.prototype.assert=function(t,e){return this.assertions.push({fn:t,msg:e||"assertion failed"}),this},o.prototype.defaults=function(t){return this._defaults=t||this._defaults,this},o.prototype.require=function(t){var e=this;return(t=Array.isArray(t)?t:i.toRealArray(arguments)).forEach(function(t){e.assert(function(t){return function(e){return r.hasValue(e[t])}}(t),"required: "+t)}),this},o.prototype.parse=function(t){var e,n;if(e=i.aug({},this._defaults,t||{}),(n=this.assertions.reduce(function(t,n){return n.fn(e)||t.push(n.msg),t},[])).length>0)throw new Error(n.join("\n"));return e},t.exports=o},function(t,e,n){var r=n(4),i=n(52),o=n(6),u=n(22),a=n(53),s=n(33),c=n(9),d=n(39),f=n(24),l=n(5),h=n(0),p=n(35),m=n(117),v=n(29);function g(){var t=s.val("widgets:autoload")||!0;return!l.isFalseValue(t)&&(l.isTruthValue(t)?r.body:r.querySelectorAll(t))}function w(t){return p.getExperiments().then(function(e){return function(t,e){var n,i;return t=(t=t||r.body).length?h.toRealArray(t):[t],d.pause(),i=function(t,e){return t.reduce(function(t,n){return t.concat(m.reduce(function(t,r){return t.concat(r(n,e))},[]))},[])}(t,e),v.emitter.trigger(v.ALL_WIDGETS_RENDER_START,{widgets:i}),n=u.allResolved(i.map(function(t){return a.addWidget(t)})).then(function(t){f.trigger("loaded",{widgets:t}),t&&t.length&&v.emitter.trigger(v.ALL_WIDGETS_RENDER_END,{widgets:t})}),u.always(n,function(){d.resume()}),n}(t,i.isHorizonTweetEnabled(e))})}t.exports={load:w,loadPage:function(){var t=g();return!1===t?o.resolve():(c.set("widgets.loaded",!0),w(t))},_getPageLoadTarget:g}},function(t,e,n){var r=n(10),i=n(18),o=n(24),u=n(54),a=n(6),s=n(22);function c(t,e){this._widget=null,this._sandbox=null,this._hydrated=!1,this._insertedIntoDom=!1,this._Sandbox=t.Sandbox,this._factory=t.factory,this._widgetParams=t.parameters,this._resolve=e,this._className=t.className,this._renderedClassName=t.className+"-rendered",this._errorClassName=t.className+"-error",this._srcEl=t.srcEl,this._targetGlobal=function(t){return(t.srcEl||t.targetEl).ownerDocument.defaultView}(t),this._sandboxWrapperEl=t.options?t.options.sandboxWrapperEl:null,this._insertionStrategy=function(e){var n,r=t.srcEl,i=t.targetEl,o=t.options?t.options.sandboxWrapperEl:null;o?(o.appendChild(e),n=o):n=e,r?i.insertBefore(n,r):i.appendChild(n)}}c.fromRawTask=function(t){return new c(t.input,t.taskDoneDeferred.resolve)},c.prototype.initialize=function(){var t=this,e=new this._Sandbox(this._targetGlobal);return this._factory(this._widgetParams,e).then(function(n){return t._widget=n,t._sandbox=e,n._sandboxWrapperEl=t._sandboxWrapperEl,n})},c.prototype.insertIntoDom=function(){var t=this;return this._widget?this._sandbox.insert(this._widget.id,{class:[this._className,this._renderedClassName].join(" ")},null,this._insertionStrategy).then(function(){t._insertedIntoDom=!0}):a.reject(new Error("cannot insert widget into DOM before it is initialized"))},c.prototype.hydrate=function(){var t=this;return this._widget?this._widget.hydrate().then(function(){t._hydrated=!0}):a.reject(new Error("cannot hydrate widget before it is initialized"))},c.prototype.render=function(){var t=this;function e(e){return u(t._sandbox.sandboxEl).then(function(){return a.reject(e)})}return this._hydrated?this._insertedIntoDom?t._widget.render(t._sandbox).then(function(){return t._sandbox.onResize(function(){return t._widget.resize().then(function(){o.trigger("resize",{target:t._sandbox.sandboxEl})})}),t._widget.show()}).then(function(){return u(t._srcEl).then(function(){return t._sandbox.sandboxEl})},e):e(new Error("cannot render widget before DOM insertion")):e(new Error("cannot render widget before hydration"))},c.prototype.fail=function(){var t=this;return this._srcEl?s.always(i.write(function(){r.add(t._srcEl,t._errorClassName)}),function(){o.trigger("rendered",{target:t._srcEl}),t._resolve(t._srcEl)}):(t._resolve(),a.resolve())},c.prototype.success=function(){o.trigger("rendered",{target:this._sandbox.sandboxEl}),this._resolve(this._sandbox.sandboxEl)},t.exports=c},function(t,e,n){var r;!function(){"use strict";var i=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)};function o(){this.frames=[],this.lastId=0,this.raf=i,this.batch={hash:{},read:[],write:[],mode:null}}o.prototype.read=function(t,e){var n=this.add("read",t,e),r=n.id;return this.batch.read.push(n.id),"reading"===this.batch.mode||this.batch.scheduled?r:(this.scheduleBatch(),r)},o.prototype.write=function(t,e){var n=this.add("write",t,e),r=this.batch.mode,i=n.id;return this.batch.write.push(n.id),"writing"===r||"reading"===r||this.batch.scheduled?i:(this.scheduleBatch(),i)},o.prototype.defer=function(t,e,n){"function"==typeof t&&(n=e,e=t,t=1);var r=this,i=t-1;return this.schedule(i,function(){r.run({fn:e,ctx:n})})},o.prototype.clear=function(t){if("function"==typeof t)return this.clearFrame(t);t=Number(t);var e=this.batch.hash[t];if(e){var n=this.batch[e.type],r=n.indexOf(t);delete this.batch.hash[t],~r&&n.splice(r,1)}},o.prototype.clearFrame=function(t){var e=this.frames.indexOf(t);~e&&this.frames.splice(e,1)},o.prototype.scheduleBatch=function(){var t=this;this.schedule(0,function(){t.batch.scheduled=!1,t.runBatch()}),this.batch.scheduled=!0},o.prototype.uniqueId=function(){return++this.lastId},o.prototype.flush=function(t){for(var e;e=t.shift();)this.run(this.batch.hash[e])},o.prototype.runBatch=function(){try{this.batch.mode="reading",this.flush(this.batch.read),this.batch.mode="writing",this.flush(this.batch.write),this.batch.mode=null}catch(t){throw this.runBatch(),t}},o.prototype.add=function(t,e,n){var r=this.uniqueId();return this.batch.hash[r]={id:r,fn:e,ctx:n,type:t}},o.prototype.run=function(t){var e=t.ctx||this,n=t.fn;if(delete this.batch.hash[t.id],!this.onError)return n.call(e);try{n.call(e)}catch(t){this.onError(t)}},o.prototype.loop=function(){var t,e=this,n=this.raf,r=!1;function i(){var t=e.frames.shift();e.frames.length?n(i):e.looping=!1,t&&t()}this.looping||(t=setTimeout(function(){r=!0,i()},500),n(function(){r||(clearTimeout(t),i())}),this.looping=!0)},o.prototype.schedule=function(t,e){return this.frames[t]?this.schedule(t+1,e):(this.loop(),this.frames[t]=e)};var u=new o;void 0!==t&&t.exports?t.exports=u:void 0===(r=function(){return u}.call(e,n,e,t))||(t.exports=r)}()},function(t,e,n){var r=n(48).Promise;t.exports=r._asap},function(t,e,n){var r,i,o,u=n(4),a=n(1),s=n(30),c=n(20),d=n(2),f=n(6),l=n(55),h=n(34),p=n(0),m=n(25),v=n(9).get("scribeCallback"),g=Math.floor(1e3*Math.random())+"_",w="rufous-frame-"+g+"-",y="rufous-form-"+g+"-",b=0,E=!1,_=new d;function A(){var t=o.createElement("form"),e=o.createElement("input"),n=o.createElement("input");return b++,t.action=h.CLIENT_EVENT_ENDPOINT,t.method="POST",t.target=w+b,t.id=y+b,e.type="hidden",e.name="dnt",e.value=c.enabled(),n.type="hidden",n.name="tfw_redirect",n.value=h.RUFOUS_REDIRECT,t.appendChild(e),t.appendChild(n),t}function x(){var t=w+b;return s({id:t,name:t,width:0,height:0,border:0},{display:"none"},o.doc)}t.exports={clientEvent:function(t,e,n,i){(function(t,e){var n=!p.isObject(t),r=!!e&&!p.isObject(e);return n||r})(t,e)||(v&&v(arguments),_.promise.then(function(){!function(t,e){var n,i,u;p.isObject(t)&&p.isObject(e)&&(l.log(t,e),u=h.flattenClientEventPayload(t,e),(n=r.firstChild).value=+(+n.value||u.dnt||0),(i=o.createElement("input")).type="hidden",i.name="l",i.value=h.stringify(u),r.appendChild(i))}(h.formatClientEventNamespace(t),h.formatClientEventData(e,n,i))}))},flush:function(){return _.promise.then(function(){var t;return r.children.length<=2?f.reject():(t=f.all([o.doc.body.appendChild(r),o.doc.body.appendChild(i)]).then(function(t){var e=t[0],n=t[1];return n.addEventListener("load",function(){!function(t,e){return function(){var n=t.parentNode;n&&(n.removeChild(t),n.removeChild(e))}}(e,n)()}),e.submit(),t}),r=A(),i=x(),t)})},init:function(){return E?_.promise:((o=new m(a)).insert("rufous-sandbox",null,{display:"none"},function(t){u.body.appendChild(t)}).then(function(){o.setTitle("Twitter analytics iframe"),r=A(),i=x(),_.resolve([r,i])}),E=!0,_.promise)}}},function(t,e,n){var r=n(0);t.exports=function t(e){var n=[];return e.forEach(function(e){var i=r.isType("array",e)?t(e):[e];n=n.concat(i)}),n}},function(t,e){t.exports=function(t){return t.filter(function(e,n){return t.indexOf(e)===n})}},function(t,e,n){var r=n(41),i=n(0),o=n(109);function u(){r.apply(this,arguments)}u.prototype=Object.create(r.prototype),i.aug(u.prototype,{factory:o}),t.exports=u},function(t,e,n){var r=n(22),i=n(0),o=n(7);t.exports={before:function(t,e){return function(){var n,i=this,o=arguments;return n=e.apply(this,arguments),r.isPromise(n)?n.then(function(){return t.apply(i,o)}):t.apply(this,arguments)}},after:function(t,e){return function(){var n,i=this,o=arguments;function u(t,e){return r.isPromise(e)?e.then(function(){return t}):t}return n=t.apply(this,arguments),r.isPromise(n)?n.then(function(t){return u(t,e.apply(i,o))}):u(n,e.apply(this,arguments))}},around:function(t,e){return function(){var n=i.toRealArray(arguments);return n.unshift(o(t,this)),e.apply(this,n)}}}},function(t,e,n){var r=n(10),i=n(18),o=n(42),u=n(6),a=n(0);t.exports=function(){var t=o();function e(e){t.apply(this,arguments),Object.defineProperty(this,"targetGlobal",{value:e})}return e.prototype=Object.create(t.prototype),a.aug(e.prototype,{id:null,initialized:!1,width:0,height:0,sandboxEl:null,insert:function(){return u.reject()},onResize:function(){},addClass:function(t){var e=this.sandboxEl;return t=Array.isArray(t)?t:[t],i.write(function(){t.forEach(function(t){r.add(e,t)})})},removeClass:function(t){var e=this.sandboxEl;return t=Array.isArray(t)?t:[t],i.write(function(){t.forEach(function(t){r.remove(e,t)})})},styleSelf:function(t){var e=this;return i.write(function(){a.forIn(t,function(t,n){e.sandboxEl.style[t]=n})})}}),e}},function(t,e,n){var r=n(4),i=n(10),o=n(18),u=n(56),a=n(26),s=n(57),c=n(45),d=n(46),f=n(30),l=n(12),h=n(47),p=n(2),m=n(6),v=n(0),g=n(9),w=n(23),y=n(7),b={allowfullscreen:"true"},E={position:"absolute",visibility:"hidden",display:"block",width:"0px",height:"0px",padding:"0",border:"none"},_={position:"static",visibility:"visible"};function A(t,e,n,r){return e=v.aug({id:t},b,e),n=v.aug({},E,n),f(e,n,r)}function x(t,e,n,i,u){var a=new p,s=w.generate(),c=A(t,e,n,u);return g.set(["sandbox",s],function(){var t=c.contentWindow.document;o.write(function(){t.write("<!DOCTYPE html><html><head></head><body></body></html>")}).then(function(){t.close(),a.resolve(c)})}),c.src=["javascript:",'document.write("");',"try { window.parent.document; }",'catch (e) { document.domain="'+r.domain+'"; }',"window.parent."+g.fullPath(["sandbox",s])+"();"].join(""),c.addEventListener("error",a.reject,!1),o.write(function(){i.parentNode.replaceChild(c,i)}),a.promise}t.exports=a.couple(n(58),function(t){t.overrideProperty("id",{get:function(){return this.sandboxEl&&this.sandboxEl.id}}),t.overrideProperty("initialized",{get:function(){return!!this.win}}),t.overrideProperty("width",{get:function(){return this._width}}),t.overrideProperty("height",{get:function(){return this._height}}),t.overrideProperty("sandboxEl",{get:function(){return this.iframeEl}}),t.defineProperty("iframeEl",{get:function(){return this._iframe}}),t.defineProperty("rootEl",{get:function(){return this.doc&&this.doc.documentElement}}),t.defineProperty("widgetEl",{get:function(){return this.doc&&this.doc.body.firstElementChild}}),t.defineProperty("win",{get:function(){return this.iframeEl&&this.iframeEl.contentWindow}}),t.defineProperty("doc",{get:function(){return this.win&&this.win.document}}),t.define("_updateCachedDimensions",function(){var t=this;return o.read(function(){var e,n=h(t.sandboxEl);"visible"==t.sandboxEl.style.visibility?t._width=n.width:(e=h(t.sandboxEl.parentElement).width,t._width=Math.min(n.width,e)),t._height=n.height})}),t.define("_setTargetToBlank",function(){var t=this.createElement("base");t.target="_blank",this.doc.head.appendChild(t)}),t.define("_didResize",function(){var t=this,e=this._resizeHandlers.slice(0);return this._updateCachedDimensions().then(function(){e.forEach(function(e){e(t)})})}),t.define("setTitle",function(t){this.iframeEl.title=t}),t.override("createElement",function(t){return this.doc.createElement(t)}),t.override("createFragment",function(){return this.doc.createDocumentFragment()}),t.override("htmlToElement",function(t){var e;return(e=this.createElement("div")).innerHTML=t,e.firstElementChild}),t.override("hasSelectedText",function(){return!!u.getSelectedText(this.win)}),t.override("addRootClass",function(t){var e=this.rootEl;return t=Array.isArray(t)?t:[t],this.initialized?o.write(function(){t.forEach(function(t){i.add(e,t)})}):m.reject(new Error("sandbox not initialized"))}),t.override("removeRootClass",function(t){var e=this.rootEl;return t=Array.isArray(t)?t:[t],this.initialized?o.write(function(){t.forEach(function(t){i.remove(e,t)})}):m.reject(new Error("sandbox not initialized"))}),t.override("hasRootClass",function(t){return i.present(this.rootEl,t)}),t.define("addStyleSheet",function(t,e){var n,r=new p;return this.initialized?((n=this.createElement("link")).type="text/css",n.rel="stylesheet",n.href=t,n.addEventListener("load",r.resolve,!1),n.addEventListener("error",r.reject,!1),o.write(y(e,null,n)).then(function(){return s(t).then(r.resolve,r.reject),r.promise})):m.reject(new Error("sandbox not initialized"))}),t.override("prependStyleSheet",function(t){var e=this.doc;return this.addStyleSheet(t,function(t){var n=e.head.firstElementChild;return n?e.head.insertBefore(t,n):e.head.appendChild(t)})}),t.override("appendStyleSheet",function(t){var e=this.doc;return this.addStyleSheet(t,function(t){return e.head.appendChild(t)})}),t.define("addCss",function(t,e){var n;return c.inlineStyle()?((n=this.createElement("style")).type="text/css",n.appendChild(this.doc.createTextNode(t)),o.write(y(e,null,n))):(l.devError("CSP enabled; cannot embed inline styles"),m.resolve())}),t.override("prependCss",function(t){var e=this.doc;return this.addCss(t,function(t){var n=e.head.firstElementChild;return n?e.head.insertBefore(t,n):e.head.appendChild(t)})}),t.override("appendCss",function(t){var e=this.doc;return this.addCss(t,function(t){return e.head.appendChild(t)})}),t.override("makeVisible",function(){var t=this;return this.styleSelf(_).then(function(){t._updateCachedDimensions()})}),t.override("injectWidgetEl",function(t){var e=this;return this.initialized?this.widgetEl?m.reject(new Error("widget already injected")):o.write(function(){e.doc.body.appendChild(t)}):m.reject(new Error("sandbox not initialized"))}),t.override("matchHeightToContent",function(){var t,e=this;return o.read(function(){t=e.widgetEl?h(e.widgetEl).height:0}),o.write(function(){e.sandboxEl.style.height=t+"px"}).then(function(){return e._updateCachedDimensions()})}),t.override("matchWidthToContent",function(){var t,e=this;return o.read(function(){t=e.widgetEl?h(e.widgetEl).width:0}),o.write(function(){e.sandboxEl.style.width=t+"px"}).then(function(){return e._updateCachedDimensions()})}),t.after("initialize",function(){this._iframe=null,this._width=this._height=0,this._resizeHandlers=[]}),t.override("insert",function(t,e,n,r){var i=this,u=new p,a=this.targetGlobal.document,s=A(t,e,n,a);return o.write(y(r,null,s)),s.addEventListener("load",function(){(function(t){try{t.contentWindow.document}catch(t){return m.reject(t)}return m.resolve(t)})(s).then(null,y(x,null,t,e,n,s,a)).then(u.resolve,u.reject)},!1),s.addEventListener("error",u.reject,!1),u.promise.then(function(t){var e=d(i._didResize,50,i);return i._iframe=t,i.win.addEventListener("resize",e,!1),m.all([i._setTargetToBlank(),i.addRootClass("SandboxRoot"),i.prependCss(".SandboxRoot { display: none; }")])})}),t.override("onResize",function(t){this._resizeHandlers.push(t)}),t.after("styleSelf",function(){return this._updateCachedDimensions()})})},function(t,e){t.exports=function(){throw new Error("unimplemented method")}},function(t,e,n){var r=n(2),i=n(7),o=100,u=3e3;function a(t,e){this._inputsQueue=[],this._task=t,this._isPaused=!1,this._flushDelay=e&&e.flushDelay||o,this._pauseLength=e&&e.pauseLength||u,this._flushTimeout=void 0}a.prototype.add=function(t){var e=new r;return this._inputsQueue.push({input:t,taskDoneDeferred:e}),this._scheduleFlush(),e.promise},a.prototype._scheduleFlush=function(){this._isPaused||(clearTimeout(this._flushTimeout),this._flushTimeout=setTimeout(i(this._flush,this),this._flushDelay))},a.prototype._flush=function(){try{this._task.call(null,this._inputsQueue)}catch(t){this._inputsQueue.forEach(function(e){e.taskDoneDeferred.reject(t)})}this._inputsQueue=[],this._flushTimeout=void 0},a.prototype.pause=function(t){clearTimeout(this._flushTimeout),this._isPaused=!0,!t&&this._pauseLength&&setTimeout(i(this.resume,this),this._pauseLength)},a.prototype.resume=function(){this._isPaused=!1,this._scheduleFlush()},t.exports=a},function(t,e,n){var r,i=n(72),o=n(30),u=n(2),a=n(4),s=n(19),c=n(21),d=n(31),f=n(8),l=n(12),h=n(114),p=n(59),m=n(9),v=n(11),g=n(115),w=n(3),y=n(0),b=n(1),E=p(function(){return new u});function _(t){var e=t||{should_obtain_cookie_consent:!0,experiments:{}};return new g(e.should_obtain_cookie_consent,e.experiments)}t.exports={load:function(){var t,e,n,u;if(c.ie9()||c.ie10()||"http:"!==f.protocol&&"https:"!==f.protocol)return l.devError("Using default settings due to unsupported browser or protocol."),r=_(),void E().resolve();t={origin:f.origin},s.settings().indexOf("localhost")>-1&&(t.localSettings=!0),e=v.url(i.resourceBaseUrl+i.widgetIframeHtmlPath,t),n=function(t){var n;if(e.substr(0,t.origin.length)===t.origin&&w.isTwitterURL(t.origin))try{(n="string"==typeof t.data?d.parse(t.data):t.data).namespace===h.settings&&(r=_(n.settings),E().resolve())}catch(t){l.devError(t)}},b.addEventListener("message",n),u=o({src:e,title:"Twitter settings iframe"},{display:"none"}),a.body.appendChild(u)},settingsLoaded:function(){var t,e,n;return t=new u,e=m.get("experimentOverride"),E().promise.then(function(){e&&e.name&&e.assignment&&((n={})[e.name]={bucket:e.assignment},r.experiments=y.aug(r.experiments,n)),t.resolve(r)}).catch(function(e){t.reject(e)}),t.promise}}},function(t,e){t.exports={settings:"twttr.settings"}},function(t,e){t.exports=function(t,e){this.shouldObtainCookieConsent=t,this.experiments=e||{}}},function(t,e){t.exports=function(t){return t.split("").map(function(t){return t.charCodeAt(0).toString(16)}).join("")}},function(t,e,n){t.exports=[n(118),n(123),n(131),n(133),n(135),n(149),n(152)]},function(t,e,n){var r=n(11),i=n(5),o=n(0),u=n(13),a=n(14)(),s=n(60);t.exports=function(t){return a(t,"a.twitter-dm-button").map(function(t){return s(function(t){var e=t.getAttribute("data-show-screen-name"),n=u(t),a=t.getAttribute("href"),s=t.getAttribute("data-screen-name"),c=e?i.asBoolean(e):null,d=t.getAttribute("data-size"),f=r.decodeURL(a),l=f.recipient_id,h=t.getAttribute("data-text")||f.text,p=t.getAttribute("data-welcome-message-id")||f.welcomeMessageId;return o.aug(n,{screenName:s,showScreenName:c,size:d,text:h,userId:l,welcomeMessageId:p})}(t),t.parentNode,t)})}},function(t,e,n){var r=n(0);t.exports=function t(e){var n;if(e)return n=e.lang||e.getAttribute("data-lang"),r.isType("string",n)?n:t(e.parentElement)}},function(t,e,n){var r=n(2);t.exports=function(t,e){var i=new r;return n.e(2).then(function(r){var o;try{o=n(86),i.resolve(new o(t,e))}catch(t){i.reject(t)}}.bind(null,n)).catch(function(t){i.reject(t)}),i.promise}},function(t,e,n){var r=n(122),i=n(1),o=n(10),u=n(36),a=n(18),s=n(56),c=n(26),d=n(57),f=n(45),l=n(47),h=n(7),p=n(46),m=n(6),v=n(0),g={position:"absolute",visibility:"hidden",display:"block",transform:"rotate(0deg)"},w={position:"static",visibility:"visible"};t.exports=c.couple(n(58),function(t){t.defineStatic("isSupported",function(){return!!i.HTMLElement.prototype.attachShadow&&f.inlineStyle()}),t.overrideProperty("id",{get:function(){return this.sandboxEl&&this.sandboxEl.id}}),t.overrideProperty("initialized",{get:function(){return!!this._shadowHost}}),t.overrideProperty("width",{get:function(){return this._width}}),t.overrideProperty("height",{get:function(){return this._height}}),t.overrideProperty("sandboxEl",{get:function(){return this._shadowHost}}),t.define("_updateCachedDimensions",function(){var t=this;return a.read(function(){var e,n=l(t.sandboxEl);"visible"==t.sandboxEl.style.visibility?t._width=n.width:(e=l(t.sandboxEl.parentElement).width,t._width=Math.min(n.width,e)),t._height=n.height})}),t.define("_didResize",function(){var t=this,e=this._resizeHandlers.slice(0);return this._updateCachedDimensions().then(function(){e.forEach(function(e){e(t)})})}),t.override("createElement",function(t){return this.targetGlobal.document.createElement(t)}),t.override("createFragment",function(){return this.targetGlobal.document.createDocumentFragment()}),t.override("htmlToElement",function(t){var e;return(e=this.createElement("div")).innerHTML=t,e.firstElementChild}),t.override("hasSelectedText",function(){return!!s.getSelectedText(this.targetGlobal)}),t.override("addRootClass",function(t){var e=this._shadowRootBody;return t=Array.isArray(t)?t:[t],this.initialized?a.write(function(){t.forEach(function(t){o.add(e,t)})}):m.reject(new Error("sandbox not initialized"))}),t.override("removeRootClass",function(t){var e=this._shadowRootBody;return t=Array.isArray(t)?t:[t],this.initialized?a.write(function(){t.forEach(function(t){o.remove(e,t)})}):m.reject(new Error("sandbox not initialized"))}),t.override("hasRootClass",function(t){return o.present(this._shadowRootBody,t)}),t.override("addStyleSheet",function(t,e){return this.addCss('@import url("'+t+'");',e).then(function(){return d(t)})}),t.override("prependStyleSheet",function(t){var e=this._shadowRoot;return this.addStyleSheet(t,function(t){var n=e.firstElementChild;return n?e.insertBefore(t,n):e.appendChild(t)})}),t.override("appendStyleSheet",function(t){var e=this._shadowRoot;return this.addStyleSheet(t,function(t){return e.appendChild(t)})}),t.override("addCss",function(t,e){var n;return this.initialized?f.inlineStyle()?((n=this.createElement("style")).type="text/css",n.appendChild(this.targetGlobal.document.createTextNode(t)),a.write(h(e,null,n))):m.resolve():m.reject(new Error("sandbox not initialized"))}),t.override("prependCss",function(t){var e=this._shadowRoot;return this.addCss(t,function(t){var n=e.firstElementChild;return n?e.insertBefore(t,n):e.appendChild(t)})}),t.override("appendCss",function(t){var e=this._shadowRoot;return this.addCss(t,function(t){return e.appendChild(t)})}),t.override("makeVisible",function(){return this.styleSelf(w)}),t.override("injectWidgetEl",function(t){var e=this;return this.initialized?this._shadowRootBody.firstElementChild?m.reject(new Error("widget already injected")):a.write(function(){e._shadowRootBody.appendChild(t)}).then(function(){return e._updateCachedDimensions()}).then(function(){var t=p(e._didResize,50,e);new r(e._shadowRootBody,t)}):m.reject(new Error("sandbox not initialized"))}),t.override("matchHeightToContent",function(){return m.resolve()}),t.override("matchWidthToContent",function(){return m.resolve()}),t.override("insert",function(t,e,n,r){var i=this.targetGlobal.document,o=this._shadowHost=i.createElement("twitter-widget"),s=this._shadowRoot=o.attachShadow({mode:"open"}),c=this._shadowRootBody=i.createElement("div");return v.forIn(e||{},function(t,e){o.setAttribute(t,e)}),o.id=t,s.appendChild(c),u.delegate(c,"click","A",function(t,e){e.hasAttribute("target")||e.setAttribute("target","_blank")}),m.all([this.styleSelf(g),this.addRootClass("SandboxRoot"),this.prependCss(".SandboxRoot { display: none; max-height: 10000px; }"),a.write(r.bind(null,o))])}),t.override("onResize",function(t){this._resizeHandlers.push(t)}),t.after("initialize",function(){this._shadowHost=this._shadowRoot=this._shadowRootBody=null,this._width=this._height=0,this._resizeHandlers=[]}),t.after("styleSelf",function(){return this._updateCachedDimensions()})})},function(t,e){var n;(n=function(t,e){function r(t,e){if(t.resizedAttached){if(t.resizedAttached)return void t.resizedAttached.add(e)}else t.resizedAttached=new function(){var t,e;this.q=[],this.add=function(t){this.q.push(t)},this.call=function(){for(t=0,e=this.q.length;t<e;t++)this.q[t].call()}},t.resizedAttached.add(e);t.resizeSensor=document.createElement("div"),t.resizeSensor.className="resize-sensor";var n="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;",r="position: absolute; left: 0; top: 0; transition: 0s;";t.resizeSensor.style.cssText=n,t.resizeSensor.innerHTML='<div class="resize-sensor-expand" style="'+n+'"><div style="'+r+'"></div></div><div class="resize-sensor-shrink" style="'+n+'"><div style="'+r+' width: 200%; height: 200%"></div></div>',t.appendChild(t.resizeSensor),{fixed:1,absolute:1}[function(t,e){return t.currentStyle?t.currentStyle[e]:window.getComputedStyle?window.getComputedStyle(t,null).getPropertyValue(e):t.style[e]}(t,"position")]||(t.style.position="relative");var i,o,u=t.resizeSensor.childNodes[0],a=u.childNodes[0],s=t.resizeSensor.childNodes[1],c=(s.childNodes[0],function(){a.style.width=u.offsetWidth+10+"px",a.style.height=u.offsetHeight+10+"px",u.scrollLeft=u.scrollWidth,u.scrollTop=u.scrollHeight,s.scrollLeft=s.scrollWidth,s.scrollTop=s.scrollHeight,i=t.offsetWidth,o=t.offsetHeight});c();var d=function(t,e,n){t.attachEvent?t.attachEvent("on"+e,n):t.addEventListener(e,n)},f=function(){t.offsetWidth==i&&t.offsetHeight==o||t.resizedAttached&&t.resizedAttached.call(),c()};d(u,"scroll",f),d(s,"scroll",f)}var i=Object.prototype.toString.call(t),o="[object Array]"===i||"[object NodeList]"===i||"[object HTMLCollection]"===i||"undefined"!=typeof jQuery&&t instanceof jQuery||"undefined"!=typeof Elements&&t instanceof Elements;if(o)for(var u=0,a=t.length;u<a;u++)r(t[u],e);else r(t,e);this.detach=function(){if(o)for(var e=0,r=t.length;e<r;e++)n.detach(t[e]);else n.detach(t)}}).detach=function(t){t.resizeSensor&&(t.removeChild(t.resizeSensor),delete t.resizeSensor,delete t.resizedAttached)},void 0!==t&&void 0!==t.exports?t.exports=n:window.ResizeSensor=n},function(t,e,n){var r=n(3),i=n(0),o=n(13),u=n(14)(),a=n(63),s=n(5);t.exports=function(t){return u(t,"a.twitter-follow-button").map(function(t){return a(function(t){var e=o(t),n={screenName:r.screenName(t.href),showScreenName:"false"!==t.getAttribute("data-show-screen-name"),showCount:"false"!==t.getAttribute("data-show-count"),size:t.getAttribute("data-size"),count:t.getAttribute("data-count"),preview:t.getAttribute("data-preview")};return i.forIn(n,function(t,n){var r=e[t];e[t]=s.hasValue(r)?r:n}),e.screenName=e.screenName||e.screen_name,e}(t),t.parentNode,t)})}},function(t,e,n){var r=n(2);t.exports=function(t,e){var i=new r;return n.e(3).then(function(r){var o;try{o=n(87),i.resolve(new o(t,e))}catch(t){i.reject(t)}}.bind(null,n)).catch(function(t){i.reject(t)}),i.promise}},function(t,e,n){var r=n(18),i=n(126),o=n(59),u=n(30),a=n(2),s=n(6),c=n(7),d=n(0),f={position:"absolute",visibility:"hidden",width:"0px",height:"0px"},l={position:"static",visibility:"visible"},h={};i(function(t,e,n){var r=h[t];if(r)return e=e||1,n=n||1,r.styleSelf({width:e+"px",height:n+"px"}).then(function(){r.didResize()})}),t.exports=function(t){t.overrideProperty("id",{get:function(){return this.sandboxEl&&this.sandboxEl.id}}),t.overrideProperty("initialized",{get:function(){return!!this.iframeEl}}),t.overrideProperty("width",{get:function(){return this._width}}),t.overrideProperty("height",{get:function(){return this._height}}),t.overrideProperty("sandboxEl",{get:function(){return this.iframeEl}}),t.defineProperty("iframeEl",{get:function(){return this._iframe}}),t.define("updateCachedDimensions",function(){var t=this;return this.initialized?r.read(function(){t._width=t.sandboxEl.offsetWidth,t._height=t.sandboxEl.offsetHeight}):s.resolve()}),t.define("setTitle",function(t){this.iframeEl.title=t}),t.define("makeVisible",function(){return this.styleSelf(l)}),t.define("didResize",function(){var t=this,e=t._resizeHandlers.length>0;return this.updateCachedDimensions().then(function(){e&&t._resizeHandlers.forEach(function(e){e(t)})})}),t.define("loadDocument",function(t){var e=new a;return this.initialized?this.iframeEl.src?s.reject(new Error("widget already loaded")):(this.iframeEl.addEventListener("load",e.resolve,!1),this.iframeEl.addEventListener("error",e.reject,!1),this.iframeEl.src=t,e.promise):s.reject(new Error("sandbox not initialized"))}),t.after("initialize",function(){this._iframe=null,this._width=this._height=0,this._resizeHandlers=[]}),t.override("insert",function(t,e,n,i){var a=this;return e=d.aug({id:t},e),n=d.aug({},f,n),this._iframe=u(e,n),h[t]=this,this.onResize(o(function(){a.makeVisible()})),r.write(c(i,null,this._iframe))}),t.override("onResize",function(t){this._resizeHandlers.push(t)}),t.after("styleSelf",function(){return this.updateCachedDimensions()})}},function(t,e,n){var r=n(1),i=n(127),o=n(129),u=n(24),a=n(5),s=n(130);t.exports=function(t){function e(t,e){var n=s(this);u.trigger(t,{target:n,region:e,type:t,data:{}})}function n(e){var n=s(this),r=n&&n.id,i=a.asInt(e.width),o=a.asInt(e.height);r&&void 0!==i&&void 0!==o&&t(r,i,o)}(new i).attachReceiver(new o.Receiver(r,"twttr.button")).bind("twttr.private.trigger",e).bind("twttr.private.resizeButton",n),(new i).attachReceiver(new o.Receiver(r,"twttr.embed")).bind("twttr.private.trigger",e).bind("twttr.private.rendered",n).bind("twttr.private.resize",n)}},function(t,e,n){var r=n(31),i=n(128),o=n(0),u=n(6),a=n(22),s="2.0";function c(t){this.registry=t||{}}function d(t){var e,n;return e=o.isType("string",t),n=o.isType("number",t),e||n||null===t}function f(t,e){return{jsonrpc:s,id:d(t)?t:null,error:e}}c.prototype._invoke=function(t,e){var n,r,i;n=this.registry[t.method],r=t.params||[],r=o.isType("array",r)?r:[r];try{i=n.apply(e.source||null,r)}catch(t){i=u.reject(t.message)}return a.isPromise(i)?i:u.resolve(i)},c.prototype._processRequest=function(t,e){var n,r;return function(t){var e,n,r;return!!o.isObject(t)&&(e=t.jsonrpc===s,n=o.isType("string",t.method),r=!("id"in t)||d(t.id),e&&n&&r)}(t)?(n="params"in t&&(r=t.params,!o.isObject(r)||o.isType("function",r))?u.resolve(f(t.id,i.INVALID_PARAMS)):this.registry[t.method]?this._invoke(t,{source:e}).then(function(e){return n=t.id,{jsonrpc:s,id:n,result:e};var n},function(){return f(t.id,i.INTERNAL_ERROR)}):u.resolve(f(t.id,i.METHOD_NOT_FOUND)),null!=t.id?n:u.resolve()):u.resolve(f(t.id,i.INVALID_REQUEST))},c.prototype.attachReceiver=function(t){return t.attachTo(this),this},c.prototype.bind=function(t,e){return this.registry[t]=e,this},c.prototype.receive=function(t,e){var n,a,s,c=this;try{s=t,t=o.isType("string",s)?r.parse(s):s}catch(t){return u.resolve(f(null,i.PARSE_ERROR))}return e=e||null,a=((n=o.isType("array",t))?t:[t]).map(function(t){return c._processRequest(t,e)}),n?function(t){return u.all(t).then(function(t){return(t=t.filter(function(t){return void 0!==t})).length?t:void 0})}(a):a[0]},t.exports=c},function(t){t.exports={PARSE_ERROR:{code:-32700,message:"Parse error"},INVALID_REQUEST:{code:-32600,message:"Invalid Request"},INVALID_PARAMS:{code:-32602,message:"Invalid params"},METHOD_NOT_FOUND:{code:-32601,message:"Method not found"},INTERNAL_ERROR:{code:-32603,message:"Internal error"}}},function(t,e,n){var r=n(8),i=n(1),o=n(31),u=n(2),a=n(21),s=n(0),c=n(3),d=n(7),f=a.ie9();function l(t,e,n){var r;t&&t.postMessage&&(f?r=(n||"")+o.stringify(e):n?(r={})[n]=e:r=e,t.postMessage(r,"*"))}function h(t){return s.isType("string",t)?t:"JSONRPC"}function p(t,e){return e?s.isType("string",t)&&0===t.indexOf(e)?t.substring(e.length):t&&t[e]?t[e]:void 0:t}function m(t,e){var n=t.document;this.filter=h(e),this.server=null,this.isTwitterFrame=c.isTwitterURL(n.location.href),t.addEventListener("message",d(this._onMessage,this),!1)}function v(t,e){this.pending={},this.target=t,this.isTwitterHost=c.isTwitterURL(r.href),this.filter=h(e),i.addEventListener("message",d(this._onMessage,this),!1)}s.aug(m.prototype,{_onMessage:function(t){var e,n=this;this.server&&(this.isTwitterFrame&&!c.isTwitterURL(t.origin)||(e=p(t.data,this.filter))&&this.server.receive(e,t.source).then(function(e){e&&l(t.source,e,n.filter)}))},attachTo:function(t){this.server=t},detach:function(){this.server=null}}),s.aug(v.prototype,{_processResponse:function(t){var e=this.pending[t.id];e&&(e.resolve(t),delete this.pending[t.id])},_onMessage:function(t){var e;if((!this.isTwitterHost||c.isTwitterURL(t.origin))&&(e=p(t.data,this.filter))){if(s.isType("string",e))try{e=o.parse(e)}catch(t){return}(e=s.isType("array",e)?e:[e]).forEach(d(this._processResponse,this))}},send:function(t){var e=new u;return t.id?this.pending[t.id]=e:e.resolve(),l(this.target,t,this.filter),e.promise}}),t.exports={Receiver:m,Dispatcher:v,_stringifyPayload:function(t){return arguments.length>0&&(f=!!t),f}}},function(t,e,n){var r=n(4);t.exports=function(t){for(var e,n=r.getElementsByTagName("iframe"),i=0;n[i];i++)if((e=n[i]).contentWindow===t)return e}},function(t,e,n){var r=n(5),i=n(0),o=n(3),u=n(13),a=n(14)(),s=n(64);t.exports=function(t){return a(t,"a.twitter-moment").map(function(t){return s(function(t){var e=u(t),n={momentId:o.momentId(t.href),chrome:t.getAttribute("data-chrome"),limit:t.getAttribute("data-limit")};return i.forIn(n,function(t,n){var i=e[t];e[t]=r.hasValue(i)?i:n}),e}(t),t.parentNode,t)})}},function(t,e,n){var r=n(2);t.exports=function(t,e){var i=new r;return Promise.all([n.e(0),n.e(4)]).then(function(r){var o;try{o=n(88),i.resolve(new o(t,e))}catch(t){i.reject(t)}}.bind(null,n)).catch(function(t){i.reject(t)}),i.promise}},function(t,e,n){var r=n(0),i=n(13),o=n(14)(),u=n(65),a=/^https?:\/\/(?:www\.)?(?:periscope|pscp)\.tv\/@?([a-zA-Z0-9_]+)\/?$/i;t.exports=function(t){return o(t,"a.periscope-on-air").map(function(t){return u(function(t){var e=i(t),n=t.getAttribute("href"),o=t.getAttribute("data-size"),u=a.exec(n)[1];return r.aug(e,{username:u,size:o})}(t),t.parentNode,t)})}},function(t,e,n){var r=n(2);t.exports=function(t,e){var i=new r;return n.e(5).then(function(r){var o;try{o=n(89),i.resolve(new o(t,e))}catch(t){i.reject(t)}}.bind(null,n)).catch(function(t){i.reject(t)}),i.promise}},function(t,e,n){var r=n(5),i=n(0),o=n(66),u=n(13),a=n(14)(),s=n(67),c=n(3),d=n(12);t.exports=function(t){return a(t,"a.twitter-timeline,div.twitter-timeline,a.twitter-grid").map(function(t){return s(function(t){var e=u(t),n=t.getAttribute("data-show-replies"),a={isPreconfigured:!!t.getAttribute("data-widget-id"),chrome:t.getAttribute("data-chrome"),tweetLimit:t.getAttribute("data-tweet-limit")||t.getAttribute("data-limit"),ariaLive:t.getAttribute("data-aria-polite"),theme:t.getAttribute("data-theme"),linkColor:t.getAttribute("data-link-color"),borderColor:t.getAttribute("data-border-color"),showReplies:n?r.asBoolean(n):null,profileScreenName:t.getAttribute("data-screen-name"),profileUserId:t.getAttribute("data-user-id"),favoritesScreenName:t.getAttribute("data-favorites-screen-name"),favoritesUserId:t.getAttribute("data-favorites-user-id"),likesScreenName:t.getAttribute("data-likes-screen-name"),likesUserId:t.getAttribute("data-likes-user-id"),listOwnerScreenName:t.getAttribute("data-list-owner-screen-name"),listOwnerUserId:t.getAttribute("data-list-owner-id"),listId:t.getAttribute("data-list-id"),listSlug:t.getAttribute("data-list-slug"),customTimelineId:t.getAttribute("data-custom-timeline-id"),staticContent:t.getAttribute("data-static-content"),url:t.href};return a.isPreconfigured&&(c.isSearchUrl(a.url)?d.publicError("Embedded Search timelines have been deprecated. See https://twittercommunity.com/t/deprecating-widget-settings/102295.",t):d.publicLog("You may have been affected by an update to settings in embedded timelines. See https://twittercommunity.com/t/deprecating-widget-settings/102295.",t)),"twitter-grid"===t.className&&d.publicLog("Embedded grids have been deprecated and will now render as timelines. Please update your embed code to use the twitter-timeline class. More info: https://twittercommunity.com/t/update-on-the-embedded-grid-display-type/119564.",t),(a=i.aug(a,e)).dataSource=o(a),a.id=a.dataSource&&a.dataSource.id,a}(t),t.parentNode,t)})}},function(t,e,n){var r=n(27);t.exports=r.build([n(28),n(139)])},function(t,e,n){var r=n(0),i=n(138);t.exports=function(t){return"en"===t||r.contains(i,t)}},function(t,e){t.exports=["hi","zh-cn","fr","zh-tw","msa","fil","fi","sv","pl","ja","ko","de","it","pt","es","ru","id","tr","da","no","nl","hu","fa","ar","ur","he","th","cs","uk","vi","ro","bn","el","en-gb","gu","kn","mr","ta","bg","ca","hr","sr","sk"]},function(t,e,n){var r=n(3),i=n(0),o=n(19);function u(t,e){return r.collectionId(t)||e}t.exports=function(t){t.params({id:{},url:{}}),t.overrideProperty("id",{get:function(){return"collection:"+u(this.params.url,this.params.id)}}),t.overrideProperty("endpoint",{get:function(){return o.timeline(["collection"])}}),t.around("queryParams",function(t){return i.aug(t(),{collection_id:u(this.params.url,this.params.id)})}),t.before("initialize",function(){if(!u(this.params.url,this.params.id))throw new Error("one of url or id is required")})}},function(t,e,n){var r=n(27);t.exports=r.build([n(28),n(141)])},function(t,e,n){var r=n(3),i=n(0),o=n(19);function u(t,e){return r.eventId(t)||e}t.exports=function(t){t.params({id:{},url:{}}),t.overrideProperty("id",{get:function(){return"event:"+u(this.params.url,this.params.id)}}),t.overrideProperty("endpoint",{get:function(){return o.timeline(["event"])}}),t.around("queryParams",function(t){return i.aug(t(),{event_id:u(this.params.url,this.params.id)})}),t.before("initialize",function(){if(!u(this.params.url,this.params.id))throw new Error("one of url or id is required")})}},function(t,e,n){var r=n(27);t.exports=r.build([n(28),n(143)])},function(t,e,n){var r=n(3),i=n(0),o=n(19);function u(t){return r.likesScreenName(t.url)||t.screenName}t.exports=function(t){t.params({screenName:{},userId:{},url:{}}),t.overrideProperty("id",{get:function(){return"likes:"+(u(this.params)||this.params.userId)}}),t.overrideProperty("endpoint",{get:function(){return o.timeline(["likes"])}}),t.define("_getLikesQueryParam",function(){var t=u(this.params);return t?{screen_name:t}:{user_id:this.params.userId}}),t.around("queryParams",function(t){return i.aug(t(),this._getLikesQueryParam())}),t.before("initialize",function(){if(!u(this.params)&&!this.params.userId)throw new Error("screen name or user id is required")})}},function(t,e,n){var r=n(27);t.exports=r.build([n(28),n(145)])},function(t,e,n){var r=n(3),i=n(0),o=n(19),u="list:";function a(t){var e=r.listScreenNameAndSlug(t.url)||t;return i.compact({screen_name:e.ownerScreenName,user_id:e.ownerUserId,list_slug:e.slug})}t.exports=function(t){t.params({id:{},ownerScreenName:{},ownerUserId:{},slug:{},url:{}}),t.overrideProperty("id",{get:function(){var t,e,n;return this.params.id?u+this.params.id:(e=(t=a(this.params))&&t.list_slug.replace(/-/g,"_"),n=t&&(t.screen_name||t.user_id),u+(n+":")+e)}}),t.overrideProperty("endpoint",{get:function(){return o.timeline(["list"])}}),t.define("_getListQueryParam",function(){return this.params.id?{list_id:this.params.id}:a(this.params)}),t.around("queryParams",function(t){return i.aug(t(),this._getListQueryParam())}),t.before("initialize",function(){var t=a(this.params);if(i.isEmptyObject(t)&&!this.params.id)throw new Error("qualified slug or list id required")})}},function(t,e,n){var r=n(27);t.exports=r.build([n(28),n(147)])},function(t,e,n){var r=n(3),i=n(5),o=n(0),u=n(19);function a(t,e){return r.screenName(t)||e}t.exports=function(t){t.params({showReplies:{fallback:!1,transform:i.asBoolean},screenName:{},userId:{},url:{}}),t.overrideProperty("id",{get:function(){return"profile:"+(a(this.params.url,this.params.screenName)||this.params.userId)}}),t.overrideProperty("endpoint",{get:function(){return u.timeline(["profile"])}}),t.define("_getProfileQueryParam",function(){var t=a(this.params.url,this.params.screenName),e=t?{screen_name:t}:{user_id:this.params.userId};return o.aug(e,{with_replies:this.params.showReplies?"true":"false"})}),t.around("queryParams",function(t){return o.aug(t(),this._getProfileQueryParam())}),t.before("initialize",function(){if(!a(this.params.url,this.params.screenName)&&!this.params.userId)throw new Error("screen name or user id is required")})}},function(t,e,n){var r=n(2);t.exports=function(t,e){var i=new r;return Promise.all([n.e(0),n.e(6)]).then(function(r){var o;try{o=n(90),i.resolve(new o(t,e))}catch(t){i.reject(t)}}.bind(null,n)).catch(function(t){i.reject(t)}),i.promise}},function(t,e,n){var r=n(10),i=n(3),o=n(0),u=n(13),a=n(14)(),s=n(68),c=/\btw-align-(left|right|center)\b/;t.exports=function(t,e){return a(t,"blockquote.twitter-tweet, blockquote.twitter-video").map(function(t){return s(function(t){var e=u(t),n=t.getElementsByTagName("A"),a=n&&n[n.length-1],s=a&&i.status(a.href),d=t.getAttribute("data-conversation"),f="none"==d||"hidden"==d||r.present(t,"tw-hide-thread"),l=t.getAttribute("data-cards"),h="none"==l||"hidden"==l||r.present(t,"tw-hide-media"),p=t.getAttribute("data-align")||t.getAttribute("align"),m=t.getAttribute("data-link-color"),v=t.getAttribute("data-theme");return!p&&c.test(t.className)&&(p=RegExp.$1),o.aug(e,{tweetId:s,hideThread:f,hideCard:h,align:p,linkColor:m,theme:v,id:s})}(t),t.parentNode,t,e)})}},function(t,e,n){var r=n(2);t.exports=function(t,e){var i=new r;return Promise.all([n.e(0),n.e(7)]).then(function(r){var o;try{o=n(91),i.resolve(new o(t,e))}catch(t){i.reject(t)}}.bind(null,n)).catch(function(t){i.reject(t)}),i.promise}},function(t,e,n){var r=n(2);t.exports=function(t,e){var i=new r;return Promise.all([n.e(0),n.e(7)]).then(function(r){var o;try{o=n(92),i.resolve(new o(t,e))}catch(t){i.reject(t)}}.bind(null,n)).catch(function(t){i.reject(t)}),i.promise}},function(t,e,n){var r=n(10),i=n(0),o=n(13),u=n(14)(),a=n(69),s=n(5);t.exports=function(t){return u(t,"a.twitter-share-button, a.twitter-mention-button, a.twitter-hashtag-button").map(function(t){return a(function(t){var e=o(t),n={screenName:t.getAttribute("data-button-screen-name"),text:t.getAttribute("data-text"),type:t.getAttribute("data-type"),size:t.getAttribute("data-size"),url:t.getAttribute("data-url"),hashtags:t.getAttribute("data-hashtags"),via:t.getAttribute("data-via"),buttonHashtag:t.getAttribute("data-button-hashtag")};return i.forIn(n,function(t,n){var r=e[t];e[t]=s.hasValue(r)?r:n}),e.screenName=e.screenName||e.screen_name,e.buttonHashtag=e.buttonHashtag||e.button_hashtag||e.hashtag,r.present(t,"twitter-hashtag-button")&&(e.type="hashtag"),r.present(t,"twitter-mention-button")&&(e.type="mention"),e}(t),t.parentNode,t)})}},function(t,e,n){var r=n(2);t.exports=function(t,e){var i=new r;return n.e(3).then(function(r){var o;try{o=n(93),i.resolve(new o(t,e))}catch(t){i.reject(t)}}.bind(null,n)).catch(function(t){i.reject(t)}),i.promise}},function(t,e,n){var r=n(0);t.exports=r.aug({},n(155),n(156),n(157),n(158),n(159),n(160),n(161))},function(t,e,n){var r=n(60),i=n(17)(["userId"],{},r);t.exports={createDMButton:i}},function(t,e,n){var r=n(63),i=n(17)(["screenName"],{},r);t.exports={createFollowButton:i}},function(t,e,n){var r=n(64),i=n(17)(["momentId"],{},r);t.exports={createMoment:i}},function(t,e,n){var r=n(65),i=n(17)(["username"],{},r);t.exports={createPeriscopeOnAirButton:i}},function(t,e,n){var r=n(8),i=n(12),o=n(3),u=n(0),a=n(5),s=n(66),c=n(67),d=n(17)([],{},c),f=n(6),l={createTimeline:h,createGridFromCollection:function(t){var e=u.toRealArray(arguments).slice(1),n={sourceType:"collection",id:t};return e.unshift(n),i.publicLog("Embedded grids have been deprecated. Please use twttr.widgets.createTimeline instead. More info: https://twittercommunity.com/t/update-on-the-embedded-grid-display-type/119564."),h.apply(this,e)}};function h(t){var e,n=u.toRealArray(arguments).slice(1);return a.isString(t)||a.isNumber(t)?f.reject("Embedded timelines with widget settings have been deprecated. See https://twittercommunity.com/t/deprecating-widget-settings/102295."):u.isObject(t)?(t=t||{},n.forEach(function(t){u.isType("object",t)&&function(t){t.ariaLive=t.ariaPolite}(e=t)}),e||(e={},n.push(e)),t.lang=e.lang,t.tweetLimit=e.tweetLimit,t.showReplies=e.showReplies,e.dataSource=s(t),d.apply(this,n)):f.reject("data source must be an object.")}o.isTwitterURL(r.href)&&(l.createTimelinePreview=function(t,e,n){var r={previewParams:t,useLegacyDefaults:!0,isPreviewTimeline:!0};return r.dataSource=s(r),d(e,r,n)}),t.exports=l},function(t,e,n){var r,i=n(0),o=n(68),u=n(17),a=(r=u(["tweetId"],{},o),function(){return i.toRealArray(arguments).slice(1).forEach(function(t){i.isType("object",t)&&(t.hideCard="none"==t.cards||"hidden"==t.cards,t.hideThread="none"==t.conversation||"hidden"==t.conversation)}),r.apply(this,arguments)});t.exports={createTweet:a,createTweetEmbed:a,createVideo:a}},function(t,e,n){var r=n(0),i=n(69),o=n(17),u=o(["url"],{type:"share"},i),a=o(["buttonHashtag"],{type:"hashtag"},i),s=o(["screenName"],{type:"mention"},i);function c(t){return function(){return r.toRealArray(arguments).slice(1).forEach(function(t){r.isType("object",t)&&(t.screenName=t.screenName||t.screen_name,t.buttonHashtag=t.buttonHashtag||t.button_hashtag||t.hashtag)}),t.apply(this,arguments)}}t.exports={createShareButton:c(u),createHashtagButton:c(a),createMentionButton:c(s)}},function(t,e,n){var r,i,o,u=n(4),a=n(1),s=0,c=[],d=u.createElement("a");function f(){var t,e;for(s=1,t=0,e=c.length;t<e;t++)c[t]()}/^loade|c/.test(u.readyState)&&(s=1),u.addEventListener&&u.addEventListener("DOMContentLoaded",i=function(){u.removeEventListener("DOMContentLoaded",i,!1),f()},!1),d.doScroll&&u.attachEvent("onreadystatechange",r=function(){/^c/.test(u.readyState)&&(u.detachEvent("onreadystatechange",r),f())}),o=d.doScroll?function(t){a.self!=a.top?s?t():c.push(t):function(){try{d.doScroll("left")}catch(e){return setTimeout(function(){o(t)},50)}t()}()}:function(t){s?t():c.push(t)},t.exports=o},function(t,e,n){var r=n(44),i=n(9);t.exports=function(){i.set("buildVersion",r.version)}},function(t,e,n){n(165),n(85),n(168)},function(t,e,n){var r=n(166),i=n(29),o=n(70),u=new r,a=function(t){t.widgets&&1===t.widgets.length&&(u.start(),i.emitter.unbind(i.ALL_WIDGETS_RENDER_START,a))},s=function(t){var e;t.widgets&&1===t.widgets.length&&(e=t.widgets[0],u.end(),e.dataset&&e.dataset.tweetId&&o({duration:u.duration(),namespace:{element:"tweet",action:"render"},widgetIds:[e.dataset.tweetId]})),i.emitter.unbind(i.ALL_WIDGETS_RENDER_END,s)};i.emitter.bind(i.ALL_WIDGETS_RENDER_START,a),i.emitter.bind(i.ALL_WIDGETS_RENDER_END,s)},function(t,e,n){var r=n(167);function i(){}i.prototype.start=function(){this._startTime=r()},i.prototype.end=function(){this._duration=r()-this._startTime},i.prototype.duration=function(){return this._duration},t.exports=i},function(t,e,n){var r=n(1);t.exports=function(){return r.performance&&r.performance.now?r.performance.now():Date.now()}},function(t,e,n){var r=n(29),i=n(70),o=n(169),u=n(3),a=n(1),s=n(0),c=n(21),d=n(62);function f(t){return t.performance.getEntriesByType("resource").filter(function(t){return u.isTwimgURL(t.name)||u.isTwitterURL(t.name)}).reduce(function(t,e){return t[e.name]=e.duration,t},{})}r.emitter.bind(r.ALL_WIDGETS_AND_IMAGES_LOADED,function(t){var e,n,r=[];c.hasPerformanceInformation()&&(e=f(a),d.isSupported()||(r=function(t){return t.reduce(function(t,e){return s.aug(t,f(e.contentDocument.defaultView))},{})}(t)),n=s.aug({},e,r),Object.keys(o).forEach(function(t){!function(t,e,n){var r=Object.keys(t).reduce(function(e,r){return n(r)?e+t[r]:e},0);i({duration:r,namespace:{element:e,action:"resource"}})}(n,t,o[t])}))})},function(t,e,n){var r=n(3),i={all:function(){return!0},image:function(t){return r.isTwimgURL(t)},settings:function(t){return r.isSettingsURL(t)},widget_iframe:function(t){return r.isWidgetIframeURL(t)}};t.exports=i}]))))}),t(".ctf").each(function(){var e=t(this),i=parseInt(e.attr("data-ctfneeded"));e.width()<=480&&e.addClass("ctf-narrow"),e.width()<=320&&e.addClass("ctf-super-narrow"),t(this).hasClass("ctf_is_initialized")||n(e),setTimeout(function(){if(i>0){var t=e.find(".ctf-more"),n=e.find(".ctf-item").last().attr("id"),o=e.find(".ctf-item").length;r(n,e.attr("data-ctfshortcode"),e,t,i,o)}},500),e.find(".ctf-more").on("click",function(){var n=t(this),i=e.find(".ctf-item").last().attr("id"),o=e.find(".ctf-item").length;r(i,e.attr("data-ctfshortcode"),e,n,0,o)}),e.find(".ctf-author-box-link p:empty").remove()})}function n(e){e.addClass("ctf_is_initialized"),e.find(".ctf-item.ctf-new").each(function(){var n,r,i,o,u,a,s=t(this),c=s.find(".ctf-tweet-text-media-wrap"),d=s.find(".ctf-tweet-text").remove(".ctf-tweet-text-media-wrap"),f=" "+d.html();if("true"!=e.attr("data-ctfdisablelinks")&&void 0!==f&&!e.find(".ctf-tweet-text-link").length){var l=e.attr("data-ctflinktextcolor"),h="";l&&(h=l.replace(";","").split("#")[1]),window.ctfLinkify=(n="[a-z\\d.-]+://",r="mailto:",i=new RegExp("(?:\\b[a-z\\d.-]+://[^<>\\s]+|\\b(?:(?:(?:[^\\s!@#$%^&*()_=+[\\]{}\\\\|;:'\",.<>/?]+)\\.)+(?:ac|ad|aero|ae|af|ag|ai|al|am|an|ao|aq|arpa|ar|asia|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|biz|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|cat|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|coop|com|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|info|int|in|io|iq|ir|is|it|je|jm|jobs|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mil|mk|ml|mm|mn|mobi|mo|mp|mq|mr|ms|mt|museum|mu|mv|mw|mx|my|mz|name|na|nc|net|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pro|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tel|tf|tg|th|tj|tk|tl|tm|tn|to|tp|travel|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xn--0zwm56d|xn--11b5bs3a9aj6g|xn--80akhbyknj4f|xn--9t4b11yi5a|xn--deba0ad|xn--g6w251d|xn--hgbk6aj7f53bba|xn--hlcj6aya9esc7a|xn--jxalpdlp|xn--kgbechtv|xn--zckzah|ye|yt|yu|za|zm|zw)|(?:(?:[0-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])\\.){3}(?:[0-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5]))(?:[;/][^#?<>\\s]*)?(?:\\?[^#<>\\s]*)?(?:#[^<>\\s]*)?(?!\\w)|(?:mailto:)?[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:(?:(?:[^\\s!@#$%^&*()_=+[\\]{}\\\\|;:'\",.<>/?]+)\\.)+(?:ac|ad|aero|ae|af|ag|ai|al|am|an|ao|aq|arpa|ar|asia|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|biz|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|cat|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|coop|com|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|info|int|in|io|iq|ir|is|it|je|jm|jobs|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mil|mk|ml|mm|mn|mobi|mo|mp|mq|mr|ms|mt|museum|mu|mv|mw|mx|my|mz|name|na|nc|net|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pro|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tel|tf|tg|th|tj|tk|tl|tm|tn|to|tp|travel|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xn--0zwm56d|xn--11b5bs3a9aj6g|xn--80akhbyknj4f|xn--9t4b11yi5a|xn--deba0ad|xn--g6w251d|xn--hgbk6aj7f53bba|xn--hlcj6aya9esc7a|xn--jxalpdlp|xn--kgbechtv|xn--zckzah|ye|yt|yu|za|zm|zw)|(?:(?:[0-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])\\.){3}(?:[0-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5]))(?:\\?[^#<>\\s]*)?(?:#[^<>\\s]*)?(?!\\w))","ig"),o=new RegExp("^"+n,"i"),u={"'":"`",">":"<",")":"(","]":"[","}":"{","B;":"B+","b:":"b9"},a={callback:function(t,e){return e?'<a href="'+e+'" title="'+e+'" target="_blank">'+t+"</a>":t},punct_regexp:/(?:[!?.,:;'"]|(?:&|&amp;)(?:lt|gt|quot|apos|raquo|laquo|rsaquo|lsaquo);)$/},function(t,e){e=e||{};var n,s,c,d,f,l,h,p,m,v,g,w,y="",b=[];for(s in a)void 0===e[s]&&(e[s]=a[s]);for(;n=i.exec(t);)if(c=n[0],h=(l=i.lastIndex)-c.length,!/[\/:]/.test(t.charAt(h-1))){do{p=c,w=c.substr(-1),(g=u[w])&&(m=c.match(new RegExp("\\"+g+"(?!$)","g")),v=c.match(new RegExp("\\"+w,"g")),(m?m.length:0)<(v?v.length:0)&&(c=c.substr(0,c.length-1),l--)),e.punct_regexp&&(c=c.replace(e.punct_regexp,function(t){return l-=t.length,""}))}while(c.length&&c!==p);d=c,o.test(d)||(d=(-1!==d.indexOf("@")?d.indexOf(r)?r:"":d.indexOf("irc.")?d.indexOf("ftp.")?"http://":"ftp://":"irc://")+d),f!=h&&(b.push([t.slice(f,h)]),f=l),b.push([c,d])}for(b.push([t.substr(f)]),s=0;s<b.length;s++)y+=e.callback.apply(window,b[s]);return y||t}),d.find("a").length||(d.find(".emoji").each(function(){t(this).replaceWith(t(this).attr("alt"))}),f=" "+d.html(),f=ctfLinkify(f));f.length>0&&(f=(f=f.replace(/<br>/g,"<br> ")).replace(/(^|\s)#(\w*[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]+\w*)/gi,function(t){var e=jQuery.trim(t);return/^#[0-9A-F]{6}$/i.test(e)?e:' <a href="https://twitter.com/hashtag/'+e.substring(1)+'" target="_blank" rel="nofollow">'+e+"</a>"}));f=f.replace(/[\s][@]+[A-Za-z0-9-_]+/g,function(t){var e=jQuery.trim(t);return' <a href="https://twitter.com/'+e.substring(1)+'" target="_blank" rel="nofollow">'+e+"</a>"}),d.html(f.trim()),d.append(c),d.find("a").css("color","#"+h),c.css("color","#"+h)}s.find(".ctf-tweet-text a").each(function(){jQuery(this).text().indexOf("http")>-1&&jQuery(this).text().length>63&&jQuery(this).text(jQuery(this).text().substring(0,60)+"...")})}),e.find(".ctf-author-name, .ctf-tweet-date, .ctf-author-screenname, .ctf-twitterlink, .ctf-author-box-link, .ctf-retweet-text, .ctf-quoted-tweet").css("color",e.find(".ctf-tweet-text").css("color")),e.find(".ctf-header .ctf-header-link").hover(function(){e.find(".ctf-header .ctf-header-img-hover").fadeIn(200)},function(){e.find(".ctf-header .ctf-header-img-hover").stop().fadeOut(600)}),e.find(".ctf_more").unbind("click").bind("click",function(e){e.preventDefault(),t(this).hide().next(".ctf_remaining").show()}),"function"==typeof ctf_custom_js&&ctf_custom_js(t),e.find(".ctf-author-box-link p:empty").remove()}function r(t,e,r,i,o,u){i.addClass("ctf-loading").append('<div class="ctf-loader"></div>'),i.find(".ctf-loader").css("background-color",i.css("color")),jQuery.ajax({url:ctf.ajax_url,type:"post",data:{action:"ctf_get_more_posts",last_id_data:t,shortcode_data:e,num_needed:o,persistent_index:u},success:function(e){""!==t?(-1==e.indexOf("<meta charset")&&r.find(".ctf-item").removeClass("ctf-new").last().after(e),r.find(".ctf-out-of-tweets").length&&(i.hide(),r.find(".ctf-out-of-tweets p").eq(0).fadeIn().end().eq(1).delay(500).fadeIn())):r.find(".ctf-tweets").append(e),i.removeClass("ctf-loading").find(".ctf-loader").remove(),n(r)}})}},jQuery(document).ready(function(t){ctf_init()})}(jQuery);
1
+ var ctf_js_exists=void 0!==ctf_js_exists;ctf_js_exists||function(u){function t(){if(window.ctfObject.consentGiven||!window.ctfObject.gdpr)return!0;if("undefined"!=typeof CLI_Cookie)null!==CLI_Cookie.read(CLI_ACCEPT_COOKIE_NAME)&&(window.ctfObject.consentGiven="yes"===CLI_Cookie.read("cookielawinfo-checkbox-non-necessary"));else if(void 0!==window.cnArgs){var u=("; "+document.cookie).split("; cookie_notice_accepted=");if(2===u.length){var t=u.pop().split(";").shift();window.ctfObject.consentGiven="true"===t}}else void 0!==window.cookieconsent?window.ctfObject.consentGiven="allow"===function(u){for(var t=u+"=",e=window.document.cookie.split(";"),n=0;n<e.length;n++){var i=e[n].trim();if(0==i.indexOf(t))return i.substring(t.length,i.length)}return""}("complianz_consent_status"):void 0!==window.Cookiebot?window.ctfObject.consentGiven=Cookiebot.consented:void 0!==window.BorlabsCookie&&(window.ctfObject.consentGiven=window.BorlabsCookie.checkCookieConsent("twitter"));var e=jQuery.Event("ctfcheckconsent");return e.feed=this,jQuery(window).trigger(e),window.ctfObject.consentGiven}function e(t){t.find(".ctf-hide-avatar").length&&!t.find(".ctf-hide-avatar.ctf-no-consent").length||t.find(".ctf-item").addClass("ctf-hide-avatar ctf-no-consent"),u(".ctf-header-img span").length&&u(".ctf-header-img").addClass("ctf-no-consent")}function n(t){c(),t.find(".ctf-item.ctf-no-consent").removeClass("ctf-hide-avatar"),t.find(".ctf-author-avatar").each(function(){u(this).find("span").replaceWith('<img src="'+u(this).find("span").attr("data-avatar")+'" alt="'+u(this).find("span").attr("data-alt")+'" width="48" height="48">')}),t.find(".ctf-header-img").each(function(){u(this).find("span").replaceWith('<img src="'+u(this).find("span").attr("data-avatar")+'" alt="'+u(this).find("span").attr("data-alt")+'" width="48" height="48">')}),t.find(".ctf-no-consent").removeClass("ctf-no-consent"),t.find(".ctf-header .ctf-header-link").hover(function(){t.find(".ctf-header .ctf-header-img-hover").fadeIn(200)},function(){t.find(".ctf-header .ctf-header-img-hover").stop().fadeOut(600)})}function i(){t()&&u(".ctf").each(function(){n(u(this))})}function c(){void 0===window.ctfObject.intentsIncluded&&(window.ctfObject.intentsIncluded=!1),u(".ctf").each(function(){window.ctfObject.intentsIncluded||void 0===u(this).attr("data-ctfintents")||(window.ctfObject.intentsIncluded=!0,function(){if(!window.__twitterIntentHandler){var u=/twitter\.com\/intent\/(\w+)/,t="scrollbars=yes,resizable=yes,toolbar=no,location=yes",e=550,n=420,i=screen.height,c=screen.width;document.addEventListener?document.addEventListener("click",a,!1):document.attachEvent&&document.attachEvent("onclick",a),window.__twitterIntentHandler=!0}function a(a){for(var o,s,f=(a=a||window.event).target||a.srcElement;f&&"a"!==f.nodeName.toLowerCase();)f=f.parentNode;f&&"a"===f.nodeName.toLowerCase()&&f.href&&f.href.match(u)&&(o=Math.round(c/2-e/2),s=0,i>n&&(s=Math.round(i/2-n/2)),window.open(f.href,"intent",t+",width="+e+",height="+n+",left="+o+",top="+s),a.returnValue=!1,a.preventDefault&&a.preventDefault())}}())})}window.ctf_init=function(){function i(i){i.addClass("ctf_is_initialized"),t()?n(i):e(i),i.find(".ctf-item.ctf-new").each(function(){var t,e,n,c,a,o,s=u(this),f=s.find(".ctf-tweet-text-media-wrap"),d=s.find(".ctf-tweet-text").remove(".ctf-tweet-text-media-wrap"),r=" "+d.html();if("true"!=i.attr("data-ctfdisablelinks")&&void 0!==r&&!i.find(".ctf-tweet-text-link").length){var A=i.attr("data-ctflinktextcolor"),l="";A&&(l=A.replace(";","").split("#")[1]),window.ctfLinkify=(t="[a-z\\d.-]+://",e="mailto:",n=new RegExp("(?:\\b[a-z\\d.-]+://[^<>\\s]+|\\b(?:(?:(?:[^\\s!@#$%^&*()_=+[\\]{}\\\\|;:'\",.<>/?]+)\\.)+(?:ac|ad|aero|ae|af|ag|ai|al|am|an|ao|aq|arpa|ar|asia|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|biz|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|cat|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|coop|com|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|info|int|in|io|iq|ir|is|it|je|jm|jobs|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mil|mk|ml|mm|mn|mobi|mo|mp|mq|mr|ms|mt|museum|mu|mv|mw|mx|my|mz|name|na|nc|net|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pro|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tel|tf|tg|th|tj|tk|tl|tm|tn|to|tp|travel|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xn--0zwm56d|xn--11b5bs3a9aj6g|xn--80akhbyknj4f|xn--9t4b11yi5a|xn--deba0ad|xn--g6w251d|xn--hgbk6aj7f53bba|xn--hlcj6aya9esc7a|xn--jxalpdlp|xn--kgbechtv|xn--zckzah|ye|yt|yu|za|zm|zw)|(?:(?:[0-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])\\.){3}(?:[0-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5]))(?:[;/][^#?<>\\s]*)?(?:\\?[^#<>\\s]*)?(?:#[^<>\\s]*)?(?!\\w)|(?:mailto:)?[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:(?:(?:[^\\s!@#$%^&*()_=+[\\]{}\\\\|;:'\",.<>/?]+)\\.)+(?:ac|ad|aero|ae|af|ag|ai|al|am|an|ao|aq|arpa|ar|asia|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|biz|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|cat|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|coop|com|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|info|int|in|io|iq|ir|is|it|je|jm|jobs|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mil|mk|ml|mm|mn|mobi|mo|mp|mq|mr|ms|mt|museum|mu|mv|mw|mx|my|mz|name|na|nc|net|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pro|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tel|tf|tg|th|tj|tk|tl|tm|tn|to|tp|travel|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|xn--0zwm56d|xn--11b5bs3a9aj6g|xn--80akhbyknj4f|xn--9t4b11yi5a|xn--deba0ad|xn--g6w251d|xn--hgbk6aj7f53bba|xn--hlcj6aya9esc7a|xn--jxalpdlp|xn--kgbechtv|xn--zckzah|ye|yt|yu|za|zm|zw)|(?:(?:[0-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])\\.){3}(?:[0-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5]))(?:\\?[^#<>\\s]*)?(?:#[^<>\\s]*)?(?!\\w))","ig"),c=new RegExp("^"+t,"i"),a={"'":"`",">":"<",")":"(","]":"[","}":"{","B;":"B+","b:":"b9"},o={callback:function(u,t){return t?'<a href="'+t+'" title="'+t+'" target="_blank">'+u+"</a>":u},punct_regexp:/(?:[!?.,:;'"]|(?:&|&amp;)(?:lt|gt|quot|apos|raquo|laquo|rsaquo|lsaquo);)$/},function(u,t){t=t||{};var i,s,f,d,r,A,l,F,h,m,C,B,g="",w=[];for(s in o)void 0===t[s]&&(t[s]=o[s]);for(;i=n.exec(u);)if(f=i[0],l=(A=n.lastIndex)-f.length,!/[\/:]/.test(u.charAt(l-1))){do{F=f,B=f.substr(-1),(C=a[B])&&(h=f.match(new RegExp("\\"+C+"(?!$)","g")),m=f.match(new RegExp("\\"+B,"g")),(h?h.length:0)<(m?m.length:0)&&(f=f.substr(0,f.length-1),A--)),t.punct_regexp&&(f=f.replace(t.punct_regexp,function(u){return A-=u.length,""}))}while(f.length&&f!==F);d=f,c.test(d)||(d=(-1!==d.indexOf("@")?d.indexOf(e)?e:"":d.indexOf("irc.")?d.indexOf("ftp.")?"http://":"ftp://":"irc://")+d),r!=l&&(w.push([u.slice(r,l)]),r=A),w.push([f,d])}for(w.push([u.substr(r)]),s=0;s<w.length;s++)g+=t.callback.apply(window,w[s]);return g||u}),d.find("a").length||(d.find(".emoji").each(function(){u(this).replaceWith(u(this).attr("alt"))}),r=" "+d.html(),r=ctfLinkify(r));r.length>0&&(r=(r=r.replace(/<br>/g,"<br> ")).replace(/(^|\s)#(\w*[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]+\w*)/gi,function(u){var t=jQuery.trim(u);return/^#[0-9A-F]{6}$/i.test(t)?t:' <a href="https://twitter.com/hashtag/'+t.substring(1)+'" target="_blank" rel="nofollow">'+t+"</a>"}));r=r.replace(/[\s][@]+[A-Za-z0-9-_]+/g,function(u){var t=jQuery.trim(u);return' <a href="https://twitter.com/'+t.substring(1)+'" target="_blank" rel="nofollow">'+t+"</a>"}),d.html(r.trim()),d.append(f),d.find("a").css("color","#"+l),f.css("color","#"+l)}s.find(".ctf-tweet-text a").each(function(){jQuery(this).text().indexOf("http")>-1&&jQuery(this).text().length>63&&jQuery(this).text(jQuery(this).text().substring(0,60)+"...")})}),i.find(".ctf-author-name, .ctf-tweet-date, .ctf-author-screenname, .ctf-twitterlink, .ctf-author-box-link, .ctf-retweet-text, .ctf-quoted-tweet").css("color",i.find(".ctf-tweet-text").css("color")),i.find(".ctf_more").unbind("click").bind("click",function(t){t.preventDefault(),u(this).hide().next(".ctf_remaining").show()}),"function"==typeof ctf_custom_js&&ctf_custom_js(u),i.find(".ctf-author-box-link p:empty").remove()}function a(u,t,e,n,c,a){n.addClass("ctf-loading").append('<div class="ctf-loader"></div>'),n.find(".ctf-loader").css("background-color",n.css("color")),jQuery.ajax({url:ctf.ajax_url,type:"post",data:{action:"ctf_get_more_posts",last_id_data:u,shortcode_data:t,num_needed:c,persistent_index:a},success:function(t){""!==u?(-1==t.indexOf("<meta charset")&&e.find(".ctf-item").removeClass("ctf-new").last().after(t),e.find(".ctf-out-of-tweets").length&&(n.hide(),e.find(".ctf-out-of-tweets p").eq(0).fadeIn().end().eq(1).delay(500).fadeIn())):e.find(".ctf-tweets").append(t),n.removeClass("ctf-loading").find(".ctf-loader").remove(),i(e)}})}window.ctfObject={},u(".ctf").length&&void 0!==u(".ctf").first().attr("ctf-gdpr")?(window.ctfObject.consentGiven=!1,window.ctfObject.gdpr=!0):(window.ctfObject.consentGiven=!0,window.ctfObject.gdpr=!1),u(".ctf").length<=u(".ctf_is_initialized").length||(window.ctfObject.consentGiven&&c(),u(".ctf").each(function(){var c=u(this),o=parseInt(c.attr("data-ctfneeded"));c.width()<=480&&c.addClass("ctf-narrow"),c.width()<=320&&c.addClass("ctf-super-narrow"),u(this).hasClass("ctf_is_initialized")||i(c),setTimeout(function(){if(o>0){var u=c.find(".ctf-more"),t=c.find(".ctf-item").last().attr("id"),e=c.find(".ctf-item").length;a(t,c.attr("data-ctfshortcode"),c,u,o,e)}},500),c.find(".ctf-more").on("click",function(){var t=u(this),e=c.find(".ctf-item").last().attr("id"),n=c.find(".ctf-item").length;a(e,c.attr("data-ctfshortcode"),c,t,0,n)}),c.find(".ctf-author-box-link p:empty").remove(),setTimeout(function(){t()?n(c):e(c)},500)}))},jQuery(document).ready(function(u){ctf_init(),u("#cookie-notice a").click(function(){setTimeout(function(){i()},1e3)}),u("#cookie-law-info-bar a").click(function(){setTimeout(function(){i()},1e3)}),u(".cli-user-preference-checkbox").click(function(){i()}),u(window).on("CookiebotOnAccept",function(u){i()}),u(document).on("cmplzAcceptAll",function(u){i()}),u(document).on("cmplzRevoke",function(u){i()}),u(document).on("borlabs-cookie-consent-saved",function(u){i()})})}(jQuery);
views/admin/customize.php CHANGED
@@ -29,6 +29,9 @@ settings_errors(); ?>
29
  <a id="misc"></a>
30
  <?php do_settings_sections( 'ctf_options_misc' ); // matches the section name ?>
31
  <hr>
 
 
 
32
  <a id="advanced"></a>
33
  <?php do_settings_sections('ctf_options_advanced'); // matches the section name
34
  $usage_tracking = get_option( 'ctf_usage_tracking', false );
29
  <a id="misc"></a>
30
  <?php do_settings_sections( 'ctf_options_misc' ); // matches the section name ?>
31
  <hr>
32
+ <a id="gdpr"></a>
33
+ <?php do_settings_sections( 'ctf_options_gdpr' ); // matches the section name ?>
34
+ <hr>
35
  <a id="advanced"></a>
36
  <?php do_settings_sections('ctf_options_advanced'); // matches the section name
37
  $usage_tracking = get_option( 'ctf_usage_tracking', false );
views/admin/support.php CHANGED
@@ -62,21 +62,40 @@ $twitter_api->setGetFields( $get_fields );
62
  $twitter_api->setRequestMethod( $request_method );
63
 
64
  $twitter_api->performRequest();
65
- $response = json_decode( $twitter_api->json , $assoc = true );
66
- $screen_name = isset( $response[0] ) ? $response[0]['user']['screen_name'] : 'error';
67
- if ( $screen_name == 'error' ) {
68
- if ( isset( $response['errors'][0] ) ) {
69
- $twitter_api->api_error_no = $response['errors'][0]['code'];
70
- $twitter_api->api_error_message = $response['errors'][0]['message'];
71
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72
  }
 
73
  ?>
74
 
75
  ## Twitter API RESPONSE: ##
76
  <?php
77
  echo 'Screen Name: ' . $screen_name."\n";
78
- echo 'Error No: ' . $twitter_api->api_error_no."\n";
79
- echo 'Error Message: ' . $twitter_api->api_error_message."\n";
 
80
  ?>
81
 
82
  </textarea>
62
  $twitter_api->setRequestMethod( $request_method );
63
 
64
  $twitter_api->performRequest();
65
+ $code = '';
66
+ $message = '';
67
+ if ( ! is_wp_error( $twitter_api->json ) ) {
68
+ $response = json_decode( $twitter_api->json , $assoc = true );
69
+ $screen_name = isset( $response[0] ) ? $response[0]['user']['screen_name'] : 'error';
70
+ if ( $screen_name == 'error' ) {
71
+ if ( isset( $response['errors'][0] ) ) {
72
+ $twitter_api->api_error_no = $response['errors'][0]['code'];
73
+ $twitter_api->api_error_message = $response['errors'][0]['message'];
74
+ $code = 'Error No: ' . $twitter_api->api_error_no."\n";
75
+ $message = 'Error Message: ' . $twitter_api->api_error_message."\n";
76
+ }
77
+ }
78
+
79
+ } else {
80
+ $screen_name = 'ERROR';
81
+ $response = $twitter_api->json;
82
+
83
+ if ( isset( $response->errors ) ) {
84
+ $message = 'Error Message: ';
85
+ foreach ( $response->errors as $key => $item ) {
86
+ $message .= $key . ' => ' . $item[0] . "\n";
87
+ }
88
+ }
89
  }
90
+
91
  ?>
92
 
93
  ## Twitter API RESPONSE: ##
94
  <?php
95
  echo 'Screen Name: ' . $screen_name."\n";
96
+ echo $code;
97
+ echo $message;
98
+
99
  ?>
100
 
101
  </textarea>