Hueman Addons - Version 2.1.0

Version Description

June 27th 2018 = * Improvements : Performance and UX enhancements made to the live customizer. Added the contextualizer feature. * Added : the custom css can now be customized on each pages independently

=

Download this release

Release Info

Developer nikeo
Plugin Icon 128x128 Hueman Addons
Version 2.1.0
Comparing to
See all releases

Code changes from version 2.0.16 to 2.1.0

Files changed (41) hide show
  1. addons/assets/czr/css/czr-hu-addons-control-footer.css +37 -0
  2. addons/assets/front/js/jQuerySharrre.min.js +1 -1
  3. addons/czr/ha-czr.php +26 -52
  4. addons/ha-backward-compatibility-after-setup-theme-40.php +187 -0
  5. addons/ha-functions.php +50 -0
  6. addons/ha-init.php +247 -100
  7. addons/skop/czr-skop.php +0 -3490
  8. addons/skop/tmpl/skope-tmpls.php +0 -124
  9. contextualizer/assets/czr/css/contextualizer-control.css +68 -0
  10. contextualizer/assets/czr/js/contextualizer-control.js +2228 -0
  11. contextualizer/ccat-contextualizer.php +1473 -0
  12. contextualizer/customizer/contx_setting_class.php +156 -0
  13. ha-fire.php +10 -1
  14. inc/czr-base-fmk/assets/css/customizer-czr-content-picker.css +22 -0
  15. inc/czr-base-fmk/assets/css/customizer-czr-content-picker.min.css +1 -0
  16. inc/czr-base-fmk/assets/css/czr-ccat-control-base.css +2421 -0
  17. inc/czr-base-fmk/assets/css/czr-ccat-control-base.min.css +1 -0
  18. inc/czr-base-fmk/assets/css/czr-control-footer.css +37 -0
  19. inc/czr-base-fmk/assets/css/czr-control-footer.min.css +1 -0
  20. inc/czr-base-fmk/assets/css/img/czr-spinner.gif +0 -0
  21. inc/czr-base-fmk/assets/css/img/fs-sprite.png +0 -0
  22. inc/czr-base-fmk/assets/css/img/green.png +0 -0
  23. inc/czr-base-fmk/assets/css/img/green@2x.png +0 -0
  24. inc/czr-base-fmk/assets/css/img/grey.png +0 -0
  25. inc/czr-base-fmk/assets/css/img/grey@2x.png +0 -0
  26. inc/czr-base-fmk/assets/css/img/jquery.fs.selecter-arrow.png +0 -0
  27. inc/czr-base-fmk/assets/css/img/jquery.fs.stepper-arrows.png +0 -0
  28. inc/czr-base-fmk/assets/css/lib/select2.css +482 -0
  29. inc/czr-base-fmk/assets/css/lib/select2.min.css +1 -0
  30. inc/czr-base-fmk/assets/fonts/css/fa-brands.css +13 -0
  31. inc/czr-base-fmk/assets/fonts/css/fa-brands.min.css +5 -0
  32. inc/czr-base-fmk/assets/fonts/css/fa-regular.css +14 -0
  33. inc/czr-base-fmk/assets/fonts/css/fa-regular.min.css +5 -0
  34. inc/czr-base-fmk/assets/fonts/css/fa-solid.css +15 -0
  35. inc/czr-base-fmk/assets/fonts/css/fa-solid.min.css +5 -0
  36. inc/czr-base-fmk/assets/fonts/css/fontawesome-all.css +2609 -0
  37. inc/czr-base-fmk/assets/fonts/css/fontawesome-all.min.css +5 -0
  38. inc/czr-base-fmk/assets/fonts/css/fontawesome.css +2579 -0
  39. inc/czr-base-fmk/assets/fonts/css/fontawesome.min.css +5 -0
  40. inc/czr-base-fmk/assets/fonts/webfonts/fa-brands-400.eot +0 -0
  41. inc/czr-base-fmk/assets/fonts/webfonts/fa-brands-400.svg +594 -0
addons/assets/czr/css/czr-hu-addons-control-footer.css ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Rate link */
2
+ #customize-footer-actions .collapse-sidebar-label {
3
+ display: none;
4
+ }
5
+ .czr-rate-link {
6
+ position: absolute;
7
+ bottom: 0;
8
+ left: 40px;
9
+ right: 0;
10
+ padding: 4px 12px 4px 0;
11
+ font-size: 10px;
12
+ line-height: 14px;
13
+ text-align: right;
14
+ }
15
+ .rtl .tc-rate-link {
16
+ text-align: left;
17
+ left: auto;
18
+ right: 40px;
19
+ padding: 4px 0 4px 12px;
20
+ }
21
+ .wp-full-overlay.collapsed .czr-rate-link {
22
+ display: none;
23
+ }
24
+ .czr-rate-link .czr-stars {
25
+ color: #E6B800;
26
+ text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.6);
27
+ }
28
+
29
+ @media screen and (min-width: 1025px) {
30
+ .wp-customizer .expanded #customize-footer-actions {
31
+ height: 85px;
32
+ background: inherit;
33
+ }
34
+ .wp-customizer #customize-controls .wp-full-overlay-sidebar-content {
35
+ bottom: 85px;
36
+ }
37
+ }
addons/assets/front/js/jQuerySharrre.min.js CHANGED
@@ -1 +1 @@
1
- var SharrrePlatform=SharrrePlatform||function(){var t={};return{register:function(e,n){t[e]=n},get:function(e,n){return t[e]?new t[e](n):(console.error("Sharrre - No platform found for "+e),!1)}}}();!function(t,e){void 0!==t&&(e.register("linkedin",function(e){return defaultSettings={url:"",urlCount:!1,counter:"",count:!0,popup:{width:550,height:550}},defaultSettings=t.extend(!0,{},defaultSettings,e),{settings:defaultSettings,url:function(t){return"https://www.linkedin.com/countserv/count/share?format=jsonp&url={url}&callback=?"},trackingAction:{site:"linkedin",action:"share"},load:function(e){var n=this.settings;t(e.element).find(".buttons").append('<div class="button linkedin"><script type="IN/share" data-url="'+(""!==n.url?n.url:e.options.url)+'" data-counter="'+n.counter+'"><\/script></div>');var i=0;void 0===window.IN&&0===i?(i=1,function(){var t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src="https://platform.linkedin.com/in.js";var e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(t,e)}()):void 0!==window.IN&&window.IN.parse&&IN.parse(document)},tracking:function(){},popup:function(t){window.open("https://www.linkedin.com/cws/share?url="+encodeURIComponent(""!==this.settings.url?this.settings.url:t.url)+"&token=&isFramed=true","linkedin","toolbar=no, width="+this.settings.popup.width+", height="+this.settings.popup.height)}}}),e.register("facebook",function(e){return defaultSettings={url:"",urlCount:!1,action:"like",layout:"button_count",count:!0,width:"",send:"false",faces:"false",colorscheme:"",font:"",lang:"en_US",share:"",appId:"",popup:{width:900,height:500}},defaultSettings=t.extend(!0,{},defaultSettings,e),{settings:defaultSettings,url:function(t){return"https://graph.facebook.com/?id={url}&callback=?"},trackingAction:{site:"facebook",action:"like"},load:function(e){var n=this.settings;t(e.element).find(".buttons").append('<div class="button facebook"><div id="fb-root"></div><div class="fb-like" data-href="'+(""!==n.url?n.url:e.options.url)+'" data-send="'+n.send+'" data-layout="'+n.layout+'" data-width="'+n.width+'" data-show-faces="'+n.faces+'" data-action="'+n.action+'" data-colorscheme="'+n.colorscheme+'" data-font="'+n.font+'" data-via="'+n.via+'" data-share="'+n.share+'"></div></div>');var i,o,s,a=0;"undefined"==typeof FB&&0===a?(a=1,i=document,s=i.getElementsByTagName("script")[0],i.getElementById("facebook-jssdk")||((o=i.createElement("script")).id="facebook-jssdk",o.src="https://connect.facebook.net/"+n.lang+"/all.js#xfbml=1",n.appId&&(o.src+="&appId="+n.appId),s.parentNode.insertBefore(o,s))):FB.XFBML.parse()},tracking:function(){fb=window.setInterval(function(){"undefined"!=typeof FB&&"undefined"!=typeof _gaq&&(FB.Event.subscribe("edge.create",function(t){_gaq.push(["_trackSocial","facebook","like",t])}),FB.Event.subscribe("edge.remove",function(t){_gaq.push(["_trackSocial","facebook","unlike",t])}),FB.Event.subscribe("message.send",function(t){_gaq.push(["_trackSocial","facebook","send",t])}),clearInterval(fb))},1e3)},popup:function(t){window.open("https://www.facebook.com/sharer/sharer.php?u="+encodeURIComponent(""!==this.settings.url?this.settings.url:t.url)+"&t="+t.text,"","toolbar=0, status=0, width="+this.settings.popup.width+", height="+this.settings.popup.height)}}}),e.register("googlePlus",function(e){return defaultSettings={url:"",urlCount:!1,size:"medium",lang:"en-US",annotation:"",count:!0,popup:{width:900,height:500}},defaultSettings=t.extend(!0,{},defaultSettings,e),{settings:defaultSettings,url:function(t){return t+"?url={url}&type=googlePlus"},trackingAction:{site:"Google",action:"+1"},load:function(e){var n=this.settings;t(e.element).find(".buttons").append('<div class="button googleplus"><div class="g-plusone" data-size="'+n.size+'" data-href="'+(""!==n.url?n.url:e.options.url)+'" data-annotation="'+n.annotation+'"></div></div>'),window.___gcfg={lang:n.lang};var i=0;"undefined"!=typeof gapi&&void 0!==gapi.plusone||0!==i?gapi.plusone.go():(i=1,function(){var t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src="https://apis.google.com/js/plusone.js";var e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(t,e)}())},tracking:function(){},popup:function(t){window.open("https://plus.google.com/share?hl="+this.settings.lang+"&url="+encodeURIComponent(""!==this.settings.url?this.settings.url:t.url),"","toolbar=0, status=0, width="+this.settings.popup.width+", height="+this.settings.popup.height)}}}),e.register("pinterest",function(e){return defaultSettings={url:"",media:"",description:"",layout:"horizontal",popup:{width:700,height:300}},defaultSettings=t.extend(!0,{},defaultSettings,e),{settings:defaultSettings,url:function(t){return"https://api.pinterest.com/v1/urls/count.json?url={url}&callback=?"},trackingAction:{site:"pinterest",action:"pin"},load:function(e){var n=this.settings;t(e.element).find(".buttons").append('<div class="button pinterest"><a href="https://www.pinterest.com/pin/create/button/?url='+(""!==n.url?n.url:e.options.url)+"&media="+n.media+"&description="+n.description+'" data-pin-do="buttonBookmark" count-layout="'+n.layout+'">Pin It</a></div>'),function(){var t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src="https://assets.pinterest.com/js/pinit.js",t.setAttribute("data-pin-build","parsePinBtns");var e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(t,e)}(),window.parsePinBtns&&window.parsePinBtns(),t(e.element).find(".pinterest").on("click",function(){e.openPopup("pinterest")})},tracking:function(){},popup:function(t){window.open("https://pinterest.com/pin/create/button/?url="+encodeURIComponent(""!==this.settings.url?this.settings.url:t.url)+"&media="+encodeURIComponent(this.settings.media)+"&description="+this.settings.description,"pinterest","toolbar=no,width="+this.settings.popup.width+", height="+this.settings.popup.height)}}}),e.register("twitter",function(e){return defaultSettings={url:"",urlCount:!1,count:!1,hashtags:"",via:"",related:"",lang:"en",popup:{width:650,height:360}},defaultSettings=t.extend(!0,{},defaultSettings,e),{settings:defaultSettings,trackingAction:{site:"twitter",action:"tweet"},url:function(t){return"http://opensharecount.com/count.json?url={url}"},load:function(e){var n=this.settings;t(e.element).find(".buttons").append('<div class="button twitter"><a href="https://twitter.com/share" class="twitter-share-button" data-url="'+(""!==n.url?n.url:e.options.url)+'" data-count="'+n.count+'" data-text="'+e.options.text+'" data-via="'+n.via+'" data-hashtags="'+n.hashtags+'" data-related="'+n.related+'" data-lang="'+n.lang+'">Tweet</a></div>');var i=0;"undefined"==typeof twttr&&0===i?(i=1,function(){var t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src="https://platform.twitter.com/widgets.js";var e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(t,e)}()):t.ajax({url:"https://platform.twitter.com/widgets.js",dataType:"script",cache:!0})},tracking:function(){tw=window.setInterval(function(){"undefined"!=typeof twttr&&(twttr.events.bind("tweet",function(t){t&&"undefined"!=typeof _gaq&&_gaq.push(["_trackSocial","twitter","tweet"])}),clearInterval(tw))},1e3)},popup:function(t){window.open("https://twitter.com/intent/tweet?text="+encodeURIComponent(t.text)+"&url="+encodeURIComponent(""!==this.settings.url?this.setting.url:t.url)+(""!==this.settings.via?"&via="+this.settings.via:""),"","toolbar=0, status=0,width="+this.settings.popup.width+", height="+this.settings.popup.height)}}}),e.register("twitterFollow",function(e){return defaultSettings={url:"",urlCount:!1,count:!0,display:"horizontal",lang:"en",popup:{width:650,height:360},user:"",size:"default",showCount:"false"},defaultSettings=t.extend(!0,{},defaultSettings,e),{settings:defaultSettings,trackingAction:{site:"twitter",action:"follow"},url:function(t){return""},load:function(e){var n=this.settings;t(e.element).find(".buttons").append('<div class="button twitterFollow"><a href="https://twitter.com/'+n.user+'" class="twitter-follow-button"" data-size="'+n.size+'" data-show-count="'+n.showCount+'" data-lang="'+n.lang+'">Follow @'+n.user+"</a></div>");var i=0;"undefined"==typeof twttr&&0===i?(i=1,function(){var t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src="https://platform.twitter.com/widgets.js";var e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(t,e)}()):t.ajax({url:"https://platform.twitter.com/widgets.js",dataType:"script",cache:!0})},tracking:function(){},popup:function(t){window.open("https://twitter.com/intent/follow?screen_name="+encodeURIComponent(this.settings.user),"","toolbar=0, status=0, ,width="+this.settings.popup.width+", height="+this.settings.popup.height)}}}))}(window.jQuery,SharrrePlatform),function(t,e,n,i){var o="sharrre",s={className:"sharrre",share:{},shareTotal:0,template:"",title:"",url:n.location.href,text:n.title,urlCurl:"sharrre.php",count:{},total:0,shorterTotal:!0,enableHover:!0,enableCounter:!0,enableTracking:!1,defaultUrl:"javascript:void(0);",popup:{width:900,height:500},hover:function(){},hide:function(){},click:function(){},render:function(){}};function a(e,n){this.element=e,this.options=t.extend(!0,{},s,n),this.options.share=n.share,this._defaults=s,this._name=o,this.platforms={},this.init()}a.prototype.init=function(){var e=this;t.each(e.options.share,function(t,n){!0===n&&(e.platforms[t]=SharrrePlatform.get(t,e.options.buttons[t]))}),t(this.element).addClass(this.options.className),void 0!==t(this.element).data("title")&&(this.options.title=t(this.element).attr("data-title")),void 0!==t(this.element).data("url")&&(this.options.url=t(this.element).data("url")),void 0!==t(this.element).data("text")&&(this.options.text=t(this.element).data("text")),t.each(this.options.share,function(t,n){!0===n&&e.options.shareTotal++}),!0===e.options.enableCounter?t.each(this.options.share,function(t,n){if(!0===n)try{e.getSocialJson(t)}catch(t){}}):""!==e.options.template&&(e.renderer(),e.options.count[name]=0,e.rendererPerso()),""!==e.options.template?this.options.render(this,this.options):this.loadButtons(),t(this.element).on("mouseenter",function(){0===t(this).find(".buttons").length&&!0===e.options.enableHover&&e.loadButtons(),e.options.hover(e,e.options)}).on("mouseleave",function(){e.options.hide(e,e.options)}),t(this.element).click(function(t){return t.preventDefault(),e.options.click(e,e.options),!1})},a.prototype.loadButtons=function(){var e=this;t(this.element).append('<div class="buttons"></div>'),t.each(e.options.share,function(t,n){!0===n&&(e.platforms[t].load(e),!0===e.options.enableTracking&&e.platforms[t].tracking())})},a.prototype.getSocialJson=function(e){var n=this,i=0,o=n.platforms[e].settings,s=n.platforms[e].url(this.options.urlCurl),a=encodeURIComponent(this.options.url);o.url.length&&(s=o.url),!0===o.urlCount&&""!==s&&(a=s),!1===o.count&&(s=""),url=s.replace("{url}",a),"twitter"==e&&(s=n.platforms[e].url()),""!==url?t.getJSON(url,function(t){if(void 0!==t.count){var o=t.count+"";o=o.replace(" ",""),i+=parseInt(o,10)}else void 0!==t.share&&void 0!==t.share.share_count?i+=parseInt(t.share.share_count,10):void 0!==t[0]?i+=parseInt(t[0].total_posts,10):t[0];n.options.count[e]=i,n.options.total+=i,n.renderer(),n.rendererPerso()}).error(function(){n.options.count[e]=0,n.rendererPerso()}):(n.renderer(),n.options.count[e]=0,n.rendererPerso())},a.prototype.rendererPerso=function(){var t=0;for(var e in this.options.count)t++;t===this.options.shareTotal&&this.options.render(this,this.options)},a.prototype.renderer=function(){var e=this.options.total,n=this.options.template;!0===this.options.shorterTotal&&(e=this.shorterTotal(e)),""!==n?(n=n.replace("{total}",e),t(this.element).html(n)):t(this.element).html('<div class="box"><a class="count" href="'+this.options.defaultUrl+'">'+e+"</a>"+(""!==this.options.title?'<a class="share" href="'+this.options.defaultUrl+'">'+this.options.title+"</a>":"")+"</div>")},a.prototype.shorterTotal=function(t){return t>=1e6?t=(t/1e6).toFixed(2)+"M":t>=1e3&&(t=(t/1e3).toFixed(1)+"k"),t},a.prototype.openPopup=function(t){this.platforms[t].popup(this.options),!0===this.options.enableTracking&&"undefined"!=typeof _gaq&&(infos=this.platforms[t].trackingAction,_gaq.push(["_trackSocial",infos.site,infos.action]))},a.prototype.simulateClick=function(){var e=t(this.element).html();t(this.element).html(e.replace(this.options.total,this.options.total+1))},a.prototype.update=function(t,e){""!==t&&(this.options.url=t),""!==e&&(this.options.text=e)},t.fn[o]=function(e){var n=arguments;return void 0===e||"object"==typeof e?this.each(function(){t(this).data("plugin_"+o)||t(this).data("plugin_"+o,new a(this,e))}):"string"==typeof e&&"_"!==e[0]&&"init"!==e?this.each(function(){var i=t(this).data("plugin_"+o);i instanceof a&&"function"==typeof i[e]&&i[e].apply(i,Array.prototype.slice.call(n,1))}):void 0}}(window.jQuery||window.Zepto,window,document);
1
+ var SharrrePlatform=SharrrePlatform||function(){var t={};return{register:function(e,n){t[e]=n},get:function(e,n){return t[e]?new t[e](n):(console.error("Sharrre - No platform found for "+e),!1)}}}();!function(t,e){void 0!==t&&(e.register("linkedin",function(e){return defaultSettings={url:"",urlCount:!1,counter:"",count:!0,popup:{width:550,height:550}},defaultSettings=t.extend(!0,{},defaultSettings,e),{settings:defaultSettings,url:function(t){return"https://www.linkedin.com/countserv/count/share?format=jsonp&url={url}&callback=?"},trackingAction:{site:"linkedin",action:"share"},load:function(e){var n=this.settings;t(e.element).find(".buttons").append('<div class="button linkedin"><script type="IN/share" data-url="'+(""!==n.url?n.url:e.options.url)+'" data-counter="'+n.counter+'"><\/script></div>');var i=0;void 0===window.IN&&0===i?(i=1,function(){var t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src="https://platform.linkedin.com/in.js";var e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(t,e)}()):void 0!==window.IN&&window.IN.parse&&IN.parse(document)},tracking:function(){},popup:function(t){window.open("https://www.linkedin.com/cws/share?url="+encodeURIComponent(""!==this.settings.url?this.settings.url:t.url)+"&token=&isFramed=true","linkedin","toolbar=no, width="+this.settings.popup.width+", height="+this.settings.popup.height)}}}),e.register("facebook",function(e){return defaultSettings={url:"",urlCount:!1,action:"like",layout:"button_count",count:!0,width:"",send:"false",faces:"false",colorscheme:"",font:"",lang:"en_US",share:"",appId:"",popup:{width:900,height:500}},defaultSettings=t.extend(!0,{},defaultSettings,e),{settings:defaultSettings,url:function(t){return"https://graph.facebook.com/?id={url}&callback=?"},trackingAction:{site:"facebook",action:"like"},load:function(e){var n=this.settings;t(e.element).find(".buttons").append('<div class="button facebook"><div id="fb-root"></div><div class="fb-like" data-href="'+(""!==n.url?n.url:e.options.url)+'" data-send="'+n.send+'" data-layout="'+n.layout+'" data-width="'+n.width+'" data-show-faces="'+n.faces+'" data-action="'+n.action+'" data-colorscheme="'+n.colorscheme+'" data-font="'+n.font+'" data-via="'+n.via+'" data-share="'+n.share+'"></div></div>');var i,o,s,a,r=0;"undefined"==typeof FB&&0===r?(r=1,i=document,o="facebook-jssdk",a=i.getElementsByTagName("script")[0],i.getElementById(o)||((s=i.createElement("script")).id=o,s.src="https://connect.facebook.net/"+n.lang+"/all.js#xfbml=1",n.appId&&(s.src+="&appId="+n.appId),a.parentNode.insertBefore(s,a))):FB.XFBML.parse()},tracking:function(){fb=window.setInterval(function(){"undefined"!=typeof FB&&"undefined"!=typeof _gaq&&(FB.Event.subscribe("edge.create",function(t){_gaq.push(["_trackSocial","facebook","like",t])}),FB.Event.subscribe("edge.remove",function(t){_gaq.push(["_trackSocial","facebook","unlike",t])}),FB.Event.subscribe("message.send",function(t){_gaq.push(["_trackSocial","facebook","send",t])}),clearInterval(fb))},1e3)},popup:function(t){window.open("https://www.facebook.com/sharer/sharer.php?u="+encodeURIComponent(""!==this.settings.url?this.settings.url:t.url)+"&t="+t.text,"","toolbar=0, status=0, width="+this.settings.popup.width+", height="+this.settings.popup.height)}}}),e.register("googlePlus",function(e){return defaultSettings={url:"",urlCount:!1,size:"medium",lang:"en-US",annotation:"",count:!0,popup:{width:900,height:500}},defaultSettings=t.extend(!0,{},defaultSettings,e),{settings:defaultSettings,url:function(t){return t+"?url={url}&type=googlePlus"},trackingAction:{site:"Google",action:"+1"},load:function(e){var n=this.settings;t(e.element).find(".buttons").append('<div class="button googleplus"><div class="g-plusone" data-size="'+n.size+'" data-href="'+(""!==n.url?n.url:e.options.url)+'" data-annotation="'+n.annotation+'"></div></div>'),window.___gcfg={lang:n.lang};var i=0;"undefined"!=typeof gapi&&void 0!==gapi.plusone||0!==i?gapi.plusone.go():(i=1,function(){var t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src="https://apis.google.com/js/plusone.js";var e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(t,e)}())},tracking:function(){},popup:function(t){window.open("https://plus.google.com/share?hl="+this.settings.lang+"&url="+encodeURIComponent(""!==this.settings.url?this.settings.url:t.url),"","toolbar=0, status=0, width="+this.settings.popup.width+", height="+this.settings.popup.height)}}}),e.register("pinterest",function(e){return defaultSettings={url:"",media:"",description:"",layout:"horizontal",popup:{width:700,height:300}},defaultSettings=t.extend(!0,{},defaultSettings,e),{settings:defaultSettings,url:function(t){return"https://api.pinterest.com/v1/urls/count.json?url={url}&callback=?"},trackingAction:{site:"pinterest",action:"pin"},load:function(e){var n=this.settings;t(e.element).find(".buttons").append('<div class="button pinterest"><a href="https://www.pinterest.com/pin/create/button/?url='+(""!==n.url?n.url:e.options.url)+"&media="+n.media+"&description="+n.description+'" data-pin-do="buttonBookmark" count-layout="'+n.layout+'">Pin It</a></div>'),function(){var t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src="https://assets.pinterest.com/js/pinit.js",t.setAttribute("data-pin-build","parsePinBtns");var e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(t,e)}(),window.parsePinBtns&&window.parsePinBtns(),t(e.element).find(".pinterest").on("click",function(){e.openPopup("pinterest")})},tracking:function(){},popup:function(t){window.open("https://pinterest.com/pin/create/button/?url="+encodeURIComponent(""!==this.settings.url?this.settings.url:t.url)+"&media="+encodeURIComponent(this.settings.media)+"&description="+this.settings.description,"pinterest","toolbar=no,width="+this.settings.popup.width+", height="+this.settings.popup.height)}}}),e.register("twitter",function(e){return defaultSettings={url:"",urlCount:!1,count:!1,hashtags:"",via:"",related:"",lang:"en",popup:{width:650,height:360}},defaultSettings=t.extend(!0,{},defaultSettings,e),{settings:defaultSettings,trackingAction:{site:"twitter",action:"tweet"},url:function(t){return"http://opensharecount.com/count.json?url={url}"},load:function(e){var n=this.settings;t(e.element).find(".buttons").append('<div class="button twitter"><a href="https://twitter.com/share" class="twitter-share-button" data-url="'+(""!==n.url?n.url:e.options.url)+'" data-count="'+n.count+'" data-text="'+e.options.text+'" data-via="'+n.via+'" data-hashtags="'+n.hashtags+'" data-related="'+n.related+'" data-lang="'+n.lang+'">Tweet</a></div>');var i=0;"undefined"==typeof twttr&&0===i?(i=1,function(){var t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src="https://platform.twitter.com/widgets.js";var e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(t,e)}()):t.ajax({url:"https://platform.twitter.com/widgets.js",dataType:"script",cache:!0})},tracking:function(){tw=window.setInterval(function(){"undefined"!=typeof twttr&&(twttr.events.bind("tweet",function(t){t&&"undefined"!=typeof _gaq&&_gaq.push(["_trackSocial","twitter","tweet"])}),clearInterval(tw))},1e3)},popup:function(t){window.open("https://twitter.com/intent/tweet?text="+encodeURIComponent(t.text)+"&url="+encodeURIComponent(""!==this.settings.url?this.setting.url:t.url)+(""!==this.settings.via?"&via="+this.settings.via:""),"","toolbar=0, status=0,width="+this.settings.popup.width+", height="+this.settings.popup.height)}}}),e.register("twitterFollow",function(e){return defaultSettings={url:"",urlCount:!1,count:!0,display:"horizontal",lang:"en",popup:{width:650,height:360},user:"",size:"default",showCount:"false"},defaultSettings=t.extend(!0,{},defaultSettings,e),{settings:defaultSettings,trackingAction:{site:"twitter",action:"follow"},url:function(t){return""},load:function(e){var n=this.settings;t(e.element).find(".buttons").append('<div class="button twitterFollow"><a href="https://twitter.com/'+n.user+'" class="twitter-follow-button"" data-size="'+n.size+'" data-show-count="'+n.showCount+'" data-lang="'+n.lang+'">Follow @'+n.user+"</a></div>");var i=0;"undefined"==typeof twttr&&0===i?(i=1,function(){var t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src="https://platform.twitter.com/widgets.js";var e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(t,e)}()):t.ajax({url:"https://platform.twitter.com/widgets.js",dataType:"script",cache:!0})},tracking:function(){},popup:function(t){window.open("https://twitter.com/intent/follow?screen_name="+encodeURIComponent(this.settings.user),"","toolbar=0, status=0, ,width="+this.settings.popup.width+", height="+this.settings.popup.height)}}}))}(window.jQuery,SharrrePlatform),function(t,e,n,i){var o="sharrre",s={className:"sharrre",share:{},shareTotal:0,template:"",title:"",url:n.location.href,text:n.title,urlCurl:"sharrre.php",count:{},total:0,shorterTotal:!0,enableHover:!0,enableCounter:!0,enableTracking:!1,defaultUrl:"javascript:void(0);",popup:{width:900,height:500},hover:function(){},hide:function(){},click:function(){},render:function(){}};function a(e,n){this.element=e,this.options=t.extend(!0,{},s,n),this.options.share=n.share,this._defaults=s,this._name=o,this.platforms={},this.init()}a.prototype.init=function(){var e=this;t.each(e.options.share,function(t,n){!0===n&&(e.platforms[t]=SharrrePlatform.get(t,e.options.buttons[t]))}),t(this.element).addClass(this.options.className),void 0!==t(this.element).data("title")&&(this.options.title=t(this.element).attr("data-title")),void 0!==t(this.element).data("url")&&(this.options.url=t(this.element).data("url")),void 0!==t(this.element).data("text")&&(this.options.text=t(this.element).data("text")),t.each(this.options.share,function(t,n){!0===n&&e.options.shareTotal++}),!0===e.options.enableCounter?t.each(this.options.share,function(t,n){if(!0===n)try{e.getSocialJson(t)}catch(t){}}):""!==e.options.template&&(e.renderer(),e.options.count[name]=0,e.rendererPerso()),""!==e.options.template?this.options.render(this,this.options):this.loadButtons(),t(this.element).on("mouseenter",function(){0===t(this).find(".buttons").length&&!0===e.options.enableHover&&e.loadButtons(),e.options.hover(e,e.options)}).on("mouseleave",function(){e.options.hide(e,e.options)}),t(this.element).click(function(t){return t.preventDefault(),e.options.click(e,e.options),!1})},a.prototype.loadButtons=function(){var e=this;t(this.element).append('<div class="buttons"></div>'),t.each(e.options.share,function(t,n){!0===n&&(e.platforms[t].load(e),!0===e.options.enableTracking&&e.platforms[t].tracking())})},a.prototype.getSocialJson=function(e){var n=this,i=0,o=n.platforms[e].settings,s=n.platforms[e].url(this.options.urlCurl),a=encodeURIComponent(this.options.url);o.url.length&&(s=o.url),!0===o.urlCount&&""!==s&&(a=s),!1===o.count&&(s=""),url=s.replace("{url}",a),"twitter"==e&&(s=n.platforms[e].url()),""!==url?t.getJSON(url,function(t){if(void 0!==t.count){var o=t.count+"";o=o.replace(" ",""),i+=parseInt(o,10)}else void 0!==t.share&&void 0!==t.share.share_count?i+=parseInt(t.share.share_count,10):void 0!==t[0]?i+=parseInt(t[0].total_posts,10):t[0];n.options.count[e]=i,n.options.total+=i,n.renderer(),n.rendererPerso()}).error(function(){n.options.count[e]=0,n.rendererPerso()}):(n.renderer(),n.options.count[e]=0,n.rendererPerso())},a.prototype.rendererPerso=function(){var t=0;for(var e in this.options.count)t++;t===this.options.shareTotal&&this.options.render(this,this.options)},a.prototype.renderer=function(){var e=this.options.total,n=this.options.template;!0===this.options.shorterTotal&&(e=this.shorterTotal(e)),""!==n?(n=n.replace("{total}",e),t(this.element).html(n)):t(this.element).html('<div class="box"><a class="count" href="'+this.options.defaultUrl+'">'+e+"</a>"+(""!==this.options.title?'<a class="share" href="'+this.options.defaultUrl+'">'+this.options.title+"</a>":"")+"</div>")},a.prototype.shorterTotal=function(t){return t>=1e6?t=(t/1e6).toFixed(2)+"M":t>=1e3&&(t=(t/1e3).toFixed(1)+"k"),t},a.prototype.openPopup=function(t){this.platforms[t].popup(this.options),!0===this.options.enableTracking&&"undefined"!=typeof _gaq&&(infos=this.platforms[t].trackingAction,_gaq.push(["_trackSocial",infos.site,infos.action]))},a.prototype.simulateClick=function(){var e=t(this.element).html();t(this.element).html(e.replace(this.options.total,this.options.total+1))},a.prototype.update=function(t,e){""!==t&&(this.options.url=t),""!==e&&(this.options.text=e)},t.fn[o]=function(e){var n=arguments;return void 0===e||"object"==typeof e?this.each(function(){t(this).data("plugin_"+o)||t(this).data("plugin_"+o,new a(this,e))}):"string"==typeof e&&"_"!==e[0]&&"init"!==e?this.each(function(){var i=t(this).data("plugin_"+o);i instanceof a&&"function"==typeof i[e]&&i[e].apply(i,Array.prototype.slice.call(n,1))}):void 0}}(window.jQuery||window.Zepto,window,document);
addons/czr/ha-czr.php CHANGED
@@ -18,9 +18,9 @@ class HA_Czr {
18
 
19
  //hook : customize_register
20
  function ha_augment_customizer_setting() {
21
- if ( ! HU_AD() -> ha_is_skop_on() )
22
  return;
23
- require_once( HA_BASE_PATH . 'addons/czr/skop-customizer-augment-setting.php' );
24
  }
25
 
26
 
@@ -41,37 +41,11 @@ class HA_Czr {
41
  //Hueman Addons Specifics
42
  wp_enqueue_style(
43
  'ha-czr-addons-controls-style',
44
- sprintf( '%1$saddons/assets/czr/css/czr-control-footer.css', HU_AD() -> ha_get_base_url() ),
45
  array( 'customize-controls' ),
46
- ( defined('CZR_DEV') && true === CZR_DEV ) ? $hu_theme -> version . time() : $hu_theme -> version,
47
  $media = 'all'
48
  );
49
-
50
- //Enqueue most recent fmk for js and css;
51
- $is_pro = HU_AD() -> ha_is_pro_addons() || HU_AD() -> ha_is_pro_theme();
52
- if ( $is_pro || true == version_compare( $hu_theme -> version, LAST_THEME_VERSION_FMK_SYNC , '<' ) ) {
53
- $wp_styles = wp_styles();
54
- $wp_scripts = wp_scripts();
55
- if ( isset( $wp_styles->registered['hu-customizer-controls-style'] ) ) {
56
- $wp_styles->registered['hu-customizer-controls-style'] -> src = sprintf(
57
- '%1$saddons/assets/czr/css/czr-control-base%2$s.css',
58
- HU_AD() -> ha_get_base_url(),
59
- ( defined('WP_DEBUG') && true === WP_DEBUG ) ? '' : '.min'
60
- );
61
- $ver_css = $wp_styles->registered['hu-customizer-controls-style'] -> ver;
62
- $wp_styles->registered['hu-customizer-controls-style'] -> ver = ( defined('WP_DEBUG') && true === WP_DEBUG ) ? $ver_css . time() : $ver_css;
63
- }
64
- if ( isset( $wp_scripts->registered['hu-customizer-controls'] ) ) {
65
- $wp_scripts->registered['hu-customizer-controls'] -> src = sprintf(
66
- '%1$saddons/assets/czr/js/%2$s%3$s.js',
67
- HU_AD() -> ha_get_base_url(),
68
- $is_pro ? 'czr-control-full' : 'czr-control-base',
69
- ( defined('WP_DEBUG') && true === WP_DEBUG ) ? '' : '.min'
70
- );
71
- $ver = $wp_scripts->registered['hu-customizer-controls'] -> ver;
72
- $wp_scripts->registered['hu-customizer-controls'] -> ver = ( defined('WP_DEBUG') && true === WP_DEBUG ) ? $ver . time() : $ver;
73
- }
74
- }
75
  }
76
 
77
 
@@ -157,28 +131,28 @@ class HA_Czr {
157
  return _is_checked(to);
158
  }
159
  },
160
- {
161
- dominus : 'pro_header_type',
162
- servi : [
163
- 'use-header-image',
164
- 'logo-title-on-header-image',
165
- 'header_image',
166
- 'color-topbar',
167
- 'color-header',
168
- 'color-header-menu',
169
- pro_header_slider_short_opt_name//pro_header_bg
170
- ],
171
- visibility : function ( to, servusShortId ) {
172
- if ( pro_header_slider_short_opt_name == servusShortId ) {
173
- return 'classical' != to;
174
- } else if ( 'header_image' == servusShortId || 'logo-title-on-header-image' == servusShortId ) {
175
- var wpServusId = api.CZR_Helpers.build_setId( 'use-header-image' );
176
- return 'classical' == to && _is_checked( api( wpServusId )() );
177
- } else {
178
- return 'classical' == to;
179
- }
180
- }
181
- },
182
  ]
183
  );
184
  }) ( wp.customize, jQuery, _);
18
 
19
  //hook : customize_register
20
  function ha_augment_customizer_setting() {
21
+ if ( ! ha_is_skop_on() )
22
  return;
23
+ //require_once( HA_BASE_PATH . 'addons/czr/skop-customizer-augment-setting.php' );
24
  }
25
 
26
 
41
  //Hueman Addons Specifics
42
  wp_enqueue_style(
43
  'ha-czr-addons-controls-style',
44
+ sprintf( '%1$saddons/assets/czr/css/czr-hu-addons-control-footer.css', HU_AD() -> ha_get_base_url() ),
45
  array( 'customize-controls' ),
46
+ ( defined('CZR_DEV') && true === CZR_DEV ) ? time() : $hu_theme -> version,
47
  $media = 'all'
48
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
  }
50
 
51
 
131
  return _is_checked(to);
132
  }
133
  },
134
+ // {
135
+ // dominus : 'pro_header_type',
136
+ // servi : [
137
+ // 'use-header-image',
138
+ // 'logo-title-on-header-image',
139
+ // 'header_image',
140
+ // 'color-topbar',
141
+ // 'color-header',
142
+ // 'color-header-menu',
143
+ // pro_header_slider_short_opt_name//pro_header_bg
144
+ // ],
145
+ // visibility : function ( to, servusShortId ) {
146
+ // if ( pro_header_slider_short_opt_name == servusShortId ) {
147
+ // return 'classical' != to;
148
+ // } else if ( 'header_image' == servusShortId || 'logo-title-on-header-image' == servusShortId ) {
149
+ // var wpServusId = api.CZR_Helpers.build_setId( 'use-header-image' );
150
+ // return 'classical' == to && _is_checked( api( wpServusId )() );
151
+ // } else {
152
+ // return 'classical' == to;
153
+ // }
154
+ // }
155
+ // },
156
  ]
157
  );
158
  }) ( wp.customize, jQuery, _);
addons/ha-backward-compatibility-after-setup-theme-40.php ADDED
@@ -0,0 +1,187 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Note : contx dependant. contx is loaded @after_setup_theme:30
3
+ add_action('after_setup_theme', 'ha_backward_compatibility_setup_june_2018', 40 );
4
+ function ha_backward_compatibility_setup_june_2018() {
5
+ // do we have an old skope post ?
6
+ $old_skope_post_id = ctx_get_old_skope_post_id();
7
+ if ( '_no_set_' == $old_skope_post_id )
8
+ return;
9
+
10
+ $_old_raw_skoped_options = get_post_meta( $old_skope_post_id );
11
+ $_old_raw_skoped_options = is_array( $_old_raw_skoped_options ) ? $_old_raw_skoped_options : array();
12
+
13
+
14
+ $_old_skoped_options = array();
15
+ foreach ( $_old_raw_skoped_options as $meta_key => $value ) {
16
+ if ( is_array($value) && 1 == count($value) ) {
17
+ $_old_skoped_options[$meta_key] = maybe_unserialize( $value[0] );
18
+ }
19
+ else {
20
+ $_old_skoped_options[$meta_key] = array_map( 'maybe_unserialize', $value );
21
+ }
22
+ }
23
+
24
+ $status = '_nothing_to_map_';
25
+ if ( ! empty( $_old_skoped_options ) ) {
26
+ $status = ha_generate_and_save_new_contx_options( $_old_skoped_options, $status );
27
+ //sek_error_log( 'SKOPE MAPPING ATTEMPT', $final_new_skoped_options );
28
+ //sek_error_log( 'GET_THEME_MODS', get_theme_mods() );
29
+ }
30
+
31
+ update_option( 'hu_contx_update_june_2018_status', $status );
32
+ }
33
+
34
+
35
+ // @return array()
36
+ function ha_generate_and_save_new_contx_options( $_old_skoped_options, $status ) {
37
+ // PREVIOUS SKOPED OPTION STRUCTURE
38
+ // => stored in post metas of a custom post type
39
+ // each set of skoped options was written in a skope metas whom id was the skope_id
40
+ // [hueman_czr_post_post_1] => Array
41
+ // (
42
+ // [hu_theme_options[pro_header_type]] => slider,
43
+ // [nav_menu_locations] => Array
44
+ // (
45
+ // [header] => 3
46
+ // )
47
+ // )
48
+
49
+
50
+ // [hueman_czr_all_post] => Array
51
+ // (
52
+ // [blogname] => Site Title for All posts
53
+ // )
54
+ $default_contx_model = ctx_get_default_model();
55
+ $stylesheet = get_stylesheet();
56
+
57
+ foreach( $_old_skoped_options as $old_skope_id => $raw_old_options ) {
58
+ // if an error occured while writing a previous skope post, stop now
59
+ if ( '_error_when_mapping_' === $status )
60
+ break;
61
+
62
+ // prepare new skope
63
+ // go from hueman_czr_all_post to skp__all_post
64
+ // or from hueman_czr_post_post_1 to skp__post_post_1
65
+ $new_skope_id = str_replace( 'hueman_czr_', 'skp__', $old_skope_id );
66
+
67
+ $pre_new_skoped_options = array();
68
+ foreach ( $raw_old_options as $setting_id => $value ) {
69
+ $validated_value = $value;
70
+ $validated_setting_id = $setting_id;
71
+ // IS THIS SETTING SKOPABLE ?
72
+ // For example hu_theme_options[layout-global] is not skopable anymore as of june 2018
73
+ if ( in_array( $setting_id, ctx_get_excluded_settings() ) )
74
+ continue;
75
+
76
+
77
+ // FIRST PREPROCESSING
78
+ // First pass : validate the setting id and the value for specific settings
79
+ switch ( $setting_id ) {
80
+ case 'hu_theme_options[pro_header_type]':
81
+ // replace the old value by the new one
82
+ // the pro_header_type is deprecated with the new contextualizer, it could take 2 values = 'classical' or 'slider'
83
+ // the new 'display-a-pro-header-slider' option can take 3 values : yes, no, inherit
84
+ $validated_setting_id = 'hu_theme_options[display-a-pro-header-slider]';
85
+ $validated_value = 'slider' === $validated_value ? 'yes' : 'no';
86
+
87
+ $pre_new_skoped_options[] = wp_parse_args( array(
88
+ 'id' => $validated_setting_id,
89
+ 'setting-id' => $validated_setting_id,
90
+ 'skope-id' => $new_skope_id,
91
+ 'value' => $validated_value
92
+ ), $default_contx_model );
93
+ break;
94
+ case 'nav_menu_locations' :
95
+ // we want to go from
96
+ // 'nav_menu_locations' => Array( 'header' => 3, 'topbar' => 4 )
97
+ // to
98
+ // nav_menu_locations['header'] => array( ... )
99
+ // nav_menu_locations['topbar'] => array( ... )
100
+ foreach ( $value as $menu_location => $menu_id ) {
101
+ $validated_setting_id = "nav_menu_locations[{$menu_location}]";
102
+ $validated_value = $menu_id;
103
+
104
+ $pre_new_skoped_options[] = wp_parse_args( array(
105
+ 'id' => $validated_setting_id,
106
+ 'setting-id' => $validated_setting_id,
107
+ 'skope-id' => $new_skope_id,
108
+ 'value' => $validated_value
109
+ ), $default_contx_model );
110
+ }
111
+ break;
112
+ default :
113
+ $pre_new_skoped_options[] = wp_parse_args( array(
114
+ 'id' => $setting_id,
115
+ 'setting-id' => $validated_setting_id,
116
+ 'skope-id' => $new_skope_id,
117
+ 'value' => $validated_value
118
+ ), $default_contx_model );
119
+ break;
120
+ }//switch => first pass
121
+ }//foreach
122
+
123
+ // SECOND PREPROCESSING
124
+ // second pass : amend the skope_data with the dynamically registered setting id
125
+ // 'dyn_api_setting_id' => used when removing the item from the contx setting, to reset the _setting_ value().
126
+ // @see registerContextalizedModuleControlSection and @see ::registerDynamicSkopeSettingControl
127
+ $second_new_skoped_options = array();
128
+ foreach ( $pre_new_skoped_options as $skoped_setting_data ) {
129
+ $second_skoped_setting_data = $skoped_setting_data;
130
+ switch ( $skoped_setting_data['setting-id'] ) {
131
+ case 'hu_theme_options[body-background]' :
132
+ case 'hu_theme_options[display-a-pro-header-slider]' :
133
+ case 'hu_theme_options[pro_slider_header_bg]' :
134
+ // the dyn_api_setting_id looks like _contextualizer_ui_display-a-pro-header-slider_skp__post_post_1
135
+ $short_opt_name = str_replace( array('[', ']', HU_THEME_OPTIONS ), '', $skoped_setting_data['setting-id'] );
136
+ $skope_id = $skoped_setting_data['skope-id'];
137
+ $second_skoped_setting_data['dyn_api_setting_id'] = "_contextualizer_ui_{$short_opt_name}_{$skope_id}";
138
+ // those js dynamically registered setting have the specific type _module_.
139
+ // @see skopeReact::registerContextalizedModuleControlSection
140
+ $second_skoped_setting_data['type'] = '_module_';
141
+ break;
142
+ }// switch second pass
143
+ $second_new_skoped_options[] = $second_skoped_setting_data;
144
+ }//foreach
145
+
146
+
147
+ // THIRD PREPROCESSING
148
+ // We need to set a title to the following contx item
149
+ // Otherwise the item title will fallback the setting id
150
+ // It should normally not happen because the contextualizer uses the control label.
151
+ // But for those dynamically registered control, the contextualizer might be instantiated before them.
152
+ $final_new_skoped_options = array();
153
+ foreach ( $second_new_skoped_options as $skoped_setting_data ) {
154
+ $final_skoped_setting_data = $skoped_setting_data;
155
+ switch ( $final_skoped_setting_data['setting-id'] ) {
156
+ case 'hu_theme_options[body-background]' :
157
+ $final_skoped_setting_data['title'] = __('Body Background', 'hueman');
158
+ break;
159
+ case 'hu_theme_options[display-a-pro-header-slider]' :
160
+ $final_skoped_setting_data['title'] = __('Display a full width header background', 'hueman');
161
+ break;
162
+ case 'hu_theme_options[pro_slider_header_bg]' :
163
+ $final_skoped_setting_data['title'] = __('Full Width Header Background', 'hueman');
164
+ break;
165
+ }// switch second pass
166
+ $final_new_skoped_options[] = $final_skoped_setting_data;
167
+ }//foreach
168
+
169
+ // TRY TO WRITE IN A POST
170
+ // It will also set the theme mod with the created post id
171
+ // ctx_update_skope_post() returns get_post()
172
+ $r = ctx_update_skope_post( $final_new_skoped_options, array(
173
+ 'stylesheet' => $stylesheet,
174
+ 'skope_id' => $new_skope_id
175
+ ));
176
+
177
+ // UPDATE THE STATUS ON EACH LOOP
178
+ if ( $r instanceof WP_Error || empty( $r ) ) {
179
+ error_log('ERROR WHEN MAPPING THE OLD SKOPE OPTIONS FOR SKOPE ID => ' . $old_skope_id );
180
+ $status = '_error_when_mapping_';
181
+ } else {
182
+ $status = '_mapping_done_';
183
+ }
184
+ }//foreach
185
+
186
+ return $status;
187
+ }
addons/ha-functions.php CHANGED
@@ -80,4 +80,54 @@ function ha_is_plugin_active_for_network( $plugin ) {
80
  return true;
81
 
82
  return false;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
83
  }
80
  return true;
81
 
82
  return false;
83
+ }
84
+
85
+
86
+ //@return bool
87
+ function ha_isprevdem() {
88
+ global $wp_customize;
89
+ $is_dirty = false;
90
+
91
+ if ( is_object( $wp_customize ) && method_exists( $wp_customize, 'unsanitized_post_values' ) ) {
92
+ $real_cust = $wp_customize -> unsanitized_post_values( array( 'exclude_changeset' => true ) );
93
+ $_preview_index = array_key_exists( 'customize_messenger_channel' , $_POST ) ? $_POST['customize_messenger_channel'] : '';
94
+ $_is_first_preview = false !== strpos( $_preview_index ,'-0' );
95
+ $_doing_ajax_partial = array_key_exists( 'wp_customize_render_partials', $_POST );
96
+ //There might be cases when the unsanitized post values contains old widgets infos on initial preview load, giving a wrong dirtyness information
97
+ $is_dirty = ( ! empty( $real_cust ) && ! $_is_first_preview ) || $_doing_ajax_partial;
98
+ }
99
+ // was formerly using is_child_theme() but it has been dropped because of https://github.com/presscustomizr/hueman-addons/issues/46#issuecomment-366235847
100
+ // => this function can't be invoked too early from a plugin because TEMPLATEPATH and STYLESHEETPATH may not be defined yet
101
+ return apply_filters( 'hu_isprevdem', ! $is_dirty && ha_get_raw_option( 'template', null, false ) != get_template() && ! ( defined('HU_IS_PRO') && HU_IS_PRO ) );
102
+ }
103
+
104
+
105
+
106
+ // @return bool
107
+ // skop shall not be activated when previewing the theme from the customizer or when using a version of wp < 4.7
108
+ function ha_is_skop_on() {
109
+ global $wp_version;
110
+ if( ! defined( 'HA_SKOP_ON' ) ) {
111
+ //'enable-skope' option can take two string values : "yes" and "no".
112
+ //If the option is not set yet, which is the most common case, it means that it is enabled ( @see default value == "yes" when registering the setting )
113
+ $_skope_enable_val = ha_get_raw_option( 'enable-skope' , 'hu_theme_options');
114
+ define( 'HA_SKOP_ON' , ! is_string( $_skope_enable_val ) || 'yes' == $_skope_enable_val );
115
+ }
116
+ return apply_filters( 'ha_is_skop_on', HA_SKOP_ON && ! ha_isprevdem() && version_compare( $wp_version, '4.7', '>=' ) );
117
+ }
118
+
119
+
120
+
121
+
122
+
123
+
124
+
125
+ function sek_error_log( $title, $content = null ) {
126
+ if ( is_null( $content ) ) {
127
+ error_log( '<' . $title . '>' );
128
+ } else {
129
+ error_log( '<' . $title . '>' );
130
+ error_log( print_r( $content, true ) );
131
+ error_log( '</' . $title . '>' );
132
+ }
133
  }
addons/ha-init.php CHANGED
@@ -1,5 +1,13 @@
1
  <?php
2
  if( ! defined( 'IS_PRESSCUSTOMIZR' ) ) define( 'IS_PRESSCUSTOMIZR' , false );
 
 
 
 
 
 
 
 
3
 
4
  /**
5
  * Fires the plugin or the theme addon
@@ -44,25 +52,6 @@ if ( ! class_exists( 'HU_AD' ) ) :
44
  self::$theme_name = $this -> ha_get_theme_name();
45
 
46
  //did_action('plugins_loaded') ?
47
-
48
- if( ! defined( 'HA_BASE_PATH' ) ) define( 'HA_BASE_PATH' , trailingslashit( dirname( dirname( __FILE__ ) ) ) );
49
-
50
- /* ------------------------------------------------------------------------- *
51
- * Loads Functions
52
- /* ------------------------------------------------------------------------- */
53
- require_once( HA_BASE_PATH . 'addons/ha-functions.php' );
54
-
55
- //are we in pro theme?
56
- if ( defined( 'HU_IS_PRO' ) && HU_IS_PRO ) {
57
- if( ! defined( 'HA_BASE_URL' ) ) define( 'HA_BASE_URL' , HU_BASE_URL );
58
- } else {
59
- if( ! defined( 'HA_BASE_URL' ) ) define( 'HA_BASE_URL' , trailingslashit( plugins_url( basename( dirname( __DIR__ ) ) ) ) );
60
- }
61
- //'enable-skope' option can take two string values : "yes" and "no".
62
- //If the option is not set yet, which is the most common case, it means that it is enabled ( @see default value == "yes" when registering the setting )
63
- $_skope_enable_val = ha_get_raw_option( 'enable-skope' , 'hu_theme_options');
64
- if( ! defined( 'HA_SKOP_ON' ) ) define( 'HA_SKOP_ON' , ! is_string( $_skope_enable_val ) || 'yes' == $_skope_enable_val );
65
-
66
  //PRO THEME / PRO ADDON ?
67
  $this->is_pro_theme = ( ! defined( 'HU_IS_PRO_ADDONS' ) || ( defined( 'HU_IS_PRO_ADDONS' ) && false == HU_IS_PRO_ADDONS ) ) && ! defined( 'IS_HUEMAN_ADDONS' );
68
  $this->is_pro_addons = ( defined( 'HU_IS_PRO_ADDONS' ) && false != HU_IS_PRO_ADDONS ) || ( ! did_action('plugins_loaded') && file_exists( HA_BASE_PATH . 'addons/ha-init-pro.php' ) );
@@ -165,66 +154,44 @@ if ( ! class_exists( 'HU_AD' ) ) :
165
  /* ------------------------------------------------------------------------- *
166
  * I am a man in constant sorrow
167
  /* ------------------------------------------------------------------------- */
 
168
  function ha_load() {
169
- /* ------------------------------------------------------------------------- *
170
- * Loads Features
171
- /* ------------------------------------------------------------------------- */
172
- require_once( HA_BASE_PATH . 'addons/sharrre/ha-sharrre.php' );
173
- new HA_Sharrre();
174
- require_once( HA_BASE_PATH . 'addons/shortcodes/ha-shortcodes.php' );
175
- new HA_Shortcodes();
176
- if ( is_admin() && ! $this -> ha_is_customizing() ) {
177
- require_once( HA_BASE_PATH . 'addons/admin/ha-hs-doc.php' );
178
- }
179
 
180
- /* ------------------------------------------------------------------------- *
181
- * Loads Customizer
182
- /* ------------------------------------------------------------------------- */
183
- require_once( HA_BASE_PATH . 'addons/czr/ha-czr.php' );
184
- new HA_Czr();
185
-
186
- /* ------------------------------------------------------------------------- *
187
- * Loads SKOP
188
- /* ------------------------------------------------------------------------- */
189
- if ( $this -> ha_is_skop_on() ) {
190
- if ( defined('CZR_DEV') && true === CZR_DEV ) {
191
- if ( file_exists( HA_BASE_PATH . 'addons/skop/_dev/skop-x-fire.php' ) ) {
192
- require_once( HA_BASE_PATH . 'addons/skop/_dev/skop-x-fire.php' );
193
- }
194
- } else {
195
- require_once( HA_BASE_PATH . 'addons/skop/czr-skop.php' );
 
 
 
 
 
 
 
196
  }
197
- }
198
- /* ------------------------------------------------------------------------- *
199
- * Loads PRO
200
- /* ------------------------------------------------------------------------- */
201
- if ( $this -> ha_is_pro_addons() || $this -> ha_is_pro_theme() ) {
202
- require_once( HA_BASE_PATH . 'addons/ha-init-pro.php' );
203
- }
204
- /* ------------------------------------------------------------------------- *
205
- * Print customizer infos
206
- /* ------------------------------------------------------------------------- */
207
- if ( ! $this -> ha_is_skop_on() ) {
208
- if ( defined( 'CZR_PRINT_CUSTOMIZER_DATA_WHEN_SKOPE_DISABLED') && CZR_PRINT_CUSTOMIZER_DATA_WHEN_SKOPE_DISABLED ) {
209
- if ( file_exists( HA_BASE_PATH . 'addons/_dev_print_customizer_data.php' ) ) {
210
- require_once( HA_BASE_PATH . 'addons/_dev_print_customizer_data.php' );
211
- function ha_instantiate_customizer_logs() {
212
- if ( class_exists( 'HA_dev_customizer_data') ) {
213
- new HA_dev_customizer_data(
214
- array(
215
- 'hook' => '__header_after_container_inner',
216
- 'display_header' => true,
217
- //'tested_option' => 'header_image'
218
- )
219
-
220
- );
221
- }
222
- }
223
- add_action('hu_hueman_loaded', 'ha_instantiate_customizer_logs', 100 );
224
- }
225
- }
226
- }
227
- }
228
 
229
 
230
  function ha_plugin_lang() {
@@ -338,14 +305,6 @@ if ( ! class_exists( 'HU_AD' ) ) :
338
  ) );
339
  }
340
 
341
- //@return bool
342
- //skop shall not be activated when previewing the theme from the customizer
343
- function ha_is_skop_on() {
344
- global $wp_version;
345
- if ( $this -> ha_isprevdem() )
346
- return;
347
- return apply_filters( 'ha_is_skop_on', HA_SKOP_ON && version_compare( $wp_version, '4.7', '>=' ) );
348
- }
349
 
350
 
351
  //Check the existence of the 'changeset_uuid' method in the WP_Customize_Manager to state if the changeset feature is
@@ -357,22 +316,6 @@ if ( ! class_exists( 'HU_AD' ) ) :
357
  }
358
 
359
 
360
- //@return bool
361
- function ha_isprevdem() {
362
- global $wp_customize;
363
- $is_dirty = false;
364
-
365
- if ( is_object( $wp_customize ) && method_exists( $wp_customize, 'unsanitized_post_values' ) ) {
366
- $real_cust = $wp_customize -> unsanitized_post_values( array( 'exclude_changeset' => true ) );
367
- $_preview_index = array_key_exists( 'customize_messenger_channel' , $_POST ) ? $_POST['customize_messenger_channel'] : '';
368
- $_is_first_preview = false !== strpos( $_preview_index ,'-0' );
369
- $_doing_ajax_partial = array_key_exists( 'wp_customize_render_partials', $_POST );
370
- //There might be cases when the unsanitized post values contains old widgets infos on initial preview load, giving a wrong dirtyness information
371
- $is_dirty = ( ! empty( $real_cust ) && ! $_is_first_preview ) || $_doing_ajax_partial;
372
- }
373
- return apply_filters( 'hu_isprevdem', ! $is_dirty && ha_get_raw_option( 'template', null, false ) != get_stylesheet() && ! is_child_theme() && ! ( defined('HU_IS_PRO') && HU_IS_PRO ) );
374
- }
375
-
376
  //hook : wp_head
377
  //only on front end and if user is logged-in
378
  function hu_admin_style() {
@@ -421,6 +364,210 @@ function ha_error_log( $data ) {
421
  }
422
 
423
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
424
  //Creates a new instance
425
  function HU_AD() {
426
  return HU_AD::ha_get_instance();
1
  <?php
2
  if( ! defined( 'IS_PRESSCUSTOMIZR' ) ) define( 'IS_PRESSCUSTOMIZR' , false );
3
+ if( ! defined( 'HA_BASE_PATH' ) ) define( 'HA_BASE_PATH' , trailingslashit( dirname( dirname( __FILE__ ) ) ) );
4
+
5
+ //are we in pro theme?
6
+ if ( defined( 'HU_IS_PRO' ) && HU_IS_PRO ) {
7
+ if( ! defined( 'HA_BASE_URL' ) ) define( 'HA_BASE_URL' , HU_BASE_URL );
8
+ } else {
9
+ if( ! defined( 'HA_BASE_URL' ) ) define( 'HA_BASE_URL' , trailingslashit( plugins_url( basename( dirname( __DIR__ ) ) ) ) );
10
+ }
11
 
12
  /**
13
  * Fires the plugin or the theme addon
52
  self::$theme_name = $this -> ha_get_theme_name();
53
 
54
  //did_action('plugins_loaded') ?
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
  //PRO THEME / PRO ADDON ?
56
  $this->is_pro_theme = ( ! defined( 'HU_IS_PRO_ADDONS' ) || ( defined( 'HU_IS_PRO_ADDONS' ) && false == HU_IS_PRO_ADDONS ) ) && ! defined( 'IS_HUEMAN_ADDONS' );
57
  $this->is_pro_addons = ( defined( 'HU_IS_PRO_ADDONS' ) && false != HU_IS_PRO_ADDONS ) || ( ! did_action('plugins_loaded') && file_exists( HA_BASE_PATH . 'addons/ha-init-pro.php' ) );
154
  /* ------------------------------------------------------------------------- *
155
  * I am a man in constant sorrow
156
  /* ------------------------------------------------------------------------- */
157
+ // fired @__construct()
158
  function ha_load() {
159
+ /* ------------------------------------------------------------------------- *
160
+ * Loads Features
161
+ /* ------------------------------------------------------------------------- */
162
+ require_once( HA_BASE_PATH . 'addons/sharrre/ha-sharrre.php' );
163
+ new HA_Sharrre();
164
+ require_once( HA_BASE_PATH . 'addons/shortcodes/ha-shortcodes.php' );
165
+ new HA_Shortcodes();
166
+ if ( is_admin() && ! $this -> ha_is_customizing() ) {
167
+ require_once( HA_BASE_PATH . 'addons/admin/ha-hs-doc.php' );
168
+ }
169
 
170
+ /* ------------------------------------------------------------------------- *
171
+ * Loads Customizer
172
+ /* ------------------------------------------------------------------------- */
173
+ require_once( HA_BASE_PATH . 'addons/czr/ha-czr.php' );
174
+ new HA_Czr();
175
+
176
+ /* ------------------------------------------------------------------------- *
177
+ * Loads OLD SKOP
178
+ /* ------------------------------------------------------------------------- */
179
+ // if ( ha_is_skop_on() ) {
180
+ // if ( defined('CZR_DEV') && true === CZR_DEV ) {
181
+ // if ( file_exists( HA_BASE_PATH . 'addons/skop/_dev/skop-x-fire.php' ) ) {
182
+ // require_once( HA_BASE_PATH . 'addons/skop/_dev/skop-x-fire.php' );
183
+ // }
184
+ // } else {
185
+ // require_once( HA_BASE_PATH . 'addons/skop/czr-skop.php' );
186
+ // }
187
+ // }
188
+ /* ------------------------------------------------------------------------- *
189
+ * Loads PRO
190
+ /* ------------------------------------------------------------------------- */
191
+ if ( $this -> ha_is_pro_addons() || $this -> ha_is_pro_theme() ) {
192
+ require_once( HA_BASE_PATH . 'addons/ha-init-pro.php' );
193
  }
194
+ }//ha_load()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
195
 
196
 
197
  function ha_plugin_lang() {
305
  ) );
306
  }
307
 
 
 
 
 
 
 
 
 
308
 
309
 
310
  //Check the existence of the 'changeset_uuid' method in the WP_Customize_Manager to state if the changeset feature is
316
  }
317
 
318
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
319
  //hook : wp_head
320
  //only on front end and if user is logged-in
321
  function hu_admin_style() {
364
  }
365
 
366
 
367
+
368
+
369
+
370
+
371
+ /* ------------------------------------------------------------------------- *
372
+ * LOADS CZR BASE FMK
373
+ /* ------------------------------------------------------------------------- */
374
+ // czr base fmk is loaded @after_setup_theme:10 in Nimble
375
+ add_action( 'after_setup_theme', 'hu_load_czr_base_fmk', 15 );
376
+ function hu_load_czr_base_fmk() {
377
+ if ( did_action( 'nimble_base_fmk_loaded' ) ) {
378
+ error_log('Hueman Pro Addons => The czr_base_fmk has already been loaded');
379
+ return;
380
+ }
381
+ require_once( HA_BASE_PATH . '/inc/czr-base-fmk/czr-base-fmk.php' );
382
+ \hu_czr_fmk\CZR_Fmk_Base( array(
383
+ 'base_url' => HA_BASE_URL . 'inc/czr-base-fmk',
384
+ 'version' => defined( 'HUEMAN_VER' ) ? HUEMAN_VER : time()
385
+ ));
386
+ }
387
+
388
+
389
+
390
+
391
+
392
+
393
+
394
+
395
+
396
+
397
+
398
+
399
+
400
+
401
+
402
+
403
+
404
+ /* ------------------------------------------------------------------------- *
405
+ * LOADS SKOPE DEPENDANT COMPONENTS
406
+ /* ------------------------------------------------------------------------- */
407
+ // FUNCTION ha_is_skop_on() is declared in /addons/ha-functions.php
408
+ // function ha_is_skop_on() {
409
+ // global $wp_version;
410
+ // if( ! defined( 'HA_SKOP_ON' ) ) {
411
+ // //'enable-skope' option can take two string values : "yes" and "no".
412
+ // //If the option is not set yet, which is the most common case, it means that it is enabled ( @see default value == "yes" when registering the setting )
413
+ // $_skope_enable_val = ha_get_raw_option( 'enable-skope' , 'hu_theme_options');
414
+ // define( 'HA_SKOP_ON' , ! is_string( $_skope_enable_val ) || 'yes' == $_skope_enable_val );
415
+ // }
416
+ // return apply_filters( 'ha_is_skop_on', HA_SKOP_ON && ! ha_isprevdem() && version_compare( $wp_version, '4.7', '>=' ) );
417
+ // }
418
+
419
+
420
+
421
+
422
+
423
+
424
+ /* ------------------------------------------------------------------------- *
425
+ * BODY BG + HEADER SLIDER => DYNAMICALLY REGISTER settings prefixed with '_contextualizer_ui_'
426
+ /* ------------------------------------------------------------------------- */
427
+ add_filter( 'customize_dynamic_setting_args', 'hu_ad_set_contextualized_modules_setting_args', 10, 2 );
428
+ function hu_ad_set_contextualized_modules_setting_args( $setting_args, $setting_id ) {
429
+ //error_log( 'hu_ad_set_contextualized_modules_setting_args => DYN REGISTRATION => ' . $setting_id );
430
+ // _contextualizer_ui_ => @see in ::registerBodyBGmoduleSettingControl()
431
+ if ( 0 === strpos( $setting_id, '_contextualizer_ui_' ) ) {
432
+ //sek_error_log( 'DYNAMICALLY REGISTERING SEK SETTING => ' . $setting_id );
433
+ return array(
434
+ 'transport' => 'refresh',
435
+ 'type' => '_contextualizer_ui_',//won't be saved as is,
436
+ 'default' => array()
437
+ );
438
+ }
439
+ return $setting_args;
440
+ }
441
+
442
+
443
+
444
+
445
+ /* ------------------------------------------------------------------------- *
446
+ * Add filters for tc_theme_options when using the contextualizer
447
+ * action "ctx_set_filters_for_opt_group_{$opt_group}" is declared in the contextualizer module => Contx_Options::ctx_setup_option_filters()
448
+ /* ------------------------------------------------------------------------- */
449
+ add_action( "ctx_set_filters_for_opt_group___hu_theme_options" , 'hu_add_support_for_contextualizer');
450
+ // hook ctx_set_filters_for_opt_group___tc_theme_options
451
+ // @param $opt_names = array() of Customizr options short name
452
+ function hu_add_support_for_contextualizer( $opt_names = array() ) {
453
+ //sek_error_log( '$opt_names ? ', $opt_names );
454
+ if ( ! is_array( $opt_names ) || ! function_exists( 'ctx_get_opt_val' ) )
455
+ return;
456
+
457
+ foreach ( $opt_names as $opt_name ) {
458
+ // filter declared in /wp-content/themes/hueman/functions/class-utils.php
459
+ // apply_filters( "hu_opt_{$option_name}" , $_single_opt , $option_name , $option_group, $_default_val );
460
+ add_filter( "hu_opt_{$opt_name}", function( $opt_value, $opt_name ) {
461
+ return ctx_get_opt_val( $opt_value, $opt_name, 'hu_theme_options' );
462
+ }, 100, 2 );
463
+ }
464
+ }
465
+
466
+
467
+ if ( ha_is_skop_on() ) {
468
+ /* ------------------------------------------------------------------------- *
469
+ * RUN BACKWARD COMPATIBILITY
470
+ /* ------------------------------------------------------------------------- */
471
+ $contx_update_status = get_option('hu_contx_update_june_2018_status');
472
+ // If the backward compat has been done properly, the $contx_update_status should take the following values :
473
+ // 1) '_nothing_to_map_' => when the user started using the theme after the contx update (june 2018), or if the previous skoping had not been used
474
+ // 2) '_mapping_done_' => each new skope posts have been written and their corresponding theme mod set. @see ctx_update_skope_post() function
475
+ // 3) '_error_when_mapping_' => if a problem occured when creating one of the new skope post
476
+ if ( '_error_when_mapping_' === $contx_update_status || ( '_nothing_to_map_' !== $contx_update_status && '_mapping_done_' !== $contx_update_status ) || isset($_GET['rewrite_new_contx_options'] ) ) {
477
+ require_once( HA_BASE_PATH . 'addons/ha-backward-compatibility-after-setup-theme-40.php' );
478
+ }
479
+
480
+ /* ------------------------------------------------------------------------- *
481
+ * SYNCHRONIZES THEME MODS IF SWITCHING FROM A HUEMAN THEME TO ANOTHER ( hueman free to hueman pro, hueman to hueman child, ... )
482
+ /* ------------------------------------------------------------------------- */
483
+ //sek_error_log('theme_mods_hueman-pro', get_option('theme_mods_hueman-pro') );
484
+ $current_stylesheet = get_stylesheet();
485
+ // this $_GET params allows us to force a re-sync with a given stylesheet slug.
486
+ $stylesheet_synced = isset( $_GET['sync_contx_with_stylesheet'] ) ? $_GET['sync_contx_with_stylesheet'] : get_option( 'hu_contx_theme_mods_synced_for_stylesheet' );
487
+ if ( $current_stylesheet != $stylesheet_synced ) {
488
+ // May be copy the contx theme mods from the previous stylesheet
489
+ if ( false != $stylesheet_synced && ! empty( $stylesheet_synced ) ) {
490
+ $previous_theme_mods = get_option( "theme_mods_{$stylesheet_synced}");
491
+
492
+ if ( is_array( $previous_theme_mods ) ) {
493
+ foreach ( $previous_theme_mods as $mod_id => $mod_value ) {
494
+ // the contx theme mods id starts with 'skp__*'
495
+ if ( false === strpos( $mod_id, 'skp__') )
496
+ continue;
497
+ // write the contx hueman theme mod in the hueman pro theme mods
498
+ set_theme_mod( $mod_id, $mod_value );// the $mod_value is a post id for each skope
499
+ }
500
+ }
501
+ }
502
+ // And set the option with the current stylesheet
503
+ update_option( 'hu_contx_theme_mods_synced_for_stylesheet', $current_stylesheet );
504
+ }
505
+
506
+
507
+ /* ------------------------------------------------------------------------- *
508
+ * LOADS SKOPE
509
+ /* ------------------------------------------------------------------------- */
510
+ // skope is loaded @after_setup_theme:10 in Nimble
511
+ add_action( 'after_setup_theme', 'hu_load_skope', 20 );
512
+ function hu_load_skope() {
513
+ if ( did_action( 'nimble_skope_loaded' ) ) {
514
+ error_log('Hueman Pro Addons => The skope has already been loaded');
515
+ return;
516
+ }
517
+ require_once( HA_BASE_PATH . 'inc/czr-skope/index.php' );
518
+ \hueman_skp\Flat_Skop_Base( array(
519
+ 'base_url_path' => HA_BASE_URL . '/inc/czr-skope'
520
+ ) );
521
+ }
522
+
523
+
524
+ /* ------------------------------------------------------------------------- *
525
+ * LOADS CONTEXTUALIZER
526
+ /* ------------------------------------------------------------------------- */
527
+ require_once( HA_BASE_PATH . 'contextualizer/ccat-contextualizer.php' );
528
+ // If in hueman-pro-addons or in hueman-pro theme
529
+ // add_action('hu_hueman_loaded', function() {
530
+ // Flat_Skop_Base();
531
+ // });
532
+ // Note : skope dependant. skope is loaded @after_setup_theme:30
533
+ add_action('after_setup_theme', 'hu_load_contextualizer', 30 );
534
+ function hu_load_contextualizer() {
535
+ Contx( array(
536
+ 'base_url_path' => HA_BASE_URL . '/contextualizer'
537
+ ) );
538
+ }
539
+
540
+
541
+
542
+
543
+ /* ------------------------------------------------------------------------- *
544
+ * add the body-background to the collection of filtrable candidates
545
+ /* ------------------------------------------------------------------------- */
546
+ add_filter( 'ctx_filtrable_candidates_before_setting_up_option_filters', 'hu_ad_add_body_bg_to_filtrable_candidates' );
547
+ function hu_ad_add_body_bg_to_filtrable_candidates( $filtrable_candidates) {
548
+ if ( ! ctx_we_can_contextualize_not_wp_core_options() )
549
+ return $filtrable_candidates;
550
+
551
+ if ( !empty( $filtrable_candidates[ 'multidim_options' ] ) ) {
552
+ if ( !empty( $filtrable_candidates[ 'multidim_options' ][ 'hu_theme_options'] ) ) {
553
+ $filtrable_candidates[ 'multidim_options' ][ 'hu_theme_options'][] = 'body-background';
554
+ }
555
+ }
556
+
557
+ return $filtrable_candidates;
558
+ }
559
+ }//if ( ha_is_skop_on() )
560
+
561
+
562
+
563
+
564
+
565
+
566
+
567
+
568
+
569
+
570
+
571
  //Creates a new instance
572
  function HU_AD() {
573
  return HU_AD::ha_get_instance();
addons/skop/czr-skop.php DELETED
@@ -1,3490 +0,0 @@
1
- <?php
2
- function ha_get_skope_theme_name() {
3
- $_theme = wp_get_theme();
4
- $_theme = $_theme -> parent() ? $_theme -> parent() : $_theme;
5
- $theme_name = strtolower( $_theme -> name );// wp_get_theme() -> name is uppercase and has spaces. Example : Hueman Pro
6
-
7
- if ( false !== strpos( $theme_name, 'hueman' ) ) {
8
- $theme_name = 'hueman';
9
- } else if ( false !== strpos( $theme_name, 'customizr' ) ) {
10
- $theme_name = 'customizr';
11
- } else {
12
- $theme_name = str_replace(' ', '_', $theme_name );
13
- }
14
- return $theme_name;
15
- }
16
-
17
-
18
- /* ------------------------------------------------------------------------- *
19
- * MAYBE REGISTER CHANGESET POST TYPE IF WP < 4.7
20
- /* ------------------------------------------------------------------------- */
21
- if ( ! post_type_exists( 'czr_skope_opt') ) {
22
- register_post_type( 'czr_skope_opt', array(
23
- 'labels' => array(
24
- 'name' => _x( 'Hueman scopes', 'post type general name', 'hueman-addons' ),
25
- 'singular_name' => _x( 'Hueman scope', 'post type singular name', 'hueman-addons' ),
26
- 'menu_name' => _x( 'Hueman scopes', 'admin menu', 'hueman-addons' ),
27
- 'name_admin_bar' => _x( 'Hueman scope', 'add new on admin bar', 'hueman-addons' ),
28
- 'add_new' => _x( 'Add New', 'Customize Hueman scope', 'hueman-addons' ),
29
- 'add_new_item' => __( 'Add New Hueman scope', 'hueman-addons' ),
30
- 'new_item' => __( 'New Hueman scope', 'hueman-addons' ),
31
- 'edit_item' => __( 'Edit Hueman scope', 'hueman-addons' ),
32
- 'view_item' => __( 'View Hueman scope', 'hueman-addons' ),
33
- 'all_items' => __( 'All Hueman scopes', 'hueman-addons' ),
34
- 'search_items' => __( 'Search Hueman scopes', 'hueman-addons' ),
35
- 'not_found' => __( 'No Hueman scopes found.', 'hueman-addons' ),
36
- 'not_found_in_trash' => __( 'No Hueman scopes found in Trash.', 'hueman-addons' ),
37
- ),
38
- 'public' => false,
39
- '_builtin' => false,
40
- 'map_meta_cap' => true,
41
- 'hierarchical' => false,
42
- 'rewrite' => false,
43
- 'query_var' => false,
44
- 'can_export' => false,
45
- 'delete_with_user' => false,
46
- 'supports' => array( 'title', 'author' ),
47
- 'capability_type' => 'customize_changeset',
48
- 'capabilities' => array(
49
- 'create_posts' => 'customize',
50
- 'delete_others_posts' => 'customize',
51
- 'delete_post' => 'customize',
52
- 'delete_posts' => 'customize',
53
- 'delete_private_posts' => 'customize',
54
- 'delete_published_posts' => 'customize',
55
- 'edit_others_posts' => 'customize',
56
- 'edit_post' => 'customize',
57
- 'edit_posts' => 'customize',
58
- 'edit_private_posts' => 'customize',
59
- 'edit_published_posts' => 'do_not_allow',
60
- 'publish_posts' => 'customize',
61
- 'read' => 'read',
62
- 'read_post' => 'customize',
63
- 'read_private_posts' => 'customize',
64
- ),
65
- ) );
66
- }
67
-
68
-
69
-
70
-
71
- /* ------------------------------------------------------------------------- *
72
- * CREATE SKOPE POST AND SAVE IT AS OPTION IF NEEDED
73
- /* ------------------------------------------------------------------------- */
74
- add_action( 'init', 'ha_create_skope_post');
75
- function ha_create_skope_post( $reset = false ) {
76
- $post_id = $reset ? false : get_option('skope-post-id');
77
-
78
- if ( false !== $post_id ) {
79
- $skope_post = get_post( $post_id );
80
- if ( false != $skope_post )
81
- return;
82
- }
83
- $post_array = array();
84
- $post_array['post_type'] = 'czr_skope_opt';
85
- $post_array['post_name'] = ha_get_skope_theme_name() . '_skope_post';
86
- $post_array['post_status'] = 'publish';
87
- $r = wp_insert_post( wp_slash( $post_array ), true );
88
- if ( ! is_wp_error( $r ) ) {
89
- update_option( 'skope-post-id', $r );
90
- return $r;
91
- } else {
92
- wp_die('ERROR : SKOPE POST IMPOSSIBLE TO CREATE in ha_create_skope_post().');
93
- }
94
-
95
- }
96
-
97
-
98
- /* ------------------------------------------------------------------------- *
99
- * PLUGINS COMPAT
100
- /* ------------------------------------------------------------------------- */
101
- if ( ha_is_plugin_active('polylang/polylang.php') || ha_is_plugin_active('polylang-pro/polylang.php') ) {
102
- add_filter( 'ha_skope_navmenu', '__return_false' );
103
- add_filter( 'ha_get_skope_excluded_options', 'ha_exclude_skoped_settings_with_polylang' );
104
- function ha_exclude_skoped_settings_with_polylang( $excluded_list ) {
105
- if ( ! is_array( $excluded_list ) ) {
106
- return array();
107
- }
108
- $excluded_list[] = 'blogname';
109
- $excluded_list[] = 'blogdescription';
110
- return $excluded_list;
111
- }
112
- }
113
-
114
- /* ------------------------------------------------------------------------- *
115
- * MULTISITE COMPAT
116
- /* ------------------------------------------------------------------------- */
117
- /*
118
- * Exclude blog name from skope for multisite subsites
119
- * https://github.com/presscustomizr/hueman-addons/issues/43
120
- */
121
- if ( is_multisite() && ! is_main_site() ) {
122
- add_filter( 'ha_get_skope_excluded_options', 'ha_exclude_skoped_settings_with_multisite' );
123
- function ha_exclude_skoped_settings_with_multisite ( $excluded_list ) {
124
- if ( ! is_array( $excluded_list ) ) {
125
- return array();
126
- }
127
- return array_merge( $excluded_list, array( 'blogname' ) );
128
- }
129
- }
130
-
131
-
132
- /* ------------------------------------------------------------------------- *
133
- * SKOPE HELPERS
134
- /* ------------------------------------------------------------------------- */
135
- /**
136
- * Boolean helper
137
- * @return bool
138
- */
139
- function ha_is_option_skoped( $opt_name ) {
140
- return ! in_array( $opt_name, ha_get_skope_excluded_options() );
141
- }
142
-
143
-
144
-
145
- /**
146
- * Helper : returns a set of options not skoped
147
- * is filtered with the exclusions defined in the customizer setting map
148
- * @return array()
149
- */
150
- function ha_get_skope_excluded_options() {
151
- return apply_filters(
152
- 'ha_get_skope_excluded_options',
153
- array_merge(
154
- array(
155
- 'favicon',
156
- 'featured-posts-include',
157
- 'layout-home',
158
- 'layout-single',
159
- 'layout-archive',
160
- 'layout-archive-category',
161
- 'layout-search',
162
- 'layout-404',
163
- 'layout-page',
164
- 'sidebar-areas',
165
- 'about-page',
166
- 'help-button',
167
- 'show-skope-infos',
168
- 'enable-skope',
169
- 'attachments-in-search',
170
- 'show_on_front',
171
- 'page_on_front',
172
- 'page_for_posts',
173
- 'active_theme',
174
- 'site_icon',
175
- 'custom_css',
176
- 'custom_css_post_id'
177
- ),
178
- ha_get_protected_options()
179
- )
180
- );
181
- }
182
-
183
-
184
- /**
185
- * Helper : define a set protected options. Never reset typically.
186
- * @return array() of opt name
187
- */
188
- function ha_get_protected_options() {
189
- return apply_filters(
190
- 'ha_protected_options',
191
- array(
192
- 'defaults',
193
- 'ver',
194
- 'has_been_copied',
195
- 'last_update_notice',
196
- 'last_update_notice_pro'
197
- )
198
- );
199
- }
200
-
201
- /**
202
- * Boolean helper
203
- * @uses the short option name
204
- * @return bool
205
- */
206
- function ha_is_option_protected( $opt_name ) {
207
- return in_array( $opt_name, ha_get_protected_options() );
208
- }
209
-
210
-
211
- function ha_get_wp_builtins_skoped_options() {
212
- $theme = get_option( 'stylesheet' );
213
- return apply_filters(
214
- 'ha_builtins_skoped_options',
215
- array(
216
- 'blogname',
217
- 'blogdescription',
218
- "theme_mods_{$theme}"
219
- )
220
- );
221
- }
222
-
223
- function ha_get_wp_builtins_skoped_theme_mods() {
224
- $ha_builtins_skoped_theme_mods = array(
225
- 'custom_logo',
226
- 'site_icon',
227
- 'header_image',
228
- 'header_image_data'
229
- );
230
- if ( (bool)apply_filters( 'ha_skope_navmenu', true ) ) {
231
- $ha_builtins_skoped_theme_mods[] = 'nav_menu_locations';
232
- }
233
- return apply_filters('ha_builtins_skoped_theme_mods', $ha_builtins_skoped_theme_mods );
234
- }
235
-
236
-
237
- function ha_is_wp_builtin_skoped_theme_mod( $opt_name ) {
238
- return in_array( $opt_name , ha_get_wp_builtins_skoped_theme_mods() );
239
- }
240
-
241
-
242
-
243
-
244
-
245
-
246
-
247
- /* ------------------------------------------------------------------------- *
248
- * SKOPE MAKE CHANGESET DATA READY FOR FRONT END : used when publishing and previewing
249
- /* ------------------------------------------------------------------------- */
250
- function ha_prepare_skope_changeset_for_front_end( $data ) {
251
- global $wp_customize;
252
- $new_data = array();
253
- $multidimensionals = array();
254
-
255
- foreach ( $data as $raw_setting_id => $setting_data ) {
256
- if ( ! array_key_exists( 'value', $setting_data ) )
257
- continue;
258
-
259
- $setting_id = $raw_setting_id;
260
- if ( isset( $setting_data['type'] ) && 'theme_mod' === $setting_data['type'] ) {
261
-
262
- $namespace_pattern = '/^(?P<stylesheet>.+?)::(?P<setting_id>.+)$/';
263
- if ( preg_match( $namespace_pattern, $raw_setting_id, $matches ) && $wp_customize->get_stylesheet() === $matches['stylesheet'] ) {
264
- $setting_id = $matches['setting_id'];
265
- }
266
- }
267
- if ( _ha_is_wp_setting_multidimensional( $setting_id ) ) {
268
- $setting = $wp_customize->get_setting( $setting_id );
269
- if ( ! $setting || ! $setting->check_capabilities() ) {
270
- ha_error_log( 'In ha_set_settings_values_on_publish_save, ' . $setting_id . ' is not registered in $wp_customize.' );
271
- continue;
272
- }
273
- $new_value = $setting_data['value'];
274
- $set_name = $setting -> id;
275
- $id_data = $setting -> manager -> get_setting( $setting -> id ) -> id_data();
276
- $is_multidimensional = ! empty( $id_data['keys'] );
277
- if ( $is_multidimensional && ! _ha_is_theme_multidimensional_setting( $setting -> id ) ) {
278
- $id_base = $id_data['base'];
279
- $set_name = $id_base;
280
- $multidimensionals[$set_name] = isset( $multidimensionals[$set_name] ) ? $multidimensionals[$set_name] : array();
281
- $root = $multidimensionals[$set_name];
282
- $root = _ha_multidimensional_replace( $root, $id_data['keys'], $new_value );
283
- $new_value = $root;
284
-
285
- $multidimensionals[$set_name] = array_merge( $multidimensionals[$set_name], $new_value );
286
- }
287
- } else {
288
- $new_data[$setting_id] = $setting_data['value'];
289
- }
290
- }
291
- return array_merge( $new_data, $multidimensionals );
292
- }
293
-
294
-
295
-
296
-
297
-
298
-
299
-
300
-
301
-
302
-
303
-
304
-
305
- /* ------------------------------------------------------------------------- *
306
- * SKOPE MULTIDIM HELPERS : used in option class, ajax and preview
307
- /* ------------------------------------------------------------------------- */
308
- function _ha_is_wp_setting_multidimensional( $base_name ) {
309
- $wp_multidimensional_prefix = array( 'sidebars_widgets', 'widget_', 'nav_menu_locations' );
310
- $found_match = false;
311
- foreach ( $wp_multidimensional_prefix as $_prefix ) {
312
- if ( $_prefix != substr($base_name, 0, strlen($_prefix) ) )
313
- continue;
314
- $found_match = true;
315
- }
316
- return $found_match;
317
- }
318
- function _ha_build_multidimensional_db_option( $actual_setting_id, $setting_value ) {
319
- if ( ! is_array( $setting_value ) ) {
320
- ha_error_log( 'IN _ha_build_multidimensional_db_option : $settings_params must be an array for setting_id : ' . $actual_setting_id );
321
- return array();
322
- }
323
- $api_ready = array();
324
- foreach ( $setting_value as $key => $value) {
325
- $new_key = implode( array( $actual_setting_id, '[', $key , ']') );
326
- $api_ready[$new_key] = $value;
327
- }
328
- return $api_ready;
329
- }
330
-
331
-
332
- /**
333
- * Will attempt to replace a specific value in a multidimensional array.
334
- *
335
- * @since 3.4.0
336
- *
337
- * @param $root
338
- * @param $keys
339
- * @param mixed $value The value to update.
340
- * @return mixed
341
- */
342
- function _ha_multidimensional_replace( $root, $keys, $value ) {
343
- if ( ! isset( $value ) )
344
- return $root;
345
- elseif ( empty( $keys ) ) // If there are no keys, we're replacing the root.
346
- return $value;
347
-
348
- $result = ha_multidimensional( $root, $keys, true );
349
-
350
- if ( isset( $result ) )
351
- $result['node'][ $result['key'] ] = $value;
352
-
353
- return $root;
354
- }
355
-
356
-
357
- /**
358
- * Multidimensional helper function.
359
- *
360
- * @since 3.4.0
361
- *
362
- * @param $root
363
- * @param $keys
364
- * @param bool $create Default is false.
365
- * @return array|void Keys are 'root', 'node', and 'key'.
366
- */
367
- function ha_multidimensional( &$root, $keys, $create = false ) {
368
- if ( $create && empty( $root ) )
369
- $root = array();
370
-
371
- if ( ! isset( $root ) || empty( $keys ) )
372
- return;
373
-
374
- $last = array_pop( $keys );
375
- $node = &$root;
376
-
377
- foreach ( $keys as $key ) {
378
- if ( $create && ! isset( $node[ $key ] ) )
379
- $node[ $key ] = array();
380
-
381
- if ( ! is_array( $node ) || ! isset( $node[ $key ] ) )
382
- return;
383
-
384
- $node = &$node[ $key ];
385
- }
386
-
387
- if ( $create ) {
388
- if ( ! is_array( $node ) ) {
389
- $node = array();
390
- }
391
- if ( ! isset( $node[ $last ] ) ) {
392
- $node[ $last ] = array();
393
- }
394
- }
395
-
396
- if ( ! isset( $node[ $last ] ) )
397
- return;
398
-
399
- return array(
400
- 'root' => &$root,
401
- 'node' => &$node,
402
- 'key' => $last,
403
- );
404
- }
405
- function _ha_extract_setting_name( $setting_id ) {
406
- if ( false === strpos( $setting_id, HU_THEME_OPTIONS) )
407
- return $setting_id;
408
- return str_replace(array('[', ']', HU_THEME_OPTIONS ), '', $setting_id);
409
- }
410
-
411
-
412
-
413
- function _ha_is_theme_multidimensional_setting( $setting_id ) {
414
- return false !== strpos( $setting_id, HU_THEME_OPTIONS );
415
- }
416
-
417
-
418
-
419
-
420
-
421
-
422
-
423
-
424
-
425
-
426
-
427
-
428
-
429
-
430
-
431
-
432
-
433
- function ha_get_skope_post_id() {
434
- $skope_post_id = get_option('skope-post-id');
435
- $skope_post = get_post( $skope_post_id );
436
- if ( false == $skope_post_id || ! $skope_post || 'czr_skope_opt' != get_post_type( $skope_post ) ) {
437
- $skope_post_id = ha_create_skope_post( true );
438
- if ( false == $skope_post_id )
439
- wp_die('ERROR : NO SKOPE POST ID AVAILABLE in ha_get_skope_post_id().');
440
- }
441
- return $skope_post_id;
442
- }
443
-
444
-
445
-
446
- /**
447
- * Get the meta skope data stored in a changeset post.
448
- * This function is used both when updating the WP changeset post metas and the theme skope post meta
449
- * @param $args = array()
450
- * @return array|WP_Error Changeset data or WP_Error on error.
451
- */
452
- function ha_get_skope_db_data( $args ) {
453
- $db_data = array();
454
- $defaults = array(
455
- 'post_id' => '',//<= can be our skope post id or the WP changeset post id
456
- 'skope_meta_key' => '',
457
- 'level' => '',
458
- 'is_option_post' => false
459
- );
460
- $args = wp_parse_args( $args, $defaults );
461
-
462
- if ( ! $args['post_id'] ) {
463
- return new WP_Error( 'empty_post_id' );
464
- }
465
- if ( true === $args['is_option_post'] ) {
466
- $skope_option_post = get_post( $args['post_id'] );
467
- if ( ! $skope_option_post ) {
468
- return new WP_Error( 'missing_skope_option_post' );
469
- }
470
- if ( 'czr_skope_opt' !== $skope_option_post->post_type ) {
471
- return new WP_Error( 'wrong_skope_option_post_type' );
472
- }
473
- if ( 'global' == $args['level'] ) {
474
- return new WP_Error( 'global_skope_can_not_be_get_from_the_published_skope_post' );
475
- }
476
- $db_data = get_post_meta( $args['post_id'] , $args['skope_meta_key'], true );
477
-
478
- } else {
479
- $changeset_post = get_post( $args['post_id'] );
480
- if ( ! $changeset_post ) {
481
- return new WP_Error( 'missing_changeset_post' );
482
- }
483
-
484
- if ( 'revision' === $changeset_post->post_type ) {
485
- if ( 'customize_changeset' !== get_post_type( $changeset_post->post_parent ) ) {
486
- return new WP_Error( 'wrong_post_type_for_changeset' );
487
- }
488
- } elseif ( 'customize_changeset' !== $changeset_post->post_type ) {
489
- return new WP_Error( 'wrong_post_type_for_changeset' );
490
- }
491
-
492
- if ( in_array( get_post_status( $args['post_id'] ), array( 'publish', 'trash' ) ) ) {
493
- $db_data = array();
494
- }
495
-
496
- if ( 'global' == $args['level'] ) {
497
- $db_data = json_decode( $changeset_post->post_content, true );
498
- } else {
499
- $db_data = get_post_meta( $args['post_id'] , $args['skope_meta_key'], true );
500
- }
501
-
502
- }
503
- $db_data = ( ! is_array( $db_data ) || empty( $db_data ) || false === $db_data ) ? array() : $db_data;
504
- if ( function_exists( 'json_last_error' ) && json_last_error() ) {
505
- return new WP_Error( 'json_parse_error', '', json_last_error() );
506
- }
507
- if ( ! is_array( $db_data ) ) {
508
- return new WP_Error( 'expected_array_for_changeset_data' );
509
- }
510
- return $db_data;
511
- }
512
- function ha_get_skope_dyn_type( $meta_type ) {
513
- $_map = array(
514
- 'post' => 'post_meta',
515
- 'tax' => 'term_meta',
516
- 'user' => 'user_meta',
517
- );
518
- return isset( $_map[$meta_type] ) ? $_map[$meta_type] : 'trans';
519
- }
520
- function ha_get_dyn_types() {
521
- return apply_filters( 'ha_dyn_types',
522
- array('option','skope_meta')
523
- );
524
- }
525
-
526
-
527
- /**
528
- * Return the current ctx. Front / Back agnostic.
529
- * @param $_requesting_wot is a string with the follwing possible values : 'meta_type' (like post) , 'type' (like page), 'id' (like page id)
530
- * @param $_return_string string param stating if the return value should be a string or an array
531
- * @return a string of all concatenated ctx parts (default) 0R an array of the ctx parts
532
- */
533
- function ha_get_skope( $_requesting_wot = null, $_return_string = true ) {
534
- $parts = ha_get_query_skope();
535
- $_return = array();
536
- $meta_type = $type = $obj_id = '';
537
-
538
- if ( is_array( $parts) && ! empty( $parts ) ) {
539
- $meta_type = isset( $parts['meta_type'] ) ? $parts['meta_type'] : false;
540
- $type = isset( $parts['type'] ) ? $parts['type'] : false;
541
- $obj_id = isset( $parts['obj_id'] ) ? $parts['obj_id'] : false;
542
- }
543
-
544
- switch ( $_requesting_wot ) {
545
- case 'meta_type':
546
- if ( false != $meta_type )
547
- $_return = array( "meta_type" => "{$meta_type}" );
548
- break;
549
-
550
- case 'type':
551
- if ( false != $type )
552
- $_return = array( "type" => "{$type}" );
553
- break;
554
-
555
- case 'id':
556
- if ( false != $obj_id )
557
- $_return = array( "id" => "{$obj_id}" );
558
- break;
559
-
560
- default:
561
- if ( false != $meta_type && false != $obj_id ) {
562
- $_return = array( "meta_type" => "{$meta_type}" , "type" => "{$type}", "id" => "{$obj_id}" );
563
- }
564
- else if ( false != $meta_type && ! $obj_id ) {
565
- $_return = array( "meta_type" => "{$meta_type}", "type" => "{$type}" );
566
- }
567
- else if ( false != $obj_id ) {
568
- $_return = array( "id" => "{$obj_id}" );
569
- }
570
- break;
571
- }
572
- if ( ! $_return_string ) {
573
- return $_return;
574
- }
575
- if ( ! is_array( $_return ) || ( is_array( $_return ) && empty( $_return ) ) )
576
- return '';
577
- if ( ! is_null($_requesting_wot) )
578
- return isset($_return[$_requesting_wot]) ? $_return[$_requesting_wot] : '';
579
- $_concat = "";
580
- foreach ( $_return as $_key => $_part ) {
581
- if ( empty( $_concat) ) {
582
- $_concat .= $_part;
583
- } else {
584
- $_concat .= '_'. $_part;
585
- }
586
- }
587
- return $_concat;
588
- }
589
-
590
-
591
-
592
-
593
- /**
594
- * Contx builder from the wp $query
595
- * !! has to be fired after 'template_redirect'
596
- * Used on front ( not customizing preview ? => @todo make sure of this )
597
- * @return array of ctx parts
598
- */
599
- function ha_get_query_skope() {
600
- global $wp_the_query;
601
- if ( ! isset( $wp_the_query ) || empty( $wp_the_query ) )
602
- return array();
603
-
604
- $current_obj = get_queried_object();
605
- $meta_type = false;
606
- $type = false;
607
- $obj_id = false;
608
-
609
-
610
- if ( is_object( $current_obj ) ) {
611
- if ( isset($current_obj -> post_type) ) {
612
- $meta_type = 'post';
613
- $type = $current_obj -> post_type;
614
- $obj_id = $current_obj -> ID;
615
- }
616
- if ( isset($current_obj -> taxonomy) && isset($current_obj -> term_id) ) {
617
- $meta_type = 'tax';
618
- $type = $current_obj -> taxonomy;
619
- $obj_id = $current_obj -> term_id;
620
- }
621
- }
622
- if ( is_author() ) {
623
- $meta_type = 'user';
624
- $type = 'author';
625
- $obj_id = $wp_the_query ->get( 'author' );
626
- }
627
- if ( is_post_type_archive() ) {
628
- $obj_id = 'post_type_archive' . '_'. $wp_the_query ->get( 'post_type' );
629
- }
630
- if ( is_404() )
631
- $obj_id = '404';
632
- if ( is_search() )
633
- $obj_id = 'search';
634
- if ( is_date() )
635
- $obj_id = 'date';
636
- if ( hu_is_real_home() )
637
- $obj_id = 'home';
638
-
639
- return apply_filters( 'ha_get_query_skope' , array( 'meta_type' => $meta_type , 'type' => $type , 'obj_id' => $obj_id ) , $current_obj );
640
- }
641
-
642
-
643
-
644
-
645
- /**
646
- * Used when localizing the customizer js params
647
- * Can be a post ( post, pages, CPT) , tax(tag, cats, custom taxs), author, date, search page, 404.
648
- * @param $args : array(
649
- * 'level' => string,
650
- * 'meta_type' => string
651
- * 'long' => bool
652
- * 'is_prefixed' => bool //<= indicated if we should add the "Options for" prefix
653
- * )
654
- * @return string title of the current ctx if exists. If not => false.
655
- */
656
- function ha_get_skope_title( $args = array() ) {
657
- $defaults = array(
658
- 'level' => '',
659
- 'meta_type' => null,
660
- 'long' => false,
661
- 'is_prefixed' => true
662
- );
663
-
664
- $args = wp_parse_args( $args, $defaults );
665
-
666
- $level = $args['level'];
667
- $meta_type = $args['meta_type'];
668
- $long = $args['long'];
669
- $is_prefixed = $args['is_prefixed'];
670
-
671
- $_dyn_type = ( HU_AD() -> ha_is_customize_preview_frame() && isset( $_POST['dyn_type']) ) ? $_POST['dyn_type'] : '';
672
- $type = ha_get_skope('type');
673
- $skope = ha_get_skope();
674
- $title = '';
675
-
676
- if( 'local' == $level ) {
677
- $type = ha_get_skope( 'type' );
678
- $title = $is_prefixed ? __( 'Options for', 'hueman-addons' ) . ' ' : $title;
679
- if ( ha_skope_has_a_group( $meta_type ) ) {
680
- $_id = ha_get_skope('id');
681
- switch ($meta_type) {
682
- case 'post':
683
- $type_obj = get_post_type_object( $type );
684
- $title .= sprintf( '%1$s "%3$s" (id : %2$s)', strtolower( $type_obj -> labels -> singular_name ), $_id, get_the_title( $_id ) );
685
- break;
686
-
687
- case 'tax':
688
- $type_obj = get_taxonomy( $type );
689
- $term = get_term( $_id, $type );
690
- $title .= sprintf( '%1$s "%3$s" (id : %2$s)', strtolower( $type_obj -> labels -> singular_name ), $_id, $term -> name );
691
- break;
692
-
693
- case 'user':
694
- $author = get_userdata( $_id );
695
- $title .= sprintf( '%1$s "%3$s" (id : %2$s)', __('user', 'hueman-addons'), $_id, $author -> user_login );
696
- break;
697
- }
698
- } else if ( ( 'trans' == $_dyn_type || ha_skope_has_no_group( $skope ) ) ) {
699
- if ( is_post_type_archive() ) {
700
- global $wp_the_query;
701
- $title .= sprintf( __( '%1$s archive page', 'hueman-addons' ), $wp_the_query ->get( 'post_type' ) );
702
- } else {
703
- $title .= strtolower( $skope );
704
- }
705
- } else {
706
- $title .= __( 'Undefined', 'hueman-addons' );
707
- }
708
- }
709
- if ( 'group' == $level || 'special_group' == $level ) {
710
- $title = $is_prefixed ? __( 'Options for all', 'hueman-addons' ) . ' ' : __( 'All' , 'hueman-adons' ) . ' ';
711
- switch( $meta_type ) {
712
- case 'post' :
713
- $type_obj = get_post_type_object( $type );
714
- $title .= strtolower( $type_obj -> labels -> name );
715
- break;
716
-
717
- case 'tax' :
718
- $type_obj = get_taxonomy( $type );
719
- $title .= strtolower( $type_obj -> labels -> name );
720
- break;
721
-
722
- case 'user' :
723
- $title .= __('users', 'hueman-addons');
724
- break;
725
- }
726
- }
727
- if ( 'global' == $level ) {
728
- $title = __( 'Sitewide options', 'hueman-addons' );
729
- }
730
- $title = ucfirst( $title );
731
- return ha_trim_text( $title, $long ? 45 : 28, '...');
732
- }
733
- function ha_skope_has_no_group( $meta_type ) {
734
- return in_array(
735
- $meta_type,
736
- array( 'home', 'search', '404', 'date' )
737
- ) || is_post_type_archive();
738
- }
739
- function ha_skope_has_a_group( $meta_type ) {
740
- return in_array(
741
- $meta_type,
742
- array('post', 'tax', 'user')
743
- );
744
- }
745
- function _ha_get_default_scope_model() {
746
- return array(
747
- 'title' => '',
748
- 'long_title' => '',
749
- 'ctx_title' => '',
750
- 'id' => '',
751
- 'skope' => '',
752
- 'level' => '',
753
- 'dyn_type' => '',
754
- 'opt_name' => '',
755
- 'obj_id' => '',
756
- 'is_winner' => false,
757
- 'is_forced' => false,
758
- 'db' => array(),
759
- 'changeset' => array(),
760
- 'has_db_val' => false,
761
- 'color' => 'rgb(255, 255, 255)'
762
- );
763
- }
764
-
765
-
766
-
767
- /* ------------------------------------------------------------------------- *
768
- * SKOPIFY LAYOUT CLASS
769
- /* ------------------------------------------------------------------------- */
770
- add_filter('hu_enable_singular_layout_meta_box', '__return_false');
771
- add_filter( 'hu_layout_class', 'hu_skopify_layout_class' , 10, 2 );
772
- function hu_skopify_layout_class( $layout, $has_post_meta ) {
773
- if ( ! is_singular() )
774
- return hu_get_option( 'layout-global' );
775
-
776
- global $post;
777
- $skopified_meta = get_post_meta( $post->ID,'_layout_skopified',true );
778
- $is_skopified = isset($skopified_meta) && true == $skopified_meta;
779
- if ( ! $has_post_meta || $is_skopified ) {
780
- return hu_get_option( 'layout-global' );
781
- }
782
-
783
- return $layout;
784
- }
785
- add_action( 'wp', 'hu_skopify_singular_layout', 0 );
786
- function hu_skopify_singular_layout() {
787
- if ( ! current_user_can( 'edit_theme_options' ) )
788
- return;
789
- if ( ! is_singular() )
790
- return;
791
-
792
- global $post;
793
-
794
- $old_meta_val = get_post_meta( $post->ID,'_layout',true );
795
- $has_post_meta = isset($old_meta_val) && ! empty($old_meta_val) && $old_meta_val != 'inherit';
796
- if ( ! $has_post_meta )
797
- return;
798
-
799
- $skopified_meta = get_post_meta( $post->ID,'_layout_skopified',true );
800
-
801
- if ( isset($skopified_meta) && true == $skopified_meta )
802
- return;
803
-
804
- $skope_post_id = ha_get_skope_post_id();
805
- $theme_opt_name = strtolower( HU_THEME_OPTIONS );
806
- $meta_key = HA_SKOP_OPT() -> ha_get_skope_opt_name( 'local');
807
-
808
- $skope_meta_values = get_post_meta( $skope_post_id, $meta_key, true );
809
- $skope_meta_values = ( ! $skope_meta_values || ! is_array( $skope_meta_values ) ) ? array() : $skope_meta_values;
810
-
811
- $skope_meta_values["{$theme_opt_name}[layout-global]"] = $old_meta_val;
812
- update_post_meta( $skope_post_id, $meta_key, $skope_meta_values );
813
- update_post_meta( $post->ID, '_layout_skopified', true );
814
- }
815
- add_action( 'init', 'hu_skopify_layout_option', 100 );
816
- function hu_skopify_layout_option() {
817
- if ( ! current_user_can( 'edit_theme_options' ) )
818
- return;
819
- if ( true == get_option( 'hu_layout_option_skopified' ) )
820
- return;
821
- $layout_options_map = array(
822
- 'layout-home' => array( 'hueman_czr_home' ),
823
- 'layout-single' => array( 'hueman_czr_all_post' ),
824
- 'layout-archive' => array( 'hueman_czr_all_category', 'hueman_czr_all_post_tag', 'hueman_czr_all_author', 'hueman_czr_date' ),
825
- 'layout-archive-category' => array( 'hueman_czr_all_category' ),
826
- 'layout-search' => array( 'hueman_czr_search'),
827
- 'layout-404' => array( 'hueman_czr_404'),
828
- 'layout-page' => array( 'hueman_czr_all_page')
829
- );
830
- $skope_post_id = ha_get_skope_post_id();
831
- $raw_options = hu_get_raw_option( null, HU_THEME_OPTIONS );
832
- $theme_opt_name = strtolower( HU_THEME_OPTIONS );
833
- foreach ( $layout_options_map as $_short_opt_name => $meta_keys) {
834
- if ( ! array_key_exists( $_short_opt_name, $raw_options ) || 'inherit' == $raw_options[$_short_opt_name] )
835
- continue;
836
- $skope_meta_val = array( "{$theme_opt_name}[layout-global]" => $raw_options[$_short_opt_name] );
837
- foreach ( $meta_keys as $meta_key ) {
838
- update_post_meta( $skope_post_id, $meta_key, $skope_meta_val );
839
- }
840
- }
841
- update_option( 'hu_layout_option_skopified', true );
842
- }
843
- add_filter( 'hu_content_layout_sec', 'ha_deregister_layout_settings' );
844
- function ha_deregister_layout_settings( $settings ) {
845
- $new_settings = array();
846
- $to_remove = array(
847
- 'layout-home',
848
- 'layout-single',
849
- 'layout-archive',
850
- 'layout-archive-category',
851
- 'layout-search',
852
- 'layout-404',
853
- 'layout-page'
854
- );
855
-
856
- foreach ( $settings as $key => $value ) {
857
- if ( in_array($key, $to_remove) )
858
- continue;
859
- $new_settings[$key] = $value;
860
- }
861
- return $new_settings;
862
- }
863
-
864
-
865
-
866
-
867
-
868
-
869
- /* ------------------------------------------------------------------------- *
870
- * DISABLE PARTIAL REFRESH FOR NOW IF SKOPE IS ON
871
- /* ------------------------------------------------------------------------- */
872
- add_filter( 'hu_partial_refresh_on', '__return_true');
873
-
874
-
875
-
876
-
877
-
878
- /* ------------------------------------------------------------------------- *
879
- * @4.9compat
880
- * the changeset_post_id might be the one of the autosave, which is not $wp_customize->changeset_post_id();
881
- /* ------------------------------------------------------------------------- */
882
- function ha_get_real_wp_changeset_post_id() {
883
- global $wp_customize;
884
- $changeset_post_id = $wp_customize->changeset_post_id();
885
- return $changeset_post_id;
886
- }
887
-
888
-
889
-
890
-
891
-
892
-
893
-
894
- /*****************************************************
895
- * ADMIN CONTEXT
896
- *****************************************************/
897
- function ha_get_admin_ctx() {
898
- if ( ! is_admin() )
899
- return array();
900
-
901
- global $tag;
902
- $current_screen = get_current_screen();
903
- $post = get_post();
904
- $meta_type = false;
905
- $type = false;
906
- $obj_id = false;
907
- if ( 'post' == $current_screen->base
908
- && 'add' != $current_screen->action
909
- && ( $post_type_object = get_post_type_object( $post->post_type ) )
910
- && current_user_can( 'read_post', $post->ID )
911
- && ( $post_type_object->public )
912
- && ( $post_type_object->show_in_admin_bar )
913
- && ( 'draft' != $post->post_status ) )
914
- {
915
- $meta_type = 'post';
916
- $type = $post -> post_type;
917
- $obj_id = $post -> ID;
918
- }
919
- elseif ( 'edit-tags' == $current_screen->base
920
- && isset( $tag ) && is_object( $tag )
921
- && ( $tax = get_taxonomy( $tag->taxonomy ) )
922
- && $tax->public )
923
- {
924
- $meta_type = 'tax';
925
- $type = $tag -> taxonomy ;
926
- $obj_id = $tag -> term_id;
927
- }
928
- return apply_filters( 'ha_get_admin_ctx' , array( $meta_type , $type , $obj_id ) );
929
- }
930
-
931
-
932
- function ha_trim_text( $text, $text_length, $more ) {
933
- if ( ! $text )
934
- return '';
935
-
936
- $text = trim( strip_tags( $text ) );
937
-
938
- if ( ! $text_length )
939
- return $text;
940
-
941
- $end_substr = $_text_length = strlen( $text );
942
-
943
- if ( $_text_length > $text_length ){
944
- $end_substr = strpos( $text, ' ' , $text_length);
945
- $end_substr = ( $end_substr !== FALSE ) ? $end_substr : $text_length;
946
- $text = substr( $text , 0 , $end_substr );
947
- }
948
- return ( ( $end_substr < $text_length ) && $more ) ? $text : $text . ' ' .$more ;
949
- }
950
-
951
-
952
-
953
-
954
-
955
-
956
- /* ------------------------------------------------------------------------- *
957
- * DISMISS CUSTOMIZER TOP NOTE AJAX ACTIONS
958
- /* ------------------------------------------------------------------------- */
959
- add_action( 'wp_ajax_czr_dismiss_top_note', 'ha_ajax_czr_dismiss_top_note' );
960
- function ha_ajax_czr_dismiss_top_note() {
961
- global $wp_customize;
962
- if ( ! is_user_logged_in() ) {
963
- wp_send_json_error( 'unauthenticated' );
964
- }
965
- if ( ! current_user_can( 'edit_theme_options' ) ) {
966
- wp_send_json_error('user_cant_edit_theme_options');
967
- }
968
- if ( ! $wp_customize->is_preview() ) {
969
- wp_send_json_error( 'not_preview' );
970
- } else if ( ! current_user_can( 'customize' ) ) {
971
- status_header( 403 );
972
- wp_send_json_error( 'customize_not_allowed' );
973
- } else if ( ! isset( $_SERVER['REQUEST_METHOD'] ) || 'POST' !== $_SERVER['REQUEST_METHOD'] ) {
974
- status_header( 405 );
975
- wp_send_json_error( 'bad_method' );
976
- }
977
- $action = 'save-customize_' . $wp_customize->get_stylesheet();
978
- if ( ! check_ajax_referer( $action, 'nonce', false ) ) {
979
- wp_send_json_error( 'invalid_nonce' );
980
- }
981
- $r = update_option( 'ha_czr_top_note_status', 'dismissed' );
982
- if ( is_wp_error( $r ) ) {
983
- wp_send_json_error( $r->get_error_message() );
984
- } else {
985
- wp_send_json_success();
986
- }
987
- }
988
- ?>
989
- <?php
990
-
991
- /**
992
- * This Class is instantiated on 'plugin_init', declared in /init-skop.php
993
- */
994
- if ( ! class_exists( 'HA_Skop_Chset_Base' ) ) :
995
- class HA_Skop_Chset_Base {
996
-
997
- function __construct() {
998
- add_action( 'wp_ajax_customize_skope_changeset_save', array( $this, 'ha_ajax_skope_changeset_save' ) );
999
- }
1000
-
1001
-
1002
- /* ------------------------------------------------------------------------- *
1003
- * SAVE SKOPE CHANGESET
1004
- * => as a meta of the _temp changeset post if status != "publish"
1005
- * => publishing as a post meta of the skope post will be handled when the WP customize_changeset post will transition to "publish"
1006
- * @see add_action( 'transition_post_status', 'ha_publish_skope_changeset_metas_on_post_status_transition', 0, 3 );
1007
- /* ------------------------------------------------------------------------- */
1008
- /**
1009
- * Handle customize_skope_changet_save WP Ajax request to save/update a changeset.
1010
- *
1011
- */
1012
- function ha_ajax_skope_changeset_save() {
1013
- if ( isset( $_POST['skope']) && 'global' == $_POST['skope'] )
1014
- return wp_send_json_success( 'Global skope changeset is not saved as meta' );
1015
-
1016
- if ( ! isset( $_POST['opt_name']) || ! isset( $_POST['skope_id'] ) || ! isset( $_POST['skopeCustomized'] ) )
1017
- return wp_send_json_error( 'Missing $_POST data to save the changeset skope meta.' );
1018
-
1019
- global $wp_customize;
1020
- if ( ! is_user_logged_in() ) {
1021
- wp_send_json_error( 'unauthenticated' );
1022
- }
1023
-
1024
- if ( ! $wp_customize->is_preview() ) {
1025
- wp_send_json_error( 'not_preview' );
1026
- }
1027
- $action = 'save-customize_' . $wp_customize->get_stylesheet();
1028
- if ( ! check_ajax_referer( $action, 'nonce', false ) ) {
1029
- wp_send_json_error( 'invalid_nonce' );
1030
- }
1031
- $is_publish = null;
1032
- $changeset_status = null;
1033
- if ( isset( $_POST['customize_changeset_status'] ) ) {
1034
- $changeset_status = wp_unslash( $_POST['customize_changeset_status'] );
1035
- if ( ! get_post_status_object( $changeset_status ) || ! in_array( $changeset_status, array( 'draft', 'pending', 'publish', 'future' ), true ) ) {
1036
- wp_send_json_error( 'bad_customize_changeset_status', 400 );
1037
- }
1038
- $is_publish = 'publish' === $changeset_status;
1039
- if ( $is_publish && HU_AD() -> ha_is_changeset_enabled() ) {
1040
- if ( ! current_user_can( get_post_type_object( 'customize_changeset' )->cap->publish_posts ) ) {
1041
- wp_send_json_error( 'changeset_publish_unauthorized', 403 );
1042
- }
1043
- if ( false === has_action( 'transition_post_status', '_wp_customize_publish_changeset' ) ) {
1044
- wp_send_json_error( 'missing_publish_callback', 500 );
1045
- }
1046
- }
1047
- }
1048
- if ( ! $is_publish && ! HU_AD() -> ha_is_changeset_enabled() ) {
1049
- wp_send_json_error( 'changeset_feature_is_not_enabled' );
1050
- }
1051
-
1052
-
1053
- $changeset_post_id = ha_get_real_wp_changeset_post_id();
1054
- if ( $changeset_post_id && in_array( get_post_status( $changeset_post_id ), array( 'publish', 'trash' ) ) ) {
1055
- wp_send_json_error( 'changeset_already_published' );
1056
- }
1057
- if ( ! empty( $_POST['customize_changeset_data'] ) ) {
1058
- $input_changeset_data = json_decode( wp_unslash( $_POST['customize_changeset_data'] ), true );
1059
- if ( ! is_array( $input_changeset_data ) ) {
1060
- wp_send_json_error( 'invalid_customize_changeset_data' );
1061
- }
1062
- } else {
1063
- $input_changeset_data = array();
1064
- }
1065
- $r = $this -> _save_skope_changeset_metas( array(
1066
- 'status' => $changeset_status,
1067
- 'data' => $input_changeset_data,
1068
- ) );
1069
-
1070
- if ( is_wp_error( $r ) ) {
1071
- $response = $r->get_error_data();
1072
- } else {
1073
- $response = $r;
1074
- if ( HU_AD() -> ha_is_changeset_enabled() ) {
1075
- $response['changeset_status'] = get_post_status( ha_get_real_wp_changeset_post_id() );
1076
- }
1077
- }
1078
-
1079
- if ( isset( $response['setting_validities'] ) ) {
1080
- $response['setting_validities'] = array_map( array( $wp_customize, 'prepare_setting_validity_for_js' ), $response['setting_validities'] );
1081
- }
1082
-
1083
- $response = apply_filters( 'customize_save_response', $response, $wp_customize );
1084
-
1085
- if ( is_wp_error( $r ) ) {
1086
- wp_send_json_error( $response );
1087
- } else {
1088
- wp_send_json_success( $response );
1089
- }
1090
- }
1091
- function _ha_validate_setting_values( $setting_values, $options = array() ) {
1092
- global $wp_customize;
1093
- $options = wp_parse_args( $options, array(
1094
- 'validate_capability' => false,
1095
- 'validate_existence' => false,
1096
- ) );
1097
-
1098
- $validities = array();
1099
- foreach ( $setting_values as $setting_id => $unsanitized_value ) {
1100
- $setting = $wp_customize->get_setting( $setting_id );
1101
- if ( ! $setting ) {
1102
- if ( $options['validate_existence'] ) {
1103
- $validities[ $setting_id ] = new WP_Error( 'unrecognized', __( 'Setting does not exist or is unrecognized.', 'hueman-addons' ) );
1104
- }
1105
- continue;
1106
- }
1107
- if ( $options['validate_capability'] && ! current_user_can( $setting->capability ) ) {
1108
- $validity = new WP_Error( 'unauthorized', __( 'Unauthorized to modify setting due to capability.', 'hueman-addons' ) );
1109
- } else {
1110
- if ( is_null( $unsanitized_value ) ) {
1111
- continue;
1112
- }
1113
- $validity = $setting->validate( $unsanitized_value );
1114
- }
1115
- if ( ! is_wp_error( $validity ) ) {
1116
- /** This filter is documented in wp-includes/class-wp-customize-setting.php */
1117
- $late_validity = apply_filters( "customize_validate_{$setting->id}", new WP_Error(), $unsanitized_value, $setting );
1118
- if ( ! empty( $late_validity->errors ) ) {
1119
- $validity = $late_validity;
1120
- }
1121
- }
1122
- if ( ! is_wp_error( $validity ) ) {
1123
- $value = $setting->sanitize( $unsanitized_value );
1124
- if ( is_null( $value ) ) {
1125
- $validity = false;
1126
- } elseif ( is_wp_error( $value ) ) {
1127
- $validity = $value;
1128
- }
1129
- }
1130
- if ( false === $validity ) {
1131
- $validity = new WP_Error( 'invalid_value', __( 'Invalid value.', 'hueman-addons' ) );
1132
- }
1133
- $validities[ $setting_id ] = $validity;
1134
- }
1135
- return $validities;
1136
- }
1137
- }//class
1138
- endif;
1139
-
1140
- ?><?php
1141
- /* ------------------------------------------------------------------------- *
1142
- * SAVE SKOPE CHANGESET
1143
- * => as a meta of the _temp changeset post if status != "publish"
1144
- /* ------------------------------------------------------------------------- */
1145
- if ( ! class_exists( 'HA_Skop_Chset_Save' ) ) :
1146
- class HA_Skop_Chset_Save extends HA_Skop_Chset_Base {
1147
-
1148
- function __construct() {
1149
- parent::__construct();
1150
- }
1151
-
1152
- function _save_skope_changeset_metas( $args = array() ) {
1153
- global $wp_customize;
1154
-
1155
- if ( 'global' == HA_SKOP_OPT() -> ha_get_current_customized_skope() )
1156
- wp_send_json_error( '_save_or_publish_skope_changeset_metas() : the global skope can not be saved this way' );
1157
-
1158
- if ( ! isset( $_POST['opt_name']) || ! isset( $_POST['skope_id'] ) || ! isset( $_POST['skopeCustomized'] ) )
1159
- wp_send_json_error( '_save_or_publish_skope_changeset_metas() : Missing opt_name or skope_id or skopeCustomized' );
1160
-
1161
- $skope_meta_key = HA_SKOP_OPT() -> ha_get_sanitized_post_value( 'opt_name');
1162
- $skope_id = HA_SKOP_OPT() -> ha_get_sanitized_post_value( 'skope_id' );
1163
-
1164
- $args = array_merge(
1165
- array(
1166
- 'status' => null,
1167
- 'data' => array(),
1168
- 'user_id' => get_current_user_id()
1169
- ),
1170
- $args
1171
- );
1172
- $changeset_post_id = ha_get_real_wp_changeset_post_id();
1173
-
1174
- $existing_changeset_data = array();
1175
-
1176
- if ( ! $changeset_post_id )
1177
- wp_send_json_error( 'No changet post id yet' );
1178
- $response = array(
1179
- 'setting_validities' => array()
1180
- );
1181
-
1182
- $existing_changeset_data = array();
1183
- if ( $changeset_post_id ) {
1184
- $existing_changeset_data = ha_get_skope_db_data( array(
1185
- 'post_id' => $changeset_post_id,
1186
- 'skope_meta_key' => $skope_meta_key,
1187
- 'is_option_post' => false )
1188
- );
1189
- }
1190
-
1191
- if ( is_wp_error( $existing_changeset_data ) ) {
1192
- $response['changeset_post_save_failure'] = $existing_changeset_data->get_error_code();
1193
- return new WP_Error( 'skope_changeset_post_save_failure', '', $response );
1194
- }
1195
- $update_transactionally = (bool) $args['status'];
1196
- $allow_revision = (bool) $args['status'];
1197
- $customized_data = $args['data'];
1198
-
1199
- /*
1200
- * Get list of IDs for settings that have values different from what is currently
1201
- * saved in the changeset. By skipping any values that are already the same, the
1202
- * subset of changed settings can be passed into validate_setting_values to prevent
1203
- * an underprivileged modifying a single setting for which they have the capability
1204
- * from being blocked from saving. This also prevents a user from touching of the
1205
- * previous saved settings and overriding the associated user_id if they made no change.
1206
- */
1207
- $changed_setting_ids = array();
1208
- foreach ( $customized_data as $setting_id => $setting_value ) {
1209
- if ( ! isset( $setting_value['value'] ) )
1210
- continue;
1211
-
1212
- $setting = $wp_customize->get_setting( $setting_id );
1213
-
1214
- if ( $setting && 'theme_mod' === $setting->type ) {
1215
- $prefixed_setting_id = $wp_customize->get_stylesheet() . '::' . $setting->id;
1216
- } else {
1217
- $prefixed_setting_id = $setting_id;
1218
- }
1219
- $is_value_changed = (
1220
- ! isset( $existing_changeset_data[ $prefixed_setting_id ] )
1221
- ||
1222
- ! array_key_exists( 'value', $existing_changeset_data[ $prefixed_setting_id ] )
1223
- ||
1224
- $existing_changeset_data[ $prefixed_setting_id ]['value'] !== $setting_value['value']
1225
- );
1226
- if ( $is_value_changed ) {
1227
- $changed_setting_ids[] = $setting_id;
1228
- }
1229
- }//foreach()
1230
-
1231
- $customized_data = wp_array_slice_assoc( $customized_data, $changed_setting_ids );
1232
- if ( empty( $customized_data) )
1233
- return wp_send_json_success( $response );
1234
-
1235
- /**
1236
- * Fires before save validation happens.
1237
- *
1238
- * Plugins can add just-in-time {@see 'customize_validate_{$wp_customize->ID}'} filters
1239
- * at this point to catch any settings registered after `customize_register`.
1240
- * The dynamic portion of the hook name, `$wp_customize->ID` refers to the setting ID.
1241
- *
1242
- * @since 4.6.0
1243
- *
1244
- * @param WP_Customize_Manager $wp_customize WP_Customize_Manager instance.
1245
- */
1246
- do_action( 'customize_save_validation_before', $wp_customize );
1247
- $setting_validities = array();
1248
- $customized_values = array();
1249
- foreach ($customized_data as $__id => $__v ) {
1250
- if ( ! array_key_exists('value', $__v ) )
1251
- continue;
1252
- $customized_values[$__id] = $__v['value'];
1253
- }
1254
- if ( method_exists( $wp_customize, 'validate_setting_values' ) ) {
1255
- $setting_validities = $wp_customize -> validate_setting_values( $customized_values, array(
1256
- 'validate_capability' => true,
1257
- 'validate_existence' => true
1258
- ) );
1259
-
1260
- } else { // WP version < 4.6
1261
- $setting_validities = $this -> _ha_validate_setting_values( $customized_values, array(
1262
- 'validate_capability' => true,
1263
- 'validate_existence' => true
1264
- ) );
1265
- }
1266
-
1267
- $invalid_setting_count = count( array_filter( $setting_validities, 'is_wp_error' ) );
1268
- /*
1269
- * Short-circuit if there are invalid settings the update is transactional.
1270
- * A changeset update is transactional when a status is supplied in the request.
1271
- */
1272
- if ( $update_transactionally && $invalid_setting_count > 0 ) {
1273
- $response = array(
1274
- 'setting_validities' => $setting_validities,
1275
- 'message' => sprintf( _n( 'There is %s invalid setting.', 'There are %s invalid settings.', $invalid_setting_count, 'hueman-addons' ), number_format_i18n( $invalid_setting_count ) ),
1276
- );
1277
- return new WP_Error( 'transaction_fail', '', $response );
1278
- }
1279
-
1280
- $response = array(
1281
- 'setting_validities' => $setting_validities,
1282
- 'skope_meta_key' => HA_SKOP_OPT() -> ha_get_sanitized_post_value( 'opt_name'),
1283
- 'skope_id' => HA_SKOP_OPT() -> ha_get_sanitized_post_value( 'skope_id' )
1284
- );
1285
- $data = $existing_changeset_data;
1286
- if ( is_wp_error( $data ) ) {
1287
- $data = array();
1288
- }
1289
- foreach ( $customized_data as $setting_id => $setting_params ) {
1290
- $setting = $wp_customize->get_setting( $setting_id );
1291
- if ( ! $setting || ! $setting->check_capabilities() ) {
1292
- ha_error_log( 'In _save_or_publish_skope_changeset_metas, ' . $setting_id . ' is not registered in $wp_customize.' );
1293
- continue;
1294
- }
1295
- if ( isset( $setting_validities[ $setting_id ] ) && is_wp_error( $setting_validities[ $setting_id ] ) ) {
1296
- continue;
1297
- }
1298
- $changeset_setting_id = $setting_id;
1299
- if ( 'theme_mod' === $setting->type ) {
1300
- $theme_name = $wp_customize->get_stylesheet();
1301
- if ( $theme_name != substr( $setting_id, 0, strlen($theme_name) ) )
1302
- $changeset_setting_id = sprintf( '%s::%s', $wp_customize->get_stylesheet(), $setting_id );
1303
- }
1304
-
1305
- if ( null === $setting_params ) {
1306
- unset( $data[ $changeset_setting_id ] );
1307
- } else {
1308
- if ( ! isset( $data[ $changeset_setting_id ] ) ) {
1309
- $data[ $changeset_setting_id ] = array();
1310
- }
1311
- $data[ $changeset_setting_id ] = array_merge(
1312
- $data[ $changeset_setting_id ],
1313
- $setting_params,
1314
- array(
1315
- 'type' => $setting->type,
1316
- 'user_id' => $args['user_id']
1317
- )
1318
- );
1319
- }
1320
- }//foreach()
1321
- $data['skope_infos'] = array(
1322
- 'skope_id' => HA_SKOP_OPT() -> ha_get_sanitized_post_value( 'skope_id'),
1323
- 'level_id' => HA_SKOP_OPT() -> ha_get_sanitized_post_value( 'level_id'),
1324
- 'skope' => HA_SKOP_OPT() -> ha_get_sanitized_post_value( 'skope'),
1325
- 'obj_id' => HA_SKOP_OPT() -> ha_get_sanitized_post_value( 'obj_id'),
1326
- 'meta_key' => HA_SKOP_OPT() -> ha_get_sanitized_post_value( 'opt_name')
1327
- );
1328
- $r = update_post_meta( $changeset_post_id, $skope_meta_key, $data );
1329
-
1330
- if ( is_wp_error( $r ) ) {
1331
- $response['changeset_post_save_failure'] = $r->get_error_code();
1332
- return new WP_Error( 'skope_changeset_post_save_failure', '', $response );
1333
- }
1334
-
1335
- return $response;
1336
- }
1337
- }//class
1338
- endif;
1339
-
1340
- ?><?php
1341
-
1342
- if ( ! class_exists( 'HA_Skop_Chset_Reset' ) ) :
1343
- final class HA_Skop_Chset_Reset extends HA_Skop_Chset_Save {
1344
-
1345
- function __construct() {
1346
- parent::__construct();
1347
- add_action( 'wp_ajax_czr_changeset_setting_reset', array( $this, 'ha_ajax_reset_changeset_setting' ) );
1348
- add_action( 'wp_ajax_czr_changeset_skope_reset', array( $this, 'ha_ajax_reset_changeset_skope' ) );
1349
- add_action( 'wp_ajax_czr_published_setting_reset', array( $this, 'ha_ajax_reset_published_setting' ) );
1350
- add_action( 'wp_ajax_czr_published_skope_reset', array( $this, 'ha_ajax_reset_published_skope' ) );
1351
- }
1352
-
1353
-
1354
-
1355
- /* ------------------------------------------------------------------------- *
1356
- * GET OPTION
1357
- /* ------------------------------------------------------------------------- */
1358
- /**
1359
- * Ajax handler for getting an attachment.
1360
- *
1361
- * @since 3.5.0
1362
- */
1363
- function ha_ajax_get_opt() {
1364
- if ( ! isset( $_REQUEST['opt_name'] ) || ! isset( $_REQUEST['dyn_type'] ) || ! isset( $_REQUEST['stylesheet'] ) )
1365
- wp_send_json_error();
1366
- if ( ! current_user_can( 'edit_theme_options' ) )
1367
- wp_send_json_error();
1368
-
1369
- $_trans = get_transient( $_REQUEST['opt_name'] );
1370
- wp_send_json_success( $_trans );
1371
- }
1372
-
1373
-
1374
-
1375
-
1376
-
1377
- function ha_get_setting_dependants( $setting_id ) {
1378
- $dependencies = array(
1379
- 'header_image' => 'header_image_data',
1380
- 'header_image_data' => 'header_image'
1381
- );
1382
-
1383
- return array_key_exists( $setting_id, $dependencies ) ? $dependencies[$setting_id] : false;
1384
- }
1385
-
1386
-
1387
-
1388
-
1389
-
1390
-
1391
-
1392
- /* ------------------------------------------------------------------------- *
1393
- * RESET SETTING CHANGESET
1394
- /* ------------------------------------------------------------------------- */
1395
- function ha_ajax_reset_changeset_setting() {
1396
- global $wp_customize;
1397
- if ( ! $wp_customize->is_preview() ) {
1398
- wp_send_json_error( 'not_preview' );
1399
- } else if ( ! current_user_can( 'customize' ) ) {
1400
- status_header( 403 );
1401
- wp_send_json_error( 'customize_not_allowed' );
1402
- } else if ( ! isset( $_SERVER['REQUEST_METHOD'] ) || 'POST' !== $_SERVER['REQUEST_METHOD'] ) {
1403
- status_header( 405 );
1404
- wp_send_json_error( 'bad_method' );
1405
- }
1406
- $nonce_action = 'save-customize_' . $wp_customize->get_stylesheet();
1407
- if ( ! check_ajax_referer( $nonce_action, 'nonce', false ) ) {
1408
- wp_send_json_error( 'invalid_nonce' );
1409
- }
1410
- $changeset_post_id = ha_get_real_wp_changeset_post_id();
1411
-
1412
- if ( ! $changeset_post_id ) {
1413
- wp_send_json_success( 'No changet post id' );
1414
- return;
1415
- }
1416
- if ( ! $wp_customize -> is_theme_active() ) {
1417
- $wp_customize -> stop_previewing_theme();
1418
- switch_theme( $wp_customize -> get_stylesheet() );
1419
- update_option( 'theme_switched_via_customizer', true );
1420
- $wp_customize -> start_previewing_theme();
1421
- }
1422
-
1423
- if ( ! isset( $_POST['opt_name'] ) || ! isset( $_POST['skope_id'] ) || ! isset( $_POST['skopeCustomized'] ) )
1424
- return wp_send_json_error('Error when trying to reset an option, the ajax post request is missing a param.');
1425
-
1426
- $new_values = array();
1427
- $skope_id = HA_SKOP_OPT() -> ha_get_sanitized_post_value( 'skope_id' );
1428
- $skope_level = HA_SKOP_OPT() -> ha_get_skope_level( $skope_id );
1429
- $setting_id = HA_SKOP_OPT() -> ha_get_sanitized_post_value( 'setting_id' );
1430
- $dependant_setting_id = $this -> ha_get_setting_dependants( $setting_id );
1431
- $changeset_values = $this -> get_unsanitized_skope_changeset( $skope_id );
1432
- $skope_meta_key = HA_SKOP_OPT() -> _get_posted_skope_metakey( $skope_id );
1433
- $attempt = new WP_Error('setting_changeset_reset_not_processed');
1434
-
1435
- foreach ( $changeset_values as $_id => $setting_params ) {
1436
- if ( $setting_id != $_id && $dependant_setting_id != $_id )
1437
- $new_values[$_id] = $setting_params;
1438
- }
1439
-
1440
- if ( 'global' == $skope_level ) {
1441
- $json_options = 0;
1442
- if ( defined( 'JSON_UNESCAPED_SLASHES' ) ) {
1443
- $json_options |= JSON_UNESCAPED_SLASHES; // Introduced in PHP 5.4. This is only to improve readability as slashes needn't be escaped in storage.
1444
- }
1445
- $json_options |= JSON_PRETTY_PRINT; // Also introduced in PHP 5.4, but WP defines constant for back compat. See WP Trac #30139.
1446
- $post_array = array(
1447
- 'post_content' => wp_json_encode( $new_values, $json_options ),
1448
- 'ID' => $changeset_post_id
1449
- );
1450
- $attempt = wp_update_post( wp_slash( $post_array ), true );
1451
- } else {
1452
- if ( empty($new_values) ) {
1453
- $attempt = delete_post_meta( $changeset_post_id, $skope_meta_key );
1454
- } else {
1455
- $attempt = update_post_meta( $changeset_post_id, $skope_meta_key, $new_values );
1456
- }
1457
- }
1458
-
1459
- if ( is_wp_error( $attempt ) ) {
1460
- status_header( 500 );
1461
- wp_send_json_error( $attempt->get_error_message() );
1462
- }
1463
- wp_send_json_success( '||| ' . $setting_id . ' has been deleted from changeset in skope ' . $skope_id . '|||' );
1464
- }
1465
-
1466
-
1467
-
1468
-
1469
-
1470
-
1471
-
1472
-
1473
-
1474
-
1475
- /* ------------------------------------------------------------------------- *
1476
- * RESET SKOPE CHANGESET
1477
- /* ------------------------------------------------------------------------- */
1478
- function ha_ajax_reset_changeset_skope() {
1479
- global $wp_customize;
1480
- if ( ! $wp_customize->is_preview() ) {
1481
- wp_send_json_error( 'not_preview' );
1482
- } else if ( ! current_user_can( 'customize' ) ) {
1483
- status_header( 403 );
1484
- wp_send_json_error( 'customize_not_allowed' );
1485
- } else if ( ! isset( $_SERVER['REQUEST_METHOD'] ) || 'POST' !== $_SERVER['REQUEST_METHOD'] ) {
1486
- status_header( 405 );
1487
- wp_send_json_error( 'bad_method' );
1488
- }
1489
- $nonce_action = 'save-customize_' . $wp_customize->get_stylesheet();
1490
- if ( ! check_ajax_referer( $nonce_action, 'nonce', false ) ) {
1491
- wp_send_json_error( 'invalid_nonce' );
1492
- }
1493
- $changeset_post_id = ha_get_real_wp_changeset_post_id();
1494
-
1495
- if ( ! $changeset_post_id ) {
1496
- wp_send_json_success( 'No changet post id' );
1497
- return;
1498
- }
1499
- if ( ! $wp_customize -> is_theme_active() ) {
1500
- $wp_customize -> stop_previewing_theme();
1501
- switch_theme( $wp_customize -> get_stylesheet() );
1502
- update_option( 'theme_switched_via_customizer', true );
1503
- $wp_customize -> start_previewing_theme();
1504
- }
1505
-
1506
- if ( ! isset( $_POST['opt_name'] ) || ! isset( $_POST['skope_id'] ) || ! isset( $_POST['skopeCustomized'] ) )
1507
- return wp_send_json_error('Error when trying to reset a skope changeset, the ajax post request is missing a param.');
1508
-
1509
- $new_values = array();
1510
- $skope_id = HA_SKOP_OPT() -> ha_get_sanitized_post_value( 'skope_id' );
1511
- $skope_level = HA_SKOP_OPT() -> ha_get_skope_level( $skope_id );
1512
- $skope_meta_key = HA_SKOP_OPT() -> _get_posted_skope_metakey( $skope_id );
1513
- $attempt = new WP_Error('skope_changeset_reset_not_processed');
1514
-
1515
- if ( 'global' == $skope_level ) {
1516
- $json_options = 0;
1517
- if ( defined( 'JSON_UNESCAPED_SLASHES' ) ) {
1518
- $json_options |= JSON_UNESCAPED_SLASHES; // Introduced in PHP 5.4. This is only to improve readability as slashes needn't be escaped in storage.
1519
- }
1520
- $json_options |= JSON_PRETTY_PRINT; // Also introduced in PHP 5.4, but WP defines constant for back compat. See WP Trac #30139.
1521
- $post_array = array(
1522
- 'post_content' => wp_json_encode( $new_values, $json_options ),
1523
- 'ID' => $changeset_post_id
1524
- );
1525
- $attempt = wp_update_post( wp_slash( $post_array ), true );
1526
- } else {
1527
- $attempt = delete_post_meta( $changeset_post_id, $skope_meta_key );
1528
- }
1529
-
1530
- if ( is_wp_error( $attempt ) ) {
1531
- status_header( 500 );
1532
- wp_send_json_error( $attempt->get_error_message() );
1533
- }
1534
- wp_send_json_success( '||| The changeset has been deleted for skope ' . $skope_id . '|||' );
1535
- }
1536
-
1537
-
1538
-
1539
-
1540
-
1541
-
1542
-
1543
-
1544
-
1545
-
1546
-
1547
- /* ------------------------------------------------------------------------- *
1548
- * RESET SETTING PUBLISHED
1549
- /* ------------------------------------------------------------------------- */
1550
- function ha_ajax_reset_published_setting() {
1551
- global $wp_customize;
1552
- if ( ! $wp_customize->is_preview() ) {
1553
- wp_send_json_error( 'not_preview' );
1554
- } else if ( ! current_user_can( 'customize' ) ) {
1555
- status_header( 403 );
1556
- wp_send_json_error( 'customize_not_allowed' );
1557
- } else if ( ! isset( $_SERVER['REQUEST_METHOD'] ) || 'POST' !== $_SERVER['REQUEST_METHOD'] ) {
1558
- status_header( 405 );
1559
- wp_send_json_error( 'bad_method' );
1560
- }
1561
- $nonce_action = 'save-customize_' . $wp_customize->get_stylesheet();
1562
- if ( ! check_ajax_referer( $nonce_action, 'nonce', false ) ) {
1563
- wp_send_json_error( 'invalid_nonce' );
1564
- }
1565
-
1566
- if ( ! isset( $_POST['opt_name'] ) || ! isset( $_POST['skope_id'] ) || ! isset( $_POST['skopeCustomized'] ) )
1567
- return wp_send_json_error('Error when trying to reset an option, the ajax post request is missing a param.');
1568
-
1569
- $setting_id = HA_SKOP_OPT() -> ha_get_sanitized_post_value( 'setting_id' );
1570
- $short_opt_name = _ha_extract_setting_name($setting_id);
1571
- $dependant_setting_id = $this -> ha_get_setting_dependants( $short_opt_name );
1572
- if ( ha_is_option_protected( $short_opt_name ) )
1573
- return wp_send_json_error('This option is protected');
1574
-
1575
- $theme_setting_list = HU_utils::$_theme_setting_list;
1576
- $is_theme_authorized_option = in_array( $short_opt_name, $theme_setting_list );
1577
-
1578
- $new_values = array();
1579
- $skope_id = HA_SKOP_OPT() -> ha_get_sanitized_post_value( 'skope_id' );
1580
- $skope_level = HA_SKOP_OPT() -> ha_get_skope_level( $skope_id );
1581
-
1582
- $skope_meta_key = HA_SKOP_OPT() -> _get_posted_skope_metakey( $skope_id );
1583
- $published_values = array();
1584
-
1585
- if ( 'global' == $skope_level ) {
1586
- if ( ! $is_theme_authorized_option )
1587
- return wp_send_json_error('This WordPress option can not be removed at a site wide level');//@to_translate
1588
- $setting_id = $short_opt_name;
1589
- $published_values = hu_get_raw_option( null, HU_THEME_OPTIONS );
1590
- } else {
1591
- $changeset_post_id = get_option('skope-post-id');
1592
- if ( false === $changeset_post_id || empty( $changeset_post_id ) ) {
1593
- wp_send_json_error( 'missing skope_post_id when attempting to reset the skope meta value' );
1594
- }
1595
- $published_values = ha_get_skope_db_data(
1596
- array(
1597
- 'post_id' => $changeset_post_id,
1598
- 'skope_meta_key' => $skope_meta_key,
1599
- 'level' => $skope_level,
1600
- 'is_option_post' => true
1601
- )
1602
- );
1603
- }
1604
-
1605
- $attempt = new WP_Error('setting_changeset_reset_not_processed');
1606
-
1607
- foreach ( $published_values as $_id => $setting_params ) {
1608
-
1609
- if ( ! _ha_is_wp_setting_multidimensional( $_id) ) {
1610
- if ( $setting_id != $_id && $dependant_setting_id != $_id )
1611
- $new_values[$_id] = $setting_params;
1612
- } else {
1613
- $published_multidim_settings = _ha_build_multidimensional_db_option( $_id, $setting_params );
1614
- if ( is_array( $published_multidim_settings ) ) {
1615
- $new_values[$_id] = array();
1616
- foreach ( $published_multidim_settings as $mult_set_id => $mult_val ) {
1617
- if ( $setting_id != $mult_set_id ) {
1618
- $multi_dim_key = str_replace(array('[', ']', $_id ), '', $mult_set_id);
1619
- $new_values[$_id][$multi_dim_key] = $mult_val;
1620
- }
1621
- }
1622
- }
1623
- }
1624
- }
1625
-
1626
- if ( 'global' == $skope_level ) {
1627
- $attempt = update_option( HU_THEME_OPTIONS, $new_values );
1628
- } else {
1629
- if ( empty( $new_values ) || ( 1 == count( $new_values ) && array_key_exists( 'skope_infos', $new_values ) ) ) {
1630
- $attempt = delete_post_meta( $changeset_post_id, $skope_meta_key );
1631
- } else {
1632
- $attempt = update_post_meta( $changeset_post_id, $skope_meta_key, $new_values );
1633
- }
1634
- }
1635
-
1636
- if ( is_wp_error( $attempt ) ) {
1637
- status_header( 500 );
1638
- wp_send_json_error( $attempt->get_error_message() );
1639
- }
1640
- wp_send_json_success( '||| ' . $setting_id . ' has been deleted from changeset in skope ' . $skope_id . '|||' );
1641
- }
1642
-
1643
-
1644
-
1645
-
1646
-
1647
-
1648
-
1649
- /* ------------------------------------------------------------------------- *
1650
- * RESET SKOPE PUBLISHED
1651
- /* ------------------------------------------------------------------------- */
1652
- function ha_ajax_reset_published_skope() {
1653
- global $wp_customize;
1654
- if ( ! $wp_customize->is_preview() ) {
1655
- wp_send_json_error( 'not_preview' );
1656
- } else if ( ! current_user_can( 'customize' ) ) {
1657
- status_header( 403 );
1658
- wp_send_json_error( 'customize_not_allowed' );
1659
- } else if ( ! isset( $_SERVER['REQUEST_METHOD'] ) || 'POST' !== $_SERVER['REQUEST_METHOD'] ) {
1660
- status_header( 405 );
1661
- wp_send_json_error( 'bad_method' );
1662
- }
1663
- $nonce_action = 'save-customize_' . $wp_customize->get_stylesheet();
1664
- if ( ! check_ajax_referer( $nonce_action, 'nonce', false ) ) {
1665
- wp_send_json_error( 'invalid_nonce' );
1666
- }
1667
-
1668
- if ( ! isset( $_POST['opt_name'] ) || ! isset( $_POST['skope_id'] ) || ! isset( $_POST['skopeCustomized'] ) )
1669
- return wp_send_json_error('Error when trying to reset a skope changeset, the ajax post request is missing a param.');
1670
-
1671
- $new_values = array();
1672
- $skope_id = HA_SKOP_OPT() -> ha_get_sanitized_post_value( 'skope_id' );
1673
- $skope_level = HA_SKOP_OPT() -> ha_get_skope_level( $skope_id );
1674
- $skope_meta_key = HA_SKOP_OPT() -> _get_posted_skope_metakey( $skope_id );
1675
- $attempt = new WP_Error('skope_changeset_reset_not_processed');
1676
-
1677
- if ( 'global' == $skope_level ) {
1678
- $published_values = hu_get_raw_option( null, HU_THEME_OPTIONS );
1679
- $theme_setting_list = HU_utils::$_theme_setting_list;
1680
-
1681
- foreach ( $published_values as $_id => $setting_params ) {
1682
- if ( ! in_array( $_id, $theme_setting_list ) ) {
1683
- $new_values[$_id] = $setting_params;
1684
- }
1685
- if ( ha_is_option_protected( $_id ) ) {
1686
- $new_values[$_id] = $setting_params;
1687
- }
1688
- }
1689
- $attempt = update_option( HU_THEME_OPTIONS, $new_values );
1690
- } else {
1691
- $changeset_post_id = get_option('skope-post-id');
1692
- if ( false === $changeset_post_id || empty( $changeset_post_id ) ) {
1693
- wp_send_json_error( 'missing skope_post_id when attempting to reset the skope meta value' );
1694
- }
1695
- $attempt = delete_post_meta( $changeset_post_id, $skope_meta_key );
1696
- }
1697
-
1698
- if ( is_wp_error( $attempt ) ) {
1699
- status_header( 500 );
1700
- wp_send_json_error( $attempt->get_error_message() );
1701
- }
1702
- wp_send_json_success( '||| The published values have been deleted for skope ' . $skope_id . '|||' );
1703
- }
1704
-
1705
-
1706
-
1707
-
1708
-
1709
-
1710
-
1711
-
1712
- /* ------------------------------------------------------------------------- *
1713
- * HELPERS
1714
- /* ------------------------------------------------------------------------- */
1715
- function get_unsanitized_skope_changeset( $skope_id ) {
1716
- if ( ! HU_AD() -> ha_is_customize_preview_frame() )
1717
- return array();
1718
-
1719
- global $wp_customize;
1720
- $values = array();
1721
- $skope_meta_key = HA_SKOP_OPT() -> _get_posted_skope_metakey( $skope_id );
1722
- if ( false == $skope_meta_key ) {
1723
- ha_error_log( 'no meta key found in get_unsanitized_skope_changeset() for skope : ' . $skope_id );
1724
- return array();
1725
- }
1726
- $changeset_post_id = ha_get_real_wp_changeset_post_id();
1727
- $changeset_data = ha_get_skope_db_data(
1728
- array(
1729
- 'post_id' => $changeset_post_id,
1730
- 'skope_meta_key' => $skope_meta_key,
1731
- 'level' => HA_SKOP_OPT() -> ha_get_skope_level( $skope_id )
1732
- )
1733
- );
1734
-
1735
- if ( is_wp_error( $changeset_data ) ) {
1736
- ha_error_log( 'Error when trying to get the changeset data in get_unsanitized_skope_changeset() for skope : ' . $skope_id );
1737
- $changeset_data = array();
1738
- }
1739
- foreach ( $changeset_data as $raw_setting_id => $setting_data ) {
1740
- if ( ! is_array( $setting_data ) || ( 'blogname' != $raw_setting_id && ! array_key_exists( 'value', $setting_data ) ) ) {
1741
- ha_error_log( 'Problem in get_unsanitized_skope_changeset, the setting_data of the changeset are not well formed for skope : ' . $skope_id );
1742
- continue;
1743
- }
1744
-
1745
- $setting_id = $raw_setting_id;
1746
- if ( isset( $setting_data['type'] ) && 'theme_mod' === $setting_data['type'] ) {
1747
- $namespace_pattern = '/^(?P<stylesheet>.+?)::(?P<setting_id>.+)$/';
1748
- if ( preg_match( $namespace_pattern, $raw_setting_id, $matches ) && $wp_customize->get_stylesheet() === $matches['stylesheet'] ) {
1749
- $setting_id = $matches['setting_id'];
1750
- }
1751
- }
1752
- $values[$setting_id] = $setting_data;
1753
- }
1754
- return $values;
1755
- }
1756
-
1757
-
1758
- /* ------------------------------------------------------------------------- *
1759
- * RESET SKOPE : _DEPRECATED
1760
- /* ------------------------------------------------------------------------- */
1761
-
1762
- }//class
1763
- endif;
1764
-
1765
- ?><?php
1766
-
1767
- if ( ! class_exists( 'HA_Skop_Cust_Prev' ) ) :
1768
- final class HA_Skop_Cust_Prev {
1769
- public $changeset_post_id;//<= ha_get_real_wp_changeset_post_id();
1770
-
1771
- function __construct() {
1772
- /* ------------------------------------------------------------------------- *
1773
- * CUSTOMIZE PREVIEW : export skope data
1774
- /* ------------------------------------------------------------------------- */
1775
- add_action( 'wp_footer', array( $this, 'ha_print_server_skope_data' ), 30 );
1776
-
1777
- $this->changeset_post_id = ha_get_real_wp_changeset_post_id();
1778
- }
1779
- function ha_print_server_skope_data() {
1780
- if ( ! HU_AD() -> ha_is_customize_preview_frame() )
1781
- return;
1782
-
1783
- global $wp_query, $wp_customize;
1784
- $_meta_type = ha_get_skope( 'meta_type', true );
1785
- $_czr_skopes = $this -> _ha_get_json_export_ready_skopes();
1786
- $_is_changeset_dirty = $this -> _ha_is_changeset_dirty();
1787
- ?>
1788
- <script type="text/javascript" id="czr-print-skop">
1789
- (function ( _export ){
1790
- _export.czr_skopes = <?php echo wp_json_encode( $_czr_skopes ); ?>;
1791
- _export.isChangesetDirty = <?php echo wp_json_encode( $_is_changeset_dirty ); ?>
1792
- })( _wpCustomizeSettings );
1793
- </script>
1794
- <?php
1795
- }
1796
- function _ha_is_changeset_dirty() {
1797
- if ( ! HU_AD() -> ha_is_changeset_enabled() )
1798
- return false;
1799
-
1800
- global $wp_customize;
1801
- $changeset_post_id = $this->changeset_post_id;
1802
-
1803
- if ( false == $changeset_post_id || empty( $changeset_post_id ) )
1804
- return;
1805
-
1806
- $_level_list = array( 'global', 'group', 'special_group', 'local' );
1807
- $is_dirty = false;
1808
- foreach ( $_level_list as $level ) {
1809
- $_changeset_data = ha_get_skope_db_data( array( 'post_id' => $changeset_post_id, 'skope_meta_key' => null, 'level' => $level ) );
1810
- if ( 'global' == $level ) {
1811
- if ( count($_changeset_data) > 1 )
1812
- $is_dirty = true;
1813
- else {
1814
- if ( isset( $_changeset_data['blogname'] ) && isset( $_changeset_data['blogname']['value'] ) )
1815
- $is_dirty = true;
1816
- }
1817
- } else {
1818
- $is_dirty = is_array( $_changeset_data ) && ! empty( $_changeset_data );
1819
- }
1820
- if ( $is_dirty )
1821
- break;
1822
- }
1823
-
1824
- return $is_dirty;
1825
- }
1826
-
1827
-
1828
-
1829
- /* ------------------------------------------------------------------------- *
1830
- * CUSTOMIZE PREVIEW : BUILD SKOPES JSON
1831
- /* ------------------------------------------------------------------------- */
1832
- function _ha_get_json_export_ready_skopes() {
1833
- $skopes = array();
1834
- $_meta_type = ha_get_skope( 'meta_type', true );
1835
- $defaults = _ha_get_default_scope_model();
1836
-
1837
- $saved_glob_opt = $this -> _ha_get_sanitized_skoped_saved_global_options();
1838
- $skopes[] = wp_parse_args(
1839
- array(
1840
- 'title' => ha_get_skope_title( array( 'level' => 'global' ) ),
1841
- 'long_title' => ha_get_skope_title( array( 'level' => 'global', 'meta_type' => null, 'long' => true ) ),
1842
- 'ctx_title' => ha_get_skope_title( array( 'level' => 'global', 'meta_type' => null, 'long' => true, 'is_prefixed' => false ) ),
1843
- 'skope' => 'global',
1844
- 'level' => '_all_',
1845
- 'dyn_type' => 'option',
1846
- 'opt_name' => HU_THEME_OPTIONS,
1847
- 'is_winner' => false,
1848
- 'is_primary' => true,
1849
- 'has_db_val' => ! empty( $saved_glob_opt ),
1850
- 'db' => $saved_glob_opt,
1851
- 'changeset' => $this -> _ha_get_api_ready_skope_changeset( array( 'level' => 'global', 'skope_meta_key' => '' ) )
1852
- ),
1853
- $defaults
1854
- );
1855
- if ( ha_get_skope('meta_type') ) {
1856
- $group_opt_name = HA_SKOP_OPT() -> ha_get_skope_opt_name( 'group' );
1857
- $group_opts = HA_SKOP_OPT() -> ha_get_skope_opt( 'group', $group_opt_name );
1858
- $skopes[] = wp_parse_args(
1859
- array(
1860
- 'title' => ha_get_skope_title( array( 'level' => 'group', 'meta_type' => $_meta_type ) ),
1861
- 'long_title' => ha_get_skope_title( array( 'level' => 'group', 'meta_type' => $_meta_type, 'long' => true ) ),
1862
- 'ctx_title' => ha_get_skope_title( array( 'level' => 'group', 'meta_type' => $_meta_type, 'long' => true, 'is_prefixed' => false ) ),
1863
- 'skope' => 'group',
1864
- 'level' => 'all_' . ha_get_skope('type'),
1865
- 'dyn_type' => 'skope_meta',
1866
- 'opt_name' => $group_opt_name,
1867
- 'db' => $this -> _ha_get_api_ready_skope_db_option( array( 'level' => 'group', 'skope_meta_key' => $group_opt_name ) ),
1868
- 'changeset' => $this -> _ha_get_api_ready_skope_changeset( array( 'level' => 'group', 'skope_meta_key' => $group_opt_name ) ),
1869
- 'has_db_val' => ! empty( $group_opts )
1870
- ),
1871
- $defaults
1872
- );
1873
- }
1874
- $loc_opt_name = HA_SKOP_OPT() -> ha_get_skope_opt_name( 'local');
1875
- $local_opts = HA_SKOP_OPT() -> ha_get_skope_opt( 'local', $loc_opt_name );
1876
- $skopes[] = wp_parse_args(
1877
- array(
1878
- 'title' => ha_get_skope_title( array( 'level' => 'local', 'meta_type' => $_meta_type ) ),
1879
- 'long_title' => ha_get_skope_title( array( 'level' => 'local', 'meta_type' => $_meta_type, 'long' => true ) ),
1880
- 'ctx_title' => ha_get_skope_title( array( 'level' => 'local', 'meta_type' => $_meta_type, 'long' => true, 'is_prefixed' => false ) ),
1881
- 'skope' => 'local',
1882
- 'level' => ha_get_skope(),
1883
- 'dyn_type' => 'skope_meta',
1884
- 'opt_name' => $loc_opt_name,
1885
- 'obj_id' => ha_get_skope('id'),
1886
- 'db' => $this -> _ha_get_api_ready_skope_db_option( array( 'level' =>'local', 'skope_meta_key' => $loc_opt_name ) ),
1887
- 'changeset' => $this -> _ha_get_api_ready_skope_changeset( array( 'level' => 'local', 'skope_meta_key' => $loc_opt_name ) ),
1888
- 'is_winner' => true,
1889
- 'has_db_val' => ! empty( $local_opts )
1890
- ),
1891
- $defaults
1892
- );
1893
- return $skopes;
1894
- }
1895
-
1896
-
1897
-
1898
-
1899
-
1900
-
1901
-
1902
-
1903
-
1904
-
1905
-
1906
-
1907
- /* ------------------------------------------------------------------------- *
1908
- * GET CHANGESETS
1909
- /* ------------------------------------------------------------------------- */
1910
- function _ha_get_api_ready_skope_changeset( $args ) {
1911
- if ( ! HU_AD() -> ha_is_changeset_enabled() )
1912
- return array();
1913
-
1914
- $defaults = array(
1915
- 'level' => '',
1916
- 'skope_meta_key' => ''
1917
- );
1918
- $args = wp_parse_args( $args, $defaults );
1919
-
1920
- $level = $args['level'];
1921
- $skope_meta_key = $args['skope_meta_key'];
1922
-
1923
- global $wp_customize;
1924
- $skope_changeset_val = array();
1925
- $changeset_post_id = $this->changeset_post_id;
1926
-
1927
- if ( false != $changeset_post_id && ! empty( $changeset_post_id ) ) {
1928
- $skope_changeset_val = ha_get_skope_db_data( array( 'post_id' => $changeset_post_id, 'skope_meta_key' => $skope_meta_key, 'level' => $level ) );
1929
- } else {
1930
- ha_error_log('NO CHANGESET POST AVAILABLE in _ha_get_api_ready_skope_changeset when getting changset for skope : ' . $level );
1931
- return array();
1932
- }
1933
-
1934
- $skope_changeset_val = ! is_array( $skope_changeset_val ) ? array() : $skope_changeset_val;
1935
- $theme_setting_list = HU_utils::$_theme_setting_list;
1936
- $theme_option_group = HU_THEME_OPTIONS;
1937
-
1938
- $api_ready_changeset_val = array();
1939
- foreach ( $skope_changeset_val as $raw_setting_id => $setting_params ) {
1940
- if ( ! is_array( $setting_params ) || ! array_key_exists('value', $setting_params ) )
1941
- continue;
1942
- $setting_value = $setting_params['value'];
1943
- $setting_type = isset( $setting_params['type'] ) ? $setting_params['type'] : 'option';
1944
- $namespace_pattern = '/^(?P<stylesheet>.+?)::(?P<setting_id>.+)$/';
1945
- $is_theme_mod_setting = (
1946
- isset( $setting_params['value'] )
1947
- &&
1948
- isset( $setting_type )
1949
- &&
1950
- 'theme_mod' === $setting_type
1951
- &&
1952
- preg_match( $namespace_pattern, $raw_setting_id, $matches )
1953
- );
1954
- if ( $is_theme_mod_setting ) {
1955
- if ( $wp_customize->get_stylesheet() === $matches['stylesheet'] ) {
1956
- $actual_setting_id = $matches['setting_id'];
1957
- }
1958
- } else {
1959
- $actual_setting_id = $raw_setting_id;
1960
- }
1961
- if ( is_object( $wp_customize -> get_setting( $actual_setting_id ) ) ) {
1962
- $setting_value = apply_filters( "customize_sanitize_js_{$actual_setting_id}", $setting_value, $wp_customize -> get_setting( $actual_setting_id ) );
1963
- }
1964
- if ( in_array( $actual_setting_id, $theme_setting_list ) ) {
1965
- $czr_opt_id = "{$theme_option_group}[{$actual_setting_id}]";
1966
- if ( is_object( $wp_customize -> get_setting( $czr_opt_id ) ) ) {
1967
- $setting_value = apply_filters( "customize_sanitize_js_{$czr_opt_id}", $setting_value, $wp_customize -> get_setting( $czr_opt_id ) );
1968
- }
1969
- }
1970
- $api_ready_changeset_val[$actual_setting_id] = $setting_value;
1971
-
1972
- }
1973
-
1974
- return $api_ready_changeset_val;
1975
- }
1976
-
1977
-
1978
-
1979
-
1980
-
1981
-
1982
-
1983
-
1984
-
1985
-
1986
-
1987
- /* ------------------------------------------------------------------------- *
1988
- * GET OPTIONS SAVED IN DB
1989
- /* ------------------------------------------------------------------------- */
1990
- function _ha_get_api_ready_skope_db_option( $args ) {
1991
- $defaults = array(
1992
- 'level' => '',
1993
- 'skope_meta_key' => ''
1994
- );
1995
- $args = wp_parse_args( $args, $defaults );
1996
-
1997
- $level = $args['level'];
1998
- $skope_meta_key = $args['skope_meta_key'];
1999
-
2000
- global $wp_customize;
2001
- $skope_db_val = HA_SKOP_OPT() -> ha_get_skope_opt( $level, $skope_meta_key );
2002
- $skope_db_val = ! is_array( $skope_db_val ) ? array() : $skope_db_val;
2003
- $theme_setting_list = HU_utils::$_theme_setting_list;
2004
- $theme_option_group = HU_THEME_OPTIONS;
2005
- $api_ready_db_val = array();
2006
-
2007
-
2008
- foreach ( $skope_db_val as $actual_setting_id => $setting_value ) {
2009
- if ( 'skope_infos' == $actual_setting_id )
2010
- continue;
2011
- if ( ! _ha_is_wp_setting_multidimensional( $actual_setting_id ) ) {
2012
- if ( is_object( $wp_customize -> get_setting( $actual_setting_id ) ) ) {
2013
- $setting_value = apply_filters( "customize_sanitize_js_{$actual_setting_id}", $setting_value, $wp_customize -> get_setting( $actual_setting_id ) );
2014
- }
2015
- if ( in_array( $actual_setting_id, $theme_setting_list ) ) {
2016
- $czr_opt_id = "{$theme_option_group}[{$actual_setting_id}]";
2017
- if ( is_object( $wp_customize -> get_setting( $czr_opt_id ) ) ) {
2018
- $setting_value = apply_filters( "customize_sanitize_js_{$czr_opt_id}", $setting_value, $wp_customize -> get_setting( $czr_opt_id ) );
2019
- }
2020
- }
2021
- $api_ready_db_val[$actual_setting_id] = $setting_value;
2022
- }
2023
- else {
2024
- $to_merge = _ha_build_multidimensional_db_option( $actual_setting_id, $setting_value );
2025
- foreach( $to_merge as $set_id => $value ) {
2026
- if ( is_object( $wp_customize -> get_setting( $set_id ) ) ) {
2027
- $value = apply_filters( "customize_sanitize_js_{$set_id}", $value, $wp_customize -> get_setting( $set_id ) );
2028
- }
2029
- $to_merge[$set_id] = $value;
2030
- }
2031
- $api_ready_db_val = array_merge( $api_ready_db_val, $to_merge );
2032
- }
2033
- }
2034
- return $api_ready_db_val;
2035
- }
2036
- function _ha_get_sanitized_skoped_saved_global_options() {
2037
- global $wp_customize;
2038
-
2039
- $_theme_opts = hu_get_raw_option( null, HU_THEME_OPTIONS );
2040
- $_defaults_theme_options = HU_utils::$inst -> hu_get_default_options();
2041
- $_saved_opts = array();
2042
- if ( ! is_array( $_theme_opts ) )
2043
- return array();
2044
- foreach ( $_theme_opts as $opt_name => $value) {
2045
- if ( ha_is_option_protected( $opt_name ) )
2046
- continue;
2047
- if ( ! ha_is_option_skoped( $opt_name ) )
2048
- continue;
2049
- if ( $this -> _ha_is_option_set_to_default( $opt_name, $value, $_defaults_theme_options ) )
2050
- continue;
2051
- if ( in_array( $opt_name, HU_utils::$_theme_setting_list ) ) {
2052
- $_theme_option_prefix = strtolower(HU_THEME_OPTIONS);
2053
- $opt_name = "{$_theme_option_prefix}[{$opt_name}]";
2054
- }
2055
-
2056
- $_saved_opts[$opt_name] = $value;
2057
- }
2058
- $regular_wp_builtins = array(
2059
- 'blogname',
2060
- 'blogdescription'
2061
- );
2062
- foreach ($regular_wp_builtins as $_opt ) {
2063
- $_saved_opts[$_opt] = hu_get_raw_option( $_opt );
2064
- }
2065
- $authorized_theme_mods = ha_get_wp_builtins_skoped_theme_mods();
2066
- $theme = get_option( 'stylesheet' );
2067
- $_raw_theme_mods = hu_get_raw_option( "theme_mods_{$theme}" );
2068
-
2069
- foreach ( $authorized_theme_mods as $_theme_mod_name ) {
2070
- if ( ! isset( $_raw_theme_mods[$_theme_mod_name] ) )
2071
- continue;
2072
-
2073
- if ( ! _ha_is_wp_setting_multidimensional( $_theme_mod_name ) ) {
2074
- $_saved_opts[$_theme_mod_name] = $_raw_theme_mods[$_theme_mod_name];
2075
- } else {
2076
- $to_merge = _ha_build_multidimensional_db_option( $_theme_mod_name, $_raw_theme_mods[$_theme_mod_name] );
2077
- foreach( $to_merge as $set_id => $value ) {
2078
- $to_merge[$set_id] = $value;
2079
- }
2080
- $_saved_opts = array_merge( $_saved_opts, $to_merge );
2081
- }
2082
-
2083
- }
2084
- $js_sanitized_saved_opts = array();
2085
-
2086
- foreach ( $_saved_opts as $cand_setting_id => $cand_setting_value ) {
2087
- if ( is_object( $wp_customize -> get_setting( $cand_setting_id ) ) ) {
2088
- $sanitized_value = apply_filters( "customize_sanitize_js_{$cand_setting_id}", $cand_setting_value, $wp_customize -> get_setting( $cand_setting_id ) );
2089
- $js_sanitized_saved_opts[$cand_setting_id] = $sanitized_value;
2090
- }
2091
- }
2092
- return $js_sanitized_saved_opts;
2093
- }
2094
-
2095
-
2096
-
2097
-
2098
-
2099
-
2100
-
2101
-
2102
- /* ------------------------------------------------------------------------- *
2103
- * CUTE LITTLE HELPERS
2104
- /* ------------------------------------------------------------------------- */
2105
- function _ha_is_option_set_to_default( $opt_name, $value, $defaults ) {
2106
- if ( ! is_array( $defaults ) || ! array_key_exists( $opt_name, $defaults ) )
2107
- return;
2108
- if ( ! is_array( $value ) )
2109
- return $value == $defaults[$opt_name];
2110
- else {
2111
- if ( is_array( $value ) && ! is_array( $defaults[$opt_name] ) )
2112
- return;
2113
- else {
2114
- if ( empty( $defaults[$opt_name] ) )
2115
- return;
2116
- return count($value) == count( array_intersect( $value, $defaults[$opt_name] ) );
2117
- }
2118
- }
2119
- }
2120
- }//class
2121
- endif;
2122
-
2123
- ?><?php
2124
-
2125
- if ( ! class_exists( 'HA_Skop_Cust_Register' ) ) :
2126
- final class HA_Skop_Cust_Register {
2127
- function __construct() {
2128
- /* ------------------------------------------------------------------------- *
2129
- * Modify some WP built-in settings
2130
- /* ------------------------------------------------------------------------- */
2131
- add_action( 'customize_register' , array( $this, 'ha_alter_wp_customizer_settings' ) , 100, 1 );
2132
- add_filter( 'hu_admin_sec' , array( $this, 'ha_register_skop_infos_settings'));
2133
-
2134
- /* ------------------------------------------------------------------------- *
2135
- * CUSTOMIZE PANE : Add skope server params to the Hueman theme control server params ( serverControlParams global var)
2136
- /* ------------------------------------------------------------------------- */
2137
- add_filter( 'hu_js_customizer_control_params', array( $this, 'ha_add_skope_control_params' ) );
2138
- /* ------------------------------------------------------------------------- *
2139
- * Skopify the save DEPRECATED
2140
- * 1) Dynamically set the type in WP_Customize_Setting::save()
2141
- * 2) Then add skope save actions by type on WP_Customize_Setting::update()
2142
- /* ------------------------------------------------------------------------- */
2143
- }
2144
- function ha_register_skop_infos_settings( $settings ) {
2145
- $settings = is_array( $settings ) ? $settings : array();
2146
- return array_merge( $settings, array(
2147
- 'show-skope-infos' => array(
2148
- 'default' => 1,
2149
- 'control' => 'HU_controls',
2150
- 'label' => __('Display an informations block at the bottom of the preview', 'hueman-addons'),
2151
- 'section' => 'admin_sec',
2152
- 'type' => 'checkbox',
2153
- 'notice' => __('When this option is checked, a block of informations about the current customization scope is displayed at the bottom of the preview.', 'hueman-addons'),
2154
- 'priority' => 30,
2155
- 'transport' => 'postMessage'
2156
- )
2157
- ));
2158
- }
2159
-
2160
-
2161
- /* ------------------------------------------------------------------------- *
2162
- * Modify some WP built-in settings
2163
- /* ------------------------------------------------------------------------- */
2164
- function ha_alter_wp_customizer_settings( $manager ) {
2165
- if ( is_object( $manager->get_setting( 'header_image_data' ) ) ) {
2166
- $manager -> remove_setting( 'header_image_data' );
2167
- if ( class_exists( 'HA_Customize_Header_Image_Data_Setting' ) && class_exists( 'HA_Customize_Header_Image_Setting' ) ) {
2168
- $manager -> add_setting( new HA_Customize_Header_Image_Data_Setting( $manager, 'header_image_data', array(
2169
- 'theme_supports' => 'custom-header',
2170
- ) ) );
2171
- $manager -> remove_setting( 'header_image' );
2172
- $manager -> add_setting( new HA_Customize_Header_Image_Setting( $manager, 'header_image', array(
2173
- 'default' => get_theme_support( 'custom-header', 'default-image' ),
2174
- 'theme_supports' => 'custom-header',
2175
- ) ) );
2176
- }
2177
- }
2178
-
2179
- if ( is_object( $manager->get_control( 'hu_theme_options[layout-global]' ) ) ) {
2180
- $manager->get_control( 'hu_theme_options[layout-global]' ) -> label = __( "Column Layout for main content and sidebars", 'hueman-addons' );
2181
- $manager->get_control( 'hu_theme_options[layout-global]' ) -> notice = __( 'Pick a content layout in the dropdown list. Note : selecting a "1 column" layout won\'t let you display any sidebar widgets.', 'hueman-addons' );
2182
- }
2183
- }
2184
-
2185
-
2186
- /* ------------------------------------------------------------------------- *
2187
- * CUSTOMIZE PANEL : ADD LOCALIZED PARAMS
2188
- /* ------------------------------------------------------------------------- */
2189
- function ha_add_skope_control_params( $_params ) {
2190
- return array_merge(
2191
- $_params,
2192
- array(
2193
- 'isSkopOn' => HU_AD() -> ha_is_skop_on(),
2194
- 'defaultSkopeModel' => _ha_get_default_scope_model(),
2195
- 'skopeDynTypes' => ha_get_dyn_types(),
2196
- 'defaultOptionsValues' => HU_utils::$inst -> hu_get_default_options(),
2197
- 'skopeExcludedSettings' => ha_get_skope_excluded_options(),
2198
- 'globalSkopeOptName' => HA_SKOP_OPT() -> global_skope_optname,
2199
- 'isSidebarsWigetsSkoped' => (bool)apply_filters( 'ha_skope_sidebars_widgets', false ),
2200
- 'isWPCustomCssSkoped' => (bool)apply_filters( 'ha_skope_wp_custom_css', false ),
2201
- 'isNavMenuLocationsSkoped' => (bool)apply_filters( 'ha_skope_navmenu', true ),
2202
- 'isChangeSetOn' => HU_AD() -> ha_is_changeset_enabled(),
2203
- 'isLocalSkope' => apply_filters( 'skope_is_local', isset( $_GET['url'] ) ),
2204
- 'isTopNoteOn' => true || apply_filters( 'ha_czr_top_note_status', 'dismissed' != get_option( 'ha_czr_top_note_status' ) || ( defined('CZR_DEV') && true === CZR_DEV ) ),
2205
- 'topNoteParams' => array(
2206
- 'title' => __( 'Welcome in the new customizer interface !', 'hueman-addons' ),
2207
- 'message' => sprintf ( __( 'Discover a new way to customize your pages on %1$s.', 'hueman-addons' ),
2208
- sprintf('<a href="%1$s" title="%2$s" target="_blank">%3$s <span class="fas fa-external-link-alt"></span></a>',
2209
- esc_url('docs.presscustomizr.com/search?query=customize-hueman'),
2210
- __('Visit the documentation', 'hueman-addons'),
2211
- __('this page')
2212
- )
2213
- )
2214
- )
2215
- )
2216
- );
2217
- }
2218
-
2219
-
2220
- /* ------------------------------------------------------------------------- *
2221
- * CUSTOMIZE PANEL : ADD TRANSLATED STRINGS
2222
- /* ------------------------------------------------------------------------- */
2223
- function hu_add_skp_translated_strings( $strings ) {
2224
- return array_merge( $strings, array(
2225
-
2226
- ));
2227
- }//hu_add_skp_translated_strings
2228
- }//class
2229
- endif;
2230
-
2231
- ?><?php
2232
- /**
2233
- * This Class is instantiated on 'hu_hueman_loaded', declared in /init-core.php
2234
- * 'hu_hueman_loaded' is fired in setup_theme
2235
- */
2236
- if ( ! class_exists( 'HA_Skop_Option_Base' ) ) :
2237
- class HA_Skop_Option_Base {
2238
- public static $instance;
2239
-
2240
- public static $_global_opt;
2241
- public static $_group_opt;
2242
- public static $_special_group_opt;
2243
- public static $_local_opt;
2244
- public static $_skope_excluded_settings;
2245
- public $global_skope_optname;
2246
- public $changeset_post_id;//<= ha_get_real_wp_changeset_post_id();
2247
-
2248
- function __construct() {
2249
- add_filter('sidebars_widgets', array($this, 'ha_use_skope_widgets') );
2250
- $this -> ha_cache_skope_excluded_settings();
2251
- add_filter( 'ha_get_skope_excluded_options', array( $this, 'ha_set_excluded_skope_settings') );
2252
- if ( hu_is_ajax() && ! ha_is_partial_ajax_request() ) {
2253
-
2254
- add_action( 'ajax_query_ready', array( $this, 'ha_setup_skope_option_filters' ), 1000 );
2255
-
2256
- add_action( 'ajax_query_ready' , array( $this, 'ha_cache_options' ), 99999 );
2257
-
2258
- }
2259
- else {
2260
- if ( ! ha_is_partial_ajax_request() ) {
2261
- add_action( 'wp', array( $this, 'ha_setup_skope_option_filters' ), 1000 );
2262
- }
2263
-
2264
- add_action( 'wp' , array( $this, 'ha_cache_options' ), 99999 );
2265
-
2266
- }
2267
- $theme_name = ha_get_skope_theme_name();
2268
- $this->global_skope_optname = "{$theme_name}_global_skope";
2269
- }//construct
2270
-
2271
-
2272
-
2273
-
2274
-
2275
- /* ------------------------------------------------------------------------- *
2276
- * SET AND GET CACHED OPTIONS
2277
- /* ------------------------------------------------------------------------- */
2278
- function ha_cache_options() {
2279
- $meta_type = ha_get_skope( 'meta_type', true );
2280
- $_skope_list = array( 'global', 'group', 'special_group', 'local' );
2281
- foreach ($_skope_list as $_skp ) {
2282
- switch ( $_skp ) {
2283
- case 'global':
2284
- break;
2285
- case 'group':
2286
- $db_opt_name = $this -> ha_get_skope_opt_name( 'group' );
2287
- self::$_group_opt = $this -> ha_get_skope_opt( 'group', $db_opt_name );
2288
- self::$_group_opt = ! self::$_group_opt ? array() : self::$_group_opt;
2289
- break;
2290
- case 'special_group':
2291
- $db_opt_name = $this -> ha_get_skope_opt_name( 'special_group' );
2292
- self::$_special_group_opt = $this -> ha_get_skope_opt( 'special_group', $db_opt_name );
2293
- self::$_special_group_opt = ! self::$_special_group_opt ? array() : self::$_special_group_opt;
2294
- break;
2295
- case 'local':
2296
- $db_opt_name = $this -> ha_get_skope_opt_name( 'local' );
2297
- self::$_local_opt = $this -> ha_get_skope_opt( 'local', $db_opt_name );
2298
- self::$_local_opt = ! self::$_local_opt ? array() : self::$_local_opt;
2299
- break;
2300
- }
2301
- }
2302
- do_action( 'skope_options_cached');
2303
- }
2304
- function ha_get_skope_opt( $level = '', $skope_meta_key = '' ) {
2305
- if( 'global' == $level ) {
2306
- return new WP_Error('skope_error', 'The global options cannot be accessed with ha_get_skope_opt' );
2307
- }
2308
- $skope_meta_key = empty( $level ) ? '' : $this -> ha_get_skope_opt_name( $level );
2309
- $_opt = get_post_meta( ha_get_skope_post_id(), $skope_meta_key, true );
2310
- $_return = array();
2311
- if ( empty( $skope_meta_key ) && is_array( $_opt ) ) {
2312
- foreach ( $_opt as $meta_key => $value ) {
2313
- if ( is_array($value) && 1 == count($value) )
2314
- $_return[$meta_key] = maybe_unserialize( $value[0] );
2315
- else
2316
- $_return[$meta_key] = array_map('maybe_unserialize', $value);
2317
- }
2318
- } else {
2319
- $_return = $_opt;
2320
- }
2321
-
2322
- return is_array($_return) ? $_return : array();
2323
- }
2324
- function ha_get_cached_opt( $skope = null, $opt_name = null ) {
2325
- $skope = is_null( $skope ) ? 'local' : $skope;
2326
- $_opt_array = array();
2327
-
2328
- switch ( $skope ) {
2329
- case 'global':
2330
- $alloptions = wp_cache_get( 'alloptions', 'options' );
2331
- $alloptions = maybe_unserialize($alloptions);
2332
- $_opt_array = $alloptions;
2333
- break;
2334
- case 'group':
2335
- $_opt_array = self::$_group_opt;
2336
- break;
2337
- case 'special_group':
2338
- $_opt_array = self::$_special_group_opt;
2339
- break;
2340
- case 'local':
2341
- $_opt_array = self::$_local_opt;
2342
- break;
2343
- }
2344
- $_opt_array = ! is_array( $_opt_array ) ? array() : $_opt_array;
2345
-
2346
- if ( is_null( $opt_name ) )
2347
- return $_opt_array;
2348
- else {
2349
- if ( in_array( $opt_name, HU_utils::$_theme_setting_list ) ) {
2350
- $_theme_option_prefix = strtolower(HU_THEME_OPTIONS);
2351
- $opt_name = "{$_theme_option_prefix}[{$opt_name}]";
2352
- }
2353
- return array_key_exists( $opt_name, $_opt_array ) ? $_opt_array[$opt_name] : '_no_set_';
2354
- }
2355
- }
2356
-
2357
-
2358
- /* ------------------------------------------------------------------------- *
2359
- * CACHE AND SET SETTINGS EXCLUDED FROM SKOPE
2360
- /* ------------------------------------------------------------------------- */
2361
- function ha_cache_skope_excluded_settings() {
2362
- if ( is_array(self::$_skope_excluded_settings) && ! empty( self::$_skope_excluded_settings ) )
2363
- return;
2364
- $_settings_map = HU_utils_settings_map::$instance -> hu_get_customizer_map( null, 'add_setting_control' );
2365
- $_excluded = array();
2366
- foreach ( $_settings_map as $_id => $data ) {
2367
- if ( isset($data['skoped']) && false === $data['skoped'] )
2368
- $_excluded[] = $_id;
2369
- }
2370
- if ( class_exists( 'TC_utils_wfc' ) ) {
2371
- $wfc_setting_map = TC_utils_wfc::$instance -> tc_customizer_map();
2372
- if ( array_key_exists( 'add_setting_control', $wfc_setting_map ) ) {
2373
- foreach ( $wfc_setting_map['add_setting_control'] as $_id => $data ) {
2374
- $_excluded[] = $_id;
2375
- }
2376
- }
2377
- }
2378
- self::$_skope_excluded_settings = $_excluded;
2379
- }
2380
-
2381
-
2382
- /* ------------------------------------------------------------------------- *
2383
- * FILTER THE LIST OF SKOPE EXCLUDED SETTINGS
2384
- /* ------------------------------------------------------------------------- */
2385
- function ha_set_excluded_skope_settings( $_default_excluded ) {
2386
- return array_merge( $_default_excluded, self::$_skope_excluded_settings );
2387
- }
2388
-
2389
-
2390
-
2391
-
2392
- /* ------------------------------------------------------------------------- *
2393
- * FILTER WP AND THEME OPTIONS
2394
- /* ------------------------------------------------------------------------- */
2395
- function ha_setup_skope_option_filters() {
2396
- if ( isset( $GLOBALS['wp_customize'] ) ) {
2397
- $this->changeset_post_id = ha_get_real_wp_changeset_post_id();
2398
- }
2399
- add_filter( 'hu_opt', array( $this, 'ha_filter_hu_opt_for_skope' ), 1000, 4 );
2400
- $theme = get_option( 'stylesheet' );
2401
- $wp_options = array(
2402
- 'blogname',
2403
- 'blogdescription',
2404
- "theme_mods_{$theme}"
2405
- );
2406
-
2407
- if ( apply_filters( 'ha_skope_sidebars_widgets', false ) ) {
2408
- $wp_options[] = 'sidebars_widgets';
2409
- $wp_options = array_merge( $wp_options, hu_get_registered_widgets_option_names() );
2410
- }
2411
-
2412
- foreach ( $wp_options as $wp_opt ) {
2413
- add_filter( "option_{$wp_opt}", array( $this, 'ha_filter_wp_builtin_options'), 2000, 2 );
2414
- }
2415
- }
2416
- function ha_filter_wp_builtin_options( $original_value, $option_name = null ) {
2417
- if ( is_null( $option_name ) )
2418
- return $original_value;
2419
-
2420
-
2421
- $authorized_theme_mods = ha_get_wp_builtins_skoped_theme_mods();
2422
- $theme = get_option( 'stylesheet' );
2423
- if ( "theme_mods_{$theme}" == $option_name ) {
2424
- $skoped_theme_mods = array();
2425
-
2426
- foreach ( $authorized_theme_mods as $_tmodname ) {
2427
- $_tmodval = array_key_exists( $_tmodname, $original_value ) ? $original_value[$_tmodname] : '_no_set_';
2428
- $_tmodval = $this -> ha_filter_hu_opt_for_skope( $_tmodval, $_tmodname, null );
2429
- if ( '_no_set_' !== $_tmodval ) {
2430
- $skoped_theme_mods[$_tmodname] = $_tmodval;
2431
- add_filter( "theme_mod_{$_tmodname}", array( $this, '_filter_theme_mods'), 2000 );
2432
- }
2433
-
2434
-
2435
- }
2436
- return wp_parse_args( $skoped_theme_mods, $original_value );
2437
- }
2438
- else {
2439
- return $this -> ha_filter_hu_opt_for_skope( $original_value, $option_name, null );
2440
- }
2441
- return $original_value;
2442
- }
2443
- function _filter_theme_mods( $value ) {
2444
- $_filter = current_filter();
2445
- $_ptrn = 'theme_mod_';
2446
- if ( $_ptrn !== substr( $_filter, 0, strlen($_ptrn) ) )
2447
- return $value;
2448
-
2449
- $_mod_name = str_replace($_ptrn, '', $_filter);
2450
- if ( ! ha_is_option_skoped( $_mod_name ) )
2451
- return $value;
2452
- return $this -> ha_filter_hu_opt_for_skope( $value, $_mod_name, null );
2453
- }
2454
- function ha_filter_hu_opt_for_skope( $_opt_val , $opt_name , $opt_group = HU_THEME_OPTIONS , $_default_val = null ) {
2455
- /*
2456
- * Take care of the excluded options in front
2457
- * needed for:
2458
- * multisite blogname issue https://github.com/presscustomizr/hueman-addons/issues/43
2459
- * polylang blogname and blogdescription issue https://github.com/presscustomizr/hueman/issues/628
2460
- */
2461
- $excluded_options = ha_get_skope_excluded_options();
2462
- if ( $opt_name && is_array( $excluded_options ) && in_array( $opt_name, $excluded_options ) ) {
2463
- return $_opt_val;
2464
- }
2465
- $_new_val = $_opt_val;
2466
- if ( HU_AD() -> ha_is_customize_preview_frame() && ! HU_AD() -> ha_is_previewing_live_changeset() ) {
2467
- $_new_val = $this -> _get_sanitized_preview_val( $_opt_val, $opt_name );
2468
- } else {
2469
- $_new_val = $this -> _get_front_end_val( $_opt_val, $opt_name, 'local', true );
2470
- }
2471
- return $_new_val;
2472
- }
2473
-
2474
-
2475
-
2476
-
2477
-
2478
-
2479
- /* ------------------------------------------------------------------------- *
2480
- * SET OPTION
2481
- /* ------------------------------------------------------------------------- */
2482
- function ha_set_skope_option_val( $opt_name, $new_value, $skope_meta_key = null ) {
2483
- if ( empty($opt_name) || is_null($skope_meta_key ) ) {
2484
- return new WP_Error( 'missing param(s) in HA_SKOP_OPT::ha_set_skope_option_val' );
2485
- }
2486
-
2487
- $skope_post_id = ha_get_skope_post_id();
2488
- $original_data = ha_get_skope_db_data( array( 'post_id' => $skope_post_id, 'skope_meta_key' => $skope_meta_key ) );
2489
- $data = $original_data;
2490
- if ( is_wp_error( $data ) ) {
2491
- $data = array();
2492
- }
2493
- $data = $this -> ha_preprocess_skope_val( $new_value, $opt_name, $data );
2494
-
2495
- $r = update_post_meta( $skope_post_id, $skope_meta_key, $data );
2496
-
2497
- return $r;
2498
- }
2499
-
2500
-
2501
-
2502
-
2503
-
2504
-
2505
-
2506
-
2507
-
2508
- /* ------------------------------------------------------------------------- *
2509
- * SIDEBARS AND WIDGETS SPECIFICS
2510
- /* ------------------------------------------------------------------------- */
2511
- function ha_use_skope_widgets( $original ) {
2512
- if ( ! apply_filters( 'ha_skope_sidebars_widgets', false ) )
2513
- return $original;
2514
-
2515
- $db_skope_widgets = get_option('sidebars_widgets');
2516
- $db_skope_widgets = is_array($db_skope_widgets) ? $db_skope_widgets : array();
2517
- $new_sidebar_widgets = $db_skope_widgets;
2518
- $defaut_hu_widget_ids = hu_get_widget_zone_ids();
2519
-
2520
- foreach ( $original as $key => $value) {
2521
- if ( in_array( $key, $defaut_hu_widget_ids ) || ! is_array($value) )
2522
- continue;
2523
- $new_sidebar_widgets[$key] = (array)$value;
2524
- }
2525
- foreach ($new_sidebar_widgets as $k => $v) {
2526
- if ( ! is_array($v) )
2527
- unset($new_sidebar_widgets[$k]);
2528
- }
2529
- if ( isset($new_sidebar_widgets['wp_inactive_widgets']) && is_array($new_sidebar_widgets['wp_inactive_widgets']) ) {
2530
- foreach ( $new_sidebar_widgets as $sidebar => $wdg_list ) {
2531
- if ( 'wp_inactive_widgets' == $sidebar )
2532
- continue;
2533
- if ( 'array_version' == $sidebar )
2534
- continue;
2535
- if ( 'orphaned_' == substr($sidebar, 0, strlen('orphaned_') ) )
2536
- continue;
2537
-
2538
- foreach ( $wdg_list as $wdg_id ) {
2539
- if ( false === array_search( $wdg_id, $new_sidebar_widgets['wp_inactive_widgets'] ) )
2540
- continue;
2541
- $key_to_remove = array_search( $wdg_id, $new_sidebar_widgets['wp_inactive_widgets'] );
2542
- unset( $new_sidebar_widgets['wp_inactive_widgets'][$key_to_remove] );
2543
- }//foreach
2544
- }//foreach
2545
- }//if
2546
- return $new_sidebar_widgets;
2547
- }
2548
- function ha_set_customized_sidebars_val( $customized_val, $opt_name ) {
2549
- if ( is_array($customized_val) && isset($customized_val['sidebars_widgets[wp_inactive_widgets']) && 1 == count($customized_val) )
2550
- return '_not_customized_';
2551
- return $customized_val;
2552
- }
2553
-
2554
- }//class
2555
- endif;
2556
-
2557
- ?><?php
2558
- /**
2559
- * This Class is instantiated on 'hu_hueman_loaded', declared in /init-core.php
2560
- * 'hu_hueman_loaded' is fired in setup_theme
2561
- */
2562
- if ( ! class_exists( 'HA_Skop_Option_Front' ) ) :
2563
- class HA_Skop_Option_Front extends HA_Skop_Option_Base {
2564
- public $_front_values = array();
2565
-
2566
- /* ------------------------------------------------------------------------- *
2567
- * GET FRONT END VALUES : APPLY INHERITANCE
2568
- /* ------------------------------------------------------------------------- */
2569
- function _get_front_end_val( $original_opt_val, $opt_name, $skope = 'local', $do_inherit = false ) {
2570
- $cache_front = $this -> _front_values;
2571
- if ( ! HU_AD() -> ha_is_customize_preview_frame() && ! HU_AD() -> ha_is_previewing_live_changeset() ) {
2572
- if ( 0 !== did_action( 'skope_options_cached' ) && array_key_exists( $opt_name, $cache_front ) ) {
2573
- return $cache_front[$opt_name];
2574
- }
2575
- }
2576
-
2577
- if ( _ha_is_wp_setting_multidimensional( $opt_name ) ) {
2578
- $skop_opt_val = $this -> _get_multidim_front_val( $original_opt_val, $opt_name, $skope, $do_inherit );
2579
- } else {
2580
- $skop_opt_val = $this -> _get_simple_front_val( $original_opt_val, $opt_name, $skope, $do_inherit );
2581
- }
2582
- $cache_front[$opt_name] = $skop_opt_val;
2583
- $this -> _front_values = $cache_front;
2584
-
2585
- return $skop_opt_val;
2586
- }
2587
-
2588
-
2589
-
2590
- function _get_simple_front_val( $original_opt_val, $opt_name, $skope, $do_inherit ) {
2591
- $skop_opt_val = $this -> ha_get_cached_opt( $skope, $opt_name );
2592
- $skop_opt_val = is_object( $skop_opt_val ) ? (array)$skop_opt_val : $skop_opt_val;
2593
- if ( is_array( $skop_opt_val ) || '_no_set_' != (string)$skop_opt_val ) {
2594
- return $skop_opt_val;
2595
- }
2596
- if ( ! $do_inherit && 'global' != $skope ) {
2597
- return $skop_opt_val;
2598
- } else if ( 'global' == $skope ) {
2599
- return $original_opt_val;
2600
- }
2601
-
2602
- $parent_skope = $this -> ha_get_parent_skope_name( $skope );
2603
- return $this -> _get_simple_front_val( $original_opt_val, $opt_name, $parent_skope, true );
2604
- }
2605
-
2606
-
2607
-
2608
- function _get_multidim_front_val( $original_opt_val, $opt_name, $skope, $do_inherit, $child_value = null ) {
2609
- $child_value = ( is_null( $child_value ) || ! is_array( $child_value ) ) ? array() : $child_value;
2610
- $_candidate_val = $child_value;
2611
-
2612
- $skop_opt_val = $this -> ha_get_cached_opt( $skope, $opt_name );
2613
- $skop_opt_val = is_object( $skop_opt_val ) ? (array)$skop_opt_val : $skop_opt_val;
2614
- if ( is_array( $skop_opt_val ) ) {
2615
- $_candidate_val = wp_parse_args( $_candidate_val, $skop_opt_val );
2616
- }
2617
-
2618
- if ( 'global' == $skope ) {
2619
- if ( is_array( $original_opt_val ) )
2620
- return wp_parse_args( $_candidate_val, $original_opt_val );
2621
- else
2622
- return $_candidate_val;
2623
- }
2624
- if ( ! $do_inherit ) {
2625
- return wp_parse_args( $_candidate_val, $original_opt_val );
2626
- }
2627
-
2628
- $parent_skope = $this -> ha_get_parent_skope_name( $skope );
2629
- return $this -> _get_multidim_front_val( $original_opt_val, $opt_name, $parent_skope, true, $_candidate_val );
2630
- }
2631
-
2632
-
2633
-
2634
- function ha_get_parent_skope_name( $skope, $_index = null ) {
2635
- $hierark = array( 'local', 'group', 'special_group', 'global' );
2636
- $parent_ind = -1;
2637
- foreach( $hierark as $_key => $_skp ) {
2638
- if ( $skope == $_skp && -1 == $parent_ind )
2639
- $parent_ind = intval( $_key + 1 ) ;
2640
- continue;
2641
- }
2642
- return isset( $hierark[$parent_ind] ) ? $hierark[$parent_ind] : 'global';
2643
- }
2644
-
2645
- }//class
2646
- endif;
2647
-
2648
- ?><?php
2649
- /**
2650
- * This Class is instantiated on 'hu_hueman_loaded', declared in /init-core.php
2651
- * 'hu_hueman_loaded' is fired in setup_theme
2652
- */
2653
- if ( ! class_exists( 'HA_Skop_Option_Preview' ) ) :
2654
- class HA_Skop_Option_Preview extends HA_Skop_Option_Front {
2655
- public $_skope_preview_values = array();
2656
- public $all_skopes_customized_values = array();
2657
-
2658
-
2659
-
2660
- /* ------------------------------------------------------------------------- *
2661
- * GET CUSTOMIZER PREVIEW VAL
2662
- /* ------------------------------------------------------------------------- */
2663
-
2664
- function _get_sanitized_preview_val( $_opt_val , $opt_name ) {
2665
-
2666
- $rev_index = $this -> ha_get_sanitized_post_value( 'revisionIndex' );
2667
- $rev_index = '__not_posted__' == $rev_index ? 'initial' : $rev_index;
2668
- $cache_customized = $this -> _skope_preview_values;
2669
- $preview_val = '';
2670
- if ( isset( $cache_customized[$rev_index] ) && is_array( $cache_customized[$rev_index]) && array_key_exists( $opt_name, $cache_customized[$rev_index] ) )
2671
- return $cache_customized[$rev_index][$opt_name];
2672
-
2673
- if ( ! isset( $cache_customized[$rev_index] ) || ! is_array( $cache_customized[$rev_index] ) )
2674
- $cache_customized = array( $rev_index => array( $opt_name => '' ) );
2675
- else {
2676
- if ( ! array_key_exists( $opt_name, $cache_customized[$rev_index] ) )
2677
- $cache_customized[$rev_index][$opt_name] = '';
2678
- }
2679
-
2680
- if ( _ha_is_wp_setting_multidimensional( $opt_name ) ) {
2681
- $preview_val = $this -> _get_multidim_sanitized_preview_val( $_opt_val, $opt_name );
2682
- } else {
2683
- $preview_val = $this -> _get_simple_sanitized_preview_val( $_opt_val, $opt_name );
2684
- }
2685
- if ( '__not_posted__' != $this -> ha_get_sanitized_post_value( 'skope_id' ) ) {
2686
- $cache_customized[$rev_index][$opt_name] = $preview_val;
2687
- $this -> _skope_preview_values = $cache_customized;
2688
- } else {
2689
- ha_error_log( 'preview val not_cached_yet => the skope_id was not posted' );
2690
- }
2691
- return $preview_val;
2692
- }
2693
- function _get_simple_sanitized_preview_val( $_original_val , $opt_name, $skope_id = null, $child_value = null ) {
2694
- $val_candidate = is_null( $child_value ) ? '_not_customized_' : $child_value;
2695
- $skope_id = is_null( $skope_id ) ? $this -> ha_get_sanitized_post_value( 'skope_id' ) : $skope_id;
2696
- $skope_level = $this -> ha_get_skope_level( $skope_id );
2697
- $_skope_customized_val = $this -> _ha_get_simple_sanitized_customized_value( $opt_name, $skope_id, $_original_val );
2698
- $_skope_db_meta_val = $this -> _get_front_end_val( $_original_val, $opt_name, $skope_level );
2699
-
2700
-
2701
- if ( $this -> _is_value_customized( $_skope_customized_val ) ) {
2702
- $val_candidate = $_skope_customized_val;
2703
- } else {
2704
- $val_candidate = $_skope_db_meta_val;
2705
- }
2706
-
2707
- if ( is_bool( $val_candidate ) )
2708
- return $val_candidate;
2709
-
2710
- if ( $val_candidate !== '_no_set_' && $val_candidate !== '_not_customized_' )
2711
- return $val_candidate;
2712
-
2713
- $parent_skope_id = $this -> _get_parent_skope_id( $skope_id );
2714
- if ( false != $parent_skope_id && ! empty( $parent_skope_id ) && '_reached_the_roof_' != $parent_skope_id ) {
2715
- $val_candidate = $this -> _get_simple_sanitized_preview_val( $_original_val, $opt_name, $parent_skope_id, $val_candidate );
2716
- }
2717
- if ( $val_candidate === '_no_set_' || $val_candidate === '_not_customized_' )
2718
- $val_candidate = $_original_val;
2719
-
2720
- return $val_candidate;
2721
- }
2722
-
2723
-
2724
-
2725
- /* ------------------------------------------------------------------------- *
2726
- * GET CUSTOMIZED VALUE FOR A SINGLE SETTING: APPLY INHERITANCE
2727
- /* ------------------------------------------------------------------------- */
2728
- function _ha_get_simple_sanitized_customized_value( $opt_name, $skope_id = null , $_original_val = null, $do_inherit = false ) {
2729
-
2730
- $_customized_val = '_not_customized_';
2731
- if ( ! HU_AD() -> ha_is_customize_preview_frame() )
2732
- return $_original_val;
2733
-
2734
- global $wp_customize;
2735
- $skope_id = is_null( $skope_id ) ? $this -> ha_get_sanitized_post_value( 'skope_id' ) : $skope_id;
2736
-
2737
- $_customized_values = $this -> ha_get_unsanitized_customized_values( $skope_id );
2738
- if ( false === $_customized_values || ! is_array( $_customized_values ) )
2739
- $_customized_values = array();
2740
- $setting_id = $opt_name;
2741
- if ( array_key_exists( $opt_name, $_customized_values ) && is_object( $wp_customize -> get_setting( $opt_name ) ) ) {
2742
- $_customized_val = $this -> _get_setting_sanitized_skoped_customized_value( $skope_id, $wp_customize -> get_setting( $opt_name ), $do_inherit );// validates and sanitizes the value
2743
- }
2744
- $_theme_option_prefix = strtolower( HU_THEME_OPTIONS );
2745
- if ( $_theme_option_prefix !== substr( $opt_name, 0, strlen($_theme_option_prefix) ) ) {
2746
- $_theme_opt_name_candidate = "{$_theme_option_prefix}[{$opt_name}]";
2747
- } else {
2748
- $_theme_opt_name_candidate = $opt_name;
2749
- }
2750
- $_theme_opt_name_candidate = "{$_theme_option_prefix}[{$opt_name}]";
2751
-
2752
- if ( is_object( $wp_customize -> get_setting( $_theme_opt_name_candidate ) ) ) {
2753
- $_customized_val = $this -> _get_setting_sanitized_skoped_customized_value( $skope_id, $wp_customize -> get_setting( $_theme_opt_name_candidate ), $do_inherit );// validates and sanitizes the value
2754
- }
2755
- return apply_filters( "ha_get_customize_val_{$opt_name}", $_customized_val, $opt_name );
2756
- }
2757
-
2758
-
2759
-
2760
-
2761
-
2762
-
2763
-
2764
- /* ------------------------------------------------------------------------- *
2765
- * GET SKOPE CUSTOMIZED VALUES
2766
- /* ------------------------------------------------------------------------- */
2767
- function ha_get_unsanitized_customized_values( $skope_id = null ) {
2768
- if ( ! HU_AD() -> ha_is_customize_preview_frame() )
2769
- return array();
2770
- $skope_id = is_null( $skope_id ) ? $this -> ha_get_sanitized_post_value( 'skope_id' ) : $skope_id;
2771
- if ( is_null( $skope_id ) )
2772
- return array();
2773
-
2774
- global $wp_customize;
2775
-
2776
- $customized_values = array();
2777
-
2778
- $rev_index = $this -> ha_get_sanitized_post_value( 'revisionIndex' );
2779
- $rev_index = '__not_posted__' == $rev_index ? 'initial' : $rev_index;
2780
- $cache_customized = $this -> all_skopes_customized_values;
2781
- if ( isset( $cache_customized[$rev_index] ) && is_array( $cache_customized[$rev_index]) && array_key_exists( $skope_id, $cache_customized[$rev_index] ) )
2782
- return $cache_customized[$rev_index][$skope_id];
2783
-
2784
- if ( ! isset( $cache_customized[$rev_index] ) || ! is_array( $cache_customized[$rev_index] ) )
2785
- $cache_customized = array( $rev_index => array( $skope_id => array() ) );
2786
- else {
2787
- if ( ! array_key_exists( $skope_id, $cache_customized[$rev_index] ) )
2788
- $cache_customized[$rev_index][$skope_id] = array();
2789
- }
2790
- if ( 'global' == $this -> ha_get_skope_level( $skope_id ) || 'global' == $this -> ha_get_current_customized_skope() ) {
2791
- $customized_values = $wp_customize -> unsanitized_post_values();
2792
- } else {
2793
- $skope_changeset_data = $this -> _get_unsanitized_skope_changeset_values( $skope_id );
2794
- $skope_post_values = $this -> _get_unsanitized_skope_posted_values( $skope_id );
2795
- $customized_values = array_merge( $skope_changeset_data, $skope_post_values );
2796
- }
2797
- if ( '__not_posted__' != $this -> ha_get_sanitized_post_value( 'skope_id' ) ) {
2798
- $cache_customized[$rev_index][$skope_id] = $customized_values;
2799
- $this -> all_skopes_customized_values = $cache_customized;
2800
- } else {
2801
- ha_error_log( 'all skopes customized values not_cached_yet => the skope_id was not posted' );
2802
- }
2803
- return $customized_values;
2804
- }
2805
- function _get_unsanitized_skope_changeset_values( $skope_id ) {
2806
- if ( ! HU_AD() -> ha_is_customize_preview_frame() || ! HU_AD() -> ha_is_changeset_enabled() )
2807
- return array();
2808
-
2809
- global $wp_customize;
2810
- $values = array();
2811
- $skope_meta_key = $this -> _get_posted_skope_metakey( $skope_id );
2812
- if ( false == $skope_meta_key ) {
2813
- ha_error_log( 'no meta key found in _get_unsanitized_skope_changeset_values() for skope : ' . $skope_id );
2814
- return array();
2815
- }
2816
- $changeset_post_id = $this->changeset_post_id;
2817
-
2818
- $changeset_data = ha_get_skope_db_data(
2819
- array(
2820
- 'post_id' => $changeset_post_id,
2821
- 'skope_meta_key' => $skope_meta_key,
2822
- 'level' => $this -> ha_get_skope_level( $skope_id )
2823
- )
2824
- );
2825
-
2826
- if ( is_wp_error( $changeset_data ) ) {
2827
- ha_error_log( 'Error when trying to get the changeset data in _get_unsanitized_skope_changeset_values() for skope : ' . $skope_id );
2828
- $changeset_data = array();
2829
- }
2830
- foreach ( $changeset_data as $raw_setting_id => $setting_data ) {
2831
- if ( 'skope_infos' == $raw_setting_id )
2832
- continue;
2833
- if ( ! is_array( $setting_data ) || ! array_key_exists( 'value', $setting_data ) ) {
2834
- ha_error_log( 'Problem in _get_unsanitized_skope_changeset_values, the setting_data of the changeset are not well formed for skope : ' . $skope_id );
2835
- ha_error_log( 'setting id ' . $raw_setting_id );
2836
- ha_error_log( '<SETTING DATA>' );
2837
- ha_error_log( print_r( $setting_data, true ) );
2838
- ha_error_log( '</SETTING DATA>' );
2839
- continue;
2840
- }
2841
-
2842
- $setting_id = $raw_setting_id;
2843
- if ( isset( $setting_data['type'] ) && 'theme_mod' === $setting_data['type'] ) {
2844
- $namespace_pattern = '/^(?P<stylesheet>.+?)::(?P<setting_id>.+)$/';
2845
- if ( preg_match( $namespace_pattern, $raw_setting_id, $matches ) && $wp_customize->get_stylesheet() === $matches['stylesheet'] ) {
2846
- $setting_id = $matches['setting_id'];
2847
- }
2848
- }
2849
- $values[$setting_id] = $setting_data['value'];
2850
- }
2851
- return $values;
2852
- }
2853
- function _get_unsanitized_skope_posted_values( $skope_id = null ) {
2854
- if ( ! HU_AD() -> ha_is_customize_preview_frame() )
2855
- return array();
2856
-
2857
- global $wp_customize;
2858
- $skopes_customized_values = array();
2859
- $post_values = array();
2860
- if ( ! is_null( $skope_id ) ) {
2861
- if ( ! isset( $_POST['skopeCustomized'] ) || ! isset( $_POST['skope'] ) ) {
2862
- $post_values = array();
2863
- } else {
2864
- $skopes_customized_values = json_decode( wp_unslash( $_POST['skopeCustomized'] ), true );
2865
- }
2866
- if ( ! isset( $wp_customize -> _current_skope_id ) ) {
2867
- $wp_customize -> _current_skope_id = $skope_id;
2868
- }
2869
- if ( ! isset( $wp_customize -> _skope_post_values ) || $wp_customize -> _current_skope_id != $skope_id ) {
2870
- if ( is_array( $skopes_customized_values ) ) {
2871
- $wp_customize -> _skope_post_values = $skopes_customized_values;
2872
- } else {
2873
- $wp_customize -> _skope_post_values = array();
2874
- }
2875
- }
2876
-
2877
- $skopes_customized_values = $wp_customize -> _skope_post_values;
2878
-
2879
- if ( ! is_array( $skopes_customized_values ) || ! isset( $skopes_customized_values[$skope_id]) ) {
2880
- $post_values = array();
2881
- } else {
2882
- $post_values = $skopes_customized_values[$skope_id];
2883
- }
2884
- }
2885
- else {
2886
- if ( isset( $_POST['customized'] ) ) {
2887
- $post_values = json_decode( wp_unslash( $_POST['customized'] ), true );
2888
- } else {
2889
- $post_values = array();
2890
- }
2891
- }
2892
- return $post_values;
2893
- }
2894
- function _get_setting_sanitized_skoped_customized_value( $skope_id = null, $setting, $do_inherit = false ) {
2895
- $_candidate_val = '_not_customized_';
2896
- $parent_skope_id = '';
2897
- $skope_id = is_null( $skope_id ) ? $this -> ha_get_sanitized_post_value( 'skope_id' ) : $skope_id;
2898
-
2899
- if ( false == $skope_id || is_null($skope_id) || empty($skope_id) ) {
2900
- ha_error_log( 'missing skope_id in _get_setting_sanitized_skoped_customized_value()' );
2901
- return $_candidate_val;
2902
- }
2903
-
2904
- $customized_values = $this -> ha_get_unsanitized_customized_values( $skope_id );
2905
-
2906
- if ( array_key_exists( $setting -> id, $customized_values ) ) {
2907
- $_candidate_val = $customized_values[ $setting->id ];
2908
- $valid = $setting->validate( $_candidate_val );
2909
- if ( is_wp_error( $valid ) ) {
2910
- return $_candidate_val;
2911
- }
2912
- $_candidate_val = $setting -> sanitize( $_candidate_val );
2913
- }
2914
- else if ( $do_inherit ) {
2915
- $parent_skope_id = $this -> _get_parent_skope_id( $skope_id );
2916
- if ( false !== $parent_skope_id && ! empty( $parent_skope_id ) && '_reached_the_roof_' != $parent_skope_id ) {
2917
- $_candidate_val = $this -> _get_setting_sanitized_skoped_customized_value( $parent_skope_id , $setting, true );
2918
- }
2919
- }
2920
-
2921
- return ( is_null( $_candidate_val ) || is_wp_error( $_candidate_val ) ) ? '_not_customized_' : $_candidate_val;
2922
- }
2923
- function _get_parent_skope_id( $requested_skope_id = null, $requested_skope_level = null ) {
2924
- $parent_id = '';
2925
- $_posted_skopes = $this -> _get_posted_skopes();
2926
-
2927
- if ( ! is_array( $_posted_skopes ) )
2928
- return;
2929
-
2930
- if ( 'global' === $requested_skope_level ) {
2931
- return isset($_posted_skopes['global']['id']) ? $_posted_skopes['global']['id'] : false;
2932
- }
2933
- if ( is_null( $requested_skope_level ) ) {
2934
- foreach ( $_posted_skopes as $skp_level => $data ) {
2935
- if ( ! isset( $data['id'] ) )
2936
- continue;
2937
-
2938
- if ( $requested_skope_id == $data['id'] )
2939
- $requested_skope_level = $skp_level;
2940
- }
2941
- if ( ! isset( $requested_skope_level ) )
2942
- return;
2943
- }
2944
-
2945
-
2946
- $hierark = array( 'local', 'group', 'special_group', 'global' );
2947
- $parent_ind = -1;
2948
- foreach( $hierark as $_key => $_skp_levl ) {
2949
- if ( $requested_skope_level == $_skp_levl && -1 == $parent_ind )
2950
- $parent_ind = intval( $_key + 1 ) ;
2951
- continue;
2952
- }
2953
-
2954
- $parent_skop_level = isset( $hierark[$parent_ind] ) ? $hierark[$parent_ind] : '_reached_the_roof_';
2955
- if ( '_reached_the_roof_' == $parent_skop_level || $parent_ind >= count( $hierark ) )
2956
- return '_reached_the_roof_';
2957
- else {
2958
- if ( ! isset( $_posted_skopes[$parent_skop_level] ) ) {
2959
- $grand_parent_level = intval( $parent_ind + 1 );
2960
- return $this -> _get_parent_skope_id( null, $hierark[$grand_parent_level] );
2961
- } else {
2962
- return isset($_posted_skopes[$parent_skop_level]['id']) ? $_posted_skopes[$parent_skop_level]['id'] : false;
2963
- }
2964
- }
2965
-
2966
- }
2967
- function _get_posted_skopes() {
2968
- if ( ! isset( $_POST['current_skopes'] ) )
2969
- return;
2970
- return json_decode( wp_unslash( $_POST['current_skopes']), true );
2971
- }
2972
- function _get_posted_skope_metakey( $skope_id ) {
2973
- if ( ! isset( $_POST['current_skopes'] ) )
2974
- return;
2975
-
2976
- $meta_key = false;
2977
- $posted_skopes = $this -> _get_posted_skopes();
2978
- foreach ( $posted_skopes as $key => $data ) {
2979
- if ( isset( $data['id'] ) && $skope_id == $data['id'] )
2980
- $meta_key = isset( $data['opt_name'] ) ? $data['opt_name'] : false;
2981
- continue;
2982
- }
2983
- return ( ! empty( $meta_key ) && is_string( $meta_key ) ) ? $meta_key : false;
2984
- }
2985
-
2986
-
2987
-
2988
-
2989
-
2990
-
2991
-
2992
-
2993
-
2994
-
2995
-
2996
-
2997
-
2998
-
2999
-
3000
-
3001
-
3002
-
3003
-
3004
-
3005
- /* ------------------------------------------------------------------------- *
3006
- * HELPERS
3007
- /* ------------------------------------------------------------------------- */
3008
- public function _is_value_customized( $value ) {
3009
- $value = is_object($value) ? (array)$value : $value;
3010
- if ( is_array($value) )
3011
- return true;
3012
-
3013
- return ( is_string($value) && '_not_customized_' == $value ) ? false : true;
3014
- }
3015
- function ha_get_skope_opt_name( $level = 'local', $special = '' ) {
3016
- $name = '__not_available__';
3017
- $skp_type = ha_get_skope('type');
3018
- $theme_name = ha_get_skope_theme_name();
3019
- switch ($level) {
3020
- case 'local':
3021
- $name = strtolower( $theme_name . '_czr_' . ha_get_skope() );
3022
- break;
3023
- case 'group' :
3024
- if ( ! empty( $skp_type ) )
3025
- $name = strtolower( $theme_name . '_czr_all_' . $skp_type );
3026
- break;
3027
- case 'special_group' :
3028
- $name = strtolower( $theme_name . '_czr_all_' . $skp_type . $special );
3029
- break;
3030
- case 'global':
3031
- $name = HU_THEME_OPTIONS;
3032
- break;
3033
- }
3034
- return $name;
3035
- }
3036
- function ha_get_current_customized_skope() {
3037
- if ( '__not_posted__' == $this -> ha_get_sanitized_post_value( 'skope' ) )
3038
- return 'global';
3039
- return $this -> ha_get_sanitized_post_value( 'skope' );
3040
- }
3041
- function ha_get_skope_level( $skope_id ) {
3042
- $_posted_skopes = $this -> _get_posted_skopes();
3043
- $skope_level = false;
3044
- if ( ! is_array( $_posted_skopes ) )
3045
- return;
3046
- foreach ( $_posted_skopes as $skp_level => $data ) {
3047
- if ( ! isset( $data['id'] ) && false !== $skope_level )
3048
- continue;
3049
-
3050
- if ( $skope_id == $data['id'] )
3051
- $skope_level = $skp_level;
3052
- }
3053
- return $skope_level;
3054
- }
3055
- function ha_get_sanitized_post_value( $param ) {
3056
- return isset($_POST[$param]) ? esc_attr( $_POST[$param ] ) : '__not_posted__';
3057
- }
3058
- public function ha_preprocess_skope_val( $new_value, $opt_name, $current_value ) {
3059
- if ( ! $current_value || ! is_array($current_value) ) {
3060
- $to_return = array( $opt_name => $new_value );
3061
- } else {
3062
- $to_return = $current_value;
3063
- $to_return[$opt_name] = $new_value;
3064
- }
3065
- return $to_return;
3066
- }
3067
-
3068
- }//class
3069
- endif;
3070
-
3071
- ?><?php
3072
- /**
3073
- * This Class is instantiated on 'hu_hueman_loaded', declared in /init-core.php
3074
- * 'hu_hueman_loaded' is fired in setup_theme
3075
- */
3076
- if ( ! class_exists( 'HA_Skop_Option' ) ) :
3077
- final class HA_Skop_Option extends HA_Skop_Option_Preview {
3078
-
3079
-
3080
- public static function ha_skop_opt_instance() {
3081
- if ( ! isset( self::$instance ) && ! ( self::$instance instanceof HA_Skop_Option ) )
3082
- self::$instance = new HA_Skop_Option();
3083
- return self::$instance;
3084
- }
3085
- function _get_multidim_sanitized_preview_val( $_original_val , $opt_name , $skope_id = null, $child_value = null ) {
3086
- $child_value = ( is_null( $child_value ) || ! is_array( $child_value ) ) ? array() : $child_value;
3087
- $_candidate_val = $child_value;
3088
- $setting_id = $opt_name;
3089
- $skope_id = is_null( $skope_id ) ? $this -> ha_get_sanitized_post_value( 'skope_id' ) : $skope_id;
3090
- if ( '__not_posted__' == $skope_id ) {
3091
- ha_error_log('in _get_multidim_preview_val SKOPE NOT POSTED');
3092
- return $_candidate_val;
3093
- }
3094
-
3095
- $cust_skope = $this -> ha_get_skope_level( $skope_id );
3096
- $_skope_customized_val = $this -> _get_wp_multidim_sanitized_customized_val( $opt_name, $skope_id, false );
3097
- $_skope_db_meta_val = $this -> _get_wp_multidim_saved_val( $opt_name, $skope_id, false );
3098
- $_skope_customized_val = ! is_array( $_skope_customized_val ) ? array() : $_skope_customized_val;
3099
- $_skope_db_meta_val = ! is_array( $_skope_db_meta_val ) ? array() : $_skope_db_meta_val;
3100
- $_skope_val = wp_parse_args( $_skope_customized_val, $_skope_db_meta_val );
3101
- $_candidate_val = wp_parse_args( $_candidate_val, $_skope_val );
3102
-
3103
- $parent_skope_id = $this -> _get_parent_skope_id( $skope_id );
3104
- if ( false != $parent_skope_id && ! empty( $parent_skope_id ) && '_reached_the_roof_' != $parent_skope_id ) {
3105
- $_candidate_val = $this -> _get_multidim_sanitized_preview_val( $_original_val, $opt_name, $parent_skope_id, $_candidate_val );
3106
- }
3107
- if ( is_null( $_candidate_val ) || empty( $_candidate_val ) || is_wp_error( $_candidate_val ) || ! is_array( $_candidate_val ) )
3108
- $_candidate_val = is_array( $_original_val ) ? $_original_val : array();
3109
-
3110
- return $_candidate_val;
3111
- }
3112
-
3113
-
3114
-
3115
-
3116
-
3117
-
3118
-
3119
-
3120
-
3121
-
3122
-
3123
-
3124
- public function _get_wp_multidim_saved_val( $opt_name, $skope_id = null, $do_inherit = false, $child_value = array() ) {
3125
- $skope = $this -> ha_get_skope_level( $skope_id );
3126
- if ( 'global' == $skope && ha_is_wp_builtin_skoped_theme_mod( $opt_name ) ) {
3127
- $theme = get_option( 'stylesheet' );
3128
- $_raw_theme_mods = ha_get_raw_option( "theme_mods_{$theme}" );
3129
- $skop_opt_val = isset( $_raw_theme_mods[$opt_name] ) ? $_raw_theme_mods[$opt_name] : array();
3130
- } else {
3131
- $skop_opt_val = $this -> ha_get_cached_opt( $skope, $opt_name );
3132
- }
3133
- $skop_opt_val = is_object( $skop_opt_val ) ? (array)$skop_opt_val : $skop_opt_val;
3134
- if ( ! is_array( $skop_opt_val ) )
3135
- $skop_opt_val = array();
3136
- if ( ! $do_inherit ) {
3137
- return $skop_opt_val;
3138
- }
3139
- $_val_candidate = $child_value;
3140
- foreach ( $skop_opt_val as $_key => $_value ) {
3141
- $_val_candidate[$_key] = ! isset( $child_value[$_key] ) ? $_value : $child_value[$_key];
3142
- }
3143
-
3144
-
3145
- $parent_skope_id = $this -> _get_parent_skope_id( $skope_id );
3146
- if ( false != $parent_skope_id && ! empty( $parent_skope_id ) && '_reached_the_roof_' != $parent_skope_id ) {
3147
- $_val_candidate = $this -> _get_wp_multidim_saved_val( $opt_name, $parent_skope_id, true, $_val_candidate );
3148
- }
3149
-
3150
- if ( is_null( $_val_candidate ) || empty( $_val_candidate ) || is_wp_error( $_val_candidate ) || ! is_array( $_val_candidate ) )
3151
- $_val_candidate = array();
3152
-
3153
- return $_val_candidate;
3154
- }
3155
-
3156
-
3157
-
3158
-
3159
-
3160
-
3161
-
3162
-
3163
-
3164
-
3165
-
3166
- function _get_wp_multidim_sanitized_customized_val( $opt_name, $skope_id = null, $do_inherit = false, $child_value = array() ) {
3167
-
3168
- global $wp_customize;
3169
- $skope_id = is_null( $skope_id ) ? $this -> ha_get_sanitized_post_value( 'skope_id' ) : $skope_id;
3170
- $_customized_values = $this -> ha_get_unsanitized_customized_values( $skope_id );
3171
- $_val_candidate = $child_value;
3172
- if ( false === $_customized_values || ! is_array( $_customized_values ) )
3173
- $_customized_values = array();
3174
- foreach ( $_customized_values as $_setting_id => $_setting_value ) {
3175
- if ( $opt_name != substr($_setting_id, 0, strlen( $opt_name ) ) )
3176
- continue;
3177
- if ( ! is_object( $wp_customize -> get_setting( $_setting_id ) ) )
3178
- continue;
3179
- $_setting = $wp_customize -> get_setting( $_setting_id );
3180
- $id_data = $_setting -> id_data();
3181
- $multi_dim_keys = $id_data['keys'];
3182
- $is_multidimensional = ! empty( $multi_dim_keys );
3183
- $setting_id = $_setting -> id;
3184
- if ( ! $is_multidimensional )
3185
- continue;
3186
-
3187
- $valid = $_setting -> validate( $_setting_value );
3188
- if ( is_wp_error( $valid ) ) {
3189
- ha_error_log( 'in _get_wp_multidim_sanitized_customized_val, invalid value for setting' . $_setting_id );
3190
- continue;
3191
- }
3192
- $_setting_value = $_setting -> sanitize( $_setting_value );
3193
- foreach ( $multi_dim_keys as $_k ) {
3194
- $_val_candidate[$_k] = ! isset( $child_value[$_k] ) ? $_setting_value : $child_value[$_k];
3195
- }
3196
- }
3197
-
3198
- if ( $do_inherit ) {
3199
- $parent_skope_id = $this -> _get_parent_skope_id( $skope_id );
3200
- if ( false != $parent_skope_id && ! empty( $parent_skope_id ) && '_reached_the_roof_' != $parent_skope_id ) {
3201
- $_val_candidate = $this -> _get_wp_multidim_sanitized_customized_val( $opt_name, $parent_skope_id, true, $_val_candidate );
3202
- }
3203
- }
3204
-
3205
- if ( is_null( $_val_candidate ) || empty( $_val_candidate ) || is_wp_error( $_val_candidate ) )
3206
- $_val_candidate = array();
3207
-
3208
- return $_val_candidate;
3209
- }
3210
-
3211
-
3212
- }//class
3213
- endif;
3214
-
3215
- ?><?php
3216
-
3217
- /* ------------------------------------------------------------------------- *
3218
- * LOAD
3219
- /* ------------------------------------------------------------------------- */
3220
- function HA_SKOP_OPT() {
3221
- return HA_Skop_Option::ha_skop_opt_instance();
3222
- }
3223
- if ( defined('CZR_DEV') && true === CZR_DEV ) {
3224
- require_once( HA_BASE_PATH . 'addons/skop/_dev/skop-0-init-base.php' );
3225
- }
3226
- add_action('hu_hueman_loaded', 'ha_load_skop_options');
3227
- function ha_load_skop_options() {
3228
- if ( defined('CZR_DEV') && true === CZR_DEV ) {
3229
- require_once( HA_BASE_PATH . 'addons/skop/_dev/skop-options-base.php' );
3230
- require_once( HA_BASE_PATH . 'addons/skop/_dev/skop-options-front-end-value.php' );
3231
- require_once( HA_BASE_PATH . 'addons/skop/_dev/skop-options-preview-value.php' );
3232
- require_once( HA_BASE_PATH . 'addons/skop/_dev/skop-options-x-final.php' );
3233
- }
3234
- HA_SKOP_OPT();
3235
- }
3236
- if ( defined('CZR_DEV') && true === CZR_DEV ) {
3237
- require_once( HA_BASE_PATH . 'addons/skop/_dev/skop-customize-register.php' );
3238
- }
3239
- require_once( HA_BASE_PATH . 'addons/skop/tmpl/skope-tmpls.php' );
3240
-
3241
- new HA_Skop_Cust_Register();
3242
- add_action('hu_hueman_loaded', 'ha_load_skop_ajax');
3243
- function ha_load_skop_ajax() {
3244
- if ( defined('CZR_DEV') && true === CZR_DEV ) {
3245
- require_once( HA_BASE_PATH . 'addons/skop/_dev/skop-ajax-changeset-base.php' );
3246
- require_once( HA_BASE_PATH . 'addons/skop/_dev/skop-ajax-changeset-save.php' );
3247
- require_once( HA_BASE_PATH . 'addons/skop/_dev/skop-ajax-reset.php' );
3248
- }
3249
- new HA_Skop_Chset_Reset();
3250
- }
3251
- if ( defined('CZR_DEV') && true === CZR_DEV ) {
3252
- if ( apply_filters('ha_print_skope_logs' , false ) ) {
3253
- require_once( HA_BASE_PATH . 'addons/skop/_dev/_dev_skop-logs.php' );
3254
- function ha_instantiate_dev_logs() {
3255
- if ( class_exists( 'HA_skop_dev_logs') ) {
3256
- new HA_skop_dev_logs(
3257
- array(
3258
- 'hook' => '__header_after_container_inner',
3259
- 'display_header' => true,
3260
- 'tested_option' => 'header_image'
3261
- )
3262
-
3263
- );
3264
- }
3265
- }
3266
- add_action('hu_hueman_loaded', 'ha_instantiate_dev_logs', 100 );
3267
- }
3268
- }
3269
- add_action('init', 'ha_load_skop_customizer_preview' );
3270
- function ha_load_skop_customizer_preview() {
3271
- if ( HU_AD() -> ha_is_customize_preview_frame() ) {
3272
- if ( defined('CZR_DEV') && true === CZR_DEV ) {
3273
- require_once( HA_BASE_PATH . 'addons/skop/_dev/skop-customize-preview.php' );
3274
- }
3275
- new HA_Skop_Cust_Prev();
3276
- }
3277
- }
3278
- add_action( 'transition_post_status', 'ha_publish_skope_changeset_metas_on_post_status_transition', 0, 3 );
3279
- add_action( 'transition_post_status', 'ha_trash_skope_changeset_metas_on_post_status_transition', 0, 3 );
3280
-
3281
- /**
3282
- * hook : 'transition_post_status'
3283
- * Inspired of _wp_customize_publish_changeset in wp-includes/theme.php
3284
- * Publishes a snapshot's changes.
3285
- *
3286
- *
3287
- * @global wpdb $wpdb WordPress database abstraction object.
3288
- * @global WP_Customize_Manager $wp_customize Customizer instance.
3289
- *
3290
- * @param string $new_status New post status.
3291
- * @param string $old_status Old post status.
3292
- * @param WP_Post $changeset_post Changeset post object.
3293
- */
3294
- function ha_publish_skope_changeset_metas_on_post_status_transition( $new_status, $old_status, $changeset_post ) {
3295
- global $wp_customize, $wpdb;
3296
-
3297
- $is_publishing_changeset = (
3298
- 'customize_changeset' === $changeset_post->post_type
3299
- &&
3300
- 'publish' === $new_status
3301
- &&
3302
- 'publish' !== $old_status
3303
- );
3304
-
3305
- if ( ! $is_publishing_changeset ) {
3306
- return;
3307
- }
3308
-
3309
- if ( empty( $wp_customize ) ) {
3310
- require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
3311
- $wp_customize = new WP_Customize_Manager( array(
3312
- 'changeset_uuid' => $changeset_post->post_name,
3313
- 'settings_previewed' => false,
3314
- ) );
3315
- }
3316
- $theme_name = ha_get_skope_theme_name();
3317
- $response = array();
3318
- $changeset_post_id = $changeset_post->ID;
3319
- $raw_changeset_data = get_post_meta( $changeset_post_id );
3320
- $raw_changeset_data = is_array( $raw_changeset_data ) ? $raw_changeset_data : array();
3321
-
3322
- $unserialized_changeset_data = array();
3323
- foreach ( $raw_changeset_data as $meta_key => $meta_value ) {
3324
- if ( ! is_string( $meta_key ) || $theme_name != substr( $meta_key, 0 , strlen( $theme_name ) ) )
3325
- continue;
3326
-
3327
- if ( is_array( $meta_value ) && 1 == count( $meta_value ) ) {
3328
- $unserialized_changeset_data[ $meta_key ] = maybe_unserialize( $meta_value[0] );
3329
- } else {
3330
- $unserialized_changeset_data[ $meta_key ] = array_map( 'maybe_unserialize', $meta_value );
3331
- }
3332
- }
3333
- $changeset_candidate_data = array();
3334
- foreach ( $unserialized_changeset_data as $skope_meta_key => $customized_data ) {
3335
- $changeset_candidate_data[$skope_meta_key] = array_key_exists( $skope_meta_key, $changeset_candidate_data ) ? $changeset_candidate_data[$skope_meta_key] : array();
3336
- foreach ( $customized_data as $raw_setting_id => $setting_data ) {
3337
- if ( ! is_array( $setting_data ) || ! array_key_exists( 'value', $setting_data ) ) {
3338
- continue;
3339
- }
3340
-
3341
- $setting_id = $raw_setting_id;
3342
- if ( isset( $setting_data['type'] ) && 'theme_mod' === $setting_data['type'] ) {
3343
- $namespace_pattern = '/^(?P<stylesheet>.+?)::(?P<setting_id>.+)$/';
3344
- if ( preg_match( $namespace_pattern, $raw_setting_id, $matches ) && $wp_customize->get_stylesheet() === $matches['stylesheet'] ) {
3345
- $setting_id = $matches['setting_id'];
3346
- }
3347
- }
3348
- $changeset_candidate_data[$skope_meta_key][$setting_id] = $setting_data;
3349
- }
3350
- }
3351
- $skope_post_id = get_option('skope-post-id');
3352
- if ( false === $skope_post_id || empty( $skope_post_id ) ) {
3353
- wp_send_json_error( 'missing skope_post_id when attempting to publish the meta changeset' );
3354
- }
3355
-
3356
- if ( ! $skope_post_id ) {
3357
- wp_send_json_error( 'NO SKOPE CHANGESET POST ID' );
3358
- return;
3359
- }
3360
- $raw_published_data = get_post_meta( $skope_post_id );
3361
- $raw_published_data = is_array( $raw_published_data ) ? $raw_published_data : array();
3362
- $unserialized_published_data = array();
3363
- foreach ( $raw_published_data as $meta_key => $meta_value ) {
3364
- if ( is_array( $meta_value ) && 1 == count( $meta_value ) ) {
3365
- $unserialized_published_data[ $meta_key ] = maybe_unserialize( $meta_value[0] );
3366
- } else {
3367
- $unserialized_published_data[ $meta_key ] = array_map( 'maybe_unserialize', $meta_value );
3368
- }
3369
- }
3370
-
3371
- if ( is_wp_error( $unserialized_published_data ) ) {
3372
- $response['publish_skope_changeset_failure'] = $unserialized_published_data -> get_error_code();
3373
- return new WP_Error( 'publish_skope_changeset_failure', '', $response );
3374
- }
3375
- $changesetified_published_data = array();
3376
- foreach ( $unserialized_published_data as $skope_meta_key => $options_data ) {
3377
- if ( ! is_string( $skope_meta_key ) || $theme_name != substr( $skope_meta_key, 0 , strlen( $theme_name ) ) )
3378
- continue;
3379
-
3380
- $changesetified_published_data[ $skope_meta_key ] = array();
3381
- foreach ( $options_data as $_setid => $_value ) {
3382
- if ( 'skope_infos' == $_setid ) {
3383
- $changesetified_published_data[ $skope_meta_key ][$_setid] = $_value;
3384
- } else if ( _ha_is_wp_setting_multidimensional( $_setid ) ) {
3385
- $to_merge = _ha_build_multidimensional_db_option( $_setid, $_value );
3386
- foreach ( $to_merge as $_id => $val ) {
3387
- $changesetified_published_data[ $skope_meta_key ][$_id] = array( 'value' => $val );
3388
- }
3389
- } else {
3390
- $changesetified_published_data[ $skope_meta_key ][$_setid] = array( 'value' => $_value );
3391
- }
3392
- }
3393
- }
3394
- $publication_candidate_data = $changesetified_published_data;
3395
- if ( is_wp_error( $publication_candidate_data ) ) {
3396
- $publication_candidate_data = array();
3397
- }
3398
- foreach ( $changeset_candidate_data as $skope_meta_key => $skope_values ) {
3399
- if ( ! is_string( $skope_meta_key ) || $theme_name != substr( $skope_meta_key, 0 , strlen( $theme_name ) ) )
3400
- continue;
3401
-
3402
- if ( ! array_key_exists( $skope_meta_key, $publication_candidate_data ) ) {
3403
- $publication_candidate_data[$skope_meta_key] = array();
3404
- }
3405
- foreach ( $skope_values as $setting_id => $set_value ) {
3406
- if ( ! array_key_exists( $setting_id, $publication_candidate_data[$skope_meta_key] ) ) {
3407
- $publication_candidate_data[$skope_meta_key][ $setting_id ] = array();
3408
- }
3409
- if ( ! array_key_exists( 'value', $set_value ) ) {
3410
- continue;
3411
- ha_error_log( 'A setting value is not well formed for setting : ' . $setting_id );
3412
- }
3413
-
3414
- $publication_candidate_data[$skope_meta_key][ $setting_id ]['value'] = $set_value['value'];
3415
- }//foreach()
3416
- }
3417
- foreach ( $publication_candidate_data as $skope_meta_key => $options_data ) {
3418
- foreach ( $options_data as $setting_id => $setting_params ) {
3419
- if ( 'skope_infos' == $setting_id )
3420
- continue;
3421
- $setting = $wp_customize->get_setting( $setting_id );
3422
- if ( ! $setting || ! $setting->check_capabilities() ) {
3423
- ha_error_log( 'In _publish_skope_changeset_metas, ' . $setting_id . ' is not registered in $wp_customize.' );
3424
- continue;
3425
- }
3426
- }//foreach()
3427
- $publication_candidate_data[$skope_meta_key] = ha_prepare_skope_changeset_for_front_end( $publication_candidate_data[$skope_meta_key] );
3428
-
3429
- if ( is_wp_error( $publication_candidate_data[$skope_meta_key] ) || ! is_array( $publication_candidate_data[$skope_meta_key] ) ) {
3430
- $response[$skope_meta_key] = 'skope data not valid';
3431
- return new WP_Error( 'publish_skope_changeset_failure', '', $response );
3432
- }
3433
-
3434
- }//foreach()
3435
- foreach ( $publication_candidate_data as $skope_meta_key => $skope_option_values ) {
3436
- $r = update_post_meta( $skope_post_id, $skope_meta_key, $skope_option_values );
3437
- if ( is_wp_error( $r ) ) {
3438
- $response['changeset_post_save_failure'] = $r->get_error_code();
3439
- return new WP_Error( 'skope_changeset_post_save_failure', '', $response );
3440
- } else {
3441
- ha_clean_skope_changeset_metas_after_publish( $changeset_post_id );
3442
- }
3443
- }
3444
-
3445
- return $response;
3446
- }//_publish_skope_changeset_metas
3447
-
3448
-
3449
- /**
3450
- * hook : 'transition_post_status'
3451
- * Inspired of _wp_customize_publish_changeset in wp-includes/theme.php
3452
- * Publishes a snapshot's changes.
3453
- *
3454
- *
3455
- * @global wpdb $wpdb WordPress database abstraction object.
3456
- * @global WP_Customize_Manager $wp_customize Customizer instance.
3457
- *
3458
- * @param string $new_status New post status.
3459
- * @param string $old_status Old post status.
3460
- * @param WP_Post $changeset_post Changeset post object.
3461
- */
3462
- function ha_trash_skope_changeset_metas_on_post_status_transition( $new_status, $old_status, $changeset_post ) {
3463
- $is_trashing_changeset = (
3464
- 'customize_changeset' === $changeset_post->post_type
3465
- &&
3466
- 'trash' === $new_status
3467
- &&
3468
- 'publish' !== $old_status
3469
- );
3470
-
3471
- if ( ! $is_trashing_changeset ) {
3472
- return;
3473
- }
3474
- ha_clean_skope_changeset_metas_after_publish( $changeset_post->ID );
3475
- }
3476
- function ha_clean_skope_changeset_metas_after_publish( $changeset_post_id ) {
3477
- if ( ! $changeset_post_id )
3478
- return;
3479
-
3480
- $all_skope_changeset_metas = get_post_meta( $changeset_post_id );
3481
- $all_skope_changeset_metas = is_array( $all_skope_changeset_metas ) ? $all_skope_changeset_metas : array();
3482
-
3483
- foreach ( $all_skope_changeset_metas as $meta_key => $val ) {
3484
- $r = delete_post_meta( $changeset_post_id, $meta_key );
3485
- if ( is_wp_error( $r ) ) {
3486
- break;
3487
- }
3488
- }
3489
- }
3490
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
addons/skop/tmpl/skope-tmpls.php DELETED
@@ -1,124 +0,0 @@
1
- <?php
2
- add_action( 'customize_controls_print_footer_scripts', 'ha_print_skope_templates' );
3
- //data example :
4
- // id:"global"
5
- // ctx:"_all_"
6
- // dyn_type:"option"
7
- // el:"czr-scope-global"
8
- // is_default:true
9
- // is_winner:false
10
- // opt_name:"hu_theme_options"
11
- function ha_print_skope_templates() {
12
- ?>
13
-
14
- <?php /* SINGLE SKOPE TMPL @to_translate */ ?>
15
- <script type="text/html" id="tmpl-czr-skope">
16
- <div class="{{data.el}} {{data.skope}} czr-scope inactive" data-scope-id="{{data.id}}" data-dyn-type="{{data.dyn_type}}">
17
- <div class="czr-scope-header">
18
- <span class="czr-scope-reset fas fa-sync czr-pull-left" title="Reset"></span>
19
- <span class="czr-scope-switch fas fa-toggle-off czr-pull-right" title="Switch to / active ?"></span>
20
- </div>
21
- <div class="czr-scope-content"><h4 class="czr-skp-switch-link">{{data.title}}</h4></div>
22
- <div class="czr-scope-footer">
23
- <# if ( data.is_winner ) { #>
24
- <span class="czr-scope-winner fas fa-check czr-pull-left info" title="This scope of options will override any other scopes set site wide or in a parent scope."></span>
25
- <# } #>
26
- <span class="czr-scope-force fas fa-exclamation-circle czr-pull-right" title="Force priority"></span>
27
- </div>
28
- </div>
29
- </script>
30
-
31
-
32
-
33
- <?php /* RESET SKOPE PANEL TMPL @to_translate */ ?>
34
- <script type="text/html" id="tmpl-czr-skope-pane">
35
- <div id="czr-skope-pane" data-scope-id="{{data.id || ''}}">
36
- <# if ( data.is_skope_loading ) { #>
37
- <div class="czr-css-loader czr-mr-loader">
38
- <div></div>
39
- <div></div>
40
- <div></div>
41
- </div>
42
- <# } else { #>
43
- <div class="czr-reset-content">
44
- <div class="czr-reset-warning">
45
- <h2>{{data.warning_message}}</h2>
46
- <p>This can not be undone</p>
47
- <span class="button czr-scope-do-reset">YES RESET NOW</span>&nbsp;
48
- <span class="button czr-scope-reset-cancel">CANCEL</span>
49
- </div>
50
- <div class="czr-spinner-wrapper">
51
- <span class="czr-spinner"></span>
52
- </div>
53
- <div class="czr-reset-success">
54
- <h2>{{data.success_message}}</h2>
55
- </div>
56
- <div class="czr-reset-fail">
57
- <h2>There was a problem when trying to reset {{data.id}}.</h2>
58
- </div>
59
- </div>
60
- <# } #>
61
- </div>
62
- </script>
63
-
64
-
65
- <?php /* RESET CONTROL TMPL @to_translate */ ?>
66
- <script type="text/html" id="tmpl-czr-reset-control">
67
- <div class="czr-remove-alert-wrapper czr-ctrl-reset-warning">
68
- <div class="czr-crtl-reset-dialog">
69
- <p>{{data.warning_message}}</p>
70
- <# if ( ! data.is_authorized ) { #>
71
- <span class="customize-control-title">{{ data.label }}</span>
72
- <span class="czr-cancel-button button">Close</span>
73
- <# } else { #>
74
- <span class="czr-control-do-reset button">Yes</span> <span class="czr-cancel-button button">No</span>
75
- <span class="czr-spinner"></span>
76
- <# } #>
77
- </div>
78
- <div class="czr-reset-success">
79
- <p>{{data.success_message}}</p>
80
- </div>
81
- <div class="czr-reset-fail">
82
- <p>There was a problem when trying to reset.</p>
83
- </div>
84
- </div>
85
- </script>
86
-
87
-
88
- <?php /* PREVIEW TOP NOTE @to_translate */ ?>
89
- <script type="text/html" id="tmpl-czr-top-note">
90
- <div id="czr-top-note" class="czr-preview-notification">
91
- <div class="czr-note-content">
92
- <span class="fas fa-arrow-left"></span>
93
- <h2>{{data.title}}</h2>
94
- <p class="czr-note-message"></p>
95
- <span class="fas fa-times czr-preview-note-close" title="close"></span>
96
- </div>
97
- </div>
98
- </script>
99
-
100
- <?php /* PREVIEW BOTTOM INFORMATIONS */ ?>
101
- <script type="text/html" id="tmpl-czr-bottom-infos">
102
- <div id="czr-bottom-infos" class="czr-preview-notification">
103
- <div class="czr-note-content">
104
- <h2>{{data.title}}</h2>
105
- <p class="czr-note-message"></p>
106
- <span class="fas fa-times czr-preview-note-close" title="<?php _e( 'Close', 'hueman'); ?>"></span>
107
- </div>
108
-
109
- <p class="action-links-wrap">
110
- <span class="action-link">
111
- <span class="fas fa-info-circle"></span><a class="czr-doc-link" href="http://docs.presscustomizr.com/article/256-using-the-customizer-in-the-hueman-wordpress-theme" title="<?php _e( 'Using the customizer in the Hueman theme', 'hueman'); ?>" target="_blank"> <?php _e( 'Using the customizer in the Hueman theme', 'hueman'); ?></a>
112
- </span>
113
- <span class="action-link">
114
- <span class="fas fa-cog"></span><span class="czr-disable-bottom-infos" title="<?php _e( 'Permanently disable this notification', 'hueman'); ?>"> <?php _e( 'Permanently disable this notification.', 'hueman'); ?></span>
115
- </span>
116
- </p>
117
- </div>
118
- </script>
119
- <?php
120
- }
121
-
122
-
123
-
124
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
contextualizer/assets/czr/css/contextualizer-control.css ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #customize-theme-controls #accordion-panel-contx_panel {
2
+ margin: 10px 0;
3
+ }
4
+
5
+ .width-100 {
6
+ width: 100%;
7
+ }
8
+ .skp-ctrl-note-wrapper {
9
+ padding-top: 8px;
10
+ }
11
+ .skp-ctrl-bottom-note {
12
+ clear: both;
13
+ font-size: 0.7rem;
14
+ line-height: 1rem;
15
+ }
16
+ .skp-ctrl-bottom-note.is-contextualized i {
17
+ color: #008ec2;
18
+ }
19
+ .skp-ctrl-bottom-note .skp-focus-link {
20
+ cursor: pointer;
21
+ }
22
+
23
+ li.customize-control[data-module*="skp__"] [class*="czr-"] {
24
+ font-size: 0.9rem;
25
+ }
26
+ li.customize-control[data-module*="skp__"] .czr-item-title {
27
+ padding: 4px;
28
+ }
29
+ li.customize-control[data-module*="skp__"] .czr-open-pre-add-new {
30
+ background: #fff;
31
+ color: inherit;
32
+ }
33
+ li.customize-control[data-module*="skp__"] .czr-open-pre-add-new.active {
34
+ color: black;
35
+ opacity: 0.8;
36
+ }
37
+ li.customize-control[data-module*="skp__"] li {
38
+ margin-bottom: 0;
39
+ font-size: 0.85em;
40
+ }
41
+ li.customize-control[data-module*="skp__"] .czr-single-item .czr-item-content {
42
+ background: none;
43
+ }
44
+ li.customize-control[data-module*="skp__"] .czr-single-item .czr-item-header {
45
+ background: #ededed;
46
+ }
47
+ li.customize-control[data-module*="skp__"] .czr-pre-add-view-content {
48
+ border: 1px solid #ccc;
49
+ background: #fff;
50
+ }
51
+ li.customize-control[data-module*="skp__"] .czr-notice {
52
+ font-size: 12px!important;
53
+ }
54
+ li.customize-control[data-module*="skp__"] [class*="czr-"] .hidden {
55
+ display: none;
56
+ }
57
+ li.customize-control[data-module*="skp__"] .czr-item-btns a {
58
+ color: #9e9e9e;
59
+ -webkit-transition: color .25s ease-in-out;
60
+ -moz-transition: color .25s ease-in-out;
61
+ -ms-transition: color .25s ease-in-out;
62
+ -o-transition: color .25s ease-in-out;
63
+ transition: color .25s ease-in-out;
64
+ }
65
+ li.customize-control[data-module*="skp__"] .czr-item-btns a:hover,
66
+ li.customize-control[data-module*="skp__"] .czr-item-btns a.active {
67
+ color: #23282d;
68
+ }
contextualizer/assets/czr/js/contextualizer-control.js ADDED
@@ -0,0 +1,2228 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // global contxLocalizedParams
2
+ var CZRContextualizerModuleMths = CZRContextualizerModuleMths || {};
3
+
4
+ ( function ( api, $, _ ) {
5
+ $.extend( CZRContextualizerModuleMths, {
6
+
7
+ initialize: function( id, constructorOptions ) {
8
+ var module = this;
9
+
10
+ module.initialConstrucOptions = $.extend( true, {}, constructorOptions );//detach from the original obj
11
+
12
+ // SKOPE LEVEL CHECK
13
+ // the skopeLevel param must be passed when instanciating the control
14
+ if ( ! _.has( constructorOptions.control.params, 'skopeLevel' ) || ! _.contains( ['group', 'local' ], constructorOptions.control.params.skopeLevel ) ) {
15
+ throw new Error( 'initialize skope module => missing skope level' );
16
+ }
17
+
18
+ // SKOPE ID CHECK
19
+ // the skopeId param must be passed when instanciating the control
20
+ if ( ! _.has( constructorOptions.control.params, 'skopeId' ) ) {
21
+ throw new Error( 'initialize skope module => missing skopeId' );
22
+ }
23
+
24
+
25
+
26
+ // extend the module with new template Selectors
27
+ // the itemInputList is a fn() of the setting type
28
+ // $.extend( module, {
29
+ // itemPreAddEl : '',// 'czr-module-flat-skope-pre-item-input-list',
30
+ // itemInputList : ''
31
+ // } );
32
+
33
+ //EXTEND THE DEFAULT CONSTRUCTORS FOR INPUTS
34
+ module.inputConstructor = api.CZRInput.extend( module.CZRFlatSkopeItemInputCtor || {} );
35
+
36
+ //EXTEND THE DEFAULT CONSTRUCTORS FOR ITEMS AND MODOPTS
37
+ module.itemConstructor = api.CZRItem.extend( module.CZRFlatSkopeItemCtor || {} );
38
+
39
+ // run the parent initialize
40
+ api.CZRDynModule.prototype.initialize.call( module, id, constructorOptions );
41
+
42
+ //DEFINE THE MODULE SKOPE CONSTANT.
43
+ //can be 'local' or 'group'
44
+ module.SKOPE_LEVEL = constructorOptions.control.params.skopeLevel;
45
+ module.SKOPE_ID = constructorOptions.control.params.skopeId;
46
+
47
+ //declares a default Item model
48
+ // 'id' => '',
49
+ // 'title' => '',
50
+ // 'skope-id' => 'home',
51
+ // 'setting-id' => '',
52
+ // 'type' => '',
53
+ // 'value' => ''
54
+ this.defaultItemModel = contxLocalizedParams.defaultModel;
55
+
56
+ // FIRE MODULE READY
57
+ //1) on section expansion
58
+ //2) or in the case of a module embedded in a regular control, if the module section is alreay opened => typically when skope is enabled
59
+ //3) on skope change, remotely triggered from api.czr_skopebase.trigger( 'set-module-ready' ) after dynamic instantiation
60
+ // if ( _.has( api, 'czr_activeSectionId' ) && module.control.section() == api.czr_activeSectionId() && 'resolved' != module.isReady.state() ) {
61
+ // module.ready();
62
+ // }
63
+ // api.section( module.control.section() ).expanded.bind( function() {
64
+ // if ( 'resolved' == module.isReady.state() )
65
+ // return;
66
+ // api.czr_initialSkopeCollectionPopulated.then( function() {
67
+ // module.ready();
68
+ // });
69
+ // });
70
+
71
+ //Awake the module with a remote signal
72
+ module.control.bind( 'set-module-ready', function() {
73
+ module.ready();
74
+ });
75
+
76
+ // When the collection of input in the pre-item are ready, implement the dependencies
77
+ // Example : id => changes title
78
+ module.bind( 'pre-item-input-collection-ready', function() {
79
+ // setup model values and dependencies on init.
80
+ if ( serverControlParams.isDevMode ) {
81
+ module.setupPreItemInputs();
82
+ } else {
83
+ try {
84
+ module.setupPreItemInputs();
85
+ } catch (error) {
86
+ api.errorLog( 'flat skope => ' + error );
87
+ }
88
+ }
89
+ });
90
+
91
+ // PREVENT ITEM ADDITION IF ALL SETTINGS HAVE BEEN CUSTOMIZED
92
+ // <=> no remaining setting available for this skope_id
93
+ // @param canWe = { addTheItem : true }
94
+ module.bind( 'is-item-addition-possible', function( canWe ) {
95
+ if ( ! _.isObject( canWe ) || _.isUndefined( canWe.addTheItem ) ) {
96
+ return { addTheItem : true };
97
+ }
98
+
99
+ if ( _.isEmpty( module.setRemainingSkopableSettingIds() ) ) {
100
+ var sectionId = module.control.section();
101
+ if ( module.control.section && ! _.isUndefined( module.control.notifications ) ) {
102
+ api.section( sectionId ).notifications.add( new api.Notification( 'all-settings-contextualized', {
103
+ type: 'info',
104
+ message: contxLocalizedParams.i18n['All settings have already been contextualized for this page.'],
105
+ dismissible: true
106
+ } ) );
107
+
108
+ // Removed if not dismissed after 5 seconds
109
+ _.delay( function() {
110
+ api.section( sectionId ).notifications.remove( 'all-settings-contextualized' );
111
+ }, 5000 );
112
+ }
113
+ canWe.addTheItem = false;
114
+ }
115
+ return canWe;
116
+ });
117
+
118
+
119
+ // REACT TO ITEM REMOVAL
120
+ // UPDATE THE SKOPABLE SETTING COLLECTION WHEN SETTINGS ARE ADDED / REMOVED
121
+ // AVAILABLE SELECTOR COLLECTION
122
+ //module.bind( 'items-collection-populated', function() {
123
+ module.isReady.then( function() {
124
+ module.bind( 'item-removed', function() {
125
+ module.setRemainingSkopableSettingIds();
126
+ api.previewer.refresh();
127
+ // REFRESH SKOPE INFO IN EACH SKOPABLE CONTROLS
128
+ api.czr_skopeReact.trigger( 'refresh-skope-notes-in-controls' );
129
+ });
130
+ module.bind( 'item-added', function() {
131
+ // REFRESH SKOPE INFO IN EACH SKOPABLE CONTROLS
132
+ api.czr_skopeReact.trigger( 'refresh-skope-notes-in-controls' );
133
+ });
134
+ });
135
+
136
+ // VARIOUS ACTIONS WHEN MODULE IS READY
137
+ module.isReady.then( function() {
138
+ // Always update the local skope-id in the pre-item
139
+ if ( module.preItem && ! _.isEmpty( module.preItem.czr_Input ) && module.preItem.czr_Input.has('skope-id') ) {
140
+ module.preItem.czr_Input( 'skope-id' )( module.SKOPE_ID );
141
+ }
142
+
143
+ // Display the parent control when relevant
144
+ // @todo => this can be removed now.
145
+ module.control.active( '_skope_not_set_' != module.SKOPE_ID );
146
+ });
147
+
148
+
149
+ // EXPAND THE PRE-ITEM AND PRE-SELECT A SETTING FOR A POSSIBLE ADDITION
150
+ // OR EXPAND THE ITEM IF ALREADY ADDED
151
+ // Triggered on api.control( skopeControlId ).focus({ completeCallback: function() {} );
152
+ // @see czr_skopeReact::scheduleSkopeReactions()
153
+ // @param params = { setId : setId }
154
+ module.control.bind( 'contx-expand-pre-item', function( params ) {
155
+ if ( module.czr_Item.has( params.setId ) ) {
156
+ module.czr_Item( params.setId ).viewState( 'expanded' );
157
+ } else {
158
+ var _doAndSelfUnbind = function() {
159
+ module.preItem.czr_Input( 'setting-id', function( _input_ ) {
160
+ var $select = _input_.container.find('select');
161
+ $select.val( params.setId ).trigger('change');
162
+ });
163
+ module.unbind('pre-item-input-collection-ready', _doAndSelfUnbind );
164
+ };
165
+ module.bind('pre-item-input-collection-ready', _doAndSelfUnbind );
166
+ module.preItemExpanded( true );
167
+ }
168
+ });
169
+ },//initialize
170
+
171
+
172
+
173
+ //////////////////////////////////////////////////////////
174
+ /// <CORE OVERIDDEN METHODS>
175
+ // This method is fired by the core fmk right before an item instantiation
176
+ // Prevent an item to be instantiated
177
+ // typically when a context has no group skope
178
+ itemCanBeInstantiated : function() {
179
+ return this.weHaveASkope();
180
+ },
181
+
182
+
183
+ /////////////////////////////////////////
184
+ // This method is fired by the core fmk right before an item instantiation, when the item candidate has been prepared
185
+ // is fired in CZRModule::instantiateItem() where we check if ( ! item_candidate || _.isNull( item_candidate ) ) after validation
186
+ validateItemBeforeAddition : function( api_ready_item, is_added_by_user ) {
187
+ var module = this,
188
+ sectionId = module.control.section(),
189
+ skopepableSettingCollection = api.czr_skopeReact.getSkopableSettings();
190
+
191
+ // CHECK THAT THE SETTING ID IS SKOPABLE
192
+ // IT can happen that some unskopable setting are
193
+ if ( _.contains( contxLocalizedParams.unskopableSettings, api_ready_item['setting-id'] ) )
194
+ return;
195
+
196
+ // CHECK THAT THE MANDATORY ITEM PROPERTY ARE PROPERLY SET
197
+ // Default Item model
198
+ // 'id' => '',
199
+ // 'title' => '',
200
+ // 'skope-id' => 'home',
201
+ // 'setting-id' => '',
202
+ // 'type' => '',
203
+ // 'value' => ''
204
+ // When mapping the old skope data, the type can not be set.
205
+ // We need to set it now if needed
206
+ _.each( module.defaultItemModel, function( propertyVal, propertyId ) {
207
+ switch( propertyId ) {
208
+ case 'type' :
209
+ if ( _.isEmpty( api_ready_item[ propertyId ] ) ) {
210
+ var _type_candidate_ = _.findWhere( skopepableSettingCollection, { 'setting-id' : api_ready_item['setting-id'] } );
211
+ if ( _.isEmpty( _type_candidate_ ) || ! _.isString( _type_candidate_.type ) ) {
212
+ api.errare( 'validateItemBeforeAddition => could not set the item "type" property for item ', api_ready_item );
213
+ break;
214
+ }
215
+ api_ready_item[ 'type' ] = _type_candidate_.type;
216
+ }
217
+ break;
218
+ }
219
+ });
220
+
221
+ if ( _.isEmpty( api_ready_item[ 'type' ] ) )
222
+ return;
223
+
224
+ /// BLOCK ITEM ADDITION AND NOTIFY USER
225
+ /// when trying to add an item already added for the same pair of setting-id - skope_id
226
+ if ( api_ready_item.id && module.czr_Item && module.czr_Item.has( api_ready_item.id ) ) {
227
+ if ( module.control.section && ! _.isUndefined( module.control.notifications ) ) {
228
+ api.section( sectionId ).notifications.add( new api.Notification( 'item_already_exists', {
229
+ type: 'info',
230
+ message: contxLocalizedParams.i18n['This setting is already customized for this context.'],
231
+ dismissible: true
232
+ } ) );
233
+
234
+ // Removed if not dismissed after 5 seconds
235
+ _.delay( function() {
236
+ api.section( sectionId ).notifications.remove( 'item_already_exists' );
237
+ }, 5000 );
238
+ }
239
+ return;
240
+ }
241
+ return api_ready_item;
242
+ },
243
+
244
+ //////////////////////////////////////////////////////////
245
+ /// </CORE OVERIDDEN METHODS>
246
+
247
+ });//extend
248
+ })( wp.customize , jQuery, _ );// global contxLocalizedParams
249
+ var CZRContextualizerModuleMths = CZRContextualizerModuleMths || {};
250
+
251
+ ( function ( api, $, _ ) {
252
+ $.extend( CZRContextualizerModuleMths, {
253
+
254
+ //////////////////////////////////////////////////////////
255
+ /// SETUP PRE ITEM MODEL INITIAL VALUES AND INPUT DEPENDENCIES
256
+ //////////////////////////////////////////
257
+ // fired on 'pre-item-input-collection-ready'
258
+ // - on init the module.preItem() is not set yet. => id = "" and title = false.
259
+ // => we want to set starter values so that even if the user clicks on "Add it" without picking any predefined selector, it creates a valid module item with an id + a title
260
+ // - when the pre-defined id changes, the title should be updated.
261
+ setupPreItemInputs : function() {
262
+ var module = this,
263
+ remainingSkopableSettings = module.getRemainingSkopableSettingIds();
264
+
265
+ if ( _.isUndefined( module.preItem.czr_Input ) || ! _.isObject( module.preItem.czr_Input ) ) {
266
+ api.errorLog('Missing input collection in the pre-item for module : ' + module.id );
267
+ }
268
+ // module.preItem.czr_Input( 'title' )( _newTitle );
269
+ module.preItem.czr_Input.each( function( _input_ ) {
270
+ switch( _input_.id ) {
271
+ case 'setting-id' :
272
+ _input_.bind( function( settingId ) {
273
+ //write a unique id based on the settingid
274
+ module.preItem.czr_Input( 'id' )( settingId );
275
+
276
+ //set the type based on the setting id
277
+ var _setting_data_ = _.findWhere( remainingSkopableSettings, { 'setting-id' : settingId } ),
278
+ _type,
279
+ _apiValue;
280
+
281
+ if ( _.isObject( _setting_data_ ) ) {
282
+ _type = _setting_data_.type;
283
+ if ( api.has( _setting_data_.apiSetId ) ) {
284
+ _apiValue = api( _setting_data_.apiSetId )();
285
+ }
286
+ }
287
+ // console.log('settingId', settingId );
288
+ // console.log('remainingSkopableSettings', remainingSkopableSettings );
289
+ // console.log('_setting data', _setting_data_ );
290
+ // console.log('api.czr_skopeReact.getAuthorizedSettingTypes()', api.czr_skopeReact.getAuthorizedSettingTypes() );
291
+
292
+ if ( _.isUndefined( _type ) || _.isNull( _type ) || ! _.contains( api.czr_skopeReact.getAuthorizedSettingTypes(), _type ) ) {
293
+ api.errorLog( 'No type defined or unauthorized type for setting : ' + settingId );
294
+ } else {
295
+ module.preItem.czr_Input( 'type' )( _type );
296
+ }
297
+
298
+ // always initialize a local customization with the current api value
299
+ module.preItem.czr_Input( 'value' )( _apiValue );
300
+ //api.consoleLog( 'module.preItem.', module.preItem() );
301
+ });
302
+ break;
303
+ }
304
+ });
305
+
306
+ // Set the current skopeId
307
+ if ( ! _.has( api.czr_activeSkopes(), module.SKOPE_LEVEL ) ) {
308
+ api.errorLog( 'setupPreItemInputs => ' + module.SKOPE_LEVEL + ' was not found in the skope list' );
309
+ return;
310
+ } else {
311
+ module.preItem.czr_Input( 'skope-id' )( api.czr_activeSkopes()[ module.SKOPE_LEVEL ] );
312
+ }
313
+
314
+
315
+ // get the first selector of the collection and set it as initial setting-id
316
+ if ( remainingSkopableSettings[0] && remainingSkopableSettings[0]['setting-id'] ) {
317
+ var settingIdOnInit = remainingSkopableSettings[0]['setting-id'];
318
+ // set it
319
+ // it will also set the title with the listener above
320
+ module.preItem.czr_Input( 'setting-id' )( settingIdOnInit );
321
+ } else {
322
+ api.errorLog( "Error in flat skope => impossible to set the initial setting id");
323
+ }
324
+
325
+ }
326
+ });//extend
327
+ })( wp.customize , jQuery, _ );// global contxLocalizedParams
328
+ var CZRContextualizerModuleMths = CZRContextualizerModuleMths || {};
329
+
330
+ ( function ( api, $, _ ) {
331
+ $.extend( CZRContextualizerModuleMths, {
332
+ //////////////////////////////////////////////////////////
333
+ /// <MODULE HELPERS>
334
+ // @return a boolean
335
+ weHaveASkope : function() {
336
+ return '_skope_not_set_' != api.czr_skopeBase.getSkopeProperty( 'skope_id', this.SKOPE_LEVEL );
337
+ },
338
+
339
+
340
+ // Returns only the settings that have not been already customized for this skope_level
341
+ // Prevent a given pair of setting_id + skope_id to have more than on item instantiated
342
+ getRemainingSkopableSettingIds : function() {
343
+ var module = this;
344
+
345
+ if ( ! _.isEmpty( module.remainingSettingIds ) ) {
346
+ return module.remainingSettingIds;
347
+ } else {
348
+ return module.setRemainingSkopableSettingIds();
349
+ }
350
+ },
351
+
352
+
353
+ // Returns only the settings that have not been already customized for this skope_level
354
+ // Prevent a given pair of setting_id + skope_id to have more than on item instantiated
355
+ setRemainingSkopableSettingIds : function() {
356
+ // filter the complete collection of skopable setting
357
+ // return only the ones that have not been already customized for this skope_id
358
+ var module = this,
359
+ currentSkopeLevelId = api.czr_skopeBase.getSkopeProperty( 'skope_id', module.SKOPE_LEVEL ),
360
+ remainingSettingIds = [],
361
+ moduleItems = module().items;
362
+
363
+ // if the item collection includes a setting with
364
+ _.each( api.czr_skopeReact.getSkopableSettings(), function( settingData ) {
365
+ var itemsWithSameSetId = _.filter( moduleItems, function( _item_ ) { return _item_['setting-id'] == settingData['setting-id']; } ),
366
+ itemsCandidates = [];
367
+ // if not added yet, it's part of the remaining
368
+ if ( _.isEmpty( itemsWithSameSetId ) ) {
369
+ remainingSettingIds.push( settingData );
370
+ }
371
+ // Let's check if the id has been already added for this skope
372
+ // else {
373
+ // itemsCandidates = _.findWhere( itemsWithSameSetId, { 'skope-id' : currentSkopeLevelId } );
374
+ // if ( _.isEmpty( itemsCandidates ) ) {
375
+ // remainingSettingIds.push( settingData );
376
+ // }
377
+ // }
378
+
379
+ });
380
+
381
+ // cache it
382
+ module.remainingSettingIds = remainingSettingIds;
383
+
384
+ return remainingSettingIds;
385
+ }
386
+ });//extend
387
+ })( wp.customize , jQuery, _ );// global contxLocalizedParams
388
+ var CZRContextualizerModuleMths = CZRContextualizerModuleMths || {};
389
+ CZRContextualizerModuleMths.CZRFlatSkopeItemInputCtor = CZRContextualizerModuleMths.CZRFlatSkopeItemInputCtor || {};
390
+ ( function ( api, $, _ ) {
391
+ $.extend( CZRContextualizerModuleMths, {
392
+ //////////////////////////////////////////////////////////
393
+ /// INPUT CONSTRUCTORS
394
+ //////////////////////////////////////////
395
+ CZRFlatSkopeItemInputCtor : $.extend( CZRContextualizerModuleMths.CZRFlatSkopeItemInputCtor , {
396
+ setupStepper : function() {
397
+ var input = this,
398
+ input_parent = input.input_parent,
399
+ _model = input_parent(),
400
+ _skopableSettingData = _.findWhere( api.czr_skopeReact.getSkopableSettings(), { 'setting-id' : _model['setting-id'] } );
401
+
402
+ if ( _.isEmpty( _skopableSettingData ) || ! api.control.has( _skopableSettingData.apiCtrlId ) ) {
403
+ api.errorLog( 'Skope => setup number input => could not find the original control');
404
+ return;
405
+ }
406
+
407
+ var $originalRangeInput = api.control( _skopableSettingData.apiCtrlId ).container.find( 'input[type=number]' ),
408
+ minAttr = _.isEmpty( $originalRangeInput.attr( 'min' ) ) ? 0 : $originalRangeInput.attr( 'min' ),
409
+ maxAttr = _.isEmpty( $originalRangeInput.attr( 'max' ) ) ? 3000 : $originalRangeInput.attr( 'max' ),
410
+ stepAttr = _.isEmpty( $originalRangeInput.attr( 'step' ) ) ? 1 : $originalRangeInput.attr( 'step' );
411
+
412
+ // remove the placeholder
413
+ if ( 0 < input.container.find('.placeholder-to-be-replaced-by-dynamic-content').length ) {
414
+ input.container.find('.placeholder-to-be-replaced-by-dynamic-content').remove();
415
+ }
416
+
417
+ // Append the html
418
+ input.container.find('.czr-input').append(
419
+ '<input data-czrtype="value" type="number" id="skoped-' + input.id + '" min="' + minAttr + '" max="' + maxAttr + '" step="' + stepAttr + '" value="' + input() + '">'
420
+ );
421
+ $('input[type="number"]',input.container ).each( function( e ) {
422
+ $(this).stepper();
423
+ });
424
+ },
425
+
426
+ // overrides the core
427
+ // generates the radio input based on the original control
428
+ setupSimpleRange : function() {
429
+ var input = this,
430
+ input_parent = input.input_parent,
431
+ _model = input_parent(),
432
+ _skopableSettingData = _.findWhere( api.czr_skopeReact.getSkopableSettings(), { 'setting-id' : _model['setting-id'] } );
433
+
434
+ if ( _.isEmpty( _skopableSettingData ) || ! api.control.has( _skopableSettingData.apiCtrlId ) ) {
435
+ api.errorLog( 'Skope => setupRadio input => could not find the original control');
436
+ return;
437
+ }
438
+
439
+ var $originalRangeInput = api.control( _skopableSettingData.apiCtrlId ).container.find( 'input[type=range]' ),
440
+ minAttr = _.isEmpty( $originalRangeInput.attr( 'min' ) ) ? 0 : $originalRangeInput.attr( 'min' ),
441
+ maxAttr = _.isEmpty( $originalRangeInput.attr( 'max' ) ) ? 0 : $originalRangeInput.attr( 'max' ),
442
+ stepAttr = _.isEmpty( $originalRangeInput.attr( 'step' ) ) ? 0 : $originalRangeInput.attr( 'step' );
443
+
444
+ // remove the placeholder
445
+ if ( 0 < input.container.find('.placeholder-to-be-replaced-by-dynamic-content').length ) {
446
+ input.container.find('.placeholder-to-be-replaced-by-dynamic-content').remove();
447
+ }
448
+
449
+ // Append the html
450
+ input.container.find('.czr-input').append(
451
+ '<input data-czrtype="value" type="range" id="skoped-' + input.id + '" min="' + minAttr + '" max="' + maxAttr + '" step="' + stepAttr + '" value="' + input() + '">'
452
+ );
453
+ },
454
+
455
+ // overrides the core
456
+ // generates the radio input based on the original control
457
+ setupRadio : function() {
458
+ var input = this,
459
+ input_parent = input.input_parent,
460
+ _model = input_parent(),
461
+ _skopableSettingData = _.findWhere( api.czr_skopeReact.getSkopableSettings(), { 'setting-id' : _model['setting-id'] } ),
462
+ _radioInputValueList = [];
463
+
464
+ if ( _.isEmpty( _skopableSettingData ) || ! api.control.has( _skopableSettingData.apiCtrlId ) ) {
465
+ api.errorLog( 'Skope => setupRadio input => could not find the original control');
466
+ return;
467
+ }
468
+ api.control( _skopableSettingData.apiCtrlId ).container.find( 'input[type="radio"]' ).each( function() {
469
+ _radioInputValueList.push( $(this).attr('value') );
470
+ });
471
+
472
+ if ( _.isEmpty( _radioInputValueList ) ) {
473
+ api.errorLog( 'Skope => setupRadio input => not able to build a list of radio input');
474
+ return;
475
+ }
476
+
477
+ // remove the placeholder
478
+ if ( 0 < input.container.find('.placeholder-to-be-replaced-by-dynamic-content').length ) {
479
+ input.container.find('.placeholder-to-be-replaced-by-dynamic-content').remove();
480
+ }
481
+
482
+ // Append the html
483
+ _.each( _radioInputValueList , function( radioChoice ) {
484
+ input.container.find('.czr-input').append( [
485
+ '<span class="customize-inside-control-row">',
486
+ '<input data-czrtype="value" id="' + [ radioChoice, '-', input.id ].join('') + '" type="radio" value="' + radioChoice + '" name="czr-radio-' + input.id + '">',
487
+ '<label for="' + [ radioChoice, '-', input.id ].join('') + '">' + radioChoice +'</label>',
488
+ '</span>'
489
+ ].join('')
490
+ );
491
+ } );
492
+
493
+
494
+ // setup icheck
495
+ $( 'input[type=radio]', input.container ).each( function(e) {
496
+ if ( 0 !== $(this).closest('div[class^="icheckbox"]').length )
497
+ return;
498
+ if ( input() == $(this).val() ) {
499
+ $(this).attr( 'checked', 'checked' );
500
+ } else {
501
+ $(this).removeAttr('checked');
502
+ }
503
+
504
+ $(this).iCheck({
505
+ checkboxClass: 'icheckbox_flat-grey',
506
+ checkedClass: 'checked',
507
+ radioClass: 'iradio_flat-grey',
508
+ })
509
+ .on( 'ifChanged', function(e){
510
+ //$(this).val( false === $(this).is(':checked') ? 0 : 1 );
511
+ $(e.currentTarget).trigger('change');
512
+ });
513
+ });
514
+ },
515
+
516
+
517
+ // overrides the core
518
+ setupColorPicker : function() {
519
+ var input = this,
520
+ item = input.input_parent,
521
+ isHueSlider = false,//this.params.mode === 'hue',
522
+ updating = false,
523
+ picker;
524
+
525
+ // Is it an hueSlider ?
526
+ // We need to get the information from the control associated with the parent item.
527
+ var apiCtrlId, _ctrl_;
528
+ _ctrl_ = _.findWhere( api.skopableSettingsCollection(), { 'setting-id' : item()['setting-id'] } );
529
+ apiCtrlId = _ctrl_.apiCtrlId;
530
+ if ( ! _.isEmpty( apiCtrlId ) && api.control.has( apiCtrlId ) ) {
531
+ isHueSlider = api.control( apiCtrlId ).params.mode === 'hue';
532
+ }
533
+
534
+ if ( isHueSlider ) {
535
+ picker = input.container.find('input');
536
+ picker.val( input() ).wpColorPicker({
537
+ change: function( event, ui ) {
538
+ updating = true;
539
+ input( ui.color.h() );
540
+ updating = false;
541
+ }
542
+ });
543
+ } else {
544
+ picker = input.container.find('input');
545
+ picker.val( input() ).wpColorPicker({
546
+ change: function() {
547
+ updating = true;
548
+ input( picker.wpColorPicker( 'color' ) );
549
+ updating = false;
550
+ },
551
+ clear: function() {
552
+ updating = true;
553
+ input( '' );
554
+ updating = false;
555
+ }
556
+ });
557
+ }
558
+
559
+ input.callbacks.add( function ( value ) {
560
+ // Bail if the update came from the input itself.
561
+ if ( updating ) {
562
+ return;
563
+ }
564
+ picker.val( value );
565
+ picker.wpColorPicker( 'color', value );
566
+ } );
567
+
568
+ // Collapse color picker when hitting Esc instead of collapsing the current section.
569
+ input.container.on( 'keydown', function( event ) {
570
+ var pickerContainer;
571
+ if ( 27 !== event.which ) { // Esc.
572
+ return;
573
+ }
574
+ pickerContainer = input.container.find( '.wp-picker-container' );
575
+ if ( pickerContainer.hasClass( 'wp-picker-active' ) ) {
576
+ picker.wpColorPicker( 'close' );
577
+ input.container.find( '.wp-color-result' ).focus();
578
+ event.stopPropagation(); // Prevent section from being collapsed.
579
+ }
580
+ } );
581
+ },
582
+
583
+ // ready : function() {
584
+ // api.CZRInput.prototype.ready.call( input);
585
+ // },
586
+ // overrides the core
587
+ setupSelect : function() {
588
+ // if ( 'selector' != this.id )
589
+ // return;
590
+
591
+ var input = this,
592
+ module = input.module;
593
+
594
+ switch( input.id ) {
595
+ // in pre-item only
596
+ case 'setting-id' :
597
+ input._setupSelectForPreItemSettingId();
598
+ break;
599
+ case 'value' :
600
+ // the idea is to get the select options from the already rendered control
601
+ var input_parent = input.input_parent,
602
+ _model = input_parent(),
603
+ _skopableSettingData = _.findWhere( api.czr_skopeReact.getSkopableSettings(), { 'setting-id' : _model['setting-id'] } ),
604
+ _optionsHtml;
605
+ if ( ! _.isEmpty( _skopableSettingData ) && api.control.has( _skopableSettingData.apiCtrlId ) ) {
606
+ _optionsHtml = api.control( _skopableSettingData.apiCtrlId ).container.find( 'select' ).html();
607
+ var $selectInput = $( 'select[data-czrtype="' + input.id + '"]', input.container );
608
+ $selectInput.append( _optionsHtml );
609
+ // make sure to reset the currently "selected" attributes
610
+ // and set the new one based on the input value
611
+ $selectInput.find( 'option' ).each( function(){
612
+ if ( input() == $(this).attr('value') ) {
613
+ $(this).attr( 'selected', 'selected');
614
+ } else {
615
+ $(this).removeAttr( 'selected');
616
+ }
617
+ } );
618
+ $( 'select[data-czrtype="' + input.id + '"]', input.container ).selecter();
619
+ } else {
620
+ api.errorLog( 'Flat skope error => select input setup => could not find the default control Id' );
621
+ }
622
+ break;
623
+ }
624
+
625
+ }
626
+ })//CZRFlatSkopeItemInputCtor
627
+ });//extend
628
+ })( wp.customize , jQuery, _ );
629
+ // global contxLocalizedParams
630
+ var CZRContextualizerModuleMths = CZRContextualizerModuleMths || {};
631
+ CZRContextualizerModuleMths.CZRFlatSkopeItemInputCtor = CZRContextualizerModuleMths.CZRFlatSkopeItemInputCtor || {};
632
+ ( function ( api, $, _ ) {
633
+ $.extend( CZRContextualizerModuleMths, {
634
+ //////////////////////////////////////////////////////////
635
+ /// INPUT CONSTRUCTORS
636
+ //////////////////////////////////////////
637
+ CZRFlatSkopeItemInputCtor : $.extend( CZRContextualizerModuleMths.CZRFlatSkopeItemInputCtor , {
638
+ // PRE ITEM SELECT SETUP
639
+ // remainingSkopableSettings = [
640
+ // {
641
+ // apiCtrlId:"custom_css"
642
+ // apiSetId:"custom_css[twentyseventeen]"
643
+ // setting-id:"custom_css[twentyseventeen]"
644
+ // type:"code_editor"
645
+ // }
646
+ // ...
647
+ // ]
648
+ _setupSelectForPreItemSettingId : function() {
649
+ //generates the options
650
+ var input = this,
651
+ module = input.module,
652
+ remainingSkopableSettings = module.setRemainingSkopableSettingIds(),
653
+ _getControlTitle = function( _id_ ) {
654
+ var apiCtrlId, _ctrl_ , title;//api.CZR_Helpers.build_setId( _id_ );
655
+ _ctrl_ = _.findWhere( remainingSkopableSettings, { 'setting-id' : _id_ } );
656
+ apiCtrlId = _ctrl_.apiCtrlId;
657
+
658
+ title = ( ! _.isEmpty( apiCtrlId ) && api.control.has( apiCtrlId ) ) ? api.control( apiCtrlId ).params.label : apiCtrlId;
659
+ return _.isEmpty( title ) ? _id_ : title;
660
+ };
661
+
662
+ var _sections_ = [], _panels_ = [];
663
+
664
+ var _collection_ = {},
665
+ _inCollection = [];
666
+
667
+ // get the section and panel informations
668
+ api.section.each( function( _sec_ ) {
669
+ _.each( _sec_.controls(), function( _ctrlData_ ) {
670
+ var _ctrlCandidate = _.findWhere( remainingSkopableSettings, { 'apiCtrlId' : _ctrlData_.id } );
671
+ if ( ! _.isEmpty( _ctrlCandidate ) ) {
672
+ // Does this section belong to a panel ?
673
+ var _secTitle = _.isEmpty( _sec_.params.title ) ? _sec_.id : _sec_.params.title,
674
+ _secPanel,
675
+ _secPanelId = _sec_.panel(),
676
+ _secPanelTitle = '',
677
+ _ctrlTitle = _ctrlData_.id;
678
+
679
+ if ( _.isEmpty( _secPanelId ) ) {
680
+ _secPanelId = '_no_panel_';
681
+ _secPanelTitle = _secPanelId;
682
+ } else {
683
+ _secPanel = api.panel( _secPanelId );
684
+ _secPanelTitle = _.isEmpty( _sec_.params.title ) ? _secPanelId : _secPanel.params.title;
685
+ }
686
+
687
+ _collection_[ _secPanelTitle ] = _.has( _collection_, _secPanelTitle ) ? _collection_[ _secPanelTitle ] : {};
688
+ _collection_[ _secPanelTitle ][ _secTitle ] = _.has( _collection_[ _secPanelTitle ], _secTitle ) ? _collection_[ _secPanelTitle ][ _secTitle ] : [];
689
+
690
+ _ctrlTitle = _getControlTitle( _ctrlCandidate['setting-id'] );
691
+ _ctrlTitle = api.CZR_Helpers.capitalize( _ctrlTitle ).replace('_', ' ');
692
+
693
+ _collection_[ _secPanelTitle ][ _secTitle ].push( { id : _ctrlCandidate['setting-id'], ctrlTitle : _ctrlTitle } );
694
+ // populate a list of control id so we can check if all remainingSkopbableSettings are included in the collection afterwards
695
+ _inCollection.push( _ctrlData_.id );
696
+ }
697
+ });
698
+ });
699
+
700
+
701
+ // each setting is formed {id: "custom_css", ctrlTitle: "CSS code"}
702
+ var _firstOptionSelected = false,
703
+ _generateOptions = function( _settingCollection_ ) {
704
+ var _html_ = '';
705
+ _.each( _settingCollection_ , function( _data_ ) {
706
+ //normalizes
707
+ _data_ = _.extend( {
708
+ 'id' : '',
709
+ 'ctrlTitle' : ''
710
+ }, _data_ || {} );
711
+
712
+ if ( ! _firstOptionSelected ) { //if (_id == _model[ input.id ] ) {
713
+ _html_ += '<option selected="selected" value="' + _data_.id + '">' + _data_.ctrlTitle + '</option>';
714
+ _firstOptionSelected = true;
715
+ } else {
716
+ _html_ += '<option value="' + _data_.id + '">' + _data_.ctrlTitle + '</option>';
717
+ }
718
+ });
719
+ return _html_;
720
+ };
721
+
722
+ var optGroupTitle = '',
723
+ $selectElement = $( 'select[data-czrtype="' + input.id + '"]', input.container );
724
+
725
+ // First append the groups belonging do a panel
726
+ _.each( _collection_, function( _panelData, _panelTitle ) {
727
+ if ( '_no_panel_' == _panelTitle )
728
+ return;
729
+ _.each( _panelData, function( _secData, _secTitle ) {
730
+ optGroupTitle = [ _panelTitle, ' > ', _secTitle ].join('');
731
+ var $optGroup = $('<optgroup>', { label : optGroupTitle , html : _generateOptions( _secData ) });
732
+ $selectElement.append( $optGroup );
733
+ });
734
+
735
+ });
736
+
737
+ // Then append the groups with no panels
738
+ _.each( _collection_, function( _panelData, _panelTitle ) {
739
+ if ( '_no_panel_' != _panelTitle )
740
+ return;
741
+ _.each( _panelData, function( _secData, _secTitle ) {
742
+ optGroupTitle = _secTitle;
743
+ var $optGroup = $('<optgroup>', { label : optGroupTitle , html : _generateOptions( _secData ) });
744
+ $selectElement.append( $optGroup );
745
+ });
746
+
747
+ });
748
+
749
+ //$( 'select[data-czrtype="' + input.id + '"]', input.container ).append( _html_ ).selecter();
750
+ $( 'select[data-czrtype="' + input.id + '"]', input.container ).select2( {
751
+ //minimumResultsForSearch: -1, //no search box needed
752
+ //templateResult: paintFontOptionElement,
753
+ //templateSelection: paintFontOptionElement,
754
+ escapeMarkup: function(m) { return m; }
755
+ });
756
+ }
757
+ })//CZRFlatSkopeItemInputCtor
758
+
759
+ });//extend
760
+ })( wp.customize , jQuery, _ );// global contxLocalizedParams
761
+ var CZRContextualizerModuleMths = CZRContextualizerModuleMths || {};
762
+
763
+ ( function ( api, $ ) {
764
+ $.extend( CZRContextualizerModuleMths, {
765
+ //////////////////////////////////////////////////////////
766
+ /// ITEM CONSTRUCTOR
767
+ //////////////////////////////////////////
768
+ CZRFlatSkopeItemCtor : {
769
+ //Fired if the item has been instantiated
770
+ //The item.callbacks are declared.
771
+ ready : function() {
772
+ var item = this;
773
+
774
+ api.CZRItem.prototype.ready.call( item );
775
+
776
+ // on item ready, the input are not yet instantiated.
777
+ // That's why we need to schedule it with the add()
778
+ // The add() also alows us to re-bound the input after it's been removed
779
+ // item.czr_Input.bind( 'add', function() {
780
+ // //switch( _input_.id ) {}
781
+ // });//item.czr_Input.bind()
782
+
783
+ // LINK TO CONTROL
784
+ //DOM listeners for the user action in item view wrapper
785
+ item.embedded.done( function() {
786
+ api.CZR_Helpers.setupDOMListeners(
787
+ [//toggles remove view alert
788
+ {
789
+ trigger : 'click keydown',
790
+ selector : '.skp-link-to-control',
791
+ name : 'skp-link-to-control',
792
+ //data = {
793
+ // dom_el,
794
+ // dom_event,
795
+ // event,
796
+ // model
797
+ // }
798
+ actions : function( data ) {
799
+ data.dom_event.preventDefault();
800
+ var apiCtrlId, _ctrl_;
801
+ _ctrl_ = _.findWhere( api.skopableSettingsCollection(), { 'setting-id' : item()['setting-id'] } );
802
+ apiCtrlId = _ctrl_.apiCtrlId;
803
+
804
+ if ( ! _.isEmpty( apiCtrlId ) && api.control.has( apiCtrlId ) ) {
805
+ api.control( apiCtrlId ).focus( {
806
+ completeCallback: function() {
807
+ //api.errorLog('Do something on focus complete callback ?');
808
+ }
809
+ });
810
+ } else {
811
+ api.errorLog('Flat skope => control not registered when trying to go back to it');
812
+ }
813
+ }
814
+ },//actions to execute
815
+ {
816
+ trigger : 'click keydown',
817
+ selector : '.skp-link-to-section',
818
+ name : 'skp-link-to-section',
819
+ //data = {
820
+ // dom_el,
821
+ // dom_event,
822
+ // event,
823
+ // model
824
+ // }
825
+ actions : function( data ) {
826
+ data.dom_event.preventDefault();
827
+ var $clicked = $( data.dom_event.currentTarget );
828
+ if ( 0 < $clicked.length && api.section.has( $clicked.data('hu-section') ) ) {
829
+ api.section( $clicked.data('hu-section') ).focus( {
830
+ // completeCallback: function() {
831
+ // api.errorLog('Do something on focus complete callback ?');
832
+ // }
833
+ });
834
+ }
835
+ }
836
+ }//actions to execute
837
+ ],
838
+ { model:item(), dom_el:item.container },//model + dom scope
839
+ item //instance where to look for the cb methods
840
+
841
+ );
842
+ });//item.embedded();
843
+
844
+ // Print a link to the customizer control at the bottom of the item content element
845
+ // Note : not printed for dynamically registered control like body bg and header slider, flagged with _module_
846
+ item.bind( 'contentRendered', function() {
847
+ if ( '_module_' === item().type )
848
+ return;
849
+ item.contentContainer.append( [
850
+ '<a href="#" class="skp-link-to-control">&laquo; ',
851
+ contxLocalizedParams.i18n[ 'Back to the site wide option' ],
852
+ '</a>'
853
+ ].join('') );
854
+ });
855
+
856
+
857
+
858
+ //replace the default remove dialog title
859
+ item.bind( 'remove-dialog-rendered', function() {
860
+ $( '.' + item.module.control.css_attr.remove_alert_wrapper, item.container )
861
+ .find('p')
862
+ .html( contxLocalizedParams.i18n[ 'Confirm the removal of the customizations for' ] + ' : ' + '<i>' + item.getItemTitle( item() ) + '</i>' );
863
+ });
864
+
865
+ // on item expansion, ask the preview if the selector exists
866
+ item.viewState.callbacks.add( function( state ) {
867
+ if ( 'closed' == state )
868
+ return;
869
+ });
870
+
871
+ // Pass an additional param isHueSlider to the js template
872
+ item.bind( 'item-model-before-item-content-template-injection', function( item_model_for_template_injection ) {
873
+ switch( item_model_for_template_injection.type ) {
874
+ case 'color' :
875
+ // Is it an hueSlider ?
876
+ // We need to get the information from the control associated with the parent item.
877
+ var apiCtrlId, _ctrl_,isHueSlider;
878
+
879
+ _ctrl_ = _.findWhere( api.skopableSettingsCollection(), { 'setting-id' : item()['setting-id'] } );
880
+ apiCtrlId = _ctrl_.apiCtrlId;
881
+
882
+
883
+ if ( ! _.isEmpty( apiCtrlId ) && api.control.has( apiCtrlId ) ) {
884
+ isHueSlider = api.control( apiCtrlId ).params.mode === 'hue';
885
+ }
886
+ item_model_for_template_injection.isHueSlider = isHueSlider;
887
+ break;
888
+ }
889
+ return item_model_for_template_injection;
890
+ });
891
+
892
+ // print a notification if the currently contextualized setting for 'group' is already contextualized locally
893
+ if ( 'group' == item.module.SKOPE_LEVEL ) {
894
+ item.callbacks.add( function() {
895
+ //api.czr_skopeReact.currentDynamicSkopeSettingIds is set in api.czr_skopeReact::setupDynamicSettingControls
896
+ //and updated on each skope refresh
897
+ if ( _.isEmpty( api.czr_skopeReact.currentDynamicSkopeSettingIds ) || _.isEmpty( api.czr_skopeReact.currentDynamicSkopeSettingIds.local ) || _.isEmpty( api.czr_skopeReact.currentDynamicSkopeSettingIds.group ) ) {
898
+ return;
899
+ }
900
+
901
+ var localSettingId = api.czr_skopeReact.currentDynamicSkopeSettingIds.local,
902
+ groupSettingId = api.czr_skopeReact.currentDynamicSkopeSettingIds.group;
903
+
904
+ api( localSettingId, function( _set_ ) {
905
+ var mayBeLocalItemValue = _.findWhere( _set_(), { id : item.id } );
906
+ if ( _.isEmpty( mayBeLocalItemValue ) )
907
+ return;
908
+
909
+ api.control( groupSettingId, function( _ctrl_ ) {
910
+ if ( ! _.isUndefined( _ctrl_.notifications ) ) {
911
+ _ctrl_.notifications.add( new api.Notification( 'locally-contextualized', {
912
+ type: 'info',
913
+ message : [
914
+ contxLocalizedParams.i18n['When the setting is already customized specifically for'],
915
+ ':',
916
+ api.czr_skopeReact.getSkopeLevelTitle( 'local' ),
917
+ ',',
918
+ contxLocalizedParams.i18n['this local value will be applied in priority.']
919
+ ].join(' '),
920
+ dismissible: true
921
+ } ) );
922
+
923
+ // Removed if not dismissed after 5 seconds
924
+ _.delay( function() {
925
+ _ctrl_.notifications.remove( 'locally-contextualized' );
926
+ }, 10000 );
927
+ }
928
+ });
929
+ });
930
+ //console.log( 'item is being modified => ', item.id, item.module.SKOPE_LEVEL, api.czr_skopeReact.currentDynamicSkopeSettingIds);
931
+ });
932
+ }
933
+ },//ready()
934
+
935
+ // overrides the core method
936
+ validateItemModelOnInitialize : function( item_model_candidate ) {
937
+ return item_model_candidate;
938
+ },
939
+
940
+
941
+ // overrides the core method
942
+ canBeRendered : function() {
943
+ //console.log( "in canbeRendered", api.czr_skopeBase.getSkopeProperty( 'skope_id', this.module.SKOPE_LEVEL ), this()['skope-id'], this() );
944
+ return api.czr_skopeBase.getSkopeProperty( 'skope_id', this.module.SKOPE_LEVEL ) == this()['skope-id'];
945
+ },
946
+
947
+
948
+
949
+ // Overrides the core method
950
+ // fired in setupItemListeners
951
+ writeItemViewTitle : function( item_model ) {
952
+ var item = this,
953
+ module = item.module,
954
+ _model = item_model || item();
955
+
956
+ _titleHtml = [
957
+ '<ul class="flat-skp-item-title">',
958
+ //'<li>Context : ' + api.czr_skopeBase.getSkopeProperty( 'ctx_title', this.module.SKOPE_LEVEL ) + '<li>',
959
+ //'<li>Context : ' + _model['skope-id']+ '<li>',
960
+ '<li title="' + item.getItemTitle( _model, false ) +'">' + item.getItemTitle( _model, false ) +'</li>',
961
+ '</ul>'
962
+ ].join('');
963
+
964
+ $( '.' + module.control.css_attr.item_title , item.container ).html( _titleHtml );
965
+ //add a hook here
966
+ api.CZR_Helpers.doActions('after_writeViewTitle', item.container , _model, item );
967
+ },
968
+
969
+ // @return string
970
+ getItemTitle : function( item_model, truncated ) {
971
+ truncated = _.isUndefined( truncated ) ? true : truncated;
972
+ var item = this,
973
+ _model = item_model || item(),
974
+ _title = api.CZR_Helpers.capitalize( ! _.isEmpty( _model.title ) ? _model.title : _model['setting-id'] ),
975
+ apiCtrlId, _ctrlLabel;
976
+
977
+ // dynamically registered ('_module_' type) controls might not be ready
978
+ if ( '_module_' != _model.type ) {
979
+ apiCtrlId = api.czr_skopeReact.getSkopableSettingProperty( 'apiCtrlId', _model['setting-id'] );
980
+ _ctrlLabel = ( api.control.has( apiCtrlId ) && ! _.isEmpty( api.control( apiCtrlId ).params.label ) ) ? api.control( apiCtrlId ).params.label : '';
981
+ }
982
+
983
+ if ( ! _.isEmpty( _ctrlLabel ) ) {
984
+ _title = _ctrlLabel;
985
+ }
986
+ return truncated ? api.CZR_Helpers.truncate( _title, 20 ).replace('_', ' ') : _title.replace('_', ' ');
987
+ },
988
+
989
+
990
+ // Overrides the core method
991
+ // Fetch the tmpl from here, with a specific cache system
992
+ // because the normal cache won't work when each item content template is specific, which is very specific to this module
993
+ renderItemContent : function( _item_model_ ) {
994
+ //=> an array of objects
995
+ var item = this,
996
+ module = this.module,
997
+ dfd = $.Deferred();
998
+
999
+ // Create a deep copy of the item, so we can inject custom properties before parsing the template, without affecting the original item
1000
+ var item_model_for_template_injection = $.extend( true, {}, _item_model_ || item() );
1001
+ // allow plugin to alter the item_model before template injection
1002
+ item.trigger( 'item-model-before-item-content-template-injection', item_model_for_template_injection );
1003
+ var appendAndResolve = function( _tmpl_ ) {
1004
+ //do we have an html template ?
1005
+ if ( _.isEmpty( _tmpl_ ) ) {
1006
+ dfd.reject( 'renderItemContent => Missing html template for module : '+ module.id );
1007
+ }
1008
+ var $itemContentWrapper = $( '.' + module.control.css_attr.item_content, item.container );
1009
+ // append the view content
1010
+ $( _tmpl_ ).appendTo( $itemContentWrapper );
1011
+ dfd.resolve( $itemContentWrapper );
1012
+ };//appendAndResolve
1013
+
1014
+
1015
+ // MAP item types before rendering
1016
+ switch( item_model_for_template_injection.type ) {
1017
+ case 'checkbox' :
1018
+ item_model_for_template_injection.type = 'gutencheck';
1019
+ break;
1020
+ }
1021
+
1022
+
1023
+ var requestParams = {
1024
+ tmpl : 'item-inputs',
1025
+ module_type: module.module_type,
1026
+ module_id : module.id,
1027
+ cache : false,//<= shall we cache the tmpl or not. Should be true in almost all cases.
1028
+ item_model : item_model_for_template_injection
1029
+ };
1030
+
1031
+ // a specific cache is introduced here, because of the item content template being determined by the original control type
1032
+ module.itemTmplCache = module.itemTmplCache || {};
1033
+ var itemType = item_model_for_template_injection.type;
1034
+
1035
+ // for dynamically registered modules, flagged with the "_module_" type, we don't want to fetch an input template
1036
+ // but rather print a link to the control
1037
+ // @see czr_skopeReact::setupDynamicModulesSettingControls()
1038
+ if ( '_module_' == itemType ) {
1039
+ var section_id;
1040
+ switch( item_model_for_template_injection.id ) {
1041
+ case 'hu_theme_options[pro_slider_header_bg]' :
1042
+ case 'hu_theme_options[display-a-pro-header-slider]' :
1043
+ section_id = 'contx_header_bg';
1044
+ break;
1045
+ case 'hu_theme_options[body-background]' :
1046
+ section_id = 'contx_body_bg';
1047
+ break;
1048
+ }
1049
+ var _html_ = [
1050
+ '<a href="#" class="skp-link-to-section" data-hu-section="' + section_id + '">&laquo; ',
1051
+ contxLocalizedParams.i18n['jump to the contextual settings'],
1052
+ '</a>'
1053
+ ].join('');
1054
+ appendAndResolve( _html_ );
1055
+ } else {
1056
+ if ( ! _.isEmpty( module.itemTmplCache[ itemType ] ) ) {
1057
+ appendAndResolve( api.CZR_Helpers.parseTemplate( module.itemTmplCache[ itemType ] )( item_model_for_template_injection ) );
1058
+ } else {
1059
+ api.CZR_Helpers.getModuleTmpl( requestParams ).done( function( _serverTmpl_ ) {
1060
+ module.itemTmplCache[ itemType ] = _serverTmpl_;
1061
+ appendAndResolve( api.CZR_Helpers.parseTemplate( _serverTmpl_ )( item_model_for_template_injection ) );
1062
+ }).fail( function( _r_ ) {
1063
+ //console.log( 'renderItemContent => fail response =>', _r_);
1064
+ dfd.reject( 'renderItemContent> Problem when fetching the tmpl from server for module : '+ module.id );
1065
+ });
1066
+ }
1067
+ }
1068
+ return dfd.promise();
1069
+ },
1070
+ // //OVERRIDES THE BASE METHOD
1071
+ // //renders saved items views and attach event handlers
1072
+ // //the saved item look like :
1073
+ // //array[ { id : 'sidebar-one', title : 'A Title One' }, {id : 'sidebar-two', title : 'A Title Two' }]
1074
+ // renderItemContent : function( item_model ) {
1075
+ // console.log('renderItemContent Override', item_model )
1076
+ // //=> an array of objects
1077
+ // var item = this,
1078
+ // module = this.module;
1079
+
1080
+ // item_model = item_model || item();
1081
+
1082
+ // //do we have view content template script?
1083
+ // if ( 0 === $( '#tmpl-' + module.getTemplateEl( 'itemInputList', item_model ) ).length ) {
1084
+ // throw new Error('No item content template defined for module ' + module.id + '. The template script id should be : #tmpl-' + module.getTemplateEl( 'itemInputList', item_model ) );
1085
+ // }
1086
+
1087
+ // var item_content_template = wp.template( module.getTemplateEl( 'itemInputList', item_model ) );
1088
+
1089
+ // //do we have an html template ?
1090
+ // if ( ! item_content_template )
1091
+ // return this;
1092
+
1093
+ // //the view content
1094
+ // $( item_content_template( item_model )).appendTo( $('.' + module.control.css_attr.item_content, item.container ) );
1095
+
1096
+ // return $( $( item_content_template( item_model )), item.container );
1097
+ // },
1098
+
1099
+ }//CZRFlatSkopeItemCtor
1100
+
1101
+ });//extend
1102
+ })( wp.customize , jQuery );
1103
+ var CZRSkopeReactMths = CZRSkopeReactMths || {};
1104
+ (function ( api, $, _ ) {
1105
+ $.extend( CZRSkopeReactMths, {
1106
+ initialize: function() {
1107
+ var self = this;
1108
+ // WAS PREVIOUSLY IN SKOPEBASE
1109
+ // UPDATE THE SKOPABLE SETTING COLLECTION WHEN SETTINGS ARE ADDED / REMOVED
1110
+ api.bind( 'ready', function() {
1111
+ var doUpdate = function( args ) {
1112
+ self.updateSkopableSettingCollection();
1113
+ };
1114
+ // When items are added / removed
1115
+ api.bind( 'add', doUpdate );
1116
+ api.bind( 'remove', doUpdate );
1117
+ });
1118
+
1119
+ // REFRESH SKOPE INFO IN EACH SKOPABLE CONTROLS
1120
+ api.bind( 'ready', function() {
1121
+ // 'refresh-skope-notes-in-controls' is triggered from the module
1122
+ self.bind( 'refresh-skope-notes-in-controls', function() {
1123
+ self.refreshControlBottomNotes();
1124
+ } );
1125
+ });
1126
+
1127
+ // SCHEDULE REACTIONS TO SKOPES CHANGE
1128
+ self.scheduleSkopeReactions();
1129
+
1130
+ // FIRES THE SET OF CALLBACKS NORMALLY FIRED ON SKOPE CHANGE
1131
+ self.bind( 'trigger-skope-refresh', function() {
1132
+ self.skopeUpdateCallbacks( api.czr_activeSkopes() );
1133
+ } );
1134
+
1135
+ // Keep track of the registered ui elements dynamically registered
1136
+ // this collection is populated in ::register(), if the track param is true
1137
+ // this is used to know what ui elements are currently being displayed
1138
+ self.registered = new api.Value([]);
1139
+
1140
+ // POPULATE THE REGISTERED COLLECTION
1141
+ // 'czr-new-registered' is fired in api.CZR_Helpers.register()
1142
+ api.bind( 'czr-new-registered', function( params ) {
1143
+ // Check that we have an origin property and that make sure we populate only the registration emitted by 'nimble'
1144
+ if ( _.isUndefined( params.origin ) ) {
1145
+ throw new Error( 'czr-new-registered event => missing params.origin' );
1146
+ }
1147
+ if ( 'contextualizer' !== params.origin )
1148
+ return;
1149
+
1150
+ if ( false !== params.track ) {
1151
+ var currentlyRegistered = self.registered();
1152
+ var newRegistered = $.extend( true, [], currentlyRegistered );
1153
+ //Check for duplicates
1154
+ var duplicateCandidate = _.findWhere( newRegistered, { id : params.id } );
1155
+ if ( ! _.isEmpty( duplicateCandidate ) && _.isEqual( duplicateCandidate, params ) ) {
1156
+ // Update => no need to throw an error in case of a duplicate candidate
1157
+ // it simply won't be added to the collection
1158
+ // the api.CZR_Helpers.register() won't add an element to the api if already existing anyway.
1159
+
1160
+ //throw new Error( 'register => duplicated element in self.registered() collection ' + params.id );
1161
+ } else {
1162
+ newRegistered.push( params );
1163
+ self.registered( newRegistered );
1164
+ }
1165
+ //console.log('SELF REGISTERED => ', self.registered(), params );
1166
+ }
1167
+ });
1168
+
1169
+
1170
+ // Display a notification when user customizes a setting already contextualized in local or group level
1171
+ api.initialeSkopableSettingsCollectionReady = api.initialeSkopableSettingsCollectionReady || $.Deferred();
1172
+ api.initialeSkopableSettingsCollectionReady.done( function( skopableSettings ) {
1173
+ // {
1174
+ // 'setting-id' : setId,
1175
+ // 'apiCtrlId' : ctrlId,
1176
+ // 'apiSetId' : setId,
1177
+ // 'type' : apiCtrlType
1178
+ // }
1179
+ _.each( skopableSettings, function( settingData ) {
1180
+ api( settingData.apiSetId, function( _set_ ) {
1181
+ _set_.bind( function() {
1182
+ // Do we have a "local" or "group" contextualization ?
1183
+ var _isContextualized = false;
1184
+ _.each( self.currentDynamicSkopeSettingIds, function( contxSettingId, skopeLevel ) {
1185
+ if ( _isContextualized || _.isEmpty( contxSettingId ) )
1186
+ return;
1187
+ if ( ! api.has( contxSettingId ) )
1188
+ return;
1189
+ _contextualizedValues = api( contxSettingId )();
1190
+ if ( ! _.isEmpty( _contextualizedValues ) && ! _.isUndefined( _.findWhere( _contextualizedValues, { 'setting-id' : _set_.id } ) ) ) {
1191
+ _isContextualized = true;
1192
+ }
1193
+
1194
+ });
1195
+
1196
+ if ( _isContextualized ) {
1197
+ _.each( _set_.findControls(), function( ctrlData ) {
1198
+ api.control( ctrlData.id, function( _ctrl_ ) {
1199
+ _ctrl_.notifications.add( new api.Notification( 'locally-contextualized', {
1200
+ type: 'info',
1201
+ message : contxLocalizedParams.i18n['When the setting is contextualized, the contextual value applies in priority.'],
1202
+ dismissible: true
1203
+ }));
1204
+
1205
+ // Removed if not dismissed after 5 seconds
1206
+ _.delay( function() {
1207
+ _ctrl_.notifications.remove( 'locally-contextualized' );
1208
+ }, 10000 );
1209
+ });
1210
+ });//_each
1211
+ }
1212
+ });
1213
+ } );
1214
+ });
1215
+ });
1216
+ }//initialize
1217
+ });//$.extend()
1218
+ })( wp.customize , jQuery, _);
1219
+ var CZRSkopeReactMths = CZRSkopeReactMths || {};
1220
+ ( function ( api, $, _ ) {
1221
+ $.extend( CZRSkopeReactMths, {
1222
+ //////////////////////////////////////////
1223
+ /// CREATE AND MAINTAIN A LIST OF SKOPABLE SETTINGS
1224
+ getSkopableSettings : function() {
1225
+ // Build the collection on the first invoke
1226
+ if ( _.isUndefined( api.skopableSettingsCollection ) ) {
1227
+ this.updateSkopableSettingCollection();
1228
+ }
1229
+
1230
+ return _.isUndefined( api.skopableSettingsCollection ) ? [] : api.skopableSettingsCollection();
1231
+ },
1232
+
1233
+
1234
+ getSkopeLevelTitle : function( level ) {
1235
+ var _title = contxLocalizedParams.i18n[ 'this page' ];
1236
+ skopeObj = _.findWhere( api.czr_currentSkopesCollection(), { skope : level } );
1237
+ if ( ! _.isEmpty( skopeObj ) ) {
1238
+ _title = skopeObj.ctx_title;
1239
+ }
1240
+ return _title;
1241
+ },
1242
+
1243
+
1244
+ // Fired :
1245
+ // - the first time we invoke ::getSkopableSettings()
1246
+ // - when a setting gets added / removed from the api
1247
+ updateSkopableSettingCollection : function() {
1248
+
1249
+ if ( _.isEmpty( api.get() ) )
1250
+ return;
1251
+
1252
+ // if ( ! _.has( contxLocalizedParams, 'skopableSettings' ) ) {
1253
+ // api.errorLog( 'Error in flat skope => impossible to retrieve the skopable setting List');
1254
+ // return [];
1255
+ // }
1256
+ // foreach skopable setting, get the control params information
1257
+ var _candidates_ = [],
1258
+ apiCtrlId,
1259
+ apiSetId,
1260
+ apiCtrlType,
1261
+ _rejected_ = [];
1262
+
1263
+ api.skopableSettingsCollection = api.skopableSettingsCollection || new api.Value( [] );
1264
+
1265
+ _.each( api.get(), function( setValue, setId ) {
1266
+ // if a setting is associated with several controls
1267
+ // only use the control with the same id, except for custom_css
1268
+ // Ex : header_textcolor is associated with header_textcolor ( color type ) and display_header_text ( checkbox type )
1269
+ // Only header_textcolor will be skopable
1270
+ _.each( api( setId ).findControls(), function( _ctrl_ ){
1271
+ var ctrlId = _ctrl_.id;
1272
+
1273
+ // only use the control with the same id, except for custom_css
1274
+ if ( 'custom_css' !== ctrlId && ctrlId != setId )
1275
+ return;
1276
+
1277
+ apiCtrlType = api.control( ctrlId ).params.type;
1278
+ // prepare the list of unskopableSettings => add the theme option prefix when needed
1279
+ // because the php list generated with ctx_get_excluded_settings() omits hu_theme_options
1280
+ var _unskopableSettings_ = [];
1281
+ _.each( contxLocalizedParams.unskopableSettings, function( _id_ ) {
1282
+ _unskopableSettings_.push( _id_ );
1283
+ });
1284
+
1285
+ // abort if the setting belongs to the excluded list ( @see php function ctx_get_excluded_settings() )
1286
+ if ( _.contains( _unskopableSettings_, ctrlId ) ) {
1287
+ _rejected_.push( { id : ctrlId, type : apiCtrlType, excludedBecause : 'in excluded list' } );
1288
+ return;
1289
+ }
1290
+
1291
+ // abort if the type is not authorized ( @see php function ctx_get_authorized_setting_types() )
1292
+ if ( ! _.contains( contxLocalizedParams.authorizedSettingTypes, apiCtrlType ) ) {
1293
+ _rejected_.push( { id : ctrlId, type : apiCtrlType, excludedBecause : 'type not authorized' } );
1294
+ return;
1295
+ }
1296
+
1297
+ _candidates_.push( {
1298
+ 'setting-id' : setId,
1299
+ 'apiCtrlId' : ctrlId,
1300
+ 'apiSetId' : setId,
1301
+ 'type' : apiCtrlType
1302
+ } );
1303
+ });//_.each( associatedControls )
1304
+ });//_.each( api.get()
1305
+
1306
+ // if ( ! _.isEmpty( _rejected_ ) ) {
1307
+ // console.log( 'NOT SKOPABLES : ', _rejected_ );
1308
+ // }
1309
+ // update the collection
1310
+ api.skopableSettingsCollection( _candidates_ );
1311
+
1312
+ // Say it when done the first time
1313
+ api.initialeSkopableSettingsCollectionReady = api.initialeSkopableSettingsCollectionReady || $.Deferred();
1314
+ if ( 'pending' === api.initialeSkopableSettingsCollectionReady.state() ) {
1315
+ api.initialeSkopableSettingsCollectionReady.resolve( _candidates_ );
1316
+ }
1317
+ },//updateSkopableSettingCollection
1318
+
1319
+
1320
+
1321
+ // The idea here is to get the 'what' property in the skopable settingId collection api.skopableSettingsCollection()
1322
+ // The skopable setting collection items are formed :
1323
+ // array(
1324
+ // 'setting-id' => '',
1325
+ // 'apiCtrlId' => '',
1326
+ // 'apiSetId' => '',
1327
+ // 'type' => '',
1328
+ // );
1329
+ getSkopableSettingProperty : function( what, settingId ) {
1330
+ what = what || '_not_set_';
1331
+ var self = this;
1332
+ // Make sure that the requested property is possible
1333
+ if ( ! _.has( contxLocalizedParams.skopableSettingsCollectionModel, what) ) {
1334
+ api.errorLog( 'getSkopableSettingProperty => requested property is impossible to get.');
1335
+ return;
1336
+ }
1337
+ var _skopableSettingData = _.findWhere( self.getSkopableSettings(), { 'setting-id' : settingId } ),
1338
+ _property;
1339
+ if ( ! _.isEmpty( _skopableSettingData ) ) {
1340
+ _property = _skopableSettingData[ what ];
1341
+ } else {
1342
+ api.infoLog( 'getSkopableSettingProperty => could not find the property : "' + what +'" for setting => ' + settingId );
1343
+ }
1344
+ return _property;
1345
+ },
1346
+
1347
+
1348
+ //return an array of authorized setting types defined server side
1349
+ // array(
1350
+ // 'text',
1351
+ // 'select',
1352
+ // 'checkbox',
1353
+ // 'text-area',
1354
+ // 'img-upload',
1355
+ // ...
1356
+ // );
1357
+ getAuthorizedSettingTypes : function() {
1358
+ return ( contxLocalizedParams && contxLocalizedParams.authorizedSettingTypes ) ? contxLocalizedParams.authorizedSettingTypes : [];
1359
+ },
1360
+
1361
+
1362
+ // @return void()
1363
+ // clean all registered control, section, panel tracked ids
1364
+ // preserve the settings
1365
+ cleanRegistered : function() {
1366
+ var self = this,
1367
+ newRegistered = $.extend( true, [], self.registered() || [] );
1368
+
1369
+ newRegistered = _.filter( self.registered() , function( _reg_ ) {
1370
+ if ( 'setting' !== _reg_.what ) {
1371
+ if ( api[ _reg_.what ].has( _reg_.id ) ) {
1372
+ $.when( api[ _reg_.what ]( _reg_.id ).container.remove() ).done( function() {
1373
+ // remove control, section, panel
1374
+ api[ _reg_.what ].remove( _reg_.id );
1375
+ });
1376
+ }
1377
+ }
1378
+ return _reg_.what === 'setting';
1379
+ });
1380
+ self.registered( newRegistered );
1381
+ },
1382
+
1383
+ // @return string
1384
+ getContxSettingId : function( skopeId, stylesheetId ) {
1385
+ return [ skopeId, '[', stylesheetId, ']' ].join('');
1386
+ }
1387
+
1388
+ });//$.extend
1389
+ })( wp.customize , jQuery, _ );
1390
+ var CZRSkopeReactMths = CZRSkopeReactMths || {};
1391
+
1392
+ ( function ( api, $, _ ) {
1393
+ $.extend( CZRSkopeReactMths, {
1394
+ // fired on api.czr_activeSkopes.callbacks.add
1395
+ // and on self::'trigger-skope-refresh'
1396
+ skopeUpdateCallbacks : function( newSkopes ) {
1397
+ // DYNAMIC SKOPE SETTING CONTROLS REGISTRATION
1398
+ this.setupDynamicSettingControls( newSkopes );
1399
+
1400
+ // REFFRESH SKOPE CONTROL BOTTOM NOTES AND LINKS
1401
+ this.refreshControlBottomNotes( newSkopes );
1402
+
1403
+ // REGISTER BODY BG MODULE SETTING CONTROL
1404
+ // REGISTER HEADER SLIDER MODULE SETTING CONTROL
1405
+ this.setupDynamicModulesSettingControls( newSkopes );
1406
+ },
1407
+
1408
+ // fired in skopeReact::initialize
1409
+ scheduleSkopeReactions : function() {
1410
+ var self = this;
1411
+
1412
+ // will be used to store the current local and group dynamic setting ids
1413
+ this.currentDynamicSkopeSettingIds = this.currentDynamicSkopeSettingIds || { local : '', group : '' };
1414
+
1415
+ // see api.czr_skopeBase
1416
+ api.czr_activeSkopes.callbacks.add( function( newSkopes, previousSkopes ) {
1417
+ self.skopeUpdateCallbacks( newSkopes);
1418
+ });
1419
+
1420
+ // Defer the setup of the listener when the skope notes have been printed
1421
+ // setupDOMListeners() uses event delegation, so why doing that ?
1422
+ // Because it has been observed that this did not work in 100% of the cases. Ignorance about the reason....
1423
+ api.bind( 'refreshControlBottomNotes', function() {
1424
+ if ( true === $('#customize-theme-controls').data( 'skp-focus-listener-done' ) )
1425
+ return;
1426
+ // setup the dom listeners
1427
+ api.CZR_Helpers.setupDOMListeners(
1428
+ [//toggles remove view alert
1429
+ {
1430
+ trigger : 'click keydown',
1431
+ selector : '.customize-control .skp-focus-link',
1432
+ name : 'skp-focus-on-control',
1433
+ //data = {
1434
+ // dom_el,
1435
+ // dom_event,
1436
+ // event,
1437
+ // model
1438
+ // }
1439
+ actions : function( data ) {
1440
+ data.dom_event.preventDefault();
1441
+ var $currentTarget = $( data.dom_event.currentTarget );
1442
+ if ( 1 === $currentTarget.length && ! _.isEmpty( $currentTarget.data( 'skopified-ctrl-id' ) ) ) {
1443
+ var skopeControlId = $currentTarget.data( 'skopified-ctrl-id' ),
1444
+ setId = $currentTarget.data( 'setg-id' );
1445
+
1446
+ // Handle specific cases
1447
+ // switch( ctrlId ) {
1448
+ // case 'custom_css' :
1449
+ // }
1450
+ if ( api.control.has( skopeControlId ) ) {
1451
+ api.control( skopeControlId ).focus({
1452
+ completeCallback: function() {
1453
+ // 'contx-expand-pre-item' is listened to in czr_flat_skope_module::initialize()
1454
+ api.control( skopeControlId ).trigger( 'contx-expand-pre-item', { setId : setId });
1455
+ //api.errorLog('Focus complete Callback to do => open the pre-item selecter');
1456
+ }
1457
+ });
1458
+ }
1459
+ }
1460
+ // console.log('data', data, $currentTarget, $currentTarget.data( 'skopified-ctrl-id' ) );
1461
+ // console.log('skopeControlId', skopeControlId );
1462
+ }
1463
+ }//actions to execute
1464
+ ],
1465
+ { model: {}, dom_el: $( '#customize-theme-controls' ) },//_ctrl_.container },//model + dom scope
1466
+ null //instance where to look for the cb methods
1467
+
1468
+ );//api.CZR_Helpers.setupDOMListeners
1469
+
1470
+ // Flag the element with a data attribute => setup the listener only once.
1471
+ // Anyway, there's also a unicity check in the setupDomlistener method that would have prevent a multiple binding of the same listener to the same dom el
1472
+ $('#customize-theme-controls').data( 'skp-focus-listener-done', true );
1473
+ });
1474
+ }
1475
+ });//extend
1476
+ })( wp.customize , jQuery, _ );
1477
+ var CZRSkopeReactMths = CZRSkopeReactMths || {};
1478
+
1479
+ ( function ( api, $, _ ) {
1480
+ $.extend( CZRSkopeReactMths, {
1481
+ // invoked :
1482
+ // 1) when api.czr_activeSkopes updated api.czr_activeSkopes.callbacks()
1483
+ // 2) on each module skopified item addition / removal when 'refresh-skope-notes-in-controls' is triggered remotely on api.czr_skopeReact
1484
+ refreshControlBottomNotes : function( newSkopes ) {
1485
+ var self = this;
1486
+ newSkopes = newSkopes || api.czr_activeSkopes();
1487
+
1488
+ // REMOVE ALL PREVIOUSLY PRINTED NOTES
1489
+ $( '#customize-theme-controls' ).find( '.customize-control .skp-ctrl-bottom-note').remove();
1490
+
1491
+ // THEN PRINT A BOTTOM NOTE IN ALL SKOPABLE CONTROLS CONTAINERS
1492
+ _.each( newSkopes, function( _skopeId_, _skopeLevel_ ) {
1493
+ var skopeControlId = self.currentDynamicSkopeSettingIds[ _skopeLevel_ ];
1494
+ if ( ! _.isEmpty( skopeControlId ) && api.control.has( skopeControlId ) ) {
1495
+ self.printSkopeInfoInControls( _skopeLevel_ , skopeControlId );
1496
+ }
1497
+ });
1498
+
1499
+ // EMIT AN EVENT NOW
1500
+ api.trigger( 'refreshControlBottomNotes' );
1501
+ },
1502
+
1503
+
1504
+ printSkopeInfoInControls : function( _skopeLevel_, skopeControlId ) {
1505
+ var self = this,
1506
+ _css_class_ = 'skp-note-for-' + _skopeLevel_;
1507
+
1508
+ //This = _ctrl_
1509
+ var mayBePrintAndSetupCtrlBottomNote = function( ) {
1510
+ var _ctrl_ = this,
1511
+ _skope_title_ = contxLocalizedParams.i18n[ 'this page' ];
1512
+
1513
+ if ( 0 < _ctrl_.container.find( '.' + _css_class_ ).length )
1514
+ return;
1515
+
1516
+ var currentSkopeObj = _.findWhere( api.czr_currentSkopesCollection(), { skope : _skopeLevel_ } );
1517
+ if ( ! _.isEmpty( currentSkopeObj ) ) {
1518
+ _skope_title_ = currentSkopeObj.ctx_title;
1519
+ }
1520
+
1521
+ // Has the current setting id been contextualized ?
1522
+ var _message_ = contxLocalizedParams.i18n[ 'Can be contextualized for' ],
1523
+ _isContextualized = false;
1524
+ if ( api.has( skopeControlId ) ) {
1525
+ var associatedSettingId = api.CZR_Helpers.getControlSettingId( _ctrl_.id );
1526
+ _contextualizedCandidate = _.findWhere( api( skopeControlId )(), { 'setting-id' : associatedSettingId } );
1527
+ if ( ! _.isEmpty( _contextualizedCandidate ) ) {
1528
+ _message_ = contxLocalizedParams.i18n[ 'Is contextualized for' ];
1529
+ _isContextualized = true;
1530
+ }
1531
+ }
1532
+
1533
+ if ( 1 > _ctrl_.container.find( '.skp-ctrl-note-wrapper' ).length ) {
1534
+ _ctrl_.container.append( $('<div>', { class : 'skp-ctrl-note-wrapper' } ) );
1535
+ }
1536
+
1537
+ // prepare the setting_id to be added as an attribute for uses on click actions
1538
+ var setId = _ctrl_.params.settings.default;
1539
+ setId = _.isEmpty( setId ) ? _ctrl_.id : setId;
1540
+
1541
+ _ctrl_.container.find( '.skp-ctrl-note-wrapper' ).append(
1542
+ $('<div>', {
1543
+ class: [ _css_class_ , 'skp-ctrl-bottom-note', 'czr-notice', _isContextualized ? 'is-contextualized' : '' ].join(' '),
1544
+ html : [
1545
+ '<i class="fas fa-map-marker-alt"></i>&nbsp;' + _message_,
1546
+ [ '<span class="skp-focus-link" data-setg-id="', setId ,'" data-skopified-ctrl-id="', skopeControlId, '">', '<u>', _skope_title_ , '</u><span>'].join('')
1547
+ ].join(' ')
1548
+ })
1549
+ );
1550
+
1551
+ };//mayBePrintAndSetupCtrlBottomNote
1552
+
1553
+ _.each( api.czr_skopeReact.getSkopableSettings(), function( settingData ) {
1554
+ api.control.when( settingData.apiCtrlId, function( _ctrl_ ) {
1555
+ _ctrl_.deferred.embedded.then( function() {
1556
+ mayBePrintAndSetupCtrlBottomNote.call( _ctrl_ );
1557
+ });
1558
+ } );
1559
+ });
1560
+ }//printSkopeInfoInControls
1561
+ });//extend
1562
+ })( wp.customize , jQuery, _ );
1563
+ var CZRSkopeReactMths = CZRSkopeReactMths || {};
1564
+ (function ( api, $, _ ) {
1565
+ $.extend( CZRSkopeReactMths, {
1566
+ // Fired in api.czr_activeSkopes.callbacks.add()
1567
+ // Register and de register the dynamic settings and controls when skopes are set
1568
+ setupDynamicSettingControls : function( newSkopes ) {
1569
+ var self = this;
1570
+ newSkopes = newSkopes || api.czr_activeSkopes();
1571
+ // Style the section title if possible and not done yet
1572
+ //self.maybeStyleContextualizerSectionTitle();
1573
+ self.maybeStyleContextualizerPanelTitle();
1574
+
1575
+ // Schedule skope dynamic settings registration on activeSkopes change
1576
+ // {
1577
+ // 'local' : self.getSkopeProperty( 'skope_id', 'local' ),
1578
+ // 'group' : self.getSkopeProperty( 'skope_id', 'group' )
1579
+ // }
1580
+
1581
+ // Deregister + remove dom el of the previous control when needed
1582
+ self.currentDynamicSkopeSettingIds = self.currentDynamicSkopeSettingIds || { local : '', group : '' };
1583
+
1584
+ var _doRegister_ = function( _skopeID_, _skopeLevel_ ) {
1585
+ // Register and store it
1586
+ self.currentDynamicSkopeSettingIds[ _skopeLevel_ ] = self.registerDynamicSkopeSettingControl( {
1587
+ skopeIdToRegister : _skopeID_,
1588
+ skopeLevel : _skopeLevel_,
1589
+ stylesheetId : api.czr_skopeBase.stylesheet()
1590
+ } );
1591
+ };
1592
+
1593
+ // Maybe remove the group skope level that won't be registered in this context
1594
+ // For example when navigating from a post to the home page
1595
+ if ( '_skope_not_set_' == newSkopes.group || _.isEmpty( newSkopes.group ) ) {
1596
+ if ( ! _.isEmpty( self.currentDynamicSkopeSettingIds[ 'group' ] ) ) {
1597
+ self.resetDynamicSkopeControl( self.currentDynamicSkopeSettingIds[ 'group' ] );
1598
+ }
1599
+ }
1600
+
1601
+ // Register the new skopes
1602
+ _.each( newSkopes, function( _skopeID_, _skopeLevel_ ) {
1603
+ if ( '_skope_not_set_' == _skopeID_ )
1604
+ return;
1605
+ if ( _.isEmpty( api.czr_skopeBase.stylesheet() ) || ( api.czr_skopeBase.stylesheet() != api.settings.theme.stylesheet ) )
1606
+ return;
1607
+
1608
+ if ( ! _.isEmpty( self.currentDynamicSkopeSettingIds[ _skopeLevel_ ] ) ) {
1609
+ self.resetDynamicSkopeControl( self.currentDynamicSkopeSettingIds[ _skopeLevel_ ] ).done( function() {
1610
+ //console.log(_skopeID_ , _skopeLevel_ ,' => REGISTER WHEN CONTROL RESET');
1611
+ if ( serverControlParams.isDevMode ) { _doRegister_( _skopeID_, _skopeLevel_ ); } else {
1612
+ try { _doRegister_( _skopeID_, _skopeLevel_ ); } catch ( error ) { api.errorLog( 'setupDynamicSettingControls => ' + error ); }
1613
+ }
1614
+ });
1615
+ } else {
1616
+ //console.log(_skopeID_ , _skopeLevel_ ,' => REGISTER RIGHT AWAY');
1617
+ if ( serverControlParams.isDevMode ) { _doRegister_( _skopeID_, _skopeLevel_ ); } else {
1618
+ try { _doRegister_( _skopeID_, _skopeLevel_ ); } catch ( error ) { api.errorLog( 'setupDynamicSettingControls => ' + error ); }
1619
+ }
1620
+ }
1621
+ });
1622
+ },
1623
+
1624
+
1625
+
1626
+
1627
+ // @return a promise()
1628
+ resetDynamicSkopeControl : function( _skopeID_ ) {
1629
+ var dfd = $.Deferred();
1630
+ if ( api.control.has( _skopeID_ ) ) {
1631
+ //remove control container
1632
+ $.when( api.control( _skopeID_ ).container.remove() ).done( function() {
1633
+ //remove control
1634
+ api.control.remove( _skopeID_ );
1635
+ dfd.resolve();
1636
+ });
1637
+ } else {
1638
+ dfd.resolve();
1639
+ }
1640
+
1641
+ return dfd.promise();
1642
+ },
1643
+
1644
+ // fired in api.czr_activeSkopes.callbacks.add()
1645
+ // skopeData looks like :
1646
+ // array(
1647
+ // 'title' => '',
1648
+ // 'long_title' => '',
1649
+ // 'ctx_title' => '',
1650
+ // 'id' => '',
1651
+ // 'skope' => '',
1652
+ // //'level' => '',
1653
+ // 'obj_id' => '',
1654
+ // 'skope_id' => '',
1655
+ // 'values' => ''
1656
+ // );
1657
+ // args = {
1658
+ // skopeIdToRegister : _skopeID_,
1659
+ // skopeLevel : _skopeLevel_,
1660
+ // stylesheetId : api.czr_skopeBase.stylesheet()
1661
+ // }
1662
+ // Register the relevant setting and control based on the current skope ids
1663
+ // @return the newly registered setting id
1664
+ registerDynamicSkopeSettingControl : function( args ) {
1665
+ var self = this,
1666
+ dataForSkopeToRegister = _.findWhere( api.czr_currentSkopesCollection(), { skope_id : args.skopeIdToRegister } );
1667
+
1668
+ if ( _.isEmpty( dataForSkopeToRegister ) ) {
1669
+ api.errorLog( 'registerDynamicSkopeSettingControl => NO SKOPE DATA PROVIDED' );
1670
+ return;
1671
+ }
1672
+
1673
+ args = _.extend( {
1674
+ skopeIdToRegister : '',
1675
+ skopeLevel : '',
1676
+ stylesheetId : ''
1677
+ }, args );
1678
+
1679
+ //console.log( "args?", args );
1680
+
1681
+ if ( _.isEmpty( args.stylesheetId ) ) {
1682
+ api.errorLog( 'registerDynamicSkopeSettingControl => missing stylesheetId' );
1683
+ return;
1684
+ }
1685
+
1686
+ // REGISTER THE NEW ONE
1687
+ // setting id looks like
1688
+ // skp_all_page[twentyseventeen]
1689
+ // or
1690
+ // skp_post_page_home[twentyseventeen]
1691
+ var settingId = self.getContxSettingId( args.skopeIdToRegister, args.stylesheetId );
1692
+
1693
+ //api.infoLog( "::registerDynamicSkopeSettingControl => " + settingId );
1694
+
1695
+ // Register only if not registered already
1696
+ // For example, when saved as draft in a changeset, the setting is already dynamically registered server side
1697
+ // => in this case, we only need to register the associated control
1698
+ api.CZR_Helpers.register( {
1699
+ origin : 'contextualizer',
1700
+ what : 'setting',
1701
+ id : settingId,
1702
+ dirty : false,
1703
+ value : _.isArray( dataForSkopeToRegister.values ) ? dataForSkopeToRegister.values : [],
1704
+ transport : 'refresh',// @see contxLocalizedParams.dynamicSettingDefaultData
1705
+ type : 'theme_mod'//@see contxLocalizedParams.dynamicSettingDefaultData
1706
+ });
1707
+
1708
+ api.CZR_Helpers.register( {
1709
+ origin : 'contextualizer',
1710
+ what : 'control',
1711
+ id : settingId,
1712
+ label : this._getDynControlLabel( args.skopeIdToRegister ),// + ' TEST SETTING CONTROL FOR SKOPE ID => ' + args.skopeIdToRegister;
1713
+ type : 'czr_module',//@see contxLocalizedParams.dynamicControlDefaultData
1714
+ module_type : 'czr_flat_skope_module',//@see contxLocalizedParams.dynamicControlDefaultData
1715
+ section : 'contx_sec',//@see contxLocalizedParams.dynamicControlDefaultData
1716
+ priority : 20,
1717
+ settings : { default : settingId },
1718
+ track : false,//don't register in the self.registered() => the control removal is handled with ::resetDynamicSkopeControl()
1719
+ options : {
1720
+ skopeLevel : args.skopeLevel,
1721
+ skopeId : args.skopeIdToRegister
1722
+ }
1723
+ }).done( function() {
1724
+ api.control( settingId, function( _ctrl_ ) {
1725
+ _ctrl_.container.find('.customize-control-title')
1726
+ .css('text-transform', 'uppercase')
1727
+ .prepend( '<i class="fas fa-map-marker-alt"></i>&nbsp;' );
1728
+
1729
+ _.delay( function() {
1730
+ _ctrl_.trigger( 'set-module-ready' );
1731
+ }, 200 );
1732
+
1733
+ // SYNCHRONIZE THE CONTEXTUALIZED MODULES ( background, header slider ) ON ITEM REMOVAL
1734
+ // When a module item like body background or header slider is removed, make sure the associated setting id gets reset
1735
+ // To identify this type of module, we need to look for the 'dyn_api_setting_id' property in the item, which is the api setting id to reset
1736
+ // dyn_api_setting_id
1737
+ // {
1738
+ // dyn_api_setting_id:"_contextualizer_ui_body_bg__skp__home"
1739
+ // id:"hu_theme_options[body-background]"
1740
+ // setting-id:"hu_theme_options[body-background]"
1741
+ // skope-id:"skp__home"
1742
+ // title:""
1743
+ // type:"_module_"
1744
+ // value:{} or []
1745
+ // }
1746
+ _ctrl_.bind( 'item-removed', function( _item_ ) {
1747
+ if ( _.isObject( _item_ ) && _.has( _item_, 'dyn_api_setting_id' ) ) {
1748
+ // Remove the control
1749
+ if ( api.control.has( _item_.dyn_api_setting_id ) ) {
1750
+ $.when( api.control( _item_.dyn_api_setting_id ).container.remove() ).done( function() {
1751
+ //remove control
1752
+ api.control.remove( _item_.dyn_api_setting_id );
1753
+ });
1754
+ }
1755
+
1756
+ // Remove the setting
1757
+ if ( api.has( _item_.dyn_api_setting_id ) ) {
1758
+ api.remove( _item_.dyn_api_setting_id );
1759
+ }
1760
+
1761
+ // Reinstantiate the setting and control
1762
+ self.trigger( 'trigger-skope-refresh' );
1763
+ //console.log('AFTER RESETING ? ', api( _item_.dyn_api_setting_id )() );
1764
+ }
1765
+ });
1766
+ });
1767
+ });
1768
+
1769
+ return settingId;
1770
+ },//registerDynamicSkopeSettingControl
1771
+
1772
+
1773
+
1774
+
1775
+
1776
+
1777
+ // Style the section title if possible and not done yet
1778
+ // @return void()
1779
+ maybeStyleContextualizerPanelTitle : function() {
1780
+ if ( ! api.panel.has( 'contx_panel' ) )
1781
+ return;
1782
+
1783
+ var $panelContainer = api.panel( 'contx_panel' ).container;
1784
+ if ( 1 > $panelContainer.length || true === $panelContainer.data( 'skopified-title' ) )
1785
+ return;
1786
+
1787
+ var $panelTitleEl = $panelContainer.find('.accordion-section-title');
1788
+ //var $panelTitleEl = $panelContainer.find('.customize-section-title h3');
1789
+
1790
+ if ( 0 < $panelTitleEl.length ) {
1791
+ $panelTitleEl.prepend( '<i class="fas fa-map-marker-alt" style="color:#008ec2;"></i>&nbsp;' );
1792
+ }
1793
+ // if ( 0 < $panelTitleEl.length ) {
1794
+ // $panelTitleEl.find( '.customize-action').after( '<i class="fas fa-map-marker-alt" style="color:#008ec2;"></i>&nbsp;' );
1795
+ // }
1796
+
1797
+ // flag it done
1798
+ $panelContainer.data( 'skopified-title', true );
1799
+ },
1800
+
1801
+
1802
+ // Style the section title if possible and not done yet
1803
+ // @return void()
1804
+ // maybeStyleContextualizerSectionTitle : function() {
1805
+ // if ( ! api.section.has( contxLocalizedParams.dynamicControlDefaultData.section ) )
1806
+ // return;
1807
+
1808
+ // var $sectionContainer = api.section( contxLocalizedParams.dynamicControlDefaultData.section ).container;
1809
+ // if ( 1 > $sectionContainer.length || true === $sectionContainer.data( 'skopified-title' ) )
1810
+ // return;
1811
+
1812
+ // var $sectionTitleEl = $sectionContainer.find('.accordion-section-title'),
1813
+ // $panelTitleEl = $sectionContainer.find('.customize-section-title h3');
1814
+
1815
+ // if ( 0 < $sectionTitleEl.length ) {
1816
+ // $sectionTitleEl.prepend( '<i class="fas fa-map-marker-alt" style="color:#008ec2;"></i>&nbsp;' );
1817
+ // }
1818
+ // if ( 0 < $panelTitleEl.length ) {
1819
+ // $panelTitleEl.find( '.customize-action').after( '<i class="fas fa-map-marker-alt" style="color:#008ec2;"></i>&nbsp;' );
1820
+ // }
1821
+
1822
+ // // flag it done
1823
+ // $sectionContainer.data( 'skopified-title', true );
1824
+ // },
1825
+
1826
+
1827
+ //@return string
1828
+ _getDynControlLabel : function( skope_id ) {
1829
+ var skope_data = _.findWhere( api.czr_currentSkopesCollection(), { skope_id : skope_id } ),
1830
+ label = '';
1831
+
1832
+ if ( _.isEmpty( skope_data ) ) {
1833
+ api.errorLog( '_getSettingLabel => no skope_data available to setup the control label' );
1834
+ }
1835
+ return [contxLocalizedParams.i18n['Contextual'], skope_data.long_title].join(' ');
1836
+ }
1837
+
1838
+ });//$.extend()
1839
+ })( wp.customize , jQuery, _);
1840
+ var CZRSkopeReactMths = CZRSkopeReactMths || {};
1841
+ (function ( api, $, _ ) {
1842
+ $.extend( CZRSkopeReactMths, {
1843
+ // fired on api.czr_activeSkopes.callbacks
1844
+ // and when on self::'trigger-skope-update'
1845
+ setupDynamicModulesSettingControls : function( newSkopes ) {
1846
+ var self = this;
1847
+ var _candidates_ = [
1848
+ {
1849
+ module_set_id : 'hu_theme_options[body-background]',//the normal setting id as would be registered not contextualized
1850
+ control_type : 'czr_module',
1851
+ module_type : 'czr_background',
1852
+ control_label : contxLocalizedParams.i18n['Body Background'],
1853
+ defaultValue : {},
1854
+ section : {
1855
+ id : 'contx_body_bg',
1856
+ title: contxLocalizedParams.i18n['Body Background'],
1857
+ panel : 'hu-general-panel',
1858
+ priority : 30
1859
+ }
1860
+ },
1861
+ {
1862
+ module_set_id : 'hu_theme_options[display-a-pro-header-slider]',//the normal setting id as would be registered not contextualized
1863
+ control_type : 'select',
1864
+ module_type : '',
1865
+ control_label : contxLocalizedParams.i18n['Display a full width header background'],
1866
+ defaultValue : function( skopeLevel ) { return 'local' == skopeLevel ? 'inherit' : 'no'; },
1867
+ embeddedComplete : function() {
1868
+ // 'this' is the control instance
1869
+ var control = this;
1870
+ //generates the options
1871
+ var optionsList;
1872
+ if ( 'local' === control.params.skopeLevel ) {
1873
+ optionsList = { inherit : contxLocalizedParams.i18n['Inherit'] , yes : contxLocalizedParams.i18n['Yes'], no : contxLocalizedParams.i18n['No'] };
1874
+ } else {
1875
+ optionsList = { yes : contxLocalizedParams.i18n['Yes'], no : contxLocalizedParams.i18n['No'] };
1876
+ }
1877
+
1878
+ _.each( optionsList , function( _label , _k ) {
1879
+ var _attributes = {
1880
+ value : _k,
1881
+ html: _label
1882
+ };
1883
+ if ( _k == api( control.id )() ) {
1884
+ $.extend( _attributes, { selected : "selected" } );
1885
+ }
1886
+ $( 'select', control.container ).append( $('<option>', _attributes) );
1887
+ });
1888
+ $( 'select', control.container ).selecter();
1889
+ },
1890
+ section : {
1891
+ id : 'contx_header_bg',
1892
+ title: contxLocalizedParams.i18n['Full Width Header Background / Slider'],
1893
+ panel : 'hu-header-panel',
1894
+ priority : 30
1895
+ }
1896
+ },
1897
+ {
1898
+ module_set_id : 'hu_theme_options[pro_slider_header_bg]',//the normal setting id as would be registered not contextualized
1899
+ control_type : 'czr_module',
1900
+ module_type : 'czr_slide_module',
1901
+ control_label : contxLocalizedParams.i18n['Header Background / Slider'],
1902
+ control_visibility : function() {
1903
+ // 'this' is the control instance
1904
+ var control = this,
1905
+ dominusSettingId = '_contextualizer_ui_' + 'display-a-pro-header-slider' + '_' + control.params.skopeId,
1906
+ visibility = function( to ) {
1907
+ control.container.toggle( 'yes' === to );
1908
+ };
1909
+ api( dominusSettingId, function( _setting_ ) {
1910
+ visibility( _setting_() );
1911
+ _setting_.bind( visibility );
1912
+ });
1913
+ },
1914
+ defaultValue : [],
1915
+ section : {
1916
+ id : 'contx_header_bg',
1917
+ title: contxLocalizedParams.i18n['Full Width Header Background / Slider'],
1918
+ panel : 'hu-header-panel',
1919
+ priority : 30
1920
+ }
1921
+ }
1922
+ ];
1923
+
1924
+ // Clean previously generated UI elements
1925
+ self.cleanRegistered();
1926
+
1927
+ // Register after a 500 ms delay => not ideal, we should register on cleanRegistered.done()
1928
+ _.delay( function() {
1929
+ var control_priority = 10;
1930
+ _.each( newSkopes, function( _skopeID_, _skopeLevel_ ) {
1931
+ if ( '_skope_not_set_' == _skopeID_ )
1932
+ return;
1933
+ control_priority += 10;
1934
+ var _do_ = function() {
1935
+ _.each( _candidates_, function( params ) {
1936
+ // If this is a 'czr_module' => make sure that the module type is registered
1937
+ // Prevents error in Hueman Addons, "czr_slide_module" not found.
1938
+ if ( 'czr_module' == params.control_type && ! _.has( api.czrModuleMap, params.module_type ) )
1939
+ return;
1940
+
1941
+ // set the skopeID and skopeLevel to the candidate
1942
+ params.skopeId = _skopeID_;
1943
+ params.skopeLevel = _skopeLevel_;
1944
+ params.control_priority = control_priority;
1945
+ self.registerContextalizedModuleControlSection( params );
1946
+ });
1947
+ };
1948
+
1949
+ if ( serverControlParams.isDevMode ) {
1950
+ _do_();
1951
+ } else {
1952
+ try {
1953
+ _do_();
1954
+ } catch ( error ) {
1955
+ api.errare( 'api.czr_skopeReact::setupDynamicModulesSettingControls', error );
1956
+ }
1957
+ }
1958
+
1959
+ });
1960
+ }, 500 );
1961
+ },
1962
+
1963
+ // helper
1964
+ // If a setting includes bracket ( 'hu_theme_options[body-background]' ), WP will think that it is a multidimensional setting when dynamically registrating it.
1965
+ // return a string, looking like : _contextualizer_ui_pro_slider_header_bg_skp__post_post_32
1966
+ _generateDynamicSettingId : function( module_set_id, skopeId ) {
1967
+ var moduleSetIdWithoutBrackets = module_set_id.replace('[', '').replace(']','').replace('hu_theme_options', '');
1968
+ return '_contextualizer_ui_' + moduleSetIdWithoutBrackets + '_' + skopeId;
1969
+ },
1970
+
1971
+ // fired on api.czr_activeSkopes.callbacks
1972
+ // and when on self::'trigger-skope-update'
1973
+ registerContextalizedModuleControlSection : function( params ) {
1974
+
1975
+ //console.log('registerContextalizedModuleControlSection => params', $.extend( true, {}, params ) );
1976
+ //
1977
+ var self = this,
1978
+ _id_ = self._generateDynamicSettingId( params.module_set_id, params.skopeId ),//_contextualizer_ui_pro_slider_header_bg_skp__post_post_32
1979
+ skopeData = _.findWhere( api.czr_currentSkopesCollection(), { skope_id : params.skopeId } ),
1980
+ styleSheetId = api.czr_skopeBase.stylesheet(),
1981
+ contxSettingId = self.getContxSettingId( params.skopeId, styleSheetId );
1982
+
1983
+ if ( _.isEmpty( skopeData ) ) {
1984
+ api.errorLog( 'registerContextalizedModuleControlSection => NO SKOPE DATA PROVIDED' );
1985
+ return;
1986
+ }
1987
+
1988
+ if ( ! api.has( contxSettingId ) ) {
1989
+ api.errorLog( 'registerContextalizedModuleControlSection => the contxSettingId is not registered ' + contxSettingId );
1990
+ return;
1991
+ }
1992
+
1993
+ _do_register_ = function() {
1994
+ if ( ! api.has( _id_ ) ) {
1995
+ //api.infoLog( "::registerContextalizedModuleControlSection => register new setting id : " + _id_, params.skopeLevel );
1996
+ // ON SETTING CHANGE
1997
+ // synchronize the module setting with the main collection setting
1998
+ api( _id_, function( _setting_ ) {
1999
+ _setting_.bind( function( to, from ) {
2000
+ // note _setting_.synchronizedContxSettingId <=> self.getContxSettingId( params.skopeId, styleSheetId );
2001
+ var newContxSettingValue = $.extend( true, [], api( _setting_.synchronizedContxSettingId )() || [] ),
2002
+ _clonedDefault = $.extend( true, {}, contxLocalizedParams.defaultModel );
2003
+ contxReadyVal = _.extend(
2004
+ _clonedDefault,
2005
+ {
2006
+ id : _setting_.moduleSetId,
2007
+ title : api.control.has( _id_ ) ? api.control( _id_ ).params.label : '',
2008
+ 'setting-id' : _setting_.moduleSetId,
2009
+ 'skope-id' : _setting_.skopeId,
2010
+ type : '_module_',
2011
+ value : to,
2012
+ dyn_api_setting_id : _setting_.id // used when removing the item from the contx setting, to reset the _setting_ value(). @see ::registerDynamicSkopeSettingControl
2013
+ }
2014
+ );
2015
+
2016
+ // Remove the previous value if it was already set
2017
+ newContxSettingValue = _.filter( newContxSettingValue, function( _item_ ) {
2018
+ return _setting_.moduleSetId != _item_[ 'setting-id' ];
2019
+ });
2020
+ // specific case of the slider select
2021
+ // we don't write anything in the local skope if inheriting
2022
+ if ( 'inherit' != to ) {
2023
+ // populate it
2024
+ newContxSettingValue.push( contxReadyVal );
2025
+ }
2026
+
2027
+ // set
2028
+ api( _setting_.synchronizedContxSettingId )( newContxSettingValue );
2029
+
2030
+ // refresh the contextualizer so any new item added is printed
2031
+ self.setupDynamicSettingControls();
2032
+
2033
+ // Print a notification when customizing the group level
2034
+ var onSettingChange = function( to ) {
2035
+ var _local_skope_title_ = self.getSkopeLevelTitle( 'local' ),
2036
+ localSkopeObj = _.findWhere( api.czr_currentSkopesCollection(), { skope : 'local'} ),
2037
+ localSettingId = self._generateDynamicSettingId( _setting_.moduleSetId, localSkopeObj.skope_id ),
2038
+ sectionId = api.control( _setting_.id ).section();
2039
+
2040
+ if ( 'group' != _setting_.skopeLevel )
2041
+ return;
2042
+
2043
+ api.section( sectionId ).notifications.add( new api.Notification( 'locally-contextualized', {
2044
+ type: 'info',
2045
+ message: [
2046
+ contxLocalizedParams.i18n['When the setting is already customized specifically for'],
2047
+ ':',
2048
+ _local_skope_title_,
2049
+ ',',
2050
+ contxLocalizedParams.i18n['this local value will be applied in priority.']
2051
+ ].join(' '),
2052
+ dismissible: true
2053
+ } ));
2054
+ // Removed if not dismissed after 5 seconds
2055
+ _.delay( function() {
2056
+ api.section( sectionId ).notifications.remove( 'locally-contextualized');
2057
+ }, 10000 );
2058
+ };//onSettingChange
2059
+ onSettingChange( to );
2060
+ });
2061
+ });// api(_id_, fn() ) => </ON SETTING CHANGE>
2062
+
2063
+
2064
+
2065
+ // Let's extract the value of the module set id in the set of values send by the server for this skope
2066
+ var contxSettingsValues = api( contxSettingId )();
2067
+ contxSettingsValues = _.isArray( contxSettingsValues ) ? contxSettingsValues : [];
2068
+
2069
+ var skopedModuleData = _.findWhere( contxSettingsValues, { 'setting-id' : params.module_set_id } ),
2070
+ defaultValue = _.isFunction( params.defaultValue ) ? params.defaultValue( params.skopeLevel ) : params.defaultValue,
2071
+ initialSettingValueOnRegistration = _.isUndefined( skopedModuleData ) ? defaultValue : skopedModuleData.value;
2072
+
2073
+ //console.log('skopedModuleData => initialSettingValueOnRegistration', _id_, initialSettingValueOnRegistration, params.control_type, params.module_type );
2074
+
2075
+ api.CZR_Helpers.register( {
2076
+ origin : 'contextualizer',
2077
+ what : 'setting',
2078
+ id : _id_,
2079
+ dirty : ! _.isEmpty( initialSettingValueOnRegistration ),
2080
+ value : initialSettingValueOnRegistration,
2081
+ transport : 'refresh',//'postMessage'
2082
+ type : '_contextualizer_ui_',//will be dynamically registered but not saved in db as option
2083
+ // add those property to the setting so that we can access them when synchronizing with the contxSettingid on setting change.
2084
+ options : {
2085
+ synchronizedContxSettingId : self.getContxSettingId( params.skopeId, styleSheetId ),
2086
+ skopeId : params.skopeId,
2087
+ skopeLevel : params.skopeLevel,
2088
+ moduleSetId : params.module_set_id
2089
+ }
2090
+ });
2091
+ }//if ( ! api.has( _id_ ) ) {}
2092
+
2093
+ api.CZR_Helpers.register( {
2094
+ origin : 'contextualizer',
2095
+ what : 'control',
2096
+ id : _id_,
2097
+ label : [
2098
+ params.control_label,
2099
+ contxLocalizedParams.i18n['in context'],
2100
+ ':',
2101
+ skopeData.ctx_title
2102
+ ].join(' '),
2103
+ type : params.control_type,
2104
+ module_type : params.module_type,//'czr_background',
2105
+ section : params.section.id,//'contx_body_bg',
2106
+ priority : params.control_priority,//'local' === params.skopeLevel ? 10 : 20,//local skope always first
2107
+ settings : { default : _id_ },
2108
+ options : {
2109
+ skopeLevel : params.skopeLevel,
2110
+ skopeId : params.skopeId,
2111
+ moduleSetId : params.module_set_id
2112
+ },
2113
+
2114
+ //track : false,//don't register in the self.registered() => this will prevent this container to be removed when cleaning the registered
2115
+ }).done( function() {
2116
+ api.control( _id_, function( _ctrl_ ) {
2117
+ _ctrl_.deferred.embedded.done( function() {
2118
+ // Print and attach event to a reset link
2119
+ _ctrl_.container.find('label')
2120
+ .first().find('.customize-control-title')
2121
+ .prepend( '<i title="' + contxLocalizedParams.i18n['Reset'] +'" class="czr-reset fas fa-undo-alt"></i> ' );
2122
+
2123
+ _ctrl_.container.on('click', '.czr-reset', function() {
2124
+ // Remove the item from the contxSetting collection
2125
+ var newContxSettingValue = $.extend( true, [], api( contxSettingId )() || [] );
2126
+ newContxSettingValue = _.filter( newContxSettingValue, function( _item_ ) {
2127
+ return api( _id_ ).moduleSetId != _item_[ 'setting-id' ] && params.skopeId != _item_[ 'skope-id' ];
2128
+ });
2129
+ api( contxSettingId )( newContxSettingValue );
2130
+
2131
+ // Remove the control
2132
+ $.when( api.control( _id_ ).container.remove() ).done( function() {
2133
+ //remove control
2134
+ api.control.remove( _id_ );
2135
+ // Remove the setting
2136
+ if ( api.has( _id_ ) ) {
2137
+ api.remove( _id_ );
2138
+ }
2139
+ // Reinstantiate the setting and control
2140
+ //self.registerContextalizedModuleControlSection( params.skopeId, params.skopeLevel );
2141
+ self.trigger( 'trigger-skope-refresh' );
2142
+ });
2143
+ });
2144
+
2145
+ // execute the embeddedComplete callback
2146
+ if ( _.isFunction( params.embeddedComplete ) ) {
2147
+ params.embeddedComplete.call( _ctrl_ );
2148
+ }
2149
+
2150
+ // schedule the visibility
2151
+ if ( _.isFunction( params.control_visibility ) ) {
2152
+ params.control_visibility.call( _ctrl_ );
2153
+ }
2154
+ });//embedded done
2155
+ });
2156
+ // api.control( _id_ ).focus({
2157
+ // completeCallback : function() {}
2158
+ // });
2159
+ });
2160
+ };//_do_register_()
2161
+
2162
+
2163
+ // Defer the registration when the parent section gets added to the api
2164
+ api.section.when( params.section.id, function() {
2165
+ //console.log('registerContextalizedModuleControlSection => ', _id_ );
2166
+ _do_register_();
2167
+ });
2168
+
2169
+
2170
+ // REGISTER A SECTION
2171
+ api.CZR_Helpers.register({
2172
+ origin : 'contextualizer',
2173
+ what : 'section',
2174
+ id : params.section.id,//'contx_body_bg'
2175
+ title: params.section.title,
2176
+ panel : params.section.panel,//'contx_panel'
2177
+ priority : params.section.priority,
2178
+ track : false,//don't register in the self.registered() => this will prevent this container to be removed when cleaning the registered
2179
+ constructWith : api.Section.extend({
2180
+ //attachEvents : function () {},
2181
+ // Always make the section active, event if we have no control in it
2182
+ isContextuallyActive : function () {
2183
+ return this.active();
2184
+ },
2185
+ _toggleActive : function(){ return true; }
2186
+ })
2187
+ });
2188
+ }//registerContextalizedModuleControlSection()
2189
+
2190
+ });//$.extend()
2191
+ })( wp.customize , jQuery, _);var CZRContextualizerModuleMths = CZRContextualizerModuleMths || {};
2192
+ var CZRSkopeReactMths = CZRSkopeReactMths || {};
2193
+
2194
+ (function ( api, $ ) {
2195
+ //provides a description of each module
2196
+ //=> will determine :
2197
+ //1) how to initialize the module model. If not crud, then the initial item(s) model shall be provided
2198
+ //2) which js template(s) to use : if crud, the module template shall include the add new and pre-item elements.
2199
+ // , if crud, the item shall be removable
2200
+ //3) how to render : if multi item, the item content is rendered when user click on edit button.
2201
+ // If not multi item, the single item content is rendered as soon as the item wrapper is rendered.
2202
+ //4) some DOM behaviour. For example, a multi item shall be sortable.
2203
+ api.czrModuleMap = api.czrModuleMap || {};
2204
+ $.extend( api.czrModuleMap, {
2205
+ czr_flat_skope_module : {
2206
+ mthds : CZRContextualizerModuleMths,
2207
+ crud : true,
2208
+ name : 'Flat Skope',
2209
+ has_mod_opt : false,
2210
+ sortable : false,
2211
+ ready_on_section_expanded : false//<= will be handled in the module.initialize(), when the 'set-module-ready' event will be emitted. @see registerDynamicSkopeSettingControl
2212
+ },
2213
+ });
2214
+
2215
+ // Skope React
2216
+ $.extend( CZRSkopeReactMths, api.Events );
2217
+ var CZR_SkopeReact = api.Class.extend( CZRSkopeReactMths );
2218
+
2219
+ var _do = function() {
2220
+ api.czr_skopeReact = new CZR_SkopeReact();
2221
+ };
2222
+ if ( _.has( api, 'czr_skopeBase' ) ) { _do(); } else {
2223
+ // Schedule instantiation on 'czr_skopeBase_initialized'
2224
+ api.bind( 'czr_skopeBase_initialized' , _do );
2225
+ }
2226
+
2227
+
2228
+ })( wp.customize, jQuery );
contextualizer/ccat-contextualizer.php ADDED
@@ -0,0 +1,1473 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ //Creates a new instance
3
+ function Contx( $params = array() ) {
4
+ return Contx::ctx_get_instance( $params );
5
+ }
6
+
7
+ // Wrap the skp_get_skope_id to make sure it is invoked with the right namespace
8
+ function ctx_get_skope_id( $level = 'local' ) {
9
+ if ( ! isset( $GLOBALS['czr_skope_namespace'] ) ) {
10
+ error_log( __FUNCTION__ . ' => global czr_skope_namespace not set' );
11
+ return;
12
+ }
13
+
14
+ $czrnamespace = $GLOBALS['czr_skope_namespace'];
15
+ $fn = $czrnamespace . 'skp_get_skope_id';
16
+ if ( function_exists( $fn ) ) {
17
+ return $fn( $level );
18
+ } else {
19
+ error_log( __FUNCTION__ . ' => ' . $fn . ' does not exist.' );
20
+ }
21
+ }
22
+
23
+
24
+
25
+ /////////////////////////////////////////////////////////////////
26
+ // <DEFINITIONS>
27
+
28
+ // THE SKOPE SETTING ITEM MODEL
29
+ function ctx_get_default_model() {
30
+ return array(
31
+ 'id' => '',
32
+ 'title' => '',
33
+ 'skope-id' => 'home',
34
+ 'setting-id' => '',
35
+ 'type' => '',
36
+ 'value' => ''
37
+ );
38
+ }
39
+
40
+
41
+
42
+ function ctx_get_authorized_setting_types() {
43
+ return array(
44
+ 'text',
45
+ 'select',
46
+ 'checkbox',
47
+ 'number',
48
+ 'color',
49
+ 'text-area',
50
+ 'radio',
51
+ 'range',
52
+ 'image',
53
+
54
+ // specific types
55
+ 'nav_menu_location',
56
+ 'cropped_image',
57
+ 'header',
58
+ 'code_editor'//<= used for the custom_css for example
59
+ );
60
+ }
61
+
62
+ function ctx_get_excluded_settings() {
63
+ $multidim_option_prefix = CONTX_OPTION_PREFIX;
64
+ return array_merge(
65
+ array(
66
+ //hueman design option
67
+ 'hu_theme_options[favicon]',
68
+ 'hu_theme_options[featured-posts-include]',
69
+ // 'post-comments',
70
+ // 'page-comments',
71
+ 'hu_theme_options[layout-global]',
72
+ 'hu_theme_options[layout-home]',
73
+ 'hu_theme_options[layout-single]',
74
+ 'hu_theme_options[layout-archive]',
75
+ 'hu_theme_options[layout-archive-category]',
76
+ 'hu_theme_options[layout-search]',
77
+ 'hu_theme_options[layout-404]',
78
+ 'hu_theme_options[layout-page]',
79
+ 'hu_theme_options[sidebar-areas]',
80
+ 'hu_theme_options[about-page]',
81
+ 'hu_theme_options[help-button]',
82
+ 'hu_theme_options[show-skope-infos]',
83
+ 'hu_theme_options[enable-skope]',
84
+ 'hu_theme_options[attachments-in-search]',
85
+ "{$multidim_option_prefix}[contx_wp_core]",
86
+ "{$multidim_option_prefix}[contx_theme_and_plugins_options]"
87
+ ),
88
+ ctx_get_excluded_wp_core_settings()
89
+ );
90
+ }
91
+
92
+ function ctx_get_excluded_wp_core_settings() {
93
+ return array(
94
+ //wp options
95
+ 'show_on_front',
96
+ 'page_on_front',
97
+ 'page_for_posts',
98
+ 'posts_per_page',
99
+ 'active_theme',
100
+ 'site_icon',
101
+ //wp theme mods
102
+ //'custom_css',
103
+ 'custom_css_post_id',
104
+ 'header_image_data',//<= used when customizing the header_image
105
+ );
106
+ }
107
+
108
+ // @return array()
109
+ // @see the defaut control registered in the core customize-manager class
110
+ function ctx_get_wp_core_eligible_settings() {
111
+ return array(
112
+ 'custom_logo',
113
+
114
+ 'background_preset',
115
+ 'background_image',
116
+ 'background_image_thumb',
117
+ 'background_color',
118
+ 'background_position',
119
+ 'background_position_x',
120
+ 'background_size',
121
+ 'background_repeat',
122
+ 'background_attachment',
123
+
124
+ 'header_image',
125
+ 'header_image_data',
126
+ 'header_text',
127
+ 'header_textcolor',
128
+
129
+ 'nav_menu_locations',
130
+
131
+ 'blogname',
132
+ 'blogdescription',
133
+ 'posts_per_page'
134
+ );
135
+ }
136
+
137
+ // @return boold
138
+ function ctx_is_wp_core_contextualizable_setting( $opt_name ) {
139
+ return in_array( $opt_name, ctx_get_wp_core_eligible_settings() );
140
+ }
141
+
142
+ //@return bool
143
+ function ctx_we_can_contextualize_wp_core_options() {
144
+ $ctx_options = get_option( CONTX_OPTION_PREFIX );
145
+ if ( is_array( $ctx_options ) && array_key_exists('contx_wp_core', $ctx_options ) ) {
146
+ return 'yes' == $ctx_options['contx_wp_core'];
147
+ } else {
148
+ return ha_is_skop_on();
149
+ }
150
+ }
151
+
152
+ //@return bool
153
+ function ctx_we_can_contextualize_not_wp_core_options() {
154
+ $ctx_options = get_option( CONTX_OPTION_PREFIX );
155
+ if ( is_array( $ctx_options ) && array_key_exists('contx_theme_and_plugins_options', $ctx_options ) ) {
156
+ return 'yes' == $ctx_options['contx_theme_and_plugins_options'];
157
+ } else {
158
+ return ha_is_skop_on();
159
+ }
160
+ }
161
+
162
+
163
+ /////////////////////////////////////////////////////////////////
164
+ // </DEFINITIONS>
165
+
166
+
167
+ // First check if there's a local value
168
+ // Then a group one
169
+ // Then a global one
170
+ function ctx_get_opt_val( $original_opt_val, $opt_name, $opt_multidim_group = null , $skope_level = 'local' ) {
171
+ $_skp_val = $original_opt_val;
172
+
173
+ $skope_level = is_null( $skope_level ) ? 'local' : $skope_level;
174
+
175
+ $all_skoped = Contx() -> cached_ctx_opt;
176
+
177
+ // error_log( '<ALL SKOPED>' );
178
+ // error_log( print_r( $all_skoped, true ) );
179
+ // error_log( '</ALL SKOPED>' );
180
+
181
+ $skoped_for_requested_skope_level = array_key_exists( $skope_level, $all_skoped ) ? $all_skoped[ $skope_level ] : array();
182
+
183
+ $skope_id = ctx_get_skope_id( $skope_level );
184
+
185
+ if ( is_null( $opt_multidim_group ) ) {
186
+ $to_search = "{$opt_name}";
187
+ } else {
188
+ $to_search = "{$opt_multidim_group}[{$opt_name}]";
189
+ }
190
+
191
+ // error_log( '<IN ctx_get_opt_val>' );
192
+ // error_log( $to_search );
193
+ // error_log( '</IN ctx_get_opt_val>' );
194
+
195
+ if ( array_key_exists( $to_search, $skoped_for_requested_skope_level ) && array_key_exists( 'value', $skoped_for_requested_skope_level[ $to_search ] ) ) {
196
+ // error_log('<ORIGINAL OPT VAL>');
197
+ // error_log($original_opt_val);
198
+ // error_log('</ORIGINAL OPT VAL>');
199
+ $_skp_val = $skoped_for_requested_skope_level[ $to_search ]['value'];
200
+ } else if ( 'local' == $skope_level ) {
201
+ $_skp_val = ctx_get_opt_val( $original_opt_val, $opt_name, $opt_multidim_group, 'group' );
202
+ }
203
+ return $_skp_val;
204
+ }
205
+
206
+
207
+
208
+ function ctx_get_cached_skoped_opt_val( $opt_name, $skope_level, $opt_multidim_group = null ) {
209
+ $all_skoped = Contx() -> cached_ctx_opt;
210
+ $skoped_for_requested_skope_level = array_key_exists( $skope_level, $all_skoped ) ? $all_skoped[ $skope_level ] : array();
211
+ $skope_id = ctx_get_skope_id( $skope_level );
212
+ $_skp_val = '_no_set_';
213
+ if ( is_null( $opt_multidim_group ) ) {
214
+ $to_search = "{$opt_name}";
215
+ } else {
216
+ $to_search = "{$opt_multidim_group}[{$opt_name}]";
217
+ }
218
+
219
+ // error_log( '<IN ctx_get_opt_val>' );
220
+ // error_log( $to_search );
221
+ // error_log( '</IN ctx_get_opt_val>' );
222
+
223
+ if ( array_key_exists( $to_search, $skoped_for_requested_skope_level ) && array_key_exists( 'value', $skoped_for_requested_skope_level[ $to_search ] ) ) {
224
+ // error_log('<ORIGINAL OPT VAL>');
225
+ // error_log($original_opt_val);
226
+ // error_log('</ORIGINAL OPT VAL>');
227
+ $_skp_val = $skoped_for_requested_skope_level[ $to_search ]['value'];
228
+ }
229
+ return $_skp_val;
230
+ }
231
+
232
+
233
+
234
+
235
+ /////////////////////////////////////////////////////////////////
236
+ // <GET FILTRABLE CANDIDATES>
237
+ // may be recache
238
+ function ctx_get_filtrable_candidates() {
239
+ if ( empty( Contx() -> filtrable_candidates ) ) {
240
+ $filtrable_candidates = Contx() -> ctx_cache_filtrable_candidates();
241
+ } else {
242
+ $filtrable_candidates = Contx() -> filtrable_candidates;
243
+ }
244
+ return $filtrable_candidates;
245
+ }
246
+ /////////////////////////////////////////////////////////////////
247
+ // </GET FILTRABLE CANDIDATES>
248
+
249
+
250
+ /**
251
+ * @uses wp_get_theme() the optional stylesheet parameter value takes into account the possible preview of a theme different than the one activated
252
+ */
253
+ function ctx_get_parent_theme_slug() {
254
+ $theme_slug = get_option( 'stylesheet' );
255
+ // $_REQUEST['theme'] is set both in live preview and when we're customizing a non active theme
256
+ $theme_slug = isset($_REQUEST['theme']) ? $_REQUEST['theme'] : $theme_slug; //old wp versions
257
+ $theme_slug = isset($_REQUEST['customize_theme']) ? $_REQUEST['customize_theme'] : $theme_slug;
258
+
259
+ //gets the theme name (or parent if child)
260
+ $theme_data = wp_get_theme( $theme_slug );
261
+ if ( $theme_data -> parent() ) {
262
+ $theme_slug = $theme_data -> parent() -> Name;
263
+ }
264
+
265
+ return sanitize_file_name( strtolower( $theme_slug ) );
266
+ }
267
+
268
+
269
+
270
+
271
+
272
+
273
+ ///////////////////////////////////////////////////////////////
274
+ // RETRO COMPAT
275
+ function ctx_get_old_skope_post_id() {
276
+ $skope_post_id = get_option('skope-post-id');
277
+ $skope_post = get_post( $skope_post_id );
278
+ if ( false == $skope_post_id || ! $skope_post || 'czr_skope_opt' != get_post_type( $skope_post ) ) {
279
+ return '_no_set_';
280
+ }
281
+ return $skope_post_id;
282
+ }
283
+
284
+ ?><?php
285
+ /**
286
+ * Fetch the `contx_post_type` post for a given {theme_name}_{skope_id}
287
+ *
288
+ * @since 4.7.0
289
+ *
290
+ * @param string $stylesheet Optional. A theme object stylesheet name. Defaults to the current theme.
291
+ * @return WP_Post|null The skope post or null if none exists.
292
+ */
293
+ function ctx_get_skope_post( $skope_id = '', $stylesheet = '', $skope_level = 'local' ) {
294
+ if ( empty( $stylesheet ) ) {
295
+ $stylesheet = get_stylesheet();
296
+ }
297
+ if ( empty( $skope_id ) ) {
298
+ $skope_id = ctx_get_skope_id( $skope_level );
299
+ }
300
+
301
+ $ctx_post_query_vars = array(
302
+ 'post_type' => CONTX_POST_TYPE,
303
+ 'post_status' => get_post_stati(),
304
+ 'name' => sanitize_title( "{$stylesheet}_{$skope_id}" ),
305
+ 'posts_per_page' => 1,
306
+ 'no_found_rows' => true,
307
+ 'cache_results' => true,
308
+ 'update_post_meta_cache' => false,
309
+ 'update_post_term_cache' => false,
310
+ 'lazy_load_term_meta' => false,
311
+ );
312
+
313
+ $post = null;
314
+ if ( get_stylesheet() === $stylesheet ) {
315
+ $post_id = get_theme_mod( $skope_id );
316
+
317
+ if ( $post_id > 0 && get_post( $post_id ) ) {
318
+ $post = get_post( $post_id );
319
+ }
320
+
321
+ // `-1` indicates no post exists; no query necessary.
322
+ if ( ! $post && -1 !== $post_id ) {
323
+ $query = new WP_Query( $ctx_post_query_vars );
324
+ $post = $query->post;
325
+ /*
326
+ * Cache the lookup. See ctx_update_skope_post().
327
+ * @todo This should get cleared if a skope post is added/removed.
328
+ */
329
+ set_theme_mod( $skope_id, $post ? $post->ID : -1 );
330
+ }
331
+ } else {
332
+ $query = new WP_Query( $ctx_post_query_vars );
333
+ $post = $query->post;
334
+ }
335
+
336
+ return $post;
337
+ }
338
+
339
+ /**
340
+ * Fetch the saved skoped settings
341
+ *
342
+ * @since 4.7.0
343
+ *
344
+ * @param string $stylesheet Optional. A theme object stylesheet name. Defaults to the current theme.
345
+ * @return array => the skope setting items
346
+ */
347
+ function ctx_get_skoped_settings( $skope_id = '', $stylesheet = '', $skope_level = 'local' ) {
348
+ $skoped_settings = '';
349
+
350
+ if ( empty( $stylesheet ) ) {
351
+ $stylesheet = get_stylesheet();
352
+ }
353
+ if ( empty( $skope_id ) ) {
354
+ $skope_id = ctx_get_skope_id( $skope_level );
355
+ }
356
+
357
+ $post = ctx_get_skope_post( $skope_id );
358
+ if ( $post ) {
359
+ $skoped_settings = maybe_unserialize( $post->post_content );
360
+ }
361
+
362
+ $skoped_settings = apply_filters( 'ctx_get_skoped_settings', $skoped_settings, $skope_id, $stylesheet );
363
+
364
+ return $skoped_settings;
365
+ }
366
+
367
+
368
+
369
+ /**
370
+ * Update the `contx_post_type` post for a given {theme_name}_{skope_id}
371
+ *
372
+ * Inserts a `contx_post_type` post when one doesn't yet exist.
373
+ *
374
+ * @since 4.7.0
375
+ *
376
+ * }
377
+ * @return WP_Post|WP_Error Post on success, error on failure.
378
+ */
379
+ function ctx_update_skope_post( $skoped_settings, $args = array() ) {
380
+ $args = wp_parse_args( $args, array(
381
+ 'stylesheet' => get_stylesheet(),
382
+ 'skope_id' => ''
383
+ ) );
384
+
385
+ $data = array(
386
+ 'skoped_settings' => $skoped_settings
387
+ );
388
+
389
+ $post_title = $args['stylesheet'] . '_' . $args['skope_id'];
390
+
391
+ $post_data = array(
392
+ 'post_title' => $post_title,
393
+ 'post_name' => sanitize_title( $post_title ),
394
+ 'post_type' => CONTX_POST_TYPE,
395
+ 'post_status' => 'publish',
396
+ 'post_content' => maybe_serialize( $data['skoped_settings'] )
397
+ );
398
+
399
+
400
+ // Update post if it already exists, otherwise create a new one.
401
+ $post = ctx_get_skope_post( $args['skope_id'], $args['stylesheet'] );
402
+
403
+ if ( $post ) {
404
+ $post_data['ID'] = $post->ID;
405
+ $r = wp_update_post( wp_slash( $post_data ), true );
406
+ } else {
407
+ $r = wp_insert_post( wp_slash( $post_data ), true );
408
+
409
+ if ( ! is_wp_error( $r ) ) {
410
+ if ( get_stylesheet() === $args['stylesheet'] ) {
411
+ set_theme_mod( $args['skope_id'], $r );//$r is the post ID
412
+ }
413
+
414
+ // Trigger creation of a revision. This should be removed once #30854 is resolved.
415
+ if ( 0 === count( wp_get_post_revisions( $r ) ) ) {
416
+ wp_save_post_revision( $r );
417
+ }
418
+ }
419
+ }
420
+
421
+ if ( is_wp_error( $r ) ) {
422
+ return $r;
423
+ }
424
+ return get_post( $r );
425
+ }
426
+
427
+ // delete_option( 'hu_theme_options' );
428
+ ?><?php
429
+
430
+ ////////////////////////////////////////////////////////////////
431
+ // This Class is instantiated on 'hu_hueman_loaded', declared in /init-core.php
432
+ if ( ! class_exists( 'CZR_Contx_Construct' ) ) :
433
+ class CZR_Contx_Construct {
434
+ static $instance;
435
+ public $filtrable_candidates;//will be updated on customize_register
436
+ public $skopable_settings;
437
+ public $default_filtrable_candidates_model = array(
438
+ 'options' => array(),
439
+ 'multidim_options' => array(),
440
+ 'multidim_theme_mods' => array(),
441
+ 'simple_theme_mods' => array()
442
+ );
443
+ public $skopable_settings_collection_model = array(
444
+ 'setting-id' => '',
445
+ 'apiCtrlId' => '',
446
+ 'apiSetId' => '',
447
+ 'type' => '',
448
+ );
449
+ public $ctx_dynamic_setting_default_data = array(
450
+ 'transport' => 'refresh',
451
+ 'type' => 'theme_mod',
452
+ );
453
+
454
+ public $ctx_dynamic_control_default_data = array(
455
+ 'type' => 'czr_module',
456
+ 'module_type' => 'czr_flat_skope_module',
457
+ 'section' => 'contx_sec'
458
+ );
459
+
460
+ public static function ctx_get_instance( $params ) {
461
+ if ( ! isset( self::$instance ) && ! ( self::$instance instanceof Contx ) )
462
+ self::$instance = new Contx( $params );
463
+ return self::$instance;
464
+ }
465
+
466
+ // options
467
+ public $cached_ctx_opt = array( 'local' => array(), 'group' => array() );
468
+ public $cached_skopified_theme_mods = array();
469
+
470
+
471
+
472
+
473
+ /////////////////////////////////////////////////////////////////
474
+ // <CONSTRUCTOR>
475
+ function __construct( $params = array() ) {
476
+ $defaults = array(
477
+ 'base_url_path' => ''//PC_AC_BASE_URL/inc/czr-modules/contextualizer
478
+ );
479
+ $params = wp_parse_args( $params, $defaults );
480
+
481
+ // CONSTANTS
482
+ if ( ! defined( 'CONTX_BASE_URL' ) ) { define( 'CONTX_BASE_URL' , $params['base_url_path'] ); }
483
+ if ( ! defined( 'CONTX_POST_TYPE' ) ) { define( 'CONTX_POST_TYPE' , "contx_post_type" ); }
484
+ if ( ! defined( 'CONTX_OPTION_PREFIX' ) ) { define( 'CONTX_OPTION_PREFIX' , 'contx' ); }
485
+
486
+ // The CPT used to persist the contextualized options
487
+ $this -> ctx_register_contx_post_type();
488
+
489
+ // let's cache the $filtrable_candidates now, before filtering the theme mods
490
+ // make sure they are well formed
491
+ $this -> ctx_cache_filtrable_candidates();
492
+
493
+ // OPTIONS : CACHE AND SETUP FILTERS
494
+ $this -> ctx_schedule_option_cache_and_filters_on_wp();
495
+
496
+ // ON 'customize_register'
497
+ // => load setting class
498
+ // => add a section
499
+ // => set filtrable candidates
500
+ $this -> ctx_schedule_customize_register_actions();
501
+
502
+ // DYNAMIC SETTING REGISTRATION AND SANITIZATION
503
+ $this -> ctx_schedule_customize_dynamic_setting_args_and_class_filters();
504
+
505
+ // SETUP JS AND CSS RESOURCES
506
+ $this -> ctx_schedule_loading_customizer_js_css_assets();
507
+
508
+ // AJAX TMPL FILTER
509
+ // When the following javascript module properties are empty, the module will try to fetch the various item templates via ajax
510
+ // itemPreAddEl : '',
511
+ // itemInputList : '',
512
+ // modOptInputList : ''
513
+ // the template fetching is done with api.CZR_Helpers.getModuleTmpl() => which fires wp.ajax.post( 'ac_get_template', args )
514
+ // => the filter ac_set_ajax_czr_tmpl___{module_id} is fired server side during the 'ac_get_template' ajax action
515
+ add_filter( "ac_set_ajax_czr_tmpl___czr_flat_skope_module", array( $this, 'ctx_get_skope_module_tmpl' ), 10, 3 );
516
+ }//__construct
517
+ /////////////////////////////////////////////////////////////////
518
+ // </CONSTRUCTOR>
519
+
520
+ /////////////////////////////////////////////////////////////////
521
+ /// REGISTER POST TYPE
522
+ /// Fired in the constructor
523
+ function ctx_register_contx_post_type() {
524
+ // SKOPE POST
525
+ register_post_type( CONTX_POST_TYPE, array(
526
+ 'labels' => array(
527
+ 'name' => __( 'Contextual settings', 'text_domain_to_be_replaced' ),
528
+ 'singular_name' => __( 'Contextual settings', 'text_domain_to_be_replaced' ),
529
+ ),
530
+ 'public' => false,
531
+ 'hierarchical' => false,
532
+ 'rewrite' => false,
533
+ 'query_var' => false,
534
+ 'delete_with_user' => false,
535
+ 'can_export' => true,
536
+ '_builtin' => true, /* internal use only. don't use this when registering your own post type. */
537
+ 'supports' => array( 'title', 'revisions' ),
538
+ 'capabilities' => array(
539
+ 'delete_posts' => 'edit_theme_options',
540
+ 'delete_post' => 'edit_theme_options',
541
+ 'delete_published_posts' => 'edit_theme_options',
542
+ 'delete_private_posts' => 'edit_theme_options',
543
+ 'delete_others_posts' => 'edit_theme_options',
544
+ 'edit_post' => 'edit_theme_options',
545
+ 'edit_posts' => 'edit_theme_options',
546
+ 'edit_others_posts' => 'edit_theme_options',
547
+ 'edit_published_posts' => 'edit_theme_options',
548
+ 'read_post' => 'read',
549
+ 'read_private_posts' => 'read',
550
+ 'publish_posts' => 'edit_theme_options',
551
+ )
552
+ ) );
553
+ }
554
+
555
+ // fired from the constructor
556
+ function ctx_cache_filtrable_candidates() {
557
+ $filtrable_candidates = get_theme_mod( 'ctx_filtrable_candidates' );//<= set on add_action('customize_register', 'ctx_set_filtrable_candidates', PHP_INT_MAX );
558
+ if ( empty( $filtrable_candidates ) || ! is_array( $filtrable_candidates ) ) {
559
+ // if the theme mod is not set yet, populate with a hard coded json
560
+ // fixes : https://github.com/presscustomizr/hueman-pro-addons/issues/143
561
+ $this -> filtrable_candidates = json_decode( $this->_get_default_filtrable_candidate_json(), true );//$this -> default_filtrable_candidates_model;
562
+ } else {
563
+ $this -> filtrable_candidates = wp_parse_args( $filtrable_candidates, $this -> default_filtrable_candidates_model );
564
+ }
565
+ // error_log( '<FILTRABLE CANDIDATES>' );
566
+ // error_log( print_r( $filtrable_candidates , true ) );
567
+ // error_log( '</FILTRABLE CANDIDATES>' );
568
+
569
+ return apply_filters( 'ctx_cache_filtrable_candidates', $this -> filtrable_candidates );
570
+ }
571
+
572
+
573
+ /////////////////////////////////////////////////////////////////
574
+ // AJAX TMPL FILTERS
575
+ // this dynamic filter is declared on wp_ajax_ac_get_template
576
+ // It allows us to populate the server response with the relevant module html template
577
+ // $html = apply_filters( "ac_set_ajax_czr_tmpl___{$module_type}", '', $tmpl );
578
+ //
579
+ // Each template is built from a map, each input type having its own unique piece of tmpl
580
+ //
581
+ // 3 types of templates :
582
+ // 1) the pre-item, rendered when adding an item
583
+ // 2) the module meta options, or mod-opt
584
+ // 3) the item input options
585
+
586
+ function ctx_get_skope_module_tmpl( $html, $requested_tmpl = '', $posted_params = array() ) {
587
+ if ( empty( $requested_tmpl ) ) {
588
+ wp_send_json_error( 'ac_get_skope_module_tmpl => the requested tmpl ' . $requested_tmpl . ' is not authorized' );
589
+ }
590
+ $tmpl_map = array();
591
+ switch ( $requested_tmpl ) {
592
+ case 'pre-item' :
593
+ $tmpl_map = array(
594
+ 'setting-id' => array(
595
+ 'input_type' => 'select',
596
+ 'title' => __('Select', 'text_domain_to_be_replaced'),
597
+ 'notice_before' => __('Pick an option and add it to the collection of contextualized settings.', 'text_domain_to_be_replaced'),
598
+ 'width-100' => true
599
+ ),
600
+ 'id' => array('input_type' => 'hidden' ),
601
+ 'title' => array('input_type' => 'hidden' ),
602
+ 'type' => array('input_type' => 'hidden' ),
603
+ 'value' => array('input_type' => 'hidden' ),
604
+ 'skope-id' => array('input_type' => 'hidden' )
605
+ );
606
+ break;
607
+
608
+ case 'item-inputs' :
609
+ // The map is dependant on the type set in the item_model
610
+ // the item_model is posted in the query when fetching the item content template
611
+ if ( ! is_array( $posted_params ) || ! array_key_exists( 'item_model', $posted_params ) || ! array_key_exists( 'type' , $posted_params[ 'item_model' ] ) ) {
612
+ wp_send_json_error( 'ac_get_skope_module_tmpl => missing type property in the posted item_model' );
613
+ }
614
+ $item_type = $posted_params[ 'item_model' ][ 'type' ];
615
+
616
+ // Handle the specific input types case
617
+ // Force them to regular input types
618
+ switch( $posted_params[ 'item_model' ][ 'type' ] ) {
619
+ case 'nav_menu_location' :
620
+ $item_type = 'select';
621
+ break;
622
+ case 'cropped_image' :
623
+ case 'image' :
624
+ $item_type = 'upload';
625
+ break;
626
+ case 'header' :
627
+ $item_type = 'upload_url';
628
+ break;
629
+ //custom_css
630
+ case 'code_editor' :
631
+ $item_type = 'textarea';
632
+ break;
633
+ }
634
+
635
+ switch( $item_type ) {
636
+ // For radio, number and range type, we need to generate their attributes ( step, min, max ) based on the original control
637
+ // this is done in js, that's why we use this placeholder class
638
+ // we can specify a template when parsed in CZR_Fmk_Base() -> ac_generate_czr_tmpl_from_map()
639
+ case 'radio' :
640
+ case 'number' :
641
+ case 'range' :
642
+ $tmpl_map = array(
643
+ 'value' => array(
644
+ 'input_type' => $item_type,
645
+ 'title' => __( 'Contextual Value', 'text_domain_to_be_replaced'),
646
+ 'input_template' => '<input class="placeholder-to-be-replaced-by-dynamic-content" type="hidden" data-czrtype="value"></input>'
647
+ )
648
+ );
649
+ break;
650
+
651
+ case 'color' :
652
+ $tmpl_map = array(
653
+ 'value' => array(
654
+ 'input_type' => $item_type,
655
+ 'title' => __( 'Contextual Value', 'text_domain_to_be_replaced'),
656
+ 'input_template' => '<#
657
+ var defaultValue = "#RRGGBB",
658
+ defaultValueAttr = "",
659
+ isHueSlider = true === data.isHueSlider;
660
+ if ( data.value && _.isString( data.value ) && ! isHueSlider ) {
661
+ if ( "#" !== data.value.substring( 0, 1 ) ) {
662
+ data.value = "#" + data.value;
663
+ }
664
+ defaultValueAttr = " data-default-color=" + data.value; // Quotes added automatically.
665
+ }
666
+ #>
667
+ <# if ( isHueSlider ) { #>
668
+ <input class="color-picker-hue" data-czrtype="value" type="text" value="{{ data.value }}" data-type="hue"></input>
669
+ <# } else { #>
670
+ <input class="color-picker-hex" data-czrtype="value" type="text" maxlength="7" placeholder="{{ data.value }}" {{ defaultValueAttr }} value="{{ data.value }}"></input>
671
+ <# } #>'
672
+ )
673
+ );
674
+ break;
675
+
676
+ default :
677
+ $tmpl_map = array(
678
+ 'value' => array(
679
+ 'input_type' => $item_type,
680
+ 'title' => __( 'Contextual Value', 'text_domain_to_be_replaced'),
681
+ )
682
+ );
683
+ break;
684
+ }
685
+ break;
686
+ }
687
+ if ( isset( $GLOBALS['czr_base_fmk_namespace'] ) ) {
688
+ $function_candidate = $GLOBALS['czr_base_fmk_namespace'] . 'CZR_Fmk_Base';
689
+ if ( function_exists( $function_candidate ) ) {
690
+ return $function_candidate() -> ac_generate_czr_tmpl_from_map( $tmpl_map );
691
+ //return czr_fn\CZR_Fmk_Base() -> ac_generate_czr_tmpl_from_map( $tmpl_map );
692
+ } else {
693
+ wp_send_json_error( 'ctx_get_skope_module_tmpl => missing function namespace\CZR_Fmk_Base()' );
694
+ }
695
+
696
+ } else {
697
+ wp_send_json_error( 'ctx_get_skope_module_tmpl => missing czr_base_fmk_namespace' );
698
+ }
699
+ }//ctx_get_skope_module_tmpl
700
+
701
+
702
+ /////////////////////////////////////////////////////////////////
703
+ // Default filtrable candidates as a hard coded json
704
+ // Is used when the theme_mod "ctx_filtrable_candidates" is not set yet
705
+ // invoked in ctx_cache_filtrable_candidates()
706
+ private function _get_default_filtrable_candidate_json() {
707
+ return '{"options":["blogname","blogdescription"],"multidim_options":{"hu_theme_options":["display-header-title","display-header-logo","logo-max-height","font","body-font-size","container-width","boxed","sidebar-padding","color-1","color-2","image-border-radius","ext_link_style","ext_link_target","post-comments","page-comments","smoothscroll","responsive","fittext","sharrre","sharrre-counter","sharrre-scrollable","sharrre-twitter-on","twitter-username","sharrre-facebook-on","sharrre-google-on","sharrre-pinterest-on","sharrre-linkedin-on","minified-css","structured-data","smart_load_img","js-mobile-detect","site-description","color-topbar","color-header","color-header-menu","color-mobile-menu","transparent-fixed-topnav","use-header-image","logo-title-on-header-image","header-ads","header-ads-desktop","header-ads-mobile","default-menu-header","header-desktop-sticky","desktop-search","header_mobile_menu_layout","header-mobile-sticky","header_mobile_btn","mobile-search","infinite-scroll","load_on_scroll_desktop","load_on_scroll_mobile","pro_post_list_design","pro_grid_columns","blog-heading-enabled","blog-heading","blog-subheading","excerpt-length","featured-posts-enabled","featured-category","featured-posts-count","featured-posts-full-content","featured-slideshow","featured-slideshow-speed","author-bio","related-posts","post-nav","placeholder","comment-count","sidebar-top","desktop-sticky-sb","mobile-sticky-sb","mobile-sidebar-hide","footer-ads","default-menu-footer","color-footer","copyright","credit"]},"multidim_theme_mods":[],"simple_theme_mods":["header_text","custom_logo","header_textcolor","background_color","header_image","background_preset","background_size","background_repeat","background_attachment","nav_menu_locations"]}';
708
+ }
709
+ }//class
710
+ endif;
711
+
712
+ ?>
713
+ <?php
714
+ ///////////////////////////////////////////////////////////////
715
+ // SKOP OPTION CLASS
716
+ if ( ! class_exists( 'Contx_Options' ) ) :
717
+ class Contx_Options extends CZR_Contx_Construct {
718
+ //static $instance;
719
+
720
+ // Fired in the constructor
721
+ // cache and setup filters
722
+ function ctx_schedule_option_cache_and_filters_on_wp() {
723
+ // CACHE CONTEXTUALIZED OPTIONS
724
+ add_action( 'wp', array( $this, 'ctx_cache_ctx_options' ), PHP_INT_MAX - 1 );//<= because the option filter are set to PHP_INT_MAX );
725
+ add_action( 'wp', array( $this, 'ctx_setup_option_filters' ), PHP_INT_MAX );
726
+ }
727
+
728
+ // hook : wp
729
+ function ctx_cache_ctx_options() {
730
+ // if we can contextualize (user has not uncheck everyt) let's setup the filtrable candidates and the option filters
731
+ if ( ! ctx_we_can_contextualize_wp_core_options() && ! ctx_we_can_contextualize_not_wp_core_options() )
732
+ return;
733
+
734
+ $local_skope_id = ctx_get_skope_id( 'local' );
735
+ $group_skope_id = ctx_get_skope_id( 'group' );
736
+
737
+ $raw_local = ctx_get_skoped_settings( $local_skope_id );
738
+ $raw_group = '';
739
+ if ( '_skope_not_set_' != $group_skope_id ) {
740
+ $raw_group = ctx_get_skoped_settings( $group_skope_id );
741
+ }
742
+
743
+ $cache_candidate = array( 'local' => array(), 'group' => array() );
744
+ $default_model = ctx_get_default_model();
745
+ //$raw_local looks like
746
+ //[0] => Array
747
+ // (
748
+ // [id] => czr_flat_skope_module_0
749
+ // [title] => copyright
750
+ // [setting-id] => copyright
751
+ //
752
+ // [value] => My flat skoped copyright
753
+ // )
754
+ if ( is_array( $raw_local ) ) {
755
+ foreach ($raw_local as $data ) {
756
+ $data = wp_parse_args( $data, $default_model );
757
+ if ( empty( $data['id'] ) )
758
+ continue;
759
+ if ( empty( $data['setting-id'] ) || empty( $data['skope-id'] ) ){
760
+ error_log( 'Empty setting-id or skope-id for customized : ' . $data['id'] );
761
+ continue;
762
+ }
763
+
764
+ $key = $data['id'];
765
+ $cache_candidate['local'][ $key ] = $data;
766
+ }
767
+ }
768
+ if ( is_array( $raw_group ) ) {
769
+ foreach ($raw_group as $data ) {
770
+ $data = wp_parse_args( $data, $default_model );
771
+ if ( empty( $data['id'] ) )
772
+ continue;
773
+ if ( empty( $data['setting-id'] ) || empty( $data['skope-id'] ) ){
774
+ error_log( 'Empty setting-id or skope-id for customized : ' . $data['id'] );
775
+ continue;
776
+ }
777
+
778
+ $key = $data['id'];
779
+ $cache_candidate['group'][ $key ] = $data;
780
+ }
781
+ }
782
+ $this -> cached_ctx_opt = $cache_candidate;
783
+
784
+ do_action( 'contextualizer_options_cached');
785
+ }
786
+
787
+
788
+ /////////////////////////////////////////////////////////////////
789
+ //FILTER THEME OPTIONS
790
+ // On 'wp' so that we have a skope
791
+ // the filter candidates look like this :
792
+ // [options] => Array
793
+ // (
794
+ // [0] => blogname
795
+ // [1] => blogdescription
796
+ // )
797
+
798
+ // [multidim_options] => Array
799
+ // (
800
+ // [pc_ac_opt_test] => Array
801
+ // (
802
+ // [0] => test_one
803
+ // [1] => test_two
804
+ // )
805
+
806
+ // )
807
+
808
+ // [multidim_theme_mods] => Array
809
+ // (
810
+ // )
811
+
812
+ // [simple_theme_mods] => Array
813
+ // (
814
+ // [0] => custom_logo
815
+ // [1] => header_textcolor
816
+ // [2] => background_color
817
+ // [3] => header_video
818
+ // [4] => external_header_video
819
+ // [5] => header_image
820
+ // [6] => header_image_data
821
+ // [7] => background_image
822
+ // [8] => background_image_thumb
823
+ // [9] => background_preset
824
+ // [10] => background_position_x
825
+ // [11] => background_position_y
826
+ // [12] => background_size
827
+ // [13] => background_repeat
828
+ // [14] => background_attachment
829
+ // [15] => colorscheme
830
+ // [16] => colorscheme_hue
831
+ // [17] => page_layout
832
+ // [18] => panel_1
833
+ // [19] => panel_2
834
+ // [20] => panel_3
835
+ // [21] => panel_4
836
+ // )
837
+
838
+ // )
839
+ function ctx_setup_option_filters() {
840
+ $filtrable_candidates = apply_filters( 'ctx_filtrable_candidates_before_setting_up_option_filters', ctx_get_filtrable_candidates() );
841
+
842
+ if ( empty( $filtrable_candidates ) || ! is_array( $filtrable_candidates ) )
843
+ return;
844
+
845
+ if ( ! ctx_we_can_contextualize_wp_core_options() && ! ctx_we_can_contextualize_not_wp_core_options() )
846
+ return;
847
+
848
+ $raw_theme_mods = get_theme_mods();
849
+
850
+ $theme_mods = $raw_theme_mods;
851
+ $filtrable_candidates_for_simple_theme_mods = $filtrable_candidates['simple_theme_mods'];
852
+ // Make sure that all filtrable candidates are present in the theme_mod_list, so we can filter them.
853
+ // Solves the problem of for example a header_image contextualized locally, but not set yet globally, and for which the key has not been written in the wp theme_mod options
854
+ // In this case, without adding the header_image key to the db theme mod array, we would not be able to set the contextualized value when looping on the db theme mod values.
855
+ foreach ( $filtrable_candidates_for_simple_theme_mods as $theme_mod_id ) {
856
+ if ( ! array_key_exists( $theme_mod_id, $theme_mods ) ) {
857
+ $theme_mods[ $theme_mod_id ] = null;
858
+ }
859
+ }
860
+
861
+ $ctx_get_wp_core_eligible_settings = ctx_get_wp_core_eligible_settings();
862
+
863
+ foreach ( $filtrable_candidates as $group_type => $candidates ) {
864
+ if( empty( $group_type ) )
865
+ continue;
866
+
867
+ switch ( $group_type ) {
868
+ // there can be wp core option like blogname, posts_per_page
869
+ // and themes and plugin options
870
+ case 'options':
871
+ foreach ( $candidates as $opt_name ) {
872
+ // apply user global contx options
873
+ if ( ! ctx_we_can_contextualize_wp_core_options() && in_array( $opt_name, $ctx_get_wp_core_eligible_settings ) )
874
+ continue;
875
+ if ( ! ctx_we_can_contextualize_not_wp_core_options() && ! in_array( $opt_name, $ctx_get_wp_core_eligible_settings ) )
876
+ continue;
877
+
878
+ // filters documented in wp-includes/option.php
879
+ add_filter( "option_{$opt_name}", array( $this, 'ctx_filter_for_simple_options' ), PHP_INT_MAX, 2 );
880
+
881
+ // When customizing, the "pre_option{}" filter is used by non multidimensional options, like blogname, blogdescription.
882
+ // @see wp-includes/class-wp-customize-setting.php
883
+ // Fixes https://github.com/presscustomizr/hueman-pro-addons/issues/154
884
+ $skope_namespace = isset( $GLOBALS['czr_skope_namespace'] ) ? $GLOBALS['czr_skope_namespace'] : '';
885
+ $skp_is_customizing_fn = $skope_namespace . 'skp_is_customizing';
886
+ if ( function_exists( $skp_is_customizing_fn ) && $skp_is_customizing_fn() ) {
887
+ add_filter( "pre_option_{$opt_name}", array( $this, 'ctx_filter_for_simple_options' ), PHP_INT_MAX, 2 );
888
+ }
889
+ }
890
+ break;
891
+ // there are no wp core multidimensional options
892
+ // this can be only themes or plugins options
893
+ case 'multidim_options':
894
+ if ( ctx_we_can_contextualize_not_wp_core_options() ) {
895
+ foreach ( $candidates as $opt_group => $opt_names ) {
896
+ // filter documented in wp-includes/option.php
897
+ add_filter( "option_{$opt_group}", array( $this, 'ctx_filter_for_multidim_options' ), PHP_INT_MAX, 4 );
898
+ // this action allows us to set filters for the Hueman theme options
899
+ do_action( "ctx_set_filters_for_opt_group___{$opt_group}", $opt_names );
900
+ }
901
+ }
902
+ break;
903
+ // there can be default wp core options like header_image, custom_logo, ...
904
+ // there can be theme_mods registered by a theme or plugin
905
+ case 'simple_theme_mods':
906
+ $theme_slug = ctx_get_parent_theme_slug();
907
+ // filter documented in wp-includes/option.php
908
+ add_filter( "option_theme_mods_{$theme_slug}", array( $this, 'ctx_filter_for_all_theme_mods' ), PHP_INT_MAX, 4 );
909
+
910
+ // We also need to filter each single theme mod when they are not yet written in the theme_mod option but are candidate for skopifization
911
+ // For example, the header_textcolor, has not been customized globally yet, and is therefore not written in the db option theme_mods_{$stylesheet}
912
+ // But it's been contextualized on home.
913
+ // Without this single theme mod filter, the contextualization would not be displayed
914
+ // filter documented in wp-includes/theme.php
915
+ foreach ( $candidates as $opt_name ) {
916
+ // apply user global contx options
917
+ if ( ! ctx_we_can_contextualize_wp_core_options() && in_array( $opt_name, $ctx_get_wp_core_eligible_settings ) )
918
+ continue;
919
+ if ( ! ctx_we_can_contextualize_not_wp_core_options() && ! in_array( $opt_name, $ctx_get_wp_core_eligible_settings ) )
920
+ continue;
921
+
922
+ // When customizing, the "theme_mod_{}" filter is used by non multidimensional options, like header_image.
923
+ // @see wp-includes/class-wp-customize-setting.php
924
+ // Fixes https://github.com/presscustomizr/hueman-pro-addons/issues/154
925
+ // On front it is also used.
926
+ // $skope_namespace = isset( $GLOBALS['czr_skope_namespace'] ) ? $GLOBALS['czr_skope_namespace'] : '';
927
+ // $skp_is_customizing_fn = $skope_namespace . 'skp_is_customizing';
928
+ // if ( function_exists( $skp_is_customizing_fn ) && $skp_is_customizing_fn() ) {
929
+ // if ( array_key_exists( $opt_name, $theme_mods ) ) {
930
+ // add_filter( "theme_mod_{$opt_name}", array( $this, 'ctx_filter_for_single_theme_mod' ), PHP_INT_MAX, 1 );
931
+ // }
932
+ // }
933
+ if ( array_key_exists( $opt_name, $theme_mods ) ) {
934
+ add_filter( "theme_mod_{$opt_name}", array( $this, 'ctx_filter_for_single_theme_mod' ), PHP_INT_MAX, 1 );
935
+ }
936
+ }
937
+ break;
938
+ case 'multidim_theme_mods':
939
+ // if ( ctx_we_can_contextualize_wp_core_options() ) {
940
+
941
+ // }
942
+ break;
943
+ }//switch
944
+ }//foreach
945
+
946
+ // Custom css
947
+ // apply user global contx options
948
+ if ( ctx_we_can_contextualize_wp_core_options() ) {
949
+ add_filter( 'wp_get_custom_css', array( $this, 'ctx_filter_for_custom_css' ), PHP_INT_MAX, 2 );
950
+ }
951
+
952
+ do_action( 'contextualizer_options_filters_setup');
953
+ }
954
+
955
+ // hook : wp_get_custom_css
956
+ function ctx_filter_for_custom_css( $css, $stylesheet ) {
957
+ return ctx_get_opt_val( $css, "custom_css[{$stylesheet}]" );
958
+ }
959
+
960
+ /////////// TEST
961
+ // $theme_slug = ctx_get_parent_theme_slug();
962
+ // add_filter( "option_theme_mods_nav_menu_locations", function( $original_theme_mods ) {
963
+
964
+ // return $original_theme_mods;
965
+ // }, PHP_INT_MAX, 4 );
966
+ //// /TEST
967
+
968
+
969
+ //hook : "option_theme_mods_{$theme_slug}"
970
+ function ctx_filter_for_all_theme_mods( $original_theme_mods, $theme_mod_opt_name ) {
971
+ if ( ! empty( $this -> cached_skopified_theme_mods ) )
972
+ return $this -> cached_skopified_theme_mods;
973
+
974
+ $new_theme_mods = $original_theme_mods;
975
+
976
+ $all_filtrable_candidates = ctx_get_filtrable_candidates();
977
+
978
+ $filtrable_candidates_for_simple_theme_mods = $all_filtrable_candidates['simple_theme_mods'];
979
+ $ctx_get_wp_core_eligible_settings = ctx_get_wp_core_eligible_settings();
980
+
981
+ // Make sure that all filtrable candidates are present in the theme_mod_list, so we can filter them.
982
+ // Solves the problem of for example a header_image contextualized locally, but not set yet globally, and for which the key has not been written in the wp theme_mod options
983
+ // In this case, without adding the header_image key to the db theme mod array, we would not be able to set the contextualized value when looping on the db theme mod values.
984
+ foreach ( $filtrable_candidates_for_simple_theme_mods as $theme_mod_id ) {
985
+ if ( ! array_key_exists( $theme_mod_id, $original_theme_mods ) ) {
986
+ $original_theme_mods[ $theme_mod_id ] = null;
987
+ }
988
+ }
989
+
990
+
991
+ foreach ( $original_theme_mods as $opt_name => $original_opt_val ) {
992
+ if ( 'nav_menu_locations' === $opt_name && ctx_we_can_contextualize_wp_core_options() ) {
993
+ $new_theme_mods[ $opt_name ] = $this -> ctx_get_skopified_nav_menu_locations( $original_opt_val );
994
+ } else {
995
+ // the option has to be part of the filtrable candidates
996
+ if ( ! in_array( $opt_name, $filtrable_candidates_for_simple_theme_mods ) )
997
+ continue;
998
+
999
+ // apply user global contx options
1000
+ if ( ! ctx_we_can_contextualize_wp_core_options() && in_array( $opt_name, $ctx_get_wp_core_eligible_settings ) )
1001
+ continue;
1002
+ if ( ! ctx_we_can_contextualize_not_wp_core_options() && ! in_array( $opt_name, $ctx_get_wp_core_eligible_settings ) )
1003
+ continue;
1004
+
1005
+ $new_theme_mods[ $opt_name ] = ctx_get_opt_val( $original_opt_val, $opt_name );
1006
+ }
1007
+ }
1008
+
1009
+ // Cache them now
1010
+ $this -> cached_skopified_theme_mods = $new_theme_mods;
1011
+ return $new_theme_mods;
1012
+ }
1013
+
1014
+
1015
+ function ctx_get_skopified_nav_menu_locations( $nav_menu_locations = array() ) {
1016
+ if ( ! is_array( $nav_menu_locations ) )
1017
+ return $nav_menu_locations;
1018
+
1019
+ $registered_nav_menus = get_registered_nav_menus();
1020
+ $new_nav_menu_locations = array();
1021
+ foreach( $registered_nav_menus as $menu_location => $menu_label ) {
1022
+ $sitewide_value = array_key_exists( $menu_location, $nav_menu_locations ) ? $nav_menu_locations[ $menu_location ] : 0;//<= 0 is the value assigned to an empty location by WordPress
1023
+ $new_nav_menu_locations[$menu_location] = ctx_get_opt_val( $sitewide_value, "nav_menu_locations[{$menu_location}]" );
1024
+ }
1025
+ return $new_nav_menu_locations;
1026
+ }
1027
+
1028
+
1029
+
1030
+ //hook : theme_mod_{$_opt_name}
1031
+ function ctx_filter_for_single_theme_mod( $original_opt_val ) {
1032
+ //extract theme_mod name
1033
+ $_filter = current_filter();
1034
+ $_ptrn = 'theme_mod_';
1035
+ if ( $_ptrn !== substr( $_filter, 0, strlen($_ptrn) ) ) {
1036
+ return $original_opt_val;
1037
+ }
1038
+
1039
+ $_mod_name = str_replace($_ptrn, '', $_filter);
1040
+
1041
+ $all_filtrable_candidates = ctx_get_filtrable_candidates();
1042
+ $filtrable_candidates_for_simple_theme_mods = $all_filtrable_candidates['simple_theme_mods'];
1043
+ // the option has to be part of the filtrable candidates
1044
+ if ( ! in_array( $_mod_name, $filtrable_candidates_for_simple_theme_mods ) ) {
1045
+ return $original_opt_val;
1046
+ }
1047
+ if ( 'nav_menu_locations' === $_mod_name && ctx_we_can_contextualize_wp_core_options() ) {
1048
+ return $this -> ctx_get_skopified_nav_menu_locations( $original_opt_val );
1049
+ }
1050
+ //the option group is null
1051
+ return ctx_get_opt_val( $original_opt_val, $_mod_name );
1052
+ }
1053
+
1054
+
1055
+ // hook : "option_{$opt_group}"
1056
+ //$original_opt_val is an array
1057
+ function ctx_filter_for_multidim_options( $original_options, $opt_multidim_group ) {
1058
+ if ( ! is_array( $original_options ) || empty( $original_options ) )
1059
+ return array();
1060
+
1061
+ $new_options = $original_options;
1062
+ foreach ( $original_options as $opt_name => $original_opt_val ) {
1063
+ $new_options[$opt_name] = ctx_get_opt_val( $original_opt_val, $opt_name, $opt_multidim_group );
1064
+ }
1065
+
1066
+ return $new_options;
1067
+ }
1068
+
1069
+ // hook : "option_{$opt_name}"
1070
+ function ctx_filter_for_simple_options( $original_opt_val , $opt_name ) {
1071
+ //falls back to global
1072
+ //$_new_val = $original_opt_val;
1073
+
1074
+ //IF PREVIEWING
1075
+ // if ( ctx_is_customize_preview_frame() && ! ctx_is_previewing_live_changeset() ) {
1076
+ // $_new_val = $this -> _get_sanitized_preview_val( $_opt_val, $opt_name );
1077
+ // } else {
1078
+ // //@param = value, option name, skope, inherits
1079
+ // $_new_val = $this -> _get_front_end_val( $_opt_val, $opt_name, 'local', true );
1080
+ // }
1081
+ return ctx_get_opt_val( $original_opt_val, $opt_name );
1082
+ }
1083
+
1084
+ }//class
1085
+ endif;
1086
+
1087
+ ?><?php
1088
+ ///////////////////////////////////////////////////////////////
1089
+ // SKOP OPTION CLASS
1090
+ if ( ! class_exists( 'Contx_Customize_Register' ) ) :
1091
+ class Contx_Customize_Register extends Contx_Options {
1092
+ //static $instance;
1093
+
1094
+ // Fired in the constructor
1095
+ function ctx_schedule_customize_register_actions() {
1096
+ add_action( 'customize_register', array( $this, 'ctx_customizer_load_setting_class' ) );
1097
+ add_action( 'customize_register', array( $this, 'ctx_register_contextualizer_settings_controls_section' ) );
1098
+ // Refresh the filtrable candidates every 24 Hours
1099
+ if ( ! get_transient( 'ctx_updated_filtrable_candidates_collection') || isset( $_GET['refresh_filtrable_candidates'] ) ) {
1100
+ // when all settings have been registered, let's loop through them and record the filtrable candidate in an option
1101
+ add_action( 'customize_register', array( $this, 'ctx_set_filtrable_candidates' ), PHP_INT_MAX );
1102
+ }
1103
+
1104
+ }
1105
+
1106
+ // hook : customize_register
1107
+ function ctx_customizer_load_setting_class( $wp_customize ) {
1108
+ // Load the skoped settings class
1109
+ require_once( dirname( __FILE__ ) . '/customizer/contx_setting_class.php' );
1110
+ }
1111
+
1112
+ /////////////////////////////////////////////////////////////////
1113
+ // <SET FILTRABLE CANDIDATES>
1114
+ // hook : customize_register
1115
+ // What to filter ?
1116
+ // WP Core
1117
+ // theme_mods
1118
+ // theme_option
1119
+
1120
+ // skip settings
1121
+ // - in the excluded list
1122
+ // - starting with widget_*
1123
+ // - starting with sidebars_*
1124
+ // - starts with nav_menu* but not nav_menu_location
1125
+ function ctx_set_filtrable_candidates( $wp_customize ) {
1126
+
1127
+ // $filtrable_candidates are formed this way :
1128
+ // array(
1129
+ // 'options' => array(),
1130
+ // 'multidim_options' => array(),
1131
+ // 'multidim_theme_mods' => array(),
1132
+ // 'simple_theme_mods' => array(),
1133
+ // );
1134
+ $filtrable_candidates = $this -> default_filtrable_candidates_model;
1135
+
1136
+ foreach ( $wp_customize -> settings() as $set ) {
1137
+ // Is the setting id authorized ?
1138
+ if ( in_array( $set -> id , ctx_get_excluded_settings() ) )
1139
+ continue;
1140
+ if ( 'widget_' == substr( $set -> id, 0, strlen( 'widget_' ) ) )
1141
+ continue;
1142
+ if ( 'sidebars_' == substr( $set -> id, 0, strlen( 'sidebars_' ) ) )
1143
+ continue;
1144
+ if ( 0 !== strpos( $set -> id , 'nav_menu_locations') && 'nav_menu' == substr( $set -> id, 0, strlen( 'nav_menu' ) ) )
1145
+ continue;
1146
+ // shall not start with "skp__"
1147
+ if ( 0 === strpos( $set -> id, NIMBLE_SKOPE_ID_PREFIX ) )
1148
+ continue;
1149
+
1150
+ //Is the setting type authorized ?
1151
+ if ( ! in_array( $set -> type , array( 'theme_mod', 'option' ) ) )
1152
+ continue;
1153
+
1154
+ // Is the control type authorized ?
1155
+ // => we assume that the control has the same id as the setting
1156
+ if ( ! is_object( $wp_customize -> get_control( $set -> id ) ) || ! in_array( $wp_customize -> get_control( $set -> id ) -> type, ctx_get_authorized_setting_types() ) )
1157
+ continue;
1158
+
1159
+ $setting_keys = preg_split( '/\[/', str_replace( ']', '', $set->id ) );
1160
+ $setting_base = array_shift( $setting_keys );
1161
+
1162
+ // is it a wp option ? Ex : blogname
1163
+ if ( 'option' == $set -> type && empty( $setting_keys ) ) {
1164
+ $filtrable_candidates['options'][] = $set -> id;
1165
+ }
1166
+ // does the id looks like {theme_option_group}[{option_name}] ?
1167
+ // the question is : is it a multidimensional theme setting ?
1168
+ else if ( 'option' == $set -> type && ! empty( $setting_keys ) ) {
1169
+ $multidim_option_name = implode( $setting_keys );
1170
+ //error_log( print_r( implode( $setting_keys ), true ) );
1171
+ if ( array_key_exists( $setting_base, $filtrable_candidates['multidim_options'] ) ) {
1172
+ $filtrable_candidates['multidim_options'][ $setting_base ][] = $multidim_option_name;
1173
+ } else {
1174
+ $filtrable_candidates['multidim_options'][ $setting_base ] = array( $multidim_option_name );
1175
+ }
1176
+ }
1177
+ // is it a multidimensional theme mod ? Ex : nav_menu_location[...]
1178
+ // else if ( 'theme_mod' == $set -> type && ! empty( $setting_keys ) ) {
1179
+ // $multidim_option_name = implode( $setting_keys );
1180
+ // if ( array_key_exists( $setting_base, $filtrable_candidates['multidim_theme_mods'] ) ) {
1181
+ // $filtrable_candidates['multidim_theme_mods'][ $setting_base ][] = $multidim_option_name;
1182
+ // } else {
1183
+ // $filtrable_candidates['multidim_theme_mods'][ $setting_base ] = array( $multidim_option_name );
1184
+ // }
1185
+ // }
1186
+ // is it a simple theme mod ? Ex : header_image
1187
+ else if ( 'theme_mod' == $set -> type && empty( $setting_keys ) ) {
1188
+ $filtrable_candidates['simple_theme_mods'][] = $set -> id;
1189
+ }
1190
+ }
1191
+ // Add the nav_menu_location to the filtrable simple_theme_mods
1192
+ $filtrable_candidates['simple_theme_mods'][] = 'nav_menu_locations';
1193
+
1194
+ // write in db
1195
+ set_theme_mod( 'ctx_filtrable_candidates', $filtrable_candidates );
1196
+ set_transient( 'ctx_updated_filtrable_candidates_collection', true, 60*60*24 );// refreshed every 24 Hours
1197
+ }
1198
+
1199
+ /////////////////////////////////////////////////////////////////
1200
+ // </SET FILTRABLE CANDIDATES>
1201
+
1202
+ // hook : customize_register
1203
+ function ctx_register_contextualizer_settings_controls_section( $wp_customize ) {
1204
+ $wp_customize->add_panel( 'contx_panel', array(
1205
+ 'title' => __( 'Contextualizer', 'text_domain_to_be_replaced' ),
1206
+ 'priority' => PHP_INT_MAX,
1207
+ ) );
1208
+
1209
+ $wp_customize->add_section( 'contx_sec', array(
1210
+ 'title' => __( 'Contextualized Settings', 'text_domain_to_be_replaced' ),
1211
+ 'priority' => 0,
1212
+ 'panel' => 'contx_panel',
1213
+ ) );
1214
+
1215
+
1216
+
1217
+ $multidim_option_prefix = CONTX_OPTION_PREFIX;
1218
+
1219
+ // $wp_customize->add_setting( "{$multidim_option_prefix}[contx_wp_core]", array(
1220
+ // 'default' => 'yes',
1221
+ // 'type' => 'option'
1222
+ // ) );
1223
+
1224
+ // $wp_customize->add_control( "{$multidim_option_prefix}[contx_wp_core]", array(
1225
+ // 'label' => __( 'Contextualize WordPress Core options', 'text_domain_to_be_replaced'),
1226
+ // //'description' => __( 'The New Skope' , 'advanced-customizer'),
1227
+ // 'type' => 'select',
1228
+ // 'choices' => array(
1229
+ // 'yes' => __('Yes', 'hueman'),
1230
+ // 'no' => __('No', 'hueman')
1231
+ // ),
1232
+ // 'section' => 'contx_sec',
1233
+ // ) );
1234
+
1235
+ // $wp_customize->add_setting( "{$multidim_option_prefix}[contx_theme_and_plugins_options]", array(
1236
+ // 'default' => 'yes',
1237
+ // 'type' => 'option'
1238
+ // ) );
1239
+ // $wp_customize->add_control( "{$multidim_option_prefix}[contx_theme_and_plugins_options]", array(
1240
+ // 'label' => __( 'Contextualize theme and plugins options', 'text_domain_to_be_replaced'),
1241
+ // //'description' => __( 'The New Skope' , 'advanced-customizer'),
1242
+ // 'type' => 'select',
1243
+ // 'choices' => array(
1244
+ // 'yes' => __('Yes', 'hueman'),
1245
+ // 'no' => __('No', 'hueman')
1246
+ // ),
1247
+ // 'section' => 'contx_sec',
1248
+ // ) );
1249
+ }
1250
+
1251
+
1252
+ }//class
1253
+ endif;
1254
+
1255
+ ?><?php
1256
+ ///////////////////////////////////////////////////////////////
1257
+ // SKOP OPTION CLASS
1258
+ if ( ! class_exists( 'Contx_Dynamic_Setting_Registration' ) ) :
1259
+ class Contx_Dynamic_Setting_Registration extends Contx_Customize_Register {
1260
+ //static $instance;
1261
+
1262
+ // Fired in the constructor
1263
+ function ctx_schedule_customize_dynamic_setting_args_and_class_filters() {
1264
+ add_filter( 'customize_dynamic_setting_args', array( $this, 'ctx_customizer_dynamic_setting_args' ), 10, 2 );
1265
+ add_filter( 'customize_dynamic_setting_class', array( $this, 'ctx_customizer_dynamic_setting_class' ), 10, 3 );
1266
+ }
1267
+
1268
+ // hook : 'customize_dynamic_setting_args'
1269
+ function ctx_customizer_dynamic_setting_args( $setting_args, $setting_id ) {
1270
+ // shall start with "skp__"
1271
+ // @see js ::setupDynamicSettingControls()
1272
+ if ( 0 !== strpos( $setting_id, NIMBLE_SKOPE_ID_PREFIX ) )
1273
+ return $setting_args;
1274
+ //error_log( 'REGISTERING DYNAMICALLY for setting =>'. $setting_id );
1275
+ return array_merge( $this -> ctx_dynamic_setting_default_data, array(
1276
+ 'default' => array(),//'DEFAULT VALUE for ' . $setting_id,
1277
+ 'sanitize_callback' => array( $this, 'ctx_customize_sanitize_callbacks_before_writing_in_db' )
1278
+ ) );
1279
+ }
1280
+
1281
+ // hook : 'customize_dynamic_setting_class'
1282
+ function ctx_customizer_dynamic_setting_class( $class, $setting_id, $args ) {
1283
+ // shall start with "skp__"
1284
+ // @see js ::setupDynamicSettingControls()
1285
+ if ( 0 !== strpos( $setting_id, NIMBLE_SKOPE_ID_PREFIX ) )
1286
+ return $class;
1287
+ //error_log( 'REGISTERING CLASS DYNAMICALLY for setting =>' . $id );
1288
+ return 'Contx_Customizer_Setting';
1289
+ }
1290
+
1291
+
1292
+ /////////////////////////////////////////////////////////////////
1293
+ // SANITIZATION
1294
+ // The idea is to use the sanitize_callback declared for the corresponding setting
1295
+ // needed for example to save the value with the right format.
1296
+ // Example : header_textcolor can be set from the customizer to #1e73be => this will become 1e73be after sanitization (hash escaped )
1297
+ function ctx_customize_sanitize_callbacks_before_writing_in_db( $value_from_customizer ) {
1298
+ global $wp_customize;
1299
+ $new_values_from_customizer = array();
1300
+ foreach ( $value_from_customizer as $setting_data ) {
1301
+ // Normalize
1302
+ $sanitized_setting_data = wp_parse_args( $setting_data, ctx_get_default_model() );
1303
+
1304
+ // Handle the header_image specific case
1305
+ // the core header_image is saved as an attachment url
1306
+
1307
+ if ( is_object( $wp_customize -> get_setting( $sanitized_setting_data['setting-id'] ) ) ) {
1308
+ $setting = $wp_customize -> get_setting( $sanitized_setting_data['setting-id'] );
1309
+ // is there a sanitize callback ?
1310
+ $we_have_a_callback = false;
1311
+ $sanitize_candidate = $setting -> sanitize_callback;
1312
+ // if array, then it an be either defined as a method of $wp_customize like _sanitize_header_textcolor for example
1313
+ // or as a method of the setting.
1314
+ // => let's check both cases
1315
+ if ( is_array( $sanitize_candidate ) ) {
1316
+ if ( isset( $sanitize_candidate[1] ) && ( method_exists( $setting, $sanitize_candidate[1] ) || method_exists( $wp_customize, $sanitize_candidate[1] ) ) ) {
1317
+ $we_have_a_callback = true;
1318
+ }
1319
+ } else if ( is_string( $setting -> sanitize_callback ) && function_exists( $setting -> sanitize_callback ) ) {
1320
+ $we_have_a_callback = true;
1321
+ }
1322
+ if ( $we_have_a_callback ) {
1323
+ $sanitized_setting_data['value'] = call_user_func_array(
1324
+ $setting -> sanitize_callback,
1325
+ array( $sanitized_setting_data['value'] )
1326
+ );
1327
+ }
1328
+ // is there a sanitize callback ?
1329
+ // error_log( print_r( $setting_sanitize_callback );
1330
+ // if ( method_exists( $setting, $setting -> sanitize_callback ) ) {
1331
+ // $sanitized_setting_data['value'] = call_user_func_array(
1332
+ // $setting_sanitize_callback,
1333
+ // array( $sanitized_setting_data['value'] )
1334
+ // );
1335
+ // }
1336
+ }
1337
+
1338
+ $new_values_from_customizer[] = $sanitized_setting_data;
1339
+ }
1340
+ // error_log( '<IN SANITIZATION AFTER>');
1341
+ // error_log( print_r( $new_values_from_customizer, true ) );
1342
+ // error_log( '</IN SANITIZATION AFTER>');
1343
+ return $new_values_from_customizer;
1344
+ }
1345
+ }//class
1346
+ endif;
1347
+
1348
+ ?><?php
1349
+ ///////////////////////////////////////////////////////////////
1350
+ // SKOP OPTION CLASS
1351
+ if ( ! class_exists( 'Contx' ) ) :
1352
+ final class Contx extends Contx_Dynamic_Setting_Registration {
1353
+ //static $instance;
1354
+
1355
+ // Fired in the constructor
1356
+ function ctx_schedule_loading_customizer_js_css_assets() {
1357
+ // PRINT CUSTOMIZER JAVASCRIPT + LOCALIZED DATA
1358
+ add_action ( 'customize_controls_enqueue_scripts', array( $this, 'ctx_enqueue_controls_js_css' ), 20 );
1359
+ // ADD CONTX SETTING VALUES TO EXPORTED DATA IN THE CUSTOMIZER PREVIEW
1360
+ add_filter( 'skp_json_export_ready_skopes', array( $this, 'ctx_add_skoped_setting_values_to_export' ) );
1361
+ }
1362
+
1363
+
1364
+ /////////////////////////////////////////////////////////////////
1365
+ // hook : 'customize_controls_enqueue_scripts'
1366
+ function ctx_enqueue_controls_js_css() {
1367
+ wp_enqueue_style(
1368
+ 'czr-contextualizer-style',
1369
+ sprintf('%1$s/assets/czr/css/%2$s', CONTX_BASE_URL, 'contextualizer-control.css' ),
1370
+ array( 'customize-controls' ),
1371
+ ( defined('WP_DEBUG') && true === WP_DEBUG ) ? time() : PC_AC_VERSION,
1372
+ $media = 'all'
1373
+ );
1374
+
1375
+ wp_enqueue_script(
1376
+ 'czr-contextualizer-control',
1377
+ sprintf('%1$s/assets/czr/js/%2$s', CONTX_BASE_URL,'contextualizer-control.js'),
1378
+ array( 'customize-controls', 'czr-skope-base', 'jquery', 'underscore'),
1379
+ ( defined('WP_DEBUG') && true === WP_DEBUG ) ? time() : wp_get_theme() -> version,
1380
+ $in_footer = true
1381
+ );
1382
+
1383
+ wp_localize_script(
1384
+ 'czr-contextualizer-control',
1385
+ 'contxLocalizedParams',
1386
+ array(
1387
+ 'skopableSettingsCollectionModel' => $this -> skopable_settings_collection_model,
1388
+ 'unskopableSettings' => ctx_get_excluded_settings(),
1389
+ 'authorizedSettingTypes' => ctx_get_authorized_setting_types(),
1390
+
1391
+ 'dynamicSettingDefaultData' => $this -> ctx_dynamic_setting_default_data,
1392
+ 'dynamicControlDefaultData' => $this -> ctx_dynamic_control_default_data,
1393
+
1394
+ 'defaultModel' => ctx_get_default_model(),
1395
+ 'i18n' => array(
1396
+ 'Confirm the removal of the customizations for' => __('Please confirm the removal of the customizations for', 'text_domain_to_be_replaced'),
1397
+ 'Back to the site wide option' => __( 'Back to the site wide option', 'text_domain_to_be_replaced'),
1398
+ 'Can be contextualized for' => __( 'Can be contextualized for', 'text_domain_to_be_replaced'),
1399
+ 'Is contextualized for' => __('Is contextualized for', 'text_domain_to_be_replaced'),
1400
+ 'this page' => __( 'this page', 'text_domain_to_be_replaced'),
1401
+ 'This setting is already customized for this context.' => __( 'This setting is already customized for this context', 'text_domain_to_be_replaced'),
1402
+ 'All settings have already been contextualized for this page.' => __( 'All settings have already been contextualized for this page.', 'text_domain_to_be_replaced'),
1403
+ 'Contextual' => __('Contextual', 'text_domain_to_be_replaced'),
1404
+
1405
+ 'This setting is already contextualized locally. The local customization will be applied in priority in this context.' => __( 'This setting is already contextualized locally. The local customization will be applied in priority in this context.', 'text_domain_to_be_replaced' ),
1406
+ 'When the setting is already customized specifically for' => __( 'When the setting is already customized specifically for', 'text_domain_to_be_replaced'),
1407
+ 'Reset' => __('Reset', 'text_domain_to_be_replaced'),
1408
+
1409
+
1410
+ 'this local value will be applied in priority.' => __('this local value will be applied in priority.', 'text_domain_to_be_replaced'),
1411
+ 'When the setting is contextualized, the contextual value applies in priority.' => __('When the setting is contextualized, the contextual value applies in priority.', 'text_domain_to_be_replaced'),
1412
+
1413
+ 'in context' => __('in context', 'text_domain_to_be_replaced'),
1414
+
1415
+ // Hueman specifics
1416
+ 'Body Background' => __('Body Background', 'text_domain_to_be_replaced'),
1417
+
1418
+ 'Header Background / Slider' => __('Header Background / Slider', 'text_domain_to_be_replaced'),
1419
+ 'Full Width Header Background / Slider' => __('Full Width Header Background / Slider', 'text_domain_to_be_replaced'),
1420
+ 'Display a full width header background' => __('Display a full width header background', 'text_domain_to_be_replaced'),
1421
+
1422
+ 'Yes' => __('Yes', 'text_domain_to_be_replaced'),
1423
+ 'No' => __('No', 'text_domain_to_be_replaced'),
1424
+ 'Inherit' => __('Inherit', 'text_domain_to_be_replaced'),
1425
+
1426
+ 'jump to the contextual settings' => __('jump to the contextual settings', 'text_domain_to_be_replaced')
1427
+
1428
+ )
1429
+ )
1430
+ );
1431
+ }
1432
+
1433
+
1434
+ // $skopes = array(
1435
+ // array(
1436
+ // 'title' => skp_get_skope_title( array( 'level' => 'local', 'meta_type' => $_meta_type ) ),
1437
+ // 'long_title' => skp_get_skope_title( array( 'level' => 'local', 'meta_type' => $_meta_type, 'long' => true ) ),
1438
+ // 'ctx_title' => skp_get_skope_title( array( 'level' => 'local', 'meta_type' => $_meta_type, 'long' => true, 'is_prefixed' => false ) ),
1439
+ // 'skope' => 'local',
1440
+ // 'level' => skp_get_skope(),
1441
+ // 'obj_id' => skp_get_skope('id'),
1442
+ // 'skope_id' => ctx_get_skope_id( 'local' )
1443
+ // ),
1444
+ // array( ... )
1445
+ // array( ... )
1446
+ // )
1447
+ // hook : skp_json_export_ready_skopes
1448
+ function ctx_add_skoped_setting_values_to_export( $skopes ) {
1449
+ if ( ! is_array( $skopes ) ) {
1450
+ error_log( 'ctx_add_skoped_setting_values_to_export => the filtered skopes must be an array' );
1451
+ }
1452
+ $new_skopes = array();
1453
+ foreach ( $skopes as $skp_data ) {
1454
+ if ( 'global' == $skp_data['skope'] ) {
1455
+ $new_skopes[] = $skp_data;
1456
+ continue;
1457
+ }
1458
+
1459
+ // add the values for local and group
1460
+ $skp_data[ 'values' ] = ctx_get_skoped_settings( ctx_get_skope_id( $skp_data['skope'] ) );
1461
+ $new_skopes[] = $skp_data;
1462
+ }
1463
+
1464
+ // error_log( '<////////////////////$new_skopes>' );
1465
+ // error_log( print_r($new_skopes, true ) );
1466
+ // error_log( '</////////////////////$new_skopes>' );
1467
+
1468
+ return $new_skopes;
1469
+ }
1470
+ }//class
1471
+ endif;
1472
+
1473
+ ?>
contextualizer/customizer/contx_setting_class.php ADDED
@@ -0,0 +1,156 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * This handles validation, sanitization and saving of the value.
5
+ */
6
+
7
+ /**
8
+ *
9
+ *
10
+ * @see WP_Customize_Setting
11
+ */
12
+ final class Contx_Customizer_Setting extends WP_Customize_Setting {
13
+
14
+ /**
15
+ * The setting type.
16
+ * @var string
17
+ */
18
+ public $type = 'ac_skoped';
19
+ public $transport = 'refresh';
20
+
21
+ /**
22
+ * Capability required to edit this setting.
23
+ * @var string
24
+ */
25
+ public $capability = 'edit_theme_options';
26
+
27
+ /**
28
+ * Stylesheet
29
+ *
30
+ * @var string
31
+ */
32
+ public $stylesheet = '';
33
+
34
+ /**
35
+ * constructor.
36
+ *
37
+ * @throws Exception If the setting ID does not match the pattern `contx__`.
38
+ *
39
+ * @param WP_Customize_Manager $manager The Customize Manager class.
40
+ * @param string $id An specific ID of the setting. Can be a
41
+ * theme mod or option name.
42
+ * @param array $args Setting arguments.
43
+ */
44
+ public function __construct( $manager, $id, $args = array() ) {
45
+ parent::__construct( $manager, $id, $args );
46
+ //shall start with "skp__"
47
+ if ( 0 !== strpos( $this->id_data['base'], NIMBLE_SKOPE_ID_PREFIX ) ) {
48
+ throw new Exception( 'Contx_Customizer_Setting => Expected ' . NIMBLE_SKOPE_ID_PREFIX . ' id_base.' );
49
+ }
50
+ if ( 1 !== count( $this->id_data['keys'] ) || empty( $this->id_data['keys'][0] ) ) {
51
+ throw new Exception( 'Contx_Customizer_Setting => Expected single stylesheet key.' );
52
+ }
53
+ $this->stylesheet = $this->id_data['keys'][0];
54
+ }
55
+
56
+ /**
57
+ * Add filter to preview post value.
58
+ *
59
+ * @return bool False when preview short-circuits due no change needing to be previewed.
60
+ */
61
+ public function preview() {
62
+ if ( $this->is_previewed ) {
63
+ return false;
64
+ }
65
+ $this->is_previewed = true;
66
+ add_filter( 'ctx_get_skoped_settings', array( $this, 'filter_previewed_ctx_get_skoped_settings' ), 9, 3 );
67
+ return true;
68
+ }
69
+
70
+ /**
71
+ * Filter `ctx_get_skoped_settings` for applying the customized value.
72
+ *
73
+ * This is used in the preview when `ctx_get_skoped_settings()` is called for rendering the styles.
74
+ *
75
+ * @see ctx_get_skoped_settings()
76
+ *
77
+ * @param array $skoped_settings Original
78
+ * @param string $stylesheet Current stylesheet.
79
+ * @return array of skope settings
80
+ */
81
+ public function filter_previewed_ctx_get_skoped_settings( $skoped_settings, $skope_id, $stylesheet ) {
82
+ if ( $skope_id === $this->id_data['base'] && $stylesheet === $this->stylesheet ) {
83
+ $customized_value = $this->post_value( null );
84
+ if ( ! is_null( $customized_value ) ) {
85
+ $skoped_settings = $customized_value;
86
+ }
87
+ }
88
+ return $skoped_settings;
89
+ }
90
+
91
+ /**
92
+ * Fetch the value of the setting. Will return the previewed value when `preview()` is called.
93
+ *
94
+ * @since 4.7.0
95
+ * @see WP_Customize_Setting::value()
96
+ *
97
+ * @return string
98
+ */
99
+ public function value() {
100
+ if ( $this->is_previewed ) {
101
+ $post_value = $this->post_value( null );
102
+ if ( null !== $post_value ) {
103
+ return $post_value;
104
+ }
105
+ }
106
+ $id_base = $this->id_data['base'];
107
+
108
+ error_log('id_base in setting class => ' . $this->id_data['base'] );
109
+
110
+ $value = '';
111
+ $post = ctx_get_skope_post( $this->id, $this->stylesheet );
112
+ if ( $post ) {
113
+ $value = $post->post_content;
114
+ }
115
+ if ( empty( $value ) ) {
116
+ $value = $this->default;
117
+ }
118
+
119
+ /** This filter is documented in wp-includes/class-wp-customize-setting.php */
120
+ $value = apply_filters( "customize_value_{$id_base}", $value, $this );
121
+
122
+ return $value;
123
+ }
124
+
125
+
126
+ /**
127
+ * Store the $skoped_settings value in the skp-post-type custom post type for the stylesheet.
128
+ *
129
+ * @since 4.7.0
130
+ *
131
+ * @param array $skoped_settings The input value.
132
+ * @return int|false The post ID or false if the value could not be saved.
133
+ */
134
+ public function update( $skoped_settings ) {
135
+ if ( empty( $skoped_settings ) ) {
136
+ $skoped_settings = '';
137
+ }
138
+
139
+ $r = ctx_update_skope_post( $skoped_settings, array(
140
+ 'stylesheet' => $this->stylesheet,
141
+ 'skope_id' => $this->id_data['base']
142
+ ) );
143
+
144
+ if ( $r instanceof WP_Error ) {
145
+ return false;
146
+ }
147
+ $post_id = $r->ID;
148
+
149
+ // Cache post ID in theme mod for performance to avoid additional DB query.
150
+ if ( $this->manager->get_stylesheet() === $this->stylesheet ) {
151
+ set_theme_mod( $this->id_data['base'], $post_id );
152
+ }
153
+
154
+ return $post_id;
155
+ }
156
+ }
ha-fire.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Hueman Addons
4
  * Plugin URI: https://presscustomizr.com
5
  * Description: Hueman Theme Addons
6
- * Version: 2.0.16
7
  * Text Domain: hueman-addons
8
  * Author: Press Customizr
9
  * Author URI: https://presscustomizr.com
@@ -50,5 +50,14 @@ if ( ha_is_hueman_pro() ) {
50
  if( ! defined( 'MINIMAL_AUTHORIZED_THEME_VERSION' ) ) define( 'MINIMAL_AUTHORIZED_THEME_VERSION' , '3.3.0' );
51
  if( ! defined( 'IS_HUEMAN_ADDONS' ) ) define( 'IS_HUEMAN_ADDONS' , true );
52
  if( ! defined( 'HU_IS_PRO_ADDONS' ) ) define( 'HU_IS_PRO_ADDONS' , false );
 
 
 
 
 
 
 
 
 
53
  require_once( plugin_dir_path( __FILE__ ) . 'addons/ha-init.php' );
54
  }
3
  * Plugin Name: Hueman Addons
4
  * Plugin URI: https://presscustomizr.com
5
  * Description: Hueman Theme Addons
6
+ * Version: 2.1.0
7
  * Text Domain: hueman-addons
8
  * Author: Press Customizr
9
  * Author URI: https://presscustomizr.com
50
  if( ! defined( 'MINIMAL_AUTHORIZED_THEME_VERSION' ) ) define( 'MINIMAL_AUTHORIZED_THEME_VERSION' , '3.3.0' );
51
  if( ! defined( 'IS_HUEMAN_ADDONS' ) ) define( 'IS_HUEMAN_ADDONS' , true );
52
  if( ! defined( 'HU_IS_PRO_ADDONS' ) ) define( 'HU_IS_PRO_ADDONS' , false );
53
+
54
+ /* ------------------------------------------------------------------------- *
55
+ * Loads Functions
56
+ /* ------------------------------------------------------------------------- */
57
+ require_once( plugin_dir_path( __FILE__ ) . 'addons/ha-functions.php' );
58
+
59
+ /* ------------------------------------------------------------------------- *
60
+ * Loads Base plugin class
61
+ /* ------------------------------------------------------------------------- */
62
  require_once( plugin_dir_path( __FILE__ ) . 'addons/ha-init.php' );
63
  }
inc/czr-base-fmk/assets/css/customizer-czr-content-picker.css ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .czr-sub-set[data-input-type="content_picker"] .customize-control-title {
2
+ width: 100%;
3
+ }
4
+ .czr-sub-set[data-input-type="content_picker"] .czr-input {
5
+ width: 100%;
6
+ }
7
+ .content-item-bar {
8
+ line-height: 1.5em;
9
+ }
10
+
11
+ .czr-sub-set[data-input-type="content_picker"] span.item-title {
12
+ display: block;
13
+ float: left;
14
+ max-width: 80%;
15
+ }
16
+
17
+ .czr-sub-set[data-input-type="content_picker"] span.item-type {
18
+ display: inline-block;
19
+ padding: 0;
20
+ padding-right: 10px;
21
+ float: right;
22
+ }
inc/czr-base-fmk/assets/css/customizer-czr-content-picker.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .czr-sub-set[data-input-type=content_picker] .customize-control-title{width:100%}.czr-sub-set[data-input-type=content_picker] .czr-input{width:100%}.content-item-bar{line-height:1.5em}.czr-sub-set[data-input-type=content_picker] span.item-title{display:block;float:left;max-width:80%}.czr-sub-set[data-input-type=content_picker] span.item-type{display:inline-block;padding:0;padding-right:10px;float:right}
inc/czr-base-fmk/assets/css/czr-ccat-control-base.css ADDED
@@ -0,0 +1,2421 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* OVERRIDE WP CUSTOMIZER */
2
+ /* LINKS */
3
+ .wp-customizer a {
4
+ color: #000;
5
+ }
6
+ .wp-customizer a:hover, .wp-customizer a:focus {
7
+ color: #0073aa;
8
+ }
9
+
10
+ /* LAYOUT */
11
+ .wp-customizer .wp-full-overlay.expanded {
12
+ margin-left: 440px;
13
+ }
14
+ .wp-customizer .wp-full-overlay-sidebar {
15
+ width: 440px;
16
+ }
17
+ .wp-customizer .wp-full-overlay.collapsed .wp-full-overlay-sidebar {
18
+ margin-left: -440px;
19
+ }
20
+ /*.in-sub-panel #customize-info,
21
+ .in-sub-panel #customize-theme-controls > ul > .accordion-section {
22
+ left: -440px;
23
+ width: 440px;
24
+ }*/
25
+ #customize-theme-controls .control-section.current-panel > h3.accordion-section-title {
26
+ left: -440px;
27
+ }
28
+ .accordion-sub-container.control-panel-content {
29
+ left: 440px;
30
+ }
31
+
32
+
33
+ /* RTL*/
34
+ .rtl.wp-customizer .wp-full-overlay.expanded {
35
+ margin-right: 440px;
36
+ margin-left: 0;
37
+ }
38
+ .rtl.wp-customizer .wp-full-overlay-sidebar {
39
+ width: 440px;
40
+ }
41
+ .rtl.wp-customizer .wp-full-overlay.collapsed .wp-full-overlay-sidebar {
42
+ margin-right: -440px;
43
+ margin-left: 0;
44
+ }
45
+ /*.rtl .in-sub-panel #customize-info,
46
+ .rtl .in-sub-panel #customize-theme-controls > ul > .accordion-section {
47
+ right: -440px;
48
+ width: 440px;
49
+ }*/
50
+ .rtl #customize-theme-controls .control-section.current-panel > h3.accordion-section-title {
51
+ right: -440px;
52
+ }
53
+ .rtl .accordion-sub-container.control-panel-content {
54
+ right: 440px;
55
+ }
56
+
57
+ /* CUSTOM CSS ( since wp 4.7 ) */
58
+ .customize-section-description-container + #customize-control-custom_css:last-child {
59
+ margin: 0;
60
+ width: 100%;
61
+ }
62
+ li#customize-control-custom_css textarea {
63
+ font-size: 13px;
64
+ background: #394143;
65
+ color: #95ff0c;
66
+ min-height: 300px;
67
+ }
68
+
69
+ @media screen and (max-width: 1400px) {
70
+ .wp-customizer .wp-full-overlay.expanded {
71
+ margin-left: 380px;
72
+ }
73
+ .wp-customizer .wp-full-overlay-sidebar {
74
+ width: 380px;
75
+ }
76
+ .wp-customizer .wp-full-overlay.collapsed .wp-full-overlay-sidebar {
77
+ margin-left: -380px;
78
+ }
79
+ /* .in-sub-panel #customize-info,
80
+ .in-sub-panel #customize-theme-controls > ul > .accordion-section {
81
+ left: -380px;
82
+ width: 380px;
83
+ }*/
84
+ #customize-theme-controls .control-section.current-panel > h3.accordion-section-title {
85
+ left: -380px;
86
+ }
87
+ .accordion-sub-container.control-panel-content {
88
+ left: 380px;
89
+ }
90
+
91
+ /* RTL */
92
+ .rtl.wp-customizer .wp-full-overlay.expanded {
93
+ margin-right: 380px;
94
+ margin-left: 0;
95
+ }
96
+ .rtl.wp-customizer .wp-full-overlay-sidebar {
97
+ width: 380px;
98
+ }
99
+ .rtl.wp-customizer .wp-full-overlay.collapsed .wp-full-overlay-sidebar {
100
+ margin-right: -380px;
101
+ margin-left: 0;
102
+ }
103
+ /* .rtl .in-sub-panel #customize-info,
104
+ .rtl .in-sub-panel #customize-theme-controls > ul > .accordion-section {
105
+ right: -380px;
106
+ width: 380px;
107
+ }*/
108
+ .rtl #customize-theme-controls .control-section.current-panel > h3.accordion-section-title {
109
+ right: -380px;
110
+ }
111
+ .rtl .accordion-sub-container.control-panel-content {
112
+ right: 380px;
113
+ }
114
+ }
115
+
116
+ @media screen and (max-width: 979px) {
117
+ .wp-customizer .wp-full-overlay.expanded {
118
+ margin-left: 300px;
119
+ }
120
+ .wp-customizer .wp-full-overlay-sidebar {
121
+ width: 300px;
122
+ }
123
+ .wp-customizer .wp-full-overlay.collapsed .wp-full-overlay-sidebar {
124
+ margin-left: -300px;
125
+ }
126
+ /* .in-sub-panel #customize-info,
127
+ .in-sub-panel #customize-theme-controls > ul > .accordion-section {
128
+ left: -300px;
129
+ width: 300px;
130
+ }*/
131
+ #customize-theme-controls .control-section.current-panel > h3.accordion-section-title {
132
+ left: -300px;
133
+ }
134
+ .accordion-sub-container.control-panel-content {
135
+ left: 300px;
136
+ }
137
+
138
+ /* RTL */
139
+ .rtl.wp-customizer .wp-full-overlay.expanded {
140
+ margin-right: 300px;
141
+ margin-left: 0;
142
+ }
143
+ .rtl.wp-customizer .wp-full-overlay-sidebar {
144
+ width: 300px;
145
+ }
146
+ .rtl.wp-customizer .wp-full-overlay.collapsed .wp-full-overlay-sidebar {
147
+ margin-right: -300px;
148
+ margin-left: 0;
149
+ }
150
+ /* .rtl .in-sub-panel #customize-info,
151
+ .rtl .in-sub-panel #customize-theme-controls > ul > .accordion-section {
152
+ right: -300px;
153
+ width: 300px;
154
+ }*/
155
+ .rtl #customize-theme-controls .control-section.current-panel > h3.accordion-section-title {
156
+ right: -300px;
157
+ }
158
+ .rtl .accordion-sub-container.control-panel-content {
159
+ right: 300px;
160
+ }
161
+ }
162
+
163
+ /* at max-width 640px the wp-full-overlay-sidebar becomes 100% */
164
+ @media screen and (max-width: 640px) {
165
+ .wp-customizer .customize-controls-preview-toggle {
166
+ height: 46px;
167
+ border-bottom: 1px solid #ddd;
168
+ left: 87px;
169
+ }
170
+
171
+ .wp-customizer .wp-full-overlay.expanded {
172
+ margin-left: 0;
173
+ }
174
+
175
+ /* .in-sub-panel #customize-info,
176
+ .in-sub-panel #customize-theme-controls > ul > .accordion-section {
177
+ left: -100%;
178
+ width: 100%;
179
+ }*/
180
+
181
+ #customize-theme-controls .control-section.current-panel > h3.accordion-section-title {
182
+ left: -100%;
183
+ }
184
+ .accordion-sub-container.control-panel-content {
185
+ left: 100%;
186
+ }
187
+
188
+ /* RTL */
189
+ .rtl.wp-customizer .wp-full-overlay.expanded {
190
+ margin-right: 0;
191
+ }
192
+
193
+ /* .rtl .in-sub-panel #customize-info,
194
+ .rtl .in-sub-panel #customize-theme-controls > ul > .accordion-section {
195
+ right: -100%;
196
+ width: 100%;
197
+ left: auto;
198
+ }*/
199
+ .rtl .in-sub-panel #czr-donate-customizer,
200
+ .rtl .in-sub-panel .czr-cta-wrap,
201
+ .rtl #customize-theme-controls .control-section.current-panel > h3.accordion-section-title {
202
+ right: -100%;
203
+ left: auto;
204
+ }
205
+ .rtl .accordion-sub-container.control-panel-content {
206
+ right: 100%;
207
+ }
208
+ }
209
+
210
+
211
+ /* PANELS, SECTIONS and CONTROLS TITLES */
212
+ .wp-customizer .control-section.control-panel .accordion-section-title .panel-title {
213
+ font-size: 24px;
214
+ font-weight: inherit;
215
+ line-height: 30px;
216
+ }
217
+
218
+ .wp-core-ui h3 {
219
+ color: #555;
220
+ }
221
+ .accordion-section-content {
222
+ padding: 10px 10px 15px 20px;
223
+ }
224
+ .widget-action, .handlediv, .item-edit, .sidebar-name-arrow, .accordion-section-title:after {
225
+ color: #00a0d2;
226
+ }
227
+ .control-section.control-panel > .accordion-section-title:after {
228
+ color: #00a0d2;
229
+ }
230
+ .customize-control-title {
231
+ line-height: 19px;
232
+ }
233
+ .customize-control span.customize-control-title:first-child {
234
+ position: relative;
235
+ }
236
+
237
+ /* since v4.3 */
238
+ .wp-customizer #customize-theme-controls .accordion-section-content {
239
+ background: #fff;
240
+ }
241
+ /*.wp-customizer .customize-panel-back {
242
+ height: 60px;
243
+ }*/
244
+ .wp-customizer #customize-controls .customize-info .customize-help-toggle:hover, .wp-customizer #customize-controls .customize-info.open .customize-help-toggle, .wp-customizer #customize-controls .customize-info .customize-help-toggle:focus {
245
+ color:#00a0d2;
246
+ }
247
+ .wp-customizer .customize-screen-options-toggle:focus:before, .wp-customizer #customize-controls .customize-info .customize-help-toggle:focus:before {
248
+ -webkit-box-shadow: 0 0 0 1px #00a0d2;
249
+ box-shadow: 0 0 0 1px #00a0d2;
250
+ -webkit-border-radius: 100%;
251
+ border-radius: 100%;
252
+ }
253
+
254
+ .wp-customizer .menu-item-handle:hover .item-type, .wp-customizer .menu-item-handle:hover .item-edit, .wp-customizer #available-menu-items .menu-item-handle:hover .item-add, .wp-customizer .menu-item-handle:hover{
255
+ color: #00a0d2;
256
+ }
257
+
258
+ .customize-screen-options-toggle:hover, .customize-screen-options-toggle:active, .customize-screen-options-toggle:focus, .active-menu-screen-options .customize-screen-options-toggle, #customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:hover, #customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:active, #customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:focus {
259
+ color: #00a0d2!important;
260
+ }
261
+
262
+ .customize-control input[type="text"] {
263
+ line-height: 23px;
264
+ }
265
+
266
+
267
+ /* CONTROLS */
268
+ li[id*="customize-control-"] {
269
+ margin: 8px 0;
270
+ padding: 2%;
271
+ width: 96%;
272
+ border: 1px solid rgba(221, 221, 221, 0.43);
273
+ box-shadow: 1px 1px 2px 0 rgba(75, 75, 85, 0.2);
274
+ -webkit-box-shadow: 1px 1px 2px 0 rgba(75, 75, 85, 0.2);
275
+ background-color: #fff;
276
+ }
277
+
278
+ /*<@4.9compat>*/
279
+ /* outer section introduced in v4.9 needs to keep its original width */
280
+ #customize-outer-theme-controls li[id*="customize-control-"] {
281
+ width: 100%;
282
+ }
283
+ #customize-outer-theme-controls input[type=checkbox], #customize-outer-theme-controls input[type=radio] {
284
+ float: none;
285
+ min-height: inherit;
286
+ }
287
+ /*</@4.9compat>*/
288
+
289
+ /* GENERAL STYLE */
290
+ .control-section .accordion-section-content {
291
+ overflow-y: auto;
292
+ }
293
+
294
+ .wp-customizer .control-section h3.accordion-section-title {
295
+ padding: 10px 25px 11px 14px;
296
+
297
+ }
298
+ .wp-customizer #customize-controls h3 {
299
+ font-size: 15px;
300
+ font-weight: 400;
301
+ }
302
+
303
+ .control-section .accordion-section-title:after {
304
+ top: 7px;
305
+ }
306
+ .control-section.control-panel .accordion-section-title:after {
307
+ top: 11px;
308
+ -webkit-transition: right .3s ease-in-out, opacity .3s ease-in-out;
309
+ -moz-transition: right .3s ease-in-out, opacity .3s ease-in-out;
310
+ -ms-transition: right .3s ease-in-out, opacity .3s ease-in-out;
311
+ -o-transition: right .3s ease-in-out, opacity .3s ease-in-out;
312
+ transition: right .3s ease-in-out, opacity .3s ease-in-out;
313
+ right: 10px;
314
+ opacity:0.7;
315
+ }
316
+ .rtl .control-section.control-panel .accordion-section-title:after {
317
+ -webkit-transition: left .3s ease-in-out, opacity .3s ease-in-out;
318
+ -moz-transition: left .3s ease-in-out, opacity .3s ease-in-out;
319
+ -ms-transition: left .3s ease-in-out, opacity .3s ease-in-out;
320
+ -o-transition: left .3s ease-in-out, opacity .3s ease-in-out;
321
+ transition: left .3s ease-in-out, opacity .3s ease-in-out;
322
+ left: 10px;
323
+ right: initial;
324
+ }
325
+ #customize-theme-controls .control-section.control-panel h3.accordion-section-title:hover:after , #customize-theme-controls .control-section.control-panel h3.accordion-section-title:focus:after {
326
+ right: 8px;
327
+ opacity:1;
328
+ color: #666!important;
329
+ }
330
+
331
+ .rtl #customize-theme-controls .control-section.control-panel h3.accordion-section-title:hover:after , .rtl #customize-theme-controls .control-section.control-panel h3.accordion-section-title:focus:after {
332
+ left: 6px;
333
+ right: initial;
334
+ }
335
+ /* Overrides WP built in style : hack for nested section arrow */
336
+ #customize-theme-controls .control-section.control-panel>h3.accordion-section-title:focus:after, #customize-theme-controls .control-section.control-panel>h3.accordion-section-title:hover:after, .control-section.control-panel>.accordion-section-title:after {
337
+ background: none!important;
338
+ border: none!important;
339
+ }
340
+
341
+ #customize-theme-controls h3.accordion-section-title {
342
+ /*font-family: "Open Sans", sans-serif;*/
343
+ -webkit-transition: background .1s ease-in-out;
344
+ -moz-transition: background .1s ease-in-out;
345
+ -ms-transition: background .1s ease-in-out;
346
+ -o-transition: background .1s ease-in-out;
347
+ transition: background .1s ease-in-out;
348
+ }
349
+
350
+ /*#customize-theme-controls > .control-section:hover .accordion-section-title::after, #customize-theme-controls .control-section .accordion-section-title:hover::after, #customize-theme-controls .control-section.open .accordion-section-title::after, #customize-theme-controls .control-section .accordion-section-title:focus::after {
351
+ color: #FFF;
352
+ }*/
353
+
354
+
355
+ .customize-control-checkbox label, .customize-control-nav_menu_auto_add label, .customize-control-radio label {
356
+ line-height: 16px;
357
+ margin-left: 0;
358
+ }
359
+
360
+ /* Placeholders Styling for inputs */
361
+ input::-webkit-input-placeholder {
362
+ color:#9A9A9A;
363
+ font-style: italic;
364
+ }
365
+ input:-moz-placeholder { /* Firefox 18- */
366
+ color: #9A9A9A;
367
+ font-style: italic;
368
+ }
369
+ input::-moz-placeholder { /* Firefox 19+ */
370
+ color: #9A9A9A;
371
+ font-style: italic;
372
+ }
373
+ input:-ms-input-placeholder {
374
+ color: #9A9A9A;
375
+ font-style: italic;
376
+ }
377
+
378
+
379
+ .czr-customizr-title {
380
+ /* color: #555; */
381
+ text-transform: uppercase;
382
+ /* text-shadow: 0 1px 0 #FFF; */
383
+ margin: 1em 0em 5px 0em;
384
+ font-size: 15px!important;
385
+ border-bottom: 1px dotted #555;
386
+ padding-bottom: 5px;
387
+ text-align: center;
388
+ }
389
+ h3.czr-customizr-title::before {
390
+ content: '\00b7';
391
+ padding-right: 3px;
392
+ }
393
+ h3.czr-customizr-title::after {
394
+ content: '\00b7';
395
+ padding-left: 3px;
396
+ }
397
+ .czr-after-button {
398
+ border-color: white;
399
+ margin-top:15px;
400
+ }
401
+ .czr-emphasize {
402
+ line-height: 1.2em;
403
+ color: #2E2E2E;
404
+ }
405
+ i.czr-notice {
406
+ display: block;
407
+ clear: both;
408
+ }
409
+ span.czr-notice {
410
+ color: #313131;
411
+ font-size:12px;
412
+ font-style: italic;
413
+ clear: both;
414
+ display: block;
415
+ line-height: 18px;
416
+ }
417
+ .czr-customizer-separator-invisible {
418
+ border:none;
419
+ margin-top:15px;
420
+ }
421
+ .czr-skin-gen-label {
422
+ float: left;
423
+ }
424
+ .czr-skin-gen-color-picker {
425
+ float: right;
426
+ }
427
+ .czr-number-label {
428
+ float: left;
429
+ }
430
+ .czr-number-input {
431
+ float: right;
432
+ }
433
+ .czr-check-label {
434
+ float: left;
435
+ max-width: 85%;
436
+ }
437
+ /* RTL position fix */
438
+ .rtl .czr-check-label {
439
+ float: right;
440
+ }
441
+ input[type=checkbox], input[type=radio] {
442
+ float: right;
443
+ min-height: 18px;
444
+ }
445
+ .czr-font-select {
446
+ float: left;
447
+ }
448
+
449
+ /* CUSTOM CSS TEXT AREA */
450
+ li#customize-control-tc_theme_options-tc_custom_css textarea {
451
+ font-size: 14px;
452
+ background: #394143;
453
+ color: #E2E728;
454
+ min-height: 300px;
455
+ }
456
+
457
+
458
+
459
+
460
+
461
+
462
+
463
+
464
+
465
+
466
+
467
+
468
+
469
+ .customize-control .czr-navigate-to-post-list {
470
+ color: #00a0d2;
471
+ font-weight: bold;
472
+ float: left;
473
+ clear: both;
474
+ width: 100%;
475
+ margin-bottom: 8px;
476
+ }
477
+
478
+ .czr-sub-control {
479
+ padding-left: 13%;
480
+ max-width: 87%;
481
+ position: relative;
482
+ }
483
+
484
+ .czr-sub-control:before {
485
+ content: '';
486
+ height: 116%;
487
+ background: #00a0d2;
488
+ width: 2%;
489
+ position: absolute;
490
+ left: 7%;
491
+ }
492
+
493
+ /* Cropped Image style */
494
+ /* Unified with the default cropped_image CSS */
495
+ .customize-control-tc_cropped_image .upload-button {
496
+ float: right;
497
+ }
498
+ .customize-control-tc_cropped_image .remove-button {
499
+ float: left;
500
+ margin-right: 3px;
501
+ }
502
+ .customize-control-tc_cropped_image .actions {
503
+ margin-bottom: 32px;
504
+ }
505
+ .customize-control-tc_cropped_image .current {
506
+ margin-bottom: 8px;
507
+ }
508
+ .customize-control-tc_cropped_image .upload-button,
509
+ .customize-control-tc_cropped_image .remove-button {
510
+ white-space: normal;
511
+ width: 48%;
512
+ height: auto;
513
+ }
514
+
515
+ .customize-control-tc_cropped_image .current .container {
516
+ min-height: 40px;
517
+ overflow: hidden;
518
+ border: 1px solid #eee;
519
+ -webkit-border-radius: 2px;
520
+ border-radius: 2px;
521
+ }
522
+ .customize-control-tc_cropped_image img {
523
+ width: 100%;
524
+ -webkit-border-radius: 2px;
525
+ border-radius: 2px;
526
+ }
527
+ .customize-control-tc_cropped_image .inner {
528
+ line-height: 20px;
529
+ top: 10px;
530
+ }
531
+ /* rtl */
532
+ /* end tc cropped image */
533
+ .rtl .customize-control-tc_cropped_image .upload-button {
534
+ float: left;
535
+ }
536
+ .rtl .customize-control-tc_cropped_image .remove-button {
537
+ float: right;
538
+ margin-left: 3px;
539
+ }
540
+
541
+
542
+
543
+
544
+
545
+ /* LAYOUT SELECTION SPECIFICS */
546
+ .czr-layout-img {
547
+ height: 22px;
548
+ margin-top: 2px;
549
+ outline: 1px solid #FFF;
550
+ }
551
+ .czr-layout-title {
552
+ padding: 0 0px 18px 12px;
553
+ display: inline-block;
554
+ line-height: 0px;
555
+ vertical-align: middle;
556
+ }
557
+
558
+
559
+
560
+ /* MULTI INPUT */
561
+ .customize-control-czr_multi_input {
562
+ width: 96%;
563
+ border: 1px solid #ccc;
564
+ padding: 2%;
565
+ }
566
+ .czr-multi-input-wrapper {
567
+ width: 95%;
568
+ padding: 0px 0% 0 5%;
569
+ }
570
+ .czr-multi-input-wrapper [data-input-type="color"] .czr-input {
571
+ float: left;
572
+ clear: both;
573
+ }
574
+
575
+
576
+
577
+ /* SPECIFIC PANELS AND SECTIONS MARGIN */
578
+ #customize-theme-controls #accordion-panel-czr-footer-panel {
579
+ border-bottom: 1px solid #ddd;
580
+ }
581
+ #customize-theme-controls .control-panel-widgets,
582
+ #customize-theme-controls #accordion-panel-nav_menus,
583
+ #customize-theme-controls #accordion-panel-hu-advanced-panel {
584
+ margin-top: 10px;
585
+ }
586
+ #customize-theme-controls #accordion-panel-hu-header-panel,
587
+ #customize-theme-controls .control-panel-widgets,
588
+ #customize-theme-controls #accordion-panel-nav_menus,
589
+ #customize-theme-controls #accordion-panel-hu-advanced-panel {
590
+ border-top: 1px solid #ddd;
591
+ }
592
+ #customize-theme-controls #accordion-panel-hu-general-panel,
593
+ #customize-theme-controls #accordion-panel-tc-global-panel {
594
+ margin-bottom: 10px;
595
+ }
596
+
597
+ #customize-theme-controls #accordion-section-static_front_page,
598
+ #customize-theme-controls #accordion-section-frontpage_sec {
599
+ margin-bottom: 10px;
600
+ }
601
+
602
+ /* FPU */
603
+ #customize-theme-controls #accordion-section-tc_fpu {
604
+ margin-bottom: 10px;
605
+ }
606
+
607
+ /* WFC */
608
+ #customize-theme-controls #accordion-section-tc_font_customizer_settings {
609
+ margin-bottom: 10px;
610
+ }
611
+
612
+ /* HOME BUTTON */
613
+ #customize-header-actions .customize-controls-close {
614
+ left: 45px;
615
+ }
616
+
617
+ .customize-controls-home, .customize-controls-close {
618
+ top: -1px;
619
+ }
620
+ .customize-controls-home {
621
+ display: block;
622
+ position: absolute;
623
+ left: 0;
624
+ width: 45px;
625
+ height: 41px;
626
+ padding: 0 2px 0 0;
627
+ background: #eee;
628
+ border: none;
629
+ border-top: 4px solid #eee;
630
+ border-right: 1px solid #ddd;
631
+ border-bottom: 1px solid #ddd;
632
+ color: #444;
633
+ text-align: left;
634
+ cursor: pointer;
635
+ text-decoration: none;
636
+ -webkit-transition: color .15s ease-in-out, border-color .15s ease-in-out, background .15s ease-in-out;
637
+ transition: color .1s ease-in-out, border-color .15s ease-in-out, background .15s ease-in-out;
638
+ -webkit-box-sizing: content-box;
639
+ -moz-box-sizing: content-box;
640
+ box-sizing: content-box;
641
+ }
642
+
643
+ .customize-controls-home:before {
644
+ font-size: 17px;
645
+ line-height:45px;
646
+ position: relative;
647
+ top: -4px;
648
+ left: 15px;
649
+ }
650
+ .customize-controls-home:hover {
651
+ background: #fff;
652
+ color: #0073aa;
653
+ border-top-color: #0073aa;
654
+ outline: none;
655
+ -webkit-box-shadow: none;
656
+ box-shadow: none;
657
+ }
658
+ /* rtl: home button */
659
+ .rtl.wp-customizer #customize-header-actions .customize-controls-close {
660
+ right: 45px;
661
+ left: auto;
662
+ }
663
+ .rtl.wp-customizer .customize-controls-home {
664
+ left: auto;
665
+ right: 0;
666
+ border-right: 0;
667
+ border-left: 1px solid #ddd;
668
+ }
669
+
670
+ /* HEADER MENU NOTICE */
671
+ .control-panel-content .hu-menu-notice {
672
+ margin-left: 3%;
673
+
674
+ }
675
+
676
+ /* PANEL SUBTITLE */
677
+ span.czr-panel-subtitle {
678
+ display: block;
679
+ font-size: 12px;
680
+ font-style: italic;
681
+ }
682
+
683
+ /* PRO BLOCK BEFORE SECTIONS AND PANELS TITLE */
684
+ .pro-title-block {
685
+ border: 1px solid #eea236;
686
+ padding: 0px 6px;
687
+ font-size: 0.7em;
688
+ display: inline-block;
689
+ margin-right: 3px;
690
+ bottom: 2px;
691
+ position: relative;
692
+ color: #f0ad4e;
693
+ webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1);
694
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1);
695
+ border-radius: 3px;
696
+ -webkit-user-select: none;
697
+ -moz-user-select: none;
698
+ -ms-user-select: none;
699
+ }
700
+
701
+
702
+ /* GOPRO SECTION STYLE */
703
+ /* for both hueman and customizr */
704
+ #customize-controls .control-section-czr-customize-section-pro .accordion-section-title:hover,
705
+ #customize-controls .control-section-czr-customize-section-pro .accordion-section-title:focus {
706
+ background-color: #fff;
707
+ }
708
+ #customize-theme-controls .control-section-czr-customize-section-pro .accordion-section-title:after {
709
+ content: none;
710
+ }
711
+ #accordion-section-go_pro_sec .accordion-section-title{
712
+ margin: 0 0 15px;
713
+ }
714
+ .control-section-czr-customize-section-pro .accordion-section-title .button {
715
+ font-size: 15px;
716
+ line-height: 24px;
717
+ height: 30px;
718
+ padding: 1px 20px;
719
+ display: inline-block;
720
+ color: #f59000;
721
+ background: #fff;
722
+ border: 1px solid #eea236;
723
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1);
724
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1);
725
+ text-align: center;
726
+ white-space: nowrap;
727
+ vertical-align: middle;
728
+ cursor: pointer;
729
+ border-radius: 3px;
730
+ -webkit-transition: all 0.2s ease-in-out;
731
+ -moz-transition: all 0.2s ease-in-out;
732
+ -o-transition: all 0.2s ease-in-out;
733
+ -ms-transition: all 0.2s ease-in-out;
734
+ transition: all 0.2s ease-in-out;
735
+ -webkit-user-select: none;
736
+ -moz-user-select: none;
737
+ -ms-user-select: none;
738
+ user-select: none;
739
+ margin-top: -4px;
740
+ font-weight: 400;
741
+ margin-left: 8px;
742
+
743
+ }
744
+ .control-section-czr-customize-section-pro .accordion-section-title .button:hover {
745
+ color: #fff;
746
+ background: #ed9c28;
747
+ border-color: #d58512;
748
+ }
749
+ .rtl .control-section-czr-customize-section-pro .accordion-section-title .button {
750
+ margin-left: 0;
751
+ margin-right: 8px;
752
+ }
753
+
754
+ /* END GO PRO SECTION STYLE */
755
+
756
+
757
+ /* <OLD DONATE LINK> */
758
+ .in-sub-panel #czr-donate-customizer,
759
+ .in-sub-panel .czr-cta-wrap {
760
+ left: -450px;
761
+ height: 0;
762
+ }
763
+
764
+
765
+ .rtl .in-sub-panel #czr-donate-customizer,
766
+ .rtl .in-sub-panel .czr-cta-wrap {
767
+ right: -450px;
768
+ }
769
+
770
+
771
+ @media screen and (max-width: 1400px) {
772
+
773
+ .in-sub-panel #czr-donate-customizer,
774
+ .in-sub-panel .czr-cta-wrap {
775
+ left: -380px;
776
+ }
777
+
778
+ .rtl .in-sub-panel #czr-donate-customizer,
779
+ .rtl .in-sub-panel .czr-cta-wrap {
780
+ right: -380px;
781
+ }
782
+ }
783
+
784
+
785
+
786
+
787
+ @media screen and (max-width: 979px) {
788
+
789
+
790
+ .in-sub-panel #czr-donate-customizer,
791
+ .in-sub-panel .czr-cta-wrap {
792
+ left: -300px;
793
+ }
794
+
795
+ .rtl .in-sub-panel #czr-donate-customizer,
796
+ .rtl .in-sub-panel .czr-cta-wrap {
797
+ right: -300px;
798
+ }
799
+ }
800
+
801
+ /* at max-width 640px the wp-full-overlay-sidebar becomes 100% */
802
+ @media screen and (max-width: 640px) {
803
+ .in-sub-panel .czr-cta-wrap,
804
+ .in-sub-panel #czr-donate-customizer {
805
+ left: -100%;
806
+ }
807
+
808
+ .rtl .in-sub-panel #czr-donate-customizer,
809
+ .rtl .in-sub-panel .czr-cta-wrap {
810
+ right: -100%;
811
+ left: auto;
812
+ }
813
+ }
814
+
815
+ @media screen and (min-width: 980px) {
816
+ .wp-customizer .expanded #customize-footer-actions {
817
+ width: 380px;
818
+ }
819
+ }
820
+
821
+ @media screen and (min-width: 1401px) {
822
+ .wp-customizer .expanded #customize-footer-actions {
823
+ width: 440px;
824
+ }
825
+ }
826
+ /* </OLD DONATE LINK> *//*******************************************************************
827
+ * DYNAMIC CONTROLS : sidebars, socials, ...
828
+ ********************************************************************/
829
+ .czr-open-pre-add-new {
830
+ display: block;
831
+ float: left;
832
+ margin: 2% 2% 0%;
833
+ width: 99%;
834
+ padding: 2%;
835
+ background: #3b8dbd;
836
+ opacity: 1;
837
+ color: #fff;
838
+ font-size: 16px;
839
+ cursor: pointer;
840
+ border-width: 1px;
841
+ border-style: solid;
842
+ -webkit-appearance: none;
843
+ -webkit-border-radius: 3px;
844
+ border-radius: 3px;
845
+ white-space: nowrap;
846
+ -webkit-box-sizing: border-box;
847
+ -moz-box-sizing: border-box;
848
+ box-sizing: border-box;
849
+ -webkit-transition: opacity 1s ease-in-out;
850
+ -moz-transition: opacity 1s ease-in-out;
851
+ -ms-transition: opacity 1s ease-in-out;
852
+ -o-transition: opacity 1s ease-in-out;
853
+ transition: opacity 1s ease-in-out;
854
+ }
855
+
856
+ .czr-open-pre-add-new.active {
857
+ background: #646464;
858
+ opacity: 0.5;
859
+ border-radius: 3px 3px 0 0;
860
+ }
861
+
862
+ .czr-single-item {
863
+ padding: 0%;
864
+ /*border: 1px solid #ccc;*/
865
+ margin: 1% 0 0 2%;
866
+ float: left;
867
+ width: 98%;
868
+ -webkit-border-radius: 3px;
869
+ border-radius: 3px;
870
+ -webkit-transition: opacity 1s ease-in-out;
871
+ -moz-transition: opacity 1s ease-in-out;
872
+ -ms-transition: opacity 1s ease-in-out;
873
+ -o-transition: opacity 1s ease-in-out;
874
+ transition: opacity 1s ease-in-out;
875
+ }
876
+ /* Display a thin outline around opened item, for multi-items modules */
877
+ #customize-theme-controls .czr-single-item.open {
878
+ /*border: 1px solid #dedede;*/
879
+ outline: 1px solid #ccc;
880
+ }
881
+ /* Keep the normal border for single module, mono items controls */
882
+ #customize-theme-controls .mono-item-mod .czr-single-item {
883
+ outline: none;
884
+ }
885
+
886
+ .czr-single-item .czr-item-header, .czr-single-item .czr-item-content {
887
+ padding: 1%;
888
+ }
889
+
890
+ .czr-items-wrapper .czr-single-item .czr-builtin-model {
891
+ background: #E1DFDF;
892
+ color: #555
893
+ }
894
+
895
+ .czr-items-wrapper .inactive {
896
+ opacity: 0.6;
897
+ }
898
+
899
+ .czr-item-sort-handle {
900
+ cursor: move;
901
+ }
902
+
903
+ .czr-single-item .czr-item-header {
904
+ position: relative;
905
+ background: #dfdfdf;
906
+ color: white;
907
+ float: left;
908
+ width: 98%;
909
+ -webkit-transition: background .1s ease-in-out;
910
+ -moz-transition: background .1s ease-in-out;
911
+ -ms-transition: background .1s ease-in-out;
912
+ -o-transition: background .1s ease-in-out;
913
+ transition: background .1s ease-in-out;
914
+ }
915
+
916
+
917
+ /* sidebar specifics */
918
+ .czr_widget_areas_module .czr-single-item .czr-custom-model {
919
+ background: #3b8dbd;
920
+ }
921
+ . .czr-single-item .czr-custom-model:hover {
922
+ background: #aaa;
923
+ }
924
+ .czr-single-item .czr-item-header:hover {
925
+ background: #ccc;
926
+ }
927
+
928
+ /* sidebar specifics */
929
+ /*.czr-builtin-model .czr-single-item .czr-item-header {
930
+ background:#3b8dbd;
931
+ }*/
932
+ .czr-items-wrapper .czr-single-item .czr-builtin-model:hover {
933
+ background: #ccc;
934
+ }
935
+
936
+ .czr-move-icon {
937
+ position: absolute;
938
+ top: -2px;
939
+ left: 3px;
940
+ font-size: 10px;
941
+ color: #999;
942
+ }
943
+ .czr-item-title {
944
+ float: left;
945
+ font-size: 17px;
946
+ color: #000;
947
+ padding: 7px;
948
+ width: 67%;
949
+ }
950
+
951
+ .czr-inactive-alert {
952
+ font-size: 12px;
953
+ font-style: italic;
954
+ }
955
+ /* sidebar specifics */
956
+ .czr_widget_areas_module .czr-item-title {
957
+ color: #fff;
958
+ }
959
+
960
+
961
+ .czr-builtin-model .czr-item-title {
962
+ color: #23282d;
963
+ }
964
+ .czr-item-title h4 {
965
+ margin: 0;
966
+ }
967
+ .czr-item-title .fab::before,
968
+ .czr-item-title .fas::before,
969
+ .czr-item-title .far::before {
970
+ padding-right: 2px;
971
+ }
972
+ .czr-item-btns {
973
+ float: right;
974
+ }
975
+ .czr-item-btns a {
976
+ font-size: 17px;
977
+ padding: 7px 5px;
978
+ color: #777;
979
+ -webkit-transition: color .1s ease-in-out;
980
+ -moz-transition: color .1s ease-in-out;
981
+ -ms-transition: color .1s ease-in-out;
982
+ -o-transition: color .1s ease-in-out;
983
+ transition: color .1s ease-in-out;
984
+ }
985
+ .czr-item-btns a:active, .czr-item-btns a:focus {
986
+ outline: none;
987
+ outline: 0;
988
+ -webkit-box-shadow: none;
989
+ box-shadow: none;
990
+ }
991
+ /* sidebar specifics */
992
+ .czr_widget_areas_module .czr-item-btns a {
993
+ color: #fff;
994
+ }
995
+
996
+ .czr-builtin-model .czr-item-btns a {
997
+ color: #555
998
+ }
999
+
1000
+ .czr-builtin-model .czr-item-btns .czr-edit-view:hover, .czr-builtin-model .czr-item-btns .czr-edit-view.active {
1001
+ color: #00a0d2;
1002
+ }
1003
+
1004
+ .czr-item-btns .czr-edit-view:hover, .czr-item-btns .czr-edit-view.active {
1005
+ color: #00a0d2;
1006
+ }
1007
+
1008
+ /* sidebar specifics */
1009
+ .czr_widget_areas_module .czr-edit-view:hover, .czr_widget_areas_module .czr-item-btns .czr-edit-view.active {
1010
+ color: #000000;
1011
+ }
1012
+ .czr_widget_areas_module .czr-builtin-model .czr-edit-view:hover, .czr_widget_areas_module .czr-builtin-model .czr-edit-view.active {
1013
+ color: #00a0d2;
1014
+ }
1015
+
1016
+ .czr-item-btns .czr-display-alert:hover, .czr-item-btns .czr-display-alert.active {
1017
+ color: #23282d;
1018
+ }
1019
+
1020
+
1021
+ .czr-single-item .czr-item-content {
1022
+ display: none;
1023
+ /*background: rgba(238, 238, 238, 0.5);*/
1024
+ clear: both;
1025
+ width: 96%;
1026
+ padding: 2%;
1027
+ }
1028
+ .czr-single-item .czr-item-content input {
1029
+ margin-bottom: 0;
1030
+ }
1031
+ .czr-sub-set {
1032
+ margin-bottom: 0;
1033
+ display: block;
1034
+ float: left;
1035
+ width: 100%;
1036
+ padding: 1% 0;
1037
+ position: relative;
1038
+ }
1039
+
1040
+ .czr-sub-set .czr-input {
1041
+ float: right;
1042
+ width: 60%;
1043
+ }
1044
+
1045
+ .width-100 .czr-input, .czr-sub-set .customize-control-title.width-100 {
1046
+ width: 100%;
1047
+ }
1048
+
1049
+ .czr-sub-set .customize-control-title {
1050
+ float: left;
1051
+ width: 40%;
1052
+ padding: 1px 0;
1053
+ font-size: 13px;
1054
+ }
1055
+
1056
+ .customize-control-title.width-80 {
1057
+ width: 80%!important;
1058
+ }
1059
+ .czr-input.width-20 {
1060
+ width: 20%!important;
1061
+ }
1062
+
1063
+ /* rtl */
1064
+ .rtl.wp-customizer .czr-sub-set .customize-control-title {
1065
+ float: right;
1066
+ }
1067
+
1068
+ /* DISABLED STATE */
1069
+ .disabled .customize-control-title, .disabled .czr-input {
1070
+ opacity: 0.6;
1071
+ filter: blur(1px);
1072
+ -webkit-filter: blur(1px);
1073
+ }
1074
+
1075
+ .czr-item-title .far,
1076
+ .czr-item-title .fab,
1077
+ .czr-item-title .fas {
1078
+ font-size: 18px;
1079
+ }
1080
+
1081
+ /* Remove alert block */
1082
+ .czr-remove-alert-wrapper {
1083
+ display: none;
1084
+ clear: both;
1085
+ float: left;
1086
+ padding: 2%;
1087
+ width: 95%;
1088
+ margin: 10px 0;
1089
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
1090
+ background-color: #EEE;
1091
+ color: #000;
1092
+ -webkit-border-radius: 4px;
1093
+ -moz-border-radius: 4px;
1094
+ border-radius: 4px;
1095
+ }
1096
+
1097
+ .czr-remove-alert-wrapper p {
1098
+ padding: 5px;
1099
+ margin: 0px;
1100
+ }
1101
+
1102
+ /* pre add dialog */
1103
+ .czr-pre-add-wrapper {
1104
+ position: relative;
1105
+ float: left;
1106
+ width: 100%;
1107
+ }
1108
+
1109
+ .czr-adding-new .czr-items-wrapper {
1110
+ opacity: 0.6;
1111
+ }
1112
+
1113
+ .czr-pre-add-view-content {
1114
+ display: none;
1115
+ padding: 3%;
1116
+ border: 1px solid #00a0d2;
1117
+ border-top: none;
1118
+ margin: 0 0 0 2%;
1119
+ float: left;
1120
+ width: 92%;
1121
+ background: #eee;
1122
+ -webkit-border-radius: 0px 0px 3px 3px;
1123
+ -moz-border-radius: 0px 0px 3px 3px;
1124
+ border-radius: 0px 0px 3px 3px;
1125
+ position: relative;
1126
+ opacity: 1;
1127
+ -webkit-transition: opacity .2s linear;
1128
+ -moz-transition: opacity .2s linear;
1129
+ -ms-transition: opacity .2s linear;
1130
+ -o-transition: opacity .2s linear;
1131
+ transition: opacity .2s linear;
1132
+ }
1133
+
1134
+ .czr-model-added .czr-pre-add-view-content {
1135
+ opacity: 0.2;
1136
+ }
1137
+
1138
+ .czr-pre-add-wrapper .czr-add-new {
1139
+ background: #3b8dbd;
1140
+ color: #fff;
1141
+ -webkit-transition: background .5s linear;
1142
+ -moz-transition: background .5s linear;
1143
+ -ms-transition: background .5s linear;
1144
+ -o-transition: background .5s linear;
1145
+ transition: background .5s linear;
1146
+ float: right;
1147
+ border: none;
1148
+ }
1149
+
1150
+ .czr-add-success {
1151
+ width: 100%;
1152
+ margin: 0 0 0 2%;
1153
+ position: absolute;
1154
+ top: 0;
1155
+ left: 0;
1156
+ font-size: 25px;
1157
+ text-align: center;
1158
+ opacity: 0;
1159
+ -webkit-transition: opacity .1s linear;
1160
+ -moz-transition: opacity .1s linear;
1161
+ -ms-transition: opacity .1s linear;
1162
+ -o-transition: opacity .1s linear;
1163
+ transition: opacity .1s linear;
1164
+ }
1165
+ .czr-model-added .czr-add-success {
1166
+ opacity: 1;
1167
+ }
1168
+
1169
+ .czr-add-success p {
1170
+ vertical-align: middle;
1171
+ display: inline-block;
1172
+ line-height: 35px;
1173
+ margin: 0;
1174
+ font-size: 25px;
1175
+ color: #82b965;
1176
+ padding: 0 3%;
1177
+ }
1178
+
1179
+
1180
+ /* WIDGETS ZONE SPECIFICS */
1181
+ .control-section-widget_zones_management {
1182
+ margin: 10px 0;
1183
+ z-index: 1;
1184
+ }
1185
+ /*#customize-theme-controls .control-section-widget_zones_management .accordion-section-content {
1186
+ display: none;
1187
+ left: 0;
1188
+ position: relative;
1189
+ }*/
1190
+
1191
+ .czr-zone-infos {
1192
+ width: 96%;
1193
+ padding: 0 2%;
1194
+ font-size: 12px;
1195
+ float: left;
1196
+ font-style: italic;
1197
+ }
1198
+
1199
+ /*#customize-theme-controls .control-section-widget_zones_management .accordion-section-title:after {
1200
+ content: "\f078";
1201
+ display: inline-block;
1202
+ font: normal normal normal 14px/1 FontAwesome;
1203
+ font-size: inherit;
1204
+ text-rendering: auto;
1205
+ -webkit-font-smoothing: antialiased;
1206
+ -moz-osx-font-smoothing: grayscale;
1207
+ }
1208
+
1209
+ #customize-theme-controls .control-section-widget_zones_management.open .accordion-section-title:after {
1210
+ content: "\f077";
1211
+ }*/
1212
+ .czr-unavailable-location {
1213
+ opacity: 0.7;
1214
+ }
1215
+ .czr-location-alert {
1216
+ float: left;
1217
+ width: 100%;
1218
+ padding: 1% 0;
1219
+ margin: 1% 0;
1220
+ text-align: center;
1221
+ border: 1px solid orange;
1222
+ background: #FEE5B6;
1223
+ color: #000;
1224
+ font-size: 11px;
1225
+ font-style: italic;
1226
+ }
1227
+
1228
+
1229
+
1230
+
1231
+
1232
+
1233
+
1234
+
1235
+
1236
+
1237
+
1238
+
1239
+
1240
+
1241
+ /* MODULE OPTIONS ICON AND PANEL*/
1242
+ .czr-toggle-modopt {
1243
+ color: #495050;
1244
+ text-shadow: 1px 1px 0px white;
1245
+ -webkit-transition: color 0.4s;
1246
+ transition: color 0.4s;
1247
+ position: absolute;
1248
+ right: 0;
1249
+ padding-left: 3px;
1250
+ font-size: 25px;
1251
+ line-height: 24px;
1252
+ }
1253
+ /* rtl */
1254
+ .rtl.wp-customizer .czr-toggle-modopt {
1255
+ left: 0;
1256
+ right: auto;
1257
+ padding-left: 0;
1258
+ padding-right: 3px;
1259
+ }
1260
+ .czr-modopt-visible .czr-toggle-modopt, .czr-toggle-modopt:hover {
1261
+ color: #3b8dbd;
1262
+ }
1263
+
1264
+ body.czr-editing-modopt #customize-preview {
1265
+ opacity: 0.7;
1266
+ }
1267
+ body #customize-controls {
1268
+ -webkit-transition: opacity .4s ease-in-out;
1269
+ -moz-transition: opacity .4s ease-in-out;
1270
+ -ms-transition: opacity .4s ease-in-out;
1271
+ -o-transition: opacity .4s ease-in-out;
1272
+ transition: opacity .4s ease-in-out;
1273
+ }
1274
+ body.czr-editing-modopt #customize-controls {
1275
+ opacity: 0.4;
1276
+ }
1277
+ .czr-mod-opt-wrapper {
1278
+ position: absolute;
1279
+ top: 0;
1280
+ bottom: 0;
1281
+ left: -301px;
1282
+ /*visibility: hidden;*/
1283
+ opacity: 0;
1284
+ overflow-x: hidden;
1285
+ overflow-y: auto;
1286
+ margin: 0;
1287
+ z-index: 4;
1288
+ width: 60%;
1289
+ min-width: 300px;
1290
+ padding: 1% 2%;
1291
+ color: #fff;
1292
+ background: rgba(0, 0, 0, 0.8);
1293
+ -webkit-transition: all .18s ease-in-out;
1294
+ -moz-transition: all .18s ease-in-out;
1295
+ -ms-transition: all .18s ease-in-out;
1296
+ -o-transition: all .18s ease-in-out;
1297
+ transition: all .18s ease-in-out;
1298
+ border-right: 1px solid #4c4c4c;
1299
+ }
1300
+
1301
+ body.czr-editing-modopt .czr-mod-opt-wrapper {
1302
+ left: 0;
1303
+ visibility: visible;
1304
+ opacity: 1;
1305
+ }
1306
+ .czr-close-modopt {
1307
+ position: absolute;
1308
+ top: 10px;
1309
+ right: 25px;
1310
+ font-size: 31px;
1311
+ cursor: pointer;
1312
+ }
1313
+
1314
+
1315
+
1316
+ /* OPTIONS STYLE */
1317
+ .czr-mod-opt-wrapper .czr-sub-set {
1318
+ /*border: 1px dotted #ccc;*/
1319
+ background: rgba(238, 238, 238, 0.13);
1320
+ padding: 3% 2%;
1321
+ width: 96%;
1322
+ margin: 5px 0;
1323
+ }
1324
+ .czr-mod-opt-wrapper .czr-notice {
1325
+ color: #fff;
1326
+ }
1327
+
1328
+ .czr-mod-opt-wrapper .mod-opt-title {
1329
+ color: #fff;
1330
+ border-bottom: 1px solid #fff;
1331
+ padding: 5% 0;
1332
+ text-align: center;
1333
+ }
1334
+
1335
+
1336
+
1337
+ /**************************************
1338
+ /* MODULE OPTIONS : TABS NAVIGATION */
1339
+ /*************************************/
1340
+ .tabs {
1341
+ position: relative;
1342
+ display: none;
1343
+ overflow: hidden;
1344
+ margin: 0 auto;
1345
+ width: 100%;
1346
+ font-weight: 300;
1347
+ font-size: 1.25em;
1348
+ }
1349
+
1350
+ /* Nav */
1351
+ .tabs nav {
1352
+ text-align: center;
1353
+ }
1354
+
1355
+ .tabs nav ul {
1356
+ position: relative;
1357
+ overflow: hidden;
1358
+ display: -ms-flexbox;
1359
+ display: -webkit-flex;
1360
+ display: -moz-flex;
1361
+ display: -ms-flex;
1362
+ display: flex;
1363
+ margin: 0 auto;
1364
+ padding: 0;
1365
+ max-width: 1200px;
1366
+ list-style: none;
1367
+ -ms-box-orient: horizontal;
1368
+ -ms-box-pack: center;
1369
+ -webkit-flex-flow: row wrap;
1370
+ -moz-flex-flow: row wrap;
1371
+ -ms-flex-flow: row wrap;
1372
+ flex-flow: row wrap;
1373
+ -webkit-justify-content: center;
1374
+ -moz-justify-content: center;
1375
+ -ms-justify-content: center;
1376
+ justify-content: center;
1377
+ }
1378
+
1379
+ .tabs nav ul li {
1380
+ font-size: 14px;
1381
+ position: relative;
1382
+ z-index: 1;
1383
+ display: block;
1384
+ margin: 0;
1385
+ text-align: center;
1386
+ -webkit-flex: 1;
1387
+ -moz-flex: 1;
1388
+ -ms-flex: 1;
1389
+ flex: 1;
1390
+ }
1391
+
1392
+ /* colums layouts */
1393
+ .tabs nav ul li.cols-4 {
1394
+ width: 25%
1395
+ }
1396
+ .tabs nav ul li.cols-3 {
1397
+ width: 33%
1398
+ }
1399
+ .tabs nav ul li.cols-2 {
1400
+ width: 50%
1401
+ }
1402
+ .tabs nav ul li.cols-1 {
1403
+ width: 100%
1404
+ }
1405
+ .tabs nav a {
1406
+ position: relative;
1407
+ display: block;
1408
+ overflow: hidden;
1409
+ text-overflow: ellipsis;
1410
+ white-space: nowrap;
1411
+ line-height: 2.5;
1412
+ }
1413
+
1414
+ .tabs nav a span {
1415
+ vertical-align: middle;
1416
+ font-size: 0.75em;
1417
+ }
1418
+
1419
+ .tabs nav li.tab-current a {
1420
+ color: #74777b;
1421
+ }
1422
+
1423
+ .tabs nav a:focus {
1424
+ outline: none;
1425
+ }
1426
+
1427
+ li.tab-current::after, li.tab-current::before {
1428
+ content: '';
1429
+ height: 100%;
1430
+ position: absolute;
1431
+ -webkit-box-shadow: 4px 0px 15px 0px rgba(37, 37, 37, 0.63);
1432
+ box-shadow: 4px 0px 15px 0px rgba(37, 37, 37, 0.63);
1433
+ top: 0;
1434
+ width: 0px;
1435
+ right: 0px;
1436
+ z-index: 4;
1437
+ width: 100%;
1438
+ }
1439
+
1440
+ li.tab-current::before{
1441
+ left: 0;
1442
+ -webkit-box-shadow: 0px 0px 15px 4px rgba(37, 37, 37, 0.63);
1443
+ box-shadow: 0px 0px 15px 4px rgba(37, 37, 37, 0.63);
1444
+ }
1445
+
1446
+ li.tab-inactive::after {
1447
+ content: '';
1448
+ width: 100%;
1449
+ position: absolute;
1450
+ height: 2px;
1451
+ bottom: -7px;
1452
+ left: 0;
1453
+ -webkit-box-shadow: 4px 0px 15px 0px rgba(119, 119, 119, 0.58);;
1454
+ box-shadow: 4px 0px 15px 0px rgba(0, 0, 0, 0.86);;
1455
+ }
1456
+
1457
+ /* Content */
1458
+ .content-wrap {
1459
+ position: relative;
1460
+ }
1461
+
1462
+ .content-wrap section {
1463
+ display: none;
1464
+ margin: 0 auto;
1465
+ max-width: 1200px;
1466
+ }
1467
+
1468
+ section .czr-sub-set:first-child {
1469
+ margin: 0;
1470
+ }
1471
+
1472
+ .content-wrap section.content-current {
1473
+ display: block;
1474
+ }
1475
+
1476
+ .no-flexbox nav ul {
1477
+ display: block;
1478
+ }
1479
+
1480
+ .no-flexbox nav ul li {
1481
+ min-width: 15%;
1482
+ display: inline-block;
1483
+ }
1484
+
1485
+ /*****************************/
1486
+ /* Top Line */
1487
+ /*****************************/
1488
+
1489
+ .tabs-style-topline {
1490
+ max-width: 1200px;
1491
+ }
1492
+
1493
+ .tabs-style-topline nav li {
1494
+ border: 1px solid rgba(40,44,42,0.1);
1495
+ }
1496
+
1497
+ .czr-items-wrapper .tabs-style-topline nav li {
1498
+ border: none;
1499
+ }
1500
+
1501
+ .tabs-style-topline nav li:not(:last-child) {
1502
+ border-right: none;
1503
+ }
1504
+
1505
+ .tabs-style-topline nav li.tab-current {
1506
+ border-top-color: #ffffff;
1507
+ border-bottom: none;
1508
+ background: rgba(238, 238, 238, 0.13);
1509
+ }
1510
+
1511
+ .tabs-style-topline nav a {
1512
+ padding: 0.65em 0.5em;
1513
+ background: rgba(40,44,42,0.05);
1514
+ color: #fff;
1515
+ line-height: 1;
1516
+ -webkit-transition: color 0.2s;
1517
+ transition: color 0.2s;
1518
+ text-decoration: none;
1519
+ }
1520
+ .czr-items-wrapper .tabs-style-topline nav a {
1521
+ background: rgba(40, 44, 42, 0.45);
1522
+ }
1523
+
1524
+ .tabs-style-topline nav a:hover,
1525
+ .tabs-style-topline nav a:focus {
1526
+ text-decoration: underline;
1527
+ }
1528
+
1529
+ .tabs-style-topline nav li.tab-current a {
1530
+ background: none;
1531
+ box-shadow: inset 0 3px 0 #ffffff;
1532
+ color: #ffffff;
1533
+ text-decoration: underline;
1534
+ }
1535
+
1536
+ .czr-items-wrapper .tabs-style-topline nav li.tab-current a {
1537
+ color: #000;
1538
+ }
1539
+
1540
+ .tabs-style-topline .icon::before {
1541
+ display: block;
1542
+ margin: 0;
1543
+ }
1544
+
1545
+ .tabs-style-topline nav a span {
1546
+ text-transform: uppercase;
1547
+ letter-spacing: 1px;
1548
+ font-weight: 700;
1549
+ }
1550
+
1551
+
1552
+ @media screen and (max-width: 58em) {
1553
+ .tabs nav a.icon span {
1554
+ display: none;
1555
+ }
1556
+ .tabs nav a:before {
1557
+ margin-right: 0;
1558
+ }
1559
+ }
1560
+
1561
+
1562
+
1563
+
1564
+
1565
+
1566
+
1567
+
1568
+ /* SLIDER MODULE SPECIFICS */
1569
+ .czr_slide_module .czr-item-title {
1570
+ padding: 0px 7px;
1571
+ height: 32px;
1572
+ }
1573
+ .czr_slide_module .slide-title, .czr_slide_module .slide-thumb {
1574
+ display: block;
1575
+ height: 32px;
1576
+ line-height: 32px;
1577
+ float: left;
1578
+ }
1579
+ .czr_slide_module .slide-title {
1580
+ padding-left: 5px;
1581
+ }
1582
+
1583
+ /* styled like the wp api.notifications, info type */
1584
+ .slide-mod-skope-notice {
1585
+ padding: 3%;
1586
+ background: #fff;
1587
+ border-left: 4px solid #00a0d2;
1588
+ box-shadow: 0 1px 1px 0 rgba( 0, 0, 0, 0.1 );
1589
+ float: left;
1590
+ font-size: 12px;
1591
+ line-height: 1.5em;
1592
+ }
1593
+ /* Underline skope switch text in control notices and in the main skope switcher title */
1594
+ .slide-mod-skope-notice .czr-skope-switch {
1595
+ cursor: pointer;
1596
+ text-decoration: underline;
1597
+ }
1598
+
1599
+ .modopts-top-buttons {
1600
+ width: 100%;
1601
+ float: left;
1602
+ margin-bottom: 4%;
1603
+ text-align: center;
1604
+ }
1605
+
1606
+ .item-bottom-buttons {
1607
+ width: 100%;
1608
+ float: left;
1609
+ padding: 1% 0;
1610
+ }
1611
+ .item-bottom-btn {
1612
+
1613
+ }
1614
+ .item-bottom-btn, .modopt-top-btn {
1615
+ opacity: 1;
1616
+ color: #fff;
1617
+ font-size: 14px;
1618
+ cursor: pointer;
1619
+ border-width: 1px;
1620
+ -webkit-appearance: none;
1621
+ -webkit-border-radius: 3px;
1622
+ border-radius: 4px;
1623
+ -webkit-box-sizing: border-box;
1624
+ -moz-box-sizing: border-box;
1625
+ box-sizing: border-box;
1626
+ -webkit-transition: all 0.2s ease-in-out;
1627
+ -moz-transition: all 0.2s ease-in-out;
1628
+ -ms-transition: all 0.2s ease-in-out;
1629
+ -o-transition: all 0.2s ease-in-out;
1630
+ transition: all 0.2s ease-in-out;
1631
+ opacity: 1;
1632
+ }
1633
+ .item-bottom-btn {
1634
+ background: #868686;
1635
+ width: 47%;
1636
+ margin-right: 2%;
1637
+ padding: 1% 0;
1638
+ }
1639
+ .modopt-top-btn {
1640
+ background: rgba(171, 171, 171, 0.5);
1641
+ width: 170px;
1642
+ padding: 2px 0;
1643
+ }
1644
+ .item-bottom-btn:hover {
1645
+ background: #5d5d5d;
1646
+ }
1647
+ .modopt-top-btn:hover {
1648
+ background:rgba(41, 41, 41, 0.53);
1649
+ }
1650
+
1651
+ .item-bottom-btn[disabled], .modopt-top-btn[disabled], .item-bottom-btn[disabled]:hover, .modopt-top-btn[disabled]:hover {
1652
+ opacity: 0.4;
1653
+ cursor: default;
1654
+ -webkit-box-shadow: none !important;
1655
+ box-shadow: none !important;
1656
+ /*border: none!important;*/
1657
+ background: inherit;
1658
+ }
1659
+
1660
+
1661
+ /* NOTICES */
1662
+ .czr-notice {
1663
+ font-size: 12px;
1664
+ font-weight: normal;
1665
+ }/*
1666
+ * Selecter v3.1.9 - 2014-09-02
1667
+ * A jQuery plugin for replacing default select elements. Part of the Formstone Library.
1668
+ * http://formstone.it/selecter/
1669
+ *
1670
+ * Copyright 2014 Ben Plum; MIT Licensed
1671
+ */
1672
+ .selecter-element { *left: -999999px; position: absolute; opacity: 0; }
1673
+ .selecter { display: block;float: right;margin: 2px 0;position: relative;width: 100%;z-index: 100; }
1674
+ .selecter .selecter-selected { background: #F9F9F9 url(img/jquery.fs.selecter-arrow.png) no-repeat right center; border: 1px solid #ccc; border-radius: 3px; color: #333; cursor: pointer; display: block; font-size: 13px; margin: 0; overflow: hidden; padding: 4px 4%; position: relative; text-overflow: clip; z-index: 49; box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.07);height: auto;line-height: 18px;width: 90%; }
1675
+
1676
+ .selecter .selecter-options { border: 1px solid #ccc; border-width: 0 1px 1px; background-color: #fefefe; border-radius: 0 0 3px 3px; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15); display: none; left: 0; margin: 0; max-height: 260px; overflow: auto; overflow-x: hidden; padding: 0; position: relative; top: 100%; width: 99%; *width: auto; z-index: 50; }
1677
+ .selecter .selecter-group { background: #F9F9F9; border-bottom: 1px solid #e3e3e3; color: #999; display: block; font-size: 11px; padding: 5px 6px 4px; text-transform: uppercase; }
1678
+ .selecter .selecter-item { background: #fff; border-bottom: 1px solid #e3e3e3; color: #333; cursor: pointer; display: block; font-size: 13px; margin: 0; overflow: hidden; padding: 8px 10px; text-overflow: ellipsis; width: 86%;height: auto;line-height: 14px;padding: 8px 24px 8px 10px;}
1679
+ .selecter .selecter-item.selected { background: #F9F9F9; }
1680
+ .selecter .selecter-item.disabled { color: #999; cursor: default; }
1681
+ .selecter .selecter-item:first-child { border-radius: 0; }
1682
+ .selecter .selecter-item:last-child { border-radius: 0 0 2px 2px; border-bottom: 0; }
1683
+
1684
+ /* CUSTOM FOR CUSTOMIZR */
1685
+ .rtl .selecter .selecter-selected {
1686
+ background: #F9F9F9 url(img/jquery.fs.selecter-arrow.png) no-repeat 4% center;
1687
+ }
1688
+
1689
+ @media screen and (min-width: 980px) {
1690
+ .selecter .selecter-item:hover,
1691
+ .selecter .selecter-item.selected:hover { background-color: #f3f3f3; }
1692
+ .selecter .selecter-item.disabled:hover { background-color: #fff; }
1693
+
1694
+ .selecter:hover .selecter-selected { background-color: #fff; }
1695
+
1696
+ .selecter.disabled .selecter-item:hover { background: #fff; }
1697
+ }
1698
+
1699
+ /* Open */
1700
+ .selecter.open { z-index: 101; }
1701
+ .selecter.open .selecter-selected { border-radius: 3px 3px 0 0; z-index: 51; }
1702
+
1703
+ .selecter.open .selecter-selected,
1704
+ .selecter.focus .selecter-selected { background-color: #fff; box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); }
1705
+
1706
+ /* 'Cover' Positioning */
1707
+ .selecter.cover .selecter-options { border-radius: 3px; border-width: 1px; top: 0; }
1708
+ .selecter.cover .selecter-options .selecter-item.first { border-radius: 3px 3px 0 0; }
1709
+ .selecter.cover.open .selecter-selected { border-radius: 3px 3px 0 0; z-index: 49; }
1710
+
1711
+ /* 'Bottom' Positioning */
1712
+ .selecter.bottom .selecter-options { border-width: 1px 1px 0; bottom: 100%; top: auto; }
1713
+ .selecter.bottom .selecter-item:last-child { border: none; }
1714
+ .selecter.bottom.open .selecter-selected { border-radius: 0 0 3px 3px; }
1715
+ .selecter.bottom.open .selecter-options { border-radius: 3px 3px 0 0; }
1716
+
1717
+ /* 'Bottom' + 'Cover' Positioning */
1718
+ .selecter.bottom.cover .selecter-options { bottom: 0; top: auto; }
1719
+ .selecter.bottom.cover.open .selecter-selected { border-radius: 3px; }
1720
+ .selecter.bottom.cover.open .selecter-options { border-radius: 3px; }
1721
+
1722
+ /* Multiple Select */
1723
+ .selecter.multiple .selecter-options { border-radius: 3px; border-width: 1px; box-shadow: none; display: block; position: static; width: 100%; }
1724
+
1725
+ /* 'Disabled' State */
1726
+ .selecter.disabled .selecter-selected { background: #fff; border-color: #eee; color: #ccc; cursor: default; }
1727
+ .selecter.disabled .selecter-options { background: #fff; border-color: #eee; }
1728
+ .selecter.disabled .selecter-group,
1729
+ .selecter.disabled .selecter-item { border-color: #eee; color: #ccc; cursor: default; }
1730
+ .selecter.disabled .selecter-item.selected { background: #fafafa; }
1731
+
1732
+ /* Scroller Support */
1733
+ .selecter .selecter-options.scroller { overflow: hidden; }
1734
+ .selecter .selecter-options.scroller .scroller-content { max-height: 260px; padding: 0; }
1735
+
1736
+ /* Media Queries */
1737
+ @media screen and (max-width: 740px) {
1738
+ .selecter { max-width: 100%; }
1739
+ }
1740
+ @media screen and (max-width: 500px) {
1741
+ .selecter { max-width: 100%; }
1742
+ }
1743
+
1744
+
1745
+
1746
+
1747
+
1748
+
1749
+
1750
+
1751
+
1752
+
1753
+
1754
+ /*
1755
+ * Stepper v3.0.7 - 2014-05-07
1756
+ * A jQuery plugin for cross browser number inputs. Part of the Formstone Library.
1757
+ * http://formstone.it/stepper/
1758
+ *
1759
+ * Copyright 2014 Ben Plum; MIT Licensed
1760
+ */
1761
+ .stepper { border-radius: 3px; margin: 0 0 10px 0; overflow: hidden; position: relative; width: 35%;float: left; clear: both;}
1762
+ .stepper .stepper-input { background: #F9F9F9; border: 1px solid #ccc; border-radius: 3px; color: #333; font-size: 13px; line-height: 1.2; margin: 0; overflow: hidden; padding: 5px 10px 5px!important; width: 100%!important; z-index: 49; -moz-appearance: textfield;max-width: none!important;
1763
+ }
1764
+
1765
+ .stepper .stepper-input::-webkit-inner-spin-button,
1766
+ .stepper .stepper-input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
1767
+
1768
+ .stepper .stepper-input:focus { background-color: #fff; }
1769
+ .stepper .stepper-arrow { background: #eee url(img/jquery.fs.stepper-arrows.png) no-repeat; border: 1px solid #ccc; cursor: pointer; display: block; height: 46%; position: absolute; right: 0; text-indent: -99999px; width: 20px; z-index: 50; }
1770
+ .stepper .stepper-arrow.up { background-position: center top; border-bottom: none; top: 0; }
1771
+ .stepper .stepper-arrow.down { background-position: center bottom; bottom: 0; }
1772
+
1773
+ /* CUSTOM FOR CUSTOMIZR */
1774
+ .rtl .stepper .stepper-input {
1775
+ text-align: left;
1776
+ }
1777
+
1778
+ @media screen and (min-width: 740px) {
1779
+ .stepper:hover .stepper-input { background-color: #fff; }
1780
+
1781
+ .stepper .stepper-step:hover { background-color: #F9F9F9; }
1782
+
1783
+ .stepper.disabled .stepper-arrow { background: #fff; border-color: #eee; cursor: default; }
1784
+ }
1785
+
1786
+ .stepper.disabled .stepper-input { background: #fff; border-color: #eee; color: #ccc; }
1787
+ .stepper.disabled .stepper-arrow { background: #fff; border-color: #eee; cursor: default; }
1788
+
1789
+
1790
+
1791
+
1792
+
1793
+
1794
+
1795
+
1796
+
1797
+
1798
+
1799
+
1800
+ /* iCheck plugin Flat skin, green
1801
+ ----------------------------------- */
1802
+ .icheckbox_flat-green,
1803
+ .iradio_flat-green {
1804
+ display: inline-block;
1805
+ *display: inline;
1806
+ vertical-align: middle;
1807
+ margin: 0;
1808
+ padding: 0;
1809
+ width: 20px;
1810
+ height: 20px;
1811
+ background: url(img/green.png) no-repeat;
1812
+ border: none;
1813
+ cursor: pointer;
1814
+ top: 4px;
1815
+ float: right;
1816
+ }
1817
+ /* RTL fix of check box position */
1818
+ .rtl [class*=icheckbox_flat-] {
1819
+ float: left;
1820
+ }
1821
+ .icheckbox_flat-green {
1822
+ background-position: 0 0;
1823
+ }
1824
+ .icheckbox_flat-green.checked {
1825
+ background-position: -22px 0;
1826
+ }
1827
+ .icheckbox_flat-green.disabled {
1828
+ background-position: -44px 0;
1829
+ cursor: default;
1830
+ }
1831
+ .icheckbox_flat-green.checked.disabled {
1832
+ background-position: -66px 0;
1833
+ }
1834
+
1835
+ .iradio_flat-green {
1836
+ background-position: -88px 0;
1837
+ }
1838
+ .iradio_flat-green.checked {
1839
+ background-position: -110px 0;
1840
+ }
1841
+ .iradio_flat-green.disabled {
1842
+ background-position: -132px 0;
1843
+ cursor: default;
1844
+ }
1845
+ .iradio_flat-green.checked.disabled {
1846
+ background-position: -154px 0;
1847
+ }
1848
+
1849
+ /* Retina support */
1850
+ @media only screen and (-webkit-min-device-pixel-ratio: 1.5),
1851
+ only screen and (-moz-min-device-pixel-ratio: 1.5),
1852
+ only screen and (-o-min-device-pixel-ratio: 3/2),
1853
+ only screen and (min-device-pixel-ratio: 1.5) {
1854
+ .icheckbox_flat-green,
1855
+ .iradio_flat-green {
1856
+ background-image: url(img/green@2x.png);
1857
+ -webkit-background-size: 176px 22px;
1858
+ background-size: 176px 22px;
1859
+ }
1860
+ }
1861
+
1862
+ /* iCheck plugin Flat skin, grey
1863
+ ----------------------------------- */
1864
+ .icheckbox_flat-grey,
1865
+ .iradio_flat-grey {
1866
+ display: inline-block;
1867
+ *display: inline;
1868
+ vertical-align: middle;
1869
+ margin: 0;
1870
+ padding: 0;
1871
+ width: 20px;
1872
+ height: 20px;
1873
+ background: url(img/grey.png) no-repeat;
1874
+ border: none;
1875
+ cursor: pointer;
1876
+ top: 4px;
1877
+ float: right;
1878
+ }
1879
+
1880
+ .icheckbox_flat-grey {
1881
+ background-position: 0 0;
1882
+ }
1883
+ .icheckbox_flat-grey.checked {
1884
+ background-position: -22px 0;
1885
+ }
1886
+ .icheckbox_flat-grey.disabled {
1887
+ background-position: -44px 0;
1888
+ cursor: default;
1889
+ }
1890
+ .icheckbox_flat-grey.checked.disabled {
1891
+ background-position: -66px 0;
1892
+ }
1893
+
1894
+ .iradio_flat-grey {
1895
+ background-position: -88px 0;
1896
+ }
1897
+ .iradio_flat-grey.checked {
1898
+ background-position: -110px 0;
1899
+ }
1900
+ .iradio_flat-grey.disabled {
1901
+ background-position: -132px 0;
1902
+ cursor: default;
1903
+ }
1904
+ .iradio_flat-grey.checked.disabled {
1905
+ background-position: -154px 0;
1906
+ }
1907
+
1908
+ /* Retina support */
1909
+ @media only screen and (-webkit-min-device-pixel-ratio: 1.5),
1910
+ only screen and (-moz-min-device-pixel-ratio: 1.5),
1911
+ only screen and (-o-min-device-pixel-ratio: 3/2),
1912
+ only screen and (min-device-pixel-ratio: 1.5) {
1913
+ .icheckbox_flat-grey,
1914
+ .iradio_flat-grey {
1915
+ background-image: url(img/grey@2x.png);
1916
+ -webkit-background-size: 176px 22px;
1917
+ background-size: 176px 22px;
1918
+ }
1919
+ }
1920
+
1921
+ .czr-sub-set .icheckbox_flat-green, .iradio_flat-green {
1922
+ float: left;
1923
+ }
1924
+
1925
+
1926
+
1927
+
1928
+
1929
+
1930
+
1931
+
1932
+
1933
+
1934
+
1935
+
1936
+
1937
+
1938
+
1939
+
1940
+ /* SELECT 2 SPECIFICS */
1941
+ body .select2-container {
1942
+ z-index: 1000000;
1943
+ width: 100%!important;
1944
+ }
1945
+
1946
+ .customize-control-czr_layouts .select2-selection--single {
1947
+ height: 33px;
1948
+ }
1949
+ .customize-control-czr_layouts .select2-container--default .select2-selection--single .select2-selection__arrow {
1950
+ height: 30px;
1951
+ }
1952
+ .select2-selection__rendered:focus, .customize-control-czr_layouts .select2-selection--single:focus {
1953
+ outline: none;
1954
+ }
1955
+
1956
+ /* Old SELECT2
1957
+ * https://github.com/presscustomizr/themes-customizer-fmk/issues/30
1958
+ */
1959
+ body .select2-drop {
1960
+ z-index: 1000000;
1961
+ }
1962
+
1963
+
1964
+ /* SPECIFIC INPUT STYLE */
1965
+ span.select2-results, body .select2-container {
1966
+ font-size: 14px;
1967
+ }
1968
+
1969
+
1970
+ /* for multipe picker */
1971
+ .select2-container--default .select2-selection--multiple {
1972
+ -webkit-border-radius: 0px;
1973
+ -moz-border-radius: 0px;
1974
+ border-radius: 0;
1975
+ width: 99%;
1976
+ min-height: 36px;
1977
+ border: 1px solid #ddd;
1978
+ -webkit-box-shadow: inset 0 1px 2px rgba( 0, 0, 0, 0.07 );
1979
+ box-shadow: inset 0 1px 2px rgba( 0, 0, 0, 0.07 );
1980
+ }
1981
+ .select2-container--default.select2-container--focus .select2-selection--multiple {
1982
+ border-color: #00a0d2!important;
1983
+ -webkit-box-shadow: 0 0 2px rgba(26, 188, 156, 0.8)!important;
1984
+ box-shadow: 0 0 2px rgba(26, 188, 156, 0.8)!important;
1985
+ }
1986
+ .select2-results__options li {
1987
+ margin-bottom: 0
1988
+ }
1989
+ .select2-container--default .select2-selection--multiple .select2-selection__choice {
1990
+ padding: 2px;
1991
+ font-size: 13px;
1992
+ -webkit-border-radius: 2px;
1993
+ -moz-border-radius: 2px;
1994
+ border-radius: 2px;
1995
+ margin-bottom: 0;
1996
+ }
1997
+ .select2-container--default .select2-results__option--highlighted[aria-selected] {
1998
+ background-color: #00a0d2;
1999
+ }
2000
+ .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
2001
+ font-size: 17px;
2002
+ position: relative;
2003
+ top: 2px;
2004
+ color: #23282d;
2005
+ }
2006
+
2007
+ /* Socials Specifics */
2008
+ .customize-control-czr_socials .select2-container--default .select2-selection--single .select2-selection__rendered {
2009
+ padding: 5px;
2010
+ line-height: 16px;
2011
+ }
2012
+
2013
+
2014
+
2015
+
2016
+
2017
+
2018
+
2019
+
2020
+
2021
+
2022
+
2023
+
2024
+ /* WP TEXT EDITOR */
2025
+ #czr-customize-content_editor-pane {
2026
+ border-top: solid 1px #ddd;
2027
+ position: absolute;
2028
+ height: 300px;
2029
+ bottom: -301px;
2030
+ right: 0;
2031
+ left: 0;
2032
+ z-index: 20;
2033
+ background: #f1f1f1;
2034
+ display: block;
2035
+ -webkit-transition: all 0.2s;
2036
+ transition: all 0.2s;
2037
+ visibility: hidden;
2038
+ }
2039
+ .czr-close-editor {
2040
+ position: absolute;
2041
+ cursor: pointer;
2042
+ right: 20px;
2043
+ top: -33px;
2044
+ color: #444;
2045
+ background: #eee;
2046
+ font-size: 13px;
2047
+ line-height: 19px;
2048
+ height: 20px;
2049
+ margin: 5px 0 0 5px;
2050
+ padding: 3px 8px 4px;
2051
+ border: 1px solid #e5e5e5;
2052
+ border-bottom: none;
2053
+ }
2054
+ body.czr-customize-content_editor-pane-resize #customize-preview,
2055
+ body.czr-customize-content_editor-pane-resize #czr-customize-content_editor-pane {
2056
+ -webkit-transition: none;
2057
+ transition: none;
2058
+ }
2059
+ body.mce-fullscreen.czr-customize-content_editor-pane-open #czr-customize-content_editor-pane {
2060
+ top: 0;
2061
+ }
2062
+ body.czr-customize-content_editor-pane-open #czr-customize-content_editor-pane {
2063
+ bottom: 40px;
2064
+ visibility: inherit;
2065
+ }
2066
+ #czr-customize-content_editor-pane .wp-editor-tools {
2067
+ padding-top: 5px;
2068
+ padding-right: 10px;
2069
+ }
2070
+ #czr-customize-content_editor-pane .wp-media-buttons {
2071
+ padding-left: 5px;
2072
+ }
2073
+ #customize-preview {
2074
+ height: auto;
2075
+ }
2076
+ body.czr-customize-content_editor-pane-open #customize-preview {
2077
+ bottom: 300px;
2078
+ }
2079
+ body.mce-fullscreen #customize-preview {
2080
+ bottom: 0;
2081
+ }
2082
+ body.mce-fullscreen.czr-customize-content_editor-pane-open div.mce-fullscreen {
2083
+ position: relative;
2084
+ left: 0;
2085
+ }
2086
+ #wp-czr-customize-content_editor-container {
2087
+ border-left: 0;
2088
+ }
2089
+ /* vertical resize bar */
2090
+ #czr-customize-content_editor-dragbar {
2091
+ top: 0;
2092
+ cursor: row-resize;
2093
+ display: block;
2094
+ height: 4px;
2095
+ position: absolute;
2096
+ width: 100%;
2097
+ z-index: 21;
2098
+ }
2099
+ body.czr-customize-content_editor-pane-resize #customize-preview:before {
2100
+ top: 0;
2101
+ right: 0;
2102
+ bottom: 0;
2103
+ left: 0;
2104
+ position: absolute;
2105
+ height: 100%;
2106
+ width: 100%;
2107
+ z-index: 999999;
2108
+ }
2109
+ /* @todo Mobile support for rich text editor */
2110
+ .wp-customizer .ui-autocomplete.wplink-autocomplete {
2111
+ z-index: 500110; /* originally 100110, but z-index of .wp-full-overlay is 500000 */
2112
+ }
2113
+ .wp-customizer #wp-link-wrap {
2114
+ z-index: 500105; /* originally 100105, but z-index of .wp-full-overlay is 500000 */
2115
+ }
2116
+ .wp-customizer #wp_editbtns,
2117
+ .wp-customizer #wp_gallerybtns {
2118
+ z-index: 500020; /* originally 100020, but z-index of .wp-full-overlay is 500000 */
2119
+ }
2120
+ .wp-customizer #TB_overlay,
2121
+ .wp-customizer #TB_window {
2122
+ z-index: 500050;
2123
+ }
2124
+ .wp-customizer .mce-panel,
2125
+ .wp-customizer .mce-tooltip {
2126
+ z-index: 500100 !important; /* originally 100100, but z-index of .wp-full-overlay is 500000 */
2127
+ }
2128
+ .czr-customize-content_editor-pane-open .wp-full-overlay.collapsed .wp-full-overlay-sidebar {
2129
+ z-index: 30;
2130
+ }
2131
+ .czr-customize-content_editor-pane-open .wp-full-overlay.collapsed .collapse-sidebar {
2132
+ bottom: 308px;
2133
+ }
2134
+ .czr-customize-content_editor-pane-open .wp-full-overlay.expanded .collapse-sidebar {
2135
+ bottom: 0 !important;
2136
+ }
2137
+ .czr-customize-content_editor-pane-resize .wp-full-overlay.collapsed .collapse-sidebar {
2138
+ -webkit-transition: none;
2139
+ transition: none;
2140
+ }
2141
+ .czr-customize-content_editor-pane-open.mce-fullscreen .wp-full-overlay.collapsed .collapse-sidebar {
2142
+ bottom: 8px !important;
2143
+ }
2144
+
2145
+
2146
+
2147
+ /* CONTENT PICKER */
2148
+ .czr-sub-set[data-input-type="content_picker"] .customize-control-title {
2149
+ width: 100%;
2150
+ }
2151
+ .czr-sub-set[data-input-type="content_picker"] .czr-input {
2152
+ width: 100%;
2153
+ }
2154
+ .content-picker-item {
2155
+ height: 2em;
2156
+ }
2157
+ .content-picker-item .czr-picker-item-type {
2158
+ float: right;
2159
+ display: inline-block;
2160
+ }
2161
+ .content-item-bar {
2162
+ line-height: 1.2em;
2163
+ font-size: 0.9em;
2164
+ }
2165
+ .content-item-bar .czr-picker-item-title {
2166
+ display: block;
2167
+ float: left;
2168
+ max-width: 80%;
2169
+ text-overflow: ellipsis;
2170
+ overflow: hidden;
2171
+ font-size: 13px;
2172
+ line-height: 1.3em;
2173
+ }
2174
+
2175
+ .czr-sub-set[data-input-type="content_picker"] span.czr-picker-item-title {
2176
+ display: block;
2177
+ float: left;
2178
+ max-width: 80%;
2179
+ text-overflow: ellipsis;
2180
+ overflow: hidden;
2181
+ font-size: 14px;
2182
+ line-height: 2em;
2183
+ color: #000;
2184
+ }
2185
+
2186
+ .czr-sub-set[data-input-type="content_picker"] span.czr-picker-item-type {
2187
+ display: inline-block;
2188
+ padding: 0;
2189
+ padding-right: 10px;
2190
+ float: right;
2191
+ line-height: 2em;
2192
+ }
2193
+
2194
+
2195
+
2196
+
2197
+
2198
+
2199
+
2200
+
2201
+
2202
+
2203
+
2204
+
2205
+
2206
+ /* RANGE SLIDER rangeslider.js - v2.3.0 - https://github.com/andreruffert/rangeslider.js */
2207
+ .czr-sub-set[data-input-type="range_slider"] {
2208
+ padding: 20px 0;
2209
+ }
2210
+ .rangeslider,
2211
+ .rangeslider__fill {
2212
+ display: block;
2213
+ -moz-box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.3);
2214
+ -webkit-box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.3);
2215
+ box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.3);
2216
+ -moz-border-radius: 10px;
2217
+ -webkit-border-radius: 10px;
2218
+ border-radius: 10px;
2219
+ }
2220
+
2221
+ .rangeslider {
2222
+ background: #e6e6e6;
2223
+ position: relative;
2224
+ }
2225
+
2226
+ .rangeslider--horizontal {
2227
+ height: 12px;
2228
+ width: 100%;
2229
+ }
2230
+
2231
+ .rangeslider--vertical {
2232
+ width: 12px;
2233
+ min-height: 150px;
2234
+ max-height: 100%;
2235
+ }
2236
+
2237
+ .rangeslider--disabled {
2238
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);
2239
+ opacity: 0.4;
2240
+ }
2241
+
2242
+ .rangeslider__fill {
2243
+ background: #3b8dbd;
2244
+ position: absolute;
2245
+ }
2246
+ .rangeslider--horizontal .rangeslider__fill {
2247
+ top: 0;
2248
+ height: 100%;
2249
+ }
2250
+ .rangeslider--vertical .rangeslider__fill {
2251
+ bottom: 0;
2252
+ width: 100%;
2253
+ }
2254
+
2255
+ .rangeslider__handle {
2256
+ background: white;
2257
+ border: 1px solid #ccc;
2258
+ cursor: pointer;
2259
+ display: inline-block;
2260
+ width: 34px;
2261
+ height: 34px;
2262
+ position: absolute;
2263
+ background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwLjAiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMwMDAwMDAiIHN0b3Atb3BhY2l0eT0iMC4xIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idXJsKCNncmFkKSIgLz48L3N2Zz4g');
2264
+ background-size: 100%;
2265
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(100%, rgba(0, 0, 0, 0.1)));
2266
+ background-image: -moz-linear-gradient(rgba(255, 255, 255, 0), rgba(0, 0, 0, 0.1));
2267
+ background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0), rgba(0, 0, 0, 0.1));
2268
+ background-image: linear-gradient(rgba(255, 255, 255, 0), rgba(0, 0, 0, 0.1));
2269
+ -moz-box-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
2270
+ -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
2271
+ box-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
2272
+ -moz-border-radius: 50%;
2273
+ -webkit-border-radius: 50%;
2274
+ border-radius: 50%;
2275
+ line-height: 35px;
2276
+ text-align: center;
2277
+ color: #000000;
2278
+ font-size: 13px;
2279
+ }
2280
+
2281
+ .rangeslider__handle:after {
2282
+ content: "";
2283
+ display: block;
2284
+ width: 18px;
2285
+ height: 18px;
2286
+ margin: auto;
2287
+ position: absolute;
2288
+ top: 0;
2289
+ right: 0;
2290
+ bottom: 0;
2291
+ left: 0;
2292
+ background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjEzIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjZmZmZmZmIiBzdG9wLW9wYWNpdHk9IjAuMCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
2293
+ background-size: 100%;
2294
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(0, 0, 0, 0.13)), color-stop(100%, rgba(255, 255, 255, 0)));
2295
+ background-image: -moz-linear-gradient(rgba(0, 0, 0, 0.13), rgba(255, 255, 255, 0));
2296
+ background-image: -webkit-linear-gradient(rgba(0, 0, 0, 0.13), rgba(255, 255, 255, 0));
2297
+ background-image: linear-gradient(rgba(0, 0, 0, 0.13), rgba(255, 255, 255, 0));
2298
+ -moz-border-radius: 50%;
2299
+ -webkit-border-radius: 50%;
2300
+ border-radius: 50%;
2301
+ }
2302
+ .rangeslider__handle:active, .rangeslider--active .rangeslider__handle {
2303
+ background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjEiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMwMDAwMDAiIHN0b3Atb3BhY2l0eT0iMC4xMiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==');
2304
+ background-size: 100%;
2305
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(0, 0, 0, 0.1)), color-stop(100%, rgba(0, 0, 0, 0.12)));
2306
+ background-image: -moz-linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.12));
2307
+ background-image: -webkit-linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.12));
2308
+ background-image: linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.12));
2309
+ }
2310
+ .rangeslider--horizontal .rangeslider__handle {
2311
+ top: -13px;
2312
+ touch-action: pan-y;
2313
+ -ms-touch-action: pan-y;
2314
+ }
2315
+ .rangeslider--vertical .rangeslider__handle {
2316
+ left: -13px;
2317
+ touch-action: pan-x;
2318
+ -ms-touch-action: pan-x;
2319
+ }
2320
+
2321
+ input[type="range"]:focus + .rangeslider .rangeslider__handle {
2322
+ -moz-box-shadow: 0 0 8px rgba(255, 0, 255, 0.9);
2323
+ -webkit-box-shadow: 0 0 8px rgba(255, 0, 255, 0.9);
2324
+ box-shadow: 0 0 8px rgba(255, 0, 255, 0.9);
2325
+ }
2326
+
2327
+
2328
+ /* IMAGE UPLOADER */
2329
+ .attachment-media-view button {
2330
+ color: #000;
2331
+ padding: 5px 7px;
2332
+ line-height: 1.5em;
2333
+ }
2334
+
2335
+
2336
+
2337
+
2338
+
2339
+ /* GUTENCHECK */
2340
+ /* Inspired from the Gutenberg plugin checkbox. @see here : https://github.com/WordPress/gutenberg */
2341
+ .czr-toggle-check {
2342
+ position: relative;
2343
+ float: right;
2344
+ }
2345
+ .czr-toggle-check__input[type=checkbox] {
2346
+ cursor: pointer;
2347
+ position: absolute;
2348
+ top: 0;
2349
+ left: 0;
2350
+ width: 100%;
2351
+ height: 100%;
2352
+ opacity: 0;
2353
+ margin: 0;
2354
+ padding: 0;
2355
+ z-index: 1;
2356
+ }
2357
+ .czr-toggle-check__input[type="checkbox"]:checked:before {
2358
+ content: "\f147";
2359
+ margin: -3px 0 0 -4px;
2360
+ color: #1e8cbe;
2361
+ float: left;
2362
+ display: inline-block;
2363
+ vertical-align: middle;
2364
+ width: 16px;
2365
+ font: normal 21px/1 dashicons;
2366
+ speak: none;
2367
+ -webkit-font-smoothing: antialiased;
2368
+ -moz-osx-font-smoothing: grayscale;
2369
+ }
2370
+
2371
+ .czr-toggle-check .czr-toggle-check__track {
2372
+ content: "";
2373
+ display: inline-block;
2374
+ vertical-align: top;
2375
+ box-sizing: border-box;
2376
+ background-color: #fff;
2377
+ border: 2px solid #6c7781;
2378
+ width: 36px;
2379
+ height: 18px;
2380
+ border-radius: 9px;
2381
+ transition: background .2s ease;
2382
+ }
2383
+ .czr-toggle-check.is-checked .czr-toggle-check__track {
2384
+ background-color: #33b3db;
2385
+ border: 2px solid #33b3db;
2386
+ border: 9px solid transparent;
2387
+ }
2388
+ .czr-toggle-check .czr-toggle-check__thumb {
2389
+ display: block;
2390
+ position: absolute;
2391
+ top: 4px;
2392
+ left: 4px;
2393
+ width: 10px;
2394
+ height: 10px;
2395
+ border-radius: 50%;
2396
+ transition: transform .1s ease;
2397
+ background-color: #6c7781;
2398
+ border: 5px solid #6c7781;
2399
+ box-sizing: border-box;
2400
+ }
2401
+ .czr-toggle-check.is-checked .czr-toggle-check__thumb {
2402
+ background-color: #fff;
2403
+ border-width: 0;
2404
+ transform: translateX(18px);
2405
+ }
2406
+ .czr-toggle-check .czr-toggle-check__off {
2407
+ color: #6c7781;
2408
+ fill: currentColor;
2409
+ right: 6px;
2410
+ }
2411
+ .czr-toggle-check .czr-toggle-check__on {
2412
+ left: 8px;
2413
+ -webkit-filter: invert(100%) contrast(500%);
2414
+ filter: invert(100%) contrast(500%);
2415
+ outline: 1px solid transparent;
2416
+ outline-offset: -1px;
2417
+ }
2418
+ .czr-toggle-check .czr-toggle-check__off, .czr-toggle-check .czr-toggle-check__on {
2419
+ position: absolute;
2420
+ top: 6px;
2421
+ }
inc/czr-base-fmk/assets/css/czr-ccat-control-base.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .wp-customizer a{color:#000}.wp-customizer a:focus,.wp-customizer a:hover{color:#0073aa}.wp-customizer .wp-full-overlay.expanded{margin-left:440px}.wp-customizer .wp-full-overlay-sidebar{width:440px}.wp-customizer .wp-full-overlay.collapsed .wp-full-overlay-sidebar{margin-left:-440px}#customize-theme-controls .control-section.current-panel>h3.accordion-section-title{left:-440px}.accordion-sub-container.control-panel-content{left:440px}.rtl.wp-customizer .wp-full-overlay.expanded{margin-right:440px;margin-left:0}.rtl.wp-customizer .wp-full-overlay-sidebar{width:440px}.rtl.wp-customizer .wp-full-overlay.collapsed .wp-full-overlay-sidebar{margin-right:-440px;margin-left:0}.rtl #customize-theme-controls .control-section.current-panel>h3.accordion-section-title{right:-440px}.rtl .accordion-sub-container.control-panel-content{right:440px}.customize-section-description-container+#customize-control-custom_css:last-child{margin:0;width:100%}li#customize-control-custom_css textarea{font-size:13px;background:#394143;color:#95ff0c;min-height:300px}@media screen and (max-width:1400px){.wp-customizer .wp-full-overlay.expanded{margin-left:380px}.wp-customizer .wp-full-overlay-sidebar{width:380px}.wp-customizer .wp-full-overlay.collapsed .wp-full-overlay-sidebar{margin-left:-380px}#customize-theme-controls .control-section.current-panel>h3.accordion-section-title{left:-380px}.accordion-sub-container.control-panel-content{left:380px}.rtl.wp-customizer .wp-full-overlay.expanded{margin-right:380px;margin-left:0}.rtl.wp-customizer .wp-full-overlay-sidebar{width:380px}.rtl.wp-customizer .wp-full-overlay.collapsed .wp-full-overlay-sidebar{margin-right:-380px;margin-left:0}.rtl #customize-theme-controls .control-section.current-panel>h3.accordion-section-title{right:-380px}.rtl .accordion-sub-container.control-panel-content{right:380px}}@media screen and (max-width:979px){.wp-customizer .wp-full-overlay.expanded{margin-left:300px}.wp-customizer .wp-full-overlay-sidebar{width:300px}.wp-customizer .wp-full-overlay.collapsed .wp-full-overlay-sidebar{margin-left:-300px}#customize-theme-controls .control-section.current-panel>h3.accordion-section-title{left:-300px}.accordion-sub-container.control-panel-content{left:300px}.rtl.wp-customizer .wp-full-overlay.expanded{margin-right:300px;margin-left:0}.rtl.wp-customizer .wp-full-overlay-sidebar{width:300px}.rtl.wp-customizer .wp-full-overlay.collapsed .wp-full-overlay-sidebar{margin-right:-300px;margin-left:0}.rtl #customize-theme-controls .control-section.current-panel>h3.accordion-section-title{right:-300px}.rtl .accordion-sub-container.control-panel-content{right:300px}}@media screen and (max-width:640px){.wp-customizer .customize-controls-preview-toggle{height:46px;border-bottom:1px solid #ddd;left:87px}.wp-customizer .wp-full-overlay.expanded{margin-left:0}#customize-theme-controls .control-section.current-panel>h3.accordion-section-title{left:-100%}.accordion-sub-container.control-panel-content{left:100%}.rtl.wp-customizer .wp-full-overlay.expanded{margin-right:0}.rtl #customize-theme-controls .control-section.current-panel>h3.accordion-section-title,.rtl .in-sub-panel #czr-donate-customizer,.rtl .in-sub-panel .czr-cta-wrap{right:-100%;left:auto}.rtl .accordion-sub-container.control-panel-content{right:100%}}.wp-customizer .control-section.control-panel .accordion-section-title .panel-title{font-size:24px;font-weight:inherit;line-height:30px}.wp-core-ui h3{color:#555}.accordion-section-content{padding:10px 10px 15px 20px}.accordion-section-title:after,.handlediv,.item-edit,.sidebar-name-arrow,.widget-action{color:#00a0d2}.control-section.control-panel>.accordion-section-title:after{color:#00a0d2}.customize-control-title{line-height:19px}.customize-control span.customize-control-title:first-child{position:relative}.wp-customizer #customize-theme-controls .accordion-section-content{background:#fff}.wp-customizer #customize-controls .customize-info .customize-help-toggle:focus,.wp-customizer #customize-controls .customize-info .customize-help-toggle:hover,.wp-customizer #customize-controls .customize-info.open .customize-help-toggle{color:#00a0d2}.wp-customizer #customize-controls .customize-info .customize-help-toggle:focus:before,.wp-customizer .customize-screen-options-toggle:focus:before{-webkit-box-shadow:0 0 0 1px #00a0d2;box-shadow:0 0 0 1px #00a0d2;-webkit-border-radius:100%;border-radius:100%}.wp-customizer #available-menu-items .menu-item-handle:hover .item-add,.wp-customizer .menu-item-handle:hover,.wp-customizer .menu-item-handle:hover .item-edit,.wp-customizer .menu-item-handle:hover .item-type{color:#00a0d2}#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:active,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:focus,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:hover,.active-menu-screen-options .customize-screen-options-toggle,.customize-screen-options-toggle:active,.customize-screen-options-toggle:focus,.customize-screen-options-toggle:hover{color:#00a0d2!important}.customize-control input[type=text]{line-height:23px}li[id*=customize-control-]{margin:8px 0;padding:2%;width:96%;border:1px solid rgba(221,221,221,.43);box-shadow:1px 1px 2px 0 rgba(75,75,85,.2);-webkit-box-shadow:1px 1px 2px 0 rgba(75,75,85,.2);background-color:#fff}#customize-outer-theme-controls li[id*=customize-control-]{width:100%}#customize-outer-theme-controls input[type=checkbox],#customize-outer-theme-controls input[type=radio]{float:none;min-height:inherit}.control-section .accordion-section-content{overflow-y:auto}.wp-customizer .control-section h3.accordion-section-title{padding:10px 25px 11px 14px}.wp-customizer #customize-controls h3{font-size:15px;font-weight:400}.control-section .accordion-section-title:after{top:7px}.control-section.control-panel .accordion-section-title:after{top:11px;-webkit-transition:right .3s ease-in-out,opacity .3s ease-in-out;-moz-transition:right .3s ease-in-out,opacity .3s ease-in-out;-ms-transition:right .3s ease-in-out,opacity .3s ease-in-out;-o-transition:right .3s ease-in-out,opacity .3s ease-in-out;transition:right .3s ease-in-out,opacity .3s ease-in-out;right:10px;opacity:.7}.rtl .control-section.control-panel .accordion-section-title:after{-webkit-transition:left .3s ease-in-out,opacity .3s ease-in-out;-moz-transition:left .3s ease-in-out,opacity .3s ease-in-out;-ms-transition:left .3s ease-in-out,opacity .3s ease-in-out;-o-transition:left .3s ease-in-out,opacity .3s ease-in-out;transition:left .3s ease-in-out,opacity .3s ease-in-out;left:10px;right:initial}#customize-theme-controls .control-section.control-panel h3.accordion-section-title:focus:after,#customize-theme-controls .control-section.control-panel h3.accordion-section-title:hover:after{right:8px;opacity:1;color:#666!important}.rtl #customize-theme-controls .control-section.control-panel h3.accordion-section-title:focus:after,.rtl #customize-theme-controls .control-section.control-panel h3.accordion-section-title:hover:after{left:6px;right:initial}#customize-theme-controls .control-section.control-panel>h3.accordion-section-title:focus:after,#customize-theme-controls .control-section.control-panel>h3.accordion-section-title:hover:after,.control-section.control-panel>.accordion-section-title:after{background:0 0!important;border:none!important}#customize-theme-controls h3.accordion-section-title{-webkit-transition:background .1s ease-in-out;-moz-transition:background .1s ease-in-out;-ms-transition:background .1s ease-in-out;-o-transition:background .1s ease-in-out;transition:background .1s ease-in-out}.customize-control-checkbox label,.customize-control-nav_menu_auto_add label,.customize-control-radio label{line-height:16px;margin-left:0}input::-webkit-input-placeholder{color:#9a9a9a;font-style:italic}input:-moz-placeholder{color:#9a9a9a;font-style:italic}input::-moz-placeholder{color:#9a9a9a;font-style:italic}input:-ms-input-placeholder{color:#9a9a9a;font-style:italic}.czr-customizr-title{text-transform:uppercase;margin:1em 0 5px 0;font-size:15px!important;border-bottom:1px dotted #555;padding-bottom:5px;text-align:center}h3.czr-customizr-title::before{content:'\00b7';padding-right:3px}h3.czr-customizr-title::after{content:'\00b7';padding-left:3px}.czr-after-button{border-color:#fff;margin-top:15px}.czr-emphasize{line-height:1.2em;color:#2e2e2e}i.czr-notice{display:block;clear:both}span.czr-notice{color:#313131;font-size:12px;font-style:italic;clear:both;display:block;line-height:18px}.czr-customizer-separator-invisible{border:none;margin-top:15px}.czr-skin-gen-label{float:left}.czr-skin-gen-color-picker{float:right}.czr-number-label{float:left}.czr-number-input{float:right}.czr-check-label{float:left;max-width:85%}.rtl .czr-check-label{float:right}input[type=checkbox],input[type=radio]{float:right;min-height:18px}.czr-font-select{float:left}li#customize-control-tc_theme_options-tc_custom_css textarea{font-size:14px;background:#394143;color:#e2e728;min-height:300px}.customize-control .czr-navigate-to-post-list{color:#00a0d2;font-weight:700;float:left;clear:both;width:100%;margin-bottom:8px}.czr-sub-control{padding-left:13%;max-width:87%;position:relative}.czr-sub-control:before{content:'';height:116%;background:#00a0d2;width:2%;position:absolute;left:7%}.customize-control-tc_cropped_image .upload-button{float:right}.customize-control-tc_cropped_image .remove-button{float:left;margin-right:3px}.customize-control-tc_cropped_image .actions{margin-bottom:32px}.customize-control-tc_cropped_image .current{margin-bottom:8px}.customize-control-tc_cropped_image .remove-button,.customize-control-tc_cropped_image .upload-button{white-space:normal;width:48%;height:auto}.customize-control-tc_cropped_image .current .container{min-height:40px;overflow:hidden;border:1px solid #eee;-webkit-border-radius:2px;border-radius:2px}.customize-control-tc_cropped_image img{width:100%;-webkit-border-radius:2px;border-radius:2px}.customize-control-tc_cropped_image .inner{line-height:20px;top:10px}.rtl .customize-control-tc_cropped_image .upload-button{float:left}.rtl .customize-control-tc_cropped_image .remove-button{float:right;margin-left:3px}.czr-layout-img{height:22px;margin-top:2px;outline:1px solid #fff}.czr-layout-title{padding:0 0 18px 12px;display:inline-block;line-height:0;vertical-align:middle}.customize-control-czr_multi_input{width:96%;border:1px solid #ccc;padding:2%}.czr-multi-input-wrapper{width:95%;padding:0 0 0 5%}.czr-multi-input-wrapper [data-input-type=color] .czr-input{float:left;clear:both}#customize-theme-controls #accordion-panel-czr-footer-panel{border-bottom:1px solid #ddd}#customize-theme-controls #accordion-panel-hu-advanced-panel,#customize-theme-controls #accordion-panel-nav_menus,#customize-theme-controls .control-panel-widgets{margin-top:10px}#customize-theme-controls #accordion-panel-hu-advanced-panel,#customize-theme-controls #accordion-panel-hu-header-panel,#customize-theme-controls #accordion-panel-nav_menus,#customize-theme-controls .control-panel-widgets{border-top:1px solid #ddd}#customize-theme-controls #accordion-panel-hu-general-panel,#customize-theme-controls #accordion-panel-tc-global-panel{margin-bottom:10px}#customize-theme-controls #accordion-section-frontpage_sec,#customize-theme-controls #accordion-section-static_front_page{margin-bottom:10px}#customize-theme-controls #accordion-section-tc_fpu{margin-bottom:10px}#customize-theme-controls #accordion-section-tc_font_customizer_settings{margin-bottom:10px}#customize-header-actions .customize-controls-close{left:45px}.customize-controls-close,.customize-controls-home{top:-1px}.customize-controls-home{display:block;position:absolute;left:0;width:45px;height:41px;padding:0 2px 0 0;background:#eee;border:none;border-top:4px solid #eee;border-right:1px solid #ddd;border-bottom:1px solid #ddd;color:#444;text-align:left;cursor:pointer;text-decoration:none;-webkit-transition:color .15s ease-in-out,border-color .15s ease-in-out,background .15s ease-in-out;transition:color .1s ease-in-out,border-color .15s ease-in-out,background .15s ease-in-out;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.customize-controls-home:before{font-size:17px;line-height:45px;position:relative;top:-4px;left:15px}.customize-controls-home:hover{background:#fff;color:#0073aa;border-top-color:#0073aa;outline:0;-webkit-box-shadow:none;box-shadow:none}.rtl.wp-customizer #customize-header-actions .customize-controls-close{right:45px;left:auto}.rtl.wp-customizer .customize-controls-home{left:auto;right:0;border-right:0;border-left:1px solid #ddd}.control-panel-content .hu-menu-notice{margin-left:3%}span.czr-panel-subtitle{display:block;font-size:12px;font-style:italic}.pro-title-block{border:1px solid #eea236;padding:0 6px;font-size:.7em;display:inline-block;margin-right:3px;bottom:2px;position:relative;color:#f0ad4e;webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);border-radius:3px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}#customize-controls .control-section-czr-customize-section-pro .accordion-section-title:focus,#customize-controls .control-section-czr-customize-section-pro .accordion-section-title:hover{background-color:#fff}#customize-theme-controls .control-section-czr-customize-section-pro .accordion-section-title:after{content:none}#accordion-section-go_pro_sec .accordion-section-title{margin:0 0 15px}.control-section-czr-customize-section-pro .accordion-section-title .button{font-size:15px;line-height:24px;height:30px;padding:1px 20px;display:inline-block;color:#f59000;background:#fff;border:1px solid #eea236;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;border-radius:3px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;transition:all .2s ease-in-out;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-top:-4px;font-weight:400;margin-left:8px}.control-section-czr-customize-section-pro .accordion-section-title .button:hover{color:#fff;background:#ed9c28;border-color:#d58512}.rtl .control-section-czr-customize-section-pro .accordion-section-title .button{margin-left:0;margin-right:8px}.in-sub-panel #czr-donate-customizer,.in-sub-panel .czr-cta-wrap{left:-450px;height:0}.rtl .in-sub-panel #czr-donate-customizer,.rtl .in-sub-panel .czr-cta-wrap{right:-450px}@media screen and (max-width:1400px){.in-sub-panel #czr-donate-customizer,.in-sub-panel .czr-cta-wrap{left:-380px}.rtl .in-sub-panel #czr-donate-customizer,.rtl .in-sub-panel .czr-cta-wrap{right:-380px}}@media screen and (max-width:979px){.in-sub-panel #czr-donate-customizer,.in-sub-panel .czr-cta-wrap{left:-300px}.rtl .in-sub-panel #czr-donate-customizer,.rtl .in-sub-panel .czr-cta-wrap{right:-300px}}@media screen and (max-width:640px){.in-sub-panel #czr-donate-customizer,.in-sub-panel .czr-cta-wrap{left:-100%}.rtl .in-sub-panel #czr-donate-customizer,.rtl .in-sub-panel .czr-cta-wrap{right:-100%;left:auto}}@media screen and (min-width:980px){.wp-customizer .expanded #customize-footer-actions{width:380px}}@media screen and (min-width:1401px){.wp-customizer .expanded #customize-footer-actions{width:440px}}.czr-open-pre-add-new{display:block;float:left;margin:2% 2% 0;width:99%;padding:2%;background:#3b8dbd;opacity:1;color:#fff;font-size:16px;cursor:pointer;border-width:1px;border-style:solid;-webkit-appearance:none;-webkit-border-radius:3px;border-radius:3px;white-space:nowrap;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:opacity 1s ease-in-out;-moz-transition:opacity 1s ease-in-out;-ms-transition:opacity 1s ease-in-out;-o-transition:opacity 1s ease-in-out;transition:opacity 1s ease-in-out}.czr-open-pre-add-new.active{background:#646464;opacity:.5;border-radius:3px 3px 0 0}.czr-single-item{padding:0;margin:1% 0 0 2%;float:left;width:98%;-webkit-border-radius:3px;border-radius:3px;-webkit-transition:opacity 1s ease-in-out;-moz-transition:opacity 1s ease-in-out;-ms-transition:opacity 1s ease-in-out;-o-transition:opacity 1s ease-in-out;transition:opacity 1s ease-in-out}#customize-theme-controls .czr-single-item.open{outline:1px solid #ccc}#customize-theme-controls .mono-item-mod .czr-single-item{outline:0}.czr-single-item .czr-item-content,.czr-single-item .czr-item-header{padding:1%}.czr-items-wrapper .czr-single-item .czr-builtin-model{background:#e1dfdf;color:#555}.czr-items-wrapper .inactive{opacity:.6}.czr-item-sort-handle{cursor:move}.czr-single-item .czr-item-header{position:relative;background:#dfdfdf;color:#fff;float:left;width:98%;-webkit-transition:background .1s ease-in-out;-moz-transition:background .1s ease-in-out;-ms-transition:background .1s ease-in-out;-o-transition:background .1s ease-in-out;transition:background .1s ease-in-out}.czr_widget_areas_module .czr-single-item .czr-custom-model{background:#3b8dbd}. .czr-single-item .czr-custom-model:hover{background:#aaa}.czr-single-item .czr-item-header:hover{background:#ccc}.czr-items-wrapper .czr-single-item .czr-builtin-model:hover{background:#ccc}.czr-move-icon{position:absolute;top:-2px;left:3px;font-size:10px;color:#999}.czr-item-title{float:left;font-size:17px;color:#000;padding:7px;width:67%}.czr-inactive-alert{font-size:12px;font-style:italic}.czr_widget_areas_module .czr-item-title{color:#fff}.czr-builtin-model .czr-item-title{color:#23282d}.czr-item-title h4{margin:0}.czr-item-title .fab::before,.czr-item-title .far::before,.czr-item-title .fas::before{padding-right:2px}.czr-item-btns{float:right}.czr-item-btns a{font-size:17px;padding:7px 5px;color:#777;-webkit-transition:color .1s ease-in-out;-moz-transition:color .1s ease-in-out;-ms-transition:color .1s ease-in-out;-o-transition:color .1s ease-in-out;transition:color .1s ease-in-out}.czr-item-btns a:active,.czr-item-btns a:focus{outline:0;outline:0;-webkit-box-shadow:none;box-shadow:none}.czr_widget_areas_module .czr-item-btns a{color:#fff}.czr-builtin-model .czr-item-btns a{color:#555}.czr-builtin-model .czr-item-btns .czr-edit-view.active,.czr-builtin-model .czr-item-btns .czr-edit-view:hover{color:#00a0d2}.czr-item-btns .czr-edit-view.active,.czr-item-btns .czr-edit-view:hover{color:#00a0d2}.czr_widget_areas_module .czr-edit-view:hover,.czr_widget_areas_module .czr-item-btns .czr-edit-view.active{color:#000}.czr_widget_areas_module .czr-builtin-model .czr-edit-view.active,.czr_widget_areas_module .czr-builtin-model .czr-edit-view:hover{color:#00a0d2}.czr-item-btns .czr-display-alert.active,.czr-item-btns .czr-display-alert:hover{color:#23282d}.czr-single-item .czr-item-content{display:none;clear:both;width:96%;padding:2%}.czr-single-item .czr-item-content input{margin-bottom:0}.czr-sub-set{margin-bottom:0;display:block;float:left;width:100%;padding:1% 0;position:relative}.czr-sub-set .czr-input{float:right;width:60%}.czr-sub-set .customize-control-title.width-100,.width-100 .czr-input{width:100%}.czr-sub-set .customize-control-title{float:left;width:40%;padding:1px 0;font-size:13px}.customize-control-title.width-80{width:80%!important}.czr-input.width-20{width:20%!important}.rtl.wp-customizer .czr-sub-set .customize-control-title{float:right}.disabled .customize-control-title,.disabled .czr-input{opacity:.6;filter:blur(1px);-webkit-filter:blur(1px)}.czr-item-title .fab,.czr-item-title .far,.czr-item-title .fas{font-size:18px}.czr-remove-alert-wrapper{display:none;clear:both;float:left;padding:2%;width:95%;margin:10px 0;text-shadow:0 1px 0 rgba(255,255,255,.5);background-color:#eee;color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.czr-remove-alert-wrapper p{padding:5px;margin:0}.czr-pre-add-wrapper{position:relative;float:left;width:100%}.czr-adding-new .czr-items-wrapper{opacity:.6}.czr-pre-add-view-content{display:none;padding:3%;border:1px solid #00a0d2;border-top:none;margin:0 0 0 2%;float:left;width:92%;background:#eee;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;position:relative;opacity:1;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;-ms-transition:opacity .2s linear;-o-transition:opacity .2s linear;transition:opacity .2s linear}.czr-model-added .czr-pre-add-view-content{opacity:.2}.czr-pre-add-wrapper .czr-add-new{background:#3b8dbd;color:#fff;-webkit-transition:background .5s linear;-moz-transition:background .5s linear;-ms-transition:background .5s linear;-o-transition:background .5s linear;transition:background .5s linear;float:right;border:none}.czr-add-success{width:100%;margin:0 0 0 2%;position:absolute;top:0;left:0;font-size:25px;text-align:center;opacity:0;-webkit-transition:opacity .1s linear;-moz-transition:opacity .1s linear;-ms-transition:opacity .1s linear;-o-transition:opacity .1s linear;transition:opacity .1s linear}.czr-model-added .czr-add-success{opacity:1}.czr-add-success p{vertical-align:middle;display:inline-block;line-height:35px;margin:0;font-size:25px;color:#82b965;padding:0 3%}.control-section-widget_zones_management{margin:10px 0;z-index:1}.czr-zone-infos{width:96%;padding:0 2%;font-size:12px;float:left;font-style:italic}.czr-unavailable-location{opacity:.7}.czr-location-alert{float:left;width:100%;padding:1% 0;margin:1% 0;text-align:center;border:1px solid orange;background:#fee5b6;color:#000;font-size:11px;font-style:italic}.czr-toggle-modopt{color:#495050;text-shadow:1px 1px 0 #fff;-webkit-transition:color .4s;transition:color .4s;position:absolute;right:0;padding-left:3px;font-size:25px;line-height:24px}.rtl.wp-customizer .czr-toggle-modopt{left:0;right:auto;padding-left:0;padding-right:3px}.czr-modopt-visible .czr-toggle-modopt,.czr-toggle-modopt:hover{color:#3b8dbd}body.czr-editing-modopt #customize-preview{opacity:.7}body #customize-controls{-webkit-transition:opacity .4s ease-in-out;-moz-transition:opacity .4s ease-in-out;-ms-transition:opacity .4s ease-in-out;-o-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out}body.czr-editing-modopt #customize-controls{opacity:.4}.czr-mod-opt-wrapper{position:absolute;top:0;bottom:0;left:-301px;opacity:0;overflow-x:hidden;overflow-y:auto;margin:0;z-index:4;width:60%;min-width:300px;padding:1% 2%;color:#fff;background:rgba(0,0,0,.8);-webkit-transition:all .18s ease-in-out;-moz-transition:all .18s ease-in-out;-ms-transition:all .18s ease-in-out;-o-transition:all .18s ease-in-out;transition:all .18s ease-in-out;border-right:1px solid #4c4c4c}body.czr-editing-modopt .czr-mod-opt-wrapper{left:0;visibility:visible;opacity:1}.czr-close-modopt{position:absolute;top:10px;right:25px;font-size:31px;cursor:pointer}.czr-mod-opt-wrapper .czr-sub-set{background:rgba(238,238,238,.13);padding:3% 2%;width:96%;margin:5px 0}.czr-mod-opt-wrapper .czr-notice{color:#fff}.czr-mod-opt-wrapper .mod-opt-title{color:#fff;border-bottom:1px solid #fff;padding:5% 0;text-align:center}.tabs{position:relative;display:none;overflow:hidden;margin:0 auto;width:100%;font-weight:300;font-size:1.25em}.tabs nav{text-align:center}.tabs nav ul{position:relative;overflow:hidden;display:-ms-flexbox;display:-webkit-flex;display:-moz-flex;display:-ms-flex;display:flex;margin:0 auto;padding:0;max-width:1200px;list-style:none;-ms-box-orient:horizontal;-ms-box-pack:center;-webkit-flex-flow:row wrap;-moz-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;justify-content:center}.tabs nav ul li{font-size:14px;position:relative;z-index:1;display:block;margin:0;text-align:center;-webkit-flex:1;-moz-flex:1;-ms-flex:1;flex:1}.tabs nav ul li.cols-4{width:25%}.tabs nav ul li.cols-3{width:33%}.tabs nav ul li.cols-2{width:50%}.tabs nav ul li.cols-1{width:100%}.tabs nav a{position:relative;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:2.5}.tabs nav a span{vertical-align:middle;font-size:.75em}.tabs nav li.tab-current a{color:#74777b}.tabs nav a:focus{outline:0}li.tab-current::after,li.tab-current::before{content:'';height:100%;position:absolute;-webkit-box-shadow:4px 0 15px 0 rgba(37,37,37,.63);box-shadow:4px 0 15px 0 rgba(37,37,37,.63);top:0;width:0;right:0;z-index:4;width:100%}li.tab-current::before{left:0;-webkit-box-shadow:0 0 15px 4px rgba(37,37,37,.63);box-shadow:0 0 15px 4px rgba(37,37,37,.63)}li.tab-inactive::after{content:'';width:100%;position:absolute;height:2px;bottom:-7px;left:0;-webkit-box-shadow:4px 0 15px 0 rgba(119,119,119,.58);box-shadow:4px 0 15px 0 rgba(0,0,0,.86)}.content-wrap{position:relative}.content-wrap section{display:none;margin:0 auto;max-width:1200px}section .czr-sub-set:first-child{margin:0}.content-wrap section.content-current{display:block}.no-flexbox nav ul{display:block}.no-flexbox nav ul li{min-width:15%;display:inline-block}.tabs-style-topline{max-width:1200px}.tabs-style-topline nav li{border:1px solid rgba(40,44,42,.1)}.czr-items-wrapper .tabs-style-topline nav li{border:none}.tabs-style-topline nav li:not(:last-child){border-right:none}.tabs-style-topline nav li.tab-current{border-top-color:#fff;border-bottom:none;background:rgba(238,238,238,.13)}.tabs-style-topline nav a{padding:.65em .5em;background:rgba(40,44,42,.05);color:#fff;line-height:1;-webkit-transition:color .2s;transition:color .2s;text-decoration:none}.czr-items-wrapper .tabs-style-topline nav a{background:rgba(40,44,42,.45)}.tabs-style-topline nav a:focus,.tabs-style-topline nav a:hover{text-decoration:underline}.tabs-style-topline nav li.tab-current a{background:0 0;box-shadow:inset 0 3px 0 #fff;color:#fff;text-decoration:underline}.czr-items-wrapper .tabs-style-topline nav li.tab-current a{color:#000}.tabs-style-topline .icon::before{display:block;margin:0}.tabs-style-topline nav a span{text-transform:uppercase;letter-spacing:1px;font-weight:700}@media screen and (max-width:58em){.tabs nav a.icon span{display:none}.tabs nav a:before{margin-right:0}}.czr_slide_module .czr-item-title{padding:0 7px;height:32px}.czr_slide_module .slide-thumb,.czr_slide_module .slide-title{display:block;height:32px;line-height:32px;float:left}.czr_slide_module .slide-title{padding-left:5px}.slide-mod-skope-notice{padding:3%;background:#fff;border-left:4px solid #00a0d2;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);float:left;font-size:12px;line-height:1.5em}.slide-mod-skope-notice .czr-skope-switch{cursor:pointer;text-decoration:underline}.modopts-top-buttons{width:100%;float:left;margin-bottom:4%;text-align:center}.item-bottom-buttons{width:100%;float:left;padding:1% 0}.item-bottom-btn,.modopt-top-btn{opacity:1;color:#fff;font-size:14px;cursor:pointer;border-width:1px;-webkit-appearance:none;-webkit-border-radius:3px;border-radius:4px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;opacity:1}.item-bottom-btn{background:#868686;width:47%;margin-right:2%;padding:1% 0}.modopt-top-btn{background:rgba(171,171,171,.5);width:170px;padding:2px 0}.item-bottom-btn:hover{background:#5d5d5d}.modopt-top-btn:hover{background:rgba(41,41,41,.53)}.item-bottom-btn[disabled],.item-bottom-btn[disabled]:hover,.modopt-top-btn[disabled],.modopt-top-btn[disabled]:hover{opacity:.4;cursor:default;-webkit-box-shadow:none!important;box-shadow:none!important;background:inherit}.czr-notice{font-size:12px;font-weight:400}.selecter-element{position:absolute;opacity:0}.selecter{display:block;float:right;margin:2px 0;position:relative;width:100%;z-index:100}.selecter .selecter-selected{background:#f9f9f9 url(img/jquery.fs.selecter-arrow.png) no-repeat right center;border:1px solid #ccc;border-radius:3px;color:#333;cursor:pointer;display:block;font-size:13px;margin:0;overflow:hidden;padding:4px 4%;position:relative;text-overflow:clip;z-index:49;box-shadow:inset 0 1px 2px rgba(0,0,0,.07);height:auto;line-height:18px;width:90%}.selecter .selecter-options{border:1px solid #ccc;border-width:0 1px 1px;background-color:#fefefe;border-radius:0 0 3px 3px;box-shadow:0 1px 4px rgba(0,0,0,.15);display:none;left:0;margin:0;max-height:260px;overflow:auto;overflow-x:hidden;padding:0;position:relative;top:100%;width:99%;z-index:50}.selecter .selecter-group{background:#f9f9f9;border-bottom:1px solid #e3e3e3;color:#999;display:block;font-size:11px;padding:5px 6px 4px;text-transform:uppercase}.selecter .selecter-item{background:#fff;border-bottom:1px solid #e3e3e3;color:#333;cursor:pointer;display:block;font-size:13px;margin:0;overflow:hidden;padding:8px 10px;text-overflow:ellipsis;width:86%;height:auto;line-height:14px;padding:8px 24px 8px 10px}.selecter .selecter-item.selected{background:#f9f9f9}.selecter .selecter-item.disabled{color:#999;cursor:default}.selecter .selecter-item:first-child{border-radius:0}.selecter .selecter-item:last-child{border-radius:0 0 2px 2px;border-bottom:0}.rtl .selecter .selecter-selected{background:#f9f9f9 url(img/jquery.fs.selecter-arrow.png) no-repeat 4% center}@media screen and (min-width:980px){.selecter .selecter-item.selected:hover,.selecter .selecter-item:hover{background-color:#f3f3f3}.selecter .selecter-item.disabled:hover{background-color:#fff}.selecter:hover .selecter-selected{background-color:#fff}.selecter.disabled .selecter-item:hover{background:#fff}}.selecter.open{z-index:101}.selecter.open .selecter-selected{border-radius:3px 3px 0 0;z-index:51}.selecter.focus .selecter-selected,.selecter.open .selecter-selected{background-color:#fff;box-shadow:0 0 5px rgba(0,0,0,.1)}.selecter.cover .selecter-options{border-radius:3px;border-width:1px;top:0}.selecter.cover .selecter-options .selecter-item.first{border-radius:3px 3px 0 0}.selecter.cover.open .selecter-selected{border-radius:3px 3px 0 0;z-index:49}.selecter.bottom .selecter-options{border-width:1px 1px 0;bottom:100%;top:auto}.selecter.bottom .selecter-item:last-child{border:none}.selecter.bottom.open .selecter-selected{border-radius:0 0 3px 3px}.selecter.bottom.open .selecter-options{border-radius:3px 3px 0 0}.selecter.bottom.cover .selecter-options{bottom:0;top:auto}.selecter.bottom.cover.open .selecter-selected{border-radius:3px}.selecter.bottom.cover.open .selecter-options{border-radius:3px}.selecter.multiple .selecter-options{border-radius:3px;border-width:1px;box-shadow:none;display:block;position:static;width:100%}.selecter.disabled .selecter-selected{background:#fff;border-color:#eee;color:#ccc;cursor:default}.selecter.disabled .selecter-options{background:#fff;border-color:#eee}.selecter.disabled .selecter-group,.selecter.disabled .selecter-item{border-color:#eee;color:#ccc;cursor:default}.selecter.disabled .selecter-item.selected{background:#fafafa}.selecter .selecter-options.scroller{overflow:hidden}.selecter .selecter-options.scroller .scroller-content{max-height:260px;padding:0}@media screen and (max-width:740px){.selecter{max-width:100%}}@media screen and (max-width:500px){.selecter{max-width:100%}}.stepper{border-radius:3px;margin:0 0 10px 0;overflow:hidden;position:relative;width:35%;float:left;clear:both}.stepper .stepper-input{background:#f9f9f9;border:1px solid #ccc;border-radius:3px;color:#333;font-size:13px;line-height:1.2;margin:0;overflow:hidden;padding:5px 10px 5px!important;width:100%!important;z-index:49;-moz-appearance:textfield;max-width:none!important}.stepper .stepper-input::-webkit-inner-spin-button,.stepper .stepper-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.stepper .stepper-input:focus{background-color:#fff}.stepper .stepper-arrow{background:#eee url(img/jquery.fs.stepper-arrows.png) no-repeat;border:1px solid #ccc;cursor:pointer;display:block;height:46%;position:absolute;right:0;text-indent:-99999px;width:20px;z-index:50}.stepper .stepper-arrow.up{background-position:center top;border-bottom:none;top:0}.stepper .stepper-arrow.down{background-position:center bottom;bottom:0}.rtl .stepper .stepper-input{text-align:left}@media screen and (min-width:740px){.stepper:hover .stepper-input{background-color:#fff}.stepper .stepper-step:hover{background-color:#f9f9f9}.stepper.disabled .stepper-arrow{background:#fff;border-color:#eee;cursor:default}}.stepper.disabled .stepper-input{background:#fff;border-color:#eee;color:#ccc}.stepper.disabled .stepper-arrow{background:#fff;border-color:#eee;cursor:default}.icheckbox_flat-green,.iradio_flat-green{display:inline-block;vertical-align:middle;margin:0;padding:0;width:20px;height:20px;background:url(img/green.png) no-repeat;border:none;cursor:pointer;top:4px;float:right}.rtl [class*=icheckbox_flat-]{float:left}.icheckbox_flat-green{background-position:0 0}.icheckbox_flat-green.checked{background-position:-22px 0}.icheckbox_flat-green.disabled{background-position:-44px 0;cursor:default}.icheckbox_flat-green.checked.disabled{background-position:-66px 0}.iradio_flat-green{background-position:-88px 0}.iradio_flat-green.checked{background-position:-110px 0}.iradio_flat-green.disabled{background-position:-132px 0;cursor:default}.iradio_flat-green.checked.disabled{background-position:-154px 0}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (-moz-min-device-pixel-ratio:1.5),only screen and (-o-min-device-pixel-ratio:3/2),only screen and (min-device-pixel-ratio:1.5){.icheckbox_flat-green,.iradio_flat-green{background-image:url(img/green@2x.png);-webkit-background-size:176px 22px;background-size:176px 22px}}.icheckbox_flat-grey,.iradio_flat-grey{display:inline-block;vertical-align:middle;margin:0;padding:0;width:20px;height:20px;background:url(img/grey.png) no-repeat;border:none;cursor:pointer;top:4px;float:right}.icheckbox_flat-grey{background-position:0 0}.icheckbox_flat-grey.checked{background-position:-22px 0}.icheckbox_flat-grey.disabled{background-position:-44px 0;cursor:default}.icheckbox_flat-grey.checked.disabled{background-position:-66px 0}.iradio_flat-grey{background-position:-88px 0}.iradio_flat-grey.checked{background-position:-110px 0}.iradio_flat-grey.disabled{background-position:-132px 0;cursor:default}.iradio_flat-grey.checked.disabled{background-position:-154px 0}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (-moz-min-device-pixel-ratio:1.5),only screen and (-o-min-device-pixel-ratio:3/2),only screen and (min-device-pixel-ratio:1.5){.icheckbox_flat-grey,.iradio_flat-grey{background-image:url(img/grey@2x.png);-webkit-background-size:176px 22px;background-size:176px 22px}}.czr-sub-set .icheckbox_flat-green,.iradio_flat-green{float:left}body .select2-container{z-index:1000000;width:100%!important}.customize-control-czr_layouts .select2-selection--single{height:33px}.customize-control-czr_layouts .select2-container--default .select2-selection--single .select2-selection__arrow{height:30px}.customize-control-czr_layouts .select2-selection--single:focus,.select2-selection__rendered:focus{outline:0}body .select2-drop{z-index:1000000}body .select2-container,span.select2-results{font-size:14px}.select2-container--default .select2-selection--multiple{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;width:99%;min-height:36px;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07)}.select2-container--default.select2-container--focus .select2-selection--multiple{border-color:#00a0d2!important;-webkit-box-shadow:0 0 2px rgba(26,188,156,.8)!important;box-shadow:0 0 2px rgba(26,188,156,.8)!important}.select2-results__options li{margin-bottom:0}.select2-container--default .select2-selection--multiple .select2-selection__choice{padding:2px;font-size:13px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;margin-bottom:0}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#00a0d2}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{font-size:17px;position:relative;top:2px;color:#23282d}.customize-control-czr_socials .select2-container--default .select2-selection--single .select2-selection__rendered{padding:5px;line-height:16px}#czr-customize-content_editor-pane{border-top:solid 1px #ddd;position:absolute;height:300px;bottom:-301px;right:0;left:0;z-index:20;background:#f1f1f1;display:block;-webkit-transition:all .2s;transition:all .2s;visibility:hidden}.czr-close-editor{position:absolute;cursor:pointer;right:20px;top:-33px;color:#444;background:#eee;font-size:13px;line-height:19px;height:20px;margin:5px 0 0 5px;padding:3px 8px 4px;border:1px solid #e5e5e5;border-bottom:none}body.czr-customize-content_editor-pane-resize #customize-preview,body.czr-customize-content_editor-pane-resize #czr-customize-content_editor-pane{-webkit-transition:none;transition:none}body.mce-fullscreen.czr-customize-content_editor-pane-open #czr-customize-content_editor-pane{top:0}body.czr-customize-content_editor-pane-open #czr-customize-content_editor-pane{bottom:40px;visibility:inherit}#czr-customize-content_editor-pane .wp-editor-tools{padding-top:5px;padding-right:10px}#czr-customize-content_editor-pane .wp-media-buttons{padding-left:5px}#customize-preview{height:auto}body.czr-customize-content_editor-pane-open #customize-preview{bottom:300px}body.mce-fullscreen #customize-preview{bottom:0}body.mce-fullscreen.czr-customize-content_editor-pane-open div.mce-fullscreen{position:relative;left:0}#wp-czr-customize-content_editor-container{border-left:0}#czr-customize-content_editor-dragbar{top:0;cursor:row-resize;display:block;height:4px;position:absolute;width:100%;z-index:21}body.czr-customize-content_editor-pane-resize #customize-preview:before{top:0;right:0;bottom:0;left:0;position:absolute;height:100%;width:100%;z-index:999999}.wp-customizer .ui-autocomplete.wplink-autocomplete{z-index:500110}.wp-customizer #wp-link-wrap{z-index:500105}.wp-customizer #wp_editbtns,.wp-customizer #wp_gallerybtns{z-index:500020}.wp-customizer #TB_overlay,.wp-customizer #TB_window{z-index:500050}.wp-customizer .mce-panel,.wp-customizer .mce-tooltip{z-index:500100!important}.czr-customize-content_editor-pane-open .wp-full-overlay.collapsed .wp-full-overlay-sidebar{z-index:30}.czr-customize-content_editor-pane-open .wp-full-overlay.collapsed .collapse-sidebar{bottom:308px}.czr-customize-content_editor-pane-open .wp-full-overlay.expanded .collapse-sidebar{bottom:0!important}.czr-customize-content_editor-pane-resize .wp-full-overlay.collapsed .collapse-sidebar{-webkit-transition:none;transition:none}.czr-customize-content_editor-pane-open.mce-fullscreen .wp-full-overlay.collapsed .collapse-sidebar{bottom:8px!important}.czr-sub-set[data-input-type=content_picker] .customize-control-title{width:100%}.czr-sub-set[data-input-type=content_picker] .czr-input{width:100%}.content-picker-item{height:2em}.content-picker-item .czr-picker-item-type{float:right;display:inline-block}.content-item-bar{line-height:1.2em;font-size:.9em}.content-item-bar .czr-picker-item-title{display:block;float:left;max-width:80%;text-overflow:ellipsis;overflow:hidden;font-size:13px;line-height:1.3em}.czr-sub-set[data-input-type=content_picker] span.czr-picker-item-title{display:block;float:left;max-width:80%;text-overflow:ellipsis;overflow:hidden;font-size:14px;line-height:2em;color:#000}.czr-sub-set[data-input-type=content_picker] span.czr-picker-item-type{display:inline-block;padding:0;padding-right:10px;float:right;line-height:2em}.czr-sub-set[data-input-type=range_slider]{padding:20px 0}.rangeslider,.rangeslider__fill{display:block;-moz-box-shadow:inset 0 1px 3px rgba(0,0,0,.3);-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.3);box-shadow:inset 0 1px 3px rgba(0,0,0,.3);-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px}.rangeslider{background:#e6e6e6;position:relative}.rangeslider--horizontal{height:12px;width:100%}.rangeslider--vertical{width:12px;min-height:150px;max-height:100%}.rangeslider--disabled{opacity:.4}.rangeslider__fill{background:#3b8dbd;position:absolute}.rangeslider--horizontal .rangeslider__fill{top:0;height:100%}.rangeslider--vertical .rangeslider__fill{bottom:0;width:100%}.rangeslider__handle{background:#fff;border:1px solid #ccc;cursor:pointer;display:inline-block;width:34px;height:34px;position:absolute;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwLjAiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMwMDAwMDAiIHN0b3Atb3BhY2l0eT0iMC4xIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idXJsKCNncmFkKSIgLz48L3N2Zz4g);background-size:100%;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0,rgba(255,255,255,0)),color-stop(100%,rgba(0,0,0,.1)));background-image:-moz-linear-gradient(rgba(255,255,255,0),rgba(0,0,0,.1));background-image:-webkit-linear-gradient(rgba(255,255,255,0),rgba(0,0,0,.1));background-image:linear-gradient(rgba(255,255,255,0),rgba(0,0,0,.1));-moz-box-shadow:0 0 8px rgba(0,0,0,.3);-webkit-box-shadow:0 0 8px rgba(0,0,0,.3);box-shadow:0 0 8px rgba(0,0,0,.3);-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%;line-height:35px;text-align:center;color:#000;font-size:13px}.rangeslider__handle:after{content:"";display:block;width:18px;height:18px;margin:auto;position:absolute;top:0;right:0;bottom:0;left:0;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjEzIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjZmZmZmZmIiBzdG9wLW9wYWNpdHk9IjAuMCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==);background-size:100%;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0,rgba(0,0,0,.13)),color-stop(100%,rgba(255,255,255,0)));background-image:-moz-linear-gradient(rgba(0,0,0,.13),rgba(255,255,255,0));background-image:-webkit-linear-gradient(rgba(0,0,0,.13),rgba(255,255,255,0));background-image:linear-gradient(rgba(0,0,0,.13),rgba(255,255,255,0));-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%}.rangeslider--active .rangeslider__handle,.rangeslider__handle:active{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwMDAwMCIgc3RvcC1vcGFjaXR5PSIwLjEiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMwMDAwMDAiIHN0b3Atb3BhY2l0eT0iMC4xMiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA==);background-size:100%;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0,rgba(0,0,0,.1)),color-stop(100%,rgba(0,0,0,.12)));background-image:-moz-linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.12));background-image:-webkit-linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.12));background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.12))}.rangeslider--horizontal .rangeslider__handle{top:-13px;touch-action:pan-y;-ms-touch-action:pan-y}.rangeslider--vertical .rangeslider__handle{left:-13px;touch-action:pan-x;-ms-touch-action:pan-x}input[type=range]:focus+.rangeslider .rangeslider__handle{-moz-box-shadow:0 0 8px rgba(255,0,255,.9);-webkit-box-shadow:0 0 8px rgba(255,0,255,.9);box-shadow:0 0 8px rgba(255,0,255,.9)}.attachment-media-view button{color:#000;padding:5px 7px;line-height:1.5em}.czr-toggle-check{position:relative;float:right}.czr-toggle-check__input[type=checkbox]{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;margin:0;padding:0;z-index:1}.czr-toggle-check__input[type=checkbox]:checked:before{content:"\f147";margin:-3px 0 0 -4px;color:#1e8cbe;float:left;display:inline-block;vertical-align:middle;width:16px;font:normal 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.czr-toggle-check .czr-toggle-check__track{content:"";display:inline-block;vertical-align:top;box-sizing:border-box;background-color:#fff;border:2px solid #6c7781;width:36px;height:18px;border-radius:9px;transition:background .2s ease}.czr-toggle-check.is-checked .czr-toggle-check__track{background-color:#33b3db;border:2px solid #33b3db;border:9px solid transparent}.czr-toggle-check .czr-toggle-check__thumb{display:block;position:absolute;top:4px;left:4px;width:10px;height:10px;border-radius:50%;transition:transform .1s ease;background-color:#6c7781;border:5px solid #6c7781;box-sizing:border-box}.czr-toggle-check.is-checked .czr-toggle-check__thumb{background-color:#fff;border-width:0;transform:translateX(18px)}.czr-toggle-check .czr-toggle-check__off{color:#6c7781;fill:currentColor;right:6px}.czr-toggle-check .czr-toggle-check__on{left:8px;-webkit-filter:invert(100%) contrast(500%);filter:invert(100%) contrast(500%);outline:1px solid transparent;outline-offset:-1px}.czr-toggle-check .czr-toggle-check__off,.czr-toggle-check .czr-toggle-check__on{position:absolute;top:6px}
inc/czr-base-fmk/assets/css/czr-control-footer.css ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Rate link */
2
+ #customize-footer-actions .collapse-sidebar-label {
3
+ display: none;
4
+ }
5
+ .czr-rate-link {
6
+ position: absolute;
7
+ bottom: 0;
8
+ left: 40px;
9
+ right: 0;
10
+ padding: 4px 12px 4px 0;
11
+ font-size: 10px;
12
+ line-height: 14px;
13
+ text-align: right;
14
+ }
15
+ .rtl .tc-rate-link {
16
+ text-align: left;
17
+ left: auto;
18
+ right: 40px;
19
+ padding: 4px 0 4px 12px;
20
+ }
21
+ .wp-full-overlay.collapsed .czr-rate-link {
22
+ display: none;
23
+ }
24
+ .czr-rate-link .czr-stars {
25
+ color: #E6B800;
26
+ text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.6);
27
+ }
28
+
29
+ @media screen and (min-width: 1025px) {
30
+ .wp-customizer .expanded #customize-footer-actions {
31
+ height: 85px;
32
+ background: inherit;
33
+ }
34
+ .wp-customizer #customize-controls .wp-full-overlay-sidebar-content {
35
+ bottom: 85px;
36
+ }
37
+ }
inc/czr-base-fmk/assets/css/czr-control-footer.min.css ADDED
@@ -0,0 +1 @@
 
1
+ #customize-footer-actions .collapse-sidebar-label{display:none}.czr-rate-link{position:absolute;bottom:0;left:40px;right:0;padding:4px 12px 4px 0;font-size:10px;line-height:14px;text-align:right}.rtl .tc-rate-link{text-align:left;left:auto;right:40px;padding:4px 0 4px 12px}.wp-full-overlay.collapsed .czr-rate-link{display:none}.czr-rate-link .czr-stars{color:#e6b800;text-shadow:0 1px 0 rgba(0,0,0,.6)}@media screen and (min-width:1025px){.wp-customizer .expanded #customize-footer-actions{height:85px;background:inherit}.wp-customizer #customize-controls .wp-full-overlay-sidebar-content{bottom:85px}}
inc/czr-base-fmk/assets/css/img/czr-spinner.gif ADDED
Binary file
inc/czr-base-fmk/assets/css/img/fs-sprite.png ADDED
Binary file
inc/czr-base-fmk/assets/css/img/green.png ADDED
Binary file
inc/czr-base-fmk/assets/css/img/green@2x.png ADDED
Binary file
inc/czr-base-fmk/assets/css/img/grey.png ADDED
Binary file
inc/czr-base-fmk/assets/css/img/grey@2x.png ADDED
Binary file
inc/czr-base-fmk/assets/css/img/jquery.fs.selecter-arrow.png ADDED
Binary file
inc/czr-base-fmk/assets/css/img/jquery.fs.stepper-arrows.png ADDED
Binary file
inc/czr-base-fmk/assets/css/lib/select2.css ADDED
@@ -0,0 +1,482 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .select2-container {
2
+ box-sizing: border-box;
3
+ display: inline-block;
4
+ margin: 0;
5
+ position: relative;
6
+ vertical-align: middle; }
7
+ .select2-container .select2-selection--single {
8
+ box-sizing: border-box;
9
+ cursor: pointer;
10
+ display: block;
11
+ height: 28px;
12
+ user-select: none;
13
+ -webkit-user-select: none; }
14
+ .select2-container .select2-selection--single .select2-selection__rendered {
15
+ display: block;
16
+ padding-left: 8px;
17
+ padding-right: 20px;
18
+ overflow: hidden;
19
+ text-overflow: ellipsis;
20
+ white-space: nowrap; }
21
+ .select2-container .select2-selection--single .select2-selection__clear {
22
+ position: relative; }
23
+ .select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered {
24
+ padding-right: 8px;
25
+ padding-left: 20px; }
26
+ .select2-container .select2-selection--multiple {
27
+ box-sizing: border-box;
28
+ cursor: pointer;
29
+ display: block;
30
+ min-height: 32px;
31
+ user-select: none;
32
+ -webkit-user-select: none; }
33
+ .select2-container .select2-selection--multiple .select2-selection__rendered {
34
+ display: inline-block;
35
+ overflow: hidden;
36
+ padding-left: 8px;
37
+ text-overflow: ellipsis;
38
+ white-space: nowrap; }
39
+ .select2-container .select2-search--inline {
40
+ float: left; }
41
+ .select2-container .select2-search--inline .select2-search__field {
42
+ box-sizing: border-box;
43
+ border: none;
44
+ font-size: 100%;
45
+ margin-top: 5px;
46
+ padding: 0; }
47
+ .select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {
48
+ -webkit-appearance: none; }
49
+
50
+ .select2-dropdown {
51
+ background-color: white;
52
+ border: 1px solid #aaa;
53
+ border-radius: 4px;
54
+ box-sizing: border-box;
55
+ display: block;
56
+ position: absolute;
57
+ left: -100000px;
58
+ width: 100%;
59
+ z-index: 1051; }
60
+
61
+ .select2-results {
62
+ display: block; }
63
+
64
+ .select2-results__options {
65
+ list-style: none;
66
+ margin: 0;
67
+ padding: 0; }
68
+
69
+ .select2-results__option {
70
+ padding: 6px;
71
+ user-select: none;
72
+ -webkit-user-select: none; }
73
+ .select2-results__option[aria-selected] {
74
+ cursor: pointer; }
75
+
76
+ .select2-container--open .select2-dropdown {
77
+ left: 0; }
78
+
79
+ .select2-container--open .select2-dropdown--above {
80
+ border-bottom: none;
81
+ border-bottom-left-radius: 0;
82
+ border-bottom-right-radius: 0; }
83
+
84
+ .select2-container--open .select2-dropdown--below {
85
+ border-top: none;
86
+ border-top-left-radius: 0;
87
+ border-top-right-radius: 0; }
88
+
89
+ .select2-search--dropdown {
90
+ display: block;
91
+ padding: 4px; }
92
+ .select2-search--dropdown .select2-search__field {
93
+ padding: 4px;
94
+ width: 100%;
95
+ box-sizing: border-box; }
96
+ .select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {
97
+ -webkit-appearance: none; }
98
+ .select2-search--dropdown.select2-search--hide {
99
+ display: none; }
100
+
101
+ .select2-close-mask {
102
+ border: 0;
103
+ margin: 0;
104
+ padding: 0;
105
+ display: block;
106
+ position: fixed;
107
+ left: 0;
108
+ top: 0;
109
+ min-height: 100%;
110
+ min-width: 100%;
111
+ height: auto;
112
+ width: auto;
113
+ opacity: 0;
114
+ z-index: 99;
115
+ background-color: #fff;
116
+ filter: alpha(opacity=0); }
117
+
118
+ .select2-hidden-accessible {
119
+ border: 0 !important;
120
+ clip: rect(0 0 0 0) !important;
121
+ height: 1px !important;
122
+ margin: -1px !important;
123
+ overflow: hidden !important;
124
+ padding: 0 !important;
125
+ position: absolute !important;
126
+ width: 1px !important; }
127
+
128
+ .select2-container--default .select2-selection--single {
129
+ background-color: #fff;
130
+ border: 1px solid #aaa;
131
+ border-radius: 4px; }
132
+ .select2-container--default .select2-selection--single .select2-selection__rendered {
133
+ color: #444;
134
+ line-height: 28px; }
135
+ .select2-container--default .select2-selection--single .select2-selection__clear {
136
+ cursor: pointer;
137
+ float: right;
138
+ font-weight: bold; }
139
+ .select2-container--default .select2-selection--single .select2-selection__placeholder {
140
+ color: #999; }
141
+ .select2-container--default .select2-selection--single .select2-selection__arrow {
142
+ height: 26px;
143
+ position: absolute;
144
+ top: 1px;
145
+ right: 1px;
146
+ width: 20px; }
147
+ .select2-container--default .select2-selection--single .select2-selection__arrow b {
148
+ border-color: #888 transparent transparent transparent;
149
+ border-style: solid;
150
+ border-width: 5px 4px 0 4px;
151
+ height: 0;
152
+ left: 50%;
153
+ margin-left: -4px;
154
+ margin-top: -2px;
155
+ position: absolute;
156
+ top: 50%;
157
+ width: 0; }
158
+
159
+ .select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear {
160
+ float: left; }
161
+
162
+ .select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow {
163
+ left: 1px;
164
+ right: auto; }
165
+
166
+ .select2-container--default.select2-container--disabled .select2-selection--single {
167
+ background-color: #eee;
168
+ cursor: default; }
169
+ .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {
170
+ display: none; }
171
+
172
+ .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
173
+ border-color: transparent transparent #888 transparent;
174
+ border-width: 0 4px 5px 4px; }
175
+
176
+ .select2-container--default .select2-selection--multiple {
177
+ background-color: white;
178
+ border: 1px solid #aaa;
179
+ border-radius: 4px;
180
+ cursor: text; }
181
+ .select2-container--default .select2-selection--multiple .select2-selection__rendered {
182
+ box-sizing: border-box;
183
+ list-style: none;
184
+ margin: 0;
185
+ padding: 0 5px;
186
+ width: 100%; }
187
+ .select2-container--default .select2-selection--multiple .select2-selection__placeholder {
188
+ color: #999;
189
+ margin-top: 5px;
190
+ float: left; }
191
+ .select2-container--default .select2-selection--multiple .select2-selection__clear {
192
+ cursor: pointer;
193
+ float: right;
194
+ font-weight: bold;
195
+ margin-top: 5px;
196
+ margin-right: 10px; }
197
+ .select2-container--default .select2-selection--multiple .select2-selection__choice {
198
+ background-color: #e4e4e4;
199
+ border: 1px solid #aaa;
200
+ border-radius: 4px;
201
+ cursor: default;
202
+ float: left;
203
+ margin-right: 5px;
204
+ margin-top: 5px;
205
+ padding: 0 5px; }
206
+ .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
207
+ color: #999;
208
+ cursor: pointer;
209
+ display: inline-block;
210
+ font-weight: bold;
211
+ margin-right: 2px; }
212
+ .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
213
+ color: #333; }
214
+
215
+ .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline {
216
+ float: right; }
217
+
218
+ .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
219
+ margin-left: 5px;
220
+ margin-right: auto; }
221
+
222
+ .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
223
+ margin-left: 2px;
224
+ margin-right: auto; }
225
+
226
+ .select2-container--default.select2-container--focus .select2-selection--multiple {
227
+ border: solid black 1px;
228
+ outline: 0; }
229
+
230
+ .select2-container--default.select2-container--disabled .select2-selection--multiple {
231
+ background-color: #eee;
232
+ cursor: default; }
233
+
234
+ .select2-container--default.select2-container--disabled .select2-selection__choice__remove {
235
+ display: none; }
236
+
237
+ .select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {
238
+ border-top-left-radius: 0;
239
+ border-top-right-radius: 0; }
240
+
241
+ .select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {
242
+ border-bottom-left-radius: 0;
243
+ border-bottom-right-radius: 0; }
244
+
245
+ .select2-container--default .select2-search--dropdown .select2-search__field {
246
+ border: 1px solid #aaa; }
247
+
248
+ .select2-container--default .select2-search--inline .select2-search__field {
249
+ background: transparent;
250
+ border: none;
251
+ outline: 0;
252
+ box-shadow: none;
253
+ -webkit-appearance: textfield; }
254
+
255
+ .select2-container--default .select2-results > .select2-results__options {
256
+ max-height: 200px;
257
+ overflow-y: auto; }
258
+
259
+ .select2-container--default .select2-results__option[role=group] {
260
+ padding: 0; }
261
+
262
+ .select2-container--default .select2-results__option[aria-disabled=true] {
263
+ color: #999; }
264
+
265
+ .select2-container--default .select2-results__option[aria-selected=true] {
266
+ background-color: #ddd; }
267
+
268
+ .select2-container--default .select2-results__option .select2-results__option {
269
+ padding-left: 1em; }
270
+ .select2-container--default .select2-results__option .select2-results__option .select2-results__group {
271
+ padding-left: 0; }
272
+ .select2-container--default .select2-results__option .select2-results__option .select2-results__option {
273
+ margin-left: -1em;
274
+ padding-left: 2em; }
275
+ .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
276
+ margin-left: -2em;
277
+ padding-left: 3em; }
278
+ .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
279
+ margin-left: -3em;
280
+ padding-left: 4em; }
281
+ .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
282
+ margin-left: -4em;
283
+ padding-left: 5em; }
284
+ .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
285
+ margin-left: -5em;
286
+ padding-left: 6em; }
287
+
288
+ .select2-container--default .select2-results__option--highlighted[aria-selected] {
289
+ background-color: #5897fb;
290
+ color: white; }
291
+
292
+ .select2-container--default .select2-results__group {
293
+ cursor: default;
294
+ display: block;
295
+ padding: 6px; }
296
+
297
+ .select2-container--classic .select2-selection--single {
298
+ background-color: #f7f7f7;
299
+ border: 1px solid #aaa;
300
+ border-radius: 4px;
301
+ outline: 0;
302
+ background-image: -webkit-linear-gradient(top, white 50%, #eeeeee 100%);
303
+ background-image: -o-linear-gradient(top, white 50%, #eeeeee 100%);
304
+ background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%);
305
+ background-repeat: repeat-x;
306
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }
307
+ .select2-container--classic .select2-selection--single:focus {
308
+ border: 1px solid #5897fb; }
309
+ .select2-container--classic .select2-selection--single .select2-selection__rendered {
310
+ color: #444;
311
+ line-height: 28px; }
312
+ .select2-container--classic .select2-selection--single .select2-selection__clear {
313
+ cursor: pointer;
314
+ float: right;
315
+ font-weight: bold;
316
+ margin-right: 10px; }
317
+ .select2-container--classic .select2-selection--single .select2-selection__placeholder {
318
+ color: #999; }
319
+ .select2-container--classic .select2-selection--single .select2-selection__arrow {
320
+ background-color: #ddd;
321
+ border: none;
322
+ border-left: 1px solid #aaa;
323
+ border-top-right-radius: 4px;
324
+ border-bottom-right-radius: 4px;
325
+ height: 26px;
326
+ position: absolute;
327
+ top: 1px;
328
+ right: 1px;
329
+ width: 20px;
330
+ background-image: -webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
331
+ background-image: -o-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
332
+ background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%);
333
+ background-repeat: repeat-x;
334
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); }
335
+ .select2-container--classic .select2-selection--single .select2-selection__arrow b {
336
+ border-color: #888 transparent transparent transparent;
337
+ border-style: solid;
338
+ border-width: 5px 4px 0 4px;
339
+ height: 0;
340
+ left: 50%;
341
+ margin-left: -4px;
342
+ margin-top: -2px;
343
+ position: absolute;
344
+ top: 50%;
345
+ width: 0; }
346
+
347
+ .select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear {
348
+ float: left; }
349
+
350
+ .select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow {
351
+ border: none;
352
+ border-right: 1px solid #aaa;
353
+ border-radius: 0;
354
+ border-top-left-radius: 4px;
355
+ border-bottom-left-radius: 4px;
356
+ left: 1px;
357
+ right: auto; }
358
+
359
+ .select2-container--classic.select2-container--open .select2-selection--single {
360
+ border: 1px solid #5897fb; }
361
+ .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow {
362
+ background: transparent;
363
+ border: none; }
364
+ .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b {
365
+ border-color: transparent transparent #888 transparent;
366
+ border-width: 0 4px 5px 4px; }
367
+
368
+ .select2-container--classic.select2-container--open.select2-container--above .select2-selection--single {
369
+ border-top: none;
370
+ border-top-left-radius: 0;
371
+ border-top-right-radius: 0;
372
+ background-image: -webkit-linear-gradient(top, white 0%, #eeeeee 50%);
373
+ background-image: -o-linear-gradient(top, white 0%, #eeeeee 50%);
374
+ background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%);
375
+ background-repeat: repeat-x;
376
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }
377
+
378
+ .select2-container--classic.select2-container--open.select2-container--below .select2-selection--single {
379
+ border-bottom: none;
380
+ border-bottom-left-radius: 0;
381
+ border-bottom-right-radius: 0;
382
+ background-image: -webkit-linear-gradient(top, #eeeeee 50%, white 100%);
383
+ background-image: -o-linear-gradient(top, #eeeeee 50%, white 100%);
384
+ background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%);
385
+ background-repeat: repeat-x;
386
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); }
387
+
388
+ .select2-container--classic .select2-selection--multiple {
389
+ background-color: white;
390
+ border: 1px solid #aaa;
391
+ border-radius: 4px;
392
+ cursor: text;
393
+ outline: 0; }
394
+ .select2-container--classic .select2-selection--multiple:focus {
395
+ border: 1px solid #5897fb; }
396
+ .select2-container--classic .select2-selection--multiple .select2-selection__rendered {
397
+ list-style: none;
398
+ margin: 0;
399
+ padding: 0 5px; }
400
+ .select2-container--classic .select2-selection--multiple .select2-selection__clear {
401
+ display: none; }
402
+ .select2-container--classic .select2-selection--multiple .select2-selection__choice {
403
+ background-color: #e4e4e4;
404
+ border: 1px solid #aaa;
405
+ border-radius: 4px;
406
+ cursor: default;
407
+ float: left;
408
+ margin-right: 5px;
409
+ margin-top: 5px;
410
+ padding: 0 5px; }
411
+ .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove {
412
+ color: #888;
413
+ cursor: pointer;
414
+ display: inline-block;
415
+ font-weight: bold;
416
+ margin-right: 2px; }
417
+ .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover {
418
+ color: #555; }
419
+
420
+ .select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
421
+ float: right; }
422
+
423
+ .select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
424
+ margin-left: 5px;
425
+ margin-right: auto; }
426
+
427
+ .select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
428
+ margin-left: 2px;
429
+ margin-right: auto; }
430
+
431
+ .select2-container--classic.select2-container--open .select2-selection--multiple {
432
+ border: 1px solid #5897fb; }
433
+
434
+ .select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple {
435
+ border-top: none;
436
+ border-top-left-radius: 0;
437
+ border-top-right-radius: 0; }
438
+
439
+ .select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple {
440
+ border-bottom: none;
441
+ border-bottom-left-radius: 0;
442
+ border-bottom-right-radius: 0; }
443
+
444
+ .select2-container--classic .select2-search--dropdown .select2-search__field {
445
+ border: 1px solid #aaa;
446
+ outline: 0; }
447
+
448
+ .select2-container--classic .select2-search--inline .select2-search__field {
449
+ outline: 0;
450
+ box-shadow: none; }
451
+
452
+ .select2-container--classic .select2-dropdown {
453
+ background-color: white;
454
+ border: 1px solid transparent; }
455
+
456
+ .select2-container--classic .select2-dropdown--above {
457
+ border-bottom: none; }
458
+
459
+ .select2-container--classic .select2-dropdown--below {
460
+ border-top: none; }
461
+
462
+ .select2-container--classic .select2-results > .select2-results__options {
463
+ max-height: 200px;
464
+ overflow-y: auto; }
465
+
466
+ .select2-container--classic .select2-results__option[role=group] {
467
+ padding: 0; }
468
+
469
+ .select2-container--classic .select2-results__option[aria-disabled=true] {
470
+ color: grey; }
471
+
472
+ .select2-container--classic .select2-results__option--highlighted[aria-selected] {
473
+ background-color: #3875d7;
474
+ color: white; }
475
+
476
+ .select2-container--classic .select2-results__group {
477
+ cursor: default;
478
+ display: block;
479
+ padding: 6px; }
480
+
481
+ .select2-container--classic.select2-container--open .select2-dropdown {
482
+ border-color: #5897fb; }
inc/czr-base-fmk/assets/css/lib/select2.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__placeholder{color:#999;margin-top:5px;float:left}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-top:5px;margin-right:10px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline{float:right}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid #000 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #fff 50%, #eee 100%);background-image:-o-linear-gradient(top, #fff 50%, #eee 100%);background-image:linear-gradient(to bottom, #fff 50%, #eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eee 50%, #ccc 100%);background-image:-o-linear-gradient(top, #eee 50%, #ccc 100%);background-image:linear-gradient(to bottom, #eee 50%, #ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #fff 0%, #eee 50%);background-image:-o-linear-gradient(top, #fff 0%, #eee 50%);background-image:linear-gradient(to bottom, #fff 0%, #eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eee 50%, #fff 100%);background-image:-o-linear-gradient(top, #eee 50%, #fff 100%);background-image:linear-gradient(to bottom, #eee 50%, #fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{float:right}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb}
inc/czr-base-fmk/assets/fonts/css/fa-brands.css ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Font Awesome Free 5.0.4 by @fontawesome - http://fontawesome.com
3
+ * License - http://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4
+ */
5
+ @font-face {
6
+ font-family: 'Font Awesome 5 Brands';
7
+ font-style: normal;
8
+ font-weight: normal;
9
+ src: url("../webfonts/fa-brands-400.eot");
10
+ src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); }
11
+
12
+ .fab {
13
+ font-family: 'Font Awesome 5 Brands'; }
inc/czr-base-fmk/assets/fonts/css/fa-brands.min.css ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /*!
2
+ * Font Awesome Free 5.0.4 by @fontawesome - http://fontawesome.com
3
+ * License - http://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4
+ */
5
+ @font-face{font-family:Font Awesome\ 5 Brands;font-style:normal;font-weight:400;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:Font Awesome\ 5 Brands}
inc/czr-base-fmk/assets/fonts/css/fa-regular.css ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Font Awesome Free 5.0.4 by @fontawesome - http://fontawesome.com
3
+ * License - http://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4
+ */
5
+ @font-face {
6
+ font-family: 'Font Awesome 5 Free';
7
+ font-style: normal;
8
+ font-weight: 400;
9
+ src: url("../webfonts/fa-regular-400.eot");
10
+ src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); }
11
+
12
+ .far {
13
+ font-family: 'Font Awesome 5 Free';
14
+ font-weight: 400; }
inc/czr-base-fmk/assets/fonts/css/fa-regular.min.css ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /*!
2
+ * Font Awesome Free 5.0.4 by @fontawesome - http://fontawesome.com
3
+ * License - http://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4
+ */
5
+ @font-face{font-family:Font Awesome\ 5 Free;font-style:normal;font-weight:400;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:Font Awesome\ 5 Free;font-weight:400}
inc/czr-base-fmk/assets/fonts/css/fa-solid.css ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Font Awesome Free 5.0.4 by @fontawesome - http://fontawesome.com
3
+ * License - http://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4
+ */
5
+ @font-face {
6
+ font-family: 'Font Awesome 5 Free';
7
+ font-style: normal;
8
+ font-weight: 900;
9
+ src: url("../webfonts/fa-solid-900.eot");
10
+ src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); }
11
+
12
+ .fa,
13
+ .fas {
14
+ font-family: 'Font Awesome 5 Free';
15
+ font-weight: 900; }
inc/czr-base-fmk/assets/fonts/css/fa-solid.min.css ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /*!
2
+ * Font Awesome Free 5.0.4 by @fontawesome - http://fontawesome.com
3
+ * License - http://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4
+ */
5
+ @font-face{font-family:Font Awesome\ 5 Free;font-style:normal;font-weight:900;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:Font Awesome\ 5 Free;font-weight:900}
inc/czr-base-fmk/assets/fonts/css/fontawesome-all.css ADDED
@@ -0,0 +1,2609 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Font Awesome Free 5.0.4 by @fontawesome - http://fontawesome.com
3
+ * License - http://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4
+ */
5
+ .fa,
6
+ .fas,
7
+ .far,
8
+ .fal,
9
+ .fab {
10
+ -moz-osx-font-smoothing: grayscale;
11
+ -webkit-font-smoothing: antialiased;
12
+ display: inline-block;
13
+ font-style: normal;
14
+ font-variant: normal;
15
+ text-rendering: auto;
16
+ line-height: 1; }
17
+
18
+ .fa-lg {
19
+ font-size: 1.33333em;
20
+ line-height: 0.75em;
21
+ vertical-align: -.0667em; }
22
+
23
+ .fa-xs {
24
+ font-size: .75em; }
25
+
26
+ .fa-sm {
27
+ font-size: .875em; }
28
+
29
+ .fa-1x {
30
+ font-size: 1em; }
31
+
32
+ .fa-2x {
33
+ font-size: 2em; }
34
+
35
+ .fa-3x {
36
+ font-size: 3em; }
37
+
38
+ .fa-4x {
39
+ font-size: 4em; }
40
+
41
+ .fa-5x {
42
+ font-size: 5em; }
43
+
44
+ .fa-6x {
45
+ font-size: 6em; }
46
+
47
+ .fa-7x {
48
+ font-size: 7em; }
49
+
50
+ .fa-8x {
51
+ font-size: 8em; }
52
+
53
+ .fa-9x {
54
+ font-size: 9em; }
55
+
56
+ .fa-10x {
57
+ font-size: 10em; }
58
+
59
+ .fa-fw {
60
+ text-align: center;
61
+ width: 1.25em; }
62
+
63
+ .fa-ul {
64
+ list-style-type: none;
65
+ margin-left: 2.5em;
66
+ padding-left: 0; }
67
+ .fa-ul > li {
68
+ position: relative; }
69
+
70
+ .fa-li {
71
+ left: -2em;
72
+ position: absolute;
73
+ text-align: center;
74
+ width: 2em;
75
+ line-height: inherit; }
76
+
77
+ .fa-border {
78
+ border: solid 0.08em #eee;
79
+ border-radius: .1em;
80
+ padding: .2em .25em .15em; }
81
+
82
+ .fa-pull-left {
83
+ float: left; }
84
+
85
+ .fa-pull-right {
86
+ float: right; }
87
+
88
+ .fa.fa-pull-left,
89
+ .fas.fa-pull-left,
90
+ .far.fa-pull-left,
91
+ .fal.fa-pull-left,
92
+ .fab.fa-pull-left {
93
+ margin-right: .3em; }
94
+
95
+ .fa.fa-pull-right,
96
+ .fas.fa-pull-right,
97
+ .far.fa-pull-right,
98
+ .fal.fa-pull-right,
99
+ .fab.fa-pull-right {
100
+ margin-left: .3em; }
101
+
102
+ .fa-spin {
103
+ -webkit-animation: fa-spin 2s infinite linear;
104
+ animation: fa-spin 2s infinite linear; }
105
+
106
+ .fa-pulse {
107
+ -webkit-animation: fa-spin 1s infinite steps(8);
108
+ animation: fa-spin 1s infinite steps(8); }
109
+
110
+ @-webkit-keyframes fa-spin {
111
+ 0% {
112
+ -webkit-transform: rotate(0deg);
113
+ transform: rotate(0deg); }
114
+ 100% {
115
+ -webkit-transform: rotate(360deg);
116
+ transform: rotate(360deg); } }
117
+
118
+ @keyframes fa-spin {
119
+ 0% {
120
+ -webkit-transform: rotate(0deg);
121
+ transform: rotate(0deg); }
122
+ 100% {
123
+ -webkit-transform: rotate(360deg);
124
+ transform: rotate(360deg); } }
125
+
126
+ .fa-rotate-90 {
127
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
128
+ -webkit-transform: rotate(90deg);
129
+ transform: rotate(90deg); }
130
+
131
+ .fa-rotate-180 {
132
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
133
+ -webkit-transform: rotate(180deg);
134
+ transform: rotate(180deg); }
135
+
136
+ .fa-rotate-270 {
137
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
138
+ -webkit-transform: rotate(270deg);
139
+ transform: rotate(270deg); }
140
+
141
+ .fa-flip-horizontal {
142
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
143
+ -webkit-transform: scale(-1, 1);
144
+ transform: scale(-1, 1); }
145
+
146
+ .fa-flip-vertical {
147
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
148
+ -webkit-transform: scale(1, -1);
149
+ transform: scale(1, -1); }
150
+
151
+ .fa-flip-horizontal.fa-flip-vertical {
152
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
153
+ -webkit-transform: scale(-1, -1);
154
+ transform: scale(-1, -1); }
155
+
156
+ :root .fa-rotate-90,
157
+ :root .fa-rotate-180,
158
+ :root .fa-rotate-270,
159
+ :root .fa-flip-horizontal,
160
+ :root .fa-flip-vertical {
161
+ -webkit-filter: none;
162
+ filter: none; }
163
+
164
+ .fa-stack {
165
+ display: inline-block;
166
+ height: 2em;
167
+ line-height: 2em;
168
+ position: relative;
169
+ vertical-align: middle;
170
+ width: 2em; }
171
+
172
+ .fa-stack-1x,
173
+ .fa-stack-2x {
174
+ left: 0;
175
+ position: absolute;
176
+ text-align: center;
177
+ width: 100%; }
178
+
179
+ .fa-stack-1x {
180
+ line-height: inherit; }
181
+
182
+ .fa-stack-2x {
183
+ font-size: 2em; }
184
+
185
+ .fa-inverse {
186
+ color: #fff; }
187
+
188
+ /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
189
+ readers do not read off random characters that represent icons */
190
+ .fa-500px:before {
191
+ content: "\f26e"; }
192
+
193
+ .fa-accessible-icon:before {
194
+ content: "\f368"; }
195
+
196
+ .fa-accusoft:before {
197
+ content: "\f369"; }
198
+
199
+ .fa-address-book:before {
200
+ content: "\f2b9"; }
201
+
202
+ .fa-address-card:before {
203
+ content: "\f2bb"; }
204
+
205
+ .fa-adjust:before {
206
+ content: "\f042"; }
207
+
208
+ .fa-adn:before {
209
+ content: "\f170"; }
210
+
211
+ .fa-adversal:before {
212
+ content: "\f36a"; }
213
+
214
+ .fa-affiliatetheme:before {
215
+ content: "\f36b"; }
216
+
217
+ .fa-algolia:before {
218
+ content: "\f36c"; }
219
+
220
+ .fa-align-center:before {
221
+ content: "\f037"; }
222
+
223
+ .fa-align-justify:before {
224
+ content: "\f039"; }
225
+
226
+ .fa-align-left:before {
227
+ content: "\f036"; }
228
+
229
+ .fa-align-right:before {
230
+ content: "\f038"; }
231
+
232
+ .fa-amazon:before {
233
+ content: "\f270"; }
234
+
235
+ .fa-amazon-pay:before {
236
+ content: "\f42c"; }
237
+
238
+ .fa-ambulance:before {
239
+ content: "\f0f9"; }
240
+
241
+ .fa-american-sign-language-interpreting:before {
242
+ content: "\f2a3"; }
243
+
244
+ .fa-amilia:before {
245
+ content: "\f36d"; }
246
+
247
+ .fa-anchor:before {
248
+ content: "\f13d"; }
249
+
250
+ .fa-android:before {
251
+ content: "\f17b"; }
252
+
253
+ .fa-angellist:before {
254
+ content: "\f209"; }
255
+
256
+ .fa-angle-double-down:before {
257
+ content: "\f103"; }
258
+
259
+ .fa-angle-double-left:before {
260
+ content: "\f100"; }
261
+
262
+ .fa-angle-double-right:before {
263
+ content: "\f101"; }
264
+
265
+ .fa-angle-double-up:before {
266
+ content: "\f102"; }
267
+
268
+ .fa-angle-down:before {
269
+ content: "\f107"; }
270
+
271
+ .fa-angle-left:before {
272
+ content: "\f104"; }
273
+
274
+ .fa-angle-right:before {
275
+ content: "\f105"; }
276
+
277
+ .fa-angle-up:before {
278
+ content: "\f106"; }
279
+
280
+ .fa-angrycreative:before {
281
+ content: "\f36e"; }
282
+
283
+ .fa-angular:before {
284
+ content: "\f420"; }
285
+
286
+ .fa-app-store:before {
287
+ content: "\f36f"; }
288
+
289
+ .fa-app-store-ios:before {
290
+ content: "\f370"; }
291
+
292
+ .fa-apper:before {
293
+ content: "\f371"; }
294
+
295
+ .fa-apple:before {
296
+ content: "\f179"; }
297
+
298
+ .fa-apple-pay:before {
299
+ content: "\f415"; }
300
+
301
+ .fa-archive:before {
302
+ content: "\f187"; }
303
+
304
+ .fa-arrow-alt-circle-down:before {
305
+ content: "\f358"; }
306
+
307
+ .fa-arrow-alt-circle-left:before {
308
+ content: "\f359"; }
309
+
310
+ .fa-arrow-alt-circle-right:before {
311
+ content: "\f35a"; }
312
+
313
+ .fa-arrow-alt-circle-up:before {
314
+ content: "\f35b"; }
315
+
316
+ .fa-arrow-circle-down:before {
317
+ content: "\f0ab"; }
318
+
319
+ .fa-arrow-circle-left:before {
320
+ content: "\f0a8"; }
321
+
322
+ .fa-arrow-circle-right:before {
323
+ content: "\f0a9"; }
324
+
325
+ .fa-arrow-circle-up:before {
326
+ content: "\f0aa"; }
327
+
328
+ .fa-arrow-down:before {
329
+ content: "\f063"; }
330
+
331
+ .fa-arrow-left:before {
332
+ content: "\f060"; }
333
+
334
+ .fa-arrow-right:before {
335
+ content: "\f061"; }
336
+
337
+ .fa-arrow-up:before {
338
+ content: "\f062"; }
339
+
340
+ .fa-arrows-alt:before {
341
+ content: "\f0b2"; }
342
+
343
+ .fa-arrows-alt-h:before {
344
+ content: "\f337"; }
345
+
346
+ .fa-arrows-alt-v:before {
347
+ content: "\f338"; }
348
+
349
+ .fa-assistive-listening-systems:before {
350
+ content: "\f2a2"; }
351
+
352
+ .fa-asterisk:before {
353
+ content: "\f069"; }
354
+
355
+ .fa-asymmetrik:before {
356
+ content: "\f372"; }
357
+
358
+ .fa-at:before {
359
+ content: "\f1fa"; }
360
+
361
+ .fa-audible:before {
362
+ content: "\f373"; }
363
+
364
+ .fa-audio-description:before {
365
+ content: "\f29e"; }
366
+
367
+ .fa-autoprefixer:before {
368
+ content: "\f41c"; }
369
+
370
+ .fa-avianex:before {
371
+ content: "\f374"; }
372
+
373
+ .fa-aviato:before {
374
+ content: "\f421"; }
375
+
376
+ .fa-aws:before {
377
+ content: "\f375"; }
378
+
379
+ .fa-backward:before {
380
+ content: "\f04a"; }
381
+
382
+ .fa-balance-scale:before {
383
+ content: "\f24e"; }
384
+
385
+ .fa-ban:before {
386
+ content: "\f05e"; }
387
+
388
+ .fa-bandcamp:before {
389
+ content: "\f2d5"; }
390
+
391
+ .fa-barcode:before {
392
+ content: "\f02a"; }
393
+
394
+ .fa-bars:before {
395
+ content: "\f0c9"; }
396
+
397
+ .fa-bath:before {
398
+ content: "\f2cd"; }
399
+
400
+ .fa-battery-empty:before {
401
+ content: "\f244"; }
402
+
403
+ .fa-battery-full:before {
404
+ content: "\f240"; }
405
+
406
+ .fa-battery-half:before {
407
+ content: "\f242"; }
408
+
409
+ .fa-battery-quarter:before {
410
+ content: "\f243"; }
411
+
412
+ .fa-battery-three-quarters:before {
413
+ content: "\f241"; }
414
+
415
+ .fa-bed:before {
416
+ content: "\f236"; }
417
+
418
+ .fa-beer:before {
419
+ content: "\f0fc"; }
420
+
421
+ .fa-behance:before {
422
+ content: "\f1b4"; }
423
+
424
+ .fa-behance-square:before {
425
+ content: "\f1b5"; }
426
+
427
+ .fa-bell:before {
428
+ content: "\f0f3"; }
429
+
430
+ .fa-bell-slash:before {
431
+ content: "\f1f6"; }
432
+
433
+ .fa-bicycle:before {
434
+ content: "\f206"; }
435
+
436
+ .fa-bimobject:before {
437
+ content: "\f378"; }
438
+
439
+ .fa-binoculars:before {
440
+ content: "\f1e5"; }
441
+
442
+ .fa-birthday-cake:before {
443
+ content: "\f1fd"; }
444
+
445
+ .fa-bitbucket:before {
446
+ content: "\f171"; }
447
+
448
+ .fa-bitcoin:before {
449
+ content: "\f379"; }
450
+
451
+ .fa-bity:before {
452
+ content: "\f37a"; }
453
+
454
+ .fa-black-tie:before {
455
+ content: "\f27e"; }
456
+
457
+ .fa-blackberry:before {
458
+ content: "\f37b"; }
459
+
460
+ .fa-blind:before {
461
+ content: "\f29d"; }
462
+
463
+ .fa-blogger:before {
464
+ content: "\f37c"; }
465
+
466
+ .fa-blogger-b:before {
467
+ content: "\f37d"; }
468
+
469
+ .fa-bluetooth:before {
470
+ content: "\f293"; }
471
+
472
+ .fa-bluetooth-b:before {
473
+ content: "\f294"; }
474
+
475
+ .fa-bold:before {
476
+ content: "\f032"; }
477
+
478
+ .fa-bolt:before {
479
+ content: "\f0e7"; }
480
+
481
+ .fa-bomb:before {
482
+ content: "\f1e2"; }
483
+
484
+ .fa-book:before {
485
+ content: "\f02d"; }
486
+
487
+ .fa-bookmark:before {
488
+ content: "\f02e"; }
489
+
490
+ .fa-braille:before {
491
+ content: "\f2a1"; }
492
+
493
+ .fa-briefcase:before {
494
+ content: "\f0b1"; }
495
+
496
+ .fa-btc:before {
497
+ content: "\f15a"; }
498
+
499
+ .fa-bug:before {
500
+ content: "\f188"; }
501
+
502
+ .fa-building:before {
503
+ content: "\f1ad"; }
504
+
505
+ .fa-bullhorn:before {
506
+ content: "\f0a1"; }
507
+
508
+ .fa-bullseye:before {
509
+ content: "\f140"; }
510
+
511
+ .fa-buromobelexperte:before {
512
+ content: "\f37f"; }
513
+
514
+ .fa-bus:before {
515
+ content: "\f207"; }
516
+
517
+ .fa-buysellads:before {
518
+ content: "\f20d"; }
519
+
520
+ .fa-calculator:before {
521
+ content: "\f1ec"; }
522
+
523
+ .fa-calendar:before {
524
+ content: "\f133"; }
525
+
526
+ .fa-calendar-alt:before {
527
+ content: "\f073"; }
528
+
529
+ .fa-calendar-check:before {
530
+ content: "\f274"; }
531
+
532
+ .fa-calendar-minus:before {
533
+ content: "\f272"; }
534
+
535
+ .fa-calendar-plus:before {
536
+ content: "\f271"; }
537
+
538
+ .fa-calendar-times:before {
539
+ content: "\f273"; }
540
+
541
+ .fa-camera:before {
542
+ content: "\f030"; }
543
+
544
+ .fa-camera-retro:before {
545
+ content: "\f083"; }
546
+
547
+ .fa-car:before {
548
+ content: "\f1b9"; }
549
+
550
+ .fa-caret-down:before {
551
+ content: "\f0d7"; }
552
+
553
+ .fa-caret-left:before {
554
+ content: "\f0d9"; }
555
+
556
+ .fa-caret-right:before {
557
+ content: "\f0da"; }
558
+
559
+ .fa-caret-square-down:before {
560
+ content: "\f150"; }
561
+
562
+ .fa-caret-square-left:before {
563
+ content: "\f191"; }
564
+
565
+ .fa-caret-square-right:before {
566
+ content: "\f152"; }
567
+
568
+ .fa-caret-square-up:before {
569
+ content: "\f151"; }
570
+
571
+ .fa-caret-up:before {
572
+ content: "\f0d8"; }
573
+
574
+ .fa-cart-arrow-down:before {
575
+ content: "\f218"; }
576
+
577
+ .fa-cart-plus:before {
578
+ content: "\f217"; }
579
+
580
+ .fa-cc-amazon-pay:before {
581
+ content: "\f42d"; }
582
+
583
+ .fa-cc-amex:before {
584
+ content: "\f1f3"; }
585
+
586
+ .fa-cc-apple-pay:before {
587
+ content: "\f416"; }
588
+
589
+ .fa-cc-diners-club:before {
590
+ content: "\f24c"; }
591
+
592
+ .fa-cc-discover:before {
593
+ content: "\f1f2"; }
594
+
595
+ .fa-cc-jcb:before {
596
+ content: "\f24b"; }
597
+
598
+ .fa-cc-mastercard:before {
599
+ content: "\f1f1"; }
600
+
601
+ .fa-cc-paypal:before {
602
+ content: "\f1f4"; }
603
+
604
+ .fa-cc-stripe:before {
605
+ content: "\f1f5"; }
606
+
607
+ .fa-cc-visa:before {
608
+ content: "\f1f0"; }
609
+
610
+ .fa-centercode:before {
611
+ content: "\f380"; }
612
+
613
+ .fa-certificate:before {
614
+ content: "\f0a3"; }
615
+
616
+ .fa-chart-area:before {
617
+ content: "\f1fe"; }
618
+
619
+ .fa-chart-bar:before {
620
+ content: "\f080"; }
621
+
622
+ .fa-chart-line:before {
623
+ content: "\f201"; }
624
+
625
+ .fa-chart-pie:before {
626
+ content: "\f200"; }
627
+
628
+ .fa-check:before {
629
+ content: "\f00c"; }
630
+
631
+ .fa-check-circle:before {
632
+ content: "\f058"; }
633
+
634
+ .fa-check-square:before {
635
+ content: "\f14a"; }
636
+
637
+ .fa-chevron-circle-down:before {
638
+ content: "\f13a"; }
639
+
640
+ .fa-chevron-circle-left:before {
641
+ content: "\f137"; }
642
+
643
+ .fa-chevron-circle-right:before {
644
+ content: "\f138"; }
645
+
646
+ .fa-chevron-circle-up:before {
647
+ content: "\f139"; }
648
+
649
+ .fa-chevron-down:before {
650
+ content: "\f078"; }
651
+
652
+ .fa-chevron-left:before {
653
+ content: "\f053"; }
654
+
655
+ .fa-chevron-right:before {
656
+ content: "\f054"; }
657
+
658
+ .fa-chevron-up:before {
659
+ content: "\f077"; }
660
+
661
+ .fa-child:before {
662
+ content: "\f1ae"; }
663
+
664
+ .fa-chrome:before {
665
+ content: "\f268"; }
666
+
667
+ .fa-circle:before {
668
+ content: "\f111"; }
669
+
670
+ .fa-circle-notch:before {
671
+ content: "\f1ce"; }
672
+
673
+ .fa-clipboard:before {
674
+ content: "\f328"; }
675
+
676
+ .fa-clock:before {
677
+ content: "\f017"; }
678
+
679
+ .fa-clone:before {
680
+ content: "\f24d"; }
681
+
682
+ .fa-closed-captioning:before {
683
+ content: "\f20a"; }
684
+
685
+ .fa-cloud:before {
686
+ content: "\f0c2"; }
687
+
688
+ .fa-cloud-download-alt:before {
689
+ content: "\f381"; }
690
+
691
+ .fa-cloud-upload-alt:before {
692
+ content: "\f382"; }
693
+
694
+ .fa-cloudscale:before {
695
+ content: "\f383"; }
696
+
697
+ .fa-cloudsmith:before {
698
+ content: "\f384"; }
699
+
700
+ .fa-cloudversify:before {
701
+ content: "\f385"; }
702
+
703
+ .fa-code:before {
704
+ content: "\f121"; }
705
+
706
+ .fa-code-branch:before {
707
+ content: "\f126"; }
708
+
709
+ .fa-codepen:before {
710
+ content: "\f1cb"; }
711
+
712
+ .fa-codiepie:before {
713
+ content: "\f284"; }
714
+
715
+ .fa-coffee:before {
716
+ content: "\f0f4"; }
717
+
718
+ .fa-cog:before {
719
+ content: "\f013"; }
720
+
721
+ .fa-cogs:before {
722
+ content: "\f085"; }
723
+
724
+ .fa-columns:before {
725
+ content: "\f0db"; }
726
+
727
+ .fa-comment:before {
728
+ content: "\f075"; }
729
+
730
+ .fa-comment-alt:before {
731
+ content: "\f27a"; }
732
+
733
+ .fa-comments:before {
734
+ content: "\f086"; }
735
+
736
+ .fa-compass:before {
737
+ content: "\f14e"; }
738
+
739
+ .fa-compress:before {
740
+ content: "\f066"; }
741
+
742
+ .fa-connectdevelop:before {
743
+ content: "\f20e"; }
744
+
745
+ .fa-contao:before {
746
+ content: "\f26d"; }
747
+
748
+ .fa-copy:before {
749
+ content: "\f0c5"; }
750
+
751
+ .fa-copyright:before {
752
+ content: "\f1f9"; }
753
+
754
+ .fa-cpanel:before {
755
+ content: "\f388"; }
756
+
757
+ .fa-creative-commons:before {
758
+ content: "\f25e"; }
759
+
760
+ .fa-credit-card:before {
761
+ content: "\f09d"; }
762
+
763
+ .fa-crop:before {
764
+ content: "\f125"; }
765
+
766
+ .fa-crosshairs:before {
767
+ content: "\f05b"; }
768
+
769
+ .fa-css3:before {
770
+ content: "\f13c"; }
771
+
772
+ .fa-css3-alt:before {
773
+ content: "\f38b"; }
774
+
775
+ .fa-cube:before {
776
+ content: "\f1b2"; }
777
+
778
+ .fa-cubes:before {
779
+ content: "\f1b3"; }
780
+
781
+ .fa-cut:before {
782
+ content: "\f0c4"; }
783
+
784
+ .fa-cuttlefish:before {
785
+ content: "\f38c"; }
786
+
787
+ .fa-d-and-d:before {
788
+ content: "\f38d"; }
789
+
790
+ .fa-dashcube:before {
791
+ content: "\f210"; }
792
+
793
+ .fa-database:before {
794
+ content: "\f1c0"; }
795
+
796
+ .fa-deaf:before {
797
+ content: "\f2a4"; }
798
+
799
+ .fa-delicious:before {
800
+ content: "\f1a5"; }
801
+
802
+ .fa-deploydog:before {
803
+ content: "\f38e"; }
804
+
805
+ .fa-deskpro:before {
806
+ content: "\f38f"; }
807
+
808
+ .fa-desktop:before {
809
+ content: "\f108"; }
810
+
811
+ .fa-deviantart:before {
812
+ content: "\f1bd"; }
813
+
814
+ .fa-digg:before {
815
+ content: "\f1a6"; }
816
+
817
+ .fa-digital-ocean:before {
818
+ content: "\f391"; }
819
+
820
+ .fa-discord:before {
821
+ content: "\f392"; }
822
+
823
+ .fa-discourse:before {
824
+ content: "\f393"; }
825
+
826
+ .fa-dochub:before {
827
+ content: "\f394"; }
828
+
829
+ .fa-docker:before {
830
+ content: "\f395"; }
831
+
832
+ .fa-dollar-sign:before {
833
+ content: "\f155"; }
834
+
835
+ .fa-dot-circle:before {
836
+ content: "\f192"; }
837
+
838
+ .fa-download:before {
839
+ content: "\f019"; }
840
+
841
+ .fa-draft2digital:before {
842
+ content: "\f396"; }
843
+
844
+ .fa-dribbble:before {
845
+ content: "\f17d"; }
846
+
847
+ .fa-dribbble-square:before {
848
+ content: "\f397"; }
849
+
850
+ .fa-dropbox:before {
851
+ content: "\f16b"; }
852
+
853
+ .fa-drupal:before {
854
+ content: "\f1a9"; }
855
+
856
+ .fa-dyalog:before {
857
+ content: "\f399"; }
858
+
859
+ .fa-earlybirds:before {
860
+ content: "\f39a"; }
861
+
862
+ .fa-edge:before {
863
+ content: "\f282"; }
864
+
865
+ .fa-edit:before {
866
+ content: "\f044"; }
867
+
868
+ .fa-eject:before {
869
+ content: "\f052"; }
870
+
871
+ .fa-elementor:before {
872
+ content: "\f430"; }
873
+
874
+ .fa-ellipsis-h:before {
875
+ content: "\f141"; }
876
+
877
+ .fa-ellipsis-v:before {
878
+ content: "\f142"; }
879
+
880
+ .fa-ember:before {
881
+ content: "\f423"; }
882
+
883
+ .fa-empire:before {
884
+ content: "\f1d1"; }
885
+
886
+ .fa-envelope:before {
887
+ content: "\f0e0"; }
888
+
889
+ .fa-envelope-open:before {
890
+ content: "\f2b6"; }
891
+
892
+ .fa-envelope-square:before {
893
+ content: "\f199"; }
894
+
895
+ .fa-envira:before {
896
+ content: "\f299"; }
897
+
898
+ .fa-eraser:before {
899
+ content: "\f12d"; }
900
+
901
+ .fa-erlang:before {
902
+ content: "\f39d"; }
903
+
904
+ .fa-ethereum:before {
905
+ content: "\f42e"; }
906
+
907
+ .fa-etsy:before {
908
+ content: "\f2d7"; }
909
+
910
+ .fa-euro-sign:before {
911
+ content: "\f153"; }
912
+
913
+ .fa-exchange-alt:before {
914
+ content: "\f362"; }
915
+
916
+ .fa-exclamation:before {
917
+ content: "\f12a"; }
918
+
919
+ .fa-exclamation-circle:before {
920
+ content: "\f06a"; }
921
+
922
+ .fa-exclamation-triangle:before {
923
+ content: "\f071"; }
924
+
925
+ .fa-expand:before {
926
+ content: "\f065"; }
927
+
928
+ .fa-expand-arrows-alt:before {
929
+ content: "\f31e"; }
930
+
931
+ .fa-expeditedssl:before {
932
+ content: "\f23e"; }
933
+
934
+ .fa-external-link-alt:before {
935
+ content: "\f35d"; }
936
+
937
+ .fa-external-link-square-alt:before {
938
+ content: "\f360"; }
939
+
940
+ .fa-eye:before {
941
+ content: "\f06e"; }
942
+
943
+ .fa-eye-dropper:before {
944
+ content: "\f1fb"; }
945
+
946
+ .fa-eye-slash:before {
947
+ content: "\f070"; }
948
+
949
+ .fa-facebook:before {
950
+ content: "\f09a"; }
951
+
952
+ .fa-facebook-f:before {
953
+ content: "\f39e"; }
954
+
955
+ .fa-facebook-messenger:before {
956
+ content: "\f39f"; }
957
+
958
+ .fa-facebook-square:before {
959
+ content: "\f082"; }
960
+
961
+ .fa-fast-backward:before {
962
+ content: "\f049"; }
963
+
964
+ .fa-fast-forward:before {
965
+ content: "\f050"; }
966
+
967
+ .fa-fax:before {
968
+ content: "\f1ac"; }
969
+
970
+ .fa-female:before {
971
+ content: "\f182"; }
972
+
973
+ .fa-fighter-jet:before {
974
+ content: "\f0fb"; }
975
+
976
+ .fa-file:before {
977
+ content: "\f15b"; }
978
+
979
+ .fa-file-alt:before {
980
+ content: "\f15c"; }
981
+
982
+ .fa-file-archive:before {
983
+ content: "\f1c6"; }
984
+
985
+ .fa-file-audio:before {
986
+ content: "\f1c7"; }
987
+
988
+ .fa-file-code:before {
989
+ content: "\f1c9"; }
990
+
991
+ .fa-file-excel:before {
992
+ content: "\f1c3"; }
993
+
994
+ .fa-file-image:before {
995
+ content: "\f1c5"; }
996
+
997
+ .fa-file-pdf:before {
998
+ content: "\f1c1"; }
999
+
1000
+ .fa-file-powerpoint:before {
1001
+ content: "\f1c4"; }
1002
+
1003
+ .fa-file-video:before {
1004
+ content: "\f1c8"; }
1005
+
1006
+ .fa-file-word:before {
1007
+ content: "\f1c2"; }
1008
+
1009
+ .fa-film:before {
1010
+ content: "\f008"; }
1011
+
1012
+ .fa-filter:before {
1013
+ content: "\f0b0"; }
1014
+
1015
+ .fa-fire:before {
1016
+ content: "\f06d"; }
1017
+
1018
+ .fa-fire-extinguisher:before {
1019
+ content: "\f134"; }
1020
+
1021
+ .fa-firefox:before {
1022
+ content: "\f269"; }
1023
+
1024
+ .fa-first-order:before {
1025
+ content: "\f2b0"; }
1026
+
1027
+ .fa-firstdraft:before {
1028
+ content: "\f3a1"; }
1029
+
1030
+ .fa-flag:before {
1031
+ content: "\f024"; }
1032
+
1033
+ .fa-flag-checkered:before {
1034
+ content: "\f11e"; }
1035
+
1036
+ .fa-flask:before {
1037
+ content: "\f0c3"; }
1038
+
1039
+ .fa-flickr:before {
1040
+ content: "\f16e"; }
1041
+
1042
+ .fa-fly:before {
1043
+ content: "\f417"; }
1044
+
1045
+ .fa-folder:before {
1046
+ content: "\f07b"; }
1047
+
1048
+ .fa-folder-open:before {
1049
+ content: "\f07c"; }
1050
+
1051
+ .fa-font:before {
1052
+ content: "\f031"; }
1053
+
1054
+ .fa-font-awesome:before {
1055
+ content: "\f2b4"; }
1056
+
1057
+ .fa-font-awesome-alt:before {
1058
+ content: "\f35c"; }
1059
+
1060
+ .fa-font-awesome-flag:before {
1061
+ content: "\f425"; }
1062
+
1063
+ .fa-fonticons:before {
1064
+ content: "\f280"; }
1065
+
1066
+ .fa-fonticons-fi:before {
1067
+ content: "\f3a2"; }
1068
+
1069
+ .fa-fort-awesome:before {
1070
+ content: "\f286"; }
1071
+
1072
+ .fa-fort-awesome-alt:before {
1073
+ content: "\f3a3"; }
1074
+
1075
+ .fa-forumbee:before {
1076
+ content: "\f211"; }
1077
+
1078
+ .fa-forward:before {
1079
+ content: "\f04e"; }
1080
+
1081
+ .fa-foursquare:before {
1082
+ content: "\f180"; }
1083
+
1084
+ .fa-free-code-camp:before {
1085
+ content: "\f2c5"; }
1086
+
1087
+ .fa-freebsd:before {
1088
+ content: "\f3a4"; }
1089
+
1090
+ .fa-frown:before {
1091
+ content: "\f119"; }
1092
+
1093
+ .fa-futbol:before {
1094
+ content: "\f1e3"; }
1095
+
1096
+ .fa-gamepad:before {
1097
+ content: "\f11b"; }
1098
+
1099
+ .fa-gavel:before {
1100
+ content: "\f0e3"; }
1101
+
1102
+ .fa-gem:before {
1103
+ content: "\f3a5"; }
1104
+
1105
+ .fa-genderless:before {
1106
+ content: "\f22d"; }
1107
+
1108
+ .fa-get-pocket:before {
1109
+ content: "\f265"; }
1110
+
1111
+ .fa-gg:before {
1112
+ content: "\f260"; }
1113
+
1114
+ .fa-gg-circle:before {
1115
+ content: "\f261"; }
1116
+
1117
+ .fa-gift:before {
1118
+ content: "\f06b"; }
1119
+
1120
+ .fa-git:before {
1121
+ content: "\f1d3"; }
1122
+
1123
+ .fa-git-square:before {
1124
+ content: "\f1d2"; }
1125
+
1126
+ .fa-github:before {
1127
+ content: "\f09b"; }
1128
+
1129
+ .fa-github-alt:before {
1130
+ content: "\f113"; }
1131
+
1132
+ .fa-github-square:before {
1133
+ content: "\f092"; }
1134
+
1135
+ .fa-gitkraken:before {
1136
+ content: "\f3a6"; }
1137
+
1138
+ .fa-gitlab:before {
1139
+ content: "\f296"; }
1140
+
1141
+ .fa-gitter:before {
1142
+ content: "\f426"; }
1143
+
1144
+ .fa-glass-martini:before {
1145
+ content: "\f000"; }
1146
+
1147
+ .fa-glide:before {
1148
+ content: "\f2a5"; }
1149
+
1150
+ .fa-glide-g:before {
1151
+ content: "\f2a6"; }
1152
+
1153
+ .fa-globe:before {
1154
+ content: "\f0ac"; }
1155
+
1156
+ .fa-gofore:before {
1157
+ content: "\f3a7"; }
1158
+
1159
+ .fa-goodreads:before {
1160
+ content: "\f3a8"; }
1161
+
1162
+ .fa-goodreads-g:before {
1163
+ content: "\f3a9"; }
1164
+
1165
+ .fa-google:before {
1166
+ content: "\f1a0"; }
1167
+
1168
+ .fa-google-drive:before {
1169
+ content: "\f3aa"; }
1170
+
1171
+ .fa-google-play:before {
1172
+ content: "\f3ab"; }
1173
+
1174
+ .fa-google-plus:before {
1175
+ content: "\f2b3"; }
1176
+
1177
+ .fa-google-plus-g:before {
1178
+ content: "\f0d5"; }
1179
+
1180
+ .fa-google-plus-square:before {
1181
+ content: "\f0d4"; }
1182
+
1183
+ .fa-google-wallet:before {
1184
+ content: "\f1ee"; }
1185
+
1186
+ .fa-graduation-cap:before {
1187
+ content: "\f19d"; }
1188
+
1189
+ .fa-gratipay:before {
1190
+ content: "\f184"; }
1191
+
1192
+ .fa-grav:before {
1193
+ content: "\f2d6"; }
1194
+
1195
+ .fa-gripfire:before {
1196
+ content: "\f3ac"; }
1197
+
1198
+ .fa-grunt:before {
1199
+ content: "\f3ad"; }
1200
+
1201
+ .fa-gulp:before {
1202
+ content: "\f3ae"; }
1203
+
1204
+ .fa-h-square:before {
1205
+ content: "\f0fd"; }
1206
+
1207
+ .fa-hacker-news:before {
1208
+ content: "\f1d4"; }
1209
+
1210
+ .fa-hacker-news-square:before {
1211
+ content: "\f3af"; }
1212
+
1213
+ .fa-hand-lizard:before {
1214
+ content: "\f258"; }
1215
+
1216
+ .fa-hand-paper:before {
1217
+ content: "\f256"; }
1218
+
1219
+ .fa-hand-peace:before {
1220
+ content: "\f25b"; }
1221
+
1222
+ .fa-hand-point-down:before {
1223
+ content: "\f0a7"; }
1224
+
1225
+ .fa-hand-point-left:before {
1226
+ content: "\f0a5"; }
1227
+
1228
+ .fa-hand-point-right:before {
1229
+ content: "\f0a4"; }
1230
+
1231
+ .fa-hand-point-up:before {
1232
+ content: "\f0a6"; }
1233
+
1234
+ .fa-hand-pointer:before {
1235
+ content: "\f25a"; }
1236
+
1237
+ .fa-hand-rock:before {
1238
+ content: "\f255"; }
1239
+
1240
+ .fa-hand-scissors:before {
1241
+ content: "\f257"; }
1242
+
1243
+ .fa-hand-spock:before {
1244
+ content: "\f259"; }
1245
+
1246
+ .fa-handshake:before {
1247
+ content: "\f2b5"; }
1248
+
1249
+ .fa-hashtag:before {
1250
+ content: "\f292"; }
1251
+
1252
+ .fa-hdd:before {
1253
+ content: "\f0a0"; }
1254
+
1255
+ .fa-heading:before {
1256
+ content: "\f1dc"; }
1257
+
1258
+ .fa-headphones:before {
1259
+ content: "\f025"; }
1260
+
1261
+ .fa-heart:before {
1262
+ content: "\f004"; }
1263
+
1264
+ .fa-heartbeat:before {
1265
+ content: "\f21e"; }
1266
+
1267
+ .fa-hire-a-helper:before {
1268
+ content: "\f3b0"; }
1269
+
1270
+ .fa-history:before {
1271
+ content: "\f1da"; }
1272
+
1273
+ .fa-home:before {
1274
+ content: "\f015"; }
1275
+
1276
+ .fa-hooli:before {
1277
+ content: "\f427"; }
1278
+
1279
+ .fa-hospital:before {
1280
+ content: "\f0f8"; }
1281
+
1282
+ .fa-hotjar:before {
1283
+ content: "\f3b1"; }
1284
+
1285
+ .fa-hourglass:before {
1286
+ content: "\f254"; }
1287
+
1288
+ .fa-hourglass-end:before {
1289
+ content: "\f253"; }
1290
+
1291
+ .fa-hourglass-half:before {
1292
+ content: "\f252"; }
1293
+
1294
+ .fa-hourglass-start:before {
1295
+ content: "\f251"; }
1296
+
1297
+ .fa-houzz:before {
1298
+ content: "\f27c"; }
1299
+
1300
+ .fa-html5:before {
1301
+ content: "\f13b"; }
1302
+
1303
+ .fa-hubspot:before {
1304
+ content: "\f3b2"; }
1305
+
1306
+ .fa-i-cursor:before {
1307
+ content: "\f246"; }
1308
+
1309
+ .fa-id-badge:before {
1310
+ content: "\f2c1"; }
1311
+
1312
+ .fa-id-card:before {
1313
+ content: "\f2c2"; }
1314
+
1315
+ .fa-image:before {
1316
+ content: "\f03e"; }
1317
+
1318
+ .fa-images:before {
1319
+ content: "\f302"; }
1320
+
1321
+ .fa-imdb:before {
1322
+ content: "\f2d8"; }
1323
+
1324
+ .fa-inbox:before {
1325
+ content: "\f01c"; }
1326
+
1327
+ .fa-indent:before {
1328
+ content: "\f03c"; }
1329
+
1330
+ .fa-industry:before {
1331
+ content: "\f275"; }
1332
+
1333
+ .fa-info:before {
1334
+ content: "\f129"; }
1335
+
1336
+ .fa-info-circle:before {
1337
+ content: "\f05a"; }
1338
+
1339
+ .fa-instagram:before {
1340
+ content: "\f16d"; }
1341
+
1342
+ .fa-internet-explorer:before {
1343
+ content: "\f26b"; }
1344
+
1345
+ .fa-ioxhost:before {
1346
+ content: "\f208"; }
1347
+
1348
+ .fa-italic:before {
1349
+ content: "\f033"; }
1350
+
1351
+ .fa-itunes:before {
1352
+ content: "\f3b4"; }
1353
+
1354
+ .fa-itunes-note:before {
1355
+ content: "\f3b5"; }
1356
+
1357
+ .fa-jenkins:before {
1358
+ content: "\f3b6"; }
1359
+
1360
+ .fa-joget:before {
1361
+ content: "\f3b7"; }
1362
+
1363
+ .fa-joomla:before {
1364
+ content: "\f1aa"; }
1365
+
1366
+ .fa-js:before {
1367
+ content: "\f3b8"; }
1368
+
1369
+ .fa-js-square:before {
1370
+ content: "\f3b9"; }
1371
+
1372
+ .fa-jsfiddle:before {
1373
+ content: "\f1cc"; }
1374
+
1375
+ .fa-key:before {
1376
+ content: "\f084"; }
1377
+
1378
+ .fa-keyboard:before {
1379
+ content: "\f11c"; }
1380
+
1381
+ .fa-keycdn:before {
1382
+ content: "\f3ba"; }
1383
+
1384
+ .fa-kickstarter:before {
1385
+ content: "\f3bb"; }
1386
+
1387
+ .fa-kickstarter-k:before {
1388
+ content: "\f3bc"; }
1389
+
1390
+ .fa-korvue:before {
1391
+ content: "\f42f"; }
1392
+
1393
+ .fa-language:before {
1394
+ content: "\f1ab"; }
1395
+
1396
+ .fa-laptop:before {
1397
+ content: "\f109"; }
1398
+
1399
+ .fa-laravel:before {
1400
+ content: "\f3bd"; }
1401
+
1402
+ .fa-lastfm:before {
1403
+ content: "\f202"; }
1404
+
1405
+ .fa-lastfm-square:before {
1406
+ content: "\f203"; }
1407
+
1408
+ .fa-leaf:before {
1409
+ content: "\f06c"; }
1410
+
1411
+ .fa-leanpub:before {
1412
+ content: "\f212"; }
1413
+
1414
+ .fa-lemon:before {
1415
+ content: "\f094"; }
1416
+
1417
+ .fa-less:before {
1418
+ content: "\f41d"; }
1419
+
1420
+ .fa-level-down-alt:before {
1421
+ content: "\f3be"; }
1422
+
1423
+ .fa-level-up-alt:before {
1424
+ content: "\f3bf"; }
1425
+
1426
+ .fa-life-ring:before {
1427
+ content: "\f1cd"; }
1428
+
1429
+ .fa-lightbulb:before {
1430
+ content: "\f0eb"; }
1431
+
1432
+ .fa-line:before {
1433
+ content: "\f3c0"; }
1434
+
1435
+ .fa-link:before {
1436
+ content: "\f0c1"; }
1437
+
1438
+ .fa-linkedin:before {
1439
+ content: "\f08c"; }
1440
+
1441
+ .fa-linkedin-in:before {
1442
+ content: "\f0e1"; }
1443
+
1444
+ .fa-linode:before {
1445
+ content: "\f2b8"; }
1446
+
1447
+ .fa-linux:before {
1448
+ content: "\f17c"; }
1449
+
1450
+ .fa-lira-sign:before {
1451
+ content: "\f195"; }
1452
+
1453
+ .fa-list:before {
1454
+ content: "\f03a"; }
1455
+
1456
+ .fa-list-alt:before {
1457
+ content: "\f022"; }
1458
+
1459
+ .fa-list-ol:before {
1460
+ content: "\f0cb"; }
1461
+
1462
+ .fa-list-ul:before {
1463
+ content: "\f0ca"; }
1464
+
1465
+ .fa-location-arrow:before {
1466
+ content: "\f124"; }
1467
+
1468
+ .fa-lock:before {
1469
+ content: "\f023"; }
1470
+
1471
+ .fa-lock-open:before {
1472
+ content: "\f3c1"; }
1473
+
1474
+ .fa-long-arrow-alt-down:before {
1475
+ content: "\f309"; }
1476
+
1477
+ .fa-long-arrow-alt-left:before {
1478
+ content: "\f30a"; }
1479
+
1480
+ .fa-long-arrow-alt-right:before {
1481
+ content: "\f30b"; }
1482
+
1483
+ .fa-long-arrow-alt-up:before {
1484
+ content: "\f30c"; }
1485
+
1486
+ .fa-low-vision:before {
1487
+ content: "\f2a8"; }
1488
+
1489
+ .fa-lyft:before {
1490
+ content: "\f3c3"; }
1491
+
1492
+ .fa-magento:before {
1493
+ content: "\f3c4"; }
1494
+
1495
+ .fa-magic:before {
1496
+ content: "\f0d0"; }
1497
+
1498
+ .fa-magnet:before {
1499
+ content: "\f076"; }
1500
+
1501
+ .fa-male:before {
1502
+ content: "\f183"; }
1503
+
1504
+ .fa-map:before {
1505
+ content: "\f279"; }
1506
+
1507
+ .fa-map-marker:before {
1508
+ content: "\f041"; }
1509
+
1510
+ .fa-map-marker-alt:before {
1511
+ content: "\f3c5"; }
1512
+
1513
+ .fa-map-pin:before {
1514
+ content: "\f276"; }
1515
+
1516
+ .fa-map-signs:before {
1517
+ content: "\f277"; }
1518
+
1519
+ .fa-mars:before {
1520
+ content: "\f222"; }
1521
+
1522
+ .fa-mars-double:before {
1523
+ content: "\f227"; }
1524
+
1525
+ .fa-mars-stroke:before {
1526
+ content: "\f229"; }
1527
+
1528
+ .fa-mars-stroke-h:before {
1529
+ content: "\f22b"; }
1530
+
1531
+ .fa-mars-stroke-v:before {
1532
+ content: "\f22a"; }
1533
+
1534
+ .fa-maxcdn:before {
1535
+ content: "\f136"; }
1536
+
1537
+ .fa-medapps:before {
1538
+ content: "\f3c6"; }
1539
+
1540
+ .fa-medium:before {
1541
+ content: "\f23a"; }
1542
+
1543
+ .fa-medium-m:before {
1544
+ content: "\f3c7"; }
1545
+
1546
+ .fa-medkit:before {
1547
+ content: "\f0fa"; }
1548
+
1549
+ .fa-medrt:before {
1550
+ content: "\f3c8"; }
1551
+
1552
+ .fa-meetup:before {
1553
+ content: "\f2e0"; }
1554
+
1555
+ .fa-meh:before {
1556
+ content: "\f11a"; }
1557
+
1558
+ .fa-mercury:before {
1559
+ content: "\f223"; }
1560
+
1561
+ .fa-microchip:before {
1562
+ content: "\f2db"; }
1563
+
1564
+ .fa-microphone:before {
1565
+ content: "\f130"; }
1566
+
1567
+ .fa-microphone-slash:before {
1568
+ content: "\f131"; }
1569
+
1570
+ .fa-microsoft:before {
1571
+ content: "\f3ca"; }
1572
+
1573
+ .fa-minus:before {
1574
+ content: "\f068"; }
1575
+
1576
+ .fa-minus-circle:before {
1577
+ content: "\f056"; }
1578
+
1579
+ .fa-minus-square:before {
1580
+ content: "\f146"; }
1581
+
1582
+ .fa-mix:before {
1583
+ content: "\f3cb"; }
1584
+
1585
+ .fa-mixcloud:before {
1586
+ content: "\f289"; }
1587
+
1588
+ .fa-mizuni:before {
1589
+ content: "\f3cc"; }
1590
+
1591
+ .fa-mobile:before {
1592
+ content: "\f10b"; }
1593
+
1594
+ .fa-mobile-alt:before {
1595
+ content: "\f3cd"; }
1596
+
1597
+ .fa-modx:before {
1598
+ content: "\f285"; }
1599
+
1600
+ .fa-monero:before {
1601
+ content: "\f3d0"; }
1602
+
1603
+ .fa-money-bill-alt:before {
1604
+ content: "\f3d1"; }
1605
+
1606
+ .fa-moon:before {
1607
+ content: "\f186"; }
1608
+
1609
+ .fa-motorcycle:before {
1610
+ content: "\f21c"; }
1611
+
1612
+ .fa-mouse-pointer:before {
1613
+ content: "\f245"; }
1614
+
1615
+ .fa-music:before {
1616
+ content: "\f001"; }
1617
+
1618
+ .fa-napster:before {
1619
+ content: "\f3d2"; }
1620
+
1621
+ .fa-neuter:before {
1622
+ content: "\f22c"; }
1623
+
1624
+ .fa-newspaper:before {
1625
+ content: "\f1ea"; }
1626
+
1627
+ .fa-nintendo-switch:before {
1628
+ content: "\f418"; }
1629
+
1630
+ .fa-node:before {
1631
+ content: "\f419"; }
1632
+
1633
+ .fa-node-js:before {
1634
+ content: "\f3d3"; }
1635
+
1636
+ .fa-npm:before {
1637
+ content: "\f3d4"; }
1638
+
1639
+ .fa-ns8:before {
1640
+ content: "\f3d5"; }
1641
+
1642
+ .fa-nutritionix:before {
1643
+ content: "\f3d6"; }
1644
+
1645
+ .fa-object-group:before {
1646
+ content: "\f247"; }
1647
+
1648
+ .fa-object-ungroup:before {
1649
+ content: "\f248"; }
1650
+
1651
+ .fa-odnoklassniki:before {
1652
+ content: "\f263"; }
1653
+
1654
+ .fa-odnoklassniki-square:before {
1655
+ content: "\f264"; }
1656
+
1657
+ .fa-opencart:before {
1658
+ content: "\f23d"; }
1659
+
1660
+ .fa-openid:before {
1661
+ content: "\f19b"; }
1662
+
1663
+ .fa-opera:before {
1664
+ content: "\f26a"; }
1665
+
1666
+ .fa-optin-monster:before {
1667
+ content: "\f23c"; }
1668
+
1669
+ .fa-osi:before {
1670
+ content: "\f41a"; }
1671
+
1672
+ .fa-outdent:before {
1673
+ content: "\f03b"; }
1674
+
1675
+ .fa-page4:before {
1676
+ content: "\f3d7"; }
1677
+
1678
+ .fa-pagelines:before {
1679
+ content: "\f18c"; }
1680
+
1681
+ .fa-paint-brush:before {
1682
+ content: "\f1fc"; }
1683
+
1684
+ .fa-palfed:before {
1685
+ content: "\f3d8"; }
1686
+
1687
+ .fa-paper-plane:before {
1688
+ content: "\f1d8"; }
1689
+
1690
+ .fa-paperclip:before {
1691
+ content: "\f0c6"; }
1692
+
1693
+ .fa-paragraph:before {
1694
+ content: "\f1dd"; }
1695
+
1696
+ .fa-paste:before {
1697
+ content: "\f0ea"; }
1698
+
1699
+ .fa-patreon:before {
1700
+ content: "\f3d9"; }
1701
+
1702
+ .fa-pause:before {
1703
+ content: "\f04c"; }
1704
+
1705
+ .fa-pause-circle:before {
1706
+ content: "\f28b"; }
1707
+
1708
+ .fa-paw:before {
1709
+ content: "\f1b0"; }
1710
+
1711
+ .fa-paypal:before {
1712
+ content: "\f1ed"; }
1713
+
1714
+ .fa-pen-square:before {
1715
+ content: "\f14b"; }
1716
+
1717
+ .fa-pencil-alt:before {
1718
+ content: "\f303"; }
1719
+
1720
+ .fa-percent:before {
1721
+ content: "\f295"; }
1722
+
1723
+ .fa-periscope:before {
1724
+ content: "\f3da"; }
1725
+
1726
+ .fa-phabricator:before {
1727
+ content: "\f3db"; }
1728
+
1729
+ .fa-phoenix-framework:before {
1730
+ content: "\f3dc"; }
1731
+
1732
+ .fa-phone:before {
1733
+ content: "\f095"; }
1734
+
1735
+ .fa-phone-square:before {
1736
+ content: "\f098"; }
1737
+
1738
+ .fa-phone-volume:before {
1739
+ content: "\f2a0"; }
1740
+
1741
+ .fa-pied-piper:before {
1742
+ content: "\f2ae"; }
1743
+
1744
+ .fa-pied-piper-alt:before {
1745
+ content: "\f1a8"; }
1746
+
1747
+ .fa-pied-piper-pp:before {
1748
+ content: "\f1a7"; }
1749
+
1750
+ .fa-pinterest:before {
1751
+ content: "\f0d2"; }
1752
+
1753
+ .fa-pinterest-p:before {
1754
+ content: "\f231"; }
1755
+
1756
+ .fa-pinterest-square:before {
1757
+ content: "\f0d3"; }
1758
+
1759
+ .fa-plane:before {
1760
+ content: "\f072"; }
1761
+
1762
+ .fa-play:before {
1763
+ content: "\f04b"; }
1764
+
1765
+ .fa-play-circle:before {
1766
+ content: "\f144"; }
1767
+
1768
+ .fa-playstation:before {
1769
+ content: "\f3df"; }
1770
+
1771
+ .fa-plug:before {
1772
+ content: "\f1e6"; }
1773
+
1774
+ .fa-plus:before {
1775
+ content: "\f067"; }
1776
+
1777
+ .fa-plus-circle:before {
1778
+ content: "\f055"; }
1779
+
1780
+ .fa-plus-square:before {
1781
+ content: "\f0fe"; }
1782
+
1783
+ .fa-podcast:before {
1784
+ content: "\f2ce"; }
1785
+
1786
+ .fa-pound-sign:before {
1787
+ content: "\f154"; }
1788
+
1789
+ .fa-power-off:before {
1790
+ content: "\f011"; }
1791
+
1792
+ .fa-print:before {
1793
+ content: "\f02f"; }
1794
+
1795
+ .fa-product-hunt:before {
1796
+ content: "\f288"; }
1797
+
1798
+ .fa-pushed:before {
1799
+ content: "\f3e1"; }
1800
+
1801
+ .fa-puzzle-piece:before {
1802
+ content: "\f12e"; }
1803
+
1804
+ .fa-python:before {
1805
+ content: "\f3e2"; }
1806
+
1807
+ .fa-qq:before {
1808
+ content: "\f1d6"; }
1809
+
1810
+ .fa-qrcode:before {
1811
+ content: "\f029"; }
1812
+
1813
+ .fa-question:before {
1814
+ content: "\f128"; }
1815
+
1816
+ .fa-question-circle:before {
1817
+ content: "\f059"; }
1818
+
1819
+ .fa-quora:before {
1820
+ content: "\f2c4"; }
1821
+
1822
+ .fa-quote-left:before {
1823
+ content: "\f10d"; }
1824
+
1825
+ .fa-quote-right:before {
1826
+ content: "\f10e"; }
1827
+
1828
+ .fa-random:before {
1829
+ content: "\f074"; }
1830
+
1831
+ .fa-ravelry:before {
1832
+ content: "\f2d9"; }
1833
+
1834
+ .fa-react:before {
1835
+ content: "\f41b"; }
1836
+
1837
+ .fa-rebel:before {
1838
+ content: "\f1d0"; }
1839
+
1840
+ .fa-recycle:before {
1841
+ content: "\f1b8"; }
1842
+
1843
+ .fa-red-river:before {
1844
+ content: "\f3e3"; }
1845
+
1846
+ .fa-reddit:before {
1847
+ content: "\f1a1"; }
1848
+
1849
+ .fa-reddit-alien:before {
1850
+ content: "\f281"; }
1851
+
1852
+ .fa-reddit-square:before {
1853
+ content: "\f1a2"; }
1854
+
1855
+ .fa-redo:before {
1856
+ content: "\f01e"; }
1857
+
1858
+ .fa-redo-alt:before {
1859
+ content: "\f2f9"; }
1860
+
1861
+ .fa-registered:before {
1862
+ content: "\f25d"; }
1863
+
1864
+ .fa-rendact:before {
1865
+ content: "\f3e4"; }
1866
+
1867
+ .fa-renren:before {
1868
+ content: "\f18b"; }
1869
+
1870
+ .fa-reply:before {
1871
+ content: "\f3e5"; }
1872
+
1873
+ .fa-reply-all:before {
1874
+ content: "\f122"; }
1875
+
1876
+ .fa-replyd:before {
1877
+ content: "\f3e6"; }
1878
+
1879
+ .fa-resolving:before {
1880
+ content: "\f3e7"; }
1881
+
1882
+ .fa-retweet:before {
1883
+ content: "\f079"; }
1884
+
1885
+ .fa-road:before {
1886
+ content: "\f018"; }
1887
+
1888
+ .fa-rocket:before {
1889
+ content: "\f135"; }
1890
+
1891
+ .fa-rocketchat:before {
1892
+ content: "\f3e8"; }
1893
+
1894
+ .fa-rockrms:before {
1895
+ content: "\f3e9"; }
1896
+
1897
+ .fa-rss:before {
1898
+ content: "\f09e"; }
1899
+
1900
+ .fa-rss-square:before {
1901
+ content: "\f143"; }
1902
+
1903
+ .fa-ruble-sign:before {
1904
+ content: "\f158"; }
1905
+
1906
+ .fa-rupee-sign:before {
1907
+ content: "\f156"; }
1908
+
1909
+ .fa-safari:before {
1910
+ content: "\f267"; }
1911
+
1912
+ .fa-sass:before {
1913
+ content: "\f41e"; }
1914
+
1915
+ .fa-save:before {
1916
+ content: "\f0c7"; }
1917
+
1918
+ .fa-schlix:before {
1919
+ content: "\f3ea"; }
1920
+
1921
+ .fa-scribd:before {
1922
+ content: "\f28a"; }
1923
+
1924
+ .fa-search:before {
1925
+ content: "\f002"; }
1926
+
1927
+ .fa-search-minus:before {
1928
+ content: "\f010"; }
1929
+
1930
+ .fa-search-plus:before {
1931
+ content: "\f00e"; }
1932
+
1933
+ .fa-searchengin:before {
1934
+ content: "\f3eb"; }
1935
+
1936
+ .fa-sellcast:before {
1937
+ content: "\f2da"; }
1938
+
1939
+ .fa-sellsy:before {
1940
+ content: "\f213"; }
1941
+
1942
+ .fa-server:before {
1943
+ content: "\f233"; }
1944
+
1945
+ .fa-servicestack:before {
1946
+ content: "\f3ec"; }
1947
+
1948
+ .fa-share:before {
1949
+ content: "\f064"; }
1950
+
1951
+ .fa-share-alt:before {
1952
+ content: "\f1e0"; }
1953
+
1954
+ .fa-share-alt-square:before {
1955
+ content: "\f1e1"; }
1956
+
1957
+ .fa-share-square:before {
1958
+ content: "\f14d"; }
1959
+
1960
+ .fa-shekel-sign:before {
1961
+ content: "\f20b"; }
1962
+
1963
+ .fa-shield-alt:before {
1964
+ content: "\f3ed"; }
1965
+
1966
+ .fa-ship:before {
1967
+ content: "\f21a"; }
1968
+
1969
+ .fa-shirtsinbulk:before {
1970
+ content: "\f214"; }
1971
+
1972
+ .fa-shopping-bag:before {
1973
+ content: "\f290"; }
1974
+
1975
+ .fa-shopping-basket:before {
1976
+ content: "\f291"; }
1977
+
1978
+ .fa-shopping-cart:before {
1979
+ content: "\f07a"; }
1980
+
1981
+ .fa-shower:before {
1982
+ content: "\f2cc"; }
1983
+
1984
+ .fa-sign-in-alt:before {
1985
+ content: "\f2f6"; }
1986
+
1987
+ .fa-sign-language:before {
1988
+ content: "\f2a7"; }
1989
+
1990
+ .fa-sign-out-alt:before {
1991
+ content: "\f2f5"; }
1992
+
1993
+ .fa-signal:before {
1994
+ content: "\f012"; }
1995
+
1996
+ .fa-simplybuilt:before {
1997
+ content: "\f215"; }
1998
+
1999
+ .fa-sistrix:before {
2000
+ content: "\f3ee"; }
2001
+
2002
+ .fa-sitemap:before {
2003
+ content: "\f0e8"; }
2004
+
2005
+ .fa-skyatlas:before {
2006
+ content: "\f216"; }
2007
+
2008
+ .fa-skype:before {
2009
+ content: "\f17e"; }
2010
+
2011
+ .fa-slack:before {
2012
+ content: "\f198"; }
2013
+
2014
+ .fa-slack-hash:before {
2015
+ content: "\f3ef"; }
2016
+
2017
+ .fa-sliders-h:before {
2018
+ content: "\f1de"; }
2019
+
2020
+ .fa-slideshare:before {
2021
+ content: "\f1e7"; }
2022
+
2023
+ .fa-smile:before {
2024
+ content: "\f118"; }
2025
+
2026
+ .fa-snapchat:before {
2027
+ content: "\f2ab"; }
2028
+
2029
+ .fa-snapchat-ghost:before {
2030
+ content: "\f2ac"; }
2031
+
2032
+ .fa-snapchat-square:before {
2033
+ content: "\f2ad"; }
2034
+
2035
+ .fa-snowflake:before {
2036
+ content: "\f2dc"; }
2037
+
2038
+ .fa-sort:before {
2039
+ content: "\f0dc"; }
2040
+
2041
+ .fa-sort-alpha-down:before {
2042
+ content: "\f15d"; }
2043
+
2044
+ .fa-sort-alpha-up:before {
2045
+ content: "\f15e"; }
2046
+
2047
+ .fa-sort-amount-down:before {
2048
+ content: "\f160"; }
2049
+
2050
+ .fa-sort-amount-up:before {
2051
+ content: "\f161"; }
2052
+
2053
+ .fa-sort-down:before {
2054
+ content: "\f0dd"; }
2055
+
2056
+ .fa-sort-numeric-down:before {
2057
+ content: "\f162"; }
2058
+
2059
+ .fa-sort-numeric-up:before {
2060
+ content: "\f163"; }
2061
+
2062
+ .fa-sort-up:before {
2063
+ content: "\f0de"; }
2064
+
2065
+ .fa-soundcloud:before {
2066
+ content: "\f1be"; }
2067
+
2068
+ .fa-space-shuttle:before {
2069
+ content: "\f197"; }
2070
+
2071
+ .fa-speakap:before {
2072
+ content: "\f3f3"; }
2073
+
2074
+ .fa-spinner:before {
2075
+ content: "\f110"; }
2076
+
2077
+ .fa-spotify:before {
2078
+ content: "\f1bc"; }
2079
+
2080
+ .fa-square:before {
2081
+ content: "\f0c8"; }
2082
+
2083
+ .fa-stack-exchange:before {
2084
+ content: "\f18d"; }
2085
+
2086
+ .fa-stack-overflow:before {
2087
+ content: "\f16c"; }
2088
+
2089
+ .fa-star:before {
2090
+ content: "\f005"; }
2091
+
2092
+ .fa-star-half:before {
2093
+ content: "\f089"; }
2094
+
2095
+ .fa-staylinked:before {
2096
+ content: "\f3f5"; }
2097
+
2098
+ .fa-steam:before {
2099
+ content: "\f1b6"; }
2100
+
2101
+ .fa-steam-square:before {
2102
+ content: "\f1b7"; }
2103
+
2104
+ .fa-steam-symbol:before {
2105
+ content: "\f3f6"; }
2106
+
2107
+ .fa-step-backward:before {
2108
+ content: "\f048"; }
2109
+
2110
+ .fa-step-forward:before {
2111
+ content: "\f051"; }
2112
+
2113
+ .fa-stethoscope:before {
2114
+ content: "\f0f1"; }
2115
+
2116
+ .fa-sticker-mule:before {
2117
+ content: "\f3f7"; }
2118
+
2119
+ .fa-sticky-note:before {
2120
+ content: "\f249"; }
2121
+
2122
+ .fa-stop:before {
2123
+ content: "\f04d"; }
2124
+
2125
+ .fa-stop-circle:before {
2126
+ content: "\f28d"; }
2127
+
2128
+ .fa-stopwatch:before {
2129
+ content: "\f2f2"; }
2130
+
2131
+ .fa-strava:before {
2132
+ content: "\f428"; }
2133
+
2134
+ .fa-street-view:before {
2135
+ content: "\f21d"; }
2136
+
2137
+ .fa-strikethrough:before {
2138
+ content: "\f0cc"; }
2139
+
2140
+ .fa-stripe:before {
2141
+ content: "\f429"; }
2142
+
2143
+ .fa-stripe-s:before {
2144
+ content: "\f42a"; }
2145
+
2146
+ .fa-studiovinari:before {
2147
+ content: "\f3f8"; }
2148
+
2149
+ .fa-stumbleupon:before {
2150
+ content: "\f1a4"; }
2151
+
2152
+ .fa-stumbleupon-circle:before {
2153
+ content: "\f1a3"; }
2154
+
2155
+ .fa-subscript:before {
2156
+ content: "\f12c"; }
2157
+
2158
+ .fa-subway:before {
2159
+ content: "\f239"; }
2160
+
2161
+ .fa-suitcase:before {
2162
+ content: "\f0f2"; }
2163
+
2164
+ .fa-sun:before {
2165
+ content: "\f185"; }
2166
+
2167
+ .fa-superpowers:before {
2168
+ content: "\f2dd"; }
2169
+
2170
+ .fa-superscript:before {
2171
+ content: "\f12b"; }
2172
+
2173
+ .fa-supple:before {
2174
+ content: "\f3f9"; }
2175
+
2176
+ .fa-sync:before {
2177
+ content: "\f021"; }
2178
+
2179
+ .fa-sync-alt:before {
2180
+ content: "\f2f1"; }
2181
+
2182
+ .fa-table:before {
2183
+ content: "\f0ce"; }
2184
+
2185
+ .fa-tablet:before {
2186
+ content: "\f10a"; }
2187
+
2188
+ .fa-tablet-alt:before {
2189
+ content: "\f3fa"; }
2190
+
2191
+ .fa-tachometer-alt:before {
2192
+ content: "\f3fd"; }
2193
+
2194
+ .fa-tag:before {
2195
+ content: "\f02b"; }
2196
+
2197
+ .fa-tags:before {
2198
+ content: "\f02c"; }
2199
+
2200
+ .fa-tasks:before {
2201
+ content: "\f0ae"; }
2202
+
2203
+ .fa-taxi:before {
2204
+ content: "\f1ba"; }
2205
+
2206
+ .fa-telegram:before {
2207
+ content: "\f2c6"; }
2208
+
2209
+ .fa-telegram-plane:before {
2210
+ content: "\f3fe"; }
2211
+
2212
+ .fa-tencent-weibo:before {
2213
+ content: "\f1d5"; }
2214
+
2215
+ .fa-terminal:before {
2216
+ content: "\f120"; }
2217
+
2218
+ .fa-text-height:before {
2219
+ content: "\f034"; }
2220
+
2221
+ .fa-text-width:before {
2222
+ content: "\f035"; }
2223
+
2224
+ .fa-th:before {
2225
+ content: "\f00a"; }
2226
+
2227
+ .fa-th-large:before {
2228
+ content: "\f009"; }
2229
+
2230
+ .fa-th-list:before {
2231
+ content: "\f00b"; }
2232
+
2233
+ .fa-themeisle:before {
2234
+ content: "\f2b2"; }
2235
+
2236
+ .fa-thermometer-empty:before {
2237
+ content: "\f2cb"; }
2238
+
2239
+ .fa-thermometer-full:before {
2240
+ content: "\f2c7"; }
2241
+
2242
+ .fa-thermometer-half:before {
2243
+ content: "\f2c9"; }
2244
+
2245
+ .fa-thermometer-quarter:before {
2246
+ content: "\f2ca"; }
2247
+
2248
+ .fa-thermometer-three-quarters:before {
2249
+ content: "\f2c8"; }
2250
+
2251
+ .fa-thumbs-down:before {
2252
+ content: "\f165"; }
2253
+
2254
+ .fa-thumbs-up:before {
2255
+ content: "\f164"; }
2256
+
2257
+ .fa-thumbtack:before {
2258
+ content: "\f08d"; }
2259
+
2260
+ .fa-ticket-alt:before {
2261
+ content: "\f3ff"; }
2262
+
2263
+ .fa-times:before {
2264
+ content: "\f00d"; }
2265
+
2266
+ .fa-times-circle:before {
2267
+ content: "\f057"; }
2268
+
2269
+ .fa-tint:before {
2270
+ content: "\f043"; }
2271
+
2272
+ .fa-toggle-off:before {
2273
+ content: "\f204"; }
2274
+
2275
+ .fa-toggle-on:before {
2276
+ content: "\f205"; }
2277
+
2278
+ .fa-trademark:before {
2279
+ content: "\f25c"; }
2280
+
2281
+ .fa-train:before {
2282
+ content: "\f238"; }
2283
+
2284
+ .fa-transgender:before {
2285
+ content: "\f224"; }
2286
+
2287
+ .fa-transgender-alt:before {
2288
+ content: "\f225"; }
2289
+
2290
+ .fa-trash:before {
2291
+ content: "\f1f8"; }
2292
+
2293
+ .fa-trash-alt:before {
2294
+ content: "\f2ed"; }
2295
+
2296
+ .fa-tree:before {
2297
+ content: "\f1bb"; }
2298
+
2299
+ .fa-trello:before {
2300
+ content: "\f181"; }
2301
+
2302
+ .fa-tripadvisor:before {
2303
+ content: "\f262"; }
2304
+
2305
+ .fa-trophy:before {
2306
+ content: "\f091"; }
2307
+
2308
+ .fa-truck:before {
2309
+ content: "\f0d1"; }
2310
+
2311
+ .fa-tty:before {
2312
+ content: "\f1e4"; }
2313
+
2314
+ .fa-tumblr:before {
2315
+ content: "\f173"; }
2316
+
2317
+ .fa-tumblr-square:before {
2318
+ content: "\f174"; }
2319
+
2320
+ .fa-tv:before {
2321
+ content: "\f26c"; }
2322
+
2323
+ .fa-twitch:before {
2324
+ content: "\f1e8"; }
2325
+
2326
+ .fa-twitter:before {
2327
+ content: "\f099"; }
2328
+
2329
+ .fa-twitter-square:before {
2330
+ content: "\f081"; }
2331
+
2332
+ .fa-typo3:before {
2333
+ content: "\f42b"; }
2334
+
2335
+ .fa-uber:before {
2336
+ content: "\f402"; }
2337
+
2338
+ .fa-uikit:before {
2339
+ content: "\f403"; }
2340
+
2341
+ .fa-umbrella:before {
2342
+ content: "\f0e9"; }
2343
+
2344
+ .fa-underline:before {
2345
+ content: "\f0cd"; }
2346
+
2347
+ .fa-undo:before {
2348
+ content: "\f0e2"; }
2349
+
2350
+ .fa-undo-alt:before {
2351
+ content: "\f2ea"; }
2352
+
2353
+ .fa-uniregistry:before {
2354
+ content: "\f404"; }
2355
+
2356
+ .fa-universal-access:before {
2357
+ content: "\f29a"; }
2358
+
2359
+ .fa-university:before {
2360
+ content: "\f19c"; }
2361
+
2362
+ .fa-unlink:before {
2363
+ content: "\f127"; }
2364
+
2365
+ .fa-unlock:before {
2366
+ content: "\f09c"; }
2367
+
2368
+ .fa-unlock-alt:before {
2369
+ content: "\f13e"; }
2370
+
2371
+ .fa-untappd:before {
2372
+ content: "\f405"; }
2373
+
2374
+ .fa-upload:before {
2375
+ content: "\f093"; }
2376
+
2377
+ .fa-usb:before {
2378
+ content: "\f287"; }
2379
+
2380
+ .fa-user:before {
2381
+ content: "\f007"; }
2382
+
2383
+ .fa-user-circle:before {
2384
+ content: "\f2bd"; }
2385
+
2386
+ .fa-user-md:before {
2387
+ content: "\f0f0"; }
2388
+
2389
+ .fa-user-plus:before {
2390
+ content: "\f234"; }
2391
+
2392
+ .fa-user-secret:before {
2393
+ content: "\f21b"; }
2394
+
2395
+ .fa-user-times:before {
2396
+ content: "\f235"; }
2397
+
2398
+ .fa-users:before {
2399
+ content: "\f0c0"; }
2400
+
2401
+ .fa-ussunnah:before {
2402
+ content: "\f407"; }
2403
+
2404
+ .fa-utensil-spoon:before {
2405
+ content: "\f2e5"; }
2406
+
2407
+ .fa-utensils:before {
2408
+ content: "\f2e7"; }
2409
+
2410
+ .fa-vaadin:before {
2411
+ content: "\f408"; }
2412
+
2413
+ .fa-venus:before {
2414
+ content: "\f221"; }
2415
+
2416
+ .fa-venus-double:before {
2417
+ content: "\f226"; }
2418
+
2419
+ .fa-venus-mars:before {
2420
+ content: "\f228"; }
2421
+
2422
+ .fa-viacoin:before {
2423
+ content: "\f237"; }
2424
+
2425
+ .fa-viadeo:before {
2426
+ content: "\f2a9"; }
2427
+
2428
+ .fa-viadeo-square:before {
2429
+ content: "\f2aa"; }
2430
+
2431
+ .fa-viber:before {
2432
+ content: "\f409"; }
2433
+
2434
+ .fa-video:before {
2435
+ content: "\f03d"; }
2436
+
2437
+ .fa-vimeo:before {
2438
+ content: "\f40a"; }
2439
+
2440
+ .fa-vimeo-square:before {
2441
+ content: "\f194"; }
2442
+
2443
+ .fa-vimeo-v:before {
2444
+ content: "\f27d"; }
2445
+
2446
+ .fa-vine:before {
2447
+ content: "\f1ca"; }
2448
+
2449
+ .fa-vk:before {
2450
+ content: "\f189"; }
2451
+
2452
+ .fa-vnv:before {
2453
+ content: "\f40b"; }
2454
+
2455
+ .fa-volume-down:before {
2456
+ content: "\f027"; }
2457
+
2458
+ .fa-volume-off:before {
2459
+ content: "\f026"; }
2460
+
2461
+ .fa-volume-up:before {
2462
+ content: "\f028"; }
2463
+
2464
+ .fa-vuejs:before {
2465
+ content: "\f41f"; }
2466
+
2467
+ .fa-weibo:before {
2468
+ content: "\f18a"; }
2469
+
2470
+ .fa-weixin:before {
2471
+ content: "\f1d7"; }
2472
+
2473
+ .fa-whatsapp:before {
2474
+ content: "\f232"; }
2475
+
2476
+ .fa-whatsapp-square:before {
2477
+ content: "\f40c"; }
2478
+
2479
+ .fa-wheelchair:before {
2480
+ content: "\f193"; }
2481
+
2482
+ .fa-whmcs:before {
2483
+ content: "\f40d"; }
2484
+
2485
+ .fa-wifi:before {
2486
+ content: "\f1eb"; }
2487
+
2488
+ .fa-wikipedia-w:before {
2489
+ content: "\f266"; }
2490
+
2491
+ .fa-window-close:before {
2492
+ content: "\f410"; }
2493
+
2494
+ .fa-window-maximize:before {
2495
+ content: "\f2d0"; }
2496
+
2497
+ .fa-window-minimize:before {
2498
+ content: "\f2d1"; }
2499
+
2500
+ .fa-window-restore:before {
2501
+ content: "\f2d2"; }
2502
+
2503
+ .fa-windows:before {
2504
+ content: "\f17a"; }
2505
+
2506
+ .fa-won-sign:before {
2507
+ content: "\f159"; }
2508
+
2509
+ .fa-wordpress:before {
2510
+ content: "\f19a"; }
2511
+
2512
+ .fa-wordpress-simple:before {
2513
+ content: "\f411"; }
2514
+
2515
+ .fa-wpbeginner:before {
2516
+ content: "\f297"; }
2517
+
2518
+ .fa-wpexplorer:before {
2519
+ content: "\f2de"; }
2520
+
2521
+ .fa-wpforms:before {
2522
+ content: "\f298"; }
2523
+
2524
+ .fa-wrench:before {
2525
+ content: "\f0ad"; }
2526
+
2527
+ .fa-xbox:before {
2528
+ content: "\f412"; }
2529
+
2530
+ .fa-xing:before {
2531
+ content: "\f168"; }
2532
+
2533
+ .fa-xing-square:before {
2534
+ content: "\f169"; }
2535
+
2536
+ .fa-y-combinator:before {
2537
+ content: "\f23b"; }
2538
+
2539
+ .fa-yahoo:before {
2540
+ content: "\f19e"; }
2541
+
2542
+ .fa-yandex:before {
2543
+ content: "\f413"; }
2544
+
2545
+ .fa-yandex-international:before {
2546
+ content: "\f414"; }
2547
+
2548
+ .fa-yelp:before {
2549
+ content: "\f1e9"; }
2550
+
2551
+ .fa-yen-sign:before {
2552
+ content: "\f157"; }
2553
+
2554
+ .fa-yoast:before {
2555
+ content: "\f2b1"; }
2556
+
2557
+ .fa-youtube:before {
2558
+ content: "\f167"; }
2559
+
2560
+ .fa-youtube-square:before {
2561
+ content: "\f431"; }
2562
+
2563
+ .sr-only {
2564
+ border: 0;
2565
+ clip: rect(0, 0, 0, 0);
2566
+ height: 1px;
2567
+ margin: -1px;
2568
+ overflow: hidden;
2569
+ padding: 0;
2570
+ position: absolute;
2571
+ width: 1px; }
2572
+
2573
+ .sr-only-focusable:active, .sr-only-focusable:focus {
2574
+ clip: auto;
2575
+ height: auto;
2576
+ margin: 0;
2577
+ overflow: visible;
2578
+ position: static;
2579
+ width: auto; }
2580
+ @font-face {
2581
+ font-family: 'Font Awesome 5 Brands';
2582
+ font-style: normal;
2583
+ font-weight: normal;
2584
+ src: url("../webfonts/fa-brands-400.eot");
2585
+ src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); }
2586
+
2587
+ .fab {
2588
+ font-family: 'Font Awesome 5 Brands'; }
2589
+ @font-face {
2590
+ font-family: 'Font Awesome 5 Free';
2591
+ font-style: normal;
2592
+ font-weight: 400;
2593
+ src: url("../webfonts/fa-regular-400.eot");
2594
+ src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); }
2595
+
2596
+ .far {
2597
+ font-family: 'Font Awesome 5 Free';
2598
+ font-weight: 400; }
2599
+ @font-face {
2600
+ font-family: 'Font Awesome 5 Free';
2601
+ font-style: normal;
2602
+ font-weight: 900;
2603
+ src: url("../webfonts/fa-solid-900.eot");
2604
+ src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); }
2605
+
2606
+ .fa,
2607
+ .fas {
2608
+ font-family: 'Font Awesome 5 Free';
2609
+ font-weight: 900; }
inc/czr-base-fmk/assets/fonts/css/fontawesome-all.min.css ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /*!
2
+ * Font Awesome Free 5.0.4 by @fontawesome - http://fontawesome.com
3
+ * License - http://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4
+ */
5
+ .fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:a 2s infinite linear;animation:a 2s infinite linear}.fa-pulse{-webkit-animation:a 1s infinite steps(8);animation:a 1s infinite steps(8)}@-webkit-keyframes a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-aws:before{content:"\f375"}.fa-backward:before{content:"\f04a"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bicycle:before{content:"\f206"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blind:before{content:"\f29d"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-braille:before{content:"\f2a1"}.fa-briefcase:before{content:"\f0b1"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-car:before{content:"\f1b9"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-certificate:before{content:"\f0a3"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-square:before{content:"\f14a"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-clipboard:before{content:"\f328"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comments:before{content:"\f086"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-credit-card:before{content:"\f09d"}.fa-crop:before{content:"\f125"}.fa-crosshairs:before{content:"\f05b"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-deviantart:before{content:"\f1bd"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dollar-sign:before{content:"\f155"}.fa-dot-circle:before{content:"\f192"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drupal:before{content:"\f1a9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-excel:before{content:"\f1c3"}.fa-file-image:before{content:"\f1c5"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fire:before{content:"\f06d"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-order:before{content:"\f2b0"}.fa-firstdraft:before{content:"\f3a1"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frown:before{content:"\f119"}.fa-futbol:before{content:"\f1e3"}.fa-gamepad:before{content:"\f11b"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-gift:before{content:"\f06b"}.fa-git:before{content:"\f1d3"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-martini:before{content:"\f000"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-gofore:before{content:"\f3a7"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-handshake:before{content:"\f2b5"}.fa-hashtag:before{content:"\f292"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-heart:before{content:"\f004"}.fa-heartbeat:before{content:"\f21e"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hospital:before{content:"\f0f8"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-houzz:before{content:"\f27c"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-internet-explorer:before{content:"\f26b"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-jenkins:before{content:"\f3b6"}.fa-joget:before{content:"\f3b7"}.fa-joomla:before{content:"\f1aa"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-key:before{content:"\f084"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-korvue:before{content:"\f42f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-male:before{content:"\f183"}.fa-map:before{content:"\f279"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-maxcdn:before{content:"\f136"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-meh:before{content:"\f11a"}.fa-mercury:before{content:"\f223"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-moon:before{content:"\f186"}.fa-motorcycle:before{content:"\f21c"}.fa-mouse-pointer:before{content:"\f245"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nintendo-switch:before{content:"\f418"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-paint-brush:before{content:"\f1fc"}.fa-palfed:before{content:"\f3d8"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-paragraph:before{content:"\f1dd"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-percent:before{content:"\f295"}.fa-periscope:before{content:"\f3da"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phone:before{content:"\f095"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-plane:before{content:"\f072"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-print:before{content:"\f02f"}.fa-product-hunt:before{content:"\f288"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-random:before{content:"\f074"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-rebel:before{content:"\f1d0"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-rendact:before{content:"\f3e4"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-resolving:before{content:"\f3e7"}.fa-retweet:before{content:"\f079"}.fa-road:before{content:"\f018"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-rupee-sign:before{content:"\f156"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-scribd:before{content:"\f28a"}.fa-search:before{content:"\f002"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shower:before{content:"\f2cc"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowflake:before{content:"\f2dc"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spinner:before{content:"\f110"}.fa-spotify:before{content:"\f1bc"}.fa-square:before{content:"\f0c8"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-star:before{content:"\f005"}.fa-star-half:before{content:"\f089"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-strava:before{content:"\f428"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-table:before{content:"\f0ce"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-trademark:before{content:"\f25c"}.fa-train:before{content:"\f238"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-circle:before{content:"\f2bd"}.fa-user-md:before{content:"\f0f0"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volume-down:before{content:"\f027"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vuejs:before{content:"\f41f"}.fa-weibo:before{content:"\f18a"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wrench:before{content:"\f0ad"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:Font Awesome\ 5 Brands;font-style:normal;font-weight:400;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:Font Awesome\ 5 Brands}@font-face{font-family:Font Awesome\ 5 Free;font-style:normal;font-weight:400;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-weight:400}@font-face{font-family:Font Awesome\ 5 Free;font-style:normal;font-weight:900;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:Font Awesome\ 5 Free}.fa,.fas{font-weight:900}
inc/czr-base-fmk/assets/fonts/css/fontawesome.css ADDED
@@ -0,0 +1,2579 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Font Awesome Free 5.0.4 by @fontawesome - http://fontawesome.com
3
+ * License - http://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4
+ */
5
+ .fa,
6
+ .fas,
7
+ .far,
8
+ .fal,
9
+ .fab {
10
+ -moz-osx-font-smoothing: grayscale;
11
+ -webkit-font-smoothing: antialiased;
12
+ display: inline-block;
13
+ font-style: normal;
14
+ font-variant: normal;
15
+ text-rendering: auto;
16
+ line-height: 1; }
17
+
18
+ .fa-lg {
19
+ font-size: 1.33333em;
20
+ line-height: 0.75em;
21
+ vertical-align: -.0667em; }
22
+
23
+ .fa-xs {
24
+ font-size: .75em; }
25
+
26
+ .fa-sm {
27
+ font-size: .875em; }
28
+
29
+ .fa-1x {
30
+ font-size: 1em; }
31
+
32
+ .fa-2x {
33
+ font-size: 2em; }
34
+
35
+ .fa-3x {
36
+ font-size: 3em; }
37
+
38
+ .fa-4x {
39
+ font-size: 4em; }
40
+
41
+ .fa-5x {
42
+ font-size: 5em; }
43
+
44
+ .fa-6x {
45
+ font-size: 6em; }
46
+
47
+ .fa-7x {
48
+ font-size: 7em; }
49
+
50
+ .fa-8x {
51
+ font-size: 8em; }
52
+
53
+ .fa-9x {
54
+ font-size: 9em; }
55
+
56
+ .fa-10x {
57
+ font-size: 10em; }
58
+
59
+ .fa-fw {
60
+ text-align: center;
61
+ width: 1.25em; }
62
+
63
+ .fa-ul {
64
+ list-style-type: none;
65
+ margin-left: 2.5em;
66
+ padding-left: 0; }
67
+ .fa-ul > li {
68
+ position: relative; }
69
+
70
+ .fa-li {
71
+ left: -2em;
72
+ position: absolute;
73
+ text-align: center;
74
+ width: 2em;
75
+ line-height: inherit; }
76
+
77
+ .fa-border {
78
+ border: solid 0.08em #eee;
79
+ border-radius: .1em;
80
+ padding: .2em .25em .15em; }
81
+
82
+ .fa-pull-left {
83
+ float: left; }
84
+
85
+ .fa-pull-right {
86
+ float: right; }
87
+
88
+ .fa.fa-pull-left,
89
+ .fas.fa-pull-left,
90
+ .far.fa-pull-left,
91
+ .fal.fa-pull-left,
92
+ .fab.fa-pull-left {
93
+ margin-right: .3em; }
94
+
95
+ .fa.fa-pull-right,
96
+ .fas.fa-pull-right,
97
+ .far.fa-pull-right,
98
+ .fal.fa-pull-right,
99
+ .fab.fa-pull-right {
100
+ margin-left: .3em; }
101
+
102
+ .fa-spin {
103
+ -webkit-animation: fa-spin 2s infinite linear;
104
+ animation: fa-spin 2s infinite linear; }
105
+
106
+ .fa-pulse {
107
+ -webkit-animation: fa-spin 1s infinite steps(8);
108
+ animation: fa-spin 1s infinite steps(8); }
109
+
110
+ @-webkit-keyframes fa-spin {
111
+ 0% {
112
+ -webkit-transform: rotate(0deg);
113
+ transform: rotate(0deg); }
114
+ 100% {
115
+ -webkit-transform: rotate(360deg);
116
+ transform: rotate(360deg); } }
117
+
118
+ @keyframes fa-spin {
119
+ 0% {
120
+ -webkit-transform: rotate(0deg);
121
+ transform: rotate(0deg); }
122
+ 100% {
123
+ -webkit-transform: rotate(360deg);
124
+ transform: rotate(360deg); } }
125
+
126
+ .fa-rotate-90 {
127
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
128
+ -webkit-transform: rotate(90deg);
129
+ transform: rotate(90deg); }
130
+
131
+ .fa-rotate-180 {
132
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
133
+ -webkit-transform: rotate(180deg);
134
+ transform: rotate(180deg); }
135
+
136
+ .fa-rotate-270 {
137
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
138
+ -webkit-transform: rotate(270deg);
139
+ transform: rotate(270deg); }
140
+
141
+ .fa-flip-horizontal {
142
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
143
+ -webkit-transform: scale(-1, 1);
144
+ transform: scale(-1, 1); }
145
+
146
+ .fa-flip-vertical {
147
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
148
+ -webkit-transform: scale(1, -1);
149
+ transform: scale(1, -1); }
150
+
151
+ .fa-flip-horizontal.fa-flip-vertical {
152
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
153
+ -webkit-transform: scale(-1, -1);
154
+ transform: scale(-1, -1); }
155
+
156
+ :root .fa-rotate-90,
157
+ :root .fa-rotate-180,
158
+ :root .fa-rotate-270,
159
+ :root .fa-flip-horizontal,
160
+ :root .fa-flip-vertical {
161
+ -webkit-filter: none;
162
+ filter: none; }
163
+
164
+ .fa-stack {
165
+ display: inline-block;
166
+ height: 2em;
167
+ line-height: 2em;
168
+ position: relative;
169
+ vertical-align: middle;
170
+ width: 2em; }
171
+
172
+ .fa-stack-1x,
173
+ .fa-stack-2x {
174
+ left: 0;
175
+ position: absolute;
176
+ text-align: center;
177
+ width: 100%; }
178
+
179
+ .fa-stack-1x {
180
+ line-height: inherit; }
181
+
182
+ .fa-stack-2x {
183
+ font-size: 2em; }
184
+
185
+ .fa-inverse {
186
+ color: #fff; }
187
+
188
+ /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
189
+ readers do not read off random characters that represent icons */
190
+ .fa-500px:before {
191
+ content: "\f26e"; }
192
+
193
+ .fa-accessible-icon:before {
194
+ content: "\f368"; }
195
+
196
+ .fa-accusoft:before {
197
+ content: "\f369"; }
198
+
199
+ .fa-address-book:before {
200
+ content: "\f2b9"; }
201
+
202
+ .fa-address-card:before {
203
+ content: "\f2bb"; }
204
+
205
+ .fa-adjust:before {
206
+ content: "\f042"; }
207
+
208
+ .fa-adn:before {
209
+ content: "\f170"; }
210
+
211
+ .fa-adversal:before {
212
+ content: "\f36a"; }
213
+
214
+ .fa-affiliatetheme:before {
215
+ content: "\f36b"; }
216
+
217
+ .fa-algolia:before {
218
+ content: "\f36c"; }
219
+
220
+ .fa-align-center:before {
221
+ content: "\f037"; }
222
+
223
+ .fa-align-justify:before {
224
+ content: "\f039"; }
225
+
226
+ .fa-align-left:before {
227
+ content: "\f036"; }
228
+
229
+ .fa-align-right:before {
230
+ content: "\f038"; }
231
+
232
+ .fa-amazon:before {
233
+ content: "\f270"; }
234
+
235
+ .fa-amazon-pay:before {
236
+ content: "\f42c"; }
237
+
238
+ .fa-ambulance:before {
239
+ content: "\f0f9"; }
240
+
241
+ .fa-american-sign-language-interpreting:before {
242
+ content: "\f2a3"; }
243
+
244
+ .fa-amilia:before {
245
+ content: "\f36d"; }
246
+
247
+ .fa-anchor:before {
248
+ content: "\f13d"; }
249
+
250
+ .fa-android:before {
251
+ content: "\f17b"; }
252
+
253
+ .fa-angellist:before {
254
+ content: "\f209"; }
255
+
256
+ .fa-angle-double-down:before {
257
+ content: "\f103"; }
258
+
259
+ .fa-angle-double-left:before {
260
+ content: "\f100"; }
261
+
262
+ .fa-angle-double-right:before {
263
+ content: "\f101"; }
264
+
265
+ .fa-angle-double-up:before {
266
+ content: "\f102"; }
267
+
268
+ .fa-angle-down:before {
269
+ content: "\f107"; }
270
+
271
+ .fa-angle-left:before {
272
+ content: "\f104"; }
273
+
274
+ .fa-angle-right:before {
275
+ content: "\f105"; }
276
+
277
+ .fa-angle-up:before {
278
+ content: "\f106"; }
279
+
280
+ .fa-angrycreative:before {
281
+ content: "\f36e"; }
282
+
283
+ .fa-angular:before {
284
+ content: "\f420"; }
285
+
286
+ .fa-app-store:before {
287
+ content: "\f36f"; }
288
+
289
+ .fa-app-store-ios:before {
290
+ content: "\f370"; }
291
+
292
+ .fa-apper:before {
293
+ content: "\f371"; }
294
+
295
+ .fa-apple:before {
296
+ content: "\f179"; }
297
+
298
+ .fa-apple-pay:before {
299
+ content: "\f415"; }
300
+
301
+ .fa-archive:before {
302
+ content: "\f187"; }
303
+
304
+ .fa-arrow-alt-circle-down:before {
305
+ content: "\f358"; }
306
+
307
+ .fa-arrow-alt-circle-left:before {
308
+ content: "\f359"; }
309
+
310
+ .fa-arrow-alt-circle-right:before {
311
+ content: "\f35a"; }
312
+
313
+ .fa-arrow-alt-circle-up:before {
314
+ content: "\f35b"; }
315
+
316
+ .fa-arrow-circle-down:before {
317
+ content: "\f0ab"; }
318
+
319
+ .fa-arrow-circle-left:before {
320
+ content: "\f0a8"; }
321
+
322
+ .fa-arrow-circle-right:before {
323
+ content: "\f0a9"; }
324
+
325
+ .fa-arrow-circle-up:before {
326
+ content: "\f0aa"; }
327
+
328
+ .fa-arrow-down:before {
329
+ content: "\f063"; }
330
+
331
+ .fa-arrow-left:before {
332
+ content: "\f060"; }
333
+
334
+ .fa-arrow-right:before {
335
+ content: "\f061"; }
336
+
337
+ .fa-arrow-up:before {
338
+ content: "\f062"; }
339
+
340
+ .fa-arrows-alt:before {
341
+ content: "\f0b2"; }
342
+
343
+ .fa-arrows-alt-h:before {
344
+ content: "\f337"; }
345
+
346
+ .fa-arrows-alt-v:before {
347
+ content: "\f338"; }
348
+
349
+ .fa-assistive-listening-systems:before {
350
+ content: "\f2a2"; }
351
+
352
+ .fa-asterisk:before {
353
+ content: "\f069"; }
354
+
355
+ .fa-asymmetrik:before {
356
+ content: "\f372"; }
357
+
358
+ .fa-at:before {
359
+ content: "\f1fa"; }
360
+
361
+ .fa-audible:before {
362
+ content: "\f373"; }
363
+
364
+ .fa-audio-description:before {
365
+ content: "\f29e"; }
366
+
367
+ .fa-autoprefixer:before {
368
+ content: "\f41c"; }
369
+
370
+ .fa-avianex:before {
371
+ content: "\f374"; }
372
+
373
+ .fa-aviato:before {
374
+ content: "\f421"; }
375
+
376
+ .fa-aws:before {
377
+ content: "\f375"; }
378
+
379
+ .fa-backward:before {
380
+ content: "\f04a"; }
381
+
382
+ .fa-balance-scale:before {
383
+ content: "\f24e"; }
384
+
385
+ .fa-ban:before {
386
+ content: "\f05e"; }
387
+
388
+ .fa-bandcamp:before {
389
+ content: "\f2d5"; }
390
+
391
+ .fa-barcode:before {
392
+ content: "\f02a"; }
393
+
394
+ .fa-bars:before {
395
+ content: "\f0c9"; }
396
+
397
+ .fa-bath:before {
398
+ content: "\f2cd"; }
399
+
400
+ .fa-battery-empty:before {
401
+ content: "\f244"; }
402
+
403
+ .fa-battery-full:before {
404
+ content: "\f240"; }
405
+
406
+ .fa-battery-half:before {
407
+ content: "\f242"; }
408
+
409
+ .fa-battery-quarter:before {
410
+ content: "\f243"; }
411
+
412
+ .fa-battery-three-quarters:before {
413
+ content: "\f241"; }
414
+
415
+ .fa-bed:before {
416
+ content: "\f236"; }
417
+
418
+ .fa-beer:before {
419
+ content: "\f0fc"; }
420
+
421
+ .fa-behance:before {
422
+ content: "\f1b4"; }
423
+
424
+ .fa-behance-square:before {
425
+ content: "\f1b5"; }
426
+
427
+ .fa-bell:before {
428
+ content: "\f0f3"; }
429
+
430
+ .fa-bell-slash:before {
431
+ content: "\f1f6"; }
432
+
433
+ .fa-bicycle:before {
434
+ content: "\f206"; }
435
+
436
+ .fa-bimobject:before {
437
+ content: "\f378"; }
438
+
439
+ .fa-binoculars:before {
440
+ content: "\f1e5"; }
441
+
442
+ .fa-birthday-cake:before {
443
+ content: "\f1fd"; }
444
+
445
+ .fa-bitbucket:before {
446
+ content: "\f171"; }
447
+
448
+ .fa-bitcoin:before {
449
+ content: "\f379"; }
450
+
451
+ .fa-bity:before {
452
+ content: "\f37a"; }
453
+
454
+ .fa-black-tie:before {
455
+ content: "\f27e"; }
456
+
457
+ .fa-blackberry:before {
458
+ content: "\f37b"; }
459
+
460
+ .fa-blind:before {
461
+ content: "\f29d"; }
462
+
463
+ .fa-blogger:before {
464
+ content: "\f37c"; }
465
+
466
+ .fa-blogger-b:before {
467
+ content: "\f37d"; }
468
+
469
+ .fa-bluetooth:before {
470
+ content: "\f293"; }
471
+
472
+ .fa-bluetooth-b:before {
473
+ content: "\f294"; }
474
+
475
+ .fa-bold:before {
476
+ content: "\f032"; }
477
+
478
+ .fa-bolt:before {
479
+ content: "\f0e7"; }
480
+
481
+ .fa-bomb:before {
482
+ content: "\f1e2"; }
483
+
484
+ .fa-book:before {
485
+ content: "\f02d"; }
486
+
487
+ .fa-bookmark:before {
488
+ content: "\f02e"; }
489
+
490
+ .fa-braille:before {
491
+ content: "\f2a1"; }
492
+
493
+ .fa-briefcase:before {
494
+ content: "\f0b1"; }
495
+
496
+ .fa-btc:before {
497
+ content: "\f15a"; }
498
+
499
+ .fa-bug:before {
500
+ content: "\f188"; }
501
+
502
+ .fa-building:before {
503
+ content: "\f1ad"; }
504
+
505
+ .fa-bullhorn:before {
506
+ content: "\f0a1"; }
507
+
508
+ .fa-bullseye:before {
509
+ content: "\f140"; }
510
+
511
+ .fa-buromobelexperte:before {
512
+ content: "\f37f"; }
513
+
514
+ .fa-bus:before {
515
+ content: "\f207"; }
516
+
517
+ .fa-buysellads:before {
518
+ content: "\f20d"; }
519
+
520
+ .fa-calculator:before {
521
+ content: "\f1ec"; }
522
+
523
+ .fa-calendar:before {
524
+ content: "\f133"; }
525
+
526
+ .fa-calendar-alt:before {
527
+ content: "\f073"; }
528
+
529
+ .fa-calendar-check:before {
530
+ content: "\f274"; }
531
+
532
+ .fa-calendar-minus:before {
533
+ content: "\f272"; }
534
+
535
+ .fa-calendar-plus:before {
536
+ content: "\f271"; }
537
+
538
+ .fa-calendar-times:before {
539
+ content: "\f273"; }
540
+
541
+ .fa-camera:before {
542
+ content: "\f030"; }
543
+
544
+ .fa-camera-retro:before {
545
+ content: "\f083"; }
546
+
547
+ .fa-car:before {
548
+ content: "\f1b9"; }
549
+
550
+ .fa-caret-down:before {
551
+ content: "\f0d7"; }
552
+
553
+ .fa-caret-left:before {
554
+ content: "\f0d9"; }
555
+
556
+ .fa-caret-right:before {
557
+ content: "\f0da"; }
558
+
559
+ .fa-caret-square-down:before {
560
+ content: "\f150"; }
561
+
562
+ .fa-caret-square-left:before {
563
+ content: "\f191"; }
564
+
565
+ .fa-caret-square-right:before {
566
+ content: "\f152"; }
567
+
568
+ .fa-caret-square-up:before {
569
+ content: "\f151"; }
570
+
571
+ .fa-caret-up:before {
572
+ content: "\f0d8"; }
573
+
574
+ .fa-cart-arrow-down:before {
575
+ content: "\f218"; }
576
+
577
+ .fa-cart-plus:before {
578
+ content: "\f217"; }
579
+
580
+ .fa-cc-amazon-pay:before {
581
+ content: "\f42d"; }
582
+
583
+ .fa-cc-amex:before {
584
+ content: "\f1f3"; }
585
+
586
+ .fa-cc-apple-pay:before {
587
+ content: "\f416"; }
588
+
589
+ .fa-cc-diners-club:before {
590
+ content: "\f24c"; }
591
+
592
+ .fa-cc-discover:before {
593
+ content: "\f1f2"; }
594
+
595
+ .fa-cc-jcb:before {
596
+ content: "\f24b"; }
597
+
598
+ .fa-cc-mastercard:before {
599
+ content: "\f1f1"; }
600
+
601
+ .fa-cc-paypal:before {
602
+ content: "\f1f4"; }
603
+
604
+ .fa-cc-stripe:before {
605
+ content: "\f1f5"; }
606
+
607
+ .fa-cc-visa:before {
608
+ content: "\f1f0"; }
609
+
610
+ .fa-centercode:before {
611
+ content: "\f380"; }
612
+
613
+ .fa-certificate:before {
614
+ content: "\f0a3"; }
615
+
616
+ .fa-chart-area:before {
617
+ content: "\f1fe"; }
618
+
619
+ .fa-chart-bar:before {
620
+ content: "\f080"; }
621
+
622
+ .fa-chart-line:before {
623
+ content: "\f201"; }
624
+
625
+ .fa-chart-pie:before {
626
+ content: "\f200"; }
627
+
628
+ .fa-check:before {
629
+ content: "\f00c"; }
630
+
631
+ .fa-check-circle:before {
632
+ content: "\f058"; }
633
+
634
+ .fa-check-square:before {
635
+ content: "\f14a"; }
636
+
637
+ .fa-chevron-circle-down:before {
638
+ content: "\f13a"; }
639
+
640
+ .fa-chevron-circle-left:before {
641
+ content: "\f137"; }
642
+
643
+ .fa-chevron-circle-right:before {
644
+ content: "\f138"; }
645
+
646
+ .fa-chevron-circle-up:before {
647
+ content: "\f139"; }
648
+
649
+ .fa-chevron-down:before {
650
+ content: "\f078"; }
651
+
652
+ .fa-chevron-left:before {
653
+ content: "\f053"; }
654
+
655
+ .fa-chevron-right:before {
656
+ content: "\f054"; }
657
+
658
+ .fa-chevron-up:before {
659
+ content: "\f077"; }
660
+
661
+ .fa-child:before {
662
+ content: "\f1ae"; }
663
+
664
+ .fa-chrome:before {
665
+ content: "\f268"; }
666
+
667
+ .fa-circle:before {
668
+ content: "\f111"; }
669
+
670
+ .fa-circle-notch:before {
671
+ content: "\f1ce"; }
672
+
673
+ .fa-clipboard:before {
674
+ content: "\f328"; }
675
+
676
+ .fa-clock:before {
677
+ content: "\f017"; }
678
+
679
+ .fa-clone:before {
680
+ content: "\f24d"; }
681
+
682
+ .fa-closed-captioning:before {
683
+ content: "\f20a"; }
684
+
685
+ .fa-cloud:before {
686
+ content: "\f0c2"; }
687
+
688
+ .fa-cloud-download-alt:before {
689
+ content: "\f381"; }
690
+
691
+ .fa-cloud-upload-alt:before {
692
+ content: "\f382"; }
693
+
694
+ .fa-cloudscale:before {
695
+ content: "\f383"; }
696
+
697
+ .fa-cloudsmith:before {
698
+ content: "\f384"; }
699
+
700
+ .fa-cloudversify:before {
701
+ content: "\f385"; }
702
+
703
+ .fa-code:before {
704
+ content: "\f121"; }
705
+
706
+ .fa-code-branch:before {
707
+ content: "\f126"; }
708
+
709
+ .fa-codepen:before {
710
+ content: "\f1cb"; }
711
+
712
+ .fa-codiepie:before {
713
+ content: "\f284"; }
714
+
715
+ .fa-coffee:before {
716
+ content: "\f0f4"; }
717
+
718
+ .fa-cog:before {
719
+ content: "\f013"; }
720
+
721
+ .fa-cogs:before {
722
+ content: "\f085"; }
723
+
724
+ .fa-columns:before {
725
+ content: "\f0db"; }
726
+
727
+ .fa-comment:before {
728
+ content: "\f075"; }
729
+
730
+ .fa-comment-alt:before {
731
+ content: "\f27a"; }
732
+
733
+ .fa-comments:before {
734
+ content: "\f086"; }
735
+
736
+ .fa-compass:before {
737
+ content: "\f14e"; }
738
+
739
+ .fa-compress:before {
740
+ content: "\f066"; }
741
+
742
+ .fa-connectdevelop:before {
743
+ content: "\f20e"; }
744
+
745
+ .fa-contao:before {
746
+ content: "\f26d"; }
747
+
748
+ .fa-copy:before {
749
+ content: "\f0c5"; }
750
+
751
+ .fa-copyright:before {
752
+ content: "\f1f9"; }
753
+
754
+ .fa-cpanel:before {
755
+ content: "\f388"; }
756
+
757
+ .fa-creative-commons:before {
758
+ content: "\f25e"; }
759
+
760
+ .fa-credit-card:before {
761
+ content: "\f09d"; }
762
+
763
+ .fa-crop:before {
764
+ content: "\f125"; }
765
+
766
+ .fa-crosshairs:before {
767
+ content: "\f05b"; }
768
+
769
+ .fa-css3:before {
770
+ content: "\f13c"; }
771
+
772
+ .fa-css3-alt:before {
773
+ content: "\f38b"; }
774
+
775
+ .fa-cube:before {
776
+ content: "\f1b2"; }
777
+
778
+ .fa-cubes:before {
779
+ content: "\f1b3"; }
780
+
781
+ .fa-cut:before {
782
+ content: "\f0c4"; }
783
+
784
+ .fa-cuttlefish:before {
785
+ content: "\f38c"; }
786
+
787
+ .fa-d-and-d:before {
788
+ content: "\f38d"; }
789
+
790
+ .fa-dashcube:before {
791
+ content: "\f210"; }
792
+
793
+ .fa-database:before {
794
+ content: "\f1c0"; }
795
+
796
+ .fa-deaf:before {
797
+ content: "\f2a4"; }
798
+
799
+ .fa-delicious:before {
800
+ content: "\f1a5"; }
801
+
802
+ .fa-deploydog:before {
803
+ content: "\f38e"; }
804
+
805
+ .fa-deskpro:before {
806
+ content: "\f38f"; }
807
+
808
+ .fa-desktop:before {
809
+ content: "\f108"; }
810
+
811
+ .fa-deviantart:before {
812
+ content: "\f1bd"; }
813
+
814
+ .fa-digg:before {
815
+ content: "\f1a6"; }
816
+
817
+ .fa-digital-ocean:before {
818
+ content: "\f391"; }
819
+
820
+ .fa-discord:before {
821
+ content: "\f392"; }
822
+
823
+ .fa-discourse:before {
824
+ content: "\f393"; }
825
+
826
+ .fa-dochub:before {
827
+ content: "\f394"; }
828
+
829
+ .fa-docker:before {
830
+ content: "\f395"; }
831
+
832
+ .fa-dollar-sign:before {
833
+ content: "\f155"; }
834
+
835
+ .fa-dot-circle:before {
836
+ content: "\f192"; }
837
+
838
+ .fa-download:before {
839
+ content: "\f019"; }
840
+
841
+ .fa-draft2digital:before {
842
+ content: "\f396"; }
843
+
844
+ .fa-dribbble:before {
845
+ content: "\f17d"; }
846
+
847
+ .fa-dribbble-square:before {
848
+ content: "\f397"; }
849
+
850
+ .fa-dropbox:before {
851
+ content: "\f16b"; }
852
+
853
+ .fa-drupal:before {
854
+ content: "\f1a9"; }
855
+
856
+ .fa-dyalog:before {
857
+ content: "\f399"; }
858
+
859
+ .fa-earlybirds:before {
860
+ content: "\f39a"; }
861
+
862
+ .fa-edge:before {
863
+ content: "\f282"; }
864
+
865
+ .fa-edit:before {
866
+ content: "\f044"; }
867
+
868
+ .fa-eject:before {
869
+ content: "\f052"; }
870
+
871
+ .fa-elementor:before {
872
+ content: "\f430"; }
873
+
874
+ .fa-ellipsis-h:before {
875
+ content: "\f141"; }
876
+
877
+ .fa-ellipsis-v:before {
878
+ content: "\f142"; }
879
+
880
+ .fa-ember:before {
881
+ content: "\f423"; }
882
+
883
+ .fa-empire:before {
884
+ content: "\f1d1"; }
885
+
886
+ .fa-envelope:before {
887
+ content: "\f0e0"; }
888
+
889
+ .fa-envelope-open:before {
890
+ content: "\f2b6"; }
891
+
892
+ .fa-envelope-square:before {
893
+ content: "\f199"; }
894
+
895
+ .fa-envira:before {
896
+ content: "\f299"; }
897
+
898
+ .fa-eraser:before {
899
+ content: "\f12d"; }
900
+
901
+ .fa-erlang:before {
902
+ content: "\f39d"; }
903
+
904
+ .fa-ethereum:before {
905
+ content: "\f42e"; }
906
+
907
+ .fa-etsy:before {
908
+ content: "\f2d7"; }
909
+
910
+ .fa-euro-sign:before {
911
+ content: "\f153"; }
912
+
913
+ .fa-exchange-alt:before {
914
+ content: "\f362"; }
915
+
916
+ .fa-exclamation:before {
917
+ content: "\f12a"; }
918
+
919
+ .fa-exclamation-circle:before {
920
+ content: "\f06a"; }
921
+
922
+ .fa-exclamation-triangle:before {
923
+ content: "\f071"; }
924
+
925
+ .fa-expand:before {
926
+ content: "\f065"; }
927
+
928
+ .fa-expand-arrows-alt:before {
929
+ content: "\f31e"; }
930
+
931
+ .fa-expeditedssl:before {
932
+ content: "\f23e"; }
933
+
934
+ .fa-external-link-alt:before {
935
+ content: "\f35d"; }
936
+
937
+ .fa-external-link-square-alt:before {
938
+ content: "\f360"; }
939
+
940
+ .fa-eye:before {
941
+ content: "\f06e"; }
942
+
943
+ .fa-eye-dropper:before {
944
+ content: "\f1fb"; }
945
+
946
+ .fa-eye-slash:before {
947
+ content: "\f070"; }
948
+
949
+ .fa-facebook:before {
950
+ content: "\f09a"; }
951
+
952
+ .fa-facebook-f:before {
953
+ content: "\f39e"; }
954
+
955
+ .fa-facebook-messenger:before {
956
+ content: "\f39f"; }
957
+
958
+ .fa-facebook-square:before {
959
+ content: "\f082"; }
960
+
961
+ .fa-fast-backward:before {
962
+ content: "\f049"; }
963
+
964
+ .fa-fast-forward:before {
965
+ content: "\f050"; }
966
+
967
+ .fa-fax:before {
968
+ content: "\f1ac"; }
969
+
970
+ .fa-female:before {
971
+ content: "\f182"; }
972
+
973
+ .fa-fighter-jet:before {
974
+ content: "\f0fb"; }
975
+
976
+ .fa-file:before {
977
+ content: "\f15b"; }
978
+
979
+ .fa-file-alt:before {
980
+ content: "\f15c"; }
981
+
982
+ .fa-file-archive:before {
983
+ content: "\f1c6"; }
984
+
985
+ .fa-file-audio:before {
986
+ content: "\f1c7"; }
987
+
988
+ .fa-file-code:before {
989
+ content: "\f1c9"; }
990
+
991
+ .fa-file-excel:before {
992
+ content: "\f1c3"; }
993
+
994
+ .fa-file-image:before {
995
+ content: "\f1c5"; }
996
+
997
+ .fa-file-pdf:before {
998
+ content: "\f1c1"; }
999
+
1000
+ .fa-file-powerpoint:before {
1001
+ content: "\f1c4"; }
1002
+
1003
+ .fa-file-video:before {
1004
+ content: "\f1c8"; }
1005
+
1006
+ .fa-file-word:before {
1007
+ content: "\f1c2"; }
1008
+
1009
+ .fa-film:before {
1010
+ content: "\f008"; }
1011
+
1012
+ .fa-filter:before {
1013
+ content: "\f0b0"; }
1014
+
1015
+ .fa-fire:before {
1016
+ content: "\f06d"; }
1017
+
1018
+ .fa-fire-extinguisher:before {
1019
+ content: "\f134"; }
1020
+
1021
+ .fa-firefox:before {
1022
+ content: "\f269"; }
1023
+
1024
+ .fa-first-order:before {
1025
+ content: "\f2b0"; }
1026
+
1027
+ .fa-firstdraft:before {
1028
+ content: "\f3a1"; }
1029
+
1030
+ .fa-flag:before {
1031
+ content: "\f024"; }
1032
+
1033
+ .fa-flag-checkered:before {
1034
+ content: "\f11e"; }
1035
+
1036
+ .fa-flask:before {
1037
+ content: "\f0c3"; }
1038
+
1039
+ .fa-flickr:before {
1040
+ content: "\f16e"; }
1041
+
1042
+ .fa-fly:before {
1043
+ content: "\f417"; }
1044
+
1045
+ .fa-folder:before {
1046
+ content: "\f07b"; }
1047
+
1048
+ .fa-folder-open:before {
1049
+ content: "\f07c"; }
1050
+
1051
+ .fa-font:before {
1052
+ content: "\f031"; }
1053
+
1054
+ .fa-font-awesome:before {
1055
+ content: "\f2b4"; }
1056
+
1057
+ .fa-font-awesome-alt:before {
1058
+ content: "\f35c"; }
1059
+
1060
+ .fa-font-awesome-flag:before {
1061
+ content: "\f425"; }
1062
+
1063
+ .fa-fonticons:before {
1064
+ content: "\f280"; }
1065
+
1066
+ .fa-fonticons-fi:before {
1067
+ content: "\f3a2"; }
1068
+
1069
+ .fa-fort-awesome:before {
1070
+ content: "\f286"; }
1071
+
1072
+ .fa-fort-awesome-alt:before {
1073
+ content: "\f3a3"; }
1074
+
1075
+ .fa-forumbee:before {
1076
+ content: "\f211"; }
1077
+
1078
+ .fa-forward:before {
1079
+ content: "\f04e"; }
1080
+
1081
+ .fa-foursquare:before {
1082
+ content: "\f180"; }
1083
+
1084
+ .fa-free-code-camp:before {
1085
+ content: "\f2c5"; }
1086
+
1087
+ .fa-freebsd:before {
1088
+ content: "\f3a4"; }
1089
+
1090
+ .fa-frown:before {
1091
+ content: "\f119"; }
1092
+
1093
+ .fa-futbol:before {
1094
+ content: "\f1e3"; }
1095
+
1096
+ .fa-gamepad:before {
1097
+ content: "\f11b"; }
1098
+
1099
+ .fa-gavel:before {
1100
+ content: "\f0e3"; }
1101
+
1102
+ .fa-gem:before {
1103
+ content: "\f3a5"; }
1104
+
1105
+ .fa-genderless:before {
1106
+ content: "\f22d"; }
1107
+
1108
+ .fa-get-pocket:before {
1109
+ content: "\f265"; }
1110
+
1111
+ .fa-gg:before {
1112
+ content: "\f260"; }
1113
+
1114
+ .fa-gg-circle:before {
1115
+ content: "\f261"; }
1116
+
1117
+ .fa-gift:before {
1118
+ content: "\f06b"; }
1119
+
1120
+ .fa-git:before {
1121
+ content: "\f1d3"; }
1122
+
1123
+ .fa-git-square:before {
1124
+ content: "\f1d2"; }
1125
+
1126
+ .fa-github:before {
1127
+ content: "\f09b"; }
1128
+
1129
+ .fa-github-alt:before {
1130
+ content: "\f113"; }
1131
+
1132
+ .fa-github-square:before {
1133
+ content: "\f092"; }
1134
+
1135
+ .fa-gitkraken:before {
1136
+ content: "\f3a6"; }
1137
+
1138
+ .fa-gitlab:before {
1139
+ content: "\f296"; }
1140
+
1141
+ .fa-gitter:before {
1142
+ content: "\f426"; }
1143
+
1144
+ .fa-glass-martini:before {
1145
+ content: "\f000"; }
1146
+
1147
+ .fa-glide:before {
1148
+ content: "\f2a5"; }
1149
+
1150
+ .fa-glide-g:before {
1151
+ content: "\f2a6"; }
1152
+
1153
+ .fa-globe:before {
1154
+ content: "\f0ac"; }
1155
+
1156
+ .fa-gofore:before {
1157
+ content: "\f3a7"; }
1158
+
1159
+ .fa-goodreads:before {
1160
+ content: "\f3a8"; }
1161
+
1162
+ .fa-goodreads-g:before {
1163
+ content: "\f3a9"; }
1164
+
1165
+ .fa-google:before {
1166
+ content: "\f1a0"; }
1167
+
1168
+ .fa-google-drive:before {
1169
+ content: "\f3aa"; }
1170
+
1171
+ .fa-google-play:before {
1172
+ content: "\f3ab"; }
1173
+
1174
+ .fa-google-plus:before {
1175
+ content: "\f2b3"; }
1176
+
1177
+ .fa-google-plus-g:before {
1178
+ content: "\f0d5"; }
1179
+
1180
+ .fa-google-plus-square:before {
1181
+ content: "\f0d4"; }
1182
+
1183
+ .fa-google-wallet:before {
1184
+ content: "\f1ee"; }
1185
+
1186
+ .fa-graduation-cap:before {
1187
+ content: "\f19d"; }
1188
+
1189
+ .fa-gratipay:before {
1190
+ content: "\f184"; }
1191
+
1192
+ .fa-grav:before {
1193
+ content: "\f2d6"; }
1194
+
1195
+ .fa-gripfire:before {
1196
+ content: "\f3ac"; }
1197
+
1198
+ .fa-grunt:before {
1199
+ content: "\f3ad"; }
1200
+
1201
+ .fa-gulp:before {
1202
+ content: "\f3ae"; }
1203
+
1204
+ .fa-h-square:before {
1205
+ content: "\f0fd"; }
1206
+
1207
+ .fa-hacker-news:before {
1208
+ content: "\f1d4"; }
1209
+
1210
+ .fa-hacker-news-square:before {
1211
+ content: "\f3af"; }
1212
+
1213
+ .fa-hand-lizard:before {
1214
+ content: "\f258"; }
1215
+
1216
+ .fa-hand-paper:before {
1217
+ content: "\f256"; }
1218
+
1219
+ .fa-hand-peace:before {
1220
+ content: "\f25b"; }
1221
+
1222
+ .fa-hand-point-down:before {
1223
+ content: "\f0a7"; }
1224
+
1225
+ .fa-hand-point-left:before {
1226
+ content: "\f0a5"; }
1227
+
1228
+ .fa-hand-point-right:before {
1229
+ content: "\f0a4"; }
1230
+
1231
+ .fa-hand-point-up:before {
1232
+ content: "\f0a6"; }
1233
+
1234
+ .fa-hand-pointer:before {
1235
+ content: "\f25a"; }
1236
+
1237
+ .fa-hand-rock:before {
1238
+ content: "\f255"; }
1239
+
1240
+ .fa-hand-scissors:before {
1241
+ content: "\f257"; }
1242
+
1243
+ .fa-hand-spock:before {
1244
+ content: "\f259"; }
1245
+
1246
+ .fa-handshake:before {
1247
+ content: "\f2b5"; }
1248
+
1249
+ .fa-hashtag:before {
1250
+ content: "\f292"; }
1251
+
1252
+ .fa-hdd:before {
1253
+ content: "\f0a0"; }
1254
+
1255
+ .fa-heading:before {
1256
+ content: "\f1dc"; }
1257
+
1258
+ .fa-headphones:before {
1259
+ content: "\f025"; }
1260
+
1261
+ .fa-heart:before {
1262
+ content: "\f004"; }
1263
+
1264
+ .fa-heartbeat:before {
1265
+ content: "\f21e"; }
1266
+
1267
+ .fa-hire-a-helper:before {
1268
+ content: "\f3b0"; }
1269
+
1270
+ .fa-history:before {
1271
+ content: "\f1da"; }
1272
+
1273
+ .fa-home:before {
1274
+ content: "\f015"; }
1275
+
1276
+ .fa-hooli:before {
1277
+ content: "\f427"; }
1278
+
1279
+ .fa-hospital:before {
1280
+ content: "\f0f8"; }
1281
+
1282
+ .fa-hotjar:before {
1283
+ content: "\f3b1"; }
1284
+
1285
+ .fa-hourglass:before {
1286
+ content: "\f254"; }
1287
+
1288
+ .fa-hourglass-end:before {
1289
+ content: "\f253"; }
1290
+
1291
+ .fa-hourglass-half:before {
1292
+ content: "\f252"; }
1293
+
1294
+ .fa-hourglass-start:before {
1295
+ content: "\f251"; }
1296
+
1297
+ .fa-houzz:before {
1298
+ content: "\f27c"; }
1299
+
1300
+ .fa-html5:before {
1301
+ content: "\f13b"; }
1302
+
1303
+ .fa-hubspot:before {
1304
+ content: "\f3b2"; }
1305
+
1306
+ .fa-i-cursor:before {
1307
+ content: "\f246"; }
1308
+
1309
+ .fa-id-badge:before {
1310
+ content: "\f2c1"; }
1311
+
1312
+ .fa-id-card:before {
1313
+ content: "\f2c2"; }
1314
+
1315
+ .fa-image:before {
1316
+ content: "\f03e"; }
1317
+
1318
+ .fa-images:before {
1319
+ content: "\f302"; }
1320
+
1321
+ .fa-imdb:before {
1322
+ content: "\f2d8"; }
1323
+
1324
+ .fa-inbox:before {
1325
+ content: "\f01c"; }
1326
+
1327
+ .fa-indent:before {
1328
+ content: "\f03c"; }
1329
+
1330
+ .fa-industry:before {
1331
+ content: "\f275"; }
1332
+
1333
+ .fa-info:before {
1334
+ content: "\f129"; }
1335
+
1336
+ .fa-info-circle:before {
1337
+ content: "\f05a"; }
1338
+
1339
+ .fa-instagram:before {
1340
+ content: "\f16d"; }
1341
+
1342
+ .fa-internet-explorer:before {
1343
+ content: "\f26b"; }
1344
+
1345
+ .fa-ioxhost:before {
1346
+ content: "\f208"; }
1347
+
1348
+ .fa-italic:before {
1349
+ content: "\f033"; }
1350
+
1351
+ .fa-itunes:before {
1352
+ content: "\f3b4"; }
1353
+
1354
+ .fa-itunes-note:before {
1355
+ content: "\f3b5"; }
1356
+
1357
+ .fa-jenkins:before {
1358
+ content: "\f3b6"; }
1359
+
1360
+ .fa-joget:before {
1361
+ content: "\f3b7"; }
1362
+
1363
+ .fa-joomla:before {
1364
+ content: "\f1aa"; }
1365
+
1366
+ .fa-js:before {
1367
+ content: "\f3b8"; }
1368
+
1369
+ .fa-js-square:before {
1370
+ content: "\f3b9"; }
1371
+
1372
+ .fa-jsfiddle:before {
1373
+ content: "\f1cc"; }
1374
+
1375
+ .fa-key:before {
1376
+ content: "\f084"; }
1377
+
1378
+ .fa-keyboard:before {
1379
+ content: "\f11c"; }
1380
+
1381
+ .fa-keycdn:before {
1382
+ content: "\f3ba"; }
1383
+
1384
+ .fa-kickstarter:before {
1385
+ content: "\f3bb"; }
1386
+
1387
+ .fa-kickstarter-k:before {
1388
+ content: "\f3bc"; }
1389
+
1390
+ .fa-korvue:before {
1391
+ content: "\f42f"; }
1392
+
1393
+ .fa-language:before {
1394
+ content: "\f1ab"; }
1395
+
1396
+ .fa-laptop:before {
1397
+ content: "\f109"; }
1398
+
1399
+ .fa-laravel:before {
1400
+ content: "\f3bd"; }
1401
+
1402
+ .fa-lastfm:before {
1403
+ content: "\f202"; }
1404
+
1405
+ .fa-lastfm-square:before {
1406
+ content: "\f203"; }
1407
+
1408
+ .fa-leaf:before {
1409
+ content: "\f06c"; }
1410
+
1411
+ .fa-leanpub:before {
1412
+ content: "\f212"; }
1413
+
1414
+ .fa-lemon:before {
1415
+ content: "\f094"; }
1416
+
1417
+ .fa-less:before {
1418
+ content: "\f41d"; }
1419
+
1420
+ .fa-level-down-alt:before {
1421
+ content: "\f3be"; }
1422
+
1423
+ .fa-level-up-alt:before {
1424
+ content: "\f3bf"; }
1425
+
1426
+ .fa-life-ring:before {
1427
+ content: "\f1cd"; }
1428
+
1429
+ .fa-lightbulb:before {
1430
+ content: "\f0eb"; }
1431
+
1432
+ .fa-line:before {
1433
+ content: "\f3c0"; }
1434
+
1435
+ .fa-link:before {
1436
+ content: "\f0c1"; }
1437
+
1438
+ .fa-linkedin:before {
1439
+ content: "\f08c"; }
1440
+
1441
+ .fa-linkedin-in:before {
1442
+ content: "\f0e1"; }
1443
+
1444
+ .fa-linode:before {
1445
+ content: "\f2b8"; }
1446
+
1447
+ .fa-linux:before {
1448
+ content: "\f17c"; }
1449
+
1450
+ .fa-lira-sign:before {
1451
+ content: "\f195"; }
1452
+
1453
+ .fa-list:before {
1454
+ content: "\f03a"; }
1455
+
1456
+ .fa-list-alt:before {
1457
+ content: "\f022"; }
1458
+
1459
+ .fa-list-ol:before {
1460
+ content: "\f0cb"; }
1461
+
1462
+ .fa-list-ul:before {
1463
+ content: "\f0ca"; }
1464
+
1465
+ .fa-location-arrow:before {
1466
+ content: "\f124"; }
1467
+
1468
+ .fa-lock:before {
1469
+ content: "\f023"; }
1470
+
1471
+ .fa-lock-open:before {
1472
+ content: "\f3c1"; }
1473
+
1474
+ .fa-long-arrow-alt-down:before {
1475
+ content: "\f309"; }
1476
+
1477
+ .fa-long-arrow-alt-left:before {
1478
+ content: "\f30a"; }
1479
+
1480
+ .fa-long-arrow-alt-right:before {
1481
+ content: "\f30b"; }
1482
+
1483
+ .fa-long-arrow-alt-up:before {
1484
+ content: "\f30c"; }
1485
+
1486
+ .fa-low-vision:before {
1487
+ content: "\f2a8"; }
1488
+
1489
+ .fa-lyft:before {
1490
+ content: "\f3c3"; }
1491
+
1492
+ .fa-magento:before {
1493
+ content: "\f3c4"; }
1494
+
1495
+ .fa-magic:before {
1496
+ content: "\f0d0"; }
1497
+
1498
+ .fa-magnet:before {
1499
+ content: "\f076"; }
1500
+
1501
+ .fa-male:before {
1502
+ content: "\f183"; }
1503
+
1504
+ .fa-map:before {
1505
+ content: "\f279"; }
1506
+
1507
+ .fa-map-marker:before {
1508
+ content: "\f041"; }
1509
+
1510
+ .fa-map-marker-alt:before {
1511
+ content: "\f3c5"; }
1512
+
1513
+ .fa-map-pin:before {
1514
+ content: "\f276"; }
1515
+
1516
+ .fa-map-signs:before {
1517
+ content: "\f277"; }
1518
+
1519
+ .fa-mars:before {
1520
+ content: "\f222"; }
1521
+
1522
+ .fa-mars-double:before {
1523
+ content: "\f227"; }
1524
+
1525
+ .fa-mars-stroke:before {
1526
+ content: "\f229"; }
1527
+
1528
+ .fa-mars-stroke-h:before {
1529
+ content: "\f22b"; }
1530
+
1531
+ .fa-mars-stroke-v:before {
1532
+ content: "\f22a"; }
1533
+
1534
+ .fa-maxcdn:before {
1535
+ content: "\f136"; }
1536
+
1537
+ .fa-medapps:before {
1538
+ content: "\f3c6"; }
1539
+
1540
+ .fa-medium:before {
1541
+ content: "\f23a"; }
1542
+
1543
+ .fa-medium-m:before {
1544
+ content: "\f3c7"; }
1545
+
1546
+ .fa-medkit:before {
1547
+ content: "\f0fa"; }
1548
+
1549
+ .fa-medrt:before {
1550
+ content: "\f3c8"; }
1551
+
1552
+ .fa-meetup:before {
1553
+ content: "\f2e0"; }
1554
+
1555
+ .fa-meh:before {
1556
+ content: "\f11a"; }
1557
+
1558
+ .fa-mercury:before {
1559
+ content: "\f223"; }
1560
+
1561
+ .fa-microchip:before {
1562
+ content: "\f2db"; }
1563
+
1564
+ .fa-microphone:before {
1565
+ content: "\f130"; }
1566
+
1567
+ .fa-microphone-slash:before {
1568
+ content: "\f131"; }
1569
+
1570
+ .fa-microsoft:before {
1571
+ content: "\f3ca"; }
1572
+
1573
+ .fa-minus:before {
1574
+ content: "\f068"; }
1575
+
1576
+ .fa-minus-circle:before {
1577
+ content: "\f056"; }
1578
+
1579
+ .fa-minus-square:before {
1580
+ content: "\f146"; }
1581
+
1582
+ .fa-mix:before {
1583
+ content: "\f3cb"; }
1584
+
1585
+ .fa-mixcloud:before {
1586
+ content: "\f289"; }
1587
+
1588
+ .fa-mizuni:before {
1589
+ content: "\f3cc"; }
1590
+
1591
+ .fa-mobile:before {
1592
+ content: "\f10b"; }
1593
+
1594
+ .fa-mobile-alt:before {
1595
+ content: "\f3cd"; }
1596
+
1597
+ .fa-modx:before {
1598
+ content: "\f285"; }
1599
+
1600
+ .fa-monero:before {
1601
+ content: "\f3d0"; }
1602
+
1603
+ .fa-money-bill-alt:before {
1604
+ content: "\f3d1"; }
1605
+
1606
+ .fa-moon:before {
1607
+ content: "\f186"; }
1608
+
1609
+ .fa-motorcycle:before {
1610
+ content: "\f21c"; }
1611
+
1612
+ .fa-mouse-pointer:before {
1613
+ content: "\f245"; }
1614
+
1615
+ .fa-music:before {
1616
+ content: "\f001"; }
1617
+
1618
+ .fa-napster:before {
1619
+ content: "\f3d2"; }
1620
+
1621
+ .fa-neuter:before {
1622
+ content: "\f22c"; }
1623
+
1624
+ .fa-newspaper:before {
1625
+ content: "\f1ea"; }
1626
+
1627
+ .fa-nintendo-switch:before {
1628
+ content: "\f418"; }
1629
+
1630
+ .fa-node:before {
1631
+ content: "\f419"; }
1632
+
1633
+ .fa-node-js:before {
1634
+ content: "\f3d3"; }
1635
+
1636
+ .fa-npm:before {
1637
+ content: "\f3d4"; }
1638
+
1639
+ .fa-ns8:before {
1640
+ content: "\f3d5"; }
1641
+
1642
+ .fa-nutritionix:before {
1643
+ content: "\f3d6"; }
1644
+
1645
+ .fa-object-group:before {
1646
+ content: "\f247"; }
1647
+
1648
+ .fa-object-ungroup:before {
1649
+ content: "\f248"; }
1650
+
1651
+ .fa-odnoklassniki:before {
1652
+ content: "\f263"; }
1653
+
1654
+ .fa-odnoklassniki-square:before {
1655
+ content: "\f264"; }
1656
+
1657
+ .fa-opencart:before {
1658
+ content: "\f23d"; }
1659
+
1660
+ .fa-openid:before {
1661
+ content: "\f19b"; }
1662
+
1663
+ .fa-opera:before {
1664
+ content: "\f26a"; }
1665
+
1666
+ .fa-optin-monster:before {
1667
+ content: "\f23c"; }
1668
+
1669
+ .fa-osi:before {
1670
+ content: "\f41a"; }
1671
+
1672
+ .fa-outdent:before {
1673
+ content: "\f03b"; }
1674
+
1675
+ .fa-page4:before {
1676
+ content: "\f3d7"; }
1677
+
1678
+ .fa-pagelines:before {
1679
+ content: "\f18c"; }
1680
+
1681
+ .fa-paint-brush:before {
1682
+ content: "\f1fc"; }
1683
+
1684
+ .fa-palfed:before {
1685
+ content: "\f3d8"; }
1686
+
1687
+ .fa-paper-plane:before {
1688
+ content: "\f1d8"; }
1689
+
1690
+ .fa-paperclip:before {
1691
+ content: "\f0c6"; }
1692
+
1693
+ .fa-paragraph:before {
1694
+ content: "\f1dd"; }
1695
+
1696
+ .fa-paste:before {
1697
+ content: "\f0ea"; }
1698
+
1699
+ .fa-patreon:before {
1700
+ content: "\f3d9"; }
1701
+
1702
+ .fa-pause:before {
1703
+ content: "\f04c"; }
1704
+
1705
+ .fa-pause-circle:before {
1706
+ content: "\f28b"; }
1707
+
1708
+ .fa-paw:before {
1709
+ content: "\f1b0"; }
1710
+
1711
+ .fa-paypal:before {
1712
+ content: "\f1ed"; }
1713
+
1714
+ .fa-pen-square:before {
1715
+ content: "\f14b"; }
1716
+
1717
+ .fa-pencil-alt:before {
1718
+ content: "\f303"; }
1719
+
1720
+ .fa-percent:before {
1721
+ content: "\f295"; }
1722
+
1723
+ .fa-periscope:before {
1724
+ content: "\f3da"; }
1725
+
1726
+ .fa-phabricator:before {
1727
+ content: "\f3db"; }
1728
+
1729
+ .fa-phoenix-framework:before {
1730
+ content: "\f3dc"; }
1731
+
1732
+ .fa-phone:before {
1733
+ content: "\f095"; }
1734
+
1735
+ .fa-phone-square:before {
1736
+ content: "\f098"; }
1737
+
1738
+ .fa-phone-volume:before {
1739
+ content: "\f2a0"; }
1740
+
1741
+ .fa-pied-piper:before {
1742
+ content: "\f2ae"; }
1743
+
1744
+ .fa-pied-piper-alt:before {
1745
+ content: "\f1a8"; }
1746
+
1747
+ .fa-pied-piper-pp:before {
1748
+ content: "\f1a7"; }
1749
+
1750
+ .fa-pinterest:before {
1751
+ content: "\f0d2"; }
1752
+
1753
+ .fa-pinterest-p:before {
1754
+ content: "\f231"; }
1755
+
1756
+ .fa-pinterest-square:before {
1757
+ content: "\f0d3"; }
1758
+
1759
+ .fa-plane:before {
1760
+ content: "\f072"; }
1761
+
1762
+ .fa-play:before {
1763
+ content: "\f04b"; }
1764
+
1765
+ .fa-play-circle:before {
1766
+ content: "\f144"; }
1767
+
1768
+ .fa-playstation:before {
1769
+ content: "\f3df"; }
1770
+
1771
+ .fa-plug:before {
1772
+ content: "\f1e6"; }
1773
+
1774
+ .fa-plus:before {
1775
+ content: "\f067"; }
1776
+
1777
+ .fa-plus-circle:before {
1778
+ content: "\f055"; }
1779
+
1780
+ .fa-plus-square:before {
1781
+ content: "\f0fe"; }
1782
+
1783
+ .fa-podcast:before {
1784
+ content: "\f2ce"; }
1785
+
1786
+ .fa-pound-sign:before {
1787
+ content: "\f154"; }
1788
+
1789
+ .fa-power-off:before {
1790
+ content: "\f011"; }
1791
+
1792
+ .fa-print:before {
1793
+ content: "\f02f"; }
1794
+
1795
+ .fa-product-hunt:before {
1796
+ content: "\f288"; }
1797
+
1798
+ .fa-pushed:before {
1799
+ content: "\f3e1"; }
1800
+
1801
+ .fa-puzzle-piece:before {
1802
+ content: "\f12e"; }
1803
+
1804
+ .fa-python:before {
1805
+ content: "\f3e2"; }
1806
+
1807
+ .fa-qq:before {
1808
+ content: "\f1d6"; }
1809
+
1810
+ .fa-qrcode:before {
1811
+ content: "\f029"; }
1812
+
1813
+ .fa-question:before {
1814
+ content: "\f128"; }
1815
+
1816
+ .fa-question-circle:before {
1817
+ content: "\f059"; }
1818
+
1819
+ .fa-quora:before {
1820
+ content: "\f2c4"; }
1821
+
1822
+ .fa-quote-left:before {
1823
+ content: "\f10d"; }
1824
+
1825
+ .fa-quote-right:before {
1826
+ content: "\f10e"; }
1827
+
1828
+ .fa-random:before {
1829
+ content: "\f074"; }
1830
+
1831
+ .fa-ravelry:before {
1832
+ content: "\f2d9"; }
1833
+
1834
+ .fa-react:before {
1835
+ content: "\f41b"; }
1836
+
1837
+ .fa-rebel:before {
1838
+ content: "\f1d0"; }
1839
+
1840
+ .fa-recycle:before {
1841
+ content: "\f1b8"; }
1842
+
1843
+ .fa-red-river:before {
1844
+ content: "\f3e3"; }
1845
+
1846
+ .fa-reddit:before {
1847
+ content: "\f1a1"; }
1848
+
1849
+ .fa-reddit-alien:before {
1850
+ content: "\f281"; }
1851
+
1852
+ .fa-reddit-square:before {
1853
+ content: "\f1a2"; }
1854
+
1855
+ .fa-redo:before {
1856
+ content: "\f01e"; }
1857
+
1858
+ .fa-redo-alt:before {
1859
+ content: "\f2f9"; }
1860
+
1861
+ .fa-registered:before {
1862
+ content: "\f25d"; }
1863
+
1864
+ .fa-rendact:before {
1865
+ content: "\f3e4"; }
1866
+
1867
+ .fa-renren:before {
1868
+ content: "\f18b"; }
1869
+
1870
+ .fa-reply:before {
1871
+ content: "\f3e5"; }
1872
+
1873
+ .fa-reply-all:before {
1874
+ content: "\f122"; }
1875
+
1876
+ .fa-replyd:before {
1877
+ content: "\f3e6"; }
1878
+
1879
+ .fa-resolving:before {
1880
+ content: "\f3e7"; }
1881
+
1882
+ .fa-retweet:before {
1883
+ content: "\f079"; }
1884
+
1885
+ .fa-road:before {
1886
+ content: "\f018"; }
1887
+
1888
+ .fa-rocket:before {
1889
+ content: "\f135"; }
1890
+
1891
+ .fa-rocketchat:before {
1892
+ content: "\f3e8"; }
1893
+
1894
+ .fa-rockrms:before {
1895
+ content: "\f3e9"; }
1896
+
1897
+ .fa-rss:before {
1898
+ content: "\f09e"; }
1899
+
1900
+ .fa-rss-square:before {
1901
+ content: "\f143"; }
1902
+
1903
+ .fa-ruble-sign:before {
1904
+ content: "\f158"; }
1905
+
1906
+ .fa-rupee-sign:before {
1907
+ content: "\f156"; }
1908
+
1909
+ .fa-safari:before {
1910
+ content: "\f267"; }
1911
+
1912
+ .fa-sass:before {
1913
+ content: "\f41e"; }
1914
+
1915
+ .fa-save:before {
1916
+ content: "\f0c7"; }
1917
+
1918
+ .fa-schlix:before {
1919
+ content: "\f3ea"; }
1920
+
1921
+ .fa-scribd:before {
1922
+ content: "\f28a"; }
1923
+
1924
+ .fa-search:before {
1925
+ content: "\f002"; }
1926
+
1927
+ .fa-search-minus:before {
1928
+ content: "\f010"; }
1929
+
1930
+ .fa-search-plus:before {
1931
+ content: "\f00e"; }
1932
+
1933
+ .fa-searchengin:before {
1934
+ content: "\f3eb"; }
1935
+
1936
+ .fa-sellcast:before {
1937
+ content: "\f2da"; }
1938
+
1939
+ .fa-sellsy:before {
1940
+ content: "\f213"; }
1941
+
1942
+ .fa-server:before {
1943
+ content: "\f233"; }
1944
+
1945
+ .fa-servicestack:before {
1946
+ content: "\f3ec"; }
1947
+
1948
+ .fa-share:before {
1949
+ content: "\f064"; }
1950
+
1951
+ .fa-share-alt:before {
1952
+ content: "\f1e0"; }
1953
+
1954
+ .fa-share-alt-square:before {
1955
+ content: "\f1e1"; }
1956
+
1957
+ .fa-share-square:before {
1958
+ content: "\f14d"; }
1959
+
1960
+ .fa-shekel-sign:before {
1961
+ content: "\f20b"; }
1962
+
1963
+ .fa-shield-alt:before {
1964
+ content: "\f3ed"; }
1965
+
1966
+ .fa-ship:before {
1967
+ content: "\f21a"; }
1968
+
1969
+ .fa-shirtsinbulk:before {
1970
+ content: "\f214"; }
1971
+
1972
+ .fa-shopping-bag:before {
1973
+ content: "\f290"; }
1974
+
1975
+ .fa-shopping-basket:before {
1976
+ content: "\f291"; }
1977
+
1978
+ .fa-shopping-cart:before {
1979
+ content: "\f07a"; }
1980
+
1981
+ .fa-shower:before {
1982
+ content: "\f2cc"; }
1983
+
1984
+ .fa-sign-in-alt:before {
1985
+ content: "\f2f6"; }
1986
+
1987
+ .fa-sign-language:before {
1988
+ content: "\f2a7"; }
1989
+
1990
+ .fa-sign-out-alt:before {
1991
+ content: "\f2f5"; }
1992
+
1993
+ .fa-signal:before {
1994
+ content: "\f012"; }
1995
+
1996
+ .fa-simplybuilt:before {
1997
+ content: "\f215"; }
1998
+
1999
+ .fa-sistrix:before {
2000
+ content: "\f3ee"; }
2001
+
2002
+ .fa-sitemap:before {
2003
+ content: "\f0e8"; }
2004
+
2005
+ .fa-skyatlas:before {
2006
+ content: "\f216"; }
2007
+
2008
+ .fa-skype:before {
2009
+ content: "\f17e"; }
2010
+
2011
+ .fa-slack:before {
2012
+ content: "\f198"; }
2013
+
2014
+ .fa-slack-hash:before {
2015
+ content: "\f3ef"; }
2016
+
2017
+ .fa-sliders-h:before {
2018
+ content: "\f1de"; }
2019
+
2020
+ .fa-slideshare:before {
2021
+ content: "\f1e7"; }
2022
+
2023
+ .fa-smile:before {
2024
+ content: "\f118"; }
2025
+
2026
+ .fa-snapchat:before {
2027
+ content: "\f2ab"; }
2028
+
2029
+ .fa-snapchat-ghost:before {
2030
+ content: "\f2ac"; }
2031
+
2032
+ .fa-snapchat-square:before {
2033
+ content: "\f2ad"; }
2034
+
2035
+ .fa-snowflake:before {
2036
+ content: "\f2dc"; }
2037
+
2038
+ .fa-sort:before {
2039
+ content: "\f0dc"; }
2040
+
2041
+ .fa-sort-alpha-down:before {
2042
+ content: "\f15d"; }
2043
+
2044
+ .fa-sort-alpha-up:before {
2045
+ content: "\f15e"; }
2046
+
2047
+ .fa-sort-amount-down:before {
2048
+ content: "\f160"; }
2049
+
2050
+ .fa-sort-amount-up:before {
2051
+ content: "\f161"; }
2052
+
2053
+ .fa-sort-down:before {
2054
+ content: "\f0dd"; }
2055
+
2056
+ .fa-sort-numeric-down:before {
2057
+ content: "\f162"; }
2058
+
2059
+ .fa-sort-numeric-up:before {
2060
+ content: "\f163"; }
2061
+
2062
+ .fa-sort-up:before {
2063
+ content: "\f0de"; }
2064
+
2065
+ .fa-soundcloud:before {
2066
+ content: "\f1be"; }
2067
+
2068
+ .fa-space-shuttle:before {
2069
+ content: "\f197"; }
2070
+
2071
+ .fa-speakap:before {
2072
+ content: "\f3f3"; }
2073
+
2074
+ .fa-spinner:before {
2075
+ content: "\f110"; }
2076
+
2077
+ .fa-spotify:before {
2078
+ content: "\f1bc"; }
2079
+
2080
+ .fa-square:before {
2081
+ content: "\f0c8"; }
2082
+
2083
+ .fa-stack-exchange:before {
2084
+ content: "\f18d"; }
2085
+
2086
+ .fa-stack-overflow:before {
2087
+ content: "\f16c"; }
2088
+
2089
+ .fa-star:before {
2090
+ content: "\f005"; }
2091
+
2092
+ .fa-star-half:before {
2093
+ content: "\f089"; }
2094
+
2095
+ .fa-staylinked:before {
2096
+ content: "\f3f5"; }
2097
+
2098
+ .fa-steam:before {
2099
+ content: "\f1b6"; }
2100
+
2101
+ .fa-steam-square:before {
2102
+ content: "\f1b7"; }
2103
+
2104
+ .fa-steam-symbol:before {
2105
+ content: "\f3f6"; }
2106
+
2107
+ .fa-step-backward:before {
2108
+ content: "\f048"; }
2109
+
2110
+ .fa-step-forward:before {
2111
+ content: "\f051"; }
2112
+
2113
+ .fa-stethoscope:before {
2114
+ content: "\f0f1"; }
2115
+
2116
+ .fa-sticker-mule:before {
2117
+ content: "\f3f7"; }
2118
+
2119
+ .fa-sticky-note:before {
2120
+ content: "\f249"; }
2121
+
2122
+ .fa-stop:before {
2123
+ content: "\f04d"; }
2124
+
2125
+ .fa-stop-circle:before {
2126
+ content: "\f28d"; }
2127
+
2128
+ .fa-stopwatch:before {
2129
+ content: "\f2f2"; }
2130
+
2131
+ .fa-strava:before {
2132
+ content: "\f428"; }
2133
+
2134
+ .fa-street-view:before {
2135
+ content: "\f21d"; }
2136
+
2137
+ .fa-strikethrough:before {
2138
+ content: "\f0cc"; }
2139
+
2140
+ .fa-stripe:before {
2141
+ content: "\f429"; }
2142
+
2143
+ .fa-stripe-s:before {
2144
+ content: "\f42a"; }
2145
+
2146
+ .fa-studiovinari:before {
2147
+ content: "\f3f8"; }
2148
+
2149
+ .fa-stumbleupon:before {
2150
+ content: "\f1a4"; }
2151
+
2152
+ .fa-stumbleupon-circle:before {
2153
+ content: "\f1a3"; }
2154
+
2155
+ .fa-subscript:before {
2156
+ content: "\f12c"; }
2157
+
2158
+ .fa-subway:before {
2159
+ content: "\f239"; }
2160
+
2161
+ .fa-suitcase:before {
2162
+ content: "\f0f2"; }
2163
+
2164
+ .fa-sun:before {
2165
+ content: "\f185"; }
2166
+
2167
+ .fa-superpowers:before {
2168
+ content: "\f2dd"; }
2169
+
2170
+ .fa-superscript:before {
2171
+ content: "\f12b"; }
2172
+
2173
+ .fa-supple:before {
2174
+ content: "\f3f9"; }
2175
+
2176
+ .fa-sync:before {
2177
+ content: "\f021"; }
2178
+
2179
+ .fa-sync-alt:before {
2180
+ content: "\f2f1"; }
2181
+
2182
+ .fa-table:before {
2183
+ content: "\f0ce"; }
2184
+
2185
+ .fa-tablet:before {
2186
+ content: "\f10a"; }
2187
+
2188
+ .fa-tablet-alt:before {
2189
+ content: "\f3fa"; }
2190
+
2191
+ .fa-tachometer-alt:before {
2192
+ content: "\f3fd"; }
2193
+
2194
+ .fa-tag:before {
2195
+ content: "\f02b"; }
2196
+
2197
+ .fa-tags:before {
2198
+ content: "\f02c"; }
2199
+
2200
+ .fa-tasks:before {
2201
+ content: "\f0ae"; }
2202
+
2203
+ .fa-taxi:before {
2204
+ content: "\f1ba"; }
2205
+
2206
+ .fa-telegram:before {
2207
+ content: "\f2c6"; }
2208
+
2209
+ .fa-telegram-plane:before {
2210
+ content: "\f3fe"; }
2211
+
2212
+ .fa-tencent-weibo:before {
2213
+ content: "\f1d5"; }
2214
+
2215
+ .fa-terminal:before {
2216
+ content: "\f120"; }
2217
+
2218
+ .fa-text-height:before {
2219
+ content: "\f034"; }
2220
+
2221
+ .fa-text-width:before {
2222
+ content: "\f035"; }
2223
+
2224
+ .fa-th:before {
2225
+ content: "\f00a"; }
2226
+
2227
+ .fa-th-large:before {
2228
+ content: "\f009"; }
2229
+
2230
+ .fa-th-list:before {
2231
+ content: "\f00b"; }
2232
+
2233
+ .fa-themeisle:before {
2234
+ content: "\f2b2"; }
2235
+
2236
+ .fa-thermometer-empty:before {
2237
+ content: "\f2cb"; }
2238
+
2239
+ .fa-thermometer-full:before {
2240
+ content: "\f2c7"; }
2241
+
2242
+ .fa-thermometer-half:before {
2243
+ content: "\f2c9"; }
2244
+
2245
+ .fa-thermometer-quarter:before {
2246
+ content: "\f2ca"; }
2247
+
2248
+ .fa-thermometer-three-quarters:before {
2249
+ content: "\f2c8"; }
2250
+
2251
+ .fa-thumbs-down:before {
2252
+ content: "\f165"; }
2253
+
2254
+ .fa-thumbs-up:before {
2255
+ content: "\f164"; }
2256
+
2257
+ .fa-thumbtack:before {
2258
+ content: "\f08d"; }
2259
+
2260
+ .fa-ticket-alt:before {
2261
+ content: "\f3ff"; }
2262
+
2263
+ .fa-times:before {
2264
+ content: "\f00d"; }
2265
+
2266
+ .fa-times-circle:before {
2267
+ content: "\f057"; }
2268
+
2269
+ .fa-tint:before {
2270
+ content: "\f043"; }
2271
+
2272
+ .fa-toggle-off:before {
2273
+ content: "\f204"; }
2274
+
2275
+ .fa-toggle-on:before {
2276
+ content: "\f205"; }
2277
+
2278
+ .fa-trademark:before {
2279
+ content: "\f25c"; }
2280
+
2281
+ .fa-train:before {
2282
+ content: "\f238"; }
2283
+
2284
+ .fa-transgender:before {
2285
+ content: "\f224"; }
2286
+
2287
+ .fa-transgender-alt:before {
2288
+ content: "\f225"; }
2289
+
2290
+ .fa-trash:before {
2291
+ content: "\f1f8"; }
2292
+
2293
+ .fa-trash-alt:before {
2294
+ content: "\f2ed"; }
2295
+
2296
+ .fa-tree:before {
2297
+ content: "\f1bb"; }
2298
+
2299
+ .fa-trello:before {
2300
+ content: "\f181"; }
2301
+
2302
+ .fa-tripadvisor:before {
2303
+ content: "\f262"; }
2304
+
2305
+ .fa-trophy:before {
2306
+ content: "\f091"; }
2307
+
2308
+ .fa-truck:before {
2309
+ content: "\f0d1"; }
2310
+
2311
+ .fa-tty:before {
2312
+ content: "\f1e4"; }
2313
+
2314
+ .fa-tumblr:before {
2315
+ content: "\f173"; }
2316
+
2317
+ .fa-tumblr-square:before {
2318
+ content: "\f174"; }
2319
+
2320
+ .fa-tv:before {
2321
+ content: "\f26c"; }
2322
+
2323
+ .fa-twitch:before {
2324
+ content: "\f1e8"; }
2325
+
2326
+ .fa-twitter:before {
2327
+ content: "\f099"; }
2328
+
2329
+ .fa-twitter-square:before {
2330
+ content: "\f081"; }
2331
+
2332
+ .fa-typo3:before {
2333
+ content: "\f42b"; }
2334
+
2335
+ .fa-uber:before {
2336
+ content: "\f402"; }
2337
+
2338
+ .fa-uikit:before {
2339
+ content: "\f403"; }
2340
+
2341
+ .fa-umbrella:before {
2342
+ content: "\f0e9"; }
2343
+
2344
+ .fa-underline:before {
2345
+ content: "\f0cd"; }
2346
+
2347
+ .fa-undo:before {
2348
+ content: "\f0e2"; }
2349
+
2350
+ .fa-undo-alt:before {
2351
+ content: "\f2ea"; }
2352
+
2353
+ .fa-uniregistry:before {
2354
+ content: "\f404"; }
2355
+
2356
+ .fa-universal-access:before {
2357
+ content: "\f29a"; }
2358
+
2359
+ .fa-university:before {
2360
+ content: "\f19c"; }
2361
+
2362
+ .fa-unlink:before {
2363
+ content: "\f127"; }
2364
+
2365
+ .fa-unlock:before {
2366
+ content: "\f09c"; }
2367
+
2368
+ .fa-unlock-alt:before {
2369
+ content: "\f13e"; }
2370
+
2371
+ .fa-untappd:before {
2372
+ content: "\f405"; }
2373
+
2374
+ .fa-upload:before {
2375
+ content: "\f093"; }
2376
+
2377
+ .fa-usb:before {
2378
+ content: "\f287"; }
2379
+
2380
+ .fa-user:before {
2381
+ content: "\f007"; }
2382
+
2383
+ .fa-user-circle:before {
2384
+ content: "\f2bd"; }
2385
+
2386
+ .fa-user-md:before {
2387
+ content: "\f0f0"; }
2388
+
2389
+ .fa-user-plus:before {
2390
+ content: "\f234"; }
2391
+
2392
+ .fa-user-secret:before {
2393
+ content: "\f21b"; }
2394
+
2395
+ .fa-user-times:before {
2396
+ content: "\f235"; }
2397
+
2398
+ .fa-users:before {
2399
+ content: "\f0c0"; }
2400
+
2401
+ .fa-ussunnah:before {
2402
+ content: "\f407"; }
2403
+
2404
+ .fa-utensil-spoon:before {
2405
+ content: "\f2e5"; }
2406
+
2407
+ .fa-utensils:before {
2408
+ content: "\f2e7"; }
2409
+
2410
+ .fa-vaadin:before {
2411
+ content: "\f408"; }
2412
+
2413
+ .fa-venus:before {
2414
+ content: "\f221"; }
2415
+
2416
+ .fa-venus-double:before {
2417
+ content: "\f226"; }
2418
+
2419
+ .fa-venus-mars:before {
2420
+ content: "\f228"; }
2421
+
2422
+ .fa-viacoin:before {
2423
+ content: "\f237"; }
2424
+
2425
+ .fa-viadeo:before {
2426
+ content: "\f2a9"; }
2427
+
2428
+ .fa-viadeo-square:before {
2429
+ content: "\f2aa"; }
2430
+
2431
+ .fa-viber:before {
2432
+ content: "\f409"; }
2433
+
2434
+ .fa-video:before {
2435
+ content: "\f03d"; }
2436
+
2437
+ .fa-vimeo:before {
2438
+ content: "\f40a"; }
2439
+
2440
+ .fa-vimeo-square:before {
2441
+ content: "\f194"; }
2442
+
2443
+ .fa-vimeo-v:before {
2444
+ content: "\f27d"; }
2445
+
2446
+ .fa-vine:before {
2447
+ content: "\f1ca"; }
2448
+
2449
+ .fa-vk:before {
2450
+ content: "\f189"; }
2451
+
2452
+ .fa-vnv:before {
2453
+ content: "\f40b"; }
2454
+
2455
+ .fa-volume-down:before {
2456
+ content: "\f027"; }
2457
+
2458
+ .fa-volume-off:before {
2459
+ content: "\f026"; }
2460
+
2461
+ .fa-volume-up:before {
2462
+ content: "\f028"; }
2463
+
2464
+ .fa-vuejs:before {
2465
+ content: "\f41f"; }
2466
+
2467
+ .fa-weibo:before {
2468
+ content: "\f18a"; }
2469
+
2470
+ .fa-weixin:before {
2471
+ content: "\f1d7"; }
2472
+
2473
+ .fa-whatsapp:before {
2474
+ content: "\f232"; }
2475
+
2476
+ .fa-whatsapp-square:before {
2477
+ content: "\f40c"; }
2478
+
2479
+ .fa-wheelchair:before {
2480
+ content: "\f193"; }
2481
+
2482
+ .fa-whmcs:before {
2483
+ content: "\f40d"; }
2484
+
2485
+ .fa-wifi:before {
2486
+ content: "\f1eb"; }
2487
+
2488
+ .fa-wikipedia-w:before {
2489
+ content: "\f266"; }
2490
+
2491
+ .fa-window-close:before {
2492
+ content: "\f410"; }
2493
+
2494
+ .fa-window-maximize:before {
2495
+ content: "\f2d0"; }
2496
+
2497
+ .fa-window-minimize:before {
2498
+ content: "\f2d1"; }
2499
+
2500
+ .fa-window-restore:before {
2501
+ content: "\f2d2"; }
2502
+
2503
+ .fa-windows:before {
2504
+ content: "\f17a"; }
2505
+
2506
+ .fa-won-sign:before {
2507
+ content: "\f159"; }
2508
+
2509
+ .fa-wordpress:before {
2510
+ content: "\f19a"; }
2511
+
2512
+ .fa-wordpress-simple:before {
2513
+ content: "\f411"; }
2514
+
2515
+ .fa-wpbeginner:before {
2516
+ content: "\f297"; }
2517
+
2518
+ .fa-wpexplorer:before {
2519
+ content: "\f2de"; }
2520
+
2521
+ .fa-wpforms:before {
2522
+ content: "\f298"; }
2523
+
2524
+ .fa-wrench:before {
2525
+ content: "\f0ad"; }
2526
+
2527
+ .fa-xbox:before {
2528
+ content: "\f412"; }
2529
+
2530
+ .fa-xing:before {
2531
+ content: "\f168"; }
2532
+
2533
+ .fa-xing-square:before {
2534
+ content: "\f169"; }
2535
+
2536
+ .fa-y-combinator:before {
2537
+ content: "\f23b"; }
2538
+
2539
+ .fa-yahoo:before {
2540
+ content: "\f19e"; }
2541
+
2542
+ .fa-yandex:before {
2543
+ content: "\f413"; }
2544
+
2545
+ .fa-yandex-international:before {
2546
+ content: "\f414"; }
2547
+
2548
+ .fa-yelp:before {
2549
+ content: "\f1e9"; }
2550
+
2551
+ .fa-yen-sign:before {
2552
+ content: "\f157"; }
2553
+
2554
+ .fa-yoast:before {
2555
+ content: "\f2b1"; }
2556
+
2557
+ .fa-youtube:before {
2558
+ content: "\f167"; }
2559
+
2560
+ .fa-youtube-square:before {
2561
+ content: "\f431"; }
2562
+
2563
+ .sr-only {
2564
+ border: 0;
2565
+ clip: rect(0, 0, 0, 0);
2566
+ height: 1px;
2567
+ margin: -1px;
2568
+ overflow: hidden;
2569
+ padding: 0;
2570
+ position: absolute;
2571
+ width: 1px; }
2572
+
2573
+ .sr-only-focusable:active, .sr-only-focusable:focus {
2574
+ clip: auto;
2575
+ height: auto;
2576
+ margin: 0;
2577
+ overflow: visible;
2578
+ position: static;
2579
+ width: auto; }
inc/czr-base-fmk/assets/fonts/css/fontawesome.min.css ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /*!
2
+ * Font Awesome Free 5.0.4 by @fontawesome - http://fontawesome.com
3
+ * License - http://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
4
+ */
5
+ .fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:a 2s infinite linear;animation:a 2s infinite linear}.fa-pulse{-webkit-animation:a 1s infinite steps(8);animation:a 1s infinite steps(8)}@-webkit-keyframes a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-aws:before{content:"\f375"}.fa-backward:before{content:"\f04a"}.fa-balance-scale:before{content:"\f24e"}.fa-ban:before{content:"\f05e"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bicycle:before{content:"\f206"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blind:before{content:"\f29d"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-braille:before{content:"\f2a1"}.fa-briefcase:before{content:"\f0b1"}.fa-btc:before{content:"\f15a"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-car:before{content:"\f1b9"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-certificate:before{content:"\f0a3"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-square:before{content:"\f14a"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-clipboard:before{content:"\f328"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comments:before{content:"\f086"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-credit-card:before{content:"\f09d"}.fa-crop:before{content:"\f125"}.fa-crosshairs:before{content:"\f05b"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-deviantart:before{content:"\f1bd"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dollar-sign:before{content:"\f155"}.fa-dot-circle:before{content:"\f192"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drupal:before{content:"\f1a9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-excel:before{content:"\f1c3"}.fa-file-image:before{content:"\f1c5"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fire:before{content:"\f06d"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-order:before{content:"\f2b0"}.fa-firstdraft:before{content:"\f3a1"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frown:before{content:"\f119"}.fa-futbol:before{content:"\f1e3"}.fa-gamepad:before{content:"\f11b"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-gift:before{content:"\f06b"}.fa-git:before{content:"\f1d3"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-martini:before{content:"\f000"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-gofore:before{content:"\f3a7"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-handshake:before{content:"\f2b5"}.fa-hashtag:before{content:"\f292"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-heart:before{content:"\f004"}.fa-heartbeat:before{content:"\f21e"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hospital:before{content:"\f0f8"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-houzz:before{content:"\f27c"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-internet-explorer:before{content:"\f26b"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-jenkins:before{content:"\f3b6"}.fa-joget:before{content:"\f3b7"}.fa-joomla:before{content:"\f1aa"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-key:before{content:"\f084"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-korvue:before{content:"\f42f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-male:before{content:"\f183"}.fa-map:before{content:"\f279"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-maxcdn:before{content:"\f136"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-meh:before{content:"\f11a"}.fa-mercury:before{content:"\f223"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-moon:before{content:"\f186"}.fa-motorcycle:before{content:"\f21c"}.fa-mouse-pointer:before{content:"\f245"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nintendo-switch:before{content:"\f418"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-paint-brush:before{content:"\f1fc"}.fa-palfed:before{content:"\f3d8"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-paragraph:before{content:"\f1dd"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-percent:before{content:"\f295"}.fa-periscope:before{content:"\f3da"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phone:before{content:"\f095"}.fa-phone-square:before{content:"\f098"}.fa-phone-volume:before{content:"\f2a0"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-plane:before{content:"\f072"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-print:before{content:"\f02f"}.fa-product-hunt:before{content:"\f288"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-random:before{content:"\f074"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-rebel:before{content:"\f1d0"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-rendact:before{content:"\f3e4"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-resolving:before{content:"\f3e7"}.fa-retweet:before{content:"\f079"}.fa-road:before{content:"\f018"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-rupee-sign:before{content:"\f156"}.fa-safari:before{content:"\f267"}.fa-sass:before{content:"\f41e"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-scribd:before{content:"\f28a"}.fa-search:before{content:"\f002"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shower:before{content:"\f2cc"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowflake:before{content:"\f2dc"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-spinner:before{content:"\f110"}.fa-spotify:before{content:"\f1bc"}.fa-square:before{content:"\f0c8"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-star:before{content:"\f005"}.fa-star-half:before{content:"\f089"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-strava:before{content:"\f428"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-table:before{content:"\f0ce"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-trademark:before{content:"\f25c"}.fa-train:before{content:"\f238"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-circle:before{content:"\f2bd"}.fa-user-md:before{content:"\f0f0"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-volume-down:before{content:"\f027"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vuejs:before{content:"\f41f"}.fa-weibo:before{content:"\f18a"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wrench:before{content:"\f0ad"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}
inc/czr-base-fmk/assets/fonts/webfonts/fa-brands-400.eot ADDED
Binary file
inc/czr-base-fmk/assets/fonts/webfonts/fa-brands-400.svg ADDED
@@ -0,0 +1,996 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!--
3
+ Font Awesome Free 5.0.4 by @fontawesome - http://fontawesome.com
4
+ License - http://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
5
+ -->
6
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
7
+ <svg xmlns="http://www.w3.org/2000/svg">
8
+ <defs>
9
+ <font id="fontawesome-free" horiz-adv-x="640.4">
10
+ <font-face font-family="Font Awesome 5 Brands"
11
+ units-per-em="512" ascent="448"
12
+ descent="64"
13
+ font-weight="400"
14
+ font-style="Regular" />
15
+ <missing-glyph horiz-adv-x="0" />
16
+ <glyph glyph-name="500px"
17
+ unicode="&#xF26E;"
18
+ horiz-adv-x="448" d=" M103.3 103.7C96.8 117.9 96.4 122 110.7 126.8C136.3 134.8 118.7 117.6 153.9 77.6H154.2V171.5C155.4 221.7 198.2 263.7 251.9000000000001 263.7C305.8 263.7 349.6 220.2 349.6 166.9C349.6 103.5 288.8 53.7 221.1 73.6C210.6 77.8 219 105.3 229.6 102.2C282.6 102.2 319 112.3 319 166.6C319 227.6 241.9 256.2000000000001 202.1 211.2C178.6 184.8 184.5 169.1 184.5 53.6C235.2 22.6 302.8 31.6 344.9 73.7000000000001C369.7 98.5000000000001 383.4 131.7000000000001 383.4 166.7000000000001C383.4 201.9 369.6 234.9000000000001 344.6 260.0000000000001C319.8 284.8000000000001 286.8 298.5000000000001 251.3 298.5000000000001S182.5 284.7000000000001 157.8 260.0000000000001C157.5 259.7000000000001 141.8 243.5000000000001 136.6 236.1000000000001L136.1 235.5000000000001C132.8 230.8000000000001 129.8 226.4000000000001 116 229.4000000000001C109.1 231.1000000000001 101.7 235.2000000000001 101.7 241.2000000000001V428C101.7 433 105.6 438.5 112.2 438.5H353.5C361.8 438.5 361.8 426.9 361.8 423.4C361.8 419.5 361.8 408.3 353.5 408.3H130.3V275.4H130.6C234.8 385.2 413.4000000000001 311.4 413.4000000000001 166.5C413.4000000000001 -11.6 168.6 -53.8 103.3 103.7zM166.6 364.5C166.1 360.3 171.2 340 181.2 343.9C306 391.4 384 303.5 390.6 303.5C395.4000000000001 303.5 413.4000000000001 318.8 404.9000000000001 326.3C311.7000000000001 415.3 170.4 383.3 166.6 364.5zM393 33.3C283 -76.6 94 -27.5 61 137.5C61 149.7 30.6 144.9 32.1 134.2C56.1 -39.2 278.1 -122.7 413.7000000000001 12.9C420.6 20.7 401.1 41.3 393.0000000000001 33.3zM213.6 141.4C213.6 137.4 217.9 134.1 219.1 132.9C222.1 129.9 225.2 128.5 227.6 128.5C231.4 128.5 230.2 128.3 249.9 148C269.5 128.7 269 128.5 272.2 128.5C277.6 128.5 290.7 138.9 282.9 146.7L265.6 164L283.8 182.2C290.1 189 273.7 204 267.6 197.9L249.7 180C231.1 198.8 231.3 199.5 228.2 199.5C223.2 199.5 210.2 187.8 215.8 182.2L234 164C215.9 146.1 213.6 144.8 213.6 141.4z" />
19
+ <glyph glyph-name="accessible-icon"
20
+ unicode="&#xF368;"
21
+ horiz-adv-x="448" d=" M423.9 192.2L411 34.9C407.7 -5.8 347.1 -0.2 350.4 39.8L360.4 162.3L319.3 160C329.4 139.3 335.1 116.1 335.1 91.4999999999999C335.1 50.3 319 12.8 292.8 -15.0000000000001L253.5 24.3C311.3999999999999 87.9999999999999 266.6 191.5 179.5 191.5C153.5999999999999 191.5 130 181.6 112.2999999999999 165.5L73 204.8C95 225.5 123.1 239.9 154.4 245L229.7 330.7L187.1 355.5L135.5 309.5C105.5 282.7 64.9 328 95 354.9L163 415.6C172.8 424.4000000000001 187.1 425.8 198.5 419.2C198.5 419.2 337.8 338.3 338 338.1C354.2 328 358.7 302.1 344.1 285.5L285.7 219L391.8 224.9C410.3 226 425.4 210.5 423.9 192.2zM359 346.2C387.1 346.2 409.9 369 409.9 397.1C409.9 425.2 387.1 448 359 448C330.9 448 308.1 425.2 308.1 397.1C308.1 369 330.9000000000001 346.2 359 346.2zM179.6 -8.5C99 -8.5 52.2 82.1 96.9 147.6L57.2 187.3C36.4 161 24 127.7 24 91.6C24 -39.1 174.7 -109.7999999999999 275.4 -30.9L235.7 8.8C219.7 -2.1 200.4 -8.5 179.6 -8.5z" />
22
+ <glyph glyph-name="accusoft"
23
+ unicode="&#xF369;"
24
+ horiz-adv-x="640" d=" M482.2 75.9C476.5 82.8 250 373 242.3 382.5C228.6 399.7 242.3 399.3 261.5 399.4C271.2 399.5 367.8 400 378 400C402.1 400.1 406.7 399.4 416.4 387.2C418.5 384.5 621.5 141.4 623.5999999999999 138.9C629.0999999999999 132.2 638.8 119.8 630.8 115.5C628.4 114.2 516.1999999999999 67.8 513 66.6C502.9 62.6 495.5 59.8 482.2 75.9M596.9 81.5000000000001S481.9 31.1000000000001 479.4 29.9C463.4 22.6 452.5 33.1 442.7 44.5000000000001L385.6 118.5000000000001C380.2 119.4 325.2 128.1000000000001 320.3 127.8000000000001C317.2 127.6000000000001 310.7 127.0000000000001 305.9 124.9000000000001C301 122.8000000000001 160.7 72.1000000000001 155.7 70.2000000000001C150.6 68.2000000000001 144.3 66.6000000000001 144.6 62.6000000000001C144.8 60.1000000000001 146.6 60.0000000000001 149.2 59.1000000000001C151.9 58.3000000000001 450.1 -8.4999999999999 457.2 -9.9999999999999C472.8 -13.2999999999999 495.7 -20.4999999999999 510.8 -11.6999999999999C512.9 -10.4999999999999 634.6 64.7000000000002 636.6 66.1000000000001C642 70.1000000000001 640.9 72.9000000000002 634.9 74.3000000000001C632.6 74.6000000000001 610.3 79.0000000000001 596.9 81.5000000000001M270.9 262.8000000000002S258.9 261.2000000000002 245.9 247.7000000000002C236.9 238.4000000000001 3.8 8.6000000000001 2.5 6.8000000000001C-4.5 -3.1999999999999 4.1 1e-13 18.2 5.1000000000001C19 5.1000000000001 132.7 41.7000000000002 132.7 41.7000000000002C133.2 42.3000000000002 132.6 41.8000000000002 133.3 42.3000000000002C132.9 47.4000000000002 132.5 68.5000000000002 132.3 70.0000000000002C131.7 75.2000000000002 134.5 76.9000000000002 139.3 78.9000000000002L231.9 112.7000000000002C232.5 113.5000000000002 320.4 194.4000000000002 322.1 196.0000000000002V197.0000000000002L270.9 262.8000000000002" />
25
+ <glyph glyph-name="adn"
26
+ unicode="&#xF170;"
27
+ horiz-adv-x="496" d=" M248 280.5L312.9 181.7H183.1L248 280.5zM496 192C496 55.1 384.9 -56 248 -56S0 55.1 0 192S111.1 440 248 440S496 328.9 496 192zM396.2 109.3L248 332.5L99.8 109.3H130.2L163.8 161H332.4L366 109.3H396.2z" />
28
+ <glyph glyph-name="adversal"
29
+ unicode="&#xF36A;"
30
+ horiz-adv-x="512" d=" M482.1 416H28.7C5.8 416 0 410.1 0 387.1V-3.1C0 -26.4 5.8 -32 28.7 -32H482.1C506.4999999999999 -32 511.9999999999999 -26.8 511.9999999999999 -2.3V385.8C511.9999999999999 410.4 506.6 416 482.1 416zM178.4 227.7C150.9 247.9 106.3 236.4 94.2 204.3C89.9 193.2 84.9 194.8 76.7 196C67 197.5 59.5 199.2 54.2 201.5C25.4 212.9 62.8 256.8 79.1 265.8C120.2 287.2 162.5 288 204.4 270.6C245.3 253.8 238.9 211.4 238.9 142.1C241.6 116.3 234.6 83.8 248.2 53.3C250.1 48.9 248.6 45.4 245.5 42.6C237.1 35.9 206.2 40.4 198.9 49.9999999999999C197 52.1999999999999 197.1 53.6 195 56.1999999999999C191.4 60.0999999999999 187.7 58.3999999999999 183.1 55.1999999999999C125.7 18.8 42.8 33.8 36.1 98.4999999999999C33 127.8 48.5 155.6 75.7 169.5C113.9 189 187.9 181.3 189.7 200.4C190.8 210.5999999999999 187.8 220.5 178.4 227.7zM465.1 5.7C465.1 -9.4 454 -4.2 447.3 -4.2H52.4C45 -4.2 34.2 -9 34.6 6.5C35 20.4 45.1 15.6 51.7 15.6C184 16 316.2 16 448.5 15.6C455.3 15.6 465.1 20 465.1 5.7zM468.9 346.2V55.2C468.9 49.5 468.2 41.3 460.8 41.3C448.4000000000001 41.7 433.3 34.2 424.7 46.9C418.9 55.6 416.9 50.9 412.3 48.1C358.9000000000001 18.4 284.2000000000001 41 267.9 133.3C261.8 166.7 267.2 200.4 283.6 233.3C295.4 257.2000000000001 340.5 309.4 419.7 263.8V334.8C419.7 361 419.5999999999999 361 445.7 361C448.8 361 452.3 360.6 455.3999999999999 361C465.4999999999999 361.8 468.9999999999999 356.6 468.9999999999999 346.7000000000001C468.8999999999999 346.5 468.8999999999999 346.4000000000001 468.8999999999999 346.2000000000001zM417.4000000000001 113.9C397.9000000000001 66.3 344.5 70.6 327.4000000000001 108.7C312.3 142 311.9000000000001 176.9 327.8 210.2C344.1 244.3 387.5 245.9 409.3 215C429.9000000000001 186.2 424.2 130.4 417.4000000000001 113.9zM122.6 78.6C115.1 79.9 89.6 81.9 88.9 106.4C88.5 120.3 96.7 129.4 108.7 132.2C133.1 138.1 158 142.1 182.4 146.9C191.3000000000001 148.9 189.8000000000001 142.5 190.2000000000001 137.4C191.6000000000001 104.4 164.1000000000001 78.2 122.6000000000001 78.6z" />
31
+ <glyph glyph-name="affiliatetheme"
32
+ unicode="&#xF36B;"
33
+ horiz-adv-x="512" d=" M159.7 210.6C108.4 139.7 43.1 99.8 14 121.4C-15.2 143.1 2.8 218 54.2 288.9C105.5 359.8 170.8 399.7 199.9 378.1C229 356.5 211 281.5 159.7 210.6zM510.9 267.9C437.1 144.5 319 80.2 246.4 124.3C221.4 139.5 205.1 165.5 197.4 198.1C163.8 133.3 104.6 84.3 33.3 64.9C83.1 5.6 157.4 -32 240.3 -32C390.3 -32 511.9 91.1 511.9 242.9C512 251.4 511.6 259.7 510.9 267.9z" />
34
+ <glyph glyph-name="algolia"
35
+ unicode="&#xF36C;"
36
+ horiz-adv-x="448" d=" M229.3 265.4C180 265.4 140.1 225.5 140.1 176.2C140.1 126.9 180 87 229.3 87S318.5 126.9 318.5 176.2C318.5 225.5 278.5 265.4 229.3 265.4zM292 208.8L233.1 178.2C231.3 177.3 229.3 178.6 229.3 180.5V247C229.3 248.5 230.6 249.7 232 249.6C258.2 248.6 280.9 233.9 293.1 212.5C293.8 211.2 293.3 209.5 292 208.8zM389.1 416H58.9C26.4 416 0 389.6 0 357.1V27C0 -5.6 26.4 -32 58.9 -32H389C421.6 -32 447.9 -5.6 447.9 26.9V357.1C448 389.6 421.6 416 389.1 416zM186.5 331.3C186.5 342.1 195.2 350.8 206 350.8H251.3C262.1 350.8 270.8 342.1 270.8 331.3V315.9C270.8 314.1 269.1 312.9 267.5 313.4C255.2 316.8 242.4 318.5 229.4 318.5C215.9 318.5 202.7 316.7 190 313C188.3 312.5 186.6 313.8 186.6 315.5V331.3zM102.1 294.3L111.3 303.5C118.9 311.1 131.2 311.1 138.8 303.5L146.5 295.8C147.6 294.7000000000001 147.5 292.8 146.2 291.8C140 287.3 134.1 282.4 128.6 276.9C123.2 271.5 118.2 265.6 113.8 259.5C112.8 258.2 110.9 258 109.8 259.2L102.1 266.9C94.5 274.4 94.5 286.7 102.1 294.3zM229.3 49.5C159.3 49.5 102.7 106.2 102.7 176.1S159.4 302.7000000000001 229.3 302.7000000000001C299.3 302.7000000000001 355.9 246.1 355.9 176.1C355.9 106.3 299.2 49.5 229.3 49.5z" />
37
+ <glyph glyph-name="amazon-pay"
38
+ unicode="&#xF42C;"
39
+ horiz-adv-x="611.2" d=" M0 122.8C2.3 127 5.2 127.7 9.7 125.3C20.1 119.7 30.3 113.9 40.9 108.6C81.6 88.2000000000001 124.1 73 168.3 62.3C189.2 57.3 210.2 53.3 231.5 50.5C263 46.3 294.7 44.5 326.5 45.3C343.9 45.7 361.3 47.1 378.6 49.1C435 55.8 489.5 69.9 541.9000000000001 91.9C544.8000000000001 93.1 547.8000000000001 93.9 551.0000000000001 93.1C557.7000000000002 91.3 560.0000000000001 84.1 555.1000000000001 79.2000000000001C552.3000000000002 76.4 548.8000000000002 74.1 545.5000000000001 71.8000000000001C514.8000000000001 50.7 481.3000000000001 35.4000000000001 445.9000000000001 23.9000000000001C421.3000000000001 16.0000000000001 396.3000000000001 10.1000000000001 370.8000000000001 6.3000000000001C353.2000000000001 3.7 335.4000000000001 1.9000000000001 317.6000000000001 1.5000000000001C316.8000000000001 1.5000000000001 315.9000000000001 1.3000000000001 315.1000000000001 1.2H294C293.2 1.3000000000001 292.3 1.5000000000001 291.5 1.5000000000001C287.9 1.7 284.3 1.8000000000001 280.8 1.9C263.9000000000001 2.6 247.1 4.5000000000001 230.4 7.2C203 11.7 176.2 18.6 150 28.1C95.9 47.7 47.4 76.7000000000001 4.4 115.1C2.6 116.7000000000001 1.4 118.9 0 120.8V122.8zM158 383C156.6 382.8 155.1 382.6 153.7 382.4C139.7 380.7 127.1 375.5 115.7 367.3C113.3 365.6 111.1 363.8 108.6 361.9C108.4 362.4 108.2 362.9 108.2 363.3C107.8 366 107.4 368.8 106.9 371.5C106.2 376.1 103.9 378.1 99.3 378.1H87.8C80.9 378.1 79.6 376.8 79.6 369.9V160.6C79.6 159.6 79.6 158.6 79.7 157.6C79.9 154.6 81.7 152.7000000000001 84.6 152.6C91.6 152.5 98.7 152.5 105.7 152.6C108.6 152.6 110.4 154.6 110.7 157.6C110.8 158.6 110.8 159.6 110.8 160.6V233C111.9 232.1 112.5 231.6 113 231.1C130.9 216.2 151.5 211.3 174 215.7C194.4 219.7 208.6 232.2 217.8 250.6C224.8 264.5 227.7 279.3 228.1 294.7C228.6 311.8 226.9000000000001 328.6 220 344.5C211.5 364.1 197.4 377 176.1 381.4C172.9 382.1 169.6 382.4 166.3 382.9C163.5 383 160.8 383 158 383zM110.6 341.1C110.6 342.6 111 343.5 112.3 344.4C126 353.9 141.1 358.9 157.9 357.6C172.8 356.5 185 349.2 191.4 331.7C195.3 321 196.3 309.9 196.3 298.7C196.3 288.3 195.5 278.1 192.3 268.1C185.5 246.8 169.9 238.7 149.7 239.6C135.7 240.2 123.5 245.6 112.3 253.5C111.1 254.4 110.6 255.2 110.6 256.8C110.7 270.9 110.6 284.9 110.6 299C110.6 313 110.7 327 110.6 341.1zM316.3 383C315.3 382.9 314.3 382.7 313.4000000000001 382.6C303.6 382.1 294.0000000000001 380.9 284.5000000000001 378.5C278.4000000000001 376.9 272.5000000000001 374.7 266.6000000000001 372.7C263.0000000000001 371.5 261.2000000000001 368.9 261.3000000000001 365C261.4000000000001 361.7 261.2000000000001 358.4 261.3000000000001 355.1C261.4000000000001 350.3 263.4000000000001 349 268.1000000000001 350.2C275.9000000000001 352.2 283.7000000000001 354.4 291.6000000000001 355.9C303.9000000000001 358.2 316.3000000000001 359.2 328.8000000000001 357.3C335.3000000000001 356.3 341.4000000000001 354.4 345.6000000000001 348.9C349.3000000000001 344.1 350.7000000000001 338.4 350.9000000000001 332.5C351.2000000000001 324.2 351.1000000000001 315.9 351.2000000000001 307.6C351.2000000000001 307.2 351.1000000000001 306.7 351.0000000000001 306.2C350.5000000000001 306.3 350.1000000000002 306.2 349.7000000000001 306.3C339.2000000000001 308.8 328.6000000000001 310.6 317.7000000000001 311.2C306.4000000000001 311.8 295.2000000000001 311.1 284.4000000000001 307.3C271.5000000000001 302.8 261.1000000000001 295 255.0000000000001 282.4C250.3000000000001 272.6 249.6000000000001 262.2 251.1000000000001 251.7C253.1000000000001 237.7 260.1000000000001 226.9 272.5000000000001 220C284.4000000000001 213.4 297.3000000000001 212.6 310.4000000000001 214.6C325.5000000000001 216.9 338.9000000000001 223.3 350.7000000000001 233C351.1 233.4 351.6 233.7 352.3000000000001 234.1C352.9000000000001 230.3 353.4000000000001 226.7 354.1000000000001 223.1C354.7000000000001 220 356.6000000000001 218 359.5000000000001 217.9C364.9000000000001 217.8 370.4000000000001 217.8 375.8000000000001 217.9C378.5000000000001 218 380.3000000000001 219.8 380.6000000000001 222.6C380.7000000000001 223.5 380.7000000000001 224.5 380.7000000000001 225.4V331.4C380.7000000000001 335.7 380.5000000000001 340 379.8000000000002 344.3C377.9000000000002 357.2000000000001 372.4000000000002 367.8 360.8000000000002 374.7000000000001C354.1000000000002 378.7000000000001 346.7000000000001 380.7000000000001 339.0000000000001 381.8C335.4000000000001 382.3 331.8000000000002 382.6 328.2000000000001 383.1C324.3000000000002 383 320.3000000000002 383 316.3000000000002 383zM351.3 255.3C351.3 254 350.9000000000001 253.1 349.8 252.3C338.6 244.2 326.3 238.8 312.4000000000001 237.4C306.7000000000001 236.8 301.0000000000001 237 295.6 239.2C289.3 241.7 285.2000000000001 246.1 283.2000000000001 252.5000000000001S281.2000000000001 265.5 283.1 271.9000000000001C285.6 280.2000000000001 291.5 284.9000000000001 299.5 287.5C307.6 290.1 316 290.5 324.3 289.7000000000001C332.7 289 340.9000000000001 287.4 349.3 286.3C350.9000000000001 286.1 351.4000000000001 285.3 351.4000000000001 283.7000000000001C351.3 278.9 351.4000000000001 274.2000000000001 351.4000000000001 269.4C351.3 264.7000000000001 351.2000000000001 260 351.3 255.3zM611.2 125.9C610.2 130.9 606.4000000000001 132.8 602.1 134.2C595.3000000000001 136.5 588.2 137.5 581.1 138.1C568 139.2 554.9 138.6 541.9 136.2C527.6 133.5 514 128.9 501.9 120.6C500.5 119.6 499.1 118.5 498.2 117.1C497.5 116 497.3 114.3 497.7 113.1C498.1 111.6 499.8 111.2 501.3 111.3C502 111.3 502.8 111.3 503.5 111.4C511.3 112.2 519 113.1 526.8 113.9C538.1999999999999 115 549.6999999999999 115.7 561.0999999999999 114.8C565.8999999999999 114.5 570.8 113.4 575.4999999999999 112.1C580.5999999999999 110.7 582.8999999999999 106.9 583.0999999999999 101.7C583.4999999999999 93.7 581.6999999999999 86 579.5999999999999 78.4C575.4999999999999 63 569.5999999999999 48.1 563.8 33.3C563.4 32.3 563 31.3 562.8 30.3C562.3 27.4 564 25.4999999999999 566.9 26.1999999999999C568.6 26.5999999999999 570.5 27.4999999999999 571.6999999999999 28.6999999999999C576.0999999999999 32.9999999999999 580.5999999999999 37.3 584.4 42.0999999999999C597.1999999999999 58.4999999999999 604.6999999999999 77.3999999999999 609.1 97.6999999999999C609.9 101.3 610.5 104.9999999999999 611.2 108.5999999999999V125.8999999999999zM479.1 249.1C466.2 284.8 453.3 320.6 440.4000000000001 356.3C438.4000000000001 362 436.2000000000001 367.6 434.1 373.2C433 376.1 430.9000000000001 378 427.7000000000001 378C420.1 378.1 412.5000000000001 378.2 404.8000000000001 378.1C402.3000000000001 378.1 401.1000000000001 376.1 401.6000000000001 373.6C402.1000000000001 371.5 402.7000000000001 369.5 403.5000000000001 367.5C423.1000000000001 319 442.8000000000001 270.4 462.6000000000001 222C464.3000000000001 217.9 464.7000000000001 214.4 462.8000000000001 210.2C459.5000000000001 202.9 456.9000000000001 195.2 453.5000000000001 187.9C450.5000000000001 181.4 445.5000000000001 176.5 438.3000000000001 174.6C433.2000000000001 173.2 428.1000000000001 173 422.9000000000001 173.5C420.4000000000001 173.6999999999999 417.9000000000001 174.3 415.4000000000001 174.5C412.0000000000001 174.6999999999999 410.3000000000001 173.1999999999999 410.2000000000001 169.6999999999999C410.1000000000001 166.3999999999999 410.1000000000001 163.0999999999999 410.2000000000001 159.8C410.3000000000002 154.3 412.2000000000001 151.8 417.6000000000001 150.9C423.2000000000001 149.9 428.9000000000001 149 434.5000000000001 148.9C451.6000000000001 148.5 465.2 155.4 474.0000000000001 170.3C477.5000000000001 176.1999999999999 480.7 182.4 483.2 188.6999999999999C506.9 248.5 530.3000000000001 308.3999999999999 553.8000000000001 368.3C554.5000000000001 370.0999999999999 555.1 371.8999999999999 555.4000000000001 373.8C555.8000000000001 376.5999999999999 554.5000000000001 378.2 551.7 378.2C545.1 378.3 538.4000000000001 378.2 531.8000000000001 378.2C528.1 378.2 525.5000000000001 376.5999999999999 524.1 373C523.6 371.5999999999999 523 370.3 522.5 368.8999999999999C510.9 335.5999999999999 499.3 302.3 487.7 268.8999999999999C485.2 261.7 482.6 254.3999999999999 480 246.7C479.6 247.8 479.4 248.3999999999999 479.1 249.1z" />
40
+ <glyph glyph-name="amazon"
41
+ unicode="&#xF270;"
42
+ horiz-adv-x="448" d=" M257.2 285.3C208.5 283.5 87.7 269.8 87.7 167.8C87.7 58.3 226 53.8 271.2 124.6C277.7 114.4 306.6 87.1 316.5 77.8L373.3 133.8S341 159.1 341 186.6V333.7C341 359 316.5 416 228.7 416C140.7 416 94 361 94 311.7L167.5 304.9C183.8 354.4 221.7 354.4 221.7 354.4C262.4 354.5 257.2 324.6 257.2 285.3zM257.2 198.5C257.2 118.5 173 130.5 173 181.3C173 228.5 223.5 238 257.2 239.1V198.5zM393.2 35C385.5 25 323.2 -32 218.7 -32S34.2 39.5 9.7 69C2.9 76.7 10.7 80.3 15.2 77.3C88.5 32.8 203 -40.5 387.7 47C395.2 50.7 401 45 393.2 35zM433 32.8C426.5 17 417 6 411.8 1.8C406.3 -2.7 402.3 -0.9 405.3 5.6S424.6 52.1 418 60.6C411.5 68.9 381 64.9 370 63.8C359.2 62.8 357 61.8 356 64.1C353.7 69.8 377.7 79.6 393.5 81.6C409.2 83.4 434.5 82.4 439.5 75.9C443.2 70.8 439.5 48.8 433 32.8z" />
43
+ <glyph glyph-name="amilia"
44
+ unicode="&#xF36D;"
45
+ horiz-adv-x="448" d=" M240.1 416C178.2 416 108.6 399.1 55.9 360.6C50.8 357.5 46.8 351.4 48.7 341.2C49.8 336.1 53.8 313.8 58.9 301.6C63 291.4 73.1 291.4 79.2 295.5C111.7 317.8 175.7 343.2 231.5 343.2C289.4 343.2 290.4 314.8 290.4 270.1V231.6C203 220.3 78.2 197 46.7 183.8C11.2 167.5 16.3 90.3 16.3 72S31.5 -32 141.2 -32C189 -32 254.9000000000001 -11.3 294.5 10.1V-15.3C294.5 -18.3 296.6 -23.4999999999999 300.6 -24.4C303.7000000000001 -25.4 351.3 -26.4 360.5 -26.4S423 -26.7 427 -25.7C431.1 -24.7 432.1 -19.6 432.1 -16.6V280C432 360.3 374.2000000000001 416 240.1 416zM152.2 88.3C152.2 100.5 149.2 131 170.5 141.2C194.8 154.4 245.6 170.6 290.3 174.7V68C268.9000000000001 54.8 241.6 43.6 211.2 43.6C158.4 43.6 152.3 77.1 152.2 88.3" />
46
+ <glyph glyph-name="android"
47
+ unicode="&#xF17B;"
48
+ horiz-adv-x="448" d=" M89.6 243.5V127.7C89.6 112.3 77.5 100 62.1 100C46.8 100 32 112.4 32 127.7V243.5C32 258.6 46.8 271 62.1 271C77.2 271 89.6 258.6 89.6 243.5zM100.4 86.5C100.4 70.1 113.6 56.9 130 56.9H149.9L150.2 -4.2C150.2 -41.1 205.4 -40.8000000000001 205.4 -4.2V56.9H242.6V-4.2C242.6 -40.9 298.1 -41.0000000000001 298.1 -4.2V56.9H318.3C334.5 56.9 347.7 70.1 347.7 86.5V265.9H100.4V86.5zM348.4 275.6H99.3C99.3 318.4 124.9 355.6 162.9 375L143.8 410.3C141 415.2 148.1 418.3 150.5 414.1L169.9 378.5C204.8 394 244.9 393.2 278.2 378.5L297.5 414C300 418.3 307 415.1 304.2 410.2L285.1 375C322.8 355.6 348.4000000000001 318.4 348.4000000000001 275.6zM177.7 331.1C177.7 336.8 173.1 341.6 167.2 341.6C161.5 341.6 157 336.8 157 331.1S161.6 320.6 167.2 320.6C173.1 320.6 177.7 325.4 177.7 331.1zM291.1 331.1C291.1 336.8 286.5 341.6 280.9000000000001 341.6C275.0000000000001 341.6 270.4000000000001 336.8 270.4000000000001 331.1S275.0000000000001 320.6 280.9000000000001 320.6C286.5000000000001 320.6 291.1 325.4 291.1 331.1zM385.9000000000001 271C370.8 271 358.4000000000001 258.9 358.4000000000001 243.5V127.7C358.4000000000001 112.3 370.8 100 385.9000000000001 100C401.3 100 416.0000000000001 112.4 416.0000000000001 127.7V243.5C416.0000000000001 258.9 401.2000000000001 271 385.9000000000001 271z" />
49
+ <glyph glyph-name="angellist"
50
+ unicode="&#xF209;"
51
+ horiz-adv-x="448" d=" M347.1 232.6C358.8 265.2 392.5 359.5 392.5 389.7C392.5 416.3 376.8 438.6 348.8 438.6C304.2 438.6 264.2000000000001 306.9 251.7 275.5C242 304 196.6 448 156.6 448C125.5 448 110.9 425.1 110.9 396.3C110.9 361 145.1 269.5 157.5 234.3C151.2 236.6 144.4 238.6 137.5 238.6C114.1 238.6 89.2 209.5 89.2 186C89.2 177.1 94.1 164.6 97.2 156.3C60.3 146.3 46.1 121.7 46.1 84.6C46 12.4 114.4 -64 210.6 -64C328.6 -64 402 24.6 402 138.9C402 182 395.1 220.9 347.1 232.6zM311.7 340C315.7 352.3 332.8 404.3 348.8 404.3C357.4000000000001 404.3 359.7 395.4 359.7 388.3C359.7 369.2 321.1 263.7 312.6 240.3L278.6 246.3L311.7 340zM142.3 399.7C142.3 411.6 156.8 445.4 188.6 352.6L223.2 252.3C207.6 253.6 195.5 255.3 187.8 250.9C176.9 279.7000000000001 142.3 370.6 142.3 399.7000000000001zM140 204C169.3 204 207.1 109.4 207.1 96.6C207.1 91.5 202.2 85.2000000000001 196.5 85.2000000000001C175.6 85.2000000000001 119.6 162.1 119.6 182.9C119.7 190.6 132.3 204 140 204zM324.3 17.7C295.2 -14.3 258 -30.9 214.6 -30.9C155.2 -30.9 108.3 1.7 85.7 57.4C68.6 100.8 89.5 125.7 106.3 125.7C117.7 125.7 160.6 65.4 160.6 52.6C160.6 47.7 152.9 44.3 148.9 44.3C132.8000000000001 44.3 126.5 59.8 97.8 95.7C68.1 66 118.3000000000001 8.8 156.1 8.8C182.2 8.8 199.2 32.9999999999999 194.1 50.8C197.8 50.8 202.4 50.4999999999999 205.8 51.4C206.9 24.3 214.9 -8 247.5 -10.3C247.5 -9.4 249.5 -3.2 249.5 -2.9C249.5 14.4999999999999 238.9 29.7 238.9 47.4C238.9 75.7 260.6 103.1 282.6 119.1C290.6 125.1 300.3 128.8 309.7000000000001 132.2C319.4000000000001 135.9 329.7000000000001 140.2 337.1 147.6C336 158.8 331.4000000000001 168.7 320.2000000000001 168.7C292.5000000000001 168.7 199.6000000000001 164.7 199.6000000000001 208.4C199.6000000000001 215.1 199.7000000000001 221.5 217.0000000000001 221.5C249.3000000000001 221.5 331.3000000000001 213.5 355.3000000000001 192.4C373.4000000000001 176.3 379.6000000000001 79.2 324.3000000000001 17.7zM225.7 143.7C235.4 140.6 245.4 139.7 255.4 137.7C248 132.3 241.4 125.7 235.1 118.6C232.3 127.1 228.9 135.4 225.7 143.7z" />
52
+ <glyph glyph-name="angrycreative"
53
+ unicode="&#xF36E;"
54
+ horiz-adv-x="640" d=" M640 209.8L636.8 181.6L602.3 179.3L600.3 161.2L634.8 163.5L631.5999999999999 135.3L597.1999999999999 133.1L594.9 113L629.3 115.2L626.3 89.1L561.5999999999999 84.9999999999999L574.3 198.1999999999999L527 82.8L495.1 80.8L471.3 198.6L501.6 200.6L515.2 121.2000000000001L546.9000000000001 203.6000000000001L640.0000000000001 209.8000000000001zM426.8 76.5L455.1 78.3L468 198.4L439.6 196.5L426.8 76.5zM162 59.9L142.6 95.9L139.1 58.5L110.9 56.8L113.6 85.9C102.6 67.9 81.6 51.6 56.7 50.1C23.9 48.1 -3 71 0.3 108.3C2.9 137.6 27 171.1 67.8 173.7000000000001C105.5 176.1 115.4 150.5000000000001 119.1 144.9L121.9 175.7000000000001L160.8 178.2000000000001C180.9 179.5000000000001 199.5 174.5000000000001 203.3 154.5000000000001L205.9 181.1000000000001L270.7 185.3000000000001L268 157.4000000000001L231.6 155.0000000000001L229.9 137.1000000000001L266.3 139.4000000000002L263.6 111.5000000000002L227.2 109.2000000000002L225.3 89.3000000000002L261.6 91.6000000000002L259.5 70.8000000000002L314.5 188.0000000000002L338.3 189.6000000000002L370.4 79L379.3 164.6L357 163.2000000000001L359.8999999999999 191.1L434.8999999999999 196L431.8999999999999 168L407.5999999999999 166.4L397.8999999999999 74.5L339.8999999999999 70.8L335.5999999999999 86.4L296.2 83.9L288.2 67.6L162 59.9zM117.7 130.1L91.3 128.4C84.6 140.8 76.9 145 65 144.2C46 143 31.7 126.7 30.4 110.9C29 94.9 37.7 78.4 59.1 79.7C71.9 80.5 80.4 88.3 88 98.6L115 100.3L117.7 130.1zM173.8 137.8C175 150.6999999999999 166.2 151.4 147.7 150.1999999999999L145 121.6999999999999C159.2 122.5999999999999 172.5 123.8 173.8000000000001 137.8zM194.9 66.9999999999999L200.7 127C195.7 113.5 186 105.8999999999999 172.8 100.3999999999999L194.9 66.9999999999999zM330.3 111.9999999999999L322.4000000000001 149.8L306.6 110.4999999999999L330.3 111.9999999999999zM160.2 186.5999999999999L155.9 204.0999999999999L116.3 201.4999999999999L108.2 183.2999999999999L76.3 181.1999999999999L133.3 303.0999999999999L157.2 304.6999999999999L187.9 202.6999999999999L197.8 307.3999999999999L224.8 309.1999999999999L262.6 245.5999999999999L269.1 312.1999999999999L297.6 314.0999999999999L293.6 272.8999999999999C301 286.3999999999999 316.5 317.5999999999999 357.2000000000001 320.3999999999999C397.7000000000001 323.1999999999999 409.6 291.0999999999999 410.6 290.0999999999999L413.9000000000001 322.0999999999999L453.2 324.7999999999999C465.9 325.6999999999999 481.0000000000001 324.4999999999999 489.5000000000001 315.0999999999999L485.1000000000001 326.9999999999999L517.3000000000001 329.1999999999999L530.2 285.9999999999999L553.2 331.6999999999999L584.2 333.8999999999999L540.6 255.4999999999999L535.8000000000001 211.1999999999999L507.4000000000001 209.2999999999999L512.2 253.5999999999999L496.4 296.5999999999999C497.4 274.2999999999999 487.2 256.4999999999999 464.4 246.9999999999999L489.6 208.1999999999999L453.2 205.7999999999999L434.0000000000001 242.5999999999999L430.0000000000001 204.2999999999999L401.6000000000001 202.3999999999998L404.9000000000001 233.8999999999999C398.2000000000001 224.5999999999998 385.2000000000001 198.4999999999998 345.3000000000001 195.8999999999998C319.1000000000001 194.1999999999999 299.7000000000001 206.1999999999999 289.9000000000001 235.0999999999999L285.9000000000001 194.7999999999999L260.9000000000001 193.1999999999999L223.3000000000001 256.4999999999999L217.0000000000001 190.2999999999999L160.2000000000001 186.5999999999999zM436.8000000000001 268.7C447.0000000000001 269.3999999999999 454.3000000000001 270.7999999999999 458.4000000000001 272.9999999999999C462.9000000000001 275.3999999999999 465.4000000000001 279.3999999999999 466.0000000000001 285.0999999999999C466.6000000000001 290.3999999999999 465.4000000000001 293.8999999999999 462.6000000000001 295.4999999999999C459.0000000000001 297.5999999999999 452.0000000000001 298.3 439.7000000000002 297.4999999999999L436.8000000000002 268.7zM327.7 234C333.3 228.1 340.4 225.5 349 226.1C353.7 226.4 358.1 227.9 362.3 230.2C367.8 233.2 372.9000000000001 238.2 377.4000000000001 244.5L343.2000000000001 242.2L345.6 266.1L408.7000000000001 270.4L409.9000000000001 282.4L378.7000000000001 280.3C374.6 284 370.9000000000001 286.9 367.6 288.4C363.6 290.1 359.5 291.2000000000001 355.4000000000001 290.9C347.4000000000001 290.4 340.1 287.3 333.4000000000001 281.7000000000001C325.7000000000001 275.3 321.4000000000001 267.2000000000001 320.5000000000001 257.3C319.4000000000001 247.7 321.9000000000001 240 327.7000000000001 234zM126.4 225.8L150.2 227.4L141.9 265L126.4 225.8z" />
55
+ <glyph glyph-name="angular"
56
+ unicode="&#xF420;"
57
+ horiz-adv-x="415.6" d=" M169.7 179.9H245.9L207.8 271.5L169.7 179.9zM207.8 416L0 341.6L31.8 65.9L207.8 -32L383.8 65.9L415.6 341.6L207.8 416zM338 74.2H289.4L263.2 139.6H152.6L126.4 74.2000000000001H77.7L207.8 366.5L338 74.2z" />
58
+ <glyph glyph-name="app-store-ios"
59
+ unicode="&#xF370;"
60
+ horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM127 63.5C121.5 53.9 109.2 50.7 99.7 56.2C90.1 61.7 86.9 74 92.4 83.5L106.7 108.2C122.8 113.1 136 109.3 146.3 96.8L127 63.5zM265.9 117.4H84C73 117.4 64 126.4 64 137.4S73 157.4 84 157.4H135L200.4 270.6L179.9 306C174.4 315.6 177.7 327.8 187.2 333.3C196.8 338.8 209 335.5 214.5 326L223.4 310.6L232.3000000000001 326C237.8000000000001 335.6 250.1000000000001 338.8 259.6 333.3C269.2000000000001 327.8 272.4000000000001 315.5 266.9000000000001 306L181.1 157.4H243.2C263.4000000000001 157.4 274.7000000000001 133.7 265.9000000000001 117.4zM364 117.4H335L354.6 83.5C360.1 73.9 356.8 61.7 347.3 56.2C337.7 50.7 325.5 54 320 63.5C287.1 120.4 262.5 163.2 246 191.6C229.3 220.6 241.2 249.6 253.1 259.4000000000001C266.2 236.7000000000001 285.8 202.7000000000001 312 157.4H364C375 157.4 384 148.4 384 137.4C384 126.3 375 117.4 364 117.4z" />
61
+ <glyph glyph-name="app-store"
62
+ unicode="&#xF36F;"
63
+ horiz-adv-x="512" d=" M255.9 327.1L265 342.8C270.6 352.6 283.1 355.9 292.9 350.3C302.7 344.7 306 332.2 300.4 322.4L212.9 170.9H276.2C296.7 170.9 308.2 146.8 299.3 130.1H113.8C102.5 130.1 93.4 139.2 93.4 150.5C93.4 161.8 102.5 170.8999999999999 113.8 170.8999999999999H165.8L232.4 286.3L211.6 322.3999999999999C206 332.2 209.3 344.5999999999999 219.1 350.3C228.9 355.8999999999999 241.3 352.5999999999999 247 342.8L255.9 327.0999999999999zM177.2 109.1L157.6 75.1C152 65.3 139.5 62 129.7 67.6C119.9 73.2000000000001 116.6 85.7000000000001 122.2 95.5L136.8 120.7C153.2 125.8 166.6 121.9 177.2 109.1zM346.1 170.8H399.2000000000001C410.5000000000001 170.8 419.6 161.7 419.6 150.4C419.6 139.1 410.5 130.0000000000001 399.2000000000001 130.0000000000001H369.7000000000001L389.6 95.5000000000001C395.2000000000001 85.7000000000001 391.9000000000001 73.3000000000001 382.1 67.6000000000001C372.3 62.0000000000001 359.9000000000001 65.3000000000001 354.2000000000001 75.1000000000001C320.7000000000001 133.2000000000001 295.5000000000001 176.7000000000001 278.8000000000001 205.7000000000001C261.7000000000001 235.2000000000001 273.9000000000001 264.8000000000001 286.0000000000001 274.8000000000001C299.4000000000001 251.8000000000001 319.4000000000001 217.1000000000001 346.1000000000001 170.8000000000001zM256 440C119 440 8 329 8 192S119 -56 256 -56S504 55 504 192S393 440 256 440zM472 192C472 73.3 375.9 -24 256 -24C137.3 -24 40 72.1 40 192C40 310.7 136.1 408 256 408C374.7 408 472 311.9 472 192z" />
64
+ <glyph glyph-name="apper"
65
+ unicode="&#xF371;"
66
+ horiz-adv-x="640" d=" M42.1 208.9C64.3 208.9 71.1 206.1 75.6 194.3H76.4V217.2C76.4 228.5000000000001 71.6 232.6 58.5 232.6C47.2 232.6 44.1 230.1 43.4 219.8H4.8C5.1 233.7 6.3 238.9 10.6 244.2C17.9 253 29.5 256 56.7 256C89.7 256 103.8 251 110.6 237.1C112.6 232.8 114.6 221.5 114.6 213.4V137.1H76.3L77.6 156.2000000000001H76.6C71.3 140.6 63 135.8000000000001 41.1 135.8000000000001C10.8 135.8000000000001 0 145.9000000000001 0 173.1000000000001C0 198.3000000000001 12.3 208.9000000000001 42.1 208.9000000000001zM59.2 160.8C72.3 160.8 76.1 163.8 76.1 174.2C76.1 183.3 71.8 185.8 56.5 185.8C43.4 185.8 38.6 182.8 38.6 173.7C38.5 163.3 42.3 160.8 59.2 160.8zM137 255.7H175.3L173.8 235.1H174.6C183.7 252.2 190.5 256 212.1 256C226.5000000000001 256 236.8 253.0000000000001 243.6 246.9000000000001C253.4000000000001 238.3000000000001 256.4000000000001 226.5000000000001 256.4000000000001 198.8000000000001C256.4000000000001 168.8000000000001 253.4000000000001 155.7000000000001 244.3000000000001 145.9C237.5000000000001 138.6 227.9000000000001 135.8 211.1 135.8C190.7 135.8 181.9 141.3 177.3 157H176.5V86.7H137V255.7zM217.9 195C217.9 222.5 214.6 227.5 197.2 227.5C180.3 227.5 176.5 222.5 176.5 198.8C176.5 170.8 180 165.3 197.7 165.3C214.1 165.3 217.9 170.9 217.9 195zM275.8 255.7H314.1L312.6 235.1H313.4000000000001C322.5000000000001 252.2 329.3 256 350.9000000000001 256C365.3 256 375.6 253 382.4000000000001 246.9C392.2000000000001 238.3 395.2000000000001 226.5 395.2000000000001 198.8C395.2000000000001 168.8 392.2000000000001 155.7 383.1 145.9C376.3 138.6 366.7000000000001 135.8 349.8 135.8C329.4000000000001 135.8 320.6 141.3 316 157H315.2V86.7H275.7V255.7zM356.7000000000001 195C356.7000000000001 222.5 353.4000000000001 227.5 336.0000000000001 227.5C319.1000000000001 227.5 315.3000000000001 222.5 315.3000000000001 198.8C315.3000000000001 170.8 318.8000000000001 165.3 336.5000000000001 165.3C352.9000000000001 165.3 356.7000000000001 170.9 356.7000000000001 195zM410.5000000000001 198.8C410.5000000000001 224.2 413.8000000000001 236.6 422.8000000000001 244.6C431.6000000000001 252.7 445.0000000000001 255.9000000000001 467.9000000000001 255.9000000000001C510.7000000000001 255.9000000000001 523.6000000000001 243.1 523.6000000000001 200.2000000000001V189.1H448.3000000000002C448.0000000000001 187.1 448.0000000000001 185.1 448.0000000000001 184.3C448.0000000000001 167.4 452.5000000000001 162.4 468.1000000000001 162.4C482.0000000000001 162.4 486.0000000000001 165.4 486.0000000000001 176.3H523.5000000000001V174C523.5000000000001 164.2 521.0000000000001 155.1 516.7000000000002 149.3C509.4000000000001 139.5 497.1000000000001 135.7 472.4000000000001 135.7C444.9000000000002 135.7 430.8000000000002 139 421.8000000000002 148C413.3000000000002 156.5 410.5000000000001 169.3 410.5000000000001 198.8zM486.9000000000001 210.4C486.6000000000001 212.2 486.6000000000001 213.7 486.6000000000001 214.2C486.6000000000001 226.5000000000001 483.3000000000001 228.8 467.0000000000001 228.8C452.6000000000001 228.8 449.9000000000001 225.8 448.9000000000001 213.7L448.6 210.4H486.9zM542.5000000000001 255.7H580.8000000000001L579.0000000000001 235.8H579.7000000000002C586.5000000000001 250.7 594.1000000000001 256 609.4000000000002 256C620.2000000000002 256 628.5000000000002 252.7 632.8000000000002 246.7C638.1000000000001 239.4 639.6000000000001 232.3 639.6000000000001 212.7C639.6000000000001 211.2 639.6000000000001 207.7 639.8000000000002 203.4H604.8000000000002C605.1000000000001 205.2 605.1000000000001 206.7 605.1000000000001 207.4C605.1000000000001 222.8 603.1000000000001 226.8 594.8000000000002 226.8C588.5000000000002 226.8 584.0000000000002 223.5 581.7000000000002 217.5C580.7000000000002 214.5 580.7000000000002 213.1999999999999 580.7000000000002 205.1999999999999V137.1999999999999H542.4000000000002V255.7z" />
67
+ <glyph glyph-name="apple-pay"
68
+ unicode="&#xF415;"
69
+ horiz-adv-x="640" d=" M116.9 289.5C109.4 280.6 97.4 273.6 85.4 274.6C83.9 286.6 89.8 299.4 96.7 307.2C104.2 316.3 117.3 322.8 128 323.3C129.2 310.9 124.3 298.6 116.9 289.5M127.8 272.3C110.4 273.3 95.5 262.4 87.3 262.4C78.9 262.4 66.3 271.8 52.5 271.5C34.6 271.2 18 261.1 8.9 245C-9.9 212.7 4 165 22.2 138.7C31.1 125.7 41.7 111.4 55.7 111.9C69 112.4 74.2 120.5 90.2 120.5C106.3 120.5 111 111.9 125 112.1C139.5 112.4 148.6 125.1 157.5 138.1C167.6 152.9 171.8 167.2000000000001 172 168C171.7 168.3 144 178.9 143.7 210.9C143.4 237.7 165.6 250.4 166.6 251.2C154.1 269.8 134.6 271.8 127.8 272.3M228.2 308.5V113.6H258.5V180.2000000000001H300.4C338.7 180.2000000000001 365.5 206.5000000000001 365.5 244.5000000000001S339.1 308.5000000000001 301.4 308.5000000000001H228.2zM258.5 283H293.4C319.7 283 334.7 269 334.7 244.4S319.7 205.6 293.3 205.6H258.5V283zM420.7 112.1C439.7 112.1 457.3 121.7000000000001 465.3 137H465.9V113.6H493.9V210.6C493.9 238.7 471.4 256.9000000000001 436.8 256.9000000000001C404.7 256.9000000000001 380.9000000000001 238.5000000000001 380 213.3000000000001H407.3C409.6 225.3000000000001 420.7 233.2000000000001 435.9000000000001 233.2000000000001C454.4 233.2000000000001 464.8 224.6000000000001 464.8 208.7000000000001V197.9L427 195.6C391.9 193.5 372.9 179.1 372.9 154.1C373 128.9 392.6 112.1 420.7 112.1zM428.9 135.2000000000001C412.8 135.2000000000001 402.5 143.0000000000001 402.5 154.8000000000001C402.5 167.1000000000001 412.4 174.2000000000001 431.3 175.3000000000001L464.9 177.4000000000001V166.4000000000001C464.9 148.2000000000001 449.4000000000001 135.2000000000001 428.9000000000001 135.2000000000001zM531.4 60.6C560.9 60.6 574.8 71.9 586.9 106L640 255H609.2L573.6 139.9H573L537.4 255H505.8L557 113.1L554.2 104.5C549.6 89.9 542.1 84.2 528.7 84.2C526.3000000000001 84.2 521.7 84.5 519.8000000000001 84.7V61.3C521.6 60.9 529.1 60.6 531.4000000000001 60.6z" />
70
+ <glyph glyph-name="apple"
71
+ unicode="&#xF179;"
72
+ horiz-adv-x="448" d=" M247.2 310.4C241 308.5 231.9 306.9 219.3 305.8C220.4 362.5 249.2 402.4 307.3 415.9C316.6 374.3 281.2 321.8 247.2 310.4zM368.5 237.7C374.9 247.1 385.1 257.6 399.1 269.4C376.8 297 351 313.7 314 313.7C278.6 313.7 248.8 295.5 227 295.5C208.5 295.5 175.1 311.6 142.5 311.6C72.9 311.6 36 243.5 36 172.6C36 93.8 95.7 -32 156.2 -32C180 -32 201.4 -14 229.7 -14C259 -14 282.5 -31.2 310 -31.2C356 -31.2 398.6 46.3 412 88.5C365.2 102.8 327.6 178.7 368.5 237.7z" />
73
+ <glyph glyph-name="asymmetrik"
74
+ unicode="&#xF372;"
75
+ horiz-adv-x="576" d=" M517.5 138.8C556.3 178.8 575.6 218.8 576 254.9C576.8 320.4 516.6 373.1 406.6 389.9C277.9 409.6 118.1 374.4 0 307.5C52 334 110.6 355.7 170.7 365.7C245.2 386.2 323.7 391.1 392 380.5C544.5 356.7 588.8 253 490.8 148.8C480.6 138 468.8 127.7 455.8 118.2L304.9 344.6L114.7 59.1C49.1 88.5 38.2 149.3 95.6 210.3C116.4 232.5 143.9 252.2 175.1 268.4C195.1 280.6 214.8 291 237.1 299.1C172 278.8 114.4 246.2 75.5 206.2C47.8 177.6 34.1 149.1 33.8 123.3C33.3 88.1999999999999 57.2 58.1999999999999 102.2 40.3L67.7 -11.4H169.3L191.3 22.9999999999999C213.5 21.9999999999999 236.6 22.9999999999999 259.9 25.6999999999999L237.1 -11.4000000000001H372.6L340 41.7C358.6 47 376.9 53.2 394.5 60.4L440.4 -11.4H542L468.6 99C487.1 111.1 503.6 124.5 517.5 138.8zM329.9 58.3L304.9 98.9L272.2 45.6C248.8 42.1 225.5 40.5 203 41.2L304.9 200.5000000000001L383.6 77.5000000000001C366.4 70.1000000000001 348.3 63.6000000000001 329.9 58.3000000000001z" />
76
+ <glyph glyph-name="audible"
77
+ unicode="&#xF373;"
78
+ horiz-adv-x="640" d=" M640 248.1V194.1L320 -5.9L0 194V248L320 48L640 248.1zM445.5 176.1L492.6 205.5C455.4 261.3 391.9000000000001 298.1 319.9000000000001 298.1C247.9000000000001 298.1 184.4 261.4000000000001 147.3000000000001 205.7H147.6000000000001C150.1000000000001 208 152.7000000000001 210.2 155.3000000000001 212.4C245.0000000000001 286.8 374.7000000000001 270.5 445.5 176.1zM225.4 157.3C242.3 169.2 261.9 176 282.8 176C317.2 176 348 157.6 369.2000000000001 128.4L414.6 156.8C393.7000000000001 186.6999999999999 359 206.3 319.8 206.3C280.9000000000001 206.3 246.4 186.9 225.4 157.3zM103.6 286.9C235.4 391.2 421.8 363.3 521.1 224.8L521.8000000000001 223.8L570.6 254.2C517.1 335.9 424.8 389.9 319.9 389.9C216.4 389.9 123.3 336.4 69.4 254.3C79.3 264.8 92.1 277.8 103.6 286.9zM570.6 254.2z" />
79
+ <glyph glyph-name="autoprefixer"
80
+ unicode="&#xF41C;"
81
+ horiz-adv-x="640" d=" M318.4 432L157.4 -48H234.9L260.3 33.4H379.8L405 -48H482.5L318.4 432zM278.1 90.1L319.3 220.5H320.8L361.7 90.1H278.0999999999999zM640 43L630 74.4L462.1 90L481.5 33.5L640 43zM177.9 90L10 74.3L0 43L158.5 33.6L177.9 90z" />
82
+ <glyph glyph-name="avianex"
83
+ unicode="&#xF374;"
84
+ horiz-adv-x="512" d=" M453.1 416H141.1C102.2 416 64.9 384.8 57.8 346.3L1.2 37.7C-5.9 -0.8 19.9 -32 58.9 -32H370.9C409.8 -32 447.1 -0.8 454.2 37.7L510.9 346.2C517.9 384.8 492.1 416 453.1 416zM394.9000000000001 68.7L362.9000000000001 55.2L247.5000000000001 165.2C232.8000000000001 155.2 218.3000000000001 145.7 205.8 138.1L227.9 73.9L210 61.2L169.4 122.2L117 170.3L132.7 185.7L190.7 154.6C200 165.1 211.5 177.2 223.5 189.5L203 219.1L134.2 318.9L153 347.8L161.9 352.6L265 240.2L269.9 235.7C289.3 254.5 303.7 268.1 303.7 268.1C311.4 274.6 325.2 271 334.4 260.2C343.4 249.7 345 235.5 337.1 228.9C335.3 227.6 321.6 217.5 301.8 203.3L306.3 196L401.2 76.6L394.8999999999999 68.7z" />
85
+ <glyph glyph-name="aviato"
86
+ unicode="&#xF421;"
87
+ horiz-adv-x="640" d=" M107.2 164.5L88.2 206.3H36.1L17.1 164.5H0L62.2 295.9L124.4 164.5H107.2zM62.2 262.6L42.6 220.1H81.8L62.2 262.6zM174.9 160.2L112.7 291.6H129.8L174.9 195.6L220 291.6H237L174.9 160.2zM255.5 164.5V291.6H271V164.5H255.5zM464.6 280.1V164.5H447.3V280.1H406.1V291.6H505.7V280.1H464.6zM640 229.2C640 220 638.3 211.4 634.9 203.4C631.5 195.4 626.6999999999999 188.3 620.6999999999999 182.3C614.6999999999999 176.3 607.5999999999999 171.5 599.5999999999999 168.1C591.5999999999999 164.7 582.9999999999999 163 573.8 163S556 164.6999999999999 548 168.1C540 171.5 532.9 176.3 526.9 182.3C520.9 188.3 516.1 195.3 512.6999999999999 203.4C509.3 211.4 507.5999999999999 220 507.5999999999999 229.2S509.2999999999999 247 512.6999999999999 255C516.0999999999999 263 520.9 270.1 526.9 276.1C532.9 282.1 539.9 284.5 548 288C556 291.4 564.6 293.1 573.8 293.1S591.5999999999999 291.4 599.5999999999999 288C607.5999999999999 284.6 614.6999999999999 282.2 620.6999999999999 276.1C626.6999999999999 270.1 631.4 263 634.9 255C638.3 247 640 238.4 640 229.2zM624.5 229.2C624.5 236.5 623.2 243.2 620.6 249.5C618 255.8 614.4 261.2 609.8000000000001 265.8C605.2 270.4 599.8000000000001 274 593.6 276.7000000000001C587.4 279.4 580.8000000000001 280.7000000000001 573.8000000000001 280.7000000000001S560.2 279.4 554.0000000000001 276.7000000000001C547.8000000000001 274 542.4000000000001 270.4 537.8000000000001 265.8C533.2 261.2000000000001 529.6 255.8 527.0000000000001 249.5C524.4000000000001 243.2 523.1000000000001 236.4 523.1000000000001 229.2C523.1000000000001 221.9 524.4000000000001 215.2 527.0000000000001 208.9C529.6000000000001 202.6 533.2000000000002 197.2 537.8000000000001 192.6C542.4000000000001 188 547.8000000000001 184.4 554.0000000000001 181.7C560.2000000000002 179 566.8000000000001 177.7 573.8000000000001 177.7S587.4000000000001 179 593.6 181.7C599.8000000000001 184.4 605.2 188 609.8000000000001 192.6C614.4000000000001 197.2 618.0000000000001 202.6 620.6 208.9C623.2 215.2 624.5 222 624.5 229.2zM529.7 132.5V138.8L618.6 148.8L375.7000000000001 135.4C376.3000000000001 137.6 376.8000000000001 140.0000000000001 377.1 142.6C377.4000000000001 144.6 377.6 146.8 377.7000000000001 149.1L442.5000000000001 157.2000000000001L377.6 155.3000000000001C377.6 155.7000000000001 377.5 156.0000000000001 377.5 156.4000000000001C374.7 173.6000000000001 352 180.1000000000001 352 180.1000000000001L350.9 206.4000000000001H374.7L393.7 164.6000000000001H410.8L348.6 296L286.4000000000001 164.6H303.5000000000001L322.5000000000001 206.4H346.1000000000001L345 180S322.3 173.5 319.5 156.3C319.4 156 319.4 155.6 319.4 155.2L254.5 157.1L319.3 149C319.4 146.6999999999999 319.6 144.6 319.9 142.5C320.2 139.8999999999999 320.7 137.5 321.3 135.3L78.4 148.8L167.3 138.8V132.5C161.4 131.6 156.8 126.5 156.8 120.3C156.8 113.5 162.4 107.9 169.2 107.9C176 107.9 181.6 113.5000000000001 181.6 120.3C181.6 126.5 177 131.6 171.1 132.5V138.3L251.4000000000001 129.3V123.9C245.7000000000001 122.8 241.5000000000001 117.7000000000001 241.5000000000001 111.8C241.5000000000001 105 247.1 101.6 253.9000000000001 101.6C260.7000000000001 101.6 266.3 105 266.3 111.8C266.3 117.8 262 122.8 256.4000000000001 123.9V128.8L284.8 125.6V101.9H278.9000000000001V88H284.8V94.6H289.8V88H295.7V101.8H289.8V125L328.1 120.7C336.2000000000001 109.3 347.1 107.1 347.1 107.1L347 100.4L341.9 100.2L341.8 88.1H345.9L346 93.1H351.2L351.3 88.1H355.4000000000001L355.3 100.2L350.2 100.4L350.1 107.1S361 109.2 369.1 120.7L407.4 125V101.8H401.5V88H407.4V94.6H412.4V88H418.3V101.8H412.4V125.5L440.8 128.7V123.8C435.1 122.7 430.9 117.6 430.9 111.7C430.9 104.9 436.5 101.5 443.3 101.5C450.1 101.5 455.6999999999999 104.9 455.6999999999999 111.7C455.6999999999999 117.7 451.3999999999999 122.7 445.8 123.8V129.2L526.0999999999999 138.2V132.4C520.1999999999999 131.5 515.5999999999999 126.4 515.5999999999999 120.2C515.5999999999999 113.4 521.1999999999999 107.8 527.9999999999999 107.8C534.7999999999998 107.8 540.3999999999999 113.4 540.3999999999999 120.2C540.1999999999998 126.5 535.6999999999998 131.6 529.6999999999998 132.5zM328.9000000000001 220.1L348.5000000000001 262.6L368.1000000000001 220.1H350.2000000000001L348.5000000000001 260.4L346.8000000000002 220.1H328.9000000000002z" />
88
+ <glyph glyph-name="aws"
89
+ unicode="&#xF375;"
90
+ horiz-adv-x="512" d=" M261.2 311.9C247.2 254.4 248.1 257.5 235.4 204.9C233.8 198.4 231.3 196.5 224.7 196.4H210.3C204.5 196.5 202.1 198 200.4 203.7C188.1 243.1 171.6 297.8 160.5 334.4C156.4 347.9 159.1 347.6 169.8 347.3C173.5 347.2000000000001 177.1 347.3 180.8 347.3C185.9 347.2000000000001 188.5 345.3 189.9 340.2000000000001C193.5 327.3 195.9 317.4 216.5 236.1C216.9 234.5000000000001 217.4 233.0000000000001 217.9 231.5000000000001H219C219.5 233.5000000000001 220.1 235.4000000000001 220.6 237.4000000000001C228.4 270.3000000000001 236.1 303.3000000000001 243.9 336.2000000000001C246.3 346.4000000000001 250.6 347.4000000000001 260.9 347.4000000000001H268.5C275.4 347.3000000000001 277.5 345.9000000000001 279.2 339.1C285.2 315.7000000000001 302.7 237.3000000000001 305.9 228.7000000000001C311 247.0000000000001 304.1 220.8000000000001 334.4 337.7000000000001C336.5 345.8000000000001 338.5 347.4000000000001 346.7 347.4000000000001H359.4C364.8 347.3000000000001 366.4 345.6 365.1 340.3000000000001C362.7 330.8000000000001 362.2 330.4000000000001 323.8 207.4C320.7 197.5 319.6 196.6 309.2 196.6H298.5999999999999C291.2999999999999 196.6 289.3999999999999 197.9 287.5999999999999 205C283.2999999999999 221.2 264.2999999999999 300.7000000000001 261.2 311.9000000000001zM125.4 200.7C129.6 194.9 133.5 194.4 139.5 198.3L145.8 202.5C152.6 207 153.1 208.8 149.4 216C145.1 224.4 143 233.3 143.1 242.9C143.1 246 143.7 298.6 142.2 309.7C139.5 329 129.7 342.5 110.5 348.4C99.8 351.8 88.8 351.7 77.8 351.4C62.7 351 48.4 346.8 35 340C33.2 339.1 31.3 336.9 30.9 335.1C30.1 331.2 29.8 327 30.2 323C30.8 317.1 32.8 316 38.4 317.9C43.5 319.6 48.4 321.8 53.5 323.3C68 327.7 82.7 329.7 97.6 325C104.7 322.8 109.3 318.1 111.9 311.2C114.9 303.3 114.3 295.1 114.3 287C114.3 281.5 114.2 281.5 108.8 282.5C94.9 285.1 81.1 287.5 66.9 285.6C51.7 283.5 38.3 278.3 28.7 265.6C19.6 253.6 18.7 240 21.3 226.1C24.1 211.1 33.1 200.4 47.7 195.7C68.3 189 87.8 192.4 105.4 205.2C109.2 208 112.6 211.4 116.5 214.7C119.6 209.7 122.3 205 125.4 200.7zM110.1 262.3C113.1 261.9 114.6 260.4 114.4 257.2C114.2 253.4 114.5 249.6 114.1 245.8C112.9 234.1 106.4 226.1 96.2 220.9C88 216.7 79.3 215.1 70.1 215.9C54.9 217.2 49.1 229 50.5 242.2C51.8 254.8 59 261.8 72 264C85.8 266.4 88 265.1 110.1 262.3zM458.9 197.2C480.2 205.8 491.8 223.4 488.1 247.2C485.9 261.8 476.3 271.4 462.9 276.7C448.2000000000001 282.6 429.1 287 414.8 294.9C410.4000000000001 297.3 407.4000000000001 301.2 407.2 306.8C406.8 317.9 411.4 324 422.6 326.6C431.9 328.7 441.4 328.8 450.7 327C458 325.6 465 322.8 472.1 320.7C474.9 319.8 477.9999999999999 318.6 479.9 322.3C483.7 329.6 480.3 341 472.6 344.1C450.1 353.1 427.1 355.7 404.4 345.7C389.8 339.3 379.8 328.3 378.4 311.5C376.8 292.2 385.3 278.1 402.5 269.8C410.2 266.1 418.6 263.9 426.7 260.9C434.8 257.9 442.9 255.1 450.8 251.8C463.1 246.5 462.4 227.6 452 221.8C424.3 206.5 387.1 224.2 382.8 225.6C379.5 226.7 377.5 225.4 376.5 221.9C373.5 210.6 377.2 203.1 388.1 199.2C409.8 191.3 437.7000000000001 188.7 458.9 197.2zM296 34.5C346.8 40.3 394.7 55.3 438.7 81.5C446.7 86.2 454.2 91.8 461.8 97.2C469.1 102.4 465 115.6 450.5 109.4C396.1 86.2 339.3 73.3 280.3 70.5C249.8 69 219.5 70.8 189.2 75.2C126.1 84.4 66.8 104.4 11.6 136.4C9.5 137.6 7.4 138.9 5.1 139.4C0.2 140.5 -2.6 134.7 2.7 129.7C26.7 107.6 53 88.9 81.8 74C135.5 46.3 192.3 31.3 253 32C267.4 32.8 281.8 32.9 296 34.5zM470.7 126.7C485.5 125.9 490.1 120.8 486.4 106.5C482.6 91.7 477.1 77.3 472.5 62.7C471.6 59.8 468.3 56.4 471.7 53.9C475.4 51.3 478.2 54.9 480.7 57.2C490.9 66.7 498.1 78.2 503.2 91C508.6 104.4 512.5 118.2 511.9 132.9C511.7 139.1 510.1 141.7 504.1 143.4C498.7 144.9 493.1 146.2 487.6 146.6C465.9999999999999 148.4 445.1 146.1 425.6 136C422.5 134.3999999999999 419.6 132.3 416.9 130.1C415.8 129.2 413.7 124.8 419.3 124C421.2 123.6999999999999 423.2 124.1 425.2 124.3C442.0999999999999 125.9 453.8 127.6 470.6999999999999 126.6999999999999z" />
91
+ <glyph glyph-name="bandcamp"
92
+ unicode="&#xF2D5;"
93
+ horiz-adv-x="496" d=" M248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM296.2 113.9H115.2L199.9 270H380.9L296.2 113.9z" />
94
+ <glyph glyph-name="behance-square"
95
+ unicode="&#xF1B5;"
96
+ horiz-adv-x="448" d=" M186.5 155C186.5 135.7 172.5 129.6 155.3 129.6H110.2V182.5H156.2C174.8 182.4 186.5 174.7 186.5 155zM178.8 237.3C178.8 255 165.1 259.2000000000001 149.9 259.2000000000001H110.3V214.4H153C168.1 214.4 178.8 221 178.8 237.3000000000001zM311.1 214.1C292.8 214.1 280.6 202.7 279.4000000000001 184.4H341.6C339.9000000000001 202.9 330.3 214.1 311.1 214.1zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM271.7 263H349.5V281.9H271.7V263zM228.7 152.7C228.7 176.8 217.3 197.6 193.7 204.3C210.9 212.5 219.9 222 219.9 241.3C219.9 279.5 191.4 288.8 158.5 288.8H68V96.8H161.1C196 96.9999999999999 228.7 113.6999999999999 228.7 152.6999999999999zM380 167.5C380 208.6 355.9 242.9 312.4 242.9C270 242.9 241.3 211.1 241.3 169.3C241.3 126 268.6 96.3 312.4 96.3C345.6 96.3 367.1 111.2 377.5 143.1H343.8C340.1 131.2000000000001 325.2 125 313.6 125C291.2000000000001 125 279.5 138.1 279.5 160.3H379.7C379.8 162.6 380 165.1 380 167.5z" />
97
+ <glyph glyph-name="behance"
98
+ unicode="&#xF1B4;"
99
+ horiz-adv-x="576" d=" M232 210.8C263.8 226 280.4 249 280.4 284.8C280.4 355.4 227.8 372.6 167.1 372.6H0V18.2H171.8C236.2 18.2 296.7000000000001 49.1 296.7000000000001 121.1C296.7000000000001 165.6 275.6 198.5 232.0000000000001 210.8zM77.9 312.1H151C179.1 312.1 204.4 304.2 204.4 271.6C204.4 241.5 184.7 229.4 156.9 229.4H77.9V312.1zM161.2 78.4H77.9V176H162.8C197.1 176 218.8 161.7 218.8 125.4C218.8 89.6 192.9 78.4 161.2 78.4zM519.7 319.1H376V354H519.7V319.1zM576 142.8C576 218.7 531.6 282 451.1 282C372.9000000000001 282 319.8 223.2 319.8 146.2C319.8 66.3 370.1 11.5 451.1 11.5C512.4 11.5 552.1 39.1 571.2 97.8H509C502.3 75.9 474.7 64.3 453.3 64.3C412 64.3 390.3 88.5 390.3 129.6H575.4C575.6999999999999 133.8 576 138.3 576 142.8zM390.4 174C392.7 207.7 415.1 228.8 448.9 228.8C484.3 228.8 502.1 208 505.1 174H390.4z" />
100
+ <glyph glyph-name="bimobject"
101
+ unicode="&#xF378;"
102
+ horiz-adv-x="448" d=" M416 416H32C14.4 416 0 401.6 0 384V0C0 -17.6 14.4 -32 32 -32H416C433.6 -32 448 -17.6 448 0V384C448 401.6 433.6 416 416 416zM352 158.6C352 109.2000000000001 340.6 76 248.2 76H231.3C187.2 76 168.9 90.9 160.9 114.8H160V80H96V312H160V237.3H161.1C165.7 267.8 200.8 276.1 230.8 276.1H248.1C340.5 276.1 351.9000000000001 243.0000000000001 351.9000000000001 193.6V158.6zM288 187.5V164.6C288 142.9 284.6 130.8 249.6 130.8H204.3C175.4 130.8 160.2 137.3 160.2 166.5V185.5C160.2 214.8 175.4 221.2 204.3 221.2H249.6C284.6 221.4 288 209.2 288 187.5z" />
103
+ <glyph glyph-name="bitbucket"
104
+ unicode="&#xF171;"
105
+ horiz-adv-x="512" d=" M23.1 416C14.2 416.1 7 409.1 6.9 400.2C6.9 399.3 7 398.4 7.1 397.4L74.9 -14C76.6 -24.4 85.6 -32 96.1 -32.1H421.2000000000001C429.1 -32.2 435.9000000000001 -26.5 437.2000000000001 -18.7L505.0000000000001 397.3C506.4 406 500.5000000000001 414.2 491.8000000000001 415.6C490.9000000000001 415.7 490.0000000000001 415.8 489.0000000000001 415.8L23.1 416zM308.4000000000001 118.7H204.6L176.5 265.5H333.5L308.4 118.7z" />
106
+ <glyph glyph-name="bitcoin"
107
+ unicode="&#xF379;"
108
+ horiz-adv-x="512" d=" M504 192C504 55.033 392.967 -56 256 -56S8 55.033 8 192S119.033 440 256 440S504 328.967 504 192zM362.349 227.33C367.286 260.329 342.158 278.069 307.799 289.903L318.945 334.605L291.732 341.386L280.881 297.862C273.727 299.645 266.379 301.326 259.078 302.992L270.007 346.802L242.809 353.583L231.656 308.897C225.734 310.246 219.9209999999999 311.579 214.279 312.981L214.31 313.121L176.78 322.491L169.541 293.429S189.732 288.802 189.3059999999999 288.516C200.3279999999999 285.765 202.3199999999999 278.472 201.9859999999999 272.691L189.2899999999999 221.766C190.0499999999999 221.572 191.0339999999999 221.293 192.119 220.859C191.2119999999999 221.084 190.243 221.332 189.243 221.572L171.447 150.2339999999999C170.098 146.8859999999999 166.68 141.8639999999999 158.976 143.7699999999999C159.2469999999999 143.375 139.196 148.7069999999999 139.196 148.7069999999999L125.6859999999999 117.56L161.0999999999999 108.733C167.6879999999999 107.0819999999999 174.1449999999999 105.3539999999999 180.5 103.727L169.238 58.514L196.4199999999999 51.733L207.5729999999999 96.466A1038.209 1038.209 0 0 1 229.26 90.8389999999999L218.1449999999999 46.3159999999999L245.3579999999999 39.5349999999999L256.6199999999999 84.6629999999999C303.0239999999999 75.8819999999999 337.9189999999999 79.4239999999999 352.6059999999999 121.3899999999999C364.4419999999999 155.1799999999999 352.0169999999999 174.6709999999999 327.6019999999999 187.3809999999999C345.3819999999999 191.4789999999999 358.7759999999999 203.1729999999999 362.3489999999999 227.3299999999999zM300.172 140.151C291.762 106.3609999999999 234.864 124.6279999999999 216.417 129.208L231.361 189.107C249.807 184.504 308.961 175.39 300.172 140.151zM308.589 227.818C300.916 197.082 253.558 212.698 238.196 216.526L251.744 270.853C267.107 267.025 316.58 259.88 308.589 227.818z" />
109
+ <glyph glyph-name="bity"
110
+ unicode="&#xF37A;"
111
+ horiz-adv-x="496" d=" M78.4 380.8C173.8 470 324.5 472 421.5 377C435.8 362.9 415.1 339.9 399.1 355.5C314.3 437.9 183.3 435.8 100.2000000000001 358.7C83.9000000000001 343.6 63.7000000000001 367 78.4000000000001 380.8zM177.3 -37.8C196.6 -43.5 206.6 -14.2 185.2 -7.8C73 26.1 9.4 141.9 37.7 253.2C42.7 272.8 12.8 281.3 7.5 260.3C-24.6 132.9 48.6 0.5 177.3 -37.8000000000001zM325.4 -35.8C447.3 4.4 518.3 131.1 489.8 255.2C485.3 274.9 454.9 269 459.8 247.3C483.9999999999999 139.6 422.7 29.4 316.6 -6.1C295.4 -13.1 306.2 -42.1 325.4 -35.8zM262.5 43.2L262.7 115C262.7 123.2 256.1 129.8 247.9 129.8C239.7 129.8 233.1 123.1 233.1 115L232.9 43.2C232.9 35 239.5 28.4 247.7 28.4S262.5 35 262.5 43.2zM333.5 312.2C335.6 221.3 338.2 180.3 248 179.7C155.5 180.4 161.1 224 162.5 312.2C162.5 334 130 331.8 130 312.2V240.6C130 171.3 190.7 149.7 248 150.5C305.3 149.7 366 171.3 366 240.6V312.2C366 331.8 333.5 334 333.5 312.2z" />
112
+ <glyph glyph-name="black-tie"
113
+ unicode="&#xF27E;"
114
+ horiz-adv-x="448" d=" M0 416V-32H448V416H0zM316.5 90.8L224 2.1L131.5 90.8L196 274.8L131.5 361.4H316.4L252 274.8L316.5 90.8z" />
115
+ <glyph glyph-name="blackberry"
116
+ unicode="&#xF37B;"
117
+ horiz-adv-x="512" d=" M166 331.1C166 307.7 149.6 282 93.5 282H23.4L44.4 370.8H112.2C154.3 370.8 166 347.5 166 331.1zM292.2 370.8H224.4L205.7 282H275.8C329.6 282 345.9 307.7 345.9 331.1C346 347.5 334.3 370.8 292.2 370.8zM88.8 239.9H21L0 151.1H70.1C126.2 151.1 142.6 174.5 142.6 200.2C142.6 216.5 130.9 239.9000000000001 88.8 239.9000000000001zM268.9 239.9H201.1L182.4 151.1H252.5C306.3 151.1 322.6 174.5 322.6 200.2C322.6 216.5 310.9 239.9000000000001 268.9 239.9000000000001zM458.2 293.7H390.4L371.7 204.9H441.8C495.6 204.9 511.9 228.3 511.9 254C512 270.3 500.3 293.7 458.2 293.7zM430.2 155.8H362.4L343.7 67H413.8C469.9 67 483.9 90.4 483.9 116.1C483.9 132.4 472.3 155.8 430.2 155.8zM240.8 102H173L154.3 13.2H224.4C280.5 13.2 294.5 38.9 294.5 62.3C294.6 78.6 282.9 102 240.8 102z" />
118
+ <glyph glyph-name="blogger-b"
119
+ unicode="&#xF37D;"
120
+ horiz-adv-x="448" d=" M446.6 225.3C444.8 233.3 439.8 240.7 434.1 243.8C432.3 244.8 421.1 246 409.1 246.5C389 247.4 386.8 247.8 380.4000000000001 251.5C370.3 257.4 367.6 263.8 367.5000000000001 281C367.4000000000001 314 353.7000000000001 344.7 326.6000000000001 372.3C307.3000000000001 392 285.7000000000001 405.3 261.1000000000001 412.8C255.2000000000001 414.6 242.0000000000001 415.2 197.8000000000001 415.7C128.4000000000001 416.5 113.0000000000001 415.1 89.4000000000001 405.7C45.9 388.5 14.7 351.9 3.3 305.1C1.2 296.3 0.7 282.2 0.2 201.2C-0.4 99.7 0.3 84.8 6.6 64.7C22.2 15.1 66.5 -21.6 111 -29.6C125.8 -32.3 308.3 -32.9 327 -30.4C359.5 -26.0000000000001 385 -12.9 408.9 11.4999999999999C426.2 29.1999999999999 437 48.3 444.1 73.6C449 91.2 448.6 216.4 446.6 225.3zM124.5 288.9C132.3 296.8 134.5 297.1 183.3 297.1C227.2 297.1 228.7 297 235.1 293.7C244.4000000000001 289 248.5000000000001 282.4 248.5000000000001 271.8C248.5000000000001 262.3 244.7 255.6 236.2 250.2C231.6 247.3 228.9 247.1 185.9 246.9C159.4 246.7 138.2000000000001 247.3 135.1 248.1C118.5 252.8 112.3 276.6 124.5 288.9zM316.3 89.1L301.4000000000001 86.7000000000001L223.9 85.8000000000001C155.8000000000001 85.0000000000001 136.6 86.2000000000001 133 87.8000000000001C125.9 90.9000000000001 119.2 99.5000000000001 118.1 107.2000000000001C117 114.5000000000001 120.7 124.5000000000001 126.3 129.6C133.4 136 136.5 136.2000000000001 223.6 136.3C313.2000000000001 136.4 312.7000000000001 136.4 321.2000000000001 128.5C333.3000000000001 117.2 330.7000000000001 97.3 316.3000000000001 89.1z" />
121
+ <glyph glyph-name="blogger"
122
+ unicode="&#xF37C;"
123
+ horiz-adv-x="448" d=" M162.4 252C167.2 256.9 168.6 257.1 198.8 257.1C226 257.1 226.9 257 230.9 255C236.7 252.1 239.2 248 239.2 241.4C239.2 235.5 236.8 231.4 231.6 228C228.8 226.2 227.1 226.1 200.5 225.9C184.1 225.8 171 226.1 169 226.7C158.7 229.6 154.9 244.4 162.4 252.0000000000001zM223.8 157.5C169.9 157.5 168 157.3 163.6 153.4C160.1 150.3 157.9 144 158.5 139.5C159.2 134.8 163.3000000000001 129.4 167.7 127.5C169.9 126.5 181.8 125.8 224 126.3L271.9 126.9L281.1 128.4C290.1 133.5000000000001 291.6 145.8 284.2 152.8C278.9 157.5 279.2 157.5 223.8 157.5zM447.2000000000001 27.4C443.7000000000001 -1 424.2000000000001 -23 396.1 -30.1C388.9000000000001 -31.9 386.4000000000001 -32 223.2 -31.9C65.4 -31.9 57.3 -31.8 51.2 -30.1C42.8 -27.9 35.6 -24.6 28.9 -20.1C23.3 -16.3 15 -8.3 11.9 -3.7C8.1 1.9 3.7 11.6 1.9 18.3C0.1 25 0 27.7 0 191.7C0 354.8 0 358.3 1.8 365.4C8.1 390.1 27.7 409 53 414.6C60.3 416.2 385.1 416.5 393 414.9C414.2 410.6 430.9 397.8 440.6 378.5C448.3 363.2 447.6 380 447.9000000000001 197.9C448.1 82.1 447.9000000000001 33.4 447.2000000000001 27.4zM361.8000000000001 212.6C360.7000000000001 217.6 357.6000000000001 222.2 354.1000000000001 224.1C353.0000000000001 224.7 346.1000000000001 225.4 338.6000000000001 225.8C326.2000000000001 226.4 324.8000000000001 226.6 320.8000000000001 228.9C314.6000000000001 232.5 312.9000000000001 236.5 312.8000000000001 247.2C312.8000000000001 267.6 304.3000000000001 286.6 287.5000000000001 303.7C275.5000000000001 315.9 262.2000000000001 324.2 246.9000000000001 328.8C243.3000000000001 329.9 235.1000000000001 330.3 207.7000000000001 330.6C164.8000000000001 331.1 155.2000000000001 330.2 140.6000000000001 324.4C113.6000000000001 313.7 94.3000000000001 291 87.2000000000001 262C85.9000000000001 256.5999999999999 85.6000000000001 247.8 85.3 197.6999999999999C84.9 134.8999999999999 85.3 125.5999999999999 89.3 113.1999999999999C99 82.4999999999999 126.4 59.8 153.9 54.8C163.1 53.1 276.1 52.6999999999999 287.6 54.3C307.7000000000001 56.9999999999999 323.5 65.1 338.3 80.1999999999999C349 91.0999999999999 355.7 102.9999999999999 360.1 118.6999999999999C363.3 129.5999999999999 363 207.0999999999999 361.8 212.5999999999999z" />
124
+ <glyph glyph-name="bluetooth-b"
125
+ unicode="&#xF294;"
126
+ horiz-adv-x="320" d=" M196.48 187.977L289.106 291.31L143.125 448V241.67L57.014 327.781L25.608 296.376L133.669 187.977L25.608 79.578L57.014 48.173L143.125 134.284L145.84 -64L294.392 84.644L196.48 187.977zM237.34 290.973L187.363 240.995L187.025 341.29L237.34 290.973zM187.363 134.96L237.34 84.982L187.025 34.6659999999999L187.363 134.9599999999999z" />
127
+ <glyph glyph-name="bluetooth"
128
+ unicode="&#xF293;"
129
+ horiz-adv-x="448" d=" M292.6 276.9L249.7 234L249.4 320L292.6 276.9M249.4 57.1L292.5 100.2000000000001L249.6 143.1L249.4 57.1zM416 188.6C416 -17 344.1 -64 230.9 -64S32 -17 32 188.6S115.4 448 228.6 448S416 394.1 416 188.6zM257.5 188.6L336.9 277.2000000000001L211.8 411.5V234.6L138 308.4L111 281.5L203.7 188.5L111 95.5L137.9 68.6L211.7 142.4L214 -27.6L341.4 99.9L257.5 188.6z" />
130
+ <glyph glyph-name="btc"
131
+ unicode="&#xF15A;"
132
+ horiz-adv-x="384" d=" M310.204 205.362C337.9340000000001 219.542 355.581 244.752 351.4840000000001 286.662C346.1260000000001 344.013 299.0260000000001 363.235 236.6340000000001 368.591V448H188.1060000000001V370.7970000000001C175.5010000000001 370.7970000000001 162.5810000000001 370.482 149.662 370.1670000000001V448H101.134V368.591C83.2920000000001 368.052 62.512 368.315 3.764 368.591V316.913C42.078 317.591 62.181 320.053 66.787 295.486V78.057C63.862 58.565 48.263 61.372 13.532 61.986L3.765 4.32C92.246 4.32 101.135 4.005 101.135 4.005V-64H149.663V3.06C162.897 2.745 175.817 2.745 188.107 2.745V-64H236.635V4.005C317.9340000000001 8.417 372.2820000000001 28.899 379.5300000000001 105.472C385.201 166.918 356.2100000000001 194.334 310.2040000000001 205.362zM150.608 313.447C178.023 313.447 263.7340000000001 321.954 263.7340000000001 264.919C263.7340000000001 210.404 178.0240000000001 216.707 150.608 216.707V313.447zM150.608 61.671V168.179C183.38 168.179 283.735 177.317 283.735 114.924C283.7340000000001 54.738 183.38 61.671 150.608 61.671z" />
133
+ <glyph glyph-name="buromobelexperte"
134
+ unicode="&#xF37F;"
135
+ horiz-adv-x="448" d=" M0 416V288H128V416H0zM120 296H8V408H120V296zM160 416V288H288V416H160zM280 296H168V408H280V296zM320 416V288H448V416H320zM440 296H328V408H440V296zM0 256V128H128V256H0zM120 136H8V248H120V136zM160 256V128H288V256H160zM280 136H168V248H280V136zM320 256V128H448V256H320zM440 136H328V248H440V136zM0 96V-32H128V96H0zM120 -24H8V88H120V-24zM160 96V-32H288V96H160zM280 -24H168V88H280V-24zM320 96V-32H448V96H320z" />
136
+ <glyph glyph-name="buysellads"
137
+ unicode="&#xF20D;"
138
+ horiz-adv-x="448" d=" M224 297.3L266.9 136.6H181.1L224 297.3zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM382.7 42.7L288.2 341.4H159.8L65.3 42.7H156L267.7 134.3L291.9 42.6999999999999H382.7z" />
139
+ <glyph glyph-name="cc-amazon-pay"
140
+ unicode="&#xF42D;"
141
+ horiz-adv-x="576" d=" M124.7 246.2C124.8 258 124.7 269.7 124.7 281.5V316.8C124.7 318.1 125.1 318.8 126.1 319.5C137.6 327.5 150.2 331.6 164.3 330.6C176.8 329.7 187 323.6 192.4 308.9C195.7 300 196.5 290.7000000000001 196.5 281.2000000000001C196.5 272.5 195.8 263.9 193.1 255.6C187.4 237.8 174.4 230.9000000000001 157.4 231.7C145.7 232.2 135.5 236.7 126 243.4C125.1 244.2 124.6 245 124.7 246.2zM279.6 231.6C284.2000000000001 229.8 288.9000000000001 229.6 293.7000000000001 230.1C305.3000000000001 231.3 315.6 235.8 325.0000000000001 242.6C325.9000000000001 243.2 326.3000000000001 243.9 326.3000000000001 245.1C326.2000000000001 249 326.3000000000001 253 326.3000000000001 256.9C326.3000000000001 260.9 326.2000000000001 264.9 326.3000000000001 268.9C326.3000000000001 270.3 325.9000000000001 270.9 324.5000000000001 271.1C317.5000000000001 272 310.6000000000001 273.3 303.6000000000001 274C296.6000000000001 274.6 289.6000000000001 274.3 282.8000000000001 272.1C276.1000000000001 269.9 271.1000000000001 265.9 269.1000000000001 259C267.5000000000001 253.6 267.5000000000001 248.2 269.2000000000001 242.8C270.8000000000002 237.3 274.4000000000001 233.6 279.6000000000001 231.6zM576 368V16C576 -10.5 554.5 -32 528 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H528C554.5 416 576 394.5 576 368zM368.5 344.1C368.9 342.4 369.4 340.7 370.1 339C386.6 298.4 403 257.7 419.6 217.1C421 213.6 421.3 210.7 419.8 207.2C417 201 414.9000000000001 194.6 412 188.5C409.4 183 405.3 179 399.3 177.3C395.1 176.2 390.8 176 386.4000000000001 176.4C384.3 176.6 382.2000000000001 177.1 380.1 177.2000000000001C377.3 177.4 375.9000000000001 176.1 375.8 173.2000000000001C375.7 170.4 375.7 167.6 375.8 164.9C375.9000000000001 160.3 377.4000000000001 158.2000000000001 382 157.4C386.7 156.6 391.4 155.8 396.2 155.7000000000001C410.5 155.4 421.9 161.1 429.3 173.6C432.2 178.5 434.9000000000001 183.7000000000001 437 189C456.8 239.1 476.5 289.3 496.2 339.5C496.8 341 497.3 342.5 497.5 344.1C497.9 346.5 496.8 347.7 494.4 347.8C488.8 347.9 483.3 347.8 477.7 347.8C474.6 347.8 472.4 346.4 471.3 343.5C470.9 342.4 470.4 341.2 470 340.1L440.9 256.4C438.8 250.3 436.7 244.3 434.4 237.8C434 238.7 433.8 239.2 433.6 239.7C422.8 269.6 412 299.6 401.2 329.5C399.5 334.2 397.7 339 395.9 343.7C395 346.2 393.2 347.7 390.5 347.7C384.1 347.8 377.7 347.9 371.3 347.8C369.1 347.8 368 346.2 368.5 344.1zM242.4 242C244.1 230.3 250 221.2 260.4 215.4C270.3 209.9 281.1 209.2 292.1 210.8C304.8 212.7 316 218.1 325.9 226.3C326.3 226.6 326.7 226.9 327.3 227.3C327.8 224.1 328.2 221.1 328.8 218.1C329.3 215.5 330.9 213.8 333.3 213.7C337.9 213.6 342.4 213.6 347 213.7C349.3 213.8 350.8 215.3 351 217.6C351.1 218.4 351.1 219.2 351.1 219.9V308.7000000000001C351.1 312.3000000000001 350.9 315.9000000000001 350.4 319.5000000000001C348.8 330.3000000000001 344.2 339.2000000000001 334.5 344.9000000000001C328.9 348.2000000000001 322.7 349.9000000000001 316.3 350.8000000000001C313.3 351.2000000000001 310.3 351.5000000000001 307.2 351.9000000000001H297.2C296.4 351.8000000000001 295.6 351.6000000000001 294.7 351.6000000000001C286.5 351.2000000000001 278.4 350.2000000000001 270.5 348.1000000000001C265.4 346.8000000000001 260.5 344.9000000000001 255.5 343.2000000000001C252.5 342.2000000000001 251 340.0000000000001 251.1 336.7000000000001C251.2 333.9000000000001 251 331.1000000000001 251.1 328.4000000000001C251.2 324.3000000000001 252.9 323.2000000000001 256.8 324.3000000000001C263.3 326.0000000000001 269.9000000000001 327.8000000000001 276.5 329.1000000000001C286.8 331.0000000000001 297.2 331.8000000000001 307.6 330.3000000000001C313 329.5000000000001 318.1 327.9000000000001 321.7000000000001 323.3000000000001C324.8000000000001 319.3000000000001 325.9000000000001 314.5000000000001 326.1 309.6000000000001C326.4000000000001 302.7000000000001 326.3 295.7000000000001 326.4000000000001 288.8000000000001C326.4000000000001 288.4000000000001 326.3 288.1000000000001 326.2000000000001 287.6000000000001C325.8000000000001 287.6000000000001 325.4000000000001 287.6000000000001 325.1 287.7000000000001C316.3 289.8000000000001 307.4000000000001 291.3000000000001 298.3 291.8000000000001C288.8 292.3000000000001 279.4000000000001 291.7000000000001 270.4000000000001 288.6000000000001C259.6 284.8000000000001 250.9000000000001 278.3000000000001 245.8000000000001 267.8000000000001C241.7000000000001 259.5000000000001 241.2000000000001 250.8000000000001 242.4000000000001 242.0000000000001zM98.7 341.1V165.8C98.7 165 98.7 164.1 98.8 163.3C99 160.8 100.5 159.1999999999999 102.9 159.1C108.8 159 114.7 159 120.6 159.1C123.1 159.1 124.6 160.8 124.7 163.2C124.8 164 124.8 164.9 124.8 165.7V226.4C125.7 225.7 126.2 225.2 126.7 224.8C141.7 212.3 158.9 208.2 177.8 211.9C194.9 215.3 206.7 225.8 214.5 241.1C220.3 252.7 222.8 265.2 223.2 278.1C223.7 292.4 222.2 306.5 216.4 319.8C209.3 336.2 197.5 347.1 179.7 350.7C177 351.3 174.2 351.5 171.5 351.9H164.5C163.3 351.7 162.1 351.6 160.9 351.4C149.2 350 138.6 345.6 129.1 338.7C127.1 337.3 125.2 335.7 123.2 334.2C123.1 334.7 122.9 335 122.8 335.4C122.4 337.7 122.1 340 121.7 342.3C121.1 346.2 119.2 347.8 115.3 347.9H105.6C99.7 348 98.7 346.9 98.7 341.1zM493.6 109C490.9 109.7 488.5 109 486 108C442.1 89.6 396.5 77.8 349.2 72.2C334.7 70.5 320.1 69.4 305.5 69C278.9 68.3 252.3 69.8 225.9 73.3C208.1 75.7 190.4 79 172.9 83.2C135.9 92.1 100.2 104.9 66.2 122C57.4 126.4 48.8 131.3 40.1 136C36.3 138.1 33.9 137.5 31.9 133.9V132.2C33.1 130.6 34.1 128.8 35.6 127.4C71.6 95.2 112.2 70.9 157.6 54.5C179.5 46.6 202 40.8 224.9 37C238.9 34.7 252.9 33.2 267.1 32.5C270.1 32.4 273.1 32.3 276.1 32.1C276.8 32.1 277.5 31.9 278.2 31.8H295.9C296.6 31.9 297.3 32.1 298 32.1C312.9 32.5 327.8 33.9 342.6 36.1C364 39.3 385 44.2 405.5 50.8C435.1 60.4 463.2 73.2 488.9 90.9C491.7 92.8 494.6 94.7000000000001 496.9 97.1C501.2 101.5 499.2 107.5 493.6 109zM544 136.7C543.2 140.9 540 142.5 536.4 143.7C530.6999999999999 145.6 524.8 146.5 518.8 147C507.8 147.9 496.8 147.4 485.9999999999999 145.4C473.9999999999999 143.2 462.6 139.3 452.4999999999999 132.3C451.3 131.5 450.1 130.5 449.3999999999999 129.3C448.7999999999999 128.4 448.7 127 448.8999999999999 125.9C449.2 124.6 450.5999999999999 124.3 451.8999999999999 124.4C452.4999999999999 124.4 453.0999999999999 124.4 453.6999999999999 124.5L473.1999999999999 126.6C482.8 127.5 492.3999999999999 128.1 501.9999999999999 127.4C506.1 127.1 510.1 126.2000000000001 514 125.2000000000001C518.3 124.1 520.2 120.8000000000001 520.4 116.5000000000001C520.6999999999999 109.8000000000001 519.1999999999999 103.4 517.5 97.0000000000001C514 84.1000000000001 509.2 71.6000000000001 504.2 59.2000000000001C503.9 58.4 503.5 57.5000000000001 503.4 56.7000000000001C503 54.2 504.4 52.7 506.8 53.2C508.1999999999999 53.5000000000001 509.8 54.3000000000001 510.8 55.3000000000001C514.5 58.9000000000001 518.3 62.5000000000001 521.4 66.5000000000001C532.1 80.3000000000001 538.4 96.1000000000001 542.1 113.1000000000001C542.8000000000001 116.1000000000001 543.3000000000001 119.2000000000001 543.8000000000001 122.2000000000001C544.0000000000001 126.9000000000001 544.0000000000001 131.8000000000001 544.0000000000001 136.7000000000001z" />
142
+ <glyph glyph-name="cc-amex"
143
+ unicode="&#xF1F3;"
144
+ horiz-adv-x="576" d=" M576 192.6C538.1 192.8 531.8 193.5 521.5 187.6V192.6C476.2 192.6 468 194.3 456.6 187.4V192.6H378.4000000000001V187.5C367.0000000000001 194 357.0000000000001 192.6 302.7000000000001 192.6V187C296.4000000000001 190.7 288.2000000000001 192.6 278.4000000000001 192.6H220.4C216.9 188.8 207.9 178.9 204.7000000000001 175.4C192.0000000000001 189.5 194.2000000000001 187 189.2000000000001 192.6H106.1000000000001V100.3H188.1000000000001C191.4000000000001 103.8 201.0000000000001 114.1999999999999 204.2000000000001 117.6999999999999C216.9 103.3999999999999 214.5000000000001 105.9999999999999 219.6000000000001 100.3H268.5000000000001C268.5000000000001 115 268.6000000000001 108.6 268.6000000000001 123.3C280.1000000000001 123.1 292.9000000000001 123.5 302.9000000000001 129.5C302.9000000000001 115.6 302.8000000000001 112.3999999999999 302.8000000000001 100.3H342.4000000000001C342.4000000000001 118.8 342.5000000000001 107.6999999999999 342.5000000000001 125.6C348.7000000000001 125.6 350.2000000000001 125.6 351.9000000000001 125.5C352.0000000000001 124.1999999999999 351.9000000000001 125.5 351.9000000000001 100.3C504.7000000000001 100.3 497.8000000000001 99.1999999999999 508.6000000000001 104.8V100.3C543.4000000000001 100.3 563.4000000000001 98.1 576.1000000000001 106.4V16C576.1000000000001 -10.5 554.6000000000001 -32 528.1000000000001 -32H48C21.5 -32 0 -10.5 0 16V219.7H26.6C30.8 229.8 28.8 225 33 235H52.2C56.4 225 54.4 229.8 58.6 219.7H111.5V231.1C113.7 226.1 112.6 228.6 116.6 219.7H146.1C148.5 225.2 148.7 225.5 151.2 231.1V219.7H286.7V244.8C293.1 244.8 294.7 244.9 296.5 244.6C296.5 244.6 296.3 233.7 296.6 219.8H363.1V228.7C370.5 222.8 380.5 219.8 392.8 219.8H419.6C423.8 229.9 421.8 225.1 426 235.1H445C451.5 220.1 445.2 234.6 451.6 219.8H504.4V241.7C516.2 222 512.2 228.8 517.6 219.8H559.2V311.8H519.3000000000001V293.4C507.1000000000001 313.6 513.0000000000001 303.8 508.1000000000001 311.8H464.8000000000001V291.2C458.6000000000001 305.8 460.2 302 456.0000000000001 311.8H423.6000000000001C423.2000000000001 311.8 421.3000000000001 311.6 421.3000000000001 312.1H393.7000000000001C380.9000000000001 312.1 370.6 308.9 363.0000000000001 302.8V312.1H323.1000000000001V306.8C312.3000000000001 312.9 302.4000000000001 311.9 258.7000000000001 312.1C258.6 312.1 247.1000000000001 312.2 247.1000000000001 312.1H144.1000000000001C141.6000000000001 306 137.3000000000001 295.7 131.5000000000001 282.1C128.7000000000001 288.1 120.5000000000001 305.9 117.6000000000001 312.1H71.6000000000001V291C64.2000000000001 308.4 66.9000000000001 302 62.6000000000001 312.1H22.9C19.5 304.2 9.2 280.1 -0.2 258.2V368C-0.2 394.5 21.3 416 47.8 416H527.8C554.3 416 575.8 394.5 575.8 368V192.6zM389.4 273.2C389.1 273 388 271 388 265.6C388 259.6 388.9 257.9 389.1 257.7C389.3 257.6 390.2000000000001 257.2 392.5 257.2L399.8 274.1C398.7 274.1 397.7 274.2 396.7 274.2C391.1 274.2 389.7 273.5 389.4 273.2zM369.5 142.3C378.7 139 380.5 132.8 380.5 123.9L380.4 110.1H363.8L363.9 121.6C363.9 133.4 360.1 135.4 349.1 135.4H331.5L331.3999999999999 110.1H314.7999999999999L314.8999999999999 179.4H354.2999999999999C367.2999999999999 179.4 381.3999999999999 177.1 381.3999999999999 160.7C381.2999999999999 153.1 377.2 145.4 369.5 142.3zM363.2 157.6999999999999C363.2 164.0999999999999 357.6 165.0999999999999 352.5 165.0999999999999H331.5V149.4999999999999H352.2C357.8 149.4999999999999 363.2 150.7999999999999 363.2 157.6999999999999zM544.9 164.8H575V179.4H542.1C529.3000000000001 179.4 518.3000000000001 172.8 518.3000000000001 158.7C518.3000000000001 125.7 561.0000000000001 145.9 561.0000000000001 131.3C561.0000000000001 126.2 556.7000000000002 124.9 552.6000000000001 124.9H520.6000000000001L520.5000000000001 110.1H552.5000000000001C560.9000000000001 110.1 570.1000000000001 111.9 575.0000000000001 119V144.8C564.5000000000001 158.6 535.7000000000002 146.1 535.7000000000002 158.3C535.7000000000002 164.1 540.3000000000002 164.8 544.9000000000002 164.8zM445.7 165.1V179.4H390.5L390.4 110.1H445.6L445.7 124.4L407.1 124.7V138.5H445V152.6H407.2V165.1H445.7zM487.9 125H455.7L455.6 110.1999999999999H487.8C502.6 110.1999999999999 514 115.8 514 132.1999999999999C514 165.3999999999999 471.1 143.3999999999999 471.1 158.5C471.1 164.1 476 164.8999999999999 480.3 164.8999999999999H510.7V179.5H477.5C464.7 179.5 454 172.8999999999999 454 158.8C454 125.8 496.7 146.3 496.7 131.4C496.6 126 492 125 487.9 125zM409.8 283.7C392.4 284 376.6 287.8 376.6 264C376.6 252.2 379.4 244.1 392.7 244.1H400.1L423.6 298.5999999999999H448.4L476.3 233.2V298.5999999999999H501.6L530.6999999999999 250.5V298.5999999999999H547.5999999999999V229.6H524L492.8 281.5V229.6H459.1L452.5 244.9H418.2L411.8 229.6H392.6C369.8 229.6 359.6 241.4 359.6 263.5999999999999C359.6 286.9 370.1 298.8999999999999 393.6 298.8999999999999H409.7000000000001V283.7zM424.1 259.2H446.9L435.7 286.8L424.1 259.2zM351.5 298.8H334.6V229.5H351.5V298.8zM313.4 261.5C322.9 258.2 324.4 252.3 324.4 243.1V229.6H307.8C307.5 244.4 311.4 254.7 293 254.7H275V229.6H258.6V298.8999999999999L297.7 298.5999999999999C311 298.5999999999999 325.1 296.5999999999999 325.1 280.2C325.2 272.2 320.8 264.4999999999999 313.4 261.4999999999999zM306.7 276.8C306.7 283.2 301.1 284.2 296 284.2H275V268.9H295.7C301.4 268.9 306.7 270.2 306.7 276.8zM247.2 284.2V298.8H191.7V229.5H247.2V243.8H208.3V257.6H246.1V271.7H208.3V284.2H247.2zM162.6 229.5V283.7L138.6 229.5H124L100 283.7V229.5H66.2L59.8 244.8H25.3L18.9 229.5H1L30.7 298.8H55.2L83.3 233.1V298.8H110.4L132.1 251.8L151.8 298.8H179.4V229.5H162.6zM53.9 259.2L42.4 286.8L31.2 259.2H53.9zM306.9 156.7C306.9 128.8 276.5 133.4 257.6 133.4L257.5 110.1H225.3L204.9 133.1L183.5999999999999 110.1H118.1999999999999L118.2999999999999 179.4H184.7999999999999L205.2999999999999 156.6L226.3 179.4H279C294.6 179.4 306.9 174 306.9 156.7zM194.2 144.9L176.3 165.1H134.6V152.6H170.9V138.5H134.6V124.6999999999999H175.2L194.2 144.8999999999999zM241 172L215.7 144.6L241 116.5V172zM289.3 156.7C289.3 162.8 284.7 165.1 279.1 165.1H257.6V147.5H278.8C284.7 147.5 289.3 150.3 289.3 156.6999999999999z" />
145
+ <glyph glyph-name="cc-apple-pay"
146
+ unicode="&#xF416;"
147
+ horiz-adv-x="576" d=" M302.2 229.6C302.2 212.4 291.7 202.5 273.2 202.5H248.9V256.7H273.3C291.7 256.7 302.2 246.9 302.2 229.6zM349.7 167C349.7 158.7 356.9 153.3 368.2 153.3C382.6 153.3 393.4 162.4 393.4 175.2V182.9L369.9 181.4C356.6 180.5 349.7 175.6 349.7 167zM576 369V17C576 -9.5 554.5 -31 528 -31H48C21.5 -31 0 -9.5 0 17V369C0 395.5 21.5 417 48 417H528C554.5 417 576 395.5 576 369zM127.8 250.8C136.2 250.1 144.6 255 149.9 261.2000000000001C155.1 267.6 158.5 276.2000000000001 157.6 284.9C150.2 284.6 141 280 135.7 273.6C130.9 268.1 126.8 259.2 127.8 250.8zM188.4 176.3C188.2 176.5 168.8 183.9 168.6 206.3C168.4 225 183.9 234 184.6 234.5C175.8 247.5 162.2 248.9 157.5 249.2C145.3 249.9 134.9 242.3 129.1 242.3C123.2 242.3 114.4 248.9 104.8 248.7C92.3 248.5 80.6 241.4 74.3 230.1C61.2 207.5 70.9 174.1 83.6 155.7C89.8 146.6 97.3 136.6 107.1 137C116.4 137.4 120.1 143 131.3 143C142.6 143 145.8 137 155.6 137.1C165.8 137.3 172.1 146.2000000000001 178.4 155.3C185.3 165.7 188.2 175.7 188.4 176.3zM323.8 229.7C323.8 256.3 305.3 274.5 278.9000000000001 274.5H227.7000000000001V138.1H248.9000000000001V184.7000000000001H278.2000000000001C305.0000000000001 184.7000000000001 323.8000000000001 203.1000000000001 323.8000000000001 229.7000000000001zM413.8 206C413.8 225.7 398 238.4000000000001 373.8 238.4000000000001C351.3 238.4000000000001 334.7 225.5000000000001 334.1 207.9H353.2000000000001C354.8000000000001 216.3000000000001 362.6 221.8000000000001 373.2000000000001 221.8000000000001C386.2000000000001 221.8000000000001 393.4000000000001 215.8000000000001 393.4000000000001 204.6000000000001V197.1000000000001L367.0000000000001 195.5000000000001C342.4000000000001 194.0000000000001 329.1000000000001 183.9 329.1000000000001 166.4C329.1000000000001 148.7000000000001 342.8000000000001 137.0000000000001 362.5000000000001 137.0000000000001C375.8000000000001 137.0000000000001 388.1000000000001 143.7000000000001 393.7000000000001 154.4H394.1V138H413.7000000000001V206zM516 237.1H494.5L469.6 156.5H469.2L444.3000000000001 237.1H422L457.9 137.8L456 131.8C452.8 121.6 447.5 117.6 438.1 117.6C436.4000000000001 117.6 433.2000000000001 117.8 431.9000000000001 117.9V101.5000000000001C433.1 101.1000000000001 438.4000000000001 101.0000000000001 440.0000000000001 101.0000000000001C460.7 101.0000000000001 470.4 108.9 478.9 132.8000000000001L516 237.1z" />
148
+ <glyph glyph-name="cc-diners-club"
149
+ unicode="&#xF24C;"
150
+ horiz-adv-x="576" d=" M239.7 368.1C142.8 368.1 63.9 289.5 63.9 192.3C63.9 95.4 142.8 16.5 239.7 16.5C336.9 16.5 415.5 95.4 415.5 192.3C415.5 289.5 336.9 368.1 239.7 368.1zM199.8 88.5C158.1 104.4 128.4 144.9 128.4 192.3S158.1 280.2000000000001 199.8 296.4V88.5zM279.6 88.2V296.4C321.3 280.2000000000001 351 239.7 351 192.3S321.3 104.4 279.6 88.2000000000001zM528 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H528C554.5 -32 576 -10.5 576 16V368C576 394.5 554.5 416 528 416zM329.7 0H239.4C133.2 0 45.6 85.5 45.6 190.2C45.6 304.8 133.2 384 239.4 384H329.7C434.7 384 530.4 304.8 530.4 190.2C530.4 85.5 434.7 0 329.7 0z" />
151
+ <glyph glyph-name="cc-discover"
152
+ unicode="&#xF1F2;"
153
+ horiz-adv-x="576" d=" M83 235.9C83 228 79.8 220.4 74.1 215.2C69.2 210.8 62.5 208.8 52.2 208.8H48V263H52.2C62.5 263 68.9 261.3 74.1 256.4C79.8 251.4 83 243.8 83 235.9zM504.8 264H499.9V239.1H504.6C514.9 239.1 520.4 243.5 520.4 251.9C520.4 259.8 514.9 264 504.8 264zM576 368V16C576 -10.5 554.5 -32 528 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H528C554.5 416 576 394.5 576 368zM428 195H473.3V208.8H444V231H472.3V244.8H444V263H473.3V277H428V195zM341.8 277L376.8 192.8H385.4000000000001L420.9000000000001 277H403.4000000000001L381.2000000000001 221.8L359.3000000000001 277H341.8000000000001zM258.8 235.4C258.8 210.8 278.7 190.8 303.4000000000001 190.8C328.0000000000001 190.8 348.0000000000001 210.7 348.0000000000001 235.4C348.0000000000001 260 328.1000000000001 280 303.4000000000001 280C278.8 280 258.8 260.1 258.8 235.4zM190.8 235.9C190.8 203.4 224.4 183.4 254.1 197.7V216.7C234.8 197.4 207.3 210.9 207.3 235.9C207.3 259.6 234 275 254.1 254.9V273.9C223.9 288.9 190.8 267.1 190.8 235.9zM156.9 207.6C149.3 207.6 143.1 211.3 139.4 218.4L129.1 208.5C146.9 182.4 185.7 190.3 185.7 219.8C185.7 232.9 180.3 238.8 162.1 245.4C152.5 248.8 149.8 251.3 149.8 255.7C149.8 264.4 164.3 269.8 174.7 258.2000000000001L183.1 269C164 286.1 133.4 277.9000000000001 133.4 254.7C133.4 243.4 138.6 237.5000000000001 153.6 232.0000000000001C179.3 222.9 168.3 207.6 156.9 207.6zM99.5 235.9C99.5 260 81.5 277 55.4 277H32V195H55.4C86.3 195 99.5 217.4 99.5 235.9zM122.9 277H106.9V195H122.9V277zM544 160C510.7 139.2 317.6 35.6 128 0H529C537.2 0 544 6.8 544 15V160zM544 195L518.1 229.5C530.2 232 536.8000000000001 240.1 536.8000000000001 252.7C536.8000000000001 281.2 506.5000000000001 277.1 483.9000000000001 277.1V195.1H499.9000000000001V227.9H502.1000000000001L524.3000000000001 195.1H544z" />
154
+ <glyph glyph-name="cc-jcb"
155
+ unicode="&#xF24B;"
156
+ horiz-adv-x="576" d=" M431.5 203.7V236C472.7 236 470 235.8 470 235.8C477.3 234.5 483.3 228.5 483.3 219.8C483.3 211 477.3 205.3 470 204C468.8 203.6 466.7 203.7 431.5 203.7zM474.3 183.5C471.5 184.2 471 184 431.5 184V149C471.1 149 471.5 148.8 474.3 149.5C481.8 151 487.8 157.5 487.8 166.5C487.8 175.2 481.8 182 474.3 183.5zM576 368V16C576 -10.5 554.5 -32 528 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H528C554.5 416 576 394.5 576 368zM182 255.7H125C125 188.6 135.7 146 89.2 146C69.7 146 50.4 151.7 32 160.8V132.8C62 124.5 100 124.5 100 124.5C197.9 124.5 182 172.2 182 255.7zM360.5 251.2C297.1 267.2 195.5 266.1 195.5 191.9C195.5 114.8 303.7 118.3 360.5 132.7V161C312.9 136.3 253 139 253 192S312.8 247.6 360.5 223.2V251.2zM544 161.5C544 180 527.5 192 506 193.5V194.3C525.5 197 536.3 209.8 536.3 224.5C536.3 243.5 520.5999999999999 254.5 499.3 255.5C499.3 255.5 505.6 255.8 379 255.8V128.3H501.6999999999999C525.9999999999999 128.2 543.9999999999999 141.2 543.9999999999999 161.5z" />
157
+ <glyph glyph-name="cc-mastercard"
158
+ unicode="&#xF1F1;"
159
+ horiz-adv-x="576" d=" M482.9 37.7C482.9 30.9 478.3 26 471.7 26C464.9 26 460.5 31.2 460.5 37.7C460.5 44.2 464.9 49.4 471.7 49.4C478.3 49.4 482.9 44.2 482.9 37.7zM172.1 49.4C165 49.4 160.9 44.2 160.9 37.7C160.9 31.2 165 26 172.1 26C178.6 26 183 30.9 183 37.7C182.9 44.2 178.6 49.4 172.1 49.4zM289.6 49.7C284.2 49.7 280.9 46.2 280.1 41H299.2C298.3 46.7 294.8 49.7 289.6 49.7zM397.4 49.4C390.6 49.4 386.5 44.2 386.5 37.7C386.5 31.2 390.6 26 397.4 26C404.2 26 408.6 30.9 408.6 37.7C408.6 44.2 404.2 49.4 397.4 49.4zM503.3 23.3C503.3 22.9999999999999 503.6 22.8 503.6 22.1999999999999C503.6 21.8999999999999 503.3 21.6999999999999 503.3 21.0999999999999C502.9999999999999 20.7999999999999 502.9999999999999 20.5999999999999 502.8 20.2999999999999C502.4999999999999 19.9999999999999 502.3 19.7999999999999 501.6999999999999 19.7999999999999C501.3999999999999 19.4999999999999 501.1999999999999 19.4999999999999 500.5999999999999 19.4999999999999C500.2999999999999 19.4999999999999 500.0999999999999 19.4999999999999 499.4999999999999 19.7999999999999C499.1999999999999 19.7999999999999 498.9999999999999 20.0999999999999 498.6999999999999 20.2999999999999C498.3999999999999 20.5999999999999 498.1999999999999 20.7999999999999 498.1999999999999 21.0999999999999C497.8999999999999 21.5999999999999 497.8999999999999 21.8999999999999 497.8999999999999 22.1999999999999C497.8999999999999 22.6999999999999 497.8999999999999 22.9999999999999 498.1999999999999 23.3C498.1999999999999 23.8 498.4999999999999 24.1 498.6999999999999 24.4C498.9999999999999 24.7 499.1999999999999 24.7 499.4999999999999 24.9C499.9999999999999 25.2 500.2999999999999 25.2 500.5999999999999 25.2C501.0999999999999 25.2 501.3999999999999 25.2 501.6999999999999 24.9C502.1999999999999 24.6 502.4999999999999 24.6 502.8 24.4S502.9999999999999 23.8 503.3 23.3zM501.1 21.9C501.6 21.9 501.6 22.2 501.9 22.2C502.2 22.5 502.2 22.7 502.2 23C502.2 23.3 502.2 23.5 501.9 23.8C501.6 23.8 501.4 24.1 500.8 24.1H499.1999999999999V20.6H499.9999999999999V22H500.3L501.4 20.6H502.2L501.1 21.9zM576 367V15C576 -11.5 554.5 -33 528 -33H48C21.5 -33 0 -11.5 0 15V367C0 393.5 21.5 415 48 415H528C554.5 415 576 393.5 576 367zM64 227.4C64 150.9 126.1 88.9 202.5 88.9C229.7 88.9 256.4 97.1 279 112C206.1 171.3 206.6 283.2 279 342.5C256.4 357.5 229.7 365.6 202.5 365.6C126.1 365.7 64 303.6 64 227.4zM288 118.6C358.5 173.6 358.2 280.8 288 336.1C217.8 280.8 217.5 173.5 288 118.6zM145.7 42.3C145.7 51 140 56.7 131 57C126.4 57 121.5 55.6 118.2 50.5C115.8 54.6 111.7 57 106 57C102.2 57 98.4 55.6 95.4 51.6V56H87.2V19.3H95.4C95.4 38.2 92.9 49.5 104.4 49.5C114.6 49.5 112.6 39.3 112.6 19.3H120.5C120.5 37.6 118 49.5 129.5 49.5C139.7 49.5 137.7 39.5 137.7 19.3H145.9V42.3zM190.6 56H182.7V51.6C180 54.9 176.2 57 171 57C160.7 57 152.8 48.8 152.8 37.7C152.8 26.5 160.7 18.4 171 18.4C176.2 18.4 180 20.3 182.7 23.8V19.1999999999999H190.6V56zM231.1 30.4C231.1 45.4 208.2 38.6 208.2 45.6C208.2 51.3 220.1 50.4 226.7 46.7L230 53.2C220.6 59.3 199.8 59.2 199.8 45C199.8 30.7 222.7 36.7 222.7 30C222.7 23.7 209.2 24.2 202 29.2L198.5 22.9C209.7 15.3 231.1 16.9 231.1 30.4zM266.5 21.1L264.3 27.9C260.5 25.8 252.1 23.5 252.1 32V48.6H265.2000000000001V56H252.1000000000001V67.2H243.9000000000001V56H236.3000000000001V48.7H243.9000000000001V32C243.9000000000001 14.4 261.2000000000001 17.6 266.5000000000001 21.1zM279.8 34.4999999999999H307.3C307.3 50.6999999999999 299.9000000000001 57.1 289.9000000000001 57.1C279.3 57.1 271.7000000000001 49.2 271.7000000000001 37.8C271.7000000000001 17.3 294.3000000000001 13.9 305.5000000000001 23.6L301.7000000000001 29.6C293.9000000000001 23.2 282.1 23.8 279.8000000000001 34.4999999999999zM338.9000000000001 55.9999999999999C334.3 57.9999999999999 327.3 57.8 323.7000000000001 51.6V56H315.5000000000001V19.3H323.7000000000001V40C323.7000000000001 51.6 333.2000000000001 50.1 336.5000000000001 48.4L338.9000000000001 56zM349.5000000000001 37.6999999999999C349.5000000000001 49.0999999999999 361.1000000000001 52.8 370.2000000000001 46.0999999999999L374.0000000000001 52.5999999999999C362.4000000000001 61.6999999999999 341.3000000000001 56.6999999999999 341.3000000000001 37.5999999999999C341.3000000000001 17.7999999999999 363.7000000000001 13.7999999999999 374.0000000000001 22.5999999999999L370.2000000000001 29.0999999999999C361.0000000000001 22.5999999999999 349.5000000000001 26.4999999999999 349.5000000000001 37.6999999999999zM416.2000000000001 55.9999999999999H408V51.6C399.7 62.6 378.1 56.4 378.1 37.7C378.1 18.5 400.5 13 408 23.8V19.2H416.2V56zM449.9000000000001 55.9999999999999C447.5000000000001 57.1999999999999 438.9000000000001 58.8999999999999 434.7000000000001 51.6V56H426.8000000000001V19.3H434.7000000000001V40C434.7000000000001 51 443.7000000000001 50.3 447.5000000000001 48.4L449.9000000000001 56zM490.2 70.8999999999999H482.3000000000001V51.5999999999999C474.1000000000001 62.4999999999999 452.4000000000001 56.6999999999999 452.4000000000001 37.6999999999999C452.4000000000001 18.3 474.9000000000001 13.0999999999999 482.3000000000001 23.8V19.1999999999999H490.2V70.8999999999999zM497.8000000000001 145.9999999999999V141.3999999999999H498.6000000000001V146H500.5000000000001V146.8H495.9V146H497.8zM504.4000000000001 22.1999999999999C504.4000000000001 22.6999999999999 504.4000000000001 23.2999999999999 504.1000000000001 23.7999999999999C503.8000000000001 24.0999999999999 503.6000000000001 24.5999999999999 503.3000000000001 24.8999999999999C503.0000000000001 25.1999999999999 502.5000000000001 25.3999999999999 502.2 25.6999999999999C501.7 25.6999999999999 501.1 25.9999999999999 500.6 25.9999999999999C500.3 25.9999999999999 499.8 25.6999999999999 499.2 25.6999999999999C498.7 25.3999999999999 498.4 25.1999999999999 498.1 24.8999999999999C497.6 24.5999999999999 497.3 24.0999999999999 497.3 23.7999999999999C497 23.2999999999999 497 22.6999999999999 497 22.1999999999999C497 21.8999999999999 497 21.3999999999999 497.3 20.7999999999999C497.3 20.4999999999999 497.6 19.9999999999999 498.1 19.6999999999999C498.4 19.3999999999999 498.6 19.1999999999999 499.2 18.8999999999999C499.7 18.5999999999999 500.3000000000001 18.5999999999999 500.6 18.5999999999999C501.1 18.5999999999999 501.7 18.5999999999999 502.2 18.8999999999999C502.5000000000001 19.1999999999999 503.0000000000001 19.3999999999999 503.3000000000001 19.6999999999999C503.6000000000001 19.9999999999999 503.8000000000001 20.4999999999999 504.1000000000001 20.7999999999999C504.4000000000001 21.3999999999999 504.4000000000001 21.8999999999999 504.4000000000001 22.1999999999999zM507.6000000000001 146.8999999999999H506.2000000000001L504.6000000000001 143.3999999999999L503.0000000000001 146.8999999999999H501.6000000000001V141.4999999999999H502.4000000000001V145.5999999999999L504.0000000000001 142.0999999999999H505.1000000000001L506.5000000000001 145.5999999999999V141.4999999999999H507.6000000000001V146.8999999999999zM512.0000000000001 227.3999999999999C512.0000000000001 303.5999999999999 449.9000000000001 365.6999999999999 373.5000000000001 365.6999999999999C346.3000000000002 365.6999999999999 319.6000000000002 357.4999999999999 297.0000000000001 342.5999999999999C369.1000000000002 283.2999999999999 370.2000000000001 171.0999999999999 297.0000000000001 112.0999999999999C319.6000000000002 97.0999999999999 346.5000000000001 88.9999999999999 373.5000000000001 88.9999999999999C449.9000000000001 88.8999999999999 512.0000000000001 150.8999999999999 512.0000000000001 227.3999999999999z" />
160
+ <glyph glyph-name="cc-paypal"
161
+ unicode="&#xF1F4;"
162
+ horiz-adv-x="576" d=" M186.3 189.8C186.3 177.6 176.6 168.3 164.3 168.3C155.1 168.3 148.3 173.5 148.3 183.3C148.3 195.5 157.8 205.3 170 205.3C179.3 205.3 186.3 199.6 186.3 189.8zM80.5 238.3H75.8C74.3 238.3 72.8 237.3 72.6 235.6L68.3 208.9L76.5 209.2000000000001C87.5 209.2000000000001 96 210.7000000000001 98 223.4C100.3 236.8000000000001 91.8 238.3000000000001 80.5 238.3000000000001zM364.5 238.3H360C358.2 238.3 357 237.3 356.8 235.6L352.6 208.9L360.6 209.2000000000001C373.6 209.2000000000001 382.6 212.2000000000001 382.6 227.2000000000001C382.5 237.8000000000001 373 238.3000000000001 364.5 238.3000000000001zM576 368V16C576 -10.5 554.5 -32 528 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H528C554.5 416 576 394.5 576 368zM128.3 232.6C128.3 253.6 112.1 260.6 93.6 260.6H53.6C51.1 260.6 48.6 258.6 48.4 255.9L32 153.8C31.7 151.8 33.2 149.8 35.2 149.8H54.2C56.9 149.8 59.4 152.7 59.7 155.5L64.2 182.1C65.2 189.3 77.4 186.8 82.2 186.8C110.8 186.8 128.3 203.8 128.3 232.6zM212.5 223.8H193.5C189.7 223.8 189.5 218.3 189.3 215.6C183.5 224.1 175.1 225.6 165.6 225.6C141.1 225.6 122.4 204.1 122.4 180.4C122.4 160.9 134.6 148.2 154.1 148.2C163.1 148.2 174.3 153.1 180.6 160.1C180.1 158.6 179.6 155.4 179.6 153.9C179.6 151.6 180.6 149.9 182.8 149.9H200C202.7 149.9 205 152.8 205.5 155.6L215.7 219.9C216 221.8 214.5 223.8 212.5 223.8zM253 125.9L316.7 218.5C317.2 219 317.2 219.5 317.2 220.2C317.2 221.9 315.7 223.7 314 223.7H294.8C293.1 223.7 291.3 222.7 290.3 221.2L263.8 182.1999999999999L252.8 219.6999999999999C252 221.8999999999999 249.8 223.6999999999999 247.3 223.6999999999999H228.6C226.9000000000001 223.6999999999999 225.4000000000001 221.8999999999999 225.4000000000001 220.1999999999999C225.4000000000001 219 244.9000000000001 163.3999999999999 246.6 158.0999999999999C243.9000000000001 154.2999999999999 226.1 129.4999999999999 226.1 126.4999999999999C226.1 124.6999999999999 227.6 123.2999999999999 229.3 123.2999999999999H248.5C250.3 123.3999999999999 252 124.3999999999999 253 125.8999999999999zM412.3 232.6C412.3 253.6 396.1 260.6 377.6 260.6H337.9000000000001C335.2000000000001 260.6 332.7000000000001 258.6 332.4000000000001 255.9L316.2000000000001 153.9C316.0000000000001 151.9 317.5000000000001 149.9 319.4000000000001 149.9H339.9000000000001C341.9000000000001 149.9 343.4000000000001 151.4 343.9000000000001 153.1L348.4000000000001 182.1C349.4000000000001 189.3 361.6 186.8 366.4000000000001 186.8C394.8 186.8 412.3 203.8 412.3 232.6zM496.5 223.8H477.5C473.7 223.8 473.5 218.3 473.2 215.6C467.7 224.1 459.2 225.6 449.5 225.6C425 225.6 406.3 204.1 406.3 180.4C406.3 160.9 418.5 148.2 438 148.2C447.3 148.2 458.5 153.1 464.5 160.1C464.2 158.6 463.5 155.4 463.5 153.9C463.5 151.6 464.5 149.9 466.7 149.9H484C486.7 149.9 489 152.8 489.5 155.6L499.7 219.9C500 221.8 498.5 223.8 496.5 223.8zM544 257.1C544 259.1 542.5 260.6 540.8 260.6H522.3C520.8 260.6 519.3 259.4 519.0999999999999 257.9L502.8999999999999 153.9L502.5999999999999 153.4C502.5999999999999 151.6 504.0999999999999 149.9 506.0999999999999 149.9H522.5999999999999C525.0999999999999 149.9 527.5999999999999 152.8 527.8 155.6L544 256.8V257.1zM454 205.3C441.8 205.3 432.3 195.6 432.3 183.3C432.3 173.6 439.3 168.3 448.5 168.3C460.5 168.3 470.2 177.5 470.2 189.8C470.3 199.6 463.3 205.3 454 205.3z" />
163
+ <glyph glyph-name="cc-stripe"
164
+ unicode="&#xF1F5;"
165
+ horiz-adv-x="576" d=" M396.9 191.5C396.9 172.4 388.1 158.1 375 158.1C366.7 158.1 361.7 161.1 358.2 164.8L358 217.6C361.7 221.7 366.8 224.6 375 224.6C387.9 224.7 396.9 210.1 396.9 191.5zM576 368V16C576 -10.5 554.5 -32 528 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H528C554.5 416 576 394.5 576 368zM122.2 166.9C122.2 209.2 67.9 201.6 67.9 217.6C67.9 223.1 72.5 225.3 80 225.3C90.8 225.3 104.5 222 115.3 216.2V249.6C103.5 254.3 91.8 256.1 80 256.1C51.2 256.1 32 241.1 32 215.9C32 176.6 86 183 86 166C86 159.4 80.3 157.3 72.4 157.3C60.6 157.3 45.5 162.2 33.5 168.6V134.7000000000001C46.7 129.0000000000001 60.1 126.6 72.3 126.6C101.9 126.8 122.2 141.3 122.2 166.9zM191.1 253.8H164.1V284.6L129.4 277.2L129.2000000000001 163.3C129.2000000000001 142.3 145.0000000000001 126.8 166.1000000000001 126.8C177.7000000000001 126.8 186.3000000000001 128.9 191.0000000000001 131.5V160.3999999999999C186.5000000000001 158.5999999999999 164.0000000000001 152.0999999999999 164.0000000000001 173V223.5H191.0000000000001V253.8zM264.9000000000001 253.8C260.2000000000001 255.5 243.6 258.6 235.3000000000001 243.3L233.1000000000001 253.8H202.4000000000001V129.3H237.9000000000001V213.7C246.3000000000001 224.7 260.5000000000001 222.6 265.0000000000001 221.1V253.8zM309.1 253.8H273.4000000000001V129.3H309.1V253.8zM309.1 301.1L273.4000000000001 293.5V264.6L309.1 272.2V301.1zM431.8 192.3C431.8 233.6 408.3 256.1 383.4000000000001 256.1C369.5000000000001 256.1 360.5000000000001 249.5 355.6 245L353.8 253.8H322.5V88L358 95.5L358.1 135.7C363.2000000000001 132 370.8 126.7 383.2000000000001 126.7C408.6 126.8 431.8000000000001 147.2 431.8000000000001 192.3zM544 191.1C544 227.5 526.4 256.2 492.7 256.2C458.9 256.2 438.4 227.5 438.4 191.3C438.4 148.5 462.6 126.8 497.2 126.8C514.2 126.8 526.9 130.6999999999999 536.6 136V164.6C526.9 159.7 515.8000000000001 156.7 501.7 156.7C487.9 156.7 475.7 161.6 474.1 178.2H543.6C543.7 180.2 544 187.6 544 191.1zM492.4 227.2C483.5 227.2 473.7 220.5 473.7 204.5H510.4C510.4 220.5 501.1 227.2 492.4 227.2z" />
166
+ <glyph glyph-name="cc-visa"
167
+ unicode="&#xF1F0;"
168
+ horiz-adv-x="576" d=" M470.1 216.7S477.7 179.5 479.4 171.7H446C449.3 180.6 462 215.2 462 215.2C461.8 214.9 465.3 224.3 467.3 230.1L470.1 216.7zM576 368V16C576 -10.5 554.5 -32 528 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H528C554.5 416 576 394.5 576 368zM152.5 116.8L215.7 272H173.2L133.9 166L129.6 187.5L115.6 258.9C113.3 268.8 106.2 271.6 97.4 272H32.7L32 268.9C47.8 264.9 61.9 259.1 74.2 251.8L110 116.8H152.5zM246.9 116.6L272.1 272H231.9000000000001L206.8000000000001 116.6H246.9000000000001zM386.8 167.4C387 185.1 376.2 198.6 353.1 209.7000000000001C339 216.8000000000001 330.4000000000001 221.6000000000001 330.4000000000001 228.9000000000001C330.6 235.5000000000001 337.7000000000001 242.3000000000001 353.5000000000001 242.3000000000001C366.6000000000001 242.6000000000001 376.2000000000001 239.5000000000001 383.4000000000001 236.4000000000001L387.0000000000001 234.7000000000001L392.5000000000001 268.3000000000001C384.6000000000001 271.4000000000001 372.0000000000001 274.9000000000001 356.5000000000001 274.9000000000001C316.8000000000001 274.9000000000001 288.9000000000001 253.7000000000001 288.7000000000001 223.5C288.4000000000001 201.2 308.7000000000001 188.8 323.9000000000001 181.3C339.4000000000001 173.7 344.7000000000001 168.7 344.7000000000001 162C344.5000000000001 151.6 332.1 146.8 320.6 146.8C304.6 146.8 296 149.3 282.9000000000001 155.1L277.6 157.6L272 122.7000000000001C281.4 118.4 298.8 114.6 316.8 114.4C359 114.3 386.5 135.2000000000001 386.8 167.4zM528 116.6L495.6 272H464.5C454.9 272 447.6 269.2 443.5 259.1L383.8 116.6H426S432.9 135.8 434.4 139.9H486C487.2 134.4 490.8 116.6 490.8 116.6H528z" />
169
+ <glyph glyph-name="centercode"
170
+ unicode="&#xF380;"
171
+ horiz-adv-x="512" d=" M329.2 179.4C325.4 144.2 293.8 118.8 258.6 122.6C223.4 126.4 198 158 201.8 193.2C205.6 228.4 237.2 253.8 272.4 250C307.5 246.2 333 214.5999999999999 329.2 179.4zM243.4 -55.7C96.7 -48 -8.2 82.5 10.1 223.7C21.3 310.3 75.9 380.6 149.2 415.7C310.2 492.8 498.9 378.3 503.9 199.1C508 52.1 385.5 -63.1 243.4 -55.7zM423.3 124.3C451.1999999999999 242.3 262.8 330.2 186.1 358.5C128.6 302.2 117 169.9 152.3 14.1C221.1 -1.7 321.4 40.4999999999999 423.3 124.3z" />
172
+ <glyph glyph-name="chrome"
173
+ unicode="&#xF268;"
174
+ horiz-adv-x="496" d=" M131.5 230.5L55.1 347.9C102.7 407.1 174.1 439.7 247.1 440C289.4 440.3 332.6 429.5 371.9 406.8C415.3 381.6 448.3 345.4 469.3 303.8L264 314.6C205.9 318 150.6 285.3 131.5 230.5zM164.4 192C164.4 145.8 201.8 108.4 248 108.4S331.6 145.8 331.6 192S294.2000000000001 275.6 248.0000000000001 275.6S164.4 238.3 164.4 192zM479.3 281.2L339.6 274C377.5 229.7 378.1 165.8 346.2000000000001 116.8L234.1 -55.6C280.6 -58.1 328.5 -47.9 371.9 -22.7C479.3 39.3 522.8 169.3 479.3 281.2zM133.7 144.4L40.4 327.9C14.9 288.9 0 242.1 0 192C0 68 90.8 -34.7 209.5 -52.9L273.2 71.9C215.6 61.1 160 92.7000000000001 133.7 144.4z" />
175
+ <glyph glyph-name="cloudscale"
176
+ unicode="&#xF383;"
177
+ horiz-adv-x="448" d=" M318.1 294L308.7000000000001 286.4C286.2000000000001 305.7000000000001 257.2000000000001 320 225.4000000000001 320C153.8 320 96 259.2 96 187.7C96 181.1 96.4 174.6 97.4 168.3C95.4 224.3 139.2 265.7000000000001 190 265.7000000000001C214.2 265.7000000000001 236.2 256.3 252.6 241.0000000000001L227.4 220.6C219.1 221.5 210.6 218.8 204.3 212.5C193.2 201.5 193.2 183.6 204.3 172.5C215.4 161.5 233.2 161.5 244.3 172.5C250.6 178.8 253.3 187.4 252.4 195.6L327.6 284.4C333.9000000000001 290.9 324.3 300.3 318.1 294zM234.3 182.5C228.7 177 219.7 177 214.1 182.5C208.5 188.1 208.5 197.1 214.1 202.7S228.7 208.3 234.3 202.7S239.9 188 234.3 182.5zM224 416C100.5 416 0 315.5 0 192S100.5 -32 224 -32S448 68.5 448 192S347.5 416 224 416zM224 32C135.8 32 64 103.8 64 192S135.8 352 224 352S384 280.2 384 192S312.2 32 224 32z" />
178
+ <glyph glyph-name="cloudsmith"
179
+ unicode="&#xF384;"
180
+ horiz-adv-x="332" d=" M332.5 28.1C332.5 -18.3 294.9 -56 248.5 -56S164.5 -18.3 164.5 28.1S202.1 112.1 248.5 112.1S332.5 74.5 332.5 28.1zM248.5 272C294.9 272 328.5 309.6 328.5 356S294.9 440 248.5 440S160.5 402.4000000000001 160.5 356S130.9 280 84.5 280S0.5 238.4000000000001 0.5 192S38.1 112 84.5 112S168.5 145.6 168.5 192S202.1 272 248.5 272z" />
181
+ <glyph glyph-name="cloudversify"
182
+ unicode="&#xF385;"
183
+ horiz-adv-x="616" d=" M148.6 144C156.8 75.5 216 28.5 294.6 32.7C345.8 -10.6 431.4000000000001 -13.1 481 38.3C550.2 37.2 599.5 82.9 612.5 137.8C627.3 200.3 594.3 270.3 520.4 292.9C487.4 381 389 394.4 333.9 377.9C276.6 360.6 249.6 324.7 234.6 268.2C226.8 265.5 208.1 259.3 189.6 244.1C201.3 244.1 204.8 235.2 204.8 224.6V204.2C204.8 193.5 196.1 184.7 185.3 184.7H165.1C154.4 184.7 145.6 190.7 145.6 201.4V208H98.8C95 208 88 203.7 88 196.1V155.7C88 149.3 93.3 143.9 99.7 143.9H148.6zM376 136C365.3 89.7 397.7 63.6 431.3 49.2C324.1 15.4 259.7 100 296 160C262.8 138.4 262.3 88.8 266.8 67.1C248.9 79.5 213 99.5 209.4 146.9C206.4 186.8 230.9 222.6 266.4 240.8000000000001C297 256.6 369.9 249.3 400 200C385.9 248 346.2 270.1 298.2 274.8C329.1 305.5 362.6 325.1 412.4 318.5C482.2 309.2 545.5999999999999 235.7 480.1 168C515.0999999999999 184.3 528.8 222.4 527.5999999999999 244.9L538.0999999999999 225.3C549.8999999999999 203.3 553.3 177.7 547.4999999999999 153.3C538.2999999999998 114.3 506.8999999999999 84.5 467.7999999999999 76.8C435.6999999999999 70.5 384.7 81.9 375.9999999999999 136zM128 240H88.2C79.3 240 72 247.3 72 256.2V295.8C72 304.7 79.3 312 88.2 312H128C136.9 312 144.2 304.7 144.2 295.8V256.2C144.2 247.3 136.9 240 128 240zM10.1 280C4.5 280 0 284.5 0 290.1V317.9C0 323.5 4.5 328 10.1 328H37.8C43.3 328 47.9 323.5 47.9 317.9V290.1C47.9 284.5 43.4 280 37.8 280H10.1zM168 305.3V326.7000000000001C168 331.8 172.2 336 177.3 336H198.7C203.8 336 208 331.8 208 326.7000000000001V305.3C208 300.2000000000001 203.8000000000001 296 198.7 296H177.3C172.2 296 168 300.2 168 305.3zM56 212.5V187.5C56 181.2 50.9 176 44.6 176H19.4C13.1 176 8 181.2 8 187.5V212.5C8 218.8 13.1 224 19.4 224H44.5C50.9 224 56 218.8 56 212.5z" />
184
+ <glyph glyph-name="codepen"
185
+ unicode="&#xF1CB;"
186
+ horiz-adv-x="512" d=" M502.285 288.296L268.2850000000001 444.296C260.298 449.211 251.7740000000001 449.256 243.7140000000001 444.296L9.714 288.296C3.714 284.2970000000001 0 277.153 0 270.011V114.012C0 106.869 3.714 99.726 9.715 95.726L243.715 -60.296C251.702 -65.211 260.226 -65.256 268.286 -60.296L502.286 95.726C508.286 99.725 512.001 106.869 512.001 114.012V270.011C512 277.153 508.286 284.2970000000001 502.285 288.296zM278 384.8690000000001L450.286 270.011L373.429 218.582L278 282.2970000000001V384.8690000000001zM234 384.8690000000001V282.2970000000001L138.571 218.582L61.714 270.011L234 384.8690000000001zM44 228.868L99.143 192.011L44 155.154V228.868zM234 -0.847L61.714 114.011L138.571 165.4400000000001L234 101.725V-0.847zM256 140.011L178.285 192.011L256 244.011L333.7150000000001 192.011L256 140.011zM278 -0.847V101.725L373.429 165.4400000000001L450.286 114.0110000000001L278 -0.847zM468 155.154L412.857 192.011L468 228.868V155.154z" />
187
+ <glyph glyph-name="codiepie"
188
+ unicode="&#xF284;"
189
+ horiz-adv-x="472" d=" M422.5 245.1C453.2 245.1 456 192 422.2 192H411.4V147.7H384.8V245.1H422.5zM472 95.4C429.9 3.5 350.4 -56 248 -56C111 -56 0 55 0 192S111 440 248 440C345.4 440 420.8 386.3 466.2 301.6L280.2 192.8L472 95.4zM433.5 82.9L373.2 113.6C346.1 69.3 302.8 42.1999999999999 250.8 42.1999999999999C168.3 42.1999999999999 101.6 108.8999999999999 101.6 191.0999999999999C101.6 273.5999999999999 168.3 340.2999999999999 250.8 340.2999999999999C299.2 340.2999999999999 339.7 316.7999999999999 367.7 276.8999999999999L427.2 311.4999999999999C386.5 374.0999999999999 322.5 411.4999999999999 248 411.4999999999999C126.8 411.4999999999999 28.5 313.1999999999999 28.5 191.9999999999999S126.8 -27.5 248 -27.5C326.6 -27.5 394.5 14.6 433.5 82.9z" />
190
+ <glyph glyph-name="connectdevelop"
191
+ unicode="&#xF20E;"
192
+ horiz-adv-x="576" d=" M550.5 207L500.411 293.786C501.482 295.928 502.286 298.339 502.286 301.0180000000001C502.286 309.054 495.59 315.751 487.554 316.019L432.107 411.9120000000001C432.643 413.519 433.178 415.126 433.178 416.733C433.178 425.304 426.214 432.001 417.91 432.001C413.089 432.001 409.071 429.858 406.124 426.376H299.518C296.839 429.857 292.8210000000001 432 288 432S279.161 429.857 276.482 426.375H170.411C167.464 429.857 163.447 432 158.625 432C150.322 432 143.357 425.304 143.357 416.732C143.357 415.125 143.893 413.25 144.429 411.911L88.446 314.678C83.09 312.2680000000001 79.339 307.178 79.339 301.017C79.339 300.482 79.607 299.9460000000001 79.607 299.41L26.303 207.267C19.071 205.928 13.713 199.767 13.713 192.267C13.713 185.035 18.802 178.874 25.767 177.267L80.946 81.909C80.41 80.302 80.142 78.963 80.142 77.088C80.142 69.8559999999999 85.231 63.6949999999999 92.196 62.356L143.893 -27.376C143.357 -28.983 142.822 -30.858 142.822 -32.733C142.822 -41.304 149.786 -48.001 158.09 -48.001C162.911 -48.001 166.929 -45.858 169.608 -42.6439999999999H276.483C279.161 -45.857 283.447 -48 288 -48S296.839 -45.857 299.5180000000001 -42.643H406.6610000000001C409.3390000000001 -45.589 413.3570000000001 -47.464 417.6430000000001 -47.464C426.2140000000001 -47.464 432.9110000000001 -40.5 432.9110000000001 -32.196C432.9110000000001 -30.589 432.6440000000001 -29.25 432.1080000000001 -27.911L483.8050000000001 62.357C490.7690000000001 63.696 495.859 69.857 495.859 77.0889999999999C495.859 78.696 495.5910000000001 80.3029999999999 495.0550000000001 81.91L549.9660000000001 177.268C556.9300000000002 178.607 562.2880000000001 184.768 562.2880000000001 192.268C562.2860000000002 199.5 557.1960000000001 205.661 550.5000000000001 207zM153.535 -2.732L109.875 73.071H153.535V-2.732zM153.535 81.107H109.875C109.607 82.178 109.071 83.249 108.536 84.321L153.535 131.731V81.107zM153.535 143.518L103.178 90.2139999999999C101.839 90.7499999999999 100.499 91.5539999999999 99.16 91.821L43.447 188.25C43.982 189.589 43.982 190.929 43.982 192.268S43.982 194.678 43.714 195.75L95.679 285.75C98.358 286.0180000000001 101.036 286.822 103.447 288.429L153.536 236.464V143.518zM153.535 245.84L107.732 293.25C109.071 295.393 109.875 298.071 109.875 301.017C109.875 301.285 109.607 301.821 109.607 302.089L153.535 317.893V245.84zM153.535 326.465L109.875 310.661L153.535 386.197V326.465zM480.054 287.357L480.8579999999999 286.018L445.5 118.875L381.75 186.107L479.786 287.625L480.054 287.357zM291.75 92.893L303.2680000000001 81.107H280.5L291.75 92.893zM291.4820000000001 104.143L208.179 189.589L287.7320000000001 273.964L370.7680000000001 186.375L291.4820000000001 104.1429999999999zM296.8390000000001 98.25L376.1250000000001 180.482L443.6250000000001 109.232L437.7330000000001 81.107H313.714L296.839 98.25zM410.411 403.607C411.4820000000001 403.0710000000001 412.553 402.535 413.8930000000001 402.267L471.75 301.553V301.017C471.75 298.0710000000001 472.553 295.3930000000001 473.893 293.25L376.393 192L293.358 279.589L410.411 403.607zM401.304 405.75L287.7320000000001 285.482L230.6780000000001 345.75L397.0170000000001 405.75H401.3040000000001zM277.821 405.75C280.499 403.072 283.981 401.4650000000001 288 401.4650000000001S295.5 403.072 298.1789999999999 405.75H373.1789999999999L224.786 352.179L173.893 405.75H277.8210000000001zM161.572 400.125L162.643 402.267A33.834 33.834 0 0 1 165.322 403.0710000000001L216.483 349.231L161.572 329.41V400.125zM161.572 320.839L222.375 342.803L282.107 279.589L202.554 195.482L161.572 237.535V320.839zM161.572 228.161L198 190.393L161.572 152.089V228.161zM161.572 140.303L203.625 184.767L286.393 98.785L269.25 81.107H161.572V140.303zM168.536 -21.75C166.929 -20.143 165.054 -19.072 162.643 -18.268L161.572 -16.6609999999999V73.071H261.482L169.875 -21.75H168.536zM298.447 -21.75C295.7680000000001 -19.34 292.019 -17.465 288 -17.465S280.233 -19.34 277.553 -21.75H181.124L272.731 73.071H311.035L402.642 -21.75H298.447zM418.447 -9.964L414.161 -17.464C412.822 -17.732 411.751 -18.267 410.679 -18.803L321.483 73.072H435.8589999999999L418.447 -9.964zM431.303 12.268L444.161 73.071H466.125L431.303 12.268zM466.125 81.107H445.7680000000001L450.3210000000001 102.2670000000001L467.4640000000001 84.0530000000001C466.929 83.2500000000001 466.393 82.179 466.1250000000001 81.107zM532.2860000000001 188.518L476.8390000000001 91.821C475.5000000000001 91.286 474.1600000000001 90.75 472.8210000000001 89.947L452.1960000000001 111.911L486.7500000000001 275.839L532.5530000000001 196.553C532.2860000000001 195.214 531.7500000000001 193.875 531.7500000000001 192.268C531.7500000000001 190.929 532.0180000000001 189.857 532.2860000000001 188.518z" />
193
+ <glyph glyph-name="contao"
194
+ unicode="&#xF26D;"
195
+ horiz-adv-x="512" d=" M45.4 143C59.8 75.9 71.8 14 113.6 -32H34C15.3 -32 0 -16.8 0 2V382C0 400.7 15.2 416 34 416H91.7C77.9 403.4 65.6 388.8 54.8 372.4C9.4 302.4 27.8 225.6 45.4 143zM478 416H387.8C409.2 394.6 427 366.5 440.5 331.9L303.4 302.6C288.5 331.6 265.6 355.9 220.8 346.5C196.2 341.2 179.8 327.2 172.5 311.9C163.7 293.2000000000001 159.3 272.1 180.7 171.6C201.8 71.4 214.4 53.9 230.2 40.4C243.1 29.3 263.6 23.4 288.5 28.7C333 38.1 344.2 69.4 345.9 101.9L483.3 131.5000000000001C486.4999999999999 60.0000000000001 464.6 6.3000000000001 425.9 -32.0999999999999H478C496.7 -32.0999999999999 512 -16.8999999999999 512 1.9000000000001V382C512 400.8 496.8 416 478 416z" />
196
+ <glyph glyph-name="cpanel"
197
+ unicode="&#xF388;"
198
+ horiz-adv-x="640" d=" M52.9 234.3H92.9L86.7 210.7C84.8 204.2 79.3 199.8 72.4 199.8H53.8C28.9 199.8 29.1 162.4 53.8 162.4H65.1C69.3 162.4 72.7 158.5000000000001 71.5 154.1L64.4 128H52C18.5 128 -7 159.4 1.7 193.2C9 220.2 30 234.3 52.9 234.3M73.1 128L108 258.1C109.8 264.5 115.2 269 122.3 269H159.3C183.4 269 204.7 252.6 210.3 227.8C216.9 198.7 195.8 162.5 158.6 162.5H126.6L133 186.3C134.8000000000001 192.5 140.3000000000001 197.1 147.3000000000001 197.1H157.6000000000001C170.0000000000001 197.1 178.4000000000001 208.8 175.9000000000001 219.7C173.8000000000001 228.9 166.0000000000001 234.5000000000001 157.6000000000001 234.5000000000001H137.8000000000001L112 138.8C110.1 132.6 104.6 128.1 97.8 128.1L73.1 128M293.7 197.4C294 198.4 295.6 202.7 291.6 202.7H234.1C224.4 202.7 217.5 211.6 219.9 221.2L223.4 234.6H301.3C320.1 234.6 334.6 217 329.8 197.8L315.8 146C313 135.4 303.6 128.2 292.4 128.2L234.9 128.4C192 128.4 196.4 192.2 235.6 192.2H284L280.5 179C278.6 172.8 273.1 168.2 266.3 168.2H244.7C239.4 168.2 239.4 160.3 244.7 160.3H279.6C284.2000000000001 160.3 284.7000000000001 164.2 285.1 165.6L293.7000000000001 197.4M396.8000000000001 234.3000000000001C431.2000000000001 234.3000000000001 456.1000000000001 202.0000000000001 447.1000000000001 168.9L438.3000000000001 135.8C437.1000000000001 130.9 432.6000000000001 128 428.0000000000001 128H408.9000000000001C404.4000000000001 128 401.3 132 402.5000000000001 136.3L413.1000000000001 176.3C416.4000000000001 187.9 407.5000000000001 199.7 395.0000000000001 199.7H375.2000000000001L358.0000000000001 135.7000000000001C356.8000000000001 130.9 352.4000000000001 127.9 347.6000000000001 127.9H328.7000000000001C324.5000000000001 127.9 321.1000000000001 131.8 322.3000000000002 136.2000000000001L348.5000000000001 234.2000000000001H396.8000000000002M498 196.4L490 166.4C489.1 163.1 491.5 159.7 495.1 159.7H568.4L562.6999999999999 138.7C560.8 132.5 555.3 128 548.4999999999999 128H481.7999999999999C461.7999999999999 128 448.4999999999999 147 453.4999999999999 164.7L464.2999999999999 204.7C469.0999999999999 222.3 484.9999999999999 234.3 502.8999999999999 234.3H550.1999999999999C569.1999999999999 234.3 583.4 216.6 578.4999999999999 197.5L575.2999999999998 185.5C572.3999999999999 174.5 562.5999999999998 167.9 552.0999999999998 167.9H498.6999999999998L502.1999999999998 180.9C503.7999999999998 187.1 509.3999999999998 191.7 516.3999999999999 191.7H538C540 191.7 541.3 192.7 541.9 194.7L542.6 197.3C543.3000000000001 200 541.3000000000001 202.4 538.7 202.4H505.8000000000001C501.7 202.4 498.9000000000001 200.3 498.0000000000001 196.4zM568.2 128L603.8000000000001 261.1C605.0000000000001 265.8 609.3000000000001 269 614.2 269H633.1C637.6 269 640.8000000000001 265 639.6 260.7L613.1 162.5C608 141.8 588.9 128 568.2 128" />
199
+ <glyph glyph-name="creative-commons"
200
+ unicode="&#xF25E;"
201
+ horiz-adv-x="512" d=" M255.547 440C392.884 440 504 333.5610000000001 504 191.996C504 42.021 381.106 -56 255.562 -56C122.319 -56 8 53.443 8 191.996C8 323.175 113.486 440 255.547 440zM256.446 395.266C136.105 395.266 52.719 294.698 52.719 191.988C52.719 85.473 141.703 -10.406 256.446 -10.406C357.974 -10.406 459.2669999999999 69.036 459.2669999999999 191.981C459.266 306.754 367.4939999999999 395.266 256.4459999999999 395.266zM253.338 233.173L220.113 215.898C214.718 227.101 204.863 235.824 192.654 235.824C170.52 235.824 159.437 221.215 159.437 191.982C159.437 168.14 168.883 148.14 192.654 148.14C207.1229999999999 148.14 217.3069999999999 155.231 223.22 169.399L253.771 153.899C240.958 130 216.8839999999999 114.924 188.6699999999999 114.924C145.5079999999999 114.924 114.7109999999999 142.196 114.7109999999999 191.976C114.7109999999999 241.517 147.4169999999999 269.035 187.3449999999999 269.035C218.0589999999999 269.048 240.0459999999999 257.089 253.3379999999999 233.173zM396.382 233.173L363.607 215.898C358.09 227.38 348.283 235.824 335.707 235.824C313.565 235.824 302.482 221.215 302.482 191.982C302.482 168.076 311.984 148.14 335.707 148.14C350.161 148.14 360.352 155.231 366.25 169.399L397.25 153.899C383.887 130.03 359.799 114.924 332.164 114.924C288.725 114.924 258.205 141.912 258.205 191.976C258.205 241.499 290.903 269.035 330.831 269.035C361.5370000000001 269.048 383.4000000000001 257.089 396.382 233.173z" />
202
+ <glyph glyph-name="css3-alt"
203
+ unicode="&#xF38B;"
204
+ horiz-adv-x="384" d=" M0 416L34.9 20.2L192 -32L349.1 20.2L384 416H0zM313.1 336L308.3 288.7L193 239.4L192.7 239.3H304.2L291.4 92.7000000000001L193.2 64.0000000000001L94.4 93.2000000000001L88 167.1H136.9L140.1 128.8L192.7 115.5L247.4 130.9L251.1 192.5L84.8 193V193.1L84.6 193L81 239.3L193.1 286L199.6 288.7H76.7L70.9 336H313.1z" />
205
+ <glyph glyph-name="css3"
206
+ unicode="&#xF13C;"
207
+ horiz-adv-x="512" d=" M480 416L416 48L192.7 -32L0 48L19.6 142.8H101.6L93.6 102.2L210 57.8L344.1 102.2L362.9000000000001 199.3H29.5L45.5 281.3H379.2L389.7 334H56.3L72.6 416H480z" />
208
+ <glyph glyph-name="cuttlefish"
209
+ unicode="&#xF38C;"
210
+ horiz-adv-x="440" d=" M344 142.5C326.5 110.9 286.6 88 248 88C191.4 88 144 135.4 144 192S191.4 296 248 296C286.6 296 326.5 273.1 344 241.5C357.7 292.4 385.7 334.8 431 359.3C385.7 408.9 320.5 440 248 440C111 440 0 329 0 192S111 -56 248 -56C320.5 -56 385.7 -24.9 431 24.7C385.7 49.2 357.7 91.6 344 142.5z" />
211
+ <glyph glyph-name="d-and-d"
212
+ unicode="&#xF38D;"
213
+ horiz-adv-x="576" d=" M82.5 349.1C81.9 366.3 84.5 382.9 95.2 397.3C95.5 389.9 96.4 382.8 99.4 375.7C105.3 403.2 119.1 425 141.7 441.2C139.8 435.3 138.2 429.4 138.7 423.5C147.4 430.9 157.5 441.3 183.1 446.2C197.8 449 212.8 448.2 225.2 445.2C263.7 435.9 286.2 410.9 294.9 372.9C300.2 349.8 295.6 327.9 286.6 306.5C281.4 294.1 274.6 282.1 265.9 271.4C263.9 273.3 262 275.2000000000001 260.1 277C217.3 317.8 233.3 302.2 222.7 314.4C221.6 315.6 221.7 316.6 222.6 318C230.9 331.5 234.4 346.2 232.6 362C231.5 371.8 228.3 380.9 221.3 388.2C206.8 403.5 182.1 403.2 167.8 387.6C156.4 375.1 153.7 360.2 156.9 344C157.0999999999999 342.7 157.3 341.3 156.9 340.1C153.5 326.4 152.3 312.5 154.4 298.5C154.5 298 154.5 297.4 154.5 296.9C154.5 296.6 154.4 296.4 154.3 295.8C132.5 306.8 118.3 324.1 111.1 348C102.8 330.2000000000001 100 312.5 104.5 293.9C88.9 309.1 83.2 328.2 82.5 349.1zM552.1 225.9C540.5 237.5 527.1 246.3 512 252.5C499.2 257.7 486 260.4 472.1 259.6C462.1 259 452.5 256.5 443.1 253.2C440.6 252.3 438 251.6 435.4000000000001 251C430.5000000000001 249.8 428.1 254.1 430.7000000000001 257.8C433.9000000000001 262.4 434.1 262 445.7000000000001 269.8C446.3000000000001 270.2 446.9000000000001 270.6 447.9000000000001 271.3H445.4000000000001C444.8 271.3 444.2000000000001 271.1 443.5000000000001 271C424.2000000000001 267.7 412.8000000000001 255.5 394.6000000000001 241.4C384.2000000000001 233.3 380.8000000000001 237.6 382.6000000000001 241.9C384.0000000000001 245.4 385.9000000000001 248.6 387.7000000000001 251.9C388.7000000000001 253.7 390.0000000000001 255.3 391.2000000000001 257C391.0000000000001 257.2 390.7000000000001 257.3 390.5000000000001 257.5C363.5000000000001 239.2 343.8000000000002 215.1 332.8000000000002 184.2C333.1000000000002 183.9 333.5000000000001 183.6 333.8000000000002 183.3C334.1000000000002 183.9 334.3000000000002 184.5 334.7000000000001 185C345.1000000000001 197.1 357.5000000000001 206.8 371.3000000000002 214.8C389.5000000000001 225.4 408.8000000000002 233.1 430.0000000000001 235C434.3000000000002 235.4 438.7000000000001 235.1 443.1000000000002 235.1C441.3000000000002 234.4 439.6000000000002 234.2 437.8000000000002 234C419.3000000000002 231.6 402.3000000000002 225 386.3000000000002 215.5C356.1000000000002 197.6 331.8000000000002 173.3 311.2000000000002 145.1C310.9000000000002 144.7000000000001 310.8000000000002 144.2000000000001 310.5000000000002 143.8C325.0000000000002 138.5 334.5000000000002 126.5 346.6000000000002 118.2C346.8000000000002 118.3 346.9000000000002 118.4 347.0000000000002 118.6L348.2000000000002 121.3C360.4000000000002 148.1999999999999 375.2000000000002 173.6 394.9000000000002 195.8C411.6000000000002 214.6 432.9000000000002 221.1 457.4000000000001 215.8C463.3000000000001 214.5 468.8000000000001 211.4 474.6000000000001 209C476.9000000000001 210.4 479.7000000000002 212.1999999999999 482.6000000000001 213.6999999999999C491.0000000000001 218 500.0000000000001 220.6999999999999 509.3000000000001 222.6999999999999C524.0000000000001 225.8 538.8000000000002 227.6 553.8000000000002 224V224.5C553.3000000000002 224.9 552.6000000000001 225.3 552.1000000000001 225.9zM316.7 50.4C277.3 83.4 293.9 69.9 274 86C273.2 85.1 274 86.2 272.1 83C260.9000000000001 63.9 246.6 47.7 228.1 35.4C217.8 28.6 206.6 23.6 194 23.6C172.4 23.6 155.8 33.1 144.6 51.4C132.6 70.9 131.3 92.1 136.4 114C144.2000000000001 147.8 166.5 169.2 175 178.3C156.3000000000001 184.5 142 176.6 128.6 164.4C129.4 178.3 132.9 190.6 140.4 201.7000000000001C116.1 191.1 94.5 176.7000000000001 75.6 157.8000000000001C75.3 163.6000000000001 81 201.5000000000001 81.2 202.5000000000001C81.5 205.2000000000001 80.6 207.8000000000001 78.2 209.9000000000001C54 185.2000000000001 33.7 158.1000000000001 22.1 125.3000000000001C29.5 131.2000000000001 37 136.7000000000001 45.7 141.5000000000001C37.4 119.2000000000001 26.1 88.7000000000001 37.9 40.4000000000001C42.5 21.4000000000001 49.8 3.6000000000001 62 -11.8999999999999C64.9 -15.5999999999999 68.3 -18.7999999999999 71.5 -22.1999999999999C71.7 -21.9999999999999 71.9 -21.8999999999999 72.1 -21.6999999999999C70.7 -14.6999999999999 69.9 -7.5999999999999 70.6 0.2C72.8 -2.9999999999999 74.5 -5.8 76.5 -8.4C89.1 -24.4 105.2 -35.8 123.7 -44C148.7000000000001 -55.3 174.8000000000001 -57.3 201.6 -52.6C256.5 -42.9 292.3 -4 317.6 46.2C318.6 48 318.2000000000001 49.1 316.7000000000001 50.4zM488.7 96.8C479.2 99.9 466.5 100.9999999999999 460 99.6999999999999C469.9 95.6999999999999 474.1 93.0999999999999 478.8 87.6999999999999C491.4 73.3 489.2 52.9999999999999 473.4 42.0999999999999C461.7 33.9999999999999 448.5000000000001 31.5999999999999 434.5000000000001 32.9999999999999C433.3000000000001 33.0999999999999 432.2000000000001 33.3999999999999 431.5000000000001 33.5999999999999C434.3000000000001 37.2999999999999 437.5000000000001 40.5999999999999 439.6000000000001 44.3999999999999C449.0000000000001 61.1999999999999 445.0000000000001 86.4999999999999 430.9000000000001 100.4999999999999C428.8000000000001 102.6 426.3000000000001 104.3999999999999 423.9000000000001 106.3999999999999C423.6000000000001 105.0999999999999 423.8000000000001 104.2999999999999 424.0000000000001 103.5999999999999C428.2000000000001 86.9999999999999 415.9000000000001 71.1999999999999 399.2000000000001 71.7999999999999C391.6000000000001 72.0999999999999 385.3000000000002 75.5999999999999 379.6000000000001 80.2999999999999C360.1000000000001 96.3999999999999 340.5000000000001 112.3999999999999 321.1000000000001 128.5999999999999C315.2000000000001 133.4999999999999 308.6000000000001 136.6999999999999 301.0000000000001 137.2999999999999C296.4000000000001 137.6999999999999 291.7000000000001 137.8999999999999 287.1000000000001 138.1999999999999C281.2000000000001 138.5999999999999 278.3000000000001 140.9999999999999 276.7000000000001 146.5999999999999C275.8000000000002 149.9999999999998 275.2000000000001 153.3999999999999 274.5000000000001 156.7999999999999C273.0000000000001 164.8999999999999 268.3000000000002 169.7999999999999 260.2000000000001 170.9999999999998C255.8000000000001 171.6999999999998 251.3000000000001 171.9999999999998 246.9000000000001 172.4999999999998C233.9000000000001 173.8999999999998 227.1000000000001 179.8999999999998 224.3000000000001 192.7999999999999C219.3000000000001 181.7999999999999 222.7000000000001 170.3999999999999 231.6000000000001 162.8999999999999C236.1000000000001 159.0999999999999 240.9000000000001 155.5999999999999 245.4000000000001 151.6999999999999C250.0000000000001 147.8999999999999 252.8000000000002 142.9999999999999 253.3000000000002 136.8999999999999C253.7000000000002 132.1999999999999 254.1000000000002 127.3999999999999 255.1000000000002 122.7999999999999C257.3000000000002 112.1999999999998 264.0000000000001 104.3999999999999 272.1000000000002 97.6999999999998C288.6000000000002 83.9999999999998 305.1000000000002 70.3999999999998 321.6000000000002 56.5999999999998C339.5000000000001 41.5999999999998 335.5000000000001 23.7999999999998 334.6000000000002 0.5999999999998C333.7000000000002 -22.3000000000002 346.8000000000002 -42.3000000000002 368.1000000000002 -50.6000000000002C369.1000000000002 -51.0000000000002 370.1000000000002 -51.2000000000002 371.7000000000002 -51.7000000000002C356.0000000000002 -33.5000000000002 361.6000000000002 -7.6000000000002 372.4000000000002 0.5999999999998C372.7000000000002 -1.6000000000002 372.8000000000002 -3.7000000000002 373.3000000000002 -5.8000000000002C382.7000000000001 -49.9000000000002 418.7000000000001 -70.0000000000002 458.3000000000001 -62.7000000000002C474.3000000000001 -59.8000000000002 488.9000000000001 -53.8000000000002 501.2000000000001 -42.9000000000001C503.2000000000001 -41.1000000000001 504.9000000000001 -38.8000000000001 507.1000000000001 -36.4000000000001C487.8000000000001 -41.0000000000002 471.3000000000001 -36.5000000000002 456.2000000000001 -25.8000000000001C456.9000000000001 -25.5000000000001 457.5000000000001 -25.5000000000001 458.1000000000001 -25.5000000000001C479.4000000000001 -27.3000000000001 498.7000000000001 -22.1000000000001 515.1000000000001 -8.1000000000001C534.6000000000001 8.4999999999999 541.7000000000002 34.7999999999998 532.5000000000001 57.8999999999999C524.2000000000002 77.9999999999999 508.9000000000001 90.1999999999999 488.7000000000001 96.7999999999998zM99.4 268.7C94.1 277.9 86.2 284.3 77.3 290C91 290.5 103.9 289.8 116.9 286.3C109.9 298.5 108.4 311 111.9 325C117.2 313.1 125.6 304.9 135.5 298.2000000000001C155.2 285 171.2 278.6 182.2 268C185.6 264.7000000000001 188.5 260.9000000000001 191.8 257.1C191 259.2000000000001 190.4 261.2000000000001 189.6 263.1C184.6 273.7000000000001 176.6 281.7000000000001 167 288.1C165.2 289.3 164.2 290.6 163.6 292.6C160.3 305.1 160.6 317.7000000000001 162.9 330.2000000000001C163.9 335.7000000000001 165.7 341.1 167.4 346.5C168.2 348.9000000000001 169.7 351.1 171.4 353.1C172 346.2 171.4 327.6 191 307.1C201.8 295.8 213.4 285.2000000000001 224.9 274.4000000000001C233.9 265.9000000000001 243.2 257.7000000000001 250.4 247.6C251.5 246.0000000000001 252.6 244.3 254.2 242.9000000000001C249.2 255.9000000000001 240.0000000000001 267 230.0000000000001 276.7000000000001C220.4 286.0000000000001 210.6 295.1 200.8000000000001 304.1C197.5 307.1 196.2000000000001 310.8000000000001 195.7000000000001 315.0000000000001C194.5000000000001 325.4000000000001 195.7000000000001 335.6 200.0000000000001 345.2000000000001C200.5000000000001 346.2000000000001 201.1000000000001 347.2000000000001 201.9000000000001 348.5000000000001C202.4000000000001 344.3000000000001 202.5000000000001 340.6 203.3000000000001 336.9000000000001C208.1000000000001 313.8000000000001 223.7000000000001 300.6000000000001 252.6000000000001 273.4000000000001C262.6000000000001 264.0000000000001 271.9000000000001 254.2000000000001 278.2000000000001 241.8000000000001C283.0000000000001 232.5000000000001 285.5000000000001 222.8000000000001 283.9000000000001 212.2000000000001C283.8000000000001 211.6000000000001 284.4000000000001 210.5000000000001 285.0000000000001 210.2000000000001C291.2000000000001 207.6000000000001 295.0000000000001 203.3000000000001 294.7000000000001 195.9000000000001C302.4000000000001 198.5000000000001 307.2000000000001 203.9000000000001 311.1000000000001 210.4000000000001C315.3000000000001 190.2000000000001 302.0000000000001 160.1000000000001 283.9000000000001 151.7000000000001C284.3000000000001 156.2000000000001 288.9000000000001 175.1 267.4000000000001 179.4C260.6000000000001 180.7000000000001 254.6000000000001 180.7000000000001 244.5000000000001 181.5000000000001C249.2000000000001 190.5000000000001 254.9000000000001 202.1000000000001 245.0000000000001 203.9000000000001C220.1000000000001 208.5000000000001 192.2000000000001 202.0000000000001 187.2000000000001 199.3000000000001C195.4000000000001 198.9000000000001 203.5000000000001 198.3000000000001 210.7000000000001 196.0000000000001C208.7000000000001 189.5000000000001 206.7000000000001 183.3000000000001 204.9000000000001 177.1000000000001C203.0000000000001 170.6000000000001 207.0000000000001 162.5000000000001 214.2000000000001 167.5000000000001C215.4000000000001 168.4 216.5000000000001 169.4 217.5000000000001 170.2000000000001C214.4000000000001 152.3000000000001 214.6000000000001 154.3000000000001 214.7000000000001 151.9C215.0000000000001 141.7000000000001 224.2000000000001 144.1 230.4000000000001 144.6C227.9000000000001 132.8 200.9000000000001 117.3 185.0000000000001 118.8C192.0000000000001 123.5 197.7000000000001 129.1 200.9000000000001 136.7C194.4000000000001 135.9 188.0000000000001 135.1 181.7000000000001 134.3L181.4000000000001 135.2C186.1000000000001 138.6 189.4000000000001 143 191.6000000000001 148.3C200.3000000000001 169.4 188.0000000000001 186.3 166.6000000000001 188.2C157.5000000000001 189 148.8000000000001 187.4 140.7000000000001 182.7C146.9000000000001 198.3 157.9000000000001 209.3 173.3000000000001 217.2C158.1000000000001 221.5 164.4000000000001 219.9 148.7000000000001 223.5C163.3000000000001 232.8 178.9000000000001 236.7 195.2000000000001 238.1C190.0000000000001 241.3 147.1000000000001 241.7 125.0000000000001 217.2C132.9000000000001 215.8 140.5000000000001 214.4 148.2000000000001 213C124.4000000000001 206 104.2000000000001 193.3 85.8000000000001 177.4C86.9000000000001 182.2 88.5000000000001 186.9 89.1000000000001 191.7C89.7000000000001 196.2 89.9000000000001 200.9 89.2000000000001 205.3C87.7000000000001 214.7 80.3000000000001 220.4 69.5000000000001 221.6C61.6000000000001 222.5 53.9000000000001 221.5 46.2000000000001 220.3C45.3000000000001 220.2 44.5000000000001 220 43.3000000000001 220.3C59.1000000000001 235.1 79.3000000000001 242 96.4000000000001 253.8C102.4000000000001 258.3 103.2000000000001 262 99.4000000000001 268.7zM227.8 241.9C231.1 225.9 240.4 216.4 251.6 217.6C247.0000000000001 228.9 239.5000000000001 237.1 227.8 241.9z" />
214
+ <glyph glyph-name="dashcube"
215
+ unicode="&#xF210;"
216
+ horiz-adv-x="448" d=" M326.6 344H110.4C59.3 344 19.2 300.7 19.2 250.5V21C19.2 -29.5 59.3 -64 110.4 -64H337.6C388.7000000000001 -64 428.8 -29.5 428.8 21V448L326.6 344zM153.9 31.5C136.2 31.5 121.5 46.6 121.5 64.3V207.2C121.5 224.9 136.2 239.7 153.9 239.7H294.6C312.3 239.7 326.6 224.9 326.6 207.2V83.7L377.7000000000001 31.4H153.9z" />
217
+ <glyph glyph-name="delicious"
218
+ unicode="&#xF1A5;"
219
+ horiz-adv-x="448" d=" M446.5 380C446.1 381.5 445.6 383 445.1 384.5C444.2000000000001 387 443.1 389.3 441.8 391.6C440.4000000000001 394 438.8 396.4 437.1 398.5C435 401 432.7000000000001 403.3 430.2000000000001 405.3C429.1 406.2 428.0000000000001 407 426.9000000000001 407.8C425.6 408.7 424.3 409.5 422.9000000000001 410.2C421.1 411.2 419.3 412 417.4000000000001 412.7C415.7000000000001 413.4 413.9000000000001 414 412.0000000000001 414.4C408.2000000000001 415.4 404.1000000000001 415.9 400.0000000000001 415.9H48C21.5 416 0 394.5 0 368V16C0 11.9 0.5 7.8 1.5 4C3.5 -3.7 7.3 -10.6 12.5 -16.3C13.5 -17.4 14.6 -18.5 15.8 -19.6C21.5 -24.8 28.4 -28.6 36.1 -30.6C39.9 -31.6 44 -32.1 48.1 -32.1H400.1C426.6 -32.1 448.1 -10.6 448.1 15.9V368C448 372.1 447.5 376.2 446.5 380zM416 16C416 7.2 408.8 0 400 0H224V192H32V368C32 376.8 39.2 384 48 384H224V192H416V16z" />
220
+ <glyph glyph-name="deploydog"
221
+ unicode="&#xF38E;"
222
+ horiz-adv-x="512" d=" M382.2 312H433.9V72.4H382.2V93.1C362.4 68.3 329.4 68.9999999999999 308.4 78.4C282.2 90.1 264.1 116.5 264.1 150.2C264.1 180 278.9 208.1 307.4 221C327.6 230.1 360.1 231.6 382.2 208.1V312zM317.5 150.2C317.5 132 331.1 116.7 350.7 116.7C370.5 116.7 383.9 133.1 383.9 149.6C383.9 166.7 370.2 182.8 350.7 182.8C331.1 182.8 317.5 166.4 317.5 150.1999999999999zM188.5 312H240.2V72.4H188.5V93.1C168.7 68.3 135.7 68.9999999999999 114.7 78.4C88.5 90.1 70.4 116.5 70.4 150.2C70.4 180 85.2 208.1 113.7 221C133.9 230.1 166.4 231.6 188.5 208.1V312zM123.8 150.2C123.8 132 137.4 116.7 157 116.7C176.8 116.7 190.2 133.1 190.2 149.6C190.2 166.7 176.5 182.8 157 182.8C137.3 182.8 123.8 166.4 123.8 150.1999999999999zM448 352C465.5 352 480 337.6 480 320V64C480 46.5 465.6 32 448 32H64C46.5 32 32 46.4 32 64V320C32 337.5 46.4 352 64 352H448M448 384H64C28.8 384 0 355.2 0 320V64C0 28.8 28.8 0 64 0H448C483.2 0 512 28.8 512 64V320C512 355.2 483.2 384 448 384z" />
223
+ <glyph glyph-name="deskpro"
224
+ unicode="&#xF38F;"
225
+ horiz-adv-x="480" d=" M205.9 -64L237 -25.6C249.3 -25.4 262.6 -24.2 273.5 -19C312.4 -0.4 311.9 42.9 311.8 44.8C311.7 49.8 311 49.2 282.9000000000001 82.2H362C361.8 32.1 354.7 13.7 351.8 6.5C342.4000000000001 -17.2 307.9000000000001 -56.3 256.6 -62.9C247.9000000000001 -64 223.8 -64.1 205.9 -64zM406.3 103.7C444.9000000000001 103.7 464.8 117.3 480 134.6L304.5 134.9L287.1 103.6L406.3 103.7zM362.7 327.6V159.3H289.2L256.5 103.8H250C197.7 103.8 191.9 160.3 191.7 162.6999999999999C190.5 175.8999999999999 170.4 174.3 171.6 160.8999999999999C173 145.0999999999999 180.4 120.8999999999999 198 103.7999999999999H107C81.5 103.7999999999999 -3.8 130.5999999999999 0 217.7999999999999V431.1C0 447.1 9.7 447.7 15 447.9H97C97.2 447.9 97.3 447.8 97.5 447.8C101.8 448.2 147.6 449.9 147.6 404.1C147.6 390.8 167.8 390.7 167.8 404.1C167.8 422.3 162.3 436.9 152 447.8H236.2C344.9 448.2 362.7 368.4 362.7 327.6zM230.2 271.6L294.2 242.3C307.5 287.8 252 314 230.2 271.6z" />
226
+ <glyph glyph-name="deviantart"
227
+ unicode="&#xF1BD;"
228
+ horiz-adv-x="320" d=" M320 354.8L221.8 175.7L229.2 166.2H320V38.5H159.1L145.6 29.3L101.9 -54.7C101.6 -54.7 93.3 -63.3 92.7 -63.9H0V29.3L93.2 208.7L85.8 217.9H0V345.5H156L169.5 354.7L213.2 438.7C213.5 438.7 221.8 447.3 222.4 447.9H320V354.8z" />
229
+ <glyph glyph-name="digg"
230
+ unicode="&#xF1A6;"
231
+ horiz-adv-x="512" d=" M81.7 275.7H0V101.3H132.7V352H81.7V275.7zM81.7 142.3H50.9V234.6H81.7V142.3zM378.9 275.7V101.3H460.7V72.8H378.9V32H512V275.7H378.9zM460.7 142.3H429.9V234.6H460.7V142.3zM225.1 101.3H307.2V72.8H225.1V32H358.4V275.7H225.1V101.3zM276.3 234.6H307.1V142.3H276.3V234.6zM153.3 352H204.6V301H153.3V352zM153.3 275.7H204.6V101.3H153.3V275.7z" />
232
+ <glyph glyph-name="digital-ocean"
233
+ unicode="&#xF391;"
234
+ horiz-adv-x="512" d=" M256 -56V40.1C357.8 40.1 436.8 141 397.7 248.1C383.4 287.7000000000001 351.6 319.5 311.9 333.8C204.8 372.6 103.8 293.9000000000001 103.8 192.1H8C8 354.3 164.9 480.8 335 427.7C409.2 404.4 468.6 345.3 491.6 271.1C544.8 100.8 418.6 -56 256 -56zM256.3 135.4H160.7V39.8H256.3V135.4zM160.7 39.8H87V-33.8000000000001H160.7V39.8zM87 101.4H25.4V39.8H87V101.4z" />
235
+ <glyph glyph-name="discord"
236
+ unicode="&#xF392;"
237
+ horiz-adv-x="448" d=" M297.216 204.8C297.216 189.184 285.6960000000001 176.384 271.104 176.384C256.768 176.384 244.992 189.184 244.992 204.8S256.512 233.216 271.104 233.216C285.696 233.216 297.216 220.416 297.216 204.8zM177.664 233.216C163.072 233.216 151.552 220.416 151.552 204.8S163.328 176.384 177.664 176.384C192.256 176.384 203.776 189.184 203.776 204.8C204.032 220.416 192.256 233.216 177.664 233.216zM448 395.264V-64C383.506 -7.006 404.132 -25.872 329.216 43.776L342.784 -3.584H52.48C23.552 -3.584 0 19.968 0 49.152V395.264C0 424.448 23.552 448 52.48 448H395.5200000000001C424.448 448 448 424.448 448 395.264zM375.04 152.576C375.04 235.0080000000001 338.1760000000001 301.824 338.1760000000001 301.824C301.3120000000001 329.472 266.24 328.704 266.24 328.704L262.656 324.608C306.176 311.296 326.4 292.096 326.4 292.096C265.589 325.425 194.156 325.4310000000001 135.168 299.52C125.696 295.168 120.064 292.096 120.064 292.096S141.312 312.32 187.392 325.632L184.832 328.704S149.76 329.472 112.896 301.824C112.896 301.824 76.032 235.008 76.032 152.576C76.032 152.576 97.536 115.456 154.112 113.6640000000001C154.112 113.6640000000001 163.584 125.184 171.264 134.912C138.752 144.6400000000001 126.464 165.12 126.464 165.12C130.23 162.484 136.44 159.067 136.96 158.72C180.17 134.5220000000001 241.548 126.5940000000001 296.704 149.7600000000001C305.664 153.088 315.648 157.9520000000001 326.144 164.864C326.144 164.864 313.344 143.872 279.808 134.4C287.488 124.672 296.704 113.6640000000001 296.704 113.6640000000001C353.28 115.456 375.04 152.576 375.04 152.576z" />
238
+ <glyph glyph-name="discourse"
239
+ unicode="&#xF393;"
240
+ horiz-adv-x="448" d=" M225.9 416C103.3 416 0 317.5 0 195.9C0 192 0.1 -32 0.1 -32L225.9 -31.8C348.6 -31.8 448 70.5 448 192.1C448 313.7 348.6 416 225.9 416zM224 64C204.6 64 186.1 68.3 169.6 76.1L88.5 56L111.4 131C101.6 149.1 96 169.9 96 192C96 262.7 153.3 320 224 320S352 262.7 352 192S294.7 64 224 64z" />
241
+ <glyph glyph-name="dochub"
242
+ unicode="&#xF394;"
243
+ horiz-adv-x="416" d=" M397.9 288H256V428.4L397.9 288zM304 256V126C304 59.2 267.5 25.9 190.7 25.9H96V363.2H190.7C202.7 363.2 213.8 362.4 223.8 360.7V444.7C212.9 446.9 201.4 448 189.2 448H0V-64H189.2C329.7 -64 400 0.6 400 129.9V256H304z" />
244
+ <glyph glyph-name="docker"
245
+ unicode="&#xF395;"
246
+ horiz-adv-x="640" d=" M349.9 211.7H283.8V271.1H349.9V211.7zM349.9 416H283.8V355.3H349.9V416zM428.1 271.2H362V211.8H428.1V271.2zM271.8 343.3H205.7V283.2H271.8V343.3zM349.9 343.3H283.8V283.2H349.9V343.3zM626.7 243.3C612.3000000000001 253 579.1 256.5 553.6 251.7C550.3000000000001 275.7 536.9 296.6 512.5 315.4L498.5 324.7L489.2 310.7C470.8 282.9 465.8 237.1 485.5 206.9C476.8 202.2 459.7 195.8 437.1 196.2H2.4C-6.3 145.4 8.2 79.4 46.4 34.1C83.5 -9.8 139.1 -32.1 211.8 -32.1C369.2000000000001 -32.1 485.7 40.4 540.2 172.1C561.6 171.7000000000001 607.8000000000001 172 631.5 217.3C633 219.8 638.1 230.5 640 234.4L626.7 243.3zM115.6 271.2H49.6V211.8H115.7V271.2zM193.7 271.2H127.6V211.8H193.7V271.2zM271.8 271.2H205.7V211.8H271.8V271.2zM193.7 343.3H127.6V283.2H193.7V343.3z" />
247
+ <glyph glyph-name="draft2digital"
248
+ unicode="&#xF396;"
249
+ horiz-adv-x="480" d=" M369.9 22.6V77L417 49.8L369.9 22.6zM82.4 67.4C107.9 94.7 180.1 172.1 233.3 237.4C268.4000000000001 280.5 273.6 319.8 261.7 350.1C254.3 368.9 244.2 380.3 237.4 385.8C282.7 383.7 305.4 362.4 319.6 347.5C319.6 347.5 362 299.3 325.4 234.2C288.4 168.3 214.5 86.7 196.9 67.5H82.4zM134.2 286.6C134.2 274.2 124.2 264.2 111.8 264.2C99.4 264.2 89.4 274.2 89.4 286.6C89.4 299 99.4 309 111.8 309C124.2 309 134.2 298.9 134.2 286.6M336 132.1V67.4H244.7C275.5 102.4 326.5 163.3000000000001 356.5 216.7000000000001C391.7 279.3000000000001 372.6 340.1 343.7 370.0000000000001C339.3 374.6 281.5 432.9000000000001 177.7 411.2000000000001C118.6 398.8000000000001 88.3 367.8000000000001 73.4 343.9000000000001C60.3 323.0000000000001 56.4 304.1000000000001 55.2 296.2000000000001C49.7 263.2000000000001 74.6 229.1000000000001 111.9 229.1000000000001C143.6 229.1000000000001 169.2 254.8000000000001 169.2 286.5000000000001C169.2 313.6 149.5 338.6 121.2 343.3000000000001C123 350.6 138.9 364.4000000000001 147.5 368.0000000000001C188.6 385.3000000000001 225.5 362.8000000000001 230.8 334.5000000000001C239.1 290.2000000000001 193.7 244.1000000000001 161.1 206.9000000000001C84.5 119.9 18.3 51.2 0 32.1L336 32.2V-32L480 49.9L336 132.1z" />
250
+ <glyph glyph-name="dribbble-square"
251
+ unicode="&#xF397;"
252
+ horiz-adv-x="448" d=" M90.2 219.8C99.1 262.2000000000001 127.6 297.5 165.9 315.5C169.5 310.6 193.9 276.7 216.6 236.5C152.6 219.5 96.3 219.7 90.2 219.8zM314.6 294C281 323.8 235.3 335.1 192 324.6C195.8000000000001 319.5 220.6 285.7 243.0000000000001 244.6C291.6 262.9 312.1 290.5 314.6 294zM140.1 84C180.6 52.4 233.4 47.3 277.4 66C275.4 78 267.4 119.8 248.2 169.6C193.1 150.8 154.4 113.2000000000001 140.1 84zM238.9 192.2C235.5 200 231.7 207.7 227.8 215.4C159.6 195 93.4 195.8 87.4 196C87.4 194.6 87.3 193.2 87.3 191.8C87.3 156.7 100.6 124.7000000000001 122.4 100.4C144.6 138.3 189.5 178.3 238.9 192.2zM273.8 175.9C291.7 126.8 298.9 86.8 300.3 78.5C331 99.2 352.8 132.1 358.9 170.1C354.3 171.6 316.6 182.8 273.8 175.9zM253.5 224.3C258.3 214.5 261.8 206.5 265.5 197.5C311 203.2 356.2 194.1 360.7 193.1C360.3999999999999 225.4 348.8999999999999 255 329.8 278.2C326.9 274.3 304 245 253.5 224.3zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM384 192C384 280.2 312.2 352 224 352S64 280.2 64 192S135.8 32 224 32S384 103.8 384 192z" />
253
+ <glyph glyph-name="dribbble"
254
+ unicode="&#xF17D;"
255
+ horiz-adv-x="512" d=" M256 440C119.252 440 8 328.748 8 192S119.252 -56 256 -56S504 55.252 504 192S392.748 440 256 440zM419.9700000000001 325.634C449.473 289.588 467.3390000000001 243.677 467.805 193.679C460.821 195.156 390.7870000000001 209.361 320.303 200.497C314.551 214.538 309.122 226.89 301.686 242.111C380.007 274.088 415.504 319.593 419.97 325.634zM396.421 350.13C392.611 344.703 360.724 301.844 285.4 273.611C250.688 337.387 212.215 389.779 206.36 397.619C273.536 413.812 344.326 396.349 396.421 350.13zM165.941 383.38C171.526 375.721 209.379 323.264 244.478 260.871C145.391 234.558 58.118 234.937 48.644 235.062C62.38 300.795 106.678 355.427 165.941 383.38zM44.17 191.677C44.17 193.843 44.213 195.999 44.278 198.15C53.546 197.96 156.198 196.637 261.984 228.2960000000001C268.048 216.4280000000001 273.841 204.3810000000001 279.158 192.347C202.559 170.7720000000001 132.964 108.8200000000001 98.627 50.0410000000001C64.794 87.595 44.17 137.27 44.17 191.677zM125.977 24.564C148.104 69.797 208.155 128.186 293.5560000000001 157.3200000000001C323.2960000000001 80.037 335.5950000000001 15.2670000000001 338.7450000000001 -3.318C270.6330000000001 -32.331 188.7300000000001 -24.371 125.9770000000001 24.564zM374.357 16.075C372.186 28.9610000000001 360.911 90.972 333.205 167.1080000000001C399.585 177.734 457.905 160.3400000000001 465.152 158.0530000000001C455.71 99.1120000000001 421.879 48.2090000000001 374.357 16.075z" />
256
+ <glyph glyph-name="dropbox"
257
+ unicode="&#xF16B;"
258
+ horiz-adv-x="528" d=" M264.4 331.7L132.4 247.4L264.4 163.1L132.4 78.8L0 163.9L132.3 248.2L0 331.7L132.3 416L264.4 331.7zM131.6 52.3L263.6 136.6L395.6 52.3L263.6 -32L131.6 52.3zM264.4 163.9L396.4 248.2L264.4 331.8L395.7 416L528 331.7L395.7 247.4L528 163.2L395.7 78.9L264.4 163.9z" />
259
+ <glyph glyph-name="drupal"
260
+ unicode="&#xF1A9;"
261
+ horiz-adv-x="448" d=" M319.5 333.3C297.3 347.3 276 352.8 254.8 366.8C241.8 375.6 223.5 396.8 208.3 415.1C205.6 385.8 196.8 373.9 186.3 365.6C165 348.6 151.5 343.4 132.8 333.3C117 325 32 266.5 32 157.5C32 48.3 123.8 -32 225.8 -32C327.5 -32 416 42 416 154C416 266.3 333 325 319.5 333.3zM322 7.7C301.9 -12.4 231.9 -21 205.3 3.5C200.5 8.3 205.6 15.5 211.8 15.5C211.8 15.5 228.8 2.2 263.3 2.2C290.3 2.2 309.3 9.9 317.8 16.2C323.9000000000001 20.8 326.2 11.9 322 7.7zM267.5 60.3C276.2 63.9 296.5 64.1 304.3 59C308.4000000000001 56.2 320.4000000000001 40.2 310.5 35.3C302.1 31.1 309.3 51 284 51C269.3 51 264.5 45.8 257.3 40C250.3 34 247.5 32 245.1 35.3C239.1 43.5 261 57.6 267.5 60.3zM360 43C344.8 44 314.5 91.8 295 92.5C264.1 93.4 190.9 11.8 133.7 50.5C94.9 77.1 119.1 155.3 185.5 155.7C235 156.2 269.3 106.7 294 107.2C315.3 107.5 355.8 149 375.8 149C424.5 149 399.1 39.7 360 43z" />
262
+ <glyph glyph-name="dyalog"
263
+ unicode="&#xF399;"
264
+ horiz-adv-x="416" d=" M0 416V296.8H64V352H171.2C284.6 352 352 271.8 352 192.1C352 116 293.4 32 171.2 32H0V-32H171.2C331.9 -32 416 80.7 416 192.1C416 250.8 393.9 305.5 353.7 346.4C308.9 392 245.7 416 171.2 416H0z" />
265
+ <glyph glyph-name="earlybirds"
266
+ unicode="&#xF39A;"
267
+ horiz-adv-x="480" d=" M313.2 400.5C314.4 413.5 334.5 414.5 349.8 409.2C350.7 408.9 376 399.5 368.8 394C340.9000000000001 401.4 312.4000000000001 375.8 313.2 400.5zM112.2 393.6C142.9 401.7 174.2 373.6 173.3 400.7C172 414.9 149.9 416 133.1 410.3C132.1 410 104.4 399.8 112.2 393.6zM319.4 288C310.6 288 303.4 280.8 303.4 272S310.6 256 319.4 256S335.4 263.2 335.4 272S328.2 288 319.4 288zM159.7 288C150.9 288 143.7 280.8 143.7 272S150.9 256 159.7 256S175.7 263.2 175.7 272S168.5 288 159.7 288zM478.2 124.8C468.3 100.8 437.5 113.8 414.3 126C400.8 56.9 356.2 14.6 288 1.8C288.3 0.9 286 1.9 312 0.8C345.6 -0.6 375.8 3.9 409.4 8.8C389.6 22.6 398 45.9 399.6 46.9C401 47.8 414.3 45.2 421.2 35.4C429.8 47.9 449.6 50.2 451.4 49.0000000000001C453 47.9 458 28.1000000000001 444.5 14.4C449.2 15.3 452.7 16.0000000000001 454.3 16.5000000000001C456.9 17.3000000000001 472 5.2 457.4 3.2C443.1 0.9 434.8 -1.9 410.3 -7.6C364.4000000000001 -18.3 324.4 -19.4 292.6 -20.4L293.6 -32C297.4000000000001 -50.1 270.2000000000001 -56.3 266 -38.2C266.8 -56.1 238.9 -60 237.6 -37.2L237.1 -42.5C236.4 -60.9 208.7 -60.4 208.8 -41.9C201.3 -55.4 180.7 -48.7 182.4 -33.4L183.6 -21C146.9 -21.9 123.9 -24.1 121.8 -24.1C100.9 -24.1 100.9 7.5 121.8 7.5C124.2 7.5 149.5 6.2 185 4.7C123.9 20.2 81.3 59.7 70.1 122.9C45.1 110.1 12.6 96.1 1.9 122.1C-8.6 147.5 23.4 164.7 68.7 195.5C69.4 202.1 70.3 208.8 71.4 215.3C57 234.9 59.8 251.6 55.3 275.7C38.5 273.3 32.1 284.8 31.7 298.8C32 306.1 33.8 313.7 34.1 314.2C35.2 316 44.2 316.2 46.8 316.8C52.8 348.5 97.4 350 137.7 351.3C157.4 373.1 182.9 392.8 218.6 399.6C203.3 419 215.2 439.5 216.2 440C217.9 440.8 237.4 435.7 242.5 416.8C247.7 425.6 260.8 428.2 262.1 427.5C263.2000000000001 426.9 268.5 412.5 257.2000000000001 401.6C297.5000000000001 398.1 329.4000000000001 376.9 353.2000000000001 350.9C389.3000000000001 349.4 425.0000000000001 345 430.3000000000001 316.9C433.0000000000001 316.3 441.9000000000001 316.1 443.0000000000001 314.3C443.3000000000001 313.8 445.1000000000001 306.2000000000001 445.4000000000001 298.9C444.9000000000001 285 438.6 273.5 421.8 275.8C418.6 258.5 419.1 242.9 413.1 228.1C415.5 216.4 417.1 204.3 417.9000000000001 191.7000000000001C454.9 166.3000000000001 488.2 149.2000000000001 478.2 124.8000000000001zM207.4 288.1C208.3 332.1 169.5 330.3 128.8 328.4C107.1 327.4 89.9 326.5 83.3 314.5C71.9 293.6 89.2 221.6 106.5 213.3C116.3 208.6 179.9 205.4 192.8 220.4C201 229.8 207.8 269.8 207.4 288.1zM259.4 229.8C255.1 242.2 253.4 259.9 244.1 262.5C242.1 263 235.1 263 233.1 262.5C223.1 259.7 222.3 240.4 216.1 225.3C231.5 225.3 235.4 215.6 239.8 215.6C244.1 215.6 246.1 226.9000000000001 259.4 229.8zM395.1 314.5C388.5 326.6 370.3 327.4 348.6 328.4C308.4 330.3 270.4 332.2 271.3 288.1C270.8 269.8 276.3 229.8 284.5 220.3C297.5 205.4 361.0999999999999 208.5 370.8 213.2C386.6 220.8 407.3 292.1 395.1 314.5z" />
268
+ <glyph glyph-name="edge"
269
+ unicode="&#xF282;"
270
+ horiz-adv-x="512" d=" M25.714 219.837C25.825 219.999 25.944 220.16 26.056 220.322C26.035 220.16 26.011 219.999 25.991 219.837H25.714zM486.286 204.329C486.286 248.361 478.532 288.794 457.485 326.734C416.498 400.121 343.912 439.999 258.893 439.999C118.962 440.276 40.617 334.786 26.056 220.321C68.485 281.633 143.129 341.697 246.431 345.287C246.431 345.287 356.097 345.287 345.85 240.33H169.997C176.366 277.716 188.551 299.316 204.336 319.256C129.288 284.363 82.486 223.16 83.594 130.941C84.424 59.493 133.718 -13.895 204.337 -41.035C287.694 -72.8820000000001 397.113 -48.235 444.469 -19.711V84.693C363.605 28.199 173.598 23.768 172.214 152.265H486.287V204.329z" />
271
+ <glyph glyph-name="elementor"
272
+ unicode="&#xF430;"
273
+ horiz-adv-x="448" d=" M425.6 416H22.4C10 416 0 406 0 393.6V-9.6C0 -22 10 -32 22.4 -32H425.6C438 -32 448 -22 448 -9.6V393.6C448 406 438 416 425.6 416M164.3 92.5H124.5V291.5H164.3V92.5zM323.6 92.5H204.1V132.3H323.6V92.5zM323.6 172.1H204.1V211.9H323.6V172.1zM323.6 251.8H204.1V291.6H323.6V251.8z" />
274
+ <glyph glyph-name="ember"
275
+ unicode="&#xF423;"
276
+ horiz-adv-x="640" d=" M639.9 193.4C638.8 204.1 629.1999999999999 200.2 629.1999999999999 200.2S613.5999999999999 188.1 599.9 189.5C586.1999999999999 190.8 590.5 221.5 590.5 221.5S593.5 249.6 585.4 251.9C577.3 254.3 567.4 244.6 567.4 244.6S555 230.9 549.1 213.4L547.5 212.9S549.4 243.5 547.2 250.5C545.6 254 530.8000000000001 253.7 528.4000000000001 247.5S514.2 198.3 513.4000000000001 180.3C513.4000000000001 180.3 490.3000000000001 160.7 470.1000000000001 157.5S445.1000000000001 166.9 445.1000000000001 166.9S499.9000000000001 182.2 498.0000000000001 226C496.1000000000001 269.8 453.8000000000001 253.6 449.0000000000001 250C444.4000000000001 246.5 419.6000000000001 231.6 412.4000000000001 190.3C412.2000000000001 188.9 411.7000000000001 182.8 411.7000000000001 182.8S390.5000000000001 168.6 378.7000000000001 164.8C378.7000000000001 164.8 411.7000000000001 220.4 371.4000000000001 245.7C353.1 256.7 338.6 233.6 338.6 233.6S393.1 294.3 381.1 345.6C375.3 370 363.1 372.7 351.9000000000001 368.7C334.9000000000001 362 328.4000000000001 352 328.4000000000001 352S306.4000000000001 320 301.3 272.5S288.7 167.4 288.7 167.4S278.2 157.2 268.5 156.7S263.1 185.4 263.1 185.4S270.6 230 270.1 237.5S269 249.1 260.2000000000001 251.7C251.3000000000001 254.4 241.7000000000001 243.1 241.7000000000001 243.1S216.2000000000001 204.4 214.0000000000001 198.5L212.7000000000001 196.1L211.4 197.7S229.4000000000001 250.4 212.2000000000001 251.2C195.0000000000001 252 183.7000000000001 232.4 183.7000000000001 232.4S164.1000000000001 199.6 163.3000000000001 195.9L162 197.5S170.1 235.7 168.4 245.1C166.8000000000001 254.5 157.9 252.6 157.9 252.6S146.6 253.9 143.7000000000001 246.7S130.0000000000001 191.3999999999999 128.7000000000001 176C128.7000000000001 176 100.5 155.8 81.9000000000001 155.6C63.4000000000001 155.3 65.2000000000001 167.4 65.2000000000001 167.4S133.2000000000001 190.7 114.6000000000001 236.6C106.3000000000001 248.4 96.6000000000001 252.1 82.9000000000001 251.9C69.2000000000001 251.6 52.6000000000001 243.3 41.6000000000001 218.6C36.3000000000001 206.8 34.8000000000001 195.6 33.8000000000001 187.1C33.8000000000001 187.1 21.5000000000001 184.7 15.0000000000001 190S5.0000000000001 190 5.0000000000001 190S-6.1999999999999 176 4.9000000000001 171.6999999999999S33.0000000000001 165.5999999999999 33.0000000000001 165.5999999999999C34.6000000000001 158.0999999999999 39.2000000000001 146.0999999999999 52.6000000000001 135.8999999999999C72.8000000000001 120.5999999999999 111.4000000000001 137.1999999999999 111.4000000000001 137.1999999999999L127.3000000000001 146S127.8000000000001 131.3999999999999 139.4000000000001 129.3C151.0000000000001 127.1999999999999 155.8000000000001 128.3 175.9000000000001 177.1999999999999C187.7000000000001 202.1999999999999 188.5000000000001 200.7999999999999 188.5000000000001 200.7999999999999L189.8000000000001 201.0999999999999S180.7000000000001 154.3 184.2000000000001 141.3999999999999C187.7 128.6 203 130 203 130S211.3 127.6 218 151.2C224.7 174.8 237.6 201.1 237.6 201.1H239.2S233.6 153 242.2 137.4C250.8 121.8 273.1 132.1 273.1 132.1S288.7 139.9 291.1 142.3C291.1 142.3 309.6 126.5 335.7 129.4C394 140.9 414.8 155.3 414.8 155.3S424.8 130.9 455.9 128.6C491.4 125.9 510.7 147.2 510.7 147.2S510.4 133.7 522.8 128.6C535.1999999999999 123.5 543.5 151.4 543.5 151.4L564.2 208.6H566.1S567.2 171.3 587.6 165.4S634.6 179.1 634.6 179.1S641 182.6 639.9 193.4zM61.9 188.1C62.7 220.1 83.7 234.0000000000001 90.9 227.1C98.2 220.1 95.5 205.1 81.8 195.7C68.1 186.2000000000001 61.9 188.1 61.9 188.1zM334.7 311.9000000000001S353.8 361.6 358.3 337.4000000000001S318.3 241.2000000000001 318.3 241.2000000000001C318.8 257.4000000000001 334.7 311.9000000000001 334.7 311.9000000000001zM357.5 173.5C344.9 140.5 314.2 153.9 314.2 153.9S310.7 165.7 320.6 198.8S353.9 219 353.9 219S370.1 206.6 357.5 173.5zM442.1 188.1S439.1 198.6 450.2000000000001 218.7C461.2 238.9 469.8000000000001 227.8 469.8000000000001 227.8S479.2 217.6 468.5000000000001 202.3S442.1000000000001 188.1 442.1000000000001 188.1z" />
277
+ <glyph glyph-name="empire"
278
+ unicode="&#xF1D1;"
279
+ horiz-adv-x="496" d=" M287.6 393.8C276.8 396 265.5 397.1 254.1 397.4V415.6C332.2000000000001 413.4 400.2000000000001 371.6 438.7000000000001 309L422.9000000000001 299.9C416.8 309.6 410.2000000000001 318.7000000000001 402.7000000000001 327L384.7000000000001 311.5C358.7000000000001 341.1 323.3000000000001 362.2 282.8000000000001 369.9L287.6000000000001 393.8zM53.4 125.6L76.4 133.3C70 151.6 66.4 171.5 66.4 192S69.7 232.4 76.1 250.7L53.4 258.4C57 269.2 61.7 279.7 67 289.4L51.2 298.5C34 267 24.1 230.5 24.1 192S34.1 117 51.2 85.4L67 94.5C61.7 104.5 57.3 114.8 53.4 125.6zM213.1 14C172.7 22 137.3 43.1 111.2 72.7L93.2 56.9C85.7 65.5 78.8 74.6 73 84.3L57 74.9C95.5 12.6 163.8 -29.4 241.9 -31.7V-13.4C230.6 -13.1 219.2 -11.7 208.4 -9.8L213.1 14zM93.3 327.1L111.3 311.6C137.3 341.2 172.7 362.3 213.2 370L208.5 393.8C219.3 396 230.6 397.1 242 397.4V415.6C163.9 413.4 95.9 371.6 57.4 309L73.2 299.9C79.2 309.6 85.8 318.8 93.3 327.1zM402.7 56.9L384.7 72.7C358.7 43.1 323.3 22 282.8 14L287.5 -9.8C276.7 -11.7 265.3999999999999 -13.1 254 -13.4V-31.7C332.0999999999999 -29.5000000000001 400.4 12.6 438.9 74.9L422.8 84.3C417.1 74.6 410.2 65.4999999999999 402.7 56.9zM496 192C496 55 385 -56 248 -56S0 55 0 192S111 440 248 440S496 329 496 192zM483.8 192C483.8 322.1 378.1 427.8 248 427.8S12.2 322.1 12.2 192S117.9 -43.8 248 -43.8S483.8 61.9 483.8 192zM444.8 298.6L429 289.5C434.3 279.8 439 269.3 442.6 258.5L419.9000000000001 250.8C426.3 232.5 429.6 212.6 429.6 192.1S426 151.7000000000001 419.6 133.4L442.6 125.7000000000001C438.7000000000001 114.9 434.3 104.7000000000001 429 94.7000000000001L444.8 85.6C462 117 471.9 153.5 471.9 192S462 267 444.8 298.6zM261.8 120.9C278.1 124.2 292.2 132.5 302.5 144.4L353.7 99.6C365.6 113.2 375 128.9 380.8 146.4L316.6 168.5C319.1 176 320.5 183.7 320.5 192S319.1 208.1 316.6 215.5L381.1 237.6C375 255 365.6 270.8 353.7000000000001 284.4L302.5000000000001 239.6C292.3000000000001 251.5 278.1000000000001 260.1 261.8000000000001 263.4L275.1000000000001 329.8C266.5000000000001 331.7 257.4000000000001 332.6 248.0000000000001 332.6C238.6000000000001 332.6 229.5000000000001 331.8 220.9000000000001 329.8L234.2000000000001 263.4C217.9000000000001 260.1 203.8000000000001 251.5 193.5000000000001 239.6L142.3000000000001 284.4C130.4000000000001 270.8 121.0000000000001 255.1 114.9000000000001 237.6L179.4000000000001 215.5C176.9000000000001 208 175.5000000000001 200.3 175.5000000000001 192S176.9000000000001 175.9 179.4000000000001 168.5L115.2000000000001 146.4C121.0000000000001 129 130.4000000000001 113.2 142.3000000000001 99.6L193.5000000000001 144.4C203.7000000000001 132.5 217.9000000000001 124.2 234.2000000000001 120.9L220.9000000000001 54.2C229.5000000000001 52.5 238.6000000000001 51.4 248.0000000000001 51.4C257.4000000000001 51.4 266.5000000000001 52.5 275.1000000000001 54.2L261.8000000000001 120.9z" />
280
+ <glyph glyph-name="envira"
281
+ unicode="&#xF299;"
282
+ horiz-adv-x="448" d=" M0 416C477.6 416 366.6 98.7 367.1 49.7L448 -32H422L351.6 39.2C312.6 35 227.2 4.7 137.2 76.2C47 147.7 52 233.3 0 416zM79.7 370C30 393.5 74.5 360.8 74.5 360.8C119.7 329.6 140.5 287.1 164.7 240.9C196.2 180.7 243.7 101.2 308.9 73.2C373.9 45.2 343.1 60.7 314.9 81.7C286.7 102.9 246.7 168.7 223.9 211.9C192.2 271.9 162.9 330.5 79.7 370z" />
283
+ <glyph glyph-name="erlang"
284
+ unicode="&#xF39D;"
285
+ horiz-adv-x="640" d=" M21.7 201.6C21.6 114.8 50.7 42.1 100.4 -10.5H0V394.5H87.2C45.7 344.3 21.6 278.3 21.7 201.6zM640 394.4H556.4C587.8 351.7 605.1 296.9 602.6 231.7C603.1 225.7 603.1 220 602.6 207.6H230.2C230 97.9 269.1 12.7 368.8 12.3C437.3 12.6 486.8 63.3 520.6999999999999 118.4L617.0999999999999 70.2C599.6999999999999 39.3 580.5999999999999 12.4 559.1999999999999 -10.6H640V394.4zM559.2 -10.6S559.2 -10.5 559.2 -10.6H559H559.2zM556.1 394.4H556.4L556.3 394.5L556.0999999999999 394.4zM325.4000000000001 384.8C279.5000000000001 384.7 240.3000000000001 351.3 236.2000000000001 301.6H406.1C405 351.3 371.6 384.7 325.4000000000001 384.8z" />
286
+ <glyph glyph-name="ethereum"
287
+ unicode="&#xF42E;"
288
+ horiz-adv-x="320" d=" M311.9 187.2L160 94.4L8 187.2L160 448L311.9 187.2zM160 64.6L8 157.4L160 -64L312 157.4L160 64.6z" />
289
+ <glyph glyph-name="etsy"
290
+ unicode="&#xF2D7;"
291
+ horiz-adv-x="384" d=" M384 100C382.25 89.25 370.25 -10 368.5 -32C250.621 -27.701 148.605 -27.257 0 -32V-6.5C45.457 2.448 60.627 1.519 61 28.75C62.793 101.072 64.524 272.8930000000001 61 350.75C59.971 379.2100000000001 48.87 377.515 0 386.75V412.25C73.886 409.892 255.933 403.699 362.999 416C359.499 377.75 355.249 289.5 355.249 289.5H332C320.947 332.335 313.241 380 277.25 380H140.25C130 380 129.5 376.5 129.5 370.25V206.5C187.5 206 218 209 218 209C247.77 209.951 245.56 217.502 258.75 274.251H284.5C280.093 172.9 280.59 212.422 282.75 114.001H257C247.845 154.087 247.935 175.046 217.499 175.501C217.499 175.501 195.999 177.501 129.499 177.501V38.501C129.499 12.501 143.749 0.251 173.749 0.251H263C326.636 0.251 329.564 25.247 361.751 100.001H384z" />
292
+ <glyph glyph-name="expeditedssl"
293
+ unicode="&#xF23E;"
294
+ horiz-adv-x="496" d=" M248 404.6C130.6 404.6 35.4 309.4 35.4 192S130.6 -20.6 248 -20.6S460.6 74.6 460.6 192S365.4 404.6 248 404.6zM150.6 271.7C150.6 325.4 194.3 369.1 248 369.1S345.4 325.4 345.4 271.7V245.1C345.4 240.1 341.5 236.2 336.5 236.2H318.8C313.8 236.2 309.9000000000001 240.1 309.9000000000001 245.1V271.7C309.9000000000001 353.8 185.9 353.8 185.9 271.7V245.1C185.9 240.1 182 236.2 177 236.2H159.3000000000001C154.3000000000001 236.2 150.4 240.1 150.4 245.1V271.7zM389.7 68C389.7 58.3 381.7 50.3 372 50.3H124C114.3 50.3 106.3 58.3 106.3 68V209.7C106.3 219.4 114.3 227.4 124 227.4H372C381.7 227.4 389.7 219.4 389.7 209.7V68zM141.7 205.3V72.4C141.7 69.9 139.8 68 137.3 68H128.4C125.9 68 124 69.9 124 72.4V205.3C124 207.8 125.9 209.7 128.4 209.7H137.3C139.8 209.7 141.7 207.8 141.7 205.3zM283.4 156.6C283.4 143.6 276.2 132.2000000000001 265.7 126.2000000000001V94.6C265.7 89.6 261.8 85.7000000000001 256.8 85.7000000000001H239.1C234.1 85.7000000000001 230.2 89.6 230.2 94.6V126.2000000000001C219.7 132.3000000000001 212.5 143.6 212.5 156.6C212.5 176.3 228.3000000000001 192 247.9000000000001 192S283.4000000000001 176.2000000000001 283.4000000000001 156.6zM248 440C111 440 0 329 0 192S111 -56 248 -56S496 55 496 192S385 440 248 440zM248 -38.3C121 -38.3 17.7 65 17.7 192S121 422.3 248 422.3S478.3 319 478.3 192S375 -38.3 248 -38.3z" />
295
+ <glyph glyph-name="facebook-f"
296
+ unicode="&#xF39E;"
297
+ horiz-adv-x="264" d=" M76.7 -64V165H0V256H76.7V327.7C76.7 405.6 124.3 448 193.8 448C227.1 448 255.7 445.5 264 444.4V363H215.8C178 363 170.7 345 170.7 318.7V256H256L244.3 165H170.7V-64" />
298
+ <glyph glyph-name="facebook-messenger"
299
+ unicode="&#xF39F;"
300
+ horiz-adv-x="448" d=" M224 416C15.9 416 -77.5 170 84.6 47.4V-32L160.3 10C302.5 -29.8 445.7 69.9 445.7 208.7C445.8 323.2 346.5 416 224 416zM247.4 137.9L190 197.5L79.6 136.4L200.7 264.9L258.1 205.3L368.5 266.4L247.4 137.9z" />
301
+ <glyph glyph-name="facebook-square"
302
+ unicode="&#xF082;"
303
+ horiz-adv-x="448" d=" M448 368V16C448 -10.5 426.5 -32 400 -32H314.7V145.2H375.3L384 212.8H314.7V256C314.7 275.6 320.1 288.9 348.2 288.9H384V349.3C377.8 350.1 356.6 352 331.8 352C280.2 352 244.8 320.5 244.8 262.6V212.7H184V145.1H244.9V-32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368z" />
304
+ <glyph glyph-name="facebook"
305
+ unicode="&#xF09A;"
306
+ horiz-adv-x="448" d=" M448 391.3V-7.2C448 -20.9 436.9 -31.9 423.3 -31.9H309.1V141.5H367.3L376 209.1H309V252.3C309 271.9 314.4 285.2000000000001 342.5 285.2000000000001H378.3V345.7000000000001C372.1 346.5 350.9000000000001 348.4000000000001 326.1 348.4000000000001C274.5 348.4000000000001 239.1 316.9000000000001 239.1 259V209.1H180.7V141.5H239.1V-32H24.7C11.1 -32 0 -20.9 0 -7.3V391.3C0 404.9 11.1 416 24.7 416H423.2C436.9 416 448 404.9 448 391.3z" />
307
+ <glyph glyph-name="firefox"
308
+ unicode="&#xF269;"
309
+ horiz-adv-x="480" d=" M478.1 212.7C477.4 217.2 476.7 219.8 476.7 219.8S474.9 217.8 472.0000000000001 213.9C471.1000000000001 224.6 469.2 235.1 466.2 245.5C462.5000000000001 258.4 457.7 270.9 451.7 282.9C447.9000000000001 290.9 443.5000000000001 298.5 438.4000000000001 305.7C436.6 308.4 434.7000000000001 311.1 432.8 313.6C424 328 413.8 336.9 402.1 353.6C394.5 366.4 389.2000000000001 380.5 386.7000000000001 395.2C383.5000000000001 386.3 381.0000000000001 377.2 379.3000000000001 367.9C367.2000000000001 380.1 356.8000000000001 388.7 350.4000000000001 394.6C319.4 423.8 323 438.9 323 438.9S264.7 373.8 289.9 306C298.6 283 313.7 262.9 333.3 248.1C357.7 227.9 384.1 212.1 398 171.5C386.8 192.8 369.8999999999999 210.7 349.2 223C355.3999999999999 208.3 358.5999999999999 192.4 358.5 176.5C358.5 115.5 308.8999999999999 66 247.9 66.1C239.6 66.1 231.4 67 223.4 68.9C213.9 70.7000000000001 204.7 73.8 196 78.2000000000001C183.0999999999999 86.0000000000001 172 96.3000000000001 163.1999999999999 108.5000000000001L163 108.8000000000001L165 108.1000000000001C169.5999999999999 106.5000000000001 174.1999999999999 105.3000000000001 179 104.4000000000001C197.6999999999999 100.4000000000001 217.3 102.7000000000001 234.6 111.0000000000001C252.1 120.7000000000001 262.5999999999999 127.9000000000001 271.2 125.0000000000001H271.3999999999999C279.7999999999999 122.3000000000001 286.3999999999999 130.5000000000001 280.3999999999999 139.0000000000001C270 152.4000000000001 252.9999999999999 159.0000000000001 236.2 156.0000000000001C218.6999999999999 153.5000000000001 202.6999999999999 141.0000000000001 179.7999999999999 153.1000000000001C178.2999999999999 153.9000000000002 176.8999999999999 154.7000000000002 175.4999999999999 155.6000000000001C173.8999999999999 156.5000000000001 180.3999999999999 154.3000000000001 178.8999999999999 155.3000000000001C173.8999999999999 157.8000000000001 169.0999999999999 160.7000000000001 164.4999999999999 163.9000000000002C164.1999999999999 164.2000000000002 167.9999999999999 162.8000000000001 167.5999999999999 163.1000000000001C161.6999999999999 167.1000000000001 156.5999999999999 172.3000000000001 152.5999999999999 178.3000000000001C148.4999999999999 185.7000000000001 148.0999999999999 194.7000000000001 151.5999999999999 202.4000000000001C153.6999999999999 206.2000000000001 156.9999999999999 209.3000000000001 160.8999999999999 211.1000000000001C163.8999999999999 209.6000000000001 165.6999999999999 208.5000000000001 165.6999999999999 208.5000000000001S164.3999999999999 211.0000000000001 163.5999999999999 212.3000000000001C163.9 212.4000000000001 164.0999999999999 212.3000000000001 164.4 212.5000000000001C167 211.4000000000001 172.7 208.5000000000001 175.8 206.7000000000001C177.9 205.6000000000001 179.6 204.0000000000001 181 202.0000000000001C181 202.0000000000001 182 202.5000000000001 181.3 204.7000000000001C180.2 207.4000000000001 178.4 209.7000000000001 175.9 211.3000000000001H176.0999999999999C178.4 210.1000000000001 180.5999999999999 208.7000000000001 182.6999999999999 207.2000000000001C184.5999999999999 211.6000000000001 185.5 216.4000000000001 185.2999999999999 221.2000000000001C185.4999999999999 223.8000000000001 185.0999999999999 226.5000000000001 184.1999999999999 229.0000000000001C183.3999999999999 230.6000000000001 184.6999999999999 231.2000000000001 186.0999999999999 229.5000000000001C185.9 230.8000000000002 185.4 232.0000000000001 184.9 233.2000000000001V233.3000000000001S185.7 234.4000000000001 186.0999999999999 234.8000000000001C187.0999999999999 235.8000000000001 188.1999999999999 236.7000000000001 189.5 237.5000000000001C196.6999999999999 242.0000000000001 204.3 245.9000000000001 212.1999999999999 249.1000000000001C218.5999999999999 251.9000000000001 223.8999999999999 254.0000000000001 225 254.7000000000001C226.6 255.7000000000001 228.1 256.9000000000001 229.5 258.2000000000001C234.8 262.7000000000001 238.5 269.0000000000001 239.7 275.9000000000001C239.8 276.8000000000001 239.8999999999999 277.7000000000001 240 278.7000000000001V280.2000000000001C239.1 283.7000000000001 233.1 286.3000000000001 201.5999999999999 289.3000000000001C190.5 291.1000000000001 181.5999999999999 299.4000000000001 179.0999999999999 310.4000000000001V310.3000000000001C178.6999999999999 309.2000000000001 178.1999999999999 308.0000000000001 177.7999999999999 306.8000000000001C178.1999999999999 308.0000000000001 178.5999999999999 309.1000000000001 179.0999999999999 310.3000000000001V310.5000000000001C185.0999999999999 326.2000000000001 195.9 339.6 209.9 348.8000000000001C210.7 349.5000000000001 206.7 348.6 207.5 349.3000000000001C210.1999999999999 350.6 212.9 351.8000000000001 215.6999999999999 352.8000000000001C217.0999999999999 353.4000000000001 209.6999999999999 356.2000000000001 203.0999999999999 355.5000000000001C199.0999999999999 355.3000000000001 195.0999999999999 354.3000000000001 191.4 352.7000000000001C193 354.0000000000001 197.5999999999999 355.8000000000001 196.5 355.8000000000001C188.0999999999999 354.2000000000001 180 351.1 172.5999999999999 346.8000000000001C172.5999999999999 347.6 172.6999999999999 348.3000000000001 173.0999999999999 349.0000000000001C167.1999999999999 346.5000000000001 162.0999999999999 342.5000000000001 158.0999999999999 337.5000000000001C158.1999999999999 338.4000000000001 158.2999999999999 339.3000000000001 158.2999999999999 340.2000000000001C155.5999999999999 338.2000000000001 153.0999999999999 335.9000000000001 150.9999999999999 333.3000000000001L150.8999999999999 333.2000000000001C133.4999999999999 339.9000000000001 114.5999999999999 341.5000000000001 96.2999999999999 337.9000000000001L96.0999999999999 338.0000000000001H96.2999999999999C92.4999999999999 341.1 89.1999999999999 344.7000000000001 86.5999999999999 348.9000000000001L86.3999999999999 348.8000000000001L85.9999999999999 349.0000000000001C84.7999999999999 350.8000000000001 83.5999999999999 352.8000000000001 82.2999999999999 355.0000000000001C81.3999999999999 356.6000000000001 80.4999999999999 358.4000000000001 79.5999999999999 360.2000000000001C79.5999999999999 360.3000000000001 79.4999999999999 360.4000000000001 79.3999999999999 360.4000000000001C78.9999999999999 360.4000000000001 78.7999999999999 358.7000000000001 78.4999999999999 359.1000000000001V359.2000000000001C75.2999999999999 367.5000000000001 73.7999999999999 376.4000000000001 74.0999999999999 385.4000000000001L73.8999999999999 385.3000000000001C68.7999999999999 381.8000000000001 64.8999999999999 376.7000000000001 62.7999999999999 370.8000000000001C61.8999999999999 368.7000000000001 61.1999999999999 367.5000000000001 60.5999999999999 366.3000000000001V366.8000000000001C60.6999999999999 367.9000000000001 61.1999999999999 370.1000000000001 61.0999999999999 369.9000000000001C60.9999999999999 369.7000000000001 60.8999999999999 369.6000000000001 60.7999999999999 369.5000000000001C59.2999999999999 367.8000000000001 57.8999999999999 365.8000000000001 56.8999999999999 363.7000000000001C55.9999999999999 361.8000000000001 55.1999999999999 359.8000000000001 54.5999999999999 357.8000000000001C54.4999999999999 357.5000000000001 54.5999999999999 358.1 54.5999999999999 358.8000000000001S54.6999999999999 360.8000000000001 54.5999999999999 360.5000000000001L54.2999999999999 359.8000000000001C47.5999999999999 344.9000000000001 43.3999999999999 329.0000000000001 41.8999999999999 312.7000000000001C41.4999999999999 309.9000000000001 41.2999999999999 307.1 41.3999999999999 304.4000000000001V304.2000000000001C36.5999999999999 299.0000000000001 32.3999999999999 293.2000000000001 28.6999999999999 287.1C16.5999999999999 266.7000000000001 7.5999999999999 244.6000000000001 1.8999999999999 221.5000000000001C5.8999999999999 230.3000000000001 10.6999999999999 238.7000000000001 16.1999999999999 246.6000000000001C5.5 219.5 0 190.6 0 161.4C1.8 170 4.2 178.4 7 186.7C5.3 152.2 11.9 117.8 26.4 86.4C45.8 42.9 78 6.4 118.7 -18.3C135.3 -29.5 153.4 -38.2 172.5 -44.1C175 -45 177.6 -45.9 180.2 -46.8C179.4 -46.5 178.6 -46.1 177.8 -45.8C200.4 -52.6 224 -56.1 247.6 -56.1C331.3 -56.1 358.9 -24.2 361.4 -21.1C365.5 -17.4 368.9 -12.9 371.3 -7.8C372.9 -7.1 374.5 -6.4 376.2 -5.7L377.2 -5.2L379.0999999999999 -4.3C391.7 1.6 403.5999999999999 9.1 414.3999999999999 17.8C430.7 29.5 442.2999999999999 46.5 447.2999999999999 65.9C450.2999999999999 73.0000000000001 450.3999999999999 80.9 447.6999999999999 88.1C448.5999999999999 89.5 449.3999999999999 90.9 450.3999999999999 92.4C468.3999999999999 121.3 478.5999999999999 154.3 479.9999999999999 188.3000000000001V191.1000000000001C479.9999999999999 198.4000000000001 479.3999999999999 205.6000000000001 478.0999999999999 212.7000000000001z" />
310
+ <glyph glyph-name="first-order"
311
+ unicode="&#xF2B0;"
312
+ horiz-adv-x="448" d=" M12.9 218.8C13 218.9 13.1 219.1 13.2 219.2C13.2 219.1 13.2 218.9 13.1 218.8H12.9zM224 351.4C216.9 351.4 209.4 350.8 202.6 349.7L206.3 282.3L184.3 346.3C170 342.6 156.6 336.9 144.3 329.7000000000001L173.7 268.3L128.6 319.2000000000001C117.2 310.3 106.9 300.1 98 288.3L148.6 242.9L87.5 272.6C80.4 260.3 74.6 246.9 70.9 232.6L135.2 210L67.2 214C66.3 206.9 65.8 199.4 65.8 192S66.4 177.4 67.2 170.3L134.9 174.3L70.9 151.7C74.6 137.4 80.3 124 87.5 111.4L148.6 141.1L97.7 96C106.6 84.3 116.8 73.7 128.6 65.1L173.5 116L144 54.6C156.3 47.2 169.7 41.5 184 37.7L206.3 102.3000000000001L202.3 34.3000000000001C209.4 33.2 216.9 32.6000000000001 224 32.6000000000001C231.4 32.6000000000001 238.6 33.2000000000001 245.7 34.3000000000001L241.7 102.9000000000001L264.3 37.8000000000001C278.6 41.8000000000001 292 47.2 304.3 54.7L274.9 116L319.8 65.1C331.5 74 341.8 84.2000000000001 350.4 96L299.8 141.1L360.9 111.7000000000001C368 124.0000000000001 373.8 137.4 377.5 152.0000000000001L313.5 174.3000000000001L380.9 170.3000000000001C382 177.4000000000001 382.3 184.6000000000001 382.3 192.0000000000001S382 206.9000000000001 380.9 214.0000000000001L313.2 210.0000000000001L377.2 232.3000000000001C373.5 246.6000000000001 368.1 260.3000000000001 360.6 272.6000000000001L299.7 242.9000000000001L350.3 288.3000000000001C341.4000000000001 300.0000000000001 331.2 310.3000000000001 319.7 319.2000000000001L274.6 268.3000000000001L304 329.4000000000001C291.7 336.8000000000001 278.3 342.5000000000001 264 346.3000000000001L241.7 282L245.7 349.7C238.6 350.9 231.4 351.4 224 351.4zM443.4 320V64L224 -64L4.6 64V320L224 448L443.4 320zM426.3 309.7L224 427.1L21.7 309.7V74.6L224 -43.1L426.3 74.6V309.7zM224 410.9L411.7 301.5V82.6L224 -26.9L36.3 82.6V301.4L224 410.9zM224 360C131.7 360 57.1 284.9 57.1 192C57.1 99.4 131.7 24.3 224 24.3C316 24.3 390.9 99.4 390.9 192C390.9 284.9 316 360 224 360z" />
313
+ <glyph glyph-name="firstdraft"
314
+ unicode="&#xF3A1;"
315
+ horiz-adv-x="384" d=" M384 256H320V128H192V0H0V25.6H166.4V153.6H294.4V281.6H384V256zM358.4 217.6V89.6H230.4V-38.4H64V-64H256V64H384V217.6H358.4zM384 25.6H294.4V-64H320V0H384V25.6zM0 448V64H128V192H256V320H384V448H0z" />
316
+ <glyph glyph-name="flickr"
317
+ unicode="&#xF16E;"
318
+ horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM144.5 129C109.4 129 81 157.4 81 192.5S109.4 256 144.5 256S208 227.6 208 192.5S179.6 129 144.5 129zM303.5 129C268.4 129 240 157.4 240 192.5S268.4 256 303.5 256S367 227.6 367 192.5S338.6 129 303.5 129z" />
319
+ <glyph glyph-name="fly"
320
+ unicode="&#xF417;"
321
+ horiz-adv-x="384" d=" M197.8 20.2C210.7 8.5 231.5 -13.1 231 -30.5C231 -31.3 230.9 -32.1 230.9 -33C229.1 -52.8 212.1 -64.1 191.8 -64C166.8 -63.9 151.9 -47.2 153.1 -28.2C154.1 -12 173.6 8.5 185.5 19.4C187.8000000000001 21.5000000000001 188.2 22.1 191.1 23.0000000000001C194.5 23.0000000000001 195 22.7 197.8 20.2zM331.9 380.7C315.6 406.4 293.3 421.3 268.6 432.8C243.1 443.5 214 448.2 192 448C147.9 448 120.8 434.8 110.9 430.7C57.3 402.8 26.5 360.8 28 289.4C35.1 207.2 125 113.4 183.8 55.6C185.5 54 188.3 51.1 190 50.5L193.3 50.4C195.4 51.1 195.1 50.9 196.8 52.5C249.1 101.7 337.5 198.3 352.7000000000001 268.2C359.7000000000001 307.4 355.8000000000001 340.7 331.9000000000001 380.7zM186.8 96.1C158.8 147.2000000000001 121.6 226.8 117.5 285.1C114.1 332.6 128.9 416.3 186.8 421.8V96.1zM328.7 268C312.3 211.2 251.4 140 209.8 97.7C237.6 149.6 275 231 277 289.6C278.6 335.5 267.2 395.4 229 421C317.8 402.7 344.5 322.9 328.7 268z" />
322
+ <glyph glyph-name="font-awesome-alt"
323
+ unicode="&#xF35C;"
324
+ horiz-adv-x="448" d=" M397.8 380.2C405.6 380.2 412.1 373.6 412.1 365.9V18.3C412.1 10.4999999999999 405.5 3.9999999999999 397.8 3.9999999999999H50.2C42.4 3.9999999999999 35.9 10.6 35.9 18.3V365.8C35.9 373.6 42.5 380.1 50.2 380.1H397.8M397.8 416H50.2C22.7 416 0 393.3 0 365.8V18.2C0 -9.3 22.7 -32 50.2 -32H397.8C425.3 -32 448 -9.3 448 18.2V365.8C448 393.3 425.3 416 397.8 416zM339.3 276.8C333.3 276.8 309.4000000000001 261.3 286.7 261.3C282.5 261.3 278.3 261.9 274.2 263.7000000000001C254.5 271.5 237.2 277.4 215.1 277.4C194.8 277.4 173.3 270.8 155.4 263.7000000000001C153.6 263.1 151.8 262.5 150.6 261.9V279.8C158.4 285.8 163.1 294.7000000000001 163.1 305.5C163.1 323.4 148.8 337.8 130.8 337.8S98.5 323.5 98.5 305.5C98.5 295.3 103.3 285.8 111 279.8V67.7000000000001C111 56.9 120 48.0000000000001 130.7 48.0000000000001C139.7 48.0000000000001 146.8 54.0000000000001 149.2 61.7000000000001V63C149.8 64.8 149.8 66 149.8 67.8V112C151 112 152.2 112.6 152.8 113.2C172.5 121.6 195.8 129.9 218.5 129.9C249.6 129.9 261.5 113.8 287.8 113.8C306.3 113.8 324.2 120.4 339.8 127.5C344 129.3 347 131.1 347 135.3V269.7C348.8 273.8 344.7 276.8 339.3 276.8z" />
325
+ <glyph glyph-name="font-awesome-flag"
326
+ unicode="&#xF425;"
327
+ horiz-adv-x="448" d=" M444.373 88.576C444.373 81.408 438.229 78.336 431.061 75.264C402.389 62.976 371.669 51.712 338.901 51.712C292.821 51.712 271.317 80.384 216.021 80.384C176.085 80.384 134.101 66.048 100.309 50.688C98.261 49.664 96.213 49.664 94.165 48.64V-29.184C94.165 -50.5890000000001 78.043 -64 60.373 -64C40.9169999999999 -64 25.5569999999999 -48.64 25.5569999999999 -29.184V345.6C12.245 355.8400000000001 3.029 372.224 3.029 390.656C3.029 422.4 28.629 448 60.373 448S117.717 422.4 117.717 390.656C117.717 372.224 109.525 355.8400000000001 95.189 345.6V313.856C99.313 315.23 153.957 342.528 209.877 342.528C275.147 342.528 307.553 314.88 336.853 314.88C375.765 314.88 418.773 342.528 429.0130000000001 342.528C437.2050000000001 342.528 444.3730000000001 336.384 444.3730000000001 329.216V88.576z" />
328
+ <glyph glyph-name="font-awesome"
329
+ unicode="&#xF2B4;"
330
+ horiz-adv-x="448" d=" M397.8 416H50.2C22.7 416 0 393.3 0 365.8V18.2C0 -9.3 22.7 -32 50.2 -32H397.8C425.3 -32 448 -9.3 448 18.2V365.8C448 393.3 425.3 416 397.8 416zM352.4000000000001 131.7C352.4000000000001 127.5 348.8 125.7 344.6 123.9C327.9000000000001 116.7 310 110.2 290.8 110.2C263.9000000000001 110.2 251.4 126.9 219.1 126.9C195.8 126.9 171.3 118.5 151.6 109.6C150.4 108.9999999999999 149.2 108.9999999999999 148 108.4V63C148 61.2 148 59.4 147.4 58.2V57C145 48.6 137.2000000000001 42.7 128.3000000000001 42.7C117.0000000000001 42.7 108 51.7 108 63V281.6C100.2000000000001 287.6 94.9000000000001 297.1 94.9000000000001 307.9C94.9000000000001 326.4 109.8000000000001 341.4 128.4 341.4C146.9 341.4 161.9 326.5 161.9 307.9C161.9 297.1 157.1 287.6 148.8000000000001 281.6V263.1C150.6000000000001 263.7 152.4 264.3 154.2000000000001 265.5C172.7000000000001 273.3 194.8000000000001 279.8 215.7000000000001 279.8C238.4000000000001 279.8 256.3000000000001 273.8 276.6 266.1C280.8 264.3 285 263.7000000000001 289.7000000000001 263.7000000000001C312.4000000000001 263.7000000000001 337.5000000000001 279.8 343.5000000000001 279.8C348.3000000000001 279.8 352.5000000000001 276.2000000000001 352.5000000000001 272V131.7z" />
331
+ <glyph glyph-name="fonticons-fi"
332
+ unicode="&#xF3A2;"
333
+ horiz-adv-x="384" d=" M114.4 224H206.8L191.6 172.8H115.2V15C115.2 7 112.4 5.8 119.6 5L179.2 -0.6V-35H0V0.2L29.2 3C36.4 3.8 38.4 6.2 38.4 13.8V169.6C38.4 172.8 34.4 172.8 30.4 172.8H0V224H38.4V252.8C38.4 320.8 74.8 348.8 144.4 348.8C191.2 348.8 233.2 337.6 233.2 276.4L163.6 268C164 293.6 157.6 299.6 141.2 299.6C116 299.6 115.2 286 115.2 262V230C115.2 226.8 110.4 224 114.4 224zM384 -35H243.2V-0.6L271.2 3C278.4 3.8 281.6 5.4 281.6 13V161C281.6 166.6 277.6 170.2 272.4 171.8L239.2 180.6L248.4 221H358.4V13C358.4 5 354.8 4.2 362.4 3L384 -0.6V-35zM354 312.2L366.4 266.6L356.4 256.6L313.6 279.4L270.8 256.6L260.8 266.6L273.2 312.2L243.2 348.6L248 358.6H286L307.2 397H320L341.2 358.6H379.2L384 345.4L354 312.2z" />
334
+ <glyph glyph-name="fonticons"
335
+ unicode="&#xF280;"
336
+ horiz-adv-x="448" d=" M0 416V-32H448V416H0zM167.4 220H234.8L223.7 182.7H168V69.8C168 63.9999999999999 166 63.1 171.2 62.4999999999999L214.7 58.3999999999999V33.2999999999999H84V59L105.3 61C110.5 61.6 112 63.3 112 68.9V180.3C112 182.6 109.1 182.6 106.2 182.6H84V220H112V241C112 290.6 138.5 311 189.3 311C223.4 311 254 302.8 254 258.2L203.3 252.1C203.6 270.8 198.9 275.1 187 275.1C168.6 275.1 168 265.2 168 247.7V224.4C168 222 164.5 220 167.4 220zM364 33.3H261.3V58.4L281.7 61.0000000000001C286.9 61.6000000000001 289.3 62.7000000000001 289.3 68.3000000000001V176.2C289.3 180.3 286.4000000000001 182.9 282.6 184.1L258.4000000000001 190.5L265.1 220H345.3V68.3C345.3 62.4999999999999 342.7 61.9 348.2 60.9999999999999L363.9 58.3999999999999V33.2999999999999zM342.1 288.8L351.1 255.6L343.8 248.3L312.6 264.9L281.4000000000001 248.3L274.1 255.6L283.1 288.8L261.3 313L264.8 322.6H292.5L308 350.6H317.3L332.8 322.6H360.5L364 313L342.1 288.8z" />
337
+ <glyph glyph-name="fort-awesome-alt"
338
+ unicode="&#xF3A3;"
339
+ horiz-adv-x="512" d=" M211.7 206.9V155.2C211.7 153.1 210.1 151.5 208 151.5H185.8C183.7 151.5 182.1 153.1 182.1 155.2V206.9C182.1 209 183.7 210.6 185.8 210.6H208C210.1 210.6 211.7 209 211.7 206.9zM326.2 210.6H304C301.9 210.6 300.3 209 300.3 206.9V155.2C300.3 153.1 301.9000000000001 151.5 304 151.5H326.2C328.3 151.5 329.9 153.1 329.9 155.2V206.9C329.8 209 328.2 210.6 326.2 210.6zM297.1 -52.6C296.2 -52.7 295.4 -52.9 294.5 -53C293.5 -53.2 292.3999999999999 -53.3 291.3999999999999 -53.5C290.5 -53.6 289.5999999999999 -53.8 288.5999999999999 -53.9C287.5999999999999 -54 286.5999999999999 -54.2 285.5999999999999 -54.3C284.5999999999999 -54.4 283.5999999999999 -54.4999999999999 282.7 -54.6C281.7 -54.7 280.8 -54.8 279.8 -54.9C278.8 -55 277.7 -55.1 276.7 -55.2C275.8 -55.3 274.8999999999999 -55.4 274 -55.4C272.8999999999999 -55.5 271.7 -55.5 270.6 -55.6C269.8 -55.6 268.9 -55.7 268.1 -55.7C266.8 -55.8 265.5 -55.8 264.2 -55.8C263.5 -55.8 262.8 -55.9 262.1 -55.9C260.1 -55.9 258.1 -56.0000000000001 256.1 -56.0000000000001S252.1 -56.0000000000001 250.1 -55.9C249.4 -55.9 248.7 -55.9 248 -55.8C246.7 -55.8 245.4 -55.7 244.1 -55.7C243.3 -55.7 242.4 -55.6 241.6 -55.6C240.5 -55.4999999999999 239.3 -55.4999999999999 238.2 -55.4C237.3 -55.3 236.4 -55.3 235.5 -55.2C234.5 -55.1 233.4 -55 232.4 -54.9C231.4 -54.8 230.5 -54.7 229.5 -54.6C228.5 -54.4999999999999 227.5 -54.4 226.6 -54.3C225.6 -54.1999999999999 224.6 -54.1 223.6 -53.9C222.7 -53.8 221.8 -53.6 220.8 -53.5C219.8 -53.4 218.7 -53.2 217.7 -53C216.8 -52.9 216 -52.7 215.1 -52.6C149.5 -41.7 92.6 -4.9 55.1 46.8C54.9 46.9999999999999 54.8 47.3 54.6 47.4999999999999C53.8 48.6 53 49.6999999999999 52.3 50.8C52 51.1999999999999 51.7 51.6 51.5 51.9999999999999C50.8 53.1 50.1 54.1 49.4 55.1999999999999C49.1 55.6999999999999 48.8 56.0999999999999 48.5 56.5999999999999C47.8 57.6999999999999 47.1 58.6999999999999 46.5 59.7999999999999C46.2 60.2999999999999 45.9 60.6999999999999 45.6 61.1999999999999C44.9 62.2999999999999 44.3 63.3999999999999 43.6 64.4999999999999C43.4 64.8999999999999 43.1 65.2999999999999 42.9 65.6999999999999C40.5 69.6999999999999 38.3 73.7999999999999 36.1 77.8999999999999C36 78.0999999999999 35.9 78.1999999999999 35.8 78.3999999999999C35.2 79.4999999999999 34.7 80.5999999999999 34.1 81.6999999999999C33.8 82.2999999999999 33.5 82.7999999999999 33.3 83.3999999999999C32.8 84.3999999999999 32.3 85.4999999999999 31.8 86.4999999999999C31.5 87.1999999999999 31.2 87.7999999999999 30.9 88.4999999999999C30.4 89.4999999999999 30 90.4999999999999 29.5 91.4999999999999L28.6 93.5999999999999C28.2 94.5999999999999 27.7 95.5999999999999 27.3 96.5999999999999C27 97.2999999999999 26.7 98.0999999999999 26.4 98.7999999999999L25.2 101.7999999999999C24.9 102.5999999999999 24.6 103.2999999999999 24.3 104.0999999999999C23.9 105.0999999999999 23.5 106.0999999999999 23.2 107.0999999999999C22.9 107.9999999999999 22.6 108.8999999999999 22.2 109.8999999999999C21.6 111.4999999999999 21.1 113.1999999999999 20.5 114.7999999999999C20.2 115.6999999999999 19.9 116.5999999999999 19.6 117.5999999999999C19.3 118.4999999999999 19.1 119.3999999999999 18.8 120.2999999999999C18.5 121.1999999999999 18.2 122.1999999999999 18 123.0999999999999C17.7 123.9999999999999 17.5 124.8999999999999 17.2 125.7999999999999C16.9 126.7999999999999 16.7 127.6999999999999 16.4 128.6999999999999C16.2 129.5999999999999 15.9 130.4999999999999 15.7 131.3999999999999C15.4 132.3999999999999 15.2 133.3999999999999 15 134.3999999999999C14.8 135.2999999999999 14.6 136.0999999999999 14.4 136.9999999999999C14.2 138.0999999999999 13.9 139.1999999999999 13.7 140.1999999999999C13.5 140.9999999999999 13.4 141.7999999999999 13.2 142.5999999999999C12.9 143.8999999999999 12.7 145.2999999999999 12.4 146.5999999999999C12.3 147.1999999999999 12.2 147.6999999999999 12.1 148.2999999999999L11.2 153.9999999999998C11.1 154.5999999999999 11 155.2999999999999 10.9 155.8999999999998C10.7 157.1999999999998 10.5 158.4999999999998 10.4 159.7999999999998C10.3 160.5999999999998 10.2 161.2999999999998 10.1 162.0999999999998C10 163.2999999999998 9.8 164.4999999999998 9.7 165.6999999999998C9.6 166.4999999999998 9.5 167.2999999999999 9.5 168.0999999999998C9.4 169.2999999999998 9.3 170.4999999999998 9.2 171.5999999999998C9.1 172.3999999999998 9.1 173.1999999999998 9 173.9999999999998C8.9 175.1999999999998 8.8 176.3999999999998 8.8 177.6999999999998C8.8 178.4999999999998 8.7 179.1999999999998 8.7 179.9999999999998C8.6 181.2999999999998 8.6 182.6999999999998 8.5 183.9999999999998C8.5 184.6999999999998 8.5 185.2999999999998 8.4 185.9999999999998C8.4 187.9999999999998 8.3 189.9999999999998 8.3 191.9999999999998C8.3 245.4999999999998 25.2 294.9999999999998 54.1 335.5999999999998C56.4 338.7999999999998 58.8 341.9999999999998 61.2 345.0999999999998C66.1 351.2999999999998 71.3 357.3999999999998 76.8 363.0999999999998C79.5 365.9999999999998 82.3 368.7999999999998 85.2 371.4999999999998C88.1 374.1999999999998 91 376.8999999999998 94 379.4999999999998C98.5 383.3999999999998 103.1 387.0999999999998 107.9 390.6999999999998C109.5 391.8999999999998 111.1 393.0999999999998 112.7 394.1999999999998C140 413.8 171.7 427.9 206 435C222.1 438.3 238.9 440 256 440S289.8 438.3 306 435C340.3 428 372 413.9 399.6 394.3C401.2000000000001 393.1 402.8 392 404.4000000000001 390.8C409.2000000000001 387.2 413.8 383.5 418.3 379.6C430.3 369.2 441.3 357.7 451.1 345.2C453.6 342.1 455.9 338.9 458.2 335.7C487.1 295 504 245.5 504 192C504 190 504 188 503.9 186C503.9 185.3 503.9 184.7 503.8 184C503.8 182.7 503.6999999999999 181.3 503.6 180C503.6 179.2 503.4999999999999 178.5 503.4999999999999 177.7C503.3999999999999 176.5 503.3999999999999 175.3 503.3 177C503.1999999999999 176.2 503.1999999999999 175.4 503.1 174.6C502.9999999999999 173.4 502.9 172.2000000000001 502.8 171.1C502.6999999999999 170.3 502.6 169.5 502.6 168.7000000000001C502.4999999999999 167.5000000000001 502.3 166.3000000000001 502.2 165.1C502.1 164.3 502 163.6 501.9 162.8C501.7 161.5 501.5 160.2 501.4 158.9C501.3 158.3 501.2 157.6 501.1 157.0000000000001L500.2 151.3000000000001C500.1 150.7000000000001 500 150.2000000000001 499.9 149.6000000000001C499.7 148.3000000000001 499.4 146.9000000000001 499.1 145.6000000000001C498.9 144.8000000000001 498.8 144.0000000000001 498.6 143.2000000000001C498.4 142.1000000000001 498.1 141.0000000000001 497.9 140.0000000000001C497.7 139.1000000000001 497.5 138.3000000000001 497.3 137.4000000000001C497.1 136.4000000000001 496.8 135.4000000000001 496.6 134.4000000000001C496.4 133.5000000000001 496.1 132.6000000000001 495.9 131.7000000000001C495.6 130.7000000000001 495.4 129.8000000000001 495.1 128.8000000000001C494.9 127.9000000000002 494.6 127.0000000000001 494.3 126.1000000000001C493.9999999999999 125.2000000000002 493.6999999999999 124.2000000000002 493.4999999999999 123.3000000000001C493.1999999999999 122.4000000000002 492.9999999999999 121.5000000000001 492.6999999999999 120.6000000000001C492.3999999999999 119.7000000000002 492.0999999999999 118.8000000000001 491.8 117.8000000000001C491.3 116.2000000000001 490.6999999999999 114.5000000000001 490.1 112.9000000000002C489.8 112.0000000000002 489.4999999999999 111.1000000000001 489.1 110.1000000000001C488.7 109.1000000000001 488.4 108.1000000000001 487.9999999999999 107.1000000000001C487.6999999999999 106.3000000000001 487.3999999999999 105.6000000000001 487.1 104.8000000000001L485.9 101.8000000000001C485.6 101.1000000000001 485.3 100.3000000000001 485 99.6000000000001C484.6 98.6000000000001 484.2 97.6000000000001 483.7 96.6000000000001L482.8 94.5000000000001C482.4 93.5000000000001 481.9 92.5000000000001 481.4 91.5000000000001C481.1 90.8000000000001 480.8 90.2000000000001 480.5000000000001 89.5000000000001C480.0000000000001 88.5000000000001 479.5000000000001 87.4000000000001 479.0000000000001 86.4000000000001C478.7 85.8000000000001 478.4 85.3000000000001 478.2 84.7000000000001C477.6 83.6000000000001 477.1 82.5000000000001 476.5000000000001 81.4000000000001C476.4 81.2000000000001 476.3000000000001 81.1000000000001 476.2 80.9000000000001C474.0000000000001 76.8000000000001 471.8000000000001 72.7000000000001 469.4 68.7000000000001C469.2 68.3000000000001 468.9 67.9000000000001 468.7 67.5000000000001C468.0000000000001 66.4000000000001 467.4 65.3000000000001 466.7 64.2000000000001C466.4 63.7000000000001 466.1 63.3000000000001 465.8000000000001 62.8000000000001C465.1000000000001 61.7000000000001 464.4000000000001 60.7000000000001 463.8000000000001 59.6000000000001C463.5000000000001 59.1000000000001 463.2 58.7000000000002 462.9000000000001 58.2000000000002C462.2000000000001 57.1000000000001 461.5000000000001 56.1000000000001 460.8000000000001 55.0000000000002C460.5000000000001 54.6000000000002 460.2 54.2000000000002 460.0000000000001 53.8000000000002C459.2 52.7000000000002 458.5000000000001 51.6000000000002 457.7 50.5000000000002C457.5000000000001 50.3000000000002 457.4 50.0000000000002 457.2 49.8000000000002C419.6 -4.8999999999998 362.7000000000001 -41.5999999999998 297.1 -52.5999999999998zM414.4 33.6C427.4 46.6 438.6 60.9999999999999 448 76.4999999999999V147.8C448 149.9 446.4 151.5 444.3 151.5H422.1C420 151.5 418.4000000000001 149.8999999999999 418.4000000000001 147.8V122H388.9000000000001V266C388.9000000000001 268.1 387.3 269.7 385.2000000000001 269.7H363.1C361 269.7 359.4000000000001 268.1 359.4000000000001 266V240.1H329.9000000000001V266C329.9000000000001 268.1 328.3 269.7 326.2000000000001 269.7H304C301.9 269.7 300.3 268.1 300.3 266V240.1H270.8V266C270.8 270.8 264.3 269.7 261.3 269.7V300.4C268 302 275.1 303.2 282.1 303.2C290.9000000000001 303.2 298.9000000000001 299.7 307.5 299.7C311.2 299.7 329.9 300.6 329.9 306.2V354.6C329.9 356.7 328.3 358.3 326.2 358.3C322 358.3 314 354.8 306.8 354.8C298.9000000000001 354.8 289.9000000000001 358.3 280.5 358.3C274 358.3 267.6 357.4 261.3 356V359.9C265.7 362 268.7 366.6 268.7 371.4C268.7 388.2 243.3 388.2 243.3 371.4C243.3 366.6 246.3 361.9 250.7 359.9V269.7C247.7 269.7 241.2 270.8 241.2 266V240.1H211.7V266C211.7 268.1 210.1 269.7 208 269.7H185.8C183.7 269.7 182.1 268.1 182.1 266V240.1H152.6V266C152.6 268.1 151 269.7 148.9 269.7H126.8000000000001C124.7000000000001 269.7 123.1 268.1 123.1 266V122H93.5V147.8C93.5 149.9 91.9 151.5 89.8 151.5H67.7C65.6 151.5 64 149.9 64 147.8V76.5C73.4 61 84.6 46.6 97.6 33.6C118.2 13 142.1 -3.1 168.8 -14.4C182.7 -20.3 197 -24.7 211.7 -27.6V48.2C211.7 106.8000000000001 300.3 106.8000000000001 300.3 48.2V-27.6C315 -24.7 329.3 -20.2 343.2 -14.4C369.9 -3.1 393.8 13 414.4 33.6" />
340
+ <glyph glyph-name="fort-awesome"
341
+ unicode="&#xF286;"
342
+ horiz-adv-x="512" d=" M489.2 160.1H461.8C459.2 160.1 457.2 158.1 457.2 155.5V123.5H420.6V301.8C420.6 304.4 418.6 306.4 416 306.4H388.6C386 306.4 384 304.4 384 301.8V269.8H347.3999999999999V301.8C347.3999999999999 304.4 345.3999999999999 306.4 342.7999999999999 306.4H315.3999999999999C312.7999999999999 306.4 310.7999999999999 304.4 310.7999999999999 301.8V269.8H274.1999999999999V301.8C274.1999999999999 307.8 266.1999999999999 306.4 262.4999999999999 306.4V344.4C270.7999999999999 346.4 279.5999999999999 347.8 288.1999999999999 347.8C299.0999999999999 347.8 309.0999999999999 343.5 319.5999999999999 343.5C324.1999999999999 343.5 347.2999999999999 344.6 347.2999999999999 351.5V411.5C347.2999999999999 414.1 345.2999999999999 416.1 342.6999999999998 416.1C337.5999999999998 416.1 327.5999999999998 411.8 318.6999999999998 411.8C308.9999999999999 411.8 297.7999999999999 416.1 286.0999999999998 416.1C278.0999999999998 416.1 270.0999999999998 415 262.3999999999998 413.2000000000001V418.1C267.7999999999998 420.7000000000001 271.4999999999999 426.4000000000001 271.4999999999999 432.4000000000001C271.4999999999999 453.1 240.0999999999998 453.2 240.0999999999998 432.4000000000001C240.0999999999998 426.4000000000001 243.7999999999998 420.7000000000001 249.1999999999998 418.1V306.4C245.4999999999999 306.4 237.4999999999999 307.8 237.4999999999999 301.8V269.8H200.8999999999998V301.8C200.8999999999998 304.4 198.8999999999998 306.4 196.2999999999999 306.4H168.8999999999998C166.2999999999999 306.4 164.2999999999999 304.4 164.2999999999999 301.8V269.8H128V301.8C128 304.4 126 306.4 123.4 306.4H96C93.4 306.4 91.4 304.4 91.4 301.8V123.5H54.8V155.5C54.8 158.1 52.8 160.1 50.2 160.1H22.8C20.2 160.1 18.2 158.1 18.2 155.5V-64H201.1V32C201.1 104.6 310.8 104.6 310.8 32V-64H493.7V155.5C493.8000000000001 158.1 491.8000000000001 160.1 489.2 160.1zM201.1 164.6C201.1 162 199.1 160 196.5 160H169.1C166.5 160 164.5 162 164.5 164.6V228.6C164.5 231.2 166.5 233.2 169.1 233.2H196.5C199.1 233.2 201.1 231.2 201.1 228.6V164.6zM347.5 164.6C347.5 162 345.5 160 342.9 160H315.5C312.9 160 310.9 162 310.9 164.6V228.6C310.9 231.2 312.9 233.2 315.5 233.2H342.9C345.5 233.2 347.5 231.2 347.5 228.6V164.6z" />
343
+ <glyph glyph-name="forumbee"
344
+ unicode="&#xF211;"
345
+ horiz-adv-x="448" d=" M5.8 138.3C2 155.3 0 172.5 0 189.7C0 313 99.8 413 223.1 413C239.7 413 256.4 411 272.4 407.5C149 360.5 51.9 262 5.8 138.3zM398.7 327.5C385 345 369 360.2 350.9 372.8C201.3 328.5 84.6 210.7 41.2 60.8C53.7 42.7 69.2 25.2 86.4 11.8C129.5 163.1 247.6 283.5 398.7 327.5zM414.5 74.8C429.7 99.9 439.9 128.5 444 157.6C364.6 114.7000000000001 299 47 256.4 -32.7C286.4 -28.3 315.3 -17.4 341 -1.4C376 -14.5 411.9 -25.7 448 -35C438.7 1.5 427.6 39.5 414.5 74.8zM444.2 220.3C441.6 239.8 436.3 259 428.4 277.1C290.5 231.3 182 120.5 137.1 -18C155.2 -25.6 174.1 -30.5 193.7 -33.2C240 80.9 330.5 173.6 444.2 220.3z" />
346
+ <glyph glyph-name="foursquare"
347
+ unicode="&#xF180;"
348
+ horiz-adv-x="368" d=" M323.1 445H49.9C12.4 445 0 416.7 0 398.9V-34.9C0 -55.2 12.1 -62.6 18.2 -65C24.4 -67.5 41 -69.6 51.1 -57.9C180 91.5 182.2 94 182.2 94C185.3 97.4 185.6 97.1 189 97.1H272.4C307.5 97.1 313 122.3 316.7 136.8L365.3 379.8C373.8 422.2 363.1 445 323.1 445zM306.8 371.2L295.4000000000001 311.5C294.2000000000001 305 285.9000000000001 298.3 278.5000000000001 298.3H172.1C160.1 298.3 151.5 290 151.5 278V265C151.5 253 160.1 244.4 172.1 244.4H262.5C270.8 244.4 279.1 235.2 277.3 226.2C275.5 217.3 266.8 172.4 265.9000000000001 167.4C265.0000000000001 162.5000000000001 259.1 153.9 249.0000000000001 153.9H175.5C162 153.9 158.3000000000001 152.1 149 141.3C149 141.3 140.1 129.9 59.5 33C58.6 32.1 57.7 32.4 57.7 33.3V372.1C57.7 379.8 64.5 388.7 74.3 388.7H293.3000000000001C301.5000000000001 388.7 308.9000000000001 381 306.8000000000001 371.2z" />
349
+ <glyph glyph-name="free-code-camp"
350
+ unicode="&#xF2C5;"
351
+ horiz-adv-x="576" d=" M69.3 303.5C28.3 235 32.9 140.5 70.3 76.5C92.5 38.3 120 24.1 120 10C120 3.2 114 -3 107.2 -3C87.7 -3 8 72.5 8 194.8C8 306.3 86 380.8 105.1 380.8C111.1 380.8 120 376 120 369.7000000000001C120 357 91.7 341.1 69.3 303.5zM265.1 89.7C269.6 87.9 277.4000000000001 84.5 277.4000000000001 90.9C277.4000000000001 93.6 275.2000000000001 93.8 273.1 94.5C264.6 97.9 259.1 102.2 254.0000000000001 109.7C245.8000000000001 121.8 243.9000000000001 133.9 243.9000000000001 148.3C243.9000000000001 180.4 288.1 186.2 288.1 218.3C288.1 230.6 280.4000000000001 234.2 280.4000000000001 237.6C280.4000000000001 239.8 281.1 239.8 283.3 239.8C291.3 239.8 302.4000000000001 226.5 305.8 220C308 215.4 308.2 214 308.2 208.9C308.2 201.9 307.5 194.7 307.5 187.6C307.5 160.6 339.4 167.8 339.4 180.8C339.4 186.8 335.8 192.4 335.8 198.2C335.8 198.9 335.8 199.4 336.5 199.4C339.8999999999999 199.4 345.8999999999999 191.7 347.6 189.3C353.4 180.4 356.1 168.5 356.1 157.9C356.1 125.5000000000001 326.6 108.9 326.6 101.9C326.6 100.9 329.5 94.2000000000001 338.7 100.0000000000001C368.4 115.1000000000001 391.8 147.6000000000001 391.8 189.8000000000001C391.8 223.4000000000001 383.1 247.5000000000001 359.7 272.4000000000001C355.8 276.5000000000001 343.3 289.3000000000001 337.2 289.3000000000001C329 289.3000000000001 344.4 270.7000000000001 344.4 258.1000000000001C344.4 250.9000000000001 339.6 245.8000000000001 332.1 245.8000000000001C320.5 245.8000000000001 317.6 271.2000000000001 316.2 279.1000000000001C310.4 312.9000000000001 303.4 337.3000000000001 269.8 353.2000000000001C259.4000000000001 358.2000000000001 233.3 365.0000000000001 233.3 355.4000000000001C233.3 353.0000000000001 236 351.3000000000001 237.9 350.3000000000001C247.1 344.7000000000001 257.5 328.9000000000001 257.5 312.1000000000001C257.5 266.0000000000001 199.8 223.9000000000001 199.8 175.9000000000001C199.6 135.6000000000001 227.9 103.3000000000001 265.1 89.7000000000001zM470.4 381C464.4 381 456 374.5 456 368.4C456 359.7 468.1 348.8 473.6 343C555.2 257.9 552.2 128.7 491.2 52C484.2 43.1 455.9 16.7 455.9 8.5C455.9 3.4 464.1 -2.9 469.1 -2.9C494.5 -2.9 567.9 77.9 567.9 182.8C568 302.1 491.8 381 470.4 381zM428.1 57.9H167C157.6 57.9 151.5 50.4 151.5 41.5C151.5 33 158.5 26 167 26H428.1C437.5 26 440 33.5 440 42.4C440 50.9 436.5 57.9 428.1 57.9z" />
352
+ <glyph glyph-name="freebsd"
353
+ unicode="&#xF3A4;"
354
+ horiz-adv-x="448" d=" M303.7 351.8C314.8 362.9 419.2 428.8 442.9 405C466.6 381.3 400.8 276.9 389.7 265.8C378.6 254.7 350.3 264.9 326.6 288.7000000000001C302.8 312.4 292.5 340.7000000000001 303.7 351.8zM109.9 379.9C73.6 400.5 22 423.4 5.6 406.9C-11 390.3 12.7 337.5 33.5 301.2C52 333.4 78.3 360.5 109.9 379.9zM406.7 274C410 262.7 409.4 253.3 404 247.9C383.7 227.6 316.5 274.9 294.7 318C276.7 350.3 283.6 371.4 309.6 366.7C315.3 370.3 321.9 374.3 329.2 378.3C299.4 393.8 265.6 402.6 229.7 402.6C110.6 402.6 14.1 306.1 14.1 187C14.1 68 110.6 -28.6 229.7 -28.6S445.3 67.9 445.3 187C445.3 225.4 435.2 261.5 417.6 292.8C413.7000000000001 285.8 410 279.5 406.7000000000001 274z" />
355
+ <glyph glyph-name="get-pocket"
356
+ unicode="&#xF265;"
357
+ horiz-adv-x="448" d=" M407.6 384H40.6C18.5 384 0 365.5 0 343.4V208.2C0 83.5 99.7 -16 224.2 -16C348.2 -16 448 83.5 448 208.2V343.4C448 365.8 430.3 384 407.6 384zM245.6 115.5C233.2 103.7 214.2 104.4 203.2 115.5C89.5 224.4 88.3 220.6 88.3 238.7C88.3 255.6 102.1 269.4 119 269.4C136 269.4 135.1 265.6 224.2 180.1C314.8 267 312.8 269.4 329.7 269.4C346.6 269.4 360.4 255.6 360.4 238.7C360.4 220.9 357.5 223 245.6 115.5z" />
358
+ <glyph glyph-name="gg-circle"
359
+ unicode="&#xF261;"
360
+ horiz-adv-x="512" d=" M257 440C120 440 9 329 9 192S120 -56 257 -56S505 55 505 192S394 440 257 440zM207.5 65.2L81.8 190.9L207.5 316.6L242.7 281.2L218.5 257L207.4 268.1L130.2 190.9L207.4 113.7L234 140.3L180.9 193.2L205.3 217.6L282.5 140.4L207.5 65.2000000000001zM306.5 67.4L271.3 102.6L295.4000000000001 127L306.5000000000001 115.8999999999999L383.7000000000001 193.0999999999999L306.5000000000001 270.2999999999999L280.0000000000001 243.7999999999999L333.1000000000001 190.8999999999999L308.7000000000001 166.5L231.5000000000001 243.7L306.5000000000001 318.7L432.2 193L306.5 67.4z" />
361
+ <glyph glyph-name="gg"
362
+ unicode="&#xF260;"
363
+ horiz-adv-x="512" d=" M179.2 217.6L281.6 115.2L179.2 12.8L0 192L179.2 371.2L224 326.4L198.4 300.8L179.2 320L51.2 192L179.2 64L230.7 115.5L153.6 192L179.2 217.6zM332.8 371.2L230.4 268.8L332.8 166.4L358.4000000000001 192L281.3000000000001 268.5L332.8000000000001 320L460.8000000000001 192L332.8000000000001 64L313.6000000000001 83.2L288.0000000000001 57.6L332.8000000000001 12.8L512 192L332.8 371.2z" />
364
+ <glyph glyph-name="git-square"
365
+ unicode="&#xF1D2;"
366
+ horiz-adv-x="448" d=" M140.1 99.5C152.2 99.5 169.6 97.4 169.6 81.6C169.6 66.1 155.7 62.8 142.6 62.8C130.3 62.8 111.7 64.8 111.7 80.8S127.4 99.5 140.1 99.5zM115.4 216.1C115.4 201.3 122 192 137.7 192C153.2 192 158.9 202 158.9 216.5C159 250.9 115.4 251.3 115.4 216.1zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM207 274.3C194.7 269.5 181.5 265.9 168.1 265.9C129.6 288 77.4 265 77.4 216.4C77.4 198.4 89 173.5 107 167.5V166.8C93.6 160.9 89.9 130.7 107.7 119.8V119.1C88.2 112.7000000000001 75.4 100.3 75.4 78.9C75.4 42.1 110.2 31.9 140.8 31.9C177.9 31.9 205.6 45.3 205.6 86.2000000000001C205.6 136.6 133.5 118.0000000000001 133.5 145.3000000000001C133.5 154.9000000000001 138.7 158.7000000000001 147.6 160.5000000000001C177.2 166.0000000000001 195.8 189.1000000000001 195.8 219.2000000000001C195.8 224.4 194.7 229.4000000000001 192.9 234.2000000000001C197.7 235.3000000000001 202.4 236.5000000000001 207 238.1000000000001V274.3000000000001zM263.8 272.5H224.2C225.5000000000001 261.9 225.3 129.9 224.2 117H263.8C262.7 129.8 262.6 262.1 263.8 272.5zM268.3 325.8C268.3 339.2 258.3 352 244.2 352C229.9 352 219.6 339.5 219.6 325.8C219.6 312.2 230.1 299.9 244.2 299.9C257.9000000000001 299.9 268.3 312.4 268.3 325.8zM372.6 272.5H336.2000000000001C336.2000000000001 282.3 335.8000000000001 292.1 337.3000000000001 302H296.8000000000001C298.1000000000001 294.7 297.9000000000001 288.4 297.9000000000001 272.5H280.8000000000001V238.6C292.7000000000001 240.5 292.9000000000001 239.3 297.9000000000001 239.3V238.6H297.5000000000001V175.9C297.5000000000001 144.8 302.0000000000001 114.7 340.2000000000001 114.7C350.9000000000001 114.7 363.2000000000001 116.5 372.7000000000001 121.7V156.7C367.0000000000001 152.8 358.8000000000002 150.8 351.8000000000002 150.8C338.6000000000002 150.8 336.3000000000002 163.7 336.3000000000002 174.2V239.4C359.0000000000001 239.4 372.7000000000001 238.7 372.7000000000001 238.7V272.5z" />
367
+ <glyph glyph-name="git"
368
+ unicode="&#xF1D3;"
369
+ horiz-adv-x="448" d=" M18.8 226.3C18.8 201 35 166.3 60.3 157.8V156.8C41.5 148.5 36.3 106.2 61.3 91V90C34 81 16 63.7 16 33.8C16 -17.7 64.8 -32 107.5 -32C159.5 -32 198.2 -13.3 198.2 44C198.2 114.5 97.2 88.5 97.2 126.8C97.2 140.3 104.4 145.5 116.9 148.1C158.4 155.8 184.4 188.1 184.4 230.3C184.4 237.6 182.9 244.5 180.4 251.3C187.1 252.8 193.6 254.6 200.1 256.8V307.3C182.9 300.5 164.4 295.5 145.6 295.5C91.8 326.5 18.8 294.2 18.8 226.3zM106.5 62.5C123.5 62.5 147.7 59.5 147.7 37.5C147.7 15.7 128.2 11.2 110 11.2C92.7 11.2 66.7 13.9 66.7 36.4C66.8 58.7 88.8 62.5 106.5 62.5zM103.3 192C81.3 192 72 205 72 225.8C72 275.1 133 274.6 133 226.3C133 206 125 192 103.3 192zM432 142.5V93.5C418.7 86.2 401.5 83.7 386.5 83.7C333 83.7 326.7 125.9 326.7 169.4V257.1H327.2V258.1C320.2 258.1 319.9 259.7 303.2 257.1V304.6H327.2C327.2 326.9 327.5 335.6 325.7 345.8H382.4C380.4 332 380.9 318.3 380.9 304.6H431.9V257.1S412.6 258.1 380.9 258.1V167C380.9 152.2 384.2 134.2 402.7 134.2C412.5 134.2 424 137 432 142.5zM286 379.3C286 360.6 271.5 343.1 252.2 343.1C232.4 343.1 217.7 360.3 217.7 379.3C217.7 398.6 232.2 416 252.2 416C272 416 286 398 286 379.3zM279.8 304.8C278 290.2000000000001 278.2 105 279.8 87H224.3C225.9 105.1 226.1 290 224.3 304.8H279.8z" />
370
+ <glyph glyph-name="github-alt"
371
+ unicode="&#xF113;"
372
+ horiz-adv-x="480" d=" M186.1 119.3C186.1 98.4 175.2 64.2 149.4 64.2S112.7 98.4 112.7 119.3S123.6 174.4 149.4 174.4S186.1 140.2000000000001 186.1 119.3zM480 169.8C480 137.9 476.8 104.1 462.5 74.8C424.6 -1.8 320.4 0 245.8 0C170 0 59.6 -2.7 20.2 74.8C5.6 103.8 0 137.9 0 169.8C0 211.7 13.9 251.3 41.5 283.4C36.3 299.2000000000001 33.8 315.8 33.8 332.2C33.8 353.7 38.7 364.5 48.4 384C93.7 384 122.7 375 157.2 348C186.2 354.9 216 358 245.9000000000001 358C272.9000000000001 358 300.1 355.1 326.3000000000001 348.8C360.3000000000001 375.5 389.3000000000001 384 434.1000000000001 384C443.9000000000001 364.5 448.7000000000001 353.7 448.7000000000001 332.2C448.7000000000001 315.8 446.1000000000001 299.5 441.0000000000001 284C468.5000000000001 251.6 480.0000000000001 211.7 480.0000000000001 169.8zM415.7 119.3C415.7 163.2 389 201.9 342.2 201.9C323.3 201.9 305.2 198.5 286.2 195.9C271.3 193.6 256.4 192.7 241.1 192.7C225.9 192.7 211 193.6 196 195.9C177.3 198.5 159 201.9 140 201.9C93.2 201.9 66.5 163.2 66.5 119.3C66.5 31.5 146.9 18 216.9 18H265.1C335.4000000000001 18 415.7000000000001 31.4 415.7000000000001 119.3zM333.1 174.4C307.3 174.4 296.4000000000001 140.2000000000001 296.4000000000001 119.3S307.3 64.2 333.1 64.2S369.8 98.4 369.8 119.3S358.9000000000001 174.4 333.1 174.4z" />
373
+ <glyph glyph-name="github-square"
374
+ unicode="&#xF092;"
375
+ horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM277.3 32.3C268.9000000000001 30.8 265.8 36 265.8 40.3C265.8 45.7 266 73.3 266 95.6C266 111.2000000000001 260.8 121.1 254.7 126.3C291.7 130.4 330.7 135.5 330.7 199.4C330.7 217.6 324.2 226.7 313.6 238.4C315.3 242.7 321 260.4 311.9 283.4C298 287.7000000000001 266.2 265.5 266.2 265.5C253 269.2 238.7 271.1 224.6 271.1C210.5 271.1 196.2 269.2 183 265.5C183 265.5 151.2 287.7 137.3 283.4C128.2 260.5 133.8 242.8 135.6 238.4C125 226.7 120 217.6 120 199.4C120 135.8 157.3 130.4 194.3 126.3C189.5 122 185.2 114.6 183.7 104C174.2 99.7 149.9 92.3 135.4 117.9C126.3000000000001 133.7 109.9 135 109.9 135C93.7 135.2 108.8 124.8 108.8 124.8C119.6 119.8 127.2000000000001 100.6 127.2000000000001 100.6C136.9 70.9 183.3000000000001 80.9 183.3000000000001 80.9C183.3000000000001 67.0000000000001 183.5 44.4 183.5 40.3C183.5 36 180.5 30.8 172 32.3C106 54.4 59.8 117.2000000000001 59.8 190.6C59.8 282.4000000000001 130 352.1 221.8 352.1S388 282.4 388 190.6C388.1 117.2000000000001 343.3 54.3 277.3 32.3zM179.2 93.4C177.3 93.0000000000001 175.5 93.8 175.3 95.1C175.1 96.6 176.4 97.9 178.3 98.3C180.2 98.5 182 97.7 182.2 96.4C182.5 95.1 181.2 93.8 179.2 93.4zM169.7 94.3C169.7 93 168.2 91.9 166.2 91.9C164 91.7000000000001 162.5 92.8 162.5 94.3C162.5 95.6 164 96.7 166 96.7C167.9 96.9 169.7 95.8 169.7 94.3zM156 95.4C155.6 94.1 153.6 93.5000000000001 151.9 94.1C150 94.5 148.7000000000001 96 149.1 97.3C149.5 98.6 151.5 99.2 153.2 98.8C155.2 98.2 156.5 96.7 156 95.4zM143.7 100.8C142.8 99.7 140.9 99.9 139.4 101.4C137.9 102.7000000000001 137.5 104.6 138.5 105.5000000000001C139.4 106.6000000000001 141.3 106.4 142.8 104.9C144.1 103.6 144.6 101.6 143.7 100.8zM134.6 109.9C133.7 109.3 132 109.9 130.9 111.4S129.8000000000001 114.6 130.9 115.3C132 116.2 133.7000000000001 115.5 134.6 114C135.7 112.5 135.7 110.7 134.6 109.9zM128.1 119.6C127.2 118.7000000000001 125.7 119.2000000000001 124.6 120.2000000000001C123.5 121.5000000000001 123.3 123.0000000000001 124.2 123.7000000000001C125.1 124.6 126.6 124.1 127.7 123.1C128.8 121.8 129 120.3 128.1 119.6zM121.4 127C121 126.1 119.7 125.9 118.6 126.6C117.3 127.2000000000001 116.7 128.3 117.1 129.2000000000001C117.5 129.8000000000001 118.6 130.1 119.9 129.6C121.2 128.9 121.8 127.8 121.4 127z" />
376
+ <glyph glyph-name="github"
377
+ unicode="&#xF09B;"
378
+ horiz-adv-x="496" d=" M165.9 50.6C165.9 48.6 163.6 47 160.7 47C157.4 46.7 155.1 48.3 155.1 50.6C155.1 52.6 157.4 54.2 160.3 54.2C163.3 54.5000000000001 165.9 52.9 165.9 50.6zM134.8 55.1C134.1 53.1 136.1 50.8 139.1 50.2C141.7 49.2 144.7 50.2 145.3 52.2S144 56.5000000000001 141 57.4C138.4 58.1 135.5 57.1 134.8 55.1zM179 56.8C176.1 56.1 174.1 54.2 174.4 51.9C174.7 49.9 177.3 48.6 180.3 49.3C183.2 50 185.2 51.9 184.9 53.9C184.6 55.8 181.9 57.1 179 56.8zM244.8 440C106.1 440 0 334.7 0 196C0 85.1 69.8 -9.8 169.5 -43.2C182.3 -45.5 186.8 -37.6 186.8 -31.1C186.8 -24.9 186.5 9.3 186.5 30.3C186.5 30.3 116.5 15.3 101.8 60.1C101.8 60.1 90.4 89.2000000000001 74 96.7000000000001C74 96.7000000000001 51.1 112.4 75.6 112.1C75.6 112.1 100.5 110.1 114.2 86.3C136.1 47.7 172.8 58.8 187.1 65.4C189.4 81.4 195.9 92.5000000000001 203.1 99.1C147.2 105.3 90.8 113.4 90.8 209.6C90.8 237.1 98.4 250.9000000000001 114.4 268.5C111.8 275 103.3 301.8 117 336.4000000000001C137.9 342.9000000000001 186 309.4000000000001 186 309.4000000000001C206 315 227.5 317.9000000000001 248.8 317.9000000000001S291.6 315 311.6 309.4000000000001C311.6 309.4000000000001 359.7000000000001 343 380.6 336.4000000000001C394.3 301.7000000000001 385.8 275 383.2000000000001 268.5C399.2000000000001 250.8000000000001 409.0000000000001 237.0000000000001 409.0000000000001 209.6C409.0000000000001 113.1 350.1000000000001 105.4 294.2000000000001 99.1C303.4000000000001 91.2000000000001 311.2000000000001 76.2000000000001 311.2000000000001 52.7C311.2000000000001 19.0000000000001 310.9000000000001 -22.6999999999999 310.9000000000001 -30.9C310.9000000000001 -37.4 315.5000000000001 -45.3 328.2000000000001 -43C428.2 -9.8 496 85.1 496 196C496 334.7 383.5 440 244.8 440zM97.2 95.1C95.9 94.1 96.2 91.8 97.9 89.9C99.5 88.3 101.8 87.6 103.1 88.9C104.4 89.9 104.1 92.2000000000001 102.4 94.1C100.8 95.7000000000001 98.5 96.4 97.2 95.1zM86.4 103.2000000000001C85.7 101.9 86.7 100.3000000000001 88.7 99.3000000000001C90.3 98.3000000000001 92.3 98.6000000000001 93 100.0000000000001C93.7 101.3000000000001 92.7 102.9 90.7 103.9C88.7 104.5000000000001 87.1 104.2000000000001 86.4 103.2000000000001zM118.8 67.6C117.2 66.3 117.8 63.3 120.1 61.4C122.4 59.1 125.3 58.8 126.6 60.4C127.9 61.7000000000001 127.3 64.7000000000001 125.3 66.6C123.1 68.9 120.1 69.2000000000001 118.8 67.6zM107.4 82.3C105.8 81.3 105.8 78.7 107.4 76.4C109 74.1 111.7 73.1 113 74.1C114.6 75.4 114.6 78 113 80.3C111.6 82.6 109 83.6 107.4 82.3z" />
379
+ <glyph glyph-name="gitkraken"
380
+ unicode="&#xF3A6;"
381
+ horiz-adv-x="592" d=" M565.7 329.9C563.4000000000001 336 556.4000000000001 339.1 550.4000000000001 336.5C544.7 334.1 541.9000000000001 327.6 544.1000000000001 321.9C555.0000000000001 292.9 561.0000000000001 261.4 561.0000000000001 228.6C561.0000000000001 94 460.7000000000001 -17.1 330.8000000000002 -34.1V89.6C338.7000000000001 91.1 346.3000000000002 93.2000000000001 353.8000000000002 95.8V-8.2C460.5000000000001 17.7 539.7000000000002 113.9 539.7000000000002 228.6C539.7000000000002 320.4000000000001 488.9000000000001 400.4000000000001 413.9000000000002 441.9000000000001C408.2000000000002 445.1 400.9000000000002 442.8 398.0000000000002 436.9000000000001C395.3000000000002 431.4000000000001 397.4000000000002 424.7000000000001 402.7000000000002 421.8C470.6000000000001 384.2000000000001 516.6000000000001 311.8000000000001 516.6000000000001 228.6000000000001C516.6000000000001 135.3000000000001 458.7000000000002 55.5000000000001 376.8000000000002 23.2V115.4C391.0000000000001 119.9 401.7000000000001 133.1 401.7000000000001 148.9C401.7000000000001 162.0000000000001 394.9000000000001 173.3 384.4000000000001 179.4C392.7000000000001 258.9000000000001 428.9000000000001 238.0000000000001 428.9000000000001 263.3000000000001V278C428.9000000000001 316 341.0000000000001 439.8 299.9000000000001 442.7C297.4000000000001 442.9 294.9000000000001 442.9 292.3000000000001 442.7C251.1 439.7 163.2 316 163.2 278V263.2C163.2 237.9 199.5 258.9 207.7 179.3C197.1 173.1999999999999 190.4 161.9 190.4 148.8C190.4 133 201 119.8 215.2 115.3V23.1C133.3 55.3 75.4 135.1 75.4 228.5C75.4 311.6 121.4 384 189.3 421.7C194.7 424.7 196.7 431.3 194 436.8C191.1 442.7 183.9 445 178.1 441.8C103.1 400.3 52.3 320.3 52.3 228.5C52.3 113.8 131.5 17.6999999999999 238.2 -8.3000000000001V95.6999999999999C245.8 93.1999999999999 253.3 91.0999999999999 261.2 89.4999999999999V-34.2C131.4 -17.2 31 93.9 31 228.5C31 261.3 37 292.8 47.9 321.8C50.1 327.6 47.3 334 41.6 336.4C35.6 339 28.6 336 26.3 329.8C14.5 298.3 8 264.2 8 228.5C8 73.4 130.6 -53.1 284.3 -59.3V86.6C291.1 86.2000000000001 299.3 86.1 307.7 86.6V-59.2C461.4 -53.1 584 73.4 584 228.5C584 264.2 577.5 298.3 565.7 329.9zM365.9 172.5C378.9 172.5 389.6 162 389.6 148.8C389.6 135.7 379 125.1 365.9 125.1C352.9 125.1 342.2 135.6 342.2 148.8C342.2 161.9 352.8 172.5 365.9 172.5zM226.1 125.2C212.9 125.2 202.4 135.9 202.4 148.9S212.9 172.6 226.1 172.6C239.2 172.6 249.8 162 249.8 148.9C249.8 135.9 239.3 125.2 226.1 125.2z" />
382
+ <glyph glyph-name="gitlab"
383
+ unicode="&#xF296;"
384
+ horiz-adv-x="512" d=" M29.782 248.268L256 -45.714L8.074 138.301C1.218 143.443 -1.638 152.297 0.933 160.294L29.782 248.268zM105.187 423.074C102.045 431.928 89.478 431.928 86.336 423.074L29.782 248.268H161.743L105.187 423.074zM161.743 248.268L256 -45.714L350.257 248.2680000000001H161.743zM511.067 160.294L482.218 248.268L256 -45.714L503.926 138.301C510.781 143.443 513.637 152.297 511.067 160.294zM425.663 423.074C422.521 431.928 409.954 431.928 406.812 423.074L350.257 248.268H482.218L425.663 423.074z" />
385
+ <glyph glyph-name="gitter"
386
+ unicode="&#xF426;"
387
+ horiz-adv-x="384" d=" M66.4 125.5H16V448H66.4V125.5zM166.9 371.9H116.5V-64H166.9V371.9zM267.5 371.9H217.1V-64H267.5V371.9zM368 372H317.6V125H368V372z" />
388
+ <glyph glyph-name="glide-g"
389
+ unicode="&#xF2A6;"
390
+ horiz-adv-x="448" d=" M407.1 236.8C403.6 238.2 395.5 240.6 391.7000000000001 240.6C354.6 240.6 329.5000000000001 223.8 298.2000000000001 206.1L297.3000000000001 207C304.3000000000001 254.3 320.8000000000001 298.9000000000001 320.8000000000001 347.4000000000001C320.8 418.9 282.6 448 212.4 448C97.3 448 39 334.3 39 249.6C39 161.7 90.3 113 177.6 113C189.6 113 188.6 114 188.6 109.2C171.7 -19.7 97.8 -23.9 97.8 14.6C97.8 53.8 142.8 73.2000000000001 143.3 75.6C143 87.8 96.3 103.2000000000001 84.4 103.2000000000001C50.5 103.1 32 52.0000000000001 32 23.9C32 -28 64.8 -64 117.5 -64C194.9 -64 251.5 13.8 268.9 81.4C284 141.9 280.1 144.7 288.6 149C320.8 165.2 346.1 176 382.4 176C400.2 176 412.9 172.3 441.3 167.6C444.2 167.6 448 170.5 448 173.4C448 181.4 414.6 233.9000000000001 407.1 236.8000000000001zM231.8 321.2000000000001C222.5 276.5 213.2 231.6 204 186.9C201.7 176.7 190.7 179.1 182 179.1C143.7 179.1 133 220.9 133 252.2C133 299.2 151 361.5 194.8 385.6C201.8 389.7 209.6 392.3 217.4 392.3C236 392.3 237.4 379 237.4 363.6C237.3 349.3 234.7 335.1 231.8 321.2z" />
391
+ <glyph glyph-name="glide"
392
+ unicode="&#xF2A5;"
393
+ horiz-adv-x="448" d=" M252.8 299.4C252.8 290.6 251.2 281.7000000000001 249.4 273C243.6 245.2 237.8 217.2 232.1 189.4C230.7 183.1 223.8 184.5 218.4 184.5C194.6 184.5 187.9 210.5 187.9 230C187.9 259.3 199.1 298.1 226.4 313.1C230.7 315.6 235.6 317.3 240.5 317.3C251.9 317.3 252.8 309 252.8 299.4zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM384 181C384 186.1 363.2 218.7 358.5 220.5C356.3 221.4 351.3 222.8 348.9 222.8C325.8 222.8 310.2 212.3 290.7 201.3L290.2 201.8C294.5 231.2 304.8 259 304.8 289.2000000000001C304.8 333.8 281 351.9000000000001 237.3 351.9000000000001C165.6 351.9000000000001 129.3 281.1 129.3 228.4000000000001C129.3 173.7000000000001 161.3 143.4 215.6 143.4C223.1 143.4 222.5 144.0000000000001 222.5 141.1C212 60.8 166 58.2000000000001 166 82.2000000000001C166 106.6 194 118.7000000000001 194.3000000000001 120.2000000000001C194.1000000000001 127.8000000000001 165 137.4 157.6 137.4C136.5 137.4 124.9 104.4 124.9 86.8C124.9 54.5 145.3 32.1 178.2 32.1C226.4000000000001 32.1 261.6 81.8 272.5 123.8C281.9 161.5 279.5 163.2 284.8 165.9C304.8 176.0000000000001 320.6 182.7000000000001 343.2 182.7000000000001C354.3 182.7000000000001 362.2 180.4 379.9 177.5000000000001C381.7 177.4 384 179.2000000000001 384 181.0000000000001z" />
394
+ <glyph glyph-name="gofore"
395
+ unicode="&#xF3A7;"
396
+ horiz-adv-x="400" d=" M324 128.2H310.8V93.5C286.3 70.4 254.5 57.7 220.9 57.7C147.7 57.7 88.5 117.9 88.5 192.1C88.5 266.2 147.7 326.5 220.9 326.5C256.2 326.5 289.5 312.5 314.5 287.1L376.8 350.4C335 392.7 279.7 416 220.7 416C98 416 0 315.4 0 192C0 69.5 97 -32 220.7 -32C283.9 -32 345.2 -5.8 391.7 50.5C389.7 78.1 378.3 128.2 324 128.2zM311.9 240.7H205.6V151.7H324C357.5 151.7 384.5 136.6 400 109.9V140.5C400 205.7 359.6 240.7 311.9 240.7z" />
397
+ <glyph glyph-name="goodreads-g"
398
+ unicode="&#xF3A9;"
399
+ horiz-adv-x="384" d=" M42.6 44.7H45.4C58.1 44.7 70.9 44.7 83.6 44.6C85.2 44.6 86.7 44.9999999999999 87.2 42.4999999999999C94.3 7.6 117.2 -12.1000000000001 150.1 -21.4C177 -29.0000000000001 204.2 -29.2 231.4 -23.2C265.2 -15.8000000000001 287.4 5.1 299.4 37.1999999999999C307.4 58.6999999999999 310.1 80.9999999999999 310.4 103.6999999999999C310.5 109.4999999999999 310.7 150.6999999999999 310.2 156.5L309.3 156.8C308.5 155.3 307.6 153.9 306.8 152.4C284.7 109.3 245.5 85 201.4 83.3C98.4 79.3 32 140.3 29.4 259.5C28.9 283.2 31.2 306.4 37.7 329.2C58.3 400.3 112.3 447.4 191.6 448C252.9 448.4 293.1 409.3 307.8 377.7C308.3 376.6 309.1 375.4 310.2 375.8V437.4H354.5C354.5 157.1 354.6 105.2 354.6 105.2C354.5 26.7 327.9000000000001 -38.5 251.6 -57C182.1 -73.9 92.6 -61.8 55.6 0.2C47.6 13.7 43.8 28.5 42.6 44.7zM188.9 411.5C136.4 412 80.4 370.8 73.9 277.7C69.8 218.7 88.7 155.5 145.4 129.1C173 116.2000000000001 219.7 114.1 253.7 137.8C301.3 171 316.4 234.8 308.5 291.8C298.8 362.9 260.7 411.8 188.9 411.5z" />
400
+ <glyph glyph-name="goodreads"
401
+ unicode="&#xF3A8;"
402
+ horiz-adv-x="448" d=" M299.9 256.8C305 219.5 295.2 177.8 264 156.1C241.7 140.6 211.2 142 193.2 150.4C156.1 167.7000000000001 143.7 209 146.4 247.6C150.7 308.5 187.3 335.5 221.7 335.1C268.6 335.3 293.5 303.3 299.9 256.8zM448 360V24C448 -6.9 422.9 -32 392 -32H56C25.1 -32 0 -6.9 0 24V360C0 390.9 25.1 416 56 416H392C422.9 416 448 390.9 448 360zM330 134.8S329.9 168.8 329.9 352.1H300.9V311.8C300.1 311.5 299.7 312.3 299.3 313C289.7 333.7 263.4 359.3 223.3 359C171.4 358.6 136.1 327.8 122.7 281.2C118.4 266.3 116.9 251.1 117.2 235.6C118.9 157.7 162.3 117.8 229.6 120.4C258.5 121.5 284.1 137.4 298.6 165.6C299.1 166.6 299.7 167.5 300.3 168.5C300.5 168.3999999999999 300.7 168.3999999999999 300.9 168.3C301.2 164.5 301.1 137.6 301 133.8C300.8 119 299 104.3 293.8 90.3C286 69.3 271.5 55.6 249.3 50.8C231.5 46.9 213.7 46.9999999999999 196.1 51.9999999999999C174.6 58.1 159.6 70.9999999999999 155 93.8C154.7 95.4 153.7 95.1 152.7 95.1H125.9C126.7 84.4999999999999 129.1 74.8 134.4 65.9C158.6 25.4 217.1 17.4 262.6 28.5C312.5 40.8 329.9000000000001 83.4 330 134.8z" />
403
+ <glyph glyph-name="google-drive"
404
+ unicode="&#xF3AA;"
405
+ horiz-adv-x="512" d=" M339 133.1L175.4 416H336.6L500.2 133.1H339zM201.5 109.5L120.9 -32H431.4L512 109.5H201.5zM154.1 380.6L0 109.5L80.6 -32L237 239.2L154.1 380.6z" />
406
+ <glyph glyph-name="google-play"
407
+ unicode="&#xF3AB;"
408
+ horiz-adv-x="512" d=" M325.3 213.7L104.6 435L385.4 273.8L325.3 213.7zM47 448C34 441.2 25.3 428.8 25.3 412.7V-28.6C25.3 -44.7 34 -57.1 47 -63.9L303.6 192.1L47 448zM472.2 222.4L413.3 256.5L347.6 192L413.3 127.5L473.4 161.6C491.4 175.9 491.4 208.1 472.2 222.4zM104.6 -51L385.4 110.2L325.3 170.3L104.6 -51z" />
409
+ <glyph glyph-name="google-plus-g"
410
+ unicode="&#xF0D5;"
411
+ horiz-adv-x="640" d=" M386.061 219.504C387.895 209.812 389.204 200.12 389.204 187.548C389.204 77.795 315.599 0 204.8 0C98.716 0 12.8 85.915 12.8 192S98.716 384 204.8 384C256.664 384 299.8830000000001 365.141 333.411 333.708L281.2850000000001 283.678C267.1400000000001 297.299 242.2570000000001 313.277 204.8 313.277C139.316 313.277 85.88 259.056 85.88 192C85.88 124.944 139.316 70.723 204.8 70.723C280.761 70.723 309.313 125.468 313.765 153.496H204.8V219.505H386.0610000000001zM571.467 213.067V268.8H515.466V213.067H459.733V157.066H515.466V101.333H571.467V157.066H627.2V213.067H571.4670000000001z" />
412
+ <glyph glyph-name="google-plus-square"
413
+ unicode="&#xF0D4;"
414
+ horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM164 92C108.7 92 64 136.7 64 192S108.7 292 164 292C191 292 213.5 282.2 231 265.8L203.9 239.7C196.5 246.8 183.6 255.1 164.1 255.1C130 255.1 102.2 226.9000000000001 102.2 191.9C102.2 157.0000000000001 130 128.7000000000001 164.1 128.7000000000001C203.7 128.7000000000001 218.5 157.2000000000001 220.9 171.8000000000001H164V206.2000000000001H258.4C259.4 201.2000000000001 260 196.1000000000001 260 189.6000000000001C260 132.5000000000001 221.7 92.0000000000001 164 92.0000000000001zM384 173.8H355V144.8H325.8V173.8H296.8V203H325.8V232H355V203H384V173.8z" />
415
+ <glyph glyph-name="google-plus"
416
+ unicode="&#xF2B3;"
417
+ horiz-adv-x="496" d=" M248 440C111.1 440 0 328.9 0 192S111.1 -56 248 -56S496 55.1 496 192S384.9 440 248 440zM177.3 68C108.5 68 53.3 123.5 53.3 192S108.5 316 177.3 316C208.6 316 237.4 305 260.3 283.7L226.7 251.1C213.5 264 195.4 270.2 177.3 270.2C134.4 270.2 100.1 234.7 100.1 192.1S134.3 114 177.3 114C209.9 114 242.2 133.1 247.4 167.3H177.3V209.9H294.2000000000001C295.5000000000001 203.1 296.1 196.3 296.1 189.2C296.1 118.4 248.6 68 177.3 68zM407.5 174.2V138.7H372V174.2H336.5V209.7H372V245.2H407.5V209.7H442.7V174.2H407.5z" />
418
+ <glyph glyph-name="google-wallet"
419
+ unicode="&#xF1EE;"
420
+ horiz-adv-x="448" d=" M156.8 321.2C194.4 260.6 221 208.1 241.1 158.7C232.8 124.9 222.3 92.2 209.8 60.4C196.6 112.7 183.3 161.7 153.8 208.9C160.3 245.3 156.1 282.5 156.8 321.2zM109.3 248H16.1C9.6 248 5.6 240.5 9.6 235.3C51.8 181 81.3 117.5 101.3 48H204.8C188.6 117.7 166.1 181.7 122.3 241.5C119.3 245.5 114.3 248 109.3 248zM157.1 336C225.6 228 287.1 101.5 295.3 -32H409C397 106 340.6 233 265.8 336H157.1zM408.9 404.5C407.1 411.3 400.7 416 393.7 416H305.4C300.1 416 296.4 411 297.6 405.7C310.8 359.2 319.9 310.2 324.1 259.7C372.3 173.5 403.8 81.4 414.7 -11.1C430.5 49.4 440 122.4 440 191.9C440 265.5 427.8999999999999 337 408.8999999999999 404.5z" />
421
+ <glyph glyph-name="google"
422
+ unicode="&#xF1A0;"
423
+ horiz-adv-x="488" d=" M488 186.2C488 44.7 391.1 -56 248 -56C110.8 -56 0 54.8 0 192S110.8 440 248 440C314.8 440 371 415.5 414.3 375.1L346.8 310.2C258.5 395.4 94.3 331.4 94.3 192C94.3 105.5 163.4 35.4 248 35.4C346.2 35.4 383 105.8 388.8 142.3H248V227.6H484.1C486.4 214.9 488 202.7 488 186.2z" />
424
+ <glyph glyph-name="gratipay"
425
+ unicode="&#xF184;"
426
+ horiz-adv-x="496" d=" M248 440C111.1 440 0 328.9 0 192S111.1 -56 248 -56S496 55.1 496 192S384.9 440 248 440zM362.6 213.6L249.6 60.9L136.9 213.6C128.2000000000001 225.5 117.8000000000001 264 150.5 285.6C178.6 303.7 205.1 289.8 219 273.7C234.9000000000001 255.8 265.6 256.8 280.7000000000001 273.7C294.6 289.8 321.1 303.7 348.8000000000001 285.6C381.7000000000001 264 371.4000000000001 225.6 362.6000000000001 213.6z" />
427
+ <glyph glyph-name="grav"
428
+ unicode="&#xF2D6;"
429
+ horiz-adv-x="512" d=" M301.1 236C305.5 231.6 305.5 224.1 301.1 219.7L291.4000000000001 210C287.0000000000001 205.3 279.5000000000001 205.3 274.8 210L264.3 220.5C259.9000000000001 225.2 259.9000000000001 232.4 264.3 237.1L274 246.8C278.4 251.2 285.9 251.2 290.6 246.8L301.1 236zM270.9000000000001 255.7C273.9000000000001 258.7 273.9000000000001 263.5 270.9000000000001 266.2C268.1 269.2 263.4000000000001 269.2 260.4000000000001 266.2C257.6 263.4 257.6 258.7 260.4000000000001 255.7C263.5000000000001 252.9 268.2000000000001 252.9 270.9000000000001 255.7zM244.9000000000001 250.4C241.9000000000001 247.6 241.9000000000001 242.9 244.9000000000001 240.2C247.7000000000001 237.2 252.4000000000001 237.2 255.4000000000001 240.2C258.2000000000001 243 258.2000000000001 247.7 255.4000000000001 250.4C252.4000000000001 253.4 247.7000000000001 253.4 244.9000000000001 250.4zM317.4000000000001 263.7C297.5000000000001 278.1 283.6 306.9 305.5000000000001 331.8C327.1000000000001 356.7 346.2000000000001 349 365.3000000000001 331C377.2000000000001 319.7 394.6000000000001 306.1 382.5000000000001 282.8C370.0000000000001 259.3 337.4000000000001 249.6 317.4000000000001 263.7zM365.1 308.2C356.2000000000001 318.2 341.8 301.3 349.6 292.1C357 283.1 381.7000000000001 289.7 365.1 308.2zM504 192C504 55 393 -56 256 -56S8 55 8 192S119 440 256 440S504 329 504 192zM437.8 149.4C440.3 165.5 417.6 166 412.6 175.1C399 199.2 384.9000000000001 211.9 358.1 205.5C369.7000000000001 213.5 381.6 211.6 381.6 211.6C381.9000000000001 218 381.6 224.6 372.2000000000001 236.5C376.1 249 372.5000000000001 258.9 372.5000000000001 258.9C388.0000000000001 267.5 399.3000000000001 283.3 401.6000000000001 302.1C405.2000000000001 333.1 382.8000000000001 361.3 351.8000000000001 364.9C329.7000000000001 367.4 308.1000000000001 357.2 297.5000000000001 339.2C274.3000000000001 299.1 298.9000000000001 268.3 319.9000000000001 257.8C305.5000000000001 259.2 285.6 269.7 279.8 292.1C273.2 317.8 282.6 341.9 288.7 353.5C288.7 353.5 284.3 359.3 280.7 362.4C280.7 362.4 266.9 362.4 256.1 357.1C268 372.3 281.3 371.5 281.3 371.5C281.3 377.9 280.7 386.4 277.7 393.1C272.3 404.1 253.8999999999999 406 246 390.3C246.1 390.5 246.3 390.7 246.4 390.8C241.4 378.9 245.3 334.9 263.3 303.6C260.8 302.2 254.2 297.5 250.3 293.6C228.7 283.9 194.1 233.3 194.1 233.3C165.9 222.5 116.9 182.4 123.5 153.6C123.8 150.6 124.9 148.1 126.5 146.1C123.7 143.9 121 141.1 118.2 137.8C106.3 124 112.9 102.6 135.9 113.4C151.7 120.6 165.5 133.6 172.2 143.8C172.2 143.8 166.7 148.8 155.9 148.2C183.6 154.8 190.2 157.6 202.1 157.3C210.1 153.4 210.1 191.6 210.1 191.6C210.1 206.3 207.9 222.6 199 233.1C211.5 220.9 228.1 200.4 227 172.5C226.2 154.2 211.8 149.5 211.8 149.5C202.7 132.9 168.6 83.6 181.4 43.5C181.4 43.5 171.7 58.4 171.2 65.6C153.8 46.2 124.7 13.3 146.6 1.1C173.2 -13.6 255.4 89.7000000000001 272.8 143.4C307.4000000000001 164.2000000000001 328.2 190.7000000000001 336.7 208.4C358.7 164.9 432 113.9 437.8 149.4z" />
430
+ <glyph glyph-name="gripfire"
431
+ unicode="&#xF3AC;"
432
+ horiz-adv-x="384" d=" M171.8 -55.8C171.8 -50.5 176.6 -43.6 176.6 -33.5C176.6 -18.3 163.6 6.4 98.5 53.1C64.2 82.2 32 111.6 32 161.4C32 276.1 179.1 337.9 179.1 430C179.1 433.3 178.9 436.7 178.5 440C183.6 437.6 217.6 396.7 217.6 349.6C217.6 269.1 112.5 220.4 112.5 146.6C112.5 119.7000000000001 129.1 99.4 145.1 77.1C167.6 46.9 189.3 20.2 189.3 -9.4C189.2 -23.9 184.9 -39.1 171.8 -55.8zM317.8 185.6C319.3 177.2000000000001 320 169 320 161C320 109.2 290.6 63.5 252.7 24.2C251.7 23.2 250.5 21.8 249.5 21.8C245.9 21.8 214 63.4 214 75C214 75 255.8 130.7 255.8 171.9C255.8 182.7 253.1 193.6 246.7 205.3C245.2 173 191 117.6 188.6 117.6C185.9 117.6 170.7 139.6 170.7 159.7C170.7 165 171.7 170.4 173.9 175.5C176.3 181 230.5 247.5 230.5 292.2C230.5 298.4 229.5 304.2 227.1 309.3L223.1 316.5C239.8 310 305.7 252.4 317.8 185.6" />
433
+ <glyph glyph-name="grunt"
434
+ unicode="&#xF3AD;"
435
+ horiz-adv-x="384" d=" M61.3 258.7C60.2 248.7 66.5 239.6 66.5 239.6C67.2 247.1 68.7 252.4 70.5 256.2C70.9 245.9 73.7 232.7 83.3 222.1C90.2 214.5 118.9 198.8 138.2 216C139.2 213.6 140.3 210.7 141.2 207.5C144.1 197.2 138.5 182.2 138.5 182.2S153.6 199.3 152.4 214.7C163.2 215.2 173.8 223.1 173.5 234.2C173.5 234.2 154.6 223.8 138 243C128.3 254.2 97.1 285 54.9 274.8C59.2 273.8 63.8 272.4 68.4 270.7000000000001H68.3C64.1 268.7000000000001 61.8 263.6 61.3 258.7000000000001zM89.6 260.5C109.1 249.5 127 234.8 134.5 223.5C128.8 220.2 112.8 213.1 96.5 225.2C86.2 232.8 86.7 251.4 89.6 260.5zM168.8 26.8C171 24.5 170.3 21.5 169.7 20C168.6 17.3 164.2 8.4 156.7 0.2C154 -2.7 150.1 -4.4 145.7 -4.4C141.4 -4.4 137 -2.8 133.9 -0.1C131.6 2 123.7 9.4 120.2 18.5C118.9 21.9 119.2 24.6 121.1 26.6C122.4 27.9 125.1 29.5 130.6 29.5H160C164.1 29.5 167 28.6 168.8 26.8zM231.7 214.7C230.5000000000001 199.2 245.6 182.2000000000001 245.6 182.2000000000001S240.0000000000001 197.2000000000001 242.9000000000001 207.5000000000001C243.8000000000001 210.7000000000001 244.9000000000001 213.5000000000001 245.9000000000001 216.0000000000001C265.2000000000001 198.7000000000001 293.9000000000001 214.5000000000001 300.7000000000001 222.1000000000001C310.3000000000001 232.7000000000001 313.0000000000001 245.9000000000001 313.5000000000001 256.2000000000001C315.3000000000001 252.4000000000001 316.9000000000001 247.1000000000001 317.5000000000001 239.6000000000001C317.5000000000001 239.6000000000001 323.9000000000001 248.7000000000001 322.7000000000001 258.7000000000001C322.1 263.7000000000001 319.8000000000001 268.7000000000001 315.7000000000001 270.5000000000001H315.6C320.2000000000001 272.3000000000001 324.8 273.7000000000001 329.1 274.6C286.8 284.8000000000001 255.7 254.0000000000001 246.0000000000001 242.8000000000001C229.3000000000001 223.6000000000001 210.5 234.0000000000001 210.5 234.0000000000001C210.3000000000001 223.1 220.9 215.1 231.7 214.7zM249.5000000000001 223.5C257 234.9000000000001 274.9000000000001 249.5000000000001 294.4000000000001 260.5C297.4000000000001 251.4000000000001 297.8 232.8000000000001 287.4000000000001 225.1C271.1 213 255.2000000000001 220.1 249.5000000000001 223.5C249.4000000000001 223.4 249.5000000000001 223.5 249.5000000000001 223.5zM263 26.6C264.9 24.7 265.2 22 263.9 18.7C260.4 9.8000000000001 252.5 2.6 250.2 0.6C247.1 -2 242.8 -3.6 238.4 -3.6S230.1 -1.9999999999999 227.4 0.9C219.9 8.9 215.4 17.6 214.4 20.2C213.8 21.7 213.1 24.6 215.3 26.9C217 28.7 220 29.6 224.2 29.6H253.6C259 29.5 261.7 27.9 263 26.6zM164.7 278.1C174.6 272.1 183.5 270 192 269.8C200.5 270 209.4 272.1 219.3 278.1C219.3 278.1 204.8 260.4000000000001 192.1 260.3H191.9C179.2000000000001 260.5 164.7000000000001 278.1 164.7000000000001 278.1zM349.2 130.7000000000001C346.8 112.8000000000001 336.2 96.9 324.6 87.0000000000001C321.5 109.7000000000001 320.9 142.5000000000001 320.9 149.4C320.9 164.1 330.4 173.9 333.1 175.5000000000001C335.6 177.0000000000001 338.5 178.5000000000001 341.4 180.1000000000001C359.4 189.7000000000001 381.8 201.7000000000001 381.8 223.8000000000001C381.8 240.0000000000001 372.5 247.0000000000001 366.4 251.6000000000001C365.6 252.2000000000001 364.9 252.7000000000001 364.2 253.3000000000001C362.1 255.0000000000001 360.5 256.3000000000001 359.9 257.7000000000001C355.5 267.5000000000001 356.3 291.9000000000001 358.2 295.3000000000001C358.8 295.9000000000001 374.9 316.2000000000001 370 334.5000000000001C368 341.9000000000001 363.1 347.8000000000001 355.9 351.5000000000001C350.6 354.2000000000001 344 355.7000000000001 336.4 356.0000000000001C336.3 358.0000000000001 335.9 359.9000000000001 335.5 361.9000000000001C334.9 364.5000000000001 334.4 367.2000000000001 334.6 370.0000000000001C335 374.7000000000001 335.4000000000001 379.0000000000001 336.8 381.3000000000001C345.2 394.6000000000001 365.6 398.9000000000001 365.8 398.9000000000001L378.1 401.3000000000001L370 410.8000000000001C369.9 411.0000000000001 352.7 428.3000000000001 323.7 428.3000000000001C315.8 428.3000000000001 307.7 427.0000000000001 299.6 424.4000000000001C275.4 416.6000000000001 256.7 393.9000000000001 250.2 385.1000000000001C247.1 386.1000000000001 243.9 387.0000000000001 240.6 387.8000000000001C236.4 403.6000000000001 249.6 426.3000000000001 249.6 426.3000000000001S236 429.3000000000001 215.9 411.1000000000001C213.3 417.6000000000001 207.8 431.6000000000001 214.1 448.3000000000001C184.6 437.9 177.2 422 175 407.6C167.4 413 168.3 430.7 167.8 435.2C160.3 434.3 138.6 413.3 139.6 386.9C137.6 386.4 135.7 385.8 133.7 385.2C127.2 394 108.6 416.7 84.3 424.5C76.4 426.7 68.3 428 60.4 428C31.4 428 14.3 410.7 14.1 410.5L6 401.1L18.3 398.7C18.5 398.7 38.9 394.4 47.3 381.1C48.7 378.9 49.1 374.5 49.5 369.8C49.7 367 49.1 364.3 48.6 361.7C48.2 359.8 47.8 357.8 47.7 355.8C40 355.5 33.5 354 28.2 351.3C21 347.6 16.1 341.7 14.1 334.3C9.1 316.1 25.3 295.8 25.9 295.1C27.8 291.7 28.6 267.3 24.2 257.5C23.6 256.1 22 254.8 19.9 253.1C19.2 252.6 18.5 252 17.7 251.4C11.6 246.8 2.3 239.7 2.3 223.6C2.3 201.5 24.7 189.5 42.7 179.9C45.7 178.3 48.5 176.8 51 175.3C53.7 173.6999999999999 63.2 163.9 63.2 149.1999999999999C63.2 142.3 62.6 109.4999999999999 59.5 86.8C47.9 96.6999999999999 37.3 112.6999999999999 34.9 130.6C34.9 130.6 5.7 107.9999999999999 14.3 59.8C19.5 30.3 37.5 13.6999999999999 61.3 5.1C70.1 -14.0000000000001 90.7 -40.6 128.6 -44.5000000000001C143 -56.3 163 -64 192.2 -64H192.4C221.5 -64 241.5 -56.3 256 -44.5C293.9 -40.6 314.5 -14 323.3 5.1C347.1 13.8 365 30.3 370.3 59.8C378.5 108.2 349.2 130.7000000000001 349.2 130.7000000000001zM305.7 410.3C311.3 412.1 317.3 413 323.4 413C334.4 413 343.3 410 348.1 408C345 406.6 341.7 404.8 338.4 402.7C336 403.1 332.8 403.5 329.2 403.5C318.7 403.5 308.7 400.4 300.5 394.6C288.2 385.9 282.5 377.7 279.8 372.2C277.6 373.5 275.3 374.7 272.7 375.9C271.1 376.7 269.6 377.4 268 378.1C274.1 387.2 287.9 404.6 305.7 410.3zM326.7 392.1C325.9 391.1 325.1 390 324.4 388.9C321.1 383.7 320.5 377.3 320 371.1C319.5 364.7 318.9 358.6 315.6 354.1C311.4000000000001 353.3 307.5 352.4 304.1 351.4C301.8 354.5 298.5 358.4 293.6 362.6C295 367.4 299.1 378.7 307.1 385.1C312.7000000000001 389.4 319.3 391.8 326.7000000000001 392.1zM45.6 402.7C42.3 404.9 39 406.7 35.9 408C40.7 410 49.6 413 60.6 413C66.7 413 72.6 412.1 78.3 410.3C96.1 404.5 109.9 387.1 116 378.2C114.4 377.5 112.8 376.8 111.2 376C108.7 374.8 106.3 373.5 104.1 372.3C101.5 377.7 95.8 386 83.4 394.7C75.1 400.5 65.2 403.6 54.6 403.6C51.2 403.5 48 403.1 45.6 402.7zM90.3 362.6C85.4 358.4 82 354.6 79.8 351.4C76.4 352.3 72.5 353.3 68.3 354.1C65 358.5 64.5 364.6 64 371C63.5 377.2 62.9 383.6 59.6 388.8C58.9 389.9 58.1 391 57.3 392C64.7 391.7 71.3 389.4 76.8 385C84.8 378.7 88.9 367.4 90.3 362.6zM58.1 188.1C55.4 189.7000000000001 52.5 191.2000000000001 49.7 192.7C34.8 200.7 19.5 209 19.5 223.2C19.5 234.3 23.8 237.8 28.4 241.4L28.9 241.8C29.6 242.4 30.3 243 31.1 243.6C30.2 236.4000000000001 29.2 230.3 28.4 228.7C28.4 228.7 40.5 243.7 44.1 273C45.5 284.5 43 307.3 39 316C39.2 311.1 39 306.2 38.7 301.6C38.3 302.4 37.9 303.2 37.4 303.8C34.2 307.8 25.6 321.3 28 330.4C28.9 333.9 31.1 336.4 34.7 338.2C38.5 340.1 43.5 341.1 49.8 341.1C62.1 341.1 75.7 337.4 82.7 335.1C107.8 327.1 138.1 304.2 146.8 297.4C147 297.2 147.2 297.1 147.2 297.1L152.8 293.2L149.3 299C149.1 299.3 130.2 330.4 96.1 345.5C98.1 348.4 103.5 353.6 117.7 360.6C139.1 371.1 164.2 376.4 192 376.4C219.9 376.4 244.9 371.1 266.3 360.6C280.5 353.7 285.9000000000001 348.4 287.9000000000001 345.5C253.9000000000001 330.4 235.0000000000001 299.3 234.8000000000001 299L231.3000000000001 293.2L236.9000000000001 297.1S237.1 297.2 237.3000000000001 297.4C246.0000000000001 304.2 276.3000000000001 327.2 301.4000000000001 335.1C308.4000000000001 337.3 322.0000000000001 341.1 334.3 341.1C340.6 341.1 345.6 340.1 349.4000000000001 338.2C352.9000000000001 336.4 355.1 333.8 356.1 330.4C358.6 321.3 350 307.8 346.7000000000001 303.8C346.2000000000001 303.2 345.8000000000001 302.5 345.4000000000001 301.6C345.1 306.2 344.9000000000001 311.1 345.1 316C341.1 307.2 338.6 284.5 340 273C343.6 243.7 355.7 228.7 355.7 228.7C354.9 230.3 353.9 236.4 353 243.6C353.7 243 354.5 242.4 355.2 241.8L355.7 241.4C360.3 237.7 364.6 234.3 364.6 223.2C364.6 209 349.2 200.7 334.4 192.7C331.5 191.2 328.7 189.6 326 188.1C317.3 183.1 308 171.4 306.9 153.9C306 139.3 307.8 104 310.3 78C297.9 73.2 283.6 71.6 270.6 71.2C268.6 75.3 266.7 79.7 265.1 84.3C264.4 86.3 245.5 135.4 238.7 146.5C244.2 107.5 256.2 72.8 262.2 56.9C258.7 57.4 254.8999999999999 57.6 250.5 57.6H133.5C129.0999999999999 57.6 125.2 57.3 121.8 56.9C127.8 72.8 139.9 107.5 145.3 146.5C138.5 135.3 119.6 86.2 118.9 84.3C117.3 79.7 115.4 75.3 113.4 71.2C100.4 71.6 86.2 73.2 73.7 78C76.2 104 77.9999999999999 139.2 77.1 153.9C76.2 171.3 66.8 183.1 58.1 188.1zM34.8 43.4C22.7 63.4 26.1 97.5 31.1 102.5C42 68.1 78.3 58.2 105.5 57.1C102.8 52.9 100.3 49.5 98.5 47.1L97.1 45.7C89.9 37.9 88.5 27.2 93 13.9C70.3 14.0000000000001 46.7 23.7 34.8 43.4zM80.5 -0.1C86.5 -1.2 92.7 -2 99.1 -2.5C102.6 -10.5 106.5 -18.4 111.4 -25.6C97 -19.7 87 -9.6 80.5 -0.1zM192 -50.2C131.4 -50.1 113.7 -4.4 107.1 14.5C103.4 25 103.7 32.7 108 37.6C110.9 40.9 117.5 44.8 132.6 44.8H251.4C266.5 44.8 273.2 40.9 276 37.6C280.2 32.8 280.5 25 276.9 14.5C270.3 -4.3 252.6 -50.1 192 -50.2zM272.6 -25.6C277.5 -18.4 281.4000000000001 -10.4999999999999 284.9000000000001 -2.4999999999999C291.3 -1.9999999999999 297.5000000000001 -1.1999999999999 303.5000000000001 -0.1C297.0000000000001 -9.6 287.0000000000001 -19.7 272.6000000000001 -25.6zM349.2000000000001 43.4C337.2000000000001 23.7 313.6 14.1 291.1 13.7C295.6 27.0000000000001 294.2000000000001 37.8000000000001 287 45.5000000000001C286.6 46.0000000000001 286.1 46.5000000000001 285.6 47.0000000000001C283.8 49.4 281.3 52.8000000000001 278.6 57.0000000000001C305.8 58.2000000000001 342.1 68.0000000000001 353 102.4C358 97.4 361.4 63.3 349.2 43.4z" />
436
+ <glyph glyph-name="gulp"
437
+ unicode="&#xF3AE;"
438
+ horiz-adv-x="256" d=" M209.8 56.9L195.7 32.3L191.1 -47.9C191.1 -56.8 162.8 -64 128 -64S64.9 -56.8 64.9 -47.9L59.1 31.5L44.2 56.9C85.4 39.6 170.2000000000001 40.2 209.8000000000001 56.9zM13.8 310.2L27.4 184.7C33.3 204.7 48.2 231.7 67.4 239.9C73.7 242.6 80.1 242.6 86.1 239C91.3 236 95.7 229.7 96.2 227.2C97.4 220.7 94.2 218.1 91.7 218.1C88.7 218.1 86.4 222.7 84.9 225.4C80.8 232.7 74.6 233 68 228.2C61.1 223.2 55.1 214.8 50.9 207.5C45.8 198.7 41.5 189 38.9 179.3C37.4 173.7 36 164.7 38.3 159.4C39.3 157.2000000000001 40.8 155.8 43.2 155.8C48.2 155.8 55.5 162.4 59 165.9C63.5 170.4 69.3 177.4 71.5 181.9L76.7 197.4C79.3 204.2000000000001 86.6 203 86.6 197.4C86.6 187.2000000000001 82.9 183.8 76.6 162.7000000000001C70.8 143.2000000000001 69 136.9 69 136.9C68.3 134.1 65.6 129.4 62.7 129.4C61.5 129.4 60.6 129.8 60.1 130.6C59.1 132 59.2 135.9 59.3 136.9C59.5 140.1 65.6 159.1 66.6 162.1C64.6 159.9 62.5 157.7000000000001 60.2 155.5C54.8 150.4 46.1 143.7 38.7 143.7C35.3 143.7 33.1 144.6 31 146.1L38.6 66.5C40.6 61.5 77.8 49.4 126.8 49.4C175.9 49.4 213.1 61.6 215 66.5L225.9000000000001 161.1C220.2000000000001 155.9 213.6 149.5 206.3000000000001 146.3C200.9 144 188.9 142.5 188.9 152C188.9 157.2 198 166.8 203.3000000000001 173.5C204.7000000000001 175.2 208 179.4 208 181.6C208 184.5 202 183.8 196.3000000000001 179.1C193.1000000000001 176.4 190.1000000000001 172.8 187.6000000000001 169.4C183.3000000000001 163.4 181.0000000000001 158.2000000000001 179.1000000000001 153.9C172.9000000000001 139.7000000000001 175.0000000000001 145.3 170.0000000000001 131.9C165.0000000000001 118.6 165.8000000000001 120.1 164.8000000000001 117.9C163.9000000000001 116.0000000000001 162.6000000000001 114.4 160.8000000000001 113.4C158.9000000000001 112.4 156.3000000000001 112.5000000000001 154.7000000000001 113.7000000000001C153.8000000000001 114.3000000000001 153.4000000000001 115.6 153.4000000000001 117.4C153.4000000000001 118.3 153.5000000000001 119.2000000000001 153.7000000000001 120.1C155.2000000000001 126.2000000000001 161.5000000000001 138.2000000000001 168.7000000000001 154.4C170.3000000000001 158.1 169.7000000000001 157.0000000000001 169.5000000000001 156.7000000000001C163.3000000000001 150.7000000000001 158.6000000000001 147.8000000000001 155.1000000000001 146.2000000000001C149.3000000000001 143.6 142.1000000000001 143.6 140.6000000000001 150.3000000000001C140.5000000000001 150.7000000000001 140.5000000000001 151.1000000000001 140.4000000000001 151.5000000000001C128.6000000000001 142.3000000000001 116.1000000000001 139.8000000000001 120.4000000000001 159.6000000000001C115.8000000000001 151.4000000000001 107.8000000000001 144.7000000000001 98.0000000000001 144.7000000000001C93.9000000000001 144.7000000000001 90.9000000000001 146.1000000000001 89.4000000000001 149.8000000000001C87.1000000000001 155.3000000000001 90.7000000000001 164.7000000000001 94.0000000000001 173.6000000000001C95.7000000000001 178.1000000000001 98.0000000000001 183.5000000000001 101.1000000000001 189.8000000000001C102.7000000000001 193.2000000000001 105.3000000000001 195.2000000000001 108.7000000000001 194.3000000000001C109.3000000000001 194.1000000000001 109.8000000000001 193.9000000000001 110.3000000000001 193.6000000000001C112.9000000000001 191.8000000000001 111.9000000000001 189.1000000000001 110.6000000000001 186.4000000000002C106.8000000000001 178.9000000000002 103.5000000000001 173.4000000000002 101.3000000000001 165.6000000000001C100.4000000000001 162.3000000000001 99.3000000000001 156.6000000000001 102.8000000000001 156.6000000000001C105.2000000000001 156.6000000000001 107.5000000000001 157.4000000000002 109.7000000000001 159.0000000000001C114.3000000000001 162.4000000000001 118.0000000000001 167.5000000000001 120.8000000000001 172.5000000000001C122.8000000000001 176.1000000000001 125.2000000000001 180.8000000000001 126.4000000000001 184.8000000000001C126.9000000000001 186.5000000000001 127.5000000000001 188.1000000000001 128.2000000000001 189.6000000000001C129.3000000000001 192.1000000000001 130.8000000000001 194.7000000000001 133.4000000000001 194.7000000000001C134.7000000000001 194.7000000000001 135.8000000000001 194.2000000000001 136.6000000000001 193.2000000000001C138.3000000000001 191.0000000000001 137.9000000000001 188.7000000000002 137.0000000000001 186.3000000000001C135.0000000000001 180.7000000000001 132.3000000000001 175.7000000000001 130.1000000000001 169.6000000000001C128.8000000000001 166.1000000000001 127.4000000000001 161.6000000000001 127.4000000000001 157.9000000000002C127.4000000000001 154.5000000000002 131.1000000000001 155.3000000000001 134.2000000000001 156.7000000000002C136.6000000000001 157.8000000000002 139.0000000000001 159.5000000000002 141.0000000000001 161.2000000000002C142.2000000000001 166.1000000000001 141.9000000000001 165.0000000000002 167.4000000000001 229.4000000000002C168.7000000000001 232.7000000000002 171.1000000000001 234.1000000000002 173.5000000000001 234.1000000000002C174.7000000000001 234.1000000000002 175.7000000000001 233.7000000000002 176.7000000000001 233.0000000000002C178.4 231.7000000000002 178.4 228.9000000000002 177.7000000000001 226.8000000000002C177.0000000000001 224.9000000000002 177.1000000000001 225.5000000000002 173.2000000000001 216.3000000000002C168.0000000000001 204.2000000000002 164.6000000000001 195.5000000000002 160.0000000000001 184.4000000000002C158.1000000000001 179.8000000000001 152.3000000000001 165.5000000000002 151.3000000000001 162.1000000000001C150.7000000000001 159.9000000000002 150.0000000000001 156.3000000000001 152.3000000000001 156.3000000000001C157.7000000000001 156.3000000000001 171.6000000000001 169.4000000000002 175.4000000000001 173.3000000000001C175.6000000000001 173.6000000000001 175.9000000000001 173.7000000000001 176.3000000000001 173.9000000000002C176.9000000000001 175.8000000000001 177.5000000000001 177.6000000000001 178.0000000000001 179.4000000000002C179.4000000000001 183.2000000000002 180.7000000000001 187.6000000000001 183.3000000000001 190.7000000000002C184.1000000000001 191.7000000000002 185.0000000000001 192.3000000000002 186.0000000000001 192.3000000000002C188.8000000000001 192.3000000000002 190.2000000000001 191.1000000000001 190.2000000000001 188.3000000000002C190.2000000000001 187.2000000000002 189.5000000000001 183.2000000000002 189.1000000000001 182.1000000000002C190.5000000000001 183.6000000000002 192.0000000000001 185.1000000000002 193.6000000000001 186.6000000000002C208.6000000000001 200.5000000000002 219.3000000000001 193.4000000000002 219.3000000000001 186.4000000000002C219.3000000000001 179.0000000000002 210.4 168.7000000000002 205.5 163.0000000000002C203.9 161.1000000000003 200.6 157.6000000000003 200.5 156.6000000000003C200.5 155.3000000000003 201.4 154.8000000000003 202.7 154.8000000000003C204.7 154.8000000000003 209.1 158.3000000000003 210.7 159.5000000000002C215.7 163.4000000000002 222.5 169.4000000000002 227.3 173.6000000000003L242.1 310.4000000000003C211.6 293.3000000000003 44.5 293.2000000000003 13.8 310.2000000000003zM243.5 318.7C243.5 297.7 12.3 297.7 12.3 318.7C12.3 327.5 64.1 334.6 127.9 334.6C136.9 334.6 145.7 334.5 154.2 334.2L166.8 382.9L228.1 447.4C229.5 448.8 233.9 447.6 238 443.9S244.6 436 243.3 434.6L243.2 434.5L185.9 374L175.9 333.3C215.8 330.7 243.5 325.2 243.5 318.7zM174.1 314.1C174.1 314.9 173.2 315.6 171.6 316.2L171.4 315.4C171.4 314.1 166.4 313 160.3 313S149.2 314.1 149.2 315.4C149.2 315.5 149.2 315.6 149.3 315.7L149.5 316.4C147.7 315.8 146.5 315 146.5 314.1C146.5 312 152.7 310.4 160.2 310.4C167.9 310.3 174.1 312 174.1 314.1z" />
439
+ <glyph glyph-name="hacker-news-square"
440
+ unicode="&#xF3AF;"
441
+ horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM21.2 218.8H21C21.1 218.9 21.2 219.1 21.3 219.2C21.3 219.1 21.3 218.9 21.2 218.8zM239.2 164.9V64H207.8V166.7L128 320H165.3C217.8 221.7 214.5 218.8 224.6 194.4C236.9000000000001 221.4 230.4000000000001 218.8 285.2000000000001 320H320L239.2 164.9z" />
442
+ <glyph glyph-name="hacker-news"
443
+ unicode="&#xF1D4;"
444
+ horiz-adv-x="448" d=" M0 416V-32H448V416H0zM21.2 218.8H21C21.1 218.9 21.2 219.1 21.3 219.2C21.3 219.1 21.3 218.9 21.2 218.8zM239.2 164.9V64H207.8V166.7L128 320H165.3C217.8 221.7 214.5 218.8 224.6 194.4C236.9000000000001 221.4 230.4000000000001 218.8 285.2000000000001 320H320L239.2 164.9z" />
445
+ <glyph glyph-name="hire-a-helper"
446
+ unicode="&#xF3B0;"
447
+ horiz-adv-x="512" d=" M443.1 448H71.9C67.9 410.7 37.4 380.2 0 376.3V4.8C37.4 -0.1 66 -27.6 71.9 -64H444.1C447.1 -27.6 476.6 1.8 512 5.8V376.3C475.6 382.2 447 411.6 443.1 448zM406.1 43.1C369.8 43.1 387.3 45.1 351 45.1C315.2 45.1 330 43.1 294.9 43.1C289 43.1 290 51.3 294.9 52.9C317.7 60.5000000000001 317.8 63.1 319.5 65.7000000000001C329.9 81.3000000000001 325.4 148.7000000000001 325.4 178.7000000000001C325.4 184.0000000000001 319 191.5000000000001 311.6 191.5000000000001H200.4C193 191.5000000000001 186.6 184.0000000000001 186.6 178.7000000000001C186.6 148.7000000000001 182.1 81.3000000000001 192.5 65.7000000000001C194.2 63.2000000000001 194.3 60.5000000000001 217.1 52.9C222 51.3 223.1 43.1 217.1 43.1C182 43.1 196.8 45.1 161 45.1C124.7 45.1 142.2 43.1 105.9 43.1C98 43.1 100.1 53.9 105.9 53.9C116.1 57.3 119.4 57.4 127.6 67.7000000000001C135.3 80.6 135.5 112.1 135.5 195.5000000000001V296.7C135.5 318.9 123.3 325 106.9 329.1C98.1 331.3 102.9 340.9 107.9 340.9C144.4 340.9 128.5 338.9 165 338.9C197.7 338.9 181.5 340.9 214.2 340.9C217.5 340.9 222.7 332.6 215.2 330.1C210.3 328.5 187.6 326.4 187.6 290.8C187.6 245.2 187.4 235 188.6 222C188.6 220.7 190.9 209.2 201.4 209.2H310.6C321.1 209.2 323.4000000000001 220.7 323.4000000000001 222C324.6 235 324.4000000000001 245.2 324.4000000000001 290.8C324.4000000000001 326.4 301.7000000000001 328.5 296.8 330.1C289.3 332.6 294.5 340.9 297.8 340.9C330.5 340.9 314.3 338.9 347 338.9C383.5 338.9 367.6 340.9 404.1 340.9C409 340.9 414 331.3 405.1 329.1C388.7000000000001 325 376.5 318.8 376.5 296.7000000000001V195.5C376.5 112.1 376.6 80.6 384.4 67.7C392.6 57.5 395.8 57.3 406.1 53.9C411.9 53.9 413.9 43.1 406.1 43.1z" />
448
+ <glyph glyph-name="hooli"
449
+ unicode="&#xF427;"
450
+ horiz-adv-x="640" d=" M508.4 96H566.3V291.3L508.4 264V96zM582.1 206.5V96H640V206.5H582.1zM331.4000000000001 215.4C313.2000000000001 233.6 281.0000000000001 232.5 281.0000000000001 232.5S248.8000000000001 233.6 230.6000000000001 215.4C228.7000000000001 213.5 226.9000000000001 211.5 225.3000000000001 209.4C187.1 239 152.8000000000001 255.9 123.2000000000001 270.5V291.2L100.7000000000001 280.6C46.3000000000001 302.7 11.7 298.8 3.4 280.5C3.4 280.5 -21.4999999999999 247.7 65.3 169.6V200.6C16.5 255.2 26.3 276.7000000000001 30 279.8C43.5 291.2000000000001 67.5 287.8 94.4000000000001 277.7000000000001L65.2 264V200.7C78.3 186 95.7 169.2 118.7 150.3L123.2 146.7V176.5C123.2 183.4 124.9 194.7 134 194.7S144.6 187.8 144.6 179.7V131C162.6 118.8 181.9 108.9 202.3 101.4V195.3C202.3 214 188.9 232.7 161.7 232.7C145.9 232.8 131.2 224.5 123.2 210.8V265.1C165.1 244.2 207.1 218.6 223.1 206.8C212.9 192.2 213.8 178.6999999999999 213.8 163.1C213.8 144.4 212.4 128.8 230.6 110.6C248.8 92.4 281 93.4999999999999 281 93.4999999999999S313.3 92.3999999999999 331.4 110.6C349.6 128.8 348.1 144.4 348.1 163.1C348.1 181.6 349.6 197.3 331.4 215.4zM291.7000000000001 143.5C291.7000000000001 139.9 289.9000000000001 131 281.0000000000001 131C272.1000000000001 131 270.3000000000001 139.9 270.3000000000001 143.5V183.9C270.3000000000001 192.6 277.6000000000001 194.8 281.0000000000001 194.8C284.4000000000001 194.8 291.7000000000001 192.7 291.7000000000001 183.9V143.5zM477.4 215.4C459.2 233.6 427.0000000000001 232.5 427.0000000000001 232.5S394.7000000000001 233.6 376.6000000000001 215.4C358.4000000000001 197.2 359.8000000000001 181.5 359.8000000000001 162.8C359.8000000000001 144.1 358.4000000000001 128.5 376.6000000000001 110.3C394.8000000000001 92.1 427.0000000000001 93.2 427.0000000000001 93.2S459.3000000000001 92.1 477.4 110.3C495.6 128.5 494.2 144.1 494.2 162.8C494.1 181.6 495.5000000000001 197.3 477.4 215.4zM437.6 143.5C437.6 139.9 435.8 131 426.9000000000001 131C418.0000000000001 131 416.2000000000001 139.9 416.2000000000001 143.5V183.9C416.2000000000001 192.6 423.5000000000001 194.8 426.9000000000001 194.8C430.3 194.8 437.6 192.7 437.6 183.9V143.5zM611.1 216.5C627 216.5 640 229.4 640 245.4S627.1 269.9 611.1 269.9C595.2 269.9 582.2 261.3 582.2 245.4S595.1 216.5 611.1 216.5zM144.5 96L182.8 95.2C169.6 99.8 156.8 105.4 144.5 112V96zM123.1 96V124.6C116.6 128.8 110.1 133.3 103.7 138.2000000000001C88.9 149.4 76.2 159.9 65.2 169.7000000000001V96H123.1zM182.8 95.2C219.3 82.7 252.7 81 277.5 88C257.6 87.8 231.7 90.6 202.2 101.3V96L182.8 95.2z" />
451
+ <glyph glyph-name="hotjar"
452
+ unicode="&#xF3B1;"
453
+ horiz-adv-x="448" d=" M414.9 286.5C340.2 419 121.1 448 121.1 448S222.2 337.6 93 250.3C11.3 195.2 -21 123.6 14 45.4C40.8 -14.5 97.5 -38.9 158.6 -48C129.4 7.1 152 74.4 154.5 81.6C211.6 -4.8 319.5 81.6 265.3 175.5C336.3 160.1 346.9 36.9 292.4000000000001 -40C372.9000000000001 -14.7 426.5 48.9 441.2000000000001 105.6C456.7 164.9 444.9000000000001 233.5000000000001 414.9000000000001 286.5z" />
454
+ <glyph glyph-name="houzz"
455
+ unicode="&#xF27C;"
456
+ horiz-adv-x="320" d=" M12.2 192L160 106.9L12.2 21.4V192M160 -64L307.8 21.4V192L160 106.9V-64zM160 448L12.2 362.6V192L160 277.4V448zM160 277.4L307.8 192V362.6L160 277.4z" />
457
+ <glyph glyph-name="html5"
458
+ unicode="&#xF13B;"
459
+ horiz-adv-x="384" d=" M0 416L34.9 20.2L191.5 -32L349.1 20.2L384 416H0zM308.2 288.1H124.4L128.5 238.7H304.1L290.5 90.3L192.6 63.3V62.9999999999999H191.5L92.8 90.3L86.8 166.1H134.5L138 128L191.5 113.5L245.2 128L251.2 190.2H84.3L71.5 335.8H312.6L308.2000000000001 288.1z" />
460
+ <glyph glyph-name="hubspot"
461
+ unicode="&#xF3B2;"
462
+ horiz-adv-x="512" d=" M267.4 236.4C242.3 212.7 226.6 179.1 226.6 141.8C226.6 112.5 236.3 85.5 252.6 63.8L203.1 14C198.7 15.6 194 16.5 189.1 16.5C178.3 16.5 168.2 12.3 160.6 4.7C153 -2.9 148.8 -13.1 148.8 -23.9S153 -44.8 160.6 -52.4C168.2 -60.0000000000001 178.4 -64 189.1 -64C199.9 -64 210 -60.1 217.7 -52.4C225.3 -44.8 229.5 -34.6 229.5 -23.9C229.5 -19.7 228.9 -15.7 227.6 -11.8L277.6 38.4C299.6 21.5000000000001 327 11.5000000000001 356.9000000000001 11.5000000000001C428.8000000000001 11.5000000000001 486.9 69.8000000000001 486.9 141.7000000000001C486.9 206.9 439.2000000000001 260.9000000000001 376.7000000000001 270.4000000000001V332C394.2000000000001 339.4 404.9000000000001 355.8 404.9000000000001 374.9C404.9000000000001 401 384.0000000000001 422.8 357.9000000000001 422.8S311.2 401 311.2 374.9C311.2 355.8 321.9 339.4 339.4 332V270.8C324.2 268.7000000000001 309.8 264.1 296.7 257.2000000000001C269.1 278.1 179.2 342.9000000000001 127.8 382C129 386.4000000000001 129.8 391 129.8 395.8C129.8 424.6 106.3 448 77.4 448C48.6 448 25.2 424.6 25.2 395.8C25.2 366.9 48.6 343.5 77.4 343.5C87.2 343.5 96.3 346.4 104.2 351.1L267.4 236.4zM356.9 72.8C318.8 72.8 287.9 103.7 287.9 141.8S318.8 210.8 356.9 210.8S425.9 179.9 425.9 141.8S395 72.8 356.9 72.8z" />
463
+ <glyph glyph-name="imdb"
464
+ unicode="&#xF2D8;"
465
+ horiz-adv-x="448" d=" M350.5 159.3C350.5 153.9 352.1 144.9 344.3 144.9C342.7 144.9 341.3 145.7000000000001 340.5 147.3C338.3 152.4 339.4 191.4 339.4 192C339.4 195.8 338.3 204.7 344.3 204.7C351.6 204.7 350.5 197.4 350.5 192V159.3zM265 218.1C265 227.8 266.6 234.1 254.7 234.1V150.4C266.9 150.1 265 159.1 265 168.8V218.1zM448 368V16C448 -10.5 426.5 -32 400 -32H48C21.5 -32 0 -10.5 0 16V368C0 394.5 21.5 416 48 416H400C426.5 416 448 394.5 448 368zM21.3 219.2C21.2 219.1 21.1 218.9 21 218.8H21.3V219.2zM97 256H64V128.2H97V256zM210.3 256H167.2L159.6 196.1C156.9 216.1 154.2 236.2 150.9 256H108.1V128.2H137.1V212.7L149.3 128.2H169.9L181.5 214.6V128.2H210.2V256zM296.6 210.7C296.6 218.8 296.9000000000001 227.5 295.2000000000001 235.1C290.9000000000001 257.6 263.8000000000001 256 246.2000000000001 256H221.6000000000001V128.2C307.7000000000001 128.1 296.6 122.2 296.6 210.7zM382.5 193.4C382.5 210.7 381.7 223.5 360.3 223.5C351.4000000000001 223.5 345.4000000000001 220.8 339.4000000000001 214.3V256H307.7000000000001V128.2H337.5000000000001L339.4000000000001 136.3C345.1 129.5 351.3 126.5 360.3 126.5C380.1 126.5 382.5 141.7 382.5 157.4V193.4z" />
466
+ <glyph glyph-name="instagram"
467
+ unicode="&#xF16D;"
468
+ horiz-adv-x="448" d=" M224.1 307C160.5 307 109.2 255.7 109.2 192.1S160.5 77.2 224.1 77.2S339 128.5 339 192.1S287.7 307 224.1 307zM224.1 117.4C183 117.4 149.4 150.9 149.4 192.1S182.9 266.8 224.1 266.8S298.8 233.3 298.8 192.1S265.2 117.4 224.1 117.4zM370.5 311.7C370.5 296.8 358.5 284.9 343.7 284.9C328.8 284.9 316.9 296.9 316.9 311.7S328.9 338.5 343.7 338.5S370.5 326.5 370.5 311.7zM446.6 284.5C444.9000000000001 320.4 436.7000000000001 352.2 410.4000000000001 378.4C384.2000000000001 404.6 352.4000000000001 412.8 316.5 414.6C279.5 416.7 168.6 416.7 131.6 414.6C95.8 412.9 64 404.7 37.7 378.5S3.3 320.5 1.5 284.6C-0.6 247.6 -0.6 136.7 1.5 99.7C3.2 63.8 11.4 32 37.7 5.8S95.7 -28.6 131.6 -30.4C168.6 -32.5000000000001 279.5 -32.5000000000001 316.5 -30.4C352.4 -28.7 384.2 -20.5000000000001 410.4 5.8C436.6 31.9999999999999 444.8 63.8 446.6 99.6999999999999C448.7 136.6999999999999 448.7 247.5 446.6 284.5zM398.8 60C391 40.4 375.9000000000001 25.3 356.2 17.4C326.7 5.7 256.7 8.4 224.1 8.4S121.4 5.8 92 17.4C72.4 25.2 57.3 40.3 49.4 60C37.7 89.5 40.4 159.5 40.4 192.1S37.8 294.8 49.4 324.2C57.2 343.8 72.3 358.9 92 366.8C121.5 378.5 191.5 375.8 224.1 375.8S326.8 378.4 356.2 366.8C375.8 359 390.9 343.9 398.8 324.2C410.5 294.7 407.8 224.7 407.8 192.1S410.5 89.4 398.8 60z" />
469
+ <glyph glyph-name="internet-explorer"
470
+ unicode="&#xF26B;"
471
+ horiz-adv-x="512" d=" M483.049 288.294C493.904 312.8690000000001 504.473 348.7320000000001 504.473 376.165C504.473 448.887 424.832 474.536 294.8 414.742C187.168 421.923 83.579 341.072 57.7019999999999 228.2850000000001C88.554 263.1470000000001 135.973 310.5830000000001 179.679 329.4430000000001C125.404 281.15 79.128 219.998 43.992 156.275C23.246 118.349 0 57.06 0 11.253C0 -87.322 92.854 -75.2470000000001 180.251 -30.753C211.674 -46.183 246.81 -46.326 281.9460000000001 -46.326C379.0700000000001 -46.326 466.1950000000001 7.968 498.76 99.696H377.927C325.418 11.103 181.108 46.7 181.108 147.132H509.9C516.307 190.713 508.245 242.847 483.049 288.294zM64.559 101.123C82.27 49.973 118.262 5.252 164.825 -22.181C76.084 -71.1210000000001 -8.442 -51.277 64.559 101.1229999999999zM180.536 209.996C182.536 265.147 230.812 304.867 284.516 304.867C337.9340000000001 304.867 386.497 265.147 388.497 209.996H180.536zM365.072 397.596C386.497 407.883 413.635 419.599 437.63 419.599C469.052 419.599 491.904 397.882 491.904 365.877C491.904 345.874 484.477 316.87 477.335 298.01C451.0549999999999 340.302 411.349 379.594 365.072 397.596z" />
472
+ <glyph glyph-name="ioxhost"
473
+ unicode="&#xF208;"
474
+ horiz-adv-x="640" d=" M616 288H548.7C511.2 377.3 422.9 440 320 440C183 440 72 329 72 192C72 175.6 73.6 159.5 76.7 144H24C10.7 144 0 133.2 0 120C0 106.7 10.7 96 24 96H91.3C128.8 6.7 217.1 -56 320 -56C457 -56 568 55 568 192C568 208.4 566.4 224.5 563.3 240H616C629.3 240 640 250.8 640 264C640 277.3 629.3 288 616 288zM520 192C520 81.5 430.5 -8 320 -8C244.3 -8 178.4 34 144.5 96H424C437.3 96 448 106.8 448 120C448 133.3 437.3 144 424 144H125.8C122 159.4 120 175.4 120 192C120 302.5 209.5 392 320 392C395.7 392 461.6 350 495.5 288H216C202.7 288 192 277.2 192 264C192 250.7 202.7 240 216 240H514.2C518 224.6 520 208.6 520 192zM216 216H424C437.3 216 448 205.3 448 192C448 178.8 437.3 168 424 168H216C202.7 168 192 178.7 192 192C192 205.2 202.7 216 216 216z" />
475
+ <glyph glyph-name="itunes-note"
476
+ unicode="&#xF3B5;"
477
+ horiz-adv-x="384" d=" M381.9 59.8C375.5 32.4 354.7 17 326.8 11.8C302.3 7.3 281.9 6.2 262.3 22C238.4 42.1 238.1 75.4 259.6 96.4C276.6 112.6 300.5 115.9 336.4 122.2C342.4 123.3 347.6 124.7 352 129.6C358.4 136.8 356.4 133.7 356.4 292.8C356.4 304 350.9 307.1 339.4 305.1C331.2 303.7 153.7 270.5 153.7 270.5C143.5 268.3 140.3 265.3 140.3 253.8C140.3 19.1 141.4 29.9 137.8 14.3C133.6 -3.9 122.4 -17.6 107.6 -25.2C90.8 -34.5000000000001 60.4 -38.6 44.2 -35.6C1 -27.5 -14.2 22.4 15.1 51C32.1 67.2 56 70.5 91.9 76.8C97.9 77.9 103.1 79.3 107.5 84.2C117.6 95.7 109.3 340.8 112.7 354.4C113.5 359.6 115.7 364 119.8 367.3C124 370.8 131.6 372.8 133.2 372.8C337.2 411 362.1 415.9 365.6 415.9C377.1 416.7 383.7 409.9 383.7 398.3C383.9 53.8 384.8 72.3 381.9 59.8z" />
478
+ <glyph glyph-name="itunes"
479
+ unicode="&#xF3B4;"
480
+ horiz-adv-x="448" d=" M223.6 367.7C129 367.7 52.5 291 52.5 196.5S129 25.2 223.6 25.2S394.8 101.9 394.8 196.4C394.8 291 318.1 367.7 223.6 367.7zM303 127.7C299.8 114.1 289.5 106.5 275.7 103.9C263.6 101.7 253.5 101.1 243.8 108.9C232 118.9 231.8 135.3 242.4 145.7C250.8 153.7 262.7 155.3 280.4 158.5C283.4 159 286 159.7 288.1 162.2C291.3 165.8 290.3 164.2 290.3 243C290.3 248.6 287.6 250.1 281.9 249.1C277.9 248.4 190 232 190 232C185 230.9 183.3 229.4 183.3 223.7C183.3 107.6 183.8 112.9 182.1 105.2C180 96.2 174.5 89.4 167.2 85.6C158.9 80.9999999999999 143.8 78.9999999999999 135.8 80.4C114.4 84.4 106.9 109.1 121.4 123.3C129.8 131.3 141.7 132.9 159.4 136.1C162.4 136.6 165 137.3 167.1 139.8C172.1 145.5 168 266.8 169.7 273.5C170.1 276.0999999999999 171.2 278.3 173.2 279.9C175.3 281.5999999999999 179 282.5999999999999 179.9 282.5999999999999C280.9 301.5999999999999 293.2 304 295 304C300.7 304.4 304 301 304 295.3C303.8999999999999 124.6999999999999 304.3999999999999 133.9 303 127.6999999999999zM345.2 416H102.8C45.9 416 0 370.1 0 313.2V70.8C0 13.9 45.9 -32 102.8 -32H345.2C402.2 -32 448 13.9 448 70.8V313.2C448 370.1 402.1 416 345.2 416zM223.6 4C117.3 4 31.1 90.2 31.1 196.5S117.3 389 223.6 389S416.1 302.8 416.1 196.5S329.9 4 223.6 4z" />
481
+ <glyph glyph-name="jenkins"
482
+ unicode="&#xF3B6;"
483
+ horiz-adv-x="512" d=" M487.1 23C485.7 34.2 468.1 46.1 458.9 54.9C453.8 59.9 429.9000000000001 78 428.5000000000001 84.8C427.1000000000001 91.4 438.2000000000001 106.3 441.8000000000001 113.6999999999999C446.9000000000001 124.3999999999999 450.6000000000001 137.3999999999999 453.1000000000001 146.3C471.9000000000001 212.4 473.8000000000001 303.2 446.9000000000001 357.5C436.7000000000001 378.0999999999999 408.3000000000001 406.5 390.5000000000001 420C348.5000000000001 451.6999999999999 270.9000000000001 455.3 220.4000000000001 436.6C206.3000000000001 431.3999999999999 192.6000000000001 426.8 180.3000000000001 419.5C147.2000000000001 400.1 112.0000000000001 387 102.2000000000001 347.9C78.0000000000001 337.1 70.7000000000001 306.1 71.9000000000001 270.1C72.1000000000001 263.1 76.0000000000001 254.3 74.6000000000001 247.7C73.9000000000001 244.4 69.4000000000001 240.1 68.5000000000001 237.9C56.9000000000001 210.2 66.2000000000002 173.9 79.6000000000001 154.1999999999999C87.7000000000001 142.3 101.1000000000001 131.8 118.8000000000002 129C119.5000000000002 118.3999999999999 122.1000000000001 109.3 127.0000000000002 98.6C130.1000000000001 91.8 141.7000000000001 79.6 137.4000000000002 70.9C135.2000000000002 66.5 116.4000000000002 57.1 110.1000000000002 53.3C89 40.8 73.7 33 54.2 19C41.6 10 21.9 8.8 25 -12.1C27.1 -26.2 35.1 -43.7 39.7 -57.9C40.4 -59.9 41.1 -62.0000000000001 41.8 -63.9H463.8C468.7 -48.6 473.5 -33.0000000000001 478.4 -16.7C481.8 -5.3000000000001 488.6 11.1 487.1 22.9999999999999zM205.9 414.3C207.7 414.8 209.3 413.6 210.8 411.9C210.6 406.7 205.4 406.8 201.9 405.1C196.5 398.4 188.5 395.3 181.9 387.9C175.1 380.4 167.5 360.2 158.5 357.9C154 356.8 148.8 358.7 144.9 358.4C134.5 357.7 127.2 352.4 116.6 350.9C130.2 380.8 172.7 404.9 205.9 414.3zM101.1 320.7C114.6 335.6 133.2 344.8 155.9 346.6C167.6 316.9 147.5 281.6 155 249C157.3 239.1 165.2 223.6 152.6 223.3C152.9 251.6 117.8 269.6 91.3 252.9C89.5 274.4 86.4 304.6 101.1 320.7zM137.8 120.5C136.8 124.6 135.1 133.4 135.5 135.6C137.1 144.3 152.6 148.1 146.5 160.3C135.2 160.4 132.7 150.1 122.4 149C95.7 146.4 76.8 184.4 78 207.4C79 226.9 95.6 245.6 118.1 243.2C134.1 241.4 139.5 224 142.6 208.5C151.8 208 165.1 208.9 169.5 216.1C168.9 233.6 160.7 247.7 161.3 263.8C162.3 294.1 178.8 321.4 166.1 351.2000000000001C179.7 382.1 219.6 406.5 249.2 421.2000000000001C285.8 439.5 344.1 424.9000000000001 378.5 405.4000000000001C398.2 394.3 412.9 372.7000000000001 426.8 354.7000000000001C407.3 360.5 390.7 350.5 393.7 334.4000000000001C410 349.3 437.9 334.6 446.2 318C454.1 302.2000000000001 454 278.7000000000001 455.2 255.2000000000001C458.1 198.2000000000001 444.8 139.3000000000001 416.1 98.1C408.4 87.1 402 75.1 391.2 67.5C365.2 49.3 325.8 32.8 292 44.1C247.3 59.1 227 88.9 202.5 122.9C203.2 104.2000000000001 216.3 88.8 229.3 74.5000000000001C240.6 62.0000000000001 254.3 47.9 269 42.1000000000001C256.7 45.0000000000001 237.9 45.9000000000001 232.8 34.9000000000001C204.2 36.8000000000001 177.7 39.7000000000001 164.1 59.1000000000001C153.5 74.5000000000001 142.7 100.5000000000001 137.8 120.5000000000001zM359.8 -3.6C363.9000000000001 -0.6 370.9000000000001 -0.7 377.2 0C371.8 2.7 364.2 3.7 357.9 2.2C357.8 6.4 355.9 9 354.7 12.4C365.3 16.2 390.2 40.9 404.3 32.7C411 28.8 413.8 6.5 414.4000000000001 -4.3C414.8 -13.3 413.6 -22.3 409.9000000000001 -27.1C391.1 -26.5 374.1 -24.3 359.2000000000001 -20.1C360.1 -14 358.2000000000001 -8 359.8000000000001 -3.6zM342.6 16.4C325.8 15.6 316.6 17.6 304.3 27.2C304.5 28 305.7 27.7 305.8 28.6C323.8 20.6 346.6 31.9 364.8 33.4999999999999C356.9000000000001 28.3999999999999 350.2 21.8999999999999 342.6 16.3999999999999zM330.5 -16.8C328.9 -7.4 327 -4.8 327.7 3.4C352.7 20 357.4 -25.2 330.5 -16.8zM226 9.4C214.4 10.1 177.9 23.4 187.5 33.1C196.9 26.6 215 28.2 228.8 25.8C229.6 21.4 226 15.6 226 9.4zM57.7 -49.1C53.4 -36.4 48.5 -24 42.9 -12.2C73.7 11.6 108.2 36.6999999999999 145.1 51.3C147.9 52.4 168.3 25.9 171.3 23.6999999999999C187.8 11.9999999999999 208.3 2.6999999999999 227.5 -6.5000000000001C228.7 -15.3000000000001 231.4 -26.7 236.2 -42.0000000000001C236.9 -44.3000000000001 237.6 -46.7 238.4 -49.2H57.7zM298.3 -54.8H297.5C297.8 -54.6 298 -54.4 298.3 -54.3V-54.8zM305.8 -49.1C307.9000000000001 -47.7 310.1 -46.3 312.2 -44.8C313.3 -46.2 314.4 -47.6 315.4 -49.1H305.8zM320.9000000000001 -24.4C310.1 -31.7 300.3 -42.7 287.6 -49.6C281.6 -52.9 260.6 -61.3 254.2 -59.8C250.6 -59 250.3 -54.5 248.8 -50.3C245.7 -41.3 238.7 -26.9 238 -13.3C237.2 3.9 235.5 32.7 254 29.1C268.9 26.2 286.3 19.4 297.9 12.9999999999999C305 9.1 309 4.3999999999999 319.8 3.4999999999999C319.7 2.1 319.7 0.6999999999999 319.6 -0.8000000000001C313.7 -4.7 304.3 -4.6000000000001 297.8 -7.9000000000001C307.3 -8.3000000000001 314.8 -10.6000000000001 321.3 -13.8000000000001C321.2 -17.2 321 -20.8000000000001 320.9 -24.4000000000001zM374.3 -49.1H360.3C360.2 -45.9 357.5 -43.3 354.2 -43.3S348.3 -45.9 348.1 -49.1H330.7C327.9 -44.7 325 -40.5 321.8 -36.6C323.9000000000001 -34.4 325.8 -31.9 327.8 -29.7C336.8 -33.4 342.6 -24.8000000000001 349.5 -25.5000000000001C357.4 -26.3000000000001 363.7 -37.2 374.9 -36.5000000000001L374.3 -49.1000000000001zM383 -49.1C383.2 -45.1 383.4 -41.3 383.6 -37.6C399.2000000000001 -30.3 412.6 -38.9 419.3 -49.1H383zM466.4 -12.1C464.1 -23.3 460.6 -36.1 456.5 -49.2C456.3 -49.1 456.1 -49.1 455.9 -49.1H428C428.6 -48 429.2 -46.9 429.9 -45.8C427.3 -39.7 420.9 -37.1 419 -30.3C431.1 -7.6 425.5 63.1 394.8 48.2C399.1 54.5 410.4000000000001 59.7 415.6 67.5C428.6 57.1 436.4000000000001 47.2 448.8 36.1C455.6 30.1 468.8 22.8 470.2 13C471 7.5 467.6 -5.9 466.4 -12.1zM222.2 317.5C227.6 332.4 249.4 352.2 267.2 349.5C274.9 348.3 285.2 341.3 279.4 331.8C249.2 338.8 234.2 319.2 225 298.7C216.9 300.7 220.1 311.8 222.2 317.5zM406.3 254.4C414.5 258 428.7 255.1 435.9 259.7000000000001C431.7 271.2000000000001 425.6 281.1 426.6 297.4000000000001C427.1 297.4000000000001 427.6 297.4000000000001 428 297.3000000000001C434.8 283.1 440.7 268.1 449.3999999999999 255.6C443.7 242.1 405.7999999999999 230.2 406.2999999999999 254.4000000000001zM426.7 297.4zM309.5 251.7C302.7 262.6 290.5 284.2 295 297C301.5 285.1 303.6 272.6 312.8 263.7C316.9 259.7 325 254.7 321 243.5C320.1 240.8 313.2 234.9 309.3 233.8C294.9 229.5 261.4 232.9 272.7 250.9C284.5999999999999 250.2 300.5999999999999 243.1 309.5 251.7zM336.8 181.7C340.6 175.1 338.2 163 348.9 161.1C369.1 157.7 392.5 173.4 407 178.9C416 194.1 406.2 199.6 398.1 209.4C381.5 229.4 359.3 254.2 360.1 284.1C366.8 289 367.4000000000001 276.7 368.3 274.4C377 254.1 398.7 228.2 414.6 210.9C418.5 206.6 424.9000000000001 202.5 425.6 199.7C427.7000000000001 191.5 420.2000000000001 181.7 421.1 176.2C399.4000000000001 162.3 375.3 147.1 339.7000000000001 150.6C332.3000000000001 157.3 329.4000000000001 172 336.8000000000001 181.7zM135.5 190.9C128.6999999999999 194.8 127.0999999999999 211.9 119.0999999999999 212.3C107.6999999999999 213 109.7999999999999 190.1 109.7999999999999 176.8C101.9999999999999 183.9 100.5999999999999 205.9 106.2999999999999 217.1C99.7 220.3 96.7999999999999 213.5 93.2 211.2C97.9 245.3 143 227 135.5 190.9zM435.1 162.1C425 142.9 410.7 121.7 381.1 121.1C380.5 127.3 380 136.7 381.1 140.5C403.8 142.6999999999999 417.7 154.1999999999999 435.1 162.1zM293.2 149.7C312.0999999999999 139.8 346.8 138.7 372.5 139.5C373.8999999999999 133.9 373.8 126.9 373.8999999999999 120.1C340.8999999999999 118.3 301.8999999999999 126.5 293.2 149.7000000000001zM385.3999999999999 103C383.7 98.7 380.0999999999999 93.7 375.5999999999999 91.9C363.4999999999999 87 329.9999999999999 83.2 313.2 92.2C302.5 97.9 295.7 110.7 289.8 118.2C287 121.8 272.9 131.1 289.6 131.1C302.7 98.4 347.6 102.1 385.4 102.9999999999999z" />
484
+ <glyph glyph-name="joget"
485
+ unicode="&#xF3B7;"
486
+ horiz-adv-x="496" d=" M227.5 -20.7C218.5 -7.1 207.6 12.6 203.8 21.7C198.1 35.4 176.6 67.3 235 88.8C286.7 107.9 411.7 105.3 443.8 106.4C439.8 97.4 435.2 88.5 429.9000000000001 79.8C389.5000000000001 14.3 319.5 -21.7 247.9000000000001 -21.7C241.1 -21.7 234.3000000000001 -21.3000000000001 227.5000000000001 -20.7M66.1 304.1C128 404.6 259.6 435.8 360.1 373.9C434.9000000000001 327.8 471.3 243 459.4 161.2000000000001C434.5000000000001 161.7000000000001 280.1 164.8000000000001 229.1 166.1C173.6 167.5 147.4 186.9 170.6 214.3C193.8 241.7 221.7 255 239.5000000000001 265.5C257.4000000000001 276 266.8 299.2 215.9 295.2C87.3 286.5 48.6 195.9 37.6 155C28.8 204.7 37.5 257.7 66.1 304.1M36.9 322.1C-35 205.5 1.3 52.8 117.9 -19.1C234.5 -91 387.2 -54.7 459.1 61.8C531 178.4 494.7 331.2 378.1 403C337.6 428.1 292.6 440 248.2 440C165 440 83.8 398.1 36.9 322.1M281.3 211.7C249.8 191.2 216 180.4 216 180.4L385.5 182L432 205.4S435.6 214.9 412.9 220.9C390.2 226.9 355.9 209.6 326.2 193.7C296.5 177.9 295.1 185.5 295.1 185.5S335.3 213.6 345.8 220C356.3 226.4 377.7 234 359.2 244.6C356 246.4 352.5 247.3 348.8 247.3C331 247.3 307.3 228.6 281.3 211.7" />
487
+ <glyph glyph-name="joomla"
488
+ unicode="&#xF1AA;"
489
+ horiz-adv-x="448" d=" M0.6 355.9C0.6 389.2 27.4 416 60.4 416C90.4 416 114.9 394.1 119.6 365.8C152.2 373.4 186.7 365.2 216.1 335.8L171.8 291.5C151.3 312 129.2 307.8 116.4 295C102.1 280.7 102.1 257.1 116.4 242.8L215.9 143.3L171.9 99C84.2 186.2 122.2 148.7 72.1 198.7C45.3 225.2 37.1 263.5 47.3 297.6C20.4 303.4 0.6 327.3 0.6 355.9zM130.1 239.5L174.4 195.2C184.4 205.2 264.1 284.9 274.1 295C288.4 309.3 311.7 309.3 326 295C338.8 282.2 343 260 322.5 239.6L366.5 195.3C397.7 226.5 405 262.9 395.3999999999999 296.5C424.5999999999999 300.6 447.2999999999999 325.7 447.2999999999999 356C447.2999999999999 389.2 420.4999999999999 416.1 387.4999999999999 416.1C357.1999999999999 416.1 332.0999999999999 393.6 327.9999999999999 364.5C294.1999999999999 374.4 256.2999999999999 366 229.6999999999999 339.4C211.3999999999999 320.3 158.5999999999999 267.9 130.0999999999999 239.5zM396.4 87.3C404.6 120 395.5 155.8 370.1 181.2000000000001C358.3 193.4 375.1 176.5000000000001 270.6 280.9000000000001L226.3 236.6L326 136.9C340.3 122.6 340.3 99.3 326 85.0000000000001C313.2 72.2000000000001 291 68.0000000000001 270.6 88.5000000000001L226.6 44.2C254.2 14.0000000000001 294.6 5.4 329.3 16.2C334.8 -11.1999999999999 359 -31.9 388.2 -31.9C421.2 -31.9 448 -5.1 448 28.2C448 58.4 425.5 83.2000000000001 396.3999999999999 87.3000000000001zM312.1 140.4L268.1 184.7000000000001C181.1 98.3000000000001 217.7 134.3000000000001 168.4 84.9C154.1 70.6 130.8 70.6 116.5 84.9C103.4 98.3 99.6 120.2000000000001 119.7 140.3L75.7 184.6C45.5 154.4 37.7 119.4 46.2 86.3C19.5 80.3 0 56.4 0 28.1C0 -5.2 26.8 -32 59.8 -32C88.4 -32 112.3 -12.2 118.4 14.7C151.1 6.5 186.9 15.3 212.6 40.7C244.7 72.7 224.8 53.1 312.1 140.4z" />
490
+ <glyph glyph-name="js-square"
491
+ unicode="&#xF3B9;"
492
+ horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM243.8 66.6C243.8 23 218.2 3.1 180.9 3.1C147.2 3.1 127.7 20.5 117.7 41.6L152 62.3C158.6 50.6 164.6 40.7 179.1 40.7C192.9 40.7 201.7 46.1 201.7 67.2V210.3H243.8V66.6zM343.4 3.1C304.3 3.1 279 21.7 266.7 46.1L301 65.9C310 51.2 321.8 40.3 342.5 40.3C359.9 40.3 371.1 49 371.1 61.1C371.1 75.5 359.7000000000001 80.6 340.4000000000001 89.1L329.9000000000001 93.6C299.5000000000001 106.5 279.4000000000001 122.8 279.4000000000001 157.1C279.4000000000001 188.7000000000001 303.5000000000001 212.7 341.0000000000001 212.7C367.8000000000001 212.7 387.0000000000001 203.4 400.8000000000001 179L368 158C360.8 170.9 353 176 340.9 176C328.6 176 320.8 168.2 320.8 158C320.8 145.4 328.6 140.3 346.7 132.4L357.2 127.9C393 112.6 413.0999999999999 96.9 413.0999999999999 61.7C413.0999999999999 23.9 383.2999999999999 3.1 343.3999999999999 3.1z" />
493
+ <glyph glyph-name="js"
494
+ unicode="&#xF3B8;"
495
+ horiz-adv-x="448" d=" M0 416V-32H448V416H0zM243.8 66.6C243.8 23 218.2 3.1 180.9 3.1C147.2 3.1 127.7 20.5 117.7 41.6L152 62.3C158.6 50.6 164.6 40.7 179.1 40.7C192.9 40.7 201.7 46.1 201.7 67.2V210.3H243.8V66.6zM343.4 3.1C304.3 3.1 279 21.7 266.7 46.1L301 65.9C310 51.2 321.8 40.3 342.5 40.3C359.9 40.3 371.1 49 371.1 61.1C371.1 75.5 359.7000000000001 80.6 340.4000000000001 89.1L329.9000000000001 93.6C299.5000000000001 106.5 279.4000000000001 122.8 279.4000000000001 157.1C279.4000000000001 188.7000000000001 303.5000000000001 212.7 341.0000000000001 212.7C367.8000000000001 212.7 387.0000000000001 203.4 400.8000000000001 179L368 158C360.8 170.9 353 176 340.9 176C328.6 176 320.8 168.2 320.8 158C320.8 145.4 328.6 140.3 346.7 132.4L357.2 127.9C393 112.6 413.0999999999999 96.9 413.0999999999999 61.7C413.0999999999999 23.9 383.2999999999999 3.1 343.3999999999999 3.1z" />
496
+ <glyph glyph-name="jsfiddle"
497
+ unicode="&#xF1CC;"
498
+ horiz-adv-x="576" d=" M510.634 210.538C505.907 213.159 504.97 216.286 504.253 221.314C501.9010000000001 237.802 500.7140000000001 254.933 495.1560000000001 270.409C459.2610000000001 370.366 341.1660000000001 413.795 248.3070000000001 362.055C220.9370000000001 346.805 199.3360000000001 325.6860000000001 182.8140000000001 298.1520000000001C179.6300000000001 299.6600000000001 177.3560000000001 300.862 174.9900000000001 301.838C144.8880000000001 314.259 115.9410000000001 311.9590000000001 89.6590000000001 292.6710000000001C64.1280000000001 273.9340000000001 53.2370000000001 248.123 56.9830000000001 216.263C57.3380000000001 213.238 55.0160000000001 208.642 52.4690000000001 206.7180000000001C12.7570000000001 176.7260000000001 -3.5619999999999 128.653 10.5670000000001 82.1030000000001C24.3980000000001 36.5340000000001 68.0810000000001 2.3070000000001 116.1750000000001 0.6700000000001C146.4660000000001 -0.3609999999999 176.8120000000001 0.1240000000001 207.1340000000001 0.1310000000001C291.1750000000001 0.1520000000001 375.2240000000001 -0.3999999999999 459.2540000000001 0.6110000000001C511.9180000000001 1.2450000000001 555.3620000000001 37.4840000000001 567.4660000000001 87.9040000000001C579.0060000000001 135.9780000000001 556.3220000000001 185.2040000000001 510.6340000000001 210.5380000000001zM531.741 53.658C513.511 31.226 489.398 18.405 460.461 18.008C403.587 17.227 346.694 17.778 289.8090000000001 17.778C289.8090000000001 17.078 126.781 17.619 126.081 17.624C82.22 17.956 49.342 37.39 30.906 77.619C12.004 118.864 26.902 168.4670000000001 65.092 193.725C74.274 199.798 77.597 205.291 75.188 216.861C69.698 243.222 79.641 264.817 101.608 279.842C124.595 295.5650000000001 149.03 295.988 173.642 282.925C183.911 277.475 188.249 271.361 195.84 285.452C210.0620000000001 311.851 230.3970000000001 332.179 256.511 346.746C353.971 401.112 484.881 339.178 486.751 214.049C486.873 205.899 489.163 201.621 496.599 198.155C554.1590000000001 171.326 571.0550000000001 102.033 531.7410000000001 53.658zM443.952 134.1570000000001C438.104 103.0000000000001 409.33 79.061 377.286 79.062C360.3330000000001 79.063 345.228 85.607 333.207 96.767C305.51 122.48 262.066 171.747 237.27 190.154C217.214 205.042 195.28 202.487 176.998 186.372C127.002 142.3010000000001 192.857 64.597 244.061 109.184C248.609 113.144 251.901 118.727 256.805 122.028C264.989 127.537 277.571 122.912 269.973 111.406C252.615 85.122 220.643 73.209 191.11 82.105C162.213 90.809 142.27 118.073 142.484 152.284C143.709 174.769 154.848 195.344 177.898 208.249C200.473 220.887 224.267 221.395 244.889 205.775C295.68 167.3 320.467 124.03 352.185 104.53C376.743 89.431 406.439 97.167 421.008 122.036C449.838 171.245 386.416 227.052 342.14 185.4959999999999C338.151 181.7519999999999 335.223 176.5639999999999 330.73 173.7759999999999C319.755 166.9649999999999 313.397 177.8889999999999 317.921 184.1289999999999C338.6239999999999 212.6829999999999 368.385 224.5689999999999 401.192 212.3429999999999C432.6209999999999 200.6289999999999 450.3 167.9769999999999 443.952 134.1569999999999z" />
499
+ <glyph glyph-name="keycdn"
500
+ unicode="&#xF3BA;"
501
+ horiz-adv-x="512" d=" M63.8 38.7L124.3 97.7C156.4 54.9 195.4 31.7 250.9 30.3C281.4 29.6 311.2 37.3 337.3 52.6999999999999C342.4 47.3999999999999 355.8 33.1999999999999 358.2 30.6999999999999C326 9.9999999999999 288.5999999999999 -0.4000000000001 250.1 0.4999999999999C206.8 1.6 165.5 17.1999999999999 132.3999999999999 44.8999999999999C132.6999999999999 45.4999999999999 94.1999999999999 7.3999999999999 93.7999999999999 6.9999999999999C103.2999999999999 -22.8000000000001 80.6999999999999 -55.4 47.4999999999999 -55.4C20.7 -55.3 0 -33.7 0 -6.9C0 27.4 33.1 49.7 63.8 38.7zM418.7 291.1C437.8 259.8 448.3 223.7 447.4 187.1C446.3 142.3 428.4 99.6 398.8 66.1C399.1 65.8 422.6 40.9 422.9 40.6C432.5 41.9 442.1 38.6 448.8 31.5C460.1 19.5 459.6999999999999 0.6 447.7 -10.9C435.7 -22.2 416.8 -21.8 405.3 -9.8C398.6 -2.8 395.9 7.0000000000001 397.7 16.5000000000001C372.8 43.1000000000001 353.3 63.7000000000001 353.3 63.7000000000001C396 97.8000000000001 416.6 143.3000000000001 417.7 187.9C418.3999999999999 216.8000000000001 410.5 245.1 396.5999999999999 270.1L418.7 291.1zM104 394.9C110.7 387.9 113.4 378.1 111.6 368.6L157.5 320.5C152.8 316.7 144.2 310.1 134.7 299.2C109.3 270.7 95.1 234.4 94 196.3C93.3 167.4 100.1 139.1 114 113.9L92 92.4C72.7 124 63.1 160.1 64.2 197.1C65.2 241.7 82.5 284.7 111.7 318.2L86.4 344.6C76.8 343.3 67.2 346.6 60.5 353.7C49.2 365.7 49.6 384.6 61.6 396.1C73.5 407.3 92.2 407 104 394.9zM464.9 440C490.9 440 512 417.6 512 391.7S490.9 344 464.9 344C458.6 343.9 450.9 345.1 449 345.8L386.1 286.1C353.4000000000001 329.7 309.4000000000001 352 259.2000000000001 353.3C228.7000000000001 354 198.9 346.5 173.0000000000001 330.9L151.9000000000001 352.9C184.1 373.7 221.5 384 260 383.1C303.3 382 344.6 366.4 377.7 338.5L418.8 377.1C417.3 381.8 416.6 386.7 416.6 391.6C416.5 418.3 438.9 440 464.9 440zM256.7 334.6C262.2 334.6 267.6 334.2 273.1 333.5C351.2 323.7 406.5 252.4 396.9 174.4C387.1 96.3 315.8 41 237.8 50.6C159.7 60.4 104.4 131.6999999999999 114 209.8C123.3 282.2 184.1 334.4 256.7 334.6zM197.7 215.2C198.3 192.5 209.9 173.4 230.1 163L219.1 111.3H292.8L281.8 163C301.9000000000001 173.9 313.9000000000001 192 314.2 215.2C313.8 248 288.4 272.7 255.9 273.5C223.8 272.7 198.6 248.7 197.7 215.2zM256 288" />
502
+ <glyph glyph-name="kickstarter-k"
503
+ unicode="&#xF3BC;"
504
+ horiz-adv-x="384" d=" M147.3 333.6C147.3 389.8 114.8 416 73.9 416C26.2 416 0 379.8 0 334.6V51.6C0 4.3 25.3 -31.8 74.9 -31.8C114.7 -31.8 147.3 -6.1999999999999 147.3 51.6V128.1L259.4 -10.2C282.1 -37.4 331.5 -40.9 362.6 -10.2C389.6 17.4 389.9 57.2000000000001 370 82L279.2 196.8L354.0999999999999 304.2000000000001C371.4999999999999 328.9000000000001 371.5999999999999 367.3 343.7 394C313.3999999999999 423 261.3 425.6 230.1 381.2000000000001L147.3 263V333.6z" />
505
+ <glyph glyph-name="kickstarter"
506
+ unicode="&#xF3BB;"
507
+ horiz-adv-x="448" d=" M400 -32H48C21.6 -32 0 -10.4 0 16V368C0 394.4 21.6 416 48 416H400C426.4 416 448 394.4 448 368V16C448 -10.4 426.4 -32 400 -32zM199.6 269.5C199.6 300.2 182 314.6 159.9 314.6C134.1 314.6 119.9 294.8 119.9 270.1V115.3C119.9 89.4999999999999 133.6 69.6999999999999 160.4 69.6999999999999C181.9 69.6999999999999 199.6 83.6999999999999 199.6 115.3V157.1L260.2 81.4C272.5 66.5 299.2 64.6 316 81.4C330.6 96.5 330.8 118.2 320 131.8L270.9 194.6L311.4 253.3C320.8 266.8 320.9 287.8 305.8 302.4C289.4 318.3 261.2 319.7 244.4 295.4L199.6 230.7V269.5z" />
508
+ <glyph glyph-name="korvue"
509
+ unicode="&#xF42F;"
510
+ horiz-adv-x="446" d=" M386.5 414H59.5C26.8 414 0 387.2 0 354.5V27.4C0 -5.2 26.8 -32 59.5 -32H386.6C419.6 -32 446.1 -5.2 446.1 27.5V354.5C446 387.2 419.2 414 386.5 414zM87.1 327.2H183.1V211.2L244.9 327.2H355.8L274.6 195.2H87.1V327.2zM248.9 55.1L183.2 168.6999999999999V55.0999999999999H87.2V185.9H278.7L367.3 55.1H248.9z" />
511
+ <glyph glyph-name="laravel"
512
+ unicode="&#xF3BD;"
513
+ horiz-adv-x="640" d=" M637.5 206.4C633.3 211.2 574.7 284.5 564.4 296.9C554.1 309.3 549 307.1 542.6999999999999 306.2000000000001C536.3 305.3 462.1999999999999 292.8 453.5999999999999 291.4C444.9999999999999 289.9 439.5999999999999 286.5 444.8999999999999 279.1C449.5999999999999 272.5 498.2999999999999 203.4 509.0999999999999 188.2L315.3999999999999 141.8L161.2 399.3C155.1 408.4 153.8 411.6 139.8 410.9C125.8 410.3 18.9 401.4 11.3 400.7C3.7 400.1 -4.7 396.7 2.9 378.7S131.9 99.1 135.3 91.5C138.7 83.9 147.5 71.5 168.1 76.5C189.2 81.6 262.4 100.7 302.4 111.2C323.5 72.9 366.6 -4.7 374.6 -15.8C385.2 -30.7 392.6 -28.2 408.9 -23.2C421.7 -19.3 608.5 47.9 616.9 51.3C625.3 54.8 630.5 57.2 624.8 65.7C620.5999999999999 71.9 571.3 137.9 545.5 172.5C563.2 177.2 626.1 193.9 632.8 195.8C640.6999999999999 197.8 641.8 201.6 637.5 206.4zM285.3 134.4C283 133.9 174.5 107.9 168.7 106.6C162.9 105.3 162.9 105.9 162.2 107.9C161.5 109.9 33.2 374.6 31.4 377.9C29.6 381.2 29.7 383.8 31.4 383.8S133.9 392.8 137.4 393C141 393.2 140.6 392.4 141.9 390.2C141.9 390.2 284.1 144.8 286.5 140.5C289.1 136.2 287.6 134.9 285.3 134.4zM591.3 77C593 74.3 594.8 72.5 589.3 70.6C583.9 68.6 405.6 8.5 402.2 7C398.7 5.5 396 5 391.5999999999999 11.5S329.2 118.3 329.2 118.3L518 167.4C522.7 168.9 524.2 169.9 527.2 165.2C530.1 160.4 589.6 79.7 591.3000000000001 77zM603.4 211.1C599.1999999999999 210.2 529.8 193 529.8 193L473.1 270.8C471.4999999999999 273.1 470.2 275.3 474.2 275.8S542.6 288 545.5 288.6C548.4 289.3 550.9 290.1 554.5 285.2000000000001C558.1 280.3 607.1 218.2 609 215.8C610.8 213.5 607.6 212.1 603.4 211.1z" />
514
+ <glyph glyph-name="lastfm-square"
515
+ unicode="&#xF203;"
516
+ horiz-adv-x="448" d=" M400 416H48C21.5 416 0 394.5 0 368V16C0 -10.5 21.5 -32 48 -32H400C426.5 -32 448 -10.5 448 16V368C448 394.5 426.5 416 400 416zM307.8 103.1C244.4 103.1 222.4 131.7000000000001 210.7 167.2000000000001C194.4 218.2000000000001 189.2 251.5000000000001 147.7 251.5000000000001C125.3 251.5000000000001 102.6 235.4000000000001 102.6 190.3000000000001C102.6 155.1000000000001 120.6 133.1000000000001 145.9 133.1000000000001C174.5 133.1000000000001 193.5 154.4000000000001 193.5 154.4000000000001L205.2 122.5000000000001S185.4 103.1000000000001 144 103.1000000000001C92.7 103.1000000000001 64.1 133.2000000000002 64.1 188.9000000000002C64.1 246.8000000000002 92.7 280.9000000000002 146.6 280.9000000000002C220.1 280.9000000000002 227.4 239.5000000000002 247.4 179.0000000000001C256.2 152.2000000000001 271.6 132.8000000000001 308.6 132.8000000000001C333.5 132.8000000000001 346.7 138.3000000000001 346.7 151.9000000000002C346.7 171.8000000000001 324.9 173.9000000000002 296.8 180.5000000000002C266.4000000000001 187.8000000000002 254.3 203.6000000000002 254.3 228.5000000000002C254.3 268.5000000000002 286.6 280.9000000000002 319.5 280.9000000000002C356.9 280.9000000000002 379.6 267.3000000000002 382.5 234.3000000000002L345.8 229.9000000000002C344.3 245.7000000000002 334.8 252.3000000000002 317.2 252.3000000000002C301.1 252.3000000000002 291.2 245.0000000000002 291.2 232.5000000000002C291.2 221.5000000000002 296 214.9000000000002 312.1 211.2000000000002C344.8 204.1000000000002 383.9 199.2000000000002 383.9 153.7000000000002C384 117.0000000000002 353.2 103.1000000000001 307.8 103.1000000000001z" />
517
+ <glyph glyph-name="lastfm"
518
+ unicode="&#xF202;"
519
+ horiz-adv-x="512" d=" M225.8 80.9L207 131.9S176.5 97.9 130.8 97.9C90.3 97.9 61.6 133.1 61.6 189.4C61.6 261.5 98 287.3 133.7 287.3C200.2 287.3 208.5 234 234.6 152.4C253.4 95.5 288.6 49.8 390 49.8C462.7 49.8 512 72.1 512 130.6999999999999C512 203.5999999999999 449.3 211.2999999999999 397 222.7999999999999C371.2 228.7 363.6 239.2 363.6 256.8C363.6 276.7 379.4000000000001 288.4999999999999 405.2000000000001 288.4999999999999C433.4000000000001 288.4999999999999 448.6 277.8999999999999 450.9 252.7L509.5000000000001 259.7C504.8000000000001 312.5 468.4 334.2 408.6 334.2C355.8 334.2 304.2000000000001 314.3 304.2000000000001 250.3C304.2000000000001 210.3999999999999 323.6 185.1999999999999 372.2000000000001 173.5C417.1 162.8999999999999 452.0000000000001 159.6999999999999 452.0000000000001 127.8C452.0000000000001 106.1 430.9000000000001 97.3 391.0000000000001 97.3C331.8000000000001 97.3 307.1 128.4 293.1 171.1999999999999C261.1 268 249.5000000000001 334.2 131.8 334.2C45.7 334.2 0 279.7 0 187C0 97.9 45.7 49.8 127.9 49.8C194.1 49.8 225.8 80.9 225.8 80.9z" />
520
+ <glyph glyph-name="leanpub"
521
+ unicode="&#xF212;"
522
+ horiz-adv-x="576" d=" M386.539 336.515L401.635 87.56L390.656 87.835C354.424 88.659 319.016 79.052 287.999 59.838C256.983 79.052 221.575 87.835 185.3420000000001 87.835C139.7780000000001 87.835 103.2720000000001 77.13 61.826 60.112L93.117 318.4C121.663 330.203 154.601 336.515 185.343 336.515C226.516 336.515 259.1790000000001 323.3400000000001 288 293.971C315.723 322.242 347.013 335.692 386.539 336.515zM569.07 0C543.5440000000001 0 521.585 5.215 498.528 15.645C464.218 31.29 428.5350000000001 40.623 390.6570000000001 40.623C351.6800000000001 40.623 315.7230000000001 27.722 288.0000000000001 0C260.2770000000001 27.723 224.3200000000001 40.623 185.3430000000001 40.623C147.4650000000001 40.623 111.7820000000001 31.29 77.4720000000001 15.645C55.239 5.764 32.731 0 8.303 0H6.93L49.475 349.141C88.726 371.374 136.486 384 181.775 384C218.83 384 256.984 376.315 288 354.905C319.016 376.315 357.17 384 394.225 384C439.514 384 487.274 371.374 526.5250000000001 349.141L569.07 0zM525.702 44.741L491.666 324.987C460.924 338.986 424.418 346.397 390.657 346.397C352.229 346.397 316.272 334.32 288 307.695C259.728 334.32 223.772 346.397 185.343 346.397C151.582 346.397 115.076 338.986 84.334 324.987L50.298 44.741C97.509 64.228 133.192 78.227 185.343 78.227C222.947 78.227 256.16 68.621 288 48.583C319.84 68.621 353.052 78.227 390.657 78.227C442.808 78.227 478.491 64.228 525.702 44.741z" />
523
+ <glyph glyph-name="less"
524
+ unicode="&#xF41D;"
525
+ horiz-adv-x="640" d=" M612.7 229C612.7 249.5 615.9000000000001 261.6 615.9000000000001 283.6C615.9000000000001 317.8 603.3000000000001 328.8 575.4000000000001 328.8H554.9000000000001V304.6H561.2C575.4000000000001 304.6 578.5 299.9 578.5 282.5C578.5 266.2 576.9 249.9 576.9 231C576.9 206.8 584.8 197.4 600.5 193.7V192.1C584.7 188.4 576.9 179 576.9 154.8C576.9 135.9 578.5 120.6 578.5 103.3C578.5 85.4 574.8 80.7 561.2 80.7V80.2H554.9000000000001V55H575.4000000000001C603.2 55 615.9000000000001 66 615.9000000000001 100.2C615.9000000000001 122.8 612.7 134.4 612.7 154.8C612.7 165.8 619.5 177.4 640 178.4V205.7000000000001C619.5 206.4 612.7 218.0000000000001 612.7 229.0000000000001zM507.1 197C491.3 203.3 476.6 207 476.6 217.5C476.6 225.4 482.9 230.1 494.5 230.1S516.6 225.4 528.1 217L549.1 244.8C536 254.8 518.1 265.3 493.9 265.3C458.2 265.3 434.0000000000001 244.8 434.0000000000001 215.9C434.0000000000001 190.2 456.6000000000001 177 475.5000000000001 169.7C491.8000000000001 163.4 507.6000000000001 158.1 507.6000000000001 147.6C507.6000000000001 139.7 501.3000000000001 134.5 487.1000000000001 134.5C474.0000000000001 134.5 460.8000000000001 139.8 446.6000000000001 150.8L425.6000000000001 120.3C441.4000000000001 107.1999999999999 465.5000000000001 98.1999999999999 485.5000000000001 98.1999999999999C527.5 98.1999999999999 550.1 120.3 550.1 149.1999999999999S527.6 190.1999999999999 507.1 197zM148.2000000000001 137.6C144.5000000000001 137.6 139.8000000000001 140.8 139.8000000000001 150.7000000000001V328.9H65.2C36.8 328.9 24.2 317.9 24.2 283.7C24.2 261.1 27.4 248.5 27.4 229.1C27.4 218.1 20.6 206.5 0.1 205.5V178.2C20.6 177.7 27.4 166.1 27.4 155.1C27.4 135.7 24.2 124.1 24.2 101.4999999999999C24.2 67.3 36.8 56.3 64.7 56.3H85.2V80.4999999999999H78.9C65.8 80.4999999999999 61.6 85.8 61.6 103.1S63.2 135.2 63.2 154.6C63.2 178.8 55.3 188.2 39.6 191.9V193.5C55.4 197.2 63.2 206.6 63.2 230.8C63.2 249.7 61.6 265 61.6 282.3S65.3 304.4 78.9 304.4H93V153.5999999999999C93 121.4999999999999 104 100.4999999999999 136.1 100.4999999999999C146.1 100.4999999999999 154 102.0999999999999 159.7 104.1999999999999L154.4 138.3999999999999C151.3 137.5999999999999 149.8 137.5999999999999 148.2 137.5999999999999zM379.9 197C363.6 203.3 348.9 207 348.9 217.5C348.9 225.4 355.2 230.1 366.8 230.1C378.4 230.1 388.9 225.4 400.4 217L421.4 244.8C408.3 254.8 390.4 265.3 366.2 265.3C330.5 265.3 306.3 244.8 306.3 215.9C306.3 190.2 328.9000000000001 177 347.8 169.7C364.1 163.4 379.9000000000001 158.1 379.9000000000001 147.6C379.9000000000001 139.7 373.6 134.5 359.4000000000001 134.5C346.3 134.5 333.1 139.8 318.9000000000001 150.8L298.4000000000001 120.3C314.2000000000001 107.1999999999999 338.3 98.1999999999999 358.3 98.1999999999999C400.3 98.1999999999999 422.9 120.3 422.9 149.1999999999999C423 178.0999999999999 400.4 190.1999999999999 379.9 197zM224.9 265.8C186.5 265.8 149.8 233.7 150.8 183.3C150.8 131.3 185 100.8 230.1 100.8C249 100.8 270 107.6 286.3 118.7L270.5 146.5C258.8999999999999 139.7 247.9 136.5 236.3 136.5C215.3 136.5 199 146.5 194.8 170.7H290C290.5 174.4 291.6 181.7 291.6 190.1C292.2000000000001 232.7 269 265.8 224.9 265.8zM194.9 199.6C198.1 220.6 210.7 230.6 225.4 230.6C244.3 230.6 251.7 217.5 251.7 199.6H194.9z" />
526
+ <glyph glyph-name="line"
527
+ unicode="&#xF3C0;"
528
+ horiz-adv-x="448" d=" M272.1 243.8V172.7000000000001C272.1 170.9 270.7000000000001 169.5000000000001 268.9000000000001 169.5000000000001H257.5000000000001C256.4000000000001 169.5000000000001 255.4000000000001 170.1000000000001 254.9000000000001 170.8000000000001L222.3000000000001 214.8000000000001V172.6000000000001C222.3000000000001 170.8000000000001 220.9000000000001 169.4000000000001 219.1000000000001 169.4000000000001H207.7000000000001C205.9000000000001 169.4000000000001 204.5000000000001 170.8000000000001 204.5000000000001 172.6000000000001V243.7000000000001C204.5000000000001 245.5000000000001 205.9000000000001 246.9000000000001 207.7000000000001 246.9000000000001H219C220 246.9000000000001 221.1 246.4000000000001 221.6 245.5000000000001L254.2 201.5000000000001V243.7000000000001C254.2 245.5000000000001 255.6 246.9000000000001 257.4 246.9000000000001H268.8C270.6 247.0000000000001 272.1 245.5000000000001 272.1 243.8000000000001zM190.1 247H178.7C176.9 247 175.5 245.6 175.5 243.8V172.7000000000001C175.5 170.9 176.9 169.5000000000001 178.7 169.5000000000001H190.1C191.9 169.5000000000001 193.3 170.9 193.3 172.7000000000001V243.8000000000001C193.3 245.5000000000001 191.9 247.0000000000001 190.1 247.0000000000001zM162.6 187.4H131.5V243.8C131.5 245.6 130.1 247 128.3000000000001 247H116.9C115.1 247 113.7 245.6 113.7 243.8V172.7C113.7 171.8 114 171.1 114.6 170.5C115.2 170 115.9 169.6 116.8000000000001 169.6H162.5000000000001C164.3000000000001 169.6 165.7000000000001 171 165.7000000000001 172.8V184.2C165.7000000000001 185.9 164.3000000000001 187.4 162.6000000000001 187.4zM332.1 247H286.4000000000001C284.7000000000001 247 283.2000000000001 245.6 283.2000000000001 243.8V172.7000000000001C283.2000000000001 171.0000000000001 284.6 169.5000000000001 286.4000000000001 169.5000000000001H332.1C333.9000000000001 169.5000000000001 335.3 170.9 335.3 172.7000000000001V184.1C335.3 185.9 333.9000000000001 187.3 332.1 187.3H301V199.3H332.1C333.9000000000001 199.3 335.3 200.7 335.3 202.5V214C335.3 215.8 333.9000000000001 217.2 332.1 217.2H301V229.2H332.1C333.9000000000001 229.2 335.3 230.6 335.3 232.4V243.8C335.2 245.5 333.8 247 332.1 247zM448 334.3V49C447.9 4.2 411.2 -32.1 366.3 -32H81C36.2 -31.9 -0.1 4.9 0 49.7V335C0.1 379.8 36.9 416.1 81.7 416H367C411.8 415.9 448.1 379.2 448 334.3zM386.4 211.7C386.4 284.7 313.2 344.1 223.3 344.1C133.4 344.1 60.2 284.7 60.2 211.7C60.2 146.3 118.2 91.5 196.6 81.1C215.7 77 213.5 70 209.2 44.3C208.5 40.2 205.9 28.2 223.3 35.5C240.7 42.8 317.2 90.8 351.5 130.2C375.1 156.2 386.4 182.5 386.4 211.7z" />
529
+ <glyph glyph-name="linkedin-in"
530
+ unicode="&#xF0E1;"
531
+ horiz-adv-x="448" d=" M100.3 -32H7.4V267.1H100.3V-32zM53.8 307.9C24.1 307.9 0 332.5 0 362.2C0 391.9 24.1 416 53.8 416C83.5 416 107.6 391.9 107.6 362.2C107.6 332.5 83.5 307.9 53.8 307.9zM448 -32H355.3V113.6C355.3 148.3 354.6 192.8 307 192.8C258.7 192.8 251.3 155.1 251.3 116.1V-32H158.5V267.1H247.6V226.3H248.9C261.3 249.8 291.6 274.6 336.8 274.6C430.8 274.6 448.1 212.7 448.1 132.3V-32z" />
532
+ <glyph glyph-name="linkedin"
533
+ unicode="&#xF08C;"
534
+ horiz-adv-x="448" d=" M416 416H31.9C14.3 416 0 401.5 0 383.7V0.3C0 -17.5 14.3 -32 31.9 -32H416C433.6 -32 448 -17.5 448 0.3V383.7C448 401.5 433.6 416 416 416zM135.4 32H69V245.8H135.5V32zM102.2 275C80.9 275 63.7 292.3 63.7 313.5S80.9 352 102.2 352C123.4 352 140.7 334.7 140.7 313.5C140.7 292.2 123.5 275 102.2 275zM384.3 32H317.9V136C317.9 160.8 317.4 192.7 283.4 192.7C248.8 192.7 243.5 165.7 243.5 137.8V32H177.1V245.8H240.8V216.6H241.7C250.6 233.4000000000001 272.3 251.1 304.6 251.1C371.8 251.1 384.3 206.8 384.3 149.2000000000001V32z" />
535
+ <glyph glyph-name="linode"
536
+ unicode="&#xF2B8;"
537
+ horiz-adv-x="448" d=" M437.4 221.7C437.1 222.6 436.5 223.1 436 223.7L366 262.3C365.1 262.9 364 262.9 362.9 262.3L304 226.3C303.1 225.7 302.6 224.6 302.6 223.7L301.7000000000001 192.3L277.7000000000001 208.3C276.8000000000001 208.9 275.4000000000001 208.9 274.6 208.3L240 187.1L238.6 222.2C238.6 223.1 238 224.2 237.2 224.5L201.2 248.8000000000001L234.9 266.2000000000001C236 266.8000000000001 236.6 267.9000000000001 236.6 269.1L230.9 401.4000000000001C230.9 402.3000000000001 230 403.4000000000001 229.2 404.0000000000001L138.6 447.7C137.7 448 136.9 448 136.3 448L12.6 409.4C11.2 408.8 10.3 407.4 10.6 405.7L38 272.6C38.9 269.2 72 245.2 76.6 241.7L49.7 228.8C48.3 227.9 47.7 226.5 48 225.4L68.6 125.1C69.2 122.2 92.3 101.9999999999999 95.7 98.8L78.3 88.1999999999999C77.4 87.5999999999999 76.6 86.1999999999999 76.9 85.0999999999999C78.3 77.9999999999999 92.3 7.3999999999999 93.8 5.9999999999999L158.9 -63.1000000000001C159.5 -63.7000000000002 160.3 -63.7000000000002 161.2 -64.0000000000001C161.8 -64.0000000000001 162.3 -63.7000000000001 162.9 -63.4000000000001L246.6 3.4999999999999C247.5 4.0999999999999 247.7 4.8999999999999 247.7 5.7999999999999L245.7 51.7999999999999L273.7 28.0999999999999C274.8 27.1999999999999 276.5999999999999 27.1999999999999 277.7 28.0999999999999L344.5999999999999 81.4999999999999C345.4999999999999 82.0999999999999 345.7 82.8999999999999 345.7 83.7999999999999L348 117.1999999999999L368.3 103.1999999999999C369.4 102.2999999999999 370.9 102.2999999999999 372 103.1999999999999L426.6 146.8999999999999C427.2 147.1999999999999 427.7 147.9999999999999 427.7 148.8999999999999C428.6 155.3999999999999 438 219.6999999999999 437.4 221.6999999999999zM232.6 216.9L236.6 124.3L146 63.1L132 159.6999999999999L232.6 216.8999999999999zM224.9 396.9L230.3 270.9L123.7 215.5L104 350.3L224.9 396.9zM44 274.9L18 400L97.7 350.6L117.1 217.7L44 274.9zM74.6 127.1L55.7 218L125.7 159.7L139.4 66.3L74.6 127.1zM98.9 9.4L85.2 76.5L146.9 15.6L156.6 -51.8L98.9 9.4zM163.4 -55.1L152.8 15.8000000000001L238.5 77.2000000000001L241.6 7.2L163.4 -55.1zM245.4 60C245.4 63.4 246.3 82.9 243.4 85.1L219.1 105.1L241.4 120C243.7 121.7 242.5 125.7 242.5 128L271.9 105.4L272.5 37.1L245.4 59.9999999999999zM339.7 85.4L278.8 36.8L278.2 105.4L343.9 152.3L339.7 85.4zM367.4 111.1L348.3 124.5L350.3 158.5C350.6 159.3999999999999 350 160.5 349.2 161.1L308 188.3L308.6 218.3L373.2000000000001 177.7L367.4000000000001 111.1zM422 150.9L373.7 112.6L379.4 177.6999999999999L430.5 214.2999999999999L422 150.8999999999999z" />
538
+ <glyph glyph-name="linux"
539
+ unicode="&#xF17C;"
540
+ horiz-adv-x="448" d=" M196.1 324.4C195.9 325.8 198 326.7 199.3 327.3C201 328 203.2 328.3 204.8 327.4C205.2 327.2 205.6 326.7 205.4 326.3C205 325.1 203 325.3 201.9 324.7000000000001C200.9 324.2000000000001 200.1 323 198.9 323C197.9 322.9000000000001 196.2 323.4000000000001 196.1 324.4000000000001zM220.8 324.7C221.8 324.2 222.6 323 223.8 323C224.9 323 226.6 323.4 226.7 324.5C226.9 325.9 224.8 326.8 223.5 327.4C221.8 328.1 219.6 328.4 218 327.5C217.6 327.3 217.2 326.8 217.4 326.4C217.7 325.1 219.7 325.3 220.8 324.7zM435.5 14.5C435 6.3 429 0.7 421.6 -3.8C406.7000000000001 -12.8 384.3 -19.6 370.7000000000001 -36L368.1 -33.8L370.7000000000001 -36C356.5000000000001 -52.9 339.0000000000001 -62.6 322.4000000000001 -63.9C305.9000000000001 -65.1999999999999 290.4000000000001 -57.6 282.1 -40.9V-40.8C281 -38.6999999999999 280.2000000000001 -36.4 279.6 -34.1C258.1 -35.3 239.4000000000001 -28.8 224.5 -29.9999999999999C202.5 -31.1999999999999 188.7000000000001 -36.4999999999999 176.2000000000001 -36.6C171.4 -47.2 161.9 -54.2 150.3000000000001 -56.7999999999999C134.3000000000001 -60.4999999999999 114.2000000000001 -56.7999999999999 94.4 -46.4L96 -43.4L94.4 -46.4C75.9 -36.6 52.4 -37.5 35.1 -33.9C26.4 -32.1 18.8 -28.9 15 -21.6C11.3 -14.3 12 -4.3 17.2 10.1C18.9 15.2 17.6 22.8 16.4 30.9C15.8 34.8 15.2 38.8 15.2 42.7C15.2 47.0000000000001 15.9 51.2 18 55.1C22.5 63.6 29.8 67.2000000000001 36.5 69.6C43.2 72 49.3 73.6 53.5 77.9C58.7 83.4 63.6 92.3 70.1 98.1C67.5 115.3 70.3 133.5 76.3 151.4C88.9 189.3 115.5000000000001 225.6 134.4 248.1C150.5 271 155.2000000000001 289.4000000000001 156.9 312.8C158 344.6 132.4 448.2 234.8 448C315.7000000000001 447.9 311.1 362.6 310.6 316.7C310.3 286.6 326.9000000000001 266.2 344 244.7C359.2 226.7 379.1 200.4 390.5 170.3C399.8 145.6999999999999 403.4 118.5 394.2 91.1999999999999C395.6 90.6999999999999 397 89.9999999999999 398.3 89.1999999999999C399.7 88.3999999999999 401 87.3999999999999 402.3 86.3C408.9000000000001 80.6999999999999 411 71.9999999999999 412.8 63.9C414.7 55.8 416.4000000000001 48.2 420 44.2C431.1 31.8 435.9 22.7 435.5 14.5zM220.8 338.9C224.4 338 229.7 336.5 233.8 334.5C231.7 346.7 238.3 358 245.6 357.5C254.5000000000001 357.2 259.5 342 254.7 330.2C253.9 328.3 251.9 326.8 250.8 325.6C257.5 323.3 261.8 321.5 263.4000000000001 320.7C271.3 330.2 274.2000000000001 346.9 267.7000000000001 361.1C257.9000000000001 382.5 233.5000000000001 382.9 223.7000000000001 360.7C220.5000000000001 353.5 219.8000000000001 345.8 220.8000000000001 338.9zM174.6 320.1C182.4 325.8 181.5 324.8 180.5 325.6C172.5 332.5 173.9 353 182.3000000000001 353.7000000000001C188.6000000000001 354.2000000000001 193.1000000000001 343 191.9 334.1C195 336.2000000000001 198.6 337.7000000000001 202.1 338.7000000000001C203.8 358 193.1 372.2000000000001 183 372.2000000000001C164.1 372.2000000000001 159 334.7000000000001 174.6 320.1zM165.2 299.2000000000001C166.7 294.3 171.3 288.7000000000001 179.9 283.9C187.7 279.3 191.9 272.4 199.9 268.9C202.5 267.8 205.6 267 209.5 266.8C227.9 265.7000000000001 236.6 278.1 247.7 281.7000000000001C259.4 285.4 267.8 292.7000000000001 270.4 299.8C273.6 308.3 268.3 314.5 259.9 318C248.6 322.9 243.6 323.2 237.3 327.3C227 333.9 218.5 336.2 211.4 336.2C197 336.2 188.2 326.4 183.5 322C183 321.5 175.6 316.1 169.4 311.5C165.2 308.2 163.8 304.1 165.2 299.2zM131.7 46.4L112.1 82C105.3 91.2 98.3 96.8 90.2 98C82.5 99.2 77.6 96.6 72.5 91.1C67.7 86 63.7 78.8 58.2 73.1C50.4 66.6 48.9 66.9 38.6 63.2000000000001C32.3 61.0000000000001 27.3 58.6 23.8 51.9C21.1 46.9 21.7 39.7 22.9 31.9C24.1 24.0000000000001 25.9 15.6 23.5 8.0000000000001V7.8000000000001C18.5 -5.8999999999999 18.5 -13.8999999999999 20.9 -18.5999999999999C28.8 -33.9999999999999 67.5 -24.6999999999999 97.4 -40.4999999999999C128.8 -56.8999999999999 170 -57.5999999999999 172.7 -22.4999999999999C174.8 -1.9999999999999 141.2 26.5000000000001 131.7 46.4000000000001zM285.6 10.6C288.8 21.6 291.9000000000001 31.9 292.4000000000001 39.6C293.2000000000001 54.8 294.0000000000001 68.3 296.8 79.4999999999999C299.9000000000001 92.1 306.1 102.6 318.2 106.8C320.5 127.9 336.9 127.9 356.5 119.3C375.4 110.8 382.5 103.3 379.3 93.1999999999999C380.3 93.1999999999999 381.3 93.3 383.5 93.1999999999999C388.7 110.0999999999999 369.2 121.1999999999999 352.8 128C355.7 140 355.2 152.1 352.4000000000001 163.6999999999999C346.4000000000001 189 329.8 211.5 317.2000000000001 222.6999999999999C314.9000000000001 222.7999999999999 315.1 220.7999999999999 319.8000000000001 216.1999999999999C331.4000000000001 205.5 356.9000000000001 167 343.1000000000001 131.3C339.2000000000001 132.3 335.5000000000001 132.8 332.2000000000001 132.6999999999999C326.9000000000001 161.8 314.7000000000001 185.8999999999999 308.6000000000001 197.2999999999999C297.1000000000001 218.6999999999999 279.1000000000001 262.5999999999999 271.4000000000001 293C266.9000000000001 286.5999999999999 259.0000000000001 281.0999999999999 249.1000000000001 278C244.4000000000001 276.5 239.4000000000001 272.5 233.2000000000001 269C219.3000000000001 261 203.2000000000001 260.2 190.8000000000001 270.2C186.3000000000001 273.8 182.8000000000001 277.8 178.2000000000001 280.5C176.6000000000001 281.4 173.1000000000001 283.8 172.0000000000001 284.5999999999999C170.0000000000001 246.8 144.7000000000001 199.3 132.7000000000001 171.8999999999999C124.4000000000001 152.1999999999999 119.5000000000001 131.0999999999999 118.9000000000001 110.3999999999999C97.1000000000001 139.5 113.0000000000001 176.6999999999999 121.5000000000001 192.7999999999999C131.0000000000001 210.3999999999999 132.5000000000001 215.2999999999999 130.2000000000001 213.5999999999999C121.6000000000001 199.5999999999999 108.2000000000001 177.3 103.0000000000001 154.3999999999999C100.3000000000001 142.5 99.8000000000001 130.3999999999999 103.3000000000001 119.1999999999999C106.8000000000001 107.9999999999999 114.4000000000001 97.6999999999999 127.9000000000001 89.3C127.9000000000001 89.3 152.7000000000001 74.9999999999999 166.2000000000001 56.8C173.6000000000001 46.8 175.9000000000001 38.1 173.6000000000001 31.9C171.1000000000001 25.2 164.0000000000001 23 156.9000000000001 23C161.7000000000001 17 167.2000000000001 10 171.3000000000001 3.4C208.9000000000001 -22.3 253.5000000000001 -12.3 285.6000000000002 10.6zM415 39.5C405 50.8 407.8 72.6 397.9 81.1C391 87.1 384.3 86.5 375.3 86.2000000000001C367.6 77.4 349.5 66.6 336.9 69.9C325.4 72.8 318.9 86.2000000000001 318.1 99.4C317.8 99.2000000000001 317.4 99.1 317.1 98.9C310 95.0000000000001 306 88.1 303.4 77.8C300.9 67.6 300 54.3 299.2 39.1C298.5 27.3 293 12.7 289.3 -1.5C285.8 -14.7 283.5 -26.7 288.2 -37.8C295.4 -52.3 307.7 -58.2 321.9 -57.1C336.1 -56 352.3 -47.3 365.5 -31.6C387.5 -5 427.8 -1.9 428.7 14.9C429 20 425.6 27.9 415 39.5zM173.3 299.3C175.3 297.4 178 294.8 181.3 292.2000000000001C187.9 287 197.1 281.6 208.6 281.6C220.2 281.6 231.1 287.5 240.4000000000001 292.4000000000001C245.3000000000001 295 251.3000000000001 299.4000000000001 255.2000000000001 302.8000000000001C259.1 306.2000000000001 261.1 309.1 258.3000000000001 309.4000000000001C255.5000000000001 309.7000000000001 255.7000000000001 306.8000000000001 252.3000000000001 304.3000000000001C247.9000000000001 301.1 242.6000000000001 296.9000000000001 238.4000000000001 294.5C231.0000000000001 290.3000000000001 218.9000000000001 284.3000000000001 208.5000000000001 284.3000000000001C198.1000000000001 284.3000000000001 189.8000000000001 289.1 183.6000000000001 294C180.5000000000001 296.5 177.9000000000001 299 175.9000000000001 300.9000000000001C174.4000000000001 302.3000000000001 174.0000000000001 305.5 171.6000000000001 305.8000000000001C170.2000000000001 305.9000000000001 169.8000000000001 302.1 173.3000000000001 299.3000000000001z" />
541
+ <glyph glyph-name="lyft"
542
+ unicode="&#xF3C3;"
543
+ horiz-adv-x="512" d=" M0 366.9H77.8V158.2000000000001C77.8 125.1 92.8 105.4 105 97.2000000000001C92.3 86.1 53.8 76.3000000000001 24.8 100.0000000000001C7.8 114 0 137.3 0 159V366.9zM485.9 193.4V215.4H509.7V292.2H483.6C473.4999999999999 338.5 432.4 372.9 383.3 372.9C326.7 372.9 280.6 326.9 280.6 270.2V91C296.6 88.7 316 91.3 332.3 105C349.4 119 357.1 142.2 357.1 164V170.7H395.9V247.5H357.1V270.8C357.1 305.4 409.3 305.4 409.3 270.8V193.7C409.3 137.1 455.3 91 511.9999999999999 91V167.5C497.4999999999999 167.5 485.8999999999999 179.2 485.8999999999999 193.4zM191.6 292.4V179.4C191.6 164 167.8 164 167.8 179.4V292.4H91V159.7C91 135.9 99 105.7 136 95.8C173 86 194.2 106.4 194.2 106.4C192.1 93.0000000000001 179.7 83.1 159.3 81.1C143.8 79.5 124.1 84.7000000000001 114.3 88.9V18.6C139.4 11.1 165.8 8.8 191.9 13.9C239 23.0000000000001 268.7 62.3 268.7 114.7000000000001V292.9H191.6V292.4z" />
544
+ <glyph glyph-name="magento"
545
+ unicode="&#xF3C4;"
546
+ horiz-adv-x="448" d=" M445.7 320.1V64L382.3 27.5V283.3L223.8 374.9L65.2 283.3L65.6 27.4L2.3 64V319.9L224.2 448L445.7 320.1zM255.6 27.5L224 9.1L192.2 27.3V283.3L128.9 246.7L129 -9.2L223.9 -64.1L319 -9.2V246.8L255.6 283.4V27.4999999999999z" />
547
+ <glyph glyph-name="maxcdn"
548
+ unicode="&#xF136;"
549
+ horiz-adv-x="512" d=" M461.1 5.3H363.7000000000001L415.6 248C417.9000000000001 258.2 416.5 267.5 411.2000000000001 273.7C406.2000000000001 279.8 397.5000000000001 283.3 387.0000000000001 283.3H337.7000000000001L278.2000000000001 5.3H180.8000000000001L240.3000000000001 283.3H156.9L97.4 5.3H0L59.5 283.3L14.9 378.7H387C426.4 378.7 462.3 362.4 485.3 333.8C508.6 305.2 517.1 266.4 508.9 227.9L461.1 5.3z" />
550
+ <glyph glyph-name="medapps"
551
+ unicode="&#xF3C6;"
552
+ horiz-adv-x="320" d=" M118.3 209.6C121.8 222.1 125.2 243.2 131.5 243.2C139.8 241.4 141.1 219.8 150.1 206.6C154.7 230.1 155.4 291.7 164.2 293.3C173.2 294 183.9 226.8 186.2 215.8C196.1 211.7 235.1 209.2 235.1 209.2C237 201.9 211.1 201.6 195.1 201.4C190.5 186.6 189.7 173.7 183.7 173.4C179 173.2 175.5 202.2 166.2 223L156.8 157.5C152.4 144.5 141.3 180 134.9 196.8C131.6 196.9 72.5 198.4 87.3 204.6L118.3 209.6zM228 0C249.2 0 249.2 32 228 32H92C70.8 32 70.8 0 92 0H228zM204 -64C225.2 -64 225.2 -32 204 -32H116C94.8 -32 94.8 -64 116 -64H204zM238.2 77.5C241.4 96.4 243.4 113.9 250.1 126.3C258 141 266.2 154.4 274.1 167.3C298.7000000000001 207.7 320 242.5 320 292.8C320 378.4 248.2 448 160 448S0 378.4 0 292.8C0 242.6 21.3 207.7 45.9 167.3C53.8 154.4 61.9 141 69.9 126.3C76.6 113.8 78.6 96.5 81.8 77.4C85.3 56.4 117.9 61.7000000000001 114.4 82.5000000000001C110.8 104.2000000000001 108.8 123.2000000000001 99.1 141.1000000000001C66.5 201.5 33 236.7 33 292.8C33 360.7 90 416 160 416S287 360.7 287 292.8C287 236.7 253.5 201.5 220.9 141.2000000000001C211.2 123.2000000000001 209.2 103.8000000000001 205.6 82.6C202.2 62 234.6 56.2 238.2 77.5z" />
553
+ <glyph glyph-name="medium-m"
554
+ unicode="&#xF3C7;"
555
+ horiz-adv-x="512" d=" M71.5 305.7C72.1 311.6 69.8 317.5 65.4 321.5L20.3 375.9V384H160.5L268.9 146.3L364.2 384H497.9V375.9L459.3 338.9C455.9999999999999 336.4 454.3 332.2 454.9999999999999 328.1V56.1C454.3 52 455.9999999999999 47.8 459.3 45.3L496.9999999999999 8.3V0.2H307.3V8.3L346.4000000000001 46.2C350.2000000000001 50 350.2000000000001 51.2 350.2000000000001 57V276.8L241.5 0.9H226.8L100.4 276.8V91.9C99.3 84.1 101.9 76.3 107.4 70.7L158.2 9.1V0.9999999999999H14.2V8.9999999999999L65 70.7C70.4 76.3 72.9 84.2 71.5 91.9V305.7z" />
556
+ <glyph glyph-name="medium"
557
+ unicode="&#xF23A;"
558
+ horiz-adv-x="448" d=" M0 416V-32H448V416H0zM372.2 309.9L348.2 286.9C346.1 285.3 345.1 282.7000000000001 345.5 280.2000000000001V110.9C345.1 108.3 346.1 105.7 348.2 104.2L371.7 81.2V76.1H253.7V81L278 104.6C280.4 107 280.4 107.7000000000001 280.4 111.3V248.2L212.8 76.6H203.7L125 248.2V133.2C124.3 128.4 126 123.5 129.4 120L161 81.7V76.6H71.2V81.7L102.8 120C106.2 123.5 107.7 128.4 106.9 133.2V266.2C107.3 269.9 105.9 273.5 103.1 276L75 309.9V315H162.3L229.7 167L289 314.9H372.2V309.9z" />
559
+ <glyph glyph-name="medrt"
560
+ unicode="&#xF3C8;"
561
+ horiz-adv-x="544" d=" M113.7 192C113.7 70.2 197.6 -30.8 307.2 -49.1C288.5 -53.6 269 -56 249 -56C111.4 -56 0 55 0 192S111.4 440 248.9 440C269 440 288.5 437.6 307.1 433.1C197.5 414.8 113.7 313.8 113.7 192M411.1 91.7C333.4 36.3 231.5 44.2 170.7 106.3C176.2 92.2 183.4 78.6 192.4 65.8C254 -22.4 374.8 -43.5 462.0999999999999 18.8C549.3999999999999 81.1 570.1999999999999 203.1 508.5999999999999 291.4000000000001C499.5999999999999 304.3000000000001 489.2999999999999 315.7000000000001 478.0999999999999 325.6C515.4999999999999 246.8000000000001 488.7999999999999 147.1 411.0999999999999 91.7000000000001M192.2999999999999 335.7000000000001C190.8999999999999 334.7000000000001 189.5999999999999 333.6 188.2999999999999 332.6C252.5999999999999 350.4000000000001 324.2 328.6 367.2 272.1C402.8999999999999 225.1000000000001 410.0999999999999 165.5000000000001 391.5999999999999 114.1C448.2999999999999 170.3 459.1999999999999 256.2000000000001 413.8999999999999 315.9000000000001C363.8999999999999 381.4000000000001 264.8 390.3000000000001 192.2999999999999 335.7000000000001M296 224C291.6 224 288 227.6 288 232V272C288 276.4 284.4 280 280 280H232C227.6 280 224 276.4 224 272V232C224 227.6 220.4 224 216 224H176C171.6 224 168 220.4 168 216V168C168 163.6 171.6 160 176 160H216C220.4 160 224 156.4 224 152V112C224 107.6 227.6 104 232 104H280C284.4 104 288 107.6 288 112V152C288 156.4 291.6 160 296 160H336C340.4 160 344 163.6 344 168V216C344 220.4 340.4 224 336 224H296z" />
562
+ <glyph glyph-name="meetup"
563
+ unicode="&#xF2E0;"
564
+ horiz-adv-x="512" d=" M99 33.7C100.1 28 96.7 22.6 91 21.4C85.6 20.3 80.1 23.7 79 29.4C77.9 34.8 81.3 40.5 86.7 41.7C92.1 42.9 97.8 39.4 99 33.7zM242.1 -37.7C235.8 -42.3000000000001 234.1 -51.1 238.4 -57.7C243 -64.3000000000001 251.8 -66 258.4 -61.4C264.7 -56.8 266.4 -48.0000000000001 261.8 -41.4C257.6 -34.9 248.7 -33.1 242.1 -37.7zM156.1 424.6C162.4 426 166.4 432.3 165 438.6C163.9 445.2 157.6 449.2 151.3 447.7C145 446.3 141 440 142.2 433.7C143.6 427.1 149.8 423.1 156.1 424.6zM34.4 221.7C24.4 228.6 10.7 226 3.8 215.7C-3.1 205.7 -0.5 191.7 9.5 184.8C19.5 177.7 33.2 180.2 40.1 190.5C47 200.9 44.4 214.6 34.4 221.7zM306.4 392.6C317 398.9 320.1 412.6 314.1 422.9C307.8 433.5 294.4 436.9 284.1 430.6S270.4 410.6 276.7 400C282.7 389.7 296.1 386.3 306.4 392.6zM115.3 334.6C123 340 124.7 350.6 119.6 358.3S103.9 367.7 96.5 362.6C88.8 357.2 87.1 346.6 92.2 338.9C97.3 331.1 107.8 329.4 115.3 334.6zM487.6 178.6C480.2 176.9 475.3 169.5 477 161.7000000000001C478.4 154.3000000000001 485.9 149.4 493.3 151.1C500.7 152.5 505.6 160 503.9 167.7000000000001C502.4 175.1 495.0000000000001 180.0000000000001 487.6 178.6zM527.3000000000001 235.4000000000001C526.2 241.1 520.7 244.5000000000001 515.3000000000001 243.4000000000001C509.6000000000001 242.3000000000001 506.2 236.5000000000001 507.3000000000001 230.8000000000001C508.4000000000001 225.4000000000001 513.9000000000001 221.7000000000001 519.6 222.8000000000001C525 224.3000000000001 528.7 229.7000000000001 527.3000000000001 235.4000000000001zM447 309.1C438.4 303.1 436.4 291.4 442.1 282.8C447.8 274.2 459.5 272.2 468.1 277.9C476.4 283.9 478.4 295.6 472.7 304.2C467.0000000000001 312.9 455.3000000000001 315.1 447.0000000000001 309.1zM440.7 169.7C467 126.6 455.8 69.7 414.4 40.6C397 28.3 377.3 22.9 357.5 23.5C345.5 -23.6 288.1 -41.1 252.4 -9.1C251.3 -10 249.8 -10.8 248.7 -12C209.6 -39.1 156.4 -29.4 129.3 10.3C119.6 24.6 114.7 40.9 114.2 57.2C48.8 68.1 24.2 151.2 73.1 196.9C44.8 243.8 73.7 304.3 126.5 311.8C151.6 378 234.1 409.4 290.1 366C357.5 388.3 426.4000000000001 336.6 421 264.9C462.1 252.3 473.8 198 440.7 169.7zM370.7 95.4C367.6 116 329.8 100 327.6 122.5C324.5 154.5 371.3 223.6 367.6 250.5C364.2 274.5 348.2 279.6 334.2 279.9C320.8 280.2000000000001 317.3 277.9 312.8 275.3C309.9000000000001 273.6 306.2 270.4 301.1 275.6C294.8 281.6 290 287.3 281.7000000000001 288.5C269.4000000000001 290.5 264.0000000000001 286.5 255.1000000000001 278.8000000000001C251.7000000000001 275.9000000000001 243.1000000000001 265.9000000000001 235.1000000000001 269.7000000000001C231.7000000000001 271.4000000000001 219.7000000000001 277.4000000000001 211.1000000000001 281.1C194.8000000000001 288.2000000000001 171.1000000000001 276.5000000000001 162.5000000000001 261.1C149.6000000000001 238.2000000000001 124.5000000000001 148.0000000000001 120.8000000000001 136.0000000000001C112.2000000000001 109.4 131.7000000000001 87.4 157.7000000000001 88.9C168.8000000000001 89.5000000000001 176.0000000000001 93.5000000000001 183.1000000000001 106.3C187.1000000000001 113.7 224.8000000000001 214 227.7000000000001 218.9C229.7000000000001 222.3 236.6000000000001 226.9 242.3000000000001 224C248.0000000000001 220.9 249.2000000000001 214.6 248.3000000000001 208.9C247.2000000000001 199.2 220.3000000000001 138 219.4 131.2C216 108.3 246.3000000000001 104.6 258.0000000000001 127.2C261.7000000000001 134.3 303.7000000000001 219.8 307.4000000000001 225.5C311.7000000000001 231.8 314.8 233.8 319.1 233.5C322.2000000000001 233.5 327.4000000000001 232.6 326.2000000000001 222.6C324.8000000000001 213.2 291.1 150.3 287.3000000000001 134.9C282.7000000000001 114.3 293.9000000000001 93.5 312.2000000000001 84.3C323.6 78.6 374.7000000000001 68.6 370.7000000000001 95.4zM376.4 3.1C366.1 -4.3 363.5 -18.9 370.7 -29.5000000000001C377.8 -40.1000000000001 392.1 -42.6000000000001 402.7 -35.5000000000001C413.3 -28.1000000000001 415.8 -13.5000000000001 408.7 -2.9C401.3 7.7 387 10.6 376.4 3.1z" />
565
+ <glyph glyph-name="microsoft"
566
+ unicode="&#xF3CA;"
567
+ horiz-adv-x="448" d=" M0 416H214.6V201.4H0V416zM233.4 416H448V201.4H233.4V416zM0 182.6H214.6V-32H0V182.6zM233.4 182.6H448V-32H233.4V182.6z" />
568
+ <glyph glyph-name="mix"
569
+ unicode="&#xF3CB;"
570
+ horiz-adv-x="448" d=" M0 384V35.1C0 -21.1 88 -23 88 35.1V273.7C95.9 326.6 176 324.1 176 267.2V91.9C176 34 272 33.9 272 91.9V208C277.3 262.7 360 260.5 360 203.7V179.9C360 120 448 123.3 448 179.9V384H0z" />
571
+ <glyph glyph-name="mixcloud"
572
+ unicode="&#xF289;"
573
+ horiz-adv-x="640" d=" M424.43 228.271C416.124 313.273 344.135 380 256.919 380C184.653 380 120.695 333.4840000000001 97.714 265.926C43.169 257.897 1.084 211.104 1.084 154.344C1.084 92.046 51.752 41.378 114.327 41.378H403.9409999999999C456.2699999999999 41.378 498.9099999999999 83.74 498.9099999999999 136.071C498.9099999999999 181.202 466.7919999999999 219.134 424.4299999999999 228.271zM403.9410000000001 83.741H114.327C75.287 83.741 43.446 115.305 43.446 154.345S75.287 224.949 114.327 224.949C133.154 224.949 150.875 217.474 164.165 204.183C184.128 184.22 214.298 214.41 194.345 234.363C179.67 248.761 161.673 258.728 142.292 263.712C162.227 308.012 207.082 337.638 256.92 337.638C326.416 337.638 382.899 281.155 382.899 211.936C382.899 198.368 380.6840000000001 185.079 376.53 172.342C367.587 144.825 408.663 133.403 416.677 159.052C419.446 167.358 421.661 175.941 423.046 184.524C442.4269999999999 177.048 456.5479999999999 158.221 456.5479999999999 136.0709999999999C456.5479999999999 107.2759999999999 433.0129999999999 83.7409999999999 403.9409999999999 83.7409999999999zM639.01 136.071C639.01 92.047 626.273 49.6849999999999 601.908 13.414C597.755 7.322 591.11 4 584.188 4C567.871 4 557.061 22.826 566.745 36.949C586.126 66.298 596.648 100.631 596.648 136.071S586.1270000000001 205.844 566.745 234.9160000000001C551.09 257.747 586.106 282.1560000000001 601.908 258.4500000000001C626.274 222.457 639.01 180.0940000000001 639.01 136.071zM568.13 136.071C568.13 104.506 558.9929999999999 74.05 541.273 47.746C537.12 41.655 530.475 38.61 523.553 38.61C506.352 38.61 496.531 57.5889999999999 506.11 71.5579999999999C519.123 90.6619999999999 525.768 112.8129999999999 525.768 136.0709999999999C525.768 159.0519999999999 519.123 181.4789999999999 506.11 200.5829999999999C490.349 223.5689999999999 525.118 247.6779999999999 541.273 224.1179999999999C558.9920000000001 198.0919999999999 568.13 167.6349999999999 568.13 136.0709999999999z" />
574
+ <glyph glyph-name="mizuni"
575
+ unicode="&#xF3CC;"
576
+ horiz-adv-x="496" d=" M248 440C111 440 0 328.9 0 192C0 55 111 -56 248 -56S496 55 496 192C496 328.9 385 440 248 440zM168 88.1C136.6 77.5 109.2 60.8 88 39.9V312C88 334.1 105.9 352 128 352S168 334.1 168 312V88.1zM288 98C275.1 100 261.8 101.1 248.2 101.1C234.4 101.1 221 100 208 98V312C208 334.1 225.9 352 248 352S288 334.1 288 312V98zM408 40.3C386.8 61.1 359.4 77.7 328 88.3V312C328 334.1 345.9 352 368 352S408 334.1 408 312V40.3z" />
577
+ <glyph glyph-name="modx"
578
+ unicode="&#xF285;"
579
+ horiz-adv-x="448" d=" M356 206.2L392.7 182.5V-32L259.7 51.8L356 206.2zM440 373H226.3L203.3 335.2L356.8 238.7L440 373zM351 230.2L55.2 416V201.5L101.2 172.5L351 230.2zM97 153.8L8 11H221.7L346.7 211.5L97 153.8z" />
580
+ <glyph glyph-name="monero"
581
+ unicode="&#xF3D0;"
582
+ horiz-adv-x="496" d=" M352 64H460.4C417 -7.9 338.1 -56 248 -56S79 -7.9 35.6 64H144V191.8L248 87L352 192V64zM88 112V320L247.4 160.6L408 320V112H482.8C491.3 137.1 496 164 496 192C496 329 385 440 248 440S0 329 0 192C0 164 4.6 137.1 13.2 112H88z" />
583
+ <glyph glyph-name="napster"
584
+ unicode="&#xF3D2;"
585
+ horiz-adv-x="496" d=" M298.3 74.4C284.1 60.8 267 50.3 247.9 43.9C228.9 50.3 211.7 60.8 197.6 74.4H298.3zM342.3 274C362.3 290.9 385.9000000000001 303.2 411.9 310.2V149C411.9 -70.4 83.9 -68.6 83.9 148.7V310.3C109.8 303.4 133.5 290.7000000000001 153.4 273.9C210.2 313.9 285.9 313.8 342.3 274zM133.5 332.5C197.9 392.5 297.8 392.6 362.4 332.7C355.3 329.2 348.5 325.4 341.8 321.2C283.1 351.7 212.6 351.6 153.9 321.1C147.5999999999999 325.1 140 329.3 133.5 332.5zM43.8 354.8V285.5C-14.6 249 -14.6 164.4 43.9 127.2C70.3 -117.9 425.6 -113.1 451.5 125.7L451.8 127.4C510.5 163.7 510.7 249.1 452 285.6V354.8C434.7 354.3 418 351.8 401.9 347.4C319.9 438.9 176.4 438.9 94.4 347.3C78.1 351.7 61.3 354.3 43.8 354.8zM259.2 96S295.2 96.3 320.5 97.5C330.7 98 341.6 101.5 346 104C372.3 119.1 371.4 143.2 372.2 151.4C292.7 152 272.3 155.3 259.2 96zM123.7 151.3C124.5 143.1 123.6 119 149.9 103.9C154.3 101.4 165.1 97.9 175.4 97.4C200.7 96.3 236.7 95.9 236.7 95.9C223.5 155.3 203 152.0000000000001 123.7 151.3zM292.8 27.9C289.6 33.2 285.9 35.2 285.9 35.2C261.1 27.9 233.7 28.3 210 35.2C210 35.2 207.1 33.7 203.6 28.6C200.8 24.4999999999999 199.9 18.9999999999999 199.9 18.9999999999999C229 1.3999999999999 267 1.3999999999999 296.1 18.9999999999999C296 19.1 295.8 22.9999999999999 292.8 27.8999999999999z" />
586
+ <glyph glyph-name="nintendo-switch"
587
+ unicode="&#xF418;"
588
+ horiz-adv-x="448" d=" M95.9 414.5C51.3 406.5 15.4 373.5 4.1 330.1C0 314.4 -0.3 305.2 0.2 183.6C0.4 72 0.5 69.4 2.4 60.7C12.7 14.2 45.7 -18.9 92.7 -29.8C98.8 -31.2 106.6 -31.5 156.8 -31.7C208.7 -32.1 214.1 -32 215.5 -30.6C216.9 -29.2 217 -11.3 217 191.6C217 342.1 216.7 412.9000000000001 216.1 414.2000000000001C215.2 415.9000000000001 213.6 416 159.2 415.9000000000001C115 415.8 101.7 415.5 95.9 414.5zM179.8 191.9V4L142 4.5C107.2 4.9 103.5 5.1 96.5 6.8C66.6 14.5 44.5 37.5 38.2 67.5C36.2 76.9 36.2 307.6 38.1 316.8C43.7 342.9 61.8 364.5 86.1 374.2000000000001C98.3 379.1 104 379.7000000000001 143.7 379.8L179.6 379.9V191.9zM103.9 323.1C98.1 322 89.2 317.5 84.4 313.4C74.7 305 69.8 293 70.6 278.9C71 271.6 71.4 269.6 74.4 263.7C78.8 254.7 85.3 248.1 94.3 243.7C100.5 240.6 102.1 240.3 110.2 240C117.5 239.7 120.1 240 125 241.7C145.1 248.5 157.3 268 153.8 288.1C149.9 311.8 127.2 327.8 103.9 323.1zM262.1 415.4C261.7000000000001 415.1 261.5 314.6 261.5 191.9C261.5 -10.4 261.6 -30.9 263 -31.5C265.5 -32.4 337.5 -32.1 346.4 -31.1C384.1 -26.8 417.4 -3.9 435.4 30.1C437.7 34.4999999999999 440.8 41.8 442.4 46.3C448.2 63.6999999999999 448.1 59.1 448.1 192.4C448.1 298.8 447.9 314.7 446.6 321.4C437.4 369.7 400.5 406.2 352.1 414.5C345.6 415.6 335.6 415.8999999999999 303.3 415.8999999999999C280.9 416 262.4 415.7 262.1 415.3999999999999zM361.2000000000001 213.3C375.7000000000001 209.5 387.5000000000001 198.5 392.4000000000001 184.4C395.5000000000001 175.7 395.4000000000001 162.9 392.3 154.9C386.6 140.2 375.5 129.9 361.2 126.1C338 120.1 313.3 134.1 306.6 157.1C304.6 164.1 304.7 176 307 183.3C313.8999999999999 206 338 219.4 361.2 213.3z" />
589
+ <glyph glyph-name="node-js"
590
+ unicode="&#xF3D3;"
591
+ horiz-adv-x="448" d=" M224 -60C217.3 -60 210.5 -58.2 204.6 -54.8L142.9 -18.3C133.7 -13.1 138.2 -11.3 141.2 -10.3C153.5 -6 156 -5.1 169.1 2.4C170.5 3.2 172.3 2.9 173.7 2L221.1 -26.1C222.8 -27.1 225.2 -27.1 226.8 -26.1L411.5 80.5C413.2 81.5 414.3 83.5 414.3 85.5V298.7C414.3 300.8 413.2 302.7 411.4000000000001 303.8L226.8 410.3C225.1 411.3 222.8 411.3 221.1 410.3L36.6 303.7C34.8 302.7 33.7 300.7 33.7 298.6V85.5C33.7 83.5 34.8 81.5 36.6 80.6L87.2 51.4C114.7 37.7 131.5 53.8 131.5 70.1V280.5C131.5 283.5 133.9 285.8 136.9 285.8H160.3C163.2 285.8 165.7 283.5 165.7 280.5V70C165.7 33.4 145.7 12.4 111 12.4C100.3 12.4 91.9 12.4 68.5 24L20.1 51.9C8.1 58.8 0.7 71.7 0.7 85.6V298.7C0.7 312.5 8.1 325.5 20.1 332.4L204.6 439C216.3 445.6 231.8 445.6 243.4 439L428.1 332.3C440.1 325.4 447.5 312.5 447.5 298.6V85.5C447.5 71.7 440.1 58.8 428.1 51.8L243.4 -54.8C237.5 -58.2 230.8 -60 224 -60zM373.1 150.1C373.1 190 346.1 200.6 289.4000000000001 208.1C232.0000000000001 215.7 226.2000000000001 219.6 226.2000000000001 233.0000000000001C226.2000000000001 244.1 231.1000000000001 258.9000000000001 273.6 258.9000000000001C311.5 258.9000000000001 325.5 250.7000000000001 331.3 225.1C331.8 222.7 334 220.9 336.5 220.9H360.5C362 220.9 363.4 221.5 364.4 222.6S365.9 225.2 365.8 226.7C362.1 270.8 332.8 291.3 273.6 291.3C220.9 291.3 189.5 269.1 189.5 231.8C189.5 191.4 220.8 180.2 271.3 175.2C331.8 169.3 336.5 160.4 336.5 148.5C336.5 127.9 319.8999999999999 119.1 281 119.1C232.1 119.1 221.4 131.4 217.8 155.7000000000001C217.4 158.3000000000001 215.2 160.2000000000001 212.5 160.2000000000001H188.5999999999999C185.5999999999999 160.2000000000001 183.2999999999999 157.8000000000001 183.2999999999999 154.9C183.2999999999999 123.8 200.1999999999999 86.7000000000001 281.0999999999999 86.7000000000001C339.4999999999999 86.8000000000001 373.0999999999999 109.9 373.0999999999999 150.1z" />
592
+ <glyph glyph-name="node"
593
+ unicode="&#xF419;"
594
+ horiz-adv-x="640" d=" M316.3 -4C314.2 -4 312.1 -3.4 310.2 -2.4L291 9C288.1 10.6 289.5 11.2 290.5 11.5C294.3 12.8 295.1 13.1 299.2 15.5C299.6 15.7 300.2 15.6 300.6 15.4L315.4 6.6C315.9 6.3 316.7 6.3 317.2 6.6L375 40C375.5 40.3 375.9 40.9 375.9 41.6V108.3C375.9 109 375.6 109.6 375 109.9L317.2 143.2000000000001C316.7 143.5000000000001 316 143.5000000000001 315.4 143.2000000000001L257.6 109.9C257 109.6 256.7 108.9 256.7 108.3V41.6C256.7 41 257.1 40.4 257.6 40.1L273.4 31C282 26.7 287.3 31.8 287.3 36.8V102.7000000000001C287.3 103.6 288 104.4 289 104.4H296.3C297.2 104.4 298 103.7000000000001 298 102.7000000000001V36.8000000000001C298 25.3000000000001 291.8 18.8000000000001 280.8999999999999 18.8000000000001C277.5999999999999 18.8000000000001 274.8999999999999 18.8000000000001 267.5999999999999 22.4000000000001L252.3999999999999 31.1000000000001C248.7 33.3000000000001 246.3 37.3000000000001 246.3 41.6000000000001V108.3000000000001C246.3 112.6000000000001 248.6 116.7000000000001 252.3999999999999 118.8000000000001L310.2 152.2000000000001C313.8999999999999 154.3000000000001 318.7 154.3000000000001 322.3 152.2000000000001L380.1 118.8000000000001C383.8 116.6000000000001 386.2 112.6000000000001 386.2 108.3000000000001V41.6000000000001C386.2 37.3000000000001 383.9 33.2000000000001 380.1 31.1000000000001L322.3 -2.2999999999999C320.6 -3.3999999999999 318.5 -3.9999999999999 316.3 -3.9999999999999zM363 61.8C363 74.3 354.6 77.6 336.8 80C318.8 82.4 317 83.6 317 87.8C317 91.3 318.5 95.9 331.8 95.9C343.7 95.9 348.1 93.3 349.9000000000001 85.3C350.1 84.5 350.7000000000001 84 351.5000000000001 84H359.0000000000001C359.5000000000001 84 359.9000000000001 84.2 360.2000000000001 84.5C360.5000000000001 84.9 360.7000000000001 85.3 360.6 85.8C359.4000000000001 99.6 350.3 106 331.8 106C315.3 106 305.5 99 305.5 87.4C305.5 74.7 315.3 71.3 331.1 69.7C350 67.8 351.5 65.1 351.5 61.4C351.5 54.9 346.3 52.2 334.1 52.2C318.8 52.2 315.4000000000001 56 314.3 63.6C314.2 64.4 313.5 64.9999999999999 312.6 64.9999999999999H305.1C304.2000000000001 64.9999999999999 303.4000000000001 64.3 303.4000000000001 63.3C303.4000000000001 53.6 308.7000000000001 41.9999999999999 334.0000000000001 41.9999999999999C352.5000000000001 41.9999999999999 363.0000000000001 49.1999999999999 363.0000000000001 61.8zM417.5 111.9C417.5 105.8 412.5 100.8 406.4 100.8S395.3 105.8 395.3 111.9C395.3 118.2000000000001 400.5 123.0000000000001 406.4 123.0000000000001C412.4 123.1000000000001 417.5 118.2000000000001 417.5 111.9zM415.7 111.9C415.7 117.1 411.5 121.2000000000001 406.3 121.2000000000001C401.2 121.2000000000001 397 117.1 397 111.9C397 106.7000000000001 401.2 102.5000000000001 406.3 102.5000000000001C411.5 102.6000000000001 415.7 106.8000000000001 415.7 111.9zM411.2 105.7000000000001H408.6C408.5 106.3000000000001 408.1 109.5000000000001 408.1 109.6C407.9 110.3 407.7 110.7000000000001 406.8 110.7000000000001H404.6V105.7000000000001H402.2V118.2000000000001H406.5C408 118.2000000000001 410.9 118.2000000000001 410.9 114.9C410.9 112.6 409.4 112.1 408.5 111.8C410.2 111.7 410.3 110.6 410.6 109C410.7000000000001 108 410.9000000000001 106.3 411.2000000000001 105.7zM408.4 114.5000000000001C408.4 116.2000000000001 407.2 116.2000000000001 406.6 116.2000000000001H404.6V112.7000000000001H406.5C408.1 112.7000000000001 408.3999999999999 113.8000000000001 408.3999999999999 114.5000000000001zM137.3 257C137.3 259.7 135.9 262.1 133.6 263.4L72.3 298.7C71.3 299.3 70.1 299.6 68.9 299.7H68.3C67.1 299.7 66 299.3 64.9 298.7L3.7 263.4C1.4 262.1 0 259.6 0 257L0.1 162C0.1 160.7 0.8 159.5 1.9 158.8C3 158.1 4.4 158.1 5.6 158.8L42 179.7C44.3 181.1 45.7 183.5 45.7 186.1V230.5C45.7 233.1 47.1 235.6 49.4 236.9L64.9 245.8C66.1 246.5 67.3 246.8 68.6 246.8C69.9 246.8 71.2 246.5 72.3 245.8L87.8 236.9C90.1 235.6 91.5 233.1 91.5 230.5V186.1C91.5 183.5 92.9 181 95.2 179.7L131.6 158.8C132.7 158.1 134.2 158.1 135.3 158.8C136.4 159.4 137.1 160.7 137.1 162L137.3 257zM472.5 360.7V184.3C472.5 181.7 471.1 179.2 468.8 177.9L407.5 142.5000000000001C405.2 141.2000000000001 402.4 141.2000000000001 400.1 142.5000000000001L338.8 177.9C336.5 179.2000000000001 335.1 181.7000000000001 335.1 184.3V255.1C335.1 257.7000000000001 336.5 260.2000000000001 338.8 261.5L400.1 296.9000000000001C402.4000000000001 298.2000000000001 405.2000000000001 298.2000000000001 407.5 296.9000000000001L422.8 288.1C424.5 287.1 426.7 288.4000000000001 426.7 290.3V384.3C426.7 387.1 429.7 388.9000000000001 432.2 387.5L468.7 367.1C471 365.9000000000001 472.5 363.4000000000001 472.5 360.7000000000001zM426.5 231.8C426.5 232.5 426.1 233.1 425.6 233.4L404.6 245.6C404 245.9 403.3 245.9 402.7000000000001 245.6L381.7000000000001 233.4C381.1 233.1 380.8000000000001 232.5 380.8000000000001 231.8V207.5C380.8000000000001 206.8 381.2000000000001 206.2 381.7000000000001 205.9L402.7000000000001 193.8C403.3000000000001 193.5 404.0000000000001 193.5 404.5000000000001 193.8L425.5000000000001 205.9C426.1000000000001 206.2 426.4000000000001 206.8 426.4000000000001 207.5V231.8zM636.3 232.5C638.5999999999999 233.8 640 236.3 640 238.9V256C640 258.6 638.6 261.1 636.3 262.4L575.4 297.8C573.1 299.1 570.3 299.1 568 297.8L506.7 262.4C504.4 261.1 503 258.6 503 256V185.2C503 182.5 504.4 180.1 506.7 178.8L567.6 144.1C569.8000000000001 142.8 572.6 142.8 574.9 144.1L611.6999999999999 164.6C614.1999999999999 166 614.1999999999999 169.6 611.6999999999999 171L550 206.4C548.8 207.1 548.1 208.3 548.1 209.6V231.8C548.1 233.1 548.8000000000001 234.3 550 235L569.2 246.1C570.3000000000001 246.8 571.8000000000001 246.8 572.9000000000001 246.1L592.1000000000001 235C593.2000000000002 234.3 594.0000000000001 233.1 594.0000000000001 231.8V214.4C5