Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /home/nandedex/www/s.nandedexpress.com/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : /home/nandedex/www/s.nandedexpress.com/live-news.zip
PK|��[����2p2pdoc/general_information.htmlnu�[���<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head lang="en">
    <meta content="text/html; charset=UTF-8" http-equiv="content-type">
    <title>Template Documentation Template</title>
    <link
href="http://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700"
      rel="stylesheet" type="text/css">
    <!-- Framework CSS -->
    <link rel="stylesheet" href="assets/blueprint-css/screen.css"
      type="text/css" media="screen, projection">
    <link rel="stylesheet" href="assets/blueprint-css/print.css"
      type="text/css" media="print">
    <!--[if lt IE 8]><link rel="stylesheet" href="assets/blueprint-css/ie.css" type="text/css" media="screen, projection"><![endif]-->
    <link rel="stylesheet"
      href="assets/blueprint-css/plugins/fancy-type/screen.css"
      type="text/css" media="screen, projection">
    <style type="text/css" media="screen">
p, table, hr, .box { margin-bottom:25px; }
.box p { margin-bottom:10px; }
</style>
  </head>
  <body>
    <div class="container">
      <h3 class="center alt">“Live News” Documentation by “DAEXT” v2.09</h3>
      <hr>
      <h1 class="center">“Live News”</h1>
      <div class="borderTop">
        <div class="span-6 colborder info prepend-1">
          <p class="prepend-top">Created: 27/07/2018<br>
            By: DAEXT<br>
            Email: support@daext.com</p>
        </div>
        <!-- end div .span-6 -->
        <div class="span-12 last">
          <p class="prepend-top append-0">Thank you for using Live News.
            If you have any questions that are beyond the scope of this
            help file please contact us via email or with the contact
            form available in our <a
              href="https://codecanyon.net/user/daext">CodeCanyon
              Profile</a>.</p>
        </div>
      </div>
      <!-- end div .borderTop -->
      <hr>
      <h2 id="toc" class="alt">Table of Contents</h2>
      <ol class="alpha">
        <li><a href="#video-tutorials">Video Tutorials<br>
          </a></li>
        <li><a href="#installation-single-site">Installation (Single
            Site)</a></li>
        <li><a href="#installation-multisite">Installation (Multisite)</a></li>
        <li><a href="#create-a-news-ticker-with-manually-added-news">Create

            a news ticker with manually added news<br>
          </a></li>
        <li><a href="#create-a-news-ticker-with-news-from-the-posts"><span
              style="color: #000099;">Create a news ticker with news
              from the posts<br>
            </span></a></li>
        <li><a href="#create-a-news-ticker-with-news-from-an-rss-feed">Create

            a news ticker with news from an RSS feed<br>
          </a></li>
        <li><a href="#create-a-news-ticker-with-news-from-twitter">Create

            a news ticker with news from Twitter<br>
          </a></li>
        <li><a href="#performance">Performance</a></li>
        <li><a href="#credits">Credits</a></li>
        <li><a href="#faq">FAQ</a><br>
        </li>
      </ol>
      <hr>
      <h3 id="video-tutorials">A) Video Tutorials</h3>
      <p>This video series covers the functionalities of the Live News
        plugin.</p>
      <p>Please note that not all the aspects and implications are
        covered in this section, it's recommended that you read the
        entire documentation (FAQ included) before using this plugin in
        a production environment or asking for support to the plugin
        author.</p>
      <ul>
        <li> <a href="https://www.youtube.com/watch?v=5fOsVXEeevs">Create

            a news ticker with manually added news</a></li>
        <li><a href="https://www.youtube.com/watch?v=ANN51C2-er8">Create
            a news ticker with news from the posts</a></li>
        <li><a href="https://www.youtube.com/watch?v=wWU8Lmc46mg">Create
            a news ticker with news from an RSS feed</a></li>
        <li> <a href="https://www.youtube.com/watch?v=twgh1zIoOAE">Create

            a news ticker with news from Twitter</a></li>
      </ul>
      <hr>
      <h3 id="installation-single-site">B) Installation (Single Site)</h3>
      <p>With this procedure you will be able to install the Live News
        plugin on your WordPress website.</p>
      <ol>
        <li> Visit the <span style="font-weight: bold;">Plugins -&gt;
            Add New</span> menu</li>
        <li>Click on the <span style="font-weight: bold;"
            class="aa-highlighter">Upload Plugin</span> button and
          select the zip file you just downloaded<span
            style="font-style: italic;"></span></li>
        <li>Click on <span style="font-weight: bold;">Install Now</span></li>
        <li>Click on <span style="font-weight: bold;">Activate Plugin</span></li>
      </ol>
      <hr>
      <h3 id="installation-multisite">C) Installation (Multisite)</h3>
      <p>This plugin supports both a <span style="font-weight: bold;">Network


          Activation</span> (the plugin will be activated on all the
        sites of your WordPress Network) and a <span
          style="font-weight: bold;">Single Site Activation</span> in a
        <span style="font-weight: bold;">WordPress Network</span>
        environment (your plugin will be activated on a single site of
        the network).</p>
      <p>With this procedure you will be able to perform a <span
          style="font-weight: bold;">Network Activation</span>:</p>
      <ol>
        <li> Visit the <span style="font-weight: bold;">Plugins -&gt;
            Add New</span> menu</li>
        <li>Click on the <span style="font-weight: bold;"
            class="aa-highlighter">Upload Plugin</span> button and
          select the zip file you just downloaded<span
            style="font-style: italic;"></span></li>
        <li>Click on <span style="font-weight: bold;">Install Now</span></li>
        <li>Click on <span style="font-weight: bold;">Network Activate</span></li>
      </ol>
      <p>With this procedure you will be able to perform a <span
          style="font-weight: bold;">Single Site Activation</span> in a
        <span style="font-weight: bold;">WordPress Network</span>
        environment:</p>
      <ol>
        <li>Visit the specific site of the <span style="font-weight:
            bold;">WordPress Network</span> where you want to install
          the plugin<br>
        </li>
        <li>Visit the <span style="font-weight: bold;">Plugins</span>
          menu</li>
        <li>Click on the <span style="font-weight: bold;"
            class="aa-highlighter">Activate</span> button (just below
          the name of the plugin)</li>
      </ol>
      <hr>
      <h3 id="create-a-news-ticker-with-manually-added-news">D) Create a
        news ticker with manually added news</h3>
      <p>This procedure will guide you on the creation of a news ticker
        that make use of your manually added news:</p>
      <ol>
        <li>Visit the <span style="font-weight: bold;">Live News -&gt;
            News Tickers</span> menu</li>
        <li>Enter the name of the news ticker in the <span
            style="font-weight: bold;">Name</span> input field</li>
        <li>Select where the news ticker should be applied with the <span
            style="font-weight: bold;">Target</span> select box</li>
        <li>Enter the URL where the news ticker should be applied with
          the <span style="font-weight: bold;">Target URL</span> input
          field (this value will be considered only if <span
            style="font-weight: bold;">URL</span> is selected in the <span
            style="font-weight: bold;">Target</span> select box)</li>
        <li>Open the <span style="font-weight: bold;">Source</span>
          section and select <span style="font-weight: bold;">Manually
            Added</span> in the <span style="font-weight: bold;">Source</span>
          select box</li>
        <li>Click the <span style="font-weight: bold;">Add News Ticker</span>
          button to create the news ticker</li>
      </ol>
      <ol>
      </ol>
      <ol>
      </ol>
      <ul>
      </ul>
      <hr>
      <h3 id="create-a-news-ticker-with-news-from-the-posts">E) Create a
        news ticker with news from the posts</h3>
      <p>This procedure will guide you on the creation of a news ticker
        that make use of the titles, excerpts and permalinks of your
        posts:</p>
      <ol>
        <li>Visit the <span style="font-weight: bold;">Live News -&gt;
            News Tickers</span> menu</li>
        <li>Enter the name of the news ticker in the <span
            style="font-weight: bold;">Name</span> input field</li>
        <li>Select where the news ticker should be applied with the <span
            style="font-weight: bold;">Target</span> select box</li>
        <li>Enter the URL where the news ticker should be applied with
          the <span style="font-weight: bold;">Target URL</span> input
          field (this value will be considered only if <span
            style="font-weight: bold;">URL</span> is selected in the <span
            style="font-weight: bold;">Target</span> select box)</li>
        <li>Open the <span style="font-weight: bold;">Source</span>
          section and select <span style="font-weight: bold;">Posts</span>
          in the <span style="font-weight: bold;">Source</span> select
          box</li>
        <li>Use the <span style="font-weight: bold;">Category</span>
          select box to determine if the news should be retrieved from
          all the posts or only from the posts of a specific category</li>
        <li>Click the <span style="font-weight: bold;">Add News Ticker</span>
          button to create the news ticker<br>
        </li>
      </ol>
      <ol>
      </ol>
      <ul>
      </ul>
      <hr>
      <h3 id="create-a-news-ticker-with-news-from-an-rss-feed">F) Create
        a news ticker with news from an RSS feed</h3>
      Before using an RSS feed please verify (by inspecting the RSS feed
      source code) that the following information are available:<br>
      <br>
      <ul>
        <li>The <span style="font-weight: bold;">title</span> tag (used
          in the featured news title and in the sliding news)</li>
        <li>The <span style="font-weight: bold;">description</span> tag
          (used in the featured news excerpt)</li>
        <li>The <span style="font-weight: bold;">link</span> tag (used
          to link the featured news title and the sliding news if the <span
            style="font-weight: bold;">Enable Links</span> option is
          active)</li>
      </ul>
      <p>This procedure will guide you on the creation of a news ticker
        that make use of the information available in an RSS feed:</p>
      <ol>
        <li>Visit the <span style="font-weight: bold;">Live News -&gt;
            News Tickers</span> menu</li>
        <li>Enter the name of the news ticker in the <span
            style="font-weight: bold;">Name</span> input field</li>
        <li>Select where the news ticker should be applied with the <span
            style="font-weight: bold;">Target</span> select box</li>
        <li>Enter the URL where the news ticker should be applied with
          the <span style="font-weight: bold;">Target URL</span> input
          field (this value will be considered only if <span
            style="font-weight: bold;">URL</span> is selected in the <span
            style="font-weight: bold;">Target</span> select box)</li>
        <li>Open the <span style="font-weight: bold;">Source</span>
          section and select <span style="font-weight: bold;">RSS</span>
          in the <span style="font-weight: bold;">Source</span> select
          box</li>
        <li>Enter the URL of the RSS feed in the <span
            style="font-weight: bold;">Source RSS</span> input field</li>
        <li>Click the <span style="font-weight: bold;">Add News Ticker</span>
          button to create the news ticker</li>
      </ol>
      <ul>
      </ul>
      <ul>
      </ul>
      <hr>
      <h3 id="create-a-news-ticker-with-news-from-twitter">G) Create a
        news ticker with news from Twitter</h3>
      <p>If you plan to generate a news ticker based on the information
        provided by Twitter it's very important to note what follows:</p>
      <p><span style="font-weight: bold;">Use Twitter as a source only
          with real web servers</span></p>
      <p> Local development environment (like WAMP, XAMPP, etc.) are
        usually not properly configured to retrieve the information from
        Twitter. For this reason it's recommended to use Twitter as a
        source only on real web servers.</p>
      <p><span style="font-weight: bold;">A Twitter App should be
          created to get the proper keys</span></p>
      <p>To get the proper keys from Twitter (these keys are used by
        Twitter to identify who is sending the requests to their API)
        you have to follow this procedure:</p>
      <ol>
        <li>Create a Twitter App from <a
            href="https://apps.twitter.com/">this page</a></li>
        <li>In the <span style="font-weight: bold;">Permissions</span>
          tab keep the <span style="font-weight: bold;">Access</span>
          to <span style="font-weight: bold;">Read Only</span> (this
          plugin doesn't need to write or delete data)</li>
        <li>Visit the <span style="font-weight: bold;">Keys and Access
            Tokens</span> tab (you will be using the information
          available on this page during the configuration of of the news
          ticker)</li>
      </ol>
      <span style="font-weight: bold;">Create the news ticker<br>
      </span><br>
      <ol>
        <li>Visit the <span style="font-weight: bold;">Live News -&gt;
            News Tickers</span> menu</li>
        <li>Enter the name of the news ticker in the <span
            style="font-weight: bold;">Name</span> input field</li>
        <li>Select where the news ticker should be applied with the <span
            style="font-weight: bold;">Target</span> select box</li>
        <li>Enter the URL where the news ticker should be applied with
          the <span style="font-weight: bold;">Target URL</span> input
          field (this value will be considered only if <span
            style="font-weight: bold;">URL</span> is selected in the <span
            style="font-weight: bold;">Target</span> select box)</li>
        <li>Open the <span style="font-weight: bold;">Source</span>
          section and select <span style="font-weight: bold;">Twitter</span>
          in the <span style="font-weight: bold;">Source</span> select
          box</li>
        <li>Enter the Twitter username for which you want to retrieve
          the tweets</li>
        <li>Enter the<span style="font-weight: bold;"> Twitter Oauth
            Access Token</span> of your Twitter App</li>
        <li>Enter the<span style="font-weight: bold;"> Twitter Oauth
            Access Token Secret</span> of your Twitter App</li>
        <li>Enter the<span style="font-weight: bold;"> Twitter Consumer
            Key</span> of your Twitter App</li>
        <li>Enter the<span style="font-weight: bold;"> Twitter Consumer
            Secret</span> of your Twitter App</li>
        <li>Click the <span style="font-weight: bold;">Add News Ticker</span>
          button to create the news ticker</li>
      </ol>
      <p>In case you want to remove links from the retrieved tweets use
        the <span style="font-weight: bold;">Twitter Strip Links</span>
        option, to remove hashtags use the <span style="font-weight:
          bold;">Twitter Strip Hashtags</span> option and to remove
        usernames use the <span style="font-weight: bold;">Twitter
          Strip Usernames</span> option.</p>
      <hr>
      <h3 id="performance">H) Performance</h3>
      <p>The <span style="font-weight: bold;">Performance</span>
        section available in the <span style="font-weight: bold;">Live
          News -&gt; News Tickers</span> menu allows you to avoid common
        problems associated with the high number of AJAX requests
        required to retrieve the news.</p>
      <p><span style="font-weight: bold;">Cached Cycles</span></p>
      <p>This value determines the number of cycles performed by the
        news ticker without updating the news. If you set 10 then every
        10 cycles the news will be updated with an AJAX request.</p>
      <p>If you website is hosted on a shared hosting environment or if
        you have an high number of visitors you can reduce the number or
        requests sent by the news ticker to your server simply by
        increasing this value.</p>
      <p>You can also decide to update the news at every cycle by
        setting the value of this option to 0, but this is not
        recommended in most cases.</p>
      <p><span style="font-weight: bold;">Transient Expiration</span></p>
      <p>With this option you can set the transient expiration in
        seconds or 0 if you don't want to use a transient for the news
        ticker.</p>
      <p>A transient gives you the following advantages:</p>
      <ul>
        <li>When AJAX requests are sent the news will not be retrieved
          with a query on your database, a request to the RSS feed
          (which may ban the IP address of the server if too many
          requests are performed) or a request to Twitter (which may
          deny you the access if too many requests are performed), but
          directly from the transient.</li>
        <li>The time required to complete the AJAX requests is reduced
          if the news are retrieved from a transient.</li>
        <li>When a transient is available for a news ticker no queries
          or AJAX requests will be performed when a user visits the page
          (AJAX requests will be sent only when the number of cached
          cycles is reached)</li>
      </ul>
      <p>Please note the a transient is created when the news ticker is
        loaded for the first time or when the previous transient is
        expired. The transient of a news ticker will last for the number
        of seconds defined with the <span style="font-weight: bold;">Transient

          Expiration</span> option.</p>
      <p>When a transient is available for a news ticker an icon will
        appear on the <span style="font-weight: bold;">Live News -&gt;
          News Tickers</span> menu:</p>
      <p><img
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAxYAAABHCAIAAAAV5kY/AAATZUlEQVR4nO3dz28TZ4MH8PwXHHt8j3t4Dsgnn9I9vJFWRJq3ykiNL1kOxmq6BEFHoLVEHZQQayqQ+0oWeo0ob6FKg9Ng+r7uNgT1dcimaoxCvIBVFGdtQrHNWq/jAmMbP/Ye5ofH9jgz44E4mXw/4kCc8WSSfJ9nvvPDzsDOzk4ul0un01sAAAAAsKt0Op3L5XZ2dgZyuZwAcMBtbW31exPgwEOKABQYDrpyudxAOp3u92YAWIXRDtYhRQAKDAdd6XR6AD8msAHEGKxDigAUGA66tra2UKHADhBjsA4pAlBgOOhChQKbQIzBOqQIQIHhoAsVCmwCMQbrkCIABYaDLlQosAnEGKxDigAUGA66UKHAJhBjsA4pAlBgOOhChQKbQIzBOqQIQIHhoAsVCmwCMQbrkCIABYaDLlQo6LdiauXm+U8/GnQQQohj8KNPz99cSRVNrwYxPtSQIgAFhsNeQYWCfsqvXRl1EA2OUX5l29SqEONDCykCUGA47CWDFWptihDyx6m1ourDqbX3vXFgb8W16WPK8HYOH+f8ly/7OdeH8vAfnl4zcdykF+PtW+7OSeUdhzi/cevcNYyLPbW3KZK/6MY196CDEOI89um1DfNH9wDvR1+Gw2FmsEKtzxBCCBn9Jtn8cGb9vW8d2Fjx3ufKodLk/XKjXq9TSmm93nh+2yN9xvH5PcPjXS/GVVpvNBqNxoafEOK5/bLRaDQatGb5+1BZm8a42GN7nSLxi6587iAjX281Gi+jJwlxfIHWDPtCX4bD4WauQhHHmf/KC20VKvXD+Y+dhBDiPHb6ZrIoCNJZqnPXbp4edBDi/PhKJDL1sZMQx+DpW0npt5dfEw/jcBR3SKW+GVWdDToxfXPq048GnYOnI9vl6pvlSfkTo9+kDK7Q6GhfnyGEeBZeSJvRmd7tW25Cxqam3A7iOHcvryzjHLt25Zxy5qojwKqzXO5b5k6XQ6/6k6LfvvMQ4jjx3VZZ7OVyEd9eueIedBDiGHRP3UsJghQKKQ7KufuOgBWTt8QUOgbdymyIGRLM6tukeoiZqVAej4eQoYtrRXWFSt0cdUwulxqNxsblIUJO3NmWF3dMLu80yve9hBByYmFbWuDMj3lBELbDbkI8t583Gs+/9RDHmR/y7/sbhf1l+/sTRMPw5fXfpV2UPA/MG6wjvVQozfS+WPAQQlyzqUajUa9V8nf+g5Bh/0a5sbM86ZCCrxHgKq1v+Akh/o1GnVZ7/bmAGX1KUeHuZ+IR5UdT95T1Fte+GCZDM2ulRqO0NjNEhr9YK4pZksKmzJptASve+9xBXF9vSSl0fL5SxAwJPejfpHqImalQM788uTpMyOg3yZ+bFapK66XUz+Fr58VbA8TZYn2GEDK5/LpSrmQWjhPiWchXy+XsgocQz3e/CUJq/t/lB6vPFo4T4vsHDrMOlwczHSPd4ZnbEmitlLzpVt8MafTCWC8VSjO9LxY8hIx8u/m2XC6Xy/kfPyNkKPSkVilXXi9PihvUJcC4wL3H+pSiSm07etIpfb2Pzv2QEgSh+JOPkKGrT2qVcrlSS82NEPLZj/nuFUoJWPEnn/SRUH5LxVaFGRJ60L9J9RAzVaHW375ZnnQQx5nPTiq/hY0rxwgZ/s/ZX1LJ256WCjWzXhEE9WFY878dv2rPd7+9528U9pf1jtE+Mpeib//v3vljbY/PJIytsZcKpZleKadZcfHfvmt+VJH3gl0CjAq1x/qVonKV1kvJ294Rcbc0ejPVkhNBkA8Xu1cozYApMEOCef2bVA8xcxVKqNTyt+XTgTPrgiAk/jJEyOSyQGtvn86OtFUoQehSoTILxwnh7pUaMlz5OGxyf/e0jeqhEz6ePzPa9ijxLBi8hNFDhdJOr3q3J120GQr9jyAIQjEmnYXqEmBUqD3WvxQJ5cpbWq+/3LjqIYTMPBB+X55UciIIv86OEPLZ3YIqS0p42gLW+kQJZkgwr4/D4fAyWaEEoUqfXB1uVqjMrIuQkb/+KhTXLg4ToxWq+uxbF3GcCKcEIXXLTcjHN43e3gY2UX32rat1WDtclxcWZlxtb2ji+vaZwX1HDxVKO72te7jKP6MnCRm+uFYUUuET0r1QXQK8fslByMzPPfw4oCf9SVH+h9OE/HFqJS+Uq5lZDyGehZxQef3QP0SGLq7kBSG/cnGIDF9++Lry+/IkIY7JfxSF/H9fHNKsUJXXy5MOMWBC6qYUJsyQYF7/JtVDzHSFEsri1Ty5Ub158vVxJyGOwRMzl7kh4phcLepXKKFK82tXPeKLVzxX1/I4xDp0qlKMFP6HlNL6Q3/LDDC5/MZoNHqoUNrpbd3DCdXa9j3viIM4Bt1/DXmlYGsHuLY5d9xJCBm8YvA8OVjUlxRVavm1qyeHnYSof/2VGn3ZmolaRajUtqPch23haQtYpSZs3Z50OVvWhhkSzOvbpHqIGaxQNap66W6lVm++pU7lrfR2O3VK69K9kOrFq7Qun4VW/VcoV2vS8xp1WquW39s3CPtVpSZs+IdVI3v0HM+fU7+t7rB/Q6hVjK7P6Giv0eZ1Ec30qnMqCEIqPEbENwGq5/9+khDu7j+FLgEuy6ujb839LKBXfUlRuVqj9Xqj49evkYlytTVhtNYRMDGGnU/EDAlm9WtSPcTwB16gbyo1urNxtf0sszT2XZfF43jD3leMq2+efK2ccnBN3ts2s1Hw3h2MFAHsCQyHPYYKBX1Urryl9fLztbnJkyPinyBwfDhycnJu7XnZ9KH3e4ux6hxBo17HCYF950CkCGBvYDjsKVQo6LNypfK2RilttpQ6rVUrposKYnyYIUUACgyHPYMKBTaBGIN1SBGAAsNBFyoU2ARiDNYhRQAKDAddqFBgE4gxWIcUASgwHHShQoFNIMZgHVIEoMBw0IUKBTaBGIN1SBGAAsNBFyoU2ARiDNYhRQAKDAddqFBgE4gxWIcUASgwHHShQoFNIMZgHVIEoMBw0IUKBTaBGIN1SBGAAsNBl1ShAAAAAMCUga2tLQpwwD179qzfmwAHHlIEoMBw0IUKBTaB0Q7WIUUACgwHXahQYBMY7WAdUgSgwHDQhQoFNoHRDtYhRQAKDAddqFBgExjtYB1SBKDQHA6NgYF3/m/vv7V3BRUKbAI7P7AOKQJQoELpQoUCm8DOD6xDigAUqFC6UKHAJrDzA+uQIgDF7hXK+vpRoQD2C+z8wDqkCECBCqULFQpsAjs/sA4pAlDYvEK9fMxPzR2ZmP3D1NL9l9Xe1oEKBTaBnR9YhxQBKGxdobI3puYuxAuUCoX44tGplec9rQUVCmwCOz+wDikCUPRYoYr/e3fxJz54x+n/gf8qduvX56+7LNhjhXr1+IJ39oh38f4rc8+jNHvLPzswofPviP9n43XKWIXKRjmGYbhotvlQJjLe/lA/ZKKnvNGsuIXBhOYiu3wKbERv5yes8qq8lmI+hnGHM6oPfbGS1vMM5qe5mJxJOID0K9TeT4ZKtExMZcIqzzLepYLmJxNBpnM9mg8afzrYkekKVc5+H5r/oLOUeP92I6UxvfZSoV49vuCV13zWbIt6fEGvPw1MzA5MLN43vEbjFYrjONUckY1yXq+3/xUqEdTdBlSow0F351eK+Rh+VRA/iAdcPl8z0Ykg2y1HpvNjIJOwXxmrUHs7GfZQoUoxH8fz4+ORjNZnUaHAGJMVquUczwdn553eOVWdmr/wsL1Fma5Q6v7UY4t6x4xXqGA47FaOarJRjotGgwwXzQqrPKscv2ci4y3H8tkox0yHrnMulmFdXDgpyI/H+HGWYVgXdz1ZouLeLRCnlFKaCLKsND7l/VphNTDuYhmGHfOKi6vWzjAMw3DRR6rJpRAPSV/werKknndKiaBbmufaN0BczDs9zTJsIC5QOHAM7fxcoSSllNJkyBWIJ0MuKa3ZyCnpjJR2MAKRqM/FMuw4H5N2kx2ZlGKmymRWa22wvxmrUN0mQ0qV6Uf9W9ecBtV9SNW6uzxdXaF2nXLFlSx5uWi2sOSV804ppaXNiBjiUHBa6UCaD2rmVntJsDUzFapKy9XXDxePTsx+4I/Fi8pOtPho8W9HpcZz5/uikVV1IV6/86/cjSwcUbcoc7cx6Z6IMnEKipqqUAnVHifKucMZadyrBnQ2yrWeO85GOYblIhlKS/GAS75UkgyNufhYgdJSPDjG+mIFeY2U0mzEy3HTkSylNBMWC08iyHqjBUop3bw+3rz2Qiltzj2qyyiRcda3VKCUZiIcK+3UgglaSoZOeaWDMo0NEDeVX8WO7qAycBdLJuw+JUfLFyvRRJDlVwVKSzGfuK/pFgxmLBgvUZqJcIx4YN+ZyWYClf2h1tpgfzNYobpNhrQU8zGcOM1sXh9nuKgyt7RPg5oVquvTW85C7TblSg9y0Sylwirf7FDJ0Jh4RFqKB8fkDtTtwc7cai4JNme8Qr1+uHj07OL9V9XNXzc7JzqxWg1MzP7Ljae6q9Im96dNSmlx/fTZWaVFHbn0i5mptY8VisrTRmHJ6w5nmuNe3hN1DudslJOmgZY9i0sZ2NnIKfHiirRuYZXnY7GAL1aipZhP7EvJkIsLJTKap4Y6KlQm7JbPZ6m2IRCJci4+LvUjzQ1QbyocQEZuBJZSVor55F0MG0xQmgiKJz67BkMsXqr7qToz2VmhNNcG+5vRCtV1MpQJpUxUvrinOQ12OQvV5eltF/K6T7mU0kxkXFqbsMqzUuzUE2Mm7O6cLZUHNXOruSTYncEK9frholO6EXtlU3tNpe+/FK+7Lan3zkYrlLo/vXp84dJS/JWwGVmQvmLZ1PckVqjF+7v9xwRTFUoauPIxe3Pci4/Lxz4aTxQXUhoX00LpYYE4TYa8kWwh6g0maDwgD+TS5lLAO8Yy7Dgf3Ww9TdRRoTqv04uHgOEwr5xj0twA3DJ1wBl6LVUiyAYTpVVeOpkp1vRs5JR4TK8fjObpgvZMdlYo7ZzDvma4QnWbDEvJ694xlmFY1/j42G5tSbtC7fp01VO6Trliw1ETO5R6YtScLVse7Mit5pJgd4Yq1IuVP6nO4hwNPW7t9MKj+TtO77zzjLTAH7zzTn/sUVlrVZpePeV9clWS+lPrg+b0tUIJqzzDR6PSVQ/VoVMyNBaMLfk6hnOXCsXKR/UqwirvDq9GuWCC0mTIG1kKjauu41NKKS3Eg25X64OaZ6E6K1QwQWk2yo2JT9bcAMwLB5yhCiWs8u5wJCjfbUczYTcfiwWahwLawZCDXYr52k5VKpnUqlBaOYd9zXiF0p4MkyEXy4uXvpovAe1aoaQzRGKspDP0uzxdvZ5uU27LSSRxLd6lQutppGzkVOdZKOVBzdxqLgl2p1+hypsh/7zTOydeVjtyZs7pnf/T/GbrM0r3Q3OqK2ULN15UNValqbU/8Zd+stafaJ8rFC3FfCwr3+6tPvucDI27XJ3DWftIKxlyifeW0EyEY5VzTTEfx3Hi6YB4gOM46YnZKOcKxEtUvB287TUmiSDTdidKMjQmLZ6JcIx3qdDyKS6S7bIBqFAHnLF39BFT1rymlgx5AwFevsGuWzCk+1MyEU5p7O2ZbKlQyhVojZzDfma8QmlPhokgKyajtHmdY6QrwF1vexIXzUQ4tnl4ucvTW+aoLlNua4MSv8x4JCPeJCrdj9W8mUnzQc3cai4JNmf4Xqin/NnZgYnZgS8fdHkLqOc3/Bqvy9OrUIXvv5wdmIptlil99fTPQbE/bYb8Pfcn2u8KRQtLXka+ut5yAT8e0LpQ0e16f2aJH2cZpvXSXDbKye/UU4hybHM3J70+RP2CKFlhNeBm216R13w5SSheaNmG0iov3R3ZuQGoUAecwTdFLMWm2WnVS5gSwZZyox0MPhzxsgzDjgdW5ZdhtWdSNUakTGa75Bz2MRMVSnsyzMam3SzDsOP8UiLqFc/cdJkGs+LLPN3TsYgye+769NY5SmvKFVb59q5eWPJKr4EQM8u6fNFIoG22bHtQe37WWhJszXCFqsZviOeZ5jrfuYDS4qNfn9NXjy+cbf+sXoV6fHpidmBino8nQyF1f4o96v2NDPpSoXSV4gFXt/dxA9gLeF9psO7ApAhTLrx/Jt7U4NWDT6TrdHPHF1Uvyis+DfnlalVuf0GNToVKxZzy5b/T8dK76E90X1aoTNjNsHg/ZuivA7Pzg33sYKQIUy7sCVNvram8Lk+6r9w77zyr81dTdq9QheU7qjuo5v/NZ70/0X1ZoQD2gYOx84P9DSkCUJj9Ay+vUyuftL17+MTswMTsv4YePNe6dWn3ChX/qmUlRy9Z70+0T+8LBbDvYecH1iFFAIqe/sywUEg9CH219Il/fjS49OfF9UfFrm+It+uqsrcuLRwP/XTj5+Sjl+/wRlKdvzRs6m8MU1QosA3s/MA6pAhA0VOFMuEdrqpfUKHAJrDzA+uQIgAFKpQuVCiwCez8wDqkCECBCqULFQpsAjs/sA4pAlCgQulChQKbwM4PrEOKABS7V6h3+G/vv7V3BRUKbAI7P7AOKQJQoELpQoUCm8DOD6xDigAUqFC6tra2BtLpdL83A8Aq7PzAOqQIQIHhoCudTg/kcrl+bwaAVRjtYB1SBKDAcNCVy+UGdnZ2crlcOp3eAgAAAIBdpdPpXC63s7Pz/wDvQXDkNVRzAAAAAElFTkSuQmCC"
          alt=""></p>
      <p>Click on the icon to delete the transient, this is required if
        you want to see the changes applied to a news ticker (that make
        use of a transient) actually reflected on the news ticker
        generated on the front-end.</p>
      <span style=" color: #000099;"><span style=" color: #222222;"></span></span><span
        style=" color: #000099;"><span style=" color: #222222;"></span></span>
      <hr>
      <h3 id="credits">I) Credits</h3>
      <p>This plugin makes use of the following resources:</p>
      <ul>
        <li><a href="https://github.com/harvesthq/chosen"><span
              style="color: #000099;">Chosen</span></a> licensed under
          the <a
            href="http://www.opensource.org/licenses/mit-license.php"
            target="_blank" rel="nofollow">MIT License</a></li>
        <li><a href="https://github.com/J7mbo/twitter-api-php"><span
              style="color: #000099;">Twitter API PHP</span></a>
          licensed under the <a
            href="http://www.opensource.org/licenses/mit-license.php"
            target="_blank" rel="nofollow">MIT License</a></li>
        <li><a href="http://mobiledetect.net/"><span style="color:
              #000099;">Mobile Detect</span></a> licensed under the <a
            href="http://www.opensource.org/licenses/mit-license.php"
            target="_blank" rel="nofollow">MIT License</a></li>
        <li><a href="https://momentjs.com/"><span style="color:
              #000099;">Moment.js</span></a> licensed under the <a
            href="http://www.opensource.org/licenses/mit-license.php"
            target="_blank" rel="nofollow">MIT License</a></li>
      </ul>
      <p>For each library you can find the actual copy of the license
        inside the folder used to store the library files.</p>
      <ul>
      </ul>
      <hr>
      <h3 id="faq">J) FAQ</h3>
      <h4
id="which-links-are-considered-internal-links-in-a-site-of-a-wordpress-network"><span
          style="font-weight: bold;">How to change the time format
          displayed in the clock?</span><br>
      </h4>
      <p>A custom time format can be specified by using&nbsp; the <b>Source

          -&gt; Clock Format</b> option of the news ticker. The
        supported tokens are listed in the <a
          href="https://momentjs.com/docs/#/displaying/format/">Format
          Section</a> of the Moment.js documentation.<br>
      </p>
      <h4
id="which-links-are-considered-internal-links-in-a-site-of-a-wordpress-network"><span
          style="font-weight: bold;">Which versions of PHP are
          supported?</span><br>
      </h4>
      <p>PHP 5.2.4 and later versions are supported.</p>
      <h4
id="which-links-are-considered-internal-links-in-a-site-of-a-wordpress-network"><span
          style="font-weight: bold;">Which versions of WordPress are
          supported?</span><br>
      </h4>
      <p>WordPress 4.0 and later versions are supported.</p>
      <hr class="space"> </div>
    <!-- end div .container -->
  </body>
</html>
PK|��[��{\��3doc/assets/blueprint-css/plugins/buttons/screen.cssnu�[���/* -------------------------------------------------------------- 
  
   buttons.css
   * Gives you some great CSS-only buttons.
   
   Created by Kevin Hale [particletree.com]
   * particletree.com/features/rediscovering-the-button-element

   See Readme.txt in this folder for instructions.

-------------------------------------------------------------- */

a.button, button {
  display:block;
  float:left;
  margin: 0.7em 0.5em 0.7em 0;
  padding:5px 10px 5px 7px;   /* Links */
  
  border:1px solid #dedede;
  border-top:1px solid #eee;
  border-left:1px solid #eee;

  background-color:#f5f5f5;
  font-family:"Lucida Grande", Tahoma, Arial, Verdana, sans-serif;
  font-size:100%;
  line-height:130%;
  text-decoration:none;
  font-weight:bold;
  color:#565656;
  cursor:pointer;
}
button {
  width:auto;
  overflow:visible;
  padding:4px 10px 3px 7px;   /* IE6 */
}
button[type] {
  padding:4px 10px 4px 7px;   /* Firefox */
  line-height:17px;           /* Safari */
}
*:first-child+html button[type] {
  padding:4px 10px 3px 7px;   /* IE7 */
}
button img, a.button img{
  margin:0 3px -3px 0 !important;
  padding:0;
  border:none;
  width:16px;
  height:16px;
  float:none;
}


/* Button colors
-------------------------------------------------------------- */

/* Standard */
button:hover, a.button:hover{
  background-color:#dff4ff;
  border:1px solid #c2e1ef;
  color:#336699;
}
a.button:active{
  background-color:#6299c5;
  border:1px solid #6299c5;
  color:#fff;
}

/* Positive */
body .positive {
  color:#529214;
}
a.positive:hover, button.positive:hover {
  background-color:#E6EFC2;
  border:1px solid #C6D880;
  color:#529214;
}
a.positive:active {
  background-color:#529214;
  border:1px solid #529214;
  color:#fff;
}

/* Negative */
body .negative {
  color:#d12f19;
}
a.negative:hover, button.negative:hover {
  background-color:#fbe3e4;
  border:1px solid #fbc2c4;
  color:#d12f19;
}
a.negative:active {
  background-color:#d12f19;
  border:1px solid #d12f19;
  color:#fff;
}
PK|��[ `ش��6doc/assets/blueprint-css/plugins/buttons/icons/key.pngnu�[����PNG


IHDR�agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<YIDAT8�ݓ=KBa���AP�
��--�
��5X'������&��A�j������j(�{ɏ2�<e�	�UDŏ��p76��[õ=\��0�Z`����Z`!(��R�#(+*|!b]A�|q��zA�n@�̡�"��	�9K���"W,
	#n�V%���0V&���"T"G���WB�U��}���YGڷ�?�,?�}'�C��R�R<��O�0O"�e!� �S �,�C-���n�@�͖a߶�!�:d^e�=������V�Ҵ��A�k�&�3�A�����ΌN�8~&�]����)KI>�����5IJ?�4R�/�x�����J�{S̓��A#;�R
��IEND�B`�PK|��[9!�7doc/assets/blueprint-css/plugins/buttons/icons/tick.pngnu�[����PNG


IHDR�agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<�IDAT8˽��.Ca�{�8�bn�SB��T'��)E)����V�CJǥj��� �ZՆg/����h…�ݿ���k���n�^k�[�ꝿ2P�6�c=�XH�*�G�`?xԅ�{7�7V�Ԩ�پ%V�Hy��q��Ntn���[���J2^�5�3��X�,�S-OƜ�o����D�X��x����2Oܵ	�r�]L`�}�Z��࿳��T��U�(��Si������P��/�a:6͖,A`
�%S�=���[
���b[�a�='�L�a�W�{���x���D����[�u9J�—B�GqzfGN��0��os��6�"f��fh�ZR��".��2H-[��{���(7�h�@`%E��[I��W�u3��e�+� ����l�GQ&���'� �����������k|���<R
HIEND�B`�PK|��[�q����8doc/assets/blueprint-css/plugins/buttons/icons/cross.pngnu�[����PNG


IHDR�agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<!IDAT8˕��NQ���ɉϠV��ȑ��B[(�
&��^�����M�6�M|�D�ްҙv:�官J-%��N�d������L��B��>w_3:*�W�r���lNC/�-�좕�B�'{ u_��a46��������ҽ��b�ߡE�%D47�;ٻƩ;��8�ˣ}>6[��ӕS@*�Z	Qk�>~��͵hB\��9u�����x��Z�vY�b	���������J���Cيٽ?��B�Yvn���&k���ft����$��,d��9�Z��a��p�\^
Y��7 �Q���JF��� 9=�Q4
؜���I�o
S�B��ps���I��) Fv(@yՎ�ވ�c�\@����
%��%��Z�2h'��@d��(<|�áa�����J�uM@�O���⤁�L���Gj�d�!�X�8��A��f	5�J i�
K->�w�62ƾ�WH��}��:��m�P]XB�0�QX=i�b_�g�=!��F��t����t����…c�l�r�����IEND�B`�PK|��[����3doc/assets/blueprint-css/plugins/buttons/readme.txtnu�[���Buttons

* Gives you great looking CSS buttons, for both <a> and <button>.
* Demo: particletree.com/features/rediscovering-the-button-element


Credits
----------------------------------------------------------------

* Created by Kevin Hale [particletree.com]
* Adapted for Blueprint by Olav Bjorkoy [bjorkoy.com]


Usage
----------------------------------------------------------------

1) Add this plugin to lib/settings.yml.
   See compress.rb for instructions.

2) Use the following HTML code to place the buttons on your site:

	<button type="submit" class="button positive">
	  <img src="css/blueprint/plugins/buttons/icons/tick.png" alt=""/> Save
	</button>

	<a class="button" href="/password/reset/">
	  <img src="css/blueprint/plugins/buttons/icons/key.png" alt=""/> Change Password
	</a>

	<a href="#" class="button negative">
	  <img src="css/blueprint/plugins/buttons/icons/cross.png" alt=""/> Cancel
	</a>
PK|��[��{IPP6doc/assets/blueprint-css/plugins/link-icons/screen.cssnu�[���/* -------------------------------------------------------------- 
  
   link-icons.css
   * Icons for links based on protocol or file type.
   
   See the Readme file in this folder for additional instructions.

-------------------------------------------------------------- */

/* Use this class if a link gets an icon when it shouldn't. */
body a.noicon { 
	background:transparent none !important; 
	padding:0 !important; 
	margin:0 !important; 
}

/* Make sure the icons are not cut */
a[href^="http:"], a[href^="mailto:"], a[href^="http:"]:visited, 
a[href$=".pdf"], a[href$=".doc"], a[href$=".xls"], a[href$=".rss"], 
a[href$=".rdf"], a[href^="aim:"] {
  padding:2px 22px 2px 0;
  margin:-2px 0;
  background-repeat: no-repeat;
  background-position: right center;
}

/* External links */
a[href^="http:"]          { background-image: url(icons/external.png); } 
a[href^="mailto:"]        { background-image: url(icons/email.png); }
a[href^="http:"]:visited  { background-image: url(icons/visited.png); }

/* Files */
a[href$=".pdf"]   { background-image: url(icons/pdf.png); }  
a[href$=".doc"]   { background-image: url(icons/doc.png); }  
a[href$=".xls"]   { background-image: url(icons/xls.png); }  
 
/* Misc */
a[href$=".rss"], 
a[href$=".rdf"]   { background-image: url(icons/feed.png); }
a[href^="aim:"]   { background-image: url(icons/im.png); }PK|��[�^���>doc/assets/blueprint-css/plugins/link-icons/icons/external.pngnu�[����PNG


IHDRVu\�sBIT|d�	pHYs��~�tEXtSoftwareAdobe Fireworks CS3��FnprVWx�����@@�Qk���X@&�؁�9�3�m���|�ǜ�ꪪ���*n%3��-l�;A[��k����h��Z~D_����?Z?��R
�j`HmkBF���)�3�7�mkTSx��}[w�ƒ.&;�-[�%{e�Ek�9�<%7�EQ�SCR��/$lM�[��d���OUu7�h4@�-1$[M��U�W���������5{98���f��T~>���i�V�����[s����:��e��FT���m����n����{���v���>�[���7Fߘ��Ӆq9;:9�=a�{�c?���8�r6蜎�'t�]��3m�ڝ#�d�j@��Y{�O
��oxHE�G�/��;��������[w@�	�8�:�Y{�v���GCv�cv=V�b-O�V�sj]�6���2�S��.l���Y�`1˅��1v�]�z
��O�Pz�'�3Y%f�1����#�فq�|4��kc���˰�f`cj��6f6~�a�؅ѱ\����<MO��Ӝ
���]Ƴᐗ�S@���!��9�{�P�#�(�|�&\�дkYhz9�T4-MEӼ�N��^�@8�ٞ!+eHpH��/���:0��c�>ö��^���
��[�/�o���6
�m��!l�"u�����@l��`�4���g��r�m'zXi�Q�V�Ys���!tޑn�5H�C1%{C�Z8Jϴ(���]�q9G�6'g�8=���٩8Fk��,M�1�j�ڝ4�C�=��j��"^:��3n�?������k���c0y&�G��i+����:��.�l&��dИ�Ac2h�4��]`�+��m��AR�|#���3�d��h��NE�jq��q���xe�~Z�fP�*�A�2�\6��V|�M�ql(�f>�;�c�̓�ж�[����<BɅ���`tI!��a��O��`�~?�cH6&ʦ�4�YǬN[���yP,���o�ч� �6��=��L�8L5��D��@Y�2H��9Mkp�Ia���]��*���7J����[p�����b1�F�xj{흏bSl�",�P?�9���b��5��5V@e���g?v��}�삄[�;�	���C�1|b���:>Е��;�A�zG��t>���|z 5�Ah�~n�iMsk���
@'��A�� �W`��h:��[�/���������
[y�k��3�@����A����qaM(�w���[SR�}�_(�ϞN�C�h���';z=�QѾ���n	��q�N�x�C���I��nM��
!F��'9�q�2��8���4Κn>��ǖ0Ŏ=^�J���8`J��pgC���0A���7@�Zb\!��F�P9'������3@�PƋИ���~8@�_����C�	E�(�EF�Zq�q�3p��
�$Yl�ő�Y��Yw��:���e�.%"�D���J8�G��;�L��W�.�����xd�J�����bd�_���i<�@;b��f����Vm�'*�b8�"(�������e��*v"�k�Af��3w<��M]g';�7��-��PݏY��O�25�GT@��>�f�|�:դ��i2��y�8^ىwtD��(�Bx1�C$�L+Ǩ��D�n2���.��8L�A��bI^pn���bL_����D�OĖ-oz��2DZ���7��!%H���:��������3�t�$	��%��Ϟ�ߣ?����LP��C�<j8�fh|O^x����%'��R'���R�ʨ��ar@���;}��O���􍒝>7r1��4�Vw���m%�tx/�2�in>�e|N��ZL_���;������8!^�Nc| �Nۜ|[Q�	������B��M���T}q�f�A�����\H@(6B��c.�W�A(���H�njc��j�#�BX:"p�n��n�N)�iI��`̗ƠLC��f��@
�*Tg��;����a<)��/>N%+h2�Pi�c\�e
�Ľ��ˁog��[[���g��!�"�3�"�1��㷄�o0r��l?�Vvz2s&��b�`��q���ۻl;9�bv�jp�l0F�܆CF��0�o�:�h::4�Y3=�f~/�x$��cw~)ti4�8�6w����S�'��Gu�9
��@�}6b(��k���>�E�B��<K88�cm“�xi�x�0!-2�B�H7�� H:|b���8�΁�!�V�e0��T�`ʺ���ڮN1�2�< ���ܢS�P�T���K~n)]t�uP�ݘ*�*2��T8귺��~h�u�с�7�h��CZ<�ުG�8��vĆ"��Fv��'C��������D����l�3@�K�e;ijsUЩ�p����&tr(��0�����t�N�,�F���յ��S3��7�O��"8=�p���9��g#����rd�|{�km�5�]k-���k���[,��j��
d��&VL"*�aA�m���%�`}�H�TA��
[���q�S/>�*��V���arD<��M��IJ������*��HO�z�A`��j�OxɃ0j�t��B�)+�|�&�,-��f<�h��~~BI
��s_ԕ�Q���/rȒ�
lԘ]��{�K

����-�G�5�;�`���e���l��[�BHKʠ��vxt���}�$�dY�ܣ��h.E���`rAO��i�A��
�5)9��*�P
�AO��I�&EST�ohrbh�6��>WbY�XhR�x��unn��
܀d1��܅�D) ��~#霥��2�2@���u�6v�	��C�l�!+α�u��_��J��=�d�*Aq��9��@1�p-=O�S8D�L�o�
j+W�=x	��챋��>>����b��L�e�]��+��5�3�~��%�.����Oɺ���gj�*�G/�J�rrs�ܜJnE��m��Z���U��$��ǔ���$�U-"чaO� !�Ny�HD��,c_9ɹLrn%�2}�I��+����ǜ�8�N�jY�H��4�<z�W���	;��,e{9q՘�j���H�ON�/-���\l?K�^NZ
&�F%�2��"�!�h�Y�r�j2i5+i��c.�}�V�#��<���q6��r�l1Y�*Y��}.�6M�
'��p
�U��ԭ���39�����i+�a_aϻR��u@�)'�	�٤�Y���
�	�m?K�^NZS&�i%�2��~4K��C�P�w�����&� V��P�����(��$���j��?���\%-�ŲcI�v;v���ƾ����+5�V�R=�I�a_M]W� ��q�M���{�f��V�{ݚ�[��6�{�ѩA�Pv6j2\��JH6�_R"��K�I=�35��3�I!X2N���n-����Km��>U\ݲn�n��)��>)�‒��y��6?^7Ym�q�a���֚�|ӫmݛ������[j�r�������b�+�A��m���6��[��xs�P�Ǔ�����}{j�hL�$)�Ta]�x���Db[
�Ublڞ��Q�v�w��33�p�7Z���1e7��k�崀��ĵ�7�AƵ�3����t"�L�W�
ͼ���_�<�pL6�V�}M��i:M��5M��5�?�����Nmd�j�5ʥ]�u)ģ�>��|��o�T!���΄K/��e ��c]V�i��ɥ�[�u)�S���������S������v��j�����e��u�=tg#�$ej�1Fc�\��κ��A���pYR��Ԟ�g��Y7Y�"��Ң��|�S�'�Z�ӿ<�YD�w�۹���J�S��2�q$߆�7��I1/6
gT��f����mgo�� ��7Z͉������/�{%:{/ᨯ���M:�Q��cz�Ƒ���_��h�޺a��i���ه-�	�M�MtM�ր=&������`~������i�w�Ì�P:�-�6��c��Ŏ~,-���X$2<�aԔs��`���J��O��cz��[�#��B��O�N�mzH�'�����;D������x�!"p�IC�*:+��t���|jsI��iB
�#�JGSR�5��
��Y�r[J���������[��Ι{�$q��oJ��(X�d_!�~�+<�+\rj��_:[9sHk�&�
ݙR����AK�.�a��jۓ1$]�$16���r~�=�-��>%�MR���3$ͻN����J~�U�ƪgn�g��Z=��B��$�)�+.�S��%�.{F�o����_�6�����J���ĸ;�E`�-�οP��Q1t���gh�b芡+����m�GW�t�v+��8����-��!\[<�OSy{�a��g/��튳+ή8�@�c���U]1��^1t��C`hɫ��b�3�ʵCW]1tVn>��عb祳��;W�%��F����;�b�
`�*�b�;;G�yv��2�*����2�*��:C��wGoGW�wGW����̻��7���̻��+�.��r2�*����2�*���C9�wCoCW�wCW]$���ȼ��yعʼ�عb爝;p�$����m���Z����Z���^s!l��ŪzJt�a��yy��왕��
7�Ǧ�\#�%I�t��JtO��NLW����U��t���y�k�º�ވ�ֶ'\�d��z����{,We�t_T=��뉪�<���<�e���O
|/���8�"��x�Sqt��G��hK��G�s�vħ��4&�j{��e,f0$�\�>���7���Yw#1���=�ĺ.���8>��7�#u<�	��	?[���.�࿠�m�G@5`���uE��l�;|��6��;ݣ�����U���w_A��l�����݃��A����<��
�Vk�mz7U��
\��j��+�6&͚���$��"��
�ݺ"��6Qͣ�kM�8u9\宠���nǮ���f�{����I6�ׅ��kaѨfMc+��f�F�%�{�P�	���m;�L뾑s�K��	hH
���բ�j��A�4C�V�>M�?z�����xK�d�
a�=�*p�5���ti?���1�O�[���ɸW1ɗ1�Q�5��*dS���k�|CW�ȿ�\r��+W�sֺteF�²~*���.�H�[�`M�[�V]{���$uE��7�x���T���y�&~�?��T�hB�u��N�����e�#��_��V��OSc#Y������;��>�.j����[�,��o
��qꙺ�=Ѡ0�O�H�ۣ���="c���P_;Ǩ���t�{�A#�nO�X̿���=��`���!��_�aL�3��-�b�$�����<������b�M^3ϙ�(�Q�3؆3.��0ڠ�>>�>�`�й�6.Fۦ��9�m��Ƶ�l'a��� �����G7��=|A�kV̢mv�ƶ�Y�8c��knG����>,�Ы�K�����ޑ}�;{�V�����+��+x�<������rő�	y!.EB}�5�(ӡ�D�ѫ�b�4�L��ӕ�-���Rg�u�'��.i&k�g�K�L�-i���I\[c2�W��~L%)wɛ`�3,7��%(#�I �hu���L��(��Zb}�W���?��P���!�•?�@	I�$�z�G#KJ�f�e��F�;�2��#���_�T�甘L��ez���=n菊��&��Q+ׁ����uw��#��չ��6]uޥ���D�S�}-�$B�_	��-_�,��~K���Ǖ6�� �5ߥ��o(=�2f��B��	[!;$�+MV|�~gop�ӵw=�q��L��!_D/�G�f8w6N
�[/����G˚/z��0��[hя�����Ļ(7q���k �&y
u@�N^_�s\��E�Z�,;�n�q_���V�g�|�����5�u˼�fӵ�g��Yv�xw����-h�5l(�zS��}q}ۘ���Nc�1i@@�;��p�{�B�[�|
xǰ{��ϵg浸�y.�e���>Ʒ��O�c<�rd#>�*!9�k���ն��y��oǷ����<���x�V�za#amEVߺ�Oo��$��V��=;a�lY�������ھ|.��/����~���𧲮�cܚ¸�g���rI����\�*���KVo'�SZߦ�9&e�)��N9du}�w���G��hk�d�q,������}��7pqT>i}�=�3/����o�U���p�ܸB�kձ�U�4�gj/��Dꚇ<k
-�yk
ѿ*��"��Zo(�Ϊ��_��U���:eݎ���s`	�ߑ��s6��U��X�b�7s��*VR���7��%y��b՚����;��2�t�<�ؒ2�
nXs�+��-]�X{�X�O�H{G�F����Rt�k�~f�fQ��}N:�p�"��޶sG�O(�� ��"��iV����fZ1���]�C���u��#���Ef�X/�'��&~g������!tdL���\�#wS�,yX_��B�<b\I�~[
ks�i��
Y�Z�"(����җ�7>s4;�g����m{�wq>�̺�I?�n?���}���OF:�D��,uϠs:����X�w�_���mtqkͺ�2�}��8�b6:o�ܲ��^�9/nn_�ᘦ9;��h�\Z1:�V��:��`���輻���7���6a�G���[��9��G�ۨyS�1�O�>��7�N���5��X1�bw�*�p�)������5,���)+��A����x��>�:��4l�>�}��q0�����+zC����O����N^S
{C�v8:Ƌ�At��P����f�]��1�4���X�wv���s��1;9von�BJE�
��R@���A�j3*�$�O����v�Wts�(�<>��O:t�Y��\��hX�${tL��z��C�����mlR8�A�K�I���j��
��u��O���Ё�5���>�1�_�����1_�iA���WP�1����Q�C:�x�.�9"����%�^��k6{ym~����3��p�Ȟۋ��,R;����uǣ�p�i�ֲ�"������z��:^3��|ߞ(��P��>�p7�m�a�q��ph�
I�-Q���MO�V&�3k_��P+e`�wb2ܐw!"��Լ��KM��v�s���#!��tl� ����ۃ�s������7��kV2+X�8���C�<�`���o�h�:/�F�CrN��D���vf�5{98f�ÞT~cjY�3���*�u�[˞�������3�x�`Om0���v�m�t���Ϳ�^�<&
À^������wɴ�w��δ9kw�����c4h�c�����}:hHV���mJ�����~�<��5��N�KH��m�9o�gm�n�G��!��1�+�v��'X+��S�
/�9u��Z�t�6+,f���O2�
��t�J
��.�Z!f�1����#�sN?�$#ea�2l�ؘZl��13���.���2x<���i2x���l���g�!/э��e��|>�F+w�d�#e0�„�]�B�ˁ��iYh*��-�w�@�I��6�3d��i��# ä������Z,��]l�u����+�o�0���4������@l��`�4���g��r�m'zXi�Q�V�Ys���!tޑn�5H�C1%{C�Z8Jϴ(�h$�ƘE�����D�g������4���1�jwҤ���/�I��x��;��KzFV�g�1�j&���1��y���4?�:�1��ݒ��dИ�Ac2hL��f�C�L�^�vE��wʘci���<�m7�ݩ(Y-��=������O�"�*�A�2�\��F~�݊��)4n�
E�|����`�`��yp��t�8����C�#�0|�1ܣ�[��?�^;�5fԼ�!٘0(�>дd�:mio�n�A�,Fm
#F��X��,'���2��0�L�&dE� E��4y���&���vM�\z���(��S�Zp�Z)3k$������(6E�v)�
�3���"c��f�XMD�M���E�؍�E�nu�hP'\
pj_�_��Q�![��<�w.����|���,�@j6�в��Ӛ��>f/��NX��0�!�W`��h:��[�/���������
[y�k��3�@����A����qaM(�w���[SR�}�_(�ϞN�C�h���g��'��NH�M�W>�ċ�=T��@ ﱑ�����a�Q˭�+��.)~��;J����4Κn>��ǖ0Ŏ=^�J���8`J��pgC���0A���7@�Zb\!��F�P9'������3@�PƋИ���~8@�_����C�	E�(�EF�Zq���{��X�I��\�#�u�Ε��u
0Oˤ]JD���Ǖp^�����Bx��L��Fc�<2E%��\�zb^1��/Y���r�1LG3E]�tz�6��Y1�m�Ii�aw�u1JLS���X�
2c�����n�:;��1o����~�B�_�|rΐ���<�j�I53�֩&E���	��y�8^ىwtD��(�Bx1�C$�L+Ǩ��D�n2���.��8L�A��bI^pn�|u�{Zݓ��D�OĖ-oz��2DZ���7��!%H���:��������3�t�$	��%��Ϟ�ߣ?����LP��C�<j8�fh|O^x����%'��R'���R�ʨ��ar@���;}��O���􍒝>7r1��4�Vw���m%�tx/�2�in>�e|N��ZL_���;�����~��d;��i���i���o+J=�!36⟣�@Z�}���s����/N�,>��}�q�	�F���E����,���Mm�\�y�QȂKG.�M��@��
�)�3-�����i����7]_H�S��L��69�'E#tr�Ň��dM�J"�|�����"��x9����՝�ck봔��27�Q$uQ�=��`����س2��#����POf�$_�@�L�6�ۻ|{�m''V��[
��
F�¨��p�H5��
9C'MG��2k�����%�$�q�Ώ"�.��&���.~`~Bs��@��n2G�����F�0}M:����(WH^��g	u�MxR/mO&�E��B��0I�O��p=!:W:���`�ǩ�+��umW7�]�b�e2y�A�/���E�ҡ��\�����(R��Lh
Tc7�
����2���."��r�st`�M��������+D�������CS�K+F���84���ы{>�]�e-.�Uۗy줩�UA�V��.2䷛��ɡ��ä�C�G�1:%�y�
Vג�Nͨ3�?
0�r���0�	����J��imp��E�5�^�ZlMu}�Zd�9i�9�,�Z��Yk�����mX`ۡ5}�V�Ӻr5�S�^6l�F�uN��̫{�[Yz(Fć��<螇6��ˊ�{�3�w䀹�#|<��M��UK�U>�%¨M�)�i�=~�ft�i"���b�jƃh��j��'��_O�:�E]��ϸ�"�,��F���z1���Ǐ����?ۅ���
��X6[^��J!n�+D���
Yn�G'��J�Ov�ռ�=�X���R4�&�4�H���ܡ�Qa_���
�	����~��jrP4E���&'���i�� ���q%6�ō��&ŏg�^��v�g֕�r�B|�/�
�*�{�R����ͪ�AX��P?|ńsµ�<�O���3!��iQ���Ut^�-��|>��X��+�As�.K���_�}�q�y��X%/!v�OWNGxJ��v?S�U�IoT�&�)'7��ͩ�VDnO����T�]q�=	e�;�,�1�$�1�z�D�H�a�1HxAh�ƈ�@��2�����$�V�+�������9^J_�s��;��eU"-"�ȷb�݋�>a'���l/'�W��Vi�ɉ������g)��I���ը�UFZ]B$z��J��,e{9i5������H�1��>_����MvNs��8�{D9Y��,[�,���>�e���?���A���*�u��rr�JNE���]��h�: ����ل�lRɬ�U{e��ëV-�~������LZ�JZe�h�&���ޡ��,c_9�LrA�bۡ�3�;$�w4�$&?�ڨ����/WI�Gz��X�{5:v���ƾ����+5�V�R=�I�a_M]W��r�>�vS�m�M[%�ukbo���,�G�AC�٨�p�o+!ـI�����.Ex&�|��μ&�`�8�R8ں�Lsl�/�=��TqEt˺ɺާ����4�J��׷��u����jk�[
k�����
�^m���7�4�M^�Rk���mt�ץ[\)���V��Fj��j�j�uˋ7�	�|<i�
P�poݷ������d�O��\O�%��
	J�'����Q%Ʀ�yi5	`w|gK=3�
|�uk��Sv�h��AZN�?�A\�d\;c+�A�I� b��� ����K�]�u����d�i���״����T��QӴ[^#
Q�#꩎���FƩ�Z�\
���_�B<
y�#�,�'�6O��`)�L��X^��.��1�.�����҃ͭ����)W����KZ�t�8�v���n�^��6�Һ�w�κ��l���Lm}2�Hbl��|�Y��0h��<.�CJ��s�,�/�&�WD��XZ_��j�$Y�|���:���w;7��;7�YzcQ&3����©��i8�|��;7ho��xiһ/���;z&���	��rg��ё�W��o�܊�h��?�4��t4�7UFG���"�ƻ�+���KG��+��i(�|L���Z�N/��4&)uzL��{KvD�]���2<�Q�dyL��5�x����:�93e�L��t�	����J�;J˷�6�(�&�PS޳yLI���74�ҿ��)_J�i�M��K����Ls�-zB���L��`�8�7�_�,�T��H���.95��/���9��aj��L��7۲���R�D��{�mOjĐt�w�������4>��`�6I�ϐ4�:�>k+��W�������k���3��ĸ;��boD���[�����ܣb芡���N��CW���&ڰ+��8z��V]qt��98�[��C��x6;�����Ê�+�^6g�gW�]qv���P�a���b�e3t�b芡+�.�ВW]1t��Kgh�k+���b��|& U�s��Kgg�+*v��Kfg�&��wV����U�]��wv���.��e�U�	]e�U]1t��3�*����2�*��8:GW�wgogW�wgW�]$���d�U�	]e�U]1t��r2�*����2�*���HnǗ�yW��&�s�yW�s��;w�(�I��;G/�x;j�l���~'p��B�:[�U���������c�3+#vqn��MӹFFK�����Ч����=�p����Z]��,Nך�u
��/�mO���vG�D"���X��d龨z�_�U�Qy��'Zy�������^$	�;p4�E������芣+�.�іҷ+�N���O3�iL�;�*����X�`H���}�?�o����Fb&�m{N�u]�)�uq|�oL+F�xt��s8~�$�]��A[�p��j���
����w�~�m��w�Gm�����3<�ツ����1�9ʻ{��zk	-y[*��֚��n�&������ �W�mL�5	��I�? 
D����uE�m��G�ך�q�r��]A��M
܎]i}Q���ѓl��Ǘ�¢Q͚�VVQͤ��iK\�����/>S�v$��}#�t���АH�E�
Ԛ	h�:i��E�B}���
[+���.���{��U8.�k�K���~�(#�c꟬��{+֓q��b�/cr9�k$�UȦq�1֜�����ڹ���W���u��� �e�TZ#��]��>0n������k��ƹ�I�F_o����5Ʃ����M����ф4�:�K����G~��������F�Z�����wJk}�]���׏��YJ����i#�4�3u�{�Aa��j��s�G14��Q�9zD�{��v*�Q
����X�F�ݞh����1$�{X��ύCz����Ø�gb9�Z����Ih�퍳�y���;:>���^��f�3�Q䣸g�
g\ұa�A�}|n}���sCm\��MCms6N�t�k�N��qA>ާ�A=�nn�{{���׬�E��Z�m���5q�h��܎x}��}$Xr�W]�v?���)�#��w�~��u7�Mks�Wp�W��y��-�����#��B\���4k�Q�CK�\�W�Ų!hf�2+�+�w=Z�}��f��O�C]>�L4���P���[�l;������d~����JR�7�2gXnFKPF�	�@���4?�1�d�Q�����%����	,;�C؅+����I6��F�>�.�`�>Q��w�e-G�[�
�|�)1�D����d{��c�M�G�V��'���98��{�G���sI�m�>�K�#5��.J��Z4>FI���ܳ[�$YHW���)�/|�+m�+@(nk�K=��Pz�e�Z}�:>G�BvH�W��������~�k�:z�3��"h4C��^(���p4�l��^��?�[���5_��a6ͷТ�J����wQn"�zw��@bM��H�����
���]���FYv�݌�&��?�n��y�9�k�yWͦk)����sӳ������+�mZ��k�P�0�l��1i�I��rcҀ�Fw6���\���z���a�.ju�k��kq��\�+�(�}�o-.u�8�x���F|lUBr��X+۫m]��Qߎo��σ�y6���<���F�ڊ��u���I�)��=�>a{v�ٲ,�A�
�A�}�\�1^T�7	�D���Oe]_Ǹ5�q��8�:k��9��:�U����N����MIsL��S��'�r����ƿ5Z�$2���N�b�Xx5�?��q���Qo�>�|�N{�g^��V=��`����q'�"jתc�^i��^����5y�Z����UleEr�K��P̝U�
��5�XK�uʺ=��f*�#��l�zW�p��?n�f�U��Lc�o�K��'�?Ū5y[��w@e��y�%e��&��zWp�[�����⟚����1W����2��͢:9�t��rE,��m�R�P��A��ER�Ӭn+&�1�:�bR�����<�;���GB����(�^�O�yM,��`OYC{C�Ș&�#�_����cwS�-�Xa��B�<�\K��[ksj��Y�j�"8����җ�7>w4��nn�{��� ��g�e�L��u���P��M�l�0�$�g�{���-\wԾ�b�K���ֆo��[k�t���;d�9��y�������x?;���}Շc��쐗��/p=h��Z1:�\�6��P�G���\h�޿����	{=�t���/�e?�F͛�
@�O��ix��脝(Y��~�C*v�Xѡb��‘<�oh�~�|q[�rȾ�����t���i��xP#��O�6����'P�����z�3,:��
I:{�c<mo�";yM5�
����/r8b��!BCU��JJ��w����T�р.gbq�٥�w�����ؽ��?)+,V�Je�ժͨ��?��r�ۣ�_�ͱ���N8>���f��2p}ã!���1A�?��o�r�;d��@8�٤O.�.
�6��ԦG.�(��
M0-�����{���G�8�ۜ
�<��m���bR5�Nf���I�x���Ic��}w/�����6G����.-(aE|y	��u���f���=Q|�3��g�����瓷��54�.+�����[�1G������7�2���Z�(���k�c���Ѧ���\j~g�=^��d=r6K����{ )�dKױ��=�^��h��h'�g�~V."I�ov0�����#}���bߜ:��Y��_�~��A�nv�y����u^�N��-�w��?,�����mkBSx�]N��0������Qʫa�johl�U�&f��n�Ãs����fd�,>�Op��3]E�1�T	�яj�V��2ڃ��-����p�
�uy��Gp�odl`�d/�e>�v
9��]����A��ݩ�6�����ٞG�ÃT{1�H	�Q�l�H':�iу����ŏp�a'D�:�_�_�C��EymkBT���8�x�횉m�0]HI!)$����FR�?6�c<lHٱd��t���C"��+��RJ)��RJ�������kJ�߃��L��_SU��n7���s����s~�u�U�-U�yy9�c����/Ju�z?��i���>>>~�sm��+�v�u�Ց�νY�u�8����uN�?�WP>�1Js��WiV���_uK�E��ϸ�/r���ˆ_�gK�W]ױ���EY�cl��,[��T�YH�T�����������}x���L#}A� ���G��V�7���^�}>�iҞ��-���i��;}�LJ���X�&�T�P�3�T�#��ߨg���J�l e�'�=��?�͘o��n��a����|7��>��?ǐ�U�%�;�������/�m���N/��I���f�Qփ�z{��<�d��6�d�n�;�����Q��m�{{�5�$���iѦx��g<�$�"�^�%=��RJ)��S����t�e/�֔� ��a};k���_��y�?�9Ԛ�l�z��}m#��G�Kk!����k(�9�G��1�����z��,�Q�&�l�iV濊���#_�<��3�Ξm$�^9g
�{9&�w�&��:˙�u��f֚��R��:ֽL+mW���W^���z%�I���2���lo���Z�f?�k4�W���-�#��	?V/�c^��!�!{u̵ʴU���ٷ�A����Ge>G}�?����v✽��3��X~j����{�zT��A�O^��ʰ�>��?s�y��|����G)�P�</1�1~2�ў׆�R/�7��Ӿsm�sr��"�(����2��c�Ϲ;�~�u-��)}����<�U�1�g��:�a�p�b�5{��3�(���k�!m'mʞ���2��.�~[�)}G�κb��XE�L������p–�aԃ���7���7��Fy�0�@ߋL?󞕹��Khi�@=��RJ)��RJ)��RJ]M;�;����j7�]&SmkBT���U�x����i�`�Qqqqq�����!��	�C�O��Ml�S�$I�$I�$I�$I�$I�$I�q��O�9˵w���O�o]�s�s������,�Խu˲<^�0��t�c�}�av��=��7����_��{V9��z�}��ٿ�^��s��_���y~�?��}e�z���۶����������@��w��E՟�k�$I�$I�$I���@?
���=T���mkBT����xx�흍�)��q ĉ8�D�^��>׻gI@��X�jjg�iЃ����`0��`0���?������ϟ|�:����s��e����Q��3|����ӧO|�:�2|�����.�}��;�7e�GF�����O��6���_�Q�v�������]T��]�^�ˮg�{>pj�z���k�u��o{�y���ye����?��{�-����x���/D:��3D��&򈼹e�^H�y�i#/OG�z��Ϫ��߯_��~�
:�sMe��#M��3Y�#=�2��Q�����Й���[\s=E��8�}E>�Gȩ�T�ڲ��T�g-��}�����Vf�������o�SVw�zV}�.�/�>�~�<Vrv�@>�!?�U���������1���<�#�����}��=�F[ ��~���QڋB�N�.�.+푹^ed��Lo+[\�-��k���
d�W���(}���6�q�$�#�?z�6��Bө�i���?�L���7�!�3�O_Q}Пu���o����[�=��tk�ȋ��M�����!'}/�Ƈd��r2��_�C���ﲨ�:������`0:8�����o�=��+8-�4}�۞�c�ĥX�dq�{bU�����q��©ή��m�!�ƶ�g*Ϊ�U\z��[��GA��=^�+ru�{��LV���	�U�?)�V>�ғ��)��x��|�Y�ҁ��gi��\�yi�^c�U���o��*=�����!����T���Y��?rf�g�����W��s�ʽV�n��*�V��X�#�=��F���ϫ��+[���F�~�yH�\L�~��[���O҇��h�5�ݵ����T����o��w�|Sf���ӟ�+���)���;���F���;:x
������)/�OS�y��U���o��2��e�)Ve3'w���gGg��=�J��^��`0��
ľ����u k�U,�Ks���ؑ5�nY�,��bXw{���w�&����3�Qה��N��Qev�	�]��Ʒ���gcH��˞��i����{���A�3���I�8��h��w��d��u�w���UI��W�q���8�����I�>�+���@��p��Qş���Gc�Z�����\ƪ����U���ߝ�]��/�:����3d�;ɫ:gB9�R�����|GW~����w�2��;�fz<AǏ�ߊg��_��l����y��������=����U��y3=� ��[�6_��3]U�_�����k�]���]�ײ�2��;��j���->��t|�+�i5���n����Οg�Z�Y|<�1NyŬ|E7�k�������?���z/k���>�<��=�Α}N����΅���>�u�Wy�d�ʬ���dz��`0*��\?W8�G������Y����:����Dg��c�g<��2+�������'�W��6��qn؟{�r�u�"w�<�Tk��.��\�r���n�O���>U쏘~c�#T?��+��y��{�Q��,�,^�qF/X�v8�.֩g��3}�ȸ�OP��~n%�hU�G4��(_��sn|W}Tg&x^c��,F�����ѭ���+�<��#+}/�Uw8B�Rh_�����|�33!m�r\7U9�m��({�ѝp���ve��w��[���x��G������]�߱?g;�,�n�ҽ�ow8�]���ו����b�����?��OV�=��Z�_�����#�ve�?��v��N_W�������r�YL���o;�����1�g�9pV^�G�~>�[_��v�NO�S��3��`0������Q����[����	veO\k^8֔��v<�Zbz����\��O�p���b�n$~�}���o�z�3�ј
mK���vU��]^�i�N���WA��#��x�딫���j��t��q��:���E=�
z%օ�q�)Cc��Y�E���q����yRG�-�+u(K\�h�P�'��*^ء��^���q�=m=y|K��vūe���\��rȊ�4���=���{W��1���;=ݷ��x��p�;o@>���Ș�T\Ԏ�+C��=*�ɫ|��G�JO�C��W]��x�1.��ﵠ9_E�б��
��V�q����)v�(��ʑ}��[G��w����Ǻ���{-�o��Sdו_˞��׃��2��;iT&�w*��w�����:�����g׭��S�O��s���j����%Z�[~_˯d�֮���+������w]�7��`0����]��k��I�u��+e�L]���ւ�oA^���;=GR��?��v쯱�;<��y�� o�$N�1紈=:ߥP�V��u��<�� <&����3K�yC��/�4��r�)i=��*/|Ύ^�]�Q�NН1q�G���w>ù{��<F�����V��r�2�n��lo�؍ا�|�m�o��'�qb��Ӌ��r�`e��ef����6
0�lz��sA�_������x7��췣*�U}��R�%�+���C�����_�	�ڟ~I\�Q��~�k�y��#_��jo~DyU���^���`5���p����k��o�?:��ˮ��C����w�������>?�Kv��:A���}E:���_�n+{�u��=����r����q͓�̳]>>��d�}+�����|L�����0���1��`0�l���e���g:��׺񶊝�`W�,3�O�?���]��\9�P����~�[��kO��W�i�Gc~�)��-<�w��.��3q�}��'v�u�w$V���n��v��(�r�����5��2���S;W���k�_�K�ϔ�8B/��h��E�ՠ�'�9�w?K;�x:�x�<��|@��c��Ͻ����V��y���c��@ۖ�Sw�8B��q���]��=��2�l�B�e6V}e��������R�(�������	V��e�ZT��4��ad��e2ޒ�+n�Y����B�����Tq��S����ߔ�<����[&�=�f��[|�����s�z�P�)G�����}{Zׅ�3���n7�j�p�W��wf�t��E�w��[ǽ�;�����`l?��`0��`0��`��{���~��������i`oL�y�>uo���i\q��K�|}����7��Svu9�G���쯿c¾#���>�,�jo��w{�Ն���ݲ�L��=�mW����2u_�����8د���jo�?���k��D���߱��m����w�>���#��}�����E:��OۡO;<���s��y����}�ڛ�k�}~����|�M���'8CT����o+�[W��������U����Q���r'����\��'�t�TY��w��z.D�=��W|��~q=_��y��M�����������Ǐk�t��bS=2�|�ұ�y�N�_}O��e��摽ۏ���tL�S6�q`C���jf��3�#��ܰ�?z�1���H�]�����\"�W���]����O;�2'@���@~tG�:�����{��u���7m1��Q]�PW�V�2�S���z]ϥz��s������3��]v�����xwҞ��:ڗ>�y��`���$j�?tU�
�mkBT����~x�흍��8FSHI!)$����FRHn��w��H�Y��x3��ꇤ����s�a�a�a�axI�����Ǐ��'U�{������o��_����ھg�W9�����������o'�GW
{>~����J��l�����o߾�����������)*/���N�\��ϱ�o��v�[iZ_ձa�JΝ�/:�����6�O�-���92b?�T����l�k�%?������_2����1�B��s��Y��5�>�:�>�c=1�����O�w��y�^�- �ڶ,��X��z��u��sM�#גU]�>H_���y�Y��v�!ۉ���_m�i�Ru�s�]�X�m�_g�)YY�)�m�]�y,���m� z�1��a�a�axE�ߓG�ק��o/�Y��\�k�6��x����j��gH���������|�y��u��.�������\��a�æ�M&�w����k�#�ϐ�$?�]�M�o��\��Ⱦ,�/��ڥ���Q�@��~6s?)}��,� l�����gX #�v�Q���g���B�����ٙ^��u�の�uh��m?�}{]��.~�}�v_��J;�x�o�gJ���Y]�޳�@��.�)��oqC����?}�>@�X���ߘ�'-����(�W�?���������������	�źv�Ɣ����O�ʙ�R����v�[K?[A}�?-�w����m�Ց�}<G�c�K���1}���u��x�LzަU��0�0�Pc[�<>�g\=��c��}�M�����ggg����	�DŽ���-B^��k_g?��F?���� ����v0||؎��=ǧH�P���g�s��/�hؑ�I
�t��~�{���n^�}���Z��yD������5���X���Wv��O)�"��c0��vY�����Z��|~�_%/�,��p\��ɹyΰ�Z�/���;/x����s��_��9?��P�ܯ5ݻ\�[��y|����č8�����g��ʱL{�?�0�0�_�k3���>��������z���_������\S��|<�)�b|�����7��a�a�axn.��t�a?l�^C��vk��ؽ#���~e���)��3<3^�����k�dl�c�&�jK+���o"e�<.�ʞ`���^(3z����u
���l�+6���v��<���ï�
�k7]�/l�c[`�O���n}���򚄫��G��뎱���zt��^v��2)?;Wm�r�5��o�c����Iz�?�����O�zx��{�&��!��e�z.����������"ѯ���
��1�����Gg��{+ҏ���l�w<�=}Gݽ��Fƨ�^�)�����zIp�G�����K��֜�{�{���e����G��12��ۭ��q���iumf��>�.���}�����~�a�?�0�0��[u���+�7�Svq�����֭�y΅�
�?ނ��}���X��w�Ŷ��v�?��ߩ�D��Zۓ�-q/�?߳�=��<��~����#������>���Fk���"q��z�r��Q�o	9��r�,��n�Y[;�o�:)@�-`ק-�7��({��߯�S����@�µ���K��9��֠�ɸ�>:�n�3��
_[�_*�mt�cm��C>�q��S���L���<�?�<n��ѯn!��>=���<�6�;��ǫ�s����a�a�a�{�xˌ�\�ފ��px�?0׋�#�5���z��я��c�]����x^��l�򼠕��(�f���:~����٣^l�i�n�59����W��~�\;�?v�n����6e�r�����UbS~v����^��UO7O(�|;+�S��G�4|?�f�����*?�r���W~�2�o�N��ٟ���S�9��~d�a�����և���mH�6��m�X�[��J����~�s.��y���m�4ٶO���|B��d���/�����b5��ɿ�y���U�?�0�0�0�0�0�0�0�.�P�~�*��1@G\⟿��K����rKX���s2�(ߥ�纎J���8���'>�X@▼�Q��Q�b���q��wx��b�)����_�K|���v� ��1��M�6ke�e-2Ǜ�5��9��?K^�E��~�9�ϱQﱮY��F�8��N?�~;:=J<�����-�t�ĒyNA���g��C��	\�N��X�K�s)'�^K�g\~��2}�6�}Գ����)��n]O��r�^��j�~�"��{p��29w�6��/�.�z-v�:�+����M{�W����JY��Z���굢`%��
�Ҥl9����ힶ�կ�#O�Uz+�U�?;��s���d�~v��N���D��7*.Y�+v:�ye;�8�}�~��|���+ÑޅN�9���}�{Bƞ#t���x��խs�Xɿk��S�V�/��uJ=o�G���<�ջL'����L��:�D]�6�j�f���gL��z�/�+ؽ[{����r��C�M�Y�q�~��[�{�y������y	c�zA������;��w���9��z�szW���H�����V�ax3���� �ף��mkBT����-x���A
� E�v׊�V[����Q䃞g���Ŕڶ0��E�K�۾�ʋ���Կ��S����c�����l�j����{��c�ҩ��Eߋ�@�a��M��*mkBT�����x��}+��(��H,��"�H$��"#�X$������,�Q����ԈZs�>U{�	�.�.T��}6�ڳ�-��F`���p]�k߅~��b�
�
О$�wݓٱ����|s��Co���A+�q3��lO�x�@�(�0�a��+?�	��T,�_��7��s\���Ϙ^Bl1)�C��+�k�(�FyN"8��dPC�_9��>O0&l�4��Im+���n�w��G�rŰ����<Q��q	�	+����H�}����e��q���~~�[).�5c��6,�����m�uO���9p\��<//?����N�:��M›p)� �Ĝ-�2p�'�uKq`���_�����/���6�4<~��77S����N��BQ�����맨�uM�{���5�%.B�NɊk:	k�N��m�9���*�u�U�|2���%;������]F�aג)��RE%HWc0Mg�>��)/tih�f���	ѸX�>����E����)��<,�6�s4���5�z�b�?��J��\<OM%O#(7�6�:�=	���ӋYA��ƒH
���L�s6��M�X��BcX�&ǘJ�te�.����	3.je(��?�<?�-1�$p�O=�x���	]<Jt¡�Vg��`|I,<丕}�F�Qj]�o%[Pa��6�XY��<��?�Yoh�F��067ၭ6JF�G[�wv)��7?,�@w�
�nM�Ǧ�m��k>?���L�j��=���%w�Z�izFTx��$��kP�8�E��m�	jAO����ހ��>~������؆���B9���	�֤8U��KC�v�jb�L���C��y����;�mjP.� ����Dk���w��U�E�€3�ܨ�����8x�U��J��s����\���ɟ�+;}s�F�Q(KI��Xݛ�ƨ
�1��+K����dX�];Jģ��c�x$��D�׷���X`i� ���@l̏�rn�m$���^�9΄�zBGϞ�Q=�nf�k�D�e;
<���a�>,�⢞�j��k�0B�[p(��$���Ǡ���p�4n��q`�XƓ�	�vϵ���.x�Hn���or�J���5���H�u����뇗�f����a����[Z:><�M@J�9����$�q]�}=H�k�3����鲺t�Q�=�,	7���߻����s
�>��3�����6[��g���RL�؍����?�(�&w�.7C#~B{�]��
��U�W�7��1jk~�e�cG��r����D�.=��K�����@�W�DZM�0倐����0�\��x��v�q�NZ�>#�
����BE�	��)���&y�A}t�?B��Y�m(�WIp�ɱ���|�2�+��\2�� ��)�l�8��tl�@Z.B�����e񅋍�RS��ƃm>d�I��l���'N
a�dĢG3�%���#�)?��$s�	_5=��Y�BR#-k"qGP-�e�"�f����%֩-ϓ37�����8�M9��ϊ�,���_*n;H����EBƱ��cl�~����
˝[��/sa�g�IE2�,z�1�t�:�kL�������ș壋G)��{7�o���nd������{@r�P�>�k�w�k׽��#�kXfy��E���A��B�9�uM���4P=�_�l���gW��؇�N��#�_n��G�pp,Z��Uu�6ȓ��V��Ӱ��0EK�7*|��]�{��75F\�Զ��zQ��z!��	uH�>��up����T٣�o3P)���[�^�6�����` -�d&�*=�%��fY�<�^��ط`_6����|h���3ء>��2 P��q��7ώ����,Ns�j�F�=B���`�큳�C��i�U�)R鐏@L��Ү�����ǧmb<2FH�Rq��ùF���X�i�䎲�Om�GA�����}:�*��u�f�:@ʫRH�.��6���6�j���c�GOpO-
��6H����K��J��U���:�Jǃ�����v<gz���� �1F*qm�-;�
I�7
?��O�(Yr
�de�
��F�
�	�ѥ��r��H��a���ۡ�>�,����3��D�Z��E��Ʈ�qq���7p�?��Ȍ�K����%ȧ$�;�?�Q�r�6�pP7`�a����^=����R�_����)m���>�D3#£�_'
�I��ɭu͋C��-R�ne㯄����ss���L��<ȭ/��R)|Lt_1���<u�}E
D�zl��$H�+�N_2�scۯ-�rH�V.��������֏'���(}�o	��:]謧�6�Fhlw���@��z�{6�P_�?�
E����h���߹���v��K�/�B�"M��h;�����б�o��)gRm �$�5�, �E�x�(?�:�g�U뵅F�4��� 	���߹�E4��!��q?l���A����Yv��s:mR�(G��Z�y�Gq�+w0)Nz����u�Y�-�&����"�Y	='I����8��{��m�L/~�����!����.�B�����A=���缱Y��|z��:f�#¬oh�2Xj��ǼI|1��i3A(|��vf1���
NK���L�ͫ�.����?�r�]�qBS�^#o�.l�%z�⁋
��Y��~i�䔃P��q�u&7(��U;B��l zF�x׎����M����,|PfV�֠�k��'�N��b̔/�$EN���
HA�i�Q=�u-/T�QAD9����g��W���%YZ�\���aԥ��5�O�jr����u"9��B�zp�̬�vl��l=��ɸY���y�ܾ5t�����mE��z�+���M���>�L�k�=�rr4����/g��E�r��~P��nB�[��\g[{����g��Y�vR�W'��
{Fe�m1���{�w�L��;�7�&$��x�c���0����n����&��u�@5sC�Cձm��8H��ef���t��<PJZ��@��������4�K|��#`}a�kRN�'�~IU!�k�W��L��Z�D�NK����̡U�������;��g��L~a(]��!Bjv�(�f������\��B�}�AuH�R�����g��M��<7�O��:���[�m6u�v����;3��=��w�w�n��������3pK��M�������{�.t�"��nt�?��di�b�C6��=��E	�����,��ѮO�
���0�h�v��G��;=��MV%����ʪ�r�����4�H
8r���K썀�x��A�:�2
�e�.���ݟ0N<g����'�����6��%��G�1�ַm}�^j�n�ҽ�S�0Cz���LX�3���U���M;^�^~Xc����a�vGHu"��
1��kN�K�T�?,���r�=�܎�X}6CBW6ۻ�F��\�3�m{4!]9�ử��J4n��5J�s�w��^�D��h����z������8���P�]�z���1�x��~��J8#c�%�Ͼ��cF{d�����o��@w�0�QsP���_́� ?3yB2Đ{|��5����}�>x{q(a���тa�?���Q�%��l���4�ςxmWI׆�G�C����1���k�Q��3iJh�,����K��R���������O`���ʲ���<!�[��Nw��a����Z���x�\Rtv��^ZJ��a\(��Z�PE���� 1��ޣ�h���y0�S�L!�y�QP̞�#R@ӱ&4�a�9'2��ċ�I�E�8X�Ir��
4��*y��b��˼�/#�
x����;�2R~������O7��h�՘U��^�k�
����(侠,���2���)�C�:(ِ;�Q3>��4�)�%���b6�B8�\��p�����e<��S������+�js��p����%<&t{3?���|N)p7b�����?�a�i�D�Wl����X���Z�>;u��)�ko)#W���S�n�cR�x�{[�sXv1��95�_��0K�����ՙ7�>�Tp�5���ٴ�l3�S�"؝�LX��睫[�5m�����Q="u}���pϘ*x�b�Չ����#iM+��@�Z!�	��Ϯ~j��Y�ݬ����$?5���mt�u�] �%�@��݅:4h8ۃ����tu�3�;�
ΑO�1A/r����
��R*5�����i�&j#Y2:�$Z(a�d�@�>'z
���L�����뇶��6Z��8|`�6�"�X1�_�z'
�F-���я�?��X^�A:?1�;��h/K�VB'��vOn�FS���Ƥ����Q{=kh7��M�wXQ�p�\v�͓�O/��.���
�N3��HKR��l�K�"�q��^W��h��1wt��h@���3�e6�N|������I;y��?8t[�[�!����$,ήL��e�"�z��%IކA�k��R�l!3u�8�ځy��?_�W��)�AbC��O�!rz��a��5S��n֗���#�<�43y��6"���R����߃C��Q�&>�[��#
BH�ǽ�{v�e��kO��T�lq(�UH�͵h��ݔ8�,@t�����ՂL�{p����/�*�L"�d_y��k,4�G̖��bD>,��.ok"�D;�|7�[.�D�C�A���#�i���l����ϟ�I֬�����D�q�]+�eE	��_�--����ڰc�����^���L��q�1~�C��C�����C�9��gN�����H�8Bkh��J��#Z�-`�V�o��M�a 9r$�պZ-�h�kh�
?C�$�	�^��tď��9d(�8P݅]ڶ���w[�wl��;��d��n�׆�o�K��d�H�ބ(D������In�I� M��_(��������5)6H/���Y�1�� �QR�k,n��XH��ʉ�����?>��df��&6����^EJ�m���t��{�C�����C�c`���0ʅv5��x<��\9Y��c����}1�06"״!֏��9�dl:'��1H"�<HN�&]�5��6�9�!I�1;"����YxA��K-�y�m|h�d
�"]�����U�.ak�gbbw24�������j-� Q���Od�-��:N�	dG��˥M�����I	V�G=�W�!r6�w�H3����p"��ۋ����#g6*x�9��k{H��<W�����BQߍO�MV��{Kh��^<�F�W
<�L���:w$|�oY��-Q]<ʫ��!�!垹��F�q@}3f�R�%���oĿM���r�D���+�N|�Y�Y���6�j�r1�1k4��i'X��f�\:�e�޼� �~�P9���1�ߍ��
��&7�8Q�ape�����5 9os�M�y�	�K-��u��u9��Bdx7H�V����&�_���!C�lgL �04���yS��}|�qٳ�k�����b�s:f�'/���㼳@!�]%���z#�=�J�s�`3�W ez<�PIG�C����0�@�4������5�5g��x�c��T�G��U�#�R�CC�?tdx��L`�Ɓ8����dgsT�?M6},_��� �\�k٬��lt΄l�s��:m"2��5�be\]\�˛��{xa�Lo��Q�lPwK7���?M^a,�_�lb(�1�?�����3��݌^7��:���ރ��^�us�ϚqB�8*���h�Gx��Y�C�m5�M~�{Sg�9n�RX�C}[����hO�tC��1#W3�*��:;�&_�G�ۂ�&�H|�����5�L���<4Ƀ��\b������D?]fM{V6*�S�<����e��0,�!��
A��ؾ����K��m��m���ߍ�r���O�oC������2�
���#��p'$�F�˿@!�{0�V��YW���oe�,��'��H'���`�r�1�����#�ͿMRS��Y����ZB�h�|�x��H�@
6�YziWl�wQ��}�yqs��!`��~y#�-O�Ց����I�X���m������y����|�*0o@��]ۓ�^(`P�q�ƒv��ef���v�'�OA=B����݂p��C�J#
��֞����q��5�
R������wV&�)ԩ��n@po��]��{3�v�:������Y���f*aW��_�&'
Jk0n����D�x��\/H����D�u�qZ�\ڌG+啵X�Z�T>z'7�Q��q������Ɍ�#K�R.�/C��V��g�Q�Ȭ�����\��`��?d��1y���uM�6Ƶ8ZX]8�^p��wQ�E��
&�1frR��Ki����$G�����ݜ����Е���h3'��������{���;;�~F��K�37�k���u<p��dʎ��+C�����R���Mz�Ə�7)nҀ���� lEGy�l��:̑�I���o�B�<A\���\6�d��F��q�ϡɅQ�[�1<k���N�>��S%|��Е�sTu�le���b�A}A�����ʹ�1�0�A{�K��ʘӺ�tj����dLI=r�	�PRg���_Lb�R���
Ş�l?�␔�)!��[��F��o��wi&k^�CV(t@p�W2���{h�x�H�GRn�͉�eCb�xԉ����6G�������Q��d27\�ثd�S��=\�F�f*�0�ۣ�OP���5(r�ZߙxQ�Z>�~G�AeN-��jY��7�Ҿn;�n?ӹ"P��x�}���/�N��W:݊&��׾��:x"ꭥу;��R�펔���c䛅љ�������ElmG§a=�h�¨BG_�u���YnZ쫭FYs �U�"zM&�:��Gn��u�.�DX���5Xn�����;�}�ԫ%XO?�~2&����Frjj���8��yA���*�W	������I�����9/��u�b)��Z�l:�s�� 8�5��J��>~�i�������I<�k��¶
�٤�^�S�x�[����s��GD����(�+��"E���HnֆA_��\F�Z���%������?�4`���w��_{�7��"��0�Y��@�f}������PEj�m��v:�Q������rN��[w��z�*���5�c?�j������f�7���?K_�P��', sZ(oT
|��Ó\-%�蔒�h���y������\	cK/	˧YGԻڐ����z&c"*�(,����y�E�q(�y�[���q`�a�7Xļ��~�����R���/��{h�h���"�g��=w���ݠ�՗���?���̶�uNh{�g�?tq���m�,�u�[�Y���ot��+�!�hf��.2]�ݹ?�&��wA�R���F�ľ붾Ue���%��d��l�i����q��Ms&�6�X�w-&�Y�3(���G9��{cׁ�֬ǿM��;����v��n�"���b��)�<�׾���e_�1���p���}��11��F#��YX��p�q]��s��,[�%*&��@�D�f��ҹA�ٙfs���,���>��3Y�ԕ;�:#hEL�ם[ROd��^G�A�˩f�~Y!����E���n��0�~��/�A��
�K�m���>^��WY�q�"���<цF����*c��:x�w�|�͞w��%�ehRg������d�9�̕���v�3�v
Dg��h�>>?��3�h�YDk�gC�(ʹƒ�ԕ���S����Ԝ|�
2Q��94�(�?OG�Q34�
f�cc��PopT�Ya��W(�>�@�t�X4�`�LG�ٞp��Ʉ�a��Űl\�[9�c�26��UM6f,����'����C���4�i<D�n��#�x��г
Hz5�[�
�_�����Qt��m�vN�C_��`��x���~
Mb
s�PEx���؇;�cW��*n\��?���׿v�:O��3@f����R�&�e�����m�[mٜC���5f(�M����Ni��YX�xШ���=�4
y�HO�<�0|���3���[��B	:d1�"Z�O$+Kx�i̒=�s��J����g���~�i[Rz'����G�#�v��}�>�?W~p�sϠ?��k��A��K�rŵ���k@�I�|>^x�s�?�\��`,D��̒�����5��W���^���w�D��M���Xf_8<%|8_왉pP�1����W��lm߃���f?4����:��́�_�Ԕv ���M�;k�:p�����_��sj؎qw]$F��}���y�
��,b'��N��=�o�����0,
������~��M���
Y�R���4�6+!��}@~u�j�ct�C��P.�Y(�x�׎����z�?70�WXFܣ�o�����3z����0���c8�R��G��g�0��T�U��򄽻��w�"/4��֏�����C�Q`[{O���c�n�]��+�{�{�����N!�3��<���V��yx�,!C
�b�.��lf���'��\ ן�����gu,μ���w-/��3ۥ����N���X(�c
����o�MD�s��a�#�#0{c
���%�uDWCB�Z�A��Z6�,؏�x�(Z%�����w���HbhTb2��<$��*c���nk���_�א����#{D+B<�!��S/�g�Ï`�9��.^]��ß��C��+>��3�+��5��]�q����p�j'
r�9��FDȬ)~:�����9Gm��x2���-?s�raG"yvU��pa;R���ă� �A�\&���
�?�#��n	��0�ee����d~o�q嶭�!!DzP^H)>�o��ȑ.�ļ�Զ=Hy�7�S�-M�
�?��8y�c���ߧq�|�#�5"�2Б�l�m#��U�����e�Τ�V���bM���͘�jA�c7�Z
�]>4�gb�
���s	2WRsKg�6���
's8qz�TT[�R�[w��)I��9�5x���Wj��
#�!nN+zP��ڔ�	�Kg��TE�,�����?��{�^R�Dݥ=�R�u^zîc������&D��'i74�S�J�ߔ��&H��U�G�[���cr�ͦ��<����׿~��4}څ��h���;���lpAZ�%�X�Z;t�Q?������y��k1+Ƴu6�[������D��c4�Ɯ����*d��B#!}�e>�samh����G3c^��8u9󼵕⸈߂�U�y��B;f"Y�i=�D�=����4��&�����|�C���3���g]�~���WgjhSIXU��"1A5Fr4�{����A��lj�w�T����t6<�/N�� �\����R�t��a|�i���>�T.�Wo>>�x��ϯ�Y���{緷m,J�{gg}�v~)�]��s!?w��X�����G�F��l!7��U��|Cn�fﳅ:.@mq%��臔���Ru?.��:��aB�ֺ��E#G�g'yX�D�u�SW��NJD)��21�ѵ�V��agW��P���q����Ȓ��s�?¶�@�g")���s\�T���{��f3g��o��^w:^�"��{��d#�!φt�}�,n�yWFKv�„X�4��|<��B+���8�i=�-;��X	5l=/xl��w���n�]� 
�+S�Ӽ,{՞�/Д�V���+<<
�����o �����ԇeNp�^O�����OvqR� �wHF3�݁�=o��;�`~k�R�wC���u¦�k�jE�|��qϩ���KV,���*?��xk��}Q�x�U���/M�����=��հp����=犐�^x�Bˏ���Kx���@�[���I���YB]T��➐����Kq�.ὀP��w����AG\�W�ϋ���9���2S���A\�Y\��y=Ǩ�Gj�����բ�M�@�tԂ��vD���z�+���Bĺ\������լ����6��k�6L��ʦ�R�_r�n�l|UAϯ<
���|��!��;��8�_1�g�sލ��C����� >�VB�~�,����˘_�&f���jp�/W�ԍ�wa�O ���H3����I`���u����1�ͤ������+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W����ݚ�w)��2iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.1-c034 46.272976, Sat Jan 27 2007 22:11:41        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xap="http://ns.adobe.com/xap/1.0/">
         <xap:CreatorTool>Adobe Fireworks CS3</xap:CreatorTool>
         <xap:CreateDate>2007-09-06T20:56:45Z</xap:CreateDate>
         <xap:ModifyDate>2007-09-06T20:57:21Z</xap:ModifyDate>
      </rdf:Description>
      <rdf:Description rdf:about=""
            xmlns:dc="http://purl.org/dc/elements/1.1/">
         <dc:format>image/png</dc:format>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>��pKIDAT(�c����)�X�9%V�TؓJ`��
�
����Y1��X5R����h�Ʀ��H�ܥVټ�IEND�B`�PK|��[�-�OO9doc/assets/blueprint-css/plugins/link-icons/icons/pdf.pngnu�[����PNG


IHDR�agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<�IDAT8ˍ��KQ��eV�J���q�ҕ`����Q�X>b%��BB	�*t!�ЕB�iU| Q�d&�d��+3�D���i��ν��s9U���0��O�ƨq�
�e�s��]>�G9�9|>��BI����uE���	��À��T
�$q�(���	�&]05�w��Lӄ�iH�ӈ�b\��d��:����X`�6����߸�TUE</)���X��@�;mk���n��D"�3����}@�3G�H(�,˕��+��!::��?	�C=!QE�8���/0�/a�� ���fyHB�ؒ�P/�H�����v�A�mn��������)+/� �8��Ŀ�B������"nƆ��@Z[)�j~Uh��^���N��3Q��O�R6��]���n��^Sݑ����I1��Oc�
c����4e�sKx�C�A�	fw5>��V�<c�h�[�$9���ȶIEND�B`�PK|��[��W/��:doc/assets/blueprint-css/plugins/link-icons/icons/feed.pngnu�[����PNG


IHDR�agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<EIDAT��k�u��{�s����h�9.�v�0����n즂����CK���7Qt/H�i�qQ�Ѕ١N���s�y�����U������(�a58�6g��;��9B� ��@�HĀ����b��^�R������	n���5b$��$���5��"3z)H�1�����׋���u�������!eg����e{��8����g9�Â2'';���11�F�Xx��Y�8��9n^$+�3��!QDDw�?�wy�y��MW����,�eK���h	�q��y�e�9K�!�������0,(*�D�\��׹z��-�x�mZpe�{�h�8�ÒbDN#ud�6�K\z�?.�����h��{���-�+rR#$5˧i�|��L����]�����L��ȉ �L���<��;��>�nE���(kr"�ݢ��~#����eX��
�����$��.Q��4&\#+�ć')Jv+�����SV�'��3���w�����&:�;�HL��21ɞIJ�;��!{Z�ٵ��g�C��1D�%r�hZn8�?������IEND�B`�PK|��[�/����8doc/assets/blueprint-css/plugins/link-icons/icons/im.pngnu�[����PNG


IHDR�agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<wIDAT8˥�mH�Q�
*��ֶV�j)��_�O�Х�9]���m*�Y��떩e-��h�����-��Q�Ji�L�F��2���L���J��E8\��9�r�~���s��)k���­P�iP��.I$����"EwDtR��]�[)t�$Ґ��B���
4BtTPM�j���q1��s���M�*��nF����j4�#/�����8�A�>��P���SP�Ξ���	S}|뺆�y�=����9{���s�ܔ��:`���;3�e�v�q/#���	;��u��s
fEf�
�q<^�ք��(�ss���7�(`%���|�<��
ǗiX�D��%/�X������`��a��6.0�5	V);���nǁ d�N>*^�?���aW+��j�za)Zq\�M��9=Y��[	�ZR�(m�DV��2’�J������b��� ��2���6��T�D��]�HCp���ލ��C<^��2�8;+���Cu��f�5���
7n�:��e��F���`Q(�
>%C%�s2٥�hid��3�@�� A+Y��aU�,��Z��1�<@UZ��%�ձc�_9�]��f'�ɳ;��f�Mj�<�W���U��7��Fߩ����,IEND�B`�PK|��[�V�n		9doc/assets/blueprint-css/plugins/link-icons/icons/doc.pngnu�[����PNG


IHDR�agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<�IDAT�M�Ue��ι��u�q���I�W�h�"(²l6�Ԧ(��E�h��]d�lآE�hS�Z��Q34%-gl�c�{�9������_�O�^��n�!��HDє��k�]���މ#C�����o�~ �4T���G��z�?+gO�[�Ñ�Ԑ���[W�g��rJ$��F�4�Ψ�����n��,�k�l_~�ͯg�}�� CJi""�n�u2u��T�����ɮ�=s6m����Ϡ��������E�3}����ܱ������3Ӷ̮s�D�שmzxֱ��z/�f����L9~i��0<�k��š�~`�ג�ߟ_��TR�Ȋ_n���W��Ҳ��Z���W���6gM���Vƺ��nGȤ�hm�U�vᎏ��d���-��z����?:c�)Km9Du�ʸ`)e�ez5IS��Ң�{7�)�� AH�B[�C�h���:�ʃ��d8*n���I�"�sR�d���M���b�Jt���f\������
J���@	"ѩ�f؀:�i����z�&��Nvq��̾Y%�*S��(F��v~0]_�^[��n���;@�0Zm@�fPJSJ�u.M[�a��;ޭ�F��0կA�N��ҩҭ�)C
)�GO�{����|�5�@ �j)�T�����'	��J�IEND�B`�PK|��[Q���9doc/assets/blueprint-css/plugins/link-icons/icons/xls.pngnu�[����PNG


IHDR�agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<)IDAT8ˍ�OHTQ���;�D�:�L���&���DD��)-7A����Q�Z�����b�3�c�8o޻��6��T�|���;��)@)�H>�W���P�	��E�5�ȿ�����v��4�Q�R�$�r�Y^^���E1���‚����!jp�Wֲ9'�u8'8+X�p�a���q��$a�#�ˍ�ep�W6R��)
�d��\��/�-�$�4E�����%����Ȥ���q��"�9�1�R)�֎&����-�J��C��4�c������y����Z���Z��ʋ����~>|��4�¼�М��f�5W�
��Š��}��h���b�0��|���3����Y=�jK���<~�� ����~TT���$՚F�021���LW'$���d�0�(��}���m��+g�Hli�ZÞ�>�Ͼ��珄���Q� "(�p�5����
��}i��a���p�!�i|g���V�S�M�Ƙ��bsrZ�^�P8kmp��֮V�V�]�:{�L`��/��G*�_>IEND�B`�PK|��[h B����=doc/assets/blueprint-css/plugins/link-icons/icons/visited.pngnu�[����PNG


IHDRVu\�sBIT|d�	pHYs��~�tEXtSoftwareAdobe Fireworks CS3��F}prVWx���� Ј��{�vh���b*ă������<^��-�{�Ǚ�~L뽵~�}��K�Ɨ�%1�\S뗴��گ�&��%���Ǥ�#2��i��?_ �>?��A��<HmkBF���)�3�7�mkTSx��}�w۶�7Ow�ĉsk��y8/^�;���͛n��e�n|Q%9q��EQb�S7�v�=Z�߿�@� H��nm��D� �o�<yѾ���.������Ԛu�{R���r�V�9����x/����,yu�	��=;<R������K�n@	�����o�����~�[���7FϘ��ۥq5;:=�����r,�Ƚ4��3�f�����=��w��Τ9kw�����y	�f�>�4�R���1l��d��ߥ�!��mӯn��Svp�t��eY����	+�%G�X�S��9�Y��&$6�9s(��A�%&�\��c�؅�7��v�g|���*1��,�q��k����n�I&6.�f������cؘ�M��cF�r<��c�4<MOs6�w��������|>��@�>��Z�t�2�P0�iײ��r��hZ���y��a���p�k��KeHpH��/
���:0����>ñ��^���
��[�/�o���6
�m��!�&u;�����@l��`�4���g��r�m'zXi�Q�V�Ys���!tޑn�5Hʉ������d-�gZ����.�����M����p��hq��T���u�&�B5�P�N��!��e5�^/B��ƟI�Ȋ��5S���1�<��#O´�����
��L�wKZ6�Ac2hL�ɠ14f�m�.0�5X�6��� )c�!@��
Z2Ar�݌�SQ�Z'{�5�!^١��E�T6��eP�*���,��aSh��������=�"�Xw��(���@q|G73��Gra��c�]Q�mn�S�}����>�dc̠l�<@�Z�u�괥�Q��Ų���F}�bqj����t��T3LD�T�a(������.����5Y�r�]/{����+�7Zp�Z)3k$������(6E�v)�
�3��K<+��[c�Y#4Q6j~�c7���.H�չ�A�p)��}1$�G!��h��]y��sD�wHM�3�.�g�R����綟�$��1{	_�t�
�dh	�]6j���*�5�⸹<���.��ܰ�׽�:s���@X���'ք"zg9Q�O�5%�������������v\�}=��7�'��NH�M�W>�ċ�=T��@ ﱑ�����Q˭b�*���*C���_��K�y��3*zl	S�أ��$�K��n���!�w6���9�|4�8�%�O��m4
�s��:@��:��e�(�ika�4�uNL��Pl1�A�P4�Pd��gYG;���H���ZI��u��u7
�p�S�xZ&��B�hbp\	��{���O�q^�:����;��LQ	�� �����A��9�Kּ9)��hG��LQ�"�ުM�DeVg[e�C�|�r]�
uR�N�_ ǚl����OtvS�����1xK�.?T�c��b�s�L�Ŭ#*�Va�TW�|�:�,Qk�d z��&q����̃�Q̅�b��H��0V�Q����dnك]��q�탋)y��1zh�q�§<,&�}"�ly��Ɩ9�5Ǹ��h�d�ɭ�i��qX�8:>ÑR�R‘p�^�Y!��=
���h��e�O;�ˣ��IV����p��.MqZr"H.ur]V��[�^?B��?Hu�~����	�|��Q����F�#�����b}��y��D���\4��g� ��)�QK������F=���<�\�R�#�+�i���i���o+J=�!36⟣�@Z�}�l���7U_��Y|�+:�"��(
���5:�����<�aZ�Yj�n7��Kr5�F!,�D7�NuG7P�%�i�>��o�2
:����)|�P����֮@�I��x�&YA�����v>�E\ր{A܋���q����뱵uZ�|V��(�:�(�}�i}0~K�a�#瑙��je��'3g�/[ F�O���]~�ˎ�+f����#Qa��m8d�����B'MG��2k�����%�$�q�Ώ"�.��&���.~a~Bs��B��n2G��싾�F�0}M:����(WH^��gu�]�8^�>�6LH���'�6��A"��.�6��F�s�gH�Us��8Uz����ꦶ�SL��Ja��aln�)u(e*W��%?7�%]t�uP�ܘ*�*2��T8귺��~h�u�с�7�h��CZ<�ުG����vĆ"����{O��3
녛�84��߁��'زg���Uۗy줩]��N���]d�o75��CхI5���=��ctJ�"h�Y�W�����tjF��F�i���S��N0�< G�lĴ68ߚE�5�^�ZlMt}�Zdgp��b��6�,�Z��Yk�����mX`ۡ5}GT0�>I,�TA��
[���q�S/>�*��v���arD<��M���eE�=�����UZ�#|<��M��UK�U>�%�èM�)�).Y����K�4����b�jƃh��j��'�E��u�9
�q�EY2���b��IAa�6�|�M�ȣ�Gz'Lq1��ly5[+���V�Ғ2(d��p�~HI|����=�Q��?4����x0����D�4������
���8��.�P
�AO��I�&EST�oh���:_�=>��&���4Ф��{ܹ�v���b@�Ki�R@28��F�9O��2�2@���u�6v�	�n�C��,�%�̺�X�U�o��X�R%9�<5�\�lV%H�=����(Ɯn��)|
�H>�	A�_Am��*�/��=V�|?��X��+&��IY����_��טg޽�d"�u��_�uI����~Un}�^R��rrs�ܜJnE�˭��Z���U��$����甓��$�U-"чaO� !�Ny�HD�w��WNr.��[I�L_d�!/�Z��E�9�9ι�ZV%�""�|+��������8~�r���jL\�JZe��#'җ�O|l.���/'��V��Viu	�q���Jt�<�x9i5������H�1��>߫���MvNs���8�{F9Y��,[�,���>�e���?���A���:�u��rr�JNE���]��(G�G9�d6f2W2+c�^�B�IªE��S���քIkRI��`��҄>���;���3��I.`�b��hb����M"��O�6j����r��x�ӎ%!��ر_N��5�Rg�
`Wj����z��6�C^M]W� ��q�M��n�ܦ�4�Ur�[��:k��[�.
���٨�p�o+!ـ����U]��L�)��>m�yM
��DJ�h��2͑o���N�S��-�&�x�V���'-�8���pռ^g������֨հFijkM�~�ն�M|�JS�d��Z�\�n���.���J�9�|�����զ�p�o��h����anݷ'���&�x䏓�\O�%��
	J�'����Q%F��yi5 ;��R�̤��hݚ?�ǔ�*��e����Oc��O��j#gd�1H=�D2��G�
ͼ���_�<�pD6�v�}M��i:M��5M��5�?�����.md\j�5ʥ]�u)ģ�>��d���B�,�̄K/��e ��+�,*Vʹ���҃ͭ����)W\���Vi�g��o�����Zi#-��z�r�=tg#�$ej�1Fc�\��+g�à	GX�|��)�gj��t쿬��^UciQ|m����d���_�r���vn��]i^sB0�Jfɷ��-=rR̋M���~op;�������F@�9Ѽ��2�K�^���K8�kn��u��}����qdt�5�ט
ʭ|L�6~��>�oxlLo�k±��љ
�kA�������i�w�Ì��P:�m�1��s����~,�-/]�HdxMè)��C�`���R��O��cz��[�#��B��O�N�mzH�'�����;D������x�BD�����UtUXC�|Gi������g>��<�E�7��7�4�WY�Ul+YL���ϯ�o��?�o��<�;gZ���[p�)}#P�<$R�.!�>j	���+NM��KW+WhoؘZ��R����>�=h��%2L�[m{R#�˿�$F��^ί����ѧ#�Ij7��y7����[�ϼN�X�ʭ�J�_�g�?@�W���0!Cqͥq���e�h�
t���k8&3�9��v��<�wG�\������{��=*��z��T]1t��9�a��
��芣���n��GW�����=��ų��4�g�V�]q��9ۮ8��슳D>����\��C/���CW]1t���ꊡ+�^:C�\[1t��Cg��aR;W�tvV��b犝�dv�h���Ϊ�yعZyW��ߝ�#�;y+�*����V�U]1t��W�U�	]���8���<]���8{38�ZyWqv��E"_�ʻ��7����wCW]�����wCoCW+�*����ڎ/c�]�Λ���ʻ��+v�عg��K�����9z�ƛ�Y�ek��e��Cyͅ�u��:�)�ч��筳��eϬ���U�A>7M�-Ir��V�{B�vb�RT��g����ku%γ8]k�5�F쿰�=��&��}`�h�G��c�*�����]OTmG�V�h�.��G|j�{�$��Ѹ.K������+��8�G[J߮8:���#>�d�1�P�ػ�b1�����+~�O����Fb&䶈='ĺ.���8>��ӊ�:�݄���Ο��ym�k�_��6�#�0nx��&~@6�~߄�C����Q�w�o��{����W�8�=0�9Gy� 7�!���В����"o��ܦwS5A?��u?���	��c#Ҭq�,M��i �̬�ݭ+�o�u�y�I�.����0�ޔ��XI�jָ�����d>.�_^�F5k[YE5�6R�-q�ۆ:����Lmۑ�gZ������-���@��X-m�֌A�H3�.j���G���[o�,_!쿇�^��αƿT�.�8�2�;���o��b=��P�I����2���V!�bH�-�Hs�*� �>�sɑ�����u��� �e�TZ#��]�H�[�`M�[�V]{���$uM��7�x���T�ǯy�&~�?��T�hL�u��N�����e����Z�������HV룫�>�Ni�Ͼ��z��x럥���!�q�6"NC@�RW�'����<w{C#y5��Gdd�7�k���0~��~�5hd����wzCB�����8�7y�<1��|&����Y������8����q�����X\��2�\��"�=�m���
�
����s��
��[j�b�mj��qڦko\��v��K��>�z�Aox;�8��t�f�,:f�j�(~�%���E���B�}$Xr���K�A�g�y��>᝽_+�~ݍ�~��\y��\y���y����26�Zq�zL^�K�P�fM<Z��R"���x��4�L++'+�w=Z�}��f��O�C]>�L4���P��+���v��qm������HR�7�Vΰ�e,q@+RL��V7���h��$K��X�%ַx=.��3O`���.��gJH�&��s<Y���4�-�D5��ɷ�h9���UH��pN��$�]�X���qCT��6��Z���К=\#����{�(8���\�K:oS���.͏��v �(��h|��y%�g�|I��J���)�/|�km�+@(nk�K��ߐz�U�Z}�:>G�BvH�ךU�E�����N��u�g���3E�.i�|�P���h��8)�o�\���.�-k�����4�B�~$_(�S_��D����Ě�5��:y}_+�R�w-�������8�k�ފ���/�w��F�n�w��t-�u��zm�*�y��m�b��J~[���6�{=�)�ľ��mDZ�zR��܈4 �ѝMc8�=W��^�<�sؽ�Z���+�Z�|-�5�(�}�-.u�8�x�ʑ��خ�䈯�V�Wۺ
�գ�?z'��������jQ/l$��Xշ.��[�>I<�z���',g'\![��>���>輶/��#Ƌj�"��h��"����u�[S����o�v.)�S���Ye�w���D9��mB�c�
���|�)����n�[��Hb�9��	Yl�����:n=:�
�G��OZ�i���Su����l�a|m�xn�)��ڵ���w�Wj/��Dꞇ<{
-�y{
ѿ*��"���o(�Ϊ��_��U�:eߎ���s`	�ߑ��k6��U��X�b�7s��*vR���7��y�c�bך|���;��2�t�<�ؒV��&��zwp�[�����⟚����q�FK�Q?�e��-�Eur�9�,��X{���>�(s�,c��^�Y�VL�#�uhŤ��t�j�����	6g,VF���=b�b�w{���[BG�4����t��]���m	���넮����^j���~X�3Prp>d5�-��(��k�K_�����dB��v������4|�7�_&��u{��P��M�0�$b�9���h
�ۗ��w)�\Nm�5��Z�n�C��,�%�̆��)��=0@�����v���4��!O��_�<h��Z1<�\N��
��Ew1�/z������wL���/��9�쟀7��#~�G��j~fP���ԅ�t���)+�f��c����=��ۡdw������b�~�|9�a:`?�X����G��4�s<H���!�ӠM�8� NQq�x�xp�I�%����/���4O_���~O���!c�1���Z��E��xqB���8����.޽����{;�?�����%KL%������f����a:�=��^�ͱ��yr
��v�n��)Y���јg�� ��O�ob����l�|A>�|�R����yv��.͓v�mL��v�t������?�}
}��8���
�4"j�T��cj�ɀ�;٣b:G$��c��X��<�����^A�_��f��L~?\����bo���h����Ax��K]X�B��g��g}��s�:��r�s��X
_T>�Z���w�)��f���뉹����ey��/s�?���2�ʻG1�ȻK�T�]��Oq�{:�]�ܹ����F��4�*H%��~�vzpv����5%���!}�Rf����@�<��=:/�k��ïC4D��x���g�]��^gn�3Қ��0�bOJ�?�m�9���3G�`jٳã!���A0m@:8���{ž���&�#i���ހ}`c�K��#�0������P{�L{{*�L��v�+�>9A��>��ެ=ا�d���A�&���/(�;�0���'���%p�]�Mڧ���y�>k3O�=d��&'�<��b-O�V��g/$6�9s(�Z�t�6KLf���O2�N�=��b�����j��Yw��Zf�8f�o�H��0Ɣ��˰�d`cj��A�������d�8vat,���1x<O���d�4g�X}4x�n�
.�`����90���/+�)�	�v-M/���e��h����I�&!��,g�R��6�G[�+n�">�c�K8��j��w����K�[�h�M�h�ctH>И���/����1����6wԟ[�#���a��G�[E�g�}KPz��yG�� )'�bJ��2��p��iQ�H�#�1��89��'�N�1Z;_giR�!Tc��Ib��_V����!�w���􌬸�^c0�L��c0�=�$L[!Lh�|uNc��%-�ɠ14&��dИ3�6�f���u횢��1��౫y 9�nF٩(Y-��=������O�"�*�A�2�\��F~�݊��)4n�E�|����`�`��yp��t�8����C�#�0|�1ܣ	V��?�^ۧ5.�yC�1fP6}�i-�:fu��ި�̃bY��$F�>d�8�YN��e��a��&"M*Ȋ0�A���i�X�c�c��OU�,V��Q�
��n��4�R,f�H/��c���Ql���R�%�g0l����[c�Y#4Q6j~�c7���.H�չ�A�p)��}1$�G!�lw�O�jܹ���;
���o����B�s�Ok�[����/vP:a��%ٮ��E�a�~q�\f�x�u�nn���^[��ʏ�x ���o�kB���(�'ܚ�����BQ�x�d_�E;�о[�?�QѾ���n	��q�N�x�C���I�/�nM_���
!�����~�!/���v���Y��gT���رGWI��C�LIC��lh1�&(s>��h~q@K�+�v��h*�Աu���uh��xQ���8�h��뜘\���b(��"�h�E���R#β����8�x`F�,6��Hrݬs嬻i`�s���2i�"�D���J8/�*�6�_#��u��k�1v���}A.x=1/�Ysė�ysRO9Ў�����E:�U��ʬζ�$�4��;�-LS��ȱ&d�:;s����uv��yc�R�����~���!Ss1�
�U�'Օ1�p��4K�ث��K�7�㕝xGGdL�b.�#<D�̈́��r���(M�p��&s[��= ��%0h\L�΍�o�}O[r����ز�M�[�8��Z8���&�Χyh��a)��GJJ	G­Ox	g����(�'�=>�m<�/��'Y�ӆ�^f�4�iɉ ���uY�3n)z�e�� 9 ���>~�'H�u�F�N����xJh�k�;��yW�煶M:��s�47�}�4>��F-}���>����
r�s�K?�&����4�r��I������Qk -�>_��s����/N�,���}�q�	�F���E����3���Mm�\�y�QȂKG.�M��@��
�iIgڢ�r0�[ƠLC��f��@
�*Tg��;���+��xR4B'^|�IV�d�,���q�5�^D�"/�y�����zlm��2�U�0��� ��G�{Z��~{�&=�$�Zٹ���̙�������=�x����Ċ�}�����HT5r����!���F�ѡ�̚��4�{	�#Iu��H�K����ഹK�_��Мp?��=���Q ,���C1L_��f��-������Ai<)�����
�"s�	!��ts����'��iE����K�V�e0��T�`ʺ���ڮN1�2+y�A�o���E�ԡ��\�����(�t���Fn�	HYe*�[]DX?4�:���z���!-Yo�#V��o;bC
NYF�OT}/�n���D R|Go��4w/����ھ�c'M�Ztj%\�"C~��	��.<H��<�qq�{�U�<�
Vג�Nͨ3�?
0�r���0�	����K��imp�5�2k���6ؚ����CԮrl�Yd���
��|+&۰ ��Ck���Ƨ}��N�z� ��!�9��3�b�1og�&G��{��+ZXV4ޣ��{_��<R��ӫ�$X��Z�^r?��$�⼐�ؓyhFgɐ&Y8ZL[�x-�Z
����(��S��}Qw>G�3��!K�>4�Qcv�^��9���#>m��_�vi����).��-�fk�7܊�@ZR�,�ã��)ɀ/v�ռ�=�X���R4�&�4�H���ܡ�Qa_�g�J��?�)�8	��h�
�
͚�C����Ǖ�D7��?�u�;�Ӎ{�YW˱
�
�+P�$眧攫�ͪ�AX��P?|Řs�<�O���3!W�iQ���Ut^�-,����	,]���:)�Y��+���̻�c�,Bd΅�!�K�.)���گ�Mz]�"79���&7��[�=�r��S�xť�$����甓��$�U-"чaO� �%=�-#RQ�g䕓��$�V�+����٫�9^J_ԟs��;��eU"-"�ȷb�݋�{|�N?O9^N\5&�Z%�2���Kۧ>6��S���V�I�QI�����H�tv!��y��r�j2i5+i��c.�}�W�#��<��ѝq>��r�l1Y�*Y��}.�6M�
'��p�u��ԣ���39�����i+�a_aϻR�Q�: �r��l�d6�dVƪ�2���U�?O9^NZ&�I%�2��^4K��C�P�;��+'��I.�Ul;T#|F~�D�&���P5�|N~�JZ<ҋiǒ_�ѱc���/7�k���f���4[MK�$m������>���r}���m�M[%�5�[��6˹��� h(���W���
�/)��^�ץϤ�����ƙפl1N���n-����Km��>U\ݲn�n��i�	�}�2�Z���v���l���u�����(Mm���/��ֽ�oZij�,�Rk���mt�ץ[\)��W��Fj��j�j�uˋ7�	�|4n�
P�0���K�@�`<��IQ��
��s�%���h�Ǩ#��4���l�WfR�o�n��c�n��2H�i��1�k�'�AF��3����t"O�}�f^���K
�H8"�xC�uվ�E�4���E�����i��QOu�t�62.���R������Q���|��o�T!��rf¥���2��w1ōYT��i��ɥ�[�u)�S�/��eW���?p����2�Z+m��uY�Pκ��l���Lm}2�Hbl��|�[4�k���!%�L�9x����u�u�+�ja,-����?5~��U>��S�"������Tz��c2Ko�#ZɌ#�6��p"=�sΨ_�|�sٷ`6(�No�4�ݗu����Dׄc
z�+~jtf�Z�SK�s+j�14�D����T�T���6����og��~,�-/]�HdxMCy?�c@`Lo����wzg�1N��cz��[�#��B�͖��,O������!z\^�?gƣ"�-�f�誰�����-��
&	)Ԕ��Fg�Т����Kh����o%���&���Nq�9�=���s��^0N\�כ��1�C"��飖�J��Ԥ��t�r�����+��'�l�~��K�&ﭶ=����A#�X/��&�6I�π4�&�>{+��ש�^�^��k���3��ĸ;��boD���[�����ܣb芡���N��CW���&ڰ+��8z��V]qt��98�[��([<��OSy{�a��g/��튳+ή8�@����U]1��^1t��C`hɫ��b�3�ʵCW]1t��|& U�s��Kgg�+*v��Kfg�&�+﬊�7����w;���9�λ���b�M`�j�]��C�a�/q�]�ћ���ʻ��+�����ʻ��7����wgW�]$��嬼�z�ZyW1t��E��YyW1�&0t��b芡���2V�U�	�\���عb爝;p�$����m����Z����Z��1��\[gk����}�z�:k�\��ʈ]\��s�t��ђ$G:�@m%�'�i'�+EuOxܪ|q�VW�<�ӵfa]Co�k��m��Q=����z���=��2Y�/����D�vT�h�V��2��qħ�I���"�Ŀ{���8��芣Kp���튣�9z;��L�~�������*3�l.)O��G�${>�`$fBn��sB��RO���3>0����M�ύ��
���v��mm�=��7p�k�d���MX?�a����}��J�gx
�}m���c�s�wr��zk	-y�*�Vk�mz7U��
\��j��+<6"����$��"��
�ݺ"��6Q]G�ך�q�r��]A��M
܎����f�{����I6���嵰hT����UT3i#u�׽m�����Զ	{�u��k�K��1hH
���բ�j��A�4C�V�>���
[+���.���{��u8.�k�K���~�(#�#꟬��{+֓1���˘\�(��l�)�D�r�4W���?��C;�9�J�y�Z��l�RX�O�5�م���q��4��^koյ7�ݟHR�4�z�}�7�1J�x��w\o�W��M��ƤY79��X:?�]� 1�
���[9[?I��d�>�*����컨��ˏ��YJ����i#�4�+u�{�Aa��j��s�G14��Q�9zDF{��v*�Q
����X�F�ݞh����1$�{X��ύCz����Ø�gb9�Z����qh�퍳�y���;:?���^�,3ϕ�(�Q�3؆+���0ڠ�>>�>�`�й�6.F�&��9�m��Ƶ�l'a���$�����Ӌ�=|A�k�̢cv�Ǝ�Y�L�1Zd���/��G�%Z꺴����������B���8�7�͕\y��\y���?��@.cëG��䅸	�i�ģ�-%r�^�[
A3˴�r�~ף%�^�l�n��>��#�Dc�u)�aK�mG?x�֘��A��܏�$�.yl�[�Q��"�I �hu���L��(��Zb}�W���?��P���!�B�q��$l��M=ǣ���K3زOT���|+��#���_�T�甘L��ez�y�7�G��k��Ѩ��	���58���w��#��չ��6��:��H�l��ҩA^���(����W�{v˗$��o������FQ����ԫ�
�g\Ŭ�W��s4a+D`�${�Y_�����t�]G|f@�>S�f���Ѹ�Ɲ�����u�'y��ٲ��9\M�-��G��?�5�.�MD\�.�H�I^C����.���x�"~��*;\݌�&���?�n��y�9�k�yW]M�RX���צ���ǻ��/>��hA��aC��Ø�M��F��'uˍH��4�C�sZ����k�38�ݻ��}��2�Ž��]ӊ������R���q���و��JH��ke{���`^=���w�ypm�M��:���F�ڊU}��?����S��{�}�rv��eY0��k���;b��o(��v�/Ÿ�*_Ǹ5�q�ϸ�&k��9��:�U����N�SZ�&�9&��Q��'�r����ƿ5ڏ$V������Ʊ�j�Z��ѣ��}�Y�������<U��z����v�׆��Ɲ��]����z�a|���L��yȳ��R������b;+�;^���b��o�%�	_�^��S���X<�0�P��yX�fxXջ��+���p37�b'e(_�W?��)v���ʌ��(�H��#�-i% �mk�ww���ko+��	a�h�(�j���Z�_٢YT'�|���2\��%����Q�c�27�2�H�u��mŤ>�Y�VL�@�f�!O��������Pas�be��/�#��!~g������%tdL���\�#w�,yX_��B�<b�I�~�
ks�iAΆ�f�e�|MZ�K��9��v������4|�7�_&��u{��P��M�d�0�$b�9���h
�ۗ��w)�\Nm�5��Z�n�C��,�%�̆��)��=0<ݥ�~v2xq;}Ճs��쐧�/P�bx�u.��`���Ew1�/z������wL���/��9�쟀7��#~�G��j~@8ǧ�S(҅2���hК�Y2@�vw���n���}gv���9����崆�<cI�?�a���� �g?�X�O�6��G�8�6��x�xp�I�%����/���4O_���~O���!c�1j�����E��xqB���8����.޽����{;�?�����%KL%������f�s��a:�=��^�ͱ��yr
��v�n��)Y����Xg��� ��O�o`|�u�5��Q^8���*���0�`|��p�g�V���ǡq�>�vp�Џw_Cg}q��9�3���ζ������Yu<;>���0I��Q�9"i�c���B�^��c����Ax��K;MX�wB��g��g���s�:��p4p��+�A��J�_C#�U�M�!�%������a��Η�A��JG���$���&�W����(�����.�h�����%둳Yj��F�I�G�X��mew�����@k&�E;�=c��rI�~��~�vzpv��qp����rꐾf)�~u�Wt�:t�������-P�%��l@���`������9��:�mkBSx�]N��0������Qʫa�johl�U�&f��n�Ãs����fd�,>�Op��3]E�1�T	�яj�V��2ڃ��-����p�
�uy��Gp�odl`�d/�e>�v
9��]����A��ݩ�6�����ٞG�ÃT{1�H	�Q�l�H':�iу����ŏp�a'D�:�_�_�C��EmkBT���~Cx���A
�0E��1�wY�/[�5ց6!�����s.�C9�i�"�Tށ�����iw����\�n���������m����Ε����ܿl�[��xoټ�>:��������������rq�k}/�����H�|aymkBT���8�x�횉m�0]HI!)$����FR�?6�c<lHٱd��t���C"��+��RJ)��RJ�������kJ�߃��L��_SU��n7���s����s~�u�U�-U�yy9�c����/Ju�z?��i���>>>~�sm��+�v�u�Ց�νY�u�8����uN�?�WP>�1Js��WiV���_uK�E��ϸ�/r���ˆ_�gK�W]ױ���EY�cl��,[��T�YH�T�����������}x���L#}A� ���G��V�7���^�}>�iҞ��-���i��;}�LJ���X�&�T�P�3�T�#��ߨg���J�l e�'�=��?�͘o��n��a����|7��>��?ǐ�U�%�;�������/�m���N/��I���f�Qփ�z{��<�d��6�d�n�;�����Q��m�{{�5�$���iѦx��g<�$�"�^�%=��RJ)��S����t�e/�֔� ��a};k���_��y�?�9Ԛ�l�z��}m#��G�Kk!����k(�9�G��1�����z��,�Q�&�l�iV濊���#_�<��3�Ξm$�^9g
�{9&�w�&��:˙�u��f֚��R��:ֽL+mW���W^���z%�I���2���lo���Z�f?�k4�W���-�#��	?V/�c^��!�!{u̵ʴU���ٷ�A����Ge>G}�?����v✽��3��X~j����{�zT��A�O^��ʰ�>��?s�y��|����G)�P�</1�1~2�ў׆�R/�7��Ӿsm�sr��"�(����2��c�Ϲ;�~�u-��)}����<�U�1�g��:�a�p�b�5{��3�(���k�!m'mʞ���2��.�~[�)}G�κb��XE�L������p–�aԃ���7���7��Fy�0�@ߋL?󞕹��Khi�@=��RJ)��RJ)��RJ]M;�;����j7�]&SmkBT���U�x����i�`�Qqqqq�����!��	�C�O��Ml�S�$I�$I�$I�$I�$I�$I�q��O�9˵w���O�o]�s�s������,�Խu˲<^�0��t�c�}�av��=��7����_��{V9��z�}��ٿ�^��s��_���y~�?��}e�z���۶����������@��w��E՟�k�$I�$I�$I���@?
���=T���mkBT����xx�흍�)��q ĉ8�D�^��>׻gI@��X�jjg�iЃ����`0��`0���?������ϟ|�:����s��e����Q��3|����ӧO|�:�2|�����.�}��;�7e�GF�����O��6���_�Q�v�������]T��]�^�ˮg�{>pj�z���k�u��o{�y���ye����?��{�-����x���/D:��3D��&򈼹e�^H�y�i#/OG�z��Ϫ��߯_��~�
:�sMe��#M��3Y�#=�2��Q�����Й���[\s=E��8�}E>�Gȩ�T�ڲ��T�g-��}�����Vf�������o�SVw�zV}�.�/�>�~�<Vrv�@>�!?�U���������1���<�#�����}��=�F[ ��~���QڋB�N�.�.+푹^ed��Lo+[\�-��k���
d�W���(}���6�q�$�#�?z�6��Bө�i���?�L���7�!�3�O_Q}Пu���o����[�=��tk�ȋ��M�����!'}/�Ƈd��r2��_�C���ﲨ�:������`0:8�����o�=��+8-�4}�۞�c�ĥX�dq�{bU�����q��©ή��m�!�ƶ�g*Ϊ�U\z��[��GA��=^�+ru�{��LV���	�U�?)�V>�ғ��)��x��|�Y�ҁ��gi��\�yi�^c�U���o��*=�����!����T���Y��?rf�g�����W��s�ʽV�n��*�V��X�#�=��F���ϫ��+[���F�~�yH�\L�~��[���O҇��h�5�ݵ����T����o��w�|Sf���ӟ�+���)���;���F���;:x
������)/�OS�y��U���o��2��e�)Ve3'w���gGg��=�J��^��`0��
ľ����u k�U,�Ks���ؑ5�nY�,��bXw{���w�&����3�Qה��N��Qev�	�]��Ʒ���gcH��˞��i����{���A�3���I�8��h��w��d��u�w���UI��W�q���8�����I�>�+���@��p��Qş���Gc�Z�����\ƪ����U���ߝ�]��/�:����3d�;ɫ:gB9�R�����|GW~����w�2��;�fz<AǏ�ߊg��_��l����y��������=����U��y3=� ��[�6_��3]U�_�����k�]���]�ײ�2��;��j���->��t|�+�i5���n����Οg�Z�Y|<�1NyŬ|E7�k�������?���z/k���>�<��=�Α}N����΅���>�u�Wy�d�ʬ���dz��`0*��\?W8�G������Y����:����Dg��c�g<��2+�������'�W��6��qn؟{�r�u�"w�<�Tk��.��\�r���n�O���>U쏘~c�#T?��+��y��{�Q��,�,^�qF/X�v8�.֩g��3}�ȸ�OP��~n%�hU�G4��(_��sn|W}Tg&x^c��,F�����ѭ���+�<��#+}/�Uw8B�Rh_�����|�33!m�r\7U9�m��({�ѝp���ve��w��[���x��G������]�߱?g;�,�n�ҽ�ow8�]���ו����b�����?��OV�=��Z�_�����#�ve�?��v��N_W�������r�YL���o;�����1�g�9pV^�G�~>�[_��v�NO�S��3��`0������Q����[����	veO\k^8֔��v<�Zbz����\��O�p���b�n$~�}���o�z�3�ј
mK���vU��]^�i�N���WA��#��x�딫���j��t��q��:���E=�
z%օ�q�)Cc��Y�E���q����yRG�-�+u(K\�h�P�'��*^ء��^���q�=m=y|K��vūe���\��rȊ�4���=���{W��1���;=ݷ��x��p�;o@>���Ș�T\Ԏ�+C��=*�ɫ|��G�JO�C��W]��x�1.��ﵠ9_E�б��
��V�q����)v�(��ʑ}��[G��w����Ǻ���{-�o��Sdו_˞��׃��2��;iT&�w*��w�����:�����g׭��S�O��s���j����%Z�[~_˯d�֮���+������w]�7��`0����]��k��I�u��+e�L]���ւ�oA^���;=GR��?��v쯱�;<��y�� o�$N�1紈=:ߥP�V��u��<�� <&����3K�yC��/�4��r�)i=��*/|Ύ^�]�Q�NН1q�G���w>ù{��<F�����V��r�2�n��lo�؍ا�|�m�o��'�qb��Ӌ��r�`e��ef����6
0�lz��sA�_������x7��췣*�U}��R�%�+���C�����_�	�ڟ~I\�Q��~�k�y��#_��jo~DyU���^���`5���p����k��o�?:��ˮ��C����w�������>?�Kv��:A���}E:���_�n+{�u��=����r����q͓�̳]>>��d�}+�����|L�����0���1��`0�l���e���g:��׺񶊝�`W�,3�O�?���]��\9�P����~�[��kO��W�i�Gc~�)��-<�w��.��3q�}��'v�u�w$V���n��v��(�r�����5��2���S;W���k�_�K�ϔ�8B/��h��E�ՠ�'�9�w?K;�x:�x�<��|@��c��Ͻ����V��y���c��@ۖ�Sw�8B��q���]��=��2�l�B�e6V}e��������R�(�������	V��e�ZT��4��ad��e2ޒ�+n�Y����B�����Tq��S����ߔ�<����[&�=�f��[|�����s�z�P�)G�����}{Zׅ�3���n7�j�p�W��wf�t��E�w��[ǽ�;�����`l?��`0��`0��`��{���~��������i`oL�y�>uo���i\q��K�|}����7��Svu9�G���쯿c¾#���>�,�jo��w{�Ն���ݲ�L��=�mW����2u_�����8د���jo�?���k��D���߱��m����w�>���#��}�����E:��OۡO;<���s��y����}�ڛ�k�}~����|�M���'8CT����o+�[W��������U����Q���r'����\��'�t�TY��w��z.D�=��W|��~q=_��y��M�����������Ǐk�t��bS=2�|�ұ�y�N�_}O��e��摽ۏ���tL�S6�q`C���jf��3�#��ܰ�?z�1���H�]�����\"�W���]����O;�2'@���@~tG�:�����{��u���7m1��Q]�PW�V�2�S���z]ϥz��s������3��]v�����xwҞ��:ڗ>�y��`���$j�?tU�
�mkBT����~x�흍��8FSHI!)$����FRHn��w��H�Y��x3��ꇤ����s�a�a�a�axI�����Ǐ��'U�{������o��_����ھg�W9�����������o'�GW
{>~����J��l�����o߾�����������)*/���N�\��ϱ�o��v�[iZ_ձa�JΝ�/:�����6�O�-���92b?�T����l�k�%?������_2����1�B��s��Y��5�>�:�>�c=1�����O�w��y�^�- �ڶ,��X��z��u��sM�#גU]�>H_���y�Y��v�!ۉ���_m�i�Ru�s�]�X�m�_g�)YY�)�m�]�y,���m� z�1��a�a�axE�ߓG�ק��o/�Y��\�k�6��x����j��gH���������|�y��u��.�������\��a�æ�M&�w����k�#�ϐ�$?�]�M�o��\��Ⱦ,�/��ڥ���Q�@��~6s?)}��,� l�����gX #�v�Q���g���B�����ٙ^��u�の�uh��m?�}{]��.~�}�v_��J;�x�o�gJ���Y]�޳�@��.�)��oqC����?}�>@�X���ߘ�'-����(�W�?���������������	�źv�Ɣ����O�ʙ�R����v�[K?[A}�?-�w����m�Ց�}<G�c�K���1}���u��x�LzަU��0�0�Pc[�<>�g\=��c��}�M�����ggg����	�DŽ���-B^��k_g?��F?���� ����v0||؎��=ǧH�P���g�s��/�hؑ�I
�t��~�{���n^�}���Z��yD������5���X���Wv��O)�"��c0��vY�����Z��|~�_%/�,��p\��ɹyΰ�Z�/���;/x����s��_��9?��P�ܯ5ݻ\�[��y|����č8�����g��ʱL{�?�0�0�_�k3���>��������z���_������\S��|<�)�b|�����7��a�a�axn.��t�a?l�^C��vk��ؽ#���~e���)��3<3^�����k�dl�c�&�jK+���o"e�<.�ʞ`���^(3z����u
���l�+6���v��<���ï�
�k7]�/l�c[`�O���n}���򚄫��G��뎱���zt��^v��2)?;Wm�r�5��o�c����Iz�?�����O�zx��{�&��!��e�z.����������"ѯ���
��1�����Gg��{+ҏ���l�w<�=}Gݽ��Fƨ�^�)�����zIp�G�����K��֜�{�{���e����G��12��ۭ��q���iumf��>�.���}�����~�a�?�0�0��[u���+�7�Svq�����֭�y΅�
�?ނ��}���X��w�Ŷ��v�?��ߩ�D��Zۓ�-q/�?߳�=��<��~����#������>���Fk���"q��z�r��Q�o	9��r�,��n�Y[;�o�:)@�-`ק-�7��({��߯�S����@�µ���K��9��֠�ɸ�>:�n�3��
_[�_*�mt�cm��C>�q��S���L���<�?�<n��ѯn!��>=���<�6�;��ǫ�s����a�a�a�{�xˌ�\�ފ��px�?0׋�#�5���z��я��c�]����x^��l�򼠕��(�f���:~����٣^l�i�n�59����W��~�\;�?v�n����6e�r�����UbS~v����^��UO7O(�|;+�S��G�4|?�f�����*?�r���W~�2�o�N��ٟ���S�9��~d�a�����և���mH�6��m�X�[��J����~�s.��y���m�4ٶO���|B��d���/�����b5��ɿ�y���U�?�0�0�0�0�0�0�0�.�P�~�*��1@G\⟿��K����rKX���s2�(ߥ�纎J���8���'>�X@▼�Q��Q�b���q��wx��b�)����_�K|���v� ��1��M�6ke�e-2Ǜ�5��9��?K^�E��~�9�ϱQﱮY��F�8��N?�~;:=J<�����-�t�ĒyNA���g��C��	\�N��X�K�s)'�^K�g\~��2}�6�}Գ����)��n]O��r�^��j�~�"��{p��29w�6��/�.�z-v�:�+����M{�W����JY��Z���굢`%��
�Ҥl9����ힶ�կ�#O�Uz+�U�?;��s���d�~v��N���D��7*.Y�+v:�ye;�8�}�~��|���+ÑޅN�9���}�{Bƞ#t���x��խs�Xɿk��S�V�/��uJ=o�G���<�ջL'����L��:�D]�6�j�f���gL��z�/�+ؽ[{����r��C�M�Y�q�~��[�{�y������y	c�zA������;��w���9��z�szW���H�����V�ax3���� �ף�*mkBT�����x��}+��(��H,��"�H$��"#�X$������,�Q����ԈZs�>U{�	�.�.T��}6�ڳ�-��F`���p]�k߅~��b�
�
О$�wݓٱ����|s��Co���A+�q3��lO�x�@�(�0�a��+?�	��T,�_��7��s\���Ϙ^Bl1)�C��+�k�(�FyN"8��dPC�_9��>O0&l�4��Im+���n�w��G�rŰ����<Q��q	�	+����H�}����e��q���~~�[).�5c��6,�����m�uO���9p\��<//?����N�:��M›p)� �Ĝ-�2p�'�uKq`���_�����/���6�4<~��77S����N��BQ�����맨�uM�{���5�%.B�NɊk:	k�N��m�9���*�u�U�|2���%;������]F�aג)��RE%HWc0Mg�>��)/tih�f���	ѸX�>����E����)��<,�6�s4���5�z�b�?��J��\<OM%O#(7�6�:�=	���ӋYA��ƒH
���L�s6��M�X��BcX�&ǘJ�te�.����	3.je(��?�<?�-1�$p�O=�x���	]<Jt¡�Vg��`|I,<丕}�F�Qj]�o%[Pa��6�XY��<��?�Yoh�F��067ၭ6JF�G[�wv)��7?,�@w�
�nM�Ǧ�m��k>?���L�j��=���%w�Z�izFTx��$��kP�8�E��m�	jAO����ހ��>~������؆���B9���	�֤8U��KC�v�jb�L���C��y����;�mjP.� ����Dk���w��U�E�€3�ܨ�����8x�U��J��s����\���ɟ�+;}s�F�Q(KI��Xݛ�ƨ
�1��+K����dX�];Jģ��c�x$��D�׷���X`i� ���@l̏�rn�m$���^�9΄�zBGϞ�Q=�nf�k�D�e;
<���a�>,�⢞�j��k�0B�[p(��$���Ǡ���p�4n��q`�XƓ�	�vϵ���.x�Hn���or�J���5���H�u����뇗�f����a����[Z:><�M@J�9����$�q]�}=H�k�3����鲺t�Q�=�,	7���߻����s
�>��3�����6[��g���RL�؍����?�(�&w�.7C#~B{�]��
��U�W�7��1jk~�e�cG��r����D�.=��K�����@�W�DZM�0倐����0�\��x��v�q�NZ�>#�
����BE�	��)���&y�A}t�?B��Y�m(�WIp�ɱ���|�2�+��\2�� ��)�l�8��tl�@Z.B�����e񅋍�RS��ƃm>d�I��l���'N
a�dĢG3�%���#�)?��$s�	_5=��Y�BR#-k"qGP-�e�"�f����%֩-ϓ37�����8�M9��ϊ�,���_*n;H����EBƱ��cl�~����
˝[��/sa�g�IE2�,z�1�t�:�kL�������ș壋G)��{7�o���nd������{@r�P�>�k�w�k׽��#�kXfy��E���A��B�9�uM���4P=�_�l���gW��؇�N��#�_n��G�pp,Z��Uu�6ȓ��V��Ӱ��0EK�7*|��]�{��75F\�Զ��zQ��z!��	uH�>��up����T٣�o3P)���[�^�6�����` -�d&�*=�%��fY�<�^��ط`_6����|h���3ء>��2 P��q��7ώ����,Ns�j�F�=B���`�큳�C��i�U�)R鐏@L��Ү�����ǧmb<2FH�Rq��ùF���X�i�䎲�Om�GA�����}:�*��u�f�:@ʫRH�.��6���6�j���c�GOpO-
��6H����K��J��U���:�Jǃ�����v<gz���� �1F*qm�-;�
I�7
?��O�(Yr
�de�
��F�
�	�ѥ��r��H��a���ۡ�>�,����3��D�Z��E��Ʈ�qq���7p�?��Ȍ�K����%ȧ$�;�?�Q�r�6�pP7`�a����^=����R�_����)m���>�D3#£�_'
�I��ɭu͋C��-R�ne㯄����ss���L��<ȭ/��R)|Lt_1���<u�}E
D�zl��$H�+�N_2�scۯ-�rH�V.��������֏'���(}�o	��:]謧�6�Fhlw���@��z�{6�P_�?�
E����h���߹���v��K�/�B�"M��h;�����б�o��)gRm �$�5�, �E�x�(?�:�g�U뵅F�4��� 	���߹�E4��!��q?l���A����Yv��s:mR�(G��Z�y�Gq�+w0)Nz����u�Y�-�&����"�Y	='I����8��{��m�L/~�����!����.�B�����A=���缱Y��|z��:f�#¬oh�2Xj��ǼI|1��i3A(|��vf1���
NK���L�ͫ�.����?�r�]�qBS�^#o�.l�%z�⁋
��Y��~i�䔃P��q�u&7(��U;B��l zF�x׎����M����,|PfV�֠�k��'�N��b̔/�$EN���
HA�i�Q=�u-/T�QAD9����g��W���%YZ�\���aԥ��5�O�jr����u"9��B�zp�̬�vl��l=��ɸY���y�ܾ5t�����mE��z�+���M���>�L�k�=�rr4����/g��E�r��~P��nB�[��\g[{����g��Y�vR�W'��
{Fe�m1���{�w�L��;�7�&$��x�c���0����n����&��u�@5sC�Cձm��8H��ef���t��<PJZ��@��������4�K|��#`}a�kRN�'�~IU!�k�W��L��Z�D�NK����̡U�������;��g��L~a(]��!Bjv�(�f������\��B�}�AuH�R�����g��M��<7�O��:���[�m6u�v����;3��=��w�w�n��������3pK��M�������{�.t�"��nt�?��di�b�C6��=��E	�����,��ѮO�
���0�h�v��G��;=��MV%����ʪ�r�����4�H
8r���K썀�x��A�:�2
�e�.���ݟ0N<g����'�����6��%��G�1�ַm}�^j�n�ҽ�S�0Cz���LX�3���U���M;^�^~Xc����a�vGHu"��
1��kN�K�T�?,���r�=�܎�X}6CBW6ۻ�F��\�3�m{4!]9�ử��J4n��5J�s�w��^�D��h����z������8���P�]�z���1�x��~��J8#c�%�Ͼ��cF{d�����o��@w�0�QsP���_́� ?3yB2Đ{|��5����}�>x{q(a���тa�?���Q�%��l���4�ςxmWI׆�G�C����1���k�Q��3iJh�,����K��R���������O`���ʲ���<!�[��Nw��a����Z���x�\Rtv��^ZJ��a\(��Z�PE���� 1��ޣ�h���y0�S�L!�y�QP̞�#R@ӱ&4�a�9'2��ċ�I�E�8X�Ir��
4��*y��b��˼�/#�
x����;�2R~������O7��h�՘U��^�k�
����(侠,���2���)�C�:(ِ;�Q3>��4�)�%���b6�B8�\��p�����e<��S������+�js��p����%<&t{3?���|N)p7b�����?�a�i�D�Wl����X���Z�>;u��)�ko)#W���S�n�cR�x�{[�sXv1��95�_��0K�����ՙ7�>�Tp�5���ٴ�l3�S�"؝�LX��睫[�5m�����Q="u}���pϘ*x�b�Չ����#iM+��@�Z!�	��Ϯ~j��Y�ݬ����$?5���mt�u�] �%�@��݅:4h8ۃ����tu�3�;�
ΑO�1A/r����
��R*5�����i�&j#Y2:�$Z(a�d�@�>'z
���L�����뇶��6Z��8|`�6�"�X1�_�z'
�F-���я�?��X^�A:?1�;��h/K�VB'��vOn�FS���Ƥ����Q{=kh7��M�wXQ�p�\v�͓�O/��.���
�N3��HKR��l�K�"�q��^W��h��1wt��h@���3�e6�N|������I;y��?8t[�[�!����$,ήL��e�"�z��%IކA�k��R�l!3u�8�ځy��?_�W��)�AbC��O�!rz��a��5S��n֗���#�<�43y��6"���R����߃C��Q�&>�[��#
BH�ǽ�{v�e��kO��T�lq(�UH�͵h��ݔ8�,@t�����ՂL�{p����/�*�L"�d_y��k,4�G̖��bD>,��.ok"�D;�|7�[.�D�C�A���#�i���l����ϟ�I֬�����D�q�]+�eE	��_�--����ڰc�����^���L��q�1~�C��C�����C�9��gN�����H�8Bkh��J��#Z�-`�V�o��M�a 9r$�պZ-�h�kh�
?C�$�	�^��tď��9d(�8P݅]ڶ���w[�wl��;��d��n�׆�o�K��d�H�ބ(D������In�I� M��_(��������5)6H/���Y�1�� �QR�k,n��XH��ʉ�����?>��df��&6����^EJ�m���t��{�C�����C�c`���0ʅv5��x<��\9Y��c����}1�06"״!֏��9�dl:'��1H"�<HN�&]�5��6�9�!I�1;"����YxA��K-�y�m|h�d
�"]�����U�.ak�gbbw24�������j-� Q���Od�-��:N�	dG��˥M�����I	V�G=�W�!r6�w�H3����p"��ۋ����#g6*x�9��k{H��<W�����BQߍO�MV��{Kh��^<�F�W
<�L���:w$|�oY��-Q]<ʫ��!�!垹��F�q@}3f�R�%���oĿM���r�D���+�N|�Y�Y���6�j�r1�1k4��i'X��f�\:�e�޼� �~�P9���1�ߍ��
��&7�8Q�ape�����5 9os�M�y�	�K-��u��u9��Bdx7H�V����&�_���!C�lgL �04���yS��}|�qٳ�k�����b�s:f�'/���㼳@!�]%���z#�=�J�s�`3�W ez<�PIG�C����0�@�4������5�5g��x�c��T�G��U�#�R�CC�?tdx��L`�Ɓ8����dgsT�?M6},_��� �\�k٬��lt΄l�s��:m"2��5�be\]\�˛��{xa�Lo��Q�lPwK7���?M^a,�_�lb(�1�?�����3��݌^7��:���ރ��^�us�ϚqB�8*���h�Gx��Y�C�m5�M~�{Sg�9n�RX�C}[����hO�tC��1#W3�*��:;�&_�G�ۂ�&�H|�����5�L���<4Ƀ��\b������D?]fM{V6*�S�<����e��0,�!��
A��ؾ����K��m��m���ߍ�r���O�oC������2�
���#��p'$�F�˿@!�{0�V��YW���oe�,��'��H'���`�r�1�����#�ͿMRS��Y����ZB�h�|�x��H�@
6�YziWl�wQ��}�yqs��!`��~y#�-O�Ց����I�X���m������y����|�*0o@��]ۓ�^(`P�q�ƒv��ef���v�'�OA=B����݂p��C�J#
��֞����q��5�
R������wV&�)ԩ��n@po��]��{3�v�:������Y���f*aW��_�&'
Jk0n����D�x��\/H����D�u�qZ�\ڌG+啵X�Z�T>z'7�Q��q������Ɍ�#K�R.�/C��V��g�Q�Ȭ�����\��`��?d��1y���uM�6Ƶ8ZX]8�^p��wQ�E��
&�1frR��Ki����$G�����ݜ����Е���h3'��������{���;;�~F��K�37�k���u<p��dʎ��+C�����R���Mz�Ə�7)nҀ���� lEGy�l��:̑�I���o�B�<A\���\6�d��F��q�ϡɅQ�[�1<k���N�>��S%|��Е�sTu�le���b�A}A�����ʹ�1�0�A{�K��ʘӺ�tj����dLI=r�	�PRg���_Lb�R���
Ş�l?�␔�)!��[��F��o��wi&k^�CV(t@p�W2���{h�x�H�GRn�͉�eCb�xԉ����6G�������Q��d27\�ثd�S��=\�F�f*�0�ۣ�OP���5(r�ZߙxQ�Z>�~G�AeN-��jY��7�Ҿn;�n?ӹ"P��x�}���/�N��W:݊&��׾��:x"ꭥу;��R�펔���c䛅љ�������ElmG§a=�h�¨BG_�u���YnZ쫭FYs �U�"zM&�:��Gn��u�.�DX���5Xn�����;�}�ԫ%XO?�~2&����Frjj���8��yA���*�W	������I�����9/��u�b)��Z�l:�s�� 8�5��J��>~�i�������I<�k��¶
�٤�^�S�x�[����s��GD����(�+��"E���HnֆA_��\F�Z���%������?�4`���w��_{�7��"��0�Y��@�f}������PEj�m��v:�Q������rN��[w��z�*���5�c?�j������f�7���?K_�P��', sZ(oT
|��Ó\-%�蔒�h���y������\	cK/	˧YGԻڐ����z&c"*�(,����y�E�q(�y�[���q`�a�7Xļ��~�����R���/��{h�h���"�g��=w���ݠ�՗���?���̶�uNh{�g�?tq���m�,�u�[�Y���ot��+�!�hf��.2]�ݹ?�&��wA�R���F�ľ붾Ue���%��d��l�i����q��Ms&�6�X�w-&�Y�3(���G9��{cׁ�֬ǿM��;����v��n�"���b��)�<�׾���e_�1���p���}��11��F#��YX��p�q]��s��,[�%*&��@�D�f��ҹA�ٙfs���,���>��3Y�ԕ;�:#hEL�ם[ROd��^G�A�˩f�~Y!����E���n��0�~��/�A��
�K�m���>^��WY�q�"���<цF����*c��:x�w�|�͞w��%�ehRg������d�9�̕���v�3�v
Dg��h�>>?��3�h�YDk�gC�(ʹƒ�ԕ���S����Ԝ|�
2Q��94�(�?OG�Q34�
f�cc��PopT�Ya��W(�>�@�t�X4�`�LG�ٞp��Ʉ�a��Űl\�[9�c�26��UM6f,����'����C���4�i<D�n��#�x��г
Hz5�[�
�_�����Qt��m�vN�C_��`��x���~
Mb
s�PEx���؇;�cW��*n\��?���׿v�:O��3@f����R�&�e�����m�[mٜC���5f(�M����Ni��YX�xШ���=�4
y�HO�<�0|���3���[��B	:d1�"Z�O$+Kx�i̒=�s��J����g���~�i[Rz'����G�#�v��}�>�?W~p�sϠ?��k��A��K�rŵ���k@�I�|>^x�s�?�\��`,D��̒�����5��W���^���w�D��M���Xf_8<%|8_왉pP�1����W��lm߃���f?4����:��́�_�Ԕv ���M�;k�:p�����_��sj؎qw]$F��}���y�
��,b'��N��=�o�����0,
������~��M���
Y�R���4�6+!��}@~u�j�ct�C��P.�Y(�x�׎����z�?70�WXFܣ�o�����3z����0���c8�R��G��g�0��T�U��򄽻��w�"/4��֏�����C�Q`[{O���c�n�]��+�{�{�����N!�3��<���V��yx�,!C
�b�.��lf���'��\ ן�����gu,μ���w-/��3ۥ����N���X(�c
����o�MD�s��a�#�#0{c
���%�uDWCB�Z�A��Z6�,؏�x�(Z%�����w���HbhTb2��<$��*c���nk���_�א����#{D+B<�!��S/�g�Ï`�9��.^]��ß��C��+>��3�+��5��]�q����p�j'
r�9��FDȬ)~:�����9Gm��x2���-?s�raG"yvU��pa;R���ă� �A�\&���
�?�#��n	��0�ee����d~o�q嶭�!!DzP^H)>�o��ȑ.�ļ�Զ=Hy�7�S�-M�
�?��8y�c���ߧq�|�#�5"�2Б�l�m#��U�����e�Τ�V���bM���͘�jA�c7�Z
�]>4�gb�
���s	2WRsKg�6���
's8qz�TT[�R�[w��)I��9�5x���Wj��
#�!nN+zP��ڔ�	�Kg��TE�,�����?��{�^R�Dݥ=�R�u^zîc������&D��'i74�S�J�ߔ��&H��U�G�[���cr�ͦ��<����׿~��4}څ��h���;���lpAZ�%�X�Z;t�Q?������y��k1+Ƴu6�[������D��c4�Ɯ����*d��B#!}�e>�samh����G3c^��8u9󼵕⸈߂�U�y��B;f"Y�i=�D�=����4��&�����|�C���3���g]�~���WgjhSIXU��"1A5Fr4�{����A��lj�w�T����t6<�/N�� �\����R�t��a|�i���>�T.�Wo>>�x��ϯ�Y���{緷m,J�{gg}�v~)�]��s!?w��X�����G�F��l!7��U��|Cn�fﳅ:.@mq%��臔���Ru?.��:��aB�ֺ��E#G�g'yX�D�u�SW��NJD)��21�ѵ�V��agW��P���q����Ȓ��s�?¶�@�g")���s\�T���{��f3g��o��^w:^�"��{��d#�!φt�}�,n�yWFKv�„X�4��|<��B+���8�i=�-;��X	5l=/xl��w���n�]� 
�+S�Ӽ,{՞�/Д�V���+<<
�����o �����ԇeNp�^O�����OvqR� �wHF3�݁�=o��;�`~k�R�wC���u¦�k�jE�|��qϩ���KV,���*?��xk��}Q�x�U���/M�����=��հp����=犐�^x�Bˏ���Kx���@�[���I���YB]T��➐����Kq�.ὀP��w����AG\�W�ϋ���9���2S���A\�Y\��y=Ǩ�Gj�����բ�M�@�tԂ��vD���z�+���Bĺ\������լ����6��k�6L��ʦ�R�_r�n�l|UAϯ<
���|��!��;��8�_1�g�sލ��C����� >�VB�~�,����˘_�&f���jp�/W�ԍ�wa�O ���H3����I`���u����1�ͤ������+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W��|�+_��W����ݚ�w)��2iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.1-c034 46.272976, Sat Jan 27 2007 22:11:41        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xap="http://ns.adobe.com/xap/1.0/">
         <xap:CreatorTool>Adobe Fireworks CS3</xap:CreatorTool>
         <xap:CreateDate>2007-09-06T20:57:26Z</xap:CreateDate>
         <xap:ModifyDate>2007-09-06T20:57:41Z</xap:ModifyDate>
      </rdf:Description>
      <rdf:Description rdf:about=""
            xmlns:dc="http://purl.org/dc/elements/1.1/">
         <dc:format>image/png</dc:format>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>i*L��IDAT(�c����"��o���8��Q|��+���>}�NX���ꗮ���j@V<-3�O߾������	�}����5�2�����IYB��1:C.����f:���m����;�_������o�R������$b�v�*��LIEND�B`�PK|��[_x����;doc/assets/blueprint-css/plugins/link-icons/icons/email.pngnu�[����PNG


IHDR�agAMA��7��tEXtSoftwareAdobe ImageReadyq�e<IDAT���Na�����@�9T)�X��k�\{n���ݺ3q!;M�.0��ݳ�l�R�J;ә��b��<����0'���\!�����8��:ũ��✒:%uJ�T�t:�<����r��x�`�MUrY��	�WG�7��ՇO����f�8y�ӡՋE�a��8�g�ι�*��2M�ݏy����(2�r�E�d3����u9��R+	|O��[��0fk��ʍ��,W�\Nf�7���Jl�rNY*|��0c�v�,-�h֋�r͌&)3փ�j��j�WZ˜rNrB?�y�E�\��Z$o�ˌ�	3"�Lrֱ^��K�voB�7�.�z��O1��[���Q�q�p<i�|?Cg����l6���&1�^�R5@P�^F��N��i,�sP��R`}����Pl�Ǯ�W�N�h�� ����ky)捈I1��3W�+��j�~���}d㋓�����`a�f=���x�g��X@�k�&q<>?�|o�Ue�9���I�{�ȱ[IEND�B`�PK|��[����6doc/assets/blueprint-css/plugins/link-icons/readme.txtnu�[���Link Icons
* Icons for links based on protocol or file type.

This is not supported in IE versions < 7.


Credits
----------------------------------------------------------------

* Marc Morgan
* Olav Bjorkoy  [bjorkoy.com]


Usage
----------------------------------------------------------------

1) Add this line to your HTML:
	 <link rel="stylesheet" href="css/blueprint/plugins/link-icons/screen.css" type="text/css" media="screen, projection">	PK|��[<�U}}/doc/assets/blueprint-css/plugins/rtl/screen.cssnu�[���/* --------------------------------------------------------------

   rtl.css
   * Mirrors Blueprint for left-to-right languages
   
   By Ran Yaniv Hartstein [ranh.co.il]
   
-------------------------------------------------------------- */

body .container { direction: rtl; }
body .column {
  float: right;
  margin-right: 0;
  margin-left: 10px;
}

body div.last { margin-left: 0; }
body table .last { padding-left: 0; }

body .append-1   { padding-right: 0; padding-left: 40px; }  
body .append-2   { padding-right: 0; padding-left: 80px; }
body .append-3   { padding-right: 0; padding-left: 120px; }
body .append-4   { padding-right: 0; padding-left: 160px; }
body .append-5   { padding-right: 0; padding-left: 200px; }
body .append-6   { padding-right: 0; padding-left: 240px; }
body .append-7   { padding-right: 0; padding-left: 280px; }
body .append-8   { padding-right: 0; padding-left: 320px; }
body .append-9   { padding-right: 0; padding-left: 360px; }
body .append-10  { padding-right: 0; padding-left: 400px; }
body .append-11  { padding-right: 0; padding-left: 440px; }
body .append-12  { padding-right: 0; padding-left: 480px; }
body .append-13  { padding-right: 0; padding-left: 520px; }
body .append-14  { padding-right: 0; padding-left: 560px; }
body .append-15  { padding-right: 0; padding-left: 600px; }
body .append-16  { padding-right: 0; padding-left: 640px; }
body .append-17  { padding-right: 0; padding-left: 680px; }
body .append-18  { padding-right: 0; padding-left: 720px; }
body .append-19  { padding-right: 0; padding-left: 760px; }
body .append-20  { padding-right: 0; padding-left: 800px; }
body .append-21  { padding-right: 0; padding-left: 840px; }
body .append-22  { padding-right: 0; padding-left: 880px; }
body .append-23  { padding-right: 0; padding-left: 920px; }

body .prepend-1   { padding-left: 0; padding-right: 40px; }  
body .prepend-2   { padding-left: 0; padding-right: 80px; }
body .prepend-3   { padding-left: 0; padding-right: 120px; }
body .prepend-4   { padding-left: 0; padding-right: 160px; }
body .prepend-5   { padding-left: 0; padding-right: 200px; }
body .prepend-6   { padding-left: 0; padding-right: 240px; }
body .prepend-7   { padding-left: 0; padding-right: 280px; }
body .prepend-8   { padding-left: 0; padding-right: 320px; }
body .prepend-9   { padding-left: 0; padding-right: 360px; }
body .prepend-10  { padding-left: 0; padding-right: 400px; }
body .prepend-11  { padding-left: 0; padding-right: 440px; }
body .prepend-12  { padding-left: 0; padding-right: 480px; }
body .prepend-13  { padding-left: 0; padding-right: 520px; }
body .prepend-14  { padding-left: 0; padding-right: 560px; }
body .prepend-15  { padding-left: 0; padding-right: 600px; }
body .prepend-16  { padding-left: 0; padding-right: 640px; }
body .prepend-17  { padding-left: 0; padding-right: 680px; }
body .prepend-18  { padding-left: 0; padding-right: 720px; }
body .prepend-19  { padding-left: 0; padding-right: 760px; }
body .prepend-20  { padding-left: 0; padding-right: 800px; }
body .prepend-21  { padding-left: 0; padding-right: 840px; }
body .prepend-22  { padding-left: 0; padding-right: 880px; }
body .prepend-23  { padding-left: 0; padding-right: 920px; }

body .border {
  padding-right: 0;
  padding-left: 4px;
  margin-right: 0;
  margin-left: 5px;
  border-right: none;
  border-left: 1px solid #eee;
}

body .colborder {
  padding-right: 0;
  padding-left: 24px;
  margin-right: 0;
  margin-left: 25px;
  border-right: none;
  border-left: 1px solid #eee;
}

body .pull-1  { margin-left: 0; margin-right: -40px; }
body .pull-2  { margin-left: 0; margin-right: -80px; }
body .pull-3  { margin-left: 0; margin-right: -120px; }
body .pull-4  { margin-left: 0; margin-right: -160px; }

body .push-0  { margin: 0 18px 0 0; }
body .push-1  { margin: 0 18px 0 -40px; }
body .push-2  { margin: 0 18px 0 -80px; }
body .push-3  { margin: 0 18px 0 -120px; }
body .push-4  { margin: 0 18px 0 -160px; }
body .push-0, body .push-1, body .push-2,
body .push-3, body .push-4 { float: left; }


/* Typography with RTL support */
body h1,body h2,body h3,
body h4,body h5,body h6 { font-family: Arial, sans-serif; }
html body { font-family: Arial, sans-serif;  }
body pre,body code,body tt { font-family: monospace; }

/* Mirror floats and margins on typographic elements */
body p img { float: right; margin: 1.5em 0 1.5em 1.5em; }
body dd, body ul, body ol { margin-left: 0; margin-right: 1.5em;}
body td, body th { text-align:right; }PK|��[�TƚGG/doc/assets/blueprint-css/plugins/rtl/readme.txtnu�[���RTL
* Mirrors Blueprint, so it can be used with Right-to-Left languages.

By Ran Yaniv Hartstein, ranh.co.il

Usage
----------------------------------------------------------------

1) Add this line to your HTML:
   <link rel="stylesheet" href="css/blueprint/plugins/rtl/screen.css" type="text/css" media="screen, projection">	PK|��[��t�rr6doc/assets/blueprint-css/plugins/fancy-type/screen.cssnu�[���/* -------------------------------------------------------------- 
  
   fancy-type.css
   * Lots of pretty advanced classes for manipulating text.
   
   See the Readme file in this folder for additional instructions.

-------------------------------------------------------------- */

/* Indentation instead of line shifts for sibling paragraphs. */
   /* p + p { text-indent:2em; margin-top:-1.5em; } */
   form p + p  { text-indent: 0; } /* Don't want this in forms. */
   

/* For great looking type, use this code instead of asdf: 
   <span class="alt">asdf</span>  
   Best used on prepositions and ampersands. */
  
.alt { 
  color: #666; 
  font-family: "Open Sans", sans-serif; 
  font-style: normal;
  font-weight: 400;
}


/* For great looking quote marks in titles, replace "asdf" with:
   <span class="dquo">&#8220;</span>asdf&#8221;
   (That is, when the title starts with a quote mark). 
   (You may have to change this value depending on your font size). */  
   
.dquo { margin-left: -.5em; } 


/* Reduced size type with incremental leading
   (http://www.markboulton.co.uk/journal/comments/incremental_leading/)

   This could be used for side notes. For smaller type, you don't necessarily want to 
   follow the 1.5x vertical rhythm -- the line-height is too much. 
   
   Using this class, it reduces your font size and line-height so that for 
   every four lines of normal sized type, there is five lines of the sidenote. eg:

   New type size in em's:
     10px (wanted side note size) / 12px (existing base size) = 0.8333 (new type size in ems)

   New line-height value:
     12px x 1.5 = 18px (old line-height)
     18px x 4 = 72px 
     72px / 5 = 14.4px (new line height)
     14.4px / 10px = 1.44 (new line height in em's) */

p.incr, .incr p {
	font-size: 10px;
	line-height: 1.44em;  
	margin-bottom: 1.5em;
}


/* Surround uppercase words and abbreviations with this class.
   Based on work by Jørgen Arnor Gårdsø Lom [http://twistedintellect.com/] */
   
.caps { 
  font-variant: small-caps; 
  letter-spacing: 1px; 
  text-transform: lowercase; 
  font-size:1.2em;
  line-height:1%;
  font-weight:bold;
  padding:0 2px;
}
PK|��[�|TT6doc/assets/blueprint-css/plugins/fancy-type/readme.txtnu�[���Fancy Type

* Gives you classes to use if you'd like some 
  extra fancy typography. 

Credits and instructions are specified above each class
in the fancy-type.css file in this directory.


Usage
----------------------------------------------------------------

1) Add this plugin to lib/settings.yml.
   See compress.rb for instructions.
PK|��[�;!0!0#doc/assets/blueprint-css/screen.cssnu�[���/* -----------------------------------------------------------------------


 Blueprint CSS Framework 0.9
 http://blueprintcss.org

   * Copyright (c) 2007-Present. See LICENSE for more info.
   * See README for instructions on how to use Blueprint.
   * For credits and origins, see AUTHORS.
   * This is a compressed file. See the sources in the 'src' directory.

----------------------------------------------------------------------- */

/* reset.css */
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {margin:0;padding:0;border:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;}
body {line-height:1.5;}
table {border-collapse:separate;border-spacing:0;}
caption, th, td {text-align:left;font-weight:normal;}
table, td, th {vertical-align:middle;}
blockquote:before, blockquote:after, q:before, q:after {content:"";}
blockquote, q {quotes:"" "";}
a img {border:none;}

/* custom.css */
.info { background:#fff; }
.borderTop { border-top: 1px solid #eee;}
.append-0 {padding-right:20px;}

/* typography.css */
body {font-size:80%;color:#222;background:#fff;font-family: 'Open Sans', sans-serif;padding-top:30px;}
h1, h2, h3, h4, h5, h6 {font-weight:normal;color:#111;}
h1 {font-size:2.6em;line-height:1;margin-bottom:0.5em;}
h2 {font-size:1.9em;margin-bottom:0.75em;}
h3 {font-size:1.4em;line-height:1;margin-bottom:1em;}
h4 {font-size:1.1em;line-height:1.25;margin-bottom:1.25em;}
h5 {font-size:1em;font-weight:bold;margin-bottom:1.5em;}
h6 {font-size:1em;font-weight:bold;}
h1 img, h2 img, h3 img, h4 img, h5 img, h6 img {margin:0;}
p {margin:0 0 1.5em;line-height:1.65em;}
p img.left {float:left;margin:1.5em 1.5em 1.5em 0;padding:0;}
p img.right {float:right;margin:1.5em 0 1.5em 1.5em;}
a:focus, a:hover {color:#000;}
a {color:#009;text-decoration:none;}
a:hover{color:#009;text-decoration: underline;}
blockquote {margin:1.5em;color:#666;font-style:italic;}
strong {font-weight:bold;}
em, dfn {font-style:italic;}
dfn {font-weight:bold;}
sup, sub {line-height:0;}
abbr, acronym {border-bottom:1px dotted #666;}
address {margin:0 0 1.5em;font-style:italic;}
del {color:#666;}
pre {margin:1.5em 0;white-space:pre;}
pre, code, tt {font:11px 'andale mono', 'lucida console', monospace;line-height:1.5; background: #eee; padding: 10px;}
li ul, li ol {margin:0 1.5em;}
ul, ol {margin:0 1.5em 1.5em 3.5em;}
ul {list-style-type:disc;}
ol {list-style-type:decimal;}
ol.alpha {list-style:upper-alpha;}
dl {margin:0 0 1.5em 0;}
dl dt {font-weight:bold;}
dd {margin-left:1.5em;}
table {margin-bottom:1.4em;width:100%;}
th {font-weight:bold;}
thead th {background:#c3d9ff;}
th, td, caption {padding:4px 10px 4px 5px;}
tr.even td {background:#e5ecf9;}
tfoot {font-style:italic;}
caption {background:#eee;}
.small {font-size:.85em;margin-bottom:1.875em;line-height:1.875em;}
.large {font-size:1.2em;line-height:2.5em;margin-bottom:1.25em;}
.hide {display:none;}
.quiet {color:#666;}
.loud {color:#000;}
.highlight {background:#ff0;}
.added {background:#060;color:#fff;}
.removed {background:#900;color:#fff;}
.first {margin-left:0;padding-left:0;}
.last {margin-right:0;padding-right:0;}
.top {margin-top:0;padding-top:0;}
.bottom {margin-bottom:0;padding-bottom:0;}
.center {text-align:center;}

/* forms.css */
label {font-weight:bold;}
fieldset {padding:1.4em;margin:0 0 1.5em 0;border:1px solid #ccc;}
legend {font-weight:bold;font-size:1.2em;}
input[type=text], input[type=password], input.text, input.title, textarea, select {background-color:#fff;border:1px solid #bbb;}
input[type=text]:focus, input[type=password]:focus, input.text:focus, input.title:focus, textarea:focus, select:focus {border-color:#666;}
input[type=text], input[type=password], input.text, input.title, textarea, select {margin:0.5em 0;}
input.text, input.title {width:300px;padding:5px;}
input.title {font-size:1.5em;}
textarea {width:390px;height:250px;padding:5px;}
input[type=checkbox], input[type=radio], input.checkbox, input.radio {position:relative;top:.25em;}
form.inline {line-height:3;}
form.inline p {margin-bottom:0;}
.error, .notice, .success {padding:.8em;margin-bottom:1em;border:2px solid #ddd;}
.error {background:#FBE3E4;color:#8a1f11;border-color:#FBC2C4;}
.notice {background:#FFF6BF;color:#514721;border-color:#FFD324;}
.success {background:#E6EFC2;color:#264409;border-color:#C6D880;}
.error a {color:#8a1f11;}
.notice a {color:#514721;}
.success a {color:#264409;}

/* grid.css */
.container {width:790px;margin:0 auto;}
.showgrid {background:url(src/grid.png);}
.column, div.span-1, div.span-2, div.span-3, div.span-4, div.span-5, div.span-6, div.span-7, div.span-8, div.span-9, div.span-10, div.span-11, div.span-12, div.span-13, div.span-14, div.span-15, div.span-16, div.span-17, div.span-18, div.span-19, div.span-20, div.span-21, div.span-22, div.span-23, div.span-24 {float:left;margin-right:10px;}
.last, div.last {margin-right:0;}
.span-1 {width:30px;}
.span-2 {width:70px;}
.span-3 {width:110px;}
.span-4 {width:150px;}
.span-5 {width:190px;}
.span-6 {width:230px;}
.span-7 {width:270px;}
.span-8 {width:310px;}
.span-9 {width:350px;}
.span-10 {width:390px;}
.span-11 {width:430px;}
.span-12 {width:470px;}
.span-13 {width:510px;}
.span-14 {width:550px;}
.span-15 {width:590px;}
.span-16 {width:630px;}
.span-17 {width:670px;}
.span-18 {width:710px;}
.span-19 {width:750px;}
.span-20 {width:790px;}
.span-21 {width:830px;}
.span-22 {width:870px;}
.span-23 {width:910px;}
.span-24, div.span-24 {width:950px;margin:0;}
input.span-1, textarea.span-1, input.span-2, textarea.span-2, input.span-3, textarea.span-3, input.span-4, textarea.span-4, input.span-5, textarea.span-5, input.span-6, textarea.span-6, input.span-7, textarea.span-7, input.span-8, textarea.span-8, input.span-9, textarea.span-9, input.span-10, textarea.span-10, input.span-11, textarea.span-11, input.span-12, textarea.span-12, input.span-13, textarea.span-13, input.span-14, textarea.span-14, input.span-15, textarea.span-15, input.span-16, textarea.span-16, input.span-17, textarea.span-17, input.span-18, textarea.span-18, input.span-19, textarea.span-19, input.span-20, textarea.span-20, input.span-21, textarea.span-21, input.span-22, textarea.span-22, input.span-23, textarea.span-23, input.span-24, textarea.span-24 {border-left-width:1px!important;border-right-width:1px!important;padding-left:5px!important;padding-right:5px!important;}
input.span-1, textarea.span-1 {width:18px!important;}
input.span-2, textarea.span-2 {width:58px!important;}
input.span-3, textarea.span-3 {width:98px!important;}
input.span-4, textarea.span-4 {width:138px!important;}
input.span-5, textarea.span-5 {width:178px!important;}
input.span-6, textarea.span-6 {width:218px!important;}
input.span-7, textarea.span-7 {width:258px!important;}
input.span-8, textarea.span-8 {width:298px!important;}
input.span-9, textarea.span-9 {width:338px!important;}
input.span-10, textarea.span-10 {width:378px!important;}
input.span-11, textarea.span-11 {width:418px!important;}
input.span-12, textarea.span-12 {width:458px!important;}
input.span-13, textarea.span-13 {width:498px!important;}
input.span-14, textarea.span-14 {width:538px!important;}
input.span-15, textarea.span-15 {width:578px!important;}
input.span-16, textarea.span-16 {width:618px!important;}
input.span-17, textarea.span-17 {width:658px!important;}
input.span-18, textarea.span-18 {width:698px!important;}
input.span-19, textarea.span-19 {width:738px!important;}
input.span-20, textarea.span-20 {width:778px!important;}
input.span-21, textarea.span-21 {width:818px!important;}
input.span-22, textarea.span-22 {width:858px!important;}
input.span-23, textarea.span-23 {width:898px!important;}
input.span-24, textarea.span-24 {width:938px!important;}
.append-1 {padding-right:40px;}
.append-2 {padding-right:80px;}
.append-3 {padding-right:120px;}
.append-4 {padding-right:160px;}
.append-5 {padding-right:200px;}
.append-6 {padding-right:240px;}
.append-7 {padding-right:280px;}
.append-8 {padding-right:320px;}
.append-9 {padding-right:360px;}
.append-10 {padding-right:400px;}
.append-11 {padding-right:440px;}
.append-12 {padding-right:480px;}
.append-13 {padding-right:520px;}
.append-14 {padding-right:560px;}
.append-15 {padding-right:600px;}
.append-16 {padding-right:640px;}
.append-17 {padding-right:680px;}
.append-18 {padding-right:720px;}
.append-19 {padding-right:760px;}
.append-20 {padding-right:800px;}
.append-21 {padding-right:840px;}
.append-22 {padding-right:880px;}
.append-23 {padding-right:920px;}
.prepend-1 {padding-left:40px;}
.prepend-2 {padding-left:80px;}
.prepend-3 {padding-left:120px;}
.prepend-4 {padding-left:160px;}
.prepend-5 {padding-left:200px;}
.prepend-6 {padding-left:240px;}
.prepend-7 {padding-left:280px;}
.prepend-8 {padding-left:320px;}
.prepend-9 {padding-left:360px;}
.prepend-10 {padding-left:400px;}
.prepend-11 {padding-left:440px;}
.prepend-12 {padding-left:480px;}
.prepend-13 {padding-left:520px;}
.prepend-14 {padding-left:560px;}
.prepend-15 {padding-left:600px;}
.prepend-16 {padding-left:640px;}
.prepend-17 {padding-left:680px;}
.prepend-18 {padding-left:720px;}
.prepend-19 {padding-left:760px;}
.prepend-20 {padding-left:800px;}
.prepend-21 {padding-left:840px;}
.prepend-22 {padding-left:880px;}
.prepend-23 {padding-left:920px;}
div.border {padding-right:4px;margin-right:5px;border-right:1px solid #eee;}
div.colborder {padding-right:24px;margin-right:25px;border-right:1px solid #eee;}
div.colborderTop {border-top:1px solid #eee;}
.pull-1 {margin-left:-40px;}
.pull-2 {margin-left:-80px;}
.pull-3 {margin-left:-120px;}
.pull-4 {margin-left:-160px;}
.pull-5 {margin-left:-200px;}
.pull-6 {margin-left:-240px;}
.pull-7 {margin-left:-280px;}
.pull-8 {margin-left:-320px;}
.pull-9 {margin-left:-360px;}
.pull-10 {margin-left:-400px;}
.pull-11 {margin-left:-440px;}
.pull-12 {margin-left:-480px;}
.pull-13 {margin-left:-520px;}
.pull-14 {margin-left:-560px;}
.pull-15 {margin-left:-600px;}
.pull-16 {margin-left:-640px;}
.pull-17 {margin-left:-680px;}
.pull-18 {margin-left:-720px;}
.pull-19 {margin-left:-760px;}
.pull-20 {margin-left:-800px;}
.pull-21 {margin-left:-840px;}
.pull-22 {margin-left:-880px;}
.pull-23 {margin-left:-920px;}
.pull-24 {margin-left:-960px;}
.pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21, .pull-22, .pull-23, .pull-24 {float:left;position:relative;}
.push-1 {margin:0 -40px 1.5em 40px;}
.push-2 {margin:0 -80px 1.5em 80px;}
.push-3 {margin:0 -120px 1.5em 120px;}
.push-4 {margin:0 -160px 1.5em 160px;}
.push-5 {margin:0 -200px 1.5em 200px;}
.push-6 {margin:0 -240px 1.5em 240px;}
.push-7 {margin:0 -280px 1.5em 280px;}
.push-8 {margin:0 -320px 1.5em 320px;}
.push-9 {margin:0 -360px 1.5em 360px;}
.push-10 {margin:0 -400px 1.5em 400px;}
.push-11 {margin:0 -440px 1.5em 440px;}
.push-12 {margin:0 -480px 1.5em 480px;}
.push-13 {margin:0 -520px 1.5em 520px;}
.push-14 {margin:0 -560px 1.5em 560px;}
.push-15 {margin:0 -600px 1.5em 600px;}
.push-16 {margin:0 -640px 1.5em 640px;}
.push-17 {margin:0 -680px 1.5em 680px;}
.push-18 {margin:0 -720px 1.5em 720px;}
.push-19 {margin:0 -760px 1.5em 760px;}
.push-20 {margin:0 -800px 1.5em 800px;}
.push-21 {margin:0 -840px 1.5em 840px;}
.push-22 {margin:0 -880px 1.5em 880px;}
.push-23 {margin:0 -920px 1.5em 920px;}
.push-24 {margin:0 -960px 1.5em 960px;}
.push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21, .push-22, .push-23, .push-24 {float:right;position:relative;}
.prepend-top {margin-top:1.5em;}
.append-bottom {margin-bottom:1.5em;}
.box {padding:1.5em;margin-bottom:1.5em;background:#E5ECF9;}
hr {background:#ddd;color:#ddd;clear:both;float:none;width:100%;height:1px;margin:0 0 1.45em;border:none;}
hr.space {background:#fff;color:#fff;}
.clearfix:after, .container:after {content:"\0020";display:block;height:0;clear:both;visibility:hidden;overflow:hidden;}
.clearfix, .container {display:block;}
.clear {clear:both;}PK|��[[Y�H"doc/assets/blueprint-css/print.cssnu�[���/* -----------------------------------------------------------------------


 Blueprint CSS Framework 0.9
 http://blueprintcss.org

   * Copyright (c) 2007-Present. See LICENSE for more info.
   * See README for instructions on how to use Blueprint.
   * For credits and origins, see AUTHORS.
   * This is a compressed file. See the sources in the 'src' directory.

----------------------------------------------------------------------- */

/* print.css */
body {line-height:1.5;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;color:#000;background:none;font-size:10pt;}
.container {background:none;}
hr {background:#ccc;color:#ccc;width:100%;height:2px;margin:2em 0;padding:0;border:none;}
hr.space {background:#fff;color:#fff;}
h1, h2, h3, h4, h5, h6 {font-family:"Helvetica Neue", Arial, "Lucida Grande", sans-serif;}
code {font:.9em "Courier New", Monaco, Courier, monospace;}
img {float:left;margin:1.5em 1.5em 1.5em 0;}
a img {border:none;}
p img.top {margin-top:0;}
blockquote {margin:1.5em;padding:1em;font-style:italic;font-size:.9em;}
.small {font-size:.9em;}
.large {font-size:1.1em;}
.quiet {color:#999;}
.hide {display:none;}
a:link, a:visited {background:transparent;font-weight:700;text-decoration:underline;}
a:link:after, a:visited:after {content:" (" attr(href) ")";font-size:90%;}PK|��[g0�ppdoc/assets/blueprint-css/ie.cssnu�[���/* -----------------------------------------------------------------------


 Blueprint CSS Framework 0.9
 http://blueprintcss.org

   * Copyright (c) 2007-Present. See LICENSE for more info.
   * See README for instructions on how to use Blueprint.
   * For credits and origins, see AUTHORS.
   * This is a compressed file. See the sources in the 'src' directory.

----------------------------------------------------------------------- */

/* ie.css */
body {text-align:center;}
.container {text-align:left;}
* html .column, * html div.span-1, * html div.span-2, * html div.span-3, * html div.span-4, * html div.span-5, * html div.span-6, * html div.span-7, * html div.span-8, * html div.span-9, * html div.span-10, * html div.span-11, * html div.span-12, * html div.span-13, * html div.span-14, * html div.span-15, * html div.span-16, * html div.span-17, * html div.span-18, * html div.span-19, * html div.span-20, * html div.span-21, * html div.span-22, * html div.span-23, * html div.span-24 {overflow-x:hidden;}
* html legend {margin:0px -8px 16px 0;padding:0;}
ol {margin-left:2em;}
sup {vertical-align:text-top;}
sub {vertical-align:text-bottom;}
html>body p code {*white-space:normal;}
hr {margin:-8px auto 11px;}
img {-ms-interpolation-mode:bicubic;}
.clearfix, .container {display:inline-block;}
* html .clearfix, * html .container {height:1%;}
fieldset {padding-top:0;}
input.text, input.title {background-color:#fff;border:1px solid #bbb;}
input.text:focus, input.title:focus {border-color:#666;}
input.text, input.title, textarea, select {margin:0.5em 0;}
input.checkbox, input.radio {position:relative;top:.25em;}
form.inline div, form.inline p {vertical-align:middle;}
form.inline label {position:relative;top:-0.25em;}
form.inline input.checkbox, form.inline input.radio, form.inline input.button, form.inline button {margin:0.5em 0;}
button, input.button {position:relative;top:0.25em;}PK}��[���xII&doc/assets/blueprint-css/src/print.cssnu�[���/* -------------------------------------------------------------- 

   print.css
   * Gives you some sensible styles for printing pages.
   * See Readme file in this directory for further instructions.
      
   Some additions you'll want to make, customized to your markup:
   #header, #footer, #navigation { display:none; }
   
-------------------------------------------------------------- */

body {
  line-height: 1.5;
  font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
  color:#000;
  background: none;
  font-size: 10pt;
}


/* Layout
-------------------------------------------------------------- */

.container {
  background: none;
}

hr { 
  background:#ccc; 
  color:#ccc;
  width:100%;
  height:2px;
  margin:2em 0;
  padding:0;
  border:none;
}
hr.space {
  background: #fff;
  color: #fff;
}


/* Text
-------------------------------------------------------------- */

h1,h2,h3,h4,h5,h6 { font-family: "Helvetica Neue", Arial, "Lucida Grande", sans-serif; }
code { font:.9em "Courier New", Monaco, Courier, monospace; } 

img { float:left; margin:1.5em 1.5em 1.5em 0; }
a img { border:none; }
p img.top { margin-top: 0; }

blockquote {
  margin:1.5em;
  padding:1em;
  font-style:italic;
  font-size:.9em;
}

.small  { font-size: .9em; }
.large  { font-size: 1.1em; }
.quiet  { color: #999; }
.hide   { display:none; }


/* Links
-------------------------------------------------------------- */

a:link, a:visited {
  background: transparent;
  font-weight:700;
  text-decoration: underline;
}

a:link:after, a:visited:after {
  content: " (" attr(href) ")";
  font-size: 90%;
}

/* If you're having trouble printing relative links, uncomment and customize this:
   (note: This is valid CSS3, but it still won't go through the W3C CSS Validator) */

/* a[href^="/"]:after {
  content: " (http://www.yourdomain.com" attr(href) ") ";
} */
PK}��[r��??&doc/assets/blueprint-css/src/forms.cssnu�[���/* -------------------------------------------------------------- 

   forms.css
   * Sets up some default styling for forms
   * Gives you classes to enhance your forms
   
   Usage:
   * For text fields, use class .title or .text
   * For inline forms, use .inline (even when using columns)
   
-------------------------------------------------------------- */

label       { font-weight: bold; }
fieldset    { padding:1.4em; margin: 0 0 1.5em 0; border: 1px solid #ccc; }
legend      { font-weight: bold; font-size:1.2em; }


/* Form fields
-------------------------------------------------------------- */

input[type=text], input[type=password],
input.text, input.title, 
textarea, select { 
  background-color:#fff; 
  border:1px solid #bbb; 
}
input[type=text]:focus, input[type=password]:focus, 
input.text:focus, input.title:focus, 
textarea:focus, select:focus { 
  border-color:#666; 
}

input[type=text], input[type=password],
input.text, input.title,
textarea, select {
  margin:0.5em 0;
}

input.text, 
input.title   { width: 300px; padding:5px; }
input.title   { font-size:1.5em; }
textarea      { width: 390px; height: 250px; padding:5px; }

input[type=checkbox], input[type=radio], 
input.checkbox, input.radio { 
  position:relative; top:.25em; 
}

form.inline { line-height:3; }
form.inline p { margin-bottom:0; }


/* Success, notice and error boxes
-------------------------------------------------------------- */

.error,
.notice, 
.success    { padding: .8em; margin-bottom: 1em; border: 2px solid #ddd; }

.error      { background: #FBE3E4; color: #8a1f11; border-color: #FBC2C4; }
.notice     { background: #FFF6BF; color: #514721; border-color: #FFD324; }
.success    { background: #E6EFC2; color: #264409; border-color: #C6D880; }
.error a    { color: #8a1f11; }
.notice a   { color: #514721; }
.success a  { color: #264409; }
PK}��[�r|X55&doc/assets/blueprint-css/src/reset.cssnu�[���/* -------------------------------------------------------------- 
  
   reset.css
   * Resets default browser CSS.
   
-------------------------------------------------------------- */

html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, code,
del, dfn, em, img, q, dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body { 
  line-height: 1.5; 
}

/* Tables still need 'cellspacing="0"' in the markup. */
table { border-collapse: separate; border-spacing: 0; }
caption, th, td { text-align: left; font-weight: normal; }
table, td, th { vertical-align: middle; }

/* Remove possible quote marks (") from <q>, <blockquote>. */
blockquote:before, blockquote:after, q:before, q:after { content: ""; }
blockquote, q { quotes: "" ""; }

/* Remove annoying border on linked images. */
a img { border: none; }
PK}��[g-��

#doc/assets/blueprint-css/src/ie.cssnu�[���/* -------------------------------------------------------------- 
   
   ie.css
   
   Contains every hack for Internet Explorer,
   so that our core files stay sweet and nimble.
   
-------------------------------------------------------------- */

/* Make sure the layout is centered in IE5 */
body { text-align: center; }
.container { text-align: left; }

/* Fixes IE margin bugs */
* html .column, * html div.span-1, * html div.span-2, 
* html div.span-3, * html div.span-4, * html div.span-5, 
* html div.span-6, * html div.span-7, * html div.span-8, 
* html div.span-9, * html div.span-10, * html div.span-11, 
* html div.span-12, * html div.span-13, * html div.span-14, 
* html div.span-15, * html div.span-16, * html div.span-17, 
* html div.span-18, * html div.span-19, * html div.span-20, 
* html div.span-21, * html div.span-22, * html div.span-23, 
* html div.span-24 { overflow-x: hidden; }


/* Elements
-------------------------------------------------------------- */

/* Fixes incorrect styling of legend in IE6. */
* html legend { margin:0px -8px 16px 0; padding:0; }

/* Fixes incorrect placement of ol numbers in IE6/7. */
ol { margin-left:2em; }

/* Fixes wrong line-height on sup/sub in IE. */
sup { vertical-align: text-top; }
sub { vertical-align: text-bottom; }

/* Fixes IE7 missing wrapping of code elements. */
html>body p code { *white-space: normal; } 

/* IE 6&7 has problems with setting proper <hr> margins. */
hr  { margin: -8px auto 11px; }

/* Explicitly set interpolation, allowing dynamically resized images to not look horrible */
img { -ms-interpolation-mode: bicubic; }

/* Clearing 
-------------------------------------------------------------- */

/* Makes clearfix actually work in IE */ 
.clearfix, .container {display: inline-block;}
* html .clearfix,
* html .container {height: 1%;}


/* Forms 
-------------------------------------------------------------- */

/* Fixes padding on fieldset */
fieldset {padding-top: 0;}

/* Fixes rule that IE 6 ignores */
input.text, input.title {background-color:#fff;border:1px solid #bbb;}
input.text:focus, input.title:focus {border-color:#666;}
input.text, input.title, textarea, select {margin:0.5em 0;}
input.checkbox, input.radio {position:relative; top:.25em;}

/* Fixes alignment of inline form elements */ 
form.inline div, form.inline p {vertical-align:middle;}
form.inline label {position:relative;top:-0.25em;}
form.inline input.checkbox, form.inline input.radio,
form.inline input.button, form.inline button { 
  margin:0.5em 0; 
}
button, input.button {position:relative;top:0.25em;}PK}��[\�t�JJ+doc/assets/blueprint-css/src/typography.cssnu�[���/* -------------------------------------------------------------- 

   typography.css
   * Sets up some sensible default typography.
   
-------------------------------------------------------------- */

/* Default font settings. 
   The font-size percentage is of 16px. (0.75 * 16px = 12px) */
body { 
  font-size: 75%;
  color: #222; 
  background: #fff;
  font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
}


/* Headings
-------------------------------------------------------------- */

h1,h2,h3,h4,h5,h6 { font-weight: normal; color: #111; }

h1 { font-size: 3em; line-height: 1; margin-bottom: 0.5em; }
h2 { font-size: 2em; margin-bottom: 0.75em; }
h3 { font-size: 1.5em; line-height: 1; margin-bottom: 1em; }
h4 { font-size: 1.2em; line-height: 1.25; margin-bottom: 1.25em; }
h5 { font-size: 1em; font-weight: bold; margin-bottom: 1.5em; }
h6 { font-size: 1em; font-weight: bold; }

h1 img, h2 img, h3 img, 
h4 img, h5 img, h6 img {
  margin: 0;
}


/* Text elements
-------------------------------------------------------------- */

p           { margin: 0 0 1.5em; }
p img.left  { float: left; margin: 1.5em 1.5em 1.5em 0; padding: 0; }
p img.right { float: right; margin: 1.5em 0 1.5em 1.5em; }

a:focus, 
a:hover     { color: #000; }
a           { color: #009; text-decoration: underline; }

blockquote  { margin: 1.5em; color: #666; font-style: italic; }
strong      { font-weight: bold; }
em,dfn      { font-style: italic; }
dfn         { font-weight: bold; }
sup, sub    { line-height: 0; }

abbr, 
acronym     { border-bottom: 1px dotted #666; }
address     { margin: 0 0 1.5em; font-style: italic; }
del         { color:#666; }

pre 				{ margin: 1.5em 0; white-space: pre; }
pre,code,tt { font: 1em 'andale mono', 'lucida console', monospace; line-height: 1.5; }


/* Lists
-------------------------------------------------------------- */

li ul, 
li ol       { margin:0 1.5em; }
ul, ol      { margin: 0 1.5em 1.5em 1.5em; }

ul          { list-style-type: disc; }
ol          { list-style-type: decimal; }

dl          { margin: 0 0 1.5em 0; }
dl dt       { font-weight: bold; }
dd          { margin-left: 1.5em;}


/* Tables
-------------------------------------------------------------- */

table       { margin-bottom: 1.4em; width:100%; }
th          { font-weight: bold; }
thead th 		{ background: #c3d9ff; }
th,td,caption { padding: 4px 10px 4px 5px; }
tr.even td  { background: #e5ecf9; }
tfoot       { font-style: italic; }
caption     { background: #eee; }


/* Misc classes
-------------------------------------------------------------- */

.small      { font-size: .8em; margin-bottom: 1.875em; line-height: 1.875em; }
.large      { font-size: 1.2em; line-height: 2.5em; margin-bottom: 1.25em; }
.hide       { display: none; }

.quiet      { color: #666; }
.loud       { color: #000; }
.highlight  { background:#ff0; }
.added      { background:#060; color: #fff; }
.removed    { background:#900; color: #fff; }

.first      { margin-left:0; padding-left:0; }
.last       { margin-right:0; padding-right:0; }
.top        { margin-top:0; padding-top:0; }
.bottom     { margin-bottom:0; padding-bottom:0; }
PK}��[|�芡�%doc/assets/blueprint-css/src/grid.pngnu�[����PNG


IHDR()��bKGD�������	pHYsHHF�k>AIDATH�c|���,D�cǑF8��u�@�Q�:p�����Y��_�"NN�߄IEND�B`�PK}��[[(�1�&�&%doc/assets/blueprint-css/src/grid.cssnu�[���/* --------------------------------------------------------------

	grid.css
	* Sets up an easy-to-use grid of 24 columns.
	
	By default, the grid is 950px wide, with 24 columns
	spanning 30px, and a 10px margin between columns.
	
	If you need fewer or more columns, namespaces or semantic
	element names, use the compressor script (lib/compress.rb)
	
	Note: Changes made in this file will not be applied when
	using the compressor: make changes in lib/blueprint/grid.css.rb
	
-------------------------------------------------------------- */

/* A container should group all your columns. */
.container {
  width: 950px;
  margin: 0 auto;
}

/* Use this class on any div.span / container to see the grid. */
.showgrid { 
  background: url(src/grid.png); 
}


/* Columns
-------------------------------------------------------------- */

/* Sets up basic grid floating and margin. */
.column, div.span-1, div.span-2, div.span-3, div.span-4, div.span-5, div.span-6, div.span-7, div.span-8, div.span-9, div.span-10, div.span-11, div.span-12, div.span-13, div.span-14, div.span-15, div.span-16, div.span-17, div.span-18, div.span-19, div.span-20, div.span-21, div.span-22, div.span-23, div.span-24 {
  float: left;
  margin-right: 10px;
}

/* The last column in a row needs this class. */
.last, div.last { margin-right: 0; }

/* Use these classes to set the width of a column. */
.span-1 {width: 30px;}

.span-2 {width: 70px;}
.span-3 {width: 110px;}
.span-4 {width: 150px;}
.span-5 {width: 190px;}
.span-6 {width: 230px;}
.span-7 {width: 270px;}
.span-8 {width: 310px;}
.span-9 {width: 350px;}
.span-10 {width: 390px;}
.span-11 {width: 430px;}
.span-12 {width: 470px;}
.span-13 {width: 510px;}
.span-14 {width: 550px;}
.span-15 {width: 590px;}
.span-16 {width: 630px;}
.span-17 {width: 670px;}
.span-18 {width: 710px;}
.span-19 {width: 750px;}
.span-20 {width: 790px;}
.span-21 {width: 830px;}
.span-22 {width: 870px;}
.span-23 {width: 910px;}
.span-24, div.span-24 { width:950px; margin:0; }

/* Use these classes to set the width of an input. */
input.span-1, textarea.span-1, input.span-2, textarea.span-2, input.span-3, textarea.span-3, input.span-4, textarea.span-4, input.span-5, textarea.span-5, input.span-6, textarea.span-6, input.span-7, textarea.span-7, input.span-8, textarea.span-8, input.span-9, textarea.span-9, input.span-10, textarea.span-10, input.span-11, textarea.span-11, input.span-12, textarea.span-12, input.span-13, textarea.span-13, input.span-14, textarea.span-14, input.span-15, textarea.span-15, input.span-16, textarea.span-16, input.span-17, textarea.span-17, input.span-18, textarea.span-18, input.span-19, textarea.span-19, input.span-20, textarea.span-20, input.span-21, textarea.span-21, input.span-22, textarea.span-22, input.span-23, textarea.span-23, input.span-24, textarea.span-24 {
  border-left-width: 1px!important;
  border-right-width: 1px!important;
  padding-left: 5px!important;
  padding-right: 5px!important;
}

input.span-1, textarea.span-1 { width: 18px!important; }
input.span-2, textarea.span-2 { width: 58px!important; }
input.span-3, textarea.span-3 { width: 98px!important; }
input.span-4, textarea.span-4 { width: 138px!important; }
input.span-5, textarea.span-5 { width: 178px!important; }
input.span-6, textarea.span-6 { width: 218px!important; }
input.span-7, textarea.span-7 { width: 258px!important; }
input.span-8, textarea.span-8 { width: 298px!important; }
input.span-9, textarea.span-9 { width: 338px!important; }
input.span-10, textarea.span-10 { width: 378px!important; }
input.span-11, textarea.span-11 { width: 418px!important; }
input.span-12, textarea.span-12 { width: 458px!important; }
input.span-13, textarea.span-13 { width: 498px!important; }
input.span-14, textarea.span-14 { width: 538px!important; }
input.span-15, textarea.span-15 { width: 578px!important; }
input.span-16, textarea.span-16 { width: 618px!important; }
input.span-17, textarea.span-17 { width: 658px!important; }
input.span-18, textarea.span-18 { width: 698px!important; }
input.span-19, textarea.span-19 { width: 738px!important; }
input.span-20, textarea.span-20 { width: 778px!important; }
input.span-21, textarea.span-21 { width: 818px!important; }
input.span-22, textarea.span-22 { width: 858px!important; }
input.span-23, textarea.span-23 { width: 898px!important; }
input.span-24, textarea.span-24 { width: 938px!important; }

/* Add these to a column to append empty cols. */

.append-1 { padding-right: 40px;}
.append-2 { padding-right: 80px;}
.append-3 { padding-right: 120px;}
.append-4 { padding-right: 160px;}
.append-5 { padding-right: 200px;}
.append-6 { padding-right: 240px;}
.append-7 { padding-right: 280px;}
.append-8 { padding-right: 320px;}
.append-9 { padding-right: 360px;}
.append-10 { padding-right: 400px;}
.append-11 { padding-right: 440px;}
.append-12 { padding-right: 480px;}
.append-13 { padding-right: 520px;}
.append-14 { padding-right: 560px;}
.append-15 { padding-right: 600px;}
.append-16 { padding-right: 640px;}
.append-17 { padding-right: 680px;}
.append-18 { padding-right: 720px;}
.append-19 { padding-right: 760px;}
.append-20 { padding-right: 800px;}
.append-21 { padding-right: 840px;}
.append-22 { padding-right: 880px;}
.append-23 { padding-right: 920px;}

/* Add these to a column to prepend empty cols. */

.prepend-1 { padding-left: 40px;}
.prepend-2 { padding-left: 80px;}
.prepend-3 { padding-left: 120px;}
.prepend-4 { padding-left: 160px;}
.prepend-5 { padding-left: 200px;}
.prepend-6 { padding-left: 240px;}
.prepend-7 { padding-left: 280px;}
.prepend-8 { padding-left: 320px;}
.prepend-9 { padding-left: 360px;}
.prepend-10 { padding-left: 400px;}
.prepend-11 { padding-left: 440px;}
.prepend-12 { padding-left: 480px;}
.prepend-13 { padding-left: 520px;}
.prepend-14 { padding-left: 560px;}
.prepend-15 { padding-left: 600px;}
.prepend-16 { padding-left: 640px;}
.prepend-17 { padding-left: 680px;}
.prepend-18 { padding-left: 720px;}
.prepend-19 { padding-left: 760px;}
.prepend-20 { padding-left: 800px;}
.prepend-21 { padding-left: 840px;}
.prepend-22 { padding-left: 880px;}
.prepend-23 { padding-left: 920px;}


/* Border on right hand side of a column. */
div.border {
  padding-right: 4px;
  margin-right: 5px;
  border-right: 1px solid #eee;
}

/* Border with more whitespace, spans one column. */
div.colborder {
  padding-right: 24px;
  margin-right: 25px;
  border-right: 1px solid #eee;
}


/* Use these classes on an element to push it into the 
next column, or to pull it into the previous column.  */


.pull-1 { margin-left: -40px; }
.pull-2 { margin-left: -80px; }
.pull-3 { margin-left: -120px; }
.pull-4 { margin-left: -160px; }
.pull-5 { margin-left: -200px; }
.pull-6 { margin-left: -240px; }
.pull-7 { margin-left: -280px; }
.pull-8 { margin-left: -320px; }
.pull-9 { margin-left: -360px; }
.pull-10 { margin-left: -400px; }
.pull-11 { margin-left: -440px; }
.pull-12 { margin-left: -480px; }
.pull-13 { margin-left: -520px; }
.pull-14 { margin-left: -560px; }
.pull-15 { margin-left: -600px; }
.pull-16 { margin-left: -640px; }
.pull-17 { margin-left: -680px; }
.pull-18 { margin-left: -720px; }
.pull-19 { margin-left: -760px; }
.pull-20 { margin-left: -800px; }
.pull-21 { margin-left: -840px; }
.pull-22 { margin-left: -880px; }
.pull-23 { margin-left: -920px; }
.pull-24 { margin-left: -960px; }

.pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21, .pull-22, .pull-23, .pull-24 {float: left; position:relative;}


.push-1 { margin: 0 -40px 1.5em 40px; }
.push-2 { margin: 0 -80px 1.5em 80px; }
.push-3 { margin: 0 -120px 1.5em 120px; }
.push-4 { margin: 0 -160px 1.5em 160px; }
.push-5 { margin: 0 -200px 1.5em 200px; }
.push-6 { margin: 0 -240px 1.5em 240px; }
.push-7 { margin: 0 -280px 1.5em 280px; }
.push-8 { margin: 0 -320px 1.5em 320px; }
.push-9 { margin: 0 -360px 1.5em 360px; }
.push-10 { margin: 0 -400px 1.5em 400px; }
.push-11 { margin: 0 -440px 1.5em 440px; }
.push-12 { margin: 0 -480px 1.5em 480px; }
.push-13 { margin: 0 -520px 1.5em 520px; }
.push-14 { margin: 0 -560px 1.5em 560px; }
.push-15 { margin: 0 -600px 1.5em 600px; }
.push-16 { margin: 0 -640px 1.5em 640px; }
.push-17 { margin: 0 -680px 1.5em 680px; }
.push-18 { margin: 0 -720px 1.5em 720px; }
.push-19 { margin: 0 -760px 1.5em 760px; }
.push-20 { margin: 0 -800px 1.5em 800px; }
.push-21 { margin: 0 -840px 1.5em 840px; }
.push-22 { margin: 0 -880px 1.5em 880px; }
.push-23 { margin: 0 -920px 1.5em 920px; }
.push-24 { margin: 0 -960px 1.5em 960px; }

.push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21, .push-22, .push-23, .push-24 {float: right; position:relative;}


/* Misc classes and elements
-------------------------------------------------------------- */

/* In case you need to add a gutter above/below an element */
.prepend-top { 
  margin-top:1.5em; 
}
.append-bottom { 
  margin-bottom:1.5em; 
}

/* Use a .box to create a padded box inside a column.  */ 
.box { 
  padding: 1.5em; 
  margin-bottom: 1.5em; 
  background: #E5ECF9; 
}

/* Use this to create a horizontal ruler across a column. */
hr {
  background: #ddd; 
  color: #ddd;
  clear: both; 
  float: none; 
  width: 100%; 
  height: .1em;
  margin: 0 0 1.45em;
  border: none; 
}
hr.space {
  background: #fff;
  color: #fff;
}


/* Clearing floats without extra markup
   Based on How To Clear Floats Without Structural Markup by PiE
   [http://www.positioniseverything.net/easyclearing.html] */

.clearfix:after, .container:after {
  content: "\0020"; 
  display: block; 
  height: 0; 
  clear: both; 
  visibility: hidden;
  overflow:hidden; 
}
.clearfix, .container {display: block;}

/* Regular clearing
   apply to column that should drop below previous ones. */

.clear { clear:both; }
PK}��[��ڴ4�4class-daln-ajax.phpnu�[���<?php

/*
 * this class should be used to include ajax actions
 */
class Daln_Ajax{
    
    protected static $instance = null;
    private $shared = null;

    /*
     * return an instance of this class
     */
    public static function get_instance() {

        if ( null == self::$instance ) {
            self::$instance = new self;
        }

        return self::$instance;

    }

    private function __construct() {
        
        //assign an instance of the plugin info
        $this->shared = Daln_Shared::get_instance();
        
        //ajax requests --------------------------------------------------------
        add_action( 'wp_ajax_set_status_cookie', array($this, 'set_status_cookie') );
        add_action( 'wp_ajax_nopriv_set_status_cookie', array($this, 'set_status_cookie') );

	    add_action( 'wp_ajax_get_ticker_data', array($this, 'get_ticker_data') );
	    add_action( 'wp_ajax_nopriv_get_ticker_data', array($this, 'get_ticker_data') );

	    add_action( 'wp_ajax_update_default_colors', array( $this, 'update_default_colors' ) );
        
    }

	/*
	 * Set the cookie used to determine the status (open or closed) of the news ticker. This request is triggered when
	 * the used clicks on the open or close button.
	 */
    public function set_status_cookie(){

        //check the referer
        check_ajax_referer( 'live-news', 'security' );

        //Save the current status ( open/closed ) in a cookie
        if( isset( $_POST['status'] ) ){

            if( $_POST['status'] == "open" ){

                setcookie("live_news_status", "open", 0 ,"/");

            }else{

                setcookie("live_news_status", "closed", 0 ,"/");

            }

        }

        echo 'success';

        die();

    }

	/*
	 * Generate an XML response with included all the data of the ticker. The data are generated based on the options
	 * defined for the specific ticker.
	 */
	public function get_ticker_data(){

		//check the referer
		check_ajax_referer( 'live-news', 'security' );

		//get the ticker id
		$ticker_id = intval($_POST['ticker_id'], 10);

		//get the ticker information
		global $wpdb;
		$table_name = $wpdb->prefix . $this->shared->get('slug') . "_tickers";
		$safe_sql = $wpdb->prepare("SELECT * FROM $table_name WHERE id = %d", $ticker_id);
		$ticker_obj = $wpdb->get_row($safe_sql);

		//if there isn't a ticker associated with this ticker_id die()
		if($ticker_obj === NULL){die('Invalid Ticker ID.');}

		//START OUTPUT

		//generate the xml header
		header('Content-type: text/xml');
		header('Pragma: public');
		header('Cache-control: private');
		header('Expires: -1');

		//Get the transient with included the data of the ticker if available
		$outstr = get_transient('daln_ticker_' . $ticker_obj->id);

		//Generate the data of the ticker only if the transient with the data is not available
		if($outstr === false) {

			$outstr = '<?xml version="1.0" encoding="UTF-8" ?>';

			$outstr .= '<ticker>';

			//generate featured news XML ---------------------------------------------------------------------------
			$outstr .= '<featurednews>';

			switch ( $ticker_obj->source ) {

				//Enter the news manually
				case 1:

					global $wpdb;
					$table_name = $wpdb->prefix . $this->shared->get( 'slug' ) . "_featured_news";
					$results    = $wpdb->get_results( "SELECT id, news_title, news_excerpt, url FROM $table_name WHERE ticker_id = $ticker_obj->id ORDER BY id DESC LIMIT 1", ARRAY_A );

					if ( count( $results ) > 0 ) {
						foreach ( $results as $result ) {

							$outstr .= "<news>";
							$outstr .= "<newstitle>" . esc_attr( $this->shared->strlen_no_truncate( stripslashes( $result['news_title'] ), $ticker_obj->featured_title_maximum_length ) ) . "</newstitle>";
							$outstr .= "<newsexcerpt>" . esc_attr( $this->shared->strlen_no_truncate( stripslashes( $result['news_excerpt'] ), $ticker_obj->featured_excerpt_maximum_length ) ) . "</newsexcerpt>";
							$outstr .= "<url>" . esc_attr( stripslashes( $result['url'] ) ) . "</url>";
							$outstr .= "</news>";

						}
					}
					break;

				//Get the news automatically from the WordPress posts
				case 2:

					$args = array(
						'numberposts' => '1',
						'offset'      => '0',
						'orderby'     => 'date',
						'order'       => 'DESC',
						'category'    => $ticker_obj->category
					);

					$myposts = get_posts( $args );
					foreach ( $myposts as $post ) {

						setup_postdata( $post );

						$outstr .= "<news>";
						$outstr .= "<newstitle>" . esc_attr( $this->shared->strlen_no_truncate( stripslashes( $post->post_title ), $ticker_obj->featured_title_maximum_length )) . "</newstitle>";
						$outstr .= "<newsexcerpt>" . esc_attr( $this->shared->strlen_no_truncate( stripslashes($post->post_excerpt), $ticker_obj->featured_excerpt_maximum_length ) ) . "</newsexcerpt>";
						$outstr .= "<url>" . esc_attr( stripslashes( get_permalink( $post->ID ) ) ) . "</url>";
						$outstr .= "</news>";

					}
					break;

				//Get the news from a specified feed RSS
				case 3:

					$rss = simplexml_load_file($ticker_obj->url_rss);

					// loop through the items
					$counter = 0;
					foreach($rss->channel->item as $single_item) {

						//Use only the first entries
						if($counter > 0){break;}
						$counter++;

						$outstr .= "<news>";
						$outstr .= "<newstitle>" . esc_attr( $this->shared->strlen_no_truncate( $single_item->title, $ticker_obj->featured_title_maximum_length)) . "</newstitle>";
						$outstr .= "<newsexcerpt>" .  esc_attr($this->shared->strlen_no_truncate( $single_item->description, $ticker_obj->featured_excerpt_maximum_length ) ) . "</newsexcerpt>";
						$outstr .= "<url>" . esc_attr($single_item->link) . "</url>";
						$outstr .= "</news>";

					}

					break;

			}

			$outstr .= '</featurednews>';

			//generate sliding news XML --------------------------------------------------------------------------------
			$outstr .= '<slidingnews>';

			//get number of sliding news from the option
			$number_of_sliding_news = intval( $ticker_obj->number_of_sliding_news, 10 );

			/*
			 * Set the offset based on the "Hide Featured News" option. If the featured news is hidden then offset is 0,
			 * if the featured news is shown the offset is 1.
			 */
			if ( $ticker_obj->hide_featured_news == 2 ) {
				$offset = 0;
			} else {
				$offset = 1;
			}

			switch ( $ticker_obj->source ) {

				//Enter the news manually
				case 1:

					global $wpdb;
					$table_name = $wpdb->prefix . $this->shared->get( 'slug' ) . "_sliding_news";
					$results    = $wpdb->get_results( "SELECT id, news_title, url, text_color, text_color_hover, background_color, background_color_opacity, image_before, image_after FROM $table_name WHERE ticker_id = $ticker_obj->id ORDER BY id DESC LIMIT $number_of_sliding_news", ARRAY_A );

					if ( count( $results ) > 0 ) {
						foreach ( $results as $result ) {

							$outstr .= "<news>";
							$outstr .= "<newstitle>" . esc_attr( $this->shared->strlen_no_truncate( stripslashes( $result['news_title'] ), $ticker_obj->sliding_news_maximum_length ) ) . "</newstitle>";
							$outstr .= "<url>" . esc_attr( stripslashes( $result['url'] ) ) . "</url>";
							$outstr .= "<text_color>" . esc_attr( stripslashes($result['text_color'])) . "</text_color>";
							$outstr .= "<text_color_hover>" . esc_attr( stripslashes($result['text_color_hover'])) . "</text_color_hover>";
							$outstr .= "<background_color>" . esc_attr( stripslashes($result['background_color'])) . "</background_color>";
							$outstr .= "<background_color_opacity>" . esc_attr( $result['background_color_opacity']) . "</background_color_opacity>";
							$outstr .= "<image_before>" . esc_attr( stripslashes($result['image_before'])) . "</image_before>";
							$outstr .= "<image_after>" . esc_attr( stripslashes($result['image_after'])) . "</image_after>";
							$outstr .= "</news>";

						}
					}

					break;

				//Get the news automatically from the WordPress posts
				case 2:

					$args = array(
						'numberposts' => $number_of_sliding_news,
						'offset'      => $offset,
						'orderby'     => 'date',
						'order'       => 'DESC',
						'category'    => $ticker_obj->category
					);

					$myposts = get_posts( $args );
					foreach ( $myposts as $post ) {

						setup_postdata( $post );

						$outstr .= "<news>";
						$outstr .= "<newstitle>" . esc_attr( $this->shared->strlen_no_truncate( stripslashes( $post->post_title ), $ticker_obj->sliding_news_maximum_length) ) . "</newstitle>";
						$outstr .= "<url>" . esc_attr( stripslashes( get_permalink( $post->ID ) ) ) . "</url>";
						$outstr .= "</news>";
					}
					break;

				//Get the news from a specified feed RSS
				case 3:

					$rss = simplexml_load_file($ticker_obj->url_rss);

					//loop through the items
					$counter = 0;
					foreach($rss->channel->item as $single_item) {

						//Skip the first item if the offset is set to 1
						$counter++;
						if($offset == 1 and $counter == 1 or ( ( $counter - $offset ) > $number_of_sliding_news )){continue;}

						$outstr .= "<news>";
						$outstr .= "<newstitle>" . esc_attr( $this->shared->strlen_no_truncate( $single_item->title, $ticker_obj->sliding_news_maximum_length)) . "</newstitle>";
						$outstr .= "<url>" . esc_attr($single_item->link) . "</url>";
						$outstr .= "</news>";

					}

					break;

				//Get the news from Twitter
				case 4:

					require_once($this->shared->get('dir') . 'public/inc/twitter-api-php/TwitterAPIExchange.php');

					$settings = array(
						'oauth_access_token' => stripslashes($ticker_obj->twitter_oauth_access_token),
						'oauth_access_token_secret' => stripslashes($ticker_obj->twitter_oauth_access_token_secret),
						'consumer_key' => stripslashes($ticker_obj->twitter_consumer_key),
						'consumer_secret' => stripslashes($ticker_obj->twitter_consumer_secret)
					);

					$requestMethod = "GET";
					$url = "https://api.twitter.com/1.1/statuses/user_timeline.json";
                    $getfield = '?screen_name=' . stripslashes($ticker_obj->twitter_username) . '&count=' . $number_of_sliding_news . '&tweet_mode=extended';

					$twitter = new TwitterAPIExchange($settings);

					$user_timeline_json =  $twitter->setGetfield($getfield)->
					               buildOauth($url, $requestMethod)->
					               performRequest();

					$user_timeline = json_decode($user_timeline_json);

					//Loop through the items
					foreach($user_timeline as $key => $single_tweet){

						//Remove the specified elements from the tweet (links, hashtags, usernames)
						$newstitle = $this->shared->twitter_remove_elements( $single_tweet->full_text, $ticker_obj->twitter_strip_links, $ticker_obj->twitter_strip_hashtags, $ticker_obj->twitter_strip_usernames);

						//Limit the maximum number of characters of the tweet if specified with the "Sliding News Maximum Length" option
						$newstitle = $this->shared->strlen_no_truncate($newstitle, $ticker_obj->sliding_news_maximum_length);

						$outstr .= "<news>";
						$outstr .= "<newstitle>" . esc_attr($newstitle) . "</newstitle>";
						$outstr .= "<url>" . esc_attr('https://twitter.com/' . stripslashes($ticker_obj->twitter_username) . '/status/' . $single_tweet->id_str) . "</url>";
						$outstr .= "</news>";

					}

					break;

			}

			$outstr .= '</slidingnews>';

			//generate current time XML ------------------------------------------------------------------------------------
			$current_time = current_time( 'timestamp' ) + $ticker_obj->clock_offset;

			$outstr .= "<time>" . esc_attr( stripslashes( $current_time ) ) . "</time>";

			$outstr .= '</ticker>';

			if($ticker_obj->transient_expiration > 0){
				set_transient('daln_ticker_' . $ticker_obj->id, $outstr, $ticker_obj->transient_expiration);
			}

		}

		echo $outstr;

		die();

	}

	/*
	 * Retrieve the "Sliding News Color", the "Sliding News Color Hover, and the "Sliding News Background Color" from
	 * the tickers to initialize the values of the three fields in the "Sliding News" menu.
	 */
	public function update_default_colors(){

		//check the referer
		check_ajax_referer('live-news', 'security');

		//check the capability
		if(!current_user_can(get_option($this->shared->get('slug') . "_sliding_menu_capability"))){die();}

		//get the missing word id
		$ticker_id = intval($_POST['ticker_id'], 10);

		//get the ticker data
		global $wpdb; $table_name = $wpdb->prefix . $this->shared->get('slug') . "_tickers";
		$safe_sql = $wpdb->prepare("SELECT sliding_news_color, sliding_news_color_hover, sliding_news_background_color FROM $table_name WHERE id = %d ", $ticker_id);
		$ticker_obj = $wpdb->get_row($safe_sql);

		//remove the slashes before sending the json response
		$response = new stdClass();
		$response->sliding_news_color = stripslashes($ticker_obj->sliding_news_color);
		$response->sliding_news_color_hover = stripslashes($ticker_obj->sliding_news_color_hover);
		$response->sliding_news_background_color = stripslashes($ticker_obj->sliding_news_background_color);

		//return the data with json
		echo json_encode($response);

		die();

	}

}PK}��[�|h/��Licensing/README_License.txtnu�[���This theme or plugin is comprised of two parts.

(1) the PHP code and integrated HTML are licensed under the General Public
License (GPL). You will find a copy of the GPL in the same directory as this
text file.

(2) All other parts, but not limited to the CSS code, images, and design are
licensed according to the terms of your purchased license.

Read more about licensing here: http://themeforest.net/licenses
PK}��[�-�l�9�9Licensing/GPL.txtnu�[���GNU GENERAL PUBLIC LICENSE
Version 2, June 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc.  
51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA

Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

Preamble

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution and modification follow.
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.

1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.

You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

    a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. 
    b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. 
    c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) 

These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.

In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

    a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, 
    b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, 
    c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) 

The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.

4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.

6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.

7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.

8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.

10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

NO WARRANTY

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.PK}��[X������admin/view/sliding.phpnu�[���<?php

        if ( !current_user_can(get_option( $this->shared->get('slug') . "_sliding_menu_capability")) )  {
            wp_die( __( 'You do not have sufficient permissions to access this page.', 'daln' ) );
        }

        ?>

        <!-- process data -->

        <?php

         if( isset( $_POST['update_id'] ) or isset($_POST['form_submitted']) ){

            extract($_POST);

            $invalid_data_message = '';

            //validation on "Title"
            if( mb_strlen( trim($title) ) == 0 or mb_strlen($title) > 1000 ){
                $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid value in the "Title" field.', 'daln') . '</p></div>';
                $invalid_data = true;
            }

            //validation on "URL"
             if( ( mb_strlen(trim($url)) > 0 and !preg_match($this->shared->url_regex, trim($url)) )
                 or mb_strlen($url) > 2083 ){
                $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid URL in the "URL" field.', 'daln') . '</p></div>';
                $invalid_data = true;
            }

            //validation on "Text Color"
            if(!preg_match($this->shared->hex_rgb_regex, $text_color)){
                $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid color in the "Text Color" field.', 'daln') . '</p></div>';
                $invalid_data = true;
            }

			//validation on "Text Color Hover"
			if(!preg_match($this->shared->hex_rgb_regex, $text_color_hover)){
				$invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid color in the "Text Color Hover" field.', 'daln') . '</p></div>';
				$invalid_data = true;
			}

            //validation on "Background Color"
            if(!preg_match($this->shared->hex_rgb_regex, $background_color)){
                $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid color in the "Background Color" field.', 'daln') . '</p></div>';
                $invalid_data = true;
            }

	         //validation on "Background Color Opacity"
	         if($background_color_opacity < 0 or $background_color_opacity > 1){
		         $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a value included between 0 and 1 in the "Background Color Opacity" field.', 'daln') . '</p></div>';
		         $invalid_data = true;
	         }

             //validation on "Image Before"
             if( ( mb_strlen(trim($image_before)) > 0 and !preg_match($this->shared->url_regex, trim($image_before)) )
                 or mb_strlen($image_before) > 2083 ){
                 $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid URL in the "Image Left" field.', 'daln') . '</p></div>';
                 $invalid_data = true;
             }

             //validation on "Image After"
             if( ( mb_strlen(trim($image_after)) > 0 and !preg_match($this->shared->url_regex, trim($image_after)) )
                  or mb_strlen($image_after) > 2083 ){
                 $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid URL in the "Image Right" field.', 'daln') . '</p></div>';
                 $invalid_data = true;
             }

        }

        //update ---------------------------------------------------------------
        if( isset( $_POST['update_id'] ) and !isset($invalid_data) ){

            //update the database
            global $wpdb;
            $table_name = $wpdb->prefix . $this->shared->get('slug') . "_sliding_news";
            $safe_sql = $wpdb->prepare("UPDATE $table_name SET
                news_title = %s,
                url = %s,
                ticker_id = %d,
                text_color = %s,
                text_color_hover = %s,
                background_color = %s,
                background_color_opacity = %f,
                image_before = %s,
                image_after = %s
                WHERE id = %d",
                $title,
                $url,
                $ticker,
                $text_color,
                $text_color_hover,
                $background_color,
                $background_color_opacity,
                $image_before,
                $image_after,
                $update_id);

            $query_result = $wpdb->query( $safe_sql );

            if($query_result !== false){
                $process_data_message = '<div class="updated settings-error notice is-dismissible below-h2"><p>' . esc_attr__('The sliding news has been successfully updated.', 'daln') . '</p></div>';
            }

        }else{

            //add ------------------------------------------------------------------
            if( isset($_POST['form_submitted']) and !isset($invalid_data) ){

                //insert into the database
                global $wpdb;
                $table_name = $wpdb->prefix . $this->shared->get('slug') . "_sliding_news";
                $safe_sql = $wpdb->prepare("INSERT INTO $table_name SET
                    news_title = %s,
                    url = %s,
                    ticker_id = %d,
                    text_color = %s,
                    text_color_hover = %s,
                    background_color = %s,
                    background_color_opacity = %f,
                    image_before = %s,
                    image_after = %s",
                    $title,
                    $url,
                    $ticker,
                    $text_color,
                    $text_color_hover,
                    $background_color,
                    $background_color_opacity,
                    $image_before,
                    $image_after
                    );

                $query_result = $wpdb->query( $safe_sql );

                if($query_result !== false){
                    $process_data_message = '<div class="updated settings-error notice is-dismissible below-h2"><p>' . esc_attr__('The sliding news has been successfully added.', 'daln') . '</p></div>';
                }

            }

        }

        //delete a sliding news
        if( isset( $_POST['delete_id']) ){

            global $wpdb;
            $delete_id = intval($_POST['delete_id'], 10);

            //delete this game
            $table_name = $wpdb->prefix . $this->shared->get('slug') . "_sliding_news";
            $safe_sql = $wpdb->prepare("DELETE FROM $table_name WHERE id = %d ", $delete_id);

            $query_result = $wpdb->query( $safe_sql );

            if($query_result !== false){
                $process_data_message = '<div class="updated settings-error notice is-dismissible below-h2"><p>' . esc_attr__('The sliding news has been successfully deleted.', 'daln') . '</p></div>';
            }

        }

        //get the sliding news data
        $display_form = true;
        if(isset($_GET['edit_id'])){
            $edit_id = intval($_GET['edit_id'], 10);
            global $wpdb;
            $table_name = $wpdb->prefix . $this->shared->get('slug') . "_sliding_news";
            $safe_sql = $wpdb->prepare("SELECT * FROM $table_name WHERE id = %d ", $edit_id);
            $sliding_news_obj = $wpdb->get_row($safe_sql);
	        if($sliding_news_obj === null){
		        $display_form = false;
	        }
        }

        //Get the value of the custom filter
        if( isset($_GET['cf']) and $_GET['cf'] != 'all' ){
            $ticker_id_in_cf = intval($_GET['cf'], 10);
        }else{
            $ticker_id_in_cf = false;
        }

        ?>
        
        <!-- output -->

        <div class="wrap">

            <?php if ($this->shared->get_number_of_sliding_news() > 0) : ?>

                <div id="daext-header-wrapper" class="daext-clearfix">

                    <h2><?php esc_attr_e('Live News - Sliding News', 'daln'); ?></h2>

                    <!-- Search Form -->

                    <form action="admin.php" method="get" id="daext-search-form">

                        <input type="hidden" name="page" value="daln-sliding">

                        <p><?php esc_attr_e('Perform your Search', 'daln'); ?></p>

                        <?php
                        if (isset($_GET['s']) and strlen(trim($_GET['s'])) > 0) {
                            $search_string = $_GET['s'];
                        } else {
                            $search_string = '';
                        }

                        //Custom Filter
                        if($ticker_id_in_cf !== false){
                            echo '<input type="hidden" name="cf" value="' . $ticker_id_in_cf . '">';
                        }

                        ?>

                        <input type="text" name="s" name="s"
                               value="<?php echo esc_attr(stripslashes($search_string)); ?>" autocomplete="off" maxlength="255">
                        <input type="submit" value="">

                    </form>

                    <!-- Filter Form -->

                    <form method="GET" action="admin.php" id="daext-filter-form">

                        <input type="hidden" name="page" value="<?php echo $this->shared->get('slug'); ?>-sliding">

                        <p><?php esc_attr_e('Filter by News Ticker', 'daln'); ?></p>

                        <select id="cf" name="cf" class="daext-display-none">

                            <option value="all" <?php if(isset($_GET['cf'])){selected( $_GET['cf'], 'all' );} ?>><?php esc_attr_e('All', 'daln'); ?></option>

                            <?php

                            global $wpdb;
                            $table_name = $wpdb->prefix . $this->shared->get('slug') . "_tickers";
                            $safe_sql = "SELECT id, name FROM $table_name ORDER BY id DESC";
                            $tickers_a = $wpdb->get_results($safe_sql, ARRAY_A);

                            foreach ($tickers_a as $key => $ticker) {

                                if(isset($_GET['cf'])){
                                    echo '<option value="' . $ticker['id'] . '" ' .  selected( $_GET['cf'], $ticker['id'], false ) . '>' . esc_attr(stripslashes($ticker['name'])) . '</option>';
                                }else{
                                    echo '<option value="' . $ticker['id'] . '">' . esc_attr(stripslashes($ticker['name'])) . '</option>';

                                }

                            }

                            ?>

                        </select>

                    </form>

                </div>

            <?php else: ?>

                <div id="daext-header-wrapper" class="daext-clearfix">

                    <h2><?php esc_attr_e('Live News - Sliding News', 'daln'); ?></h2>

                </div>

            <?php endif; ?>

            <?php

        //do not display the menu if in the 'cf' url parameter is applied a filter based on a ticker that doesn't exist
        if( isset($_GET['cf']) and $_GET['cf'] != 'all' and !$this->shared->ticker_exists($_GET['cf']) ){
            echo '<p>' . esc_attr__("The filter can't be applied because this news ticker doesn't exist.", 'daln') . '</p>';
            return;
        }

        //retrieve the url parameter that should be used in the linked URLs
        if(isset($_GET['cf']) and $this->shared->ticker_exists($_GET['cf'])){
            $ticker_url_parameter = '&cf=' . intval($_GET['cf'], 10);
        }else{
            $ticker_url_parameter = '';
        }

        //display a message and not the menu if there are no tickers
        if($this->shared->get_number_of_tickers() == 0){
            echo '<p>' . esc_attr__("There are no news tickers at the moment, please create at least one news ticker with the", 'daln') . ' ' . '<a href="admin.php?page=daln-tickers">' . esc_attr__('News Tickers', 'daln') . '</a> menu.' . '</p>';
            return;
        }

        ?>

        <div id="daext-menu-wrapper">

            <?php if(isset($invalid_data_message)){echo $invalid_data_message;} ?>
            <?php if(isset($process_data_message)){echo $process_data_message;} ?>
            
            <!-- table -->

            <?php

            //custom filter
            if($ticker_id_in_cf === false){
                $filter = '';
            }else{
                global $wpdb;
                $filter = $wpdb->prepare("WHERE ticker_id = %d", $ticker_id_in_cf);
            }

            //create the query part used to filter the results when a search is performed
            if (isset($_GET['s']) and strlen(trim($_GET['s'])) > 0) {

                $search_string = $_GET['s'];
                global $wpdb;

                if(strlen(trim($filter)) > 0){
                    $filter .= $wpdb->prepare(' AND (news_title LIKE %s OR url LIKE %s)', '%' . $search_string . '%', '%' . $search_string . '%');
                }else{
                    $filter = $wpdb->prepare('WHERE (news_title LIKE %s OR url LIKE %s)', '%' . $search_string . '%', '%' . $search_string . '%');
                }

            }

            //retrieve the total number of sliding news
            global $wpdb;
            $table_name=$wpdb->prefix . $this->shared->get('slug') . "_sliding_news";
            $total_items = $wpdb->get_var( "SELECT COUNT(*) FROM $table_name $filter");

            //Initialize the pagination class
            require_once( $this->shared->get('dir') . '/admin/inc/class-daln-pagination.php' );
            $pag = new daln_pagination();
            $pag->set_total_items( $total_items );//Set the total number of items
            $pag->set_record_per_page( 10 ); //Set records per page
            $pag->set_target_page( "admin.php?page=" . $this->shared->get('slug') . "-sliding" );//Set target page
            $pag->set_current_page();//set the current page number from $_GET

            ?>

            <!-- Query the database -->
            <?php
            $query_limit = $pag->query_limit();
            $results = $wpdb->get_results("SELECT * FROM $table_name $filter ORDER BY id DESC $query_limit ", ARRAY_A); ?>

            <?php if( count($results) > 0 ) : ?>

            <div class="daext-items-container">

                <!-- list of tables -->
                <table class="daext-items">
                    <thead>
                        <tr>
                            <th>
                                <div><?php esc_attr_e('Title', 'daln'); ?></div>
                                <div class="help-icon" title="<?php esc_attr_e('The title of the sliding news.', 'daln'); ?>"></div>
                            </th>
                            <th>
                                <div><?php esc_attr_e('Ticker', 'daln'); ?></div>
                                <div class="help-icon" title="<?php esc_attr_e('The news ticker associated with the sliding news.', 'daln'); ?>"></div>
                            </th>
                            <th></th>
                        </tr>
                    </thead>
                    <tbody>

                    <?php foreach($results as $result) : ?>
                        <tr>
                            <td><?php echo esc_attr(stripslashes($result['news_title'])); ?></td>
                            <td><?php echo esc_attr(stripslashes($this->shared->get_textual_ticker($result['ticker_id']))); ?></td>
                            <td class="icons-container">

                                <a class="menu-icon edit" href="admin.php?page=<?php echo $this->shared->get('slug'); ?>-sliding&edit_id=<?php echo $result['id']; ?><?php echo $ticker_url_parameter; ?>"></a>
                                <form method="POST" action="admin.php?page=<?php echo $this->shared->get('slug'); ?>-sliding">
                                    <input type="hidden" value="<?php echo $result['id']; ?>" name="delete_id" >
                                    <input class="menu-icon delete" type="submit" value="">
                                </form>
                            </td>
                        </tr>
                    <?php endforeach; ?>

                    </tbody>

                </table>

            </div>

                <!-- Display the pagination -->
                <?php if($pag->total_items > 0) : ?>
                    <div class="daext-tablenav daext-clearfix">
                        <div class="daext-tablenav-pages">
                            <span class="daext-displaying-num"><?php echo $pag->total_items; ?> <?php esc_attr_e('items', 'daln'); ?></span>
                            <?php $pag->show(); ?>
                        </div>
                    </div>
                <?php endif; ?>

            <?php else : ?>

                <?php

                if(strlen(trim($filter)) > 0){
                    echo '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('There are no results that match your filter.', 'daln') . '</p></div>';
                }

                ?>

            <?php endif; ?>

            <div id="sliding-news-form-container">

	            <?php if( $display_form ) : ?>

	                 <form method="POST" action="admin.php?page=<?php echo $this->shared->get('slug'); ?>-sliding<?php echo $ticker_url_parameter; ?>" autocomplete="off">

	                    <input type="hidden" value="1" name="form_submitted">

	                    <?php if(isset($_GET['edit_id'])) : ?>

	                        <!-- Edit a sliding news -->

	                        <div class="daext-form-container">

	                            <h3 class="daext-form-title"><?php esc_attr_e('Edit Sliding News', 'daln'); ?> <?php echo $sliding_news_obj->id; ?></h3>

	                            <table class="daext-form">

	                                <input type="hidden" name="update_id" id="update-id" value="<?php echo $sliding_news_obj->id; ?>" />

	                                 <!-- title -->
	                                 <tr valign="top">
	                                     <th scope="row"><label for="title"><?php esc_attr_e('Title', 'daln'); ?></label></th>
	                                     <td>
	                                         <input value="<?php echo esc_attr(stripslashes($sliding_news_obj->news_title)); ?>" type="text" id="title" maxlength="1000" size="30" name="title" />
	                                         <div class="help-icon" title="<?php esc_attr_e('Enter the title of the sliding news.', 'daln'); ?>"></div>
	                                     </td>
	                                 </tr>

	                                 <!-- URL -->
	                                 <tr valign="top">
	                                     <th scope="row"><label for="url"><?php esc_attr_e('URL', 'daln'); ?></label></th>
	                                     <td>
	                                         <input value="<?php echo esc_attr(stripslashes($sliding_news_obj->url)); ?>" type="text" id="url" maxlength="2083" size="30" name="url" />
	                                         <div class="help-icon" title="<?php esc_attr_e('Enter the URL of the sliding news.', 'daln'); ?>"></div>
	                                     </td>
	                                 </tr>

	                                <!-- Ticker -->
	                                <tr>
	                                    <th scope="row"><?php esc_attr_e('Ticker', 'daln'); ?></th>
	                                    <td>
	                                        <select id="ticker" name="ticker" class="daext-display-none">

	                                            <?php

	                                            global $wpdb;
	                                            $table_name = $wpdb->prefix . $this->shared->get('slug') . "_tickers";
	                                            $safe_sql = "SELECT id, name FROM $table_name ORDER BY id DESC";
	                                            $tickers_a = $wpdb->get_results($safe_sql, ARRAY_A);

	                                            foreach ($tickers_a as $key => $ticker) {

	                                                echo '<option value="' . $ticker['id'] . '" ' .  selected($sliding_news_obj->ticker_id, $ticker['id']) . '>' . esc_attr(stripslashes($ticker['name'])) . '</option>';

	                                            }

	                                            ?>

	                                        </select>
	                                        <div class="help-icon" title='<?php esc_attr_e('Select the news ticker associated with this sliding news.', 'daln'); ?>'></div>
	                                    </td>
	                                </tr>

	                                <!-- Text Color -->
	                                <tr valign="top">
	                                    <th scope="row"><label for="text-color"><?php esc_attr_e('Text Color', 'daln'); ?></label></th>
	                                    <td>
	                                        <input value="<?php echo esc_attr(stripslashes($sliding_news_obj->text_color)); ?>" class="wp-color-picker daext-display-none" type="text" id="text-color" maxlength="7" size="30" name="text_color"/>
	                                        <div class="help-icon" title="<?php esc_attr_e('Select the color used to display the text of this sliding news.', 'daln'); ?>"></div>
	                                    </td>
	                                </tr>

	                                <!-- Text Color Hover -->
	                                <tr valign="top">
	                                    <th scope="row"><label for="text-color-hover"><?php esc_attr_e('Text Color Hover', 'daln'); ?></label></th>
	                                    <td>
	                                        <input value="<?php echo esc_attr(stripslashes($sliding_news_obj->text_color_hover)); ?>" class="wp-color-picker daext-display-none" type="text" id="text-color-hover" maxlength="7" size="30" name="text_color_hover"/>
	                                        <div class="help-icon" title="<?php esc_attr_e('Select the color used to display the text of this sliding news in hover state.', 'daln'); ?>"></div>
	                                    </td>
	                                </tr>

	                                <!-- Background Color -->
	                                <tr valign="top">
	                                    <th scope="row"><label for="background-color"><?php esc_attr_e('Background Color', 'daln'); ?></label></th>
	                                    <td>
	                                        <input value="<?php echo esc_attr(stripslashes($sliding_news_obj->background_color)); ?>" class="wp-color-picker daext-display-none" type="text" id="background-color" maxlength="7" size="30" name="background_color"/>
	                                        <div class="help-icon" title="<?php esc_attr_e('Select the background color of this sliding news.', 'daln'); ?>"></div>
	                                    </td>
	                                </tr>

	                                <!-- Background Color Opacity -->
	                                <tr>
	                                    <th scope="row"><label for="background-color-opacity"><?php esc_attr_e('Background Color Opacity', 'daln'); ?></label></th>
	                                    <td>
	                                        <input value="<?php echo floatval($sliding_news_obj->background_color_opacity); ?>" type="text" id="background-color-opacity" maxlength="3" size="30" name="background_color_opacity" />
	                                        <div class="help-icon" title="<?php esc_attr_e('The background color opacity of this sliding news.', 'daln'); ?>"></div>
	                                    </td>
	                                </tr>

		                            <!-- Image Before -->
		                            <tr>
			                            <th scope="row"><label for="image-before"><?php esc_attr_e('Image Left', 'daln'); ?></label></th>
			                            <td>

				                            <div class="image-uploader">
					                            <img class="selected-image" src="<?php echo esc_attr(stripslashes($sliding_news_obj->image_before)); ?>" <?php echo mb_strlen(trim($sliding_news_obj->image_before)) == 0 ? 'style="display: none;"' : ''; ?>>
					                            <input value="<?php echo esc_attr(stripslashes($sliding_news_obj->image_before)); ?>" type="hidden" id="image-before" maxlength="2083" name="image_before">
					                            <a class="button_add_media" data-set-remove="<?php echo mb_strlen(trim($sliding_news_obj->image_before)) == 0 ? 'set' : 'remove'; ?>" data-set="<?php esc_attr_e('Set image', 'daln'); ?>" data-remove="<?php esc_attr_e('Remove Image', 'daln'); ?>"><?php echo mb_strlen(trim($sliding_news_obj->image_before)) == 0 ? esc_attr__('Set image', 'daln') : esc_attr__('Remove Image', 'daln'); ?></a>
					                            <p class="description"><?php esc_attr_e("Select the image displayed on the left of the sliding news. It's recommended to use an image with an height of 40 pixels.", 'daln'); ?></p>
				                            </div>

			                            </td>
		                            </tr>

		                            <!-- Image After -->
		                            <tr>
			                            <th scope="row"><label for="image-after"><?php esc_attr_e('Image Right', 'daln'); ?></label></th>
			                            <td>

				                            <div class="image-uploader">
					                            <img class="selected-image" src="<?php echo esc_attr(stripslashes($sliding_news_obj->image_after)); ?>" <?php echo mb_strlen(trim($sliding_news_obj->image_after)) == 0 ? 'style="display: none;"' : ''; ?>>
					                            <input value="<?php echo esc_attr(stripslashes($sliding_news_obj->image_after)); ?>" type="hidden" id="image-after" maxlength="2083" name="image_after">
					                            <a class="button_add_media" data-set-remove="<?php echo mb_strlen(trim($sliding_news_obj->image_after)) == 0 ? 'set' : 'remove'; ?>" data-set="<?php esc_attr_e('Set image', 'daln'); ?>" data-remove="<?php esc_attr_e('Remove Image', 'daln'); ?>"><?php echo mb_strlen(trim($sliding_news_obj->image_after)) == 0 ? esc_attr__('Set image', 'daln') : esc_attr__('Remove Image', 'daln'); ?></a>
					                            <p class="description"><?php esc_attr_e("Select the image displayed on the right of the sliding news. It's recommended to use an image with an height of 40 pixels.", 'daln'); ?></p>
				                            </div>

			                            </td>
		                            </tr>

	                            </table>

	                            <!-- submit button -->
	                            <div class="daext-form-action">
	                                <input class="button" type="submit" value="<?php esc_attr_e('Update Sliding News', 'daln'); ?>" >
	                            </div>

	                    <?php else : ?>

	                        <!-- Create New Sliding News -->

	                        <div class="daext-form-container">

	                            <div class="daext-form-title"><?php esc_attr_e('Create a Sliding News', 'daln'); ?></div>

	                                 <table class="daext-form">

	                                     <!-- Title -->
	                                     <tr valign="top">
	                                         <th scope="row"><label for="title"><?php esc_attr_e('Title', 'daln'); ?></label></th>
	                                         <td>
	                                             <input type="text" id="title" maxlength="1000" size="30" name="title" />
	                                             <div class="help-icon" title="<?php esc_attr_e('Enter the title of the sliding news.', 'daln'); ?>"></div>
	                                         </td>
	                                     </tr>

	                                     <!-- URL -->
	                                     <tr valign="top">
	                                         <th scope="row"><label for="url"><?php esc_attr_e('URL', 'daln'); ?></label></th>
	                                         <td>
	                                             <input type="text" id="url" maxlength="2083" size="30" name="url" />
	                                             <div class="help-icon" title="<?php esc_attr_e('Enter the URL of the sliding news.', 'daln'); ?>"></div>
	                                         </td>
	                                     </tr>

	                                    <!-- Ticker -->
	                                    <tr>
	                                        <th scope="row"><?php esc_attr_e('Ticker', 'daln'); ?></th>
	                                        <td>
	                                            <select id="ticker" name="ticker" class="daext-display-none">

	                                                <?php

	                                                global $wpdb;
	                                                $table_name = $wpdb->prefix . $this->shared->get('slug') . "_tickers";
	                                                $safe_sql = "SELECT id, name FROM $table_name ORDER BY id DESC";
	                                                $tickers_a = $wpdb->get_results($safe_sql, ARRAY_A);

                                                    if($ticker_id_in_cf === false){

                                                        foreach ($tickers_a as $key => $ticker) {
                                                            echo '<option value="' . $ticker['id'] . '">' . esc_attr(stripslashes($ticker['name'])) . '</option>';
                                                        }

                                                    }else{

                                                        foreach ($tickers_a as $key => $ticker) {
                                                            echo '<option value="' . $ticker['id'] . '" ' . selected($ticker_id_in_cf, $ticker['id'], false) . '>' . esc_attr(stripslashes($ticker['name'])) . '</option>';
                                                        }

                                                    }

	                                                ?>

	                                            </select>
	                                            <div class="help-icon" title='<?php esc_attr_e('Select the news ticker associated with this sliding news.', 'daln'); ?>'></div>
	                                        </td>
	                                    </tr>

	                                     <!-- Text Color -->
		                                 <tr valign="top">
			                                 <th scope="row"><label for="text-color"><?php esc_attr_e('Text Color', 'daln'); ?></label></th>
			                                 <td>
				                                 <input class="wp-color-picker daext-display-none" type="text" id="text-color" maxlength="7" size="30" name="text_color"/>
				                                 <div class="help-icon" title="<?php esc_attr_e('Select the color used to display the text of this sliding news.', 'daln'); ?>"></div>
			                                 </td>
		                                 </tr>

		                                 <!-- Text Color Hover -->
		                                 <tr valign="top">
			                                 <th scope="row"><label for="text-color-hover"><?php esc_attr_e('Text Color Hover', 'daln'); ?></label></th>
			                                 <td>
				                                 <input class="wp-color-picker daext-display-none" type="text" id="text-color-hover" maxlength="7" size="30" name="text_color_hover"/>
				                                 <div class="help-icon" title="<?php esc_attr_e('Select the color used to display the text of this sliding news in hover state.', 'daln'); ?>"></div>
			                                 </td>
		                                 </tr>

	                                     <!-- Background Color -->
	                                     <tr valign="top">
	                                         <th scope="row"><label for="background-color"><?php esc_attr_e('Background Color', 'daln'); ?></label></th>
	                                         <td>
	                                             <input class="wp-color-picker daext-display-none" type="text" id="background-color" maxlength="7" size="30" name="background_color"/>
	                                             <div class="help-icon" title="<?php esc_attr_e('Select the background color of this sliding news.', 'daln'); ?>"></div>
	                                         </td>
	                                     </tr>

		                                 <!-- Background Color Opacity -->
		                                 <tr>
			                                 <th scope="row"><label for="background-color-opacity"><?php esc_attr_e('Background Color Opacity', 'daln'); ?></label></th>
			                                 <td>
				                                 <input value="1" type="text" id="background-color-opacity" maxlength="3" size="30" name="background_color_opacity" />
				                                 <div class="help-icon" title="<?php esc_attr_e('The background color opacity of this sliding news.', 'daln'); ?>"></div>
			                                 </td>
		                                 </tr>

		                                 <!-- Image Before -->
	                                     <tr>
	                                         <th scope="row"><label for="image-before"><?php esc_attr_e('Image Left', 'daln'); ?></label></th>
	                                         <td>

	                                             <div class="image-uploader">
	                                                 <img class="selected-image" src="" style="display: none">
	                                                 <input type="hidden" id="image-before" maxlength="2083" name="image_before">
	                                                 <a class="button_add_media" data-set-remove="set" data-set="<?php esc_attr_e('Set image', 'daln'); ?>" data-remove="<?php esc_attr_e('Remove Image', 'daln'); ?>"><?php esc_attr_e('Set image', 'daln'); ?></a>
	                                                 <p class="description"><?php esc_attr_e("Select the image displayed on the left of the sliding news. It's recommended to use an image with an height of 40 pixels.", 'daln'); ?></p>
	                                             </div>

	                                         </td>
	                                     </tr>

	                                     <!-- Image After -->
		                                 <tr>
			                                 <th scope="row"><label for="image-after"><?php esc_attr_e('Image Right', 'daln'); ?></label></th>
			                                 <td>

				                                 <div class="image-uploader">
					                                 <img class="selected-image" src="" style="display: none">
					                                 <input type="hidden" id="image-after" maxlength="2083" name="image_after">
					                                 <a class="button_add_media" data-set-remove="set" data-set="<?php esc_attr_e('Set image', 'daln'); ?>" data-remove="<?php esc_attr_e('Remove Image', 'daln'); ?>"><?php esc_attr_e('Set image', 'daln'); ?></a>
					                                 <p class="description"><?php esc_attr_e("Select the image displayed on the right of the sliding news. It's recommended to use an image with an height of 40 pixels.", 'daln'); ?></p>
				                                 </div>

			                                 </td>
		                                 </tr>

	                                </table>

	                                <!-- submit button -->
	                                <div class="daext-form-action">
	                                    <input class="button" type="submit" value="<?php esc_attr_e('Add Sliding News', 'daln'); ?>" >
	                                </div>

	                            <?php endif; ?>

	                        </div>

	                </form>

	            <?php endif; ?>

            </div>

        </div>

    </div>PK}��[ST�P��admin/view/tickers.phpnu�[���<?php

if ( !current_user_can(get_option( $this->shared->get('slug') . "_tickers_menu_capability")) )  {
    wp_die( esc_attr__( 'You do not have sufficient permissions to access this page.', 'daln' ) );
}

?>

<!-- process data -->

<?php

if( isset( $_POST['update_id'] ) or isset($_POST['form_submitted']) ){

    extract($_POST);

    $invalid_data_message = '';

    //validation on "Name"
    if( mb_strlen( trim($name) ) == 0 or mb_strlen($name) > 100 ){
        $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid value in the "Name" field.', 'daln') . '</p></div>';
        $invalid_data = true;
    }

    //validation on "URL"
    if( ( intval($target, 10) == 2 and mb_strlen( trim($url) ) == 0 )
        or ( intval($target, 10) == 2 and !preg_match($this->shared->url_regex, trim($url)) )
        or mb_strlen($url) > 2083 ){
        $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid URL in the "Target URL" field.', 'daln') . '</p></div>';
        $invalid_data = true;
    }

    //validation on "URL RSS"
    if( ( intval($source, 10) == 3 and mb_strlen( trim($url_rss) ) == 0 )
        or ( intval($source, 10) == 3 and !preg_match($this->shared->url_regex, trim($url_rss)) )
        or ( intval($source, 10) == 3 and mb_strlen($url_rss) > 2083 ) ){
        $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid URL in the "Source RSS" field.', 'daln') . '</p></div>';
        $invalid_data = true;
    }

	//validation on "Twitter Username"
	if( ( intval($source, 10) == 4 and mb_strlen( trim($twitter_username) ) == 0 )
	    or ( mb_strlen($twitter_username) > 255 ) ){
		$invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid value in the "Twitter Username" field.', 'daln') . '</p></div>';
		$invalid_data = true;
	}

	//validation on "Twitter Oauth Access Token"
	if( ( intval($source, 10) == 4 and mb_strlen( trim($twitter_oauth_access_token) ) == 0 )
	    or ( mb_strlen($twitter_oauth_access_token) > 255 ) ){
		$invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid value in the "Twitter Oauth Access Token" field.', 'daln') . '</p></div>';
		$invalid_data = true;
	}

	//validation on "Twitter Oauth Access Token Secret"
	if( ( intval($source, 10) == 4 and mb_strlen( trim($twitter_oauth_access_token_secret) ) == 0 )
	    or ( mb_strlen($twitter_oauth_access_token_secret) > 255 ) ){
		$invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid value in the "Twitter Oauth Access Token Secret" field.', 'daln') . '</p></div>';
		$invalid_data = true;
	}

	//validation on "Twitter Consumer Key"
	if( ( intval($source, 10) == 4 and mb_strlen( trim($twitter_consumer_key) ) == 0 )
	    or ( mb_strlen($twitter_consumer_key) > 255 ) ){
		$invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid value in the "Twitter Consumer Key" field.', 'daln') . '</p></div>';
		$invalid_data = true;
	}

	//validation on "Twitter Consumer Secret"
	if( ( intval($source, 10) == 4 and mb_strlen( trim($twitter_consumer_secret) ) == 0 )
	    or ( mb_strlen($twitter_consumer_secret) > 255 ) ){
		$invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid value in the "Twitter Consumer Secret" field.', 'daln') . '</p></div>';
		$invalid_data = true;
	}

    //validation on "Sliding Speed"
    if( intval($sliding_speed, 10) < 1 or intval($sliding_speed, 10) > 10 ){
        $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a value included between 1 and 10 in the "Sliding Speed" field.', 'daln') . '</p></div>';
        $invalid_data = true;
    }

    //validation on "Sliding Delay"
    if( intval($sliding_delay, 10) < 0 or intval($sliding_delay, 10) > 1000000000 ){
        $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a value included between 0 and 1000000000 in the "Sliding Delay" field.', 'daln') . '</p></div>';
        $invalid_data = true;
    }

	//validation on "Featured Title Maximum Length"
	if( intval($featured_title_maximum_length, 10) < 1 or intval($featured_title_maximum_length, 10) > 1000 ){
		$invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a value included between 1 and 1000 in the "Featured Title Maximum Length" field.', 'daln') . '</p></div>';
		$invalid_data = true;
	}

    //validation on "Featured Excerpt Maximum Length"
    if( intval($featured_excerpt_maximum_length, 10) < 1 or intval($featured_excerpt_maximum_length, 10) > 1000 ){
        $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a value included between 1 and 1000 in the "Featured Excerpt Maximum Length" field.', 'daln') . '</p></div>';
        $invalid_data = true;
    }

	//validation on "Sliding News Maximum Length"
	if( intval($sliding_news_maximum_length, 10) < 1 or intval($sliding_news_maximum_length, 10) > 1000 ){
		$invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a value included between 1 and 1000 in athe "Sliding News Maximum Length" field.', 'daln') . '</p></div>';
		$invalid_data = true;
	}

	//validation on "Featured News Title Font Size"
	if( intval($featured_title_font_size, 10) < 1 or intval($featured_title_font_size, 10) > 38 ){
		$invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a value included between 1 and 38 in the "Featured News Title Font Size" field.', 'daln') . '</p></div>';
		$invalid_data = true;
	}

	//validation on "Featured News Excerpt Font Size"
	if( intval($featured_excerpt_font_size, 10) < 1 or intval($featured_excerpt_font_size, 10) > 28 ){
		$invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a value included between 1 and 28 in the "Featured News Excerpt Font Size" field.', 'daln') . '</p></div>';
		$invalid_data = true;
	}

	//validation on "Sliding News Font Size"
	if( intval($sliding_news_font_size, 10) < 1 or intval($sliding_news_font_size, 10) > 28 ){
		$invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a value included between 1 and 28 in the "Sliding News Font Size" field.', 'daln') . '</p></div>';
		$invalid_data = true;
	}

	//validation on "Clock Font Size"
	if( intval($clock_font_size, 10) < 1 or intval($clock_font_size, 10) > 28 ){
		$invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a value included between 1 and 28 in the "Clock Font Size" field.', 'daln') . '</p></div>';
		$invalid_data = true;
	}

	//validation on "Sliding News Margin"
	if( intval($sliding_news_margin, 10) < 0 or intval($sliding_news_margin, 10) > 999 ){
		$invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a value included between 0 and 999 in the "Sliding News Margin" field.', 'daln') . '</p></div>';
		$invalid_data = true;
	}

	//validation on "Sliding News Padding"
	if( intval($sliding_news_padding, 10) < 0 or intval($sliding_news_padding, 10) > 999 ){
		$invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a value included between 0 and 999 in the "Sliding News Padding" field.', 'daln') . '</p></div>';
		$invalid_data = true;
	}

    //validation on "Cached Cycles"
    if( intval($cached_cycles, 10) < 0 or intval($cached_cycles, 10) > 1000000000 ){
        $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a value included between 0 and 1000000000 in the "Cached Cycles" field.', 'daln') . '</p></div>';
        $invalid_data = true;
    }

	//validation on "Transient Expiration"
	if( intval($transient_expiration, 10) < 0 or intval($transient_expiration, 10) > 1000000000 ){
		$invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a value included between 0 and 1000000000 in the "Transient Expiration" field.', 'daln') . '</p></div>';
		$invalid_data = true;
	}

    //validation on "Featured News Background Color"
    if(!preg_match($this->shared->hex_rgb_regex, $featured_news_background_color)){
        $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid color in the "Featured News Background Color" field.', 'daln') . '</p></div>';
        $invalid_data = true;
    }

    //validation on "Sliding News Background Color"
    if(!preg_match($this->shared->hex_rgb_regex, $sliding_news_background_color)){
        $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid color in the "Sliding News Background Color" field.', 'daln') . '</p></div>';
        $invalid_data = true;
    }

    //validation on "Sliding News Background Color Opacity"
    if($sliding_news_background_color_opacity < 0 or $sliding_news_background_color_opacity > 1){
        $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a value included between 0 and 1 in the "Sliding News Background Color Opacity" field.', 'daln') . '</p></div>';
        $invalid_data = true;
    }

    //validation on "Font Family"
    if(!preg_match($this->shared->font_family_regex, stripslashes($font_family))){
        $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid value in the "Font Family" field.', 'daln') . '</p></div>';
        $invalid_data = true;
    }

    //validation on "Gooogle Font"
    if( mb_strlen(trim($google_font)) > 0 and !preg_match($this->shared->url_regex, trim($google_font)) ){
        $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid value in the "Google Font" field.', 'daln') . '</p></div>';
        $invalid_data = true;
    }

    //validation on "Open Button Image"
    if( !preg_match($this->shared->url_regex, trim($open_button_image)) or mb_strlen($open_button_image) > 2083 ){
        $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid URL in the "Open Button Image" field.', 'daln') . '</p></div>';
        $invalid_data = true;
    }

    //validation on "Close Button Image"
    if( !preg_match($this->shared->url_regex, trim($close_button_image)) or mb_strlen($close_button_image) > 2083 ){
        $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid URL in the "Close Button Image" field.', 'daln') . '</p></div>';
        $invalid_data = true;
    }

    //validation on "Clock Background Image"
    if( !preg_match($this->shared->url_regex, trim($clock_background_image)) or mb_strlen($clock_background_image) > 2083 ){
        $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid URL in the "Clock Background Image" field.', 'daln') . '</p></div>';
        $invalid_data = true;
    }

    //validation on "Featured News Title Color"
    if(!preg_match($this->shared->hex_rgb_regex, $featured_news_title_color)){
        $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid color in the "Featured News Title Color" field.', 'daln') . '</p></div>';
        $invalid_data = true;
    }

    //validation on "Featured News Title Color Hover"
    if(!preg_match($this->shared->hex_rgb_regex, $featured_news_title_color_hover)){
        $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid color in the "Featured News Title Color Hover" field.', 'daln') . '</p></div>';
        $invalid_data = true;
    }

    //validation on "Featured News Excerpt Color"
    if(!preg_match($this->shared->hex_rgb_regex, $featured_news_excerpt_color)){
        $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid color in the "Featured News Excerpt Color" field.', 'daln') . '</p></div>';
        $invalid_data = true;
    }

    //validation on "Sliding News Color"
    if(!preg_match($this->shared->hex_rgb_regex, $sliding_news_color)){
        $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid color in the "Sliding News Color" field.', 'daln') . '</p></div>';
        $invalid_data = true;
    }

    //validation on "Sliding News Color Hover"
    if(!preg_match($this->shared->hex_rgb_regex, $sliding_news_color_hover)){
        $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid color in the "Sliding News Color Hover" field.', 'daln') . '</p></div>';
        $invalid_data = true;
    }

    //validation on "Clock Text Color"
    if(!preg_match($this->shared->hex_rgb_regex, $clock_text_color)){
        $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid color in the "Clock Text Color" field.', 'daln') . '</p></div>';
        $invalid_data = true;
    }

    //validation on "Featured News Background Color Opacity"
    if($featured_news_background_color_opacity < 0 or $featured_news_background_color_opacity > 1){
        $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a value included between 0 and 1 in the "Featured News Background Color Opacity" field.', 'daln') . '</p></div>';
        $invalid_data = true;
    }

    //do not save (and leave an error message) if a ticker with "Website" as a target already exists
    if($target == 1){
        global $wpdb;
        $table_name = $wpdb->prefix . $this->shared->get('slug') . "_tickers";
        $row_obj = $wpdb->get_row("SELECT * from $table_name WHERE target = 1");
        if($row_obj !== NULL){

            if( !isset($_POST['update_id']) or ( isset($_POST['update_id']) and $row_obj->id !== $update_id ) ){
                $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('A news ticker with "Website" as a target already exists.', 'daln') . '</p></div>';
                $invalid_data = true;
            }

        }
    }

    //do not save (and leave an error message) if a ticker with "URL" as a target and a URL that already exists in the URL field
    if($target == 2){

        global $wpdb;
        $table_name = $wpdb->prefix . $this->shared->get('slug') . "_tickers";
        $safe_sql = $wpdb->prepare("SELECT * from $table_name WHERE target = 2 and url = %s", $url);
        $row_obj = $wpdb->get_row($safe_sql);

        //do not leave the error message if the record doesn't exist
        if( $row_obj !== NULL ){

	        /*
	         * Do not leave the error if we are changing the URL of an edited ticker (in this case the URL found is the
	         * same of the edited ticker.
	         */
            if( !isset($_POST['update_id']) or ( isset($_POST['update_id']) and $row_obj->id !== $update_id ) ){
                $invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('A news ticker with "URL" as a target and the same value in the URL field already exists.', 'daln') . '</p></div>';
                $invalid_data = true;
            }

        }

    }

}

//update ---------------------------------------------------------------
if( isset( $_POST['update_id'] ) and !isset($invalid_data) ){

    //update the database
    global $wpdb;
    $table_name = $wpdb->prefix . $this->shared->get('slug') . "_tickers";
    $safe_sql = $wpdb->prepare("UPDATE $table_name SET
                name = %s,
                target = %d,
                url = %s,
                source = %d,
                url_rss = %s,
                category = %d,
                twitter_username = %s,
                twitter_oauth_access_token = %s,
                twitter_oauth_access_token_secret = %s,
			    twitter_consumer_key = %s,
			    twitter_consumer_secret = %s,
			    twitter_strip_links = %d,
			    twitter_strip_hashtags = %d,
			    twitter_strip_usernames = %d,
                open_links_new_tab = %d,
                clock_offset = %d,
                clock_format = %s,
                clock_source = %d,
                clock_autoupdate = %d,
                clock_autoupdate_time = %d,
                sliding_speed = %d,
                sliding_delay = %d,
                number_of_sliding_news = %d,
                featured_title_maximum_length = %d,
                featured_excerpt_maximum_length = %d,
                sliding_news_maximum_length = %d,
                open_news_as_default = %d,
                hide_featured_news = %d,
                hide_clock = %d,
                enable_rtl_layout = %d,
                cached_cycles = %d,
                featured_news_background_color = %s,
                sliding_news_background_color = %s,
                sliding_news_background_color_opacity = %f,
                font_family = %s,
                google_font = %s,
                featured_title_font_size = %d,
				featured_excerpt_font_size = %d,
				sliding_news_font_size = %d,
				clock_font_size = %d,
				sliding_news_margin = %d,
				sliding_news_padding = %d,
                enable_with_mobile_devices = %d,
                open_button_image = %s,
                close_button_image = %s,
                clock_background_image = %s,
                featured_news_title_color = %s,
                featured_news_title_color_hover = %s,
                featured_news_excerpt_color = %s,
                sliding_news_color = %s,
                sliding_news_color_hover = %s,
                clock_text_color = %s,
                featured_news_background_color_opacity = %s,
                enable_ticker = %d,
                enable_links = %d,
                transient_expiration = %d
                WHERE id = %d",
        $name,
        $target,
        $url,
        $source,
        $url_rss,
        $category,
	    $twitter_username,
        $twitter_oauth_access_token,
	    $twitter_oauth_access_token_secret,
	    $twitter_consumer_key,
	    $twitter_consumer_secret,
	    $twitter_strip_links,
	    $twitter_strip_hashtags,
	    $twitter_strip_usernames,
        $open_links_new_tab,
        $clock_offset,
        $clock_format,
        $clock_source,
        $clock_autoupdate,
        $clock_autoupdate_time,
        $sliding_speed,
        $sliding_delay,
        $number_of_sliding_news,
        $featured_title_maximum_length,
	    $featured_excerpt_maximum_length,
        $sliding_news_maximum_length,
        $open_news_as_default,
        $hide_featured_news,
        $hide_clock,
        $enable_rtl_layout,
        $cached_cycles,
        $featured_news_background_color,
        $sliding_news_background_color,
        $sliding_news_background_color_opacity,
        $font_family,
        $google_font,
		$featured_title_font_size,
		$featured_excerpt_font_size,
        $sliding_news_font_size,
        $clock_font_size,
	    $sliding_news_margin,
		$sliding_news_padding,
        $enable_with_mobile_devices,
        $open_button_image,
        $close_button_image,
        $clock_background_image,
        $featured_news_title_color,
        $featured_news_title_color_hover,
        $featured_news_excerpt_color,
        $sliding_news_color,
        $sliding_news_color_hover,
        $clock_text_color,
        $featured_news_background_color_opacity,
        $enable_ticker,
        $enable_links,
	    $transient_expiration,
        $update_id
        );

    $query_result = $wpdb->query( $safe_sql );

    if($query_result !== false){
        $process_data_message = '<div class="updated settings-error notice is-dismissible below-h2"><p>' . esc_attr__('The news ticker has been successfully updated.', 'daln') . '</p></div>';
    }

}else{

    //add ------------------------------------------------------------------
    if( isset($_POST['form_submitted']) and !isset($invalid_data) ){

        //insert into the database
        global $wpdb;
        $table_name = $wpdb->prefix . $this->shared->get('slug') . "_tickers";
        $safe_sql = $wpdb->prepare("INSERT INTO $table_name SET
                    name = %s,
                    target = %d,
                    url = %s,
                    source = %d,
                    url_rss = %s,
                    category = %d,
                    twitter_username = %s,
					twitter_oauth_access_token = %s,
					twitter_oauth_access_token_secret = %s,
					twitter_consumer_key = %s,
					twitter_consumer_secret = %s,
					twitter_strip_links = %d,
					twitter_strip_hashtags = %d,
					twitter_strip_usernames = %d,
                    open_links_new_tab = %d,
                    clock_offset = %d,
                    clock_format = %s,
                    clock_source = %d,
                    clock_autoupdate = %d,
                    clock_autoupdate_time = %d,
                    sliding_speed = %d,
                    sliding_delay = %d,
                    number_of_sliding_news = %d,
                    featured_title_maximum_length = %d,
                    featured_excerpt_maximum_length = %d,
                    sliding_news_maximum_length = %d,
                    open_news_as_default = %d,
                    hide_featured_news = %d,
                    hide_clock = %d,
                    enable_rtl_layout = %d,
                    cached_cycles = %d,
                    featured_news_background_color = %s,
                    sliding_news_background_color = %s,
                    sliding_news_background_color_opacity = %f,
                    font_family = %s,
                    google_font = %s,
					featured_title_font_size = %d,
					featured_excerpt_font_size = %d,
					sliding_news_font_size = %d,
					clock_font_size = %d,
					sliding_news_margin = %d,
					sliding_news_padding = %d,
                    enable_with_mobile_devices = %d,
                    open_button_image = %s,
                    close_button_image = %s,
                    clock_background_image = %s,
                    featured_news_title_color = %s,
                    featured_news_title_color_hover = %s,
                    featured_news_excerpt_color = %s,
                    sliding_news_color = %s,
                    sliding_news_color_hover = %s,
                    clock_text_color = %s,
                    featured_news_background_color_opacity = %s,
                    enable_ticker = %d,
                    enable_links = %d,
                    transient_expiration = %d",
            $name,
            $target,
            $url,
            $source,
            $url_rss,
            $category,
	        $twitter_username,
	        $twitter_oauth_access_token,
	        $twitter_oauth_access_token_secret,
	        $twitter_consumer_key,
	        $twitter_consumer_secret,
	        $twitter_strip_links,
	        $twitter_strip_hashtags,
	        $twitter_strip_usernames,
            $open_links_new_tab,
            $clock_offset,
            $clock_format,
            $clock_source,
            $clock_autoupdate,
            $clock_autoupdate_time,
            $sliding_speed,
            $sliding_delay,
            $number_of_sliding_news,
            $featured_title_maximum_length,
	        $featured_excerpt_maximum_length,
            $sliding_news_maximum_length,
            $open_news_as_default,
            $hide_featured_news,
            $hide_clock,
            $enable_rtl_layout,
            $cached_cycles,
            $featured_news_background_color,
            $sliding_news_background_color,
            $sliding_news_background_color_opacity,
            $font_family,
            $google_font,
			$featured_title_font_size,
			$featured_excerpt_font_size,
            $sliding_news_font_size,
            $clock_font_size,
            $sliding_news_margin,
            $sliding_news_padding,
            $enable_with_mobile_devices,
            $open_button_image,
            $close_button_image,
            $clock_background_image,
            $featured_news_title_color,
            $featured_news_title_color_hover,
            $featured_news_excerpt_color,
            $sliding_news_color,
            $sliding_news_color_hover,
            $clock_text_color,
            $featured_news_background_color_opacity,
            $enable_ticker,
            $enable_links,
            $transient_expiration
        );

        $query_result = $wpdb->query( $safe_sql );

        if($query_result !== false){
            $process_data_message = '<div class="updated settings-error notice is-dismissible below-h2"><p>' . esc_attr__('The news ticker has been successfully added.', 'daln') . '</p></div>';
        }

    }

}

//delete a transient
if( isset( $_POST['delete_transient_id']) ){

	$deletion_result = delete_transient('daln_ticker_' . intval($_POST['delete_transient_id'], 10));

	if($deletion_result !== false){
		$process_data_message = '<div class="updated settings-error notice is-dismissible below-h2"><p>' . esc_attr__('The transient has been successfully deleted.', 'daln') . '</p></div>';
	}

}

//delete a ticker
if( isset( $_POST['delete_id']) ){

    $delete_id = intval($_POST['delete_id'], 10);

    //delete the ticker only if it's not used by sliding news or featured news
    if(!$this->shared->ticker_is_used($delete_id)){

        //delete the transient of the ticker
        delete_transient('daln_ticker_' . $delete_id);

        //delete this ticker
        global $wpdb;
        $table_name = $wpdb->prefix . $this->shared->get('slug') . "_tickers";
        $safe_sql = $wpdb->prepare("DELETE FROM $table_name WHERE id = %d ", $delete_id);

        $query_result = $wpdb->query( $safe_sql );

        if($query_result !== false){
            $process_data_message = '<div class="updated settings-error notice is-dismissible below-h2"><p>' . esc_attr__('The news ticker has been successfully deleted.', 'daln') . '</p></div>';
        }

    }

}

//get the tickers data
$display_form = true;
if(isset($_GET['edit_id'])){
    $edit_id = intval($_GET['edit_id'], 10);
    global $wpdb;
    $table_name = $wpdb->prefix . $this->shared->get('slug') . "_tickers";
    $safe_sql = $wpdb->prepare("SELECT * FROM $table_name WHERE id = %d ", $edit_id);
    $ticker_obj = $wpdb->get_row($safe_sql);
	if($ticker_obj === null){
		$display_form = false;
	}
}

?>

<!-- output -->

<div class="wrap">

    <?php if ($this->shared->get_number_of_tickers() > 0) : ?>

        <div id="daext-header-wrapper" class="daext-clearfix">

            <h2><?php esc_attr_e('Live News - News Tickers', 'daln'); ?></h2>

            <!-- Search Form -->

            <form action="admin.php" method="get" id="daext-search-form">

                <input type="hidden" name="page" value="daln-tickers">

                <p><?php esc_attr_e('Perform your Search', 'daln'); ?></p>

                <?php
                if (isset($_GET['s']) and strlen(trim($_GET['s'])) > 0) {
                    $search_string = $_GET['s'];
                } else {
                    $search_string = '';
                }

                ?>

                <input type="text" name="s" name="s"
                       value="<?php echo esc_attr(stripslashes($search_string)); ?>" autocomplete="off" maxlength="255">
                <input type="submit" value="">

            </form>

        </div>

    <?php else: ?>

        <div id="daext-header-wrapper" class="daext-clearfix">

            <h2><?php esc_attr_e('Live News - News Tickers', 'daln'); ?></h2>

        </div>

    <?php endif; ?>

    <div id="daext-menu-wrapper">

        <?php if(isset($invalid_data_message)){echo $invalid_data_message;} ?>
        <?php if(isset($process_data_message)){echo $process_data_message;} ?>

        <!-- table -->

        <?php

        //create the query part used to filter the results when a search is performed
        if (isset($_GET['s']) and strlen(trim($_GET['s'])) > 0) {
            $search_string = $_GET['s'];
            global $wpdb;
            $filter = $wpdb->prepare('WHERE (name LIKE %s)', '%' . $search_string . '%');
        } else {
            $filter = '';
        }

        //retrieve the total number of sliding news
        global $wpdb;
        $table_name=$wpdb->prefix . $this->shared->get('slug') . "_tickers";
        $total_items = $wpdb->get_var( "SELECT COUNT(*) FROM $table_name $filter");

        //Initialize the pagination class
        require_once( $this->shared->get('dir') . '/admin/inc/class-daln-pagination.php' );
        $pag = new daln_pagination();
        $pag->set_total_items( $total_items );//Set the total number of items
        $pag->set_record_per_page( 10 ); //Set records per page
        $pag->set_target_page( "admin.php?page=" . $this->shared->get('slug') . "-tickers" );//Set target page
        $pag->set_current_page();//set the current page number from $_GET

        ?>

        <!-- Query the database -->
        <?php
        $query_limit = $pag->query_limit();
        $results = $wpdb->get_results("SELECT * FROM $table_name $filter ORDER BY id DESC $query_limit ", ARRAY_A); ?>

        <?php if( count($results) > 0 ) : ?>

            <div class="daext-items-container">

                <!-- list of tables -->
                <table class="daext-items">
                    <thead>
                    <tr>
                        <th>
                            <div><?php esc_attr_e('Name', 'daln'); ?></div>
                            <div class="help-icon" title="<?php esc_attr_e('The name of the news ticker.', 'daln'); ?>"></div>
                        </th>
                        <th>
                            <div><?php esc_attr_e('Target', 'daln'); ?></div>
                            <div class="help-icon" title="<?php esc_attr_e('The target of the news ticker.', 'daln'); ?>"></div>
                        </th>
	                    <th>
		                    <div><?php esc_attr_e('Source', 'daln'); ?></div>
		                    <div class="help-icon" title="<?php esc_attr_e('The source of the news ticker.', 'daln'); ?>"></div>
	                    </th>
                        <th></th>
                    </tr>
                    </thead>
                    <tbody>

                    <?php foreach($results as $result) : ?>
                        <tr>
                            <td><?php echo esc_attr(stripslashes($result['name'])); ?></td>
                            <td><?php echo esc_attr(stripslashes($this->shared->get_textual_target($result['target']))); ?></td>
	                        <td><?php echo esc_attr(stripslashes($this->shared->get_textual_source($result['source']))); ?></td>
                            <td class="icons-container">
	                            <?php if( get_transient('daln_ticker_' . $result['id']) !== false ) : ?>
		                            <form method="POST" action="admin.php?page=<?php echo $this->shared->get('slug'); ?>-tickers">
			                            <input type="hidden" value="<?php echo $result['id']; ?>" name="delete_transient_id" >
			                            <input class="menu-icon update" type="submit" value="">
		                            </form>
                                <?php else : ?>
	                                <div class="empty-icon-container"></div>
	                            <?php endif; ?>
	                            <a class="menu-icon edit" href="admin.php?page=<?php echo $this->shared->get('slug'); ?>-tickers&edit_id=<?php echo $result['id']; ?>"></a>
                                <?php if(!$this->shared->ticker_is_used($result['id'])) : ?>
                                    <form method="POST" action="admin.php?page=<?php echo $this->shared->get('slug'); ?>-tickers">
                                        <input type="hidden" value="<?php echo $result['id']; ?>" name="delete_id" >
                                        <input class="menu-icon delete" type="submit" value="">
                                    </form>
                                <?php endif; ?>
                            </td>
                        </tr>
                    <?php endforeach; ?>

                    </tbody>

                </table>

            </div>

            <!-- Display the pagination -->
            <?php if($pag->total_items > 0) : ?>
                <div class="daext-tablenav daext-clearfix">
                    <div class="daext-tablenav-pages">
                        <span class="daext-displaying-num"><?php echo $pag->total_items; ?> <?php esc_attr_e('items', 'daln'); ?></span>
                        <?php $pag->show(); ?>
                    </div>
                </div>
            <?php endif; ?>

        <?php endif; ?>

	    <?php if( $display_form ) : ?>

	        <form method="POST" action="admin.php?page=<?php echo $this->shared->get('slug'); ?>-tickers" autocomplete="off">

	            <input type="hidden" value="1" name="form_submitted">

	            <?php if(isset($_GET['edit_id'])) : ?>

	            <!-- Edit a Ticker -->

	            <div class="daext-form-container">

	                <h3 class="daext-form-title"><?php esc_attr_e('Edit News Ticker', 'daln'); ?> <?php echo $ticker_obj->id; ?></h3>

	                <table class="daext-form">

	                    <input type="hidden" name="update_id" value="<?php echo $ticker_obj->id; ?>" />

	                    <!-- Name -->
	                    <tr valign="top">
	                        <th scope="row"><label for="name"><?php esc_attr_e('Name', 'daln'); ?></label></th>
	                        <td>
	                            <input value="<?php echo esc_attr(stripslashes($ticker_obj->name)); ?>" type="text" id="name" maxlength="100" size="30" name="name"/>
	                            <div class="help-icon" title="<?php esc_attr_e('The name of the news ticker.', 'daln'); ?>"></div>
	                        </td>
	                    </tr>

	                    <!-- Target -->
	                    <tr valign="top">
	                        <th scope="row"><label for="target"><?php esc_attr_e('Target', 'daln'); ?></label></th>
	                        <td>
	                            <select id="target" name="target" class="daext-display-none">
	                                <option value="1" <?php selected($ticker_obj->target, 1); ?>><?php esc_attr_e('Website', 'daln'); ?></option>
	                                <option value="2" <?php selected($ticker_obj->target, 2); ?>><?php esc_attr_e('URL', 'daln'); ?></option>
	                            </select>
	                            <div class="help-icon" title='<?php esc_attr_e('This selection determines if the news ticker should be applied to the entire website or to a specific URL. Note that a news ticker associated with an URL has the priority over the news ticker associated with the entire website.', 'daln'); ?>'></div>
	                        </td>
	                    </tr>

	                    <!-- URL -->
	                    <tr valign="top">
	                        <th scope="row"><label for="url"><?php esc_attr_e('Target URL', 'daln'); ?></label></th>
	                        <td>
	                            <input value="<?php echo esc_url(stripslashes($ticker_obj->url)); ?>" type="text" id="url" maxlength="2083" size="30" name="url"/>
	                            <div class="help-icon" title="<?php esc_attr_e('Enter the URL where the news ticker should be applied. This option is used only if the target of the news ticker is "URL".', 'daln'); ?>"></div>
	                        </td>
	                    </tr>

		                <!-- Enable Ticker -->
		                <tr>
			                <th scope="row"><?php esc_attr_e('Enable Ticker', 'daln'); ?></th>
			                <td>
				                <select id="enable-ticker" name="enable_ticker" class="daext-display-none">
					                <option value="0" <?php selected($ticker_obj->enable_ticker, 0); ?>><?php esc_attr_e('No', 'daln'); ?></option>
					                <option value="1" <?php selected($ticker_obj->enable_ticker, 1); ?>><?php esc_attr_e('Yes', 'daln'); ?></option>
				                </select>
				                <div class="help-icon" title='<?php esc_attr_e('Use this option to enable or disable the news ticker on the front-end.', 'daln'); ?>'></div>
			                </td>
		                </tr>

		                <tr class="group-trigger" data-trigger-target="source-chart-configuration">
			                <th scope="row" class="group-title"><?php esc_attr_e( 'Source', 'daln' ); ?></th>
			                <td>
				                <div class="expand-icon"></div>
			                </td>
		                </tr>

	                    <!-- Source -->
	                    <tr class="source-chart-configuration">
	                        <th scope="row"><?php esc_attr_e('Source', 'daln'); ?></th>
	                        <td>
	                            <select id="source" name="source">
	                                <option value="1" <?php selected($ticker_obj->source, 1); ?>><?php esc_attr_e('Manually Added', 'daln'); ?></option>
	                                <option value="2" <?php selected($ticker_obj->source, 2); ?>><?php esc_attr_e('Posts', 'daln'); ?></option>
	                                <option value="3" <?php selected($ticker_obj->source, 3); ?>><?php esc_attr_e('RSS', 'daln'); ?></option>
		                            <option value="4" <?php selected($ticker_obj->source, 4); ?>><?php esc_attr_e('Twitter', 'daln'); ?></option>
	                            </select>
	                            <div class="help-icon" title='<?php esc_attr_e('This option determines where the news displayed in the news ticker are retrieved. Please note that with the "Twitter" source the news are displayed only in the sliding news area.', 'daln'); ?>'></div>
	                        </td>
	                    </tr>

		                <!-- Category -->
		                <tr class="source-chart-configuration">
			                <th scope="row"><?php esc_attr_e('Category', 'daln'); ?></th>
			                <td>
				                <select id="category" name="category">
					                <option value="0"><?php esc_attr_e('All', 'daln'); ?></option>

					                <?php

					                $args = array(
						                'type' => 'post',
					                );
					                $categories = get_categories( $args );
					                foreach ( $categories as $category ) {
						                echo '<option value="' . $category->term_id . '" ' . selected( $ticker_obj->category , $category->term_id ) . ' >' . $category->name . '</option>';
					                }

					                ?>
				                </select>
				                <div class="help-icon" title='<?php esc_attr_e('Select if the news should be retrieved from all the posts or only from the posts of a specific category. This option is used only if the source of the news ticker is "Posts".', 'daln'); ?>'></div>
			                </td>
		                </tr>

	                    <!-- URL RSS -->
	                    <tr class="source-chart-configuration">
	                        <th scope="row"><label for="url-rss"><?php esc_attr_e('Source RSS', 'daln'); ?></label></th>
	                        <td>
	                            <input value="<?php echo esc_url(stripslashes($ticker_obj->url_rss)); ?>" type="text" id="url-rss" maxlength="2083" size="30" name="url_rss" />
	                            <div class="help-icon" title="<?php esc_attr_e('Enter the RSS Feed used to generate the news. This option is used only if the source of the news ticker is "RSS".', 'daln'); ?>"></div>
	                        </td>
	                    </tr>

		                <!-- Twitter Username -->
		                <tr class="source-chart-configuration">
			                <th scope="row"><label for="twitter-username"><?php esc_attr_e('Twitter Username', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo esc_attr(stripslashes($ticker_obj->twitter_username)); ?>" type="text" id="twitter-username" maxlength="255" size="30" name="twitter_username"/>
				                <div class="help-icon" title="<?php esc_attr_e('Enter the Twitter username for which you want to retrieve the tweets. This option is used only if the source of the news ticker is "Twitter".', 'daln'); ?>"></div>
			                </td>
		                </tr>

		                <!-- Twitter Oauth Access Token -->
		                <tr class="source-chart-configuration">
			                <th scope="row"><label for="twitter-oauth-access-token"><?php esc_attr_e('Twitter Oauth Access Token', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo esc_attr(stripslashes($ticker_obj->twitter_oauth_access_token)); ?>" type="text" id="twitter-oauth-access-token" maxlength="255" size="30" name="twitter_oauth_access_token"/>
				                <div class="help-icon" title="<?php esc_attr_e('Enter your Twitter Oauth Access Token. This token is available in the "Keys and Access Token" section of the Twitter App. This option is used only if the source of the news ticker is "Twitter".', 'daln'); ?>"></div>
			                </td>
		                </tr>

		                <!-- Twitter Oauth Access Token Secret -->
		                <tr class="source-chart-configuration">
			                <th scope="row"><label for="twitter-oauth-access-token-secret"><?php esc_attr_e('Twitter Oauth Access Token Secret', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo esc_attr(stripslashes($ticker_obj->twitter_oauth_access_token_secret)); ?>" type="text" id="twitter-oauth-access-token-secret" maxlength="255" size="30" name="twitter_oauth_access_token_secret"/>
				                <div class="help-icon" title="<?php esc_attr_e('Enter your Twitter Oauth Access Token Secret. This token is available in the "Keys and Access Token" section of the Twitter App. This option is used only if the source of the news ticker is "Twitter".', 'daln'); ?>"></div>
			                </td>
		                </tr>

		                <!-- Twitter Consumer Key -->
		                <tr class="source-chart-configuration">
			                <th scope="row"><label for="twitter-consumer-key"><?php esc_attr_e('Twitter Consumer Key', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo esc_attr(stripslashes($ticker_obj->twitter_consumer_key)); ?>" type="text" id="twitter-consumer-key" maxlength="255" size="30" name="twitter_consumer_key"/>
				                <div class="help-icon" title="<?php esc_attr_e('Enter your Twitter Consumer Key. This key is available in the "Keys and Access Token" section of the Twitter App. This option is used only if the source of the news ticker is "Twitter".', 'daln'); ?>"></div>
			                </td>
		                </tr>

		                <!-- Twitter Consumer Secret -->
		                <tr class="source-chart-configuration">
			                <th scope="row"><label for="twitter-consumer-secret"><?php esc_attr_e('Twitter Consumer Secret', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo esc_attr(stripslashes($ticker_obj->twitter_consumer_secret)); ?>" type="text" id="twitter-consumer-secret" maxlength="255" size="30" name="twitter_consumer_secret"/>
				                <div class="help-icon" title="<?php esc_attr_e('Enter your Twitter Consumer Secret. This key is available in the "Keys and Access Token" section of the Twitter App. This option is used only if the source of the news ticker is "Twitter".', 'daln'); ?>"></div>
			                </td>
		                </tr>

		                <!-- Twitter Strip Links -->
		                <tr class="source-chart-configuration">
			                <th scope="row"><?php esc_attr_e('Twitter Strip Links', 'daln'); ?></th>
			                <td>
				                <select id="twitter-strip-links" name="twitter_strip_links">
					                <option value="0" <?php selected($ticker_obj->twitter_strip_links, 0); ?>><?php esc_attr_e('No', 'daln'); ?></option>
					                <option value="1" <?php selected($ticker_obj->twitter_strip_links, 1); ?>><?php esc_attr_e('Yes', 'daln'); ?></option>
				                </select>
				                <div class="help-icon" title='<?php esc_attr_e('This option determines if the links should be removed from the imported tweets. This option is used only if the source of the news ticker is "Twitter".', 'daln'); ?>'></div>
			                </td>
		                </tr>

		                <!-- Twitter Strip Hashtags -->
		                <tr class="source-chart-configuration">
			                <th scope="row"><?php esc_attr_e('Twitter Strip Hashtags', 'daln'); ?></th>
			                <td>
				                <select id="twitter-strip-hashtags" name="twitter_strip_hashtags">
					                <option value="0" <?php selected($ticker_obj->twitter_strip_hashtags, 0); ?>><?php esc_attr_e('No', 'daln'); ?></option>
					                <option value="1" <?php selected($ticker_obj->twitter_strip_hashtags, 1); ?>><?php esc_attr_e('Yes', 'daln'); ?></option>
				                </select>
				                <div class="help-icon" title='<?php esc_attr_e('This option determines if the hashtags should be removed from the imported tweets. This option is used only if the source of the news ticker is "Twitter".', 'daln'); ?>'></div>
			                </td>
		                </tr>

		                <!-- Twitter Strip Usernames -->
		                <tr class="source-chart-configuration">
			                <th scope="row"><?php esc_attr_e('Twitter Strip Usernames', 'daln'); ?></th>
			                <td>
				                <select id="twitter-strip-usernames" name="twitter_strip_usernames">
					                <option value="0" <?php selected($ticker_obj->twitter_strip_usernames, 0); ?>><?php esc_attr_e('No', 'daln'); ?></option>
					                <option value="1" <?php selected($ticker_obj->twitter_strip_usernames, 1); ?>><?php esc_attr_e('Yes', 'daln'); ?></option>
				                </select>
				                <div class="help-icon" title='<?php esc_attr_e('This option determines if the usernames should be removed from the imported tweets. This option is used only if the source of the news ticker is "Twitter".', 'daln'); ?>'></div>
			                </td>
		                </tr>

		                <!-- Clock Source -->
		                <tr class="source-chart-configuration">
			                <th scope="row"><?php esc_attr_e('Clock Source', 'daln'); ?></th>
			                <td>
				                <select id="clock-source" name="clock_source">
					                <option value="1" <?php selected($ticker_obj->clock_source, 1); ?>><?php esc_attr_e('Server Time', 'daln'); ?></option>
					                <option value="2" <?php selected($ticker_obj->clock_source, 2); ?>><?php esc_attr_e('User Time', 'daln'); ?></option>
				                </select>
				                <div class="help-icon" title='<?php esc_attr_e('Select if the time should be based on the server time or on the user time.', 'daln'); ?>'></div>
			                </td>
		                </tr>

		                <!-- Clock Offset -->
		                <tr class="source-chart-configuration">
			                <th scope="row"><label for="clock-offset"><?php esc_attr_e('Clock Offset', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo intval($ticker_obj->clock_offset, 10); ?>" type="text" id="clock-offset" maxlength="6" size="30" name="clock_offset" />
				                <div class="help-icon" title="<?php esc_attr_e('The clock offset in seconds. Positive or negative values are allowed.', 'daln'); ?>"></div>
			                </td>
		                </tr>

                        <!-- Clock Format -->
                        <tr class="source-chart-configuration">
                            <th scope="row"><label for="clock-format"><?php esc_attr_e('Clock Format', 'daln'); ?></label></th>
                            <td>
                                <input value="<?php echo esc_attr(stripslashes($ticker_obj->clock_format)); ?>" type="text" id="clock-format" maxlength="40" size="30" name="clock_format" />
                                <div class="help-icon" title="<?php esc_attr_e('Use this field to specify the clock format. The tokens supported by Moment.js should be used.', 'daln'); ?>"></div>
                            </td>
                        </tr>

		                <tr class="group-trigger" data-trigger-target="behavior-chart-configuration">
			                <th scope="row" class="group-title"><?php esc_attr_e( 'Behavior', 'daln' ); ?></th>
			                <td>
				                <div class="expand-icon"></div>
			                </td>
		                </tr>

		                <!-- Enable RTL Layout -->
		                <tr class="behavior-chart-configuration">
			                <th scope="row"><?php esc_attr_e('Enable RTL Layout', 'daln'); ?></th>
			                <td>
				                <select id="enable-rtl-layout" name="enable_rtl_layout">
					                <option value="0" <?php selected($ticker_obj->enable_rtl_layout, 0); ?>><?php esc_attr_e('No', 'daln'); ?></option>
					                <option value="1" <?php selected($ticker_obj->enable_rtl_layout, 1); ?>><?php esc_attr_e('Yes', 'daln'); ?></option>
				                </select>
				                <div class="help-icon" title='<?php esc_attr_e('Select whether to enable or not the RTL layout.', 'daln'); ?>'></div>
			                </td>
		                </tr>

		                <!-- Enable with Mobile Devices -->
		                <tr class="behavior-chart-configuration">
			                <th scope="row"><?php esc_attr_e('Enable with Mobile Devices', 'daln'); ?></th>
			                <td>
				                <select id="enable-with-mobile-devices" name="enable_with_mobile_devices">
					                <option value="0" <?php selected($ticker_obj->enable_with_mobile_devices, 0); ?>><?php esc_attr_e('No', 'daln'); ?></option>
					                <option value="1" <?php selected($ticker_obj->enable_with_mobile_devices, 1); ?>><?php esc_attr_e('Yes', 'daln'); ?></option>
				                </select>
				                <div class="help-icon" title='<?php esc_attr_e('Select whether to display or not the news ticker with mobile devices. The user-agent string combined with specific HTTP headers are used to determine the device.', 'daln'); ?>'></div>
			                </td>
		                </tr>

		                <!-- Hide Featured News -->
		                <tr class="behavior-chart-configuration">
			                <th scope="row"><?php esc_attr_e('Hide Featured News', 'daln'); ?></th>
			                <td>
				                <select id="hide-featured-news" name="hide_featured_news">
					                <option value="1" <?php selected($ticker_obj->hide_featured_news, 1); ?>><?php esc_attr_e('No', 'daln'); ?></option>
					                <option value="2" <?php selected($ticker_obj->hide_featured_news, 2); ?>><?php esc_attr_e('Yes', 'daln'); ?></option>
					                <option value="3" <?php selected($ticker_obj->hide_featured_news, 3); ?>><?php esc_attr_e('Only with Mobile Devices', 'daln'); ?></option>
				                </select>
				                <div class="help-icon" title='<?php esc_attr_e('Select if the featured news area of the news ticker should be displayed.', 'daln'); ?>'></div>
			                </td>
		                </tr>

		                <!-- Open News as Default -->
		                <tr class="behavior-chart-configuration">
			                <th scope="row"><?php esc_attr_e('Open News as Default', 'daln'); ?></th>
			                <td>
				                <select id="open-news-as-default" name="open_news_as_default">
					                <option value="0" <?php selected($ticker_obj->open_news_as_default, 0); ?>><?php esc_attr_e('No', 'daln'); ?></option>
					                <option value="1" <?php selected($ticker_obj->open_news_as_default, 1); ?>><?php esc_attr_e('Yes', 'daln'); ?></option>
				                </select>
				                <div class="help-icon" title='<?php esc_attr_e('Select if the news ticker should be presented in the open status (with the featured news area visible) to the users. If the user opens or closes the news ticker the new status will be saved in a cookie and used to determine the default status of the news ticker for that specific user.', 'daln'); ?>'></div>
			                </td>
		                </tr>

		                <!-- Enable Links -->
		                <tr class="behavior-chart-configuration">
			                <th scope="row"><?php esc_attr_e('Enable Links', 'daln'); ?></th>
			                <td>
				                <select id="enable-links" name="enable_links">
					                <option value="0" <?php selected($ticker_obj->enable_links, 0); ?>><?php esc_attr_e('No', 'daln'); ?></option>
					                <option value="1" <?php selected($ticker_obj->enable_links, 1); ?>><?php esc_attr_e('Yes', 'daln'); ?></option>
				                </select>
				                <div class="help-icon" title='<?php esc_attr_e('Whether to apply or not the links associated with the news on the featured news title and on the sliding news.', 'daln'); ?>'></div>
			                </td>
		                </tr>

	                    <!-- Open Links New Tab -->
	                    <tr class="behavior-chart-configuration">
	                        <th scope="row"><?php esc_attr_e('Open Links in New Tab', 'daln'); ?></th>
	                        <td>
	                            <select id="open-links-new-tab" name="open_links_new_tab">
	                                <option value="0" <?php selected($ticker_obj->open_links_new_tab, 0); ?>><?php esc_attr_e('No', 'daln'); ?></option>
	                                <option value="1" <?php selected($ticker_obj->open_links_new_tab, 1); ?>><?php esc_attr_e('Yes', 'daln'); ?></option>
	                            </select>
	                            <div class="help-icon" title='<?php esc_attr_e('Select if the links availble in the news ticker should be opened in a new tab.', 'daln'); ?>'></div>
	                        </td>
	                    </tr>

		                <!-- Hide Clock -->
		                <tr class="behavior-chart-configuration">
			                <th scope="row"><?php esc_attr_e('Hide Clock', 'daln'); ?></th>
			                <td>
				                <select id="hide-clock" name="hide_clock">
					                <option value="0" <?php selected($ticker_obj->hide_clock, 0); ?>><?php esc_attr_e('No', 'daln'); ?></option>
					                <option value="1" <?php selected($ticker_obj->hide_clock, 1); ?>><?php esc_attr_e('Yes', 'daln'); ?></option>
				                </select>
				                <div class="help-icon" title='<?php esc_attr_e('Select whether to display or not the clock.', 'daln'); ?>'></div>
			                </td>
		                </tr>

		                <!-- Clock Autoupdate -->
		                <tr class="behavior-chart-configuration">
			                <th scope="row"><?php esc_attr_e('Clock Autoupdate', 'daln'); ?></th>
			                <td>
				                <select id="clock-source" name="clock_autoupdate">
					                <option value="0" <?php selected($ticker_obj->clock_autoupdate, 0); ?>><?php esc_attr_e('No', 'daln'); ?></option>
					                <option value="1" <?php selected($ticker_obj->clock_autoupdate, 1); ?>><?php esc_attr_e('Yes', 'daln'); ?></option>
				                </select>
				                <div class="help-icon" title='<?php esc_attr_e('Select whether to autoupdate or not the clock independently from the cycles of news received. This option is applied only if the source of the clock is "User Time".', 'daln'); ?>'></div>
			                </td>
		                </tr>

		                <!-- Clock Autoupdate Time -->
		                <tr class="behavior-chart-configuration">
			                <th scope="row"><label for="clock-autoupdate-time"><?php esc_attr_e('Clock Autoupdate Time', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo intval($ticker_obj->clock_autoupdate_time, 10); ?>" type="text" id="clock-autoupdate-time" maxlength="10" size="30" name="clock_autoupdate_time" />
				                <div class="help-icon" title="<?php esc_attr_e('This option determines how frequent should be the clock autoupdate in seconds.', 'daln'); ?>"></div>
			                </td>
		                </tr>

		                <!-- Number of Sliding News -->
		                <tr class="behavior-chart-configuration">
			                <th scope="row"><label for="number-of-sliding-news"><?php esc_attr_e('Number of Sliding News', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo abs(intval($ticker_obj->number_of_sliding_news, 10)); ?>" type="text" id="number-of-sliding-news" maxlength="2" size="30" name="number_of_sliding_news" />
				                <div class="help-icon" title="<?php esc_attr_e('Enter the number of sliding news that you want to display in a single cycle of news.', 'daln'); ?>"></div>
			                </td>
		                </tr>

	                    <!-- Sliding Speed -->
	                    <tr class="behavior-chart-configuration">
	                        <th scope="row"><label for="sliding-speed"><?php esc_attr_e('Sliding Speed', 'daln'); ?></label></th>
	                        <td>
	                            <input value="<?php echo abs(intval($ticker_obj->sliding_speed, 10)); ?>" type="text" id="sliding-speed" maxlength="2" size="30" name="sliding_speed" />
	                            <div class="help-icon" title="<?php esc_attr_e('Enter the speed of the sliding news. Values included between 1 and 10 are allowed.', 'daln'); ?>"></div>
	                        </td>
	                    </tr>

	                    <!-- Sliding Delay -->
	                    <tr class="behavior-chart-configuration">
	                        <th scope="row"><label for="sliding-delay"><?php esc_attr_e('Sliding Delay', 'daln'); ?></label></th>
	                        <td>
	                            <input value="<?php echo abs(intval($ticker_obj->sliding_delay, 10)); ?>" type="text" id="sliding-delay" maxlength="10" size="30" name="sliding_delay" />
	                            <div class="help-icon" title="<?php esc_attr_e('The delay of the sliding news in milliseconds.', 'daln'); ?>"></div>
	                        </td>
	                    </tr>

		                <tr class="group-trigger" data-trigger-target="performance-chart-configuration">
			                <th scope="row" class="group-title"><?php esc_attr_e( 'Performance', 'daln' ); ?></th>
			                <td>
				                <div class="expand-icon"></div>
			                </td>
		                </tr>

		                <!-- Cached Cycled -->
		                <tr class="performance-chart-configuration">
			                <th scope="row"><label for="cached-cycles"><?php esc_attr_e('Cached Cycles', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo abs(intval($ticker_obj->cached_cycles, 10)); ?>" type="text" id="cached-cycles" maxlength="10" size="30" name="cached_cycles" />
				                <div class="help-icon" title="<?php esc_attr_e('This value determines the number of cycles performed by the news ticker without updating the news. Set an high value to improve the news ticker performance and to avoid an excessive load on the web server. Set a low value to have frequent updates of the news. Set 0 to update the news at every cycle.', 'daln'); ?>"></div>
			                </td>
		                </tr>

		                <!-- Transient Expiration -->
		                <tr class="performance-chart-configuration">
			                <th scope="row"><label for="clock-background-image"><?php esc_attr_e('Transient Expiration', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo intval($ticker_obj->transient_expiration, 10); ?>" type="text" id="transient-expiration" maxlength="10" size="30" name="transient_expiration"/>
				                <div class="help-icon" title="<?php esc_attr_e('Enter the transient expiration in seconds. Set an high value to improve the news ticker performance and to avoid an excessive load on the web server. Set a low value to have frequent updates of the news. Set 0 to not use a transient.', 'daln'); ?>"></div>
			                </td>
		                </tr>

		                <tr class="group-trigger" data-trigger-target="style-chart-configuration">
			                <th scope="row" class="group-title"><?php esc_attr_e( 'Style', 'daln' ); ?></th>
			                <td>
				                <div class="expand-icon"></div>
			                </td>
		                </tr>

		                <!-- Featured Title Maximum Length -->
		                <tr class="style-chart-configuration">
			                <th scope="row"><label for="featured-title-maximum-length"><?php esc_attr_e('Featured News Title Maximum Length', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo abs(intval($ticker_obj->featured_title_maximum_length, 10)); ?>" type="text" id="featured-title-maximum-length" maxlength="4" size="30" name="featured_title_maximum_length" />
				                <div class="help-icon" title="<?php esc_attr_e('The maximum length of the featured news title.', 'daln'); ?>"></div>
			                </td>
		                </tr>

	                    <!-- Featured Excerpt Maximum Length -->
	                    <tr class="style-chart-configuration">
	                        <th scope="row"><label for="featured-excerpt-maximum-length"><?php esc_attr_e('Featured News Excerpt Maximum Length', 'daln'); ?></label></th>
	                        <td>
	                            <input value="<?php echo abs(intval($ticker_obj->featured_excerpt_maximum_length, 10)); ?>" type="text" id="featured-excerpt-maximum-length" maxlength="4" size="30" name="featured_excerpt_maximum_length" />
	                            <div class="help-icon" title="<?php esc_attr_e('The maximum length of the featured news excerpt.', 'daln'); ?>"></div>
	                        </td>
	                    </tr>

		                <!-- Sliding News Maximum Length -->
		                <tr class="style-chart-configuration">
			                <th scope="row"><label for="sliding-news-maximum-length"><?php esc_attr_e('Sliding News Maximum Length', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo abs(intval($ticker_obj->sliding_news_maximum_length, 10)); ?>" type="text" id="sliding-news-maximum-length" maxlength="4" size="30" name="sliding_news_maximum_length" />
				                <div class="help-icon" title="<?php esc_attr_e('The maximum length of the sliding news.', 'daln'); ?>"></div>
			                </td>
		                </tr>

		                <!-- Featured Title Font Size -->
		                <tr class="style-chart-configuration">
			                <th scope="row"><label for="featured-title-font-size"><?php esc_attr_e('Featured News Title Font Size', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo abs(intval($ticker_obj->featured_title_font_size, 10)); ?>" type="text" id="featured-title-font-size" maxlength="2" size="30" name="featured_title_font_size" />
				                <div class="help-icon" title="<?php esc_attr_e('The font size of the featured news title.', 'daln'); ?>"></div>
			                </td>
		                </tr>

		                <!-- Featured Excerpt Font Size -->
		                <tr class="style-chart-configuration">
			                <th scope="row"><label for="featured-excerpt-font-size"><?php esc_attr_e('Featured News Excerpt Font Size', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo abs(intval($ticker_obj->featured_excerpt_font_size, 10)); ?>" type="text" id="featured-excerpt-font-size" maxlength="2" size="30" name="featured_excerpt_font_size" />
				                <div class="help-icon" title="<?php esc_attr_e('The font size of the featured news excerpt.', 'daln'); ?>"></div>
			                </td>
		                </tr>

		                <!-- Sliding News Font Size -->
		                <tr class="style-chart-configuration">
			                <th scope="row"><label for="sliding-news-font-size"><?php esc_attr_e('Sliding News Font Size', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo abs(intval($ticker_obj->sliding_news_font_size, 10)); ?>" type="text" id="sliding-news-font-size" maxlength="2" size="30" name="sliding_news_font_size" />
				                <div class="help-icon" title="<?php esc_attr_e('The font size of the sliding news.', 'daln'); ?>"></div>
			                </td>
		                </tr>

		                <!-- Clock Font Size -->
		                <tr class="style-chart-configuration">
			                <th scope="row"><label for="clock-font-size"><?php esc_attr_e('Clock Font Size', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo abs(intval($ticker_obj->clock_font_size, 10)); ?>" type="text" id="clock-font-size" maxlength="2" size="30" name="clock_font_size" />
				                <div class="help-icon" title="<?php esc_attr_e('The font size of the text in the clock.', 'daln'); ?>"></div>
			                </td>
		                </tr>

		                <!-- Sliding News Margin -->
		                <tr class="style-chart-configuration">
			                <th scope="row"><label for="sliding-news-margin"><?php esc_attr_e('Sliding News Margin', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo abs(intval($ticker_obj->sliding_news_margin, 10)); ?>" type="text" id="sliding-news-margin" maxlength="3" size="30" name="sliding_news_margin" />
				                <div class="help-icon" title="<?php esc_attr_e('The margin between the sliding news.', 'daln'); ?>"></div>
			                </td>
		                </tr>

		                <!-- Sliding News Padding -->
		                <tr class="style-chart-configuration">
			                <th scope="row"><label for="sliding-news-padding"><?php esc_attr_e('Sliding News Padding', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo abs(intval($ticker_obj->sliding_news_padding, 10)); ?>" type="text" id="sliding-news-padding" maxlength="3" size="30" name="sliding_news_padding" />
				                <div class="help-icon" title="<?php esc_attr_e('This option determines the padding on the left and on the right of each sliding news and also the distance between the sliding news text and the sliding news left and right images.', 'daln'); ?>"></div>
			                </td>
		                </tr>

		                <!-- Font Family -->
		                <tr class="style-chart-configuration">
			                <th scope="row"><label for="font-family"><?php esc_attr_e('Font Family', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo esc_attr(stripslashes($ticker_obj->font_family)); ?>" type="text" id="font-family" maxlength="255" size="30" name="font_family" />
				                <div class="help-icon" title="<?php esc_attr_e('The font family used for all the text displayed in the news ticker.', 'daln'); ?>"></div>
			                </td>
		                </tr>

		                <!-- Google Font -->
		                <tr class="style-chart-configuration">
			                <th scope="row"><label for="google-font"><?php esc_attr_e('Google Font', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo esc_url(stripslashes($ticker_obj->google_font)); ?>" type="text" id="google-font" maxlength="255" size="30" name="google_font" />
				                <div class="help-icon" title="<?php esc_attr_e('This option allows you to load a specific Google Font.', 'daln'); ?>"></div>
			                </td>
		                </tr>

		                <!-- Featured News Title Color -->
		                <tr class="style-chart-configuration">
			                <th scope="row"><label for="featured-news-title-color"><?php esc_attr_e('Featured News Title Color', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo esc_attr(stripslashes($ticker_obj->featured_news_title_color)); ?>" class="wp-color-picker" type="text" id="featured-news-title-color" maxlength="7" size="30" name="featured_news_title_color" />
				                <div class="help-icon" title="<?php esc_attr_e('The color of the featured news title.', 'daln'); ?>"></div>
			                </td>
		                </tr>

		                <!-- Featured News Title Color Hover -->
		                <tr class="style-chart-configuration">
			                <th scope="row"><label for="featured-news-title-color-hover"><?php esc_attr_e('Featured News Title Color Hover', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo esc_attr(stripslashes($ticker_obj->featured_news_title_color_hover)); ?>" class="wp-color-picker" type="text" id="featured-news-title-color-hover" maxlength="7" size="30" name="featured_news_title_color_hover" />
				                <div class="help-icon" title="<?php esc_attr_e('The color of the featured news title in hover status.', 'daln'); ?>"></div>
			                </td>
		                </tr>

		                <!-- Featured News Excerpt Color -->
		                <tr class="style-chart-configuration">
			                <th scope="row"><label for="featured-news-excerpt-color"><?php esc_attr_e('Featured News Excerpt Color', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo esc_attr(stripslashes($ticker_obj->featured_news_excerpt_color)); ?>" class="wp-color-picker" type="text" id="featured-news-excerpt-color" maxlength="7" size="30" name="featured_news_excerpt_color" />
				                <div class="help-icon" title="<?php esc_attr_e('The color of the featured news excerpt.', 'daln'); ?>"></div>
			                </td>
		                </tr>

		                <!-- Sliding News Color -->
		                <tr class="style-chart-configuration">
			                <th scope="row"><label for="sliding-news-color"><?php esc_attr_e('Sliding News Color', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo esc_attr(stripslashes($ticker_obj->sliding_news_color)); ?>" class="wp-color-picker" type="text" id="sliding-news-color" maxlength="7" size="30" name="sliding_news_color" />
				                <div class="help-icon" title="<?php esc_attr_e('The color of the sliding news.', 'daln'); ?>"></div>
			                </td>
		                </tr>

		                <!-- Sliding News Color Hover -->
		                <tr class="style-chart-configuration">
			                <th scope="row"><label for="sliding-news-color-hover"><?php esc_attr_e('Sliding News Color Hover', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo esc_attr(stripslashes($ticker_obj->sliding_news_color_hover)); ?>" class="wp-color-picker" type="text" id="sliding-news-color-hover" maxlength="7" size="30" name="sliding_news_color_hover" />
				                <div class="help-icon" title="<?php esc_attr_e('The color of the sliding news in hover status.', 'daln'); ?>"></div>
			                </td>
		                </tr>

		                <!-- Clock Text Color -->
		                <tr class="style-chart-configuration">
			                <th scope="row"><label for="clock-text-color"><?php esc_attr_e('Clock Text Color', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo esc_attr(stripslashes($ticker_obj->clock_text_color)); ?>" class="wp-color-picker" type="text" id="clock-text-color" maxlength="7" size="30" name="clock_text_color" />
				                <div class="help-icon" title="<?php esc_attr_e('The color of the text displayed in the clock.', 'daln'); ?>"></div>
			                </td>
		                </tr>

		                <!-- Featured News Background Color -->
		                <tr class="style-chart-configuration">
			                <th scope="row"><label for="featured-news-background-color"><?php esc_attr_e('Featured News Background Color', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo esc_attr(stripslashes($ticker_obj->featured_news_background_color)); ?>" class="wp-color-picker" type="text" id="featured-news-background-color" maxlength="7" size="30" name="featured_news_background_color" />
				                <div class="help-icon" title="<?php esc_attr_e('The background color of the featured news area.', 'daln'); ?>"></div>
			                </td>
		                </tr>

		                <!-- Featured News Background Color Opacity -->
		                <tr class="style-chart-configuration">
			                <th scope="row"><label for="featured-news-background-color-opacity"><?php esc_attr_e('Featured News Background Color Opacity', 'daln'); ?></label></th>
			                <td>
				                <input value="<?php echo floatval($ticker_obj->featured_news_background_color_opacity); ?>" type="text" id="featured-news-background-color-opacity" maxlength="3" size="30" name="featured_news_background_color_opacity" />
				                <div class="help-icon" title="<?php esc_attr_e('The background color opacity of the featured news area.', 'daln'); ?>"></div>
			                </td>
		                </tr>

	                    <!-- Sliding News Background Color -->
	                    <tr class="style-chart-configuration">
	                        <th scope="row"><label for="sliding-news-background-color"><?php esc_attr_e('Sliding News Background Color', 'daln'); ?></label></th>
	                        <td>
	                            <input value="<?php echo esc_attr(stripslashes($ticker_obj->sliding_news_background_color)); ?>" class="wp-color-picker" type="text" id="sliding-news-background-color" maxlength="7" size="30" name="sliding_news_background_color" />
	                            <div class="help-icon" title="<?php esc_attr_e('The background color of the sliding news area.', 'daln'); ?>"></div>
	                        </td>
	                    </tr>

	                    <!-- Sliding News Background Color Opacity -->
	                    <tr class="style-chart-configuration">
	                        <th scope="row"><label for="sliding-news-background-color-opacity"><?php esc_attr_e('Sliding News Background Color Opacity', 'daln'); ?></label></th>
	                        <td>
	                            <input value="<?php echo floatval(stripslashes($ticker_obj->sliding_news_background_color_opacity)); ?>" type="text" id="sliding-news-background-color-opacity" maxlength="3" size="30" name="sliding_news_background_color_opacity" />
	                            <div class="help-icon" title="<?php esc_attr_e('The background color opacity of the sliding news area.', 'daln'); ?>"></div>
	                        </td>
	                    </tr>

	                    <!-- Open Button Image -->
	                    <tr class="style-chart-configuration">
	                        <th scope="row"><label for="open-button-image"><?php esc_attr_e('Open Button Image', 'daln'); ?></label></th>
	                        <td>

	                            <div class="image-uploader">
	                                <img class="selected-image" src="<?php echo esc_attr(stripslashes($ticker_obj->open_button_image)); ?>" <?php echo mb_strlen(trim($ticker_obj->open_button_image)) == 0 ? 'style="display: none;"' : ''; ?>>
	                                <input value="<?php echo esc_attr(stripslashes($ticker_obj->open_button_image)); ?>" type="hidden" id="open-button-image" maxlength="2083" name="open_button_image">
	                                <a class="button_add_media" data-set-remove="<?php echo mb_strlen(trim($ticker_obj->open_button_image)) == 0 ? 'set' : 'remove'; ?>" data-set="<?php esc_attr_e('Set image', 'daln'); ?>" data-remove="<?php esc_attr_e('Remove Image', 'daln'); ?>"><?php echo mb_strlen(trim($ticker_obj->open_button_image)) == 0 ? esc_attr__('Set image', 'daln') : esc_attr__('Remove Image', 'daln'); ?></a>
	                                <p class="description"><?php esc_attr_e("Select the image of the button used to open the news ticker. It's recommended to use an image with a width of 80 pixels and a height of 40 pixels.", 'daln'); ?></p>
	                            </div>

	                        </td>
	                    </tr>

	                    <!-- Close Button Image -->
	                    <tr class="style-chart-configuration">
	                        <th scope="row"><label for="open-button-image"><?php esc_attr_e('Close Button Image', 'daln'); ?></label></th>
	                        <td>

	                            <div class="image-uploader">
	                                <img class="selected-image" src="<?php echo esc_attr(stripslashes($ticker_obj->close_button_image)); ?>" <?php echo mb_strlen(trim($ticker_obj->close_button_image)) == 0 ? 'style="display: none;"' : ''; ?>>
	                                <input value="<?php echo esc_attr(stripslashes($ticker_obj->close_button_image)); ?>" type="hidden" id="close-button-image" maxlength="2083" name="close_button_image">
	                                <a class="button_add_media" data-set-remove="<?php echo mb_strlen(trim($ticker_obj->close_button_image)) == 0 ? 'set' : 'remove'; ?>" data-set="<?php esc_attr_e('Set image', 'daln'); ?>" data-remove="<?php esc_attr_e('Remove Image', 'daln'); ?>"><?php echo mb_strlen(trim($ticker_obj->close_button_image)) == 0 ? esc_attr__('Set image', 'daln') : esc_attr__('Remove Image', 'daln'); ?></a>
	                                <p class="description"><?php esc_attr_e("Select the image of the button used to close the news ticker. It's recommended to use an image with a width of 80 pixels and a height of 40 pixels.", 'daln'); ?></p>
	                            </div>

	                        </td>
	                    </tr>

		                <!-- Clock Background Image -->
		                <tr class="style-chart-configuration">
			                <th scope="row"><label for="clock-background-image"><?php esc_attr_e('Clock Background Image', 'daln'); ?></label></th>
			                <td>

				                <div class="image-uploader">
					                <img class="selected-image" src="<?php echo esc_attr(stripslashes($ticker_obj->clock_background_image)); ?>" <?php echo mb_strlen(trim($ticker_obj->clock_background_image)) == 0 ? 'style="display: none;"' : ''; ?>>
					                <input value="<?php echo esc_attr(stripslashes($ticker_obj->clock_background_image)); ?>" type="hidden" id="clock-background-image" maxlength="2083" name="clock_background_image">
					                <a class="button_add_media" data-set-remove="<?php echo mb_strlen(trim($ticker_obj->clock_background_image)) == 0 ? 'set' : 'remove'; ?>" data-set="<?php esc_attr_e('Set image', 'daln'); ?>" data-remove="<?php esc_attr_e('Remove Image', 'daln'); ?>"><?php echo mb_strlen(trim($ticker_obj->clock_background_image)) == 0 ? esc_attr__('Set image', 'daln') : esc_attr__('Remove Image', 'daln'); ?></a>
					                <p class="description"><?php esc_attr_e("Select the background image of the clock. It's recommended to use an image with a width of 80 pixels and a height of 40 pixels.", 'daln'); ?></p>
				                </div>

			                </td>
		                </tr>

	                </table>

	                <!-- submit button -->
	                <div class="daext-form-action">
	                    <input class="button" type="submit" value="<?php esc_attr_e('Update News Ticker', 'daln'); ?>" >
	                </div>

	                <?php else : ?>

	                <!-- Create New Ticker -->

	                <div class="daext-form-container">

	                    <div class="daext-form-title"><?php esc_attr_e('Create a News Ticker', 'daln'); ?></div>

	                    <table class="daext-form">

	                        <!-- Name -->
	                        <tr valign="top">
	                            <th scope="row"><label for="name"><?php esc_attr_e('Name', 'daln'); ?></label></th>
	                            <td>
	                                <input type="text" id="name" maxlength="100" size="30" name="name" />
	                                <div class="help-icon" title="<?php esc_attr_e('The name of the news ticker.', 'daln'); ?>"></div>
	                            </td>
	                        </tr>

	                        <!-- Target -->
	                        <tr valign="top">
	                            <th scope="row"><label for="target"><?php esc_attr_e('Target', 'daln'); ?></label></th>
	                            <td>
	                                <select id="target" name="target" class="daext-display-none">
	                                    <option value="1"><?php esc_attr_e('Website', 'daln'); ?></option>
	                                    <option value="2"><?php esc_attr_e('URL', 'daln'); ?></option>
	                                </select>
	                                <div class="help-icon" title='<?php esc_attr_e('This selection determines if the news ticker should be applied to the entire website or to a specific URL. Note that a news ticker associated with an URL has the priority over the news ticker associated with the entire website.', 'daln'); ?>'></div>
	                            </td>
	                        </tr>

	                        <!-- URL -->
	                        <tr valign="top">
	                            <th scope="row"><label for="url"><?php esc_attr_e(' Target URL', 'daln'); ?></label></th>
	                            <td>
	                                <input type="text" id="url" maxlength="2083" size="30" name="url" />
	                                <div class="help-icon" title="<?php esc_attr_e('Enter the URL where the news ticker should be applied. This option is used only if the target of the news ticker is "URL".', 'daln'); ?>"></div>
	                            </td>
	                        </tr>

		                    <!-- Enable Ticker -->
		                    <tr>
			                    <th scope="row"><?php esc_attr_e('Enable Ticker', 'daln'); ?></th>
			                    <td>
				                    <select id="enable-ticker" name="enable_ticker" class="daext-display-none">
					                    <option value="0"><?php esc_attr_e('No', 'daln'); ?></option>
					                    <option value="1" selected="selected"><?php esc_attr_e('Yes', 'daln'); ?></option>
				                    </select>
				                    <div class="help-icon" title='<?php esc_attr_e('Use this option to enable or disable the news ticker on the front-end.', 'daln'); ?>'></div>
			                    </td>
		                    </tr>

		                    <tr class="group-trigger" data-trigger-target="source-chart-configuration">
			                    <th scope="row" class="group-title"><?php esc_attr_e( 'Source', 'daln' ); ?></th>
			                    <td>
				                    <div class="expand-icon"></div>
			                    </td>
		                    </tr>

	                        <!-- Source -->
	                        <tr class="source-chart-configuration">
	                            <th scope="row"><?php esc_attr_e('Source', 'daln'); ?></th>
	                            <td>
	                                <select id="source" name="source">
	                                    <option value="1"><?php esc_attr_e('Manually Added', 'daln'); ?></option>
	                                    <option value="2"><?php esc_attr_e('Posts', 'daln'); ?></option>
	                                    <option value="3"><?php esc_attr_e('RSS', 'daln'); ?></option>
		                                <option value="4"><?php esc_attr_e('Twitter', 'daln'); ?></option>
	                                </select>
	                                <div class="help-icon" title='<?php esc_attr_e('This option determines where the news displayed in the news ticker are retrieved. Please note that with the "Twitter" source the news are displayed only in the sliding news area.', 'daln'); ?>'></div>
	                            </td>
	                        </tr>

		                    <!-- Category -->
		                    <tr class="source-chart-configuration">
			                    <th scope="row"><?php esc_attr_e('Category', 'daln'); ?></th>
			                    <td>
				                    <select id="category" name="category">
					                    <option value="0"><?php esc_attr_e('All', 'daln'); ?></option>

					                    <?php

					                    $args = array(
						                    'type' => 'post',
					                    );
					                    $categories = get_categories( $args );
					                    foreach ( $categories as $category ) {
						                    echo '<option value="' . $category->term_id . '">' . $category->name . '</option>';
					                    }

					                    ?>
				                    </select>
				                    <div class="help-icon" title='<?php esc_attr_e('Select if the news should be retrieved from all the posts or only from the posts of a specific category. This option is used only if the source of the news ticker is "Posts".', 'daln'); ?>'></div>
			                    </td>
		                    </tr>

	                        <!-- URL RSS -->
	                        <tr class="source-chart-configuration">
	                            <th scope="row"><label for="url-rss"><?php esc_attr_e('Source RSS', 'daln'); ?></label></th>
	                            <td>
	                                <input type="text" id="url-rss" maxlength="2083" size="30" name="url_rss" />
	                                <div class="help-icon" title="<?php esc_attr_e('Enter the RSS Feed used to generate the news. This option is used only if the source of the news ticker is "RSS".', 'daln'); ?>"></div>
	                            </td>
	                        </tr>

		                    <!-- Twitter Username -->
		                    <tr class="source-chart-configuration">
			                    <th scope="row"><label for="twitter-username"><?php esc_attr_e('Twitter Username', 'daln'); ?></label></th>
			                    <td>
				                    <input type="text" id="twitter-username" maxlength="255" size="30" name="twitter_username"/>
				                    <div class="help-icon" title="<?php esc_attr_e('Enter the Twitter username for which you want to retrieve the tweets. This option is used only if the source of the news ticker is "Twitter".', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

		                    <!-- Twitter Oauth Access Token -->
		                    <tr class="source-chart-configuration">
			                    <th scope="row"><label for="twitter-oauth-access-token"><?php esc_attr_e('Twitter Oauth Access Token', 'daln'); ?></label></th>
			                    <td>
				                    <input type="text" id="twitter-oauth-access-token" maxlength="255" size="30" name="twitter_oauth_access_token"/>
				                    <div class="help-icon" title="<?php esc_attr_e('Enter your Twitter Oauth Access Token. This token is available in the "Keys and Access Token" section of the Twitter App. This option is used only if the source of the news ticker is "Twitter".', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

		                    <!-- Twitter Oauth Access Token Secret -->
		                    <tr class="source-chart-configuration">
			                    <th scope="row"><label for="twitter-oauth-access-token-secret"><?php esc_attr_e('Twitter Oauth Access Token Secret', 'daln'); ?></label></th>
			                    <td>
				                    <input type="text" id="twitter-oauth-access-token-secret" maxlength="255" size="30" name="twitter_oauth_access_token_secret"/>
				                    <div class="help-icon" title="<?php esc_attr_e('Enter your Twitter Oauth Access Token Secret. This token is available in the "Keys and Access Token" section of the Twitter App. This option is used only if the source of the news ticker is "Twitter".', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

		                    <!-- Twitter Consumer Key -->
		                    <tr class="source-chart-configuration">
			                    <th scope="row"><label for="twitter-consumer-key"><?php esc_attr_e('Twitter Consumer Key', 'daln'); ?></label></th>
			                    <td>
				                    <input type="text" id="twitter-consumer-key" maxlength="255" size="30" name="twitter_consumer_key"/>
				                    <div class="help-icon" title="<?php esc_attr_e('Enter your Twitter Consumer Key. This key is available in the "Keys and Access Token" section of the Twitter App. This option is used only if the source of the news ticker is "Twitter".', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

		                    <!-- Twitter Consumer Secret -->
		                    <tr class="source-chart-configuration">
			                    <th scope="row"><label for="twitter-consumer-secret"><?php esc_attr_e('Twitter Consumer Secret', 'daln'); ?></label></th>
			                    <td>
				                    <input type="text" id="twitter-consumer-secret" maxlength="255" size="30" name="twitter_consumer_secret"/>
				                    <div class="help-icon" title="<?php esc_attr_e('Enter your Twitter Consumer Secret. This key is available in the "Keys and Access Token" section of the Twitter App. This option is used only if the source of the news ticker is "Twitter".', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

		                    <!-- Twitter Strip Links -->
		                    <tr class="source-chart-configuration">
			                    <th scope="row"><?php esc_attr_e('Twitter Strip Links', 'daln'); ?></th>
			                    <td>
				                    <select id="twitter-strip-links" name="twitter_strip_links">
					                    <option value="0"><?php esc_attr_e('No', 'daln'); ?></option>
					                    <option value="1"><?php esc_attr_e('Yes', 'daln'); ?></option>
				                    </select>
				                    <div class="help-icon" title='<?php esc_attr_e('This option determines if the links should be removed from the imported tweets. This option is used only if the source of the news ticker is "Twitter".', 'daln'); ?>'></div>
			                    </td>
		                    </tr>

		                    <!-- Twitter Strip Hashtags -->
		                    <tr class="source-chart-configuration">
			                    <th scope="row"><?php esc_attr_e('Twitter Strip Hashtags', 'daln'); ?></th>
			                    <td>
				                    <select id="twitter-strip-hashtags" name="twitter_strip_hashtags">
					                    <option value="0"><?php esc_attr_e('No', 'daln'); ?></option>
					                    <option value="1"><?php esc_attr_e('Yes', 'daln'); ?></option>
				                    </select>
				                    <div class="help-icon" title='<?php esc_attr_e('This option determines if the hashtags should be removed from the imported tweets. This option is used only if the source of the news ticker is "Twitter".', 'daln'); ?>'></div>
			                    </td>
		                    </tr>

		                    <!-- Twitter Strip Usernames -->
		                    <tr class="source-chart-configuration">
			                    <th scope="row"><?php esc_attr_e('Twitter Strip Usernames', 'daln'); ?></th>
			                    <td>
				                    <select id="twitter-strip-usernames" name="twitter_strip_usernames">
					                    <option value="0"><?php esc_attr_e('No', 'daln'); ?></option>
					                    <option value="1"><?php esc_attr_e('Yes', 'daln'); ?></option>
				                    </select>
				                    <div class="help-icon" title='<?php esc_attr_e('This option determines if the usernames should be removed from the imported tweets. This option is used only if the source of the news ticker is "Twitter".', 'daln'); ?>'></div>
			                    </td>
		                    </tr>

		                    <!-- Clock Source -->
		                    <tr class="source-chart-configuration">
			                    <th scope="row"><?php esc_attr_e('Clock Source', 'daln'); ?></th>
			                    <td>
				                    <select id="clock-source" name="clock_source">
					                    <option value="1"><?php esc_attr_e('Server Time', 'daln'); ?></option>
					                    <option value="2" selected="selected"><?php esc_attr_e('User Time', 'daln'); ?></option>
				                    </select>
				                    <div class="help-icon" title='<?php esc_attr_e('Select if the time should be based on the server time or on the user time. Please note that by selecting "Server Time" the clock will be updated only when the news are retrieved from the server, therefore this option should not be used if you are caching cycles of news or if you are using transients.', 'daln'); ?>'></div>
			                    </td>
		                    </tr>

		                    <!-- Clock Offset -->
		                    <tr class="source-chart-configuration">
			                    <th scope="row"><label for="clock-offset"><?php esc_attr_e('Clock Offset', 'daln'); ?></label></th>
			                    <td>
				                    <input value="0" type="text" id="clock-offset" maxlength="6" size="30" name="clock_offset" />
				                    <div class="help-icon" title="<?php esc_attr_e('The clock offset in seconds. Positive or negative values are allowed.', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

                            <!-- Clock Format -->
                            <tr class="source-chart-configuration">
                                <th scope="row"><label for="clock-format"><?php esc_attr_e('Clock Format', 'daln'); ?></label></th>
                                <td>
                                    <input value="HH:mm" type="text" id="clock-format" maxlength="40" size="30" name="clock_format" />
                                    <div class="help-icon" title="<?php esc_attr_e('Use this field to specify the clock format. The tokens supported by Moment.js should be used.', 'daln'); ?>"></div>
                                </td>
                            </tr>

		                    <tr class="group-trigger" data-trigger-target="behavior-chart-configuration">
			                    <th scope="row" class="group-title"><?php esc_attr_e( 'Behavior', 'daln' ); ?></th>
			                    <td>
				                    <div class="expand-icon"></div>
			                    </td>
		                    </tr>

		                    <!-- Enable RTL Layout -->
		                    <tr class="behavior-chart-configuration">
			                    <th scope="row"><?php esc_attr_e('Enable RTL Layout', 'daln'); ?></th>
			                    <td>
				                    <select id="enable-rtl-layout" name="enable_rtl_layout">
					                    <option value="0"><?php esc_attr_e('No', 'daln'); ?></option>
					                    <option value="1"><?php esc_attr_e('Yes', 'daln'); ?></option>
				                    </select>
				                    <div class="help-icon" title='<?php esc_attr_e('Select whether to enable or not the RTL layout.', 'daln'); ?>'></div>
			                    </td>
		                    </tr>

		                    <!-- Enable with Mobile Devices -->
		                    <tr class="behavior-chart-configuration">
			                    <th scope="row"><?php esc_attr_e('Enable with Mobile Devices', 'daln'); ?></th>
			                    <td>
				                    <select id="enable-with-mobile-devices" name="enable_with_mobile_devices">
					                    <option value="0"><?php esc_attr_e('No', 'daln'); ?></option>
					                    <option value="1"><?php esc_attr_e('Yes', 'daln'); ?></option>
				                    </select>
				                    <div class="help-icon" title='<?php esc_attr_e('Select whether to display or not the news ticker with mobile devices. The user-agent string combined with specific HTTP headers are used to determine the device.', 'daln'); ?>'></div>
			                    </td>
		                    </tr>

		                    <!-- Hide Featured News -->
		                    <tr class="behavior-chart-configuration">
			                    <th scope="row"><?php esc_attr_e('Hide Featured News', 'daln'); ?></th>
			                    <td>
				                    <select id="hide-featured-news" name="hide_featured_news">
					                    <option value="1"><?php esc_attr_e('No', 'daln'); ?></option>
					                    <option value="2"><?php esc_attr_e('Yes', 'daln'); ?></option>
					                    <option value="3"><?php esc_attr_e('Only with Mobile Devices', 'daln'); ?></option>
				                    </select>
				                    <div class="help-icon" title='<?php esc_attr_e('Select if the featured news area of the news ticker should be displayed.', 'daln'); ?>'></div>
			                    </td>
		                    </tr>

		                    <!-- Open News as Default -->
		                    <tr class="behavior-chart-configuration">
			                    <th scope="row"><?php esc_attr_e('Open News as Default', 'daln'); ?></th>
			                    <td>
				                    <select id="open-news-as-default" name="open_news_as_default">
					                    <option value="0"><?php esc_attr_e('No', 'daln'); ?></option>
					                    <option value="1" selected="selected"><?php esc_attr_e('Yes', 'daln'); ?></option>
				                    </select>
				                    <div class="help-icon" title='<?php esc_attr_e('Select if the news ticker should be presented in the open status (with the featured news area visible) to the users. If the user opens or closes the news ticker the new status will be saved in a cookie and used to determine the default status of the news ticker for that specific user.', 'daln'); ?>'></div>
			                    </td>
		                    </tr>

		                    <!-- Enable Links -->
		                    <tr class="behavior-chart-configuration">
			                    <th scope="row"><?php esc_attr_e('Enable Links', 'daln'); ?></th>
			                    <td>
				                    <select id="enable-links" name="enable_links">
					                    <option value="0"><?php esc_attr_e('No', 'daln'); ?></option>
					                    <option value="1" selected="selected"><?php esc_attr_e('Yes', 'daln'); ?></option>
				                    </select>
				                    <div class="help-icon" title='<?php esc_attr_e('Whether to apply or not the links associated with the news on the featured news title and on the sliding news.', 'daln'); ?>'></div>
			                    </td>
		                    </tr>

		                    <!-- Open Links New Tab -->
		                    <tr class="behavior-chart-configuration">
			                    <th scope="row"><?php esc_attr_e('Open Links in New Tab', 'daln'); ?></th>
			                    <td>
				                    <select id="open-links-new-tab" name="open_links_new_tab">
					                    <option value="0"><?php esc_attr_e('No', 'daln'); ?></option>
					                    <option value="1"><?php esc_attr_e('Yes', 'daln'); ?></option>
				                    </select>
				                    <div class="help-icon" title='<?php esc_attr_e('Select if the links availble in the news ticker should be opened in a new tab.', 'daln'); ?>'></div>
			                    </td>
		                    </tr>

		                    <!-- Hide Clock -->
		                    <tr class="behavior-chart-configuration">
			                    <th scope="row"><?php esc_attr_e('Hide Clock', 'daln'); ?></th>
			                    <td>
				                    <select id="hide-clock" name="hide_clock">
					                    <option value="0"><?php esc_attr_e('No', 'daln'); ?></option>
					                    <option value="1"><?php esc_attr_e('Yes', 'daln'); ?></option>
				                    </select>
				                    <div class="help-icon" title='<?php esc_attr_e('Select whether to display or not the clock.', 'daln'); ?>'></div>
			                    </td>
		                    </tr>

		                    <!-- Clock Autoupdate -->
		                    <tr class="behavior-chart-configuration">
			                    <th scope="row"><?php esc_attr_e('Clock Autoupdate', 'daln'); ?></th>
			                    <td>
				                    <select id="clock-source" name="clock_autoupdate">
					                    <option value="0"><?php esc_attr_e('No', 'daln'); ?></option>
					                    <option value="1" selected="selected"><?php esc_attr_e('Yes', 'daln'); ?></option>
				                    </select>
				                    <div class="help-icon" title='<?php esc_attr_e('Select whether to autoupdate or not the clock independently from the cycles of news received. This option is applied only if the source of the clock is "User Time".', 'daln'); ?>'></div>
			                    </td>
		                    </tr>

		                    <!-- Clock Autoupdate Time -->
		                    <tr class="behavior-chart-configuration">
			                    <th scope="row"><label for="clock-autoupdate-time"><?php esc_attr_e('Clock Autoupdate Time', 'daln'); ?></label></th>
			                    <td>
				                    <input value="10" type="text" id="clock-autoupdate-time" maxlength="10" size="30" name="clock_autoupdate_time" />
				                    <div class="help-icon" title="<?php esc_attr_e('This option determines how frequent should be the clock autoupdate in seconds.', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

		                    <!-- Number of Sliding News -->
		                    <tr class="behavior-chart-configuration">
			                    <th scope="row"><label for="number-of-sliding-news"><?php esc_attr_e('Number of Sliding News', 'daln'); ?></label></th>
			                    <td>
				                    <input value="10" type="text" id="number-of-sliding-news" maxlength="2" size="30" name="number_of_sliding_news" />
				                    <div class="help-icon" title="<?php esc_attr_e('Enter the number of sliding news that you want to display in a single cycle of news.', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

		                    <!-- Sliding Speed -->
		                    <tr class="behavior-chart-configuration">
			                    <th scope="row"><label for="sliding-speed"><?php esc_attr_e('Sliding Speed', 'daln'); ?></label></th>
			                    <td>
				                    <input value="5" type="text" id="sliding-speed" maxlength="2" size="30" name="sliding_speed" />
				                    <div class="help-icon" title="<?php esc_attr_e('Enter the speed of the sliding news. Values included between 1 and 10 are allowed.', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

		                    <!-- Sliding Delay -->
		                    <tr class="behavior-chart-configuration">
			                    <th scope="row"><label for="sliding-delay"><?php esc_attr_e('Sliding Delay', 'daln'); ?></label></th>
			                    <td>
				                    <input value="0" type="text" id="sliding-delay" maxlength="10" size="30" name="sliding_delay" />
				                    <div class="help-icon" title="<?php esc_attr_e('The delay of the sliding news in milliseconds.', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

		                    <tr class="group-trigger" data-trigger-target="performance-chart-configuration">
			                    <th scope="row" class="group-title"><?php esc_attr_e( 'Performance', 'daln' ); ?></th>
			                    <td>
				                    <div class="expand-icon"></div>
			                    </td>
		                    </tr>

		                    <!-- Cached Cycles -->
		                    <tr class="performance-chart-configuration">
			                    <th scope="row"><label for="cached-cycles"><?php esc_attr_e('Cached Cycles', 'daln'); ?></label></th>
			                    <td>
				                    <input value="5" type="text" id="cached-cycles" maxlength="10" size="30" name="cached_cycles" />
				                    <div class="help-icon" title="<?php esc_attr_e('This value determines the number of cycles performed by the news ticker without updating the news. Set an high value to improve the news ticker performance and to avoid an excessive load on the web server. Set a low value to have frequent updates of the news. Set 0 to update the news at every cycle.', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

		                    <!-- Transient Expiration -->
		                    <tr class="performance-chart-configuration">
			                    <th scope="row"><label for="transient-expiration"><?php esc_attr_e('Transient Expiration', 'daln'); ?></label></th>
			                    <td>
				                    <input value="60" type="text" id="transient-expiration" maxlength="10" size="30" name="transient_expiration"/>
				                    <div class="help-icon" title="<?php esc_attr_e('Enter the transient expiration in seconds. Set an high value to improve the news ticker performance and to avoid an excessive load on the web server. Set a low value to have frequent updates of the news. Set 0 to not use a transient.', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

		                    <tr class="group-trigger" data-trigger-target="style-chart-configuration">
			                    <th scope="row" class="group-title"><?php esc_attr_e( 'Style', 'daln' ); ?></th>
			                    <td>
				                    <div class="expand-icon"></div>
			                    </td>
		                    </tr>

		                    <!-- Featured Title Maximum Length -->
		                    <tr class="style-chart-configuration">
			                    <th scope="row"><label for="featured-title-maximum-length"><?php esc_attr_e('Featured News Title Maximum Length', 'daln'); ?></label></th>
			                    <td>
				                    <input value="280" type="text" id="featured-title-maximum-length" maxlength="4" size="30" name="featured_title_maximum_length" />
				                    <div class="help-icon" title="<?php esc_attr_e('The maximum length of the featured news title.', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

	                        <!-- Featured Excerpt Maximum Length -->
	                        <tr class="style-chart-configuration">
	                            <th scope="row"><label for="featured-excerpt-maximum-length"><?php esc_attr_e('Featured News Excerpt Maximum Length', 'daln'); ?></label></th>
	                            <td>
	                                <input value="280" type="text" id="featured-excerpt-maximum-length" maxlength="4" size="30" name="featured_excerpt_maximum_length" />
	                                <div class="help-icon" title="<?php esc_attr_e('The maximum length of the featured news excerpt.', 'daln'); ?>"></div>
	                            </td>
	                        </tr>

		                    <!-- Sliding News Maximum Length -->
		                    <tr class="style-chart-configuration">
			                    <th scope="row"><label for="sliding-news-maximum-length"><?php esc_attr_e('Sliding News Maximum Length', 'daln'); ?></label></th>
			                    <td>
				                    <input value="280" type="text" id="sliding-news-maximum-length" maxlength="4" size="30" name="sliding_news_maximum_length" />
				                    <div class="help-icon" title="<?php esc_attr_e('The maximum length of the sliding news.', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

		                    <!-- Featured Title Font Size -->
		                    <tr class="style-chart-configuration">
			                    <th scope="row"><label for="featured-title-font-size"><?php esc_attr_e('Featured News Title Font Size', 'daln'); ?></label></th>
			                    <td>
				                    <input value="38" type="text" id="featured-title-font-size" maxlength="2" size="30" name="featured_title_font_size" />
				                    <div class="help-icon" title="<?php esc_attr_e('The font size of the featured news title.', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

		                    <!-- Featured Excerpt Font Size -->
		                    <tr class="style-chart-configuration">
			                    <th scope="row"><label for="featured-excerpt-font-size"><?php esc_attr_e('Featured News Excerpt Font Size', 'daln'); ?></label></th>
			                    <td>
				                    <input value="28" type="text" id="featured-excerpt-font-size" maxlength="2" size="30" name="featured_excerpt_font_size" />
				                    <div class="help-icon" title="<?php esc_attr_e('The font size of the featured news excerpt.', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

		                    <!-- Sliding News Font Size -->
		                    <tr class="style-chart-configuration">
			                    <th scope="row"><label for="sliding-news-font-size"><?php esc_attr_e('Sliding News Font Size', 'daln'); ?></label></th>
			                    <td>
				                    <input value="28" type="text" id="sliding-news-font-size" maxlength="2" size="30" name="sliding_news_font_size" />
				                    <div class="help-icon" title="<?php esc_attr_e('The font size of the sliding news.', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

		                    <!-- Clock Font Size -->
		                    <tr class="style-chart-configuration">
			                    <th scope="row"><label for="clock-font-size"><?php esc_attr_e('Clock Font Size', 'daln'); ?></label></th>
			                    <td>
				                    <input value="28" type="text" id="clock-font-size" maxlength="2" size="30" name="clock_font_size" />
				                    <div class="help-icon" title="<?php esc_attr_e('The font size of the text in the clock.', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

		                    <!-- Sliding News Margin -->
		                    <tr class="style-chart-configuration">
			                    <th scope="row"><label for="sliding-news-margin"><?php esc_attr_e('Sliding News Margin', 'daln'); ?></label></th>
			                    <td>
				                    <input value="84" type="text" id="sliding-news-margin" maxlength="3" size="30" name="sliding_news_margin" />
				                    <div class="help-icon" title="<?php esc_attr_e('The margin between the sliding news.', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

		                    <!-- Sliding News Padding -->
		                    <tr class="style-chart-configuration">
			                    <th scope="row"><label for="sliding-news-padding"><?php esc_attr_e('Sliding News Padding', 'daln'); ?></label></th>
			                    <td>
				                    <input value="28" type="text" id="sliding-news-padding" maxlength="3" size="30" name="sliding_news_padding" />
				                    <div class="help-icon" title="<?php esc_attr_e('This option determines the padding on the left and on the right of each sliding news and also the distance between the sliding news text and the sliding news left and right images.', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

		                    <!-- Font Family -->
		                    <tr class="style-chart-configuration">
			                    <th scope="row"><label for="font-family"><?php esc_attr_e('Font Family', 'daln'); ?></label></th>
			                    <td>
				                    <input value="'Open Sans', sans-serif" type="text" id="font-family" maxlength="255" size="30" name="font_family" />
				                    <div class="help-icon" title="<?php esc_attr_e('The font family used for all the text displayed in the news ticker.', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

		                    <!-- Google Font -->
		                    <tr class="style-chart-configuration">
			                    <th scope="row"><label for="google-font"><?php esc_attr_e('Google Font', 'daln'); ?></label></th>
			                    <td>
				                    <input value="https://fonts.googleapis.com/css?family=Open+Sans:400,600,700" type="text" id="google-font" maxlength="255" size="30" name="google_font" />
				                    <div class="help-icon" title="<?php esc_attr_e('This option allows you to load a specific Google Font.', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

		                    <!-- Featured News Title Color -->
		                    <tr class="style-chart-configuration">
			                    <th scope="row"><label for="featured-news-title-color"><?php esc_attr_e('Featured News Title Color', 'daln'); ?></label></th>
			                    <td>
				                    <input value="#eee" class="wp-color-picker" type="text" id="featured-news-title-color" maxlength="7" size="30" name="featured_news_title_color" />
				                    <div class="help-icon" title="<?php esc_attr_e('The color of the featured news title.', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

		                    <!-- Featured News Title Color Hover -->
		                    <tr class="style-chart-configuration">
			                    <th scope="row"><label for="featured-news-title-color-hover"><?php esc_attr_e('Featured News Title Color Hover', 'daln'); ?></label></th>
			                    <td>
				                    <input value="#111" class="wp-color-picker" type="text" id="featured-news-title-color-hover" maxlength="7" size="30" name="featured_news_title_color_hover" />
				                    <div class="help-icon" title="<?php esc_attr_e('The color of the featured news title in hover status.', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

		                    <!-- Featured News Excerpt Color -->
		                    <tr class="style-chart-configuration">
			                    <th scope="row"><label for="featured-news-excerpt-color"><?php esc_attr_e('Featured News Excerpt Color', 'daln'); ?></label></th>
			                    <td>
				                    <input value="#eee" class="wp-color-picker" type="text" id="featured-news-excerpt-color" maxlength="7" size="30" name="featured_news_excerpt_color" />
				                    <div class="help-icon" title="<?php esc_attr_e('The color of the featured news excerpt.', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

		                    <!-- Sliding News Color -->
		                    <tr class="style-chart-configuration">
			                    <th scope="row"><label for="sliding-news-color"><?php esc_attr_e('Sliding News Color', 'daln'); ?></label></th>
			                    <td>
				                    <input value="#eee" class="wp-color-picker" type="text" id="sliding-news-color" maxlength="7" size="30" name="sliding_news_color" />
				                    <div class="help-icon" title="<?php esc_attr_e('The color of the sliding news.', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

		                    <!-- Sliding News Color Hover -->
		                    <tr class="style-chart-configuration">
			                    <th scope="row"><label for="sliding-news-color-hover"><?php esc_attr_e('Sliding News Color Hover', 'daln'); ?></label></th>
			                    <td>
				                    <input value="#aaa" class="wp-color-picker" type="text" id="sliding-news-color-hover" maxlength="7" size="30" name="sliding_news_color_hover" />
				                    <div class="help-icon" title="<?php esc_attr_e('The color of the sliding news in hover status.', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

		                    <!-- Clock Text Color -->
		                    <tr class="style-chart-configuration">
			                    <th scope="row"><label for="clock-text-color"><?php esc_attr_e('Clock Text Color', 'daln'); ?></label></th>
			                    <td>
				                    <input value="#111" class="wp-color-picker" type="text" id="clock-text-color" maxlength="7" size="30" name="clock_text_color" />
				                    <div class="help-icon" title="<?php esc_attr_e('The color of the text displayed in the clock.', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

	                        <!-- Featured News Background Color -->
	                        <tr class="style-chart-configuration">
	                            <th scope="row"><label for="featured-news-background-color"><?php esc_attr_e('Featured News Background Color', 'daln'); ?></label></th>
	                            <td>
	                                <input value="#C90016" class="wp-color-picker" type="text" id="featured-news-background-color" maxlength="7" size="30" name="featured_news_background_color" />
	                                <div class="help-icon" title="<?php esc_attr_e('The background color of the featured news area.', 'daln'); ?>"></div>
	                            </td>
	                        </tr>

		                    <!-- Featured News Background Color Opacity -->
		                    <tr class="style-chart-configuration">
			                    <th scope="row"><label for="featured-news-background-color-opacity"><?php esc_attr_e('Featured News Background Color Opacity', 'daln'); ?></label></th>
			                    <td>
				                    <input value="1" type="text" id="featured-news-background-color-opacity" maxlength="3" size="30" name="featured_news_background_color_opacity" />
				                    <div class="help-icon" title="<?php esc_attr_e('The background color opacity of the featured news area.', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

	                        <!-- Sliding News Background Color -->
	                        <tr class="style-chart-configuration">
	                            <th scope="row"><label for="sliding-news-background-color"><?php esc_attr_e('Sliding News Background Color', 'daln'); ?></label></th>
	                            <td>
	                                <input value="#000000" class="wp-color-picker" type="text" id="sliding-news-background-color" maxlength="7" size="30" name="sliding_news_background_color" />
	                                <div class="help-icon" title="<?php esc_attr_e('The background color of the sliding news area.', 'daln'); ?>"></div>
	                            </td>
	                        </tr>

		                    <!-- Sliding News Background Color Opacity -->
		                    <tr class="style-chart-configuration">
			                    <th scope="row"><label for="sliding-news-background-color-opacity"><?php esc_attr_e('Sliding News Background Color Opacity', 'daln'); ?></label></th>
			                    <td>
				                    <input value="1" type="text" id="sliding-news-background-color-opacity" maxlength="3" size="30" name="sliding_news_background_color_opacity" />
				                    <div class="help-icon" title="<?php esc_attr_e('The background color opacity of the sliding news area.', 'daln'); ?>"></div>
			                    </td>
		                    </tr>

	                        <!-- Open Button Image -->
	                        <tr class="style-chart-configuration">
	                            <th scope="row"><label for="open-button-image"><?php esc_attr_e('Open Button Image', 'daln'); ?></label></th>
	                            <td>

	                                <div class="image-uploader">
	                                    <img class="selected-image" src="<?php echo $this->shared->get('url') . 'public/assets/img/open-button.png'; ?>" >
	                                    <input value="<?php echo $this->shared->get('url') . 'public/assets/img/open-button.png'; ?>" type="hidden" id="open-button-image" maxlength="2083" name="open_button_image">
	                                    <a class="button_add_media" data-set-remove="remove" data-set="<?php esc_attr_e('Set image', 'daln'); ?>" data-remove="<?php esc_attr_e('Remove Image', 'daln'); ?>"><?php esc_attr_e('Remove image', 'daln'); ?></a>
	                                    <p class="description"><?php esc_attr_e("Select the image of the button used to open the news ticker. It's recommended to use an image with a width of 80 pixels and a height of 40 pixels.", 'daln'); ?></p>
	                                </div>

	                            </td>
	                        </tr>

		                    <!-- Close Button Image -->
		                    <tr class="style-chart-configuration">
			                    <th scope="row"><label for="close-button-image"><?php esc_attr_e('Close Button Image', 'daln'); ?></label></th>
			                    <td>

				                    <div class="image-uploader">
					                    <img class="selected-image" src="<?php echo $this->shared->get('url') . 'public/assets/img/close-button.png'; ?>" >
					                    <input value="<?php echo $this->shared->get('url') . 'public/assets/img/close-button.png'; ?>" type="hidden" id="close-button-image" maxlength="2083" name="close_button_image">
					                    <a class="button_add_media" data-set-remove="remove" data-set="<?php esc_attr_e('Set image', 'daln'); ?>" data-remove="<?php esc_attr_e('Remove Image', 'daln'); ?>"><?php esc_attr_e('Remove image', 'daln'); ?></a>
					                    <p class="description"><?php esc_attr_e("Select the image of the button used to close the news ticker. It's recommended to use an image with a width of 80 pixels and a height of 40 pixels.", 'daln'); ?></p>
				                    </div>

			                    </td>
		                    </tr>

		                    <!-- Clock Background Image -->
		                    <tr class="style-chart-configuration">
			                    <th scope="row"><label for="clock-background-image"><?php esc_attr_e('Clock Background Image', 'daln'); ?></label></th>
			                    <td>

				                    <div class="image-uploader">
					                    <img class="selected-image" src="<?php echo $this->shared->get('url') . 'public/assets/img/clock.png'; ?>" >
					                    <input value="<?php echo $this->shared->get('url') . 'public/assets/img/clock.png'; ?>" type="hidden" id="clock-background-image" maxlength="2083" name="clock_background_image">
					                    <a class="button_add_media" data-set-remove="remove" data-set="<?php esc_attr_e('Set image', 'daln'); ?>" data-remove="<?php esc_attr_e('Remove Image', 'daln'); ?>"><?php esc_attr_e('Remove image', 'daln'); ?></a>
					                    <p class="description"><?php esc_attr_e("Select the background image of the clock. It's recommended to use an image with a width of 80 pixels and a height of 40 pixels.", 'daln'); ?></p>
				                    </div>

			                    </td>
		                    </tr>

	                    </table>

	                    <!-- submit button -->
	                    <div class="daext-form-action">
	                        <input class="button" type="submit" value="<?php esc_attr_e('Add News Ticker', 'daln'); ?>" >
	                    </div>

	                    <?php endif; ?>

	                </div>

	        </form>

	    <?php endif; ?>

    </div>

</div>PK}��[��a�a�admin/view/error_lognu�[���[06-Jan-2025 00:49:15 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[06-Jan-2025 00:55:08 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[06-Jan-2025 04:13:37 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/options.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/options.php on line 3
[06-Jan-2025 04:22:15 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[06-Jan-2025 04:33:54 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[07-Jan-2025 00:08:36 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[07-Jan-2025 00:08:37 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/options.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/options.php on line 3
[07-Jan-2025 00:09:17 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[07-Jan-2025 00:09:24 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[08-Jan-2025 08:20:17 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[08-Jan-2025 16:42:36 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/options.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/options.php on line 3
[08-Jan-2025 19:40:53 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[08-Jan-2025 22:07:40 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[09-Jan-2025 03:52:09 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[09-Jan-2025 10:42:16 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/options.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/options.php on line 3
[09-Jan-2025 21:33:24 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[15-Feb-2025 21:01:31 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[18-Feb-2025 23:23:02 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[21-Feb-2025 01:01:26 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/options.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/options.php on line 3
[22-Feb-2025 18:41:50 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[23-Feb-2025 13:50:49 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[27-Feb-2025 12:25:56 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[01-Mar-2025 12:30:46 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/options.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/options.php on line 3
[03-Mar-2025 12:13:44 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[04-Mar-2025 14:33:35 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[08-Mar-2025 14:00:25 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[11-Mar-2025 12:04:34 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[12-Mar-2025 11:42:04 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[14-Mar-2025 12:34:26 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[14-Mar-2025 12:52:43 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[16-Mar-2025 13:08:56 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[19-Mar-2025 02:37:47 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[19-Mar-2025 02:42:42 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[20-Mar-2025 12:41:15 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[22-Mar-2025 15:40:38 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[25-Mar-2025 14:39:49 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[26-Mar-2025 15:09:50 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[27-Mar-2025 14:58:09 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[31-Mar-2025 15:45:50 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[02-Apr-2025 15:05:28 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[04-Apr-2025 14:33:43 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[07-Apr-2025 21:33:50 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[08-Apr-2025 20:09:35 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[09-Apr-2025 19:42:26 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[17-Apr-2025 01:03:35 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[17-Apr-2025 01:08:02 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[21-Apr-2025 22:08:18 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[22-Apr-2025 15:51:38 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[03-May-2025 22:51:22 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[04-May-2025 20:15:43 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[06-May-2025 16:32:44 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[08-May-2025 09:44:18 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[09-May-2025 09:19:04 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[11-May-2025 17:58:01 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[12-May-2025 11:36:19 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[12-May-2025 19:10:37 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[16-May-2025 07:16:05 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[16-May-2025 17:46:53 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[16-May-2025 18:03:35 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[20-May-2025 17:17:45 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[21-May-2025 09:05:04 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[21-May-2025 22:37:36 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[22-May-2025 22:01:29 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[23-May-2025 18:10:29 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[25-May-2025 02:26:02 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[25-May-2025 02:28:17 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[28-May-2025 20:10:29 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[28-May-2025 20:32:10 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[29-May-2025 18:37:30 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[29-May-2025 18:37:50 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[30-May-2025 23:51:21 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[30-May-2025 23:51:56 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[03-Jun-2025 19:19:46 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[03-Jun-2025 19:20:29 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[06-Jun-2025 02:03:15 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[06-Jun-2025 19:19:50 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[10-Jun-2025 21:37:44 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[11-Jun-2025 11:11:04 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[12-Jun-2025 16:20:00 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[16-Jun-2025 21:40:52 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[18-Jun-2025 13:36:29 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[18-Jun-2025 14:10:35 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[23-Jun-2025 14:21:11 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[24-Jun-2025 18:17:02 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[25-Jun-2025 22:21:26 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[29-Jun-2025 14:14:16 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[30-Jun-2025 16:23:10 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[01-Jul-2025 22:56:44 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[06-Jul-2025 09:02:34 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[12-Jul-2025 13:08:03 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[13-Jul-2025 11:59:43 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[14-Jul-2025 11:22:26 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[18-Jul-2025 13:08:18 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[20-Jul-2025 12:19:43 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[20-Jul-2025 13:45:31 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[25-Jul-2025 17:50:02 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[26-Jul-2025 19:17:12 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[07-Dec-2025 22:23:12 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/options.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/options.php on line 3
[07-Dec-2025 22:24:48 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[07-Dec-2025 22:25:24 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[07-Dec-2025 22:27:33 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[08-Dec-2025 08:22:14 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[08-Dec-2025 08:22:15 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[08-Dec-2025 08:22:33 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/options.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/options.php on line 3
[08-Dec-2025 08:22:36 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[08-Dec-2025 08:26:53 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/sliding.php on line 3
[08-Dec-2025 08:27:00 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/tickers.php on line 3
[08-Dec-2025 08:27:18 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/featured.php on line 3
[08-Dec-2025 08:28:14 UTC] PHP Fatal error:  Uncaught Error: Call to undefined function current_user_can() in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/options.php:3
Stack trace:
#0 {main}
  thrown in /home/nandedex/public_html/wp-content/plugins/live-news/admin/view/options.php on line 3
PK}��[J��admin/view/options.phpnu�[���<?php

if ( ! current_user_can( 'manage_options' ) ) {
	wp_die( esc_attr__( 'You do not have sufficient capabilities to access this page.', 'daln' ) );
}

?>

<div class="wrap">

	<h2><?php esc_attr_e( 'Live News - Options', 'daln' ); ?></h2>

	<?php

	//settings errors
	if ( isset( $_GET['settings-updated'] ) and $_GET['settings-updated'] == 'true' ) {
		settings_errors();
	}

	?>

	<div id="daext-options-wrapper">

		<?php

		//get current tab value
		$active_tab = isset( $_GET['tab'] ) ? $_GET['tab'] : 'general';

		?>

		<div class="nav-tab-wrapper">
			<a href="?page=daln-options&tab=general"
			   class="nav-tab <?php echo $active_tab == 'general' ? 'nav-tab-active' : ''; ?>"><?php esc_attr_e( 'General', 'daln' ); ?></a>
		</div>

		<form method='post' action='options.php'>

			<?php

			if ( $active_tab == 'general' ) {

				settings_fields( $this->shared->get( 'slug' ) . '_general_options' );
				do_settings_sections( $this->shared->get( 'slug' ) . '_general_options' );

			}

			?>

			<div class="daext-options-action">
				<input type="submit" name="submit" id="submit" class="button" value="<?php esc_attr_e( 'Save Changes', 'daln' ); ?>">
			</div>

		</form>

	</div>

</div>PK}��[��ے�I�Iadmin/view/featured.phpnu�[���<?php

if ( !current_user_can(get_option( $this->shared->get('slug') . "_featured_menu_capability")) )  {
	wp_die( esc_attr__( 'You do not have sufficient permissions to access this page.', 'daln' ) );
}

?>

<!-- process data -->

<?php

if( isset( $_POST['update_id'] ) or isset($_POST['form_submitted']) ){

	extract($_POST);

	$invalid_data_message = '';

	//validation on "Title"
	if( mb_strlen( trim($title) ) == 0 or mb_strlen($title) > 1000 ){
		$invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid value in the "Title" field.', 'daln') . '</p></div>';
		$invalid_data = true;
	}

	//validation on "Excerpt"
	if( mb_strlen( trim($excerpt) ) == 0 or mb_strlen($excerpt) > 1000 ){
		$invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid value in the "Excerpt" field.', 'daln') . '</p></div>';
		$invalid_data = true;
	}

	//validation on "URL"
	if( mb_strlen(trim($url)) > 2083 or
	    mb_strlen(trim($url)) > 0 and !preg_match($this->shared->url_regex, trim($url) ) ){
		$invalid_data_message .= '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('Please enter a valid URL in the "URL" field.', 'daln') . '</p></div>';
		$invalid_data = true;
	}

}

//update ---------------------------------------------------------------
if( isset( $_POST['update_id'] ) and !isset($invalid_data) ){

	//update the database
	global $wpdb;
	$table_name = $wpdb->prefix . $this->shared->get('slug') . "_featured_news";
	$safe_sql = $wpdb->prepare("UPDATE $table_name SET
                news_title = %s,
                news_excerpt = %s,
                url = %s,
                ticker_id = %d
                WHERE id = %d",
		$title,
		$excerpt,
		$url,
		$ticker,
		$update_id);

	$query_result = $wpdb->query( $safe_sql );

	if($query_result !== false){
		$process_data_message = '<div class="updated settings-error notice is-dismissible below-h2"><p>' . esc_attr__('The featured news has been successfully updated.', 'daln') . '</p></div>';
	}

}else{

	//add ------------------------------------------------------------------
	if( isset($_POST['form_submitted']) and !isset($invalid_data) ){

		//insert into the database
		global $wpdb;
		$table_name = $wpdb->prefix . $this->shared->get('slug') . "_featured_news";
		$safe_sql = $wpdb->prepare("INSERT INTO $table_name SET
                    news_title = %s,
                    news_excerpt = %s,
                    url = %s,
                    ticker_id = %d",
			$title,
			$excerpt,
			$url,
			$ticker
		);

		$query_result = $wpdb->query( $safe_sql );

		if($query_result !== false){
			$process_data_message = '<div class="updated settings-error notice is-dismissible below-h2"><p>' . esc_attr__('The featured news has been successfully added.', 'daln') . '</p></div>';
		}

	}

}

//delete a featured news
if( isset( $_POST['delete_id']) ){

	global $wpdb;
	$delete_id = intval($_POST['delete_id'], 10);

	//delete this game
	$table_name = $wpdb->prefix . $this->shared->get('slug') . "_featured_news";
	$safe_sql = $wpdb->prepare("DELETE FROM $table_name WHERE id = %d ", $delete_id);

	$query_result = $wpdb->query( $safe_sql );

	if($query_result !== false){
		$process_data_message = '<div class="updated settings-error notice is-dismissible below-h2"><p>' . esc_attr__('The featured news has been successfully deleted.', 'daln') . '</p></div>';
	}

}

//get the featured news data
$display_form = true;
if(isset($_GET['edit_id'])){
	$edit_id = intval($_GET['edit_id'], 10);
	global $wpdb;
	$table_name = $wpdb->prefix . $this->shared->get('slug') . "_featured_news";
	$safe_sql = $wpdb->prepare("SELECT * FROM $table_name WHERE id = %d ", $edit_id);
	$featured_news_obj = $wpdb->get_row($safe_sql);
	if($featured_news_obj === null){
		$display_form = false;
	}
}

//Get the value of the custom filter
if( isset($_GET['cf']) and $_GET['cf'] != 'all' ){
    $ticker_id_in_cf = intval($_GET['cf'], 10);
}else{
    $ticker_id_in_cf = false;
}

?>

<!-- output -->

<div class="wrap">

    <?php if ($this->shared->get_number_of_featured_news() > 0) : ?>

        <div id="daext-header-wrapper" class="daext-clearfix">

            <h2><?php esc_attr_e('Live News - Featured News', 'daln'); ?></h2>

            <!-- Search Form -->

            <form action="admin.php" method="get" id="daext-search-form">

                <input type="hidden" name="page" value="daln-featured">

                <p><?php esc_attr_e('Perform your Search', 'daln'); ?></p>

                <?php
                if (isset($_GET['s']) and strlen(trim($_GET['s'])) > 0) {
                    $search_string = $_GET['s'];
                } else {
                    $search_string = '';
                }

                //Custom Filter
                if($ticker_id_in_cf !== false){
                    echo '<input type="hidden" name="cf" value="' . $ticker_id_in_cf . '">';
                }

                ?>

                <input type="text" name="s" name="s"
                       value="<?php echo esc_attr(stripslashes($search_string)); ?>" autocomplete="off" maxlength="255">
                <input type="submit" value="">

            </form>

            <!-- Filter Form -->

            <form method="GET" action="admin.php" id="daext-filter-form">

                <input type="hidden" name="page" value="<?php echo $this->shared->get('slug'); ?>-featured">

                <p><?php esc_attr_e('Filter by News Ticker', 'daln'); ?></p>

                <select id="cf" name="cf" class="daext-display-none">

                    <option value="all" <?php if(isset($_GET['cf'])){selected( $_GET['cf'], 'all' );} ?>><?php esc_attr_e('All', 'daln'); ?></option>

                    <?php

                    global $wpdb;
                    $table_name = $wpdb->prefix . $this->shared->get('slug') . "_tickers";
                    $safe_sql = "SELECT id, name FROM $table_name ORDER BY id DESC";
                    $tickers_a = $wpdb->get_results($safe_sql, ARRAY_A);

                    foreach ($tickers_a as $key => $ticker) {

                        if(isset($_GET['cf'])){
                            echo '<option value="' . $ticker['id'] . '" ' .  selected( $_GET['cf'], $ticker['id'], false ) . '>' . esc_attr(stripslashes($ticker['name'])) . '</option>';
                        }else{
                            echo '<option value="' . $ticker['id'] . '">' . esc_attr(stripslashes($ticker['name'])) . '</option>';

                        }

                    }

                    ?>

                </select>

            </form>

        </div>

    <?php else: ?>

        <div id="daext-header-wrapper" class="daext-clearfix">

            <h2><?php esc_attr_e('Live News - Featured News', 'daln'); ?></h2>

        </div>

    <?php endif; ?>

	<?php

	//do not display the menu if in the 'cf' url parameter is applied a filter based on a ticker that doesn't exist
	if( isset($_GET['cf']) and $_GET['cf'] != 'all' and !$this->shared->ticker_exists($_GET['cf']) ){
		echo '<p>' . esc_attr__("The filter can't be applied because this news ticker doesn't exist.", 'daln') . '</p>';
		return;
	}

	//retrieve the url parameter that should be used in the linked URLs
	if(isset($_GET['cf']) and $this->shared->ticker_exists($_GET['cf'])){
		$ticker_url_parameter = '&cf=' . intval($_GET['cf'], 10);
	}else{
		$ticker_url_parameter = '';
	}

	//display a message and not the menu if there are no tickers
	if($this->shared->get_number_of_tickers() == 0){
		echo '<p>' . esc_attr__("There are no news tickers at the moment, please create at least one news ticker with the", 'daln') . ' ' . '<a href="admin.php?page=daln-tickers">' . esc_attr__('News Tickers', 'daln') . '</a> menu.' . '</p>';
		return;
	}

	?>

	<div id="daext-menu-wrapper">

		<?php if(isset($invalid_data_message)){echo $invalid_data_message;} ?>
		<?php if(isset($process_data_message)){echo $process_data_message;} ?>

		<!-- table -->

		<?php

        //custom filter
        if($ticker_id_in_cf === false){
            $filter = '';
        }else{
            global $wpdb;
            $filter = $wpdb->prepare("WHERE ticker_id = %d", $ticker_id_in_cf);
        }

        //create the query part used to filter the results when a search is performed
        if (isset($_GET['s']) and strlen(trim($_GET['s'])) > 0) {

            $search_string = $_GET['s'];
            global $wpdb;

            if(strlen(trim($filter)) > 0){
                $filter .= $wpdb->prepare(' AND (news_title LIKE %s OR news_excerpt LIKE %s OR url LIKE %s)', '%' . $search_string . '%', '%' . $search_string . '%', '%' . $search_string . '%');
            }else{
                $filter = $wpdb->prepare('WHERE (news_title LIKE %s OR news_excerpt LIKE %s OR url LIKE %s)', '%' . $search_string . '%', '%' . $search_string . '%', '%' . $search_string . '%');
            }

        }

		//retrieve the total number of featured news
		global $wpdb;
		$table_name=$wpdb->prefix . $this->shared->get('slug') . "_featured_news";
		$total_items = $wpdb->get_var( "SELECT COUNT(*) FROM $table_name $filter");

		//Initialize the pagination class
		require_once( $this->shared->get('dir') . '/admin/inc/class-daln-pagination.php' );
		$pag = new daln_pagination();
		$pag->set_total_items( $total_items );//Set the total number of items
		$pag->set_record_per_page( 10 ); //Set records per page
		$pag->set_target_page( "admin.php?page=" . $this->shared->get('slug') . "-featured" );//Set target page
		$pag->set_current_page();//set the current page number from $_GET

		?>

		<!-- Query the database -->
		<?php
		$query_limit = $pag->query_limit();
		$results = $wpdb->get_results("SELECT * FROM $table_name $filter ORDER BY id DESC $query_limit ", ARRAY_A); ?>

		<?php if( count($results) > 0 ) : ?>

			<div class="daext-items-container">

				<!-- list of tables -->
				<table class="daext-items">
					<thead>
					<tr>
						<th>
							<div><?php esc_attr_e('Title', 'daln'); ?></div>
							<div class="help-icon" title="<?php esc_attr_e('The title of the featured news.', 'daln'); ?>"></div>
						</th>
						<th>
							<div><?php esc_attr_e('Ticker', 'daln'); ?></div>
							<div class="help-icon" title="<?php esc_attr_e('The news ticker associated with the featured news.', 'daln'); ?>"></div>
						</th>
						<th></th>
					</tr>
					</thead>
					<tbody>

					<?php foreach($results as $result) : ?>
						<tr>
							<td><?php echo esc_attr(stripslashes($result['news_title'])); ?></td>
							<td><?php echo '<a href="admin.php?page=daln-tickers&edit_id=' . $result['ticker_id'] . '">' . esc_attr(stripslashes($this->shared->get_textual_ticker($result['ticker_id']))) . '</a>'; ?></td>
							<td class="icons-container">
								<a class="menu-icon edit" href="admin.php?page=<?php echo $this->shared->get('slug'); ?>-featured&edit_id=<?php echo $result['id']; ?><?php echo $ticker_url_parameter; ?>"></a>
								<form method="POST" action="admin.php?page=<?php echo $this->shared->get('slug'); ?>-featured">
									<input type="hidden" value="<?php echo $result['id']; ?>" name="delete_id" >
									<input class="menu-icon delete" type="submit" value="">
								</form>
							</td>
						</tr>
					<?php endforeach; ?>

					</tbody>

				</table>

			</div>

			<!-- Display the pagination -->
			<?php if($pag->total_items > 0) : ?>
				<div class="daext-tablenav daext-clearfix">
					<div class="daext-tablenav-pages">
						<span class="daext-displaying-num"><?php echo $pag->total_items; ?> <?php esc_attr_e('items', 'daln'); ?></span>
						<?php $pag->show(); ?>
					</div>
				</div>
			<?php endif; ?>

        <?php else : ?>

		    <?php

        if(strlen(trim($filter)) > 0){
            echo '<div class="error settings-error notice is-dismissible below-h2"><p>' . esc_attr__('There are no results that match your filter.', 'daln') . '</p></div>';
        }

        ?>

	    <?php endif; ?>

		<div id="featured-news-form-container">

			<?php if( $display_form ) : ?>

				<form method="POST" action="admin.php?page=<?php echo $this->shared->get('slug'); ?>-featured<?php echo $ticker_url_parameter; ?>" autocomplete="off">

					<input type="hidden" value="1" name="form_submitted">

					<?php if(isset($_GET['edit_id'])) : ?>

					<!-- Edit a featured news -->

					<div class="daext-form-container">

						<h3 class="daext-form-title"><?php esc_attr_e('Edit Featured News', 'daln'); ?> <?php echo $featured_news_obj->id; ?></h3>

						<table class="daext-form">

							<input type="hidden" name="update_id" value="<?php echo $featured_news_obj->id; ?>" />

							<!-- title -->
							<tr valign="top">
								<th scope="row"><label for="title"><?php esc_attr_e('Title', 'daln'); ?></label></th>
								<td>
									<input value="<?php echo esc_attr(stripslashes($featured_news_obj->news_title)); ?>" type="text" id="title" maxlength="1000" size="30" name="title" />
									<div class="help-icon" title="<?php esc_attr_e('Enter the title of the featured news.', 'daln'); ?>"></div>
								</td>
							</tr>

							<!-- excerpt -->
							<tr valign="top">
								<th scope="row"><label for="news-excerpt"><?php esc_attr_e('Excerpt', 'daln'); ?></label></th>
								<td>
									<input value="<?php echo esc_attr(stripslashes($featured_news_obj->news_excerpt)); ?>" type="text" id="news-excerpt" maxlength="1000" size="30" name="excerpt" />
									<div class="help-icon" title="<?php esc_attr_e('Enter the excerpt of the featured news.', 'daln'); ?>"></div>
								</td>
							</tr>

							<!-- URL -->
							<tr valign="top">
								<th scope="row"><label for="url"><?php esc_attr_e('URL', 'daln'); ?></label></th>
								<td>
									<input value="<?php echo esc_attr(stripslashes($featured_news_obj->url)); ?>" type="text" id="url" maxlength="2083" size="30" name="url" />
									<div class="help-icon" title="<?php esc_attr_e('Enter the URL of the featured news.', 'daln'); ?>"></div>
								</td>
							</tr>

							<!-- Ticker -->
							<tr>
								<th scope="row"><?php esc_attr_e('Ticker', 'daln'); ?></th>
								<td>
									<select id="ticker" name="ticker" class="daext-display-none">

										<?php

										global $wpdb;
										$table_name = $wpdb->prefix . $this->shared->get('slug') . "_tickers";
										$safe_sql = "SELECT id, name FROM $table_name ORDER BY id DESC";
										$tickers_a = $wpdb->get_results($safe_sql, ARRAY_A);

										foreach ($tickers_a as $key => $ticker) {
											echo '<option value="' . $ticker['id'] . '" ' .  selected($featured_news_obj->ticker_id, $ticker['id']) . '>' . esc_attr(stripslashes($ticker['name'])) . '</option>';
										}

										?>

									</select>
									<div class="help-icon" title='<?php esc_attr_e('The news ticker associated with this featured news.', 'daln'); ?>'></div>
								</td>
							</tr>

						</table>

						<!-- submit button -->
						<div class="daext-form-action">
							<input class="button" type="submit" value="<?php esc_attr_e('Update Featured News', 'daln'); ?>" >
						</div>

						<?php else : ?>

						<!-- Create New featured News -->

						<div class="daext-form-container">

							<div class="daext-form-title"><?php esc_attr_e('Create a Featured News', 'daln'); ?></div>

							<table class="daext-form">

								<!-- Title -->
								<tr valign="top">
									<th scope="row"><label for="title"><?php esc_attr_e('Title', 'daln'); ?></label></th>
									<td>
										<input type="text" id="title" maxlength="1000" size="30" name="title" />
										<div class="help-icon" title="<?php esc_attr_e('Enter the title of the featured news.', 'daln'); ?>"></div>
									</td>
								</tr>

								<!-- Excerpt -->
								<tr valign="top">
									<th scope="row"><label for="news-excerpt"><?php esc_attr_e('Excerpt', 'daln'); ?></label></th>
									<td>
										<input type="text" id="news-excerpt" maxlength="1000" size="30" name="excerpt" />
										<div class="help-icon" title="<?php esc_attr_e('Enter the excerpt of the featured news.', 'daln'); ?>"></div>
									</td>
								</tr>

								<!-- URL -->
								<tr valign="top">
									<th scope="row"><label for="url"><?php esc_attr_e('URL', 'daln'); ?></label></th>
									<td>
										<input type="text" id="url" maxlength="2083" size="30" name="url" />
										<div class="help-icon" title="<?php esc_attr_e('Enter the URL of the featured news.', 'daln'); ?>"></div>
									</td>
								</tr>

								<!-- Ticker -->
								<tr>
									<th scope="row"><?php esc_attr_e('Ticker', 'daln'); ?></th>
									<td>
										<select id="ticker" name="ticker" class="daext-display-none">

											<?php

											global $wpdb;
											$table_name = $wpdb->prefix . $this->shared->get('slug') . "_tickers";
											$safe_sql = "SELECT id, name FROM $table_name ORDER BY id DESC";
											$tickers_a = $wpdb->get_results($safe_sql, ARRAY_A);

                                            if($ticker_id_in_cf === false){

                                                foreach ($tickers_a as $key => $ticker) {
                                                    echo '<option value="' . $ticker['id'] . '">' . esc_attr(stripslashes($ticker['name'])) . '</option>';
                                                }

                                            }else{

                                                foreach ($tickers_a as $key => $ticker) {
                                                    echo '<option value="' . $ticker['id'] . '" ' . selected($ticker_id_in_cf, $ticker['id'], false) . '>' . esc_attr(stripslashes($ticker['name'])) . '</option>';
                                                }

                                            }

											?>

										</select>
										<div class="help-icon" title='<?php esc_attr_e('The news ticker associated with this featured news', 'daln'); ?>'></div>
									</td>
								</tr>

							</table>

							<!-- submit button -->
							<div class="daext-form-action">
								<input class="button" type="submit" value="<?php esc_attr_e('Add Featured News', 'daln'); ?>" >
							</div>

							<?php endif; ?>

						</div>

				</form>

			<?php endif; ?>

		</div>

	</div>

</div>PK}��[n�o����admin/class-daln-admin.phpnu�[���<?php

/*
 * this class should be used to work with the administrative side of wordpress
 */
class Daln_Admin{

    protected static $instance = null;
    private $shared = null;

	private $screen_id_tickers = null;
	private $screen_id_featured = null;
	private $screen_id_sliding = null;
	private $screen_id_options = null;
    
    private function __construct() {

        //assign an instance of the shared class
        $this->shared = Daln_Shared::get_instance();

        //Load admin stylesheets and JavaScript
        add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_styles' ) );
        add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_scripts' ) );

	    //Write in back-end head
	    add_action('admin_head', array( $this, 'wr_admin_head' ));

        //Add the admin menu
        add_action( 'admin_menu', array( $this, 'me_add_admin_menu' ) );

	    //Load the options API registrations and callbacks
	    add_action('admin_init', array( $this, 'op_register_options' ) );

        //this hook is triggered during the creation of a new blog
        add_action('wpmu_new_blog', array($this, 'new_blog_create_options_and_tables'), 10, 6);

        //this hook is triggered during the deletion of a blog
        add_action( 'delete_blog', array($this, 'delete_blog_delete_options_and_tables'), 10, 1 );

    }

    /*
     * return an instance of this class
     */
    public static function get_instance() {

        if ( null == self::$instance ) {
            self::$instance = new self;
        }

        return self::$instance;

    }

	/*
	 * write in the admin head
	 */
	public function wr_admin_head(){

		echo '<script type="text/javascript">';
		echo 'var daln_ajax_url = "' . admin_url('admin-ajax.php') . '";';
		echo 'var daln_nonce = "' . wp_create_nonce( "live-news" ) . '";';
		echo 'var daln_admin_url ="' . get_admin_url() . '";';
		echo '</script>';

	}

    public function enqueue_admin_styles() {

        $screen = get_current_screen();

        //menu tickers
        if ( $screen->id == $this->screen_id_tickers ) {
            wp_enqueue_style( 'wp-color-picker' );
            wp_enqueue_style( $this->shared->get('slug') .'-menu-sliding', $this->shared->get('url') . 'admin/assets/css/menu-tickers.css', array(), $this->shared->get('ver') );
            wp_enqueue_style( $this->shared->get('slug') .'-framework-menu', $this->shared->get('url') . 'admin/assets/css/framework/menu.css', array(), $this->shared->get('ver') );
            wp_enqueue_style( $this->shared->get('slug') .'-jquery-ui-tooltip', $this->shared->get('url') . 'admin/assets/css/jquery-ui-tooltip.css', array(), $this->shared->get('ver') );
            wp_enqueue_style( $this->shared->get('slug') .'-chosen', $this->shared->get('url') . 'admin/assets/inc/chosen/chosen-min.css', array(), $this->shared->get('ver') );
            wp_enqueue_style( $this->shared->get('slug') .'-chosen-custom', $this->shared->get('url') . 'admin/assets/css/chosen-custom.css', array(), $this->shared->get('ver') );
        }

        //menu featured
        if ( $screen->id == $this->screen_id_featured ) {
            wp_enqueue_style( $this->shared->get('slug') .'-menu-featured', $this->shared->get('url') . 'admin/assets/css/menu-featured.css', array(), $this->shared->get('ver') );
            wp_enqueue_style( $this->shared->get('slug') .'-framework-menu', $this->shared->get('url') . 'admin/assets/css/framework/menu.css', array(), $this->shared->get('ver') );
            wp_enqueue_style( $this->shared->get('slug') .'-jquery-ui-tooltip', $this->shared->get('url') . 'admin/assets/css/jquery-ui-tooltip.css', array(), $this->shared->get('ver') );
            wp_enqueue_style( $this->shared->get('slug') .'-chosen', $this->shared->get('url') . 'admin/assets/inc/chosen/chosen-min.css', array(), $this->shared->get('ver') );
            wp_enqueue_style( $this->shared->get('slug') .'-chosen-custom', $this->shared->get('url') . 'admin/assets/css/chosen-custom.css', array(), $this->shared->get('ver') );
        }

        //menu sliding
        if ( $screen->id == $this->screen_id_sliding ) {
	        wp_enqueue_style( 'wp-color-picker' );
            wp_enqueue_style( $this->shared->get('slug') .'-menu-sliding', $this->shared->get('url') . 'admin/assets/css/menu-sliding.css', array(), $this->shared->get('ver') );
            wp_enqueue_style( $this->shared->get('slug') .'-framework-menu', $this->shared->get('url') . 'admin/assets/css/framework/menu.css', array(), $this->shared->get('ver') );
            wp_enqueue_style( $this->shared->get('slug') .'-jquery-ui-tooltip', $this->shared->get('url') . 'admin/assets/css/jquery-ui-tooltip.css', array(), $this->shared->get('ver') );
            wp_enqueue_style( $this->shared->get('slug') .'-chosen', $this->shared->get('url') . 'admin/assets/inc/chosen/chosen-min.css', array(), $this->shared->get('ver') );
            wp_enqueue_style( $this->shared->get('slug') .'-chosen-custom', $this->shared->get('url') . 'admin/assets/css/chosen-custom.css', array(), $this->shared->get('ver') );
        }

	    //menu options
	    if ( $screen->id == $this->screen_id_options ) {
		    wp_enqueue_style( $this->shared->get('slug') .'-framework-options', $this->shared->get('url') . 'admin/assets/css/framework/options.css', array(), $this->shared->get('ver') );
		    wp_enqueue_style( $this->shared->get('slug') .'-jquery-ui-tooltip', $this->shared->get('url') . 'admin/assets/css/jquery-ui-tooltip.css', array(), $this->shared->get('ver') );
            wp_enqueue_style( $this->shared->get('slug') .'-chosen', $this->shared->get('url') . 'admin/assets/inc/chosen/chosen-min.css', array(), $this->shared->get('ver') );
            wp_enqueue_style( $this->shared->get('slug') .'-chosen-custom', $this->shared->get('url') . 'admin/assets/css/chosen-custom.css', array(), $this->shared->get('ver') );
	    }

    }

    /*
     * enqueue admin-specific javascript
     */
    public function enqueue_admin_scripts() {

        $screen = get_current_screen();

        //menu tickers
        if( $screen->id == $this->screen_id_tickers ){
            wp_enqueue_script('jquery-ui-tooltip');
            wp_enqueue_script( $this->shared->get('slug') . '-menu-tickers', $this->shared->get('url') . 'admin/assets/js/menu-tickers.js', 'jquery', $this->shared->get('ver') );
            wp_enqueue_script( $this->shared->get('slug') . '-jquery-ui-tooltip-init', $this->shared->get('url') . 'admin/assets/js/jquery-ui-tooltip-init.js', 'jquery', $this->shared->get('ver') );
            wp_enqueue_script( $this->shared->get('slug') . '-wp-color-picker-init', $this->shared->get('url') . 'admin/assets/js/wp-color-picker-init.js', array( 'wp-color-picker' ), false, true );
            wp_enqueue_script( $this->shared->get('slug') . '-chosen', $this->shared->get('url') . 'admin/assets/inc/chosen/chosen-min.js', 'jquery', $this->shared->get('ver') );
            wp_enqueue_script( $this->shared->get( 'slug' ) . '-jquery-ui-chosen-init-tickers', $this->shared->get( 'url' ) . 'admin/assets/js/chosen-init-tickers.js', 'jquery', $this->shared->get( 'ver' ) );
	        wp_enqueue_media();
	        wp_enqueue_script( $this->shared->get('slug') . '-media-uploader', $this->shared->get('url') . 'admin/assets/js/media-uploader.js', 'jquery', $this->shared->get('ver') );
        }

        //menu featured
        if( $screen->id == $this->screen_id_featured ){
            wp_enqueue_script('jquery-ui-tooltip');
            wp_enqueue_script( $this->shared->get('slug') . '-jquery-ui-tooltip-init', $this->shared->get('url') . 'admin/assets/js/jquery-ui-tooltip-init.js', 'jquery', $this->shared->get('ver') );
            wp_enqueue_script( $this->shared->get('slug') . '-chosen', $this->shared->get('url') . 'admin/assets/inc/chosen/chosen-min.js', 'jquery', $this->shared->get('ver') );
            wp_enqueue_script( $this->shared->get( 'slug' ) . '-jquery-ui-chosen-init-featured', $this->shared->get( 'url' ) . 'admin/assets/js/chosen-init-featured.js', 'jquery', $this->shared->get( 'ver' ) );
            wp_enqueue_script( $this->shared->get('slug') . '-menu-featured', $this->shared->get('url') . 'admin/assets/js/menu-featured.js', 'jquery', $this->shared->get('ver') );
        }

        //menu sliding
        if( $screen->id == $this->screen_id_sliding ){
            wp_enqueue_script('jquery-ui-tooltip');
            wp_enqueue_script( $this->shared->get('slug') . '-jquery-ui-tooltip-init', $this->shared->get('url') . 'admin/assets/js/jquery-ui-tooltip-init.js', 'jquery', $this->shared->get('ver') );
            wp_enqueue_script( $this->shared->get('slug') . '-chosen', $this->shared->get('url') . 'admin/assets/inc/chosen/chosen-min.js', 'jquery', $this->shared->get('ver') );
            wp_enqueue_script( $this->shared->get( 'slug' ) . '-jquery-ui-chosen-init-sliding', $this->shared->get( 'url' ) . 'admin/assets/js/chosen-init-sliding.js', 'jquery', $this->shared->get( 'ver' ) );
	        wp_enqueue_script( $this->shared->get('slug') . '-wp-color-picker-init', $this->shared->get('url') . 'admin/assets/js/wp-color-picker-init.js', array( 'wp-color-picker' ), false, true );
	        wp_enqueue_script( $this->shared->get('slug') . '-menu-sliding', $this->shared->get('url') . 'admin/assets/js/menu-sliding.js', 'jquery', $this->shared->get('ver') );
	        wp_enqueue_media();
	        wp_enqueue_script( $this->shared->get('slug') . '-media-uploader', $this->shared->get('url') . 'admin/assets/js/media-uploader.js', 'jquery', $this->shared->get('ver') );
        }

	    //menu options
	    if ( $screen->id == $this->screen_id_options ) {
		    wp_enqueue_script( 'jquery-ui-tooltip' );
		    wp_enqueue_script( $this->shared->get( 'slug' ) . '-jquery-ui-tooltip-init', $this->shared->get( 'url' ) . 'admin/assets/js/jquery-ui-tooltip-init.js', 'jquery', $this->shared->get( 'ver' ) );
            wp_enqueue_script( $this->shared->get('slug') . '-chosen', $this->shared->get('url') . 'admin/assets/inc/chosen/chosen-min.js', 'jquery', $this->shared->get('ver') );
            wp_enqueue_script( $this->shared->get( 'slug' ) . '-chosen-init-options', $this->shared->get( 'url' ) . 'admin/assets/js/chosen-init-options.js', 'jquery', $this->shared->get( 'ver' ) );
	    }

    }

    /*
     * plugin activation
     */
    public function ac_activate( $networkwide ) {

        /*
		 * create options and tables for all the sites in the network
		 */
        if ( function_exists( 'is_multisite' ) and is_multisite() ) {

            /*
			 * if this is a "Network Activation" create the options and tables
			 * for each blog
			 */
            if ( $networkwide ) {

                //get the current blog id
                global $wpdb;
                $current_blog = $wpdb->blogid;

                //create an array with all the blog ids
                $blogids = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" );

                //iterate through all the blogs
                foreach ( $blogids as $blog_id ) {

                    //switch to the iterated blog
                    switch_to_blog( $blog_id );

                    //create options and tables for the iterated blog
                    $this->ac_initialize_options();
                    $this->ac_create_database_tables();

                }

                //switch to the current blog
                switch_to_blog( $current_blog );

            } else {

                /*
				 * if this is not a "Network Activation" create options and
				 * tables only for the current blog
				 */
                $this->ac_initialize_options();
                $this->ac_create_database_tables();

            }

        } else {

            /*
			 * if this is not a multisite installation create options and
			 * tables only for the current blog
			 */
            $this->ac_initialize_options();
            $this->ac_create_database_tables();

        }

    }

    //create the options and tables for the newly created blog
    public function new_blog_create_options_and_tables( $blog_id, $user_id, $domain, $path, $site_id, $meta ) {

        global $wpdb;

        /*
		 * if the plugin is "Network Active" create the options and tables for
		 * this new blog
		 */
        if ( is_plugin_active_for_network( 'uberchart/init.php' ) ) {

            //get the id of the current blog
            $current_blog = $wpdb->blogid;

            //switch to the blog that is being activated
            switch_to_blog( $blog_id );

            //create options and database tables for the new blog
            $this->ac_initialize_options();
            $this->ac_create_database_tables();

            //switch to the current blog
            switch_to_blog( $current_blog );

        }

    }

    //delete options and tables for the deleted blog
    public function delete_blog_delete_options_and_tables( $blog_id ) {

        global $wpdb;

        //get the id of the current blog
        $current_blog = $wpdb->blogid;

        //switch to the blog that is being activated
        switch_to_blog( $blog_id );

        //create options and database tables for the new blog
        $this->un_delete_options();
        $this->un_delete_database_tables();

        //switch to the current blog
        switch_to_blog( $current_blog );

    }

    /*
	 * initialize plugin options
	 */
    private function ac_initialize_options() {

        //database version -----------------------------------------------------
        add_option( $this->shared->get( 'slug' ) . "_database_version", "0" );

	    //general --------------------------------------------------------------
        add_option( $this->shared->get('slug') . '_detect_url_mode', "server_variable");
        add_option( $this->shared->get('slug') . '_load_momentjs', "1");
	    add_option( $this->shared->get( 'slug' ) . "_tickers_menu_capability", "manage_options" );
	    add_option( $this->shared->get( 'slug' ) . "_featured_menu_capability", "manage_options" );
	    add_option( $this->shared->get( 'slug' ) . "_sliding_menu_capability", "manage_options" );

    }

    /*
	 * create the plugin database tables
	 */
    private function ac_create_database_tables() {

        global $wpdb;

        //Get the database character collate that will be appended at the end of each query
        $charset_collate = $wpdb->get_charset_collate();

        //check database version and create the database
        if ( intval( get_option( $this->shared->get( 'slug' ) . '_database_version' ), 10 ) < 2 ) {

            require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );

            //create *prefix*_daln_tickers
            global $wpdb;
            $table_name=$wpdb->prefix . $this->shared->get('slug') . "_tickers";
            $sql = "CREATE TABLE $table_name (
                  `name` varchar(100) NOT NULL DEFAULT '',
                  `id` bigint(20) NOT NULL AUTO_INCREMENT PRIMARY KEY,
                  `target` int(11) NOT NULL DEFAULT '1',
                  `url` varchar(2083) NOT NULL DEFAULT '',
                  `source` int(11) NOT NULL DEFAULT '1',
                  `url_rss` varchar(2083) NOT NULL DEFAULT '',
                  `category` bigint(20) NOT NULL DEFAULT '0',
                  `twitter_username` varchar(255) NOT NULL DEFAULT '',
                  `twitter_oauth_access_token` varchar(255) NOT NULL DEFAULT '',
                  `twitter_oauth_access_token_secret` varchar(255) NOT NULL DEFAULT '',
                  `twitter_consumer_key` varchar(255) NOT NULL DEFAULT '',
                  `twitter_consumer_secret` varchar(255) NOT NULL DEFAULT '',
                  `twitter_strip_links` tinyint(1) DEFAULT '0',
                  `twitter_strip_hashtags` tinyint(1) DEFAULT '0',
                  `twitter_strip_usernames` tinyint(1) DEFAULT '0',
                  `open_links_new_tab` tinyint(1) DEFAULT '0',
                  `clock_offset` int(11) NOT NULL DEFAULT '0',
                  `clock_format` varchar(40) NOT NULL DEFAULT 'HH:mm',
                  `clock_source` int(11) NOT NULL DEFAULT '2',
                  `clock_autoupdate` tinyint(1) DEFAULT '1',
                  `clock_autoupdate_time` int(11) NOT NULL DEFAULT '10',
                  `sliding_speed` int(11) NOT NULL DEFAULT '5',
                  `sliding_delay` int(11) NOT NULL DEFAULT '0',
                  `number_of_sliding_news` int(11) NOT NULL DEFAULT '10',
                  `featured_title_maximum_length` int(11) NOT NULL DEFAULT '255',
                  `featured_excerpt_maximum_length` int(11) NOT NULL DEFAULT '255',
                  `sliding_news_maximum_length` int(11) NOT NULL DEFAULT '255',
                  `open_news_as_default` tinyint(1) DEFAULT '1',
                  `hide_featured_news` int(11) NOT NULL DEFAULT '1',
                  `hide_clock` tinyint(1) DEFAULT '0',
                  `enable_rtl_layout` tinyint(1) DEFAULT '0',
                  `cached_cycles` int(11) NOT NULL DEFAULT '0',
                  `featured_news_background_color` varchar(7) DEFAULT NULL,
                  `sliding_news_background_color` varchar(7) DEFAULT NULL,
                  `sliding_news_background_color_opacity` float DEFAULT NULL,
                  `font_family` varchar(255) DEFAULT NULL,
                  `google_font` varchar(255) DEFAULT NULL,
                  `featured_title_font_size` int(11) NOT NULL DEFAULT '38',
                  `featured_excerpt_font_size` int(11) NOT NULL DEFAULT '28',
                  `sliding_news_font_size` int(11) NOT NULL DEFAULT '28',
                  `clock_font_size` int(11) NOT NULL DEFAULT '28',
                  `enable_with_mobile_devices` tinyint(1) DEFAULT '0',
                  `open_button_image` varchar(2083) NOT NULL DEFAULT '',
                  `close_button_image` varchar(2083) NOT NULL DEFAULT '',
                  `clock_background_image` varchar(2083) NOT NULL DEFAULT '',
                  `featured_news_title_color` varchar(7) DEFAULT NULL,
                  `featured_news_title_color_hover` varchar(7) DEFAULT NULL,
                  `featured_news_excerpt_color` varchar(7) DEFAULT NULL,
                  `sliding_news_color` varchar(7) DEFAULT NULL,
                  `sliding_news_color_hover` varchar(7) DEFAULT NULL,
                  `clock_text_color` varchar(7) DEFAULT NULL,
                  `featured_news_background_color_opacity` float DEFAULT NULL,
                  `enable_ticker` tinyint(1) DEFAULT '1',
                  `enable_links` tinyint(1) DEFAULT '1',
                  `transient_expiration` int(11) NOT NULL DEFAULT '0',
                  `sliding_news_margin` int(11) NOT NULL DEFAULT '84',
                  `sliding_news_padding` int(11) NOT NULL DEFAULT '28'
            ) $charset_collate";

            dbDelta($sql);

            //create *prefix*_daln_featured_news
            global $wpdb;
            $table_name=$wpdb->prefix . $this->shared->get('slug') . "_featured_news";
            $sql = "CREATE TABLE $table_name (
                  `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
                  `news_title` varchar(1000) NOT NULL DEFAULT '',
                  `news_excerpt` varchar(1000) NOT NULL DEFAULT '',
                  `url` varchar(2083) NOT NULL DEFAULT '',
                  `ticker_id` bigint(20) NOT NULL
            ) $charset_collate";

            dbDelta($sql);

            //create *prefix*_daln_sliding_news
            global $wpdb;
            $table_name=$wpdb->prefix . $this->shared->get('slug') . "_sliding_news";
            $sql = "CREATE TABLE $table_name (
                  `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
                  `news_title` varchar(1000) NOT NULL DEFAULT '',
                  `url` varchar(2083) NOT NULL DEFAULT '',
                  `ticker_id` bigint(20) NOT NULL,
                  `text_color` varchar(7) DEFAULT NULL,
                  `text_color_hover` varchar(7) DEFAULT NULL,
                  `background_color` varchar(7) DEFAULT NULL,
                  `background_color_opacity` float DEFAULT NULL,
                  `image_before` varchar(2083) NOT NULL DEFAULT '',
                  `image_after` varchar(2083) NOT NULL DEFAULT ''
            ) $charset_collate";

            dbDelta($sql);

            //Update database version
            update_option( $this->shared->get( 'slug' ) . '_database_version', "2" );

        }

    }

    /*
	 * plugin delete
	 */
    static public function un_delete() {

        /*
		 * delete options and tables for all the sites in the network
		 */
        if ( function_exists( 'is_multisite' ) and is_multisite() ) {

            //get the current blog id
            global $wpdb;
            $current_blog = $wpdb->blogid;

            //create an array with all the blog ids
            $blogids = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" );

            //iterate through all the blogs
            foreach ( $blogids as $blog_id ) {

                //switch to the iterated blog
                switch_to_blog( $blog_id );

                //create options and tables for the iterated blog
                Daln_Admin::un_delete_options();
                Daln_Admin::un_delete_database_tables();

            }

            //switch to the current blog
            switch_to_blog( $current_blog );

        } else {

            /*
			 * if this is not a multisite installation delete options and
			 * tables only for the current blog
			 */
            Daln_Admin::un_delete_options();
            Daln_Admin::un_delete_database_tables();

        }

    }

    /*
	 * delete plugin options
	 */
    static public function un_delete_options() {

        //assign an instance of Daln_Shared
        $shared = Daln_Shared::get_instance();

        //database version -----------------------------------------------------
        delete_option( $shared->get( 'slug' ) . "_database_version" );

	    //general --------------------------------------------------------------
        delete_option( $shared->get('slug') . '_detect_url_mode');
        delete_option( $shared->get('slug') . '_load_momentjs');
	    delete_option( $shared->get( 'slug' ) . "_tickers_menu_capability" );
	    delete_option( $shared->get( 'slug' ) . "_featured_menu_capability" );
	    delete_option( $shared->get( 'slug' ) . "_sliding_menu_capability" );

    }

    /*
	 * delete plugin database tables
	 */
    static public function un_delete_database_tables() {

        //assign an instance of Daln_Shared
        $shared = Daln_Shared::get_instance();

        global $wpdb;

        //delete transients associated with the table prefix '_tickers'
        $table_name = $wpdb->prefix . $shared->get( 'slug' ) . "_tickers";
        $results    = $wpdb->get_results( "SELECT id FROM $table_name", ARRAY_A );
        foreach ( $results as $result ) {
            delete_transient('daln_ticker_' . $result['id']);
        }

        //delete table prefix + '_tickers'
        $table_name = $wpdb->prefix . $shared->get( 'slug' ) . "_tickers";
        $sql        = "DROP TABLE $table_name";
        $wpdb->query( $sql );

        //delete table prefix + '_featured_news'
        $table_name = $wpdb->prefix . $shared->get( 'slug' ) . "_featured_news";
        $sql        = "DROP TABLE $table_name";
        $wpdb->query( $sql );

        //delete table prefix + '_sliding_news'
        $table_name = $wpdb->prefix . $shared->get( 'slug' ) . "_sliding_news";
        $sql        = "DROP TABLE $table_name";
        $wpdb->query( $sql );

    }

    /*
	 * register the admin menu
	 */
    public function me_add_admin_menu() {

        add_menu_page(
            'LN',
            esc_attr__('Live News', 'daln'),
	        get_option($this->shared->get('slug') . "_tickers_menu_capability"),
            $this->shared->get('slug') . '-tickers',
            array( $this, 'me_display_menu_tickers'),
            'dashicons-admin-site'
        );

        $this->screen_id_tickers = add_submenu_page(
            $this->shared->get('slug') . '-tickers',
            esc_attr__('News Tickers', 'daln'),
            esc_attr__('News Tickers', 'daln'),
	        get_option($this->shared->get('slug') . "_tickers_menu_capability"),
            $this->shared->get('slug') . '-tickers',
            array( $this, 'me_display_menu_tickers')
        );

        $this->screen_id_featured = add_submenu_page(
            $this->shared->get('slug') . '-tickers',
            esc_attr__('Featured News', 'daln'),
            esc_attr__('Featured News', 'daln'),
	        get_option($this->shared->get('slug') . "_featured_menu_capability"),
            $this->shared->get('slug') . '-featured',
            array( $this, 'me_display_menu_featured')
        );

        $this->screen_id_sliding = add_submenu_page(
            $this->shared->get('slug') . '-tickers',
            esc_attr__('Sliding News', 'daln'),
            esc_attr__('Sliding News', 'daln'),
	        get_option($this->shared->get('slug') . "_sliding_menu_capability"),
            $this->shared->get('slug') . '-sliding',
            array( $this, 'me_display_menu_sliding')
        );

	    $this->screen_id_options = add_submenu_page(
		    $this->shared->get('slug') . '-tickers',
		    esc_attr__('Options', 'daln'),
		    esc_attr__('Options', 'daln'),
		    'manage_options',
		    $this->shared->get('slug') . '-options',
		    array( $this, 'me_display_menu_options')
	    );

    }

    /*
     * includes the tickers view
     */
    public function me_display_menu_tickers() {
        include_once( 'view/tickers.php' );
    }

    /*
     * includes the featured view
     */
    public function me_display_menu_featured() {
        include_once( 'view/featured.php' );
    }

    /*
     * includes the sliding view
     */
    public function me_display_menu_sliding() {
        include_once( 'view/sliding.php' );
    }

	/*
	 * includes the options view
	 */
	public function me_display_menu_options() {
		include_once( 'view/options.php' );
	}

	/*
	 * register options
	 */
	public function op_register_options() {

		//section general ----------------------------------------------------------
		add_settings_section(
			'daln_general_settings_section',
			null,
			null,
			'daln_general_options'
		);

        add_settings_field(
            'detect_url_mode',
            esc_attr__( 'Detect URL Mode', 'daln' ),
            array( $this, 'detect_url_mode_callback' ),
            'daln_general_options',
            'daln_general_settings_section'
        );

        register_setting(
            'daln_general_options',
            'daln_detect_url_mode',
            array( $this, 'detect_url_mode_validation' )
        );

        add_settings_field(
            'load_momentjs',
            esc_attr__( 'Load Moment.js', 'daln' ),
            array( $this, 'load_momentjs_callback' ),
            'daln_general_options',
            'daln_general_settings_section'
        );

        register_setting(
            'daln_general_options',
            'daln_load_momentjs',
            array( $this, 'load_momentjs_validation' )
        );

		add_settings_field(
			'tickers_menu_capability',
			esc_attr__( 'Tickers Menu Capability', 'daln' ),
			array( $this, 'tickers_menu_capability_callback' ),
			'daln_general_options',
			'daln_general_settings_section'
		);

		register_setting(
			'daln_general_options',
			'daln_tickers_menu_capability',
			array( $this, 'tickers_menu_capability_validation' )
		);

		add_settings_field(
			'featured_menu_capability',
			esc_attr__( 'Featured News Menu Capability', 'daln' ),
			array( $this, 'featured_menu_capability_callback' ),
			'daln_general_options',
			'daln_general_settings_section'
		);

		register_setting(
			'daln_general_options',
			'daln_featured_menu_capability',
			array( $this, 'featured_menu_capability_validation' )
		);

		add_settings_field(
			'sliding_menu_capability',
			esc_attr__( 'Sliding News Menu Capability', 'daln' ),
			array( $this, 'sliding_menu_capability_callback' ),
			'daln_general_options',
			'daln_general_settings_section'
		);

		register_setting(
			'daln_general_options',
			'daln_sliding_menu_capability',
			array( $this, 'sliding_menu_capability_validation' )
		);

	}


    public function detect_url_mode_callback($args){

        $html = '<select id="daln-detect-url-mode" name="daln_detect_url_mode" class="daext-display-none">';
        $html .= '<option ' . selected(get_option("daln_detect_url_mode"), 'server_variable', false) . ' value="server_variable">' . esc_attr__('Server Variable', 'dahm') . '</option>';
        $html .= '<option ' . selected(get_option("daln_detect_url_mode"), 'wp_request', false) . ' value="wp_request">' . esc_attr__('WP Request', 'dahm') . '</option>';
        $html .= '</select>';
        $html .= '<div class="help-icon" title="' . esc_attr__('Select the method used to detect the URL of the page.', 'dahm') . '"></div>';

        echo $html;

    }

    public function detect_url_mode_validation($input){

        if($input === 'server_variable' or $input === 'wp_request'){
            $output = $input;
        }else{
            $output = 'server_variable';
        }

        return $output;

    }

    public function load_momentjs_callback($args)
    {

        $html = '<select id="daln-load-momentjs" name="daln_load_momentjs" class="daext-display-none">';
        $html .= '<option ' . selected(intval(get_option("daln_load_momentjs")), 0, false) . ' value="0">' . esc_attr__('No', 'daln') . '</option>';
        $html .= '<option ' . selected(intval(get_option("daln_load_momentjs")), 1, false) . ' value="1">' . esc_attr__('Yes', 'daln') . '</option>';
        $html .= '</select>';
        $html .= '<div class="help-icon" title="' . esc_attr__('Please select "No" only if other components of your website are already loading the Moment.js library.', 'daln') . '"></div>';

        echo $html;

    }

    public function load_momentjs_validation($input)
    {

        return intval($input, 10) == 1 ? '1' : '0';

    }

	public function tickers_menu_capability_callback($args){

		$html = '<input autocomplete="off" type="text" id="daln-tickers-menu-capability" name="daln_tickers_menu_capability" class="regular-text" value="' . esc_attr(get_option("daln_tickers_menu_capability")) . '" />';
		$html .= '<div class="help-icon" title="' . esc_attr__('The capability required to get access on the "News Tickers" menu.', 'daln') . '"></div>';

		echo $html;

	}

	public function tickers_menu_capability_validation($input){

		if(!preg_match($this->shared->regex_capability, $input)){
			add_settings_error( 'daln_tickers_menu_capability', 'daln_tickers_menu_capability', esc_attr__('Please enter a valid capability in the "Tickers Menu Capability" option.', 'daln') );
			$output = get_option('daln_tickers_menu_capability');
		}else{
			$output = $input;
		}

		return trim($output);

	}

	public function featured_menu_capability_callback($args){

		$html = '<input autocomplete="off" type="text" id="daln-featured-menu-capability" name="daln_featured_menu_capability" class="regular-text" value="' . esc_attr(get_option("daln_featured_menu_capability")) . '" />';
		$html .= '<div class="help-icon" title="' . esc_attr__('The capability required to get access on the "Featured News" menu.', 'daln') . '"></div>';

		echo $html;

	}

	public function featured_menu_capability_validation($input){

		if(!preg_match($this->shared->regex_capability, $input)){
			add_settings_error( 'daln_featured_menu_capability', 'daln_featured_menu_capability', esc_attr__('Please enter a valid capability in the "Featured News Menu Capability" option.', 'daln') );
			$output = get_option('daln_featured_menu_capability');
		}else{
			$output = $input;
		}

		return trim($output);

	}

	public function sliding_menu_capability_callback($args){

		$html = '<input autocomplete="off" type="text" id="daln-sliding-menu-capability" name="daln_sliding_menu_capability" class="regular-text" value="' . esc_attr(get_option("daln_sliding_menu_capability")) . '" />';
		$html .= '<div class="help-icon" title="' . esc_attr__('The capability required to get access on the "Sliding News" menu.', 'daln') . '"></div>';

		echo $html;

	}

	public function sliding_menu_capability_validation($input){

		if(!preg_match($this->shared->regex_capability, $input)){
			add_settings_error( 'daln_sliding_menu_capability', 'daln_sliding_menu_capability', esc_attr__('Please enter a valid capability in the "Sliding News Menu Capability" option.', 'daln') );
			$output = get_option('daln_sliding_menu_capability');
		}else{
			$output = $input;
		}

		return trim($output);

	}
    
}PK}��[JZa�$�$#admin/inc/class-daln-pagination.phpnu�[���<?php

/*
 * Handles the pagination on the back-end menus
 */
class Daln_Pagination{
	
    //PROPERTIES ---------------------------------------------------------------
	
    //Total number of items
    var $total_items = -1;
    
    //Number of records to display per page
    var $record_per_page = 10;
    
    //Target page url
    var $target_page = "";
    
    //Store the number of adjacent pages to show on each side of the current page inside the pagination
    var $adjacents = 2;
    
    //Store the current page value, this is set through the set_current_page() method
    var $current_page= 0;
    
    //Store the $_GET parameter to use
    var $parameterName = "p";
 
    //$calculate is set to True only when the calculate() method has been already executed
    var $calculate = false;
	
    //METHODS ------------------------------------------------------------------
	
    //Set the total number of items
    function set_total_items($value) {
        $this->total_items = (int) $value;
    }
 
    #Set the number of items to show per page
    function set_record_per_page($value) {
        $this->record_per_page = (int) $value;
    }
 
    #Set the page url where to send $this->parameterName
    function set_target_page($value) {
        $this->target_page = $value;
    }
 
    //Set the the current page parameter by getting it from $_GET['p'], if it's not set or it's not > than 0 then set it to 1
    function set_current_page() {
		
        if( isset($_GET[ $this->parameterName ]) ){
            if( $_GET[ $this->parameterName ] > 0 ){
                    $this->current_page = $_GET[ $this->parameterName ];
            }else{
                    $this->current_page = 1;
            }
        }else{
            $this->current_page = 1;
        }	
	
    }
 
    //Set the number of adjacent pages to show on each side of the current page inside the pagination
    function adjacents($value) {
        $this->adjacents = (int) $value;
    }
 
    //set an alternative class name of the pagination div
    function changeClass($value="") {
        $this->className = $value;
    }
 
    //assing a different $_GET parameter instead of p
    function parameterName($value="") {
        $this->parameterName = $value;
    }
 
    //Calculate the pagination and display it
    function show() {
		
        //Generate the $pagination property with the $this->pagination inside of it
        $this->calculate();
        //Echo the $this->pagination property
        echo $this->pagination;
        
    }
 
    //return the complete url associated with this page id
    function get_pagenum_link($id) {

        if (isset($_GET['s']) and strlen(trim($_GET['s'])) > 0) {
            $filter = '&s=' . $_GET['s'];
        } else {
            $filter = '';
        }

        //filter cf
        if( isset($_GET['cf']) and $_GET['cf'] != 'all' ){
            $filter .= '&cf=' . intval($_GET['cf'], 10);
        }
        
        if (strpos($this->target_page, '?') === false){
            return esc_url($this->target_page . "?" . $this->parameterName . "=" . $id . $filter);
        }else{
            return esc_url($this->target_page . "&" . $this->parameterName . "=" . $id . $filter);
        }
            
    }
 
    //Generate the pagination and store it inside the $this->pagination property
    function calculate() {
		
        //Reset the $pagination variable, that store the resulted pagination
        $this->pagination = "";
 
        //Setup page vars for display
        $prev = $this->current_page - 1;//previous page                      
        $next = $this->current_page + 1;//next page                            
        $lastpage = ceil($this->total_items / $this->record_per_page);//last page        
        $lpm1 = $lastpage - 1;//last page minus 1
 
         //Generate the pagination and save it inside the $this->pagination property
        if ($lastpage > 1) {
			
            //Generate previous button
            if ($this->current_page) {        
                if ($this->current_page > 1)
					//if the current page is > 1 the previous button is clickable
                    $this->pagination .= '<a href="' . $this->get_pagenum_link($prev) . '" class="prev">&#171</a>';
                else
					//if the current page is not > 1 the previous button is not clickable
                    $this->pagination .= '<a href="javascript: void(0)" class="disabled">&#171</a>';
            }
            
            //Generate pages buttons
            if ($lastpage < 7 + ($this->adjacents * 2)) {
				
                //not enough pages to bother breaking it up
                for ($counter = 1; $counter <= $lastpage; $counter++) {
                    if ($counter == $this->current_page)
                        $this->pagination .= '<a href="javascript: void(0)" class="disabled">'. $counter .'</a>';
                    else
                        $this->pagination .= '<a href="' . $this->get_pagenum_link($counter) . '">'. $counter .'</a>';
                }
                
            }
            elseif ($lastpage > 5 + ($this->adjacents * 2)) {//enough pages to hide some
                
                //close to beginning; only hide later pages
                if ($this->current_page < 1 + ($this->adjacents * 2)) {
                    for ($counter = 1; $counter < 4 + ($this->adjacents * 2); $counter++) {
                        if ($counter == $this->current_page)
                            $this->pagination .= '<a href="javascript: void(0)" class="disabled">'. $counter .'</a>';
                        else
                            $this->pagination .= '<a href="' . $this->get_pagenum_link($counter) . '">'. $counter .'</a>';
                    }
                    $this->pagination .= "<span>...</span>";
                    $this->pagination .= '<a href="' . $this->get_pagenum_link($lpm1) . '">'. $lpm1 .'</a>';
                    $this->pagination .= '<a href="' . $this->get_pagenum_link($lastpage) . '">'. $lastpage .'</a>';
                }
                
                //in middle; hide some front and some back
                elseif ($lastpage - ($this->adjacents * 2) > $this->current_page && $this->current_page > ($this->adjacents * 2)) {
                    $this->pagination .= '<a href="' . $this->get_pagenum_link(1) . '">1</a>';
                    $this->pagination .= '<a href="' . $this->get_pagenum_link(2) . '">2</a>';
                    $this->pagination .= "<span>...</span>";
                    for ($counter = $this->current_page - $this->adjacents; $counter <= $this->current_page + $this->adjacents; $counter++)
                        if ($counter == $this->current_page)
                            $this->pagination .= '<a href="javascript: void(0)" class="disabled">'. $counter .'</a>';
                        else
                            $this->pagination .= '<a href="' . $this->get_pagenum_link($counter) . '">'. $counter .'</a>';
                    $this->pagination .= "<span>...</span>";
                    $this->pagination .= '<a href="' . $this->get_pagenum_link($lpm1) . '">'. $lpm1 .'</a>';
                    $this->pagination .= '<a href="' . $this->get_pagenum_link($lastpage) . '">'. $lastpage .'</a>';
                }
                
                //close to end; only hide early pages
                else {
                    $this->pagination .= '<a href="' . $this->get_pagenum_link(1) . '">1</a>';
                    $this->pagination .= '<a href="' . $this->get_pagenum_link(2) . '">2</a>';
                    $this->pagination .= "<span>...</span>";
                    for ($counter = $lastpage - (2 + ($this->adjacents * 2)); $counter <= $lastpage; $counter++)
                        if ($counter == $this->current_page)
                            $this->pagination .= '<a href="javascript: void(0)" class="disabled">'. $counter .'</a>';
                        else
                            $this->pagination .= '<a href="' . $this->get_pagenum_link($counter) . '">'. $counter .'</a>';
                }
            }
            
            //Generate next button
            if ($this->current_page) {
                if ($this->current_page < $counter - 1)
                    $this->pagination .= '<a href="' . $this->get_pagenum_link($next) . '" class="next">&#187</a>';
                else
                    $this->pagination .= '<a href="javascript: void(0)" class="disabled">&#187</a>';
            }
            
        }
 
    }
    
    //generate the query string to use inside the SQL query
    function query_limit() {
		
            //calculate the $list_start position
            $list_start = ( $this->current_page - 1 ) * $this->record_per_page;

            //Start of the list should be less than pagination count
            if( $list_start >= $this->total_items ){ $list_start = ( $this->total_items - $this->record_per_page ); }

            //list start can't be negative
            if( $list_start < 0 ){ $list_start = 0; }

            return 'LIMIT ' . intval($list_start, 10) . ', ' . intval($this->record_per_page, 10);
	
	}
 
}PK���[�-��� admin/assets/js/menu-featured.jsnu�[���(function($) {

  'use strict';

  $(document).ready(function() {

    $('#daext-filter-form select').on('change', function() {
      $('#daext-filter-form').submit();
    });

  });

}(jQuery));PK���[�d!��&admin/assets/js/chosen-init-options.jsnu�[���jQuery(document).ready(function($) {

  jQuery('#daln-detect-url-mode').chosen();
  jQuery('#daln-load-momentjs').chosen();

});PK���[���|??admin/assets/js/menu-sliding.jsnu�[���jQuery(document).ready(function($) {

    //Handle changes of the news ticker filter
    $('#daext-filter-form select').on('change', function() {
      $('#daext-filter-form').submit();
    });

    //do not set the default values if we are editing an existing sliding news
    if ( $( "#update-id" ).length ){return;}

    daln_update_default_colors();

    $('#ticker').change(function(){

        daln_update_default_colors();

    });

    /*
     * Update the default 'Text Color', 'Text Color Hover' and 'Background Color' based on the values available on the
     * related ticker
     */
    function daln_update_default_colors(){

        var ticker_id = parseInt($('#ticker').val(), 10);

        //prepare input for the ajax request
        var data = {
            "action": "update_default_colors",
            "security": daln_nonce,
            "ticker_id": ticker_id
        };

        //ajax
        $.post(daln_ajax_url, data, function(result_json) {

            var data_obj = $.parseJSON(result_json);

            $('#text-color').iris('color', data_obj.sliding_news_color);
            $('#text-color-hover').iris('color', data_obj.sliding_news_color_hover);
            $('#background-color').iris('color', data_obj.sliding_news_background_color);

        });

    }

});PK���[K��DSS'admin/assets/js/chosen-init-featured.jsnu�[���jQuery(document).ready(function($) {

    jQuery('#ticker, #cf').chosen();

});PK���[K��DSS&admin/assets/js/chosen-init-sliding.jsnu�[���jQuery(document).ready(function($) {

    jQuery('#ticker, #cf').chosen();

});PK���[�쀷XX&admin/assets/js/chosen-init-tickers.jsnu�[���jQuery(document).ready(function($) {

    jQuery('#target, #source, #category, #open-links-new-tab, #open-news-as-default, #hide-featured-news, #hide-clock, #enable-rtl-layout, #enable-ticker, #twitter-strip-links, #twitter-strip-hashtags, #twitter-strip-usernames, #clock-source, #enable-with-mobile-devices, #enable-links').chosen();

});PK���[�1�=
=
!admin/assets/js/media-uploader.jsnu�[���jQuery(document).ready(function($) {

    //will be used to store the wp.media object
    var file_frame;

    //.button_add_media click event handler
    $('.button_add_media').live('click', function( event ){

        //prevent the default behavior of this event
        event.preventDefault();

        //save this in a variable
        da_media_button = $(this);

        if($(this).attr('data-set-remove') == "set"){

            //reopen the media frame if already exists
            if ( file_frame ) {
                file_frame.open();
                return;
            }

            //extend the wp.media object
            file_frame = wp.media.frames.file_frame = wp.media({
                title: $( this ).data( 'Insert image' ),
                button: {
                  text: $( this ).data( 'Insert image' ),
                },
                multiple: false//false -> allows single file | true -> allows multiple files
            });

            //run a callback when an image is selected
            file_frame.on( 'select', function() {

              //get the attachment from the uploader
              attachment = file_frame.state().get('selection').first().toJSON();

              //change the da_media_button label
              da_media_button.text(da_media_button.attr('data-remove'));
              
              //change the da_media_button current status
              da_media_button.attr('data-set-remove', 'remove');

              //assign the attachment.url ( or attachment.id ) to the DOM element ( an input text ) that comes just before the "Add Media" button
              da_media_button.prev().val(attachment.url);

              //assign the attachment.url to the src of the image two times before the "Add Media" button
              da_media_button.prev().prev().attr("src",attachment.url);
              
              //show the image
              da_media_button.prev().prev().show();

            });

            //open the modal window
            file_frame.open();
            
        }else{
            
            //change the da_media_button label
            da_media_button.html(da_media_button.attr('data-set'))
            
            //change the da_media_button current status
            da_media_button.attr('data-set-remove', 'set');
            
            //hide the game image
            da_media_button.prev().prev().hide();
            
            //set empty to the hidden field
            da_media_button.prev().val("");
            
        }

    });

});PK���[	z�Ө�)admin/assets/js/jquery-ui-tooltip-init.jsnu�[���jQuery(document).ready(function($) {

    //init jquery-ui-tooltip
    $(function() {
        $( '.help-icon' ).tooltip({show: false, hide: false});
    });

});PK���[�f��'admin/assets/js/wp-color-picker-init.jsnu�[���/*
 * initialization of the wp color picker
 */
jQuery(document).ready(function($){
    
    $('.wp-color-picker').wpColorPicker();
    
});PK���[Pf��admin/assets/js/menu-tickers.jsnu�[���jQuery(document).ready(function($) {

    remove_border_last_cell_chart();

    //.group-trigger -> click - EVENT LISTENER
    $('.group-trigger').click(function(){

        //open and close the various sections of the chart area
        var target = $(this).attr('data-trigger-target');
        $('.' + target).toggle(0);
        $(this).find('.expand-icon').toggleClass('arrow-down');

        remove_border_last_cell_chart();

    });

    /*
     Remove the bottom border on the cells of the last row of the chart section
     */
    function remove_border_last_cell_chart(){
        $('table.daext-form tr > *').css('border-bottom-width', '1px');
        $('table.daext-form tr:visible:last > *').css('border-bottom-width', '0');
    }

});PK���[q�d�� admin/assets/img/trash-hover.pngnu�[����PNG


IHDR�ZtEXtSoftwareAdobe ImageReadyq�e<�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c014 79.156797, 2014/08/20-09:53:02        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:1fc19e20-5f81-8447-88b8-1c526769ad72" xmpMM:DocumentID="xmp.did:71749E26ECE411E4935FEAE867B912DF" xmpMM:InstanceID="xmp.iid:71749E25ECE411E4935FEAE867B912DF" xmp:CreatorTool="Adobe Photoshop CC 2014 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:abdfe499-e7f4-aa42-aa27-0f51114cbf86" stRef:documentID="adobe:docid:photoshop:624f098a-ece3-11e4-a23a-de087bd57efa"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>!���IDATx�b���/������]�����w�`���`!�L��W��CY�Y��1e��O^ఙ��V?	�A�����B�$0l�v�aO���6�)
�睋�U�S�q4VقZQń�x�6��&�Q��֋�`೙K��`U�����g��<��)�HIEND�B`�PK���[.�=�=!admin/assets/img/update-hover.pngnu�[����PNG


IHDR�Z	pHYs��;tiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c132 79.159284, 2016/04/19-13:13:40        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmpMM:OriginalDocumentID>xmp.did:1fc19e20-5f81-8447-88b8-1c526769ad72</xmpMM:OriginalDocumentID>
         <xmpMM:DocumentID>adobe:docid:photoshop:c6803d97-b6df-11e6-b4ca-cf667453ff9b</xmpMM:DocumentID>
         <xmpMM:InstanceID>xmp.iid:ee9d9ad2-99fe-3741-bc39-12f3b42f1999</xmpMM:InstanceID>
         <xmpMM:DerivedFrom rdf:parseType="Resource">
            <stRef:instanceID>xmp.iid:F1FE7681ECDA11E4AE18BDE587F855DB</stRef:instanceID>
            <stRef:documentID>xmp.did:F1FE7682ECDA11E4AE18BDE587F855DB</stRef:documentID>
         </xmpMM:DerivedFrom>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:700f37b2-2785-d345-a435-d18e3bf32180</stEvt:instanceID>
                  <stEvt:when>2016-11-30T10:31:40+01:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC 2015.5 (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:ee9d9ad2-99fe-3741-bc39-12f3b42f1999</stEvt:instanceID>
                  <stEvt:when>2016-11-30T10:31:40+01:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC 2015.5 (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <xmp:CreatorTool>Adobe Photoshop CC 2015.5 (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2016-11-28T08:56:08+01:00</xmp:CreateDate>
         <xmp:ModifyDate>2016-11-30T10:31:40+01:00</xmp:ModifyDate>
         <xmp:MetadataDate>2016-11-30T10:31:40+01:00</xmp:MetadataDate>
         <dc:format>image/png</dc:format>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>65535</exif:ColorSpace>
         <exif:PixelXDimension>20</exif:PixelXDimension>
         <exif:PixelYDimension>20</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>�$�D cHRMz%������u0�`:�o�_�F�IDATx�b���/����0p�Y��{{��Nj�~o�����"� �,����=�~}ܱ�Y֛QՉ����ʄ+s��iú�_�y&Ff����bl3T(��ª�/�/��8���k����+�߯7�>Mz��$�Vo5!�?��u���� �򝀂��\��t��I}q�sn�(����]��?N����	�N�:>����^@q�Ӈ�����	��ns�B��Ɓ�Y/�2����:�'�4E&�_�������q&F��2�F��M�A���������?�ts9
6��_O\�����Wi̘��~�gQ?P��„�E>}�x��ί70�{
�1��RT}yZ���$�4y�vkX��{����m�
�j�l��	$��C���H�ܼ��$�$�wV��2�7���E�9KK��O��?<x��֏_~~`c�����b�D�+I�ў`��IEND�B`�PK���[l�S��<�<&admin/assets/img/arrow-down-f7f7f7.pngnu�[����PNG


IHDR��
	pHYs��;�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c132 79.159284, 2016/04/19-13:13:40        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmpMM:OriginalDocumentID>xmp.did:1fc19e20-5f81-8447-88b8-1c526769ad72</xmpMM:OriginalDocumentID>
         <xmpMM:DocumentID>adobe:docid:photoshop:8539bf25-56f5-11e6-987b-fc45e1ca408c</xmpMM:DocumentID>
         <xmpMM:InstanceID>xmp.iid:86854044-7971-5c40-bdab-f2d668ef80cb</xmpMM:InstanceID>
         <xmpMM:DerivedFrom rdf:parseType="Resource">
            <stRef:instanceID>xmp.iid:abdfe499-e7f4-aa42-aa27-0f51114cbf86</stRef:instanceID>
            <stRef:documentID>adobe:docid:photoshop:624f098a-ece3-11e4-a23a-de087bd57efa</stRef:documentID>
         </xmpMM:DerivedFrom>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:1cd6ecbe-4b4a-2d43-b164-54a5e5304408</stEvt:instanceID>
                  <stEvt:when>2015-09-04T15:23:19+02:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC 2015 (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:86854044-7971-5c40-bdab-f2d668ef80cb</stEvt:instanceID>
                  <stEvt:when>2016-07-31T10:05:49+02:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC 2015.5 (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <xmp:CreatorTool>Adobe Photoshop CC 2015.5 (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2015-09-04T09:15:20+02:00</xmp:CreateDate>
         <xmp:ModifyDate>2016-07-31T10:05:49+02:00</xmp:ModifyDate>
         <xmp:MetadataDate>2016-07-31T10:05:49+02:00</xmp:MetadataDate>
         <dc:format>image/png</dc:format>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>65535</exif:ColorSpace>
         <exif:PixelXDimension>20</exif:PixelXDimension>
         <exif:PixelYDimension>20</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>�� cHRMz%������u0�`:�o�_�F�IDATx�b����*&*�Q�l�����G1Tn{NP��m�Q�K�?���w�0�;���p[4C1C�o+f�n;����<�%�ߡJ~���?2��6뿥��cc�Yk�'U�@|��������r
�['~1�1�W-e(a�A�zIb
F|Ya(�7�`����eXZe�F�a]��D&1�1�0�hG��70��D1��3IEND�B`�PK���[���\�<�<$admin/assets/img/arrow-up-f7f7f7.pngnu�[����PNG


IHDR��
	pHYs��;�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c132 79.159284, 2016/04/19-13:13:40        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmpMM:OriginalDocumentID>xmp.did:1fc19e20-5f81-8447-88b8-1c526769ad72</xmpMM:OriginalDocumentID>
         <xmpMM:DocumentID>adobe:docid:photoshop:9a9f8acc-56f5-11e6-987b-fc45e1ca408c</xmpMM:DocumentID>
         <xmpMM:InstanceID>xmp.iid:f9c035f6-f314-a049-90d1-54992f565534</xmpMM:InstanceID>
         <xmpMM:DerivedFrom rdf:parseType="Resource">
            <stRef:instanceID>xmp.iid:abdfe499-e7f4-aa42-aa27-0f51114cbf86</stRef:instanceID>
            <stRef:documentID>adobe:docid:photoshop:624f098a-ece3-11e4-a23a-de087bd57efa</stRef:documentID>
         </xmpMM:DerivedFrom>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:1cd6ecbe-4b4a-2d43-b164-54a5e5304408</stEvt:instanceID>
                  <stEvt:when>2015-09-04T15:23:19+02:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC 2015 (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:f9c035f6-f314-a049-90d1-54992f565534</stEvt:instanceID>
                  <stEvt:when>2016-07-31T10:06:11+02:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC 2015.5 (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <xmp:CreatorTool>Adobe Photoshop CC 2015.5 (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2015-09-04T09:15:20+02:00</xmp:CreateDate>
         <xmp:ModifyDate>2016-07-31T10:06:11+02:00</xmp:ModifyDate>
         <xmp:MetadataDate>2016-07-31T10:06:11+02:00</xmp:MetadataDate>
         <dc:format>image/png</dc:format>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>65535</exif:ColorSpace>
         <exif:PixelXDimension>20</exif:PixelXDimension>
         <exif:PixelYDimension>20</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>�Z�� cHRMz%������u0�`:�o�_�F�IDATx�b����*&*�Q�d��m��۞e aÊ��N2�b8�P̰���K�|"c```��p�-����K���`^��au�91�~���?:��6뿥��cc�Yk�G��F�<)��Q��B�1I���:�2��MI�^����{�b�P�GK�` `�s��~w�IEND�B`�PK���[�09_44admin/assets/img/edit-hover.pngnu�[����PNG


IHDR�ZtEXtSoftwareAdobe ImageReadyq�e<�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c014 79.156797, 2014/08/20-09:53:02        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:1fc19e20-5f81-8447-88b8-1c526769ad72" xmpMM:DocumentID="xmp.did:8A698CFCECE411E4A525FD53B109EA24" xmpMM:InstanceID="xmp.iid:8A698CFBECE411E4A525FD53B109EA24" xmp:CreatorTool="Adobe Photoshop CC 2014 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:abdfe499-e7f4-aa42-aa27-0f51114cbf86" stRef:documentID="adobe:docid:photoshop:624f098a-ece3-11e4-a23a-de087bd57efa"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>�/][FIDATx�b���/����0�5y޹�Ԋ�'���00��-�~C,�8�l�C���:����(�3��9��g�<�8���_��y,H�A�'���_����f$�
ߟw��vL�R��瘏�N�_^N�������Mɀ����@:��lH��"����^_q��w �Iߺ�g?�
�d͟���İ�X�i!:_�[�]'� ���O@���+�^~7w�����/*��y�����<	�����n�K �T��'����-�������3>�@�p�����������O'��~1�	�;�s��
hHp���$0���*E��IEND�B`�PK���[`~��>> admin/assets/img/help-fdfdfd.pngnu�[����PNG


IHDR��
	pHYs��;�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c067 79.157747, 2015/03/30-23:40:42        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmpMM:OriginalDocumentID>xmp.did:1fc19e20-5f81-8447-88b8-1c526769ad72</xmpMM:OriginalDocumentID>
         <xmpMM:DocumentID>adobe:docid:photoshop:7ca342f9-53a2-11e5-9437-a138aa861b2d</xmpMM:DocumentID>
         <xmpMM:InstanceID>xmp.iid:17d02260-2f52-1748-b97c-306edf822c4a</xmpMM:InstanceID>
         <xmpMM:DerivedFrom rdf:parseType="Resource">
            <stRef:instanceID>xmp.iid:abdfe499-e7f4-aa42-aa27-0f51114cbf86</stRef:instanceID>
            <stRef:documentID>adobe:docid:photoshop:624f098a-ece3-11e4-a23a-de087bd57efa</stRef:documentID>
         </xmpMM:DerivedFrom>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:1cd6ecbe-4b4a-2d43-b164-54a5e5304408</stEvt:instanceID>
                  <stEvt:when>2015-09-04T15:23:19+02:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC 2015 (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:17d02260-2f52-1748-b97c-306edf822c4a</stEvt:instanceID>
                  <stEvt:when>2015-09-05T09:49:14+02:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC 2015 (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <xmp:CreatorTool>Adobe Photoshop CC 2015 (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2015-09-04T09:15:20+02:00</xmp:CreateDate>
         <xmp:ModifyDate>2015-09-05T09:49:14+02:00</xmp:ModifyDate>
         <xmp:MetadataDate>2015-09-05T09:49:14+02:00</xmp:MetadataDate>
         <dc:format>image/png</dc:format>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>65535</exif:ColorSpace>
         <exif:PixelXDimension>20</exif:PixelXDimension>
         <exif:PixelYDimension>20</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>�A�| cHRMz%������u0�`:�o�_�FIDATxڼ�?hQ�?O�\��-^�ti/Kn�.�A:�.������E7��R,Ht*�k�$:�R��Yz.u�C��s�spy5i��E��?8��}��w�����!�#y
��hh�Ug���\���c&��Y�S�c�0�����7��x!�):ӏ����	[\�f����b���k�X�@�qٽ'J��K�����/���&�!
�O>�_�-��NH��6'�N�,ȵ����}C�W)��f�D�CnMMpf�￷9y6K����,V�aCqqV���ػ�������9��p3�~��q���y��#�7V��g�1{�zp�"d�1��i���ܻ:Ky+@*��q��*�TKE���@2�Z�ST��pieT% �'
�0�i��}���$�sy2}�M3��	[�}Y�•Ҟ�Q��eIP�z簧�(�-�?� ZO~:Kܼ�x��.��%T��/#�kP�<���G�M5f��Lq9�@SdY8a�W�х�H@J��W\ɡ=���u��^'��IEND�B`�PK���[��<
��!admin/assets/img/search-hover.pngnu�[����PNG


IHDRY �0PLTE&����4������w��O�׮���\�څ��j�ݠ��A�������
�6^IDATx�c`���g�
��9�=��l6���(�E���YƑ�`G(#���̴��~�0�����"���700!9OY��dN
�x�9A�#IEND�B`�PK���[N Be��admin/assets/img/search.pngnu�[����PNG


IHDRY �0PLTEq����*z����q��G������U����c�œ��8��������26^IDATx�c`���g�
��9�=��l6���(�E���YƑ�`G(#���̴��~�0�����"���700!9OY��dN
�x�9A�#IEND�B`�PK���[�H���=�=admin/assets/img/update.pngnu�[����PNG


IHDR�Z	pHYs��;tiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c132 79.159284, 2016/04/19-13:13:40        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmpMM:OriginalDocumentID>xmp.did:1fc19e20-5f81-8447-88b8-1c526769ad72</xmpMM:OriginalDocumentID>
         <xmpMM:DocumentID>adobe:docid:photoshop:db179c40-b6df-11e6-b4ca-cf667453ff9b</xmpMM:DocumentID>
         <xmpMM:InstanceID>xmp.iid:a99f2b47-1252-264a-8b7c-530b703502d4</xmpMM:InstanceID>
         <xmpMM:DerivedFrom rdf:parseType="Resource">
            <stRef:instanceID>xmp.iid:F1FE7681ECDA11E4AE18BDE587F855DB</stRef:instanceID>
            <stRef:documentID>xmp.did:F1FE7682ECDA11E4AE18BDE587F855DB</stRef:documentID>
         </xmpMM:DerivedFrom>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:8b68ec71-35b0-8b4d-ac06-349d140af2c2</stEvt:instanceID>
                  <stEvt:when>2016-11-30T10:32:15+01:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC 2015.5 (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:a99f2b47-1252-264a-8b7c-530b703502d4</stEvt:instanceID>
                  <stEvt:when>2016-11-30T10:32:15+01:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC 2015.5 (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <xmp:CreatorTool>Adobe Photoshop CC 2015.5 (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2016-11-28T08:56:08+01:00</xmp:CreateDate>
         <xmp:ModifyDate>2016-11-30T10:32:15+01:00</xmp:ModifyDate>
         <xmp:MetadataDate>2016-11-30T10:32:15+01:00</xmp:MetadataDate>
         <dc:format>image/png</dc:format>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>65535</exif:ColorSpace>
         <exif:PixelXDimension>20</exif:PixelXDimension>
         <exif:PixelYDimension>20</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>���� cHRMz%������u0�`:�o�_�F�IDATx�b���/����0p�Y�~|��Ëw?o���/�%o��,����=�~�ޱ�x���QՉ����ۄ�s��zC����P�<���_��bm�s.��ƪ�/�o�79-z�BRr]��/�7�K��$��ZO^�?��wZ��Wi'�챀����\����I}c�s�J(����~�E�N�x4��N�:%��W_@q����=OV��̵u�ū#�uc�ެ�~�>�����A��U�WdZ�����|��$	U&��737=@��M�ϮM�/D'��/L����?ߛXw������},Q�be�Ѩ�(aOa��L��M��3�ܸ������[HQ��ba��ILi��펰`�|o��Iϙ�����YXٰ'H���+ǟ������B	<���Ó��L���nwm�yQ����6ï�o<��«�x�-���M�5x�g��g��rП���IEND�B`�PK���[�	ttadmin/assets/img/trash.pngnu�[����PNG


IHDR�ZtEXtSoftwareAdobe ImageReadyq�e<niTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c014 79.156797, 2014/08/20-09:53:02        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:1fc19e20-5f81-8447-88b8-1c526769ad72" xmpMM:DocumentID="xmp.did:B479422CECE211E49DC79110D7C6CF73" xmpMM:InstanceID="xmp.iid:B479422BECE211E49DC79110D7C6CF73" xmp:CreatorTool="Adobe Photoshop CC 2014 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:F1FE7681ECDA11E4AE18BDE587F855DB" stRef:documentID="xmp.did:F1FE7682ECDA11E4AE18BDE587F855DB"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>#x��IDATx�b���/������]��͉s�u��' *2/��B��x�_��{퇫�.�c����y��fF��_o�?���;�%���H`���sž|���l6S`7;ˮT�S,t��тZQń�x�6��&�Q��w�e�p0��,�.�?W�*��Ut�3@��z>���IEND�B`�PK���[����""admin/assets/img/edit.pngnu�[����PNG


IHDR�ZtEXtSoftwareAdobe ImageReadyq�e<�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c014 79.156797, 2014/08/20-09:53:02        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:1fc19e20-5f81-8447-88b8-1c526769ad72" xmpMM:DocumentID="xmp.did:84EE53D9ECE411E4BCD2D48ED6954F54" xmpMM:InstanceID="xmp.iid:84EE53D8ECE411E4BCD2D48ED6954F54" xmp:CreatorTool="Adobe Photoshop CC 2014 (Windows)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:abdfe499-e7f4-aa42-aa27-0f51114cbf86" stRef:documentID="adobe:docid:photoshop:624f098a-ece3-11e4-a23a-de087bd57efa"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>+E�4IDATx�b���/����0�5��ٴV�i����2����J�0�C�h��'�6#����Q�g¯s"��^vq$�SN� ���X����|<\�8'+>�H:����+}�9��tJ�K7�������kY%�s�� �Z��}g��
"<:�&ģM�ۭSW1t�=m&D��y=�u�__�$�l�z[��K�h�g��d�ܗa���?�=|{D�.Zv醾!�N+
N�q�Ha�o^�
&��/��>�@�p��{ߐ���ܗ�O'���޳�i8h��+Iiq���$0@
m�{$IEND�B`�PK���[��r?r? admin/assets/img/help-f7f7f7.pngnu�[����PNG


IHDR��
	pHYs��<�iTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c067 79.157747, 2015/03/30-23:40:42        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmpMM:OriginalDocumentID>xmp.did:1fc19e20-5f81-8447-88b8-1c526769ad72</xmpMM:OriginalDocumentID>
         <xmpMM:DocumentID>adobe:docid:photoshop:150a3d9b-5308-11e5-bacc-9c4d6e71be1e</xmpMM:DocumentID>
         <xmpMM:InstanceID>xmp.iid:4d5c2728-619d-c74d-a2d2-fa9b5a09ca29</xmpMM:InstanceID>
         <xmpMM:DerivedFrom rdf:parseType="Resource">
            <stRef:instanceID>xmp.iid:abdfe499-e7f4-aa42-aa27-0f51114cbf86</stRef:instanceID>
            <stRef:documentID>adobe:docid:photoshop:624f098a-ece3-11e4-a23a-de087bd57efa</stRef:documentID>
         </xmpMM:DerivedFrom>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:1cd6ecbe-4b4a-2d43-b164-54a5e5304408</stEvt:instanceID>
                  <stEvt:when>2015-09-04T15:23:19+02:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC 2015 (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:4d5c2728-619d-c74d-a2d2-fa9b5a09ca29</stEvt:instanceID>
                  <stEvt:when>2015-09-04T15:23:19+02:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC 2015 (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <xmp:CreatorTool>Adobe Photoshop CC 2015 (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2015-09-04T09:15:20+02:00</xmp:CreateDate>
         <xmp:ModifyDate>2015-09-04T15:23:19+02:00</xmp:ModifyDate>
         <xmp:MetadataDate>2015-09-04T15:23:19+02:00</xmp:MetadataDate>
         <dc:format>image/png</dc:format>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <photoshop:TextLayers>
            <rdf:Bag>
               <rdf:li rdf:parseType="Resource">
                  <photoshop:LayerName></photoshop:LayerName>
                  <photoshop:LayerText></photoshop:LayerText>
               </rdf:li>
            </rdf:Bag>
         </photoshop:TextLayers>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>65535</exif:ColorSpace>
         <exif:PixelXDimension>20</exif:PixelXDimension>
         <exif:PixelYDimension>20</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>W�; cHRMz%������u0�`:�o�_�F.IDATx�ĔMH�q����%������a���CM�Atp8ȶ�̠<��(1w�[Be�֡.-BW�J�>Fl*g^��"\+���;�1m�k��ӟ�?���2����"Se�:�lh�&y7=A8��Wr(l۽���t7c��Iz5L'&� �3�8�2™��?��qz��,����mmE�A��S�ϥ(Ʊ�y����l�Qw�H)3�8��9Q�@�$���G�NJP������MI��0�G!��]�����a�|ʲ��q<%{.Bp&iԔ���*'</>��h�VX�HDߓ:l��2�/��
z��d?�X"r�"�u1Y���h$����KFz<^��a��P��><@�g�1�ӳ�0����o�VT������K(:V���}�F]{/�
/�~�!?���z�m�C3�C�W���R���M�r:Ay��t'9�Vl�lQ�9�������ʩk��o�!������قE��۩ۄ� �1E��F'.�	N{Z�iγ��!��8H���dF�$dY**�@��|� ��|�B�|!��������IEND�B`�PK���[_YY!admin/assets/css/menu-tickers.cssnu�[���table.daext-items .icons-container{
    width: 76px !important;
    min-width: 76px !important;
}

.display-none{
    display: none;
}

table.daext-items .menu-icon.update{
    margin-right: 8px !important;
}

table.daext-items .update{
    background: url("../img/update.png") 0 0 no-repeat !important;
}

table.daext-items .update:hover{
    background: url("../img/update-hover.png") 0 0 no-repeat !important;
}

.empty-icon-container{
    width: 20px !important;
    height: 20px !important;
    float: left !important;
    margin: 4px 8px 4px 0 !important;
}

table.daext-form .image-uploader .selected-image{
    width: auto !important;
    height: 40px !important;
}

.expand-icon{
    background: url("../img/arrow-down-f7f7f7.png") 0 0 no-repeat !important;
    width: 20px !important;
    height: 20px !important;
    float: right;
    margin: 2px 0;
    cursor: pointer;
}

.group-trigger{
    background: #f7f7f7;
    cursor: pointer;
}

.group-title{
    font-weight: 600 !important;
    color: #333 !important;
    text-align: left !important;
}

.expand-icon.arrow-down{
    background: url("../img/arrow-up-f7f7f7.png") 0 0 no-repeat !important;
}

.source-chart-configuration,
.behavior-chart-configuration,
.style-chart-configuration,
.performance-chart-configuration{
    display: none;
}PK���[��p�VV&admin/assets/css/framework/options.cssnu�[���/* Utility */

.daext-display-none{display: none;}

/* General */

#wpcontent {
    min-height: 1200px;
}

#daext-options-wrapper{
    margin-top: 23px;
}

#daext-options-wrapper *{
    font-size: 12px;
    font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
}

#daext-options-wrapper .nav-tab-wrapper{
    border-bottom: 0;
}

#daext-options-wrapper tbody th{
    color: #333;
    font-weight: normal;
    text-align: right;
    height: 24px;
    line-height: 24px;
}

#daext-options-wrapper tbody th,
#daext-options-wrapper tbody td {
    padding: 8px;
}

#daext-options-wrapper tbody tr:not(:last-child) > th, #daext-options-wrapper tbody tr:not(:last-child) > td {
    border-bottom: 1px solid #e3e3e3;
}

#daext-options-wrapper input[type="text"]{
    height: 24px;
    line-height: 16px;
    box-shadow: none;
    padding: 3px 5px;
    margin: 0 !important;
}

#daext-options-wrapper select{
    height: 24px;
    line-height: 16px;
    box-shadow: none;
    padding: 3px 5px;
    margin: 0 !important;
}

#daext-options-wrapper textarea{
    width: 100%;
    font-size: 12px;
    box-shadow: none;
    border: 1px solid #ddd;
    min-height: 60px;
    color: #999;
    margin: 0 !important;
    overflow: auto;
    padding: 3px 5px;
    line-height: 1.4;
    color: #333;
    display: block;
}

.submit > input[type="submit"]{
    box-shadow: none !important;
    font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif !important;
    font-size: 12px !important;
}

.nav-tab{
    background: #f7f7f7;
    border: 1px solid #dfdfdf;
    padding: 3px 10px;
    line-height: 28px;
    font-weight: 600;
    height: 28px;
    color: #333;
}

.nav-tab:hover{
    background: #f7f7f7;
}

.nav-tab-active{
    background: #fff;
    border-bottom-color: #fff;
}

.nav-tab-active:hover{
    background: #fff !important;
    border-bottom-color: #fff;
}

#daext-options-wrapper .form-table{
    border-left: 1px solid #dfdfdf;
    border-right: 1px solid #dfdfdf;
    margin: 0;
    background: #fdfdfd;
    border-top: 1px solid #dfdfdf;
}

.form-table th{
    width: 260px !important;
}

#daext-options-wrapper{
    width: 800px;
}

.daext-options-action{
    line-height: 28px;
    height: 28px;
    font-size: 12px;
    color: #333;
    font-weight: 600;
    font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
    padding: 8px 10px;
    text-align: left;
    background: #f7f7f7;
    text-shadow: #fff 0px 1px 0px;
    border: 1px solid #dfdfdf;
    border-radius: 0 0 3px 3px;
}

.daext-options-action > input.button{
    -webkit-box-shadow: none !important;
    -moz-box-shadow: none !important;
    box-shadow: none !important;
    font-weight: normal;
}

#daext-options-wrapper .wp-color-result{
    margin: 0;
    box-shadow: none;
}

#daext-options-wrapper .wp-picker-clear{
    box-shadow: none;
}PK���[-n�1�1#admin/assets/css/framework/menu.cssnu�[���/*

index:

- utility
- general
- daext-items //The table that lists all the items
- daext-items icons //Icons for the daext-items table
- daext-tablenav //The pagination of the daext-items table
- daext-form //The form used to create and edit items
- daext-widget //The sidebar widget

*/

/* utility */

.daext-clearfix:after{
    visibility: hidden !important;
    display: block !important;
    font-size: 0 !important;
    content: " " !important;
    clear: both !important;
    height: 0 !important;
}
.daext-clearfix { display: inline-block !important; }
* html .daext-clearfix { height: 1% !important; }
.daext-clearfix { display: block !important; }

.daext-display-none{display: none;}

/* general */

#wpcontent {
    min-height: 1200px;
}

#daext-menu-wrapper{
    margin-top: 19px !important;
}

.display-none{
    display: none;
}

/* daext-items */

.daext-items-container{
    border: 1px solid #dfdfdf;
    border-radius: 3px;
}

table.daext-items{
    width: 100%;
    border-collapse: collapse;
}

table.daext-items > thead{
    background: #f7f7f7;
}

table.daext-items > tbody > tr{
    background: #fdfdfd !important;
}

table.daext-items > thead > tr > th{
    padding: 0;
    line-height: 28px;
    height: 28px;
    font-size: 12px;
    color: #333;
    font-weight: 600;
    font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
    padding: 3px 10px;
    text-align: left;
    border-bottom: 1px solid #dfdfdf;
    text-shadow: #fff 0px 1px 0px;
}

table.daext-items > tbody > tr > td{
    padding: 0;
    line-height: 28px;
    height: 28px;
    font-size: 12px;
    color: #555;
    font-weight: normal;
    font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
    padding: 3px 10px;
    text-align: left;
}

table.daext-items > thead > tr > th:not(:nth-of-type(1)){
    border-left: 1px solid #dfdfdf !important;
}

table.daext-items > tbody > tr > td:not(:nth-of-type(1)){
    border-left: 1px solid #e3e3e3 !important;
}

table.daext-items .shortcode{
    font-size: 11px !important;
    font-family: monospace !important;
    color: #fff;
    padding: 3px;
    background: #0073aa;
}

table.daext-items > tbody > tr:not(:last-child) > td{
    border-bottom: 1px solid #e3e3e3;
    background: #fdfdfd;
}

table.daext-items > tbody > tr > td > a{
    text-decoration: none;
}

table.daext-items .menu-icon{
    width: 20px !important;
    height: 20px !important;
    border: none !important;
    margin: 0 !important;
    padding: 0 !important;
    cursor: pointer !important;
    float: left !important;
    margin-top: 4px !important;
    margin-bottom: 4px !important;
}

table.daext-items .menu-icon.empty-icon{
    cursor: default !important;
}

table.daext-items .icons-container .menu-icon:not(:last-child){
    margin-right: 8px !important;
}

table.daext-items .edit{
    background: url("../../img/edit.png") 0 0 no-repeat !important;
}

table.daext-items .edit:hover{
    background: url("../../img/edit-hover.png") 0 0 no-repeat !important;
}

table.daext-items .delete{
    background: url("../../img/trash.png") 0 0 no-repeat !important;
}

table.daext-items .delete:hover{
    background: url("../../img/trash-hover.png") 0 0 no-repeat !important;
}

table.daext-items input[type="checkbox"]{
    border: 1px solid #ddd;
    box-shadow: none;
}

/* daext-header-wrapper */

#daext-header-wrapper h2{
    font-size: 23px;
    font-weight: 400;
    margin: 0;
    padding: 9px 0 4px;
    line-height: 29px;
    float: left;
}

#daext-search-form{
    float: right;
}

#daext-search-form p{
    margin: 14px 8px 6px 0;
    height: 22px;
    float: left;
    text-align: right;
    font-size: 12px;
    line-height: 22px;
    font-style: italic;
    color: #777;
}

#daext-search-form input[type="text"]{
    height: 24px;
    line-height: 16px;
    box-shadow: none;
    padding: 3px 5px;
    margin: 13px 0 5px;
    color: #333333;
    font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
    font-weight: normal;
    font-size: 12px !important;
    border-width: 1px 0 1px 1px;
}

#daext-search-form input[type="submit"]{
    background: url('../../img/search.png') 0 0 no-repeat !important;
    background-color: #1c71a6;
    height: 24px;
    box-shadow: none;
    display: block;
    width: 24px;
    float: right;
    padding: 0;
    border: 0;
    margin: 13px 0 5px;
    cursor: pointer;
}

#daext-search-form input[type="submit"]:hover{
    background: url('../../img/search-hover.png') 0 0 no-repeat !important;
}

#daext-filter-form{
    float: right;
    position: relative;
    margin-right: 8px;
}

#daext-filter-form p{
    margin: 14px 8px 6px 0;
    height: 22px;
    text-align: right;
    font-size: 12px;
    position: absolute;
    width: 180px;
    line-height: 22px;
    right: 180px;
    top: 0;
    font-style: italic;
    color: #777;
}

#daext-filter-form .chosen-container{
    margin: 13px 0 5px;
    min-width: 180px;
    max-width: 180px;
}

/* daext-tablenav */

.daext-tablenav-pages > *:not(:first-child){
    margin: 0 0 0 4px;
}

.daext-tablenav-pages > a{
    font-size: 12px !important;
    color: #888 !important;
    line-height: 25px;
    display: inline-block;
    padding: 0 10px !important;
    background: #f7f7f7;
    text-decoration: none;
}

.daext-tablenav-pages > a:not(.disabled):hover{
    color: #fff !important;
    background: #00a0d2;
}

.daext-tablenav-pages > .disabled{
    cursor: default;
    color: #ccc !important;
}

.daext-tablenav{
    margin-top: 11px;
    margin-bottom: 36px;
}

.daext-tablenav-pages{
    float: right;
    display: block;
    height: 30px;
}

.daext-tablenav .daext-displaying-num{
    margin-right: 2px;
    color: #777;
    font-size: 12px;
    font-style: italic;
}

/* daext-form */

.daext-form-container{
    border: 1px solid #dfdfdf;
    border-radius: 3px;
    width: 800px;
}

.daext-form-container *{
    font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
    font-weight: normal;
    font-size: 12px !important;
}

.daext-form-container input[type="text"]{
    height: 24px;
    line-height: 16px;
    box-shadow: none;
    padding: 3px 5px;
    margin: 0 !important;
}

.daext-form-container input[type="text"],
.daext-form-container select,
.daext-form-container textarea {
    color: #333 !important;
}

.daext-form-container #date{
    background: #fff;
    color: #333;
}

.daext-form-container textarea{
    resize: vertical;
    display: block;
}

.daext-form-container textarea, .daext-form-container select{
    box-shadow: none;
    margin: 0 !important;
}
.daext-form-container select{
    height: 24px;
    line-height: 24px;
}


.daext-form-title{
    line-height: 28px;
    height: 28px;
    font-size: 12px;
    color: #333;
    font-weight: 600;
    font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
    padding: 3px 10px;
    margin: 0;
    text-align: left;
    background: #f7f7f7;
    border-bottom: 1px solid #dfdfdf;
    text-shadow: #fff 0px 1px 0px;
}

.daext-form-action{
    line-height: 28px;
    height: 28px;
    font-size: 12px;
    color: #333;
    font-weight: 600;
    font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
    padding: 8px 10px;
    text-align: left;
    border-top: 1px solid #dedede;
    background: #f7f7f7;
    text-shadow: #fff 0px 1px 0px;
}

.daext-form-action > input.button{
    -webkit-box-shadow: none !important;
    -moz-box-shadow: none !important;
    box-shadow: none !important;
}

table.daext-form{
    border-collapse: collapse;
    background: #fdfdfd;
    width: 100%;
}

table.daext-form > tbody > tr > th {
    width: 260px !important;
}

table.daext-form > tbody > tr > td, table.daext-form > tbody > tr > th{
    padding: 8px;

}

table.daext-form > tbody > tr:not(:last-child) > td, table.daext-form > tbody > tr:not(:last-child) > th{
    border-bottom: 1px solid #e3e3e3;
}


table.daext-form > tbody > tr > th{
    text-align: right;
    padding-right: 8px;
    font-size: 12px;
    color: #555;
    position: relative;
}

table.daext-form > tbody > tr > th > label{
    height: 24px;
    line-height: 24px;
    display: block;
    overflow: hidden;
    position: absolute;
    right: 8px;
    top: 8px;
}

table.daext-form .image-uploader{
    max-width: 280px;
    padding: 8px;
    border: 1px solid #e5e5e5;
    background: #fff;
}

table.daext-form .image-uploader .selected-image{
    width: 100%;
    margin-bottom: 8px;
}

table.daext-form .image-uploader .button_add_media{
    display: block;
    cursor: pointer;
    text-decoration: underline;
}

table.daext-form .image-uploader p.description{
    margin: 0 !important;
    color: #777;
}

table.daext-form input[disabled], table.daext-form select[disabled]{
    color: #ccc !important;
    background: #f7f7f7 !important;
}

/* daext-widget */

.daext-widget *{
    font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
}

.daext-widget h3{
    color: #333;
}

.daext-widget label{
    color: #555;
}

.daext-widget{
    border: 1px solid #dfdfdf;
    margin-bottom: 20px;
}

.daext-widget-title{
    padding: 3px 10px;
    line-height: 28px;
    height: 28px;
    font-size: 12px;
    color: #333;
    font-weight: 600;
    border-bottom: 1px solid #dfdfdf;
    margin: 0;
    background: #f7f7f7;
    text-shadow: #fff 0px 1px 0px;
}

.daext-widget-content{
    padding: 8px 10px;
    background: #fff;
    font-size: 12px;
    background: #fdfdfd;
}

.daext-widget-content > h3{
    font-size: 12px;
    margin: 10px 0;
}

.daext-widget-content > h3:not(:nth-of-type(1)){
    margin-top: 18px;
}

.daext-widget-content > ul{
    margin: 10px 0 0 !important;
}

.daext-widget-content > ul > li{
    margin: 0;
    color: #555;
}

.daext-widget-content textarea{
    font-size: 12px;
    width: 100% !important;
    box-shadow: none;
    border: 1px solid #ddd;
    min-height: 60px;
    color: #999;
    margin: 10px 0 0 !important;
    overflow: auto;
    padding: 2px 6px;
    line-height: 1.4;
    color: #333;
    display: block;
}

.daext-widget-content input[type="text"]{
    display: block;
    margin-bottom: 10px;
    font-size: 12px;
    height: 24px;
    line-height: 16px;
    box-shadow: none;
    padding: 3px 5px;
    color: #333;
    border: 1px solid #ddd;
    width: 70px;
}

.daext-widget-content select{
    display: block;
    margin-bottom: 10px;
    font-size: 12px;
    height: 24px;
    line-height: 16px;
    box-shadow: none;
    padding: 3px 5px;
    color: #333;
    border: 1px solid #ddd;
    width: 140px;
}

.daext-widget-content > p{
    font-size: 12px;
    margin: 10px 0 9px;
    line-height: 18px;
}

.daext-widget-content > p:nth-of-type(6){
    margin-bottom: 14px;
}

.daext-widget-content > .separator{
    height: 10px;
    width: 100%;
}

.daext-widget-content > .separator-line{
    margin: 20px 0;
    border-bottom: 1px solid #f1f1f1;
    width: 100%;
}

.daext-widget-content input[type="checkbox"]{
    border-color: #e5e5e5;
    box-shadow: none;
    border: 1px solid #ddd;
}

.daext-widget-submit{
    background: #fff;
    padding: 8px 10px;
    border-top: 1px solid #dedede;
    background: #f7f7f7;
    padding: 8px 10px;
    line-height: 28px;
    height: 28px;
}

.daext-widget-submit input[type="submit"],
.daext-widget-submit input[type="button"]{
    box-shadow: none;
    font-size: 12px;
}

.daext-widget-content table td{
    padding: 0;
}

.daext-widget-content > table > tbody > tr > td:first-child{
    padding-right: 10px;
}

/* Color Picker adaptation to the interface style */
.wp-picker-container{
    display: inline-block !important;
}

.wp-picker-container > button{
    margin: 0 !important;
    box-shadow: none !important;
}

.wp-picker-container .wp-picker-clear{
    box-shadow: none !important;
}PK���[�a��!admin/assets/css/menu-sliding.cssnu�[���table.daext-items .icons-container{
    width: 48px !important;
    min-width: 48px !important;
}

.sidebar-container {
    margin-left: 20px;
    float: right;
    width: 280px;
}

#sliding-news-form-container {
    width: calc(100% - 300px);
    float: left;
}

.daext-form-container {
    width: 100%;
}

table.daext-form .image-uploader .selected-image{
    width: auto !important;
    height: 20px !important;
}

@media all and (max-width: 1322px) {
    #sliding-news-form-container{
        float: none;
    }
    .sidebar-container{
        float: none;
        margin-left: 0;
        margin-top: 19px;
    }
}PK���[fY��"admin/assets/css/menu-featured.cssnu�[���table.daext-items .icons-container{
    width: 48px !important;
    min-width: 48px !important;
}

.sidebar-container {
    margin-left: 20px;
    float: right;
    width: 280px;
}

#featured-news-form-container {
    width: calc(100% - 300px);
    float: left;
}

.daext-form-container {
    width: 100%;
}

@media all and (max-width: 1322px) {
    #featured-news-form-container{
        float: none;
    }
    .sidebar-container{
        float: none;
        margin-left: 0;
        margin-top: 19px;
    }
}PK���[ͤ�)&admin/assets/css/jquery-ui-tooltip.cssnu�[���/* general tooltip style ---------------------------------------------------- */
.ui-widget-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.ui-tooltip {
    background: #fff;
    padding: 13px 15px;
    position: absolute;
    z-index: 9999;
    max-width: 240px;
    -webkit-box-shadow: 0 3px 6px rgba(0,0,0,.075);
    box-shadow: 0 3px 6px rgba(0,0,0,.075);
    border: 1px solid #dfdfdf;
    font-size: 12px;
    color: #444;
    line-height: 18px;
    font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif !important;
}

body .ui-tooltip {
    border-width: 1px;
}

/* style for the help icon on the table .daext-items th ---------------------- */
table.daext-items > thead > tr > th > div.help-icon{
    background: url("../img/help-f7f7f7.png") 0 0 no-repeat !important;
    width: 20px !important;
    height: 20px !important;
    margin: 4px 0 4px 4px;
    display: inline-block;
}

table.daext-items > thead > tr > th > div:not(.help-icon){
    float: left;
}

table.daext-items > thead > tr > th > div.help-icon{
    float: right;
}

/* style for the .daext-form table td --------------------------------------- */
table.daext-form td > div.help-icon{
    background: url("../img/help-fdfdfd.png") 0 0 no-repeat !important;
    width: 20px !important;
    height: 20px !important;
    float: right;
    margin: 2px 0;
}

/* style for the #daext-options-wrapper td ---------------------------------- */
#daext-options-wrapper td > div.help-icon{
    background: url("../img/help-fdfdfd.png") 0 0 no-repeat !important;
    width: 20px !important;
    height: 20px !important;
    float: right;
    margin: 2px 0;
}


PK���[o�>��"admin/assets/css/chosen-custom.cssnu�[���.chosen-container,
.chosen-container-single,
.chosen-container-active,
.chosen-default,
.chosen-drop,
.chosen-single,
.chosen-search,
.chosen-results{
    font-size: 12px !important;
    background: #fff !important;
    border-color: #ddd !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: #333 !important;
}

.chosen-container .chosen-results li.highlighted{
    background: #0075a5 !important;
    color: #fff !important;
}

.chosen-container-single .chosen-default{
    border-color: #ddd !important;
    height: 24px;
    line-height: 22px !important;
}

.chosen-container-single .chosen-single{
    height: 24px !important;
}

.chosen-container-single .chosen-single span{
    line-height: 22px;
}

.chosen-container .chosen-results{
    max-height: 200px !important;
}

.chosen-container{
    min-width: 218px;
    max-width: 218px;
}

#daext-options-wrapper .chosen-container{
    min-width: 300px;
    max-width: 300px;
}PK���[�5����,admin/assets/inc/chosen/chosen-sprite@2x.pngnu�[����PNG


IHDRhJ�q��IDATh�횿o�@�#�P	� �����?!d�ԅ�sft⇿'R�J0�#[���Ɉ��+��������P����{R�W%����ދ��1�e,�J4�h��'�Y�2�Ny�H%?��/�4��
L�j�[��	-�85H�q���H�����qȱ�s���6�C+�%0��`QW�X����O�5��
�]:ڿ��h���Ig���7�oi����
1n� ���f���Hn�'
�!-��
hjh؝l�n��zH���A��oj��Q�FEæ�����hH
'��wԲt�c �8�H۪�/�4��
L�j��`$�8�� q�iD�S %N��9 �J�1Sp̶�;X�k}\kN[�[�t���������k�%��s�F<Uk��}dvǢ�W���b��?�O/n&�
�0p)/��Pyf'��~�|��|+a�C�˒�bKq��SB>��p��3�K�X��R~����C�gY�Ƭ��,�9���A%w;8Q�h�H�,�]n�p��Y��>�$�c
��)�ƒ�K�hw~��S�ʼn�q��P�*�w�Ҷ�����X�y{$���u�%�&�Z����'������(�8�؜��֜�b��ҍ၊�5R6�emP�0�<�F�-F��
i��#�	��z�H�|��Y��JZ�\N��IEND�B`�PK���[��r���"admin/assets/inc/chosen/LICENSE.mdnu�[���#### Chosen
- by Patrick Filler for [Harvest](http://getharvest.com)
- Copyright (c) 2011-2014 by Harvest

Available for use under the [MIT License](http://en.wikipedia.org/wiki/MIT_License)

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
PK���[.?L)admin/assets/inc/chosen/chosen-sprite.pngnu�[����PNG


IHDR4%��^�IDATH�헱kSQƯ
.-����=�$�b�o�$((T�Hw��*����"nupA�@ P�Apq�J$p!P��M1��.�����;���=��\D�.Y�n0��@}�DMF���>Fb��1���
�c�	!6�1r��b�%G���I��J(v��fFy�O����H4B c�1�}��^��4��5Fo��G�X�ٝv�U�n�(�R�s�p����v��*��8sP���*�c�O�TQWŬ���j1Q�H}����T��+���}��֕d�/���L�Lc�F�6�˔�7��,9ʼ1IkJ�(�dJj��Lc�^��z*"Hu�j)�׿���,?<��._1�a�������°x�	/b�}�T!�����i?O�u�	oc\������eN��c:�99�\@�s� uZ���q��|yp�k�a�����6��B|���1��G����gq�u����p�+���[�*y���IEND�B`�PK���[e�U���!admin/assets/inc/chosen/chosen.jsnu�[���/*!
Chosen, a Select Box Enhancer for jQuery and Prototype
by Patrick Filler for Harvest, http://getharvest.com

Version 1.2.0
Full source at https://github.com/harvesthq/chosen
Copyright (c) 2011-2014 Harvest http://getharvest.com

MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
This file is generated by `grunt build`, do not edit it by hand.
*/

(function() {
  var $, AbstractChosen, Chosen, SelectParser, _ref,
    __hasProp = {}.hasOwnProperty,
    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };

  SelectParser = (function() {
    function SelectParser() {
      this.options_index = 0;
      this.parsed = [];
    }

    SelectParser.prototype.add_node = function(child) {
      if (child.nodeName.toUpperCase() === "OPTGROUP") {
        return this.add_group(child);
      } else {
        return this.add_option(child);
      }
    };

    SelectParser.prototype.add_group = function(group) {
      var group_position, option, _i, _len, _ref, _results;
      group_position = this.parsed.length;
      this.parsed.push({
        array_index: group_position,
        group: true,
        label: this.escapeExpression(group.label),
        children: 0,
        disabled: group.disabled
      });
      _ref = group.childNodes;
      _results = [];
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
        option = _ref[_i];
        _results.push(this.add_option(option, group_position, group.disabled));
      }
      return _results;
    };

    SelectParser.prototype.add_option = function(option, group_position, group_disabled) {
      if (option.nodeName.toUpperCase() === "OPTION") {
        if (option.text !== "") {
          if (group_position != null) {
            this.parsed[group_position].children += 1;
          }
          this.parsed.push({
            array_index: this.parsed.length,
            options_index: this.options_index,
            value: option.value,
            text: option.text,
            html: option.innerHTML,
            selected: option.selected,
            disabled: group_disabled === true ? group_disabled : option.disabled,
            group_array_index: group_position,
            classes: option.className,
            style: option.style.cssText
          });
        } else {
          this.parsed.push({
            array_index: this.parsed.length,
            options_index: this.options_index,
            empty: true
          });
        }
        return this.options_index += 1;
      }
    };

    SelectParser.prototype.escapeExpression = function(text) {
      var map, unsafe_chars;
      if ((text == null) || text === false) {
        return "";
      }
      if (!/[\&\<\>\"\'\`]/.test(text)) {
        return text;
      }
      map = {
        "<": "&lt;",
        ">": "&gt;",
        '"': "&quot;",
        "'": "&#x27;",
        "`": "&#x60;"
      };
      unsafe_chars = /&(?!\w+;)|[\<\>\"\'\`]/g;
      return text.replace(unsafe_chars, function(chr) {
        return map[chr] || "&amp;";
      });
    };

    return SelectParser;

  })();

  SelectParser.select_to_array = function(select) {
    var child, parser, _i, _len, _ref;
    parser = new SelectParser();
    _ref = select.childNodes;
    for (_i = 0, _len = _ref.length; _i < _len; _i++) {
      child = _ref[_i];
      parser.add_node(child);
    }
    return parser.parsed;
  };

  AbstractChosen = (function() {
    function AbstractChosen(form_field, options) {
      this.form_field = form_field;
      this.options = options != null ? options : {};
      if (!AbstractChosen.browser_is_supported()) {
        return;
      }
      this.is_multiple = this.form_field.multiple;
      this.set_default_text();
      this.set_default_values();
      this.setup();
      this.set_up_html();
      this.register_observers();
    }

    AbstractChosen.prototype.set_default_values = function() {
      var _this = this;
      this.click_test_action = function(evt) {
        return _this.test_active_click(evt);
      };
      this.activate_action = function(evt) {
        return _this.activate_field(evt);
      };
      this.active_field = false;
      this.mouse_on_container = false;
      this.results_showing = false;
      this.result_highlighted = null;
      this.allow_single_deselect = (this.options.allow_single_deselect != null) && (this.form_field.options[0] != null) && this.form_field.options[0].text === "" ? this.options.allow_single_deselect : false;
      this.disable_search_threshold = this.options.disable_search_threshold || 0;
      this.disable_search = this.options.disable_search || false;
      this.enable_split_word_search = this.options.enable_split_word_search != null ? this.options.enable_split_word_search : true;
      this.group_search = this.options.group_search != null ? this.options.group_search : true;
      this.search_contains = this.options.search_contains || false;
      this.single_backstroke_delete = this.options.single_backstroke_delete != null ? this.options.single_backstroke_delete : true;
      this.max_selected_options = this.options.max_selected_options || Infinity;
      this.inherit_select_classes = this.options.inherit_select_classes || false;
      this.display_selected_options = this.options.display_selected_options != null ? this.options.display_selected_options : true;
      return this.display_disabled_options = this.options.display_disabled_options != null ? this.options.display_disabled_options : true;
    };

    AbstractChosen.prototype.set_default_text = function() {
      if (this.form_field.getAttribute("data-placeholder")) {
        this.default_text = this.form_field.getAttribute("data-placeholder");
      } else if (this.is_multiple) {
        this.default_text = this.options.placeholder_text_multiple || this.options.placeholder_text || AbstractChosen.default_multiple_text;
      } else {
        this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || AbstractChosen.default_single_text;
      }
      return this.results_none_found = this.form_field.getAttribute("data-no_results_text") || this.options.no_results_text || AbstractChosen.default_no_result_text;
    };

    AbstractChosen.prototype.mouse_enter = function() {
      return this.mouse_on_container = true;
    };

    AbstractChosen.prototype.mouse_leave = function() {
      return this.mouse_on_container = false;
    };

    AbstractChosen.prototype.input_focus = function(evt) {
      var _this = this;
      if (this.is_multiple) {
        if (!this.active_field) {
          return setTimeout((function() {
            return _this.container_mousedown();
          }), 50);
        }
      } else {
        if (!this.active_field) {
          return this.activate_field();
        }
      }
    };

    AbstractChosen.prototype.input_blur = function(evt) {
      var _this = this;
      if (!this.mouse_on_container) {
        this.active_field = false;
        return setTimeout((function() {
          return _this.blur_test();
        }), 100);
      }
    };

    AbstractChosen.prototype.results_option_build = function(options) {
      var content, data, _i, _len, _ref;
      content = '';
      _ref = this.results_data;
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
        data = _ref[_i];
        if (data.group) {
          content += this.result_add_group(data);
        } else {
          content += this.result_add_option(data);
        }
        if (options != null ? options.first : void 0) {
          if (data.selected && this.is_multiple) {
            this.choice_build(data);
          } else if (data.selected && !this.is_multiple) {
            this.single_set_selected_text(data.text);
          }
        }
      }
      return content;
    };

    AbstractChosen.prototype.result_add_option = function(option) {
      var classes, option_el;
      if (!option.search_match) {
        return '';
      }
      if (!this.include_option_in_results(option)) {
        return '';
      }
      classes = [];
      if (!option.disabled && !(option.selected && this.is_multiple)) {
        classes.push("active-result");
      }
      if (option.disabled && !(option.selected && this.is_multiple)) {
        classes.push("disabled-result");
      }
      if (option.selected) {
        classes.push("result-selected");
      }
      if (option.group_array_index != null) {
        classes.push("group-option");
      }
      if (option.classes !== "") {
        classes.push(option.classes);
      }
      option_el = document.createElement("li");
      option_el.className = classes.join(" ");
      option_el.style.cssText = option.style;
      option_el.setAttribute("data-option-array-index", option.array_index);
      option_el.innerHTML = option.search_text;
      return this.outerHTML(option_el);
    };

    AbstractChosen.prototype.result_add_group = function(group) {
      var group_el;
      if (!(group.search_match || group.group_match)) {
        return '';
      }
      if (!(group.active_options > 0)) {
        return '';
      }
      group_el = document.createElement("li");
      group_el.className = "group-result";
      group_el.innerHTML = group.search_text;
      return this.outerHTML(group_el);
    };

    AbstractChosen.prototype.results_update_field = function() {
      this.set_default_text();
      if (!this.is_multiple) {
        this.results_reset_cleanup();
      }
      this.result_clear_highlight();
      this.results_build();
      if (this.results_showing) {
        return this.winnow_results();
      }
    };

    AbstractChosen.prototype.reset_single_select_options = function() {
      var result, _i, _len, _ref, _results;
      _ref = this.results_data;
      _results = [];
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
        result = _ref[_i];
        if (result.selected) {
          _results.push(result.selected = false);
        } else {
          _results.push(void 0);
        }
      }
      return _results;
    };

    AbstractChosen.prototype.results_toggle = function() {
      if (this.results_showing) {
        return this.results_hide();
      } else {
        return this.results_show();
      }
    };

    AbstractChosen.prototype.results_search = function(evt) {
      if (this.results_showing) {
        return this.winnow_results();
      } else {
        return this.results_show();
      }
    };

    AbstractChosen.prototype.winnow_results = function() {
      var escapedSearchText, option, regex, results, results_group, searchText, startpos, text, zregex, _i, _len, _ref;
      this.no_results_clear();
      results = 0;
      searchText = this.get_search_text();
      escapedSearchText = searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
      zregex = new RegExp(escapedSearchText, 'i');
      regex = this.get_search_regex(escapedSearchText);
      _ref = this.results_data;
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
        option = _ref[_i];
        option.search_match = false;
        results_group = null;
        if (this.include_option_in_results(option)) {
          if (option.group) {
            option.group_match = false;
            option.active_options = 0;
          }
          if ((option.group_array_index != null) && this.results_data[option.group_array_index]) {
            results_group = this.results_data[option.group_array_index];
            if (results_group.active_options === 0 && results_group.search_match) {
              results += 1;
            }
            results_group.active_options += 1;
          }
          if (!(option.group && !this.group_search)) {
            option.search_text = option.group ? option.label : option.text;
            option.search_match = this.search_string_match(option.search_text, regex);
            if (option.search_match && !option.group) {
              results += 1;
            }
            if (option.search_match) {
              if (searchText.length) {
                startpos = option.search_text.search(zregex);
                text = option.search_text.substr(0, startpos + searchText.length) + '</em>' + option.search_text.substr(startpos + searchText.length);
                option.search_text = text.substr(0, startpos) + '<em>' + text.substr(startpos);
              }
              if (results_group != null) {
                results_group.group_match = true;
              }
            } else if ((option.group_array_index != null) && this.results_data[option.group_array_index].search_match) {
              option.search_match = true;
            }
          }
        }
      }
      this.result_clear_highlight();
      if (results < 1 && searchText.length) {
        this.update_results_content("");
        return this.no_results(searchText);
      } else {
        this.update_results_content(this.results_option_build());
        return this.winnow_results_set_highlight();
      }
    };

    AbstractChosen.prototype.get_search_regex = function(escaped_search_string) {
      var regex_anchor;
      regex_anchor = this.search_contains ? "" : "^";
      return new RegExp(regex_anchor + escaped_search_string, 'i');
    };

    AbstractChosen.prototype.search_string_match = function(search_string, regex) {
      var part, parts, _i, _len;
      if (regex.test(search_string)) {
        return true;
      } else if (this.enable_split_word_search && (search_string.indexOf(" ") >= 0 || search_string.indexOf("[") === 0)) {
        parts = search_string.replace(/\[|\]/g, "").split(" ");
        if (parts.length) {
          for (_i = 0, _len = parts.length; _i < _len; _i++) {
            part = parts[_i];
            if (regex.test(part)) {
              return true;
            }
          }
        }
      }
    };

    AbstractChosen.prototype.choices_count = function() {
      var option, _i, _len, _ref;
      if (this.selected_option_count != null) {
        return this.selected_option_count;
      }
      this.selected_option_count = 0;
      _ref = this.form_field.options;
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
        option = _ref[_i];
        if (option.selected) {
          this.selected_option_count += 1;
        }
      }
      return this.selected_option_count;
    };

    AbstractChosen.prototype.choices_click = function(evt) {
      evt.preventDefault();
      if (!(this.results_showing || this.is_disabled)) {
        return this.results_show();
      }
    };

    AbstractChosen.prototype.keyup_checker = function(evt) {
      var stroke, _ref;
      stroke = (_ref = evt.which) != null ? _ref : evt.keyCode;
      this.search_field_scale();
      switch (stroke) {
        case 8:
          if (this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) {
            return this.keydown_backstroke();
          } else if (!this.pending_backstroke) {
            this.result_clear_highlight();
            return this.results_search();
          }
          break;
        case 13:
          evt.preventDefault();
          if (this.results_showing) {
            return this.result_select(evt);
          }
          break;
        case 27:
          if (this.results_showing) {
            this.results_hide();
          }
          return true;
        case 9:
        case 38:
        case 40:
        case 16:
        case 91:
        case 17:
          break;
        default:
          return this.results_search();
      }
    };

    AbstractChosen.prototype.clipboard_event_checker = function(evt) {
      var _this = this;
      return setTimeout((function() {
        return _this.results_search();
      }), 50);
    };

    AbstractChosen.prototype.container_width = function() {
      if (this.options.width != null) {
        return this.options.width;
      } else {
        return "" + this.form_field.offsetWidth + "px";
      }
    };

    AbstractChosen.prototype.include_option_in_results = function(option) {
      if (this.is_multiple && (!this.display_selected_options && option.selected)) {
        return false;
      }
      if (!this.display_disabled_options && option.disabled) {
        return false;
      }
      if (option.empty) {
        return false;
      }
      return true;
    };

    AbstractChosen.prototype.search_results_touchstart = function(evt) {
      this.touch_started = true;
      return this.search_results_mouseover(evt);
    };

    AbstractChosen.prototype.search_results_touchmove = function(evt) {
      this.touch_started = false;
      return this.search_results_mouseout(evt);
    };

    AbstractChosen.prototype.search_results_touchend = function(evt) {
      if (this.touch_started) {
        return this.search_results_mouseup(evt);
      }
    };

    AbstractChosen.prototype.outerHTML = function(element) {
      var tmp;
      if (element.outerHTML) {
        return element.outerHTML;
      }
      tmp = document.createElement("div");
      tmp.appendChild(element);
      return tmp.innerHTML;
    };

    AbstractChosen.browser_is_supported = function() {
      if (window.navigator.appName === "Microsoft Internet Explorer") {
        return document.documentMode >= 8;
      }
      if (/iP(od|hone)/i.test(window.navigator.userAgent)) {
        return false;
      }
      if (/Android/i.test(window.navigator.userAgent)) {
        if (/Mobile/i.test(window.navigator.userAgent)) {
          return false;
        }
      }
      return true;
    };

    AbstractChosen.default_multiple_text = "Select Some Options";

    AbstractChosen.default_single_text = "Select an Option";

    AbstractChosen.default_no_result_text = "No results match";

    return AbstractChosen;

  })();

  $ = jQuery;

  $.fn.extend({
    chosen: function(options) {
      if (!AbstractChosen.browser_is_supported()) {
        return this;
      }
      return this.each(function(input_field) {
        var $this, chosen;
        $this = $(this);
        chosen = $this.data('chosen');
        if (options === 'destroy' && chosen instanceof Chosen) {
          chosen.destroy();
        } else if (!(chosen instanceof Chosen)) {
          $this.data('chosen', new Chosen(this, options));
        }
      });
    }
  });

  Chosen = (function(_super) {
    __extends(Chosen, _super);

    function Chosen() {
      _ref = Chosen.__super__.constructor.apply(this, arguments);
      return _ref;
    }

    Chosen.prototype.setup = function() {
      this.form_field_jq = $(this.form_field);
      this.current_selectedIndex = this.form_field.selectedIndex;
      return this.is_rtl = this.form_field_jq.hasClass("chosen-rtl");
    };

    Chosen.prototype.set_up_html = function() {
      var container_classes, container_props;
      container_classes = ["chosen-container"];
      container_classes.push("chosen-container-" + (this.is_multiple ? "multi" : "single"));
      if (this.inherit_select_classes && this.form_field.className) {
        container_classes.push(this.form_field.className);
      }
      if (this.is_rtl) {
        container_classes.push("chosen-rtl");
      }
      container_props = {
        'class': container_classes.join(' '),
        'style': "width: " + (this.container_width()) + ";",
        'title': this.form_field.title
      };
      if (this.form_field.id.length) {
        container_props.id = this.form_field.id.replace(/[^\w]/g, '_') + "_chosen";
      }
      this.container = $("<div />", container_props);
      if (this.is_multiple) {
        this.container.html('<ul class="chosen-choices"><li class="search-field"><input type="text" value="' + this.default_text + '" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chosen-drop"><ul class="chosen-results"></ul></div>');
      } else {
        this.container.html('<a class="chosen-single chosen-default" tabindex="-1"><span>' + this.default_text + '</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off" /></div><ul class="chosen-results"></ul></div>');
      }
      this.form_field_jq.hide().after(this.container);
      this.dropdown = this.container.find('div.chosen-drop').first();
      this.search_field = this.container.find('input').first();
      this.search_results = this.container.find('ul.chosen-results').first();
      this.search_field_scale();
      this.search_no_results = this.container.find('li.no-results').first();
      if (this.is_multiple) {
        this.search_choices = this.container.find('ul.chosen-choices').first();
        this.search_container = this.container.find('li.search-field').first();
      } else {
        this.search_container = this.container.find('div.chosen-search').first();
        this.selected_item = this.container.find('.chosen-single').first();
      }
      this.results_build();
      this.set_tab_index();
      this.set_label_behavior();
      return this.form_field_jq.trigger("chosen:ready", {
        chosen: this
      });
    };

    Chosen.prototype.register_observers = function() {
      var _this = this;
      this.container.bind('touchstart.chosen', function(evt) {
        _this.container_mousedown(evt);
      });
      this.container.bind('touchend.chosen', function(evt) {
        _this.container_mouseup(evt);
      });
      this.container.bind('mousedown.chosen', function(evt) {
        _this.container_mousedown(evt);
      });
      this.container.bind('mouseup.chosen', function(evt) {
        _this.container_mouseup(evt);
      });
      this.container.bind('mouseenter.chosen', function(evt) {
        _this.mouse_enter(evt);
      });
      this.container.bind('mouseleave.chosen', function(evt) {
        _this.mouse_leave(evt);
      });
      this.search_results.bind('mouseup.chosen', function(evt) {
        _this.search_results_mouseup(evt);
      });
      this.search_results.bind('mouseover.chosen', function(evt) {
        _this.search_results_mouseover(evt);
      });
      this.search_results.bind('mouseout.chosen', function(evt) {
        _this.search_results_mouseout(evt);
      });
      this.search_results.bind('mousewheel.chosen DOMMouseScroll.chosen', function(evt) {
        _this.search_results_mousewheel(evt);
      });
      this.search_results.bind('touchstart.chosen', function(evt) {
        _this.search_results_touchstart(evt);
      });
      this.search_results.bind('touchmove.chosen', function(evt) {
        _this.search_results_touchmove(evt);
      });
      this.search_results.bind('touchend.chosen', function(evt) {
        _this.search_results_touchend(evt);
      });
      this.form_field_jq.bind("chosen:updated.chosen", function(evt) {
        _this.results_update_field(evt);
      });
      this.form_field_jq.bind("chosen:activate.chosen", function(evt) {
        _this.activate_field(evt);
      });
      this.form_field_jq.bind("chosen:open.chosen", function(evt) {
        _this.container_mousedown(evt);
      });
      this.form_field_jq.bind("chosen:close.chosen", function(evt) {
        _this.input_blur(evt);
      });
      this.search_field.bind('blur.chosen', function(evt) {
        _this.input_blur(evt);
      });
      this.search_field.bind('keyup.chosen', function(evt) {
        _this.keyup_checker(evt);
      });
      this.search_field.bind('keydown.chosen', function(evt) {
        _this.keydown_checker(evt);
      });
      this.search_field.bind('focus.chosen', function(evt) {
        _this.input_focus(evt);
      });
      this.search_field.bind('cut.chosen', function(evt) {
        _this.clipboard_event_checker(evt);
      });
      this.search_field.bind('paste.chosen', function(evt) {
        _this.clipboard_event_checker(evt);
      });
      if (this.is_multiple) {
        return this.search_choices.bind('click.chosen', function(evt) {
          _this.choices_click(evt);
        });
      } else {
        return this.container.bind('click.chosen', function(evt) {
          evt.preventDefault();
        });
      }
    };

    Chosen.prototype.destroy = function() {
      $(this.container[0].ownerDocument).unbind("click.chosen", this.click_test_action);
      if (this.search_field[0].tabIndex) {
        this.form_field_jq[0].tabIndex = this.search_field[0].tabIndex;
      }
      this.container.remove();
      this.form_field_jq.removeData('chosen');
      return this.form_field_jq.show();
    };

    Chosen.prototype.search_field_disabled = function() {
      this.is_disabled = this.form_field_jq[0].disabled;
      if (this.is_disabled) {
        this.container.addClass('chosen-disabled');
        this.search_field[0].disabled = true;
        if (!this.is_multiple) {
          this.selected_item.unbind("focus.chosen", this.activate_action);
        }
        return this.close_field();
      } else {
        this.container.removeClass('chosen-disabled');
        this.search_field[0].disabled = false;
        if (!this.is_multiple) {
          return this.selected_item.bind("focus.chosen", this.activate_action);
        }
      }
    };

    Chosen.prototype.container_mousedown = function(evt) {
      if (!this.is_disabled) {
        if (evt && evt.type === "mousedown" && !this.results_showing) {
          evt.preventDefault();
        }
        if (!((evt != null) && ($(evt.target)).hasClass("search-choice-close"))) {
          if (!this.active_field) {
            if (this.is_multiple) {
              this.search_field.val("");
            }
            $(this.container[0].ownerDocument).bind('click.chosen', this.click_test_action);
            this.results_show();
          } else if (!this.is_multiple && evt && (($(evt.target)[0] === this.selected_item[0]) || $(evt.target).parents("a.chosen-single").length)) {
            evt.preventDefault();
            this.results_toggle();
          }
          return this.activate_field();
        }
      }
    };

    Chosen.prototype.container_mouseup = function(evt) {
      if (evt.target.nodeName === "ABBR" && !this.is_disabled) {
        return this.results_reset(evt);
      }
    };

    Chosen.prototype.search_results_mousewheel = function(evt) {
      var delta;
      if (evt.originalEvent) {
        delta = evt.originalEvent.deltaY || -evt.originalEvent.wheelDelta || evt.originalEvent.detail;
      }
      if (delta != null) {
        evt.preventDefault();
        if (evt.type === 'DOMMouseScroll') {
          delta = delta * 40;
        }
        return this.search_results.scrollTop(delta + this.search_results.scrollTop());
      }
    };

    Chosen.prototype.blur_test = function(evt) {
      if (!this.active_field && this.container.hasClass("chosen-container-active")) {
        return this.close_field();
      }
    };

    Chosen.prototype.close_field = function() {
      $(this.container[0].ownerDocument).unbind("click.chosen", this.click_test_action);
      this.active_field = false;
      this.results_hide();
      this.container.removeClass("chosen-container-active");
      this.clear_backstroke();
      this.show_search_field_default();
      return this.search_field_scale();
    };

    Chosen.prototype.activate_field = function() {
      this.container.addClass("chosen-container-active");
      this.active_field = true;
      this.search_field.val(this.search_field.val());
      return this.search_field.focus();
    };

    Chosen.prototype.test_active_click = function(evt) {
      var active_container;
      active_container = $(evt.target).closest('.chosen-container');
      if (active_container.length && this.container[0] === active_container[0]) {
        return this.active_field = true;
      } else {
        return this.close_field();
      }
    };

    Chosen.prototype.results_build = function() {
      this.parsing = true;
      this.selected_option_count = null;
      this.results_data = SelectParser.select_to_array(this.form_field);
      if (this.is_multiple) {
        this.search_choices.find("li.search-choice").remove();
      } else if (!this.is_multiple) {
        this.single_set_selected_text();
        if (this.disable_search || this.form_field.options.length <= this.disable_search_threshold) {
          this.search_field[0].readOnly = true;
          this.container.addClass("chosen-container-single-nosearch");
        } else {
          this.search_field[0].readOnly = false;
          this.container.removeClass("chosen-container-single-nosearch");
        }
      }
      this.update_results_content(this.results_option_build({
        first: true
      }));
      this.search_field_disabled();
      this.show_search_field_default();
      this.search_field_scale();
      return this.parsing = false;
    };

    Chosen.prototype.result_do_highlight = function(el) {
      var high_bottom, high_top, maxHeight, visible_bottom, visible_top;
      if (el.length) {
        this.result_clear_highlight();
        this.result_highlight = el;
        this.result_highlight.addClass("highlighted");
        maxHeight = parseInt(this.search_results.css("maxHeight"), 10);
        visible_top = this.search_results.scrollTop();
        visible_bottom = maxHeight + visible_top;
        high_top = this.result_highlight.position().top + this.search_results.scrollTop();
        high_bottom = high_top + this.result_highlight.outerHeight();
        if (high_bottom >= visible_bottom) {
          return this.search_results.scrollTop((high_bottom - maxHeight) > 0 ? high_bottom - maxHeight : 0);
        } else if (high_top < visible_top) {
          return this.search_results.scrollTop(high_top);
        }
      }
    };

    Chosen.prototype.result_clear_highlight = function() {
      if (this.result_highlight) {
        this.result_highlight.removeClass("highlighted");
      }
      return this.result_highlight = null;
    };

    Chosen.prototype.results_show = function() {
      if (this.is_multiple && this.max_selected_options <= this.choices_count()) {
        this.form_field_jq.trigger("chosen:maxselected", {
          chosen: this
        });
        return false;
      }
      this.container.addClass("chosen-with-drop");
      this.results_showing = true;
      this.search_field.focus();
      this.search_field.val(this.search_field.val());
      this.winnow_results();
      return this.form_field_jq.trigger("chosen:showing_dropdown", {
        chosen: this
      });
    };

    Chosen.prototype.update_results_content = function(content) {
      return this.search_results.html(content);
    };

    Chosen.prototype.results_hide = function() {
      if (this.results_showing) {
        this.result_clear_highlight();
        this.container.removeClass("chosen-with-drop");
        this.form_field_jq.trigger("chosen:hiding_dropdown", {
          chosen: this
        });
      }
      return this.results_showing = false;
    };

    Chosen.prototype.set_tab_index = function(el) {
      var ti;
      if (this.form_field.tabIndex) {
        ti = this.form_field.tabIndex;
        this.form_field.tabIndex = -1;
        return this.search_field[0].tabIndex = ti;
      }
    };

    Chosen.prototype.set_label_behavior = function() {
      var _this = this;
      this.form_field_label = this.form_field_jq.parents("label");
      if (!this.form_field_label.length && this.form_field.id.length) {
        this.form_field_label = $("label[for='" + this.form_field.id + "']");
      }
      if (this.form_field_label.length > 0) {
        return this.form_field_label.bind('click.chosen', function(evt) {
          if (_this.is_multiple) {
            return _this.container_mousedown(evt);
          } else {
            return _this.activate_field();
          }
        });
      }
    };

    Chosen.prototype.show_search_field_default = function() {
      if (this.is_multiple && this.choices_count() < 1 && !this.active_field) {
        this.search_field.val(this.default_text);
        return this.search_field.addClass("default");
      } else {
        this.search_field.val("");
        return this.search_field.removeClass("default");
      }
    };

    Chosen.prototype.search_results_mouseup = function(evt) {
      var target;
      target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first();
      if (target.length) {
        this.result_highlight = target;
        this.result_select(evt);
        return this.search_field.focus();
      }
    };

    Chosen.prototype.search_results_mouseover = function(evt) {
      var target;
      target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first();
      if (target) {
        return this.result_do_highlight(target);
      }
    };

    Chosen.prototype.search_results_mouseout = function(evt) {
      if ($(evt.target).hasClass("active-result" || $(evt.target).parents('.active-result').first())) {
        return this.result_clear_highlight();
      }
    };

    Chosen.prototype.choice_build = function(item) {
      var choice, close_link,
        _this = this;
      choice = $('<li />', {
        "class": "search-choice"
      }).html("<span>" + item.html + "</span>");
      if (item.disabled) {
        choice.addClass('search-choice-disabled');
      } else {
        close_link = $('<a />', {
          "class": 'search-choice-close',
          'data-option-array-index': item.array_index
        });
        close_link.bind('click.chosen', function(evt) {
          return _this.choice_destroy_link_click(evt);
        });
        choice.append(close_link);
      }
      return this.search_container.before(choice);
    };

    Chosen.prototype.choice_destroy_link_click = function(evt) {
      evt.preventDefault();
      evt.stopPropagation();
      if (!this.is_disabled) {
        return this.choice_destroy($(evt.target));
      }
    };

    Chosen.prototype.choice_destroy = function(link) {
      if (this.result_deselect(link[0].getAttribute("data-option-array-index"))) {
        this.show_search_field_default();
        if (this.is_multiple && this.choices_count() > 0 && this.search_field.val().length < 1) {
          this.results_hide();
        }
        link.parents('li').first().remove();
        return this.search_field_scale();
      }
    };

    Chosen.prototype.results_reset = function() {
      this.reset_single_select_options();
      this.form_field.options[0].selected = true;
      this.single_set_selected_text();
      this.show_search_field_default();
      this.results_reset_cleanup();
      this.form_field_jq.trigger("change");
      if (this.active_field) {
        return this.results_hide();
      }
    };

    Chosen.prototype.results_reset_cleanup = function() {
      this.current_selectedIndex = this.form_field.selectedIndex;
      return this.selected_item.find("abbr").remove();
    };

    Chosen.prototype.result_select = function(evt) {
      var high, item;
      if (this.result_highlight) {
        high = this.result_highlight;
        this.result_clear_highlight();
        if (this.is_multiple && this.max_selected_options <= this.choices_count()) {
          this.form_field_jq.trigger("chosen:maxselected", {
            chosen: this
          });
          return false;
        }
        if (this.is_multiple) {
          high.removeClass("active-result");
        } else {
          this.reset_single_select_options();
        }
        item = this.results_data[high[0].getAttribute("data-option-array-index")];
        item.selected = true;
        this.form_field.options[item.options_index].selected = true;
        this.selected_option_count = null;
        if (this.is_multiple) {
          this.choice_build(item);
        } else {
          this.single_set_selected_text(item.text);
        }
        if (!((evt.metaKey || evt.ctrlKey) && this.is_multiple)) {
          this.results_hide();
        }
        this.search_field.val("");
        if (this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex) {
          this.form_field_jq.trigger("change", {
            'selected': this.form_field.options[item.options_index].value
          });
        }
        this.current_selectedIndex = this.form_field.selectedIndex;
        return this.search_field_scale();
      }
    };

    Chosen.prototype.single_set_selected_text = function(text) {
      if (text == null) {
        text = this.default_text;
      }
      if (text === this.default_text) {
        this.selected_item.addClass("chosen-default");
      } else {
        this.single_deselect_control_build();
        this.selected_item.removeClass("chosen-default");
      }
      return this.selected_item.find("span").text(text);
    };

    Chosen.prototype.result_deselect = function(pos) {
      var result_data;
      result_data = this.results_data[pos];
      if (!this.form_field.options[result_data.options_index].disabled) {
        result_data.selected = false;
        this.form_field.options[result_data.options_index].selected = false;
        this.selected_option_count = null;
        this.result_clear_highlight();
        if (this.results_showing) {
          this.winnow_results();
        }
        this.form_field_jq.trigger("change", {
          deselected: this.form_field.options[result_data.options_index].value
        });
        this.search_field_scale();
        return true;
      } else {
        return false;
      }
    };

    Chosen.prototype.single_deselect_control_build = function() {
      if (!this.allow_single_deselect) {
        return;
      }
      if (!this.selected_item.find("abbr").length) {
        this.selected_item.find("span").first().after("<abbr class=\"search-choice-close\"></abbr>");
      }
      return this.selected_item.addClass("chosen-single-with-deselect");
    };

    Chosen.prototype.get_search_text = function() {
      if (this.search_field.val() === this.default_text) {
        return "";
      } else {
        return $('<div/>').text($.trim(this.search_field.val())).html();
      }
    };

    Chosen.prototype.winnow_results_set_highlight = function() {
      var do_high, selected_results;
      selected_results = !this.is_multiple ? this.search_results.find(".result-selected.active-result") : [];
      do_high = selected_results.length ? selected_results.first() : this.search_results.find(".active-result").first();
      if (do_high != null) {
        return this.result_do_highlight(do_high);
      }
    };

    Chosen.prototype.no_results = function(terms) {
      var no_results_html;
      no_results_html = $('<li class="no-results">' + this.results_none_found + ' "<span></span>"</li>');
      no_results_html.find("span").first().html(terms);
      this.search_results.append(no_results_html);
      return this.form_field_jq.trigger("chosen:no_results", {
        chosen: this
      });
    };

    Chosen.prototype.no_results_clear = function() {
      return this.search_results.find(".no-results").remove();
    };

    Chosen.prototype.keydown_arrow = function() {
      var next_sib;
      if (this.results_showing && this.result_highlight) {
        next_sib = this.result_highlight.nextAll("li.active-result").first();
        if (next_sib) {
          return this.result_do_highlight(next_sib);
        }
      } else {
        return this.results_show();
      }
    };

    Chosen.prototype.keyup_arrow = function() {
      var prev_sibs;
      if (!this.results_showing && !this.is_multiple) {
        return this.results_show();
      } else if (this.result_highlight) {
        prev_sibs = this.result_highlight.prevAll("li.active-result");
        if (prev_sibs.length) {
          return this.result_do_highlight(prev_sibs.first());
        } else {
          if (this.choices_count() > 0) {
            this.results_hide();
          }
          return this.result_clear_highlight();
        }
      }
    };

    Chosen.prototype.keydown_backstroke = function() {
      var next_available_destroy;
      if (this.pending_backstroke) {
        this.choice_destroy(this.pending_backstroke.find("a").first());
        return this.clear_backstroke();
      } else {
        next_available_destroy = this.search_container.siblings("li.search-choice").last();
        if (next_available_destroy.length && !next_available_destroy.hasClass("search-choice-disabled")) {
          this.pending_backstroke = next_available_destroy;
          if (this.single_backstroke_delete) {
            return this.keydown_backstroke();
          } else {
            return this.pending_backstroke.addClass("search-choice-focus");
          }
        }
      }
    };

    Chosen.prototype.clear_backstroke = function() {
      if (this.pending_backstroke) {
        this.pending_backstroke.removeClass("search-choice-focus");
      }
      return this.pending_backstroke = null;
    };

    Chosen.prototype.keydown_checker = function(evt) {
      var stroke, _ref1;
      stroke = (_ref1 = evt.which) != null ? _ref1 : evt.keyCode;
      this.search_field_scale();
      if (stroke !== 8 && this.pending_backstroke) {
        this.clear_backstroke();
      }
      switch (stroke) {
        case 8:
          this.backstroke_length = this.search_field.val().length;
          break;
        case 9:
          if (this.results_showing && !this.is_multiple) {
            this.result_select(evt);
          }
          this.mouse_on_container = false;
          break;
        case 13:
          if (this.results_showing) {
            evt.preventDefault();
          }
          break;
        case 32:
          if (this.disable_search) {
            evt.preventDefault();
          }
          break;
        case 38:
          evt.preventDefault();
          this.keyup_arrow();
          break;
        case 40:
          evt.preventDefault();
          this.keydown_arrow();
          break;
      }
    };

    Chosen.prototype.search_field_scale = function() {
      var div, f_width, h, style, style_block, styles, w, _i, _len;
      if (this.is_multiple) {
        h = 0;
        w = 0;
        style_block = "position:absolute; left: -1000px; top: -1000px; display:none;";
        styles = ['font-size', 'font-style', 'font-weight', 'font-family', 'line-height', 'text-transform', 'letter-spacing'];
        for (_i = 0, _len = styles.length; _i < _len; _i++) {
          style = styles[_i];
          style_block += style + ":" + this.search_field.css(style) + ";";
        }
        div = $('<div />', {
          'style': style_block
        });
        div.text(this.search_field.val());
        $('body').append(div);
        w = div.width() + 25;
        div.remove();
        f_width = this.container.outerWidth();
        if (w > f_width - 10) {
          w = f_width - 10;
        }
        return this.search_field.css({
          'width': w + 'px'
        });
      }
    };

    return Chosen;

  })(AbstractChosen);

}).call(this);
PK���[d���4444"admin/assets/inc/chosen/chosen.cssnu�[���/*!
Chosen, a Select Box Enhancer for jQuery and Prototype
by Patrick Filler for Harvest, http://getharvest.com

Version 1.2.0
Full source at https://github.com/harvesthq/chosen
Copyright (c) 2011-2014 Harvest http://getharvest.com

MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
This file is generated by `grunt build`, do not edit it by hand.
*/

/* @group Base */
.chosen-container {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  font-size: 13px;
  zoom: 1;
  *display: inline;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
.chosen-container * {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
.chosen-container .chosen-drop {
  position: absolute;
  top: 100%;
  left: -9999px;
  z-index: 1010;
  width: 100%;
  border: 1px solid #aaa;
  border-top: 0;
  background: #fff;
  box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
}
.chosen-container.chosen-with-drop .chosen-drop {
  left: 0;
}
.chosen-container a {
  cursor: pointer;
}

/* @end */
/* @group Single Chosen */
.chosen-container-single .chosen-single {
  position: relative;
  display: block;
  overflow: hidden;
  padding: 0 0 0 8px;
  height: 25px;
  border: 1px solid #aaa;
  border-radius: 5px;
  background-color: #fff;
  background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #ffffff), color-stop(50%, #f6f6f6), color-stop(52%, #eeeeee), color-stop(100%, #f4f4f4));
  background: -webkit-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
  background: -moz-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
  background: -o-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
  background: linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
  background-clip: padding-box;
  box-shadow: 0 0 3px white inset, 0 1px 1px rgba(0, 0, 0, 0.1);
  color: #444;
  text-decoration: none;
  white-space: nowrap;
  line-height: 24px;
}
.chosen-container-single .chosen-default {
  color: #999;
}
.chosen-container-single .chosen-single span {
  display: block;
  overflow: hidden;
  margin-right: 26px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.chosen-container-single .chosen-single-with-deselect span {
  margin-right: 38px;
}
.chosen-container-single .chosen-single abbr {
  position: absolute;
  top: 6px;
  right: 26px;
  display: block;
  width: 12px;
  height: 12px;
  background: url('chosen-sprite.png') -42px 1px no-repeat;
  font-size: 1px;
}
.chosen-container-single .chosen-single abbr:hover {
  background-position: -42px -10px;
}
.chosen-container-single.chosen-disabled .chosen-single abbr:hover {
  background-position: -42px -10px;
}
.chosen-container-single .chosen-single div {
  position: absolute;
  top: 0;
  right: 0;
  display: block;
  width: 18px;
  height: 100%;
}
.chosen-container-single .chosen-single div b {
  display: block;
  width: 100%;
  height: 100%;
  background: url('chosen-sprite.png') no-repeat 0px 2px;
}
.chosen-container-single .chosen-search {
  position: relative;
  z-index: 1010;
  margin: 0;
  padding: 3px 4px;
  white-space: nowrap;
}
.chosen-container-single .chosen-search input[type="text"] {
  margin: 1px 0;
  padding: 4px 20px 4px 5px;
  width: 100%;
  height: auto;
  outline: 0;
  border: 1px solid #aaa;
  background: white url('chosen-sprite.png') no-repeat 100% -20px;
  background: url('chosen-sprite.png') no-repeat 100% -20px;
  font-size: 1em;
  font-family: sans-serif;
  line-height: normal;
  border-radius: 0;
}
.chosen-container-single .chosen-drop {
  margin-top: -1px;
  border-radius: 0 0 4px 4px;
  background-clip: padding-box;
}
.chosen-container-single.chosen-container-single-nosearch .chosen-search {
  position: absolute;
  left: -9999px;
}

/* @end */
/* @group Results */
.chosen-container .chosen-results {
  color: #444;
  position: relative;
  overflow-x: hidden;
  overflow-y: auto;
  margin: 0 4px 4px 0;
  padding: 0 0 0 4px;
  max-height: 240px;
  -webkit-overflow-scrolling: touch;
}
.chosen-container .chosen-results li {
  display: none;
  margin: 0;
  padding: 5px 6px;
  list-style: none;
  line-height: 15px;
  word-wrap: break-word;
  -webkit-touch-callout: none;
}
.chosen-container .chosen-results li.active-result {
  display: list-item;
  cursor: pointer;
}
.chosen-container .chosen-results li.disabled-result {
  display: list-item;
  color: #ccc;
  cursor: default;
}
.chosen-container .chosen-results li.highlighted {
  background-color: #3875d7;
  background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #3875d7), color-stop(90%, #2a62bc));
  background-image: -webkit-linear-gradient(#3875d7 20%, #2a62bc 90%);
  background-image: -moz-linear-gradient(#3875d7 20%, #2a62bc 90%);
  background-image: -o-linear-gradient(#3875d7 20%, #2a62bc 90%);
  background-image: linear-gradient(#3875d7 20%, #2a62bc 90%);
  color: #fff;
}
.chosen-container .chosen-results li.no-results {
  color: #777;
  display: list-item;
  background: #f4f4f4;
}
.chosen-container .chosen-results li.group-result {
  display: list-item;
  font-weight: bold;
  cursor: default;
}
.chosen-container .chosen-results li.group-option {
  padding-left: 15px;
}
.chosen-container .chosen-results li em {
  font-style: normal;
  text-decoration: underline;
}

/* @end */
/* @group Multi Chosen */
.chosen-container-multi .chosen-choices {
  position: relative;
  overflow: hidden;
  margin: 0;
  padding: 0 5px;
  width: 100%;
  height: auto !important;
  height: 1%;
  border: 1px solid #aaa;
  background-color: #fff;
  background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
  background-image: -webkit-linear-gradient(#eeeeee 1%, #ffffff 15%);
  background-image: -moz-linear-gradient(#eeeeee 1%, #ffffff 15%);
  background-image: -o-linear-gradient(#eeeeee 1%, #ffffff 15%);
  background-image: linear-gradient(#eeeeee 1%, #ffffff 15%);
  cursor: text;
}
.chosen-container-multi .chosen-choices li {
  float: left;
  list-style: none;
}
.chosen-container-multi .chosen-choices li.search-field {
  margin: 0;
  padding: 0;
  white-space: nowrap;
}
.chosen-container-multi .chosen-choices li.search-field input[type="text"] {
  margin: 1px 0;
  padding: 0;
  height: 25px;
  outline: 0;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none;
  color: #999;
  font-size: 100%;
  font-family: sans-serif;
  line-height: normal;
  border-radius: 0;
}
.chosen-container-multi .chosen-choices li.search-choice {
  position: relative;
  margin: 3px 5px 3px 0;
  padding: 3px 20px 3px 5px;
  border: 1px solid #aaa;
  max-width: 100%;
  border-radius: 3px;
  background-color: #eeeeee;
  background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
  background-image: -webkit-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
  background-image: -moz-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
  background-image: -o-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
  background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
  background-size: 100% 19px;
  background-repeat: repeat-x;
  background-clip: padding-box;
  box-shadow: 0 0 2px white inset, 0 1px 0 rgba(0, 0, 0, 0.05);
  color: #333;
  line-height: 13px;
  cursor: default;
}
.chosen-container-multi .chosen-choices li.search-choice span {
  word-wrap: break-word;
}
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
  position: absolute;
  top: 4px;
  right: 3px;
  display: block;
  width: 12px;
  height: 12px;
  background: url('chosen-sprite.png') -42px 1px no-repeat;
  font-size: 1px;
}
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover {
  background-position: -42px -10px;
}
.chosen-container-multi .chosen-choices li.search-choice-disabled {
  padding-right: 5px;
  border: 1px solid #ccc;
  background-color: #e4e4e4;
  background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
  background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
  background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
  background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
  background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
  color: #666;
}
.chosen-container-multi .chosen-choices li.search-choice-focus {
  background: #d4d4d4;
}
.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close {
  background-position: -42px -10px;
}
.chosen-container-multi .chosen-results {
  margin: 0;
  padding: 0;
}
.chosen-container-multi .chosen-drop .result-selected {
  display: list-item;
  color: #ccc;
  cursor: default;
}

/* @end */
/* @group Active  */
.chosen-container-active .chosen-single {
  border: 1px solid #5897fb;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}
.chosen-container-active.chosen-with-drop .chosen-single {
  border: 1px solid #aaa;
  -moz-border-radius-bottomright: 0;
  border-bottom-right-radius: 0;
  -moz-border-radius-bottomleft: 0;
  border-bottom-left-radius: 0;
  background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #eeeeee), color-stop(80%, #ffffff));
  background-image: -webkit-linear-gradient(#eeeeee 20%, #ffffff 80%);
  background-image: -moz-linear-gradient(#eeeeee 20%, #ffffff 80%);
  background-image: -o-linear-gradient(#eeeeee 20%, #ffffff 80%);
  background-image: linear-gradient(#eeeeee 20%, #ffffff 80%);
  box-shadow: 0 1px 0 #fff inset;
}
.chosen-container-active.chosen-with-drop .chosen-single div {
  border-left: none;
  background: transparent;
}
.chosen-container-active.chosen-with-drop .chosen-single div b {
  background-position: -18px 2px;
}
.chosen-container-active .chosen-choices {
  border: 1px solid #5897fb;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}
.chosen-container-active .chosen-choices li.search-field input[type="text"] {
  color: #222 !important;
}

/* @end */
/* @group Disabled Support */
.chosen-disabled {
  opacity: 0.5 !important;
  cursor: default;
}
.chosen-disabled .chosen-single {
  cursor: default;
}
.chosen-disabled .chosen-choices .search-choice .search-choice-close {
  cursor: default;
}

/* @end */
/* @group Right to Left */
.chosen-rtl {
  text-align: right;
}
.chosen-rtl .chosen-single {
  overflow: visible;
  padding: 0 8px 0 0;
}
.chosen-rtl .chosen-single span {
  margin-right: 0;
  margin-left: 26px;
  direction: rtl;
}
.chosen-rtl .chosen-single-with-deselect span {
  margin-left: 38px;
}
.chosen-rtl .chosen-single div {
  right: auto;
  left: 3px;
}
.chosen-rtl .chosen-single abbr {
  right: auto;
  left: 26px;
}
.chosen-rtl .chosen-choices li {
  float: right;
}
.chosen-rtl .chosen-choices li.search-field input[type="text"] {
  direction: rtl;
}
.chosen-rtl .chosen-choices li.search-choice {
  margin: 3px 5px 3px 0;
  padding: 3px 5px 3px 19px;
}
.chosen-rtl .chosen-choices li.search-choice .search-choice-close {
  right: auto;
  left: 4px;
}
.chosen-rtl.chosen-container-single-nosearch .chosen-search,
.chosen-rtl .chosen-drop {
  left: 9999px;
}
.chosen-rtl.chosen-container-single .chosen-results {
  margin: 0 0 4px 4px;
  padding: 0 4px 0 0;
}
.chosen-rtl .chosen-results li.group-option {
  padding-right: 15px;
  padding-left: 0;
}
.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div {
  border-right: none;
}
.chosen-rtl .chosen-search input[type="text"] {
  padding: 4px 5px 4px 20px;
  background: white url('chosen-sprite.png') no-repeat -30px -20px;
  background: url('chosen-sprite.png') no-repeat -30px -20px;
  direction: rtl;
}
.chosen-rtl.chosen-container-single .chosen-single div b {
  background-position: 6px 2px;
}
.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b {
  background-position: -12px 2px;
}

/* @end */
/* @group Retina compatibility */
@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-resolution: 144dpi) {
  .chosen-rtl .chosen-search input[type="text"],
  .chosen-container-single .chosen-single abbr,
  .chosen-container-single .chosen-single div b,
  .chosen-container-single .chosen-search input[type="text"],
  .chosen-container-multi .chosen-choices .search-choice .search-choice-close,
  .chosen-container .chosen-results-scroll-down span,
  .chosen-container .chosen-results-scroll-up span {
    background-image: url('chosen-sprite@2x.png') !important;
    background-size: 52px 37px !important;
    background-repeat: no-repeat !important;
  }
}
/* @end */
PK���[�k�v�)�)&admin/assets/inc/chosen/chosen-min.cssnu�[���/* Chosen v1.2.0 | (c) 2011-2014 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */
.chosen-container{position:relative;display:inline-block;vertical-align:middle;font-size:13px;zoom:1;*display:inline;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chosen-container *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.chosen-container .chosen-drop{position:absolute;top:100%;left:-9999px;z-index:1010;width:100%;border:1px solid #aaa;border-top:0;background:#fff;box-shadow:0 4px 5px rgba(0,0,0,.15)}.chosen-container.chosen-with-drop .chosen-drop{left:0}.chosen-container a{cursor:pointer}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:0 0 0 8px;height:25px;border:1px solid #aaa;border-radius:5px;background-color:#fff;background:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#fff),color-stop(50%,#f6f6f6),color-stop(52%,#eee),color-stop(100%,#f4f4f4));background:-webkit-linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:-moz-linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:-o-linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background-clip:padding-box;box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);color:#444;text-decoration:none;white-space:nowrap;line-height:24px}.chosen-container-single .chosen-default{color:#999}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:6px;right:26px;display:block;width:12px;height:12px;background:url(chosen-sprite.png) -42px 1px no-repeat;font-size:1px}.chosen-container-single .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single.chosen-disabled .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%;background:url(chosen-sprite.png) no-repeat 0 2px}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;background:#fff url(chosen-sprite.png) no-repeat 100% -20px;background:url(chosen-sprite.png) no-repeat 100% -20px;font-size:1em;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-single .chosen-drop{margin-top:-1px;border-radius:0 0 4px 4px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;left:-9999px}.chosen-container .chosen-results{color:#444;position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px;word-wrap:break-word;-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#3875d7;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#3875d7),color-stop(90%,#2a62bc));background-image:-webkit-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:-moz-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:-o-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:linear-gradient(#3875d7 20%,#2a62bc 90%);color:#fff}.chosen-container .chosen-results li.no-results{color:#777;display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;overflow:hidden;margin:0;padding:0 5px;width:100%;height:auto!important;height:1%;border:1px solid #aaa;background-color:#fff;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(1%,#eee),color-stop(15%,#fff));background-image:-webkit-linear-gradient(#eee 1%,#fff 15%);background-image:-moz-linear-gradient(#eee 1%,#fff 15%);background-image:-o-linear-gradient(#eee 1%,#fff 15%);background-image:linear-gradient(#eee 1%,#fff 15%);cursor:text}.chosen-container-multi .chosen-choices li{float:left;list-style:none}.chosen-container-multi .chosen-choices li.search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{margin:1px 0;padding:0;height:25px;outline:0;border:0!important;background:transparent!important;box-shadow:none;color:#999;font-size:100%;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-multi .chosen-choices li.search-choice{position:relative;margin:3px 5px 3px 0;padding:3px 20px 3px 5px;border:1px solid #aaa;max-width:100%;border-radius:3px;background-color:#eee;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),color-stop(100%,#eee));background-image:-webkit-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-moz-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-o-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-size:100% 19px;background-repeat:repeat-x;background-clip:padding-box;box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);color:#333;line-height:13px;cursor:default}.chosen-container-multi .chosen-choices li.search-choice span{word-wrap:break-word}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:4px;right:3px;display:block;width:12px;height:12px;background:url(chosen-sprite.png) -42px 1px no-repeat;font-size:1px}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{background-position:-42px -10px}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;border:1px solid #ccc;background-color:#e4e4e4;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),color-stop(100%,#eee));background-image:-webkit-linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-moz-linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-o-linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);color:#666}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close{background-position:-42px -10px}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-multi .chosen-drop .result-selected{display:list-item;color:#ccc;cursor:default}.chosen-container-active .chosen-single{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #aaa;-moz-border-radius-bottomright:0;border-bottom-right-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#eee),color-stop(80%,#fff));background-image:-webkit-linear-gradient(#eee 20%,#fff 80%);background-image:-moz-linear-gradient(#eee 20%,#fff 80%);background-image:-o-linear-gradient(#eee 20%,#fff 80%);background-image:linear-gradient(#eee 20%,#fff 80%);box-shadow:0 1px 0 #fff inset}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:0;background:transparent}.chosen-container-active.chosen-with-drop .chosen-single div b{background-position:-18px 2px}.chosen-container-active .chosen-choices{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#222!important}.chosen-disabled{opacity:.5!important;cursor:default}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type=text]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl.chosen-container-single-nosearch .chosen-search,.chosen-rtl .chosen-drop{left:9999px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:0}.chosen-rtl .chosen-search input[type=text]{padding:4px 5px 4px 20px;background:#fff url(chosen-sprite.png) no-repeat -30px -20px;background:url(chosen-sprite.png) no-repeat -30px -20px;direction:rtl}.chosen-rtl.chosen-container-single .chosen-single div b{background-position:6px 2px}.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b{background-position:-12px 2px}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min-resolution:144dpi){.chosen-rtl .chosen-search input[type=text],.chosen-container-single .chosen-single abbr,.chosen-container-single .chosen-single div b,.chosen-container-single .chosen-search input[type=text],.chosen-container-multi .chosen-choices .search-choice .search-choice-close,.chosen-container .chosen-results-scroll-down span,.chosen-container .chosen-results-scroll-up span{background-image:url(chosen-sprite@2x.png)!important;background-size:52px 37px!important;background-repeat:no-repeat!important}}PK���[��q�j�j%admin/assets/inc/chosen/chosen-min.jsnu�[���/* Chosen v1.2.0 | (c) 2011-2014 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */
!function(){var a,AbstractChosen,Chosen,SelectParser,b,c={}.hasOwnProperty,d=function(a,b){function d(){this.constructor=a}for(var e in b)c.call(b,e)&&(a[e]=b[e]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a};SelectParser=function(){function SelectParser(){this.options_index=0,this.parsed=[]}return SelectParser.prototype.add_node=function(a){return"OPTGROUP"===a.nodeName.toUpperCase()?this.add_group(a):this.add_option(a)},SelectParser.prototype.add_group=function(a){var b,c,d,e,f,g;for(b=this.parsed.length,this.parsed.push({array_index:b,group:!0,label:this.escapeExpression(a.label),children:0,disabled:a.disabled}),f=a.childNodes,g=[],d=0,e=f.length;e>d;d++)c=f[d],g.push(this.add_option(c,b,a.disabled));return g},SelectParser.prototype.add_option=function(a,b,c){return"OPTION"===a.nodeName.toUpperCase()?(""!==a.text?(null!=b&&(this.parsed[b].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:a.value,text:a.text,html:a.innerHTML,selected:a.selected,disabled:c===!0?c:a.disabled,group_array_index:b,classes:a.className,style:a.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1):void 0},SelectParser.prototype.escapeExpression=function(a){var b,c;return null==a||a===!1?"":/[\&\<\>\"\'\`]/.test(a)?(b={"<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},c=/&(?!\w+;)|[\<\>\"\'\`]/g,a.replace(c,function(a){return b[a]||"&amp;"})):a},SelectParser}(),SelectParser.select_to_array=function(a){var b,c,d,e,f;for(c=new SelectParser,f=a.childNodes,d=0,e=f.length;e>d;d++)b=f[d],c.add_node(b);return c.parsed},AbstractChosen=function(){function AbstractChosen(a,b){this.form_field=a,this.options=null!=b?b:{},AbstractChosen.browser_is_supported()&&(this.is_multiple=this.form_field.multiple,this.set_default_text(),this.set_default_values(),this.setup(),this.set_up_html(),this.register_observers())}return AbstractChosen.prototype.set_default_values=function(){var a=this;return this.click_test_action=function(b){return a.test_active_click(b)},this.activate_action=function(b){return a.activate_field(b)},this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.allow_single_deselect=null!=this.options.allow_single_deselect&&null!=this.form_field.options[0]&&""===this.form_field.options[0].text?this.options.allow_single_deselect:!1,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.enable_split_word_search=null!=this.options.enable_split_word_search?this.options.enable_split_word_search:!0,this.group_search=null!=this.options.group_search?this.options.group_search:!0,this.search_contains=this.options.search_contains||!1,this.single_backstroke_delete=null!=this.options.single_backstroke_delete?this.options.single_backstroke_delete:!0,this.max_selected_options=this.options.max_selected_options||1/0,this.inherit_select_classes=this.options.inherit_select_classes||!1,this.display_selected_options=null!=this.options.display_selected_options?this.options.display_selected_options:!0,this.display_disabled_options=null!=this.options.display_disabled_options?this.options.display_disabled_options:!0},AbstractChosen.prototype.set_default_text=function(){return this.default_text=this.form_field.getAttribute("data-placeholder")?this.form_field.getAttribute("data-placeholder"):this.is_multiple?this.options.placeholder_text_multiple||this.options.placeholder_text||AbstractChosen.default_multiple_text:this.options.placeholder_text_single||this.options.placeholder_text||AbstractChosen.default_single_text,this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||AbstractChosen.default_no_result_text},AbstractChosen.prototype.mouse_enter=function(){return this.mouse_on_container=!0},AbstractChosen.prototype.mouse_leave=function(){return this.mouse_on_container=!1},AbstractChosen.prototype.input_focus=function(){var a=this;if(this.is_multiple){if(!this.active_field)return setTimeout(function(){return a.container_mousedown()},50)}else if(!this.active_field)return this.activate_field()},AbstractChosen.prototype.input_blur=function(){var a=this;return this.mouse_on_container?void 0:(this.active_field=!1,setTimeout(function(){return a.blur_test()},100))},AbstractChosen.prototype.results_option_build=function(a){var b,c,d,e,f;for(b="",f=this.results_data,d=0,e=f.length;e>d;d++)c=f[d],b+=c.group?this.result_add_group(c):this.result_add_option(c),(null!=a?a.first:void 0)&&(c.selected&&this.is_multiple?this.choice_build(c):c.selected&&!this.is_multiple&&this.single_set_selected_text(c.text));return b},AbstractChosen.prototype.result_add_option=function(a){var b,c;return a.search_match?this.include_option_in_results(a)?(b=[],a.disabled||a.selected&&this.is_multiple||b.push("active-result"),!a.disabled||a.selected&&this.is_multiple||b.push("disabled-result"),a.selected&&b.push("result-selected"),null!=a.group_array_index&&b.push("group-option"),""!==a.classes&&b.push(a.classes),c=document.createElement("li"),c.className=b.join(" "),c.style.cssText=a.style,c.setAttribute("data-option-array-index",a.array_index),c.innerHTML=a.search_text,this.outerHTML(c)):"":""},AbstractChosen.prototype.result_add_group=function(a){var b;return a.search_match||a.group_match?a.active_options>0?(b=document.createElement("li"),b.className="group-result",b.innerHTML=a.search_text,this.outerHTML(b)):"":""},AbstractChosen.prototype.results_update_field=function(){return this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing?this.winnow_results():void 0},AbstractChosen.prototype.reset_single_select_options=function(){var a,b,c,d,e;for(d=this.results_data,e=[],b=0,c=d.length;c>b;b++)a=d[b],a.selected?e.push(a.selected=!1):e.push(void 0);return e},AbstractChosen.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},AbstractChosen.prototype.results_search=function(){return this.results_showing?this.winnow_results():this.results_show()},AbstractChosen.prototype.winnow_results=function(){var a,b,c,d,e,f,g,h,i,j,k,l;for(this.no_results_clear(),d=0,f=this.get_search_text(),a=f.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),i=new RegExp(a,"i"),c=this.get_search_regex(a),l=this.results_data,j=0,k=l.length;k>j;j++)b=l[j],b.search_match=!1,e=null,this.include_option_in_results(b)&&(b.group&&(b.group_match=!1,b.active_options=0),null!=b.group_array_index&&this.results_data[b.group_array_index]&&(e=this.results_data[b.group_array_index],0===e.active_options&&e.search_match&&(d+=1),e.active_options+=1),(!b.group||this.group_search)&&(b.search_text=b.group?b.label:b.text,b.search_match=this.search_string_match(b.search_text,c),b.search_match&&!b.group&&(d+=1),b.search_match?(f.length&&(g=b.search_text.search(i),h=b.search_text.substr(0,g+f.length)+"</em>"+b.search_text.substr(g+f.length),b.search_text=h.substr(0,g)+"<em>"+h.substr(g)),null!=e&&(e.group_match=!0)):null!=b.group_array_index&&this.results_data[b.group_array_index].search_match&&(b.search_match=!0)));return this.result_clear_highlight(),1>d&&f.length?(this.update_results_content(""),this.no_results(f)):(this.update_results_content(this.results_option_build()),this.winnow_results_set_highlight())},AbstractChosen.prototype.get_search_regex=function(a){var b;return b=this.search_contains?"":"^",new RegExp(b+a,"i")},AbstractChosen.prototype.search_string_match=function(a,b){var c,d,e,f;if(b.test(a))return!0;if(this.enable_split_word_search&&(a.indexOf(" ")>=0||0===a.indexOf("["))&&(d=a.replace(/\[|\]/g,"").split(" "),d.length))for(e=0,f=d.length;f>e;e++)if(c=d[e],b.test(c))return!0},AbstractChosen.prototype.choices_count=function(){var a,b,c,d;if(null!=this.selected_option_count)return this.selected_option_count;for(this.selected_option_count=0,d=this.form_field.options,b=0,c=d.length;c>b;b++)a=d[b],a.selected&&(this.selected_option_count+=1);return this.selected_option_count},AbstractChosen.prototype.choices_click=function(a){return a.preventDefault(),this.results_showing||this.is_disabled?void 0:this.results_show()},AbstractChosen.prototype.keyup_checker=function(a){var b,c;switch(b=null!=(c=a.which)?c:a.keyCode,this.search_field_scale(),b){case 8:if(this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0)return this.keydown_backstroke();if(!this.pending_backstroke)return this.result_clear_highlight(),this.results_search();break;case 13:if(a.preventDefault(),this.results_showing)return this.result_select(a);break;case 27:return this.results_showing&&this.results_hide(),!0;case 9:case 38:case 40:case 16:case 91:case 17:break;default:return this.results_search()}},AbstractChosen.prototype.clipboard_event_checker=function(){var a=this;return setTimeout(function(){return a.results_search()},50)},AbstractChosen.prototype.container_width=function(){return null!=this.options.width?this.options.width:""+this.form_field.offsetWidth+"px"},AbstractChosen.prototype.include_option_in_results=function(a){return this.is_multiple&&!this.display_selected_options&&a.selected?!1:!this.display_disabled_options&&a.disabled?!1:a.empty?!1:!0},AbstractChosen.prototype.search_results_touchstart=function(a){return this.touch_started=!0,this.search_results_mouseover(a)},AbstractChosen.prototype.search_results_touchmove=function(a){return this.touch_started=!1,this.search_results_mouseout(a)},AbstractChosen.prototype.search_results_touchend=function(a){return this.touch_started?this.search_results_mouseup(a):void 0},AbstractChosen.prototype.outerHTML=function(a){var b;return a.outerHTML?a.outerHTML:(b=document.createElement("div"),b.appendChild(a),b.innerHTML)},AbstractChosen.browser_is_supported=function(){return"Microsoft Internet Explorer"===window.navigator.appName?document.documentMode>=8:/iP(od|hone)/i.test(window.navigator.userAgent)?!1:/Android/i.test(window.navigator.userAgent)&&/Mobile/i.test(window.navigator.userAgent)?!1:!0},AbstractChosen.default_multiple_text="Select Some Options",AbstractChosen.default_single_text="Select an Option",AbstractChosen.default_no_result_text="No results match",AbstractChosen}(),a=jQuery,a.fn.extend({chosen:function(b){return AbstractChosen.browser_is_supported()?this.each(function(){var c,d;c=a(this),d=c.data("chosen"),"destroy"===b&&d instanceof Chosen?d.destroy():d instanceof Chosen||c.data("chosen",new Chosen(this,b))}):this}}),Chosen=function(c){function Chosen(){return b=Chosen.__super__.constructor.apply(this,arguments)}return d(Chosen,c),Chosen.prototype.setup=function(){return this.form_field_jq=a(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex,this.is_rtl=this.form_field_jq.hasClass("chosen-rtl")},Chosen.prototype.set_up_html=function(){var b,c;return b=["chosen-container"],b.push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&b.push(this.form_field.className),this.is_rtl&&b.push("chosen-rtl"),c={"class":b.join(" "),style:"width: "+this.container_width()+";",title:this.form_field.title},this.form_field.id.length&&(c.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=a("<div />",c),this.is_multiple?this.container.html('<ul class="chosen-choices"><li class="search-field"><input type="text" value="'+this.default_text+'" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chosen-drop"><ul class="chosen-results"></ul></div>'):this.container.html('<a class="chosen-single chosen-default" tabindex="-1"><span>'+this.default_text+'</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off" /></div><ul class="chosen-results"></ul></div>'),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior(),this.form_field_jq.trigger("chosen:ready",{chosen:this})},Chosen.prototype.register_observers=function(){var a=this;return this.container.bind("touchstart.chosen",function(b){a.container_mousedown(b)}),this.container.bind("touchend.chosen",function(b){a.container_mouseup(b)}),this.container.bind("mousedown.chosen",function(b){a.container_mousedown(b)}),this.container.bind("mouseup.chosen",function(b){a.container_mouseup(b)}),this.container.bind("mouseenter.chosen",function(b){a.mouse_enter(b)}),this.container.bind("mouseleave.chosen",function(b){a.mouse_leave(b)}),this.search_results.bind("mouseup.chosen",function(b){a.search_results_mouseup(b)}),this.search_results.bind("mouseover.chosen",function(b){a.search_results_mouseover(b)}),this.search_results.bind("mouseout.chosen",function(b){a.search_results_mouseout(b)}),this.search_results.bind("mousewheel.chosen DOMMouseScroll.chosen",function(b){a.search_results_mousewheel(b)}),this.search_results.bind("touchstart.chosen",function(b){a.search_results_touchstart(b)}),this.search_results.bind("touchmove.chosen",function(b){a.search_results_touchmove(b)}),this.search_results.bind("touchend.chosen",function(b){a.search_results_touchend(b)}),this.form_field_jq.bind("chosen:updated.chosen",function(b){a.results_update_field(b)}),this.form_field_jq.bind("chosen:activate.chosen",function(b){a.activate_field(b)}),this.form_field_jq.bind("chosen:open.chosen",function(b){a.container_mousedown(b)}),this.form_field_jq.bind("chosen:close.chosen",function(b){a.input_blur(b)}),this.search_field.bind("blur.chosen",function(b){a.input_blur(b)}),this.search_field.bind("keyup.chosen",function(b){a.keyup_checker(b)}),this.search_field.bind("keydown.chosen",function(b){a.keydown_checker(b)}),this.search_field.bind("focus.chosen",function(b){a.input_focus(b)}),this.search_field.bind("cut.chosen",function(b){a.clipboard_event_checker(b)}),this.search_field.bind("paste.chosen",function(b){a.clipboard_event_checker(b)}),this.is_multiple?this.search_choices.bind("click.chosen",function(b){a.choices_click(b)}):this.container.bind("click.chosen",function(a){a.preventDefault()})},Chosen.prototype.destroy=function(){return a(this.container[0].ownerDocument).unbind("click.chosen",this.click_test_action),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},Chosen.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field_jq[0].disabled,this.is_disabled?(this.container.addClass("chosen-disabled"),this.search_field[0].disabled=!0,this.is_multiple||this.selected_item.unbind("focus.chosen",this.activate_action),this.close_field()):(this.container.removeClass("chosen-disabled"),this.search_field[0].disabled=!1,this.is_multiple?void 0:this.selected_item.bind("focus.chosen",this.activate_action))},Chosen.prototype.container_mousedown=function(b){return this.is_disabled||(b&&"mousedown"===b.type&&!this.results_showing&&b.preventDefault(),null!=b&&a(b.target).hasClass("search-choice-close"))?void 0:(this.active_field?this.is_multiple||!b||a(b.target)[0]!==this.selected_item[0]&&!a(b.target).parents("a.chosen-single").length||(b.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),a(this.container[0].ownerDocument).bind("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},Chosen.prototype.container_mouseup=function(a){return"ABBR"!==a.target.nodeName||this.is_disabled?void 0:this.results_reset(a)},Chosen.prototype.search_results_mousewheel=function(a){var b;return a.originalEvent&&(b=a.originalEvent.deltaY||-a.originalEvent.wheelDelta||a.originalEvent.detail),null!=b?(a.preventDefault(),"DOMMouseScroll"===a.type&&(b=40*b),this.search_results.scrollTop(b+this.search_results.scrollTop())):void 0},Chosen.prototype.blur_test=function(){return!this.active_field&&this.container.hasClass("chosen-container-active")?this.close_field():void 0},Chosen.prototype.close_field=function(){return a(this.container[0].ownerDocument).unbind("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale()},Chosen.prototype.activate_field=function(){return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},Chosen.prototype.test_active_click=function(b){var c;return c=a(b.target).closest(".chosen-container"),c.length&&this.container[0]===c[0]?this.active_field=!0:this.close_field()},Chosen.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=SelectParser.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():this.is_multiple||(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},Chosen.prototype.result_do_highlight=function(a){var b,c,d,e,f;if(a.length){if(this.result_clear_highlight(),this.result_highlight=a,this.result_highlight.addClass("highlighted"),d=parseInt(this.search_results.css("maxHeight"),10),f=this.search_results.scrollTop(),e=d+f,c=this.result_highlight.position().top+this.search_results.scrollTop(),b=c+this.result_highlight.outerHeight(),b>=e)return this.search_results.scrollTop(b-d>0?b-d:0);if(f>c)return this.search_results.scrollTop(c)}},Chosen.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},Chosen.prototype.results_show=function(){return this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.container.addClass("chosen-with-drop"),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.search_field.val()),this.winnow_results(),this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this}))},Chosen.prototype.update_results_content=function(a){return this.search_results.html(a)},Chosen.prototype.results_hide=function(){return this.results_showing&&(this.result_clear_highlight(),this.container.removeClass("chosen-with-drop"),this.form_field_jq.trigger("chosen:hiding_dropdown",{chosen:this})),this.results_showing=!1},Chosen.prototype.set_tab_index=function(){var a;return this.form_field.tabIndex?(a=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field[0].tabIndex=a):void 0},Chosen.prototype.set_label_behavior=function(){var b=this;return this.form_field_label=this.form_field_jq.parents("label"),!this.form_field_label.length&&this.form_field.id.length&&(this.form_field_label=a("label[for='"+this.form_field.id+"']")),this.form_field_label.length>0?this.form_field_label.bind("click.chosen",function(a){return b.is_multiple?b.container_mousedown(a):b.activate_field()}):void 0},Chosen.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},Chosen.prototype.search_results_mouseup=function(b){var c;return c=a(b.target).hasClass("active-result")?a(b.target):a(b.target).parents(".active-result").first(),c.length?(this.result_highlight=c,this.result_select(b),this.search_field.focus()):void 0},Chosen.prototype.search_results_mouseover=function(b){var c;return c=a(b.target).hasClass("active-result")?a(b.target):a(b.target).parents(".active-result").first(),c?this.result_do_highlight(c):void 0},Chosen.prototype.search_results_mouseout=function(b){return a(b.target).hasClass("active-result")?this.result_clear_highlight():void 0},Chosen.prototype.choice_build=function(b){var c,d,e=this;return c=a("<li />",{"class":"search-choice"}).html("<span>"+b.html+"</span>"),b.disabled?c.addClass("search-choice-disabled"):(d=a("<a />",{"class":"search-choice-close","data-option-array-index":b.array_index}),d.bind("click.chosen",function(a){return e.choice_destroy_link_click(a)}),c.append(d)),this.search_container.before(c)},Chosen.prototype.choice_destroy_link_click=function(b){return b.preventDefault(),b.stopPropagation(),this.is_disabled?void 0:this.choice_destroy(a(b.target))},Chosen.prototype.choice_destroy=function(a){return this.result_deselect(a[0].getAttribute("data-option-array-index"))?(this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.search_field.val().length<1&&this.results_hide(),a.parents("li").first().remove(),this.search_field_scale()):void 0},Chosen.prototype.results_reset=function(){return this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.form_field_jq.trigger("change"),this.active_field?this.results_hide():void 0},Chosen.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},Chosen.prototype.result_select=function(a){var b,c;return this.result_highlight?(b=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?b.removeClass("active-result"):this.reset_single_select_options(),c=this.results_data[b[0].getAttribute("data-option-array-index")],c.selected=!0,this.form_field.options[c.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(c):this.single_set_selected_text(c.text),(a.metaKey||a.ctrlKey)&&this.is_multiple||this.results_hide(),this.search_field.val(""),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.form_field_jq.trigger("change",{selected:this.form_field.options[c.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,this.search_field_scale())):void 0},Chosen.prototype.single_set_selected_text=function(a){return null==a&&(a=this.default_text),a===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").text(a)},Chosen.prototype.result_deselect=function(a){var b;return b=this.results_data[a],this.form_field.options[b.options_index].disabled?!1:(b.selected=!1,this.form_field.options[b.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.form_field_jq.trigger("change",{deselected:this.form_field.options[b.options_index].value}),this.search_field_scale(),!0)},Chosen.prototype.single_deselect_control_build=function(){return this.allow_single_deselect?(this.selected_item.find("abbr").length||this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>'),this.selected_item.addClass("chosen-single-with-deselect")):void 0},Chosen.prototype.get_search_text=function(){return this.search_field.val()===this.default_text?"":a("<div/>").text(a.trim(this.search_field.val())).html()},Chosen.prototype.winnow_results_set_highlight=function(){var a,b;return b=this.is_multiple?[]:this.search_results.find(".result-selected.active-result"),a=b.length?b.first():this.search_results.find(".active-result").first(),null!=a?this.result_do_highlight(a):void 0},Chosen.prototype.no_results=function(b){var c;return c=a('<li class="no-results">'+this.results_none_found+' "<span></span>"</li>'),c.find("span").first().html(b),this.search_results.append(c),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},Chosen.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},Chosen.prototype.keydown_arrow=function(){var a;return this.results_showing&&this.result_highlight?(a=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(a):void 0:this.results_show()},Chosen.prototype.keyup_arrow=function(){var a;return this.results_showing||this.is_multiple?this.result_highlight?(a=this.result_highlight.prevAll("li.active-result"),a.length?this.result_do_highlight(a.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight())):void 0:this.results_show()},Chosen.prototype.keydown_backstroke=function(){var a;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(a=this.search_container.siblings("li.search-choice").last(),a.length&&!a.hasClass("search-choice-disabled")?(this.pending_backstroke=a,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0)},Chosen.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},Chosen.prototype.keydown_checker=function(a){var b,c;switch(b=null!=(c=a.which)?c:a.keyCode,this.search_field_scale(),8!==b&&this.pending_backstroke&&this.clear_backstroke(),b){case 8:this.backstroke_length=this.search_field.val().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(a),this.mouse_on_container=!1;break;case 13:this.results_showing&&a.preventDefault();break;case 32:this.disable_search&&a.preventDefault();break;case 38:a.preventDefault(),this.keyup_arrow();break;case 40:a.preventDefault(),this.keydown_arrow()}},Chosen.prototype.search_field_scale=function(){var b,c,d,e,f,g,h,i,j;if(this.is_multiple){for(d=0,h=0,f="position:absolute; left: -1000px; top: -1000px; display:none;",g=["font-size","font-style","font-weight","font-family","line-height","text-transform","letter-spacing"],i=0,j=g.length;j>i;i++)e=g[i],f+=e+":"+this.search_field.css(e)+";";return b=a("<div />",{style:f}),b.text(this.search_field.val()),a("body").append(b),h=b.width()+25,b.remove(),c=this.container.outerWidth(),h>c-10&&(h=c-10),this.search_field.css({width:h+"px"})}},Chosen}(AbstractChosen)}.call(this);PK���[ca�#M#Mdemo-assets/triangle-up.pngnu�[����PNG


IHDR(�1��	pHYs��
OiCCPPhotoshop ICC profilexڝSgTS�=���BK���KoR RB���&*!	J�!��Q�EEȠ�����Q,�
��!��������{�kּ�����>�����H3Q5��B������.@�
$p�d!s�#�~<<+"��x��M��0���B�\���t�8K�@z�B�@F���&S�`�cb�P-`'������{[�!�� e�Dh;��V�EX0fK�9�-0IWfH�����0Q��){`�##x��F�W<�+��*x��<�$9E�[-qWW.(�I+6aa�@.�y�2�4�������x����6��_-��"bb��ϫp@�t~�,/��;�m��%�h^�u��f�@����W�p�~<<E���������J�B[a�W}�g�_�W�l�~<�����$�2]�G�����L�ϒ	�b��G�����"�Ib�X*�Qq�D���2�"�B�)�%�d��,�>�5�j>{�-�]c�K'Xt���o��(�h���w��?�G�%�fI�q^D$.Tʳ?�D��*�A�,����`6�B$��BB
d�r`)��B(�Ͱ*`/�@4�Qh��p.�U�=p�a��(��	A�a!ڈb�X#����!�H�$ ɈQ"K�5H1R�T UH�=r9�\F��;�2����G1���Q=��C��7�F��dt1�����r�=�6��Ыhڏ>C�0��3�l0.��B�8,	�c˱"����V����cϱw�E�	6wB aAHXLXN�H� $4�	7	�Q�'"��K�&���b21�XH,#��/{�C�7$�C2'��I��T��F�nR#�,��4H#���dk�9�, +ȅ����3��!�[
�b@q��S�(R�jJ��4�e�2AU��Rݨ�T5�ZB���R�Q��4u�9̓IK�����hh�i��t�ݕN��W���G���w
��Ljg(�gw��L�Ӌ�T071���oUX*�*|��
�J�&�*/T����ުU�U�T��^S}�FU3S�	Ԗ�U��P�SSg�;���g�oT?�~Y��Y�L�OC�Q��_�� c�x,!k
��u�5�&���|v*�����=���9C3J3W�R�f?�q��tN	�(���~���)�)�4L�1e\k����X�H�Q�G�6����E�Y��A�J'\'Gg����S�Sݧ
�M=:��.�k���Dw�n��^��Lo��y��}/�T�m���GX�$��<�5qo</���QC]�@C�a�a�ᄑ��<��F�F�i�\�$�m�mƣ&&!&KM�M�RM��)�;L;L���͢�֙5�=1�2��כ߷`ZxZ,����eI��Z�Yn�Z9Y�XUZ]�F���%ֻ�����N�N���gð�ɶ�����ۮ�m�}agbg�Ů��}�}��=
���Z~s�r:V:ޚΜ�?}���/gX���3��)�i�S��Ggg�s�󈋉K��.�>.���Ƚ�Jt�q]�z�������ۯ�6�i�ܟ�4�)�Y3s���C�Q��?��0k߬~OCO�g��#/c/�W�װ��w��a�>�>r��>�<7�2�Y_�7��ȷ�O�o�_��C#�d�z����%g��A�[��z|!��?:�e����A���AA�����!h�쐭!��Α�i�P~���a�a��~'���W�?�p�X�1�5w��Cs�D�D�Dޛg1O9�-J5*>�.j<�7�4�?�.fY��X�XIlK9.*�6nl�������{�/�]py�����.,:�@L�N8��A*��%�w%�
y��g"/�6ш�C\*N�H*Mz�쑼5y$�3�,幄'���L
Lݛ:��v m2=:�1����qB�!M��g�g�fvˬe����n��/��k���Y-
�B��TZ(�*�geWf�͉�9���+��̳�ې7����ᒶ��KW-X潬j9�<qy�
�+�V�<���*m�O��W��~�&zMk�^�ʂ��k�U
�}����]OX/Yߵa���>������(�x��oʿ�ܔ���Ĺd�f�f���-�[����n
�ڴ
�V��E�/��(ۻ��C���<��e����;?T�T�T�T6��ݵa�n��{��4���[���>ɾ�UUM�f�e�I���?�����m]�Nmq����#�׹���=TR��+�G�����w-
6
U����#pDy��	�
:�v�{���vg/jB��F�S��[b[�O�>����z�G��4<YyJ�T�i��ӓg�ό���}~.��`ۢ�{�c��jo�t��E���;�;�\�t���W�W��:_m�t�<���Oǻ�����\k��z��{f���7���y���՞9=ݽ�zo�����~r'��˻�w'O�_�@�A�C݇�?[�����j�w����G�������C���ˆ
��8>99�?r��C�d�&����ˮ/~�����јѡ�򗓿m|�����������x31^�V��w�w��O�| (�h���SЧ�������c3-�AciTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c132 79.159284, 2016/04/19-13:13:40        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmp:CreatorTool>Adobe Photoshop CC 2015.5 (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2016-12-10T14:48:50+01:00</xmp:CreateDate>
         <xmp:MetadataDate>2016-12-10T16:56:02+01:00</xmp:MetadataDate>
         <xmp:ModifyDate>2016-12-10T16:56:02+01:00</xmp:ModifyDate>
         <dc:format>image/png</dc:format>
         <xmpMM:InstanceID>xmp.iid:3b244b62-52b5-be4c-9fe4-c09796c68a55</xmpMM:InstanceID>
         <xmpMM:DocumentID>adobe:docid:photoshop:1c7dce1d-bef1-11e6-bd03-9486b91788a0</xmpMM:DocumentID>
         <xmpMM:OriginalDocumentID>xmp.did:c54b423c-6a2b-3846-8971-3886c9c4eb3a</xmpMM:OriginalDocumentID>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>created</stEvt:action>
                  <stEvt:instanceID>xmp.iid:c54b423c-6a2b-3846-8971-3886c9c4eb3a</stEvt:instanceID>
                  <stEvt:when>2016-12-10T14:48:50+01:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC 2015.5 (Windows)</stEvt:softwareAgent>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:dab6cf69-6ec3-f847-a0ec-4dd35e3bc1c0</stEvt:instanceID>
                  <stEvt:when>2016-12-10T15:21:30+01:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC 2015.5 (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:7ab1d5e2-7708-7e44-8be8-76694890199a</stEvt:instanceID>
                  <stEvt:when>2016-12-10T16:56:02+01:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC 2015.5 (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>converted</stEvt:action>
                  <stEvt:parameters>from application/vnd.adobe.photoshop to image/png</stEvt:parameters>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>derived</stEvt:action>
                  <stEvt:parameters>converted from application/vnd.adobe.photoshop to image/png</stEvt:parameters>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:3b244b62-52b5-be4c-9fe4-c09796c68a55</stEvt:instanceID>
                  <stEvt:when>2016-12-10T16:56:02+01:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC 2015.5 (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <xmpMM:DerivedFrom rdf:parseType="Resource">
            <stRef:instanceID>xmp.iid:7ab1d5e2-7708-7e44-8be8-76694890199a</stRef:instanceID>
            <stRef:documentID>adobe:docid:photoshop:f3c552cc-bee3-11e6-bd03-9486b91788a0</stRef:documentID>
            <stRef:originalDocumentID>xmp.did:c54b423c-6a2b-3846-8971-3886c9c4eb3a</stRef:originalDocumentID>
         </xmpMM:DerivedFrom>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <photoshop:ICCProfile>sRGB IEC61966-2.1</photoshop:ICCProfile>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>1</exif:ColorSpace>
         <exif:PixelXDimension>20</exif:PixelXDimension>
         <exif:PixelYDimension>40</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>m�g& cHRMz%������u0�`:�o�_�F�IDATx��=� G_�c������^G�u�
�P7M�g��;��he2��B�y-�A������s0�%c��-ꪙw���m���t��X���:�p��<�֏�r(pd
�z�xF-y��i��RU�����W��
́��4i$4)zl��F&�44����04�ؾ_	M\΃�	�ib��������/�(�m0��:�"<i�IEND�B`�PK���[�]0aMMdemo-assets/triangle-down.pngnu�[����PNG


IHDR(�1��	pHYs��
OiCCPPhotoshop ICC profilexڝSgTS�=���BK���KoR RB���&*!	J�!��Q�EEȠ�����Q,�
��!��������{�kּ�����>�����H3Q5��B������.@�
$p�d!s�#�~<<+"��x��M��0���B�\���t�8K�@z�B�@F���&S�`�cb�P-`'������{[�!�� e�Dh;��V�EX0fK�9�-0IWfH�����0Q��){`�##x��F�W<�+��*x��<�$9E�[-qWW.(�I+6aa�@.�y�2�4�������x����6��_-��"bb��ϫp@�t~�,/��;�m��%�h^�u��f�@����W�p�~<<E���������J�B[a�W}�g�_�W�l�~<�����$�2]�G�����L�ϒ	�b��G�����"�Ib�X*�Qq�D���2�"�B�)�%�d��,�>�5�j>{�-�]c�K'Xt���o��(�h���w��?�G�%�fI�q^D$.Tʳ?�D��*�A�,����`6�B$��BB
d�r`)��B(�Ͱ*`/�@4�Qh��p.�U�=p�a��(��	A�a!ڈb�X#����!�H�$ ɈQ"K�5H1R�T UH�=r9�\F��;�2����G1���Q=��C��7�F��dt1�����r�=�6��Ыhڏ>C�0��3�l0.��B�8,	�c˱"����V����cϱw�E�	6wB aAHXLXN�H� $4�	7	�Q�'"��K�&���b21�XH,#��/{�C�7$�C2'��I��T��F�nR#�,��4H#���dk�9�, +ȅ����3��!�[
�b@q��S�(R�jJ��4�e�2AU��Rݨ�T5�ZB���R�Q��4u�9̓IK�����hh�i��t�ݕN��W���G���w
��Ljg(�gw��L�Ӌ�T071���oUX*�*|��
�J�&�*/T����ުU�U�T��^S}�FU3S�	Ԗ�U��P�SSg�;���g�oT?�~Y��Y�L�OC�Q��_�� c�x,!k
��u�5�&���|v*�����=���9C3J3W�R�f?�q��tN	�(���~���)�)�4L�1e\k����X�H�Q�G�6����E�Y��A�J'\'Gg����S�Sݧ
�M=:��.�k���Dw�n��^��Lo��y��}/�T�m���GX�$��<�5qo</���QC]�@C�a�a�ᄑ��<��F�F�i�\�$�m�mƣ&&!&KM�M�RM��)�;L;L���͢�֙5�=1�2��כ߷`ZxZ,����eI��Z�Yn�Z9Y�XUZ]�F���%ֻ�����N�N���gð�ɶ�����ۮ�m�}agbg�Ů��}�}��=
���Z~s�r:V:ޚΜ�?}���/gX���3��)�i�S��Ggg�s�󈋉K��.�>.���Ƚ�Jt�q]�z�������ۯ�6�i�ܟ�4�)�Y3s���C�Q��?��0k߬~OCO�g��#/c/�W�װ��w��a�>�>r��>�<7�2�Y_�7��ȷ�O�o�_��C#�d�z����%g��A�[��z|!��?:�e����A���AA�����!h�쐭!��Α�i�P~���a�a��~'���W�?�p�X�1�5w��Cs�D�D�Dޛg1O9�-J5*>�.j<�7�4�?�.fY��X�XIlK9.*�6nl�������{�/�]py�����.,:�@L�N8��A*��%�w%�
y��g"/�6ш�C\*N�H*Mz�쑼5y$�3�,幄'���L
Lݛ:��v m2=:�1����qB�!M��g�g�fvˬe����n��/��k���Y-
�B��TZ(�*�geWf�͉�9���+��̳�ې7����ᒶ��KW-X潬j9�<qy�
�+�V�<���*m�O��W��~�&zMk�^�ʂ��k�U
�}����]OX/Yߵa���>������(�x��oʿ�ܔ���Ĺd�f�f���-�[����n
�ڴ
�V��E�/��(ۻ��C���<��e����;?T�T�T�T6��ݵa�n��{��4���[���>ɾ�UUM�f�e�I���?�����m]�Nmq����#�׹���=TR��+�G�����w-
6
U����#pDy��	�
:�v�{���vg/jB��F�S��[b[�O�>����z�G��4<YyJ�T�i��ӓg�ό���}~.��`ۢ�{�c��jo�t��E���;�;�\�t���W�W��:_m�t�<���Oǻ�����\k��z��{f���7���y���՞9=ݽ�zo�����~r'��˻�w'O�_�@�A�C݇�?[�����j�w����G�������C���ˆ
��8>99�?r��C�d�&����ˮ/~�����јѡ�򗓿m|�����������x31^�V��w�w��O�| (�h���SЧ�������c3-�AUiTXtXML:com.adobe.xmp<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c132 79.159284, 2016/04/19-13:13:40        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <xmp:CreatorTool>Adobe Photoshop CC 2015.5 (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2016-12-10T14:48:50+01:00</xmp:CreateDate>
         <xmp:MetadataDate>2016-12-10T16:53:32+01:00</xmp:MetadataDate>
         <xmp:ModifyDate>2016-12-10T16:53:32+01:00</xmp:ModifyDate>
         <dc:format>image/png</dc:format>
         <xmpMM:InstanceID>xmp.iid:80fb162f-aba5-c545-8291-c0c6830bf4e9</xmpMM:InstanceID>
         <xmpMM:DocumentID>adobe:docid:photoshop:c5ec5ea6-bef0-11e6-bd03-9486b91788a0</xmpMM:DocumentID>
         <xmpMM:OriginalDocumentID>xmp.did:c54b423c-6a2b-3846-8971-3886c9c4eb3a</xmpMM:OriginalDocumentID>
         <xmpMM:History>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>created</stEvt:action>
                  <stEvt:instanceID>xmp.iid:c54b423c-6a2b-3846-8971-3886c9c4eb3a</stEvt:instanceID>
                  <stEvt:when>2016-12-10T14:48:50+01:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC 2015.5 (Windows)</stEvt:softwareAgent>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:dab6cf69-6ec3-f847-a0ec-4dd35e3bc1c0</stEvt:instanceID>
                  <stEvt:when>2016-12-10T15:21:30+01:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC 2015.5 (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:04b0dda2-3dca-954b-bccb-1b7b7658bb7c</stEvt:instanceID>
                  <stEvt:when>2016-12-10T16:53:32+01:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC 2015.5 (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>converted</stEvt:action>
                  <stEvt:parameters>from application/vnd.adobe.photoshop to image/png</stEvt:parameters>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>derived</stEvt:action>
                  <stEvt:parameters>converted from application/vnd.adobe.photoshop to image/png</stEvt:parameters>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:80fb162f-aba5-c545-8291-c0c6830bf4e9</stEvt:instanceID>
                  <stEvt:when>2016-12-10T16:53:32+01:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CC 2015.5 (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <xmpMM:DerivedFrom rdf:parseType="Resource">
            <stRef:instanceID>xmp.iid:04b0dda2-3dca-954b-bccb-1b7b7658bb7c</stRef:instanceID>
            <stRef:documentID>xmp.did:c54b423c-6a2b-3846-8971-3886c9c4eb3a</stRef:documentID>
            <stRef:originalDocumentID>xmp.did:c54b423c-6a2b-3846-8971-3886c9c4eb3a</stRef:originalDocumentID>
         </xmpMM:DerivedFrom>
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <photoshop:ICCProfile>sRGB IEC61966-2.1</photoshop:ICCProfile>
         <tiff:Orientation>1</tiff:Orientation>
         <tiff:XResolution>720000/10000</tiff:XResolution>
         <tiff:YResolution>720000/10000</tiff:YResolution>
         <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
         <exif:ColorSpace>1</exif:ColorSpace>
         <exif:PixelXDimension>20</exif:PixelXDimension>
         <exif:PixelYDimension>40</exif:PixelYDimension>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                                                                                                    
                            
<?xpacket end="w"?>�d�� cHRMz%������u0�`:�o�_�F�IDATx��;�@�?���ƛ��)��E���B����,P{H��X�2�'[�f�ev��a�R&�����ET8�#Щ�:��{��aSAr����
��8p8`�I�%``�U�
,J��%�6S���=;χ0��$�f�9p+s�Xa�|=r���"f����ђ��ড়�y70e�(��[v�؉*zI��_�8��O�h
���o�����600��!�IEND�B`�PK���[a��j@@public/class-daln-public.phpnu�[���<?php

/*
 * this class should be used to work with the public side of wordpress
 */
class Daln_Public{
    
    //general class properties
    protected static $instance = null;
    private $shared = null;
    private $apply_ticker = true;

    /*
     * create an instance of this class
     */
    public static function get_instance() {

        if ( null == self::$instance ) {
            self::$instance = new self;
        }

        return self::$instance;

    }

    private function __construct() {
        
        //assign an instance of the shared class
        $this->shared = Daln_Shared::get_instance();

        //Write in the front-end head
        add_action('wp_head', array( $this, 'generate_ticker'));

        //Load public css and js
        add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_styles' ) );
        add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ) );

        /*
         * This hook is triggered right after a category is deleted with the Posts -> Category menu. It's placed here
         * because doesn't work if used in the Daln_Admin class.
         */
        add_action( 'delete_category', array( $this, 'ticker_delete_category' ) );
        
    }

    public function enqueue_styles() {
        wp_enqueue_style( $this->shared->get('slug') .'-general', $this->shared->get('url') . 'public/assets/css/general.css', array(), $this->shared->get('ver') );
    }

    public function enqueue_scripts() {

        wp_enqueue_script( $this->shared->get('slug') . 'general', $this->shared->get('url') . 'public/assets/js/general.js', array( 'jquery' ), $this->shared->get('ver') );

        if(intval(get_option("daln_load_momentjs"), 10) === 1){
            wp_enqueue_script( $this->shared->get('slug') . '-momentjs', $this->shared->get('url') . 'public/assets/js/momentjs/momentjs.js', array( 'jquery' ), $this->shared->get('ver') );
        }

    }

	/*
	 * This method generates in the <head> section of the page:
	 *
	 * - All the javascript variables used by general.js to generate the news ticker
	 * - The CSS of the ticker
	 */
    function generate_ticker(){

        /*
         * Verify if there is a ticker associated with this URL
         */

        //Get the current url
        $current_url = $this->shared->get_current_url();

        global $wpdb;
        $table_name = $wpdb->prefix . $this->shared->get('slug') . "_tickers";
        $safe_sql = $wpdb->prepare("SELECT * FROM $table_name WHERE url = %s ", $current_url);
        $ticker_obj = $wpdb->get_row($safe_sql);

        /*
         * If there isn't a ticker associated with this url use the ticker associated with the website if exists
         */
        if($ticker_obj === NULL){

            $table_name = $wpdb->prefix . $this->shared->get('slug') . "_tickers";
            $safe_sql = $wpdb->prepare("SELECT * FROM $table_name WHERE target = %d", 1);
            $ticker_obj = $wpdb->get_row($safe_sql);

            //if there is no ticker set the class property $apply_ticker to true and return
            if($ticker_obj === NULL){
                $this->apply_ticker = false;
            }

        }

        /*
         * Do not display the ticker if the "Enable Ticker" flag is set to no
         */
        if( $ticker_obj === NULL or intval($ticker_obj->enable_ticker, 10) == 0){
            $this->apply_ticker = false;
        }

        /*
         * Do not display the ticker if the "Mobile Detect" class detects that the current devices is a mobile device
         * and at the same time the "Enable with Mobile Devices" option is set to "No" (0). Do not even load the
         * Mobile Detect class and perform this check if the ticker should not be applied.
         */
        if($this->apply_ticker) {
            require_once( $this->shared->get( 'dir' ) . 'public/inc/mobile-detect/Mobile_Detect.php' );
            $detect = new Daln_Mobile_Detect();
            if ( $detect->isMobile() and intval( $ticker_obj->enable_with_mobile_devices, 10 ) == 0 ) {
                $this->apply_ticker = false;
            }
        }

        if($this->apply_ticker) {

	        //apply the ticker
            echo '<script type="text/javascript">';

                /*
                 * Flag used to verify if the ticker should be appended by javascript (in general.js) before the ending
                 * body tag
                 */
                echo 'var daln_apply_ticker = true;';

                //nonce used for the ajax requests
                echo 'var daln_nonce = "' . wp_create_nonce( "live-news" ) . '";';

                //set the ajax url variable in javascript
                echo 'var daln_ajax_url = "' . admin_url( 'admin-ajax.php' ) . '";';

                //set the plugin url variable in javascript
                echo 'var daln_plugin_url = "' . WP_PLUGIN_URL . '/live-news/";';

                //set the target attribute of the links
                if(intval($ticker_obj->open_links_new_tab, 10) == 1){
                    echo "var daln_target_attribute = '_blank';";
                }else{
                    echo "var daln_target_attribute = '_self';";
                }

                //set the sliding speed in a javascript variable
                $sliding_speed = intval( ( 50 / intval( $ticker_obj->sliding_speed, 10 ) ), 10 );
                echo 'var daln_sliding_speed = ' . $sliding_speed . ';';

                //set the sliding delay
                echo 'var daln_sliding_delay = ' . intval($ticker_obj->sliding_delay, 10) . ';';

                //set the rtl layout option in a javscript variable
                echo 'var daln_rtl_layout = ' . intval( $ticker_obj->enable_rtl_layout, 10 ) . ';';

                //set the number of cached cycles
                echo 'var daln_cached_cycles = ' . abs(intval($ticker_obj->cached_cycles, 10)) . ';';

                //set the ticker_id
                echo 'var daln_ticker_id = ' . intval($ticker_obj->id, 10) . ';';

		        //enable_links
	            if(intval($ticker_obj->enable_links, 10) == 1){
		            $enable_links_javascript_value = 'true';
	            }else{
		            $enable_links_javascript_value = 'false';
	            }
		        echo 'var daln_enable_links = ' . $enable_links_javascript_value . ';';

		        //clock offset
		        echo 'var daln_clock_offset = ' . intval($ticker_obj->clock_offset, 10) . ';';

                //clock format
                echo 'var daln_clock_format = ' . json_encode(stripslashes($ticker_obj->clock_format)) . ';';

                //clock source
	            echo 'var daln_clock_source = ' . intval($ticker_obj->clock_source, 10) . ';';

		        //clock autoupdate
		        echo 'var daln_clock_autoupdate = ' . intval($ticker_obj->clock_autoupdate, 10) . ';';

		        //clock autoupdate time
		        echo 'var daln_clock_autoupdate_time = ' . intval($ticker_obj->clock_autoupdate_time, 10) . ';';

	            /*
	             * If the transient exists generate the daln_ticker_transient JavaScript variable. Which is a string
	             * that includes the ticker XML.
	             */
                $ticker_transient = get_transient('daln_ticker_' . $ticker_obj->id);
                if($ticker_transient !== false){

                    /*
                     * Save the XML string in a JavaScript variable.
                     *
                     * Note that json_encode() is only used to avoid errors and escape the JavaScript variable, not
                     * to perform a conversion to json. The resulting daln_ticker_transient JavaScript variable is
                     * an XML string. (that will be converted to an actual XML Document by jQuery.parseXML() in
                     * general.js)
                     */
                    echo 'var daln_ticker_transient = ' . json_encode($ticker_transient) . ';';

                }

            echo '</script>' . "\n";

            echo '<style type="text/css">';

                if ( $ticker_obj->hide_featured_news == 2 or ( $ticker_obj->hide_featured_news == 3 and $detect->isMobile() ) ){

	                /*
	                 * If in "Hide the featured news" is selected "Yes" or if is selected "Only with Mobile Devices" and
	                 * the current device is a mobile device hide the featured news area remove the button used to open
	                 * and close the featured news area.
	                 */
                    echo "#daln-container{ min-height: 40px; }";
                    echo "#daln-featured-container{ display: none; }";
                    echo "#daln-close{ display: none; }";
                    echo "#daln-open{ display: none; }";

                }else{

					/*
					 * If in "Hide the featured news" is selected "No" or if is selected "Only with Mobile Devices" and
					 * the current device is not a mobile device use the "live_news_status" cookie to determine the
					 * status of the news ticker (open or closed).
					 */
	                if ( isset( $_COOKIE['live_news_status'] ) ) {

		                //If the live_news_status cookie exists set the gallery status based on this cookie
		                if ( $_COOKIE['live_news_status'] == "open" ) {
			                $current_status = "open";
		                } else {
			                $current_status = "closed";
		                }

	                } else {

		                /*
		                 * If the "live_news_status" cookie doesn't exist set the gallery status based on the
		                 * "Open news as default" option.
		                 */
		                if ( intval($ticker_obj->open_news_as_default, 10) == 1 ) {
			                $current_status = "open";
		                } else {
			                $current_status = "closed";
		                }

	                }

	                /*
	                 * Use the status to set the proper CSS
	                 */
	                if ( $current_status == "open" ) {

		                echo "#daln-container{ display: block; }";
		                echo "#daln-open{ display: none; }";

	                } else {

		                echo "#daln-container{ display: none; }";
		                echo "#daln-open{ display: block; }";

	                }

                }

		        //set the font family based on the plugin option
		        echo '#daln-featured-title, #daln-featured-title a,#daln-featured-excerpt, #daln-featured-excerpt a, #daln-clock, #daln-close, .daln-slider-single-news, .daln-slider-single-news a{ font-family: ' . htmlentities( stripslashes( $ticker_obj->font_family ), ENT_COMPAT ) . ' !important; }';

		        //set the sliding news background color
		        $color_a = $this->shared->rgb_hex_to_dec(str_replace('#', '', $ticker_obj->featured_news_background_color ));
		        echo "#daln-featured-container{ background: " . "rgba(" . $color_a['r'] . "," . $color_a['g'] . "," . $color_a['b'] . ", " . floatval($ticker_obj->featured_news_background_color_opacity) . ")" . "; }";

		        //set the sliding news background color
		        $color_a = $this->shared->rgb_hex_to_dec(str_replace('#', '', $ticker_obj->sliding_news_background_color ));
		        echo "#daln-slider{ background: " . "rgba(" . $color_a['r'] . "," . $color_a['g'] . "," . $color_a['b'] . ", " . floatval($ticker_obj->sliding_news_background_color_opacity) . ")" . "; }";

		        //set the font size of the textual elements
		        echo "#daln-featured-title{ font-size: " . intval( $ticker_obj->featured_title_font_size, 10 ) . "px; }";
		        echo "#daln-featured-excerpt{ font-size: " . intval( $ticker_obj->featured_excerpt_font_size, 10 ) . "px; }";
		        echo "#daln-slider-floating-content .daln-slider-single-news{ font-size: " . intval( $ticker_obj->sliding_news_font_size, 10 ) . "px; }";
		        echo "#daln-clock{ font-size: " . intval( $ticker_obj->clock_font_size, 10 ) . "px; }";

		        //hide the clock if this options is set in the plugin option
		        if ( $ticker_obj->hide_clock == "1" ) {
			        echo "#daln-clock{ display: none; }";
		        }

		        //set news css for the rtl layout
		        if ( intval($ticker_obj->enable_rtl_layout, 10) == 1 ) {
			        echo "#daln-featured-title-container, #daln-featured-title, #daln-featured-title a{ text-align: right !important; direction: rtl !important; unicode-bidi: embed !important; }";
			        echo "#daln-featured-excerpt-container, #daln-featured-excerpt a{ text-align: right !important; direction: rtl !important; unicode-bidi: embed !important; }";
			        echo "#daln-slider, #daln-slider-floating-content, .daln-slider-single-news{ text-align: right !important; direction: rtl !important; unicode-bidi: embed !important; }";
		        }

		        //set the open button image url
		        echo "#daln-open{background: url( '" . esc_attr(stripslashes($ticker_obj->open_button_image)) . "');}";

		        //set the close button image url
		        echo "#daln-close{background: url( '" . esc_attr(stripslashes($ticker_obj->close_button_image)) . "');}";

		        //set the clock background image url
		        echo "#daln-clock{background: url( '" . esc_attr(stripslashes($ticker_obj->clock_background_image)) . "');}";

		        //set the featured news title color
		        echo "#daln-featured-title a{color: " . esc_attr(stripslashes($ticker_obj->featured_news_title_color)) . ";}";

		        //set the featured news title color hover
		        echo "#daln-featured-title a:hover{color: " . esc_attr(stripslashes($ticker_obj->featured_news_title_color_hover)) . ";}";

		        //set the featured news excerpt color
		        echo "#daln-featured-excerpt{color: " . esc_attr(stripslashes($ticker_obj->featured_news_excerpt_color)) . ";}";

		        //set the sliding news color
		        echo ".daln-slider-single-news, .daln-slider-single-news a{color: " . esc_attr(stripslashes($ticker_obj->sliding_news_color)) . ";}";

		        //set the sliding news color hover
		        echo ".daln-slider-single-news a:hover{color: " . esc_attr(stripslashes($ticker_obj->sliding_news_color_hover)) . ";}";

		        //set the clock text color
		        echo "#daln-clock{color: " . esc_attr(stripslashes($ticker_obj->clock_text_color)) . ";}";

	            //set the sliding news margin
	            echo "#daln-slider-floating-content .daln-slider-single-news{margin-right: "  . intval( $ticker_obj->sliding_news_margin, 10 ) . "px !important; }";

	            //set the sliding news padding
	            echo "#daln-slider-floating-content .daln-slider-single-news{padding: 0 "  . intval( $ticker_obj->sliding_news_padding, 10 ) . "px !important; }";
	            echo "#daln-container .daln-image-before{margin: 0 "  . intval( $ticker_obj->sliding_news_padding, 10 ) . "px 0 0 !important; }";
		        echo "#daln-container .daln-image-after{margin: 0 0 0 "  . intval( $ticker_obj->sliding_news_padding, 10 ) . "px !important; }";

            echo '</style>';

	        //embed google fonts if selected
	        if ( mb_strlen(trim($ticker_obj->google_font)) > 0 ) {
		        echo "<link href='" . esc_url(stripslashes($ticker_obj->google_font)) . "' rel='stylesheet' type='text/css'>";
	        }

        }

    }

    /*
     * The purpose of this method is to prevent to have tickers associated with categories that no longer exist.
     * This method is called by the 'delete_category' action hook, which is triggered when a category is deleted from
     * the Posts -> Category menu. If the deleted category is included in a ticker the 'category' value of the ticker
     * will be set to 0, which is the 'All' value used to show all the categories of a ticker.
     */
    public function ticker_delete_category($term_id) {

        global $wpdb;
        $table_name = $wpdb->prefix . $this->shared->get('slug') . "_tickers";
        $safe_sql = $wpdb->prepare("UPDATE $table_name SET category = 0 WHERE category = %d", $term_id);
        $wpdb->query($safe_sql);

    }
    
}PK���[Z�Rk6B6B*public/inc/mobile-detect/Mobile_Detect.phpnu�[���<?php
/**
 * Mobile Detect Library
 * =====================
 *
 * Motto: "Every business should have a mobile detection script to detect mobile readers"
 *
 * Mobile_Detect is a lightweight PHP class for detecting mobile devices (including tablets).
 * It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.
 *
 * @author      Current authors: Serban Ghita <serbanghita@gmail.com>
 *                               Nick Ilyin <nick.ilyin@gmail.com>
 *
 *              Original author: Victor Stanciu <vic.stanciu@gmail.com>
 *
 * @license     Code and contributions have 'MIT License'
 *              More details: https://github.com/serbanghita/Mobile-Detect/blob/master/LICENSE.txt
 *
 * @link        Homepage:     http://mobiledetect.net
 *              GitHub Repo:  https://github.com/serbanghita/Mobile-Detect
 *              Google Code:  http://code.google.com/p/php-mobile-detect/
 *              README:       https://github.com/serbanghita/Mobile-Detect/blob/master/README.md
 *              HOWTO:        https://github.com/serbanghita/Mobile-Detect/wiki/Code-examples
 *
 * @version     2.8.24
 */

class Daln_Mobile_Detect
{
    /**
     * Mobile detection type.
     *
     * @deprecated since version 2.6.9
     */
    const DETECTION_TYPE_MOBILE     = 'mobile';

    /**
     * Extended detection type.
     *
     * @deprecated since version 2.6.9
     */
    const DETECTION_TYPE_EXTENDED   = 'extended';

    /**
     * A frequently used regular expression to extract version #s.
     *
     * @deprecated since version 2.6.9
     */
    const VER                       = '([\w._\+]+)';

    /**
     * Top-level device.
     */
    const MOBILE_GRADE_A            = 'A';

    /**
     * Mid-level device.
     */
    const MOBILE_GRADE_B            = 'B';

    /**
     * Low-level device.
     */
    const MOBILE_GRADE_C            = 'C';

    /**
     * Stores the version number of the current release.
     */
    const VERSION                   = '2.8.24';

    /**
     * A type for the version() method indicating a string return value.
     */
    const VERSION_TYPE_STRING       = 'text';

    /**
     * A type for the version() method indicating a float return value.
     */
    const VERSION_TYPE_FLOAT        = 'float';

    /**
     * A cache for resolved matches
     * @var array
     */
    protected $cache = array();

    /**
     * The User-Agent HTTP header is stored in here.
     * @var string
     */
    protected $userAgent = null;

    /**
     * HTTP headers in the PHP-flavor. So HTTP_USER_AGENT and SERVER_SOFTWARE.
     * @var array
     */
    protected $httpHeaders = array();

    /**
     * CloudFront headers. E.g. CloudFront-Is-Desktop-Viewer, CloudFront-Is-Mobile-Viewer & CloudFront-Is-Tablet-Viewer.
     * @var array
     */
    protected $cloudfrontHeaders = array();

    /**
     * The matching Regex.
     * This is good for debug.
     * @var string
     */
    protected $matchingRegex = null;

    /**
     * The matches extracted from the regex expression.
     * This is good for debug.
     * @var string
     */
    protected $matchesArray = null;

    /**
     * The detection type, using self::DETECTION_TYPE_MOBILE or self::DETECTION_TYPE_EXTENDED.
     *
     * @deprecated since version 2.6.9
     *
     * @var string
     */
    protected $detectionType = self::DETECTION_TYPE_MOBILE;

    /**
     * HTTP headers that trigger the 'isMobile' detection
     * to be true.
     *
     * @var array
     */
    protected static $mobileHeaders = array(

            'HTTP_ACCEPT'                  => array('matches' => array(
                                                                        // Opera Mini; @reference: http://dev.opera.com/articles/view/opera-binary-markup-language/
                                                                        'application/x-obml2d',
                                                                        // BlackBerry devices.
                                                                        'application/vnd.rim.html',
                                                                        'text/vnd.wap.wml',
                                                                        'application/vnd.wap.xhtml+xml'
                                            )),
            'HTTP_X_WAP_PROFILE'           => null,
            'HTTP_X_WAP_CLIENTID'          => null,
            'HTTP_WAP_CONNECTION'          => null,
            'HTTP_PROFILE'                 => null,
            // Reported by Opera on Nokia devices (eg. C3).
            'HTTP_X_OPERAMINI_PHONE_UA'    => null,
            'HTTP_X_NOKIA_GATEWAY_ID'      => null,
            'HTTP_X_ORANGE_ID'             => null,
            'HTTP_X_VODAFONE_3GPDPCONTEXT' => null,
            'HTTP_X_HUAWEI_USERID'         => null,
            // Reported by Windows Smartphones.
            'HTTP_UA_OS'                   => null,
            // Reported by Verizon, Vodafone proxy system.
            'HTTP_X_MOBILE_GATEWAY'        => null,
            // Seen this on HTC Sensation. SensationXE_Beats_Z715e.
            'HTTP_X_ATT_DEVICEID'          => null,
            // Seen this on a HTC.
            'HTTP_UA_CPU'                  => array('matches' => array('ARM')),
    );

    /**
     * List of mobile devices (phones).
     *
     * @var array
     */
    protected static $phoneDevices = array(
        'iPhone'        => '\biPhone\b|\biPod\b', // |\biTunes
        'BlackBerry'    => 'BlackBerry|\bBB10\b|rim[0-9]+',
        'HTC'           => 'HTC|HTC.*(Sensation|Evo|Vision|Explorer|6800|8100|8900|A7272|S510e|C110e|Legend|Desire|T8282)|APX515CKT|Qtek9090|APA9292KT|HD_mini|Sensation.*Z710e|PG86100|Z715e|Desire.*(A8181|HD)|ADR6200|ADR6400L|ADR6425|001HT|Inspire 4G|Android.*\bEVO\b|T-Mobile G1|Z520m',
        'Nexus'         => 'Nexus One|Nexus S|Galaxy.*Nexus|Android.*Nexus.*Mobile|Nexus 4|Nexus 5|Nexus 6',
        // @todo: Is 'Dell Streak' a tablet or a phone? ;)
        'Dell'          => 'Dell.*Streak|Dell.*Aero|Dell.*Venue|DELL.*Venue Pro|Dell Flash|Dell Smoke|Dell Mini 3iX|XCD28|XCD35|\b001DL\b|\b101DL\b|\bGS01\b',
        'Motorola'      => 'Motorola|DROIDX|DROID BIONIC|\bDroid\b.*Build|Android.*Xoom|HRI39|MOT-|A1260|A1680|A555|A853|A855|A953|A955|A956|Motorola.*ELECTRIFY|Motorola.*i1|i867|i940|MB200|MB300|MB501|MB502|MB508|MB511|MB520|MB525|MB526|MB611|MB612|MB632|MB810|MB855|MB860|MB861|MB865|MB870|ME501|ME502|ME511|ME525|ME600|ME632|ME722|ME811|ME860|ME863|ME865|MT620|MT710|MT716|MT720|MT810|MT870|MT917|Motorola.*TITANIUM|WX435|WX445|XT300|XT301|XT311|XT316|XT317|XT319|XT320|XT390|XT502|XT530|XT531|XT532|XT535|XT603|XT610|XT611|XT615|XT681|XT701|XT702|XT711|XT720|XT800|XT806|XT860|XT862|XT875|XT882|XT883|XT894|XT901|XT907|XT909|XT910|XT912|XT928|XT926|XT915|XT919|XT925|XT1021|\bMoto E\b',
        'Samsung'       => '\bSamsung\b|SM-G9250|GT-19300|SGH-I337|BGT-S5230|GT-B2100|GT-B2700|GT-B2710|GT-B3210|GT-B3310|GT-B3410|GT-B3730|GT-B3740|GT-B5510|GT-B5512|GT-B5722|GT-B6520|GT-B7300|GT-B7320|GT-B7330|GT-B7350|GT-B7510|GT-B7722|GT-B7800|GT-C3010|GT-C3011|GT-C3060|GT-C3200|GT-C3212|GT-C3212I|GT-C3262|GT-C3222|GT-C3300|GT-C3300K|GT-C3303|GT-C3303K|GT-C3310|GT-C3322|GT-C3330|GT-C3350|GT-C3500|GT-C3510|GT-C3530|GT-C3630|GT-C3780|GT-C5010|GT-C5212|GT-C6620|GT-C6625|GT-C6712|GT-E1050|GT-E1070|GT-E1075|GT-E1080|GT-E1081|GT-E1085|GT-E1087|GT-E1100|GT-E1107|GT-E1110|GT-E1120|GT-E1125|GT-E1130|GT-E1160|GT-E1170|GT-E1175|GT-E1180|GT-E1182|GT-E1200|GT-E1210|GT-E1225|GT-E1230|GT-E1390|GT-E2100|GT-E2120|GT-E2121|GT-E2152|GT-E2220|GT-E2222|GT-E2230|GT-E2232|GT-E2250|GT-E2370|GT-E2550|GT-E2652|GT-E3210|GT-E3213|GT-I5500|GT-I5503|GT-I5700|GT-I5800|GT-I5801|GT-I6410|GT-I6420|GT-I7110|GT-I7410|GT-I7500|GT-I8000|GT-I8150|GT-I8160|GT-I8190|GT-I8320|GT-I8330|GT-I8350|GT-I8530|GT-I8700|GT-I8703|GT-I8910|GT-I9000|GT-I9001|GT-I9003|GT-I9010|GT-I9020|GT-I9023|GT-I9070|GT-I9082|GT-I9100|GT-I9103|GT-I9220|GT-I9250|GT-I9300|GT-I9305|GT-I9500|GT-I9505|GT-M3510|GT-M5650|GT-M7500|GT-M7600|GT-M7603|GT-M8800|GT-M8910|GT-N7000|GT-S3110|GT-S3310|GT-S3350|GT-S3353|GT-S3370|GT-S3650|GT-S3653|GT-S3770|GT-S3850|GT-S5210|GT-S5220|GT-S5229|GT-S5230|GT-S5233|GT-S5250|GT-S5253|GT-S5260|GT-S5263|GT-S5270|GT-S5300|GT-S5330|GT-S5350|GT-S5360|GT-S5363|GT-S5369|GT-S5380|GT-S5380D|GT-S5560|GT-S5570|GT-S5600|GT-S5603|GT-S5610|GT-S5620|GT-S5660|GT-S5670|GT-S5690|GT-S5750|GT-S5780|GT-S5830|GT-S5839|GT-S6102|GT-S6500|GT-S7070|GT-S7200|GT-S7220|GT-S7230|GT-S7233|GT-S7250|GT-S7500|GT-S7530|GT-S7550|GT-S7562|GT-S7710|GT-S8000|GT-S8003|GT-S8500|GT-S8530|GT-S8600|SCH-A310|SCH-A530|SCH-A570|SCH-A610|SCH-A630|SCH-A650|SCH-A790|SCH-A795|SCH-A850|SCH-A870|SCH-A890|SCH-A930|SCH-A950|SCH-A970|SCH-A990|SCH-I100|SCH-I110|SCH-I400|SCH-I405|SCH-I500|SCH-I510|SCH-I515|SCH-I600|SCH-I730|SCH-I760|SCH-I770|SCH-I830|SCH-I910|SCH-I920|SCH-I959|SCH-LC11|SCH-N150|SCH-N300|SCH-R100|SCH-R300|SCH-R351|SCH-R400|SCH-R410|SCH-T300|SCH-U310|SCH-U320|SCH-U350|SCH-U360|SCH-U365|SCH-U370|SCH-U380|SCH-U410|SCH-U430|SCH-U450|SCH-U460|SCH-U470|SCH-U490|SCH-U540|SCH-U550|SCH-U620|SCH-U640|SCH-U650|SCH-U660|SCH-U700|SCH-U740|SCH-U750|SCH-U810|SCH-U820|SCH-U900|SCH-U940|SCH-U960|SCS-26UC|SGH-A107|SGH-A117|SGH-A127|SGH-A137|SGH-A157|SGH-A167|SGH-A177|SGH-A187|SGH-A197|SGH-A227|SGH-A237|SGH-A257|SGH-A437|SGH-A517|SGH-A597|SGH-A637|SGH-A657|SGH-A667|SGH-A687|SGH-A697|SGH-A707|SGH-A717|SGH-A727|SGH-A737|SGH-A747|SGH-A767|SGH-A777|SGH-A797|SGH-A817|SGH-A827|SGH-A837|SGH-A847|SGH-A867|SGH-A877|SGH-A887|SGH-A897|SGH-A927|SGH-B100|SGH-B130|SGH-B200|SGH-B220|SGH-C100|SGH-C110|SGH-C120|SGH-C130|SGH-C140|SGH-C160|SGH-C170|SGH-C180|SGH-C200|SGH-C207|SGH-C210|SGH-C225|SGH-C230|SGH-C417|SGH-C450|SGH-D307|SGH-D347|SGH-D357|SGH-D407|SGH-D415|SGH-D780|SGH-D807|SGH-D980|SGH-E105|SGH-E200|SGH-E315|SGH-E316|SGH-E317|SGH-E335|SGH-E590|SGH-E635|SGH-E715|SGH-E890|SGH-F300|SGH-F480|SGH-I200|SGH-I300|SGH-I320|SGH-I550|SGH-I577|SGH-I600|SGH-I607|SGH-I617|SGH-I627|SGH-I637|SGH-I677|SGH-I700|SGH-I717|SGH-I727|SGH-i747M|SGH-I777|SGH-I780|SGH-I827|SGH-I847|SGH-I857|SGH-I896|SGH-I897|SGH-I900|SGH-I907|SGH-I917|SGH-I927|SGH-I937|SGH-I997|SGH-J150|SGH-J200|SGH-L170|SGH-L700|SGH-M110|SGH-M150|SGH-M200|SGH-N105|SGH-N500|SGH-N600|SGH-N620|SGH-N625|SGH-N700|SGH-N710|SGH-P107|SGH-P207|SGH-P300|SGH-P310|SGH-P520|SGH-P735|SGH-P777|SGH-Q105|SGH-R210|SGH-R220|SGH-R225|SGH-S105|SGH-S307|SGH-T109|SGH-T119|SGH-T139|SGH-T209|SGH-T219|SGH-T229|SGH-T239|SGH-T249|SGH-T259|SGH-T309|SGH-T319|SGH-T329|SGH-T339|SGH-T349|SGH-T359|SGH-T369|SGH-T379|SGH-T409|SGH-T429|SGH-T439|SGH-T459|SGH-T469|SGH-T479|SGH-T499|SGH-T509|SGH-T519|SGH-T539|SGH-T559|SGH-T589|SGH-T609|SGH-T619|SGH-T629|SGH-T639|SGH-T659|SGH-T669|SGH-T679|SGH-T709|SGH-T719|SGH-T729|SGH-T739|SGH-T746|SGH-T749|SGH-T759|SGH-T769|SGH-T809|SGH-T819|SGH-T839|SGH-T919|SGH-T929|SGH-T939|SGH-T959|SGH-T989|SGH-U100|SGH-U200|SGH-U800|SGH-V205|SGH-V206|SGH-X100|SGH-X105|SGH-X120|SGH-X140|SGH-X426|SGH-X427|SGH-X475|SGH-X495|SGH-X497|SGH-X507|SGH-X600|SGH-X610|SGH-X620|SGH-X630|SGH-X700|SGH-X820|SGH-X890|SGH-Z130|SGH-Z150|SGH-Z170|SGH-ZX10|SGH-ZX20|SHW-M110|SPH-A120|SPH-A400|SPH-A420|SPH-A460|SPH-A500|SPH-A560|SPH-A600|SPH-A620|SPH-A660|SPH-A700|SPH-A740|SPH-A760|SPH-A790|SPH-A800|SPH-A820|SPH-A840|SPH-A880|SPH-A900|SPH-A940|SPH-A960|SPH-D600|SPH-D700|SPH-D710|SPH-D720|SPH-I300|SPH-I325|SPH-I330|SPH-I350|SPH-I500|SPH-I600|SPH-I700|SPH-L700|SPH-M100|SPH-M220|SPH-M240|SPH-M300|SPH-M305|SPH-M320|SPH-M330|SPH-M350|SPH-M360|SPH-M370|SPH-M380|SPH-M510|SPH-M540|SPH-M550|SPH-M560|SPH-M570|SPH-M580|SPH-M610|SPH-M620|SPH-M630|SPH-M800|SPH-M810|SPH-M850|SPH-M900|SPH-M910|SPH-M920|SPH-M930|SPH-N100|SPH-N200|SPH-N240|SPH-N300|SPH-N400|SPH-Z400|SWC-E100|SCH-i909|GT-N7100|GT-N7105|SCH-I535|SM-N900A|SGH-I317|SGH-T999L|GT-S5360B|GT-I8262|GT-S6802|GT-S6312|GT-S6310|GT-S5312|GT-S5310|GT-I9105|GT-I8510|GT-S6790N|SM-G7105|SM-N9005|GT-S5301|GT-I9295|GT-I9195|SM-C101|GT-S7392|GT-S7560|GT-B7610|GT-I5510|GT-S7582|GT-S7530E|GT-I8750|SM-G9006V|SM-G9008V|SM-G9009D|SM-G900A|SM-G900D|SM-G900F|SM-G900H|SM-G900I|SM-G900J|SM-G900K|SM-G900L|SM-G900M|SM-G900P|SM-G900R4|SM-G900S|SM-G900T|SM-G900V|SM-G900W8|SHV-E160K|SCH-P709|SCH-P729|SM-T2558|GT-I9205|SM-G9350|SM-J120F',
        'LG'            => '\bLG\b;|LG[- ]?(C800|C900|E400|E610|E900|E-900|F160|F180K|F180L|F180S|730|855|L160|LS740|LS840|LS970|LU6200|MS690|MS695|MS770|MS840|MS870|MS910|P500|P700|P705|VM696|AS680|AS695|AX840|C729|E970|GS505|272|C395|E739BK|E960|L55C|L75C|LS696|LS860|P769BK|P350|P500|P509|P870|UN272|US730|VS840|VS950|LN272|LN510|LS670|LS855|LW690|MN270|MN510|P509|P769|P930|UN200|UN270|UN510|UN610|US670|US740|US760|UX265|UX840|VN271|VN530|VS660|VS700|VS740|VS750|VS910|VS920|VS930|VX9200|VX11000|AX840A|LW770|P506|P925|P999|E612|D955|D802|MS323)',
        'Sony'          => 'SonyST|SonyLT|SonyEricsson|SonyEricssonLT15iv|LT18i|E10i|LT28h|LT26w|SonyEricssonMT27i|C5303|C6902|C6903|C6906|C6943|D2533',
        'Asus'          => 'Asus.*Galaxy|PadFone.*Mobile',
        'NokiaLumia'    => 'Lumia [0-9]{3,4}',
        // http://www.micromaxinfo.com/mobiles/smartphones
        // Added because the codes might conflict with Acer Tablets.
        'Micromax'      => 'Micromax.*\b(A210|A92|A88|A72|A111|A110Q|A115|A116|A110|A90S|A26|A51|A35|A54|A25|A27|A89|A68|A65|A57|A90)\b',
        // @todo Complete the regex.
        'Palm'          => 'PalmSource|Palm', // avantgo|blazer|elaine|hiptop|plucker|xiino ;
        'Vertu'         => 'Vertu|Vertu.*Ltd|Vertu.*Ascent|Vertu.*Ayxta|Vertu.*Constellation(F|Quest)?|Vertu.*Monika|Vertu.*Signature', // Just for fun ;)
        // http://www.pantech.co.kr/en/prod/prodList.do?gbrand=VEGA (PANTECH)
        // Most of the VEGA devices are legacy. PANTECH seem to be newer devices based on Android.
        'Pantech'       => 'PANTECH|IM-A850S|IM-A840S|IM-A830L|IM-A830K|IM-A830S|IM-A820L|IM-A810K|IM-A810S|IM-A800S|IM-T100K|IM-A725L|IM-A780L|IM-A775C|IM-A770K|IM-A760S|IM-A750K|IM-A740S|IM-A730S|IM-A720L|IM-A710K|IM-A690L|IM-A690S|IM-A650S|IM-A630K|IM-A600S|VEGA PTL21|PT003|P8010|ADR910L|P6030|P6020|P9070|P4100|P9060|P5000|CDM8992|TXT8045|ADR8995|IS11PT|P2030|P6010|P8000|PT002|IS06|CDM8999|P9050|PT001|TXT8040|P2020|P9020|P2000|P7040|P7000|C790',
        // http://www.fly-phone.com/devices/smartphones/ ; Included only smartphones.
        'Fly'           => 'IQ230|IQ444|IQ450|IQ440|IQ442|IQ441|IQ245|IQ256|IQ236|IQ255|IQ235|IQ245|IQ275|IQ240|IQ285|IQ280|IQ270|IQ260|IQ250',
        // http://fr.wikomobile.com
        'Wiko'          => 'KITE 4G|HIGHWAY|GETAWAY|STAIRWAY|DARKSIDE|DARKFULL|DARKNIGHT|DARKMOON|SLIDE|WAX 4G|RAINBOW|BLOOM|SUNSET|GOA(?!nna)|LENNY|BARRY|IGGY|OZZY|CINK FIVE|CINK PEAX|CINK PEAX 2|CINK SLIM|CINK SLIM 2|CINK +|CINK KING|CINK PEAX|CINK SLIM|SUBLIM',
        'iMobile'        => 'i-mobile (IQ|i-STYLE|idea|ZAA|Hitz)',
        // Added simvalley mobile just for fun. They have some interesting devices.
        // http://www.simvalley.fr/telephonie---gps-_22_telephonie-mobile_telephones_.html
        'SimValley'     => '\b(SP-80|XT-930|SX-340|XT-930|SX-310|SP-360|SP60|SPT-800|SP-120|SPT-800|SP-140|SPX-5|SPX-8|SP-100|SPX-8|SPX-12)\b',
         // Wolfgang - a brand that is sold by Aldi supermarkets.
         // http://www.wolfgangmobile.com/
        'Wolfgang'      => 'AT-B24D|AT-AS50HD|AT-AS40W|AT-AS55HD|AT-AS45q2|AT-B26D|AT-AS50Q',
        'Alcatel'       => 'Alcatel',
        'Nintendo' => 'Nintendo 3DS',
        // http://en.wikipedia.org/wiki/Amoi
        'Amoi'          => 'Amoi',
        // http://en.wikipedia.org/wiki/INQ
        'INQ'           => 'INQ',
        // @Tapatalk is a mobile app; http://support.tapatalk.com/threads/smf-2-0-2-os-and-browser-detection-plugin-and-tapatalk.15565/#post-79039
        'GenericPhone'  => 'Tapatalk|PDA;|SAGEM|\bmmp\b|pocket|\bpsp\b|symbian|Smartphone|smartfon|treo|up.browser|up.link|vodafone|\bwap\b|nokia|Series40|Series60|S60|SonyEricsson|N900|MAUI.*WAP.*Browser',
    );

    /**
     * List of tablet devices.
     *
     * @var array
     */
    protected static $tabletDevices = array(
        // @todo: check for mobile friendly emails topic.
        'iPad'              => 'iPad|iPad.*Mobile',
        // Removed |^.*Android.*Nexus(?!(?:Mobile).)*$
        // @see #442
        'NexusTablet'       => 'Android.*Nexus[\s]+(7|9|10)',
        'SamsungTablet'     => 'SAMSUNG.*Tablet|Galaxy.*Tab|SC-01C|GT-P1000|GT-P1003|GT-P1010|GT-P3105|GT-P6210|GT-P6800|GT-P6810|GT-P7100|GT-P7300|GT-P7310|GT-P7500|GT-P7510|SCH-I800|SCH-I815|SCH-I905|SGH-I957|SGH-I987|SGH-T849|SGH-T859|SGH-T869|SPH-P100|GT-P3100|GT-P3108|GT-P3110|GT-P5100|GT-P5110|GT-P6200|GT-P7320|GT-P7511|GT-N8000|GT-P8510|SGH-I497|SPH-P500|SGH-T779|SCH-I705|SCH-I915|GT-N8013|GT-P3113|GT-P5113|GT-P8110|GT-N8010|GT-N8005|GT-N8020|GT-P1013|GT-P6201|GT-P7501|GT-N5100|GT-N5105|GT-N5110|SHV-E140K|SHV-E140L|SHV-E140S|SHV-E150S|SHV-E230K|SHV-E230L|SHV-E230S|SHW-M180K|SHW-M180L|SHW-M180S|SHW-M180W|SHW-M300W|SHW-M305W|SHW-M380K|SHW-M380S|SHW-M380W|SHW-M430W|SHW-M480K|SHW-M480S|SHW-M480W|SHW-M485W|SHW-M486W|SHW-M500W|GT-I9228|SCH-P739|SCH-I925|GT-I9200|GT-P5200|GT-P5210|GT-P5210X|SM-T311|SM-T310|SM-T310X|SM-T210|SM-T210R|SM-T211|SM-P600|SM-P601|SM-P605|SM-P900|SM-P901|SM-T217|SM-T217A|SM-T217S|SM-P6000|SM-T3100|SGH-I467|XE500|SM-T110|GT-P5220|GT-I9200X|GT-N5110X|GT-N5120|SM-P905|SM-T111|SM-T2105|SM-T315|SM-T320|SM-T320X|SM-T321|SM-T520|SM-T525|SM-T530NU|SM-T230NU|SM-T330NU|SM-T900|XE500T1C|SM-P605V|SM-P905V|SM-T337V|SM-T537V|SM-T707V|SM-T807V|SM-P600X|SM-P900X|SM-T210X|SM-T230|SM-T230X|SM-T325|GT-P7503|SM-T531|SM-T330|SM-T530|SM-T705|SM-T705C|SM-T535|SM-T331|SM-T800|SM-T700|SM-T537|SM-T807|SM-P907A|SM-T337A|SM-T537A|SM-T707A|SM-T807A|SM-T237|SM-T807P|SM-P607T|SM-T217T|SM-T337T|SM-T807T|SM-T116NQ|SM-P550|SM-T350|SM-T550|SM-T9000|SM-P9000|SM-T705Y|SM-T805|GT-P3113|SM-T710|SM-T810|SM-T815|SM-T360|SM-T533|SM-T113|SM-T335|SM-T715|SM-T560|SM-T670|SM-T677|SM-T377|SM-T567|SM-T357T|SM-T555|SM-T561|SM-T713|SM-T719|SM-T813|SM-T819|SM-T580|SM-T355Y|SM-T280', // SCH-P709|SCH-P729|SM-T2558|GT-I9205 - Samsung Mega - treat them like a regular phone.
        // http://docs.aws.amazon.com/silk/latest/developerguide/user-agent.html
        'Kindle'            => 'Kindle|Silk.*Accelerated|Android.*\b(KFOT|KFTT|KFJWI|KFJWA|KFOTE|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|WFJWAE|KFSAWA|KFSAWI|KFASWI|KFARWI)\b',
        // Only the Surface tablets with Windows RT are considered mobile.
        // http://msdn.microsoft.com/en-us/library/ie/hh920767(v=vs.85).aspx
        'SurfaceTablet'     => 'Windows NT [0-9.]+; ARM;.*(Tablet|ARMBJS)',
        // http://shopping1.hp.com/is-bin/INTERSHOP.enfinity/WFS/WW-USSMBPublicStore-Site/en_US/-/USD/ViewStandardCatalog-Browse?CatalogCategoryID=JfIQ7EN5lqMAAAEyDcJUDwMT
        'HPTablet'          => 'HP Slate (7|8|10)|HP ElitePad 900|hp-tablet|EliteBook.*Touch|HP 8|Slate 21|HP SlateBook 10',
        // Watch out for PadFone, see #132.
        // http://www.asus.com/de/Tablets_Mobile/Memo_Pad_Products/
        'AsusTablet'        => '^.*PadFone((?!Mobile).)*$|Transformer|TF101|TF101G|TF300T|TF300TG|TF300TL|TF700T|TF700KL|TF701T|TF810C|ME171|ME301T|ME302C|ME371MG|ME370T|ME372MG|ME172V|ME173X|ME400C|Slider SL101|\bK00F\b|\bK00C\b|\bK00E\b|\bK00L\b|TX201LA|ME176C|ME102A|\bM80TA\b|ME372CL|ME560CG|ME372CG|ME302KL| K010 | K011 | K017 | K01E |ME572C|ME103K|ME170C|ME171C|\bME70C\b|ME581C|ME581CL|ME8510C|ME181C|P01Y|PO1MA|P01Z',
        'BlackBerryTablet'  => 'PlayBook|RIM Tablet',
        'HTCtablet'         => 'HTC_Flyer_P512|HTC Flyer|HTC Jetstream|HTC-P715a|HTC EVO View 4G|PG41200|PG09410',
        'MotorolaTablet'    => 'xoom|sholest|MZ615|MZ605|MZ505|MZ601|MZ602|MZ603|MZ604|MZ606|MZ607|MZ608|MZ609|MZ615|MZ616|MZ617',
        'NookTablet'        => 'Android.*Nook|NookColor|nook browser|BNRV200|BNRV200A|BNTV250|BNTV250A|BNTV400|BNTV600|LogicPD Zoom2',
        // http://www.acer.ro/ac/ro/RO/content/drivers
        // http://www.packardbell.co.uk/pb/en/GB/content/download (Packard Bell is part of Acer)
        // http://us.acer.com/ac/en/US/content/group/tablets
        // http://www.acer.de/ac/de/DE/content/models/tablets/
        // Can conflict with Micromax and Motorola phones codes.
        'AcerTablet'        => 'Android.*; \b(A100|A101|A110|A200|A210|A211|A500|A501|A510|A511|A700|A701|W500|W500P|W501|W501P|W510|W511|W700|G100|G100W|B1-A71|B1-710|B1-711|A1-810|A1-811|A1-830)\b|W3-810|\bA3-A10\b|\bA3-A11\b|\bA3-A20\b|\bA3-A30',
        // http://eu.computers.toshiba-europe.com/innovation/family/Tablets/1098744/banner_id/tablet_footerlink/
        // http://us.toshiba.com/tablets/tablet-finder
        // http://www.toshiba.co.jp/regza/tablet/
        'ToshibaTablet'     => 'Android.*(AT100|AT105|AT200|AT205|AT270|AT275|AT300|AT305|AT1S5|AT500|AT570|AT700|AT830)|TOSHIBA.*FOLIO',
        // http://www.nttdocomo.co.jp/english/service/developer/smart_phone/technical_info/spec/index.html
        // http://www.lg.com/us/tablets
        'LGTablet'          => '\bL-06C|LG-V909|LG-V900|LG-V700|LG-V510|LG-V500|LG-V410|LG-V400|LG-VK810\b',
        'FujitsuTablet'     => 'Android.*\b(F-01D|F-02F|F-05E|F-10D|M532|Q572)\b',
        // Prestigio Tablets http://www.prestigio.com/support
        'PrestigioTablet'   => 'PMP3170B|PMP3270B|PMP3470B|PMP7170B|PMP3370B|PMP3570C|PMP5870C|PMP3670B|PMP5570C|PMP5770D|PMP3970B|PMP3870C|PMP5580C|PMP5880D|PMP5780D|PMP5588C|PMP7280C|PMP7280C3G|PMP7280|PMP7880D|PMP5597D|PMP5597|PMP7100D|PER3464|PER3274|PER3574|PER3884|PER5274|PER5474|PMP5097CPRO|PMP5097|PMP7380D|PMP5297C|PMP5297C_QUAD|PMP812E|PMP812E3G|PMP812F|PMP810E|PMP880TD|PMT3017|PMT3037|PMT3047|PMT3057|PMT7008|PMT5887|PMT5001|PMT5002',
        // http://support.lenovo.com/en_GB/downloads/default.page?#
        'LenovoTablet'      => 'Lenovo TAB|Idea(Tab|Pad)( A1|A10| K1|)|ThinkPad([ ]+)?Tablet|YT3-X90L|YT3-X90F|YT3-X90X|Lenovo.*(S2109|S2110|S5000|S6000|K3011|A3000|A3500|A1000|A2107|A2109|A1107|A5500|A7600|B6000|B8000|B8080)(-|)(FL|F|HV|H|)',
        // http://www.dell.com/support/home/us/en/04/Products/tab_mob/tablets
        'DellTablet'        => 'Venue 11|Venue 8|Venue 7|Dell Streak 10|Dell Streak 7',
        // http://www.yarvik.com/en/matrix/tablets/
        'YarvikTablet'      => 'Android.*\b(TAB210|TAB211|TAB224|TAB250|TAB260|TAB264|TAB310|TAB360|TAB364|TAB410|TAB411|TAB420|TAB424|TAB450|TAB460|TAB461|TAB464|TAB465|TAB467|TAB468|TAB07-100|TAB07-101|TAB07-150|TAB07-151|TAB07-152|TAB07-200|TAB07-201-3G|TAB07-210|TAB07-211|TAB07-212|TAB07-214|TAB07-220|TAB07-400|TAB07-485|TAB08-150|TAB08-200|TAB08-201-3G|TAB08-201-30|TAB09-100|TAB09-211|TAB09-410|TAB10-150|TAB10-201|TAB10-211|TAB10-400|TAB10-410|TAB13-201|TAB274EUK|TAB275EUK|TAB374EUK|TAB462EUK|TAB474EUK|TAB9-200)\b',
        'MedionTablet'      => 'Android.*\bOYO\b|LIFE.*(P9212|P9514|P9516|S9512)|LIFETAB',
        'ArnovaTablet'      => '97G4|AN10G2|AN7bG3|AN7fG3|AN8G3|AN8cG3|AN7G3|AN9G3|AN7dG3|AN7dG3ST|AN7dG3ChildPad|AN10bG3|AN10bG3DT|AN9G2',
        // http://www.intenso.de/kategorie_en.php?kategorie=33
        // @todo: http://www.nbhkdz.com/read/b8e64202f92a2df129126bff.html - investigate
        'IntensoTablet'     => 'INM8002KP|INM1010FP|INM805ND|Intenso Tab|TAB1004',
        // IRU.ru Tablets http://www.iru.ru/catalog/soho/planetable/
        'IRUTablet'         => 'M702pro',
        'MegafonTablet'     => 'MegaFon V9|\bZTE V9\b|Android.*\bMT7A\b',
        // http://www.e-boda.ro/tablete-pc.html
        'EbodaTablet'       => 'E-Boda (Supreme|Impresspeed|Izzycomm|Essential)',
        // http://www.allview.ro/produse/droseries/lista-tablete-pc/
        'AllViewTablet'           => 'Allview.*(Viva|Alldro|City|Speed|All TV|Frenzy|Quasar|Shine|TX1|AX1|AX2)',
        // http://wiki.archosfans.com/index.php?title=Main_Page
        'ArchosTablet'      => '\b(101G9|80G9|A101IT)\b|Qilive 97R|Archos5|\bARCHOS (70|79|80|90|97|101|FAMILYPAD|)(b|)(G10| Cobalt| TITANIUM(HD|)| Xenon| Neon|XSK| 2| XS 2| PLATINUM| CARBON|GAMEPAD)\b',
        // http://www.ainol.com/plugin.php?identifier=ainol&module=product
        'AinolTablet'       => 'NOVO7|NOVO8|NOVO10|Novo7Aurora|Novo7Basic|NOVO7PALADIN|novo9-Spark',
        'NokiaLumiaTablet'  => 'Lumia 2520',
        // @todo: inspect http://esupport.sony.com/US/p/select-system.pl?DIRECTOR=DRIVER
        // Readers http://www.atsuhiro-me.net/ebook/sony-reader/sony-reader-web-browser
        // http://www.sony.jp/support/tablet/
        'SonyTablet'        => 'Sony.*Tablet|Xperia Tablet|Sony Tablet S|SO-03E|SGPT12|SGPT13|SGPT114|SGPT121|SGPT122|SGPT123|SGPT111|SGPT112|SGPT113|SGPT131|SGPT132|SGPT133|SGPT211|SGPT212|SGPT213|SGP311|SGP312|SGP321|EBRD1101|EBRD1102|EBRD1201|SGP351|SGP341|SGP511|SGP512|SGP521|SGP541|SGP551|SGP621|SGP612|SOT31',
        // http://www.support.philips.com/support/catalog/worldproducts.jsp?userLanguage=en&userCountry=cn&categoryid=3G_LTE_TABLET_SU_CN_CARE&title=3G%20tablets%20/%20LTE%20range&_dyncharset=UTF-8
        'PhilipsTablet'     => '\b(PI2010|PI3000|PI3100|PI3105|PI3110|PI3205|PI3210|PI3900|PI4010|PI7000|PI7100)\b',
        // db + http://www.cube-tablet.com/buy-products.html
        'CubeTablet'        => 'Android.*(K8GT|U9GT|U10GT|U16GT|U17GT|U18GT|U19GT|U20GT|U23GT|U30GT)|CUBE U8GT',
        // http://www.cobyusa.com/?p=pcat&pcat_id=3001
        'CobyTablet'        => 'MID1042|MID1045|MID1125|MID1126|MID7012|MID7014|MID7015|MID7034|MID7035|MID7036|MID7042|MID7048|MID7127|MID8042|MID8048|MID8127|MID9042|MID9740|MID9742|MID7022|MID7010',
        // http://www.match.net.cn/products.asp
        'MIDTablet'         => 'M9701|M9000|M9100|M806|M1052|M806|T703|MID701|MID713|MID710|MID727|MID760|MID830|MID728|MID933|MID125|MID810|MID732|MID120|MID930|MID800|MID731|MID900|MID100|MID820|MID735|MID980|MID130|MID833|MID737|MID960|MID135|MID860|MID736|MID140|MID930|MID835|MID733|MID4X10',
        // http://www.msi.com/support
        // @todo Research the Windows Tablets.
        'MSITablet' => 'MSI \b(Primo 73K|Primo 73L|Primo 81L|Primo 77|Primo 93|Primo 75|Primo 76|Primo 73|Primo 81|Primo 91|Primo 90|Enjoy 71|Enjoy 7|Enjoy 10)\b',
        // @todo http://www.kyoceramobile.com/support/drivers/
    //    'KyoceraTablet' => null,
        // @todo http://intexuae.com/index.php/category/mobile-devices/tablets-products/
    //    'IntextTablet' => null,
        // http://pdadb.net/index.php?m=pdalist&list=SMiT (NoName Chinese Tablets)
        // http://www.imp3.net/14/show.php?itemid=20454
        'SMiTTablet'        => 'Android.*(\bMID\b|MID-560|MTV-T1200|MTV-PND531|MTV-P1101|MTV-PND530)',
        // http://www.rock-chips.com/index.php?do=prod&pid=2
        'RockChipTablet'    => 'Android.*(RK2818|RK2808A|RK2918|RK3066)|RK2738|RK2808A',
        // http://www.fly-phone.com/devices/tablets/ ; http://www.fly-phone.com/service/
        'FlyTablet'         => 'IQ310|Fly Vision',
        // http://www.bqreaders.com/gb/tablets-prices-sale.html
        'bqTablet'          => 'Android.*(bq)?.*(Elcano|Curie|Edison|Maxwell|Kepler|Pascal|Tesla|Hypatia|Platon|Newton|Livingstone|Cervantes|Avant|Aquaris [E|M]10)|Maxwell.*Lite|Maxwell.*Plus',
        // http://www.huaweidevice.com/worldwide/productFamily.do?method=index&directoryId=5011&treeId=3290
        // http://www.huaweidevice.com/worldwide/downloadCenter.do?method=index&directoryId=3372&treeId=0&tb=1&type=software (including legacy tablets)
        'HuaweiTablet'      => 'MediaPad|MediaPad 7 Youth|IDEOS S7|S7-201c|S7-202u|S7-101|S7-103|S7-104|S7-105|S7-106|S7-201|S7-Slim',
        // Nec or Medias Tab
        'NecTablet'         => '\bN-06D|\bN-08D',
        // Pantech Tablets: http://www.pantechusa.com/phones/
        'PantechTablet'     => 'Pantech.*P4100',
        // Broncho Tablets: http://www.broncho.cn/ (hard to find)
        'BronchoTablet'     => 'Broncho.*(N701|N708|N802|a710)',
        // http://versusuk.com/support.html
        'VersusTablet'      => 'TOUCHPAD.*[78910]|\bTOUCHTAB\b',
        // http://www.zync.in/index.php/our-products/tablet-phablets
        'ZyncTablet'        => 'z1000|Z99 2G|z99|z930|z999|z990|z909|Z919|z900',
        // http://www.positivoinformatica.com.br/www/pessoal/tablet-ypy/
        'PositivoTablet'    => 'TB07STA|TB10STA|TB07FTA|TB10FTA',
        // https://www.nabitablet.com/
        'NabiTablet'        => 'Android.*\bNabi',
        'KoboTablet'        => 'Kobo Touch|\bK080\b|\bVox\b Build|\bArc\b Build',
        // French Danew Tablets http://www.danew.com/produits-tablette.php
        'DanewTablet'       => 'DSlide.*\b(700|701R|702|703R|704|802|970|971|972|973|974|1010|1012)\b',
        // Texet Tablets and Readers http://www.texet.ru/tablet/
        'TexetTablet'       => 'NaviPad|TB-772A|TM-7045|TM-7055|TM-9750|TM-7016|TM-7024|TM-7026|TM-7041|TM-7043|TM-7047|TM-8041|TM-9741|TM-9747|TM-9748|TM-9751|TM-7022|TM-7021|TM-7020|TM-7011|TM-7010|TM-7023|TM-7025|TM-7037W|TM-7038W|TM-7027W|TM-9720|TM-9725|TM-9737W|TM-1020|TM-9738W|TM-9740|TM-9743W|TB-807A|TB-771A|TB-727A|TB-725A|TB-719A|TB-823A|TB-805A|TB-723A|TB-715A|TB-707A|TB-705A|TB-709A|TB-711A|TB-890HD|TB-880HD|TB-790HD|TB-780HD|TB-770HD|TB-721HD|TB-710HD|TB-434HD|TB-860HD|TB-840HD|TB-760HD|TB-750HD|TB-740HD|TB-730HD|TB-722HD|TB-720HD|TB-700HD|TB-500HD|TB-470HD|TB-431HD|TB-430HD|TB-506|TB-504|TB-446|TB-436|TB-416|TB-146SE|TB-126SE',
        // Avoid detecting 'PLAYSTATION 3' as mobile.
        'PlaystationTablet' => 'Playstation.*(Portable|Vita)',
        // http://www.trekstor.de/surftabs.html
        'TrekstorTablet'    => 'ST10416-1|VT10416-1|ST70408-1|ST702xx-1|ST702xx-2|ST80208|ST97216|ST70104-2|VT10416-2|ST10216-2A|SurfTab',
        // http://www.pyleaudio.com/Products.aspx?%2fproducts%2fPersonal-Electronics%2fTablets
        'PyleAudioTablet'   => '\b(PTBL10CEU|PTBL10C|PTBL72BC|PTBL72BCEU|PTBL7CEU|PTBL7C|PTBL92BC|PTBL92BCEU|PTBL9CEU|PTBL9CUK|PTBL9C)\b',
        // http://www.advandigital.com/index.php?link=content-product&jns=JP001
        // because of the short codenames we have to include whitespaces to reduce the possible conflicts.
        'AdvanTablet'       => 'Android.* \b(E3A|T3X|T5C|T5B|T3E|T3C|T3B|T1J|T1F|T2A|T1H|T1i|E1C|T1-E|T5-A|T4|E1-B|T2Ci|T1-B|T1-D|O1-A|E1-A|T1-A|T3A|T4i)\b ',
        // http://www.danytech.com/category/tablet-pc
        'DanyTechTablet' => 'Genius Tab G3|Genius Tab S2|Genius Tab Q3|Genius Tab G4|Genius Tab Q4|Genius Tab G-II|Genius TAB GII|Genius TAB GIII|Genius Tab S1',
        // http://www.galapad.net/product.html
        'GalapadTablet'     => 'Android.*\bG1\b',
        // http://www.micromaxinfo.com/tablet/funbook
        'MicromaxTablet'    => 'Funbook|Micromax.*\b(P250|P560|P360|P362|P600|P300|P350|P500|P275)\b',
        // http://www.karbonnmobiles.com/products_tablet.php
        'KarbonnTablet'     => 'Android.*\b(A39|A37|A34|ST8|ST10|ST7|Smart Tab3|Smart Tab2)\b',
        // http://www.myallfine.com/Products.asp
        'AllFineTablet'     => 'Fine7 Genius|Fine7 Shine|Fine7 Air|Fine8 Style|Fine9 More|Fine10 Joy|Fine11 Wide',
        // http://www.proscanvideo.com/products-search.asp?itemClass=TABLET&itemnmbr=
        'PROSCANTablet'     => '\b(PEM63|PLT1023G|PLT1041|PLT1044|PLT1044G|PLT1091|PLT4311|PLT4311PL|PLT4315|PLT7030|PLT7033|PLT7033D|PLT7035|PLT7035D|PLT7044K|PLT7045K|PLT7045KB|PLT7071KG|PLT7072|PLT7223G|PLT7225G|PLT7777G|PLT7810K|PLT7849G|PLT7851G|PLT7852G|PLT8015|PLT8031|PLT8034|PLT8036|PLT8080K|PLT8082|PLT8088|PLT8223G|PLT8234G|PLT8235G|PLT8816K|PLT9011|PLT9045K|PLT9233G|PLT9735|PLT9760G|PLT9770G)\b',
        // http://www.yonesnav.com/products/products.php
        'YONESTablet' => 'BQ1078|BC1003|BC1077|RK9702|BC9730|BC9001|IT9001|BC7008|BC7010|BC708|BC728|BC7012|BC7030|BC7027|BC7026',
        // http://www.cjshowroom.com/eproducts.aspx?classcode=004001001
        // China manufacturer makes tablets for different small brands (eg. http://www.zeepad.net/index.html)
        'ChangJiaTablet'    => 'TPC7102|TPC7103|TPC7105|TPC7106|TPC7107|TPC7201|TPC7203|TPC7205|TPC7210|TPC7708|TPC7709|TPC7712|TPC7110|TPC8101|TPC8103|TPC8105|TPC8106|TPC8203|TPC8205|TPC8503|TPC9106|TPC9701|TPC97101|TPC97103|TPC97105|TPC97106|TPC97111|TPC97113|TPC97203|TPC97603|TPC97809|TPC97205|TPC10101|TPC10103|TPC10106|TPC10111|TPC10203|TPC10205|TPC10503',
        // http://www.gloryunion.cn/products.asp
        // http://www.allwinnertech.com/en/apply/mobile.html
        // http://www.ptcl.com.pk/pd_content.php?pd_id=284 (EVOTAB)
        // @todo: Softwiner tablets?
        // aka. Cute or Cool tablets. Not sure yet, must research to avoid collisions.
        'GUTablet'          => 'TX-A1301|TX-M9002|Q702|kf026', // A12R|D75A|D77|D79|R83|A95|A106C|R15|A75|A76|D71|D72|R71|R73|R77|D82|R85|D92|A97|D92|R91|A10F|A77F|W71F|A78F|W78F|W81F|A97F|W91F|W97F|R16G|C72|C73E|K72|K73|R96G
        // http://www.pointofview-online.com/showroom.php?shop_mode=product_listing&category_id=118
        'PointOfViewTablet' => 'TAB-P506|TAB-navi-7-3G-M|TAB-P517|TAB-P-527|TAB-P701|TAB-P703|TAB-P721|TAB-P731N|TAB-P741|TAB-P825|TAB-P905|TAB-P925|TAB-PR945|TAB-PL1015|TAB-P1025|TAB-PI1045|TAB-P1325|TAB-PROTAB[0-9]+|TAB-PROTAB25|TAB-PROTAB26|TAB-PROTAB27|TAB-PROTAB26XL|TAB-PROTAB2-IPS9|TAB-PROTAB30-IPS9|TAB-PROTAB25XXL|TAB-PROTAB26-IPS10|TAB-PROTAB30-IPS10',
        // http://www.overmax.pl/pl/katalog-produktow,p8/tablety,c14/
        // @todo: add more tests.
        'OvermaxTablet'     => 'OV-(SteelCore|NewBase|Basecore|Baseone|Exellen|Quattor|EduTab|Solution|ACTION|BasicTab|TeddyTab|MagicTab|Stream|TB-08|TB-09)',
        // http://hclmetablet.com/India/index.php
        'HCLTablet'         => 'HCL.*Tablet|Connect-3G-2.0|Connect-2G-2.0|ME Tablet U1|ME Tablet U2|ME Tablet G1|ME Tablet X1|ME Tablet Y2|ME Tablet Sync',
        // http://www.edigital.hu/Tablet_es_e-book_olvaso/Tablet-c18385.html
        'DPSTablet'         => 'DPS Dream 9|DPS Dual 7',
        // http://www.visture.com/index.asp
        'VistureTablet'     => 'V97 HD|i75 3G|Visture V4( HD)?|Visture V5( HD)?|Visture V10',
        // http://www.mijncresta.nl/tablet
        'CrestaTablet'     => 'CTP(-)?810|CTP(-)?818|CTP(-)?828|CTP(-)?838|CTP(-)?888|CTP(-)?978|CTP(-)?980|CTP(-)?987|CTP(-)?988|CTP(-)?989',
        // MediaTek - http://www.mediatek.com/_en/01_products/02_proSys.php?cata_sn=1&cata1_sn=1&cata2_sn=309
        'MediatekTablet' => '\bMT8125|MT8389|MT8135|MT8377\b',
        // Concorde tab
        'ConcordeTablet' => 'Concorde([ ]+)?Tab|ConCorde ReadMan',
        // GoClever Tablets - http://www.goclever.com/uk/products,c1/tablet,c5/
        'GoCleverTablet' => 'GOCLEVER TAB|A7GOCLEVER|M1042|M7841|M742|R1042BK|R1041|TAB A975|TAB A7842|TAB A741|TAB A741L|TAB M723G|TAB M721|TAB A1021|TAB I921|TAB R721|TAB I720|TAB T76|TAB R70|TAB R76.2|TAB R106|TAB R83.2|TAB M813G|TAB I721|GCTA722|TAB I70|TAB I71|TAB S73|TAB R73|TAB R74|TAB R93|TAB R75|TAB R76.1|TAB A73|TAB A93|TAB A93.2|TAB T72|TAB R83|TAB R974|TAB R973|TAB A101|TAB A103|TAB A104|TAB A104.2|R105BK|M713G|A972BK|TAB A971|TAB R974.2|TAB R104|TAB R83.3|TAB A1042',
        // Modecom Tablets - http://www.modecom.eu/tablets/portal/
        'ModecomTablet' => 'FreeTAB 9000|FreeTAB 7.4|FreeTAB 7004|FreeTAB 7800|FreeTAB 2096|FreeTAB 7.5|FreeTAB 1014|FreeTAB 1001 |FreeTAB 8001|FreeTAB 9706|FreeTAB 9702|FreeTAB 7003|FreeTAB 7002|FreeTAB 1002|FreeTAB 7801|FreeTAB 1331|FreeTAB 1004|FreeTAB 8002|FreeTAB 8014|FreeTAB 9704|FreeTAB 1003',
        // Vonino Tablets - http://www.vonino.eu/tablets
        'VoninoTablet'  => '\b(Argus[ _]?S|Diamond[ _]?79HD|Emerald[ _]?78E|Luna[ _]?70C|Onyx[ _]?S|Onyx[ _]?Z|Orin[ _]?HD|Orin[ _]?S|Otis[ _]?S|SpeedStar[ _]?S|Magnet[ _]?M9|Primus[ _]?94[ _]?3G|Primus[ _]?94HD|Primus[ _]?QS|Android.*\bQ8\b|Sirius[ _]?EVO[ _]?QS|Sirius[ _]?QS|Spirit[ _]?S)\b',
        // ECS Tablets - http://www.ecs.com.tw/ECSWebSite/Product/Product_Tablet_List.aspx?CategoryID=14&MenuID=107&childid=M_107&LanID=0
        'ECSTablet'     => 'V07OT2|TM105A|S10OT1|TR10CS1',
        // Storex Tablets - http://storex.fr/espace_client/support.html
        // @note: no need to add all the tablet codes since they are guided by the first regex.
        'StorexTablet'  => 'eZee[_\']?(Tab|Go)[0-9]+|TabLC7|Looney Tunes Tab',
        // Generic Vodafone tablets.
        'VodafoneTablet' => 'SmartTab([ ]+)?[0-9]+|SmartTabII10|SmartTabII7|VF-1497',
        // French tablets - Essentiel B http://www.boulanger.fr/tablette_tactile_e-book/tablette_tactile_essentiel_b/cl_68908.htm?multiChoiceToDelete=brand&mc_brand=essentielb
        // Aka: http://www.essentielb.fr/
        'EssentielBTablet' => 'Smart[ \']?TAB[ ]+?[0-9]+|Family[ \']?TAB2',
        // Ross & Moor - http://ross-moor.ru/
        'RossMoorTablet' => 'RM-790|RM-997|RMD-878G|RMD-974R|RMT-705A|RMT-701|RME-601|RMT-501|RMT-711',
        // i-mobile http://product.i-mobilephone.com/Mobile_Device
        'iMobileTablet'        => 'i-mobile i-note',
        // http://www.tolino.de/de/vergleichen/
        'TolinoTablet'  => 'tolino tab [0-9.]+|tolino shine',
        // AudioSonic - a Kmart brand
        // http://www.kmart.com.au/webapp/wcs/stores/servlet/Search?langId=-1&storeId=10701&catalogId=10001&categoryId=193001&pageSize=72&currentPage=1&searchCategory=193001%2b4294965664&sortBy=p_MaxPrice%7c1
        'AudioSonicTablet' => '\bC-22Q|T7-QC|T-17B|T-17P\b',
        // AMPE Tablets - http://www.ampe.com.my/product-category/tablets/
        // @todo: add them gradually to avoid conflicts.
        'AMPETablet' => 'Android.* A78 ',
        // Skk Mobile - http://skkmobile.com.ph/product_tablets.php
        'SkkTablet' => 'Android.* (SKYPAD|PHOENIX|CYCLOPS)',
        // Tecno Mobile (only tablet) - http://www.tecno-mobile.com/index.php/product?filterby=smart&list_order=all&page=1
        'TecnoTablet' => 'TECNO P9',
        // JXD (consoles & tablets) - http://jxd.hk/products.asp?selectclassid=009008&clsid=3
        'JXDTablet' => 'Android.* \b(F3000|A3300|JXD5000|JXD3000|JXD2000|JXD300B|JXD300|S5800|S7800|S602b|S5110b|S7300|S5300|S602|S603|S5100|S5110|S601|S7100a|P3000F|P3000s|P101|P200s|P1000m|P200m|P9100|P1000s|S6600b|S908|P1000|P300|S18|S6600|S9100)\b',
        // i-Joy tablets - http://www.i-joy.es/en/cat/products/tablets/
        'iJoyTablet' => 'Tablet (Spirit 7|Essentia|Galatea|Fusion|Onix 7|Landa|Titan|Scooby|Deox|Stella|Themis|Argon|Unique 7|Sygnus|Hexen|Finity 7|Cream|Cream X2|Jade|Neon 7|Neron 7|Kandy|Scape|Saphyr 7|Rebel|Biox|Rebel|Rebel 8GB|Myst|Draco 7|Myst|Tab7-004|Myst|Tadeo Jones|Tablet Boing|Arrow|Draco Dual Cam|Aurix|Mint|Amity|Revolution|Finity 9|Neon 9|T9w|Amity 4GB Dual Cam|Stone 4GB|Stone 8GB|Andromeda|Silken|X2|Andromeda II|Halley|Flame|Saphyr 9,7|Touch 8|Planet|Triton|Unique 10|Hexen 10|Memphis 4GB|Memphis 8GB|Onix 10)',
        // http://www.intracon.eu/tablet
        'FX2Tablet' => 'FX2 PAD7|FX2 PAD10',
        // http://www.xoro.de/produkte/
        // @note: Might be the same brand with 'Simply tablets'
        'XoroTablet'        => 'KidsPAD 701|PAD[ ]?712|PAD[ ]?714|PAD[ ]?716|PAD[ ]?717|PAD[ ]?718|PAD[ ]?720|PAD[ ]?721|PAD[ ]?722|PAD[ ]?790|PAD[ ]?792|PAD[ ]?900|PAD[ ]?9715D|PAD[ ]?9716DR|PAD[ ]?9718DR|PAD[ ]?9719QR|PAD[ ]?9720QR|TelePAD1030|Telepad1032|TelePAD730|TelePAD731|TelePAD732|TelePAD735Q|TelePAD830|TelePAD9730|TelePAD795|MegaPAD 1331|MegaPAD 1851|MegaPAD 2151',
        // http://www1.viewsonic.com/products/computing/tablets/
        'ViewsonicTablet'   => 'ViewPad 10pi|ViewPad 10e|ViewPad 10s|ViewPad E72|ViewPad7|ViewPad E100|ViewPad 7e|ViewSonic VB733|VB100a',
        // http://www.odys.de/web/internet-tablet_en.html
        'OdysTablet'        => 'LOOX|XENO10|ODYS[ -](Space|EVO|Xpress|NOON)|\bXELIO\b|Xelio10Pro|XELIO7PHONETAB|XELIO10EXTREME|XELIOPT2|NEO_QUAD10',
        // http://www.captiva-power.de/products.html#tablets-en
        'CaptivaTablet'     => 'CAPTIVA PAD',
        // IconBIT - http://www.iconbit.com/products/tablets/
        'IconbitTablet' => 'NetTAB|NT-3702|NT-3702S|NT-3702S|NT-3603P|NT-3603P|NT-0704S|NT-0704S|NT-3805C|NT-3805C|NT-0806C|NT-0806C|NT-0909T|NT-0909T|NT-0907S|NT-0907S|NT-0902S|NT-0902S',
        // http://www.teclast.com/topic.php?channelID=70&topicID=140&pid=63
        'TeclastTablet' => 'T98 4G|\bP80\b|\bX90HD\b|X98 Air|X98 Air 3G|\bX89\b|P80 3G|\bX80h\b|P98 Air|\bX89HD\b|P98 3G|\bP90HD\b|P89 3G|X98 3G|\bP70h\b|P79HD 3G|G18d 3G|\bP79HD\b|\bP89s\b|\bA88\b|\bP10HD\b|\bP19HD\b|G18 3G|\bP78HD\b|\bA78\b|\bP75\b|G17s 3G|G17h 3G|\bP85t\b|\bP90\b|\bP11\b|\bP98t\b|\bP98HD\b|\bG18d\b|\bP85s\b|\bP11HD\b|\bP88s\b|\bA80HD\b|\bA80se\b|\bA10h\b|\bP89\b|\bP78s\b|\bG18\b|\bP85\b|\bA70h\b|\bA70\b|\bG17\b|\bP18\b|\bA80s\b|\bA11s\b|\bP88HD\b|\bA80h\b|\bP76s\b|\bP76h\b|\bP98\b|\bA10HD\b|\bP78\b|\bP88\b|\bA11\b|\bA10t\b|\bP76a\b|\bP76t\b|\bP76e\b|\bP85HD\b|\bP85a\b|\bP86\b|\bP75HD\b|\bP76v\b|\bA12\b|\bP75a\b|\bA15\b|\bP76Ti\b|\bP81HD\b|\bA10\b|\bT760VE\b|\bT720HD\b|\bP76\b|\bP73\b|\bP71\b|\bP72\b|\bT720SE\b|\bC520Ti\b|\bT760\b|\bT720VE\b|T720-3GE|T720-WiFi',
        // Onda - http://www.onda-tablet.com/buy-android-onda.html?dir=desc&limit=all&order=price
        'OndaTablet' => '\b(V975i|Vi30|VX530|V701|Vi60|V701s|Vi50|V801s|V719|Vx610w|VX610W|V819i|Vi10|VX580W|Vi10|V711s|V813|V811|V820w|V820|Vi20|V711|VI30W|V712|V891w|V972|V819w|V820w|Vi60|V820w|V711|V813s|V801|V819|V975s|V801|V819|V819|V818|V811|V712|V975m|V101w|V961w|V812|V818|V971|V971s|V919|V989|V116w|V102w|V973|Vi40)\b[\s]+',
        'JaytechTablet'     => 'TPC-PA762',
        'BlaupunktTablet'   => 'Endeavour 800NG|Endeavour 1010',
        // http://www.digma.ru/support/download/
        // @todo: Ebooks also (if requested)
        'DigmaTablet' => '\b(iDx10|iDx9|iDx8|iDx7|iDxD7|iDxD8|iDsQ8|iDsQ7|iDsQ8|iDsD10|iDnD7|3TS804H|iDsQ11|iDj7|iDs10)\b',
        // http://www.evolioshop.com/ro/tablete-pc.html
        // http://www.evolio.ro/support/downloads_static.html?cat=2
        // @todo: Research some more
        'EvolioTablet' => 'ARIA_Mini_wifi|Aria[ _]Mini|Evolio X10|Evolio X7|Evolio X8|\bEvotab\b|\bNeura\b',
        // @todo http://www.lavamobiles.com/tablets-data-cards
        'LavaTablet' => 'QPAD E704|\bIvoryS\b|E-TAB IVORY|\bE-TAB\b',
        // http://www.breezetablet.com/
        'AocTablet' => 'MW0811|MW0812|MW0922|MTK8382|MW1031|MW0831|MW0821|MW0931|MW0712',
        // http://www.mpmaneurope.com/en/products/internet-tablets-14/android-tablets-14/
        'MpmanTablet' => 'MP11 OCTA|MP10 OCTA|MPQC1114|MPQC1004|MPQC994|MPQC974|MPQC973|MPQC804|MPQC784|MPQC780|\bMPG7\b|MPDCG75|MPDCG71|MPDC1006|MP101DC|MPDC9000|MPDC905|MPDC706HD|MPDC706|MPDC705|MPDC110|MPDC100|MPDC99|MPDC97|MPDC88|MPDC8|MPDC77|MP709|MID701|MID711|MID170|MPDC703|MPQC1010',
        // https://www.celkonmobiles.com/?_a=categoryphones&sid=2
        'CelkonTablet' => 'CT695|CT888|CT[\s]?910|CT7 Tab|CT9 Tab|CT3 Tab|CT2 Tab|CT1 Tab|C820|C720|\bCT-1\b',
        // http://www.wolderelectronics.com/productos/manuales-y-guias-rapidas/categoria-2-miTab
        'WolderTablet' => 'miTab \b(DIAMOND|SPACE|BROOKLYN|NEO|FLY|MANHATTAN|FUNK|EVOLUTION|SKY|GOCAR|IRON|GENIUS|POP|MINT|EPSILON|BROADWAY|JUMP|HOP|LEGEND|NEW AGE|LINE|ADVANCE|FEEL|FOLLOW|LIKE|LINK|LIVE|THINK|FREEDOM|CHICAGO|CLEVELAND|BALTIMORE-GH|IOWA|BOSTON|SEATTLE|PHOENIX|DALLAS|IN 101|MasterChef)\b',
        // http://www.mi.com/en
        'MiTablet' => '\bMI PAD\b|\bHM NOTE 1W\b',
        // http://www.nbru.cn/index.html
        'NibiruTablet' => 'Nibiru M1|Nibiru Jupiter One',
        // http://navroad.com/products/produkty/tablety/
        'NexoTablet' => 'NEXO NOVA|NEXO 10|NEXO AVIO|NEXO FREE|NEXO GO|NEXO EVO|NEXO 3G|NEXO SMART|NEXO KIDDO|NEXO MOBI',
        // http://leader-online.com/new_site/product-category/tablets/
        // http://www.leader-online.net.au/List/Tablet
        'LeaderTablet' => 'TBLT10Q|TBLT10I|TBL-10WDKB|TBL-10WDKBO2013|TBL-W230V2|TBL-W450|TBL-W500|SV572|TBLT7I|TBA-AC7-8G|TBLT79|TBL-8W16|TBL-10W32|TBL-10WKB|TBL-W100',
        // http://www.datawind.com/ubislate/
        'UbislateTablet' => 'UbiSlate[\s]?7C',
        // http://www.pocketbook-int.com/ru/support
        'PocketBookTablet' => 'Pocketbook',
        // http://www.kocaso.com/product_tablet.html
        'KocasoTablet' => '\b(TB-1207)\b',
        // http://global.hisense.com/product/asia/tablet/Sero7/201412/t20141215_91832.htm
        'HisenseTablet' => '\b(F5281|E2371)\b',
        // http://www.tesco.com/direct/hudl/
        'Hudl'              => 'Hudl HT7S3|Hudl 2',
        // http://www.telstra.com.au/home-phone/thub-2/
        'TelstraTablet'     => 'T-Hub2',
        'GenericTablet'     => 'Android.*\b97D\b|Tablet(?!.*PC)|BNTV250A|MID-WCDMA|LogicPD Zoom2|\bA7EB\b|CatNova8|A1_07|CT704|CT1002|\bM721\b|rk30sdk|\bEVOTAB\b|M758A|ET904|ALUMIUM10|Smartfren Tab|Endeavour 1010|Tablet-PC-4|Tagi Tab|\bM6pro\b|CT1020W|arc 10HD|\bTP750\b'
    );

    /**
     * List of mobile Operating Systems.
     *
     * @var array
     */
    protected static $operatingSystems = array(
        'AndroidOS'         => 'Android',
        'BlackBerryOS'      => 'blackberry|\bBB10\b|rim tablet os',
        'PalmOS'            => 'PalmOS|avantgo|blazer|elaine|hiptop|palm|plucker|xiino',
        'SymbianOS'         => 'Symbian|SymbOS|Series60|Series40|SYB-[0-9]+|\bS60\b',
        // @reference: http://en.wikipedia.org/wiki/Windows_Mobile
        'WindowsMobileOS'   => 'Windows CE.*(PPC|Smartphone|Mobile|[0-9]{3}x[0-9]{3})|Window Mobile|Windows Phone [0-9.]+|WCE;',
        // @reference: http://en.wikipedia.org/wiki/Windows_Phone
        // http://wifeng.cn/?r=blog&a=view&id=106
        // http://nicksnettravels.builttoroam.com/post/2011/01/10/Bogus-Windows-Phone-7-User-Agent-String.aspx
        // http://msdn.microsoft.com/library/ms537503.aspx
        // https://msdn.microsoft.com/en-us/library/hh869301(v=vs.85).aspx
        'WindowsPhoneOS'   => 'Windows Phone 10.0|Windows Phone 8.1|Windows Phone 8.0|Windows Phone OS|XBLWP7|ZuneWP7|Windows NT 6.[23]; ARM;',
        'iOS'               => '\biPhone.*Mobile|\biPod|\biPad',
        // http://en.wikipedia.org/wiki/MeeGo
        // @todo: research MeeGo in UAs
        'MeeGoOS'           => 'MeeGo',
        // http://en.wikipedia.org/wiki/Maemo
        // @todo: research Maemo in UAs
        'MaemoOS'           => 'Maemo',
        'JavaOS'            => 'J2ME/|\bMIDP\b|\bCLDC\b', // '|Java/' produces bug #135
        'webOS'             => 'webOS|hpwOS',
        'badaOS'            => '\bBada\b',
        'BREWOS'            => 'BREW',
    );

    /**
     * List of mobile User Agents.
     *
     * IMPORTANT: This is a list of only mobile browsers.
     * Mobile Detect 2.x supports only mobile browsers,
     * it was never designed to detect all browsers.
     * The change will come in 2017 in the 3.x release for PHP7.
     *
     * @var array
     */
    protected static $browsers = array(
        //'Vivaldi'         => 'Vivaldi',
        // @reference: https://developers.google.com/chrome/mobile/docs/user-agent
        'Chrome'          => '\bCrMo\b|CriOS|Android.*Chrome/[.0-9]* (Mobile)?',
        'Dolfin'          => '\bDolfin\b',
        'Opera'           => 'Opera.*Mini|Opera.*Mobi|Android.*Opera|Mobile.*OPR/[0-9.]+|Coast/[0-9.]+',
        'Skyfire'         => 'Skyfire',
        'Edge'             => 'Mobile Safari/[.0-9]* Edge',
        'IE'              => 'IEMobile|MSIEMobile', // |Trident/[.0-9]+
        'Firefox'         => 'fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile|FxiOS',
        'Bolt'            => 'bolt',
        'TeaShark'        => 'teashark',
        'Blazer'          => 'Blazer',
        // @reference: http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariWebContent/OptimizingforSafarioniPhone/OptimizingforSafarioniPhone.html#//apple_ref/doc/uid/TP40006517-SW3
        'Safari'          => 'Version.*Mobile.*Safari|Safari.*Mobile|MobileSafari',
        // http://en.wikipedia.org/wiki/Midori_(web_browser)
        //'Midori'          => 'midori',
        //'Tizen'           => 'Tizen',
        'UCBrowser'       => 'UC.*Browser|UCWEB',
        'baiduboxapp'     => 'baiduboxapp',
        'baidubrowser'    => 'baidubrowser',
        // https://github.com/serbanghita/Mobile-Detect/issues/7
        'DiigoBrowser'    => 'DiigoBrowser',
        // http://www.puffinbrowser.com/index.php
        'Puffin'            => 'Puffin',
        // http://mercury-browser.com/index.html
        'Mercury'          => '\bMercury\b',
        // http://en.wikipedia.org/wiki/Obigo_Browser
        'ObigoBrowser' => 'Obigo',
        // http://en.wikipedia.org/wiki/NetFront
        'NetFront' => 'NF-Browser',
        // @reference: http://en.wikipedia.org/wiki/Minimo
        // http://en.wikipedia.org/wiki/Vision_Mobile_Browser
        'GenericBrowser'  => 'NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger',
		// @reference: https://en.wikipedia.org/wiki/Pale_Moon_(web_browser)
		'PaleMoon'        => 'Android.*PaleMoon|Mobile.*PaleMoon',
    );

    /**
     * Utilities.
     *
     * @var array
     */
    protected static $utilities = array(
        // Experimental. When a mobile device wants to switch to 'Desktop Mode'.
        // http://scottcate.com/technology/windows-phone-8-ie10-desktop-or-mobile/
        // https://github.com/serbanghita/Mobile-Detect/issues/57#issuecomment-15024011
        // https://developers.facebook.com/docs/sharing/best-practices
        'Bot'         => 'Googlebot|facebookexternalhit|AdsBot-Google|Google Keyword Suggestion|Facebot|YandexBot|YandexMobileBot|bingbot|ia_archiver|AhrefsBot|Ezooms|GSLFbot|WBSearchBot|Twitterbot|TweetmemeBot|Twikle|PaperLiBot|Wotbox|UnwindFetchor|Exabot|MJ12bot|YandexImages|TurnitinBot|Pingdom',
        'MobileBot'   => 'Googlebot-Mobile|AdsBot-Google-Mobile|YahooSeeker/M1A1-R2D2',
        'DesktopMode' => 'WPDesktop',
        'TV'          => 'SonyDTV|HbbTV', // experimental
        'WebKit'      => '(webkit)[ /]([\w.]+)',
        // @todo: Include JXD consoles.
        'Console'     => '\b(Nintendo|Nintendo WiiU|Nintendo 3DS|PLAYSTATION|Xbox)\b',
        'Watch'       => 'SM-V700',
    );

    /**
     * All possible HTTP headers that represent the
     * User-Agent string.
     *
     * @var array
     */
    protected static $uaHttpHeaders = array(
        // The default User-Agent string.
        'HTTP_USER_AGENT',
        // Header can occur on devices using Opera Mini.
        'HTTP_X_OPERAMINI_PHONE_UA',
        // Vodafone specific header: http://www.seoprinciple.com/mobile-web-community-still-angry-at-vodafone/24/
        'HTTP_X_DEVICE_USER_AGENT',
        'HTTP_X_ORIGINAL_USER_AGENT',
        'HTTP_X_SKYFIRE_PHONE',
        'HTTP_X_BOLT_PHONE_UA',
        'HTTP_DEVICE_STOCK_UA',
        'HTTP_X_UCBROWSER_DEVICE_UA'
    );

    /**
     * The individual segments that could exist in a User-Agent string. VER refers to the regular
     * expression defined in the constant self::VER.
     *
     * @var array
     */
    protected static $properties = array(

        // Build
        'Mobile'        => 'Mobile/[VER]',
        'Build'         => 'Build/[VER]',
        'Version'       => 'Version/[VER]',
        'VendorID'      => 'VendorID/[VER]',

        // Devices
        'iPad'          => 'iPad.*CPU[a-z ]+[VER]',
        'iPhone'        => 'iPhone.*CPU[a-z ]+[VER]',
        'iPod'          => 'iPod.*CPU[a-z ]+[VER]',
        //'BlackBerry'    => array('BlackBerry[VER]', 'BlackBerry [VER];'),
        'Kindle'        => 'Kindle/[VER]',

        // Browser
        'Chrome'        => array('Chrome/[VER]', 'CriOS/[VER]', 'CrMo/[VER]'),
        'Coast'         => array('Coast/[VER]'),
        'Dolfin'        => 'Dolfin/[VER]',
        // @reference: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox
        'Firefox'       => array('Firefox/[VER]', 'FxiOS/[VER]'), 
        'Fennec'        => 'Fennec/[VER]',
        // http://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx
        // https://msdn.microsoft.com/en-us/library/ie/hh869301(v=vs.85).aspx
        'Edge' => 'Edge/[VER]',
        'IE'      => array('IEMobile/[VER];', 'IEMobile [VER]', 'MSIE [VER];', 'Trident/[0-9.]+;.*rv:[VER]'),
        // http://en.wikipedia.org/wiki/NetFront
        'NetFront'      => 'NetFront/[VER]',
        'NokiaBrowser'  => 'NokiaBrowser/[VER]',
        'Opera'         => array( ' OPR/[VER]', 'Opera Mini/[VER]', 'Version/[VER]' ),
        'Opera Mini'    => 'Opera Mini/[VER]',
        'Opera Mobi'    => 'Version/[VER]',
        'UC Browser'    => 'UC Browser[VER]',
        'MQQBrowser'    => 'MQQBrowser/[VER]',
        'MicroMessenger' => 'MicroMessenger/[VER]',
        'baiduboxapp'   => 'baiduboxapp/[VER]',
        'baidubrowser'  => 'baidubrowser/[VER]',
        'SamsungBrowser' => 'SamsungBrowser/[VER]',
        'Iron'          => 'Iron/[VER]',
        // @note: Safari 7534.48.3 is actually Version 5.1.
        // @note: On BlackBerry the Version is overwriten by the OS.
        'Safari'        => array( 'Version/[VER]', 'Safari/[VER]' ),
        'Skyfire'       => 'Skyfire/[VER]',
        'Tizen'         => 'Tizen/[VER]',
        'Webkit'        => 'webkit[ /][VER]',
		'PaleMoon'         => 'PaleMoon/[VER]',

        // Engine
        'Gecko'         => 'Gecko/[VER]',
        'Trident'       => 'Trident/[VER]',
        'Presto'        => 'Presto/[VER]',
		'Goanna'           => 'Goanna/[VER]',

        // OS
        'iOS'              => ' \bi?OS\b [VER][ ;]{1}',
        'Android'          => 'Android [VER]',
        'BlackBerry'       => array('BlackBerry[\w]+/[VER]', 'BlackBerry.*Version/[VER]', 'Version/[VER]'),
        'BREW'             => 'BREW [VER]',
        'Java'             => 'Java/[VER]',
        // @reference: http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/08/29/introducing-the-ie9-on-windows-phone-mango-user-agent-string.aspx
        // @reference: http://en.wikipedia.org/wiki/Windows_NT#Releases
        'Windows Phone OS' => array( 'Windows Phone OS [VER]', 'Windows Phone [VER]'),
        'Windows Phone'    => 'Windows Phone [VER]',
        'Windows CE'       => 'Windows CE/[VER]',
        // http://social.msdn.microsoft.com/Forums/en-US/windowsdeveloperpreviewgeneral/thread/6be392da-4d2f-41b4-8354-8dcee20c85cd
        'Windows NT'       => 'Windows NT [VER]',
        'Symbian'          => array('SymbianOS/[VER]', 'Symbian/[VER]'),
        'webOS'            => array('webOS/[VER]', 'hpwOS/[VER];'),
    );

    /**
     * Construct an instance of this class.
     *
     * @param array  $headers   Specify the headers as injection. Should be PHP _SERVER flavored.
     *                          If left empty, will use the global _SERVER['HTTP_*'] vars instead.
     * @param string $userAgent Inject the User-Agent header. If null, will use HTTP_USER_AGENT
     *                          from the $headers array instead.
     */
    public function __construct(
        array $headers = null,
        $userAgent = null
    ) {
        $this->setHttpHeaders($headers);
        $this->setUserAgent($userAgent);
    }

    /**
     * Get the current script version.
     * This is useful for the demo.php file,
     * so people can check on what version they are testing
     * for mobile devices.
     *
     * @return string The version number in semantic version format.
     */
    public static function getScriptVersion()
    {
        return self::VERSION;
    }

    /**
     * Set the HTTP Headers. Must be PHP-flavored. This method will reset existing headers.
     *
     * @param array $httpHeaders The headers to set. If null, then using PHP's _SERVER to extract
     *                           the headers. The default null is left for backwards compatibility.
     */
    public function setHttpHeaders($httpHeaders = null)
    {
        // use global _SERVER if $httpHeaders aren't defined
        if (!is_array($httpHeaders) || !count($httpHeaders)) {
            $httpHeaders = $_SERVER;
        }

        // clear existing headers
        $this->httpHeaders = array();

        // Only save HTTP headers. In PHP land, that means only _SERVER vars that
        // start with HTTP_.
        foreach ($httpHeaders as $key => $value) {
            if (substr($key, 0, 5) === 'HTTP_') {
                $this->httpHeaders[$key] = $value;
            }
        }

        // In case we're dealing with CloudFront, we need to know.
        $this->setCfHeaders($httpHeaders);
    }

    /**
     * Retrieves the HTTP headers.
     *
     * @return array
     */
    public function getHttpHeaders()
    {
        return $this->httpHeaders;
    }

    /**
     * Retrieves a particular header. If it doesn't exist, no exception/error is caused.
     * Simply null is returned.
     *
     * @param string $header The name of the header to retrieve. Can be HTTP compliant such as
     *                       "User-Agent" or "X-Device-User-Agent" or can be php-esque with the
     *                       all-caps, HTTP_ prefixed, underscore seperated awesomeness.
     *
     * @return string|null The value of the header.
     */
    public function getHttpHeader($header)
    {
        // are we using PHP-flavored headers?
        if (strpos($header, '_') === false) {
            $header = str_replace('-', '_', $header);
            $header = strtoupper($header);
        }

        // test the alternate, too
        $altHeader = 'HTTP_' . $header;

        //Test both the regular and the HTTP_ prefix
        if (isset($this->httpHeaders[$header])) {
            return $this->httpHeaders[$header];
        } elseif (isset($this->httpHeaders[$altHeader])) {
            return $this->httpHeaders[$altHeader];
        }

        return null;
    }

    public function getMobileHeaders()
    {
        return self::$mobileHeaders;
    }

    /**
     * Get all possible HTTP headers that
     * can contain the User-Agent string.
     *
     * @return array List of HTTP headers.
     */
    public function getUaHttpHeaders()
    {
        return self::$uaHttpHeaders;
    }


    /**
     * Set CloudFront headers
     * http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html#header-caching-web-device
     *
     * @param array $cfHeaders List of HTTP headers
     *
     * @return  boolean If there were CloudFront headers to be set
     */
    public function setCfHeaders($cfHeaders = null) {
        // use global _SERVER if $cfHeaders aren't defined
        if (!is_array($cfHeaders) || !count($cfHeaders)) {
            $cfHeaders = $_SERVER;
        }

        // clear existing headers
        $this->cloudfrontHeaders = array();

        // Only save CLOUDFRONT headers. In PHP land, that means only _SERVER vars that
        // start with cloudfront-.
        $response = false;
        foreach ($cfHeaders as $key => $value) {
            if (substr(strtolower($key), 0, 16) === 'http_cloudfront_') {
                $this->cloudfrontHeaders[strtoupper($key)] = $value;
                $response = true;
            }
        }

        return $response;
    }

    /**
     * Retrieves the cloudfront headers.
     *
     * @return array
     */
    public function getCfHeaders()
    {
        return $this->cloudfrontHeaders;
    }

    /**
     * Set the User-Agent to be used.
     *
     * @param string $userAgent The user agent string to set.
     *
     * @return string|null
     */
    public function setUserAgent($userAgent = null)
    {
        // Invalidate cache due to #375
        $this->cache = array();

        if (false === empty($userAgent)) {
            return $this->userAgent = $userAgent;
        } else {
            $this->userAgent = null;
            foreach ($this->getUaHttpHeaders() as $altHeader) {
                if (false === empty($this->httpHeaders[$altHeader])) { // @todo: should use getHttpHeader(), but it would be slow. (Serban)
                    $this->userAgent .= $this->httpHeaders[$altHeader] . " ";
                }
            }

            if (!empty($this->userAgent)) {
                return $this->userAgent = trim($this->userAgent);
            }
        }

        if (count($this->getCfHeaders()) > 0) {
            return $this->userAgent = 'Amazon CloudFront';
        }
        return $this->userAgent = null;
    }

    /**
     * Retrieve the User-Agent.
     *
     * @return string|null The user agent if it's set.
     */
    public function getUserAgent()
    {
        return $this->userAgent;
    }

    /**
     * Set the detection type. Must be one of self::DETECTION_TYPE_MOBILE or
     * self::DETECTION_TYPE_EXTENDED. Otherwise, nothing is set.
     *
     * @deprecated since version 2.6.9
     *
     * @param string $type The type. Must be a self::DETECTION_TYPE_* constant. The default
     *                     parameter is null which will default to self::DETECTION_TYPE_MOBILE.
     */
    public function setDetectionType($type = null)
    {
        if ($type === null) {
            $type = self::DETECTION_TYPE_MOBILE;
        }

        if ($type !== self::DETECTION_TYPE_MOBILE && $type !== self::DETECTION_TYPE_EXTENDED) {
            return;
        }

        $this->detectionType = $type;
    }

    public function getMatchingRegex()
    {
        return $this->matchingRegex;
    }

    public function getMatchesArray()
    {
        return $this->matchesArray;
    }

    /**
     * Retrieve the list of known phone devices.
     *
     * @return array List of phone devices.
     */
    public static function getPhoneDevices()
    {
        return self::$phoneDevices;
    }

    /**
     * Retrieve the list of known tablet devices.
     *
     * @return array List of tablet devices.
     */
    public static function getTabletDevices()
    {
        return self::$tabletDevices;
    }

    /**
     * Alias for getBrowsers() method.
     *
     * @return array List of user agents.
     */
    public static function getUserAgents()
    {
        return self::getBrowsers();
    }

    /**
     * Retrieve the list of known browsers. Specifically, the user agents.
     *
     * @return array List of browsers / user agents.
     */
    public static function getBrowsers()
    {
        return self::$browsers;
    }

    /**
     * Retrieve the list of known utilities.
     *
     * @return array List of utilities.
     */
    public static function getUtilities()
    {
        return self::$utilities;
    }

    /**
     * Method gets the mobile detection rules. This method is used for the magic methods $detect->is*().
     *
     * @deprecated since version 2.6.9
     *
     * @return array All the rules (but not extended).
     */
    public static function getMobileDetectionRules()
    {
        static $rules;

        if (!$rules) {
            $rules = array_merge(
                self::$phoneDevices,
                self::$tabletDevices,
                self::$operatingSystems,
                self::$browsers
            );
        }

        return $rules;

    }

    /**
     * Method gets the mobile detection rules + utilities.
     * The reason this is separate is because utilities rules
     * don't necessary imply mobile. This method is used inside
     * the new $detect->is('stuff') method.
     *
     * @deprecated since version 2.6.9
     *
     * @return array All the rules + extended.
     */
    public function getMobileDetectionRulesExtended()
    {
        static $rules;

        if (!$rules) {
            // Merge all rules together.
            $rules = array_merge(
                self::$phoneDevices,
                self::$tabletDevices,
                self::$operatingSystems,
                self::$browsers,
                self::$utilities
            );
        }

        return $rules;
    }

    /**
     * Retrieve the current set of rules.
     *
     * @deprecated since version 2.6.9
     *
     * @return array
     */
    public function getRules()
    {
        if ($this->detectionType == self::DETECTION_TYPE_EXTENDED) {
            return self::getMobileDetectionRulesExtended();
        } else {
            return self::getMobileDetectionRules();
        }
    }

    /**
     * Retrieve the list of mobile operating systems.
     *
     * @return array The list of mobile operating systems.
     */
    public static function getOperatingSystems()
    {
        return self::$operatingSystems;
    }

    /**
     * Check the HTTP headers for signs of mobile.
     * This is the fastest mobile check possible; it's used
     * inside isMobile() method.
     *
     * @return bool
     */
    public function checkHttpHeadersForMobile()
    {

        foreach ($this->getMobileHeaders() as $mobileHeader => $matchType) {
            if (isset($this->httpHeaders[$mobileHeader])) {
                if (is_array($matchType['matches'])) {
                    foreach ($matchType['matches'] as $_match) {
                        if (strpos($this->httpHeaders[$mobileHeader], $_match) !== false) {
                            return true;
                        }
                    }

                    return false;
                } else {
                    return true;
                }
            }
        }

        return false;

    }

    /**
     * Magic overloading method.
     *
     * @method boolean is[...]()
     * @param  string                 $name
     * @param  array                  $arguments
     * @return mixed
     * @throws BadMethodCallException when the method doesn't exist and doesn't start with 'is'
     */
    public function __call($name, $arguments)
    {
        // make sure the name starts with 'is', otherwise
        if (substr($name, 0, 2) !== 'is') {
            throw new BadMethodCallException("No such method exists: $name");
        }

        $this->setDetectionType(self::DETECTION_TYPE_MOBILE);

        $key = substr($name, 2);

        return $this->matchUAAgainstKey($key);
    }

    /**
     * Find a detection rule that matches the current User-agent.
     *
     * @param  null    $userAgent deprecated
     * @return boolean
     */
    protected function matchDetectionRulesAgainstUA($userAgent = null)
    {
        // Begin general search.
        foreach ($this->getRules() as $_regex) {
            if (empty($_regex)) {
                continue;
            }

            if ($this->match($_regex, $userAgent)) {
                return true;
            }
        }

        return false;
    }

    /**
     * Search for a certain key in the rules array.
     * If the key is found then try to match the corresponding
     * regex against the User-Agent.
     *
     * @param string $key
     *
     * @return boolean
     */
    protected function matchUAAgainstKey($key)
    {
        // Make the keys lowercase so we can match: isIphone(), isiPhone(), isiphone(), etc.
        $key = strtolower($key);
        if (false === isset($this->cache[$key])) {

            // change the keys to lower case
            $_rules = array_change_key_case($this->getRules());

            if (false === empty($_rules[$key])) {
                $this->cache[$key] = $this->match($_rules[$key]);
            }

            if (false === isset($this->cache[$key])) {
                $this->cache[$key] = false;
            }
        }

        return $this->cache[$key];
    }

    /**
     * Check if the device is mobile.
     * Returns true if any type of mobile device detected, including special ones
     * @param  null $userAgent   deprecated
     * @param  null $httpHeaders deprecated
     * @return bool
     */
    public function isMobile($userAgent = null, $httpHeaders = null)
    {

        if ($httpHeaders) {
            $this->setHttpHeaders($httpHeaders);
        }

        if ($userAgent) {
            $this->setUserAgent($userAgent);
        }

        // Check specifically for cloudfront headers if the useragent === 'Amazon CloudFront'
        if ($this->getUserAgent() === 'Amazon CloudFront') {
            $cfHeaders = $this->getCfHeaders();
            if(array_key_exists('HTTP_CLOUDFRONT_IS_MOBILE_VIEWER', $cfHeaders) && $cfHeaders['HTTP_CLOUDFRONT_IS_MOBILE_VIEWER'] === 'true') {
                return true;
            }
        }

        $this->setDetectionType(self::DETECTION_TYPE_MOBILE);

        if ($this->checkHttpHeadersForMobile()) {
            return true;
        } else {
            return $this->matchDetectionRulesAgainstUA();
        }

    }

    /**
     * Check if the device is a tablet.
     * Return true if any type of tablet device is detected.
     *
     * @param  string $userAgent   deprecated
     * @param  array  $httpHeaders deprecated
     * @return bool
     */
    public function isTablet($userAgent = null, $httpHeaders = null)
    {
        // Check specifically for cloudfront headers if the useragent === 'Amazon CloudFront'
        if ($this->getUserAgent() === 'Amazon CloudFront') {
            $cfHeaders = $this->getCfHeaders();
            if(array_key_exists('HTTP_CLOUDFRONT_IS_TABLET_VIEWER', $cfHeaders) && $cfHeaders['HTTP_CLOUDFRONT_IS_TABLET_VIEWER'] === 'true') {
                return true;
            }
        }

        $this->setDetectionType(self::DETECTION_TYPE_MOBILE);

        foreach (self::$tabletDevices as $_regex) {
            if ($this->match($_regex, $userAgent)) {
                return true;
            }
        }

        return false;
    }

    /**
     * This method checks for a certain property in the
     * userAgent.
     * @todo: The httpHeaders part is not yet used.
     *
     * @param  string        $key
     * @param  string        $userAgent   deprecated
     * @param  string        $httpHeaders deprecated
     * @return bool|int|null
     */
    public function is($key, $userAgent = null, $httpHeaders = null)
    {
        // Set the UA and HTTP headers only if needed (eg. batch mode).
        if ($httpHeaders) {
            $this->setHttpHeaders($httpHeaders);
        }

        if ($userAgent) {
            $this->setUserAgent($userAgent);
        }

        $this->setDetectionType(self::DETECTION_TYPE_EXTENDED);

        return $this->matchUAAgainstKey($key);
    }

    /**
     * Some detection rules are relative (not standard),
     * because of the diversity of devices, vendors and
     * their conventions in representing the User-Agent or
     * the HTTP headers.
     *
     * This method will be used to check custom regexes against
     * the User-Agent string.
     *
     * @param $regex
     * @param  string $userAgent
     * @return bool
     *
     * @todo: search in the HTTP headers too.
     */
    public function match($regex, $userAgent = null)
    {
        $match = (bool) preg_match(sprintf('#%s#is', $regex), (false === empty($userAgent) ? $userAgent : $this->userAgent), $matches);
        // If positive match is found, store the results for debug.
        if ($match) {
            $this->matchingRegex = $regex;
            $this->matchesArray = $matches;
        }

        return $match;
    }

    /**
     * Get the properties array.
     *
     * @return array
     */
    public static function getProperties()
    {
        return self::$properties;
    }

    /**
     * Prepare the version number.
     *
     * @todo Remove the error supression from str_replace() call.
     *
     * @param string $ver The string version, like "2.6.21.2152";
     *
     * @return float
     */
    public function prepareVersionNo($ver)
    {
        $ver = str_replace(array('_', ' ', '/'), '.', $ver);
        $arrVer = explode('.', $ver, 2);

        if (isset($arrVer[1])) {
            $arrVer[1] = @str_replace('.', '', $arrVer[1]); // @todo: treat strings versions.
        }

        return (float) implode('.', $arrVer);
    }

    /**
     * Check the version of the given property in the User-Agent.
     * Will return a float number. (eg. 2_0 will return 2.0, 4.3.1 will return 4.31)
     *
     * @param string $propertyName The name of the property. See self::getProperties() array
     *                             keys for all possible properties.
     * @param string $type         Either self::VERSION_TYPE_STRING to get a string value or
     *                             self::VERSION_TYPE_FLOAT indicating a float value. This parameter
     *                             is optional and defaults to self::VERSION_TYPE_STRING. Passing an
     *                             invalid parameter will default to the this type as well.
     *
     * @return string|float The version of the property we are trying to extract.
     */
    public function version($propertyName, $type = self::VERSION_TYPE_STRING)
    {
        if (empty($propertyName)) {
            return false;
        }

        // set the $type to the default if we don't recognize the type
        if ($type !== self::VERSION_TYPE_STRING && $type !== self::VERSION_TYPE_FLOAT) {
            $type = self::VERSION_TYPE_STRING;
        }

        $properties = self::getProperties();

        // Check if the property exists in the properties array.
        if (true === isset($properties[$propertyName])) {

            // Prepare the pattern to be matched.
            // Make sure we always deal with an array (string is converted).
            $properties[$propertyName] = (array) $properties[$propertyName];

            foreach ($properties[$propertyName] as $propertyMatchString) {

                $propertyPattern = str_replace('[VER]', self::VER, $propertyMatchString);

                // Identify and extract the version.
                preg_match(sprintf('#%s#is', $propertyPattern), $this->userAgent, $match);

                if (false === empty($match[1])) {
                    $version = ($type == self::VERSION_TYPE_FLOAT ? $this->prepareVersionNo($match[1]) : $match[1]);

                    return $version;
                }

            }

        }

        return false;
    }

    /**
     * Retrieve the mobile grading, using self::MOBILE_GRADE_* constants.
     *
     * @return string One of the self::MOBILE_GRADE_* constants.
     */
    public function mobileGrade()
    {
        $isMobile = $this->isMobile();

        if (
            // Apple iOS 4-7.0 – Tested on the original iPad (4.3 / 5.0), iPad 2 (4.3 / 5.1 / 6.1), iPad 3 (5.1 / 6.0), iPad Mini (6.1), iPad Retina (7.0), iPhone 3GS (4.3), iPhone 4 (4.3 / 5.1), iPhone 4S (5.1 / 6.0), iPhone 5 (6.0), and iPhone 5S (7.0)
            $this->is('iOS') && $this->version('iPad', self::VERSION_TYPE_FLOAT) >= 4.3 ||
            $this->is('iOS') && $this->version('iPhone', self::VERSION_TYPE_FLOAT) >= 4.3 ||
            $this->is('iOS') && $this->version('iPod', self::VERSION_TYPE_FLOAT) >= 4.3 ||

            // Android 2.1-2.3 - Tested on the HTC Incredible (2.2), original Droid (2.2), HTC Aria (2.1), Google Nexus S (2.3). Functional on 1.5 & 1.6 but performance may be sluggish, tested on Google G1 (1.5)
            // Android 3.1 (Honeycomb)  - Tested on the Samsung Galaxy Tab 10.1 and Motorola XOOM
            // Android 4.0 (ICS)  - Tested on a Galaxy Nexus. Note: transition performance can be poor on upgraded devices
            // Android 4.1 (Jelly Bean)  - Tested on a Galaxy Nexus and Galaxy 7
            ( $this->version('Android', self::VERSION_TYPE_FLOAT)>2.1 && $this->is('Webkit') ) ||

            // Windows Phone 7.5-8 - Tested on the HTC Surround (7.5), HTC Trophy (7.5), LG-E900 (7.5), Nokia 800 (7.8), HTC Mazaa (7.8), Nokia Lumia 520 (8), Nokia Lumia 920 (8), HTC 8x (8)
            $this->version('Windows Phone OS', self::VERSION_TYPE_FLOAT) >= 7.5 ||

            // Tested on the Torch 9800 (6) and Style 9670 (6), BlackBerry® Torch 9810 (7), BlackBerry Z10 (10)
            $this->is('BlackBerry') && $this->version('BlackBerry', self::VERSION_TYPE_FLOAT) >= 6.0 ||
            // Blackberry Playbook (1.0-2.0) - Tested on PlayBook
            $this->match('Playbook.*Tablet') ||

            // Palm WebOS (1.4-3.0) - Tested on the Palm Pixi (1.4), Pre (1.4), Pre 2 (2.0), HP TouchPad (3.0)
            ( $this->version('webOS', self::VERSION_TYPE_FLOAT) >= 1.4 && $this->match('Palm|Pre|Pixi') ) ||
            // Palm WebOS 3.0  - Tested on HP TouchPad
            $this->match('hp.*TouchPad') ||

            // Firefox Mobile 18 - Tested on Android 2.3 and 4.1 devices
            ( $this->is('Firefox') && $this->version('Firefox', self::VERSION_TYPE_FLOAT) >= 18 ) ||

            // Chrome for Android - Tested on Android 4.0, 4.1 device
            ( $this->is('Chrome') && $this->is('AndroidOS') && $this->version('Android', self::VERSION_TYPE_FLOAT) >= 4.0 ) ||

            // Skyfire 4.1 - Tested on Android 2.3 device
            ( $this->is('Skyfire') && $this->version('Skyfire', self::VERSION_TYPE_FLOAT) >= 4.1 && $this->is('AndroidOS') && $this->version('Android', self::VERSION_TYPE_FLOAT) >= 2.3 ) ||

            // Opera Mobile 11.5-12: Tested on Android 2.3
            ( $this->is('Opera') && $this->version('Opera Mobi', self::VERSION_TYPE_FLOAT) >= 11.5 && $this->is('AndroidOS') ) ||

            // Meego 1.2 - Tested on Nokia 950 and N9
            $this->is('MeeGoOS') ||

            // Tizen (pre-release) - Tested on early hardware
            $this->is('Tizen') ||

            // Samsung Bada 2.0 - Tested on a Samsung Wave 3, Dolphin browser
            // @todo: more tests here!
            $this->is('Dolfin') && $this->version('Bada', self::VERSION_TYPE_FLOAT) >= 2.0 ||

            // UC Browser - Tested on Android 2.3 device
            ( ($this->is('UC Browser') || $this->is('Dolfin')) && $this->version('Android', self::VERSION_TYPE_FLOAT) >= 2.3 ) ||

            // Kindle 3 and Fire  - Tested on the built-in WebKit browser for each
            ( $this->match('Kindle Fire') ||
            $this->is('Kindle') && $this->version('Kindle', self::VERSION_TYPE_FLOAT) >= 3.0 ) ||

            // Nook Color 1.4.1 - Tested on original Nook Color, not Nook Tablet
            $this->is('AndroidOS') && $this->is('NookTablet') ||

            // Chrome Desktop 16-24 - Tested on OS X 10.7 and Windows 7
            $this->version('Chrome', self::VERSION_TYPE_FLOAT) >= 16 && !$isMobile ||

            // Safari Desktop 5-6 - Tested on OS X 10.7 and Windows 7
            $this->version('Safari', self::VERSION_TYPE_FLOAT) >= 5.0 && !$isMobile ||

            // Firefox Desktop 10-18 - Tested on OS X 10.7 and Windows 7
            $this->version('Firefox', self::VERSION_TYPE_FLOAT) >= 10.0 && !$isMobile ||

            // Internet Explorer 7-9 - Tested on Windows XP, Vista and 7
            $this->version('IE', self::VERSION_TYPE_FLOAT) >= 7.0 && !$isMobile ||

            // Opera Desktop 10-12 - Tested on OS X 10.7 and Windows 7
            $this->version('Opera', self::VERSION_TYPE_FLOAT) >= 10 && !$isMobile
        ){
            return self::MOBILE_GRADE_A;
        }

        if (
            $this->is('iOS') && $this->version('iPad', self::VERSION_TYPE_FLOAT)<4.3 ||
            $this->is('iOS') && $this->version('iPhone', self::VERSION_TYPE_FLOAT)<4.3 ||
            $this->is('iOS') && $this->version('iPod', self::VERSION_TYPE_FLOAT)<4.3 ||

            // Blackberry 5.0: Tested on the Storm 2 9550, Bold 9770
            $this->is('Blackberry') && $this->version('BlackBerry', self::VERSION_TYPE_FLOAT) >= 5 && $this->version('BlackBerry', self::VERSION_TYPE_FLOAT)<6 ||

            //Opera Mini (5.0-6.5) - Tested on iOS 3.2/4.3 and Android 2.3
            ($this->version('Opera Mini', self::VERSION_TYPE_FLOAT) >= 5.0 && $this->version('Opera Mini', self::VERSION_TYPE_FLOAT) <= 7.0 &&
            ($this->version('Android', self::VERSION_TYPE_FLOAT) >= 2.3 || $this->is('iOS')) ) ||

            // Nokia Symbian^3 - Tested on Nokia N8 (Symbian^3), C7 (Symbian^3), also works on N97 (Symbian^1)
            $this->match('NokiaN8|NokiaC7|N97.*Series60|Symbian/3') ||

            // @todo: report this (tested on Nokia N71)
            $this->version('Opera Mobi', self::VERSION_TYPE_FLOAT) >= 11 && $this->is('SymbianOS')
        ){
            return self::MOBILE_GRADE_B;
        }

        if (
            // Blackberry 4.x - Tested on the Curve 8330
            $this->version('BlackBerry', self::VERSION_TYPE_FLOAT) <= 5.0 ||
            // Windows Mobile - Tested on the HTC Leo (WinMo 5.2)
            $this->match('MSIEMobile|Windows CE.*Mobile') || $this->version('Windows Mobile', self::VERSION_TYPE_FLOAT) <= 5.2 ||

            // Tested on original iPhone (3.1), iPhone 3 (3.2)
            $this->is('iOS') && $this->version('iPad', self::VERSION_TYPE_FLOAT) <= 3.2 ||
            $this->is('iOS') && $this->version('iPhone', self::VERSION_TYPE_FLOAT) <= 3.2 ||
            $this->is('iOS') && $this->version('iPod', self::VERSION_TYPE_FLOAT) <= 3.2 ||

            // Internet Explorer 7 and older - Tested on Windows XP
            $this->version('IE', self::VERSION_TYPE_FLOAT) <= 7.0 && !$isMobile
        ){
            return self::MOBILE_GRADE_C;
        }

        // All older smartphone platforms and featurephones - Any device that doesn't support media queries
        // will receive the basic, C grade experience.
        return self::MOBILE_GRADE_C;
    }
}
PK���[����$public/inc/mobile-detect/LICENSE.txtnu�[���MIT License

Copyright (c) <2011-2015> Serban Ghita, Nick Ilyin and contributors.

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Developer’s Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.
PK���[6e;�dd%public/inc/twitter-api-php/LICENSE.mdnu�[���The MIT License (MIT)

Copyright (c) 2013 James Mallison (j7mbo.co.uk)

Permission is hereby granted, free of charge, to any person obtaining a 
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the 
Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included 
in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
PK���[n��^,^,1public/inc/twitter-api-php/TwitterAPIExchange.phpnu�[���<?php

/**
 * Twitter-API-PHP : Simple PHP wrapper for the v1.1 API
 *
 * PHP version 5.3.10
 *
 * @category Awesomeness
 * @package  Twitter-API-PHP
 * @author   James Mallison <me@j7mbo.co.uk>
 * @license  MIT License
 * @version  1.0.4
 * @link     http://github.com/j7mbo/twitter-api-php
 */
class TwitterAPIExchange
{
    /**
     * @var string
     */
    private $oauth_access_token;

    /**
     * @var string
     */
    private $oauth_access_token_secret;

    /**
     * @var string
     */
    private $consumer_key;

    /**
     * @var string
     */
    private $consumer_secret;

    /**
     * @var array
     */
    private $postfields;

    /**
     * @var string
     */
    private $getfield;

    /**
     * @var mixed
     */
    protected $oauth;

    /**
     * @var string
     */
    public $url;

    /**
     * @var string
     */
    public $requestMethod;

    /**
     * The HTTP status code from the previous request
     *
     * @var int
     */
    protected $httpStatusCode;

    /**
     * Create the API access object. Requires an array of settings::
     * oauth access token, oauth access token secret, consumer key, consumer secret
     * These are all available by creating your own application on dev.twitter.com
     * Requires the cURL library
     *
     * @throws \RuntimeException When cURL isn't loaded
     * @throws \InvalidArgumentException When incomplete settings parameters are provided
     *
     * @param array $settings
     */
    public function __construct(array $settings)
    {
        if (!function_exists('curl_init'))
        {
            throw new RuntimeException('TwitterAPIExchange requires cURL extension to be loaded, see: http://curl.haxx.se/docs/install.html');
        }

        if (!isset($settings['oauth_access_token'])
            || !isset($settings['oauth_access_token_secret'])
            || !isset($settings['consumer_key'])
            || !isset($settings['consumer_secret']))
        {
            throw new InvalidArgumentException('Incomplete settings passed to TwitterAPIExchange');
        }

        $this->oauth_access_token = $settings['oauth_access_token'];
        $this->oauth_access_token_secret = $settings['oauth_access_token_secret'];
        $this->consumer_key = $settings['consumer_key'];
        $this->consumer_secret = $settings['consumer_secret'];
    }

    /**
     * Set postfields array, example: array('screen_name' => 'J7mbo')
     *
     * @param array $array Array of parameters to send to API
     *
     * @throws \Exception When you are trying to set both get and post fields
     *
     * @return TwitterAPIExchange Instance of self for method chaining
     */
    public function setPostfields(array $array)
    {
        if (!is_null($this->getGetfield()))
        {
            throw new Exception('You can only choose get OR post fields.');
        }

        if (isset($array['status']) && substr($array['status'], 0, 1) === '@')
        {
            $array['status'] = sprintf("\0%s", $array['status']);
        }

        foreach ($array as $key => &$value)
        {
            if (is_bool($value))
            {
                $value = ($value === true) ? 'true' : 'false';
            }
        }

        $this->postfields = $array;

        // rebuild oAuth
        if (isset($this->oauth['oauth_signature'])) {
            $this->buildOauth($this->url, $this->requestMethod);
        }

        return $this;
    }

    /**
     * Set getfield string, example: '?screen_name=J7mbo'
     *
     * @param string $string Get key and value pairs as string
     *
     * @throws \Exception
     *
     * @return \TwitterAPIExchange Instance of self for method chaining
     */
    public function setGetfield($string)
    {
        if (!is_null($this->getPostfields()))
        {
            throw new Exception('You can only choose get OR post fields.');
        }

        $getfields = preg_replace('/^\?/', '', explode('&', $string));
        $params = array();

        foreach ($getfields as $field)
        {
            if ($field !== '')
            {
                list($key, $value) = explode('=', $field);
                $params[$key] = $value;
            }
        }

        $this->getfield = '?' . http_build_query($params);

        return $this;
    }

    /**
     * Get getfield string (simple getter)
     *
     * @return string $this->getfields
     */
    public function getGetfield()
    {
        return $this->getfield;
    }

    /**
     * Get postfields array (simple getter)
     *
     * @return array $this->postfields
     */
    public function getPostfields()
    {
        return $this->postfields;
    }

    /**
     * Build the Oauth object using params set in construct and additionals
     * passed to this method. For v1.1, see: https://dev.twitter.com/docs/api/1.1
     *
     * @param string $url           The API url to use. Example: https://api.twitter.com/1.1/search/tweets.json
     * @param string $requestMethod Either POST or GET
     *
     * @throws \Exception
     *
     * @return \TwitterAPIExchange Instance of self for method chaining
     */
    public function buildOauth($url, $requestMethod)
    {
        if (!in_array(strtolower($requestMethod), array('post', 'get')))
        {
            throw new Exception('Request method must be either POST or GET');
        }

        $consumer_key              = $this->consumer_key;
        $consumer_secret           = $this->consumer_secret;
        $oauth_access_token        = $this->oauth_access_token;
        $oauth_access_token_secret = $this->oauth_access_token_secret;

        $oauth = array(
            'oauth_consumer_key' => $consumer_key,
            'oauth_nonce' => time(),
            'oauth_signature_method' => 'HMAC-SHA1',
            'oauth_token' => $oauth_access_token,
            'oauth_timestamp' => time(),
            'oauth_version' => '1.0'
        );

        $getfield = $this->getGetfield();

        if (!is_null($getfield))
        {
            $getfields = str_replace('?', '', explode('&', $getfield));

            foreach ($getfields as $g)
            {
                $split = explode('=', $g);

                /** In case a null is passed through **/
                if (isset($split[1]))
                {
                    $oauth[$split[0]] = urldecode($split[1]);
                }
            }
        }

        $postfields = $this->getPostfields();

        if (!is_null($postfields)) {
            foreach ($postfields as $key => $value) {
                $oauth[$key] = $value;
            }
        }

        $base_info = $this->buildBaseString($url, $requestMethod, $oauth);
        $composite_key = rawurlencode($consumer_secret) . '&' . rawurlencode($oauth_access_token_secret);
        $oauth_signature = base64_encode(hash_hmac('sha1', $base_info, $composite_key, true));
        $oauth['oauth_signature'] = $oauth_signature;

        $this->url = $url;
        $this->requestMethod = $requestMethod;
        $this->oauth = $oauth;

        return $this;
    }

    /**
     * Perform the actual data retrieval from the API
     *
     * @param boolean $return      If true, returns data. This is left in for backward compatibility reasons
     * @param array   $curlOptions Additional Curl options for this request
     *
     * @throws \Exception
     *
     * @return string json If $return param is true, returns json data.
     */
    public function performRequest($return = true, $curlOptions = array())
    {
        if (!is_bool($return))
        {
            throw new Exception('performRequest parameter must be true or false');
        }

        $header =  array($this->buildAuthorizationHeader($this->oauth), 'Expect:');

        $getfield = $this->getGetfield();
        $postfields = $this->getPostfields();

        $options = array(
            CURLOPT_HTTPHEADER => $header,
            CURLOPT_HEADER => false,
            CURLOPT_URL => $this->url,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_TIMEOUT => 10,
        ) + $curlOptions;

        if (!is_null($postfields))
        {
            $options[CURLOPT_POSTFIELDS] = http_build_query($postfields);
        }
        else
        {
            if ($getfield !== '')
            {
                $options[CURLOPT_URL] .= $getfield;
            }
        }

        $feed = curl_init();
        curl_setopt_array($feed, $options);
        $json = curl_exec($feed);

        $this->httpStatusCode = curl_getinfo($feed, CURLINFO_HTTP_CODE);

        if (($error = curl_error($feed)) !== '')
        {
            curl_close($feed);

            throw new \Exception($error);
        }

        curl_close($feed);

        return $json;
    }

    /**
     * Private method to generate the base string used by cURL
     *
     * @param string $baseURI
     * @param string $method
     * @param array  $params
     *
     * @return string Built base string
     */
    private function buildBaseString($baseURI, $method, $params)
    {
        $return = array();
        ksort($params);

        foreach($params as $key => $value)
        {
            $return[] = rawurlencode($key) . '=' . rawurlencode($value);
        }

        return $method . "&" . rawurlencode($baseURI) . '&' . rawurlencode(implode('&', $return));
    }

    /**
     * Private method to generate authorization header used by cURL
     *
     * @param array $oauth Array of oauth data generated by buildOauth()
     *
     * @return string $return Header used by cURL for request
     */
    private function buildAuthorizationHeader(array $oauth)
    {
        $return = 'Authorization: OAuth ';
        $values = array();

        foreach($oauth as $key => $value)
        {
            if (in_array($key, array('oauth_consumer_key', 'oauth_nonce', 'oauth_signature',
                'oauth_signature_method', 'oauth_timestamp', 'oauth_token', 'oauth_version'))) {
                $values[] = "$key=\"" . rawurlencode($value) . "\"";
            }
        }

        $return .= implode(', ', $values);
        return $return;
    }

    /**
     * Helper method to perform our request
     *
     * @param string $url
     * @param string $method
     * @param string $data
     * @param array  $curlOptions
     *
     * @throws \Exception
     *
     * @return string The json response from the server
     */
    public function request($url, $method = 'get', $data = null, $curlOptions = array())
    {
        if (strtolower($method) === 'get')
        {
            $this->setGetfield($data);
        }
        else
        {
            $this->setPostfields($data);
        }

        return $this->buildOauth($url, $method)->performRequest(true, $curlOptions);
    }

    /**
     * Get the HTTP status code for the previous request
     *
     * @return integer
     */
    public function getHttpStatusCode()
    {
        return $this->httpStatusCode;
    }
}
PK���[Ϸm+R9R9public/assets/js/general.jsnu�[���jQuery(document).ready(function($) {

	var daln_archived_ticker_data_xml = '';
	var daln_ticker_cycles = 0;

	/*
	 * Append the ticker in the DOM if the daln_apply_ticker flag is defined
	 */
	if ( typeof daln_apply_ticker != 'undefined' && daln_apply_ticker ){

		//append the ticker before the ending body tag
		daln_append_html();

		//refresh the news only if the news ticker is in "open" status
		if (( $("#daln-container").css("display") == "block") ){

			//refresh the news
			daln_refresh_news();

		}

		/*
		 * If the clock is based on the user time and the clock_autoupdate option enabled set the interval used to
		 * update the clock
		 */
		if(daln_clock_source == 2 && daln_clock_autoupdate == 1) {
			window.setInterval(daln_set_clock_based_on_user_time, (daln_clock_autoupdate_time * 1000) );
		}

	}

	/*
	 * This function is used to refresh all the data displayed in the ticker and to animate the sliding news from the
	 * initial to the final destination. It's called in the following situations:
	 *
	 * - When the document is ready
	 * - When a cycle of sliding news has finished its animation
	 * - When the news ticker is opened with the open button
	 */
	function daln_refresh_news(){

		if(typeof daln_ticker_transient != 'undefined' && daln_ticker_transient !== null){

			//Convert the XML string to a JavaScript XML Document
      daln_archived_ticker_data_xml = $.parseXML(daln_ticker_transient);

			//Set the transient to null so it won't be used multiple times
			daln_ticker_transient = null;

		}

		if( $.isXMLDoc( daln_archived_ticker_data_xml) === false || daln_ticker_cycles >= daln_cached_cycles ){

			//retrieve the news with ajax and refresh the news ---------------------------------------------------------

			daln_ticker_cycles = 0;

			//set ajax in synchronous mode
			jQuery.ajaxSetup({async:false});

			//prepare input for the ajax request
			var data = {
				"action": "get_ticker_data",
				"security": daln_nonce,
				"ticker_id": daln_ticker_id
			};

			//ajax
			$.post(daln_ajax_url, data, function(ticker_data_xml) {

				daln_archived_ticker_data_xml = ticker_data_xml;

				daln_update_the_clock(ticker_data_xml);

				daln_refresh_featured_news(ticker_data_xml);

				daln_refresh_sliding_news(ticker_data_xml);

				daln_slide_the_news();

			});

			//set ajax in asynchronous mode
			jQuery.ajaxSetup({async:true});

		}else{

			//use the current ticker xml data to refresh the news ------------------------------------------------------

			daln_ticker_cycles++;

			daln_update_the_clock(daln_archived_ticker_data_xml);

			daln_refresh_featured_news(daln_archived_ticker_data_xml);

			daln_refresh_sliding_news(daln_archived_ticker_data_xml);

			daln_slide_the_news();

		}

	}

	/*
	 * Update the clock
	 */
	function daln_update_the_clock(ticker_data_xml){

		if(daln_clock_source == 2){

			//update the clock based on the user time ------------------------------------------------------------------
			daln_set_clock_based_on_user_time();

		}else{

			//update the clock based on the server time ----------------------------------------------------------------
			var currentTime = $(ticker_data_xml).find('time').text();

      var timestamp = moment.unix(currentTime).utc();
			$("#daln-clock").text(timestamp.format(daln_clock_format));

		}

	}

	/*
	 * Remove the featured news title and excerpt from the DOM and uses the ticker data in XML format data to append the
	 * news featured news title and excerpt
	 */
	function daln_refresh_featured_news(ticker_data_xml){

		//parse the xml string
		$(ticker_data_xml).find("featurednews news").each(function(){

			var news_title = $(this).find("newstitle").text();
			var news_excerpt = $(this).find("newsexcerpt").text();
			var url = $(this).find("url").text();

			//Delete the featured title
			$('#daln-featured-title').html("");

			//Delete the featured excerpt
			$('#daln-featured-excerpt').html("");

			if( url.length > 0 && daln_enable_links ){

				//Append the new featured title
				$('#daln-featured-title').html( '<a target="' + daln_target_attribute + '" href="' + url + '">' + daln_htmlEscape( news_title ) + '</a>' );

				//Append the new featured excerpt
				$('#daln-featured-excerpt').html( daln_htmlEscape( news_excerpt ) );

			}else{

				//Append the new featured title
				$('#daln-featured-title').html(  daln_htmlEscape( news_title )  );

				//Append the new featured excerpt
				$('#daln-featured-excerpt').html( daln_htmlEscape( news_excerpt ) );

			}

		});

	}

	/*
	 * Deletes all the sliding news from the DOM and uses the ticker data in XML format to append the news sliding news
	 */
	function daln_refresh_sliding_news(ticker_data_xml){

		//Delete the previous sliding news
		$('#daln-slider-floating-content').empty();

		//parse the xml string
		$(ticker_data_xml).find("slidingnews news").each(function(){

			var news_title = $(this).find("newstitle").text();
			var url = $(this).find("url").text();
			var text_color = $(this).find("text_color").text();
			var text_color_hover = $(this).find("text_color_hover").text();
			var background_color = $(this).find("background_color").text();
			var background_color_opacity = $(this).find("background_color_opacity").text();
			var image_before = $(this).find("image_before").text();
			var image_after = $(this).find("image_after").text();

			//generate the style for the text color
			if( text_color.trim().length > 0 ){
				var style_text_color = 'style="color: ' + text_color + ';"';
			}else{
				var style_text_color = '';
			}

			//generate the style for the background color
			if( background_color.trim().length > 0 ) {
				var color_a = rgb_hex_to_dec(background_color);
				var style_background_color = 'style="background: rgba(' + color_a['r'] + ',' + color_a['g'] + ',' + color_a['b'] + ',' + parseFloat(background_color_opacity) + ');"';
			}else{
				var style_background_color = '';
			}

			//generate the image_before html
			if(image_before.trim().length > 0){
				var image_before_html = '<img class="daln-image-before" src="' + image_before + '">';
			}else{
				var image_before_html = '';
			}

			//generate the image_after html
			if(image_after.trim().length > 0){
				var image_after_html = '<img class="daln-image-after" src="' + image_after + '">';
			}else{
				var image_after_html = '';
			}

			//check if is set the RTL layout option
			if( daln_rtl_layout == 0 ){

				//LTR layout -----------------------------------------------------------------------
				if( url.length > 0 && daln_enable_links ){
					$('#daln-slider-floating-content').append( '<div ' + style_background_color + ' class="daln-slider-single-news">' + image_before_html + '<a data-text-color="' + text_color + '" onmouseout=\'jQuery(this).css("color", jQuery(this).attr("data-text-color"))\' onmouseover=\'jQuery(this).css("color", "' + text_color_hover + '" )\' ' + style_text_color + ' target="' + daln_target_attribute + '" href="' + url + '">' + daln_htmlEscape( news_title ) + '</a>' + image_after_html + '</div>' );
				}else{
					$('#daln-slider-floating-content').append( '<div ' + style_background_color + ' class="daln-slider-single-news">' + image_before_html + '<span ' + style_text_color + ' >' + daln_htmlEscape( news_title ) + '</span>' + image_after_html + '</div>' );
				}

			}else{

				//RTL layout -----------------------------------------------------------------------
				if( url.length > 0 && daln_enable_links ){
					$('#daln-slider-floating-content').prepend( '<div ' + style_background_color + ' class="daln-slider-single-news">' + image_before_html + '<a  data-text-color="' + text_color + '" onmouseout=\'jQuery(this).css("color", jQuery(this).attr("data-text-color"))\' onmouseover=\'jQuery(this).css("color", "' + text_color_hover + '" )\' ' + style_text_color + ' target="' + daln_target_attribute + '" href="' + url + '">' + daln_htmlEscape( news_title ) + '</a>' + image_after_html + '</div>' );
				}else{
					$('#daln-slider-floating-content').prepend( '<div ' + style_background_color + ' class="daln-slider-single-news">' + image_before_html + '<span ' + style_text_color + ' >' + daln_htmlEscape( news_title ) + '</span>' + image_after_html + '</div>' );
				}

			}
		});

	}

	/*
	 * Slides the news with jQuery animate from the initial to the final position. When the animation is complete calls
	 * daln_refresh_news() which restarts the process from the start.
	 */
	function daln_slide_the_news(){

		//if the news slider is already animated then return
		if( ( $('#daln-slider-floating-content:animated').length ) == 1 ){ return; };

		//get browser with
		var window_width = $(window).width();

		//floating news width
		var floating_news_width =parseInt( $( "#daln-slider-floating-content" ).css("width") );

		//check if is set the RTL layout option
		if( daln_rtl_layout == 0 ){

			//LTR layout -----------------------------------------------------------------------

			//position outside the screen to the left
			var outside_left = floating_news_width + window_width;

			//set floating content left position outside the screen
			$( "#daln-slider-floating-content" ).css("left", window_width );

			//start floating the news
			$( "#daln-slider-floating-content" ).delay(daln_sliding_delay).animate({
				left: "-=" + outside_left,
				easing: "linear"
			}, ( outside_left * daln_sliding_speed ), "linear", function() {

				//animation complete
				daln_refresh_news();

			});

		}else{

			//RTL layout -----------------------------------------------------------------------

			//position outside the screen to the left
			var outside_left = floating_news_width + window_width;

			//set floating content left position outside the screen
			$( "#daln-slider-floating-content" ).css("left", - floating_news_width );

			//start floating the news
			$( "#daln-slider-floating-content" ).delay(daln_sliding_delay).animate({
				left: "+=" + outside_left,
				easing: "linear"
			}, ( outside_left * daln_sliding_speed ), "linear", function() {

				//animation complete
				daln_refresh_news();

			});

		}

	}

	/*
	 * On the click event of the "#daln-close" element closes the news ticker and sends an ajax request used to save the
	 * "closed" status in the "live_news_status" cookie
	 */
	$("#daln-close").click(function() {

		//Stop the animation
		$("#daln-slider-floating-content").stop();

		//Delete the previous sliding news
		$('#daln-slider-floating-content').empty();

		//Hide the news container
		$("#daln-container").hide();

		//Show the open button
		$("#daln-open").show();

        //prepare input for the ajax request
        var data = {
            "action": "set_status_cookie",
            "security": daln_nonce,
            "status": "closed"
        };

        //ajax
        $.post(daln_ajax_url, data, function(ajax_response) {

			if( ajax_response == "success" ){
				//nothing
			}

        });

		//set the status hidden field to closed
		$("#daln-status").attr("value","closed");

	});

	/*
	 * On the click event of the "#daln-open" element opens the news ticker and sends an ajax request used to save the
	 * "open" status in the "live_news_status" cookie
	 */
	$("#daln-open").click(function() {

		//Show the news container
		$("#daln-container").show();

		//Show the open button
		$("#daln-open").hide();

		daln_refresh_news();

        //prepare input for the ajax request
        var data = {
            "action": "set_status_cookie",
            "security": daln_nonce,
            "status": "open"
        };

        //ajax
        $.post(daln_ajax_url, data, function(ajax_response) {

			if( ajax_response == "success" ){
				//nothing
			}

        });

		//set the status hidden field to open
		$("#daln-status").attr("value","open");

	});

	/*
	 * Converts certain characters to their HTML entities
	 */
	function daln_htmlEscape(str) {
	    return String(str)
			.replace(/&/g, '&amp;')
			.replace(/"/g, '&quot;')
			.replace(/'/g, '&#39;')
			.replace(/</g, '&lt;')
			.replace(/>/g, '&gt;');
	}

	/*
	 * Appends the ticker HTML just before the ending body element
	 */
	function daln_append_html(){

		html_output = '<div id="daln-container">' +

			'<!-- featured news -->' +
			'<div id="daln-featured-container">' +
				'<div id="daln-featured-title-container">' +
					'<div id="daln-featured-title"></div>' +
				'</div>' +
				'<div id="daln-featured-excerpt-container">' +
					'<div id="daln-featured-excerpt"></div>' +
				'</div>' +
			'</div>' +

			'<!-- slider -->' +
			'<div id="daln-slider">' +
				'<!-- floating content -->' +
				'<div id="daln-slider-floating-content"></div>' +
			'</div>' +

			'<!-- clock -->' +
			'<div id="daln-clock"></div>' +

			'<!-- close button -->' +
			'<div id="daln-close"></div>' +

		'</div>' +

		'<!-- open button -->' +
		'<div id="daln-open"></div>';

		$('body').append(html_output);

	}

	/*
	 * Uses a "Date" object to retrieve the user time and adds the clock offset of this news ticker
	 */
	function daln_set_clock_based_on_user_time(){

		//Get the current unix timestamp and add the offset
		var timestamp = moment().unix() + daln_clock_offset;

		//Convert the unix timestamp to the provided format
		var time = moment.unix(timestamp).format(daln_clock_format);

		//Update the DOM
    $("#daln-clock").text(time);

	}

	/*
	 * Given an hexadecimal rgb color an array with the 3 components converted in decimal is returned
	 *
	 * @param string The hexadecimal rgb color
	 * @return array An array with the 3 component of the color converted in decimal
	 */
	function rgb_hex_to_dec(hex){

		//remove the # character
		var hex = hex.replace('#', '');

		//find the component of the color
		if ( hex.length == 3 ) {
			var r = parseInt(hex.substring(0, 1), 16);
			var g = parseInt(hex.substring(1, 2), 16);
			var b = parseInt(hex.substring(2, 3), 16);
		} else {
			var r = parseInt(hex.substring(0, 2), 16);
			var g = parseInt(hex.substring(2, 4), 16);
			var b = parseInt(hex.substring(4, 6), 16);
		}

		//generate the array with the component of the color
		var color_a = new Array();
		color_a['r'] = r;
		color_a['g'] = g;
		color_a['b'] = b;

		return color_a;

	}

});PK���[����%public/assets/js/momentjs/momentjs.jsnu�[���//! moment.js

;(function (global, factory) {
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
      typeof define === 'function' && define.amd ? define(factory) :
          global.moment = factory()
}(this, (function () { 'use strict';

  var hookCallback;

  function hooks () {
    return hookCallback.apply(null, arguments);
  }

  // This is done to register the method called with moment()
  // without creating circular dependencies.
  function setHookCallback (callback) {
    hookCallback = callback;
  }

  function isArray(input) {
    return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';
  }

  function isObject(input) {
    // IE8 will treat undefined and null as object if it wasn't for
    // input != null
    return input != null && Object.prototype.toString.call(input) === '[object Object]';
  }

  function isObjectEmpty(obj) {
    if (Object.getOwnPropertyNames) {
      return (Object.getOwnPropertyNames(obj).length === 0);
    } else {
      var k;
      for (k in obj) {
        if (obj.hasOwnProperty(k)) {
          return false;
        }
      }
      return true;
    }
  }

  function isUndefined(input) {
    return input === void 0;
  }

  function isNumber(input) {
    return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';
  }

  function isDate(input) {
    return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';
  }

  function map(arr, fn) {
    var res = [], i;
    for (i = 0; i < arr.length; ++i) {
      res.push(fn(arr[i], i));
    }
    return res;
  }

  function hasOwnProp(a, b) {
    return Object.prototype.hasOwnProperty.call(a, b);
  }

  function extend(a, b) {
    for (var i in b) {
      if (hasOwnProp(b, i)) {
        a[i] = b[i];
      }
    }

    if (hasOwnProp(b, 'toString')) {
      a.toString = b.toString;
    }

    if (hasOwnProp(b, 'valueOf')) {
      a.valueOf = b.valueOf;
    }

    return a;
  }

  function createUTC (input, format, locale, strict) {
    return createLocalOrUTC(input, format, locale, strict, true).utc();
  }

  function defaultParsingFlags() {
    // We need to deep clone this object.
    return {
      empty           : false,
      unusedTokens    : [],
      unusedInput     : [],
      overflow        : -2,
      charsLeftOver   : 0,
      nullInput       : false,
      invalidMonth    : null,
      invalidFormat   : false,
      userInvalidated : false,
      iso             : false,
      parsedDateParts : [],
      meridiem        : null,
      rfc2822         : false,
      weekdayMismatch : false
    };
  }

  function getParsingFlags(m) {
    if (m._pf == null) {
      m._pf = defaultParsingFlags();
    }
    return m._pf;
  }

  var some;
  if (Array.prototype.some) {
    some = Array.prototype.some;
  } else {
    some = function (fun) {
      var t = Object(this);
      var len = t.length >>> 0;

      for (var i = 0; i < len; i++) {
        if (i in t && fun.call(this, t[i], i, t)) {
          return true;
        }
      }

      return false;
    };
  }

  function isValid(m) {
    if (m._isValid == null) {
      var flags = getParsingFlags(m);
      var parsedParts = some.call(flags.parsedDateParts, function (i) {
        return i != null;
      });
      var isNowValid = !isNaN(m._d.getTime()) &&
          flags.overflow < 0 &&
          !flags.empty &&
          !flags.invalidMonth &&
          !flags.invalidWeekday &&
          !flags.weekdayMismatch &&
          !flags.nullInput &&
          !flags.invalidFormat &&
          !flags.userInvalidated &&
          (!flags.meridiem || (flags.meridiem && parsedParts));

      if (m._strict) {
        isNowValid = isNowValid &&
            flags.charsLeftOver === 0 &&
            flags.unusedTokens.length === 0 &&
            flags.bigHour === undefined;
      }

      if (Object.isFrozen == null || !Object.isFrozen(m)) {
        m._isValid = isNowValid;
      }
      else {
        return isNowValid;
      }
    }
    return m._isValid;
  }

  function createInvalid (flags) {
    var m = createUTC(NaN);
    if (flags != null) {
      extend(getParsingFlags(m), flags);
    }
    else {
      getParsingFlags(m).userInvalidated = true;
    }

    return m;
  }

  // Plugins that add properties should also add the key here (null value),
  // so we can properly clone ourselves.
  var momentProperties = hooks.momentProperties = [];

  function copyConfig(to, from) {
    var i, prop, val;

    if (!isUndefined(from._isAMomentObject)) {
      to._isAMomentObject = from._isAMomentObject;
    }
    if (!isUndefined(from._i)) {
      to._i = from._i;
    }
    if (!isUndefined(from._f)) {
      to._f = from._f;
    }
    if (!isUndefined(from._l)) {
      to._l = from._l;
    }
    if (!isUndefined(from._strict)) {
      to._strict = from._strict;
    }
    if (!isUndefined(from._tzm)) {
      to._tzm = from._tzm;
    }
    if (!isUndefined(from._isUTC)) {
      to._isUTC = from._isUTC;
    }
    if (!isUndefined(from._offset)) {
      to._offset = from._offset;
    }
    if (!isUndefined(from._pf)) {
      to._pf = getParsingFlags(from);
    }
    if (!isUndefined(from._locale)) {
      to._locale = from._locale;
    }

    if (momentProperties.length > 0) {
      for (i = 0; i < momentProperties.length; i++) {
        prop = momentProperties[i];
        val = from[prop];
        if (!isUndefined(val)) {
          to[prop] = val;
        }
      }
    }

    return to;
  }

  var updateInProgress = false;

  // Moment prototype object
  function Moment(config) {
    copyConfig(this, config);
    this._d = new Date(config._d != null ? config._d.getTime() : NaN);
    if (!this.isValid()) {
      this._d = new Date(NaN);
    }
    // Prevent infinite loop in case updateOffset creates new moment
    // objects.
    if (updateInProgress === false) {
      updateInProgress = true;
      hooks.updateOffset(this);
      updateInProgress = false;
    }
  }

  function isMoment (obj) {
    return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);
  }

  function absFloor (number) {
    if (number < 0) {
      // -0 -> 0
      return Math.ceil(number) || 0;
    } else {
      return Math.floor(number);
    }
  }

  function toInt(argumentForCoercion) {
    var coercedNumber = +argumentForCoercion,
        value = 0;

    if (coercedNumber !== 0 && isFinite(coercedNumber)) {
      value = absFloor(coercedNumber);
    }

    return value;
  }

  // compare two arrays, return the number of differences
  function compareArrays(array1, array2, dontConvert) {
    var len = Math.min(array1.length, array2.length),
        lengthDiff = Math.abs(array1.length - array2.length),
        diffs = 0,
        i;
    for (i = 0; i < len; i++) {
      if ((dontConvert && array1[i] !== array2[i]) ||
          (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {
        diffs++;
      }
    }
    return diffs + lengthDiff;
  }

  function warn(msg) {
    if (hooks.suppressDeprecationWarnings === false &&
        (typeof console !==  'undefined') && console.warn) {
      console.warn('Deprecation warning: ' + msg);
    }
  }

  function deprecate(msg, fn) {
    var firstTime = true;

    return extend(function () {
      if (hooks.deprecationHandler != null) {
        hooks.deprecationHandler(null, msg);
      }
      if (firstTime) {
        var args = [];
        var arg;
        for (var i = 0; i < arguments.length; i++) {
          arg = '';
          if (typeof arguments[i] === 'object') {
            arg += '\n[' + i + '] ';
            for (var key in arguments[0]) {
              arg += key + ': ' + arguments[0][key] + ', ';
            }
            arg = arg.slice(0, -2); // Remove trailing comma and space
          } else {
            arg = arguments[i];
          }
          args.push(arg);
        }
        warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack);
        firstTime = false;
      }
      return fn.apply(this, arguments);
    }, fn);
  }

  var deprecations = {};

  function deprecateSimple(name, msg) {
    if (hooks.deprecationHandler != null) {
      hooks.deprecationHandler(name, msg);
    }
    if (!deprecations[name]) {
      warn(msg);
      deprecations[name] = true;
    }
  }

  hooks.suppressDeprecationWarnings = false;
  hooks.deprecationHandler = null;

  function isFunction(input) {
    return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';
  }

  function set (config) {
    var prop, i;
    for (i in config) {
      prop = config[i];
      if (isFunction(prop)) {
        this[i] = prop;
      } else {
        this['_' + i] = prop;
      }
    }
    this._config = config;
    // Lenient ordinal parsing accepts just a number in addition to
    // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.
    // TODO: Remove "ordinalParse" fallback in next major release.
    this._dayOfMonthOrdinalParseLenient = new RegExp(
        (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +
        '|' + (/\d{1,2}/).source);
  }

  function mergeConfigs(parentConfig, childConfig) {
    var res = extend({}, parentConfig), prop;
    for (prop in childConfig) {
      if (hasOwnProp(childConfig, prop)) {
        if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {
          res[prop] = {};
          extend(res[prop], parentConfig[prop]);
          extend(res[prop], childConfig[prop]);
        } else if (childConfig[prop] != null) {
          res[prop] = childConfig[prop];
        } else {
          delete res[prop];
        }
      }
    }
    for (prop in parentConfig) {
      if (hasOwnProp(parentConfig, prop) &&
          !hasOwnProp(childConfig, prop) &&
          isObject(parentConfig[prop])) {
        // make sure changes to properties don't modify parent config
        res[prop] = extend({}, res[prop]);
      }
    }
    return res;
  }

  function Locale(config) {
    if (config != null) {
      this.set(config);
    }
  }

  var keys;

  if (Object.keys) {
    keys = Object.keys;
  } else {
    keys = function (obj) {
      var i, res = [];
      for (i in obj) {
        if (hasOwnProp(obj, i)) {
          res.push(i);
        }
      }
      return res;
    };
  }

  var defaultCalendar = {
    sameDay : '[Today at] LT',
    nextDay : '[Tomorrow at] LT',
    nextWeek : 'dddd [at] LT',
    lastDay : '[Yesterday at] LT',
    lastWeek : '[Last] dddd [at] LT',
    sameElse : 'L'
  };

  function calendar (key, mom, now) {
    var output = this._calendar[key] || this._calendar['sameElse'];
    return isFunction(output) ? output.call(mom, now) : output;
  }

  var defaultLongDateFormat = {
    LTS  : 'h:mm:ss A',
    LT   : 'h:mm A',
    L    : 'MM/DD/YYYY',
    LL   : 'MMMM D, YYYY',
    LLL  : 'MMMM D, YYYY h:mm A',
    LLLL : 'dddd, MMMM D, YYYY h:mm A'
  };

  function longDateFormat (key) {
    var format = this._longDateFormat[key],
        formatUpper = this._longDateFormat[key.toUpperCase()];

    if (format || !formatUpper) {
      return format;
    }

    this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {
      return val.slice(1);
    });

    return this._longDateFormat[key];
  }

  var defaultInvalidDate = 'Invalid date';

  function invalidDate () {
    return this._invalidDate;
  }

  var defaultOrdinal = '%d';
  var defaultDayOfMonthOrdinalParse = /\d{1,2}/;

  function ordinal (number) {
    return this._ordinal.replace('%d', number);
  }

  var defaultRelativeTime = {
    future : 'in %s',
    past   : '%s ago',
    s  : 'a few seconds',
    ss : '%d seconds',
    m  : 'a minute',
    mm : '%d minutes',
    h  : 'an hour',
    hh : '%d hours',
    d  : 'a day',
    dd : '%d days',
    M  : 'a month',
    MM : '%d months',
    y  : 'a year',
    yy : '%d years'
  };

  function relativeTime (number, withoutSuffix, string, isFuture) {
    var output = this._relativeTime[string];
    return (isFunction(output)) ?
        output(number, withoutSuffix, string, isFuture) :
        output.replace(/%d/i, number);
  }

  function pastFuture (diff, output) {
    var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
    return isFunction(format) ? format(output) : format.replace(/%s/i, output);
  }

  var aliases = {};

  function addUnitAlias (unit, shorthand) {
    var lowerCase = unit.toLowerCase();
    aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;
  }

  function normalizeUnits(units) {
    return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;
  }

  function normalizeObjectUnits(inputObject) {
    var normalizedInput = {},
        normalizedProp,
        prop;

    for (prop in inputObject) {
      if (hasOwnProp(inputObject, prop)) {
        normalizedProp = normalizeUnits(prop);
        if (normalizedProp) {
          normalizedInput[normalizedProp] = inputObject[prop];
        }
      }
    }

    return normalizedInput;
  }

  var priorities = {};

  function addUnitPriority(unit, priority) {
    priorities[unit] = priority;
  }

  function getPrioritizedUnits(unitsObj) {
    var units = [];
    for (var u in unitsObj) {
      units.push({unit: u, priority: priorities[u]});
    }
    units.sort(function (a, b) {
      return a.priority - b.priority;
    });
    return units;
  }

  function zeroFill(number, targetLength, forceSign) {
    var absNumber = '' + Math.abs(number),
        zerosToFill = targetLength - absNumber.length,
        sign = number >= 0;
    return (sign ? (forceSign ? '+' : '') : '-') +
        Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;
  }

  var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;

  var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g;

  var formatFunctions = {};

  var formatTokenFunctions = {};

  // token:    'M'
  // padded:   ['MM', 2]
  // ordinal:  'Mo'
  // callback: function () { this.month() + 1 }
  function addFormatToken (token, padded, ordinal, callback) {
    var func = callback;
    if (typeof callback === 'string') {
      func = function () {
        return this[callback]();
      };
    }
    if (token) {
      formatTokenFunctions[token] = func;
    }
    if (padded) {
      formatTokenFunctions[padded[0]] = function () {
        return zeroFill(func.apply(this, arguments), padded[1], padded[2]);
      };
    }
    if (ordinal) {
      formatTokenFunctions[ordinal] = function () {
        return this.localeData().ordinal(func.apply(this, arguments), token);
      };
    }
  }

  function removeFormattingTokens(input) {
    if (input.match(/\[[\s\S]/)) {
      return input.replace(/^\[|\]$/g, '');
    }
    return input.replace(/\\/g, '');
  }

  function makeFormatFunction(format) {
    var array = format.match(formattingTokens), i, length;

    for (i = 0, length = array.length; i < length; i++) {
      if (formatTokenFunctions[array[i]]) {
        array[i] = formatTokenFunctions[array[i]];
      } else {
        array[i] = removeFormattingTokens(array[i]);
      }
    }

    return function (mom) {
      var output = '', i;
      for (i = 0; i < length; i++) {
        output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];
      }
      return output;
    };
  }

  // format date using native date object
  function formatMoment(m, format) {
    if (!m.isValid()) {
      return m.localeData().invalidDate();
    }

    format = expandFormat(format, m.localeData());
    formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);

    return formatFunctions[format](m);
  }

  function expandFormat(format, locale) {
    var i = 5;

    function replaceLongDateFormatTokens(input) {
      return locale.longDateFormat(input) || input;
    }

    localFormattingTokens.lastIndex = 0;
    while (i >= 0 && localFormattingTokens.test(format)) {
      format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);
      localFormattingTokens.lastIndex = 0;
      i -= 1;
    }

    return format;
  }

  var match1         = /\d/;            //       0 - 9
  var match2         = /\d\d/;          //      00 - 99
  var match3         = /\d{3}/;         //     000 - 999
  var match4         = /\d{4}/;         //    0000 - 9999
  var match6         = /[+-]?\d{6}/;    // -999999 - 999999
  var match1to2      = /\d\d?/;         //       0 - 99
  var match3to4      = /\d\d\d\d?/;     //     999 - 9999
  var match5to6      = /\d\d\d\d\d\d?/; //   99999 - 999999
  var match1to3      = /\d{1,3}/;       //       0 - 999
  var match1to4      = /\d{1,4}/;       //       0 - 9999
  var match1to6      = /[+-]?\d{1,6}/;  // -999999 - 999999

  var matchUnsigned  = /\d+/;           //       0 - inf
  var matchSigned    = /[+-]?\d+/;      //    -inf - inf

  var matchOffset    = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z
  var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z

  var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123

  // any word (or two) characters or numbers including two/three word month in arabic.
  // includes scottish gaelic two word and hyphenated months
  var matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i;

  var regexes = {};

  function addRegexToken (token, regex, strictRegex) {
    regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {
      return (isStrict && strictRegex) ? strictRegex : regex;
    };
  }

  function getParseRegexForToken (token, config) {
    if (!hasOwnProp(regexes, token)) {
      return new RegExp(unescapeFormat(token));
    }

    return regexes[token](config._strict, config._locale);
  }

  // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
  function unescapeFormat(s) {
    return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) {
      return p1 || p2 || p3 || p4;
    }));
  }

  function regexEscape(s) {
    return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
  }

  var tokens = {};

  function addParseToken (token, callback) {
    var i, func = callback;
    if (typeof token === 'string') {
      token = [token];
    }
    if (isNumber(callback)) {
      func = function (input, array) {
        array[callback] = toInt(input);
      };
    }
    for (i = 0; i < token.length; i++) {
      tokens[token[i]] = func;
    }
  }

  function addWeekParseToken (token, callback) {
    addParseToken(token, function (input, array, config, token) {
      config._w = config._w || {};
      callback(input, config._w, config, token);
    });
  }

  function addTimeToArrayFromToken(token, input, config) {
    if (input != null && hasOwnProp(tokens, token)) {
      tokens[token](input, config._a, config, token);
    }
  }

  var YEAR = 0;
  var MONTH = 1;
  var DATE = 2;
  var HOUR = 3;
  var MINUTE = 4;
  var SECOND = 5;
  var MILLISECOND = 6;
  var WEEK = 7;
  var WEEKDAY = 8;

  // FORMATTING

  addFormatToken('Y', 0, 0, function () {
    var y = this.year();
    return y <= 9999 ? '' + y : '+' + y;
  });

  addFormatToken(0, ['YY', 2], 0, function () {
    return this.year() % 100;
  });

  addFormatToken(0, ['YYYY',   4],       0, 'year');
  addFormatToken(0, ['YYYYY',  5],       0, 'year');
  addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');

  // ALIASES

  addUnitAlias('year', 'y');

  // PRIORITIES

  addUnitPriority('year', 1);

  // PARSING

  addRegexToken('Y',      matchSigned);
  addRegexToken('YY',     match1to2, match2);
  addRegexToken('YYYY',   match1to4, match4);
  addRegexToken('YYYYY',  match1to6, match6);
  addRegexToken('YYYYYY', match1to6, match6);

  addParseToken(['YYYYY', 'YYYYYY'], YEAR);
  addParseToken('YYYY', function (input, array) {
    array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);
  });
  addParseToken('YY', function (input, array) {
    array[YEAR] = hooks.parseTwoDigitYear(input);
  });
  addParseToken('Y', function (input, array) {
    array[YEAR] = parseInt(input, 10);
  });

  // HELPERS

  function daysInYear(year) {
    return isLeapYear(year) ? 366 : 365;
  }

  function isLeapYear(year) {
    return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
  }

  // HOOKS

  hooks.parseTwoDigitYear = function (input) {
    return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
  };

  // MOMENTS

  var getSetYear = makeGetSet('FullYear', true);

  function getIsLeapYear () {
    return isLeapYear(this.year());
  }

  function makeGetSet (unit, keepTime) {
    return function (value) {
      if (value != null) {
        set$1(this, unit, value);
        hooks.updateOffset(this, keepTime);
        return this;
      } else {
        return get(this, unit);
      }
    };
  }

  function get (mom, unit) {
    return mom.isValid() ?
        mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;
  }

  function set$1 (mom, unit, value) {
    if (mom.isValid() && !isNaN(value)) {
      if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {
        mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));
      }
      else {
        mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);
      }
    }
  }

  // MOMENTS

  function stringGet (units) {
    units = normalizeUnits(units);
    if (isFunction(this[units])) {
      return this[units]();
    }
    return this;
  }


  function stringSet (units, value) {
    if (typeof units === 'object') {
      units = normalizeObjectUnits(units);
      var prioritized = getPrioritizedUnits(units);
      for (var i = 0; i < prioritized.length; i++) {
        this[prioritized[i].unit](units[prioritized[i].unit]);
      }
    } else {
      units = normalizeUnits(units);
      if (isFunction(this[units])) {
        return this[units](value);
      }
    }
    return this;
  }

  function mod(n, x) {
    return ((n % x) + x) % x;
  }

  var indexOf;

  if (Array.prototype.indexOf) {
    indexOf = Array.prototype.indexOf;
  } else {
    indexOf = function (o) {
      // I know
      var i;
      for (i = 0; i < this.length; ++i) {
        if (this[i] === o) {
          return i;
        }
      }
      return -1;
    };
  }

  function daysInMonth(year, month) {
    if (isNaN(year) || isNaN(month)) {
      return NaN;
    }
    var modMonth = mod(month, 12);
    year += (month - modMonth) / 12;
    return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2);
  }

  // FORMATTING

  addFormatToken('M', ['MM', 2], 'Mo', function () {
    return this.month() + 1;
  });

  addFormatToken('MMM', 0, 0, function (format) {
    return this.localeData().monthsShort(this, format);
  });

  addFormatToken('MMMM', 0, 0, function (format) {
    return this.localeData().months(this, format);
  });

  // ALIASES

  addUnitAlias('month', 'M');

  // PRIORITY

  addUnitPriority('month', 8);

  // PARSING

  addRegexToken('M',    match1to2);
  addRegexToken('MM',   match1to2, match2);
  addRegexToken('MMM',  function (isStrict, locale) {
    return locale.monthsShortRegex(isStrict);
  });
  addRegexToken('MMMM', function (isStrict, locale) {
    return locale.monthsRegex(isStrict);
  });

  addParseToken(['M', 'MM'], function (input, array) {
    array[MONTH] = toInt(input) - 1;
  });

  addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {
    var month = config._locale.monthsParse(input, token, config._strict);
    // if we didn't find a month name, mark the date as invalid.
    if (month != null) {
      array[MONTH] = month;
    } else {
      getParsingFlags(config).invalidMonth = input;
    }
  });

  // LOCALES

  var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/;
  var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');
  function localeMonths (m, format) {
    if (!m) {
      return isArray(this._months) ? this._months :
          this._months['standalone'];
    }
    return isArray(this._months) ? this._months[m.month()] :
        this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];
  }

  var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');
  function localeMonthsShort (m, format) {
    if (!m) {
      return isArray(this._monthsShort) ? this._monthsShort :
          this._monthsShort['standalone'];
    }
    return isArray(this._monthsShort) ? this._monthsShort[m.month()] :
        this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];
  }

  function handleStrictParse(monthName, format, strict) {
    var i, ii, mom, llc = monthName.toLocaleLowerCase();
    if (!this._monthsParse) {
      // this is not used
      this._monthsParse = [];
      this._longMonthsParse = [];
      this._shortMonthsParse = [];
      for (i = 0; i < 12; ++i) {
        mom = createUTC([2000, i]);
        this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();
        this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();
      }
    }

    if (strict) {
      if (format === 'MMM') {
        ii = indexOf.call(this._shortMonthsParse, llc);
        return ii !== -1 ? ii : null;
      } else {
        ii = indexOf.call(this._longMonthsParse, llc);
        return ii !== -1 ? ii : null;
      }
    } else {
      if (format === 'MMM') {
        ii = indexOf.call(this._shortMonthsParse, llc);
        if (ii !== -1) {
          return ii;
        }
        ii = indexOf.call(this._longMonthsParse, llc);
        return ii !== -1 ? ii : null;
      } else {
        ii = indexOf.call(this._longMonthsParse, llc);
        if (ii !== -1) {
          return ii;
        }
        ii = indexOf.call(this._shortMonthsParse, llc);
        return ii !== -1 ? ii : null;
      }
    }
  }

  function localeMonthsParse (monthName, format, strict) {
    var i, mom, regex;

    if (this._monthsParseExact) {
      return handleStrictParse.call(this, monthName, format, strict);
    }

    if (!this._monthsParse) {
      this._monthsParse = [];
      this._longMonthsParse = [];
      this._shortMonthsParse = [];
    }

    // TODO: add sorting
    // Sorting makes sure if one month (or abbr) is a prefix of another
    // see sorting in computeMonthsParse
    for (i = 0; i < 12; i++) {
      // make the regex if we don't have it already
      mom = createUTC([2000, i]);
      if (strict && !this._longMonthsParse[i]) {
        this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');
        this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');
      }
      if (!strict && !this._monthsParse[i]) {
        regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');
        this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
      }
      // test the regex
      if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {
        return i;
      } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {
        return i;
      } else if (!strict && this._monthsParse[i].test(monthName)) {
        return i;
      }
    }
  }

  // MOMENTS

  function setMonth (mom, value) {
    var dayOfMonth;

    if (!mom.isValid()) {
      // No op
      return mom;
    }

    if (typeof value === 'string') {
      if (/^\d+$/.test(value)) {
        value = toInt(value);
      } else {
        value = mom.localeData().monthsParse(value);
        // TODO: Another silent failure?
        if (!isNumber(value)) {
          return mom;
        }
      }
    }

    dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));
    mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);
    return mom;
  }

  function getSetMonth (value) {
    if (value != null) {
      setMonth(this, value);
      hooks.updateOffset(this, true);
      return this;
    } else {
      return get(this, 'Month');
    }
  }

  function getDaysInMonth () {
    return daysInMonth(this.year(), this.month());
  }

  var defaultMonthsShortRegex = matchWord;
  function monthsShortRegex (isStrict) {
    if (this._monthsParseExact) {
      if (!hasOwnProp(this, '_monthsRegex')) {
        computeMonthsParse.call(this);
      }
      if (isStrict) {
        return this._monthsShortStrictRegex;
      } else {
        return this._monthsShortRegex;
      }
    } else {
      if (!hasOwnProp(this, '_monthsShortRegex')) {
        this._monthsShortRegex = defaultMonthsShortRegex;
      }
      return this._monthsShortStrictRegex && isStrict ?
          this._monthsShortStrictRegex : this._monthsShortRegex;
    }
  }

  var defaultMonthsRegex = matchWord;
  function monthsRegex (isStrict) {
    if (this._monthsParseExact) {
      if (!hasOwnProp(this, '_monthsRegex')) {
        computeMonthsParse.call(this);
      }
      if (isStrict) {
        return this._monthsStrictRegex;
      } else {
        return this._monthsRegex;
      }
    } else {
      if (!hasOwnProp(this, '_monthsRegex')) {
        this._monthsRegex = defaultMonthsRegex;
      }
      return this._monthsStrictRegex && isStrict ?
          this._monthsStrictRegex : this._monthsRegex;
    }
  }

  function computeMonthsParse () {
    function cmpLenRev(a, b) {
      return b.length - a.length;
    }

    var shortPieces = [], longPieces = [], mixedPieces = [],
        i, mom;
    for (i = 0; i < 12; i++) {
      // make the regex if we don't have it already
      mom = createUTC([2000, i]);
      shortPieces.push(this.monthsShort(mom, ''));
      longPieces.push(this.months(mom, ''));
      mixedPieces.push(this.months(mom, ''));
      mixedPieces.push(this.monthsShort(mom, ''));
    }
    // Sorting makes sure if one month (or abbr) is a prefix of another it
    // will match the longer piece.
    shortPieces.sort(cmpLenRev);
    longPieces.sort(cmpLenRev);
    mixedPieces.sort(cmpLenRev);
    for (i = 0; i < 12; i++) {
      shortPieces[i] = regexEscape(shortPieces[i]);
      longPieces[i] = regexEscape(longPieces[i]);
    }
    for (i = 0; i < 24; i++) {
      mixedPieces[i] = regexEscape(mixedPieces[i]);
    }

    this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
    this._monthsShortRegex = this._monthsRegex;
    this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');
    this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');
  }

  function createDate (y, m, d, h, M, s, ms) {
    // can't just apply() to create a date:
    // https://stackoverflow.com/q/181348
    var date = new Date(y, m, d, h, M, s, ms);

    // the date constructor remaps years 0-99 to 1900-1999
    if (y < 100 && y >= 0 && isFinite(date.getFullYear())) {
      date.setFullYear(y);
    }
    return date;
  }

  function createUTCDate (y) {
    var date = new Date(Date.UTC.apply(null, arguments));

    // the Date.UTC function remaps years 0-99 to 1900-1999
    if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) {
      date.setUTCFullYear(y);
    }
    return date;
  }

  // start-of-first-week - start-of-year
  function firstWeekOffset(year, dow, doy) {
    var // first-week day -- which january is always in the first week (4 for iso, 1 for other)
        fwd = 7 + dow - doy,
        // first-week day local weekday -- which local weekday is fwd
        fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;

    return -fwdlw + fwd - 1;
  }

  // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
  function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
    var localWeekday = (7 + weekday - dow) % 7,
        weekOffset = firstWeekOffset(year, dow, doy),
        dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,
        resYear, resDayOfYear;

    if (dayOfYear <= 0) {
      resYear = year - 1;
      resDayOfYear = daysInYear(resYear) + dayOfYear;
    } else if (dayOfYear > daysInYear(year)) {
      resYear = year + 1;
      resDayOfYear = dayOfYear - daysInYear(year);
    } else {
      resYear = year;
      resDayOfYear = dayOfYear;
    }

    return {
      year: resYear,
      dayOfYear: resDayOfYear
    };
  }

  function weekOfYear(mom, dow, doy) {
    var weekOffset = firstWeekOffset(mom.year(), dow, doy),
        week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,
        resWeek, resYear;

    if (week < 1) {
      resYear = mom.year() - 1;
      resWeek = week + weeksInYear(resYear, dow, doy);
    } else if (week > weeksInYear(mom.year(), dow, doy)) {
      resWeek = week - weeksInYear(mom.year(), dow, doy);
      resYear = mom.year() + 1;
    } else {
      resYear = mom.year();
      resWeek = week;
    }

    return {
      week: resWeek,
      year: resYear
    };
  }

  function weeksInYear(year, dow, doy) {
    var weekOffset = firstWeekOffset(year, dow, doy),
        weekOffsetNext = firstWeekOffset(year + 1, dow, doy);
    return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;
  }

  // FORMATTING

  addFormatToken('w', ['ww', 2], 'wo', 'week');
  addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');

  // ALIASES

  addUnitAlias('week', 'w');
  addUnitAlias('isoWeek', 'W');

  // PRIORITIES

  addUnitPriority('week', 5);
  addUnitPriority('isoWeek', 5);

  // PARSING

  addRegexToken('w',  match1to2);
  addRegexToken('ww', match1to2, match2);
  addRegexToken('W',  match1to2);
  addRegexToken('WW', match1to2, match2);

  addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {
    week[token.substr(0, 1)] = toInt(input);
  });

  // HELPERS

  // LOCALES

  function localeWeek (mom) {
    return weekOfYear(mom, this._week.dow, this._week.doy).week;
  }

  var defaultLocaleWeek = {
    dow : 0, // Sunday is the first day of the week.
    doy : 6  // The week that contains Jan 1st is the first week of the year.
  };

  function localeFirstDayOfWeek () {
    return this._week.dow;
  }

  function localeFirstDayOfYear () {
    return this._week.doy;
  }

  // MOMENTS

  function getSetWeek (input) {
    var week = this.localeData().week(this);
    return input == null ? week : this.add((input - week) * 7, 'd');
  }

  function getSetISOWeek (input) {
    var week = weekOfYear(this, 1, 4).week;
    return input == null ? week : this.add((input - week) * 7, 'd');
  }

  // FORMATTING

  addFormatToken('d', 0, 'do', 'day');

  addFormatToken('dd', 0, 0, function (format) {
    return this.localeData().weekdaysMin(this, format);
  });

  addFormatToken('ddd', 0, 0, function (format) {
    return this.localeData().weekdaysShort(this, format);
  });

  addFormatToken('dddd', 0, 0, function (format) {
    return this.localeData().weekdays(this, format);
  });

  addFormatToken('e', 0, 0, 'weekday');
  addFormatToken('E', 0, 0, 'isoWeekday');

  // ALIASES

  addUnitAlias('day', 'd');
  addUnitAlias('weekday', 'e');
  addUnitAlias('isoWeekday', 'E');

  // PRIORITY
  addUnitPriority('day', 11);
  addUnitPriority('weekday', 11);
  addUnitPriority('isoWeekday', 11);

  // PARSING

  addRegexToken('d',    match1to2);
  addRegexToken('e',    match1to2);
  addRegexToken('E',    match1to2);
  addRegexToken('dd',   function (isStrict, locale) {
    return locale.weekdaysMinRegex(isStrict);
  });
  addRegexToken('ddd',   function (isStrict, locale) {
    return locale.weekdaysShortRegex(isStrict);
  });
  addRegexToken('dddd',   function (isStrict, locale) {
    return locale.weekdaysRegex(isStrict);
  });

  addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {
    var weekday = config._locale.weekdaysParse(input, token, config._strict);
    // if we didn't get a weekday name, mark the date as invalid
    if (weekday != null) {
      week.d = weekday;
    } else {
      getParsingFlags(config).invalidWeekday = input;
    }
  });

  addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {
    week[token] = toInt(input);
  });

  // HELPERS

  function parseWeekday(input, locale) {
    if (typeof input !== 'string') {
      return input;
    }

    if (!isNaN(input)) {
      return parseInt(input, 10);
    }

    input = locale.weekdaysParse(input);
    if (typeof input === 'number') {
      return input;
    }

    return null;
  }

  function parseIsoWeekday(input, locale) {
    if (typeof input === 'string') {
      return locale.weekdaysParse(input) % 7 || 7;
    }
    return isNaN(input) ? null : input;
  }

  // LOCALES

  var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');
  function localeWeekdays (m, format) {
    if (!m) {
      return isArray(this._weekdays) ? this._weekdays :
          this._weekdays['standalone'];
    }
    return isArray(this._weekdays) ? this._weekdays[m.day()] :
        this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()];
  }

  var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');
  function localeWeekdaysShort (m) {
    return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;
  }

  var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');
  function localeWeekdaysMin (m) {
    return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;
  }

  function handleStrictParse$1(weekdayName, format, strict) {
    var i, ii, mom, llc = weekdayName.toLocaleLowerCase();
    if (!this._weekdaysParse) {
      this._weekdaysParse = [];
      this._shortWeekdaysParse = [];
      this._minWeekdaysParse = [];

      for (i = 0; i < 7; ++i) {
        mom = createUTC([2000, 1]).day(i);
        this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();
        this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();
        this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();
      }
    }

    if (strict) {
      if (format === 'dddd') {
        ii = indexOf.call(this._weekdaysParse, llc);
        return ii !== -1 ? ii : null;
      } else if (format === 'ddd') {
        ii = indexOf.call(this._shortWeekdaysParse, llc);
        return ii !== -1 ? ii : null;
      } else {
        ii = indexOf.call(this._minWeekdaysParse, llc);
        return ii !== -1 ? ii : null;
      }
    } else {
      if (format === 'dddd') {
        ii = indexOf.call(this._weekdaysParse, llc);
        if (ii !== -1) {
          return ii;
        }
        ii = indexOf.call(this._shortWeekdaysParse, llc);
        if (ii !== -1) {
          return ii;
        }
        ii = indexOf.call(this._minWeekdaysParse, llc);
        return ii !== -1 ? ii : null;
      } else if (format === 'ddd') {
        ii = indexOf.call(this._shortWeekdaysParse, llc);
        if (ii !== -1) {
          return ii;
        }
        ii = indexOf.call(this._weekdaysParse, llc);
        if (ii !== -1) {
          return ii;
        }
        ii = indexOf.call(this._minWeekdaysParse, llc);
        return ii !== -1 ? ii : null;
      } else {
        ii = indexOf.call(this._minWeekdaysParse, llc);
        if (ii !== -1) {
          return ii;
        }
        ii = indexOf.call(this._weekdaysParse, llc);
        if (ii !== -1) {
          return ii;
        }
        ii = indexOf.call(this._shortWeekdaysParse, llc);
        return ii !== -1 ? ii : null;
      }
    }
  }

  function localeWeekdaysParse (weekdayName, format, strict) {
    var i, mom, regex;

    if (this._weekdaysParseExact) {
      return handleStrictParse$1.call(this, weekdayName, format, strict);
    }

    if (!this._weekdaysParse) {
      this._weekdaysParse = [];
      this._minWeekdaysParse = [];
      this._shortWeekdaysParse = [];
      this._fullWeekdaysParse = [];
    }

    for (i = 0; i < 7; i++) {
      // make the regex if we don't have it already

      mom = createUTC([2000, 1]).day(i);
      if (strict && !this._fullWeekdaysParse[i]) {
        this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', 'i');
        this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', 'i');
        this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', 'i');
      }
      if (!this._weekdaysParse[i]) {
        regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');
        this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');
      }
      // test the regex
      if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {
        return i;
      } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {
        return i;
      } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {
        return i;
      } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {
        return i;
      }
    }
  }

  // MOMENTS

  function getSetDayOfWeek (input) {
    if (!this.isValid()) {
      return input != null ? this : NaN;
    }
    var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
    if (input != null) {
      input = parseWeekday(input, this.localeData());
      return this.add(input - day, 'd');
    } else {
      return day;
    }
  }

  function getSetLocaleDayOfWeek (input) {
    if (!this.isValid()) {
      return input != null ? this : NaN;
    }
    var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;
    return input == null ? weekday : this.add(input - weekday, 'd');
  }

  function getSetISODayOfWeek (input) {
    if (!this.isValid()) {
      return input != null ? this : NaN;
    }

    // behaves the same as moment#day except
    // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
    // as a setter, sunday should belong to the previous week.

    if (input != null) {
      var weekday = parseIsoWeekday(input, this.localeData());
      return this.day(this.day() % 7 ? weekday : weekday - 7);
    } else {
      return this.day() || 7;
    }
  }

  var defaultWeekdaysRegex = matchWord;
  function weekdaysRegex (isStrict) {
    if (this._weekdaysParseExact) {
      if (!hasOwnProp(this, '_weekdaysRegex')) {
        computeWeekdaysParse.call(this);
      }
      if (isStrict) {
        return this._weekdaysStrictRegex;
      } else {
        return this._weekdaysRegex;
      }
    } else {
      if (!hasOwnProp(this, '_weekdaysRegex')) {
        this._weekdaysRegex = defaultWeekdaysRegex;
      }
      return this._weekdaysStrictRegex && isStrict ?
          this._weekdaysStrictRegex : this._weekdaysRegex;
    }
  }

  var defaultWeekdaysShortRegex = matchWord;
  function weekdaysShortRegex (isStrict) {
    if (this._weekdaysParseExact) {
      if (!hasOwnProp(this, '_weekdaysRegex')) {
        computeWeekdaysParse.call(this);
      }
      if (isStrict) {
        return this._weekdaysShortStrictRegex;
      } else {
        return this._weekdaysShortRegex;
      }
    } else {
      if (!hasOwnProp(this, '_weekdaysShortRegex')) {
        this._weekdaysShortRegex = defaultWeekdaysShortRegex;
      }
      return this._weekdaysShortStrictRegex && isStrict ?
          this._weekdaysShortStrictRegex : this._weekdaysShortRegex;
    }
  }

  var defaultWeekdaysMinRegex = matchWord;
  function weekdaysMinRegex (isStrict) {
    if (this._weekdaysParseExact) {
      if (!hasOwnProp(this, '_weekdaysRegex')) {
        computeWeekdaysParse.call(this);
      }
      if (isStrict) {
        return this._weekdaysMinStrictRegex;
      } else {
        return this._weekdaysMinRegex;
      }
    } else {
      if (!hasOwnProp(this, '_weekdaysMinRegex')) {
        this._weekdaysMinRegex = defaultWeekdaysMinRegex;
      }
      return this._weekdaysMinStrictRegex && isStrict ?
          this._weekdaysMinStrictRegex : this._weekdaysMinRegex;
    }
  }


  function computeWeekdaysParse () {
    function cmpLenRev(a, b) {
      return b.length - a.length;
    }

    var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],
        i, mom, minp, shortp, longp;
    for (i = 0; i < 7; i++) {
      // make the regex if we don't have it already
      mom = createUTC([2000, 1]).day(i);
      minp = this.weekdaysMin(mom, '');
      shortp = this.weekdaysShort(mom, '');
      longp = this.weekdays(mom, '');
      minPieces.push(minp);
      shortPieces.push(shortp);
      longPieces.push(longp);
      mixedPieces.push(minp);
      mixedPieces.push(shortp);
      mixedPieces.push(longp);
    }
    // Sorting makes sure if one weekday (or abbr) is a prefix of another it
    // will match the longer piece.
    minPieces.sort(cmpLenRev);
    shortPieces.sort(cmpLenRev);
    longPieces.sort(cmpLenRev);
    mixedPieces.sort(cmpLenRev);
    for (i = 0; i < 7; i++) {
      shortPieces[i] = regexEscape(shortPieces[i]);
      longPieces[i] = regexEscape(longPieces[i]);
      mixedPieces[i] = regexEscape(mixedPieces[i]);
    }

    this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
    this._weekdaysShortRegex = this._weekdaysRegex;
    this._weekdaysMinRegex = this._weekdaysRegex;

    this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');
    this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');
    this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');
  }

  // FORMATTING

  function hFormat() {
    return this.hours() % 12 || 12;
  }

  function kFormat() {
    return this.hours() || 24;
  }

  addFormatToken('H', ['HH', 2], 0, 'hour');
  addFormatToken('h', ['hh', 2], 0, hFormat);
  addFormatToken('k', ['kk', 2], 0, kFormat);

  addFormatToken('hmm', 0, 0, function () {
    return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);
  });

  addFormatToken('hmmss', 0, 0, function () {
    return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +
        zeroFill(this.seconds(), 2);
  });

  addFormatToken('Hmm', 0, 0, function () {
    return '' + this.hours() + zeroFill(this.minutes(), 2);
  });

  addFormatToken('Hmmss', 0, 0, function () {
    return '' + this.hours() + zeroFill(this.minutes(), 2) +
        zeroFill(this.seconds(), 2);
  });

  function meridiem (token, lowercase) {
    addFormatToken(token, 0, 0, function () {
      return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);
    });
  }

  meridiem('a', true);
  meridiem('A', false);

  // ALIASES

  addUnitAlias('hour', 'h');

  // PRIORITY
  addUnitPriority('hour', 13);

  // PARSING

  function matchMeridiem (isStrict, locale) {
    return locale._meridiemParse;
  }

  addRegexToken('a',  matchMeridiem);
  addRegexToken('A',  matchMeridiem);
  addRegexToken('H',  match1to2);
  addRegexToken('h',  match1to2);
  addRegexToken('k',  match1to2);
  addRegexToken('HH', match1to2, match2);
  addRegexToken('hh', match1to2, match2);
  addRegexToken('kk', match1to2, match2);

  addRegexToken('hmm', match3to4);
  addRegexToken('hmmss', match5to6);
  addRegexToken('Hmm', match3to4);
  addRegexToken('Hmmss', match5to6);

  addParseToken(['H', 'HH'], HOUR);
  addParseToken(['k', 'kk'], function (input, array, config) {
    var kInput = toInt(input);
    array[HOUR] = kInput === 24 ? 0 : kInput;
  });
  addParseToken(['a', 'A'], function (input, array, config) {
    config._isPm = config._locale.isPM(input);
    config._meridiem = input;
  });
  addParseToken(['h', 'hh'], function (input, array, config) {
    array[HOUR] = toInt(input);
    getParsingFlags(config).bigHour = true;
  });
  addParseToken('hmm', function (input, array, config) {
    var pos = input.length - 2;
    array[HOUR] = toInt(input.substr(0, pos));
    array[MINUTE] = toInt(input.substr(pos));
    getParsingFlags(config).bigHour = true;
  });
  addParseToken('hmmss', function (input, array, config) {
    var pos1 = input.length - 4;
    var pos2 = input.length - 2;
    array[HOUR] = toInt(input.substr(0, pos1));
    array[MINUTE] = toInt(input.substr(pos1, 2));
    array[SECOND] = toInt(input.substr(pos2));
    getParsingFlags(config).bigHour = true;
  });
  addParseToken('Hmm', function (input, array, config) {
    var pos = input.length - 2;
    array[HOUR] = toInt(input.substr(0, pos));
    array[MINUTE] = toInt(input.substr(pos));
  });
  addParseToken('Hmmss', function (input, array, config) {
    var pos1 = input.length - 4;
    var pos2 = input.length - 2;
    array[HOUR] = toInt(input.substr(0, pos1));
    array[MINUTE] = toInt(input.substr(pos1, 2));
    array[SECOND] = toInt(input.substr(pos2));
  });

  // LOCALES

  function localeIsPM (input) {
    // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays
    // Using charAt should be more compatible.
    return ((input + '').toLowerCase().charAt(0) === 'p');
  }

  var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i;
  function localeMeridiem (hours, minutes, isLower) {
    if (hours > 11) {
      return isLower ? 'pm' : 'PM';
    } else {
      return isLower ? 'am' : 'AM';
    }
  }


  // MOMENTS

  // Setting the hour should keep the time, because the user explicitly
  // specified which hour they want. So trying to maintain the same hour (in
  // a new timezone) makes sense. Adding/subtracting hours does not follow
  // this rule.
  var getSetHour = makeGetSet('Hours', true);

  var baseConfig = {
    calendar: defaultCalendar,
    longDateFormat: defaultLongDateFormat,
    invalidDate: defaultInvalidDate,
    ordinal: defaultOrdinal,
    dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,
    relativeTime: defaultRelativeTime,

    months: defaultLocaleMonths,
    monthsShort: defaultLocaleMonthsShort,

    week: defaultLocaleWeek,

    weekdays: defaultLocaleWeekdays,
    weekdaysMin: defaultLocaleWeekdaysMin,
    weekdaysShort: defaultLocaleWeekdaysShort,

    meridiemParse: defaultLocaleMeridiemParse
  };

  // internal storage for locale config files
  var locales = {};
  var localeFamilies = {};
  var globalLocale;

  function normalizeLocale(key) {
    return key ? key.toLowerCase().replace('_', '-') : key;
  }

  // pick the locale from the array
  // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
  // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
  function chooseLocale(names) {
    var i = 0, j, next, locale, split;

    while (i < names.length) {
      split = normalizeLocale(names[i]).split('-');
      j = split.length;
      next = normalizeLocale(names[i + 1]);
      next = next ? next.split('-') : null;
      while (j > 0) {
        locale = loadLocale(split.slice(0, j).join('-'));
        if (locale) {
          return locale;
        }
        if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {
          //the next array item is better than a shallower substring of this one
          break;
        }
        j--;
      }
      i++;
    }
    return globalLocale;
  }

  function loadLocale(name) {
    var oldLocale = null;
    // TODO: Find a better way to register and load all the locales in Node
    if (!locales[name] && (typeof module !== 'undefined') &&
        module && module.exports) {
      try {
        oldLocale = globalLocale._abbr;
        var aliasedRequire = require;
        aliasedRequire('./locale/' + name);
        getSetGlobalLocale(oldLocale);
      } catch (e) {}
    }
    return locales[name];
  }

  // This function will load locale and then set the global locale.  If
  // no arguments are passed in, it will simply return the current global
  // locale key.
  function getSetGlobalLocale (key, values) {
    var data;
    if (key) {
      if (isUndefined(values)) {
        data = getLocale(key);
      }
      else {
        data = defineLocale(key, values);
      }

      if (data) {
        // moment.duration._locale = moment._locale = data;
        globalLocale = data;
      }
      else {
        if ((typeof console !==  'undefined') && console.warn) {
          //warn user if arguments are passed but the locale could not be set
          console.warn('Locale ' + key +  ' not found. Did you forget to load it?');
        }
      }
    }

    return globalLocale._abbr;
  }

  function defineLocale (name, config) {
    if (config !== null) {
      var locale, parentConfig = baseConfig;
      config.abbr = name;
      if (locales[name] != null) {
        deprecateSimple('defineLocaleOverride',
            'use moment.updateLocale(localeName, config) to change ' +
            'an existing locale. moment.defineLocale(localeName, ' +
            'config) should only be used for creating a new locale ' +
            'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');
        parentConfig = locales[name]._config;
      } else if (config.parentLocale != null) {
        if (locales[config.parentLocale] != null) {
          parentConfig = locales[config.parentLocale]._config;
        } else {
          locale = loadLocale(config.parentLocale);
          if (locale != null) {
            parentConfig = locale._config;
          } else {
            if (!localeFamilies[config.parentLocale]) {
              localeFamilies[config.parentLocale] = [];
            }
            localeFamilies[config.parentLocale].push({
              name: name,
              config: config
            });
            return null;
          }
        }
      }
      locales[name] = new Locale(mergeConfigs(parentConfig, config));

      if (localeFamilies[name]) {
        localeFamilies[name].forEach(function (x) {
          defineLocale(x.name, x.config);
        });
      }

      // backwards compat for now: also set the locale
      // make sure we set the locale AFTER all child locales have been
      // created, so we won't end up with the child locale set.
      getSetGlobalLocale(name);


      return locales[name];
    } else {
      // useful for testing
      delete locales[name];
      return null;
    }
  }

  function updateLocale(name, config) {
    if (config != null) {
      var locale, tmpLocale, parentConfig = baseConfig;
      // MERGE
      tmpLocale = loadLocale(name);
      if (tmpLocale != null) {
        parentConfig = tmpLocale._config;
      }
      config = mergeConfigs(parentConfig, config);
      locale = new Locale(config);
      locale.parentLocale = locales[name];
      locales[name] = locale;

      // backwards compat for now: also set the locale
      getSetGlobalLocale(name);
    } else {
      // pass null for config to unupdate, useful for tests
      if (locales[name] != null) {
        if (locales[name].parentLocale != null) {
          locales[name] = locales[name].parentLocale;
        } else if (locales[name] != null) {
          delete locales[name];
        }
      }
    }
    return locales[name];
  }

  // returns locale data
  function getLocale (key) {
    var locale;

    if (key && key._locale && key._locale._abbr) {
      key = key._locale._abbr;
    }

    if (!key) {
      return globalLocale;
    }

    if (!isArray(key)) {
      //short-circuit everything else
      locale = loadLocale(key);
      if (locale) {
        return locale;
      }
      key = [key];
    }

    return chooseLocale(key);
  }

  function listLocales() {
    return keys(locales);
  }

  function checkOverflow (m) {
    var overflow;
    var a = m._a;

    if (a && getParsingFlags(m).overflow === -2) {
      overflow =
          a[MONTH]       < 0 || a[MONTH]       > 11  ? MONTH :
              a[DATE]        < 1 || a[DATE]        > daysInMonth(a[YEAR], a[MONTH]) ? DATE :
                  a[HOUR]        < 0 || a[HOUR]        > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :
                      a[MINUTE]      < 0 || a[MINUTE]      > 59  ? MINUTE :
                          a[SECOND]      < 0 || a[SECOND]      > 59  ? SECOND :
                              a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :
                                  -1;

      if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {
        overflow = DATE;
      }
      if (getParsingFlags(m)._overflowWeeks && overflow === -1) {
        overflow = WEEK;
      }
      if (getParsingFlags(m)._overflowWeekday && overflow === -1) {
        overflow = WEEKDAY;
      }

      getParsingFlags(m).overflow = overflow;
    }

    return m;
  }

  // Pick the first defined of two or three arguments.
  function defaults(a, b, c) {
    if (a != null) {
      return a;
    }
    if (b != null) {
      return b;
    }
    return c;
  }

  function currentDateArray(config) {
    // hooks is actually the exported moment object
    var nowValue = new Date(hooks.now());
    if (config._useUTC) {
      return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];
    }
    return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];
  }

  // convert an array to a date.
  // the array should mirror the parameters below
  // note: all values past the year are optional and will default to the lowest possible value.
  // [year, month, day , hour, minute, second, millisecond]
  function configFromArray (config) {
    var i, date, input = [], currentDate, expectedWeekday, yearToUse;

    if (config._d) {
      return;
    }

    currentDate = currentDateArray(config);

    //compute day of the year from weeks and weekdays
    if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
      dayOfYearFromWeekInfo(config);
    }

    //if the day of the year is set, figure out what it is
    if (config._dayOfYear != null) {
      yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);

      if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {
        getParsingFlags(config)._overflowDayOfYear = true;
      }

      date = createUTCDate(yearToUse, 0, config._dayOfYear);
      config._a[MONTH] = date.getUTCMonth();
      config._a[DATE] = date.getUTCDate();
    }

    // Default to current date.
    // * if no year, month, day of month are given, default to today
    // * if day of month is given, default month and year
    // * if month is given, default only year
    // * if year is given, don't default anything
    for (i = 0; i < 3 && config._a[i] == null; ++i) {
      config._a[i] = input[i] = currentDate[i];
    }

    // Zero out whatever was not defaulted, including time
    for (; i < 7; i++) {
      config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];
    }

    // Check for 24:00:00.000
    if (config._a[HOUR] === 24 &&
        config._a[MINUTE] === 0 &&
        config._a[SECOND] === 0 &&
        config._a[MILLISECOND] === 0) {
      config._nextDay = true;
      config._a[HOUR] = 0;
    }

    config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);
    expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();

    // Apply timezone offset from input. The actual utcOffset can be changed
    // with parseZone.
    if (config._tzm != null) {
      config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
    }

    if (config._nextDay) {
      config._a[HOUR] = 24;
    }

    // check for mismatching day of week
    if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {
      getParsingFlags(config).weekdayMismatch = true;
    }
  }

  function dayOfYearFromWeekInfo(config) {
    var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;

    w = config._w;
    if (w.GG != null || w.W != null || w.E != null) {
      dow = 1;
      doy = 4;

      // TODO: We need to take the current isoWeekYear, but that depends on
      // how we interpret now (local, utc, fixed offset). So create
      // a now version of current config (take local/utc/offset flags, and
      // create now).
      weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);
      week = defaults(w.W, 1);
      weekday = defaults(w.E, 1);
      if (weekday < 1 || weekday > 7) {
        weekdayOverflow = true;
      }
    } else {
      dow = config._locale._week.dow;
      doy = config._locale._week.doy;

      var curWeek = weekOfYear(createLocal(), dow, doy);

      weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);

      // Default to current week.
      week = defaults(w.w, curWeek.week);

      if (w.d != null) {
        // weekday -- low day numbers are considered next week
        weekday = w.d;
        if (weekday < 0 || weekday > 6) {
          weekdayOverflow = true;
        }
      } else if (w.e != null) {
        // local weekday -- counting starts from begining of week
        weekday = w.e + dow;
        if (w.e < 0 || w.e > 6) {
          weekdayOverflow = true;
        }
      } else {
        // default to begining of week
        weekday = dow;
      }
    }
    if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {
      getParsingFlags(config)._overflowWeeks = true;
    } else if (weekdayOverflow != null) {
      getParsingFlags(config)._overflowWeekday = true;
    } else {
      temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);
      config._a[YEAR] = temp.year;
      config._dayOfYear = temp.dayOfYear;
    }
  }

  // iso 8601 regex
  // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)
  var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/;
  var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/;

  var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/;

  var isoDates = [
    ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/],
    ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/],
    ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/],
    ['GGGG-[W]WW', /\d{4}-W\d\d/, false],
    ['YYYY-DDD', /\d{4}-\d{3}/],
    ['YYYY-MM', /\d{4}-\d\d/, false],
    ['YYYYYYMMDD', /[+-]\d{10}/],
    ['YYYYMMDD', /\d{8}/],
    // YYYYMM is NOT allowed by the standard
    ['GGGG[W]WWE', /\d{4}W\d{3}/],
    ['GGGG[W]WW', /\d{4}W\d{2}/, false],
    ['YYYYDDD', /\d{7}/]
  ];

  // iso time formats and regexes
  var isoTimes = [
    ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/],
    ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/],
    ['HH:mm:ss', /\d\d:\d\d:\d\d/],
    ['HH:mm', /\d\d:\d\d/],
    ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/],
    ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/],
    ['HHmmss', /\d\d\d\d\d\d/],
    ['HHmm', /\d\d\d\d/],
    ['HH', /\d\d/]
  ];

  var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i;

  // date from iso format
  function configFromISO(config) {
    var i, l,
        string = config._i,
        match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),
        allowTime, dateFormat, timeFormat, tzFormat;

    if (match) {
      getParsingFlags(config).iso = true;

      for (i = 0, l = isoDates.length; i < l; i++) {
        if (isoDates[i][1].exec(match[1])) {
          dateFormat = isoDates[i][0];
          allowTime = isoDates[i][2] !== false;
          break;
        }
      }
      if (dateFormat == null) {
        config._isValid = false;
        return;
      }
      if (match[3]) {
        for (i = 0, l = isoTimes.length; i < l; i++) {
          if (isoTimes[i][1].exec(match[3])) {
            // match[2] should be 'T' or space
            timeFormat = (match[2] || ' ') + isoTimes[i][0];
            break;
          }
        }
        if (timeFormat == null) {
          config._isValid = false;
          return;
        }
      }
      if (!allowTime && timeFormat != null) {
        config._isValid = false;
        return;
      }
      if (match[4]) {
        if (tzRegex.exec(match[4])) {
          tzFormat = 'Z';
        } else {
          config._isValid = false;
          return;
        }
      }
      config._f = dateFormat + (timeFormat || '') + (tzFormat || '');
      configFromStringAndFormat(config);
    } else {
      config._isValid = false;
    }
  }

  // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3
  var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;

  function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {
    var result = [
      untruncateYear(yearStr),
      defaultLocaleMonthsShort.indexOf(monthStr),
      parseInt(dayStr, 10),
      parseInt(hourStr, 10),
      parseInt(minuteStr, 10)
    ];

    if (secondStr) {
      result.push(parseInt(secondStr, 10));
    }

    return result;
  }

  function untruncateYear(yearStr) {
    var year = parseInt(yearStr, 10);
    if (year <= 49) {
      return 2000 + year;
    } else if (year <= 999) {
      return 1900 + year;
    }
    return year;
  }

  function preprocessRFC2822(s) {
    // Remove comments and folding whitespace and replace multiple-spaces with a single space
    return s.replace(/\([^)]*\)|[\n\t]/g, ' ').replace(/(\s\s+)/g, ' ').replace(/^\s\s*/, '').replace(/\s\s*$/, '');
  }

  function checkWeekday(weekdayStr, parsedInput, config) {
    if (weekdayStr) {
      // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.
      var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),
          weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();
      if (weekdayProvided !== weekdayActual) {
        getParsingFlags(config).weekdayMismatch = true;
        config._isValid = false;
        return false;
      }
    }
    return true;
  }

  var obsOffsets = {
    UT: 0,
    GMT: 0,
    EDT: -4 * 60,
    EST: -5 * 60,
    CDT: -5 * 60,
    CST: -6 * 60,
    MDT: -6 * 60,
    MST: -7 * 60,
    PDT: -7 * 60,
    PST: -8 * 60
  };

  function calculateOffset(obsOffset, militaryOffset, numOffset) {
    if (obsOffset) {
      return obsOffsets[obsOffset];
    } else if (militaryOffset) {
      // the only allowed military tz is Z
      return 0;
    } else {
      var hm = parseInt(numOffset, 10);
      var m = hm % 100, h = (hm - m) / 100;
      return h * 60 + m;
    }
  }

  // date and time from ref 2822 format
  function configFromRFC2822(config) {
    var match = rfc2822.exec(preprocessRFC2822(config._i));
    if (match) {
      var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);
      if (!checkWeekday(match[1], parsedArray, config)) {
        return;
      }

      config._a = parsedArray;
      config._tzm = calculateOffset(match[8], match[9], match[10]);

      config._d = createUTCDate.apply(null, config._a);
      config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);

      getParsingFlags(config).rfc2822 = true;
    } else {
      config._isValid = false;
    }
  }

  // date from iso format or fallback
  function configFromString(config) {
    var matched = aspNetJsonRegex.exec(config._i);

    if (matched !== null) {
      config._d = new Date(+matched[1]);
      return;
    }

    configFromISO(config);
    if (config._isValid === false) {
      delete config._isValid;
    } else {
      return;
    }

    configFromRFC2822(config);
    if (config._isValid === false) {
      delete config._isValid;
    } else {
      return;
    }

    // Final attempt, use Input Fallback
    hooks.createFromInputFallback(config);
  }

  hooks.createFromInputFallback = deprecate(
      'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +
      'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +
      'discouraged and will be removed in an upcoming major release. Please refer to ' +
      'http://momentjs.com/guides/#/warnings/js-date/ for more info.',
      function (config) {
        config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));
      }
  );

  // constant that refers to the ISO standard
  hooks.ISO_8601 = function () {};

  // constant that refers to the RFC 2822 form
  hooks.RFC_2822 = function () {};

  // date from string and format string
  function configFromStringAndFormat(config) {
    // TODO: Move this to another part of the creation flow to prevent circular deps
    if (config._f === hooks.ISO_8601) {
      configFromISO(config);
      return;
    }
    if (config._f === hooks.RFC_2822) {
      configFromRFC2822(config);
      return;
    }
    config._a = [];
    getParsingFlags(config).empty = true;

    // This array is used to make a Date, either with `new Date` or `Date.UTC`
    var string = '' + config._i,
        i, parsedInput, tokens, token, skipped,
        stringLength = string.length,
        totalParsedInputLength = 0;

    tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];

    for (i = 0; i < tokens.length; i++) {
      token = tokens[i];
      parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];
      // console.log('token', token, 'parsedInput', parsedInput,
      //         'regex', getParseRegexForToken(token, config));
      if (parsedInput) {
        skipped = string.substr(0, string.indexOf(parsedInput));
        if (skipped.length > 0) {
          getParsingFlags(config).unusedInput.push(skipped);
        }
        string = string.slice(string.indexOf(parsedInput) + parsedInput.length);
        totalParsedInputLength += parsedInput.length;
      }
      // don't parse if it's not a known token
      if (formatTokenFunctions[token]) {
        if (parsedInput) {
          getParsingFlags(config).empty = false;
        }
        else {
          getParsingFlags(config).unusedTokens.push(token);
        }
        addTimeToArrayFromToken(token, parsedInput, config);
      }
      else if (config._strict && !parsedInput) {
        getParsingFlags(config).unusedTokens.push(token);
      }
    }

    // add remaining unparsed input length to the string
    getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;
    if (string.length > 0) {
      getParsingFlags(config).unusedInput.push(string);
    }

    // clear _12h flag if hour is <= 12
    if (config._a[HOUR] <= 12 &&
        getParsingFlags(config).bigHour === true &&
        config._a[HOUR] > 0) {
      getParsingFlags(config).bigHour = undefined;
    }

    getParsingFlags(config).parsedDateParts = config._a.slice(0);
    getParsingFlags(config).meridiem = config._meridiem;
    // handle meridiem
    config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);

    configFromArray(config);
    checkOverflow(config);
  }


  function meridiemFixWrap (locale, hour, meridiem) {
    var isPm;

    if (meridiem == null) {
      // nothing to do
      return hour;
    }
    if (locale.meridiemHour != null) {
      return locale.meridiemHour(hour, meridiem);
    } else if (locale.isPM != null) {
      // Fallback
      isPm = locale.isPM(meridiem);
      if (isPm && hour < 12) {
        hour += 12;
      }
      if (!isPm && hour === 12) {
        hour = 0;
      }
      return hour;
    } else {
      // this is not supposed to happen
      return hour;
    }
  }

  // date from string and array of format strings
  function configFromStringAndArray(config) {
    var tempConfig,
        bestMoment,

        scoreToBeat,
        i,
        currentScore;

    if (config._f.length === 0) {
      getParsingFlags(config).invalidFormat = true;
      config._d = new Date(NaN);
      return;
    }

    for (i = 0; i < config._f.length; i++) {
      currentScore = 0;
      tempConfig = copyConfig({}, config);
      if (config._useUTC != null) {
        tempConfig._useUTC = config._useUTC;
      }
      tempConfig._f = config._f[i];
      configFromStringAndFormat(tempConfig);

      if (!isValid(tempConfig)) {
        continue;
      }

      // if there is any input that was not parsed add a penalty for that format
      currentScore += getParsingFlags(tempConfig).charsLeftOver;

      //or tokens
      currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;

      getParsingFlags(tempConfig).score = currentScore;

      if (scoreToBeat == null || currentScore < scoreToBeat) {
        scoreToBeat = currentScore;
        bestMoment = tempConfig;
      }
    }

    extend(config, bestMoment || tempConfig);
  }

  function configFromObject(config) {
    if (config._d) {
      return;
    }

    var i = normalizeObjectUnits(config._i);
    config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {
      return obj && parseInt(obj, 10);
    });

    configFromArray(config);
  }

  function createFromConfig (config) {
    var res = new Moment(checkOverflow(prepareConfig(config)));
    if (res._nextDay) {
      // Adding is smart enough around DST
      res.add(1, 'd');
      res._nextDay = undefined;
    }

    return res;
  }

  function prepareConfig (config) {
    var input = config._i,
        format = config._f;

    config._locale = config._locale || getLocale(config._l);

    if (input === null || (format === undefined && input === '')) {
      return createInvalid({nullInput: true});
    }

    if (typeof input === 'string') {
      config._i = input = config._locale.preparse(input);
    }

    if (isMoment(input)) {
      return new Moment(checkOverflow(input));
    } else if (isDate(input)) {
      config._d = input;
    } else if (isArray(format)) {
      configFromStringAndArray(config);
    } else if (format) {
      configFromStringAndFormat(config);
    }  else {
      configFromInput(config);
    }

    if (!isValid(config)) {
      config._d = null;
    }

    return config;
  }

  function configFromInput(config) {
    var input = config._i;
    if (isUndefined(input)) {
      config._d = new Date(hooks.now());
    } else if (isDate(input)) {
      config._d = new Date(input.valueOf());
    } else if (typeof input === 'string') {
      configFromString(config);
    } else if (isArray(input)) {
      config._a = map(input.slice(0), function (obj) {
        return parseInt(obj, 10);
      });
      configFromArray(config);
    } else if (isObject(input)) {
      configFromObject(config);
    } else if (isNumber(input)) {
      // from milliseconds
      config._d = new Date(input);
    } else {
      hooks.createFromInputFallback(config);
    }
  }

  function createLocalOrUTC (input, format, locale, strict, isUTC) {
    var c = {};

    if (locale === true || locale === false) {
      strict = locale;
      locale = undefined;
    }

    if ((isObject(input) && isObjectEmpty(input)) ||
        (isArray(input) && input.length === 0)) {
      input = undefined;
    }
    // object construction must be done this way.
    // https://github.com/moment/moment/issues/1423
    c._isAMomentObject = true;
    c._useUTC = c._isUTC = isUTC;
    c._l = locale;
    c._i = input;
    c._f = format;
    c._strict = strict;

    return createFromConfig(c);
  }

  function createLocal (input, format, locale, strict) {
    return createLocalOrUTC(input, format, locale, strict, false);
  }

  var prototypeMin = deprecate(
      'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',
      function () {
        var other = createLocal.apply(null, arguments);
        if (this.isValid() && other.isValid()) {
          return other < this ? this : other;
        } else {
          return createInvalid();
        }
      }
  );

  var prototypeMax = deprecate(
      'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',
      function () {
        var other = createLocal.apply(null, arguments);
        if (this.isValid() && other.isValid()) {
          return other > this ? this : other;
        } else {
          return createInvalid();
        }
      }
  );

  // Pick a moment m from moments so that m[fn](other) is true for all
  // other. This relies on the function fn to be transitive.
  //
  // moments should either be an array of moment objects or an array, whose
  // first element is an array of moment objects.
  function pickBy(fn, moments) {
    var res, i;
    if (moments.length === 1 && isArray(moments[0])) {
      moments = moments[0];
    }
    if (!moments.length) {
      return createLocal();
    }
    res = moments[0];
    for (i = 1; i < moments.length; ++i) {
      if (!moments[i].isValid() || moments[i][fn](res)) {
        res = moments[i];
      }
    }
    return res;
  }

  // TODO: Use [].sort instead?
  function min () {
    var args = [].slice.call(arguments, 0);

    return pickBy('isBefore', args);
  }

  function max () {
    var args = [].slice.call(arguments, 0);

    return pickBy('isAfter', args);
  }

  var now = function () {
    return Date.now ? Date.now() : +(new Date());
  };

  var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];

  function isDurationValid(m) {
    for (var key in m) {
      if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {
        return false;
      }
    }

    var unitHasDecimal = false;
    for (var i = 0; i < ordering.length; ++i) {
      if (m[ordering[i]]) {
        if (unitHasDecimal) {
          return false; // only allow non-integers for smallest unit
        }
        if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {
          unitHasDecimal = true;
        }
      }
    }

    return true;
  }

  function isValid$1() {
    return this._isValid;
  }

  function createInvalid$1() {
    return createDuration(NaN);
  }

  function Duration (duration) {
    var normalizedInput = normalizeObjectUnits(duration),
        years = normalizedInput.year || 0,
        quarters = normalizedInput.quarter || 0,
        months = normalizedInput.month || 0,
        weeks = normalizedInput.week || 0,
        days = normalizedInput.day || 0,
        hours = normalizedInput.hour || 0,
        minutes = normalizedInput.minute || 0,
        seconds = normalizedInput.second || 0,
        milliseconds = normalizedInput.millisecond || 0;

    this._isValid = isDurationValid(normalizedInput);

    // representation for dateAddRemove
    this._milliseconds = +milliseconds +
        seconds * 1e3 + // 1000
        minutes * 6e4 + // 1000 * 60
        hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978
    // Because of dateAddRemove treats 24 hours as different from a
    // day when working around DST, we need to store them separately
    this._days = +days +
        weeks * 7;
    // It is impossible to translate months into days without knowing
    // which months you are are talking about, so we have to store
    // it separately.
    this._months = +months +
        quarters * 3 +
        years * 12;

    this._data = {};

    this._locale = getLocale();

    this._bubble();
  }

  function isDuration (obj) {
    return obj instanceof Duration;
  }

  function absRound (number) {
    if (number < 0) {
      return Math.round(-1 * number) * -1;
    } else {
      return Math.round(number);
    }
  }

  // FORMATTING

  function offset (token, separator) {
    addFormatToken(token, 0, 0, function () {
      var offset = this.utcOffset();
      var sign = '+';
      if (offset < 0) {
        offset = -offset;
        sign = '-';
      }
      return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);
    });
  }

  offset('Z', ':');
  offset('ZZ', '');

  // PARSING

  addRegexToken('Z',  matchShortOffset);
  addRegexToken('ZZ', matchShortOffset);
  addParseToken(['Z', 'ZZ'], function (input, array, config) {
    config._useUTC = true;
    config._tzm = offsetFromString(matchShortOffset, input);
  });

  // HELPERS

  // timezone chunker
  // '+10:00' > ['10',  '00']
  // '-1530'  > ['-15', '30']
  var chunkOffset = /([\+\-]|\d\d)/gi;

  function offsetFromString(matcher, string) {
    var matches = (string || '').match(matcher);

    if (matches === null) {
      return null;
    }

    var chunk   = matches[matches.length - 1] || [];
    var parts   = (chunk + '').match(chunkOffset) || ['-', 0, 0];
    var minutes = +(parts[1] * 60) + toInt(parts[2]);

    return minutes === 0 ?
        0 :
        parts[0] === '+' ? minutes : -minutes;
  }

  // Return a moment from input, that is local/utc/zone equivalent to model.
  function cloneWithOffset(input, model) {
    var res, diff;
    if (model._isUTC) {
      res = model.clone();
      diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();
      // Use low-level api, because this fn is low-level api.
      res._d.setTime(res._d.valueOf() + diff);
      hooks.updateOffset(res, false);
      return res;
    } else {
      return createLocal(input).local();
    }
  }

  function getDateOffset (m) {
    // On Firefox.24 Date#getTimezoneOffset returns a floating point.
    // https://github.com/moment/moment/pull/1871
    return -Math.round(m._d.getTimezoneOffset() / 15) * 15;
  }

  // HOOKS

  // This function will be called whenever a moment is mutated.
  // It is intended to keep the offset in sync with the timezone.
  hooks.updateOffset = function () {};

  // MOMENTS

  // keepLocalTime = true means only change the timezone, without
  // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->
  // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset
  // +0200, so we adjust the time as needed, to be valid.
  //
  // Keeping the time actually adds/subtracts (one hour)
  // from the actual represented time. That is why we call updateOffset
  // a second time. In case it wants us to change the offset again
  // _changeInProgress == true case, then we have to adjust, because
  // there is no such time in the given timezone.
  function getSetOffset (input, keepLocalTime, keepMinutes) {
    var offset = this._offset || 0,
        localAdjust;
    if (!this.isValid()) {
      return input != null ? this : NaN;
    }
    if (input != null) {
      if (typeof input === 'string') {
        input = offsetFromString(matchShortOffset, input);
        if (input === null) {
          return this;
        }
      } else if (Math.abs(input) < 16 && !keepMinutes) {
        input = input * 60;
      }
      if (!this._isUTC && keepLocalTime) {
        localAdjust = getDateOffset(this);
      }
      this._offset = input;
      this._isUTC = true;
      if (localAdjust != null) {
        this.add(localAdjust, 'm');
      }
      if (offset !== input) {
        if (!keepLocalTime || this._changeInProgress) {
          addSubtract(this, createDuration(input - offset, 'm'), 1, false);
        } else if (!this._changeInProgress) {
          this._changeInProgress = true;
          hooks.updateOffset(this, true);
          this._changeInProgress = null;
        }
      }
      return this;
    } else {
      return this._isUTC ? offset : getDateOffset(this);
    }
  }

  function getSetZone (input, keepLocalTime) {
    if (input != null) {
      if (typeof input !== 'string') {
        input = -input;
      }

      this.utcOffset(input, keepLocalTime);

      return this;
    } else {
      return -this.utcOffset();
    }
  }

  function setOffsetToUTC (keepLocalTime) {
    return this.utcOffset(0, keepLocalTime);
  }

  function setOffsetToLocal (keepLocalTime) {
    if (this._isUTC) {
      this.utcOffset(0, keepLocalTime);
      this._isUTC = false;

      if (keepLocalTime) {
        this.subtract(getDateOffset(this), 'm');
      }
    }
    return this;
  }

  function setOffsetToParsedOffset () {
    if (this._tzm != null) {
      this.utcOffset(this._tzm, false, true);
    } else if (typeof this._i === 'string') {
      var tZone = offsetFromString(matchOffset, this._i);
      if (tZone != null) {
        this.utcOffset(tZone);
      }
      else {
        this.utcOffset(0, true);
      }
    }
    return this;
  }

  function hasAlignedHourOffset (input) {
    if (!this.isValid()) {
      return false;
    }
    input = input ? createLocal(input).utcOffset() : 0;

    return (this.utcOffset() - input) % 60 === 0;
  }

  function isDaylightSavingTime () {
    return (
        this.utcOffset() > this.clone().month(0).utcOffset() ||
        this.utcOffset() > this.clone().month(5).utcOffset()
    );
  }

  function isDaylightSavingTimeShifted () {
    if (!isUndefined(this._isDSTShifted)) {
      return this._isDSTShifted;
    }

    var c = {};

    copyConfig(c, this);
    c = prepareConfig(c);

    if (c._a) {
      var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);
      this._isDSTShifted = this.isValid() &&
          compareArrays(c._a, other.toArray()) > 0;
    } else {
      this._isDSTShifted = false;
    }

    return this._isDSTShifted;
  }

  function isLocal () {
    return this.isValid() ? !this._isUTC : false;
  }

  function isUtcOffset () {
    return this.isValid() ? this._isUTC : false;
  }

  function isUtc () {
    return this.isValid() ? this._isUTC && this._offset === 0 : false;
  }

  // ASP.NET json date format regex
  var aspNetRegex = /^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/;

  // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html
  // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere
  // and further modified to allow for strings containing both week and day
  var isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;

  function createDuration (input, key) {
    var duration = input,
        // matching against regexp is expensive, do it on demand
        match = null,
        sign,
        ret,
        diffRes;

    if (isDuration(input)) {
      duration = {
        ms : input._milliseconds,
        d  : input._days,
        M  : input._months
      };
    } else if (isNumber(input)) {
      duration = {};
      if (key) {
        duration[key] = input;
      } else {
        duration.milliseconds = input;
      }
    } else if (!!(match = aspNetRegex.exec(input))) {
      sign = (match[1] === '-') ? -1 : 1;
      duration = {
        y  : 0,
        d  : toInt(match[DATE])                         * sign,
        h  : toInt(match[HOUR])                         * sign,
        m  : toInt(match[MINUTE])                       * sign,
        s  : toInt(match[SECOND])                       * sign,
        ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match
      };
    } else if (!!(match = isoRegex.exec(input))) {
      sign = (match[1] === '-') ? -1 : (match[1] === '+') ? 1 : 1;
      duration = {
        y : parseIso(match[2], sign),
        M : parseIso(match[3], sign),
        w : parseIso(match[4], sign),
        d : parseIso(match[5], sign),
        h : parseIso(match[6], sign),
        m : parseIso(match[7], sign),
        s : parseIso(match[8], sign)
      };
    } else if (duration == null) {// checks for null or undefined
      duration = {};
    } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {
      diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));

      duration = {};
      duration.ms = diffRes.milliseconds;
      duration.M = diffRes.months;
    }

    ret = new Duration(duration);

    if (isDuration(input) && hasOwnProp(input, '_locale')) {
      ret._locale = input._locale;
    }

    return ret;
  }

  createDuration.fn = Duration.prototype;
  createDuration.invalid = createInvalid$1;

  function parseIso (inp, sign) {
    // We'd normally use ~~inp for this, but unfortunately it also
    // converts floats to ints.
    // inp may be undefined, so careful calling replace on it.
    var res = inp && parseFloat(inp.replace(',', '.'));
    // apply sign while we're at it
    return (isNaN(res) ? 0 : res) * sign;
  }

  function positiveMomentsDifference(base, other) {
    var res = {milliseconds: 0, months: 0};

    res.months = other.month() - base.month() +
        (other.year() - base.year()) * 12;
    if (base.clone().add(res.months, 'M').isAfter(other)) {
      --res.months;
    }

    res.milliseconds = +other - +(base.clone().add(res.months, 'M'));

    return res;
  }

  function momentsDifference(base, other) {
    var res;
    if (!(base.isValid() && other.isValid())) {
      return {milliseconds: 0, months: 0};
    }

    other = cloneWithOffset(other, base);
    if (base.isBefore(other)) {
      res = positiveMomentsDifference(base, other);
    } else {
      res = positiveMomentsDifference(other, base);
      res.milliseconds = -res.milliseconds;
      res.months = -res.months;
    }

    return res;
  }

  // TODO: remove 'name' arg after deprecation is removed
  function createAdder(direction, name) {
    return function (val, period) {
      var dur, tmp;
      //invert the arguments, but complain about it
      if (period !== null && !isNaN(+period)) {
        deprecateSimple(name, 'moment().' + name  + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +
            'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');
        tmp = val; val = period; period = tmp;
      }

      val = typeof val === 'string' ? +val : val;
      dur = createDuration(val, period);
      addSubtract(this, dur, direction);
      return this;
    };
  }

  function addSubtract (mom, duration, isAdding, updateOffset) {
    var milliseconds = duration._milliseconds,
        days = absRound(duration._days),
        months = absRound(duration._months);

    if (!mom.isValid()) {
      // No op
      return;
    }

    updateOffset = updateOffset == null ? true : updateOffset;

    if (months) {
      setMonth(mom, get(mom, 'Month') + months * isAdding);
    }
    if (days) {
      set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);
    }
    if (milliseconds) {
      mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);
    }
    if (updateOffset) {
      hooks.updateOffset(mom, days || months);
    }
  }

  var add      = createAdder(1, 'add');
  var subtract = createAdder(-1, 'subtract');

  function getCalendarFormat(myMoment, now) {
    var diff = myMoment.diff(now, 'days', true);
    return diff < -6 ? 'sameElse' :
        diff < -1 ? 'lastWeek' :
            diff < 0 ? 'lastDay' :
                diff < 1 ? 'sameDay' :
                    diff < 2 ? 'nextDay' :
                        diff < 7 ? 'nextWeek' : 'sameElse';
  }

  function calendar$1 (time, formats) {
    // We want to compare the start of today, vs this.
    // Getting start-of-today depends on whether we're local/utc/offset or not.
    var now = time || createLocal(),
        sod = cloneWithOffset(now, this).startOf('day'),
        format = hooks.calendarFormat(this, sod) || 'sameElse';

    var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);

    return this.format(output || this.localeData().calendar(format, this, createLocal(now)));
  }

  function clone () {
    return new Moment(this);
  }

  function isAfter (input, units) {
    var localInput = isMoment(input) ? input : createLocal(input);
    if (!(this.isValid() && localInput.isValid())) {
      return false;
    }
    units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
    if (units === 'millisecond') {
      return this.valueOf() > localInput.valueOf();
    } else {
      return localInput.valueOf() < this.clone().startOf(units).valueOf();
    }
  }

  function isBefore (input, units) {
    var localInput = isMoment(input) ? input : createLocal(input);
    if (!(this.isValid() && localInput.isValid())) {
      return false;
    }
    units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');
    if (units === 'millisecond') {
      return this.valueOf() < localInput.valueOf();
    } else {
      return this.clone().endOf(units).valueOf() < localInput.valueOf();
    }
  }

  function isBetween (from, to, units, inclusivity) {
    inclusivity = inclusivity || '()';
    return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) &&
        (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units));
  }

  function isSame (input, units) {
    var localInput = isMoment(input) ? input : createLocal(input),
        inputMs;
    if (!(this.isValid() && localInput.isValid())) {
      return false;
    }
    units = normalizeUnits(units || 'millisecond');
    if (units === 'millisecond') {
      return this.valueOf() === localInput.valueOf();
    } else {
      inputMs = localInput.valueOf();
      return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();
    }
  }

  function isSameOrAfter (input, units) {
    return this.isSame(input, units) || this.isAfter(input,units);
  }

  function isSameOrBefore (input, units) {
    return this.isSame(input, units) || this.isBefore(input,units);
  }

  function diff (input, units, asFloat) {
    var that,
        zoneDelta,
        output;

    if (!this.isValid()) {
      return NaN;
    }

    that = cloneWithOffset(input, this);

    if (!that.isValid()) {
      return NaN;
    }

    zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;

    units = normalizeUnits(units);

    switch (units) {
      case 'year': output = monthDiff(this, that) / 12; break;
      case 'month': output = monthDiff(this, that); break;
      case 'quarter': output = monthDiff(this, that) / 3; break;
      case 'second': output = (this - that) / 1e3; break; // 1000
      case 'minute': output = (this - that) / 6e4; break; // 1000 * 60
      case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60
      case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst
      case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst
      default: output = this - that;
    }

    return asFloat ? output : absFloor(output);
  }

  function monthDiff (a, b) {
    // difference in months
    var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),
        // b is in (anchor - 1 month, anchor + 1 month)
        anchor = a.clone().add(wholeMonthDiff, 'months'),
        anchor2, adjust;

    if (b - anchor < 0) {
      anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');
      // linear across the month
      adjust = (b - anchor) / (anchor - anchor2);
    } else {
      anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');
      // linear across the month
      adjust = (b - anchor) / (anchor2 - anchor);
    }

    //check for negative zero, return zero if negative zero
    return -(wholeMonthDiff + adjust) || 0;
  }

  hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';
  hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';

  function toString () {
    return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
  }

  function toISOString(keepOffset) {
    if (!this.isValid()) {
      return null;
    }
    var utc = keepOffset !== true;
    var m = utc ? this.clone().utc() : this;
    if (m.year() < 0 || m.year() > 9999) {
      return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');
    }
    if (isFunction(Date.prototype.toISOString)) {
      // native implementation is ~50x faster, use it when we can
      if (utc) {
        return this.toDate().toISOString();
      } else {
        return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));
      }
    }
    return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');
  }

  /**
   * Return a human readable representation of a moment that can
   * also be evaluated to get a new moment which is the same
   *
   * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects
   */
  function inspect () {
    if (!this.isValid()) {
      return 'moment.invalid(/* ' + this._i + ' */)';
    }
    var func = 'moment';
    var zone = '';
    if (!this.isLocal()) {
      func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';
      zone = 'Z';
    }
    var prefix = '[' + func + '("]';
    var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';
    var datetime = '-MM-DD[T]HH:mm:ss.SSS';
    var suffix = zone + '[")]';

    return this.format(prefix + year + datetime + suffix);
  }

  function format (inputString) {
    if (!inputString) {
      inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;
    }
    var output = formatMoment(this, inputString);
    return this.localeData().postformat(output);
  }

  function from (time, withoutSuffix) {
    if (this.isValid() &&
        ((isMoment(time) && time.isValid()) ||
            createLocal(time).isValid())) {
      return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);
    } else {
      return this.localeData().invalidDate();
    }
  }

  function fromNow (withoutSuffix) {
    return this.from(createLocal(), withoutSuffix);
  }

  function to (time, withoutSuffix) {
    if (this.isValid() &&
        ((isMoment(time) && time.isValid()) ||
            createLocal(time).isValid())) {
      return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);
    } else {
      return this.localeData().invalidDate();
    }
  }

  function toNow (withoutSuffix) {
    return this.to(createLocal(), withoutSuffix);
  }

  // If passed a locale key, it will set the locale for this
  // instance.  Otherwise, it will return the locale configuration
  // variables for this instance.
  function locale (key) {
    var newLocaleData;

    if (key === undefined) {
      return this._locale._abbr;
    } else {
      newLocaleData = getLocale(key);
      if (newLocaleData != null) {
        this._locale = newLocaleData;
      }
      return this;
    }
  }

  var lang = deprecate(
      'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
      function (key) {
        if (key === undefined) {
          return this.localeData();
        } else {
          return this.locale(key);
        }
      }
  );

  function localeData () {
    return this._locale;
  }

  function startOf (units) {
    units = normalizeUnits(units);
    // the following switch intentionally omits break keywords
    // to utilize falling through the cases.
    switch (units) {
      case 'year':
        this.month(0);
        /* falls through */
      case 'quarter':
      case 'month':
        this.date(1);
        /* falls through */
      case 'week':
      case 'isoWeek':
      case 'day':
      case 'date':
        this.hours(0);
        /* falls through */
      case 'hour':
        this.minutes(0);
        /* falls through */
      case 'minute':
        this.seconds(0);
        /* falls through */
      case 'second':
        this.milliseconds(0);
    }

    // weeks are a special case
    if (units === 'week') {
      this.weekday(0);
    }
    if (units === 'isoWeek') {
      this.isoWeekday(1);
    }

    // quarters are also special
    if (units === 'quarter') {
      this.month(Math.floor(this.month() / 3) * 3);
    }

    return this;
  }

  function endOf (units) {
    units = normalizeUnits(units);
    if (units === undefined || units === 'millisecond') {
      return this;
    }

    // 'date' is an alias for 'day', so it should be considered as such.
    if (units === 'date') {
      units = 'day';
    }

    return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');
  }

  function valueOf () {
    return this._d.valueOf() - ((this._offset || 0) * 60000);
  }

  function unix () {
    return Math.floor(this.valueOf() / 1000);
  }

  function toDate () {
    return new Date(this.valueOf());
  }

  function toArray () {
    var m = this;
    return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];
  }

  function toObject () {
    var m = this;
    return {
      years: m.year(),
      months: m.month(),
      date: m.date(),
      hours: m.hours(),
      minutes: m.minutes(),
      seconds: m.seconds(),
      milliseconds: m.milliseconds()
    };
  }

  function toJSON () {
    // new Date(NaN).toJSON() === null
    return this.isValid() ? this.toISOString() : null;
  }

  function isValid$2 () {
    return isValid(this);
  }

  function parsingFlags () {
    return extend({}, getParsingFlags(this));
  }

  function invalidAt () {
    return getParsingFlags(this).overflow;
  }

  function creationData() {
    return {
      input: this._i,
      format: this._f,
      locale: this._locale,
      isUTC: this._isUTC,
      strict: this._strict
    };
  }

  // FORMATTING

  addFormatToken(0, ['gg', 2], 0, function () {
    return this.weekYear() % 100;
  });

  addFormatToken(0, ['GG', 2], 0, function () {
    return this.isoWeekYear() % 100;
  });

  function addWeekYearFormatToken (token, getter) {
    addFormatToken(0, [token, token.length], 0, getter);
  }

  addWeekYearFormatToken('gggg',     'weekYear');
  addWeekYearFormatToken('ggggg',    'weekYear');
  addWeekYearFormatToken('GGGG',  'isoWeekYear');
  addWeekYearFormatToken('GGGGG', 'isoWeekYear');

  // ALIASES

  addUnitAlias('weekYear', 'gg');
  addUnitAlias('isoWeekYear', 'GG');

  // PRIORITY

  addUnitPriority('weekYear', 1);
  addUnitPriority('isoWeekYear', 1);


  // PARSING

  addRegexToken('G',      matchSigned);
  addRegexToken('g',      matchSigned);
  addRegexToken('GG',     match1to2, match2);
  addRegexToken('gg',     match1to2, match2);
  addRegexToken('GGGG',   match1to4, match4);
  addRegexToken('gggg',   match1to4, match4);
  addRegexToken('GGGGG',  match1to6, match6);
  addRegexToken('ggggg',  match1to6, match6);

  addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {
    week[token.substr(0, 2)] = toInt(input);
  });

  addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {
    week[token] = hooks.parseTwoDigitYear(input);
  });

  // MOMENTS

  function getSetWeekYear (input) {
    return getSetWeekYearHelper.call(this,
        input,
        this.week(),
        this.weekday(),
        this.localeData()._week.dow,
        this.localeData()._week.doy);
  }

  function getSetISOWeekYear (input) {
    return getSetWeekYearHelper.call(this,
        input, this.isoWeek(), this.isoWeekday(), 1, 4);
  }

  function getISOWeeksInYear () {
    return weeksInYear(this.year(), 1, 4);
  }

  function getWeeksInYear () {
    var weekInfo = this.localeData()._week;
    return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);
  }

  function getSetWeekYearHelper(input, week, weekday, dow, doy) {
    var weeksTarget;
    if (input == null) {
      return weekOfYear(this, dow, doy).year;
    } else {
      weeksTarget = weeksInYear(input, dow, doy);
      if (week > weeksTarget) {
        week = weeksTarget;
      }
      return setWeekAll.call(this, input, week, weekday, dow, doy);
    }
  }

  function setWeekAll(weekYear, week, weekday, dow, doy) {
    var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),
        date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);

    this.year(date.getUTCFullYear());
    this.month(date.getUTCMonth());
    this.date(date.getUTCDate());
    return this;
  }

  // FORMATTING

  addFormatToken('Q', 0, 'Qo', 'quarter');

  // ALIASES

  addUnitAlias('quarter', 'Q');

  // PRIORITY

  addUnitPriority('quarter', 7);

  // PARSING

  addRegexToken('Q', match1);
  addParseToken('Q', function (input, array) {
    array[MONTH] = (toInt(input) - 1) * 3;
  });

  // MOMENTS

  function getSetQuarter (input) {
    return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);
  }

  // FORMATTING

  addFormatToken('D', ['DD', 2], 'Do', 'date');

  // ALIASES

  addUnitAlias('date', 'D');

  // PRIORITY
  addUnitPriority('date', 9);

  // PARSING

  addRegexToken('D',  match1to2);
  addRegexToken('DD', match1to2, match2);
  addRegexToken('Do', function (isStrict, locale) {
    // TODO: Remove "ordinalParse" fallback in next major release.
    return isStrict ?
        (locale._dayOfMonthOrdinalParse || locale._ordinalParse) :
        locale._dayOfMonthOrdinalParseLenient;
  });

  addParseToken(['D', 'DD'], DATE);
  addParseToken('Do', function (input, array) {
    array[DATE] = toInt(input.match(match1to2)[0]);
  });

  // MOMENTS

  var getSetDayOfMonth = makeGetSet('Date', true);

  // FORMATTING

  addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');

  // ALIASES

  addUnitAlias('dayOfYear', 'DDD');

  // PRIORITY
  addUnitPriority('dayOfYear', 4);

  // PARSING

  addRegexToken('DDD',  match1to3);
  addRegexToken('DDDD', match3);
  addParseToken(['DDD', 'DDDD'], function (input, array, config) {
    config._dayOfYear = toInt(input);
  });

  // HELPERS

  // MOMENTS

  function getSetDayOfYear (input) {
    var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;
    return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');
  }

  // FORMATTING

  addFormatToken('m', ['mm', 2], 0, 'minute');

  // ALIASES

  addUnitAlias('minute', 'm');

  // PRIORITY

  addUnitPriority('minute', 14);

  // PARSING

  addRegexToken('m',  match1to2);
  addRegexToken('mm', match1to2, match2);
  addParseToken(['m', 'mm'], MINUTE);

  // MOMENTS

  var getSetMinute = makeGetSet('Minutes', false);

  // FORMATTING

  addFormatToken('s', ['ss', 2], 0, 'second');

  // ALIASES

  addUnitAlias('second', 's');

  // PRIORITY

  addUnitPriority('second', 15);

  // PARSING

  addRegexToken('s',  match1to2);
  addRegexToken('ss', match1to2, match2);
  addParseToken(['s', 'ss'], SECOND);

  // MOMENTS

  var getSetSecond = makeGetSet('Seconds', false);

  // FORMATTING

  addFormatToken('S', 0, 0, function () {
    return ~~(this.millisecond() / 100);
  });

  addFormatToken(0, ['SS', 2], 0, function () {
    return ~~(this.millisecond() / 10);
  });

  addFormatToken(0, ['SSS', 3], 0, 'millisecond');
  addFormatToken(0, ['SSSS', 4], 0, function () {
    return this.millisecond() * 10;
  });
  addFormatToken(0, ['SSSSS', 5], 0, function () {
    return this.millisecond() * 100;
  });
  addFormatToken(0, ['SSSSSS', 6], 0, function () {
    return this.millisecond() * 1000;
  });
  addFormatToken(0, ['SSSSSSS', 7], 0, function () {
    return this.millisecond() * 10000;
  });
  addFormatToken(0, ['SSSSSSSS', 8], 0, function () {
    return this.millisecond() * 100000;
  });
  addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {
    return this.millisecond() * 1000000;
  });


  // ALIASES

  addUnitAlias('millisecond', 'ms');

  // PRIORITY

  addUnitPriority('millisecond', 16);

  // PARSING

  addRegexToken('S',    match1to3, match1);
  addRegexToken('SS',   match1to3, match2);
  addRegexToken('SSS',  match1to3, match3);

  var token;
  for (token = 'SSSS'; token.length <= 9; token += 'S') {
    addRegexToken(token, matchUnsigned);
  }

  function parseMs(input, array) {
    array[MILLISECOND] = toInt(('0.' + input) * 1000);
  }

  for (token = 'S'; token.length <= 9; token += 'S') {
    addParseToken(token, parseMs);
  }
  // MOMENTS

  var getSetMillisecond = makeGetSet('Milliseconds', false);

  // FORMATTING

  addFormatToken('z',  0, 0, 'zoneAbbr');
  addFormatToken('zz', 0, 0, 'zoneName');

  // MOMENTS

  function getZoneAbbr () {
    return this._isUTC ? 'UTC' : '';
  }

  function getZoneName () {
    return this._isUTC ? 'Coordinated Universal Time' : '';
  }

  var proto = Moment.prototype;

  proto.add               = add;
  proto.calendar          = calendar$1;
  proto.clone             = clone;
  proto.diff              = diff;
  proto.endOf             = endOf;
  proto.format            = format;
  proto.from              = from;
  proto.fromNow           = fromNow;
  proto.to                = to;
  proto.toNow             = toNow;
  proto.get               = stringGet;
  proto.invalidAt         = invalidAt;
  proto.isAfter           = isAfter;
  proto.isBefore          = isBefore;
  proto.isBetween         = isBetween;
  proto.isSame            = isSame;
  proto.isSameOrAfter     = isSameOrAfter;
  proto.isSameOrBefore    = isSameOrBefore;
  proto.isValid           = isValid$2;
  proto.lang              = lang;
  proto.locale            = locale;
  proto.localeData        = localeData;
  proto.max               = prototypeMax;
  proto.min               = prototypeMin;
  proto.parsingFlags      = parsingFlags;
  proto.set               = stringSet;
  proto.startOf           = startOf;
  proto.subtract          = subtract;
  proto.toArray           = toArray;
  proto.toObject          = toObject;
  proto.toDate            = toDate;
  proto.toISOString       = toISOString;
  proto.inspect           = inspect;
  proto.toJSON            = toJSON;
  proto.toString          = toString;
  proto.unix              = unix;
  proto.valueOf           = valueOf;
  proto.creationData      = creationData;
  proto.year       = getSetYear;
  proto.isLeapYear = getIsLeapYear;
  proto.weekYear    = getSetWeekYear;
  proto.isoWeekYear = getSetISOWeekYear;
  proto.quarter = proto.quarters = getSetQuarter;
  proto.month       = getSetMonth;
  proto.daysInMonth = getDaysInMonth;
  proto.week           = proto.weeks        = getSetWeek;
  proto.isoWeek        = proto.isoWeeks     = getSetISOWeek;
  proto.weeksInYear    = getWeeksInYear;
  proto.isoWeeksInYear = getISOWeeksInYear;
  proto.date       = getSetDayOfMonth;
  proto.day        = proto.days             = getSetDayOfWeek;
  proto.weekday    = getSetLocaleDayOfWeek;
  proto.isoWeekday = getSetISODayOfWeek;
  proto.dayOfYear  = getSetDayOfYear;
  proto.hour = proto.hours = getSetHour;
  proto.minute = proto.minutes = getSetMinute;
  proto.second = proto.seconds = getSetSecond;
  proto.millisecond = proto.milliseconds = getSetMillisecond;
  proto.utcOffset            = getSetOffset;
  proto.utc                  = setOffsetToUTC;
  proto.local                = setOffsetToLocal;
  proto.parseZone            = setOffsetToParsedOffset;
  proto.hasAlignedHourOffset = hasAlignedHourOffset;
  proto.isDST                = isDaylightSavingTime;
  proto.isLocal              = isLocal;
  proto.isUtcOffset          = isUtcOffset;
  proto.isUtc                = isUtc;
  proto.isUTC                = isUtc;
  proto.zoneAbbr = getZoneAbbr;
  proto.zoneName = getZoneName;
  proto.dates  = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);
  proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);
  proto.years  = deprecate('years accessor is deprecated. Use year instead', getSetYear);
  proto.zone   = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);
  proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);

  function createUnix (input) {
    return createLocal(input * 1000);
  }

  function createInZone () {
    return createLocal.apply(null, arguments).parseZone();
  }

  function preParsePostFormat (string) {
    return string;
  }

  var proto$1 = Locale.prototype;

  proto$1.calendar        = calendar;
  proto$1.longDateFormat  = longDateFormat;
  proto$1.invalidDate     = invalidDate;
  proto$1.ordinal         = ordinal;
  proto$1.preparse        = preParsePostFormat;
  proto$1.postformat      = preParsePostFormat;
  proto$1.relativeTime    = relativeTime;
  proto$1.pastFuture      = pastFuture;
  proto$1.set             = set;

  proto$1.months            =        localeMonths;
  proto$1.monthsShort       =        localeMonthsShort;
  proto$1.monthsParse       =        localeMonthsParse;
  proto$1.monthsRegex       = monthsRegex;
  proto$1.monthsShortRegex  = monthsShortRegex;
  proto$1.week = localeWeek;
  proto$1.firstDayOfYear = localeFirstDayOfYear;
  proto$1.firstDayOfWeek = localeFirstDayOfWeek;

  proto$1.weekdays       =        localeWeekdays;
  proto$1.weekdaysMin    =        localeWeekdaysMin;
  proto$1.weekdaysShort  =        localeWeekdaysShort;
  proto$1.weekdaysParse  =        localeWeekdaysParse;

  proto$1.weekdaysRegex       =        weekdaysRegex;
  proto$1.weekdaysShortRegex  =        weekdaysShortRegex;
  proto$1.weekdaysMinRegex    =        weekdaysMinRegex;

  proto$1.isPM = localeIsPM;
  proto$1.meridiem = localeMeridiem;

  function get$1 (format, index, field, setter) {
    var locale = getLocale();
    var utc = createUTC().set(setter, index);
    return locale[field](utc, format);
  }

  function listMonthsImpl (format, index, field) {
    if (isNumber(format)) {
      index = format;
      format = undefined;
    }

    format = format || '';

    if (index != null) {
      return get$1(format, index, field, 'month');
    }

    var i;
    var out = [];
    for (i = 0; i < 12; i++) {
      out[i] = get$1(format, i, field, 'month');
    }
    return out;
  }

  // ()
  // (5)
  // (fmt, 5)
  // (fmt)
  // (true)
  // (true, 5)
  // (true, fmt, 5)
  // (true, fmt)
  function listWeekdaysImpl (localeSorted, format, index, field) {
    if (typeof localeSorted === 'boolean') {
      if (isNumber(format)) {
        index = format;
        format = undefined;
      }

      format = format || '';
    } else {
      format = localeSorted;
      index = format;
      localeSorted = false;

      if (isNumber(format)) {
        index = format;
        format = undefined;
      }

      format = format || '';
    }

    var locale = getLocale(),
        shift = localeSorted ? locale._week.dow : 0;

    if (index != null) {
      return get$1(format, (index + shift) % 7, field, 'day');
    }

    var i;
    var out = [];
    for (i = 0; i < 7; i++) {
      out[i] = get$1(format, (i + shift) % 7, field, 'day');
    }
    return out;
  }

  function listMonths (format, index) {
    return listMonthsImpl(format, index, 'months');
  }

  function listMonthsShort (format, index) {
    return listMonthsImpl(format, index, 'monthsShort');
  }

  function listWeekdays (localeSorted, format, index) {
    return listWeekdaysImpl(localeSorted, format, index, 'weekdays');
  }

  function listWeekdaysShort (localeSorted, format, index) {
    return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');
  }

  function listWeekdaysMin (localeSorted, format, index) {
    return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');
  }

  getSetGlobalLocale('en', {
    dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
    ordinal : function (number) {
      var b = number % 10,
          output = (toInt(number % 100 / 10) === 1) ? 'th' :
              (b === 1) ? 'st' :
                  (b === 2) ? 'nd' :
                      (b === 3) ? 'rd' : 'th';
      return number + output;
    }
  });

  // Side effect imports

  hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);
  hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);

  var mathAbs = Math.abs;

  function abs () {
    var data           = this._data;

    this._milliseconds = mathAbs(this._milliseconds);
    this._days         = mathAbs(this._days);
    this._months       = mathAbs(this._months);

    data.milliseconds  = mathAbs(data.milliseconds);
    data.seconds       = mathAbs(data.seconds);
    data.minutes       = mathAbs(data.minutes);
    data.hours         = mathAbs(data.hours);
    data.months        = mathAbs(data.months);
    data.years         = mathAbs(data.years);

    return this;
  }

  function addSubtract$1 (duration, input, value, direction) {
    var other = createDuration(input, value);

    duration._milliseconds += direction * other._milliseconds;
    duration._days         += direction * other._days;
    duration._months       += direction * other._months;

    return duration._bubble();
  }

  // supports only 2.0-style add(1, 's') or add(duration)
  function add$1 (input, value) {
    return addSubtract$1(this, input, value, 1);
  }

  // supports only 2.0-style subtract(1, 's') or subtract(duration)
  function subtract$1 (input, value) {
    return addSubtract$1(this, input, value, -1);
  }

  function absCeil (number) {
    if (number < 0) {
      return Math.floor(number);
    } else {
      return Math.ceil(number);
    }
  }

  function bubble () {
    var milliseconds = this._milliseconds;
    var days         = this._days;
    var months       = this._months;
    var data         = this._data;
    var seconds, minutes, hours, years, monthsFromDays;

    // if we have a mix of positive and negative values, bubble down first
    // check: https://github.com/moment/moment/issues/2166
    if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||
            (milliseconds <= 0 && days <= 0 && months <= 0))) {
      milliseconds += absCeil(monthsToDays(months) + days) * 864e5;
      days = 0;
      months = 0;
    }

    // The following code bubbles up values, see the tests for
    // examples of what that means.
    data.milliseconds = milliseconds % 1000;

    seconds           = absFloor(milliseconds / 1000);
    data.seconds      = seconds % 60;

    minutes           = absFloor(seconds / 60);
    data.minutes      = minutes % 60;

    hours             = absFloor(minutes / 60);
    data.hours        = hours % 24;

    days += absFloor(hours / 24);

    // convert days to months
    monthsFromDays = absFloor(daysToMonths(days));
    months += monthsFromDays;
    days -= absCeil(monthsToDays(monthsFromDays));

    // 12 months -> 1 year
    years = absFloor(months / 12);
    months %= 12;

    data.days   = days;
    data.months = months;
    data.years  = years;

    return this;
  }

  function daysToMonths (days) {
    // 400 years have 146097 days (taking into account leap year rules)
    // 400 years have 12 months === 4800
    return days * 4800 / 146097;
  }

  function monthsToDays (months) {
    // the reverse of daysToMonths
    return months * 146097 / 4800;
  }

  function as (units) {
    if (!this.isValid()) {
      return NaN;
    }
    var days;
    var months;
    var milliseconds = this._milliseconds;

    units = normalizeUnits(units);

    if (units === 'month' || units === 'year') {
      days   = this._days   + milliseconds / 864e5;
      months = this._months + daysToMonths(days);
      return units === 'month' ? months : months / 12;
    } else {
      // handle milliseconds separately because of floating point math errors (issue #1867)
      days = this._days + Math.round(monthsToDays(this._months));
      switch (units) {
        case 'week'   : return days / 7     + milliseconds / 6048e5;
        case 'day'    : return days         + milliseconds / 864e5;
        case 'hour'   : return days * 24    + milliseconds / 36e5;
        case 'minute' : return days * 1440  + milliseconds / 6e4;
        case 'second' : return days * 86400 + milliseconds / 1000;
          // Math.floor prevents floating point math errors here
        case 'millisecond': return Math.floor(days * 864e5) + milliseconds;
        default: throw new Error('Unknown unit ' + units);
      }
    }
  }

  // TODO: Use this.as('ms')?
  function valueOf$1 () {
    if (!this.isValid()) {
      return NaN;
    }
    return (
        this._milliseconds +
        this._days * 864e5 +
        (this._months % 12) * 2592e6 +
        toInt(this._months / 12) * 31536e6
    );
  }

  function makeAs (alias) {
    return function () {
      return this.as(alias);
    };
  }

  var asMilliseconds = makeAs('ms');
  var asSeconds      = makeAs('s');
  var asMinutes      = makeAs('m');
  var asHours        = makeAs('h');
  var asDays         = makeAs('d');
  var asWeeks        = makeAs('w');
  var asMonths       = makeAs('M');
  var asYears        = makeAs('y');

  function clone$1 () {
    return createDuration(this);
  }

  function get$2 (units) {
    units = normalizeUnits(units);
    return this.isValid() ? this[units + 's']() : NaN;
  }

  function makeGetter(name) {
    return function () {
      return this.isValid() ? this._data[name] : NaN;
    };
  }

  var milliseconds = makeGetter('milliseconds');
  var seconds      = makeGetter('seconds');
  var minutes      = makeGetter('minutes');
  var hours        = makeGetter('hours');
  var days         = makeGetter('days');
  var months       = makeGetter('months');
  var years        = makeGetter('years');

  function weeks () {
    return absFloor(this.days() / 7);
  }

  var round = Math.round;
  var thresholds = {
    ss: 44,         // a few seconds to seconds
    s : 45,         // seconds to minute
    m : 45,         // minutes to hour
    h : 22,         // hours to day
    d : 26,         // days to month
    M : 11          // months to year
  };

  // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
  function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {
    return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
  }

  function relativeTime$1 (posNegDuration, withoutSuffix, locale) {
    var duration = createDuration(posNegDuration).abs();
    var seconds  = round(duration.as('s'));
    var minutes  = round(duration.as('m'));
    var hours    = round(duration.as('h'));
    var days     = round(duration.as('d'));
    var months   = round(duration.as('M'));
    var years    = round(duration.as('y'));

    var a = seconds <= thresholds.ss && ['s', seconds]  ||
        seconds < thresholds.s   && ['ss', seconds] ||
        minutes <= 1             && ['m']           ||
        minutes < thresholds.m   && ['mm', minutes] ||
        hours   <= 1             && ['h']           ||
        hours   < thresholds.h   && ['hh', hours]   ||
        days    <= 1             && ['d']           ||
        days    < thresholds.d   && ['dd', days]    ||
        months  <= 1             && ['M']           ||
        months  < thresholds.M   && ['MM', months]  ||
        years   <= 1             && ['y']           || ['yy', years];

    a[2] = withoutSuffix;
    a[3] = +posNegDuration > 0;
    a[4] = locale;
    return substituteTimeAgo.apply(null, a);
  }

  // This function allows you to set the rounding function for relative time strings
  function getSetRelativeTimeRounding (roundingFunction) {
    if (roundingFunction === undefined) {
      return round;
    }
    if (typeof(roundingFunction) === 'function') {
      round = roundingFunction;
      return true;
    }
    return false;
  }

  // This function allows you to set a threshold for relative time strings
  function getSetRelativeTimeThreshold (threshold, limit) {
    if (thresholds[threshold] === undefined) {
      return false;
    }
    if (limit === undefined) {
      return thresholds[threshold];
    }
    thresholds[threshold] = limit;
    if (threshold === 's') {
      thresholds.ss = limit - 1;
    }
    return true;
  }

  function humanize (withSuffix) {
    if (!this.isValid()) {
      return this.localeData().invalidDate();
    }

    var locale = this.localeData();
    var output = relativeTime$1(this, !withSuffix, locale);

    if (withSuffix) {
      output = locale.pastFuture(+this, output);
    }

    return locale.postformat(output);
  }

  var abs$1 = Math.abs;

  function sign(x) {
    return ((x > 0) - (x < 0)) || +x;
  }

  function toISOString$1() {
    // for ISO strings we do not use the normal bubbling rules:
    //  * milliseconds bubble up until they become hours
    //  * days do not bubble at all
    //  * months bubble up until they become years
    // This is because there is no context-free conversion between hours and days
    // (think of clock changes)
    // and also not between days and months (28-31 days per month)
    if (!this.isValid()) {
      return this.localeData().invalidDate();
    }

    var seconds = abs$1(this._milliseconds) / 1000;
    var days         = abs$1(this._days);
    var months       = abs$1(this._months);
    var minutes, hours, years;

    // 3600 seconds -> 60 minutes -> 1 hour
    minutes           = absFloor(seconds / 60);
    hours             = absFloor(minutes / 60);
    seconds %= 60;
    minutes %= 60;

    // 12 months -> 1 year
    years  = absFloor(months / 12);
    months %= 12;


    // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
    var Y = years;
    var M = months;
    var D = days;
    var h = hours;
    var m = minutes;
    var s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : '';
    var total = this.asSeconds();

    if (!total) {
      // this is the same as C#'s (Noda) and python (isodate)...
      // but not other JS (goog.date)
      return 'P0D';
    }

    var totalSign = total < 0 ? '-' : '';
    var ymSign = sign(this._months) !== sign(total) ? '-' : '';
    var daysSign = sign(this._days) !== sign(total) ? '-' : '';
    var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';

    return totalSign + 'P' +
        (Y ? ymSign + Y + 'Y' : '') +
        (M ? ymSign + M + 'M' : '') +
        (D ? daysSign + D + 'D' : '') +
        ((h || m || s) ? 'T' : '') +
        (h ? hmsSign + h + 'H' : '') +
        (m ? hmsSign + m + 'M' : '') +
        (s ? hmsSign + s + 'S' : '');
  }

  var proto$2 = Duration.prototype;

  proto$2.isValid        = isValid$1;
  proto$2.abs            = abs;
  proto$2.add            = add$1;
  proto$2.subtract       = subtract$1;
  proto$2.as             = as;
  proto$2.asMilliseconds = asMilliseconds;
  proto$2.asSeconds      = asSeconds;
  proto$2.asMinutes      = asMinutes;
  proto$2.asHours        = asHours;
  proto$2.asDays         = asDays;
  proto$2.asWeeks        = asWeeks;
  proto$2.asMonths       = asMonths;
  proto$2.asYears        = asYears;
  proto$2.valueOf        = valueOf$1;
  proto$2._bubble        = bubble;
  proto$2.clone          = clone$1;
  proto$2.get            = get$2;
  proto$2.milliseconds   = milliseconds;
  proto$2.seconds        = seconds;
  proto$2.minutes        = minutes;
  proto$2.hours          = hours;
  proto$2.days           = days;
  proto$2.weeks          = weeks;
  proto$2.months         = months;
  proto$2.years          = years;
  proto$2.humanize       = humanize;
  proto$2.toISOString    = toISOString$1;
  proto$2.toString       = toISOString$1;
  proto$2.toJSON         = toISOString$1;
  proto$2.locale         = locale;
  proto$2.localeData     = localeData;

  proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);
  proto$2.lang = lang;

  // Side effect imports

  // FORMATTING

  addFormatToken('X', 0, 0, 'unix');
  addFormatToken('x', 0, 0, 'valueOf');

  // PARSING

  addRegexToken('x', matchSigned);
  addRegexToken('X', matchTimestamp);
  addParseToken('X', function (input, array, config) {
    config._d = new Date(parseFloat(input, 10) * 1000);
  });
  addParseToken('x', function (input, array, config) {
    config._d = new Date(toInt(input));
  });

  // Side effect imports


  hooks.version = '2.22.2';

  setHookCallback(createLocal);

  hooks.fn                    = proto;
  hooks.min                   = min;
  hooks.max                   = max;
  hooks.now                   = now;
  hooks.utc                   = createUTC;
  hooks.unix                  = createUnix;
  hooks.months                = listMonths;
  hooks.isDate                = isDate;
  hooks.locale                = getSetGlobalLocale;
  hooks.invalid               = createInvalid;
  hooks.duration              = createDuration;
  hooks.isMoment              = isMoment;
  hooks.weekdays              = listWeekdays;
  hooks.parseZone             = createInZone;
  hooks.localeData            = getLocale;
  hooks.isDuration            = isDuration;
  hooks.monthsShort           = listMonthsShort;
  hooks.weekdaysMin           = listWeekdaysMin;
  hooks.defineLocale          = defineLocale;
  hooks.updateLocale          = updateLocale;
  hooks.locales               = listLocales;
  hooks.weekdaysShort         = listWeekdaysShort;
  hooks.normalizeUnits        = normalizeUnits;
  hooks.relativeTimeRounding  = getSetRelativeTimeRounding;
  hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;
  hooks.calendarFormat        = getCalendarFormat;
  hooks.prototype             = proto;

  // currently HTML5 input type only supports 24-hour formats
  hooks.HTML5_FMT = {
    DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm',             // <input type="datetime-local" />
    DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss',  // <input type="datetime-local" step="1" />
    DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS',   // <input type="datetime-local" step="0.001" />
    DATE: 'YYYY-MM-DD',                             // <input type="date" />
    TIME: 'HH:mm',                                  // <input type="time" />
    TIME_SECONDS: 'HH:mm:ss',                       // <input type="time" step="1" />
    TIME_MS: 'HH:mm:ss.SSS',                        // <input type="time" step="0.001" />
    WEEK: 'YYYY-[W]WW',                             // <input type="week" />
    MONTH: 'YYYY-MM'                                // <input type="month" />
  };

  return hooks;

})));PK���[G��"public/assets/img/close-button.pngnu�[����PNG


IHDRP(L"��IDATx��Ы1Fᴰ���ph���
���fs�@C�E��$�5���b�/������B- <Q�����[���2�����"�m�E��>6��bݫ��<�u��t4�)�}��;L��L`E��!���q@��8 Dx,"<��B�
�ID�cГ�b�*X2�P�lP�[���P>ao�ж	��sHIEND�B`�PK���[r����public/assets/img/clock.pngnu�[����PNG


IHDRP(L"�[IDATx��̱
�0@�_46��O\9+|�o����Cәu��7�	�G�?"�
*�o�0�E2&�B�
�5L��q�U�'�#�*4�V�"��^O��ڛ�]�IEND�B`�PK���[5���!public/assets/img/open-button.pngnu�[����PNG


IHDRP(L"��IDATx��ѭ1�ᴐF(��4�P������h�l~NC7 >f��f�:��G|�r��fL��
ޅz��dDO�v�A�'I��L <�- <�- <�M <�m <�m <�m <�` kn�����xn,��!dx <���A�']k��Up��Up�a��Rn\z
��9��E�<9+�#�T����qS�A�8cOn���~_IEND�B`�PK���[�
�UUpublic/assets/css/general.cssnu�[���/* Reset ------------------------------------------------------------------------------------------------------------ */

#daln-container,
#daln-container *,
#daln-open{
	
	/* this is useful to prevent div highlighting */
	-webkit-user-select: none; /* Chrome/Safari */        
	-moz-user-select: none; /* Firefox */
	-ms-user-select: none; /* IE10+ */
	-khtml-user-select: none; /* webkit browsers */
	-o-user-select: none;/* not yet implemented */
	user-select: none;/* not yet implemented */	
	-webkit-touch-callout: none;
	
    -webkit-box-sizing: content-box !important;
    -moz-box-sizing: content-box !important;
    box-sizing: content-box !important;  
	
    box-shadow: none !important;
    -webkit-box-shadow: none !important;
    text-shadow: none !important;
    
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;

    letter-spacing: normal !important;
    
}

/* Container -------------------------------------------------------------------------------------------------------- */

#daln-container{
    position: fixed;
    bottom: 0;
    left: 0;
    min-height: 140px;
    width: 100%;
    z-index: 999999999998;
}

/* Featured News ---------------------------------------------------------------------------------------------------- */

#daln-featured-container{
    min-height: 100px;
    padding: 0 80px !important;
}

#daln-featured-title-container{
    min-height: 50px;
    text-align: left !important;
    overflow: visible;
}

#daln-featured-title, #daln-featured-title a{
    min-height: 50px;
    line-height: 50px;
    color: #eee;
    display: inline;
    text-transform: uppercase;
    font-weight: 700 !important;
    text-align: left !important;
}

#daln-featured-title a, .daln-slider-single-news a{
    text-decoration: none !important;
}

#daln-featured-title a:hover{
    text-decoration: none !important;
}

#daln-featured-title a:focus{
    outline: 0 !important;
}

.daln-slider-single-news a:hover{
    text-decoration: none !important;
}

.daln-slider-single-news a:focus{
    outline: 0 !important;
}

#daln-container #daln-featured-title,
#daln-container #daln-featured-title a,
#daln-container #daln-featured-excerpt{
    text-shadow: 2.5px 4.33px 5px rgba( 0, 0, 0, 0.30 ) !important;
}

#daln-featured-excerpt-container{
    min-height: 50px;
    text-align: left !important;
}

#daln-featured-excerpt{
    text-align: left !important;
    min-height: 50px;
    line-height: 50px;
    width: 100%;
    color: #eee;
    display: inline;
    font-weight: 600;
}

/* Sliding News ----------------------------------------------------------------------------------------------------- */

#daln-slider{
    width: 1000000px;
    height: 40px;
    position: relative;
    text-transform: uppercase;

}
#daln-slider-floating-content{
    height: 40px;
    position: absolute;
    top: 0;
    left: 0;
}

#daln-slider-floating-content .daln-slider-single-news{
    height: 40px;
    line-height: 40px;
    float: left;
    font-size: 28px;
    font-weight: 700 !important;
}

#daln-slider-floating-content .daln-slider-single-news:last-child{
    margin-right: 0 !important;
}

#daln-slider-floating-content .daln-slider-single-news a{
    font-weight: 700 !important;
}

#daln-container .daln-image-before{
    height: 40px !important;
    padding: 0 !important;
    display: block !important;
    float: left !important;
}

#daln-container .daln-image-after{
    height: 40px !important;
    padding: 0 !important;
    display: block !important;
    float: left !important;
}

.daln-slider-single-news a{
    display: block !important;
    float: left !important;
}

.daln-slider-single-news span{
    display: block !important;
    float: left !important;
}

/* Clock ------------------------------------------------------------------------------------------------------------ */

#daln-clock{
    position: absolute;
    left: 0;
    bottom: 0;
    width: auto;
    padding: 0 4px !important;
    height: 40px;
    line-height: 40px;
    text-align: center;
    font-size: 28px;
    font-weight: 700;
    z-index: 999999999999;
    background-size: 80px 40px !important;
}

#daln-container #daln-clock, #daln-container .daln-slider-single-news{
     text-shadow: none !important;
}

/* Close Button ----------------------------------------------------------------------------------------------------- */
#daln-close{
    cursor: pointer;
    position: absolute;
    right: 0;
    bottom: 0;
    width: 80px;
    height: 40px;
    line-height: 40px;
    text-align: center;
    z-index: 999999999999;
    background-size: 80px 40px !important;
}

/* Open Button ------------------------------------------------------------------------------------------------------ */
#daln-open{
    cursor: pointer;
    position: fixed;
    right: 0;
    bottom: 0;
    width: 80px;
    height: 40px;
    line-height: 40px;
    text-align: center;
    z-index: 999999999999;
    background-size: 80px 40px !important;
}

/* Set transition on all the links ---------------------------------------------------------------------------------- */
#daln-container a{
    -webkit-transition: .3s all ease-in-out;
    -moz-transition: .3s all ease-in-out;
    transition: .3s all ease-in-out;    
}PK���[JXT>]]init.phpnu�[���<?php
/*
Plugin Name: Live News
Description: Real Time News Ticker.
Version: 2.09
Author: DAEXT
Author URI: http://daext.com
*/

//Prevent direct access to this file
if ( ! defined( 'WPINC' ) ) { die(); }

//Class shared across public and admin
require_once( plugin_dir_path( __FILE__ ) . 'shared/class-daln-shared.php' );

//Public
require_once( plugin_dir_path( __FILE__ ) . 'public/class-daln-public.php' );
add_action( 'plugins_loaded', array( 'Daln_Public', 'get_instance' ) );

//Admin
if ( is_admin() && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) ) {
    
    //Admin
    require_once( plugin_dir_path( __FILE__ ) . 'admin/class-daln-admin.php' );
    add_action( 'plugins_loaded', array( 'Daln_Admin', 'get_instance' ) );
    
    //Activate
    register_activation_hook( __FILE__, array( Daln_Admin::get_instance(), 'ac_activate' ) );
    
}

//Ajax
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
    
    //Admin
    require_once( plugin_dir_path( __FILE__ ) . 'class-daln-ajax.php' );
    add_action( 'plugins_loaded', array( 'Daln_Ajax', 'get_instance' ) );
    
}PK���[M������lang/daln-it_IT.monu�[�����	da�01X=8����0
9GPaw�������+;N_q~
��q��+#�"�z'{T�R�%K$q�����:�����
��&���$ ? ] w � "� � � � !
!!
,!7!	C!M!g!�!�!�!�!�!�!�!�!�!"""8"M"U"i"?u";�"3�"4%#:Z#3�#3�#,�#N*$My$H�$;%;L%I�%F�%J&Dd&H�&C�&=6';t'5�'2�'6(6P(/�(0�(?�(B()Lk)E�);�)V:*d�*c�*TZ+T�+[,S`,T�,L	-]V-`�-^.Nt.^�.U"/\x/f�/<0B0F0S0`0Hm0N�0�1�1J�2-31K4}4N�4?L5y�5z6��6�75�79�7�8+�8��8/�9�9�9	�9
�9�9�9%:@:S:l:�:�:�:�:
�:�:
�:;;
;
;(;/9;.i;7�;6�;2<B:<A}<A�<E='G=5o=%�=.�=�=->.G>.v>0�>0�>C?CK?+�?)�?"�?'@$0@0U@.�@'�@�@2�@1-A2_A3�A,�A.�A."B-QB/B/�B�B�BC=C,\CX�C,�C6DNFD��D�0E��E�dF�G��G,�H�I�I�IJJJ4JLJ!gJ�J�J�J�J�J�J�J	K]KF{K	�K
�K�Kn�KNL<RL;�L�L��L
�NT�N2�N.OEOZOpOvO�O
�O�O	�O�O �OPP6PGPWPiPP�P�P�P�P�P
QQ5QBQUQdQ��Q�
R$�R#�R��R+jSW�ST�S(CT'lT%�T��U��V�UW�2XY
YY$5YZY%wY'�Y�Y�Y!�Y$!ZFZfZ}Z�Z�Z�Z�Z�Z�Z	�Z�Z
[%[9[R[c[x[}[�[�[�[�[�[�[\\ \H,\Hu\D�\B]FF]<�]:�]6^X<^W�^R�^@@_H�_N�_O`Ti`N�`P
aL^aE�aE�aB7b:zb@�b>�b75c9mcG�cJ�cT:dM�dC�dV!eexec�eMBf]�fR�fTAgT�gP�g_<hc�h`iWaid�i[jczjj�jIkRkVkgkxkD�kT�k�$l*�lRncen2�o��oX�pI�p+q}�q�)r��r;us8�s��s%�t��t){u
�u�u�u�u�u�u#v0vDv^v{v�v�v�v�v�v�v	ww
w!w.w2Aw1tw>�w=�w7#xB[x@�x<�xRy+oy;�y)�y/z1z+Oz.{z0�z2�z2{JA{I�{8�{6|*F|/q|�|6�|'�|( }I}.b}-�}2�}2�}.%~0T~0�~/�~1�~1Jg��/�S�/C�>s�O��������A�������N�T!�v�}���������͆�!�"�9�N�g�x�|�����y��R8�
��
����a���<�<K������
��b�z�A�sK�y��MC�!�oe{tV������r���)X�����,�I��a���f�=�?�YH>�_�����q$�i�x�'�gj�%�v���u2O:�N��}�U�����D/7Z���5���wc�`��P���*�"�����n<	�L;�(�-��1����8�]��.������9�Q�S���W��|�pB�� J��\k�m�G+	����@��6l�3�
���d#~04R�h�F�&�E�[^�T� Target URLA news ticker with "URL" as a target and the same value in the URL field already exists.A news ticker with "Website" as a target already exists.Add Featured NewsAdd News TickerAdd Sliding NewsAllBackground ColorBackground Color OpacityBehaviorCached CyclesCategoryClock AutoupdateClock Autoupdate TimeClock Background ImageClock Font SizeClock FormatClock OffsetClock SourceClock Text ColorClose Button ImageCreate a Featured NewsCreate a News TickerCreate a Sliding NewsDetect URL ModeEdit Featured NewsEdit News TickerEdit Sliding NewsEnable LinksEnable RTL LayoutEnable TickerEnable with Mobile DevicesEnter the RSS Feed used to generate the news. This option is used only if the source of the news ticker is "RSS".Enter the Twitter username for which you want to retrieve the tweets. This option is used only if the source of the news ticker is "Twitter".Enter the URL of the featured news.Enter the URL of the sliding news.Enter the URL where the news ticker should be applied. This option is used only if the target of the news ticker is "URL".Enter the excerpt of the featured news.Enter the number of sliding news that you want to display in a single cycle of news.Enter the speed of the sliding news. Values included between 1 and 10 are allowed.Enter the title of the featured news.Enter the title of the sliding news.Enter the transient expiration in seconds. Set an high value to improve the news ticker performance and to avoid an excessive load on the web server. Set a low value to have frequent updates of the news. Set 0 to not use a transient.Enter your Twitter Consumer Key. This key is available in the "Keys and Access Token" section of the Twitter App. This option is used only if the source of the news ticker is "Twitter".Enter your Twitter Consumer Secret. This key is available in the "Keys and Access Token" section of the Twitter App. This option is used only if the source of the news ticker is "Twitter".Enter your Twitter Oauth Access Token Secret. This token is available in the "Keys and Access Token" section of the Twitter App. This option is used only if the source of the news ticker is "Twitter".Enter your Twitter Oauth Access Token. This token is available in the "Keys and Access Token" section of the Twitter App. This option is used only if the source of the news ticker is "Twitter".ExcerptFeatured NewsFeatured News Background ColorFeatured News Background Color OpacityFeatured News Excerpt ColorFeatured News Excerpt Font SizeFeatured News Excerpt Maximum LengthFeatured News Menu CapabilityFeatured News Title ColorFeatured News Title Color HoverFeatured News Title Font SizeFeatured News Title Maximum LengthFilter by News TickerFont FamilyGeneralGoogle FontHide ClockHide Featured NewsImage LeftImage RightLive NewsLive News - Featured NewsLive News - News TickersLive News - OptionsLive News - Sliding NewsLoad Moment.jsManually AddedNameNews TickersNoNumber of Sliding NewsOnly with Mobile DevicesOpen Button ImageOpen Links in New TabOpen News as DefaultOptionsPerform your SearchPerformancePlease enter a valid URL in the "Clock Background Image" field.Please enter a valid URL in the "Close Button Image" field.Please enter a valid URL in the "Image Left" field.Please enter a valid URL in the "Image Right" field.Please enter a valid URL in the "Open Button Image" field.Please enter a valid URL in the "Source RSS" field.Please enter a valid URL in the "Target URL" field.Please enter a valid URL in the "URL" field.Please enter a valid capability in the "Featured News Menu Capability" option.Please enter a valid capability in the "Sliding News Menu Capability" option.Please enter a valid capability in the "Tickers Menu Capability" option.Please enter a valid color in the "Background Color" field.Please enter a valid color in the "Clock Text Color" field.Please enter a valid color in the "Featured News Background Color" field.Please enter a valid color in the "Featured News Excerpt Color" field.Please enter a valid color in the "Featured News Title Color Hover" field.Please enter a valid color in the "Featured News Title Color" field.Please enter a valid color in the "Sliding News Background Color" field.Please enter a valid color in the "Sliding News Color Hover" field.Please enter a valid color in the "Sliding News Color" field.Please enter a valid color in the "Text Color Hover" field.Please enter a valid color in the "Text Color" field.Please enter a valid value in the "Excerpt" field.Please enter a valid value in the "Font Family" field.Please enter a valid value in the "Google Font" field.Please enter a valid value in the "Name" field.Please enter a valid value in the "Title" field.Please enter a valid value in the "Twitter Consumer Key" field.Please enter a valid value in the "Twitter Consumer Secret" field.Please enter a valid value in the "Twitter Oauth Access Token Secret" field.Please enter a valid value in the "Twitter Oauth Access Token" field.Please enter a valid value in the "Twitter Username" field.Please enter a value included between 0 and 1 in the "Background Color Opacity" field.Please enter a value included between 0 and 1 in the "Featured News Background Color Opacity" field.Please enter a value included between 0 and 1 in the "Sliding News Background Color Opacity" field.Please enter a value included between 0 and 1000000000 in the "Cached Cycles" field.Please enter a value included between 0 and 1000000000 in the "Sliding Delay" field.Please enter a value included between 0 and 1000000000 in the "Transient Expiration" field.Please enter a value included between 0 and 999 in the "Sliding News Margin" field.Please enter a value included between 0 and 999 in the "Sliding News Padding" field.Please enter a value included between 1 and 10 in the "Sliding Speed" field.Please enter a value included between 1 and 1000 in athe "Sliding News Maximum Length" field.Please enter a value included between 1 and 1000 in the "Featured Excerpt Maximum Length" field.Please enter a value included between 1 and 1000 in the "Featured Title Maximum Length" field.Please enter a value included between 1 and 28 in the "Clock Font Size" field.Please enter a value included between 1 and 28 in the "Featured News Excerpt Font Size" field.Please enter a value included between 1 and 28 in the "Sliding News Font Size" field.Please enter a value included between 1 and 38 in the "Featured News Title Font Size" field.Please select "No" only if other components of your website are already loading the Moment.js library.PostsRSSRemove ImageRemove imageSave ChangesSelect if the featured news area of the news ticker should be displayed.Select if the links availble in the news ticker should be opened in a new tab.Select if the news should be retrieved from all the posts or only from the posts of a specific category. This option is used only if the source of the news ticker is "Posts".Select if the news ticker should be presented in the open status (with the featured news area visible) to the users. If the user opens or closes the news ticker the new status will be saved in a cookie and used to determine the default status of the news ticker for that specific user.Select if the time should be based on the server time or on the user time.Select if the time should be based on the server time or on the user time. Please note that by selecting "Server Time" the clock will be updated only when the news are retrieved from the server, therefore this option should not be used if you are caching cycles of news or if you are using transients.Select the background color of this sliding news.Select the background image of the clock. It's recommended to use an image with a width of 80 pixels and a height of 40 pixels.Select the color used to display the text of this sliding news in hover state.Select the color used to display the text of this sliding news.Select the image displayed on the left of the sliding news. It's recommended to use an image with an height of 40 pixels.Select the image displayed on the right of the sliding news. It's recommended to use an image with an height of 40 pixels.Select the image of the button used to close the news ticker. It's recommended to use an image with a width of 80 pixels and a height of 40 pixels.Select the image of the button used to open the news ticker. It's recommended to use an image with a width of 80 pixels and a height of 40 pixels.Select the method used to detect the URL of the page.Select the news ticker associated with this sliding news.Select whether to autoupdate or not the clock independently from the cycles of news received. This option is applied only if the source of the clock is "User Time".Select whether to display or not the clock.Select whether to display or not the news ticker with mobile devices. The user-agent string combined with specific HTTP headers are used to determine the device.Select whether to enable or not the RTL layout.Server TimeServer VariableSet imageSliding DelaySliding NewsSliding News Background ColorSliding News Background Color OpacitySliding News ColorSliding News Color HoverSliding News Font SizeSliding News MarginSliding News Maximum LengthSliding News Menu CapabilitySliding News PaddingSliding SpeedSourceSource RSSStyleTargetTarget URLText ColorText Color HoverThe background color of the featured news area.The background color of the sliding news area.The background color opacity of the featured news area.The background color opacity of the sliding news area.The background color opacity of this sliding news.The capability required to get access on the "Featured News" menu.The capability required to get access on the "News Tickers" menu.The capability required to get access on the "Sliding News" menu.The clock offset in seconds. Positive or negative values are allowed.The color of the featured news excerpt.The color of the featured news title in hover status.The color of the featured news title.The color of the sliding news in hover status.The color of the sliding news.The color of the text displayed in the clock.The delay of the sliding news in milliseconds.The featured news has been successfully added.The featured news has been successfully deleted.The featured news has been successfully updated.The filter can't be applied because this news ticker doesn't exist.The font family used for all the text displayed in the news ticker.The font size of the featured news excerpt.The font size of the featured news title.The font size of the sliding news.The font size of the text in the clock.The margin between the sliding news.The maximum length of the featured news excerpt.The maximum length of the featured news title.The maximum length of the sliding news.The name of the news ticker.The news ticker associated with the featured news.The news ticker associated with the sliding news.The news ticker associated with this featured newsThe news ticker associated with this featured news.The news ticker has been successfully added.The news ticker has been successfully deleted.The news ticker has been successfully updated.The sliding news has been successfully added.The sliding news has been successfully deleted.The sliding news has been successfully updated.The source of the news ticker.The target of the news ticker.The title of the featured news.The title of the sliding news.The transient has been successfully deleted.There are no news tickers at the moment, please create at least one news ticker with theThere are no results that match your filter.This option allows you to load a specific Google Font.This option determines how frequent should be the clock autoupdate in seconds.This option determines if the hashtags should be removed from the imported tweets. This option is used only if the source of the news ticker is "Twitter".This option determines if the links should be removed from the imported tweets. This option is used only if the source of the news ticker is "Twitter".This option determines if the usernames should be removed from the imported tweets. This option is used only if the source of the news ticker is "Twitter".This option determines the padding on the left and on the right of each sliding news and also the distance between the sliding news text and the sliding news left and right images.This option determines where the news displayed in the news ticker are retrieved. Please note that with the "Twitter" source the news are displayed only in the sliding news area.This selection determines if the news ticker should be applied to the entire website or to a specific URL. Note that a news ticker associated with an URL has the priority over the news ticker associated with the entire website.This value determines the number of cycles performed by the news ticker without updating the news. Set an high value to improve the news ticker performance and to avoid an excessive load on the web server. Set a low value to have frequent updates of the news. Set 0 to update the news at every cycle.TickerTickers Menu CapabilityTitleTransient ExpirationTwitterTwitter Consumer KeyTwitter Consumer SecretTwitter Oauth Access TokenTwitter Oauth Access Token SecretTwitter Strip HashtagsTwitter Strip LinksTwitter Strip UsernamesTwitter UsernameURLUpdate Featured NewsUpdate News TickerUpdate Sliding NewsUse this field to specify the clock format. The tokens supported by Moment.js should be used.Use this option to enable or disable the news ticker on the front-end.User TimeWP RequestWebsiteWhether to apply or not the links associated with the news on the featured news title and on the sliding news.YesYou do not have sufficient capabilities to access this page.You do not have sufficient permissions to access this page.itemsProject-Id-Version: daln
POT-Creation-Date: 2018-07-26 15:21+0100
PO-Revision-Date: 2018-07-26 15:21+0100
Last-Translator: Danilo Andreini <andreini.danilo@gmail.com>
Language-Team: 
Language: it_IT
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Generator: Poedit 1.6.10
X-Poedit-Basepath: .
Plural-Forms: nplurals=2; plural=(n != 1);
X-Poedit-KeywordsList: _e;__;esc_attr_e;esc_attr__
X-Poedit-SearchPath-0: ..
Target URLUn news ticker con "URL" come target e lo stesso valore nel campo "URL" esiste già.Un news ticker con "Sito" come target esiste già.Aggiungi Featured NewsAggiungi News TickerAggiungi Sliding NewsTuttiColore di SfondoOpacità Colore di SfondoComportamentoCicli in CacheCategoriaAutoaggiornamento OrologioTempo Autoaggiornamento OrologioImmagine Sfondo OrologioDimensione Font OrologioFormato OrologioOffset OrologioSorgente OrologioColore Testo OrologioImmagine Pulsante ChiudiCrea una Featured NewsCrea un News TickerCrea una Sliding NewsModalità Rilevazione URLModifica Featured NewsModifica News TickerModifica Sliding NewsAbilita LinkAbilita Layout RTLAbilita TickerAbilita con Dispositivi MobiliInserisci il Feed RSS utilizzato per generare le news. Questa opzione è utilizzata solamente se la sorgente del news ticker è "RSS".Inserisci Il Twitter Username per il quale vuoi recuperare i tweet. Questa opzione è utilizzata solamente se la sorgente delle news è "Twitter".Inserisci l'URL della featured news.Inserisci l'URL della sliding news.Inserisci l'URL dove il news ticker deve essere applicato. Questa opzione è utilizzata solo se il target del news ticker è "URL".Inserisci il riassunto della featured news.Inserisci il numero di sliding news che vuoi fare apparire in un singolo ciclo di news.Inserisci la velocità delle sliding news. Sono permessi valori compresi tra 1 e 10.Inserisci il titolo della featured news.Inserisci il titolo della sliding news.Inserisci la scadenza del transiente in secondi. Imposta un valore alto per migliorare le performance del news ticker e per evitare di caricare eccessivamente il web server. Imposta un valore basso per avere aggiornamenti frequenti delle news. Imposta a 0 per aggiornare le news ad ogni ciclo.Inserisci la tua Twitter Consumer Key. Questa chiave è disponibile nella sezione "Keys and Access Token" della Twitter App. Questa opzione è utilizzata solamente se la sorgente delle news è "Twitter".Inserisci la tua Twitter Consumer Secret. Questa chiave è disponibile nella sezione "Keys and Access Token" della Twitter App. Questa opzione è utilizzata solamente se la sorgente delle news è "Twitter".Inserisci il tuo Twitter Oauth Access Token Secret. Questo token è disponibile nella sezione "Keys and Access Token" della Twitter App. Questa opzione è utilizzata solamente se la sorgente del news ticker è "Twitter".Inserisci il tuo Twitter Oauth Access Token. Questo token è disponibile nella sezione "Keys and Access Token" della Twitter App. Questa opzione è utilizzata solamente se la sorgente delle news è "Twitter".ExcerptFeatured NewsColore Sfondo Featured NewsOpacità Colore Sfondo Featured NewsColore Excerpt Featured NewsDimensione Font Excerpt Featured NewsLunghezza Massima Excerpt Featured NewsCapability Menu Featured NewsColore Titolo Featured NewsColore Titolo Featured News HoverDimensione Font Titolo Featured NewsLunghezza Massima Featured NewsFiltra per News TickerFont FamilyGeneraleGoogle FontNascondi OrologioNascondi Featured NewsImmagine SinistraImmagine destraLive NewsLive News - Featured NewsLive News - News TickerLive News - OpzioniLive News - Sliding NewsCarica Moment.jsAggiunte ManualmenteNomeNews TickerNoNumero di Sliding NewsSolo con dispositivi mobiliImmagine Pulsante ApriApri Link in Nuova TabApri News come DefaultOpzioniEffettua la RicercaPerformancePer favore inserisci un URL valido nel campo "Immagine Sfondo Orologio".Per favore inserisci un URL valido nel campo "Immagine Pulsante Chiudi".Per favore inserisci un valore valido nel campo "Immagine Sinistra".Per favore inserisci un valore valido nel campo "Immagine Destra".Per favore inserisci un URL valido nel campo "Immagine Pulsante Apri".Per favore inserisci un URL valido nel campo "Sorgente RSS".Per favore inserisci un URL valido nel campo "Target URL".Per favore inserisci un valore valido nel campo "URL".Per favore inserisci una capability valida nell'opzione "Capability Menu Featured News".Per favore inserisci una capability valida nell'opzione "Capability Menu Sliding News".Per favore inserisci una capability valida nell'opzione "Capability Menu Tickers".Per favore inserisci un colore valido nel campo "Colore Sfondo".Per favore inserisci un colore valido nel campo "Colore Testo Orologio".Per favore inserisci un colore valido nel campo "Colore Sfondo Featured News".Per favore inserisci un colore valido nel campo "Colore Excerpt Featured News".Per favore inserisci un colore valido nel campo "Colore Titolo Featured News Hover".Per favore inserisci un valore valido nel campo "Colore Titolo Featured News".Per favore inserisci un valore valido nel campo "Colore di sfondo Sliding News".Per favore inserisci un colore valido nel campo "Colore Sliding News Hover".Per favore inserici un valore valido nel campo "Colore Sliding News".Per favore inserisci un valore valido nel campo "Colore Testo Hover".Per favore inserisci un colore valido nell'opzione "Colore Testo".Per favore inserisci un valore valido nel campo "Excerpt".Per favore inserisci un valore valido nel campo "Famiglia Font".Per favore inserisci un valore valido nel campo "Google Font".Per favore inserisci un valore valido nel campo "Nome".Per favore inserisci un valore valido nel campo "Titolo".Per favore inserisci un valore valido nel campo "Twitter Consumer Key".Per favore inserisci un valore valido nel campo "Twitter Consumer Secret".Per favore inserisci un valore valido nel campo "Twitter Oauth Access Token Secret".Per favore inserisci un valore valido nel campo "Twitter Oauth Access Token".Per favore inserisci un valore valido nel campo "Twitter Username".Per favore inserici un valore incluso tra 0 e 1 nel campo "Opacità colore di sfondo".Per favore inserisci un valore incluso tra 0 e 1 nel campo "Opacità Colore di sfondo Featured News".Per favore inserici un valore incluso tra 0 e 1 nel campo "Opacità colore di sfondo Sliding News".Per favore inserisci un valore tra 0 e 1000000000 nel campo "Cicli in Cache".Per favore inserisci un valore valido incluso tra 0 e 1000000000 nel campo "Ritardo Sliding".Per favore inserisci un valore tra 0 e 1000000000 nel campo "Scadenza Transiente".Per favore inserisci un valore incluso tra 0 e 999 nel campo "Margine Sliding News".Per favore inserisci un valore incluso tra 0 e 999 nel campo "Padding Sliding News".Per favore inserisci un valore incluso tra 1 e 10 nel campo "Velocità Sliding".Per favore inserisci un valore incluso tra 1 e 1000 nel campo "Lunghezza Massima Sliding News".Per favore inserisci un valore incluso tra 1 e 1000 nel campo "Lunghezza Massima Featured Excerpt".Per favore inserisci un valore incluso tra 1 e 1000 nel campo "Lunghezza Massima Featured News".Per favore inserisci un valore incluso tra 1 e 28 nel campo "Dimensione Font Orologio".Per favore inserisci un valore incluso tra 1 e 28 nel campo "Dimensione Font Excerpt Featured News".Per favore inserisci un valore incluso tra 1 e 28 nel campo "Dimensione Font Sliding News".Per favore inserisci un valore incluso tra 1 e 38 nel campo "Dimensione Font Titolo Featured News".Per favore scegli "No" solamente quando altri componenti del tuo sito già caricano la libreria Moment.js.ArticoliRSSRimuovi ImmagineRimuovi ImmagineSalva CambiamentiScegli se l'area featured news del news ticker deve essere mostrata.Scegli se i link disponibilii nel news ticker devono essere aperti in una nuova tab.Scegli se le news devono essere recuperate da tutti gli articoli o dagli articoli di una specifica categoria. Questa opzione è utilizzata solamente se la sorgente del news ticker è "Articoli".Scegli se il news ticker deve essere presentato nello stato di aperto (con l'area featured news visibile) agli utenti. Se un utente apre o chiude il news ticker il nuovo stato verrà salvato in un cookie ed utilzzato per determinare lo stato predefinito del news ticker per quello specifico utente.Scegli se l'orario deve essere basato sull'ora del server o su quella dell'utente.Scegli se il tempo deve essere basato sull'orario del server o sull'orario dell'utente. Per favore nota che scegliendo "Orario Server" l'orologio verrà aggiornato solamente quando le news sono recuperate dal server, quindi questa opzione non deve essere utilizzata se stai effettuando multipli cicli con le stesse news o se stai utilizzando i transienti.Scegli il colore di sfondo di questa sliding news.Scegli l'immagine di sfondo dell'orologio. E' consigliato utilizzare una immagine con una larghezza di 80 pixel ed una altezza di 40 pixel.Scegli il colore utilizzato per mostrare il testo di questa sliding news in stato hover.Scegli il colore utilizzato per mostrare il testo di questa sliding news.Scegli l'immagine mostrata alla sinistra della sliding news. E' consigliato utilizzare una immagine con un altezza di 40 pixel.Scegli l'immagine mostrata alla destra della sliding news. E' consigliato utilizzare una immagine con un altezza di 40 pixel.Scegli l'immagine del pulsante utilizzato per chiudere il news ticker. E' consigliato utilizzare una immagine con una larghezza di 80 pixel ed una altezza di 40 pixel.Scegli l'immage del pulsante utilizzato per aprire il news ticker. E' consigliato utilizzare una immagine con una larghezza di 80 pixel ed una altezza di 40 pixel.Scegli il metodo utilizzato per rilevare l'URL della paginaScegli il news ticker associato con questa sliding news.Scegli se autoaggiornare o meno l'orologio indipendentemente dai cicli di news ricevuti. Questa opzione verrà applicata solamente se la sorgente dell'orologio è "Orario Utente".Scegli se mostrare o meno l'orologio.Scegli se mostrare o meno il news ticker con i dispositivi mobili. La stringa dell'user-agent combinata con specifiche HTTP headers sono utilizzate per determinare il tipo di device.Scegli se abilitare o meno il layout RTL.Orario ServerServer VariableImposta immagineRitardo SlidingSliding NewsColore Sfondo Sliding NewsOpacità Colore Sfondo Sliding NewsColore Sliding NewsColore Sliding News HoverDimensione Font Sliding NewsMargine Sliding NewsLunghezza Massima Sliding NewsCapability Menu Sliding NewsPadding Sliding NewsVelocità SlidingSorgenteSorgente RSSStileTargetTarget URLColore TestoColore Testo HoverIl colore di sfondo dell'area delle featured news.Il colore di sfondo dell'area delle sliding news.L'opacità del colore di sfondo dell'area delle featured news.L'opacità del colore di sfondo dell'area delle sliding news.L'opacità del colore di sfondo di questa sliding news.La capability richiesta per avere accesso al menu "Featured News".La capability richiesta per avere accesso al menu "News Ticker".La capability richiesta per accedere al menu "Sliding News".L'offset dell'orologio in secondi. Sono permessi sia valori positivi che negativi.Il colore dell'excerpt delle featured news.Il colore del titolo delle featured news in stato di hover.Il colore del titolo delle featured news.Il colore delle sliding news in stato di hover.Il colore delle sliding news.Il colore del testo mostrato nell'orologio.Il ritardo delle sliding news in millisecondi.La featured news è stata aggiunta con successo.La featured news è stata cancellata con successo.La featured news è stata aggiornata con successo.Il filtro non può essere applicato perchè questo news ticker non esiste.La font family utilizzata per tutti gli elementi di testo del news tickerLa dimensione del font dell'excerpt della featured news.La dimensione del font del titolo delle featured news.La dimensione del font delle sliding news.La dimensione del font del testo dell'orologio.Il margine tra le sliding news.La lunghezza massima dell'excerpt delle featured news.Lunghezza massima titolo featured news.La lunghezza massima delle sliding news.Il nome del news ticker.Il news ticker associato con la featured news.Il news ticker associato con la sliding news.Il news ticker associato con questa featured news.Il news ticker associato con questa featured news.Il news ticker è stato aggiunto con successo.Il news ticker è stato cancellato con successo.Il news ticker è stato aggiornato con successo.La sliding news è stata aggiunta con successo.La sliding news è stata cancellata con successo.La sliding news è stata aggiornata con successo.La sorgente del news ticker.Il target del news ticker.Il titolo della featured news.Il titolo della sliding news.Il transiente è stato cancellato con successo.Non ci sono news ticker al momento, per favore crea al minimo un news ticker con ilNon ci sono risultati che soddisfano il filtro.Questa opzione permette di caricare uno specifico Google Font.Questa opzione determina quanto frequentemente deve autoaggiornarsi l'orologio.Questa opzione determina se gli hashtag devono essere rimossi dai tweet importati. Questa opzione è utilizzata solamente se la sorgente delle news è "Twitter".Questa opzione determina se i link devono essere rimossi dai tweet importati. Questa opzione è utilizzata solamente se la sorgente delle news è "Twitter".Questa opzione determina se gli username devono essere rimossi dai tweet importati. Questa opzione è utilizzata solamente se la sorgente delle news è "Twitter".Questa opzione determina il padding alla sinistra ed alla destra di ogni sliding news ed anche la distanza tra il testo della sliding news e l'immagine sinistra e destra.Questa opzione determina dove vengono recuperate le news mostrate nel news ticker. Per favore nota che con la sorgente "Twitter" le news sono mostrate solamente nell'area delle sliding news.Questa selezione determina se il news ticker deve essere applicato all'intero sito or ad uno specifico URL. Nota che un news ticker associato ad un URL ha la priorità sul news ticker associato all'intero sito.Questo valore determina il numero di cicli effettuati dal news ticker senza aggiornare le news. Imposta un valore alto per migliorare le performance del news ticker e per evitare di caricare eccessivamente il web server. Imposta un valore basso per avere aggiornamenti frequenti delle news. Imposta a 0 per aggiornare le news ad ogni ciclo.TickerCapability Menu TickersTitoloScadenza TransienteTwitterTwitter Consumer KeyTwitter Consumer SecretTwitter Oauth Access TokenTwitter Oauth Access Token SecretTwitter Rimuovi HastagTwitter Rimuovi LinkTwitter Rimuovi UsernameTwitter UsernameURLAggiorna Featured NewsAggiorna News TickerAggiorna Sliding NewsUtilizza questo campo per specificare il formato dell'orologio. Devono essere utilizzati I token supportati da Moment.js.Utilizza questa opzione per abilitare o disabilitare il news ticker nel front-end.Orario UtenteWP RequestSitoSe applicare o no i link associati alle news sul titolo della featured news e sulle sliding news.SiNon hai i permessi sufficienti per accedere a questa pagina.Non hai i permessi sufficienti per accedere a questa pagina.elementiPK���[Z!<����lang/daln-it_IT.ponu�[���msgid ""
msgstr ""
"Project-Id-Version: daln\n"
"POT-Creation-Date: 2018-07-26 15:21+0100\n"
"PO-Revision-Date: 2018-07-26 15:21+0100\n"
"Last-Translator: Danilo Andreini <andreini.danilo@gmail.com>\n"
"Language-Team: \n"
"Language: it_IT\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.6.10\n"
"X-Poedit-Basepath: .\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-KeywordsList: _e;__;esc_attr_e;esc_attr__\n"
"X-Poedit-SearchPath-0: ..\n"

#: ../admin/class-daln-admin.php:513
msgid "Live News"
msgstr "Live News"

#: ../admin/class-daln-admin.php:522 ../admin/class-daln-admin.php:523
#: ../admin/view/featured.php:236 ../admin/view/sliding.php:288
msgid "News Tickers"
msgstr "News Ticker"

#: ../admin/class-daln-admin.php:531 ../admin/class-daln-admin.php:532
msgid "Featured News"
msgstr "Featured News"

#: ../admin/class-daln-admin.php:540 ../admin/class-daln-admin.php:541
msgid "Sliding News"
msgstr "Sliding News"

#: ../admin/class-daln-admin.php:549 ../admin/class-daln-admin.php:550
msgid "Options"
msgstr "Opzioni"

#: ../admin/class-daln-admin.php:601
msgid "Detect URL Mode"
msgstr "Modalità Rilevazione URL"

#: ../admin/class-daln-admin.php:615
msgid "Load Moment.js"
msgstr "Carica Moment.js"

#: ../admin/class-daln-admin.php:629
msgid "Tickers Menu Capability"
msgstr "Capability Menu Tickers"

#: ../admin/class-daln-admin.php:643
msgid "Featured News Menu Capability"
msgstr "Capability Menu Featured News"

#: ../admin/class-daln-admin.php:657
msgid "Sliding News Menu Capability"
msgstr "Capability Menu Sliding News"

#: ../admin/class-daln-admin.php:675
msgid "Server Variable"
msgstr "Server Variable"

#: ../admin/class-daln-admin.php:676
msgid "WP Request"
msgstr "WP Request"

#: ../admin/class-daln-admin.php:678
msgid "Select the method used to detect the URL of the page."
msgstr "Scegli il metodo utilizzato per rilevare l'URL della pagina"

#: ../admin/class-daln-admin.php:700 ../admin/view/tickers.php:803
#: ../admin/view/tickers.php:913 ../admin/view/tickers.php:925
#: ../admin/view/tickers.php:937 ../admin/view/tickers.php:986
#: ../admin/view/tickers.php:998 ../admin/view/tickers.php:1010
#: ../admin/view/tickers.php:1023 ../admin/view/tickers.php:1035
#: ../admin/view/tickers.php:1047 ../admin/view/tickers.php:1059
#: ../admin/view/tickers.php:1071 ../admin/view/tickers.php:1432
#: ../admin/view/tickers.php:1542 ../admin/view/tickers.php:1554
#: ../admin/view/tickers.php:1566 ../admin/view/tickers.php:1615
#: ../admin/view/tickers.php:1627 ../admin/view/tickers.php:1639
#: ../admin/view/tickers.php:1652 ../admin/view/tickers.php:1664
#: ../admin/view/tickers.php:1676 ../admin/view/tickers.php:1688
#: ../admin/view/tickers.php:1700
msgid "No"
msgstr "No"

#: ../admin/class-daln-admin.php:701 ../admin/view/tickers.php:804
#: ../admin/view/tickers.php:914 ../admin/view/tickers.php:926
#: ../admin/view/tickers.php:938 ../admin/view/tickers.php:987
#: ../admin/view/tickers.php:999 ../admin/view/tickers.php:1011
#: ../admin/view/tickers.php:1024 ../admin/view/tickers.php:1036
#: ../admin/view/tickers.php:1048 ../admin/view/tickers.php:1060
#: ../admin/view/tickers.php:1072 ../admin/view/tickers.php:1433
#: ../admin/view/tickers.php:1543 ../admin/view/tickers.php:1555
#: ../admin/view/tickers.php:1567 ../admin/view/tickers.php:1616
#: ../admin/view/tickers.php:1628 ../admin/view/tickers.php:1640
#: ../admin/view/tickers.php:1653 ../admin/view/tickers.php:1665
#: ../admin/view/tickers.php:1677 ../admin/view/tickers.php:1689
#: ../admin/view/tickers.php:1701
msgid "Yes"
msgstr "Si"

#: ../admin/class-daln-admin.php:703
msgid ""
"Please select \"No\" only if other components of your website are already "
"loading the Moment.js library."
msgstr ""
"Per favore scegli \"No\" solamente quando altri componenti del tuo sito già "
"caricano la libreria Moment.js."

#: ../admin/class-daln-admin.php:719
msgid "The capability required to get access on the \"News Tickers\" menu."
msgstr "La capability richiesta per avere accesso al menu \"News Ticker\"."

#: ../admin/class-daln-admin.php:728
msgid ""
"Please enter a valid capability in the \"Tickers Menu Capability\" option."
msgstr ""
"Per favore inserisci una capability valida nell'opzione \"Capability Menu "
"Tickers\"."

#: ../admin/class-daln-admin.php:741
msgid "The capability required to get access on the \"Featured News\" menu."
msgstr "La capability richiesta per avere accesso al menu \"Featured News\"."

#: ../admin/class-daln-admin.php:750
msgid ""
"Please enter a valid capability in the \"Featured News Menu Capability\" "
"option."
msgstr ""
"Per favore inserisci una capability valida nell'opzione \"Capability Menu "
"Featured News\"."

#: ../admin/class-daln-admin.php:763
msgid "The capability required to get access on the \"Sliding News\" menu."
msgstr "La capability richiesta per accedere al menu \"Sliding News\"."

#: ../admin/class-daln-admin.php:772
msgid ""
"Please enter a valid capability in the \"Sliding News Menu Capability\" "
"option."
msgstr ""
"Per favore inserisci una capability valida nell'opzione \"Capability Menu "
"Sliding News\"."

#: ../admin/view/featured.php:4 ../admin/view/sliding.php:4
#: ../admin/view/tickers.php:4
msgid "You do not have sufficient permissions to access this page."
msgstr "Non hai i permessi sufficienti per accedere a questa pagina."

#: ../admin/view/featured.php:21 ../admin/view/sliding.php:21
msgid "Please enter a valid value in the \"Title\" field."
msgstr "Per favore inserisci un valore valido nel campo \"Titolo\"."

#: ../admin/view/featured.php:27
msgid "Please enter a valid value in the \"Excerpt\" field."
msgstr "Per favore inserisci un valore valido nel campo \"Excerpt\"."

#: ../admin/view/featured.php:34 ../admin/view/sliding.php:28
msgid "Please enter a valid URL in the \"URL\" field."
msgstr "Per favore inserisci un valore valido nel campo \"URL\"."

#: ../admin/view/featured.php:61
msgid "The featured news has been successfully updated."
msgstr "La featured news è stata aggiornata con successo."

#: ../admin/view/featured.php:86
msgid "The featured news has been successfully added."
msgstr "La featured news è stata aggiunta con successo."

#: ../admin/view/featured.php:106
msgid "The featured news has been successfully deleted."
msgstr "La featured news è stata cancellata con successo."

#: ../admin/view/featured.php:141 ../admin/view/featured.php:213
msgid "Live News - Featured News"
msgstr "Live News - Featured News"

#: ../admin/view/featured.php:149 ../admin/view/sliding.php:201
#: ../admin/view/tickers.php:615
msgid "Perform your Search"
msgstr "Effettua la Ricerca"

#: ../admin/view/featured.php:177 ../admin/view/sliding.php:229
msgid "Filter by News Ticker"
msgstr "Filtra per News Ticker"

#: ../admin/view/featured.php:181 ../admin/view/sliding.php:233
#: ../admin/view/tickers.php:836 ../admin/view/tickers.php:1465
msgid "All"
msgstr "Tutti"

#: ../admin/view/featured.php:223 ../admin/view/sliding.php:275
msgid "The filter can't be applied because this news ticker doesn't exist."
msgstr ""
"Il filtro non può essere applicato perchè questo news ticker non esiste."

#: ../admin/view/featured.php:236 ../admin/view/sliding.php:288
msgid ""
"There are no news tickers at the moment, please create at least one news "
"ticker with the"
msgstr ""
"Non ci sono news ticker al momento, per favore crea al minimo un news ticker "
"con il"

#: ../admin/view/featured.php:302 ../admin/view/featured.php:378
#: ../admin/view/featured.php:446 ../admin/view/sliding.php:354
#: ../admin/view/sliding.php:431 ../admin/view/sliding.php:558
msgid "Title"
msgstr "Titolo"

#: ../admin/view/featured.php:303
msgid "The title of the featured news."
msgstr "Il titolo della featured news."

#: ../admin/view/featured.php:306 ../admin/view/featured.php:405
#: ../admin/view/featured.php:473 ../admin/view/sliding.php:358
#: ../admin/view/sliding.php:449 ../admin/view/sliding.php:576
msgid "Ticker"
msgstr "Ticker"

#: ../admin/view/featured.php:307
msgid "The news ticker associated with the featured news."
msgstr "Il news ticker associato con la featured news."

#: ../admin/view/featured.php:338 ../admin/view/sliding.php:391
#: ../admin/view/tickers.php:742
msgid "items"
msgstr "elementi"

#: ../admin/view/featured.php:349 ../admin/view/sliding.php:402
msgid "There are no results that match your filter."
msgstr "Non ci sono risultati che soddisfano il filtro."

#: ../admin/view/featured.php:370
msgid "Edit Featured News"
msgstr "Modifica Featured News"

#: ../admin/view/featured.php:381 ../admin/view/featured.php:449
msgid "Enter the title of the featured news."
msgstr "Inserisci il titolo della featured news."

#: ../admin/view/featured.php:387 ../admin/view/featured.php:455
msgid "Excerpt"
msgstr "Excerpt"

#: ../admin/view/featured.php:390 ../admin/view/featured.php:458
msgid "Enter the excerpt of the featured news."
msgstr "Inserisci il riassunto della featured news."

#: ../admin/view/featured.php:396 ../admin/view/featured.php:464
#: ../admin/view/sliding.php:440 ../admin/view/sliding.php:567
#: ../admin/view/tickers.php:783 ../admin/view/tickers.php:1412
msgid "URL"
msgstr "URL"

#: ../admin/view/featured.php:399 ../admin/view/featured.php:467
msgid "Enter the URL of the featured news."
msgstr "Inserisci l'URL della featured news."

#: ../admin/view/featured.php:423
msgid "The news ticker associated with this featured news."
msgstr "Il news ticker associato con questa featured news."

#: ../admin/view/featured.php:431
msgid "Update Featured News"
msgstr "Aggiorna Featured News"

#: ../admin/view/featured.php:440
msgid "Create a Featured News"
msgstr "Crea una Featured News"

#: ../admin/view/featured.php:501
msgid "The news ticker associated with this featured news"
msgstr "Il news ticker associato con questa featured news."

#: ../admin/view/featured.php:509
msgid "Add Featured News"
msgstr "Aggiungi Featured News"

#: ../admin/view/options.php:4
msgid "You do not have sufficient capabilities to access this page."
msgstr "Non hai i permessi sufficienti per accedere a questa pagina."

#: ../admin/view/options.php:11
msgid "Live News - Options"
msgstr "Live News - Opzioni"

#: ../admin/view/options.php:33
msgid "General"
msgstr "Generale"

#: ../admin/view/options.php:50
msgid "Save Changes"
msgstr "Salva Cambiamenti"

#: ../admin/view/sliding.php:34
msgid "Please enter a valid color in the \"Text Color\" field."
msgstr "Per favore inserisci un colore valido nell'opzione \"Colore Testo\"."

#: ../admin/view/sliding.php:40
msgid "Please enter a valid color in the \"Text Color Hover\" field."
msgstr ""
"Per favore inserisci un valore valido nel campo \"Colore Testo Hover\"."

#: ../admin/view/sliding.php:46
msgid "Please enter a valid color in the \"Background Color\" field."
msgstr "Per favore inserisci un colore valido nel campo \"Colore Sfondo\"."

#: ../admin/view/sliding.php:52
msgid ""
"Please enter a value included between 0 and 1 in the \"Background Color "
"Opacity\" field."
msgstr ""
"Per favore inserici un valore incluso tra 0 e 1 nel campo \"Opacità colore "
"di sfondo\"."

#: ../admin/view/sliding.php:59
msgid "Please enter a valid URL in the \"Image Left\" field."
msgstr "Per favore inserisci un valore valido nel campo \"Immagine Sinistra\"."

#: ../admin/view/sliding.php:66
msgid "Please enter a valid URL in the \"Image Right\" field."
msgstr "Per favore inserisci un valore valido nel campo \"Immagine Destra\"."

#: ../admin/view/sliding.php:103
msgid "The sliding news has been successfully updated."
msgstr "La sliding news è stata aggiornata con successo."

#: ../admin/view/sliding.php:138
msgid "The sliding news has been successfully added."
msgstr "La sliding news è stata aggiunta con successo."

#: ../admin/view/sliding.php:158
msgid "The sliding news has been successfully deleted."
msgstr "La sliding news è stata cancellata con successo."

#: ../admin/view/sliding.php:193 ../admin/view/sliding.php:265
msgid "Live News - Sliding News"
msgstr "Live News - Sliding News"

#: ../admin/view/sliding.php:355
msgid "The title of the sliding news."
msgstr "Il titolo della sliding news."

#: ../admin/view/sliding.php:359
msgid "The news ticker associated with the sliding news."
msgstr "Il news ticker associato con la sliding news."

#: ../admin/view/sliding.php:423
msgid "Edit Sliding News"
msgstr "Modifica Sliding News"

#: ../admin/view/sliding.php:434 ../admin/view/sliding.php:561
msgid "Enter the title of the sliding news."
msgstr "Inserisci il titolo della sliding news."

#: ../admin/view/sliding.php:443 ../admin/view/sliding.php:570
msgid "Enter the URL of the sliding news."
msgstr "Inserisci l'URL della sliding news."

#: ../admin/view/sliding.php:469 ../admin/view/sliding.php:604
msgid "Select the news ticker associated with this sliding news."
msgstr "Scegli il news ticker associato con questa sliding news."

#: ../admin/view/sliding.php:475 ../admin/view/sliding.php:610
msgid "Text Color"
msgstr "Colore Testo"

#: ../admin/view/sliding.php:478 ../admin/view/sliding.php:613
msgid "Select the color used to display the text of this sliding news."
msgstr ""
"Scegli il colore utilizzato per mostrare il testo di questa sliding news."

#: ../admin/view/sliding.php:484 ../admin/view/sliding.php:619
msgid "Text Color Hover"
msgstr "Colore Testo Hover"

#: ../admin/view/sliding.php:487 ../admin/view/sliding.php:622
msgid ""
"Select the color used to display the text of this sliding news in hover "
"state."
msgstr ""
"Scegli il colore utilizzato per mostrare il testo di questa sliding news in "
"stato hover."

#: ../admin/view/sliding.php:493 ../admin/view/sliding.php:628
msgid "Background Color"
msgstr "Colore di Sfondo"

#: ../admin/view/sliding.php:496 ../admin/view/sliding.php:631
msgid "Select the background color of this sliding news."
msgstr "Scegli il colore di sfondo di questa sliding news."

#: ../admin/view/sliding.php:502 ../admin/view/sliding.php:637
msgid "Background Color Opacity"
msgstr "Opacità Colore di Sfondo"

#: ../admin/view/sliding.php:505 ../admin/view/sliding.php:640
msgid "The background color opacity of this sliding news."
msgstr "L'opacità del colore di sfondo di questa sliding news."

#: ../admin/view/sliding.php:511 ../admin/view/sliding.php:646
msgid "Image Left"
msgstr "Immagine Sinistra"

#: ../admin/view/sliding.php:517 ../admin/view/sliding.php:532
#: ../admin/view/sliding.php:652 ../admin/view/sliding.php:667
#: ../admin/view/tickers.php:1343 ../admin/view/tickers.php:1358
#: ../admin/view/tickers.php:1373 ../admin/view/tickers.php:1972
#: ../admin/view/tickers.php:1987 ../admin/view/tickers.php:2002
msgid "Set image"
msgstr "Imposta immagine"

#: ../admin/view/sliding.php:517 ../admin/view/sliding.php:532
#: ../admin/view/sliding.php:652 ../admin/view/sliding.php:667
#: ../admin/view/tickers.php:1343 ../admin/view/tickers.php:1358
#: ../admin/view/tickers.php:1373 ../admin/view/tickers.php:1972
#: ../admin/view/tickers.php:1987 ../admin/view/tickers.php:2002
msgid "Remove Image"
msgstr "Rimuovi Immagine"

#: ../admin/view/sliding.php:518 ../admin/view/sliding.php:653
msgid ""
"Select the image displayed on the left of the sliding news. It's recommended "
"to use an image with an height of 40 pixels."
msgstr ""
"Scegli l'immagine mostrata alla sinistra della sliding news. E' consigliato "
"utilizzare una immagine con un altezza di 40 pixel."

#: ../admin/view/sliding.php:526 ../admin/view/sliding.php:661
msgid "Image Right"
msgstr "Immagine destra"

#: ../admin/view/sliding.php:533 ../admin/view/sliding.php:668
msgid ""
"Select the image displayed on the right of the sliding news. It's "
"recommended to use an image with an height of 40 pixels."
msgstr ""
"Scegli l'immagine mostrata alla destra della sliding news. E' consigliato "
"utilizzare una immagine con un altezza di 40 pixel."

#: ../admin/view/sliding.php:543
msgid "Update Sliding News"
msgstr "Aggiorna Sliding News"

#: ../admin/view/sliding.php:552
msgid "Create a Sliding News"
msgstr "Crea una Sliding News"

#: ../admin/view/sliding.php:678
msgid "Add Sliding News"
msgstr "Aggiungi Sliding News"

#: ../admin/view/tickers.php:21
msgid "Please enter a valid value in the \"Name\" field."
msgstr "Per favore inserisci un valore valido nel campo \"Nome\"."

#: ../admin/view/tickers.php:29
msgid "Please enter a valid URL in the \"Target URL\" field."
msgstr "Per favore inserisci un URL valido nel campo \"Target URL\"."

#: ../admin/view/tickers.php:37
msgid "Please enter a valid URL in the \"Source RSS\" field."
msgstr "Per favore inserisci un URL valido nel campo \"Sorgente RSS\"."

#: ../admin/view/tickers.php:44
msgid "Please enter a valid value in the \"Twitter Username\" field."
msgstr "Per favore inserisci un valore valido nel campo \"Twitter Username\"."

#: ../admin/view/tickers.php:51
msgid "Please enter a valid value in the \"Twitter Oauth Access Token\" field."
msgstr ""
"Per favore inserisci un valore valido nel campo \"Twitter Oauth Access Token"
"\"."

#: ../admin/view/tickers.php:58
msgid ""
"Please enter a valid value in the \"Twitter Oauth Access Token Secret\" "
"field."
msgstr ""
"Per favore inserisci un valore valido nel campo \"Twitter Oauth Access Token "
"Secret\"."

#: ../admin/view/tickers.php:65
msgid "Please enter a valid value in the \"Twitter Consumer Key\" field."
msgstr ""
"Per favore inserisci un valore valido nel campo \"Twitter Consumer Key\"."

#: ../admin/view/tickers.php:72
msgid "Please enter a valid value in the \"Twitter Consumer Secret\" field."
msgstr ""
"Per favore inserisci un valore valido nel campo \"Twitter Consumer Secret\"."

#: ../admin/view/tickers.php:78
msgid ""
"Please enter a value included between 1 and 10 in the \"Sliding Speed\" "
"field."
msgstr ""
"Per favore inserisci un valore incluso tra 1 e 10 nel campo \"Velocità "
"Sliding\"."

#: ../admin/view/tickers.php:84
msgid ""
"Please enter a value included between 0 and 1000000000 in the \"Sliding Delay"
"\" field."
msgstr ""
"Per favore inserisci un valore valido incluso tra 0 e 1000000000 nel campo "
"\"Ritardo Sliding\"."

#: ../admin/view/tickers.php:90
msgid ""
"Please enter a value included between 1 and 1000 in the \"Featured Title "
"Maximum Length\" field."
msgstr ""
"Per favore inserisci un valore incluso tra 1 e 1000 nel campo \"Lunghezza "
"Massima Featured News\"."

#: ../admin/view/tickers.php:96
msgid ""
"Please enter a value included between 1 and 1000 in the \"Featured Excerpt "
"Maximum Length\" field."
msgstr ""
"Per favore inserisci un valore incluso tra 1 e 1000 nel campo \"Lunghezza "
"Massima Featured Excerpt\"."

#: ../admin/view/tickers.php:102
msgid ""
"Please enter a value included between 1 and 1000 in athe \"Sliding News "
"Maximum Length\" field."
msgstr ""
"Per favore inserisci un valore incluso tra 1 e 1000 nel campo \"Lunghezza "
"Massima Sliding News\"."

#: ../admin/view/tickers.php:108
msgid ""
"Please enter a value included between 1 and 38 in the \"Featured News Title "
"Font Size\" field."
msgstr ""
"Per favore inserisci un valore incluso tra 1 e 38 nel campo \"Dimensione "
"Font Titolo Featured News\"."

#: ../admin/view/tickers.php:114
msgid ""
"Please enter a value included between 1 and 28 in the \"Featured News "
"Excerpt Font Size\" field."
msgstr ""
"Per favore inserisci un valore incluso tra 1 e 28 nel campo \"Dimensione "
"Font Excerpt Featured News\"."

#: ../admin/view/tickers.php:120
msgid ""
"Please enter a value included between 1 and 28 in the \"Sliding News Font "
"Size\" field."
msgstr ""
"Per favore inserisci un valore incluso tra 1 e 28 nel campo \"Dimensione "
"Font Sliding News\"."

#: ../admin/view/tickers.php:126
msgid ""
"Please enter a value included between 1 and 28 in the \"Clock Font Size\" "
"field."
msgstr ""
"Per favore inserisci un valore incluso tra 1 e 28 nel campo \"Dimensione "
"Font Orologio\"."

#: ../admin/view/tickers.php:132
msgid ""
"Please enter a value included between 0 and 999 in the \"Sliding News Margin"
"\" field."
msgstr ""
"Per favore inserisci un valore incluso tra 0 e 999 nel campo \"Margine "
"Sliding News\"."

#: ../admin/view/tickers.php:138
msgid ""
"Please enter a value included between 0 and 999 in the \"Sliding News Padding"
"\" field."
msgstr ""
"Per favore inserisci un valore incluso tra 0 e 999 nel campo \"Padding "
"Sliding News\"."

#: ../admin/view/tickers.php:144
msgid ""
"Please enter a value included between 0 and 1000000000 in the \"Cached Cycles"
"\" field."
msgstr ""
"Per favore inserisci un valore tra 0 e 1000000000 nel campo \"Cicli in Cache"
"\"."

#: ../admin/view/tickers.php:150
msgid ""
"Please enter a value included between 0 and 1000000000 in the \"Transient "
"Expiration\" field."
msgstr ""
"Per favore inserisci un valore tra 0 e 1000000000 nel campo \"Scadenza "
"Transiente\"."

#: ../admin/view/tickers.php:156
msgid ""
"Please enter a valid color in the \"Featured News Background Color\" field."
msgstr ""
"Per favore inserisci un colore valido nel campo \"Colore Sfondo Featured News"
"\"."

#: ../admin/view/tickers.php:162
msgid ""
"Please enter a valid color in the \"Sliding News Background Color\" field."
msgstr ""
"Per favore inserisci un valore valido nel campo \"Colore di sfondo Sliding "
"News\"."

#: ../admin/view/tickers.php:168
msgid ""
"Please enter a value included between 0 and 1 in the \"Sliding News "
"Background Color Opacity\" field."
msgstr ""
"Per favore inserici un valore incluso tra 0 e 1 nel campo \"Opacità colore "
"di sfondo Sliding News\"."

#: ../admin/view/tickers.php:174
msgid "Please enter a valid value in the \"Font Family\" field."
msgstr "Per favore inserisci un valore valido nel campo \"Famiglia Font\"."

#: ../admin/view/tickers.php:180
msgid "Please enter a valid value in the \"Google Font\" field."
msgstr "Per favore inserisci un valore valido nel campo \"Google Font\"."

#: ../admin/view/tickers.php:186
msgid "Please enter a valid URL in the \"Open Button Image\" field."
msgstr ""
"Per favore inserisci un URL valido nel campo \"Immagine Pulsante Apri\"."

#: ../admin/view/tickers.php:192
msgid "Please enter a valid URL in the \"Close Button Image\" field."
msgstr ""
"Per favore inserisci un URL valido nel campo \"Immagine Pulsante Chiudi\"."

#: ../admin/view/tickers.php:198
msgid "Please enter a valid URL in the \"Clock Background Image\" field."
msgstr ""
"Per favore inserisci un URL valido nel campo \"Immagine Sfondo Orologio\"."

#: ../admin/view/tickers.php:204
msgid "Please enter a valid color in the \"Featured News Title Color\" field."
msgstr ""
"Per favore inserisci un valore valido nel campo \"Colore Titolo Featured News"
"\"."

#: ../admin/view/tickers.php:210
msgid ""
"Please enter a valid color in the \"Featured News Title Color Hover\" field."
msgstr ""
"Per favore inserisci un colore valido nel campo \"Colore Titolo Featured "
"News Hover\"."

#: ../admin/view/tickers.php:216
msgid ""
"Please enter a valid color in the \"Featured News Excerpt Color\" field."
msgstr ""
"Per favore inserisci un colore valido nel campo \"Colore Excerpt Featured "
"News\"."

#: ../admin/view/tickers.php:222
msgid "Please enter a valid color in the \"Sliding News Color\" field."
msgstr ""
"Per favore inserici un valore valido nel campo \"Colore Sliding News\"."

#: ../admin/view/tickers.php:228
msgid "Please enter a valid color in the \"Sliding News Color Hover\" field."
msgstr ""
"Per favore inserisci un colore valido nel campo \"Colore Sliding News Hover"
"\"."

#: ../admin/view/tickers.php:234
msgid "Please enter a valid color in the \"Clock Text Color\" field."
msgstr ""
"Per favore inserisci un colore valido nel campo \"Colore Testo Orologio\"."

#: ../admin/view/tickers.php:240
msgid ""
"Please enter a value included between 0 and 1 in the \"Featured News "
"Background Color Opacity\" field."
msgstr ""
"Per favore inserisci un valore incluso tra 0 e 1 nel campo \"Opacità Colore "
"di sfondo Featured News\"."

#: ../admin/view/tickers.php:252
msgid "A news ticker with \"Website\" as a target already exists."
msgstr "Un news ticker con \"Sito\" come target esiste già."

#: ../admin/view/tickers.php:275
msgid ""
"A news ticker with \"URL\" as a target and the same value in the URL field "
"already exists."
msgstr ""
"Un news ticker con \"URL\" come target e lo stesso valore nel campo \"URL\" "
"esiste già."

#: ../admin/view/tickers.php:411
msgid "The news ticker has been successfully updated."
msgstr "Il news ticker è stato aggiornato con successo."

#: ../admin/view/tickers.php:540
msgid "The news ticker has been successfully added."
msgstr "Il news ticker è stato aggiunto con successo."

#: ../admin/view/tickers.php:553
msgid "The transient has been successfully deleted."
msgstr "Il transiente è stato cancellato con successo."

#: ../admin/view/tickers.php:577
msgid "The news ticker has been successfully deleted."
msgstr "Il news ticker è stato cancellato con successo."

#: ../admin/view/tickers.php:607 ../admin/view/tickers.php:638
msgid "Live News - News Tickers"
msgstr "Live News - News Ticker"

#: ../admin/view/tickers.php:691 ../admin/view/tickers.php:770
#: ../admin/view/tickers.php:1399
msgid "Name"
msgstr "Nome"

#: ../admin/view/tickers.php:692 ../admin/view/tickers.php:773
#: ../admin/view/tickers.php:1402
msgid "The name of the news ticker."
msgstr "Il nome del news ticker."

#: ../admin/view/tickers.php:695 ../admin/view/tickers.php:779
#: ../admin/view/tickers.php:1408
msgid "Target"
msgstr "Target"

#: ../admin/view/tickers.php:696
msgid "The target of the news ticker."
msgstr "Il target del news ticker."

#: ../admin/view/tickers.php:699 ../admin/view/tickers.php:811
#: ../admin/view/tickers.php:819 ../admin/view/tickers.php:1440
#: ../admin/view/tickers.php:1448
msgid "Source"
msgstr "Sorgente"

#: ../admin/view/tickers.php:700
msgid "The source of the news ticker."
msgstr "La sorgente del news ticker."

#: ../admin/view/tickers.php:762
msgid "Edit News Ticker"
msgstr "Modifica News Ticker"

#: ../admin/view/tickers.php:782 ../admin/view/tickers.php:1411
msgid "Website"
msgstr "Sito"

#: ../admin/view/tickers.php:785 ../admin/view/tickers.php:1414
msgid ""
"This selection determines if the news ticker should be applied to the entire "
"website or to a specific URL. Note that a news ticker associated with an URL "
"has the priority over the news ticker associated with the entire website."
msgstr ""
"Questa selezione determina se il news ticker deve essere applicato "
"all'intero sito or ad uno specifico URL. Nota che un news ticker associato "
"ad un URL ha la priorità sul news ticker associato all'intero sito."

#: ../admin/view/tickers.php:791
msgid "Target URL"
msgstr "Target URL"

#: ../admin/view/tickers.php:794 ../admin/view/tickers.php:1423
msgid ""
"Enter the URL where the news ticker should be applied. This option is used "
"only if the target of the news ticker is \"URL\"."
msgstr ""
"Inserisci l'URL dove il news ticker deve essere applicato. Questa opzione è "
"utilizzata solo se il target del news ticker è \"URL\"."

#: ../admin/view/tickers.php:800 ../admin/view/tickers.php:1429
msgid "Enable Ticker"
msgstr "Abilita Ticker"

#: ../admin/view/tickers.php:806 ../admin/view/tickers.php:1435
msgid "Use this option to enable or disable the news ticker on the front-end."
msgstr ""
"Utilizza questa opzione per abilitare o disabilitare il news ticker nel "
"front-end."

#: ../admin/view/tickers.php:822 ../admin/view/tickers.php:1451
#: ../shared/class-daln-shared.php:86
msgid "Manually Added"
msgstr "Aggiunte Manualmente"

#: ../admin/view/tickers.php:823 ../admin/view/tickers.php:1452
#: ../shared/class-daln-shared.php:91
msgid "Posts"
msgstr "Articoli"

#: ../admin/view/tickers.php:824 ../admin/view/tickers.php:1453
#: ../shared/class-daln-shared.php:96
msgid "RSS"
msgstr "RSS"

#: ../admin/view/tickers.php:825 ../admin/view/tickers.php:1454
#: ../shared/class-daln-shared.php:101
msgid "Twitter"
msgstr "Twitter"

#: ../admin/view/tickers.php:827 ../admin/view/tickers.php:1456
msgid ""
"This option determines where the news displayed in the news ticker are "
"retrieved. Please note that with the \"Twitter\" source the news are "
"displayed only in the sliding news area."
msgstr ""
"Questa opzione determina dove vengono recuperate le news mostrate nel news "
"ticker. Per favore nota che con la sorgente \"Twitter\" le news sono "
"mostrate solamente nell'area delle sliding news."

#: ../admin/view/tickers.php:833 ../admin/view/tickers.php:1462
msgid "Category"
msgstr "Categoria"

#: ../admin/view/tickers.php:850 ../admin/view/tickers.php:1479
msgid ""
"Select if the news should be retrieved from all the posts or only from the "
"posts of a specific category. This option is used only if the source of the "
"news ticker is \"Posts\"."
msgstr ""
"Scegli se le news devono essere recuperate da tutti gli articoli o dagli "
"articoli di una specifica categoria. Questa opzione è utilizzata solamente "
"se la sorgente del news ticker è \"Articoli\"."

#: ../admin/view/tickers.php:856 ../admin/view/tickers.php:1485
msgid "Source RSS"
msgstr "Sorgente RSS"

#: ../admin/view/tickers.php:859 ../admin/view/tickers.php:1488
msgid ""
"Enter the RSS Feed used to generate the news. This option is used only if "
"the source of the news ticker is \"RSS\"."
msgstr ""
"Inserisci il Feed RSS utilizzato per generare le news. Questa opzione è "
"utilizzata solamente se la sorgente del news ticker è \"RSS\"."

#: ../admin/view/tickers.php:865 ../admin/view/tickers.php:1494
msgid "Twitter Username"
msgstr "Twitter Username"

#: ../admin/view/tickers.php:868 ../admin/view/tickers.php:1497
msgid ""
"Enter the Twitter username for which you want to retrieve the tweets. This "
"option is used only if the source of the news ticker is \"Twitter\"."
msgstr ""
"Inserisci Il Twitter Username per il quale vuoi recuperare i tweet. Questa "
"opzione è utilizzata solamente se la sorgente delle news è \"Twitter\"."

#: ../admin/view/tickers.php:874 ../admin/view/tickers.php:1503
msgid "Twitter Oauth Access Token"
msgstr "Twitter Oauth Access Token"

#: ../admin/view/tickers.php:877 ../admin/view/tickers.php:1506
msgid ""
"Enter your Twitter Oauth Access Token. This token is available in the \"Keys "
"and Access Token\" section of the Twitter App. This option is used only if "
"the source of the news ticker is \"Twitter\"."
msgstr ""
"Inserisci il tuo Twitter Oauth Access Token. Questo token è disponibile "
"nella sezione \"Keys and Access Token\" della Twitter App. Questa opzione è "
"utilizzata solamente se la sorgente delle news è \"Twitter\"."

#: ../admin/view/tickers.php:883 ../admin/view/tickers.php:1512
msgid "Twitter Oauth Access Token Secret"
msgstr "Twitter Oauth Access Token Secret"

#: ../admin/view/tickers.php:886 ../admin/view/tickers.php:1515
msgid ""
"Enter your Twitter Oauth Access Token Secret. This token is available in the "
"\"Keys and Access Token\" section of the Twitter App. This option is used "
"only if the source of the news ticker is \"Twitter\"."
msgstr ""
"Inserisci il tuo Twitter Oauth Access Token Secret. Questo token è "
"disponibile nella sezione \"Keys and Access Token\" della Twitter App. "
"Questa opzione è utilizzata solamente se la sorgente del news ticker è "
"\"Twitter\"."

#: ../admin/view/tickers.php:892 ../admin/view/tickers.php:1521
msgid "Twitter Consumer Key"
msgstr "Twitter Consumer Key"

#: ../admin/view/tickers.php:895 ../admin/view/tickers.php:1524
msgid ""
"Enter your Twitter Consumer Key. This key is available in the \"Keys and "
"Access Token\" section of the Twitter App. This option is used only if the "
"source of the news ticker is \"Twitter\"."
msgstr ""
"Inserisci la tua Twitter Consumer Key. Questa chiave è disponibile nella "
"sezione \"Keys and Access Token\" della Twitter App. Questa opzione è "
"utilizzata solamente se la sorgente delle news è \"Twitter\"."

#: ../admin/view/tickers.php:901 ../admin/view/tickers.php:1530
msgid "Twitter Consumer Secret"
msgstr "Twitter Consumer Secret"

#: ../admin/view/tickers.php:904 ../admin/view/tickers.php:1533
msgid ""
"Enter your Twitter Consumer Secret. This key is available in the \"Keys and "
"Access Token\" section of the Twitter App. This option is used only if the "
"source of the news ticker is \"Twitter\"."
msgstr ""
"Inserisci la tua Twitter Consumer Secret. Questa chiave è disponibile nella "
"sezione \"Keys and Access Token\" della Twitter App. Questa opzione è "
"utilizzata solamente se la sorgente delle news è \"Twitter\"."

#: ../admin/view/tickers.php:910 ../admin/view/tickers.php:1539
msgid "Twitter Strip Links"
msgstr "Twitter Rimuovi Link"

#: ../admin/view/tickers.php:916 ../admin/view/tickers.php:1545
msgid ""
"This option determines if the links should be removed from the imported "
"tweets. This option is used only if the source of the news ticker is "
"\"Twitter\"."
msgstr ""
"Questa opzione determina se i link devono essere rimossi dai tweet "
"importati. Questa opzione è utilizzata solamente se la sorgente delle news è "
"\"Twitter\"."

#: ../admin/view/tickers.php:922 ../admin/view/tickers.php:1551
msgid "Twitter Strip Hashtags"
msgstr "Twitter Rimuovi Hastag"

#: ../admin/view/tickers.php:928 ../admin/view/tickers.php:1557
msgid ""
"This option determines if the hashtags should be removed from the imported "
"tweets. This option is used only if the source of the news ticker is "
"\"Twitter\"."
msgstr ""
"Questa opzione determina se gli hashtag devono essere rimossi dai tweet "
"importati. Questa opzione è utilizzata solamente se la sorgente delle news è "
"\"Twitter\"."

#: ../admin/view/tickers.php:934 ../admin/view/tickers.php:1563
msgid "Twitter Strip Usernames"
msgstr "Twitter Rimuovi Username"

#: ../admin/view/tickers.php:940 ../admin/view/tickers.php:1569
msgid ""
"This option determines if the usernames should be removed from the imported "
"tweets. This option is used only if the source of the news ticker is "
"\"Twitter\"."
msgstr ""
"Questa opzione determina se gli username devono essere rimossi dai tweet "
"importati. Questa opzione è utilizzata solamente se la sorgente delle news è "
"\"Twitter\"."

#: ../admin/view/tickers.php:946 ../admin/view/tickers.php:1575
msgid "Clock Source"
msgstr "Sorgente Orologio"

#: ../admin/view/tickers.php:949 ../admin/view/tickers.php:1578
msgid "Server Time"
msgstr "Orario Server"

#: ../admin/view/tickers.php:950 ../admin/view/tickers.php:1579
msgid "User Time"
msgstr "Orario Utente"

#: ../admin/view/tickers.php:952
msgid ""
"Select if the time should be based on the server time or on the user time."
msgstr ""
"Scegli se l'orario deve essere basato sull'ora del server o su quella "
"dell'utente."

#: ../admin/view/tickers.php:958 ../admin/view/tickers.php:1587
msgid "Clock Offset"
msgstr "Offset Orologio"

#: ../admin/view/tickers.php:961 ../admin/view/tickers.php:1590
msgid "The clock offset in seconds. Positive or negative values are allowed."
msgstr ""
"L'offset dell'orologio in secondi. Sono permessi sia valori positivi che "
"negativi."

#: ../admin/view/tickers.php:967 ../admin/view/tickers.php:1596
msgid "Clock Format"
msgstr "Formato Orologio"

#: ../admin/view/tickers.php:970 ../admin/view/tickers.php:1599
msgid ""
"Use this field to specify the clock format. The tokens supported by Moment."
"js should be used."
msgstr ""
"Utilizza questo campo per specificare il formato dell'orologio. Devono "
"essere utilizzati I token supportati da Moment.js."

#: ../admin/view/tickers.php:975 ../admin/view/tickers.php:1604
msgid "Behavior"
msgstr "Comportamento"

#: ../admin/view/tickers.php:983 ../admin/view/tickers.php:1612
msgid "Enable RTL Layout"
msgstr "Abilita Layout RTL"

#: ../admin/view/tickers.php:989 ../admin/view/tickers.php:1618
msgid "Select whether to enable or not the RTL layout."
msgstr "Scegli se abilitare o meno il layout RTL."

#: ../admin/view/tickers.php:995 ../admin/view/tickers.php:1624
msgid "Enable with Mobile Devices"
msgstr "Abilita con Dispositivi Mobili"

#: ../admin/view/tickers.php:1001 ../admin/view/tickers.php:1630
msgid ""
"Select whether to display or not the news ticker with mobile devices. The "
"user-agent string combined with specific HTTP headers are used to determine "
"the device."
msgstr ""
"Scegli se mostrare o meno il news ticker con i dispositivi mobili. La "
"stringa dell'user-agent combinata con specifiche HTTP headers sono "
"utilizzate per determinare il tipo di device."

#: ../admin/view/tickers.php:1007 ../admin/view/tickers.php:1636
msgid "Hide Featured News"
msgstr "Nascondi Featured News"

#: ../admin/view/tickers.php:1012 ../admin/view/tickers.php:1641
msgid "Only with Mobile Devices"
msgstr "Solo con dispositivi mobili"

#: ../admin/view/tickers.php:1014 ../admin/view/tickers.php:1643
msgid ""
"Select if the featured news area of the news ticker should be displayed."
msgstr "Scegli se l'area featured news del news ticker deve essere mostrata."

#: ../admin/view/tickers.php:1020 ../admin/view/tickers.php:1649
msgid "Open News as Default"
msgstr "Apri News come Default"

#: ../admin/view/tickers.php:1026 ../admin/view/tickers.php:1655
msgid ""
"Select if the news ticker should be presented in the open status (with the "
"featured news area visible) to the users. If the user opens or closes the "
"news ticker the new status will be saved in a cookie and used to determine "
"the default status of the news ticker for that specific user."
msgstr ""
"Scegli se il news ticker deve essere presentato nello stato di aperto (con "
"l'area featured news visibile) agli utenti. Se un utente apre o chiude il "
"news ticker il nuovo stato verrà salvato in un cookie ed utilzzato per "
"determinare lo stato predefinito del news ticker per quello specifico utente."

#: ../admin/view/tickers.php:1032 ../admin/view/tickers.php:1661
msgid "Enable Links"
msgstr "Abilita Link"

#: ../admin/view/tickers.php:1038 ../admin/view/tickers.php:1667
msgid ""
"Whether to apply or not the links associated with the news on the featured "
"news title and on the sliding news."
msgstr ""
"Se applicare o no i link associati alle news sul titolo della featured news "
"e sulle sliding news."

#: ../admin/view/tickers.php:1044 ../admin/view/tickers.php:1673
msgid "Open Links in New Tab"
msgstr "Apri Link in Nuova Tab"

#: ../admin/view/tickers.php:1050 ../admin/view/tickers.php:1679
msgid ""
"Select if the links availble in the news ticker should be opened in a new "
"tab."
msgstr ""
"Scegli se i link disponibilii nel news ticker devono essere aperti in una "
"nuova tab."

#: ../admin/view/tickers.php:1056 ../admin/view/tickers.php:1685
msgid "Hide Clock"
msgstr "Nascondi Orologio"

#: ../admin/view/tickers.php:1062 ../admin/view/tickers.php:1691
msgid "Select whether to display or not the clock."
msgstr "Scegli se mostrare o meno l'orologio."

#: ../admin/view/tickers.php:1068 ../admin/view/tickers.php:1697
msgid "Clock Autoupdate"
msgstr "Autoaggiornamento Orologio"

#: ../admin/view/tickers.php:1074 ../admin/view/tickers.php:1703
msgid ""
"Select whether to autoupdate or not the clock independently from the cycles "
"of news received. This option is applied only if the source of the clock is "
"\"User Time\"."
msgstr ""
"Scegli se autoaggiornare o meno l'orologio indipendentemente dai cicli di "
"news ricevuti. Questa opzione verrà applicata solamente se la sorgente "
"dell'orologio è \"Orario Utente\"."

#: ../admin/view/tickers.php:1080 ../admin/view/tickers.php:1709
msgid "Clock Autoupdate Time"
msgstr "Tempo Autoaggiornamento Orologio"

#: ../admin/view/tickers.php:1083 ../admin/view/tickers.php:1712
msgid ""
"This option determines how frequent should be the clock autoupdate in "
"seconds."
msgstr ""
"Questa opzione determina quanto frequentemente deve autoaggiornarsi "
"l'orologio."

#: ../admin/view/tickers.php:1089 ../admin/view/tickers.php:1718
msgid "Number of Sliding News"
msgstr "Numero di Sliding News"

#: ../admin/view/tickers.php:1092 ../admin/view/tickers.php:1721
msgid ""
"Enter the number of sliding news that you want to display in a single cycle "
"of news."
msgstr ""
"Inserisci il numero di sliding news che vuoi fare apparire in un singolo "
"ciclo di news."

#: ../admin/view/tickers.php:1098 ../admin/view/tickers.php:1727
msgid "Sliding Speed"
msgstr "Velocità Sliding"

#: ../admin/view/tickers.php:1101 ../admin/view/tickers.php:1730
msgid ""
"Enter the speed of the sliding news. Values included between 1 and 10 are "
"allowed."
msgstr ""
"Inserisci la velocità delle sliding news. Sono permessi valori compresi tra "
"1 e 10."

#: ../admin/view/tickers.php:1107 ../admin/view/tickers.php:1736
msgid "Sliding Delay"
msgstr "Ritardo Sliding"

#: ../admin/view/tickers.php:1110 ../admin/view/tickers.php:1739
msgid "The delay of the sliding news in milliseconds."
msgstr "Il ritardo delle sliding news in millisecondi."

#: ../admin/view/tickers.php:1115 ../admin/view/tickers.php:1744
msgid "Performance"
msgstr "Performance"

#: ../admin/view/tickers.php:1123 ../admin/view/tickers.php:1752
msgid "Cached Cycles"
msgstr "Cicli in Cache"

#: ../admin/view/tickers.php:1126 ../admin/view/tickers.php:1755
msgid ""
"This value determines the number of cycles performed by the news ticker "
"without updating the news. Set an high value to improve the news ticker "
"performance and to avoid an excessive load on the web server. Set a low "
"value to have frequent updates of the news. Set 0 to update the news at "
"every cycle."
msgstr ""
"Questo valore determina il numero di cicli effettuati dal news ticker senza "
"aggiornare le news. Imposta un valore alto per migliorare le performance del "
"news ticker e per evitare di caricare eccessivamente il web server. Imposta "
"un valore basso per avere aggiornamenti frequenti delle news. Imposta a 0 "
"per aggiornare le news ad ogni ciclo."

#: ../admin/view/tickers.php:1132 ../admin/view/tickers.php:1761
msgid "Transient Expiration"
msgstr "Scadenza Transiente"

#: ../admin/view/tickers.php:1135 ../admin/view/tickers.php:1764
msgid ""
"Enter the transient expiration in seconds. Set an high value to improve the "
"news ticker performance and to avoid an excessive load on the web server. "
"Set a low value to have frequent updates of the news. Set 0 to not use a "
"transient."
msgstr ""
"Inserisci la scadenza del transiente in secondi. Imposta un valore alto per "
"migliorare le performance del news ticker e per evitare di caricare "
"eccessivamente il web server. Imposta un valore basso per avere "
"aggiornamenti frequenti delle news. Imposta a 0 per aggiornare le news ad "
"ogni ciclo."

#: ../admin/view/tickers.php:1140 ../admin/view/tickers.php:1769
msgid "Style"
msgstr "Stile"

#: ../admin/view/tickers.php:1148 ../admin/view/tickers.php:1777
msgid "Featured News Title Maximum Length"
msgstr "Lunghezza Massima Featured News"

#: ../admin/view/tickers.php:1151 ../admin/view/tickers.php:1780
msgid "The maximum length of the featured news title."
msgstr "Lunghezza massima titolo featured news."

#: ../admin/view/tickers.php:1157 ../admin/view/tickers.php:1786
msgid "Featured News Excerpt Maximum Length"
msgstr "Lunghezza Massima Excerpt Featured News"

#: ../admin/view/tickers.php:1160 ../admin/view/tickers.php:1789
msgid "The maximum length of the featured news excerpt."
msgstr "La lunghezza massima dell'excerpt delle featured news."

#: ../admin/view/tickers.php:1166 ../admin/view/tickers.php:1795
msgid "Sliding News Maximum Length"
msgstr "Lunghezza Massima Sliding News"

#: ../admin/view/tickers.php:1169 ../admin/view/tickers.php:1798
msgid "The maximum length of the sliding news."
msgstr "La lunghezza massima delle sliding news."

#: ../admin/view/tickers.php:1175 ../admin/view/tickers.php:1804
msgid "Featured News Title Font Size"
msgstr "Dimensione Font Titolo Featured News"

#: ../admin/view/tickers.php:1178 ../admin/view/tickers.php:1807
msgid "The font size of the featured news title."
msgstr "La dimensione del font del titolo delle featured news."

#: ../admin/view/tickers.php:1184 ../admin/view/tickers.php:1813
msgid "Featured News Excerpt Font Size"
msgstr "Dimensione Font Excerpt Featured News"

#: ../admin/view/tickers.php:1187 ../admin/view/tickers.php:1816
msgid "The font size of the featured news excerpt."
msgstr "La dimensione del font dell'excerpt della featured news."

#: ../admin/view/tickers.php:1193 ../admin/view/tickers.php:1822
msgid "Sliding News Font Size"
msgstr "Dimensione Font Sliding News"

#: ../admin/view/tickers.php:1196 ../admin/view/tickers.php:1825
msgid "The font size of the sliding news."
msgstr "La dimensione del font delle sliding news."

#: ../admin/view/tickers.php:1202 ../admin/view/tickers.php:1831
msgid "Clock Font Size"
msgstr "Dimensione Font Orologio"

#: ../admin/view/tickers.php:1205 ../admin/view/tickers.php:1834
msgid "The font size of the text in the clock."
msgstr "La dimensione del font del testo dell'orologio."

#: ../admin/view/tickers.php:1211 ../admin/view/tickers.php:1840
msgid "Sliding News Margin"
msgstr "Margine Sliding News"

#: ../admin/view/tickers.php:1214 ../admin/view/tickers.php:1843
msgid "The margin between the sliding news."
msgstr "Il margine tra le sliding news."

#: ../admin/view/tickers.php:1220 ../admin/view/tickers.php:1849
msgid "Sliding News Padding"
msgstr "Padding Sliding News"

#: ../admin/view/tickers.php:1223 ../admin/view/tickers.php:1852
msgid ""
"This option determines the padding on the left and on the right of each "
"sliding news and also the distance between the sliding news text and the "
"sliding news left and right images."
msgstr ""
"Questa opzione determina il padding alla sinistra ed alla destra di ogni "
"sliding news ed anche la distanza tra il testo della sliding news e "
"l'immagine sinistra e destra."

#: ../admin/view/tickers.php:1229 ../admin/view/tickers.php:1858
msgid "Font Family"
msgstr "Font Family"

#: ../admin/view/tickers.php:1232 ../admin/view/tickers.php:1861
msgid "The font family used for all the text displayed in the news ticker."
msgstr ""
"La font family utilizzata per tutti gli elementi di testo del news ticker"

#: ../admin/view/tickers.php:1238 ../admin/view/tickers.php:1867
msgid "Google Font"
msgstr "Google Font"

#: ../admin/view/tickers.php:1241 ../admin/view/tickers.php:1870
msgid "This option allows you to load a specific Google Font."
msgstr "Questa opzione permette di caricare uno specifico Google Font."

#: ../admin/view/tickers.php:1247 ../admin/view/tickers.php:1876
msgid "Featured News Title Color"
msgstr "Colore Titolo Featured News"

#: ../admin/view/tickers.php:1250 ../admin/view/tickers.php:1879
msgid "The color of the featured news title."
msgstr "Il colore del titolo delle featured news."

#: ../admin/view/tickers.php:1256 ../admin/view/tickers.php:1885
msgid "Featured News Title Color Hover"
msgstr "Colore Titolo Featured News Hover"

#: ../admin/view/tickers.php:1259 ../admin/view/tickers.php:1888
msgid "The color of the featured news title in hover status."
msgstr "Il colore del titolo delle featured news in stato di hover."

#: ../admin/view/tickers.php:1265 ../admin/view/tickers.php:1894
msgid "Featured News Excerpt Color"
msgstr "Colore Excerpt Featured News"

#: ../admin/view/tickers.php:1268 ../admin/view/tickers.php:1897
msgid "The color of the featured news excerpt."
msgstr "Il colore dell'excerpt delle featured news."

#: ../admin/view/tickers.php:1274 ../admin/view/tickers.php:1903
msgid "Sliding News Color"
msgstr "Colore Sliding News"

#: ../admin/view/tickers.php:1277 ../admin/view/tickers.php:1906
msgid "The color of the sliding news."
msgstr "Il colore delle sliding news."

#: ../admin/view/tickers.php:1283 ../admin/view/tickers.php:1912
msgid "Sliding News Color Hover"
msgstr "Colore Sliding News Hover"

#: ../admin/view/tickers.php:1286 ../admin/view/tickers.php:1915
msgid "The color of the sliding news in hover status."
msgstr "Il colore delle sliding news in stato di hover."

#: ../admin/view/tickers.php:1292 ../admin/view/tickers.php:1921
msgid "Clock Text Color"
msgstr "Colore Testo Orologio"

#: ../admin/view/tickers.php:1295 ../admin/view/tickers.php:1924
msgid "The color of the text displayed in the clock."
msgstr "Il colore del testo mostrato nell'orologio."

#: ../admin/view/tickers.php:1301 ../admin/view/tickers.php:1930
msgid "Featured News Background Color"
msgstr "Colore Sfondo Featured News"

#: ../admin/view/tickers.php:1304 ../admin/view/tickers.php:1933
msgid "The background color of the featured news area."
msgstr "Il colore di sfondo dell'area delle featured news."

#: ../admin/view/tickers.php:1310 ../admin/view/tickers.php:1939
msgid "Featured News Background Color Opacity"
msgstr "Opacità Colore Sfondo Featured News"

#: ../admin/view/tickers.php:1313 ../admin/view/tickers.php:1942
msgid "The background color opacity of the featured news area."
msgstr "L'opacità del colore di sfondo dell'area delle featured news."

#: ../admin/view/tickers.php:1319 ../admin/view/tickers.php:1948
msgid "Sliding News Background Color"
msgstr "Colore Sfondo Sliding News"

#: ../admin/view/tickers.php:1322 ../admin/view/tickers.php:1951
msgid "The background color of the sliding news area."
msgstr "Il colore di sfondo dell'area delle sliding news."

#: ../admin/view/tickers.php:1328 ../admin/view/tickers.php:1957
msgid "Sliding News Background Color Opacity"
msgstr "Opacità Colore Sfondo Sliding News"

#: ../admin/view/tickers.php:1331 ../admin/view/tickers.php:1960
msgid "The background color opacity of the sliding news area."
msgstr "L'opacità del colore di sfondo dell'area delle sliding news."

#: ../admin/view/tickers.php:1337 ../admin/view/tickers.php:1966
msgid "Open Button Image"
msgstr "Immagine Pulsante Apri"

#: ../admin/view/tickers.php:1344 ../admin/view/tickers.php:1973
msgid ""
"Select the image of the button used to open the news ticker. It's "
"recommended to use an image with a width of 80 pixels and a height of 40 "
"pixels."
msgstr ""
"Scegli l'immage del pulsante utilizzato per aprire il news ticker. E' "
"consigliato utilizzare una immagine con una larghezza di 80 pixel ed una "
"altezza di 40 pixel."

#: ../admin/view/tickers.php:1352 ../admin/view/tickers.php:1981
msgid "Close Button Image"
msgstr "Immagine Pulsante Chiudi"

#: ../admin/view/tickers.php:1359 ../admin/view/tickers.php:1988
msgid ""
"Select the image of the button used to close the news ticker. It's "
"recommended to use an image with a width of 80 pixels and a height of 40 "
"pixels."
msgstr ""
"Scegli l'immagine del pulsante utilizzato per chiudere il news ticker. E' "
"consigliato utilizzare una immagine con una larghezza di 80 pixel ed una "
"altezza di 40 pixel."

#: ../admin/view/tickers.php:1367 ../admin/view/tickers.php:1996
msgid "Clock Background Image"
msgstr "Immagine Sfondo Orologio"

#: ../admin/view/tickers.php:1374 ../admin/view/tickers.php:2003
msgid ""
"Select the background image of the clock. It's recommended to use an image "
"with a width of 80 pixels and a height of 40 pixels."
msgstr ""
"Scegli l'immagine di sfondo dell'orologio. E' consigliato utilizzare una "
"immagine con una larghezza di 80 pixel ed una altezza di 40 pixel."

#: ../admin/view/tickers.php:1384
msgid "Update News Ticker"
msgstr "Aggiorna News Ticker"

#: ../admin/view/tickers.php:1393
msgid "Create a News Ticker"
msgstr "Crea un News Ticker"

#: ../admin/view/tickers.php:1420
msgid " Target URL"
msgstr "Target URL"

#: ../admin/view/tickers.php:1581
msgid ""
"Select if the time should be based on the server time or on the user time. "
"Please note that by selecting \"Server Time\" the clock will be updated only "
"when the news are retrieved from the server, therefore this option should "
"not be used if you are caching cycles of news or if you are using transients."
msgstr ""
"Scegli se il tempo deve essere basato sull'orario del server o sull'orario "
"dell'utente. Per favore nota che scegliendo \"Orario Server\" l'orologio "
"verrà aggiornato solamente quando le news sono recuperate dal server, quindi "
"questa opzione non deve essere utilizzata se stai effettuando multipli cicli "
"con le stesse news o se stai utilizzando i transienti."

#: ../admin/view/tickers.php:1972 ../admin/view/tickers.php:1987
#: ../admin/view/tickers.php:2002
msgid "Remove image"
msgstr "Rimuovi Immagine"

#: ../admin/view/tickers.php:2013
msgid "Add News Ticker"
msgstr "Aggiungi News Ticker"

#~ msgid "The clock format."
#~ msgstr "Il formato dell'orologio."

#~ msgid "Custom Filter"
#~ msgstr "Filtro Personalizzato"

#~ msgid "Select the News Ticker"
#~ msgstr "Scegli il News Ticker"

#~ msgid "Apply Filter"
#~ msgstr "Applica Filtro"

#~ msgid "Tickers"
#~ msgstr "Tickers"

#~ msgid "LN - Tickers"
#~ msgstr "LN - Tickers"

#~ msgid "LN - Featured News"
#~ msgstr "LN - Featured News"

#~ msgid "LN - Sliding News"
#~ msgstr "LN - Sliding News"

#~ msgid "LN - Options"
#~ msgstr "LN - Opzioni"

#~ msgid "A custom name for the news ticker."
#~ msgstr "Un nome a scelta per il news ticker."

#~ msgid ""
#~ "Enter your Twitter Oauth Access Token Secret. This token is available in "
#~ "the &#34Keys and Access Token&#34 section of the Twitter App.he Twitter "
#~ "Oauth Access Token. This option is used only if the source of the news "
#~ "ticker is &#34Twitter&#34."
#~ msgstr ""
#~ "Inserisci il tuo Twitter Oauth Access Token Secret. Questo token è "
#~ "disponibile nella sezione \"Keys and Access Token\" della Twitter App. "
#~ "Questa opzione è utilizzata solamente se la sorgente delle news è "
#~ "\"Twitter\"."

#~ msgid "Breakpoint Based"
#~ msgstr "Basato su Breakpoint"

#~ msgid "Hide Featured News Breakpoint"
#~ msgstr "Nascondi Featured News Breakpoint"

#~ msgid ""
#~ "If the viewport width becomes smaller than this value (in pixels) the "
#~ "featured news area will not be displayed. This option is used only if the "
#~ "&#34Hide Featured News&#34 option is set to &#34Breakpoint Based&#34."
#~ msgstr ""
#~ "Se la larghezza della viewport diventa più piccola di questo valore (in "
#~ "pixel) l'area delle featured news non verrà mostrata. Questa opzione è "
#~ "utilizzata solamente se l'opzione \"Nascondi Featured News\" è impostata "
#~ "su \"Basato su Breakpoint\"."

#~ msgid ""
#~ "This selection determines if the news ticker should be applied to the "
#~ "entire website or to a specific URL. Note that a news ticker associated "
#~ "with an URL has always the priority over the news ticker associated with "
#~ "the entire website."
#~ msgstr ""
#~ "Questa selezione determina se il news ticker deve essere applicato "
#~ "all'intero sito o ad uno specifico URL. Nota che un news ticker associato "
#~ "con un URL ha sempre la priorità su un news ticker associato ad un intero "
#~ "sito."

#~ msgid "Enter the URL of the sliding news.."
#~ msgstr "Inserisci l'URL d"

#~ msgid "Enter the title of the sliding news.."
#~ msgstr "Inserisci il titolo della sliding news"
PK���[��Â'"'"shared/class-daln-shared.phpnu�[���<?php

/*
 * this class should be used to stores properties and methods shared by the
 * admin and public side of wordpress
 */
class Daln_Shared
{

    //regex
    public $hex_rgb_regex = '/^#(?:[0-9a-fA-F]{3}){1,2}$/';
    public $font_family_regex = '/^([A-Za-z0-9-\'", ]*)$/';
    public $url_regex = '/^(http|https):\/\/[-A-Za-z0-9+&@#\/%?=~_|$!:,.;]+$/';
    public $regex_capability = '/^\s*[A-Za-z0-9_]+\s*$/';

    protected static $instance = null;

    private $data = array();

    private function __construct()
    {

        //Set plugin textdomain
        load_plugin_textdomain('daln', false, 'live-news/lang/');
        
        $this->data['slug'] = 'daln';
        $this->data['ver'] = '2.09';
        $this->data['dir'] = substr(plugin_dir_path(__FILE__), 0, -7);
        $this->data['url'] = substr(plugin_dir_url(__FILE__), 0, -7);

    }

    public static function get_instance()
    {

        if (null == self::$instance) {
            self::$instance = new self;
        }

        return self::$instance;

    }

    //retrieve data
    public function get($index)
    {
        return $this->data[$index];
    }

    /*
     * Convert a numeric target to a textual target
     *
     * @param $target_id int
     * @return string
     */
    public function get_textual_target($target_id){

        switch($target_id){

            case 1:

                return 'Website';
                break;

            case 2:

                return 'URL';
                break;

        }

    }

    /*
     * Convert a numeric source to a textual source
     *
     * @param $source_id int
     * @return string
     */
    public function get_textual_source($source_id){

        switch($source_id){

            case 1:

                return __('Manually Added', 'daln');
                break;

            case 2:

                return __('Posts', 'daln');
                break;

            case 3:

	            return __('RSS', 'daln');
	            break;

            case 4:

	            return __('Twitter', 'daln');
	            break;

        }

    }

    /*
     * Retrieve the ticker name from the ticker id
     *
     * @param $ticker_id int
     * @return string
     */
    public function get_textual_ticker($ticker_id){

        global $wpdb;
        $table_name = $wpdb->prefix . $this->get('slug') . "_tickers";
        $safe_sql = $wpdb->prepare("SELECT name FROM $table_name WHERE id = %d ", $ticker_id);
        $ticker_obj = $wpdb->get_row($safe_sql);

        if($ticker_obj !== NULL){
            return $ticker_obj->name;
        }else{
            return 'Invalid Ticker ID';
        }

    }

    /*
     * Generate a short version of a string without truncating words
     *
     * @param $str The string
     * @param $length The maximum length of the string
     * @return string The short version of the string
     */
    public function strlen_no_truncate( $str, $length ){

        if (mb_strlen($str) > $length){
            $str = wordwrap($str, $length);
            $str = mb_substr($str, 0, mb_strpos($str, "\n"));
            $str = $str . ' ...';
        }

        return $str;

    }

    /*
     * Returns true if the ticker is used in sliding news or in featured news
     *
     * @param $ticker_id int
     * @return bool True if the ticker is used or False if the ticker is not used
     */
    public function ticker_is_used($ticker_id){

        global $wpdb;

        //verify if the ticker is used in the featured news
        $table_name = $wpdb->prefix . $this->get('slug') . "_featured_news";
        $safe_sql = $wpdb->prepare("SELECT COUNT(*) FROM $table_name WHERE ticker_id = %d", $ticker_id);
        $number_of_uses = $wpdb->get_var($safe_sql);
        if($number_of_uses > 0){return true;}

        //verify if the ticker is used in the sliding news
        $table_name = $wpdb->prefix . $this->get('slug') . "_sliding_news";
        $safe_sql = $wpdb->prepare("SELECT COUNT(*) FROM $table_name WHERE ticker_id = %d", $ticker_id);
        $number_of_uses = $wpdb->get_var($safe_sql);
        if($number_of_uses > 0){return true;}

        return false;

    }

    /*
     * Given a ticker id returns true if the ticker exists or false if the ticker doesn't exist
     *
     * @param $ticker_id int
     * @return bool True if the ticker exists or False if the ticker doesn't exists
     */
    public function ticker_exists($ticker_id){

        global $wpdb;

        $table_name = $wpdb->prefix . $this->get('slug') . "_tickers";
        $safe_sql = $wpdb->prepare("SELECT * FROM $table_name WHERE id = %d", $ticker_id);
        $ticker_obj = $wpdb->get_row($safe_sql);
        if($ticker_obj !== NULL){
            return true;
        }else{
            return false;
        }

    }

    /*
     * Given an hexadecimal rgb color an array with the 3 components converted in decimal is returned
     *
     * @param string The hexadecimal rgb color
     * @return array An array with the 3 component of the color converted in decimal
     */
    public function rgb_hex_to_dec($hex)
    {

        if (mb_strlen($hex) == 3) {
            $r = hexdec(substr($hex, 0, 1) . substr($hex, 0, 1));
            $g = hexdec(substr($hex, 1, 1) . substr($hex, 1, 1));
            $b = hexdec(substr($hex, 2, 1) . substr($hex, 2, 1));
        } else {
            $r = hexdec(substr($hex, 0, 2));
            $g = hexdec(substr($hex, 2, 2));
            $b = hexdec(substr($hex, 4, 2));
        }

        return array(
            'r' => $r,
            'g' => $g,
            'b' => $b
        );

    }

    /*
     * Get the number of tickers
     *
     * @return int The number of tickers
     */
    public function get_number_of_tickers(){

        global $wpdb;
        $table_name = $wpdb->prefix . $this->get('slug') . "_tickers";
        $number_of_tickers = $wpdb->get_var("SELECT COUNT(*) FROM $table_name");

        return $number_of_tickers;

    }

    /*
     * Get the number of featured news
     *
     * @return int The number of featured news
     */
    public function get_number_of_featured_news(){

        global $wpdb;
        $table_name = $wpdb->prefix . $this->get('slug') . "_featured_news";
        $number_of_featured_news = $wpdb->get_var("SELECT COUNT(*) FROM $table_name");

        return $number_of_featured_news;

    }

    /*
     * Get the number of sliding news
     *
     * @return int The number of sliding news
     */
    public function get_number_of_sliding_news(){

        global $wpdb;
        $table_name = $wpdb->prefix . $this->get('slug') . "_sliding_news";
        $number_of_sliding_news = $wpdb->get_var("SELECT COUNT(*) FROM $table_name");

        return $number_of_sliding_news;

    }

    /*
     * Based on the selected option this method is used to remove the following elements included in a tweet:
     *
     * - links
     * - hashtags
     * - usernames
     *
     * @param $tweet string The tweet
     * @param $strip_links bool Whether to strip links
     * @param $strip_hashtags bool Whether to strip hashtags
     * @param $strip_usernames bool Whether to strip usernames
     *
     * @return string The tweet with the elements removed
     */
    public function twitter_remove_elements($tweet, $strip_links, $strip_hashtags, $strip_usernames){

        //strip links (generic url regex which allows almost any url)
        if($strip_links){
            $tweet = preg_replace('/(https?|ftp|file):\/\/[^\s]+/', '', $tweet );
        }

        //strip hashtags
        if($strip_hashtags){
            $tweet = preg_replace('/#[a-zA-Z_]{1}[a-zA-Z0-9_]*/', '', $tweet );
        }

        //strip usernames
	    if($strip_usernames){
		    $tweet = preg_replace('/@[a-zA-Z0-9_]{1,15}/', '', $tweet );
	    }

        return $tweet;

    }

    /*
     * Get the current URL with the method specified with the "Detect URL Mode" option
     */
    public function get_current_url(){

        if(get_option($this->get('slug') . '_detect_url_mode') === 'server_variable'){

            //Detect the URL using the "Server Variable" method
            return is_ssl() ? 'https' : 'http' . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

        }else{

            //Detect the URL using the "WP Request" method
            global $wp;
            return trailingslashit(home_url(add_query_arg(array(),$wp->request)));

        }

    }

}PK���[�l�GG
uninstall.phpnu�[���<?php

//exit if this file is called outside wordpress
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) { die(); }

require_once( plugin_dir_path( __FILE__ ) . 'shared/class-daln-shared.php' );
require_once( plugin_dir_path( __FILE__ ) . 'admin/class-daln-admin.php' );

//delete options and tables
Daln_Admin::un_delete();
PK|��[����2p2pdoc/general_information.htmlnu�[���PK|��[��{\��3~pdoc/assets/blueprint-css/plugins/buttons/screen.cssnu�[���PK|��[ `ش��6�xdoc/assets/blueprint-css/plugins/buttons/icons/key.pngnu�[���PK|��[9!�7�zdoc/assets/blueprint-css/plugins/buttons/icons/tick.pngnu�[���PK|��[�q����8b}doc/assets/blueprint-css/plugins/buttons/icons/cross.pngnu�[���PK|��[����3Y�doc/assets/blueprint-css/plugins/buttons/readme.txtnu�[���PK|��[��{IPP6U�doc/assets/blueprint-css/plugins/link-icons/screen.cssnu�[���PK|��[�^���>�doc/assets/blueprint-css/plugins/link-icons/icons/external.pngnu�[���PK|��[�-�OO9yAdoc/assets/blueprint-css/plugins/link-icons/icons/pdf.pngnu�[���PK|��[��W/��:1Ddoc/assets/blueprint-css/plugins/link-icons/icons/feed.pngnu�[���PK|��[�/����8NGdoc/assets/blueprint-css/plugins/link-icons/icons/im.pngnu�[���PK|��[�V�n		9�Jdoc/assets/blueprint-css/plugins/link-icons/icons/doc.pngnu�[���PK|��[Q���9
Ndoc/assets/blueprint-css/plugins/link-icons/icons/xls.pngnu�[���PK|��[h B����=
Qdoc/assets/blueprint-css/plugins/link-icons/icons/visited.pngnu�[���PK|��[_x����;	doc/assets/blueprint-css/plugins/link-icons/icons/email.pngnu�[���PK|��[����6�doc/assets/blueprint-css/plugins/link-icons/readme.txtnu�[���PK|��[<�U}}/doc/assets/blueprint-css/plugins/rtl/screen.cssnu�[���PK|��[�TƚGG/�doc/assets/blueprint-css/plugins/rtl/readme.txtnu�[���PK|��[��t�rr6�!doc/assets/blueprint-css/plugins/fancy-type/screen.cssnu�[���PK|��[�|TT6u*doc/assets/blueprint-css/plugins/fancy-type/readme.txtnu�[���PK|��[�;!0!0#/,doc/assets/blueprint-css/screen.cssnu�[���PK|��[[Y�H"�\doc/assets/blueprint-css/print.cssnu�[���PK|��[g0�ppbdoc/assets/blueprint-css/ie.cssnu�[���PK}��[���xII&�idoc/assets/blueprint-css/src/print.cssnu�[���PK}��[r��??&rqdoc/assets/blueprint-css/src/forms.cssnu�[���PK}��[�r|X55&ydoc/assets/blueprint-css/src/reset.cssnu�[���PK}��[g-��

#�}doc/assets/blueprint-css/src/ie.cssnu�[���PK}��[\�t�JJ+��doc/assets/blueprint-css/src/typography.cssnu�[���PK}��[|�芡�%��doc/assets/blueprint-css/src/grid.pngnu�[���PK}��[[(�1�&�&%��doc/assets/blueprint-css/src/grid.cssnu�[���PK}��[��ڴ4�4�class-daln-ajax.phpnu�[���PK}��[�|h/����Licensing/README_License.txtnu�[���PK}��[�-�l�9�9��Licensing/GPL.txtnu�[���PK}��[X������	.admin/view/sliding.phpnu�[���PK}��[ST�P���admin/view/tickers.phpnu�[���PK}��[��a�a���admin/view/error_lognu�[���PK}��[J���@admin/view/options.phpnu�[���PK}��[��ے�I�I�Eadmin/view/featured.phpnu�[���PK}��[n�o�����admin/class-daln-admin.phpnu�[���PK}��[JZa�$�$#Ladmin/inc/class-daln-pagination.phpnu�[���PK���[�-��� 68admin/assets/js/menu-featured.jsnu�[���PK���[�d!��&U9admin/assets/js/chosen-init-options.jsnu�[���PK���[���|??0:admin/assets/js/menu-sliding.jsnu�[���PK���[K��DSS'�?admin/assets/js/chosen-init-featured.jsnu�[���PK���[K��DSS&h@admin/assets/js/chosen-init-sliding.jsnu�[���PK���[�쀷XX&Aadmin/assets/js/chosen-init-tickers.jsnu�[���PK���[�1�=
=
!�Badmin/assets/js/media-uploader.jsnu�[���PK���[	z�Ө�)MMadmin/assets/js/jquery-ui-tooltip-init.jsnu�[���PK���[�f��'NNadmin/assets/js/wp-color-picker-init.jsnu�[���PK���[Pf��8Oadmin/assets/js/menu-tickers.jsnu�[���PK���[q�d�� �Radmin/assets/img/trash-hover.pngnu�[���PK���[.�=�=!bWadmin/assets/img/update-hover.pngnu�[���PK���[l�S��<�<&��admin/assets/img/arrow-down-f7f7f7.pngnu�[���PK���[���\�<�<$��admin/assets/img/arrow-up-f7f7f7.pngnu�[���PK���[�09_44�admin/assets/img/edit-hover.pngnu�[���PK���[`~��>> Xadmin/assets/img/help-fdfdfd.pngnu�[���PK���[��<
��!�Sadmin/assets/img/search-hover.pngnu�[���PK���[N Be���Tadmin/assets/img/search.pngnu�[���PK���[�H���=�=�Uadmin/assets/img/update.pngnu�[���PK���[�	tt,�admin/assets/img/trash.pngnu�[���PK���[����""�admin/assets/img/edit.pngnu�[���PK���[��r?r? U�admin/assets/img/help-f7f7f7.pngnu�[���PK���[_YY!�admin/assets/css/menu-tickers.cssnu�[���PK���[��p�VV&��admin/assets/css/framework/options.cssnu�[���PK���[-n�1�1#m�admin/assets/css/framework/menu.cssnu�[���PK���[�a��!�"	admin/assets/css/menu-sliding.cssnu�[���PK���[fY��"f%	admin/assets/css/menu-featured.cssnu�[���PK���[ͤ�)&�'	admin/assets/css/jquery-ui-tooltip.cssnu�[���PK���[o�>��"4/	admin/assets/css/chosen-custom.cssnu�[���PK���[�5����,|3	admin/assets/inc/chosen/chosen-sprite@2x.pngnu�[���PK���[��r���"�6	admin/assets/inc/chosen/LICENSE.mdnu�[���PK���[.?L)�;	admin/assets/inc/chosen/chosen-sprite.pngnu�[���PK���[e�U���!U>	admin/assets/inc/chosen/chosen.jsnu�[���PK���[d���4444"��	admin/assets/inc/chosen/chosen.cssnu�[���PK���[�k�v�)�)&4 
admin/assets/inc/chosen/chosen-min.cssnu�[���PK���[��q�j�j%tJ
admin/assets/inc/chosen/chosen-min.jsnu�[���PK���[ca�#M#M��
demo-assets/triangle-up.pngnu�[���PK���[�]0aMMdemo-assets/triangle-down.pngnu�[���PK���[a��j@@tPpublic/class-daln-public.phpnu�[���PK���[Z�Rk6B6B*Րpublic/inc/mobile-detect/Mobile_Detect.phpnu�[���PK���[����$e�public/inc/mobile-detect/LICENSE.txtnu�[���PK���[6e;�dd%��public/inc/twitter-api-php/LICENSE.mdnu�[���PK���[n��^,^,1b�public/inc/twitter-api-php/TwitterAPIExchange.phpnu�[���PK���[Ϸm+R9R9!
public/assets/js/general.jsnu�[���PK���[����%�G
public/assets/js/momentjs/momentjs.jsnu�[���PK���[G��"	Ypublic/assets/img/close-button.pngnu�[���PK���[r����_Zpublic/assets/img/clock.pngnu�[���PK���[5���!>[public/assets/img/open-button.pngnu�[���PK���[�
�UU�\public/assets/css/general.cssnu�[���PK���[JXT>]]4rinit.phpnu�[���PK���[M�������vlang/daln-it_IT.monu�[���PK���[Z!<�����lang/daln-it_IT.ponu�[���PK���[��Â'"'"��shared/class-daln-shared.phpnu�[���PK���[�l�GG
Puninstall.phpnu�[���PK^^�$�

F1le Man4ger